From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 84114A0518; Fri, 24 Jul 2020 03:31:15 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6A1E51C029; Fri, 24 Jul 2020 03:31:15 +0200 (CEST) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 8B4451C025 for ; Fri, 24 Jul 2020 03:31:13 +0200 (CEST) IronPort-SDR: xQZw9+R+L7JIim+MPnUAKbwxau/Yc9VLLbXTz7q+9+58njo/9Tm3omOGQkNqU6ZagOtoWLCi1w mIomKa1cisSA== X-IronPort-AV: E=McAfee;i="6000,8403,9691"; a="148565402" X-IronPort-AV: E=Sophos;i="5.75,388,1589266800"; d="scan'208";a="148565402" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jul 2020 18:31:12 -0700 IronPort-SDR: dw6I6c0foJkPmZ6YQyJOtAZt2W8BAKdP1SeUOsmBpZCvdosLdGF0QKmxCHPsswkU5Zar4jQ3V/ glVk3N7e8fVQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,388,1589266800"; d="scan'208";a="488572386" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga006.fm.intel.com with ESMTP; 23 Jul 2020 18:31:12 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 23 Jul 2020 18:31:12 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 23 Jul 2020 18:31:12 -0700 Received: from shsmsx107.ccr.corp.intel.com (10.239.4.96) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 23 Jul 2020 18:31:11 -0700 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.22]) by SHSMSX107.ccr.corp.intel.com ([169.254.9.32]) with mapi id 14.03.0439.000; Fri, 24 Jul 2020 09:31:09 +0800 From: "Tu, Lijuan" To: "Peng, Yuan" , "dts@dpdk.org" CC: "Peng, Yuan" Thread-Topic: [dts] [PATCH]test_plans: add ethertype flow to fdir Thread-Index: AQHWYI91oy44vNf6okKhFJZb4TuiLKkV8wzQ Date: Fri, 24 Jul 2020 01:31:08 +0000 Message-ID: <8CE3E05A3F976642AAB0F4675D0AD20E0BC83E75@SHSMSX101.ccr.corp.intel.com> References: <1595492760-4039-1-git-send-email-yuan.peng@intel.com> In-Reply-To: <1595492760-4039-1-git-send-email-yuan.peng@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dts] [PATCH]test_plans: add ethertype flow to fdir X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org Sender: "dts" Applied, thanks > -----Original Message----- > From: dts On Behalf Of Peng Yuan > Sent: 2020=1B$BG/=1B(B7=1B$B7n=1B(B23=1B$BF|=1B(B 16:26 > To: dts@dpdk.org > Cc: Peng, Yuan > Subject: [dts] [PATCH]test_plans: add ethertype flow to fdir >=20 > add ethertype flow to cvl fdir > add IPV6 pattern to conflict rule case. >=20 > Signed-off-by: Peng Yuan >=20 > diff --git a/test_plans/cvl_fdir_test_plan.rst b/test_plans/cvl_fdir_test= _plan.rst > index 63ad6f2..c1b9223 100644 > --- a/test_plans/cvl_fdir_test_plan.rst > +++ b/test_plans/cvl_fdir_test_plan.rst > @@ -37,6 +37,7 @@ CVL:Classification:Flow Director Enable fdir filter fo= r > IPv4/IPv6 + TCP/UDP/SCTP (OS default package) Enable fdir filter for UD= P > tunnel: Vxlan / NVGRE (OS default package) Enable fdir filter for GTP (c= omm #1 > package) > +Enable fdir filter for L2 Ethertype (comm #1 package) >=20 > Pattern and input set > --------------------- > @@ -81,6 +82,8 @@ Pattern and input set > +------------------------------+----------------------------+-------= ------------------------- > -----------------------------------------------+ > | | MAC_IPV4_GTPU_EH | [TEID]= , [QFI] > | > +------------------------------+----------------------------+-------= ------------------------- > -----------------------------------------------+ > + | L2 Ethertype | L2 Ethertype | [Ether= type] > | > + > + +------------------------------+----------------------------+--------- > + ---------------------------------------------------------------------- > + + >=20 > .. note:: >=20 > @@ -131,7 +134,7 @@ Prerequisites >=20 > 5. Launch the app ``testpmd`` with the following arguments:: >=20 > - ./testpmd -c 0xff -n 6 -w 86:00.0,,flow-mark-support=3D1 -- -i --por= tmask=3D0xff - > -rxq=3D64 --txq=3D64 --port-topology=3Dloop > + ./testpmd -c 0xff -n 6 -w 86:00.0,,flow-mark-support=3D1 > + --log-level=3D"ice,7" -- -i --portmask=3D0xff --rxq=3D64 --txq=3D64 > + --port-topology=3Dloop > testpmd> set fwd rxonly > testpmd> set verbose 1 >=20 > @@ -142,7 +145,7 @@ Prerequisites >=20 > Notes: if need two ports environment, launch ``testpmd`` with the fol= lowing > arguments:: >=20 > - ./testpmd -c 0xff -n 6 -w 86:00.0,flow-mark-support=3D1 -w 86:00.1,f= low- > mark-support=3D1 -- -i --portmask=3D0xff --rxq=3D64 --txq=3D64 --port-top= ology=3Dloop > + ./testpmd -c 0xff -n 6 -w 86:00.0,flow-mark-support=3D1 -w > + 86:00.1,flow-mark-support=3D1 --log-level=3D"ice,7" -- -i --portmask=3D= 0xff > + --rxq=3D64 --txq=3D64 --port-topology=3Dloop >=20 >=20 > Default parameters > @@ -185,6 +188,9 @@ Default parameters > [TEID]: 0x12345678 > [QFI]: 0x34 >=20 > + L2 Ethertype:: > + > + [Ethertype]: 0x8863 0x8864 0x0806 0x8100 0x88f7 >=20 > Send packets > ------------ > @@ -440,6 +446,32 @@ Send packets > p_gtpu14 =3D Ether(src=3D"a4:bf:01:51:27:ca", > dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.20", > dst=3D"192.168.0.21")/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, > teid=3D0x12345678)/IPv6()/SCTP()/Raw('x'*20) > p_gtpu15 =3D Ether(src=3D"a4:bf:01:51:27:ca", > dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.20", > dst=3D"192.168.0.21")/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, > teid=3D0x1234567)/IP()/Raw('x'*20) >=20 > +* L2 Ethertype > + > + PPPoED packets:: > + > + sendp([Ether(dst=3D"00:11:22:33:44:55")/PPPoED()/PPP()/IP()/Raw('x' > *80)],iface=3D"enp134s0f1") > + sendp([Ether(dst=3D"00:11:22:33:44:55", type=3D0x8863)/IP()/Raw('x' = * > + 80)],iface=3D"enp134s0f1") > + > + PPPoE packets:: > + > + > sendp([Ether(dst=3D"00:11:22:33:44:55")/PPPoE()/PPP(proto=3D0x0021)/IP()/= Raw('x' > * 80)],iface=3D"enp134s0f1") > + sendp([Ether(dst=3D"00:11:22:33:44:55", type=3D0x8864)/IP()/Raw('x' = * > + 80)],iface=3D"enp134s0f1") > + > + ARP packets:: > + > + > sendp([Ether(dst=3D"00:11:22:33:44:55")/ARP(pdst=3D"192.168.1.1")],iface= =3D"enp134 > s0f1") > + sendp([Ether(dst=3D"00:11:22:33:44:55", type=3D0x0806)/Raw('x' > + *80)],iface=3D"enp134s0f1") > + > + EAPS packets:: > + > + sendp([Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)],iface=3D"enp1= 34s0f1") > + > + sendp([Ether(dst=3D"00:11:22:33:44:55")/Dot1Q(vlan=3D1)],iface=3D"enp13= 4s0f1 > + ") > + > + ieee1588 packet:: > + > + sendp([Ether(dst=3D"00:11:22:33:44:55",type=3D0x88f7)/"\\x00\\x02"], > + iface=3D"enp134s0f1") > + >=20 > Test case: flow validation > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D > @@ -1705,6 +1737,175 @@ Subcase 6: MAC_IPV4_GTPU mark 2. repeat the > steps of passthru in subcase 3, > get the same result. >=20 > +Test case: L2 Ethertype pattern > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D > + > +Subcase 1: L2 Ethertype queue index > +----------------------------------- > + > +1. create rule for PPPoED:: > + > + flow create 0 ingress pattern eth type is 0x8863 / end actions > + queue index 1 / mark id 1 / end > + > + send PPPoED packet, > + check the packets are distributed to expected queue with specific FDI= R > matched ID. > + > +2. create rule for PPPoE:: > + > + flow create 0 ingress pattern eth type is 0x8864 / end actions > + queue index 2 / mark id 2 / end > + > + send PPPoE packet, > + check the packets are distributed to expected queue with specific FDI= R > matched ID. > + > +3. create rule for ARP:: > + > + flow create 0 ingress pattern eth type is 0x0806 / end actions > + queue index 3 / mark id 3 / end > + > + send ARP packet, > + Check the packets are distributed to expected queue with specific FDI= R > matched ID. > + > +4. create rule for EAPS:: > + > + flow create 0 ingress pattern eth type is 0x8100 / end actions > + queue index 4 / mark id 4 / end > + > + send EAPS packet, > + check the packets are distributed to expected queue with specific FDI= R > matched ID. > + > +5. create rule for ieee1588:: > + > + flow create 0 ingress pattern eth type is 0x88f7 / end actions > + queue index 5 / mark id 5 / end > + > + send ieee1588 packet, > + check the packets are distributed to expected queue with specific FDI= R > matched ID. > + > +6. send a mismatched packet:: > + > + > + sendp([Ether(dst=3D"00:11:22:33:44:55",type=3D0x8847)],iface=3D"enp134s= 0f1") > + > + check the packet received has not FDIR matched ID. > + > +7. verify rules can be listed and destroyed:: > + > + testpmd> flow list 0 > + > + check the 5 rules listed. > + flush all the rules:: > + > + testpmd> flow flush 0 > + > +8. verify matched packets are received without FDIR matched ID. > + Then check there is no rule listed. > + > +Subcase 2: L2 Ethertype rss queues > +---------------------------------- > + > +1. create rules for PPPoED with rss queues action:: > + > + flow create 0 ingress pattern eth type is 0x8863 / end actions rss > + queues 2 3 end / mark id 2 / end > + > +2. send matched packet, > + check the packets received have FDIR matched ID=3D0x2, > + the packets are directed to queue 0, > + because L2 Ethertype are not supported by RSS. > + > +3. Repeat step 1-2 with PPPoE/ARP/EAPS/ieee1588, > + get the same result. > + > +4. repeat step 6-7 of subcase 1. > + > +5. verify matched packets received have not FDIR matched ID. > + Then check there is no rule listed. > + > +Subcase 3: L2 Ethertype passthru > +-------------------------------- > + > +1. create rules for PPPoED with passthru action:: > + > + flow create 0 ingress pattern eth type is 0x8863 / end actions > + passthru / mark id 2 / end > + > +2. send matched packet, > + check the packets received have FDIR matched ID=3D0x2, > + the packets are directed to queue 0, > + because L2 Ethertype are not supported by RSS. > + > +3. Repeat step 1-2 with PPPoE/ARP/EAPS/ieee1588, > + get the same result. > + > +4. repeat step 6-7 of subcase 1. > + > +5. verify matched packets received have not FDIR matched ID. > + Then check there is no rule listed. > + > +Subcase 4: L2 Ethertype drop > +---------------------------- > + > +1. create rules for PPPoED with drop action:: > + > + flow create 0 ingress pattern eth type is 0x8863 / end actions drop > + / end > + > +2. send matched packet, > + check the packets are dropped, > + > +3. Repeat step 1-2 with PPPoE/ARP/EAPS/ieee1588, > + get the same result. > + > +4. repeat step 6-7 of subcase 1. > + > +5. verify matched packets are received. > + Then check there is no rule listed. > + > +Subcase 5: L2 Ethertype mark+rss > +-------------------------------- > + > +1. create rules for PPPoED with rss queues action:: > + > + flow create 0 ingress pattern eth type is 0x8863 / end actions mark > + id 1 / rss / end > + > +2. send matched packet, > + check the packets received have FDIR matched ID=3D0x1, > + the packets are directed to queue 0, > + because L2 Ethertype are not supported by RSS. > + > +3. Repeat step 1-2 with PPPoE/ARP/EAPS/ieee1588, > + get the same result. > + > +4. repeat step 6-7 of subcase 1. > + > +5. verify matched packets received have not FDIR matched ID. > + Then check there is no rule listed. > + > +Subcase 6: L2 Ethertype mark > +---------------------------- > + > +1. create rules for PPPoED with mark action:: > + > + flow create 0 ingress pattern eth type is 0x8863 / end actions mark > + / end > + > +2. send matched packet, > + check the packets received have FDIR matched ID=3D0x0, > + > +3. Repeat step 1-2 with PPPoE/ARP/EAPS/ieee1588, > + get the same result. > + > +4. repeat step 6-7 of subcase 1. > + > +5. verify matched packets received have not FDIR matched ID. > + Then check there is no rule listed. > + > +Subcase 7: unsupported Ethertype > +-------------------------------- > + > +1. create rules for IP/IPV6:: > + > + flow create 0 ingress pattern eth type is 0x0800 / end actions queue= index 1 / > end > + flow create 0 ingress pattern eth type is 0x86dd / end actions > + queue index 1 / end > + > + the two rules can be created successfully, but report below message:: > + > + ice_flow_create(): Succeeded to create (2) flow > + Flow rule #0 created > + > + the number "2" stands for switch rule, fdir doesn't support IPV4/IPV6 > ethertype. >=20 > Test case: negative cases > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D > @@ -1812,6 +2013,7 @@ Subcase 6: conflicted rules 1. Create a FDIR rule:= : >=20 > flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 sr= c is > 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions queue in= dex 1 / end > + flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 > + dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 / end > + actions queue index 1 / mark / end >=20 > the rule is created successfully. >=20 > @@ -1821,12 +2023,17 @@ Subcase 6: conflicted rules > flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 sr= c is > 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions drop / e= nd > flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 sr= c is > 192.168.0.21 ttl is 2 tos is 4 / end actions queue index 3 / mark / end > flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 sr= c is > 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is= 23 / end > actions queue index 3 / mark / end > + flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 ds= t is > CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 / end actions queu= e > index 2 / mark / end > + flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 ds= t is > CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 / end actions rss > queues 2 3 end / mark / end > + flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 ds= t is > CDCD:910A:2222:5498:8475:1111:3900:2021 / end actions mark / end > + flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 > + dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 / udp > + src is 22 dst is 23 / end actions queue index 1 / mark / end >=20 > Failed to create the two flows, report message:: >=20 > - first two rules: > Rule already exists!: File exists > - last two rules: > + > + or:: > + > Invalid input action number: Invalid argument >=20 > 3. check there is only one rule listed. > -- > 2.7.4