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 91476A04B5; Wed, 4 Dec 2019 06:55:43 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 654DF8F96; Wed, 4 Dec 2019 06:55:43 +0100 (CET) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 4BD041F5 for ; Wed, 4 Dec 2019 06:55:41 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Dec 2019 21:55:40 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,276,1571727600"; d="scan'208";a="213713860" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga003.jf.intel.com with ESMTP; 03 Dec 2019 21:55:39 -0800 Received: from shsmsx153.ccr.corp.intel.com (10.239.6.53) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 3 Dec 2019 21:55:39 -0800 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.19]) by SHSMSX153.ccr.corp.intel.com ([169.254.12.195]) with mapi id 14.03.0439.000; Wed, 4 Dec 2019 13:55:37 +0800 From: "Tu, Lijuan" To: "Chen, Zhaoyan" , "dts@dpdk.org" CC: "Chen, Zhaoyan" Thread-Topic: [dts] [PATCH V1] Add flexible RXd test plan Thread-Index: AQHVpl/mi1T5WL/d6kG0F7+0zbPiE6epggmw Date: Wed, 4 Dec 2019 05:55:36 +0000 Message-ID: <8CE3E05A3F976642AAB0F4675D0AD20E0BB7D34D@SHSMSX101.ccr.corp.intel.com> References: <20191129024519.111046-1-zhaoyan.chen@intel.com> In-Reply-To: <20191129024519.111046-1-zhaoyan.chen@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-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYWYxY2YwZmEtNDg2Yy00MWY5LWI3ZmUtZmQ5ZDVjYjYwNmZhIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiREh2VjNxZ3pxMDlhdkRBd0lxayt4bDBha0trdUpuYWpqa3ZxVXh4U2hhUmVDMXc5clBXNHRLaHRGR1NjUFwvd0kifQ== 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 V1] Add flexible RXd test plan 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" Some minus warning, could you please fix them, thanks .git/rebase-apply/patch:52: trailing whitespace. The test suite will cover the flexible RX descriptor on Intel E810 .git/rebase-apply/patch:80: trailing whitespace. .git/rebase-apply/patch:81: trailing whitespace. .git/rebase-apply/patch:83: trailing whitespace. .git/rebase-apply/patch:84: trailing whitespace. warning: squelched 5 whitespace errors warning: 10 lines add whitespace errors. > -----Original Message----- > From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Chen, Zhaoyan > Sent: Friday, November 29, 2019 10:45 AM > To: dts@dpdk.org > Cc: Chen, Zhaoyan > Subject: [dts] [PATCH V1] Add flexible RXd test plan >=20 > Add flexible RXd test plan >=20 > --- > test_plans/flexible_rxd_test_plan.rst | 343 > ++++++++++++++++++++++++++++++++++ > 1 file changed, 343 insertions(+) > create mode 100644 test_plans/flexible_rxd_test_plan.rst >=20 > diff --git a/test_plans/flexible_rxd_test_plan.rst > b/test_plans/flexible_rxd_test_plan.rst > new file mode 100644 > index 0000000..87f27d5 > --- /dev/null > +++ b/test_plans/flexible_rxd_test_plan.rst > @@ -0,0 +1,343 @@ > +.. 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=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +Cryptodev Performance Application Tests > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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 > + > +The test suite will cover the flexible RX descriptor on Intel E810 > +network interface card. > + > + > +Prerequisites > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +Copy correct ``ice.pkg`` into ``/usr/lib/firmware/intel/ice/ddp/``, \ > +For the test cases, comms package is expected. > + > +Prepare test toplogoy, in the test case, it requires > + > +- 1 Intel E810 interface > +- 1 network interface for sending test packet, > + which could be connect to the E810 interface > +- Directly connect the 2 interfaces > + > +Patch testpmd for dumping flexible fields from RXD:: > + > + diff --git a/app/test-pmd/util.c b/app/test-pmd/util.c index > + a1164b7..b90344d 100644 > + --- a/app/test-pmd/util.c > + +++ b/app/test-pmd/util.c > + @@ -10,6 +10,7 @@ > + #include > + #include > + #include > + +#include > + > + > + #include "testpmd.h" > + > + > + @@ -73,6 +74,9 @@ dump_pkt_burst(uint16_t port_id, uint16_t queue, > struct rte_mbuf *pkts[], > + printf("hash=3D0x%x ID=3D0x%x ", > + mb->hash.fdir.hash, mb->hash.fd= ir.id); > + } > + + rte_net_ice_dump_proto_xtr_metadata(mb); > + if (ol_flags & PKT_RX_TIMESTAMP) > + printf(" - timestamp %"PRIu64" ", mb->timestam= p); > + if (ol_flags & PKT_RX_QINQ) > + > + > +Compile DPDK and testpmd:: > + > + make install -j T=3Dx86_64-native-linuxapp-gcc > + > +Bind Intel E810 interface to igb_uio driver, (e.g. 0000:18:00.0) :: > + > + ./usertools/dpdk-devbind.py -b igb_uio 18:00.0 > + > + > + > +Test Case 01: Check single VLAN fields in RXD (802.1Q) > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > + > +Launch testpmd by:: > + > + ./x86_64-native-linux-gcc/app/testpmd -l 6-9 -n 4 -w > + 18:00.0,proto_xtr=3Dvlan -- -i --rxq=3D32 --txq=3D32 --portmask=3D0x1 > + --nb-cores=3D2 > + > + testpmd>set verbose 1 > + testpmd>set fwd io > + testpmd>start > + > +Please change the core setting (-l option) and port's PCI (-w option) \ > +by your DUT environment > + > +Send a packet with VLAN tag from test network interface:: > + > + scapy #launch scapy in shell > + > + #In scapy interactive UI > + p =3D Ether(src=3D"3c:fd:fe:c0:e1:8c", dst=3D"00:00:00:00:01:02", > + type=3D0x8100)/Dot1Q(prio=3D1,vlan=3D23)/IP()/UDP()/DNS() > + sendp(p, iface=3D'enp175s0f0', count=3D1) > + > +Please notice > + > +- Change ethernet source address with your test network interface's > +address > +- Make sure the ethernet destination addres is NOT your real E810 > +interface's address > + > +Check the output in testpmd, **ctag=3D1:0:23** is expected, which is > consistent with VLAN tag set in test packet:: > + > + testpmd> port 0/queue 28: received 1 packets src=3D3C:FD:FE:C0:E1:8C = - > + dst=3D00:00:00:00:01:02 - type=3D0x8100 - length=3D60 - nb_segs=3D1 - R= SS > + hash=3D0xf31f649c - RSS queue=3D0x1c - Protocol > + Extraction:[0x0000:0x2017],vlan,stag=3D0:0:0,ctag=3D1:0:23 - hw ptype: > + L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP - sw ptype: L2_ETHER_VLAN > L3_IPV4 > + L4_UDP - l2_len=3D18 - l3_len=3D20 - l4_len=3D8 - Receive queue=3D0x1c > + ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD > PKT_RX_IP_CKSUM_GOOD > + PKT_RX_OUTER_L4_CKSUM_UNKNOWN > + > + > +Test Case 02: Check single VLAN fields in RXD (802.1ad) > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D > + > +Test steps are same to ``Test Case 01``, just change the launch command > +of testpmd, test packet and expected output > + > +Launch testpmd command:: > + > + ./x86_64-native-linux-gcc/app/testpmd -l 6-9 -n 4 -w > + 18:00.0,proto_xtr=3Dvlan -- -i --rxq=3D32 --txq=3D32 --portmask=3D0x1 > + --nb-cores=3D2 > + > +Test packet:: > + > + p =3D Ether(src=3D'3c:fd:fe:bc:f6:78', dst=3D'68:05:ca:a3:13:4c', > + type=3D0x88A8)/Dot1Q(prio=3D1,vlan=3D23)/IP()/UDP()/DNS() > + > +Expected output in testpmd:: > + > + stag=3D1:0:23 > + > + > +Test Case 03: Check double VLAN fields in RXD (802.1Q) only 1 VLAN tag > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > =3D=3D=3D=3D=3D=3D=3D > + > +Test steps are same to ``Test Case 01``, just change the launch command > +of testpmd, test packet and expected output > + > +Launch testpmd command:: > + > + ./x86_64-native-linux-gcc/app/testpmd -l 6-9 -n 4 -w > + 18:00.0,proto_xtr=3Dvlan -- -i --rxq=3D32 --txq=3D32 --portmask=3D0x1 > + --nb-cores=3D2 > + > +Test packet:: > + > + p =3D Ether(src=3D'3c:fd:fe:bc:f6:78', dst=3D'68:05:ca:a3:13:4c', > + type=3D0x9100)/Dot1Q(prio=3D1,vlan=3D23)/IP()/UDP()/DNS() > + > +Expected output in testpmd:: > + > + stag=3D1:0:23 > + > + > +Test Case 04: Check double VLAN fields in RXD (802.1Q) 2 VLAN tags > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > =3D=3D=3D > + > +Test steps are same to ``Test Case 01``, just change the launch command > +of testpmd, test packet and expected output > + > +Launch testpmd command:: > + > + ./x86_64-native-linux-gcc/app/testpmd -l 6-9 -n 4 -w > + 18:00.0,proto_xtr=3Dvlan -- -i --rxq=3D32 --txq=3D32 --portmask=3D0x1 > + --nb-cores=3D2 > + > +Test packet:: > + > + p =3D Ether(src=3D'3c:fd:fe:bc:f6:78', dst=3D'68:05:ca:a3:13:4c', > + > type=3D0x9100)/Dot1Q(prio=3D1,vlan=3D23)/Dot1Q(prio=3D4,vlan=3D56)/IP()/U= DP()/DN > + S() > + > +Expected output in testpmd:: > + > + stag=3D1:0:23 > + ctag=3D4:0:56 > + > + > +Test Case 05: Check double VLAN fields in RXD (802.1ad) > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D > + > +Test steps are same to ``Test Case 01``, just change the launch command > +of testpmd, test packet and expected output > + > +Launch testpmd command:: > + > + ./x86_64-native-linux-gcc/app/testpmd -l 6-9 -n 4 -w > + 18:00.0,proto_xtr=3Dvlan -- -i --rxq=3D32 --txq=3D32 --portmask=3D0x1 > + --nb-cores=3D2 > + > +Test packet:: > + > + p =3D Ether(src=3D'3c:fd:fe:bc:f6:78', dst=3D'68:05:ca:a3:13:4c', > + > type=3D0x88A8)/Dot1Q(prio=3D1,vlan=3D23)/Dot1Q(prio=3D4,vlan=3D56)/IP()/U= DP()/DN > + S() > + > +Expected output in testpmd:: > + > + stag=3D1:0:23 > + ctag=3D4:0:56 > + > + > +Test Case 06: Check IPv4 fields in RXD > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +Test steps are same to ``Test Case 01``, just change the launch command > +of testpmd, test packet and expected output > + > +Launch testpmd command:: > + > + ./x86_64-native-linux-gcc/app/testpmd -l 6-9 -n 4 -w > + 18:00.0,proto_xtr=3Dipv4 -- -i --rxq=3D32 --txq=3D32 --portmask=3D0x1 > + --nb-cores=3D2 > + > +Test packet:: > + > + p =3D Ether(src=3D'3c:fd:fe:bc:f6:78', > + dst=3D'68:05:ca:a3:13:4c')/IP(tos=3D23,ttl=3D98)/UDP()/Raw(load=3D'XXXX= XXXXXX' > + ) > + > +Expected output in testpmd:: > + > + ver=3D4 > + hdrlen=3D5 > + tos=3D23 > + ttl=3D98 > + proto=3D17 > + > + > +Test Case 07: Check IPv6 fields in RXD > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D > + > +Test steps are same to ``Test Case 01``, just change the launch command > +of testpmd, test packet and expected output > + > +Launch testpmd command:: > + > + ./x86_64-native-linux-gcc/app/testpmd -l 6-9 -n 4 -w > + 18:00.0,proto_xtr=3Dipv6 -- -i --rxq=3D32 --txq=3D32 --portmask=3D0x1 > + --nb-cores=3D2 > + > +Test packet:: > + > + p =3D Ether(src=3D'3c:fd:fe:bc:f6:78', > + dst=3D'68:05:ca:a3:13:4c')/IPv6(tc=3D12,hlim=3D34,fl=3D0x98765)/UDP()/R= aw(load > + =3D'XXXXXXXXXX') > + > +Expected output in testpmd:: > + > + ver=3D6 > + tc=3D12 > + flow_hi4=3D0x9 > + nexthdr=3D17 > + hoplimit=3D34 > + > + > +Test Case 08: Check IPv6 flow field in RXD > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D > + > +Test steps are same to ``Test Case 01``, just change the launch command > +of testpmd, test packet and expected output > + > +Launch testpmd command:: > + > + ./x86_64-native-linux-gcc/app/testpmd -l 6-9 -n 4 -w > + 18:00.0,proto_xtr=3Dipv6_flow -- -i --rxq=3D32 --txq=3D32 --portmask=3D= 0x1 > + --nb-cores=3D2 > + > +Test packet:: > + > + p =3D Ether(src=3D'3c:fd:fe:bc:f6:78', > + dst=3D'68:05:ca:a3:13:4c')/IPv6(tc=3D12,hlim=3D34,fl=3D0x98765)/UDP()/R= aw(load > + =3D'XXXXXXXXXX') > + > +Expected output in testpmd:: > + > + ver=3D6 > + tc=3D12 > + flow=3D0x98765 > + > + > +Test Case 09: Check TCP fields in IPv4 in RXD > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D > + > +Test steps are same to ``Test Case 01``, just change the launch command > +of testpmd, test packet and expected output > + > +Launch testpmd command:: > + > + ./x86_64-native-linux-gcc/app/testpmd -l 6-9 -n 4 -w > + 18:00.0,proto_xtr=3Dtcp -- -i --rxq=3D32 --txq=3D32 --portmask=3D0x1 > + --nb-cores=3D2 > + > +Test packet:: > + > + p =3D Ether(src=3D'3c:fd:fe:bc:f6:78', > + dst=3D'68:05:ca:a3:13:4c')/IP()/TCP(flags=3D'AS')/Raw(load=3D'XXXXXXXXX= X') > + > +Expected output in testpmd:: > + > + doff=3D5 > + flags=3DAS > + > + > +Test Case 10: Check TCP fields in IPv6 in RXD > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D > + > +Test steps are same to ``Test Case 01``, just change the launch command > +of testpmd, test packet and expected output > + > +Launch testpmd command:: > + > + ./x86_64-native-linux-gcc/app/testpmd -l 6-9 -n 4 -w > + 18:00.0,proto_xtr=3Dtcp -- -i --rxq=3D32 --txq=3D32 --portmask=3D0x1 > + --nb-cores=3D2 > + > +Test packet:: > + > + p =3D Ether(src=3D'3c:fd:fe:bc:f6:78', > + dst=3D'68:05:ca:a3:13:4c')/IPv6()/TCP(flags=3D'S')/Raw(load=3D'XXXXXXXX= XX') > + > +Expected output in testpmd:: > + > + doff=3D5 > + flags=3DS > + > + > +Test Case 11: Check IPv4, IPv6, TCP fields in RXD on specific queues > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > =3D=3D=3D=3D=3D > + > +Test steps are same to ``Test Case 01``, just change the launch command > +of testpmd, test packet and expected output > + > +Launch testpmd command:: > + > + ./x86_64-native-linux-gcc/app/testpmd -l 6-9 -n 4 -w > + 18:00.0,proto_xtr=3D'[(2):ipv4,(3):ipv6,(4):tcp]' -- -i --rxq=3D64 > + --txq=3D64 --portmask=3D0x1 > + > +Create generic flow on NIC:: > + > + flow create 0 ingress pattern eth dst is 68:05:ca:a3:13:4c / ipv4 src > + is 192.168.0.1 dst is 192.168.0.2 tos is 23 ttl is 98 / end actions > + queue index 2 / end flow create 0 ingress pattern eth / ipv6 src is > + 2001::3 dst is 2001::4 tc is 8 / end actions queue index 3 / end flow > + create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a9 / ipv4 src is > + 192.168.0.1 dst is 192.168.0.2 / tcp src is 25 dst is 23 / end actions > + queue index 63 / end > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"68:05:ca:a3:13:4c")/IP(src=3D"192.168.0.1",dst=3D"192.168.= 0.2", > + tos=3D23,ttl=3D98)/UDP()/Raw(load=3D'XXXXXXXXXX') > + p =3D Ether(src=3D'3c:fd:fe:bc:f6:78', > + dst=3D'68:05:ca:a3:13:4c')/IPv6(src=3D'2001::3', dst=3D'2001::4', > + tc=3D8,hlim=3D34,fl=3D0x98765)/UDP()/Raw(load=3D'XXXXXXXXXX') > + p =3D Ether(dst=3D'68:05:ca:8d:ed:a9')/IP(src=3D'192.168.0.1', > + dst=3D'192.168.0.2')/TCP(flags=3D'AS', dport=3D23, > + sport=3D25)/Raw(load=3D'XXXXXXXXXX') > + > +Expected output in testpmd:: > + > + Receive queue=3D0x2 > + ver=3D4 > + hdrlen=3D5 > + tos=3D23 > + ttl=3D98 > + proto=3D17 > + > + Receive queue=3D0x3 > + ver=3D6 > + tc=3D12 > + flow_hi4=3D0x9 > + nexthdr=3D17 > + hoplimit=3D34 > + > + Receive queue=3D0x3f > + doff=3D5 > + flags=3DAS > \ No newline at end of file > -- > 2.13.0.windows.1