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 79DB1A04F0; Fri, 27 Dec 2019 09:08:17 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 615E31BFEB; Fri, 27 Dec 2019 09:08:17 +0100 (CET) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id CA47A1BFA8 for ; Fri, 27 Dec 2019 09:08:15 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Dec 2019 00:08:14 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,362,1571727600"; d="scan'208";a="243173125" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga004.fm.intel.com with ESMTP; 27 Dec 2019 00:08:14 -0800 Received: from fmsmsx114.amr.corp.intel.com (10.18.116.8) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 27 Dec 2019 00:08:14 -0800 Received: from shsmsx107.ccr.corp.intel.com (10.239.4.96) by FMSMSX114.amr.corp.intel.com (10.18.116.8) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 27 Dec 2019 00:08:13 -0800 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.19]) by SHSMSX107.ccr.corp.intel.com ([169.254.9.164]) with mapi id 14.03.0439.000; Fri, 27 Dec 2019 16:08:12 +0800 From: "Tu, Lijuan" To: "Fu, Qi" , "dts@dpdk.org" CC: "Fu, Qi" Thread-Topic: [dts] [PATCH V3]test_plans: add test plan for rte_flow priority Thread-Index: AQHVvIYcm+vzbfyN90G8SgkL1UDhvKfNoHsw Date: Fri, 27 Dec 2019 08:08:11 +0000 Message-ID: <8CE3E05A3F976642AAB0F4675D0AD20E0BB8EEE1@SHSMSX101.ccr.corp.intel.com> References: <20191227161439.7525-1-qi.fu@intel.com> In-Reply-To: <20191227161439.7525-1-qi.fu@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="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dts] [PATCH V3]test_plans: add test plan for rte_flow priority 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 > -----Original Message----- > From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of qifu > Sent: Saturday, December 28, 2019 12:15 AM > To: dts@dpdk.org > Cc: Fu, Qi > Subject: [dts] [PATCH V3]test_plans: add test plan for rte_flow priority >=20 > Add test plan for cvl rteflow priority. >=20 > Signed-off-by: qifu > --- > test_plans/rteflow_priority_test_plan.rst | 338 ++++++++++++++++++++++ > 1 file changed, 338 insertions(+) > create mode 100644 test_plans/rteflow_priority_test_plan.rst >=20 > diff --git a/test_plans/rteflow_priority_test_plan.rst > b/test_plans/rteflow_priority_test_plan.rst > new file mode 100644 > index 0000000..b853e90 > --- /dev/null > +++ b/test_plans/rteflow_priority_test_plan.rst > @@ -0,0 +1,338 @@ > +.. Copyright (c) <2019>, Intel Corporation > + All rights reserved. > + > + Redistribution and use in source and binary forms, with or without > + modification, are permitted provided that the following conditions > + are met: > + > + - Redistributions of source code must retain the above copyright > + notice, this list of conditions and the following disclaimer. > + > + - Redistributions in binary form must reproduce the above copyright > + notice, this list of conditions and the following disclaimer in > + the documentation and/or other materials provided with the > + distribution. > + > + - Neither the name of Intel Corporation nor the names of its > + contributors may be used to endorse or promote products derived > + from this software without specific prior written permission. > + > + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND > CONTRIBUTORS > + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND > FITNESS > + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE > + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, > INDIRECT, > + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES > + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE > GOODS OR > + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > CONTRACT, > + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF > ADVISED > + OF THE POSSIBILITY OF SUCH DAMAGE. > + > + > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +Rte_flow Priority Tests > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > + > +Description > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +This document provides the plan for testing the Rte_flow Priority featur= e. > +this feature uses devargs as a hint to active flow priority or not. > + > +This test plan is based on Intel E810 series ethernet cards. > +when priority is not active, flows are created on fdir then switch/ACL. > +when priority is active, flows are identified into 2 category: > +High priority as permission stage that maps to switch/ACL, Low priority > +as distribution stage that maps to fdir, a no destination high priority > +rule is not acceptable, since it may be overwritten by a low priority ru= le due > to cvl FXP behavior. > + > +Note: Since these tests are focus on priority, the patterns in tests are > examples. > + > + > +Prerequisites > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +Bind the pf to dpdk driver:: > + > + ./usertools/dpdk-devbind.py -b vfio-pci af:00.0 > + > +Note: The kernel must be >=3D 3.6+ and VT-d must be enabled in bios. > + > +Test Case: Setting Priority in Non-pipeline Mode > +=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=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +Priority is not active in non-pipeline mode. The default value of priori= ty is 0 > but it will be ignored. > + > +Patterns in this case: > + MAC_IPV4 > + > +#. Start the ``testpmd`` application as follows:: > + > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xf -n 4 -w 0000:af:00.0 = -- > log-level=3D"ice,7" -- -i --txq=3D8 --rxq=3D8 > + set fwd rxonly > + set verbose 1 > + > +#. Create a rule with priority 0, Check the flow can be created but it w= ill map > to fdir filter:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 tos is 4 / end actions queue index 2 / end > + ice_interrupt_handler(): OICR: MDD event > + ice_flow_create(): Succeeded to create (1) flow > + Flow rule #0 created > + > +#. Create a rule with priority 1, check the flow can not be created for = the > vallue of priority is 0 in non-pipeline mode:: > + > + testpmd> flow create 0 priority 1 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 tos is 4 / end actions queue index 2 / end > + ice_flow_create(): Failed to create flow > + Caught error type 4 (priority field): cause: 0x7ffe24e65738, Not > + support priority.: Invalid argument > + > +#. Start the ``testpmd`` application as follows:: > + > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xf -n 4 -w > 0000:af:00.0,pipeline-mode-support=3D0 --log-level=3D"ice,7" -- -i --txq= =3D8 --rxq=3D8 > + set fwd rxonly > + set verbose 1 > + > +#. Create a rule with priority 0, Check the flow can be created but it w= ill map > to fdir filter:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 tos is 4 / end actions queue index 2 / end > + ice_interrupt_handler(): OICR: MDD event > + ice_flow_create(): Succeeded to create (1) flow > + Flow rule #0 created > + > +#. Create a rule with priority 1, check the flow can not be created for = the > vallue of priority is 0 in non-pipeline mode:: > + > + testpmd> flow create 0 priority 1 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 tos is 4 / end actions queue index 2 / end > + ice_flow_create(): Failed to create flow > + Caught error type 4 (priority field): cause: 0x7ffe24e65738, Not > + support priority.: Invalid argument > + > +Test Case: Create Flow Rules with Priority in Pipeline Mode > +=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=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 > + > +Priority is active in pipeline mode. > +Creating flow rules and setting priority 0/1 will map switch/fdir filter > separately. > + > +Patterns in this case: > + MAC_IPV4_TCP > + MAC_IPV4_VXLAN_IPV4_UDP_PAY > + > +#. Start the ``testpmd`` application as follows:: > + > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xf -n 4 -w > 0000:af:00.0,pipeline-mode-support=3D1 --log-level=3D"ice,7" -- -i --txq= =3D8 --rxq=3D8 > + set fwd rxonly > + set verbose 1 > + rx_vxlan_port add 4789 0 > + > +#. Create switch filter rules:: > + > + flow create 0 priority 0 ingress pattern eth / ipv4 src is > + 192.168.0.2 dst is 192.168.0.3 tos is 4 / tcp src is 25 dst is 23 / > + end actions queue index 1 / end > + > + flow create 0 priority 0 ingress pattern eth / ipv4 / udp / vxlan / > + eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / udp src is > + 25 dst is 23 / end actions queue index 2 / end > + > +#. Create fdir filter rules:: > + > + flow create 0 priority 1 ingress pattern eth / ipv4 src is > + 192.168.0.4 dst is 192.168.0.7 tos is 4 ttl is 20 / tcp src is 25 dst > + is 23 / end actions queue index 3 / end > + > + flow create 0 priority 1 ingress pattern eth / ipv4 / udp / vxlan / > + eth / ipv4 src is 192.168.0.4 dst is 192.168.0.7 / udp src is 25 dst > + is 23 / end actions queue index 4 / end > + > +#. Check flow list with commands "flow list 0", all flows are created > correctly:: > + > + +-----+--------+--------+--------+-----------------------+ > + |ID | Group | Prio | Attr | Rul | > + +=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=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D+ > + | 0 | 0 | 0 | i- | ETH IPV4 TCP =3D> QUEUE | > + +-----+--------+--------+--------+-----------------------+ > + | 1 ... | > + +-----+--------+--------+--------+-----------------------+ > + | 2 ... | > + +-----+--------+--------+--------+-----------------------+ > + | 3 ... | > + +-----+--------+--------+--------+-----------------------+ > + > +#. Send packets according to the created rules in tester:: > + > + > sendp([Ether(dst=3D"00:00:00:00:11:00",src=3D"11:22:33:44:55:66")/IP(src= =3D"192.1 > 68.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP(sport=3D25,dport=3D23)/Raw('x'*8= 0)],iface > =3D"enp134s0f0") > + > sendp([Ether(dst=3D"00:00:00:00:11:00",src=3D"11:22:33:44:55:66")/IP()/UD= P()/V > XLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/UDP(sp= ort=3D25, > dport=3D23)/Raw('x'*80)],iface=3D"enp134s0f0") > + > sendp([Ether(dst=3D"00:00:00:00:11:00",src=3D"11:22:33:44:55:66")/IP(src= =3D"192.1 > 68.0.4",dst=3D"192.168.0.7",tos=3D4,ttl=3D20)/TCP(sport=3D25,dport=3D23)/= Raw('x'*80)] > ,iface=3D"enp134s0f0") > + > + sendp([Ether(dst=3D"00:00:00:00:11:00",src=3D"11:22:33:44:55:66")/IP()/= UDP > + ()/VXLAN()/Ether()/IP(src=3D"192.168.0.4 > + ",dst=3D"192.168.0.7")/UDP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D= "enp134 > + s0f0") > + > +#. Check the packets are recieved in right queues by dut:: > + > + testpmd> port 0/queue 1: received 1 packets > + src=3D11:22:33:44:55:66 - dst=3D00:00:00:00:11:00 - type=3D0x0800 -= length=3D134 > - nb_segs=3D1 - RSS hash=3D0x96803f93 - RSS queue=3D0x1 - hw ptype: L2_ET= HER > L3_IPV4_EXT_UNKNOWN L4_TCP - sw ptype: L2_ETHER L3_IPV4 L4_TCP - > l2_len=3D14 - l3_len=3D20 - l4_len=3D20 - Receive queue=3D0x1 > + ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD > PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN > + ...... > + > +#. Create rules without priority, Check only patterns supported by switc= h > can be created for the default priorty is 0. > +So the first flow can be created and the second flow can not be created:= : > + > + testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.3 = dst is > 192.168.0.1 tos is 5 / tcp src is 25 dst is 23 / end actions queue index = 1 / end > + ice_flow_create(): Succeeded to create (2) flow > + Flow rule #1 created > + testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2= dst is > 192.168.0.3 tos is 4 ttl is 20 / sctp src is 25 dst is 23 / end actions q= ueue index > 1 / end > + ice_flow_create(): Failed to create flow > + Caught error type 2 (flow rule (handle)): Invalid input pattern: > + Invalid argument > + > +Test case: Create No Destination High Priority Flow Rule > +=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=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 > + > +A no destination high priority rule is not acceptable. Destination here = means > exact actions. > + > +Patterns in this case: > + MAC_IPV4_TCP > + > +#. Start the ``testpmd`` application as follows:: > + > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xf -n 4 -w > 0000:af:00.0,pipeline-mode-support=3D1 --log-level=3D"ice,7" -- -i --txq= =3D8 --rxq=3D8 > + set fwd rxonly > + set verbose 1 > + > +#. Create a rule without exact actions, check the flows can not be creat= ed:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 tos is 4 / tcp src is 25 dst is 23 / end a= ctions / > end > + Bad arguments > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 tos is 4 / tcp src is 25 dst is 23 / end > + Bad arguments > + > +Test case: Create Flow Rules Only Supported by Fdir Filter with > +Priority 0 > +=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=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=3D > =3D=3D=3D=3D=3D=3D=3D=3D > +=3D=3D=3D=3D > + > +Creating a rule only supported by fdir filter with priority 0, it is not > acceptable. > + > +Patterns in this case: > + MAC_IPV6_SCTP > + MAC_IPV4_SCTP > + > +#. Start the ``testpmd`` application as follows:: > + > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xf -n 4 -w > 0000:af:00.0,pipeline-mode-support=3D1 --log-level=3D"ice,7" -- -i --txq= =3D8 --rxq=3D8 > + set fwd rxonly > + set verbose 1 > + > +#. Create rules, check the flows can not be created:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 src is > 1111:2222:3333:4444:5555:6666:7777:8888 dst is > 1111:2222:3333:4444:5555:6666:7777:9999 / sctp src is 25 dst is 23 / end > actions queue index 1 / end > + ice_flow_create(): Failed to create flow > + Caught error type 2 (flow rule (handle)): Invalid input pattern: > + Invalid argument > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 tos is 4 ttl is 20 / sctp src is 25 dst is= 23 / end > actions queue index 1 / end > + ice_flow_create(): Failed to create flow > + Caught error type 2 (flow rule (handle)): Invalid input pattern: > + Invalid argument > + > + > +Test case: Create flow rules only supported by switch filter with > +priority 1 > +=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=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=3D > =3D=3D=3D=3D=3D=3D=3D=3D > +=3D=3D=3D=3D=3D=3D > + > +Create a rule only supported by fdir switch with priority 1, it is not > acceptable. > + > +Patterns in this case: > + MAC_IPV4_NVGRE_MAC_IPV4 > + MAC_IPV4_NVGRE_MAC_IPV4_UDP > + > +#. Start the ``testpmd`` application as follows:: > + > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xf -n 4 -w > 0000:af:00.0,pipeline-mode-support=3D1 --log-level=3D"ice,7" -- -i --txq= =3D8 --rxq=3D8 > + set fwd rxonly > + set verbose 1 > + > +#. Create rules, check the flows can not be created:: > + > + testpmd> flow create 0 priority 1 ingress pattern eth / ipv4 / nvgre = / eth / > ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / end actions queue i= ndex 3 / > end > + ice_flow_create(): Failed to create flow > + Caught error type 13 (specific pattern item): cause: 0x7fffe65b8128, > + Unsupported pattern: Invalid argument > + > + testpmd> flow create 0 priority 1 ingress pattern eth / ipv4 / nvgre = / eth / > ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / udp src is 25 dst i= s 23 / end > actions queue index 3 / end > + ice_flow_create(): Failed to create flow > + Caught error type 13 (specific pattern item): cause: 0x7fffe65b8128, > + Unsupported pattern: Invalid argument > + > +Test case: Create flow rules with same parameter but differenet actions > +=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=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=3D > =3D=3D=3D=3D=3D=3D=3D=3D > +=3D=3D=3D > + > +It is acceptable to create same rules with differenet filter in pipeline= mode. > +When fdir filter and switch filter has the same parameter rules, the flo= w will > map to switch then fdir. > + > +Patterns in this case: > + MAC_IPV4_TCP > + > +#. Start the ``testpmd`` application as follows:: > + > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xf -n 4 -w > 0000:af:00.0,pipeline-mode-support=3D1 --log-level=3D"ice,7" -- -i --txq= =3D8 --rxq=3D8 > + set fwd rxonly > + set verbose 1 > + > +#. Create switch rule then fdir rule with the same parameter, check two > flows can be created:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 tos is 4 / tcp src is 25 dst is 23 / end a= ctions > queue index 1 / end > + ice_flow_create(): Succeeded to create (2) flow > + Flow rule #0 created > + > + testpmd> flow create 0 priority 1 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 tos is 4 / tcp src is 25 dst is 23 / end a= ctions > queue index 3 / end > + ice_interrupt_handler(): OICR: MDD event > + ice_flow_create(): Succeeded to create (1) flow > + Flow rule #1 created > + > +#. Tester send a pkt to dut:: > + > + > + sendp([Ether(dst=3D"00:00:00:00:11:00",src=3D"11:22:33:44:55:66")/IP(sr= c=3D" > + 192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP(sport=3D25,dport=3D23)/Ra= w('x'*8 > + 0)],iface=3D"enp134s0f0") > + > +#. Check the packets are recieved by dut in queue 1:: > + > + testpmd> port 0/queue 1: received 1 packets > + src=3D11:22:33:44:55:66 - dst=3D00:00:00:00:11:00 - type=3D0x0800 -= length=3D134 > - nb_segs=3D1 - RSS hash=3D0xf12811f1 - RSS queue=3D0x1 - hw ptype: L2_ET= HER > L3_IPV4_EXT_UNKNOWN L4_TCP - sw ptype: L2_ETHER L3_IPV4 L4_TCP - > l2_len=3D14 - l3_len=3D20 - l4_len=3D20 - Receive queue=3D0x1 > + ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD > + PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN > + > +#. Remove the switch rule:: > + > + testpmd>flow destroy 0 rule 0 > + > +#. Tester send a pkt to dut:: > + > + > + sendp([Ether(dst=3D"00:00:00:00:11:00",src=3D"11:22:33:44:55:66")/IP(sr= c=3D" > + 192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP(sport=3D25,dport=3D23)/Ra= w('x'*8 > + 0)],iface=3D"enp134s0f0") > + > +#. Check the packets are recieved in queue 3:: > + > + testpmd> port 0/queue 3: received 1 packets > + src=3D11:22:33:44:55:66 - dst=3D00:00:00:00:11:00 - type=3D0x0800 -= length=3D134 > - nb_segs=3D1 - RSS hash=3D0xf12811f1 - RSS queue=3D0x3 - hw ptype: L2_ET= HER > L3_IPV4_EXT_UNKNOWN L4_TCP - sw ptype: L2_ETHER L3_IPV4 L4_TCP - > l2_len=3D14 - l3_len=3D20 - l4_len=3D20 - Receive queue=3D0x3 > + ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD > + PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN > + > +#. Restart the ``testpmd`` application as follows:: > + > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xf -n 4 -w 0000:af:00.0, > pipeline-mode-support=3D1 --log-level=3D"ice,7" -- -i --txq=3D8 --rxq=3D8 > + set fwd rxonly > + set verbose 1 > + > +#. Create fdir rule then switch rule with the same parameter, check two > flows can be created:: > + > + testpmd> flow create 0 priority 1 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 tos is 4 / tcp src is 25 dst is 23 / end a= ctions > queue index 3 / end > + ice_interrupt_handler(): OICR: MDD event > + ice_flow_create(): Succeeded to create (1) flow > + Flow rule #0 created > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 tos is 4 / tcp src is 25 dst is 23 / end a= ctions > queue index 1 / end > + ice_flow_create(): Succeeded to create (2) flow > + Flow rule #1 created > + > +#. Tester send a pkt to dut:: > + > + > + sendp([Ether(dst=3D"00:00:00:00:11:00",src=3D"11:22:33:44:55:66")/IP(sr= c=3D" > + 192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP(sport=3D25,dport=3D23)/Ra= w('x'*8 > + 0)],iface=3D"enp134s0f0") > + > +#. Check the packets are recieved by dut in queue 1:: > + > + testpmd> port 0/queue 1: received 1 packets > + src=3D11:22:33:44:55:66 - dst=3D00:00:00:00:11:00 - type=3D0x0800 -= length=3D134 > - nb_segs=3D1 - RSS hash=3D0xf12811f1 - RSS queue=3D0x1 - hw ptype: L2_ET= HER > L3_IPV4_EXT_UNKNOWN L4_TCP - sw ptype: L2_ETHER L3_IPV4 L4_TCP - > l2_len=3D14 - l3_len=3D20 - l4_len=3D20 - Receive queue=3D0x1 > + ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD > + PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN > + > +#. Remove the switch rule:: > + > + testpmd>flow destroy 0 rule 1 > + > +#. Tester send a pkt to dut:: > + > + > + sendp([Ether(dst=3D"00:00:00:00:11:00",src=3D"11:22:33:44:55:66")/IP(sr= c=3D" > + 192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP(sport=3D25,dport=3D23)/Ra= w('x'*8 > + 0)],iface=3D"enp134s0f0") > + > +#. Check the packets are recieved in queue 3:: > + > + testpmd> port 0/queue 3: received 1 packets > + src=3D11:22:33:44:55:66 - dst=3D00:00:00:00:11:00 - type=3D0x0800 -= length=3D134 > - nb_segs=3D1 - RSS hash=3D0xf12811f1 - RSS queue=3D0x3 - hw ptype: L2_ET= HER > L3_IPV4_EXT_UNKNOWN L4_TCP - sw ptype: L2_ETHER L3_IPV4 L4_TCP - > l2_len=3D14 - l3_len=3D20 - l4_len=3D20 - Receive queue=3D0x3 > + ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD > + PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN > -- > 2.17.1