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 259FAA034E; Wed, 9 Feb 2022 02:58:55 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 10C99410F3; Wed, 9 Feb 2022 02:58:55 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 19BEC4067E for ; Wed, 9 Feb 2022 02:58:52 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1644371933; x=1675907933; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=k0BGu1hnQ8GojbD2vaUrx64fSI/EAqmZ5zDO+9sa48c=; b=c+7ed6T2WgITSGNfFMaMn4omiZtgrhkXoN2mmZfobNPl5iAG396OI+EB M+lOtRxI0XIabtvD3DDoXq5eGT14mF3b90bUsmlAPH7MnuVP0JYW8eflE 4Vreghc0jhNXX2dQYZ5b9qlm0wCEKnxbluq+TrM2HejgtU0/Q61W6IUsY 1Y6B64TeNEKBJ6oe4Yp9Vzl8cn5/qi/GQNm7lIEeZad+gzfnOGUIGqBpU h1fIefKzJrbiJepAwevSk1k0How/FDfVbLMSJIOf4GHTVVd8fNVHZlKBB DOe5YHbhlalV0R18hOJjd09baAJNwdeLa3BPaB8Frr1cq8+HfJ+NhnT0y A==; X-IronPort-AV: E=McAfee;i="6200,9189,10252"; a="249305596" X-IronPort-AV: E=Sophos;i="5.88,354,1635231600"; d="scan'208";a="249305596" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Feb 2022 17:58:51 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,354,1635231600"; d="scan'208";a="568061848" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga001.jf.intel.com with ESMTP; 08 Feb 2022 17:58:51 -0800 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 8 Feb 2022 17:58:51 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 8 Feb 2022 17:58:50 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Tue, 8 Feb 2022 17:58:50 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.102) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Tue, 8 Feb 2022 17:58:45 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ag5FuLC6Jj3saf18Kbv8xWRM6GrAaolyeAyQX8yZoVAmfvSWAv1EQ4AgPFjwJXDg1YSn2Yo1aqP1ePJrbCNQ4+hVBSfPetZn9L7x7lYCLZBj+B+AC9i1mcja7bV3jow7ADm+fSkMbVtLx57lio61K1xN7JExya6RVKa1NSV2F0BFSzrUNP0z818ierpcU+KQWj1ArxPi+hLAMUvDxRw4xyUToPm8k1sRcQu3W9Lq/UX/5+pNqBFriKrlfILGDrMIh1Agz51PQAliwBW+IzOQTWOsEzpxgJotxRGFTwpxsGh8jobMWps+dLVbPbokSPdFQdk2SQD1le+3rjb518PN/A== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=a6eBTdsDTSw1bntUtNcSmWCRwo2AA0nSsk3pdp0E5mA=; b=guy65TC5K/a94qGlDkacx/9hQ77H0D2EIlC+jUXqA2mk2Dcq/ZfFPuJ7DpM+A3jWk/YURDDDj16vA1EI6Q3+V9AwY8t3PiAWUwxOPYOqPhVwy3QBk+snr043kQ4hFFnfqe/4nEYgOY3ToJ5rWi1ghdvKDz/eW8pT3kgmUhbw/RxiAwejSq/PvPAQxKelZQEM1oxwOFQeH/6df5XZpKBNrB/IhDijSHSgpayb4usFlrWNGU3xwFMPTI6fuJh/NWJJ1o3MbMSr+z7B2bguuzzKdIrlZoBruRX5MQ5pbTTH9xyXD0kF4LK48Fd5ayuI+/eKRFd/+D5qCgW4dPtgJknBpw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from SJ0PR11MB5599.namprd11.prod.outlook.com (2603:10b6:a03:3af::21) by SJ0PR11MB5918.namprd11.prod.outlook.com (2603:10b6:a03:42c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4975.11; Wed, 9 Feb 2022 01:58:38 +0000 Received: from SJ0PR11MB5599.namprd11.prod.outlook.com ([fe80::d977:eec7:9638:3202]) by SJ0PR11MB5599.namprd11.prod.outlook.com ([fe80::d977:eec7:9638:3202%8]) with mapi id 15.20.4951.019; Wed, 9 Feb 2022 01:58:38 +0000 From: "Lin, Xueqin" To: "Tang, Yaqi" , "dts@dpdk.org" CC: "Tang, Yaqi" Subject: RE: [dts][PATCH V4] test_plans/cvl_switch_filter: add test plan for cvl qinq switch filter support l4 Thread-Topic: [dts][PATCH V4] test_plans/cvl_switch_filter: add test plan for cvl qinq switch filter support l4 Thread-Index: AQHYHPd5SMbBdF111ECYpf1shZCLmayKdAxQ Date: Wed, 9 Feb 2022 01:58:38 +0000 Message-ID: References: <20220208221559.509541-1-yaqi.tang@intel.com> In-Reply-To: <20220208221559.509541-1-yaqi.tang@intel.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: ad3e4e37-4e46-4964-8938-08d9eb6fb0a2 x-ms-traffictypediagnostic: SJ0PR11MB5918:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:254; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3xnHnHCEvR4WJ3KvIvKFkyeL/1fHmId3794RAltDHFYmjrmq6o9lxJfjXIXu3RhkYieew33OwHNBWyF34mnCLzgUgRsZx8/9IdB3YTmNSvuvt2GE66HusRpzJyiY/KuOEPgI+gWPKeQ0GFZQ9nc8UmGEBa++x9AIysAgjKfRqiS+GQV5M+FpZ7o8XsvO400lmkYrWK8+zqtbwp9Zh/SMKRtcqzqRUE1Cwkavlg/X7gAh89AJoeH/IWVovGta8nFzuYrRsCbJLe3ry0tsBKBJuO3KKWh3rto+4Se43nhwzLC8urpl6OkZ6shbd8P60NNK9UP+aR60dmO7a+z+y0sk+jGw9vH/4aNopxADrj22M2fu0MSHGK/l1KaIFQUbyhNuhS09whqZ8fM8o27jFwe5zwctxCBWoxG5FwS91peZRF4i+KZJAHib2TBWk7Ig/pgqzYq/WIM1zXNt3GZMlH9QBvNWMP2NxfqxwWFvUHtyMOufolLam5lhcuTK8wThgvtzG3XgyEvQouocuNxOcSG25/l8XDZfXkY7RowleFfUBsCDakjDnD9WF86eacQ5v+NwuYQq0ELCYAwna+3v/LL0F1BvRlaXUlZ4vUoHGZczj/Ccp0cxyqvh5OpBGWkXs48G8VTaTTym6iGmM1vcKba9QK8d7EMNXevIMoEkY37ijaH50o/gInyfXg6UsDTej52dL6uEbzqbqidUGXqRQ2bagkGJ0o51Gxtt55kIs19ngXV6QUh913MGHZTCXCPe0KqWDadnO6ApanZ3P7swlqR4DmGpOJzUYTCYhfLrEWTzeu0YkcmasthUdxbBg6SSKifQedgNoreKtq3ghCjLHBhy9eMVTRRXg5flk1LvKHq6kwA= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR11MB5599.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(122000001)(38100700002)(82960400001)(66446008)(64756008)(66556008)(7696005)(52536014)(6506007)(76116006)(4326008)(5660300002)(38070700005)(316002)(66476007)(8676002)(33656002)(66946007)(55016003)(8936002)(30864003)(9686003)(110136005)(53546011)(26005)(186003)(107886003)(2906002)(19273905006)(966005)(83380400001)(86362001)(71200400001)(508600001)(579004)(563064011); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?00jNMNS5lX16qLvSjimcSxZVo0L3RFeISr03rLej6WYpFfMHGKSezpBaHehb?= =?us-ascii?Q?MpsnhO6ZO4kI0x5NsoFeAIaLFYBIWeR5W9HvdmeqhAgbIhTHNcV01Faoygw1?= =?us-ascii?Q?v/305ksCAg8zmeHo3LVgbhkjxN/8DhJYz6Tbnd64ky3ZEkrpaeGrBgyoP4Mt?= =?us-ascii?Q?j77OEIUVuiyqdCzQ1D6tDca2vzuh27MyZ/bObComOBSJqy6As7uCnUMFLzg6?= =?us-ascii?Q?XLNKJrs+D+rftMxpEExX6g9Vlx/69mQeS5SdowD8HB94ufZ+snaUL8Fgqtq+?= =?us-ascii?Q?6FtgsLf7tL+rU80KVP7Z9vOQJXDdkySJDyjALqa1k6G2ie1n9fbEtifikQux?= =?us-ascii?Q?u9hDiQByBujfVDdQG+Dp6s2LbO0Bb23WknjpI2/P6DCHqkYayZDtZ6D3tMjR?= =?us-ascii?Q?JgdUr2Opjin5ITqI8rFhzYMfmYri7ioHmyYdAvGljKk2qEZ7kif0dym0VFvp?= =?us-ascii?Q?sBkuCOKd0W4LeZ0bg9ka3zZiAmz+7YfEolMRz6CBVHhRzUIKIzvGyLz//qYc?= =?us-ascii?Q?3B9QzyAdtFPiQDgolnDyt1YsydbhAAhnVyOwi0vQhvbXSBSRf7R9jVRpliP3?= =?us-ascii?Q?unIkNY+OevUgHIncRud87oBqLoYvcr/jto8RXFmb24JOsdMswTRAnhvKar/T?= =?us-ascii?Q?N7MZz9qKwKKGUSrI8bC0UxPuTjOIkEU4EMBOvFi10xOAaqG02E2z9PNIsRkD?= =?us-ascii?Q?jHexEb+cVN69CTebOct3R7LuMi5PzyuQaGKwHhYqMNxZlaoleDdG21qRjm36?= =?us-ascii?Q?8xPTq3ft5qvIO/xSvrPEhIXclgfVhThrSX1lhMSwUyt68mUERzqrBcy1Xmza?= =?us-ascii?Q?MphUy5ZnBiRBXwVzbUysneZFfIwn3qQThKseOhLQqP6KpRR8fCTM40RDZhIE?= =?us-ascii?Q?deKuG2HHJPnrQBgddR0OVwcYsZo9Mp0azo5ygRTkH0WX/M1rivRnE/8RwEFF?= =?us-ascii?Q?cztji7aYq1Ch3CwH7CuB8vtYtYfEUXP/CNR8HRsqHCC1jp1m79YYwuaCTRpG?= =?us-ascii?Q?mVmVhsVZ5ScS6FG8/ZZsLeTuVXiq8s/FgtTu+R7C6wwB7nO6TmVRemASUtdr?= =?us-ascii?Q?vhyEjPSmTh2Ai/vyM+gYgUodaMAxtoSNwC/aiJg3Mikwi6MLThO6DQ+DCZp1?= =?us-ascii?Q?4fhHlFoVhJuZhVJPGM+2ywwa0at6uwKQLG9LANdO1ehLw9Vy175B6WFtY0Gm?= =?us-ascii?Q?Za78EITuLSRwkDy/Tkb/m+kX2WkEcqk4FsdoJRCyoYrM2RLrMeDb4/dtdBc8?= =?us-ascii?Q?Z/3DOWLjLCHd/o3DByXuBKv4wCKjBeA3Xl3ZAOr3seeTEeWzj6G6MwLyeZbr?= =?us-ascii?Q?EMjCzSKw2hw3477n6oWMe/UUcTmlX1AgLD/9UIlnnwBTS51ZBaKE9RAYRxwV?= =?us-ascii?Q?RdUd5ytl7MCqK5oIrhYvGf3WmM4Vvq2eeFJQFGgjcxXF1yu4OerJZo+76cl4?= =?us-ascii?Q?oHUDTHo7BXEdJzNdolxgf6lhOfDUyEHFiY2AvDXCm1zhS6eT1ne6zHKt2UAO?= =?us-ascii?Q?uZnZV6qDNy00d5T3zEWEI/GQ/H+Cf13utmDEE5dQlPBLCd+WMmK2qVQ0JQNe?= =?us-ascii?Q?GL5oanetELD9Vi8HTPmz9ErI75ErWQGjC7brS4kkA1WhttrP34C6dfKZUGqo?= =?us-ascii?Q?DgGYIwQCUXnsdx4cAguyBjY=3D?= 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: SJ0PR11MB5599.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ad3e4e37-4e46-4964-8938-08d9eb6fb0a2 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Feb 2022 01:58:38.6181 (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: 82pwhVVkxsxq4fpEhwB2O1RDl8DPTbAo0799l0cpFUnrLMRvLhqv+pNqbrkuDw04HQroCtMRxTEDqUM8GEdb/w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5918 X-OriginatorOrg: intel.com 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 Some common part need to notice as below.=20 > -----Original Message----- > From: Yaqi Tang > Sent: Wednesday, February 9, 2022 6:16 AM > To: dts@dpdk.org > Cc: Tang, Yaqi > Subject: [dts][PATCH V4] test_plans/cvl_switch_filter: add test plan for = cvl qinq > switch filter support l4 >=20 > CVL support l4 for QinQ switch filter in PF driver, and port can support = as eth / > vlan / vlan / IP / tcp|udp. >=20 > Signed-off-by: Yaqi Tang > Tested-by: Yaqi Tang < yaqi.tang@intel.com> > --- > test_plans/cvl_switch_filter_test_plan.rst | 490 +++++++++++++++++++++ > 1 file changed, 490 insertions(+) >=20 > diff --git a/test_plans/cvl_switch_filter_test_plan.rst > b/test_plans/cvl_switch_filter_test_plan.rst > index 770af996..031082c6 100644 > --- a/test_plans/cvl_switch_filter_test_plan.rst > +++ b/test_plans/cvl_switch_filter_test_plan.rst > @@ -4761,3 +4761,493 @@ Test case: unsupported patterns in os default > package > testpmd> flow list 0 >=20 > check the rule not exists in the list. > + > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=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 QINQ Test Plan > +=3D=3D=3D=3D=3D=3D=3D=3D=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 > +CVL support l4 for QinQ switch filter in PF driver is by dst MAC + outer= VLAN > id + inner VLAN id + dst IP + dst port, and port can support as eth / vla= n / vlan / > IP / tcp|udp. > +* Enable QINQ switch filter for IPv4/IPv6, IPv4 + TCP/UDP in non-pipelin= e > mode. > +* Enable QINQ switch filter for IPv6 + TCP/UDP in pipeline mode. > + > +Prerequisites > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +Hardware > +-------- > +Supportted NICs: columbiaville_25g/columbiaville_100g > + > +Software > +-------- > +dpdk: http://dpdk.org/git/dpdk > +scapy: http://www.secdev.org/projects/scapy/ > + > +General Set Up > +-------------- > +1. Compile DPDK:: > + > + # CC=3Dgcc meson --werror -Denable_kmods=3DTrue -Dlibdir=3Dlib --def= ault- > library=3Dstatic x86_64-native-linuxapp-gcc > + # ninja -C x86_64-native-linuxapp-gcc -j 110 > + > +2. Get the pci device id and interface of DUT and tester. > + For example, 0000:3b:00.0 and 0000:af:00.0 is pci device id, > + ens785f0 and ens260f0 is interface:: > + > + # ./usertools/dpdk-devbind.py -s > + > + 0000:3b:00.0 'Ethernet Controller E810-C for SFP 1593' if=3Dens785f0= drv=3Dice > unused=3Dvfio-pci > + 0000:af:00.0 'Ethernet Controller XXV710 for 25GbE SFP28 158b' > if=3Dens260f0 drv=3Di40e unused=3Dvfio-pci > + > +3. Bind the DUT port to dpdk:: > + > + # ./usertools/dpdk-devbind.py -b vfio-pci > + cvl_switch_filter test plan already have prerequisites/hardware/software pa= rt, suggest not duplicating here.=20 > +Test Case > +=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +Common Steps > +------------ > +1. Launch the userland ``testpmd`` application on DUT as follows:: > + > + /app/dpdk-testpmd -a id> -- -i > + > +..note:: > + > + For , you can use "-c 0x6 -n 4", you can also refer to = testpmd > doc for other setings. > + For , you can use "0000:3b:00.0" for this te= st plan. > + > +2. Set verbose:: > + > + testpmd> set verbose 1 > + > +3. Set fwd engine and start:: > + > + testpmd> set fwd rxonly > + testpmd> start > + cvl_switch_filter test plan already have above part, if not special, could = not duplicate. > +All the packets in this test plan use below settings: Your patch is add to existed test plan, consider your description "all the = packets in this test plan", Do below parameters also suitable for other test cases in this test plan? > +dst mac: 00:11:22:33:44:55 > +dst mac change inputset: 00:11:22:33:44:66 > +ipv4 src: 192.168.1.1 > +ipv4 dst: 192.168.1.2 > +ipv4 src change inputset: 192.168.1.3 > +ipv4 dst change inputset: 192.168.1.4 > +ipv6 dst: CDCD:910A:2222:5498:8475:1111:3900:2020 > +ipv6 dst change inputset: CDCD:910A:2222:5498:8475:1111:3900:2023 > +outer vlan tci: 2 > +outer vlan tci change inputset: 1 > +inner vlan tci: 1 > +inner vlan tci change inputset: 2 > +sport: 50 > +sport change inputset: 51 > +dport: 23 > +dport change inputset: 22 > + > +#Non-pipeline mode > + > +Test Case 1: MAC_QINQ_IPV4 > +-------------------------- > +The test case enable QINQ switch filter for IPv4 in non-pipeline mode, a= nd > port can support as dst MAC + outer VLAN id + inner VLAN id + IPv4. > + > +Test Steps > +~~~~~~~~~~ > +1. Validate a rule:: > + > + testpmd> flow validate 0 ingress pattern eth dst is / vla= n tci is > / vlan tci is / ipv4 src is = dst is dst> / end actions queue index 2 / end > + > + Get the message:: > + > + Flow rule validated > + > +2. Create a rule and list rules:: > + > + testpmd> flow create 0 ingress pattern eth dst is / vlan = tci is > / vlan tci is / ipv4 src is = dst is dst> / end actions queue index 2 / end > + > + Get the message:: > + > + Flow rule #0 created > + > +3. Check the flow list:: > + > + testpmd> flow list 0 > + > + ID Group Prio Attr Rule > + 0 0 0 i-- ETH VLAN VLAN IPV4 =3D> QUEUE > + > +4. Send matched packet in scapy on tester, check the DUT received this p= acket > and the action is right. > + > +Tester:: > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x,type=3D0x0800)/IP(src= =3D" src>",dst=3D"")/("X"*80)],iface=3D"") > + > +DUT:: > + > + testpmd> port 0/queue 2: received 1 packets > + src=3DA4:BF:01:4D:6F:32 - dst=3D00:11:22:33:44:55 - type=3D0x8100 - le= ngth=3D122 - > nb_segs=3D1 - RSS hash=3D0x26878aad - RSS queue=3D0x2 - hw ptype: L2_ETHE= R > L3_IPV4_EXT_UNKNOWN L4_NONFRAG - sw ptype: L2_ETHER_VLAN > INNER_L2_ETHER_VLAN INNER_L3_IPV4 - l2_len=3D18 - inner_l2_len=3D4 - > inner_l3_len=3D20 - Receive queue=3D0x2 > + ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD > RTE_MBUF_F_RX_IP_CKSUM_GOOD > RTE_MBUF_F_RX_OUTER_L4_CKSUM_GOOD > + > +5. Send mismatched packet in scapy on tester, check the DUT received thi= s > packet and the action is not right. > + > +Tester:: > + > + >>> sendp([Ether(dst=3D" inputset>",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x,type=3D0x0800)/IP(src= =3D" src>",dst=3D"")/("X"*80)],iface=3D"") > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci change inputset>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IP(src=3D"",dst=3D" dst>")/("X"*80)],iface=3D"") > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x inputset>,type=3D0x0800)/IP(src=3D"",dst=3D" dst>")/("X"*80)],iface=3D"") > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x,type=3D0x0800)/IP(src= =3D" src change inputset>",dst=3D"")/("X"*80)],iface=3D"") > + > +6. Destroy a rule and list rules:: > + > + testpmd> flow destroy 0 rule 0 > + > + Get the message:: > + > + Flow rule #0 destroyed > + > +7. Check the flow list:: > + > + testpmd> flow list 0 > + > + Check the rule not exists in the list. > + Send matched packets in step 4, check the action is not right. > + > +Test Case 2: MAC_QINQ_IPV6 > +-------------------------- > +The test case enable QINQ switch filter for IPv6 in non-pipeline mode, a= nd > port can support as dst MAC + outer VLAN id + inner VLAN id + IPv6. > + > +Test Steps > +~~~~~~~~~~ > +1. Validate a rule:: > + > + testpmd> flow validate 0 ingress pattern eth dst is / vla= n tci is > / vlan tci is / ipv6 dst is = / end actions > rss queues 2 3 end / end > + > + Get the message:: > + > + Flow rule validated > + > +2. Create a rule and list rules:: > + > + testpmd> flow create 0 ingress pattern eth dst is / vlan = tci is > / vlan tci is / ipv6 dst is = / end actions > rss queues 2 3 end / end > + > + Get the message:: > + > + Flow rule #0 created > + > +3. Check the flow list:: > + > + testpmd> flow list 0 > + > + ID Group Prio Attr Rule > + 0 0 0 i-- ETH VLAN VLAN IPV6 =3D> RSS > + > +4. Send matched packet in scapy on tester, check the DUT received this p= acket > and the action is right. > + > +Tester:: > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IPv6(dst=3D"")/("X"*80)],iface=3D"") > + > +DUT:: > + > + testpmd> port 0/queue 2: received 1 packets > + src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x8100 - le= ngth=3D142 - > nb_segs=3D1 - RSS hash=3D0xb0c13d2c - RSS queue=3D0x2 - hw ptype: L2_ETHE= R > L3_IPV6_EXT_UNKNOWN L4_NONFRAG - sw ptype: L2_ETHER_VLAN > INNER_L2_ETHER_VLAN INNER_L3_IPV6 - l2_len=3D18 - inner_l2_len=3D4 - > inner_l3_len=3D40 - Receive queue=3D0x2 > + ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD > RTE_MBUF_F_RX_IP_CKSUM_GOOD > RTE_MBUF_F_RX_OUTER_L4_CKSUM_GOOD > + > +5. Send mismatched packet in scapy on tester, check the DUT received thi= s > packet and the action is not right. > + > +Tester:: > + > + >>> sendp([Ether(dst=3D" inputset>",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IPv6(dst=3D"")/("X"*80)],iface=3D"") > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci change inputset>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IPv6(dst=3D"")/("X"*80)],iface=3D"") > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x inputset>,type=3D0x0800)/IPv6(dst=3D"")/("X"*80)],iface=3D" interface>") > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IPv6(dst=3D" inputset>")/("X"*80)],iface=3D"") > + > +6. Destroy a rule and list rules:: > + > + testpmd> flow destroy 0 rule 0 > + > + Get the message:: > + > + Flow rule #0 destroyed > + > +7. Check the flow list:: > + > + testpmd> flow list 0 > + > + Check the rule not exists in the list. > + Send matched packets in step 4, check the action is not right. > + > +Test Case 3: MAC_QINQ_IPV4_UDP > +------------------------------ > +The test case enable QINQ switch filter for IPv4 + UDP in non-pipeline m= ode, > and port can support as dst MAC + outer VLAN id + inner VLAN id + IPv4 + = UDP. > + > +Test Steps > +~~~~~~~~~~ > +1. Validate a rule:: > + > + testpmd> flow validate 0 ingress pattern eth dst is / vla= n tci is > / vlan tci is / ipv4 / udp src is dst is > / end actions queue index 2 / end > + > + Get the message:: > + > + Flow rule validated > + > +2. Create a rule and list rules:: > + > + testpmd> flow create 0 ingress pattern eth dst is / vlan = tci is > / vlan tci is / ipv4 / udp src is dst is > / end actions queue index 2 / end > + > + Get the message:: > + > + Flow rule #0 created > + > +3. Check the flow list:: > + > + testpmd> flow list 0 > + > + ID Group Prio Attr Rule > + 0 0 0 i-- ETH VLAN VLAN IPV4 UDP =3D> QUEUE > + > +4. Send matched packet in scapy on tester, check the DUT received this p= acket > and the action is right. > + > +Tester:: > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IP()/UDP(sport=3D,dport=3D)/("X"*80)],i= face=3D" ster interface>") > + > +DUT:: > + > + testpmd> port 0/queue 2: received 1 packets > + src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x8100 - le= ngth=3D130 - > nb_segs=3D1 - RSS hash=3D0xddc4fdb3 - RSS queue=3D0x2 - hw ptype: L2_ETHE= R > L3_IPV4_EXT_UNKNOWN L4_UDP - sw ptype: L2_ETHER_VLAN > INNER_L2_ETHER_VLAN INNER_L3_IPV4 INNER_L4_UDP - l2_len=3D18 - > inner_l2_len=3D4 - inner_l3_len=3D20 - inner_l4_len=3D8 - Receive queue= =3D0x2 > + ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD > RTE_MBUF_F_RX_IP_CKSUM_GOOD > RTE_MBUF_F_RX_OUTER_L4_CKSUM_GOOD > + > +5. Send mismatched packet in scapy on tester, check the DUT received thi= s > packet and the action is not right. > + > +Tester:: > + > + >>> sendp([Ether(dst=3D" inputset>",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IP()/UDP(sport=3D,dport=3D)/("X"*80)],i= face=3D" ster interface>") > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci change inputset>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IP()/UDP(sport=3D,dport=3D)/("X"*80)],i= face=3D" ster interface>") > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x inputset>,type=3D0x0800)/IP()/UDP(sport=3D,dport=3D)/("X"*8= 0)],iface > =3D"") > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IP()/UDP(sport=3D,dport=3D inputset>)/("X"*80)],iface=3D"") > + > +6. Destroy a rule and list rules:: > + > + testpmd> flow destroy 0 rule 0 > + > + Get the message:: > + > + Flow rule #0 destroyed > + > +7. Check the flow list:: > + > + testpmd> flow list 0 > + > + Check the rule not exists in the list. > + Send matched packets in step 4, check the action is not right. > + > +Test Case 4: MAC_QINQ_IPV4_TCP > +------------------------------ > +The test case enable QINQ switch filter for IPv4 + TCP in non-pipeline m= ode, > and port can support as dst MAC + outer VLAN id + inner VLAN id + IPv4 + = TCP. > + > +Test Steps > +~~~~~~~~~~ > +1. Validate a rule:: > + > + testpmd> flow validate 0 ingress pattern eth dst is / vla= n tci is > / vlan tci is / ipv4 / tcp src is dst is > / end actions rss queues 4 5 end / end > + > + Get the message:: > + > + Flow rule validated > + > +2. Create a rule and list rules:: > + > + testpmd> flow create 0 ingress pattern eth dst is / vlan = tci is > / vlan tci is / ipv4 / tcp src is dst is > / end actions rss queues 4 5 end / end > + > + Get the message:: > + > + Flow rule #0 created > + > +3. Check the flow list:: > + > + testpmd> flow list 0 > + > + ID Group Prio Attr Rule > + 0 0 0 i-- ETH VLAN VLAN IPV4 TCP =3D> RSS > + > +4. Send matched packet in scapy on tester, check the DUT received this p= acket > and the action is right. > + > +Tester:: > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IP()/TCP(sport=3D,dport=3D)/("X"*80)],i= face=3D" ter interface>") > + > +DUT:: > + > + testpmd> port 0/queue 5: received 1 packets > + src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x8100 - le= ngth=3D142 - > nb_segs=3D1 - RSS hash=3D0xddc4fdb3 - RSS queue=3D0x5 - hw ptype: L2_ETHE= R > L3_IPV4_EXT_UNKNOWN L4_TCP - sw ptype: L2_ETHER_VLAN > INNER_L2_ETHER_VLAN INNER_L3_IPV4 INNER_L4_TCP - l2_len=3D18 - > inner_l2_len=3D4 - inner_l3_len=3D20 - inner_l4_len=3D20 - Receive queue= =3D0x5 > + ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD > RTE_MBUF_F_RX_IP_CKSUM_GOOD > RTE_MBUF_F_RX_OUTER_L4_CKSUM_GOOD > + > +5. Send mismatched packet in scapy on tester, check the DUT received thi= s > packet and the action is not right. > + > +Tester:: > + > + >>> sendp([Ether(dst=3D" inputset>",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IP()/TCP(sport=3D,dport=3D)/("X"*80)],i= face=3D" ter interface>") > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci change inputset>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IP()/TCP(sport=3D,dport=3D)/("X"*80)],i= face=3D" ter interface>") > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x inputset>,type=3D0x0800)/IP()/TCP(sport=3D,dport=3D)/("X"*8= 0)],iface > =3D"") > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IP()/TCP(sport=3D,dport=3D inputset>)/("X"*80)],iface=3D"") > + > +6. Destroy a rule and list rules:: > + > + testpmd> flow destroy 0 rule 0 > + > + Get the message:: > + > + Flow rule #0 destroyed > + > +7. Check the flow list:: > + > + testpmd> flow list 0 > + > + Check the rule not exists in the list. > + Send matched packets in step 4, check the action is not right. > + > +#Pipeline mode > + > +Test Case 5: MAC_QINQ_IPV6_UDP > +------------------------------ > +The test case enable QINQ switch filter for IPv6 + UDP in pipeline mode,= and > port can support as dst MAC + outer VLAN id + inner VLAN id + IPv6 + UDP. > + > +Test Steps > +~~~~~~~~~~ > +1. Validate a rule:: > + > + testpmd> flow validate 0 priority 0 ingress pattern eth dst is / > vlan tci is / vlan tci is / ipv6 dst is= / > udp src is dst is / end actions drop / end > + > + Get the message:: > + > + Flow rule validated > + > +2. Create a rule and list rules:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth dst is / vlan > tci is / vlan tci is / ipv6 dst is / udp > src is dst is / end actions drop / end > + > + Get the message:: > + > + Flow rule #0 created > + > +3. Check the flow list:: > + > + testpmd> flow list 0 > + > + ID Group Prio Attr Rule > + 0 0 0 i-- ETH VLAN VLAN IPV6 UDP =3D> DROP > + > +4. Send matched packet in scapy on tester, check the DUT received this p= acket > and the action is right. > + > +Tester:: > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IPv6(dst=3D" dst>")/UDP(sport=3D,dport=3D)/("X"*80)],iface=3D"") > + > +DUT:: > + > +5. Send mismatched packet in scapy on tester, check the DUT received thi= s > packet and the action is not right. > + > + >>> sendp([Ether(dst=3D" inputset>",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IPv6(dst=3D" dst>")/UDP(sport=3D,dport=3D)/("X"*80)],iface=3D"") > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci change inputset>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IPv6(dst=3D" dst>")/UDP(sport=3D,dport=3D)/("X"*80)],iface=3D"") > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x inputset>,type=3D0x0800)/IPv6(dst=3D" dst>")/UDP(sport=3D,dport=3D)/("X"*80)],iface=3D"") > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IPv6(dst=3D" inputset>")/UDP(sport=3D,dport=3D inputset>)/("X"*80)],iface=3D"") > + > +6. Destroy a rule and list rules:: > + > + testpmd> flow destroy 0 rule 0 > + > + Get the message:: > + > + Flow rule #0 destroyed > + > +7. Check the flow list:: > + > + testpmd> flow list 0 > + > + Check the rule not exists in the list. > + Send matched packets in step 4, check the action is not right. > + > +Test Case 6: MAC_QINQ_IPV6_TCP > +------------------------------ > +The test case enable QINQ switch filter for IPv6 + TCP in pipeline mode,= and > port can support as dst MAC + outer VLAN id + inner VLAN id + IPv6 + TCP. > + > +Test Steps > +~~~~~~~~~~ > +1. Validate a rule:: > + > + testpmd> flow validate 0 priority 0 ingress pattern eth dst is / > vlan tci is / vlan tci is / ipv6 dst is= / > tcp src is dst is / end actions queue index 7 / end > + > + Get the message:: > + > + Flow rule validated > + > +2. Create a rule and list rules:: > + > + testpmd> flow create 0 priority 0 ingress pattern eth dst is / vlan > tci is / vlan tci is / ipv6 dst is / tcp > src is dst is / end actions queue index 7 / end > + > + Get the message:: > + > + Flow rule #0 created > + > +3. Check the flow list:: > + > + testpmd> flow list 0 > + > + ID Group Prio Attr Rule > + 0 0 0 i-- ETH VLAN VLAN IPV6 TCP =3D> QUEUE > + > +4. Send matched packet in scapy on tester, check the DUT received this p= acket > and the action is right. > + > +Tester:: > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IPv6(dst=3D" dst>")/TCP(sport=3D,dport=3D)/("X"*80)],iface=3D"") > + > +DUT:: > + > + testpmd> port 0/queue 7: received 1 packets > + src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x8100 - le= ngth=3D162 - > nb_segs=3D1 - RSS hash=3D0xc5dfbe3f - RSS queue=3D0x7 - hw ptype: L2_ETHE= R > L3_IPV6_EXT_UNKNOWN L4_TCP - sw ptype: L2_ETHER_VLAN > INNER_L2_ETHER_VLAN INNER_L3_IPV6 INNER_L4_TCP - l2_len=3D18 - > inner_l2_len=3D4 - inner_l3_len=3D40 - inner_l4_len=3D20 - Receive queue= =3D0x7 > + ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD > RTE_MBUF_F_RX_IP_CKSUM_GOOD > RTE_MBUF_F_RX_OUTER_L4_CKSUM_GOOD > + > +5. Send mismatched packet in scapy on tester, check the DUT received thi= s > packet and the action is not right. > + > +Tester:: > + > + >>> sendp([Ether(dst=3D" inputset>",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IPv6(dst=3D" dst>")/TCP(sport=3D,dport=3D)/("X"*80)],iface=3D"") > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci change inputset>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IPv6(dst=3D" dst>")/TCP(sport=3D,dport=3D)/("X"*80)],iface=3D"") > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x inputset>,type=3D0x0800)/IPv6(dst=3D" dst>")/TCP(sport=3D,dport=3D)/("X"*80)],iface=3D"") > + > + >>> sendp([Ether(dst=3D"",type=3D0x8100)/Dot1Q(vlan=3D tci>,type=3D0x8100)/Dot1Q(vlan=3D0x tci>,type=3D0x0800)/IPv6(dst=3D" inputset>")/TCP(sport=3D,dport=3D inputset>)/("X"*80)],iface=3D"") > + > +6. Destroy a rule and list rules:: > + > + testpmd> flow destroy 0 rule 0 > + > + Get the message:: > + > + Flow rule #0 destroyed > + > +7. Check the flow list:: > + > + testpmd> flow list 0 > + > + Check the rule not exists in the list. > + Send matched packets in step 4, check the action is not right. > + > + > -- > 2.25.1