From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6F5D7A034F; Thu, 25 Feb 2021 09:58:22 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 215E216080C; Thu, 25 Feb 2021 09:58:22 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 9F3EF40692 for ; Thu, 25 Feb 2021 09:58:19 +0100 (CET) IronPort-SDR: nuw3ITj+AxChOGg/qKjrf7a3nuzHgYfAmqWhCyDbGkbJzdzo92ebnUQ4bKO8tEQ1nZAZxELBCL wW3/rp0RIMiw== X-IronPort-AV: E=McAfee;i="6000,8403,9905"; a="185583468" X-IronPort-AV: E=Sophos;i="5.81,205,1610438400"; d="scan'208";a="185583468" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Feb 2021 00:58:17 -0800 IronPort-SDR: s0WWXUol805VVOqS6Le7p1RClvLLCcs2amLvpZ7fYO29Ilamg0Xww1CZ8bQF91327+dja0pPc2 Jvo10b66+JhA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,205,1610438400"; d="scan'208";a="433896860" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga002.fm.intel.com with ESMTP; 25 Feb 2021 00:58:16 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Thu, 25 Feb 2021 00:57:47 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Thu, 25 Feb 2021 00:57:47 -0800 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.36.51) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2106.2; Thu, 25 Feb 2021 00:57:46 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HzdJ6YAd36Zez3GdFrGhsrprEVhTOfDlXSTl21iaQEXN7be3pJo56E4823jcQVzSiXGf9bdtJURFpqyShLOGc0QrQp5xRHgzaFqib/C3eIVHb7GRaOAZX6tEOZ2YDh3yVKBHF5l0ddq6RHaonmCC2SDgd5fwF7rqg5HjnXTPUymHhhQ+y7+2e8owRTQ8rdBAREXg34S0yOlhrKRDDSGyxn7GcFwiODWnQE0DNFMvJm55iH/oFCBBAUHy/lq5f4e9OsMI4pEFaUHdifwEZZIEvxfSSK2ZDlykc7DhnzCWikNlEsrsu9+p9xOR/1j5LyOGM3gKHhR0lheAEdBIR57vgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nHjuNWwOdIC0+ffUxVx//ZkVBKAG4o2Nx69+mNADk+g=; b=SdLYNlPfxxWoYJE7uVNxbJEv1NNLcXHJnMJJWL//PZntl0IfL7NZyslZm1+JcPurd3QB8oCHlOeg4XbU+vJI+FiKJBsyczezz/aalX09buGm5KAnq+DzQiD2xfxd3FIvTrqF0DZ4D8b9VLAQ0aqCCQYItp7XTumfOKzFrM8YifQhI8R+ThS7CdoiWQs+Haljf9EAIVnqozLdmF1THf+gZW0cdPPOqofFVOlATFNmv90eZGdNDN8Vu5e/zgXRpSB3rj3euSLJfgDaD61I2K+D53BhVjXBGMGOu24XYO9GNaILiDOw1nyXlQOqmwc4J6+D/zKpgKTdMfuDb7NFhoYmyw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nHjuNWwOdIC0+ffUxVx//ZkVBKAG4o2Nx69+mNADk+g=; b=xBDugUdstiNHSMIEalDJlR+KeEB5EkKHDrp7NDCuk0H095jRVeD4MCmXPj4vARGdxtg1wgeQO6Lm2laJC30q0kcscKW4E6gRR19Lcs80FuXVSyQ6fzhjb/QgdCnW5tAISOuWvOlX+0weLCx56gyBukFAw/xZ3OB+i7u7/+m58JM= Received: from BN7PR11MB2658.namprd11.prod.outlook.com (2603:10b6:406:ae::16) by BN6PR11MB4034.namprd11.prod.outlook.com (2603:10b6:405:7d::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3846.29; Thu, 25 Feb 2021 08:57:41 +0000 Received: from BN7PR11MB2658.namprd11.prod.outlook.com ([fe80::2d12:3f96:5231:b0e2]) by BN7PR11MB2658.namprd11.prod.outlook.com ([fe80::2d12:3f96:5231:b0e2%5]) with mapi id 15.20.3868.033; Thu, 25 Feb 2021 08:57:41 +0000 From: "Lin, Xueqin" To: "Xu, HailinX" , "dts@dpdk.org" Thread-Topic: [dts][PATCH v2] test_plans:add iavf_flexible_descriptor Thread-Index: AQHXCn3wXkFaGJ/D302szCTmuNvSi6pokv3A Date: Thu, 25 Feb 2021 08:57:40 +0000 Message-ID: References: <1614150690-6268-1-git-send-email-hailinx.xu@intel.com> In-Reply-To: <1614150690-6268-1-git-send-email-hailinx.xu@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.37] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4c798eac-fb4a-4861-90ec-08d8d96b68d6 x-ms-traffictypediagnostic: BN6PR11MB4034: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1201; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OQ5KkZda9Qlntgm+2sLJxobkJEGPywSP96Uz36kfIDQofTKHpo0MsLx18DdGdcbemupoFIbslZ+SZ619wpxuNxToQ6HR2hpmkpRCO625kKG0Bbz+DvSoWN9TLkyf4MlI61biZQBCP8u3/gmjmPJPk8W4G/EnGKJ/RKwsdui3xeGtMAS//EmKZWbzBkTYTeEfWbOR5WiDD57SfVxV8fENnZNnBAALGUtV6JhWaP78MTuNx1dLvZv2s5IJm8AIs+DkK04r1Uaa2Nv22oxU7r8RsrHqNb3Z0oCvgq2vFPRmFjxdXdJp2nHHPTJPqTJAeRHBUzugoGk1Bz3mYkfiPwK2lwi3ndweJ3amAzoc71JVUYexYsdtBh6GOWBFMGA9i4PKlm0e5BWuEufiC0wRpj60J2oCOLtISphWuZ24vWHZJXRGqNrL7EB9wjcJU8wIevxReJOTmXyQNlf2M2yC7YB95/4w+aezelVCPBN2NK7GvZvLbzuv1D8g3Uxv5C7gr7AbfWvAGhbYJ3iXTDJHN2kPvA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN7PR11MB2658.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(346002)(376002)(396003)(136003)(39860400002)(6506007)(64756008)(66556008)(55016002)(66476007)(8676002)(86362001)(5660300002)(9686003)(66446008)(2906002)(26005)(110136005)(30864003)(8936002)(66946007)(186003)(76116006)(71200400001)(316002)(33656002)(53546011)(52536014)(7696005)(478600001)(83380400001)(579004)(559001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?jY0lQHHGNrrRFsnWFOKXUgH7LooDGkrAAgpJwfr4+uw18LF36S0zsIJteOTB?= =?us-ascii?Q?+5VY1YCwJWBsgpgQ2gcVNFrRy2JZp8tsaF0EzL2UU4GfzfQ+P6mvbmJZ0eTu?= =?us-ascii?Q?K1N2L55UDwqRsGLdndasjYXiuJX+heCTMO9QVjPeWVCegZT7LeGr18b/hPCR?= =?us-ascii?Q?KYxOOL5rvmalu6nqdCmKpI9GYlCOUDgSLjPsZJPbMNfUILebmE53twz5m+ar?= =?us-ascii?Q?2vff3U1aR58ag9varnZNRAsndwU3ESi+GeKVTp4KzgZw/SY3URp+vkSwMQ6N?= =?us-ascii?Q?VidaI2dNhSNN7Li8otYSEt3nPlcZc1dOqGrgqyXo18/7BMLPNsw6LmY6dAKu?= =?us-ascii?Q?T8+wGTVmPoboLs0iqGMVZDFVTYENjV3RWhmvfVpm1TbzUNtl14QKOlwMZ5AT?= =?us-ascii?Q?hEaGxWgmHVkZ7Cm5RJbzkR36JxFPAd1TFo0OTtZW6YolYoSkAbpeKFiu/JLb?= =?us-ascii?Q?aOfe4ywo6ibHATNHbSZYo94ARSte8hZFmHtnZfi0eO0YcMytfSBxh34PSwXn?= =?us-ascii?Q?oSKW55QUoP6ohcAMtjlJ88sjaNz7Vff01GnjdvLY4SmjAd7ho8fcrmxPxLPT?= =?us-ascii?Q?RjmG1cd4tQLJdMDeMq1W2nRmWPoJqE6YctOxI+wx2pLq8B7YTqj7/SCSrgDO?= =?us-ascii?Q?plwDBfBzFAnnkG/wjOpBLXthw28cPEXcmoAgMD8uj5kCFezUFK+cnh1u1IRd?= =?us-ascii?Q?YNEc6kFVeC+s2qD3fNILgfGoPtN+Gd7dJ7yVCO2nz0rNHlBXa0eocavH76Kw?= =?us-ascii?Q?2WiBQ0H7P3u6jZALS2r9ZgarZrInuf7FomRa5N02XpWeWqu7CkL1hM9b/ZVx?= =?us-ascii?Q?i+IMe7uvOsd7OtZNN/9qExTJI45enSo0o2IbGTzlp/e75DLPLMVN+4f1O3wd?= =?us-ascii?Q?XPY3ZU3MjdEUWKkSA5o0N0EY2Vuf+BNDUGAKPjvk/V9H+Yd6lrKnJxBrYKKZ?= =?us-ascii?Q?AbBT5dSIMuY3b/RyibDz8kKs4hsuZMe5uBGxYYs9NUz4M9VQS5MIputBn841?= =?us-ascii?Q?dhyhyLhDimkS3KVCIKrQNZQQaEWR8M6EIz1aK0Ef3+7rhRzy8+U3vqjfjw98?= =?us-ascii?Q?3xLFfGcU8W5dlIHzUklof0djSh8su+tsqODB24Dhe7hhR6JyajAv5LKfnwc7?= =?us-ascii?Q?tkxtqDXJVfS1t7f7MWzd7Zf0y29v4lgdOmQ/dLK/K3RVoYtpfeqjmY4milDS?= =?us-ascii?Q?hh8tOCis7MXGNnM4yNxsGIQ+cFaMKQpjxUx71IV59skul4Df/1sP60RQshf9?= =?us-ascii?Q?UHtD53OhBmk4SpSJUXOkZ1M7VWGEe65eSDK/NUwv0Np9GoMeuq7dDbfGnGS0?= =?us-ascii?Q?h1h24JXdCQB98JS1LHqKP8Yq?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN7PR11MB2658.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4c798eac-fb4a-4861-90ec-08d8d96b68d6 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Feb 2021 08:57:41.4776 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: hnUwqQFZIhQ5pT7AQCLaAJ/QwP/iF27zm30+ebk6NLz8ZWEgqkAI3+X8mMFBQ4MGKCYy6Rhp2ZnRhsbRpdj6Rg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB4034 X-OriginatorOrg: intel.com Subject: Re: [dts] [PATCH v2] test_plans:add iavf_flexible_descriptor X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 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" Acked-by: Lin, Xueqin > -----Original Message----- > From: Xu, HailinX > Sent: Wednesday, February 24, 2021 3:12 PM > To: dts@dpdk.org > Cc: Lin, Xueqin ; Xu, HailinX > Subject: [dts][PATCH v2] test_plans:add iavf_flexible_descriptor >=20 > v1: add test plan: iavf_flexible_descriptor. > v2: add test plan and Unified code style. >=20 > Signed-off-by: Hailin Xu > --- > .../iavf_flexible_descriptor_test_plan.rst | 748 ++++++++++++++++++ > 1 file changed, 748 insertions(+) > create mode 100644 test_plans/iavf_flexible_descriptor_test_plan.rst >=20 > diff --git a/test_plans/iavf_flexible_descriptor_test_plan.rst > b/test_plans/iavf_flexible_descriptor_test_plan.rst > new file mode 100644 > index 00000000..b28764fe > --- /dev/null > +++ b/test_plans/iavf_flexible_descriptor_test_plan.rst > @@ -0,0 +1,748 @@ > +.. Copyright (c) <2021> 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 > +Flexible RXd Test Suites > +=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, os/comms/wireless package is expected. > + > +Prepare test toplogy, 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/meson.build b/app/test-pmd/meson.build > + index 7e9c7bdd6..b75b90a9c 100644 > + --- a/app/test-pmd/meson.build > + +++ b/app/test-pmd/meson.build > + @@ -49,6 +49,9 @@ endif > + if dpdk_conf.has('RTE_NET_I40E') > + deps +=3D 'net_i40e' > + endif > + +if dpdk_conf.has('RTE_NET_ICE') > + + deps +=3D ['net_ice', 'net_iavf'] > + +endif > + if dpdk_conf.has('RTE_NET_IXGBE') > + deps +=3D 'net_ixgbe' > + endif > + > + > + diff --git a/app/test-pmd/util.c b/app/test-pmd/util.c index > + a9e431a8b..3447a9b43 100644 > + --- a/app/test-pmd/util.c > + +++ b/app/test-pmd/util.c > + @@ -12,6 +12,7 @@ > + #include > + #include > + #include > + +#include > + > + #include "testpmd.h" > + > + @@ -151,6 +152,7 @@ dump_pkt_burst(uint16_t port_id, uint16_t queue, > struct rte_mbuf *pkts[], > + eth_type, (unsigned int) mb->pkt_len, > + (int)mb->nb_segs); > + ol_flags =3D mb->ol_flags; > + + rte_pmd_ifd_dump_proto_xtr_metadata(mb); > + if (ol_flags & PKT_RX_RSS_HASH) { > + MKDUMPSTR(print_buf, buf_size, cur_len, > + " - RSS hash=3D0x%x", > + > + > +Compile DPDK and testpmd:: > + > + CC=3Dgcc meson --werror -Denable_kmods=3DTrue -Dlibdir=3Dlib > + x86_64-native-linuxapp-gcc ninja -C x86_64-native-linuxapp-gcc -j 70 > + > +Generate 1 VF on each PF and set mac address for each VF:: > + > + echo 1 > /sys/bus/pci/devices/0000:af:00.0/sriov_numvfs > + ip link set ens802f0 vf 0 mac 00:11:22:33:44:55 > + > +Bind the vf interface to vfio-pci driver:: > + > + ./usertools/dpdk-devbind.py -b vfio-pci af:01.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-linuxapp-gcc/app/dpdk-testpmd -l 6-9 -n 4 -w > + af:01.0,proto_xtr=3Dvlan -- -i --rxq=3D4 --txq=3D4 --portmask=3D0x1 > + --nb-cores=3D2 > + > + testpmd>set verbose 1 > + testpmd>set fwd io > + testpmd>start > + > +check RXDID value correct:: > + > + expected: RXDID[17] > + > +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"68:05:ca:a3:1b:28", dst=3D"00:11:22:33:44:55", > + type=3D0x9100)/Dot1Q(prio=3D1,vlan=3D23)/IP()/UDP()/DNS() > + sendp(p, iface=3D'ens192f0', 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=3D68:05:CA:A3:1B:28 - dst=3D00:11:22:33:44:55 - type=3D0x8100 - > + length=3D60 - nb_segs=3D1 - RSS 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-linuxapp-gcc/app/dpdk-testpmd -l 6-9 -n 4 -w > + af:01.0,proto_xtr=3Dvlan -- -i --rxq=3D4 --txq=3D4 --portmask=3D0x1 > + --nb-cores=3D2 > + > +check RXDID value correct:: > + > + expected: RXDID[17] > + > +Test packet:: > + > + p =3D Ether(src=3D'68:05:ca:a3:1b:28', dst=3D'00:11:22:33:44:55', > + 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-linuxapp-gcc/app/dpdk-testpmd -l 6-9 -n 4 -w > + af:01.0,proto_xtr=3Dvlan -- -i --rxq=3D4 --txq=3D4 --portmask=3D0x1 > + --nb-cores=3D2 > + > +check RXDID value correct:: > + > + expected: RXDID[17] > + > +Test packet:: > + > + p =3D Ether(src=3D'68:05:ca:a3:1b:28', dst=3D'00:11:22:33:44:55', > + 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-linuxapp-gcc/app/dpdk-testpmd -l 6-9 -n 4 -w > + af:01.0,proto_xtr=3Dvlan -- -i --rxq=3D4 --txq=3D4 --portmask=3D0x1 > + --nb-cores=3D2 > + > +check RXDID value correct:: > + > + expected: RXDID[17] > + > +Test packet:: > + > + p =3D Ether(src=3D'68:05:ca:a3:1b:28', dst=3D'00:11:22:33:44:55', > + type=3D0x9100)/Dot1Q(prio=3D1,vlan=3D23)/Dot1Q(prio=3D4,vlan=3D56)/IP()= /UDP()/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-linuxapp-gcc/app/dpdk-testpmd -l 6-9 -n 4 -w > + af:01.0,proto_xtr=3Dvlan -- -i --rxq=3D4 --txq=3D4 --portmask=3D0x1 > + --nb-cores=3D2 > + > +check RXDID value correct:: > + > + expected: RXDID[17] > + > +Test packet:: > + > + p =3D Ether(src=3D'68:05:ca:a3:1b:28', dst=3D'00:11:22:33:44:55', > + type=3D0x88A8)/Dot1Q(prio=3D1,vlan=3D23)/Dot1Q(prio=3D4,vlan=3D56)/IP()= /UDP()/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-linuxapp-gcc/app/dpdk-testpmd -l 6-9 -n 4 -w > + af:01.0,proto_xtr=3Dipv4 -- -i --rxq=3D4 --txq=3D4 --portmask=3D0x1 > + --nb-cores=3D2 > + > +check RXDID value correct:: > + > + expected: RXDID[18] > + > +Test packet:: > + > + p =3D Ether(src=3D'68:05:ca:a3:1b:28', > + dst=3D'00:11:22:33:44:55')/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-linuxapp-gcc/app/dpdk-testpmd -l 6-9 -n 4 -w > + af:01.0,proto_xtr=3Dipv6 -- -i --rxq=3D4 --txq=3D4 --portmask=3D0x1 > + --nb-cores=3D2 > + > +check RXDID value correct:: > + > + expected: RXDID[19] > + > +Test packet:: > + > + p =3D Ether(src=3D'68:05:ca:a3:1b:28', > + dst=3D'00:11:22:33:44:55')/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-linuxapp-gcc/app/dpdk-testpmd -l 6-9 -n 4 -w > + af:01.0,proto_xtr=3Dipv6_flow -- -i --rxq=3D4 --txq=3D4 --portmask=3D0x= 1 > + --nb-cores=3D2 > + > +check RXDID value correct:: > + > + expected: RXDID[20] > + > +Test packet:: > + > + p =3D Ether(src=3D'68:05:ca:a3:1b:28', > + dst=3D'00:11:22:33:44:55')/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-linuxapp-gcc/app/dpdk-testpmd -l 6-9 -n 4 -w > + af:01.0,proto_xtr=3Dtcp -- -i --rxq=3D4 --txq=3D4 --portmask=3D0x1 > + --nb-cores=3D2 > + > +check RXDID value correct:: > + > + expected: RXDID[21] > + > +Test packet:: > + > + p =3D Ether(src=3D'68:05:ca:a3:1b:28', > + dst=3D'00:11:22:33:44:55')/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-linuxapp-gcc/app/dpdk-testpmd -l 6-9 -n 4 -w > + af:01.0,proto_xtr=3Dtcp -- -i --rxq=3D4 --txq=3D4 --portmask=3D0x1 > + --nb-cores=3D2 > + > +check RXDID value correct:: > + > + expected: RXDID[21] > + > +Test packet:: > + > + p =3D Ether(src=3D'68:05:ca:a3:1b:28', > + dst=3D'00:11:22:33:44:55')/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-linuxapp-gcc/app/dpdk-testpmd -l 6-9 -n 4 -w > + af:01.0,proto_xtr=3D'[(2):ipv4,(3):ipv6,(4):tcp]' -- -i --rxq=3D16 > + --txq=3D16 --portmask=3D0x1 > + > +check RXDID value correct:: > + > + expected: RXDID[16], RXDID[18], RXDID[19], RXDID[21] > + > +Create generic flow on NIC:: > + > + flow create 0 ingress pattern eth / 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 12 / end actions queue index 3 / end flow create 0 ingress > + pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / tcp src is > + 25 dst is 23 / end actions queue index 4 / end > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55")/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'68:05:ca:a3:1b:28', > + dst=3D'00:11:22:33:44:55')/IPv6(src=3D'2001::3', dst=3D'2001::4', > + tc=3D12,hlim=3D34,fl=3D0x98765)/UDP()/Raw(load=3D'XXXXXXXXXX') > + p =3D > + Ether(dst=3D'00:11:22:33:44:55')/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=3D0x4 > + doff=3D5 > + flags=3DAS > + > + > +Test Case 12: Check testpmd use different parameters start > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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``, use different "proto_xtr" param= eters > the launch command of testpmd, check RXDID value. > + > +use error parameter Launch testpmd:: > + > + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 6-9 -n 4 -w > + af:01.0,proto_xtr=3Dvxlan -- -i --rxq=3D4 --txq=3D4 --portmask=3D0x1 > + --nb-cores=3D2 > + > +testpmd can't started, check "iavf_lookup_flex_desc_type(): wrong flex_d= esc > type, it should be: vlan|ipv4|ipv6|ipv6_flow|tcp|ovs|ip_offset" in testpm= d > output. > + > +don't use parameter launch testpmd:: > + > + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 6-9 -n 4 -w af:01.0 > + -- -i --rxq=3D4 --txq=3D4 --portmask=3D0x1 --nb-cores=3D2 > + > +testpmd started, check "iavf_configure_queues(): request RXDID[16] in > +Queue[0]" in testpmd output > + > + > +MPLS TEST > +=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 > + > +all MPLS cases use same parameter Launch testpmd:: > + > + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 6-9 -n 4 -w > + af:01.0,proto_xtr=3Dip_offset -- -i --portmask=3D0x1 --nb-cores=3D2 > + > +check RXDID value correct:: > + > + expected: RXDID[25] > + > +scapy prepare: > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +about scapy: > +from scapy.contrib.mpls import MPLS > + > +Test Case 13: Check ip offset of ip > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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 packet:: > + > + p =3D Ether(dst=3D"00:11:22:33:44:55",type=3D0x8847)/MPLS(s=3D1)/IP(= ) > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D18 > + > +Test packet:: > + > + p =3D Ether(dst=3D"00:11:22:33:44:55",type=3D0x8847)/MPLS(s=3D1)/IP(= ) > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D18 > + > +Test Case 14: check ip offset with vlan > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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 packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(type=3D0x8847)/MPL= S(s=3D1 > + )/IP() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D22 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(type=3D0x8847)/MPL= S(s=3D1 > + )/IPv6() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D22 > + > +Test Case 15: check offset with 2 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 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x88A8)/Dot1Q(type=3D0x8100)/Dot= 1Q(ty > + pe=3D0x8847)/MPLS(s=3D1)/IP() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D26 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x88A8)/Dot1Q(type=3D0x8100)/Dot= 1Q(ty > + pe=3D0x8847)/MPLS(s=3D1)/IPv6() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D26 > + > +Test Case 16: check ip offset with multi MPLS > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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 packet:: > + > + p =3D Ether(dst=3D"00:11:22:33:44:55",type=3D0x8847)/MPLS(s=3D1)/IP(= ) > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D18 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8847)/MPLS(s=3D0)/MPLS(s=3D1)/= IP() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D22 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8847)/MPLS(s=3D0)/MPLS(s=3D0)/= MPLS(s=3D > + 1)/IP() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D26 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8847)/MPLS(s=3D0)/MPLS(s=3D0)/= MPLS(s=3D > + 0)/MPLS(s=3D1)/IP() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D30 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8847)/MPLS(s=3D0)/MPLS(s=3D0)/= MPLS(s=3D > + 0)/MPLS(s=3D0)/MPLS(s=3D1)/IP() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D34 > + > +Test packet:: > + > + p =3D Ether(dst=3D"00:11:22:33:44:55",type=3D0x8847)/MPLS(s=3D1)/IPv= 6() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D18 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8847)/MPLS(s=3D0)/MPLS(s=3D1)/= IPv6() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D22 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8847)/MPLS(s=3D0)/MPLS(s=3D0)/= MPLS(s=3D > + 1)/IPv6() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D26 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8847)/MPLS(s=3D0)/MPLS(s=3D0)/= MPLS(s=3D > + 0)/MPLS(s=3D1)/IPv6() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D30 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8847)/MPLS(s=3D0)/MPLS(s=3D0)/= MPLS(s=3D > + 0)/MPLS(s=3D0)/MPLS(s=3D1)/IPv6() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D34 > + > +Test Case 17: check ip offset with multi MPLS with 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 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(type=3D0x8847)/MPL= S(s=3D1 > + )/IP() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D22 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(type=3D0x8847)/MPL= S(s=3D0 > + )/MPLS(s=3D1)/IP() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D26 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(type=3D0x8847)/MPL= S(s=3D0 > + )/MPLS(s=3D0)/MPLS(s=3D1)/IP() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D30 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(type=3D0x8847)/MPL= S(s=3D0 > + )/MPLS(s=3D0)/MPLS(s=3D0)/MPLS(s=3D1)/IP() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D34 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(type=3D0x8847)/MPL= S(s=3D0 > + )/MPLS(s=3D0)/MPLS(s=3D0)/MPLS(s=3D0)/MPLS(s=3D1)/IP() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D38 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(type=3D0x8847)/MPL= S(s=3D1 > + )/IPv6() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D22 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(type=3D0x8847)/MPL= S(s=3D0 > + )/MPLS(s=3D1)/IPv6() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D26 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(type=3D0x8847)/MPL= S(s=3D0 > + )/MPLS(s=3D0)/MPLS(s=3D1)/IPv6() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D30 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(type=3D0x8847)/MPL= S(s=3D0 > + )/MPLS(s=3D0)/MPLS(s=3D0)/MPLS(s=3D1)/IPv6() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D34 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(type=3D0x8847)/MPL= S(s=3D0 > + )/MPLS(s=3D0)/MPLS(s=3D0)/MPLS(s=3D0)/MPLS(s=3D1)/IPv6() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D38 > + > +Test Case 18: check ip offset with multi MPLS with 2 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 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x88A8)/Dot1Q(type=3D0x8100)/Dot= 1Q(ty > + pe=3D0x8847)/MPLS(s=3D1)/IP() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D26 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x88A8)/Dot1Q(type=3D0x8100)/Dot= 1Q(ty > + pe=3D0x8847)/MPLS(s=3D0)/MPLS(s=3D1)/IP() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D30 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x88A8)/Dot1Q(type=3D0x8100)/Dot= 1Q(ty > + pe=3D0x8847)/MPLS(s=3D0)/MPLS(s=3D0)/MPLS(s=3D1)/IP() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D34 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x88A8)/Dot1Q(type=3D0x8100)/Dot= 1Q(ty > + pe=3D0x8847)/MPLS(s=3D0)/MPLS(s=3D0)/MPLS(s=3D0)/MPLS(s=3D1)/IP() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D38 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x88A8)/Dot1Q(type=3D0x8100)/Dot= 1Q(ty > + pe=3D0x8847)/MPLS(s=3D0)/MPLS(s=3D0)/MPLS(s=3D0)/MPLS(s=3D0)/MPLS(s=3D1= )/IP() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D42 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x88A8)/Dot1Q(type=3D0x8100)/Dot= 1Q(ty > + pe=3D0x8847)/MPLS(s=3D1)/IPv6() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D26 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x88A8)/Dot1Q(type=3D0x8100)/Dot= 1Q(ty > + pe=3D0x8847)/MPLS(s=3D0)/MPLS(s=3D1)/IPv6() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D30 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x88A8)/Dot1Q(type=3D0x8100)/Dot= 1Q(ty > + pe=3D0x8847)/MPLS(s=3D0)/MPLS(s=3D0)/MPLS(s=3D1)/IPv6() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D34 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x88A8)/Dot1Q(type=3D0x8100)/Dot= 1Q(ty > + pe=3D0x8847)/MPLS(s=3D0)/MPLS(s=3D0)/MPLS(s=3D0)/MPLS(s=3D1)/IPv6() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D38 > + > +Test packet:: > + > + p =3D > + Ether(dst=3D"00:11:22:33:44:55",type=3D0x88A8)/Dot1Q(type=3D0x8100)/Dot= 1Q(ty > + pe=3D0x8847)/MPLS(s=3D0)/MPLS(s=3D0)/MPLS(s=3D0)/MPLS(s=3D0)/MPLS(s=3D1= )/IPv6() > + > +Expected output in testpmd:: > + > + Protocol Offset:ip_offset=3D42 > + > -- > 2.17.1