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 711D1A04DD; Thu, 2 Jan 2020 06:13:54 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5DBDF1BF9B; Thu, 2 Jan 2020 06:13:54 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 30D281BF9A for ; Thu, 2 Jan 2020 06:13:51 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Jan 2020 21:13:48 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,385,1571727600"; d="scan'208";a="224698353" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga001.fm.intel.com with ESMTP; 01 Jan 2020 21:13:48 -0800 Received: from fmsmsx112.amr.corp.intel.com (10.18.116.6) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 1 Jan 2020 21:13:48 -0800 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by FMSMSX112.amr.corp.intel.com (10.18.116.6) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 1 Jan 2020 21:13:47 -0800 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.30]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.245]) with mapi id 14.03.0439.000; Thu, 2 Jan 2020 13:13:45 +0800 From: "Tu, Lijuan" To: "Lu, Nannan" , "dts@dpdk.org" CC: "Lu, Nannan" Thread-Topic: [dts] [PATCH V3] test_plans: add cvl_switch_filter_test_plan.rst Thread-Index: AQHVv50G9IaHLIDd7Eme7gv64mXI86fW14gg Date: Thu, 2 Jan 2020 05:13:44 +0000 Message-ID: <8CE3E05A3F976642AAB0F4675D0AD20E0BBA100E@SHSMSX101.ccr.corp.intel.com> References: <20191231132836.6737-1-nannan.lu@intel.com> In-Reply-To: <20191231132836.6737-1-nannan.lu@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 cvl_switch_filter_test_plan.rst 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 Nannan Lu > Sent: Tuesday, December 31, 2019 9:29 PM > To: dts@dpdk.org > Cc: Lu, Nannan > Subject: [dts] [PATCH V3] test_plans: add cvl_switch_filter_test_plan.rst >=20 > Add cvl_switch_filter_test_plan.rst to test_plans >=20 > Signed-off-by: Nannan Lu > --- > test_plans/cvl_switch_filter_test_plan.rst | 4473 ++++++++++++++++++++ > 1 file changed, 4473 insertions(+) > create mode 100644 test_plans/cvl_switch_filter_test_plan.rst >=20 > diff --git a/test_plans/cvl_switch_filter_test_plan.rst > b/test_plans/cvl_switch_filter_test_plan.rst > new file mode 100644 > index 0000000..6537a77 > --- /dev/null > +++ b/test_plans/cvl_switch_filter_test_plan.rst > @@ -0,0 +1,4473 @@ > +.. 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 > +CVL Switch Filter 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 switch filter feature of CVL= , > including: > + > +* Enable switch filter for IPv4/IPv6 + TCP/UDP in non-pipeline/pipeline > mode (comm #1 package) > +* Enable switch filter for tunnel : VXLAN / NVGRE in non-pipeline/pipeli= ne > mode (comm #1 package) > +* Enable switch filter for PPPOE in non-pipeline mode (comm #1 package) > + > +In pipeline mode, a flow can be set at one specific stage by setting > parameter ``priority``. Currently, > +we support two stages: priority =3D 0 or !0. Flows with priority 0 locat= ed at the > first pipeline stage > +which typically be used as a firewall. At this stage, flow rules are cre= ated for > the device's exact > +match engine: switch. Flows with priority !0 located at the second stage= , > typically packets are > +classified here and be steered to specific queue or queue group. At this > stage, flow rules are created > +for device's flow director engine. > + > +In non-pipeline mode, ``priority`` is ignored, a flow rule can be create= d as a > flow director rule or a > +switch rule depends on its pattern/action. If a rule is supported by swi= tch or > fdir at the same time, it > +will be created in the fdir table first. Therefore, to test switch filte= r in non- > pipeline mode, we need to > +fill the fdir table first, and then the rules are created in the switch = filter table. > The capacity of fdir > +table is 16K, so we create 16K fdir rules to make the fdir table full. > + > +Pattern and input set > +--------------------- > + > + +---------------------+-------------------------------+---------------= -------------------------- > ----------------------------------------------+ > + | | | = Input Set > | > + | Packet Types | Pattern +---------------= ---------------------------- > +-------------------------------------------+ > + | | | n= on-pipeline mode | > 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=3D > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+ > + | | MAC_IPV4_FRAG | = | [Source > IP], [Dest IP], | > + | | | = | [DSCP] > | > + | +-------------------------------+---------------= ----------------------------+-- > -----------------------------------------+ > + | | MAC_IPV4_PAY | = | [Source > IP], [Dest IP], | > + | | | = | [IP protocol], > [DSCP] | > + | +-------------------------------+---------------= ----------------------------+-- > -----------------------------------------+ > + | | MAC_IPV4_UDP_PAY | = | > [Source IP], [Dest IP], | > + | | | = | [DSCP], > | > + | | | = | [Source Port], > [Dest Port] | > + | +-------------------------------+---------------= ----------------------------+-- > -----------------------------------------+ > + | IPv4/IPv6 + TCP/UDP | MAC_IPV4_TCP | > | [Source IP], [Dest IP], | > + | | | = | [DSCP], > | > + | | | = | [Source Port], > [Dest Port] | > + | +-------------------------------+---------------= ----------------------------+-- > -----------------------------------------+ > + | | MAC_IPV6_FRAG | = | [Source > IP], [Dest IP], | > + | | | = | [TC] > | > + | +-------------------------------+---------------= ----------------------------+-- > -----------------------------------------+ > + | | MAC_IPV6_UDP_PAY | = | > [Source IP], [Dest IP], | > + | | | = | [TC], > | > + | | | = | [Source Port], > [Dest Port] | > + | +-------------------------------+---------------= ----------------------------+-- > -----------------------------------------+ > + | | MAC_IPV6_TCP | = | [Source > IP], [Dest IP], | > + | | | = | [TC], > | > + | | | = | [Source Port], > [Dest Port] | > + +---------------------+-------------------------------+---------------= -------------------------- > --+-------------------------------------------+ > + | | MAC_IPV4_TUN_IPV4_FRAG | [Out Dest IP], > [VNI/GRE_KEY], | [inner Source IP], [inner Dest IP], | > + | | | [Inner Source IP], [Inner De= st IP], > | [DSCP] | > + | +-------------------------------+---------------= ----------------------------+-- > -----------------------------------------+ > + | | MAC_IPV4_TUN_IPV4_PAY | [Out Dest IP], > [VNI/GRE_KEY], | N/A | > + | | | [Inner Source = IP], [Inner Dest IP], | > | > + | +-------------------------------+---------------= ----------------------------+-- > -----------------------------------------+ > + | | MAC_IPV4_TUN_IPV4_UDP_PAY | [Out Dest IP], > [VNI/GRE_KEY], | [inner Source IP], [inner Dest IP], | > + | | | [Inner Source = IP], [Inner Dest IP], | > [DSCP], | > + | | | [Inner Source = Port], [Inner Dest Port] | > [Inner Source Port], [Inner Dest Port] | > + | +-------------------------------+---------------= ----------------------------+-- > -----------------------------------------+ > + | | MAC_IPV4_TUN_IPV4_TCP | [Out Dest IP], > [VNI/GRE_KEY], | [Inner Source IP], [Inner Dest IP], | > + | | | [Inner Source = IP], [Inner Dest IP], | > [DSCP], | > + | | | [Inner Source = Port], [Inner Dest Port] | > [Inner Source Port], [Inner Dest Port] | > + | tunnel +-------------------------------+---------------= ---------------------------- > +-------------------------------------------+ > + | | MAC_IPV4_TUN_MAC_IPV4_FRAG | [Out Dest IP], > [VNI/GRE_KEY], | N/A | > + | | | [Inner Dest MA= C], | > | > + | | | [Inner Source = IP], [Inner Dest IP] | > | > + | +-------------------------------+---------------= ----------------------------+-- > -----------------------------------------+ > + | | MAC_IPV4_TUN_MAC_IPV4_PAY | [Out Dest IP], > [VNI/GRE_KEY], | N/A | > + | | | [Inner Dest MA= C], | > | > + | | | [Inner Source = IP], [Inner Dest IP] | > | > + | +-------------------------------+---------------= ----------------------------+-- > -----------------------------------------+ > + | | MAC_IPV4_TUN_MAC_IPV4_UDP_PAY | [Out Dest IP], > [VNI/GRE_KEY], | N/A | > + | | | [Inner Dest MA= C], | > | > + | | | [Inner Source = IP],[Inner Dest IP], | > | > + | | | [Inner Source = Port], [Inner Dest Port] | > | > + | +-------------------------------+---------------= ----------------------------+-- > -----------------------------------------+ > + | | MAC_IPV4_TUN_MAC_IPV4_TCP | [Out Dest IP], > [VNI/GRE_KEY], | N/A | > + | | | [Inner Dest MA= C], | > | > + | | | [Inner Source = IP], [Inner Dest IP], | > | > + | | | [Inner Source = Port], [Inner Dest Port] | > | > + +---------------------+-------------------------------+---------------= -------------------------- > --+-------------------------------------------+ > + | | MAC_PPPOD_PAY | all this kind = of packets > | N/A | > + | +-------------------------------+---------------= ----------------------------+-- > -----------------------------------------+ > + | PPPOD / PPPOE | MAC_PPPOE_PAY | all this kind o= f packets > | N/A | > + | +-------------------------------+---------------= ----------------------------+-- > -----------------------------------------+ > + | | MAC_PPPOE_IPV4_PAY | [Dest MAC], [V= LAN] > | N/A | > + +---------------------+-------------------------------+---------------= -------------------------- > --+-------------------------------------------+ > + > +Action type > +----------- > + > +* To queue > +* To queue group > +* Drop > + > +Prerequisites > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +1. Hardware: > + columbiaville_25g/columbiaville_100g > + > +2. software: > + dpdk: http://dpdk.org/git/dpdk > + scapy: http://www.secdev.org/projects/scapy/ > + > +3. Copy comm #1 package to /lib/firmware/intel/ice/ddp/ice.pkg, > + then reboot server, and compile DPDK. > + > +4. Bind the pf to dpdk driver:: > + > + ./usertools/dpdk-devbind.py -b igb_uio 18:00.2 > + > +5. Launch the app ``testpmd`` with the following arguments:: > + > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xf -n 4 -w 0000:18:00.= 2 -- > log-level=3D"ice,8" -- -i --txq=3D8 --rxq=3D8 > + testpmd> port config 0 rss-hash-key ipv4 > 1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd > 1234abcd1234abcd1234abcd1234abcd1234abcd > + testpmd> set fwd rxonly > + testpmd> set verbose 1 > + > + If set VXLAN flow rule:: > + > + testpmd> rx_vxlan_port add 4789 0 > + testpmd> start > + > + If create rules in pipeline mode, please add the following parameters= in > testpmd command line:: > + > + -w 0000:18:00.2,pipeline-mode-support=3D1 > + > + > +Test case: VXLAN 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 > + > +1. create fdir rules to make the fdir table full, > + which can be created as follows:: > + > + flow create 0 ingress pattern eth / ipv4 src is 192.168.0.0 dst is = 192.1.0.0 > tos is 4 / tcp src is 25 dst is 23 / end actions queue index 5 / end > + > +2. create switch filter rules and verify > + > +* MAC_IPV4_VXLAN_IPV4_FRAG > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end a= ctions > queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3",frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",coun= t=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3",frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these two packets to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3",frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D3)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3",frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.4", > dst=3D"192.168.0.3",frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.5",frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 3 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end a= ctions rss > queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3",frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",coun= t=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3",frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these two packets to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3",frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D3)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3",frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.4", > dst=3D"192.168.0.3",frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.5",frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end a= ctions > drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3" ,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1= ) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3",frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D3)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3",frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.4", > dst=3D"192.168.0.3",frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.5",frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_VXLAN_IPV4_PAY > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end a= ctions > queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", dst=3D"192.168.0.3")/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify these two packets to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D3)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.4", > dst=3D"192.168.0.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.5")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 3 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end a= ctions rss > queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", dst=3D"192.168.0.3")/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify these two packets to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D3)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.4", > dst=3D"192.168.0.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.5")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end a= ctions > drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", dst=3D"192.168.0.3")/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D3)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.4", > dst=3D"192.168.0.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.5")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_VXLAN_IPV4_UDP_PAY > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp s= rc is 50 > dst is 23 / end actions queue index 4 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", dst=3D"192.168.0.3")/UDP(sport=3D50,dport=3D23) > /Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", dst=3D"192.168.0.3")/UDP(sport=3D20,dport=3D23) > /Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", dst=3D"192.168.0.3")/UDP(sport=3D50,dport=3D19) > /Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 4 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp s= rc is 50 > dst is 23 / end actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", dst=3D"192.168.0.3")/UDP(sport=3D50,dport=3D23) > /Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", dst=3D"192.168.0.3")/UDP(sport=3D20,dport=3D23) > /Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", dst=3D"192.168.0.3")/UDP(sport=3D50,dport=3D19) > /Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp s= rc is 50 > dst is 23 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", dst=3D"192.168.0.3")/UDP(sport=3D50,dport=3D23) > /Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", dst=3D"192.168.0.3")/UDP(sport=3D20,dport=3D23) > /Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", dst=3D"192.168.0.3")/UDP(sport=3D50,dport=3D19) > /Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_VXLAN_IPV4_TCP > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / tcp s= rc is 50 dst > is 23 / end actions queue index 5 / end > + > +send mathced packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP(sport=3D50,dport=3D23)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > +verify this packet to queue 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP(sport=3D29,dport=3D23)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP(sport=3D50,dport=3D100)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify these packets not to queue 5 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / tcp s= rc is 50 dst > is 23 / end actions rss queues 4 5 end / end > + > +send mathced packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP(sport=3D50,dport=3D23)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP(sport=3D29,dport=3D23)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP(sport=3D50,dport=3D100)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / tcp s= rc is 50 dst > is 23 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP(sport=3D50,dport=3D23)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP(sport=3D29,dport=3D23)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP(sport=3D50,dport=3D100)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_VXLAN_IPV4_SCTP (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / sctp = src is 25 > dst is 23 / end actions queue index 4 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify this packet to queue 4 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/SCTP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/SCTP(sport=3D25,dport=3D19)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify these packets not to queue 4 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / sctp = src is 25 > dst is 23 / end actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/SCTP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/SCTP(sport=3D25,dport=3D19)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / sctp = src is 25 > dst is 23 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/SCTP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/SCTP(sport=3D25,dport=3D19)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_VXLAN_IPV4_ICMP (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / icmp = / end > actions queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/ICMP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / icmp = / end > actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/ICMP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / icmp = / end > actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/ICMP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether()/IP(sr= c=3D"19 > 2.168.0.2", > dst=3D"192.168.0.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_VXLAN_MAC_IPV4_FRAG > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 d= st is > 192.168.0.3 / end actions queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3" ,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1= ) > + > +verify these two packets to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D3)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a9")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.4", > dst=3D"192.168.0.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.5" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify these packets not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 d= st is > 192.168.0.3 / end actions rss queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3" ,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1= ) > + > +verify these two packets to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D3)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a9")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.4", > dst=3D"192.168.0.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.5" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 d= st is > 192.168.0.3 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3" ,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1= ) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D3)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a9")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.4", > dst=3D"192.168.0.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.5" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_VXLAN_MAC_IPV4_PAY > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 = dst is > 192.168.0.3 / end actions queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", dst=3D"192.168.0.3") /TCP()/Raw('x'= * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", dst=3D"192.168.0.3")/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these two packets to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", dst=3D"192.168.0.3") /TCP()/Raw('x'= * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D3)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", dst=3D"192.168.0.3") /TCP()/Raw('x'= * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a9")/IP(src=3D"192.168.0.2", dst=3D"192.168.0.3") /TCP()/Raw('x'= * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.4", dst=3D"192.168.0.3") /TCP()/Raw('x'= * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", dst=3D"192.168.0.5") /TCP()/Raw('x'= * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 3 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 = dst is > 192.168.0.3 / end actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", dst=3D"192.168.0.3")/TCP()/Raw('x' = * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", dst=3D"192.168.0.3")/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these two packets to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", dst=3D"192.168.0.3")/TCP()/Raw('x' = * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D3)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", dst=3D"192.168.0.3")/TCP()/Raw('x' = * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a9")/IP(src=3D"192.168.0.2", dst=3D"192.168.0.3")/TCP()/Raw('x' = * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.4", dst=3D"192.168.0.3")/TCP()/Raw('x' = * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", dst=3D"192.168.0.5")/TCP()/Raw('x' = * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 = dst is > 192.168.0.3 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", dst=3D"192.168.0.3")/TCP()/Raw('x' = * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", dst=3D"192.168.0.3")/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these two packets dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", dst=3D"192.168.0.3")/TCP()/Raw('x' = * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D3)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", dst=3D"192.168.0.3")/TCP()/Raw('x' = * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a9")/IP(src=3D"192.168.0.2", dst=3D"192.168.0.3")/TCP()/Raw('x' = * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.4", dst=3D"192.168.0.3")/TCP()/Raw('x' = * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", dst=3D"192.168.0.5")/TCP()/Raw('x' = * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_VXLAN_MAC_IPV4_UDP_PAY > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 = dst is > 192.168.0.3 / udp src is 50 dst is 23 / end actions queue index 1 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/UDP(sport=3D50,dport=3D23)/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 1 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/UDP(sport=3D20,dport=3D23)/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/UDP(sport=3D50,dport=3D29)/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 1 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 = dst is > 192.168.0.3 / udp src is 50 dst is 23 / end actions rss queues 4 5 end / = end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/UDP(sport=3D50,dport=3D23)/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/UDP(sport=3D20,dport=3D23)/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/UDP(sport=3D50,dport=3D29)/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 = dst is > 192.168.0.3 / udp src is 50 dst is 23 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/UDP(sport=3D50,dport=3D23)/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/UDP(sport=3D20,dport=3D23)/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/UDP(sport=3D50,dport=3D29)/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_VXLAN_MAC_IPV4_TCP > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 = dst is > 192.168.0.3 / tcp src is 25 dst is 23 / end actions queue index 1 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/TCP(sport=3D25,dport=3D23)/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 1 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/TCP(sport=3D20,dport=3D23)/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/TCP(sport=3D25,dport=3D19)/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 1 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 = dst is > 192.168.0.3 / tcp src is 25 dst is 23 / end actions rss queues 1 2 end / = end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/TCP(sport=3D25,dport=3D23)/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 1 or 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/TCP(sport=3D20,dport=3D23)/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/TCP(sport=3D25,dport=3D19)/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 1 and 2 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 = dst is > 192.168.0.3 / tcp src is 25 dst is 23 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/TCP(sport=3D25,dport=3D23)/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/TCP(sport=3D20,dport=3D23)/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/TCP(sport=3D25,dport=3D19)/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_VXLAN_MAC_IPV4_SCTP (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 = dst is > 192.168.0.3 / sctp src is 25 dst is 23 / end actions queue index 4 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify this packet to queue 4 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/SCTP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/SCTP(sport=3D25,dport=3D29)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify these packets not to queue 4 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 = dst is > 192.168.0.3 / sctp src is 25 dst is 23 / end actions rss queues 4 5 end /= end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/SCTP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/SCTP(sport=3D25,dport=3D29)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 = dst is > 192.168.0.3 / sctp src is 25 dst is 23 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/SCTP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/SCTP(sport=3D25,dport=3D29)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_VXLAN_MAC_IPV4_ICMP (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 d= st is > 192.168.0.3 / icmp / end actions queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/ICMP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 3 > + > +send a mismatched packet:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 3 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 d= st is > 192.168.0.3 / icmp / end actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/ICMP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send a mismatched packet:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= udp / > vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 d= st is > 192.168.0.3 / icmp / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/ICMP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send a mismatched packet:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/UDP()/VXLAN(vni=3D2)/Ether(dst=3D"= 68:05: > ca:8d:ed:a8")/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +3. verify rules can be listed and destroyed:: > + > + testpmd> flow list 0 > + > + verify the rule exists in the list. > + destroy the rule, suppose the rule number is 0:: > + > + testpmd> flow destroy 0 rule 0 > + testpmd> flow list 0 > + > + verify the rule does not exist, and send matched packets, the packets= are > not to the corresponding queues. > + > + > +Test case: VXLAN 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 > + > +1. create switch filter rules and verify > + > +* MAC_IPV4_VXLAN_IPV4_FRAG > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / end actions q= ueue > index 2 / end > + > +send matched packets:: > + > + sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",co= unt=3D1) > + > +verify these two packets to queue 2 > + > +send mismatched packets:: > + > + sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.4", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.5",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D5,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + > +verify these packets not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / end actions r= ss > queues 2 3 end / end > + > +send matched packets:: > + > + sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",co= unt=3D1) > + > +verify these two packets to queue 2 or 3 > + > +send mismatched packets:: > + > + sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.4", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.5",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D5,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + > +verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / end actions d= rop / > end > + > +send matched packets:: > + > + sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",co= unt=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.4", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.5",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D5,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_VXLAN_IPV4_PAY (not support in 19.11) > + > +1) to queue action > + > +create a rule for tcp:: > + > + testpmd> 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 proto is 0x06 tos is 4 /= end > actions queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",proto=3D0x06,tos=3D4)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet to queue 2 > + > +send a mismatched packet:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",proto=3D0x11,tos=3D4)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet not to queue 2 > + > +create a rule for udp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 proto is 0x11 tos is 4 /= end > actions queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",proto=3D0x11,tos=3D4)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet to queue 2 > + > +send a mismatched packet:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",proto=3D0x06,tos=3D4)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet not to queue 2 > + > +2) to queue group action > + > +create a rule for tcp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 proto is 0x06 tos is 4 /= end > actions rss queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",proto=3D0x06,tos=3D4)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet to queue 2 or 3 > + > +send a mismatched packet:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",proto=3D0x11,tos=3D4)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet not to queue and 3 > + > +create a rule for udp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 proto is 0x11 tos is 4 /= end > actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",proto=3D0x11,tos=3D4)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet to queue 4 or 5 > + > +send a mismatched packet:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",proto=3D0x06,tos=3D4)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet not to queue 4 and 5 > + > +3) drop action > + > +create a rule for tcp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 proto is 0x06 tos is 4 /= end > actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",proto=3D0x06,tos=3D4)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet dropped > + > +send a mismatched packet:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",proto=3D0x11,tos=3D4)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet not dropped > + > +create a rule for udp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 proto is 0x11 tos is 4 /= end > actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",proto=3D0x11,tos=3D4)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet dropped > + > +send a mismatched packet:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",proto=3D0x06,tos=3D4)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet not dropped > + > +* MAC_IPV4_VXLAN_IPV4_UDP_PAY > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / udp src is 50= dst is 23 / > end actions queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/UDP(sport=3D50,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/UDP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/UDP(sport=3D50,dport=3D29)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > +verify these packets not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / udp src is 50= dst is 23 / > end actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/UDP(sport=3D50,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/UDP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/UDP(sport=3D50,dport=3D29)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / udp src is 50= dst is 23 / > end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/UDP(sport=3D50,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/UDP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/UDP(sport=3D50,dport=3D29)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_VXLAN_IPV4_TCP > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / tcp src is 50= dst is 23 / > end actions queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/TCP(sport=3D50,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > +verify this packet to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/TCP(sport=3D19,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/TCP(sport=3D50,dport=3D30)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > +verify these packets not to queue 3 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / tcp src is 50= dst is 23 / > end actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/TCP(sport=3D50,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/TCP(sport=3D19,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/TCP(sport=3D50,dport=3D30)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / tcp src is 50= dst is 23 / > end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/TCP(sport=3D50,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/TCP(sport=3D19,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/TCP(sport=3D50,dport=3D30)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_VXLAN_IPV4_SCTP (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / sctp src is 2= 5 dst is 23 / > end actions queue index 4 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0= f2",coun > t=3D1) > + > +verify this packet to queue 4 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/SCTP(sport=3D19,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0= f2",coun > t=3D1) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/SCTP(sport=3D25,dport=3D9)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > +verify these packets not to queue 4 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / sctp src is 2= 5 dst is 23 / > end actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0= f2",coun > t=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/SCTP(sport=3D19,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0= f2",coun > t=3D1) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/SCTP(sport=3D25,dport=3D9)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / sctp src is 2= 5 dst is 23 / > end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0= f2",coun > t=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/SCTP(sport=3D19,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0= f2",coun > t=3D1) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/SCTP(sport=3D25,dport=3D9)/Raw('x'*80)],iface=3D"enp27s0f= 2",count > =3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_VXLAN_IPV4_ICMP (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / icmp type is = 0x08 / > end actions queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/ICMP(type=3D0x08)/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet to queue 2 > + > +send a mismatched packet:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/ICMP(type=3D0x05)/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / icmp type is = 0x08 / > end actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/ICMP(type=3D0x08)/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet to queue 4 or 5 > + > +send a mismatched packet:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/ICMP(type=3D0x05)/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / icmp type is = 0x08 / > end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/ICMP(type=3D0x08)/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet dropped > + > +send a mismatched packet:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IP(src=3D"192.168.0.2",dst=3D"1= 92.16 > 8.0.3",tos=3D4)/ICMP(type=3D0x05)/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet not dropped > + > +* MAC_IPV4_VXLAN_IPV6_FRAG (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end > actions queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/IPv6ExtHdrFragment()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023",tc= =3D > 3)/IPv6ExtHdrFragment()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 4)/IPv6ExtHdrFragment()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end > actions rss queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/IPv6ExtHdrFragment()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023",tc= =3D > 3)/IPv6ExtHdrFragment()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 4)/IPv6ExtHdrFragment()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end > actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/IPv6ExtHdrFragment()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023",tc= =3D > 3)/IPv6ExtHdrFragment()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 4)/IPv6ExtHdrFragment()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_VXLAN_IPV6_PAY (not support in 19.11) > + > +1) to queue action > + > +create a rule for tcp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 0x06 t= c > is 3 / end actions queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh > =3D0x06,tc=3D3)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 3 > + > +send a mismatched packet:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh > =3D0x11,tc=3D3)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 3 > + > +create a rule for udp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 0x11 t= c > is 3 / end actions queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh > =3D0x11,tc=3D3)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 3 > + > +send a mismatched packet:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh > =3D0x06,tc=3D3)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 3 > + > +2) to queue group action > + > +create a rule for tcp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 0x06 t= c > is 3 / end actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh > =3D0x06,tc=3D3)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh > =3D0x11,tc=3D3)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 4 and 5 > + > +create a rule for udp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 0x11 t= c > is 3 / end actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh > =3D0x11,tc=3D3)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh > =3D0x06,tc=3D3)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 4 and 5 > + > +3) drop action > + > +create a rule for tcp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 0x06 t= c > is 3 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh > =3D0x06,tc=3D3)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh > =3D0x11,tc=3D3)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +create a rule for udp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 0x11 t= c > is 3 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh > =3D0x11,tc=3D3)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh > =3D0x06,tc=3D3)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +* MAC_IPV4_VXLAN_IPV6_UDP_PAY (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp s= rc > is 25 dst is 23 / end actions queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/UDP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/UDP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/UDP(sport=3D25,dport=3D29)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp s= rc > is 25 dst is 23 / end actions rss queues 1 2 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/UDP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 1 or 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/UDP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/UDP(sport=3D25,dport=3D29)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 1 and 2 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp s= rc > is 25 dst is 23 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/UDP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/UDP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/UDP(sport=3D25,dport=3D29)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_VXLAN_IPV6_TCP (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp s= rc is > 50 dst is 23 / end actions queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/TCP(sport=3D50,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/TCP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/TCP(sport=3D50,dport=3D30)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp s= rc is > 50 dst is 23 / end actions rss queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/TCP(sport=3D50,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/TCP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/TCP(sport=3D50,dport=3D30)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp s= rc is > 50 dst is 23 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/TCP(sport=3D50,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/TCP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/TCP(sport=3D50,dport=3D30)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_VXLAN_IPV6_SCTP (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / sctp = src > is 25 dst is 23 / end actions queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1= ) > + > +verify this packet to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/SCTP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1= ) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/SCTP(sport=3D25,dport=3D19)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1= ) > + > +verify these packets not to queue 3 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / sctp = src > is 25 dst is 23 / end actions rss queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1= ) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/SCTP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1= ) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/SCTP(sport=3D25,dport=3D19)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1= ) > + > +verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / sctp = src > is 25 dst is 23 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1= ) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/SCTP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1= ) > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/SCTP(sport=3D25,dport=3D19)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1= ) > + > +verify these packets not dropped > + > +* MAC_IPV4_VXLAN_IPV6_ICMPV6 (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / icmp > type is 0x01 / end actions queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/ICMP(type=3D0x01)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/ICMP(type=3D0x02)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / icmp > type is 0x01 / end actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/ICMP(type=3D0x01)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/ICMP(type=3D0x02)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / udp / v= xlan / > eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / icmp > type is 0x01 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/ICMP(type=3D0x01)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/UDP()/VXLAN()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498= : > 8475:1111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc= =3D > 3)/ICMP(type=3D0x02)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +2. verify rules can be listed and destroyed:: > + > + testpmd> flow list 0 > + > + verify the rule exists in the list. > + destroy the rule, suppose the rule number is 0:: > + > + testpmd> flow destroy 0 rule 0 > + testpmd> flow list 0 > + > + verify the rule does not exist, and send matched packets, the packets= are > not to the corresponding queues. > + > + > +Test case: NVGRE 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 > + > +1. create fdir rules to make the fdir table full, > + which can be created as follows:: > + > + flow create 0 ingress pattern eth / ipv4 src is 192.168.0.0 dst is = 192.1.0.0 > tos is 4 / tcp src is 25 dst is 23 / end actions queue index 5 / end > + > +2. create switch filter rules and verify > + > +* MAC_IPV4_NVGRE_IPV4_FRAG > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions= queue > index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3" ,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify these two packets to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D3)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.4", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.5" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify these packets not to queue 3 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions= rss > queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3" ,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify these two packets to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D3)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.4", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.5" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions= drop / > end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3" ,frag=3D5)/Raw('x' * 80)],iface=3D"enp27s0f2",c= ount=3D1) > + > +verify these two packets dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D3)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.4", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.5" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_NVGRE_IPV4_PAY > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions= queue > index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these two packets to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D3)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.4", dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.5")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 3 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions= rss > queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these two packets to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D3)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.4", dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.5")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions= drop / > end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these two packets dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D3)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.4", dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.5")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_NVGRE_IPV4_UDP_PAY > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src i= s 50 dst is > 23 / end actions queue index 4 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D0x8)/Ether()/IP(src=3D= "192.1 > 68.0.2", dst=3D"192.168.0.3")/UDP(sport=3D50,dport=3D23)/Raw('x'*80)], > iface=3D"enp27s0f2", count=3D1) > + > +verify this packet to queue 4 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D0x8)/Ether()/IP(src=3D= "192.1 > 68.0.2", dst=3D"192.168.0.3")/UDP(sport=3D20,dport=3D23)/Raw('x'*80)], > iface=3D"enp27s0f2", count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D0x8)/Ether()/IP(src=3D= "192.1 > 68.0.2", dst=3D"192.168.0.3")/UDP(sport=3D50,dport=3D19)/Raw('x'*80)], > iface=3D"enp27s0f2", count=3D1) > + > +verify these packets not to queue 4 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src i= s 50 dst is > 23 / end actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D0x8)/Ether()/IP(src=3D= "192.1 > 68.0.2", dst=3D"192.168.0.3")/UDP(sport=3D50,dport=3D23)/Raw('x'*80)], > iface=3D"enp27s0f2", count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D0x8)/Ether()/IP(src=3D= "192.1 > 68.0.2", dst=3D"192.168.0.3")/UDP(sport=3D20,dport=3D23)/Raw('x'*80)], > iface=3D"enp27s0f2", count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D0x8)/Ether()/IP(src=3D= "192.1 > 68.0.2", dst=3D"192.168.0.3")/UDP(sport=3D50,dport=3D19)/Raw('x'*80)], > iface=3D"enp27s0f2", count=3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src i= s 50 dst is > 23 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D0x8)/Ether()/IP(src=3D= "192.1 > 68.0.2", dst=3D"192.168.0.3")/UDP(sport=3D50,dport=3D23)/Raw('x'*80)], > iface=3D"enp27s0f2", count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D0x8)/Ether()/IP(src=3D= "192.1 > 68.0.2", dst=3D"192.168.0.3")/UDP(sport=3D20,dport=3D23)/Raw('x'*80)], > iface=3D"enp27s0f2", count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D0x8)/Ether()/IP(src=3D= "192.1 > 68.0.2", dst=3D"192.168.0.3")/UDP(sport=3D50,dport=3D19)/Raw('x'*80)], > iface=3D"enp27s0f2", count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_NVGRE_IPV4_TCP > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is = 25 dst is 23 > / end actions queue index 1 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3")/TCP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > +verify this packet to queue 1 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3")/TCP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3")/TCP(sport=3D25,dport=3D39)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > +verify these packets not to queue 1 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is = 25 dst is 23 > / end actions rss queues 1 2 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3" )/TCP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2", > count=3D1) > + > +verify this packet to queue 1 or 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3")/TCP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3")/TCP(sport=3D25,dport=3D39)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > +verify these packets not to queue 1 and 2 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is = 25 dst is 23 > / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3" )/TCP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2", > count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3")/TCP(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3")/TCP(sport=3D25,dport=3D39)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_NVGRE_IPV4_SCTP (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / sctp src is= 25 dst is 23 > / end actions queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3")/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify this packet to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3")/SCTP(sport=3D1,dport=3D23)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3")/SCTP(sport=3D25,dport=3D20)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify these packets not to queue 3 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / sctp src is= 25 dst is 23 > / end actions rss queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3")/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3")/SCTP(sport=3D1,dport=3D23)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3")/SCTP(sport=3D25,dport=3D20)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / sctp src is= 25 dst is 23 > / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3")/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3")/SCTP(sport=3D1,dport=3D23)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", > dst=3D"192.168.1.3")/SCTP(sport=3D25,dport=3D20)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_NVGRE_IPV4_ICMP (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / icmp / end = actions > queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3")/ICMP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet not to queue 3 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / icmp / end = actions > rss queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3")/ICMP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / icmp / end = actions > drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3")/ICMP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether()/IP(src=3D"1= 92.168. > 1.2", dst=3D"192.168.1.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > +verify this packet not dropped > + > +* MAC_IPV4_NVGRE_MAC_IPV4_FRAG > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is > 192.168.1.3 / end actions queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3" ,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1= ) > + > +verify these two packets to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D3)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a9")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.4", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.5" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify these packets not to queue 3 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is > 192.168.1.3 / end actions rss queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3" ,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1= ) > + > +verify these two packets to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D3)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a9")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.4", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.5" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is > 192.168.1.3 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3" ,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1= ) > + > +verify these two packets dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D3)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a9")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.4", > dst=3D"192.168.1.3" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.5" ,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_NVGRE_MAC_IPV4_PAY > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is > 192.168.1.3 / end actions queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these two packets to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D3)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a9")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.4", > dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.5")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 3 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is > 192.168.1.3 / end actions rss queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D3)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a9")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.4", > dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.5")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is > 192.168.1.3 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.2")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D3)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a9")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.4", > dst=3D"192.168.1.3")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.5")/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_NVGRE_MAC_IPV4_UDP_PAY > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 0x8 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst= is > 192.168.1.3 / udp src is 25 dst is 23 / end actions queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D0x8)/Ether(dst=3D"68:0= 5:ca:8 > d:ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/UDP(sport=3D25,dport=3D23)/Raw('x'*80)], iface=3D"en= p27s0f2", > count=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D0x8)/Ether(dst=3D"68:0= 5:ca:8 > d:ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/UDP(sport=3D2,dport=3D23)/Raw('x'*80)], iface=3D"enp= 27s0f2", > count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D0x8)/Ether(dst=3D"68:0= 5:ca:8 > d:ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/UDP(sport=3D25,dport=3D20)/Raw('x'*80)], iface=3D"en= p27s0f2", > count=3D1) > + > +verify these packets not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 0x8 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst= is > 192.168.1.3 / udp src is 25 dst is 23 / end actions rss queues 2 3 end / = end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D0x8)/Ether(dst=3D"68:0= 5:ca:8 > d:ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/UDP(sport=3D25,dport=3D23)/Raw('x'*80)], iface=3D"en= p27s0f2", > count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D0x8)/Ether(dst=3D"68:0= 5:ca:8 > d:ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/UDP(sport=3D2,dport=3D23)/Raw('x'*80)], iface=3D"enp= 27s0f2", > count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D0x8)/Ether(dst=3D"68:0= 5:ca:8 > d:ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/UDP(sport=3D25,dport=3D20)/Raw('x'*80)], iface=3D"en= p27s0f2", > count=3D1) > + > +verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 0x8 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst= is > 192.168.1.3 / udp src is 25 dst is 23 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D0x8)/Ether(dst=3D"68:0= 5:ca:8 > d:ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/UDP(sport=3D25,dport=3D23)/Raw('x'*80)], iface=3D"en= p27s0f2", > count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D0x8)/Ether(dst=3D"68:0= 5:ca:8 > d:ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/UDP(sport=3D2,dport=3D23)/Raw('x'*80)], iface=3D"enp= 27s0f2", > count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D0x8)/Ether(dst=3D"68:0= 5:ca:8 > d:ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/UDP(sport=3D25,dport=3D20)/Raw('x'*80)], iface=3D"en= p27s0f2", > count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_NVGRE_MAC_IPV4_TCP > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is > 192.168.1.3 / tcp src is 25 dst is 23 / end actions queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/TCP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > +verify this packet to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/TCP(sport=3D1,dport=3D23)/Raw('x'*80)],iface=3D"enp2= 7s0f2",c > ount=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/TCP(sport=3D25,dport=3D20)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > +verify these packets not to queue 3 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is > 192.168.1.3 / tcp src is 25 dst is 23 / end actions rss queues 2 3 end / = end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/TCP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/TCP(sport=3D1,dport=3D23)/Raw('x'*80)],iface=3D"enp2= 7s0f2",c > ount=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/TCP(sport=3D25,dport=3D20)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > +verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is > 192.168.1.3 / tcp src is 25 dst is 23 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/TCP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/TCP(sport=3D1,dport=3D23)/Raw('x'*80)],iface=3D"enp2= 7s0f2",c > ount=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/TCP(sport=3D25,dport=3D20)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_NVGRE_MAC_IPV4_SCTP (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is > 192.168.1.3 / sctp src is 25 dst is 23 / end actions queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify this packet to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/SCTP(sport=3D1,dport=3D23)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/SCTP(sport=3D25,dport=3D19)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify these packets not to queue 3 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is > 192.168.1.3 / sctp src is 25 dst is 23 / end actions rss queues 2 3 end /= end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/SCTP(sport=3D1,dport=3D23)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/SCTP(sport=3D25,dport=3D19)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is > 192.168.1.3 / sctp src is 25 dst is 23 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/SCTP(sport=3D1,dport=3D23)/Raw('x'*80)],iface=3D"enp= 27s0f2", > count=3D1) > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/SCTP(sport=3D25,dport=3D19)/Raw('x'*80)],iface=3D"en= p27s0f2" > ,count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_NVGRE_MAC_IPV4_ICMP (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is > 192.168.1.3 / icmp / end actions queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/ICMP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 3 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is > 192.168.1.3 / icmp / end actions rss queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/ICMP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 /= nvgre > tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is > 192.168.1.3 / icmp / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/ICMP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)/Ether(dst=3D"68:05:= ca:8d: > ed:a8")/IP(src=3D"192.168.1.2", > dst=3D"192.168.1.3")/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +3. verify rules can be listed and destroyed:: > + > + testpmd> flow list 0 > + > + verify the rule exists in the list. > + destroy the rule, suppose the rule number is 0:: > + > + testpmd> flow destroy 0 rule 0 > + testpmd> flow list 0 > + > + verify the rule does not exist, and send matched packets, the packets= are > not to the corresponding queues. > + > + > +Test case: NVGRE 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 > + > +1. create switch filter rules and verify > + > +* MAC_IPV4_NVGRE_IPV4_FRAG > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 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 > + > +send matched packets:: > + > + sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",co= unt=3D1) > + > +verify these two packets to queue 3 > + > +send mismatched packets:: > + > + sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.4", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.5",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D5,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + > +verify these packets not to queue 3 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / end actions rss que= ues 2 3 > end / end > + > +send matched packets:: > + > + sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",co= unt=3D1) > + > +verify these two packets to queue 2 or 3 > + > +send mismatched packets:: > + > + sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.4", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.5",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D5,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + > +verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / end actions drop / = end > + > +send matched packets:: > + > + sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",co= unt=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.4", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.5",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D5,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_NVGRE_IPV4_PAY (not support in 19.11) > + > +1) to queue action > + > +create a rule for tcp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv4 src is 192.168.0.2 dst is 192.168.0.3 proto is 0x06 tos is 4 / end a= ctions > queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > proto=3D0x06,tos=3D4)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > proto=3D0x11,tos=3D4)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 2 > + > +create a rule for udp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv4 src is 192.168.0.2 dst is 192.168.0.3 proto is 0x11 tos is 4 / end a= ctions > queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > proto=3D0x11,tos=3D4)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > proto=3D0x06,tos=3D4)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 2 > + > +2) to queue group action > + > +create a rule for tcp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv4 src is 192.168.0.2 dst is 192.168.0.3 proto is 0x06 tos is 4 / end a= ctions > rss queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > proto=3D0x06,tos=3D4)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > proto=3D0x11,tos=3D4)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 2 and 3 > + > +create a rule for udp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv4 src is 192.168.0.2 dst is 192.168.0.3 proto is 0x11 tos is 4 / end a= ctions > rss queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > proto=3D0x11,tos=3D4)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > proto=3D0x06,tos=3D4)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 2 and 3 > + > +3) drop action > + > +create a rule for tcp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv4 src is 192.168.0.2 dst is 192.168.0.3 proto is 0x06 tos is 4 / end a= ctions > drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > proto=3D0x06,tos=3D4)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > proto=3D0x11,tos=3D4)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +create a rule for udp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv4 src is 192.168.0.2 dst is 192.168.0.3 proto is 0x11 tos is 4 / end a= ctions > drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > proto=3D0x11,tos=3D4)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > proto=3D0x06,tos=3D4)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +* MAC_IPV4_NVGRE_IPV4_UDP_PAY > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 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 50 dst i= s 23 / end > actions queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/UDP(sport=3D50,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",coun= t=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/UDP(sport=3D2,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/UDP(sport=3D50,dport=3D100)/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify these packets not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 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 50 dst i= s 23 / end > actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/UDP(sport=3D50,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",coun= t=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/UDP(sport=3D2,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/UDP(sport=3D50,dport=3D100)/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 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 50 dst i= s 23 / end > actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/UDP(sport=3D50,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",coun= t=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/UDP(sport=3D2,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count= =3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/UDP(sport=3D50,dport=3D100)/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_NVGRE_IPV4_TCP > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / tcp src is 50 dst i= s 23 / end > actions queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/TCP(sport=3D50,dport=3D23)/Raw('x' * 80)],iface=3D"enp27s0f2",co= unt=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/TCP(sport=3D3,dport=3D23)/Raw('x' * 80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/TCP(sport=3D50,dport=3D100)/Raw('x' * 80)],iface=3D"enp27s0f2",c= ount=3D1) > + > +verify these packets not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / tcp src is 50 dst i= s 23 / end > actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/TCP(sport=3D50,dport=3D23)/Raw('x' * 80)],iface=3D"enp27s0f2",co= unt=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/TCP(sport=3D3,dport=3D23)/Raw('x' * 80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/TCP(sport=3D50,dport=3D100)/Raw('x' * 80)],iface=3D"enp27s0f2",c= ount=3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / tcp src is 50 dst i= s 23 / end > actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/TCP(sport=3D50,dport=3D23)/Raw('x' * 80)],iface=3D"enp27s0f2",co= unt=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/TCP(sport=3D3,dport=3D23)/Raw('x' * 80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/TCP(sport=3D50,dport=3D100)/Raw('x' * 80)],iface=3D"enp27s0f2",c= ount=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_NVGRE_IPV4_SCTP (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / sctp src is 25 dst = is 23 / end > actions queue index 4 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify this packet to queue 4 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/SCTP(sport=3D4,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",coun= t=3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/SCTP(sport=3D25,dport=3D10)/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify these packets not to queue 4 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / sctp src is 25 dst = is 23 / end > actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/SCTP(sport=3D4,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",coun= t=3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/SCTP(sport=3D25,dport=3D10)/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / sctp src is 25 dst = is 23 / end > actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/SCTP(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/SCTP(sport=3D4,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",coun= t=3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/SCTP(sport=3D25,dport=3D10)/Raw('x'*80)],iface=3D"enp27s0f2",cou= nt=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_NVGRE_IPV4_ICMP (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / icmp type is 0x08 /= end > actions queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/ICMP(type=3D0x08)/Raw('x' * 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/ICMP(type=3D0x04)/Raw('x' * 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / icmp type is 0x08 /= end > actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/ICMP(type=3D0x08)/Raw('x' * 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/ICMP(type=3D0x04)/Raw('x' * 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv4 src is 192.168.0.2 dst is 192.168.0.3 tos is 4 / icmp type is 0x08 /= end > actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/ICMP(type=3D0x08)/Raw('x' * 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168= .0.3", > tos=3D4)/ICMP(type=3D0x04)/Raw('x' * 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +* MAC_IPV4_NVGRE_IPV6_FRAG (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions > queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/IP= v > 6ExtHdrFragment()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023",tc=3D3)/IP= v > 6ExtHdrFragment()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D4)/IP= v > 6ExtHdrFragment()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions > rss queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/IP= v > 6ExtHdrFragment()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023",tc=3D3)/IP= v > 6ExtHdrFragment()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D4)/IP= v > 6ExtHdrFragment()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions > drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/IP= v > 6ExtHdrFragment()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2023",tc=3D3)/IP= v > 6ExtHdrFragment()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D4)/IP= v > 6ExtHdrFragment()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_NVGRE_IPV6_PAY (not support in 19.11) > + > +1) to queue action > + > +create a rule for tcp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 0x06 tc is 3= / > end actions queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x06, > tc=3D3)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x11, > tc=3D3)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 3 > + > +create a rule for udp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 0x11 tc is 3= / > end actions queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x11, > tc=3D3)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x06, > tc=3D3)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 3 > + > +2) to queue group action > + > +create a rule for tcp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 0x06 tc is 3= / > end actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x06, > tc=3D3)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x11, > tc=3D3)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 4 and 5 > + > +create a rule for udp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 0x11 tc is 3= / > end actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x11, > tc=3D3)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x06, > tc=3D3)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 4 and 5 > + > +3) drop action > + > +create a rule for tcp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 0x06 tc is 3= / > end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x06, > tc=3D3)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x11, > tc=3D3)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +create a rule for udp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 0x11 tc is 3= / > end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x11, > tc=3D3)/UDP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x06, > tc=3D3)/TCP()/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +* MAC_IPV4_NVGRE_IPV6_UDP_PAY (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is = 25 > dst is 23 / end actions queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/UD > P(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/UD > P(sport=3D5,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/UD > P(sport=3D25,dport=3D30)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is = 25 > dst is 23 / end actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/UD > P(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/UD > P(sport=3D5,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/UD > P(sport=3D25,dport=3D30)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is = 25 > dst is 23 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/UD > P(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/UD > P(sport=3D5,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/UD > P(sport=3D25,dport=3D30)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_NVGRE_IPV6_TCP (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is = 25 > dst is 23 / end actions queue index 1 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/TC= P > (sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 1 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/TC= P > (sport=3D7,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/TC= P > (sport=3D25,dport=3D20)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 1 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is = 25 > dst is 23 / end actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/TC= P > (sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/TC= P > (sport=3D7,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/TC= P > (sport=3D25,dport=3D20)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is = 25 > dst is 23 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/TC= P > (sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/TC= P > (sport=3D7,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/TC= P > (sport=3D25,dport=3D20)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_NVGRE_IPV6_SCTP (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / sctp src is= 25 > dst is 23 / end actions queue index 5 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/SC= T > P(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/SC= T > P(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/SC= T > P(sport=3D25,dport=3D39)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 5 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / sctp src is= 25 > dst is 23 / end actions rss queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/SC= T > P(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/SC= T > P(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/SC= T > P(sport=3D25,dport=3D39)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / sctp src is= 25 > dst is 23 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/SC= T > P(sport=3D25,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/SC= T > P(sport=3D20,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/SC= T > P(sport=3D25,dport=3D39)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_NVGRE_IPV6_ICMPV6 (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / icmp type i= s > 0x01 / end actions queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/IC > MP(type=3D0x01)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/IC > MP(type=3D0x04)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / icmp type i= s > 0x01 / end actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/IC > MP(type=3D0x01)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/IC > MP(type=3D0x04)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 / nvgre /= eth / > ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / icmp type i= s > 0x01 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/IC > MP(type=3D0x01)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP()/NVGRE()/Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:= 1 > 111:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/IC > MP(type=3D0x04)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +2. verify rules can be listed and destroyed:: > + > + testpmd> flow list 0 > + > + verify the rule exists in the list. > + destroy the rule, suppose the rule number is 0:: > + > + testpmd> flow destroy 0 rule 0 > + testpmd> flow list 0 > + > + verify the rule does not exist, and send matched packets, the packets= are > not to the corresponding queues. > + > + > +Test case: PPPOD 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 > + > +1. create fdir rules to make the fdir table full, > + which can be created as follows:: > + > + flow create 0 ingress pattern eth / ipv4 src is 192.168.0.0 dst is = 192.1.0.0 > tos is 4 / tcp src is 25 dst is 23 / end actions queue index 5 / end > + > +2. create switch filter rules and verify > + > +* MAC_PPPOD_PAY > + > +1) to queue action > + > +create rules:: > + > + testpmd> flow create 0 ingress pattern eth type is 0x8863 / end action= s > queue index 2 / end > + > +send matched packets:: > + > + sendp([Ether(dst=3D"00:11:22:33:44:55")/PPPoED()/PPP()/IP()/Raw('x' > *80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + sendp([Ether(dst=3D"00:11:22:33:44:55")/PPPoE()/PPP()/IP()/Raw('x' > *80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth type is 0x8863 / end action= s rss > queues 4 5 end / end > + > +send matched packets:: > + > + sendp([Ether(dst=3D"00:11:22:33:44:55")/PPPoED()/PPP()/IP()/Raw('x' > *80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + sendp([Ether(dst=3D"00:11:22:33:44:55")/PPPoE()/PPP()/IP()/Raw('x' > *80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth type is 0x8863 / end action= s > drop / end > + > +send matched packets:: > + > + sendp([Ether(dst=3D"00:11:22:33:44:55")/PPPoED()/PPP()/IP()/Raw('x' > *80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + sendp([Ether(dst=3D"00:11:22:33:44:55")/PPPoE()/PPP()/IP()/Raw('x' > *80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +3. verify rules can be listed and destroyed:: > + > + testpmd> flow list 0 > + > + verify the rule exists in the list. > + destroy the rule, suppose the rule number is 0:: > + > + testpmd> flow destroy 0 rule 0 > + testpmd> flow list 0 > + > + verify the rule does not exist, and send matched packets, the packets= are > not to the corresponding queues. > + > + > +Test case: PPPOE 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 > + > +1. create fdir rules to make the fdir table full, > + which can be created as follows:: > + > + flow create 0 ingress pattern eth / ipv4 src is 192.168.0.0 dst is = 192.1.0.0 > tos is 4 / tcp src is 25 dst is 23 / end actions queue index 5 / end > + > +2. create switch filter rules and verify > + > +* MAC_PPPOE_PAY > + > +1) to queue action > + > +create rules:: > + > + testpmd> flow create 0 ingress pattern eth type is 0x8864 / end action= s > queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether(dst=3D"00:11:22:33:44:55")/PPPoE()/PPP()/IP()/Raw('x'*80)],i= face > =3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether(dst=3D"00:11:22:33:44:55")/PPPoED()/PPP()/IP()/Raw('x'*80)],= ifac > e=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth type is 0x8864 / end action= s rss > queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether(dst=3D"00:11:22:33:44:55")/PPPoE()/PPP()/IP()/Raw('x'*80)],i= face > =3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether(dst=3D"00:11:22:33:44:55")/PPPoED()/PPP()/IP()/Raw('x'*80)],= ifac > e=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth type is 0x8864 / end action= s > drop / end > + > +send matched packets:: > + > + > sendp([Ether(dst=3D"00:11:22:33:44:55")/PPPoE()/PPP()/IP()/Raw('x'*80)],i= face > =3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether(dst=3D"00:11:22:33:44:55")/PPPoED()/PPP()/IP()/Raw('x'*80)],= ifac > e=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +* MAC_PPPOE_IPV4_PAY > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / = vlan > tci is 1 / pppoes / end actions queue index 1 / end > + > +send matched packets:: > + > + > sendp([Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type= =3D0x8 > 864)/PPPoE()/PPP(proto=3D0x0021)/IP()/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 1 > + > +send mismatched packets:: > + > + > sendp([Ether(dst=3D"00:11:22:33:44:54",type=3D0x8100)/Dot1Q(vlan=3D1,type= =3D0x8 > 864)/PPPoE()/PPP(proto=3D0x0021)/IP()/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D2,type= =3D0x8 > 864)/PPPoE()/PPP(proto=3D0x0021)/IP()/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 1 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / = vlan > tci is 1 / pppoes / end actions rss queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type= =3D0x8 > 864)/PPPoE()/PPP(proto=3D0x0021)/IP()/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether(dst=3D"00:11:22:33:44:54",type=3D0x8100)/Dot1Q(vlan=3D1,type= =3D0x8 > 864)/PPPoE()/PPP(proto=3D0x0021)/IP()/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D2,type= =3D0x8 > 864)/PPPoE()/PPP(proto=3D0x0021)/IP()/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / = vlan > tci is 1 / pppoes / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type= =3D0x8 > 864)/PPPoE()/PPP(proto=3D0x0021)/IP()/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether(dst=3D"00:11:22:33:44:54",type=3D0x8100)/Dot1Q(vlan=3D1,type= =3D0x8 > 864)/PPPoE()/PPP(proto=3D0x0021)/IP()/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D2,type= =3D0x8 > 864)/PPPoE()/PPP(proto=3D0x0021)/IP()/Raw('x' * > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +3. verify rules can be listed and destroyed:: > + > + testpmd> flow list 0 > + > + verify the rule exists in the list. > + destroy the rule, suppose the rule number is 0:: > + > + testpmd> flow destroy 0 rule 0 > + testpmd> flow list 0 > + > + verify the rule does not exist, and send matched packets, the packets= are > not to the corresponding queues. > + > + > +Test case: Non-tunnel 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 > + > +1. create switch filter rules and verify > + > +* MAC_IPV4_FRAG > + > +1) to queue action > + > +create a rule:: > + > + 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 3 / end > + > +send matched packets:: > + > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",co= unt=3D1) > + > +verify these two packets to queue 3 > + > +send mismatched packets:: > + > + sendp([Ether()/IP(src=3D"192.168.0.4", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.5",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D7,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + > +verify these packets not to queue 3 > + > +create a rule with partial fields:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 / end actions queue index 3 / end > + > +send matched packets:: > + > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",co= unt=3D1) > + > +verify these two packets to queue 3 > + > +send mismatched packets:: > + > + sendp([Ether()/IP(src=3D"192.168.0.4", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.5",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + > +verify these packets not to queue 3 > + > +2) to queue group action > + > +create a rule:: > + > + 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 rss queues 2 3 end = / end > + > +send matched packets:: > + > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",co= unt=3D1) > + > +verify these two packets to queue 2 or 3 > + > +send mismatched packets:: > + > + sendp([Ether()/IP(src=3D"192.168.0.4", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.5",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D7,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + > +verify these packets not to queue 2 and 3 > + > +create a rule with partial fields:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 / end actions rss queues 2 3 end / end > + > +send matched packets:: > + > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",co= unt=3D1) > + > +verify these two packets to queue 2 or 3 > + > +send mismatched packets:: > + > + sendp([Ether()/IP(src=3D"192.168.0.4", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.5",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + > + verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + 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 drop / end > + > +send matched packets:: > + > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",co= unt=3D1) > + > +verify these two packets dropped > + > +send mismatched packets:: > + > + sendp([Ether()/IP(src=3D"192.168.0.4", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.5",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D7,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + > +verify these packets not dropped > + > +create a rule with partial fields:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 / end actions drop / end > + > +send matched packets:: > + > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/Raw('x'*80)],iface=3D"enp27s0f2",co= unt=3D1) > + > +verify these two packets dropped > + > +send mismatched packets:: > + > + sendp([Ether()/IP(src=3D"192.168.0.4", > dst=3D"192.168.0.3",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + sendp([Ether()/IP(src=3D"192.168.0.2", > dst=3D"192.168.0.5",tos=3D4,frag=3D5)/TCP()/Raw('x'*80)],iface=3D"enp27s0= f2",count > =3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_PAY > + > +1) to queue action > + > +create a rule for tcp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 proto is 0x06 tos is 4 / end actions queue= index > 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP()/= Raw('x'* > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/UDP()/= Raw('x' > *80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 2 > + > +create a rule for udp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 proto is 0x11 tos is 4 / end actions queue= index > 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/UDP()/= Raw('x' > *80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP()/= Raw('x'* > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 2 > + > +2) to queue group action > + > +create a rule for tcp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 proto is 0x06 tos is 4 / end actions rss q= ueues 2 > 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP()/= Raw('x'* > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/UDP()/= Raw('x' > *80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 2 and 3 > + > +create a rule for udp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 proto is 0x11 tos is 4 / end actions rss q= ueues 2 > 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/UDP()/= Raw('x' > *80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP()/= Raw('x'* > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 2 and 3 > + > +3) drop action > + > +create a rule for tcp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 proto is 0x06 tos is 4 / end actions drop = / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP()/= Raw('x'* > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/UDP()/= Raw('x' > *80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +create a rule for udp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is > 192.168.0.2 dst is 192.168.0.3 proto is 0x11 tos is 4 / end actions drop = / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/UDP()/= Raw('x' > *80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP()/= Raw('x'* > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +* MAC_IPV4_UDP_PAY > + > +1) to queue action > + > +create a rule:: > + > + 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 / udp src is 50 dst is 23 / end a= ctions > queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/UDP(sp= ort=3D50, > dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/UDP(sp= ort=3D2,d > port=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/UDP(sp= ort=3D50, > dport=3D3)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + 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 / udp src is 50 dst is 23 / end a= ctions rss > queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/UDP(sp= ort=3D50, > dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/UDP(sp= ort=3D2,d > port=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/UDP(sp= ort=3D50, > dport=3D3)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + 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 / udp src is 50 dst is 23 / end a= ctions > drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/UDP(sp= ort=3D50, > dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/UDP(sp= ort=3D2,d > port=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/UDP(sp= ort=3D50, > dport=3D3)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_TCP > + > +1) to queue action > + > +create a rule:: > + > + 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 50 dst is 23 / end a= ctions > queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP(sp= ort=3D50, > dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP(sp= ort=3D5,d > port=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP(sp= ort=3D50, > dport=3D7)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 3 > + > +2) to queue group action > + > +create a rule:: > + > + 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 50 dst is 23 / end a= ctions rss > queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP(sp= ort=3D50, > dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP(sp= ort=3D5,d > port=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP(sp= ort=3D50, > dport=3D7)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + 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 50 dst is 23 / end a= ctions > drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP(sp= ort=3D50, > dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP(sp= ort=3D5,d > port=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/TCP(sp= ort=3D50, > dport=3D7)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_SCTP (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + 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 / sctp src is 25 dst is 23 / end = actions > queue index 4 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/SCTP(s= port=3D25 > ,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/SCTP(s= port=3D1, > dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/SCTP(s= port=3D25 > ,dport=3D3)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 4 > + > +2) to queue group action > + > +create a rule:: > + > + 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 / sctp src is 25 dst is 23 / end = actions rss > queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/SCTP(s= port=3D25 > ,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/SCTP(s= port=3D1, > dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/SCTP(s= port=3D25 > ,dport=3D3)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + 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 / sctp src is 25 dst is 23 / end = actions > drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/SCTP(s= port=3D25 > ,dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/SCTP(s= port=3D1, > dport=3D23)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/SCTP(s= port=3D25 > ,dport=3D3)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV4_ICMP (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + 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 / icmp type is 0x08 / end actions= queue > index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/ICMP(t= ype=3D0x > 08)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/ICMP(t= ype=3D0x > 04)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + 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 / icmp type is 0x08 / end actions= rss > queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/ICMP(t= ype=3D0x > 08)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/ICMP(t= ype=3D0x > 04)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + 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 / icmp type is 0x08 / end actions= drop / > end > + > +send matched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/ICMP(t= ype=3D0x > 08)/Raw('x' * 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IP(src=3D"192.168.0.2",dst=3D"192.168.0.3",tos=3D4)/ICMP(t= ype=3D0x > 04)/Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +* MAC_IPV6_FRAG > + > +1) to queue action > + > +create a rule with src ipv6 + dst ipv6:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 src is > CDCD:910A:2222:5498:8475:1111:3900:1515 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions queue index 5 / > end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/IPv6ExtHdrFragment()/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1514",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/IPv6ExtHdrFragment()/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2023",tc=3D3)/IPv6ExtHdrFragment()/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 5 > + > +create a rule with dst ipv6 + tc:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions queue index > 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/IPv6ExtHdrFragment()/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2027",tc=3D3)/IPv6ExtHdrFragment()/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D4)/IPv6ExtHdrFragment()/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 3 > + > +2) to queue group action > + > +create a rule with src ipv6 + dst ipv6:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 src is > CDCD:910A:2222:5498:8475:1111:3900:1515 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions rss queues 2 3 end > / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/IPv6ExtHdrFragment()/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1514",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/IPv6ExtHdrFragment()/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2023",tc=3D3)/IPv6ExtHdrFragment()/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 2 and 3 > + > +create a rule with dst ipv6 + tc:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions rss queues = 2 > 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/IPv6ExtHdrFragment()/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2027",tc=3D3)/IPv6ExtHdrFragment()/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D4)/IPv6ExtHdrFragment()/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule with src ipv6 + dst ipv6:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 src is > CDCD:910A:2222:5498:8475:1111:3900:1515 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/IPv6ExtHdrFragment()/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1514",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/IPv6ExtHdrFragment()/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2023",tc=3D3)/IPv6ExtHdrFragment()/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +create a rule with dst ipv6 + tc:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/IPv6ExtHdrFragment()/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2027",tc=3D3)/IPv6ExtHdrFragment()/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D4)/IPv6ExtHdrFragment()/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV6_PAY (not support in 19.11) > + > +1) to queue action > + > +create a rule for tcp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 0x06 tc is 3 / end > actions queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x06,tc=3D3)/TCP()/Raw('x'*= 8 > 0)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x11,tc=3D3)/UDP()/Raw('x'* > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 3 > + > +create a rule for udp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 0x11 tc is 3 / end > actions queue index 3 / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x11,tc=3D3)/UDP()/Raw('x'* > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x06,tc=3D3)/TCP()/Raw('x'*= 8 > 0)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 3 > + > +2) to queue group action > + > +create a rule for tcp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 0x06 tc is 3 / end > actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x06,tc=3D3)/TCP()/Raw('x'*= 8 > 0)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x11,tc=3D3)/UDP()/Raw('x'* > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 4 and 5 > + > +create a rule for udp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 0x11 tc is 3 / end > actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x11,tc=3D3)/UDP()/Raw('x'* > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x06,tc=3D3)/TCP()/Raw('x'*= 8 > 0)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 4 and 5 > + > +3) drop action > + > +create a rule for tcp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 0x06 tc is 3 / end > actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x06,tc=3D3)/TCP()/Raw('x'*= 8 > 0)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x11,tc=3D3)/UDP()/Raw('x'* > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +create a rule for udp:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 0x11 tc is 3 / end > actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x11,tc=3D3)/UDP()/Raw('x'* > 80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",nh=3D0x06,tc=3D3)/TCP()/Raw('x'*= 8 > 0)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +* MAC_IPV6_UDP_PAY > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 50 dst is 23= / > end actions queue index 5 / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/UDP(sport=3D50,dport=3D2= 3) > /Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/UDP(sport=3D3,dport=3D23= )/ > Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/UDP(sport=3D50,dport=3D4= )/ > Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 5 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 50 dst is 23= / > end actions rss queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/UDP(sport=3D50,dport=3D2= 3) > /Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/UDP(sport=3D3,dport=3D23= )/ > Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/UDP(sport=3D50,dport=3D4= )/ > Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 50 dst is 23= / > end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/UDP(sport=3D50,dport=3D2= 3) > /Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/UDP(sport=3D3,dport=3D23= )/ > Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/UDP(sport=3D50,dport=3D4= )/ > Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these packets not dropped > + > +* MAC_IPV6_TCP > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is 25 dst is 23= / > end actions queue index 4 / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/TCP(sport=3D25,dport=3D2= 3)/ > Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/TCP(sport=3D1,dport=3D23= )/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/TCP(sport=3D25,dport=3D2= 0)/ > Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these two packets not to queue 4 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is 25 dst is 23= / > end actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/TCP(sport=3D25,dport=3D2= 3)/ > Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/TCP(sport=3D1,dport=3D23= )/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/TCP(sport=3D25,dport=3D2= 0)/ > Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these two packets not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is 25 dst is 23= / > end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/TCP(sport=3D25,dport=3D2= 3)/ > Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/TCP(sport=3D1,dport=3D23= )/R > aw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/TCP(sport=3D25,dport=3D2= 0)/ > Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these two packets not dropped > + > +* MAC_IPV6_SCTP (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / sctp src is 25 dst is 2= 3 / > end actions queue index 4 / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/SCTP(sport=3D25,dport=3D= 23) > /Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/SCTP(sport=3D1,dport=3D2= 3)/ > Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/SCTP(sport=3D25,dport=3D= 9)/ > Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these two packets not to queue 4 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / sctp src is 25 dst is 2= 3 / > end actions rss queues 2 3 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/SCTP(sport=3D25,dport=3D= 23) > /Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 or 3 > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/SCTP(sport=3D1,dport=3D2= 3)/ > Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/SCTP(sport=3D25,dport=3D= 9)/ > Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these two packets not to queue 2 and 3 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / sctp src is 25 dst is 2= 3 / > end actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/SCTP(sport=3D25,dport=3D= 23) > /Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/SCTP(sport=3D1,dport=3D2= 3)/ > Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/SCTP(sport=3D25,dport=3D= 9)/ > Raw('x'*80)],iface=3D"enp27s0f2",count=3D1) > + > +verify these two packets not dropped > + > +* MAC_IPV6_ICMPV6 (not support in 19.11) > + > +1) to queue action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / icmp type is 0x01 / end > actions queue index 2 / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/ICMP(type=3D0x01)/Raw('x= ' > *80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 2 > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/ICMP(type=3D0x03)/Raw('x= ' > *80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 2 > + > +2) to queue group action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / icmp type is 0x01 / end > actions rss queues 4 5 end / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/ICMP(type=3D0x01)/Raw('x= ' > *80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet to queue 4 or 5 > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/ICMP(type=3D0x03)/Raw('x= ' > *80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not to queue 4 and 5 > + > +3) drop action > + > +create a rule:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is > CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / icmp type is 0x01 / end > actions drop / end > + > +send matched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/ICMP(type=3D0x01)/Raw('x= ' > *80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet dropped > + > +send mismatched packets:: > + > + > sendp([Ether()/IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:1515",dst= =3D" > CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3D3)/ICMP(type=3D0x03)/Raw('x= ' > *80)],iface=3D"enp27s0f2",count=3D1) > + > +verify this packet not dropped > + > +2. verify rules can be listed and destroyed:: > + > + testpmd> flow list 0 > + > + verify the rule exists in the list. > + destroy the rule, suppose the rule number is 0:: > + > + testpmd> flow destroy 0 rule 0 > + testpmd> flow list 0 > + > + verify the rule does not exist, and send matched packets, the packets= are > not to the corresponding queues. > -- > 2.17.1