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 C984FA04A6; Wed, 9 Feb 2022 09:50:56 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BC91E41141; Wed, 9 Feb 2022 09:50:56 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id C6010410FD for ; Wed, 9 Feb 2022 09:50:54 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1644396655; x=1675932655; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=7kQFXnKVIAXazrVlEFgcMuFAzot9sJ8WzXIBWYLt1II=; b=m6Ozaw0lRog1YQXWm7jR0lLKOeLjhLbwwM4vGvNCI0eqZgP2Fmo5uCPY xQ+fV1oL7xa4poPTUGbXwT8SgVY46CXCciWSh1hXYIGP9BoRbvZUxriNI 7Siu7gwCE6zHehkYZY7W1vLB37x0AeUVEsm+GeDzm/JUuLVhaL1uqsB/M Pqp/MtggXyDhXh/RaFXV2lSmM8tTEp0rerJbdv8M6MXUZfLhuHvHky48c OPYTdtet2ALKigC8dA/y1v6m5J/JFcIwhvmSa+KvWaNILQ0Wm8LrmyIG+ PtkeDWeSh61X1fxf+9YgeNqVDzVpFgSUBFvjDtEAHvw883xC/er6+EEt0 Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10252"; a="248918697" X-IronPort-AV: E=Sophos;i="5.88,355,1635231600"; d="scan'208";a="248918697" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2022 00:50:53 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,355,1635231600"; d="scan'208";a="601551379" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga004.fm.intel.com with ESMTP; 09 Feb 2022 00:50:53 -0800 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) 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.2308.20; Wed, 9 Feb 2022 00:50:53 -0800 Received: from orsmsx604.amr.corp.intel.com (10.22.229.17) by ORSMSX607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Wed, 9 Feb 2022 00:50:52 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Wed, 9 Feb 2022 00:50:52 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.172) 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.2308.20; Wed, 9 Feb 2022 00:50:51 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f6RlXvucHES89JkrzzjDD+faFglgHWETMbMx6K+wgUKbGowTGGdRzpl8IZEnwPTm4/k4h955HvJemUD9vfyjBoQm93Sat7+wXpQYCPEkNG/KbvchrPIvs5rpet0LA6ep/RzXUPcJbhLCS/A1K9RjjtaaUf3nN5tH0LN8/PYp3xEOnGWnch3cDB3fxR+sFWZB8CFSJzp4J8B/UWyr/bdz2k4frJCJJO6X7sHGOX/bOaoAlZ3ME10LkwZyssjmJFKrinDa13yiQRk8k0Si419D/oL8E+WGdgH/bYwEBkxdypKrLJKLHUiHo8+eWss4hxTYT1+TQJH9bDmSCVyMXklFQg== 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=zo4cxFTVkutgV9vh0HZ5PlSD0OkM54Guy44l/dHtG9I=; b=C0VcHxOZYBN+dgyYpNiip7Ue4wQg73+rpcdpbVqRLt8I7mv8daIzvFKhe2hDzqLIDwYQeU09Y5yCOiWvgtkwoXq5JhY8ECzJSQkZkfHNAPjwLXd9KziDoWDlYeFzSNX6jOcAXyWIZpNsMv9u0v1qq0ZcSTt79DR58Y2rfrrdhiRlJub0UWD4E43hc32STfb38yvqwfOe1QpVWyNvfuGMLCoThbRdYI7/ZaYYwWaZO4S+heIsztwE4xzZOFFKQdaBlZSuK8LTphLwSgH4Z7Os1pZSc+fMKYokhzX/lnbNt4v7GfkQEvMTa3y25d09vhQsdl97LpWwcbEKO1/4Ca9SfQ== 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 DM6PR11MB2779.namprd11.prod.outlook.com (2603:10b6:5:c6::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4951.12; Wed, 9 Feb 2022 08:50:46 +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 08:50:46 +0000 From: "Lin, Xueqin" To: "Tang, Yaqi" , "dts@dpdk.org" CC: "Tang, Yaqi" Subject: RE: [dts][PATCH V6] test_plans/cvl_switch_filter: add test plan for cvl qinq switch filter support l4 Thread-Topic: [dts][PATCH V6] test_plans/cvl_switch_filter: add test plan for cvl qinq switch filter support l4 Thread-Index: AQHYHXl8RRrmobwpuE2Q7mRle8fO4ayK6OVg Date: Wed, 9 Feb 2022 08:50:46 +0000 Message-ID: References: <20220209135140.511809-1-yaqi.tang@intel.com> In-Reply-To: <20220209135140.511809-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: 52190833-8055-4fd5-b602-08d9eba943a0 x-ms-traffictypediagnostic: DM6PR11MB2779:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:107; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: CyMEU8W1ELUpxWp6XJEdH2FbP+FXfl4pOu6SvIBRglIF1ymOeALMl6Y8xCFgaCEkpYvxK+h7BcutyVsgcQ836K8PfQsmPMQcN3xjlO4r5fqqheZ57RlPTyBgo2DOlfxN25iVxsr5+pL3Ug638eosJztlV7GVinbqlE6+twK1SvxvlPL6wirUxtEZj2tRy2F1uzNdhE4i65piGwIfp9OYio+nkDMQRz38QYXXLexGOFxWbe9skzOcfTjPqVjne+RNfX6P9AIrqHQRtydwSAO09RFdCyDK63o+dWFypljyfojIoq3tJZiR6s/JVGP/x7hHN9ausl91ZkVd2OH84LEaA10GmJqOVd/aDAZ2Rc9G4HvUeR687pg8XP82Vw0G3crsxiwiRDCqoevHLsIxdAjSlvmj+Xlc/K5zfxzEvlSwdWeDg+Dw/7JFnA+s87iAlAiIEQTy06bRaRKu2eJFXVrJRDp6Mvf5cd9b08H6k85ZMVIN2qs4lVr8SgqnGCF0a1WOgG8JgzXz+gJL2cd5sKNIubuJ9RT7O/HQbqMubKyY2ZtqSp8TS9UXFaRfQgYtI1nq9a7Hf9OHxJWfTiDti015FXwzDtnro/mIabN4itGOi6NYK2z9rNzrYsOfsmWFa6+qI+Y4NyQiHkShlCnG05UqmaC/1HfYa7B/37ceVwYw7Q6wdDbn6I/3Vaw/WN5wlWQnicLfzSuui56Y6ZQGF0jLEw== 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)(7696005)(122000001)(82960400001)(8676002)(30864003)(66946007)(4326008)(6506007)(33656002)(508600001)(66446008)(8936002)(66556008)(66476007)(76116006)(110136005)(38100700002)(52536014)(26005)(316002)(71200400001)(55016003)(5660300002)(86362001)(38070700005)(64756008)(83380400001)(186003)(53546011)(9686003)(2906002)(107886003)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?zddvkdEpw0JR9xkZEydWlkmh+9AR2+smrCN6whKnmnOMbAkyIiaKeqTm3lUe?= =?us-ascii?Q?sbJGbm8pOBC3PsWkEPSp5ghWhAlHzWJP4kyUoekxFLJxLie6IDLc/AEPGor5?= =?us-ascii?Q?DusUXXzWaohFDgeAggHeIl8duNyDUhwZKOj7T+RhrqhVw6sK+oGRV1Yzz12I?= =?us-ascii?Q?mrH3704baGrQ4ztabCISqGhohWbeiv0uttmTLuHgtlwem31+8mCFR0egd2dz?= =?us-ascii?Q?IpYmvX6oQiAGG5FYI+u2ggYpb3lKU51xalnPxnZsO5X48efAXdzbSBmCf3gg?= =?us-ascii?Q?0/4bj51Z4zY2wOG9OF/ZQszK/6h1YlvPHp7sesHnrcfw2RXUI3aFdENZiqMk?= =?us-ascii?Q?IMgAkMI3+xvYLkusU+H4ZvJx3T30uxazseZUSziOQM6h6sy5/LtkC+fc8Ons?= =?us-ascii?Q?k8v53uyR3nnBICvmryoBHbbKeemFiA6lIk85SUg11HDVkMbvhNKSyWOV89zl?= =?us-ascii?Q?IOWyY2tbBOdI+CkoauuAYDBt0VjqVxOy8RkMcSFcYtHlUzrQOtumuTloBjAH?= =?us-ascii?Q?NuQy1UKHlkqVwgwHGkqbTqA0X3SNr8g5+4/8nEWLMYOvVUAa7W1sRvTy5MPa?= =?us-ascii?Q?Wvt04nv8+XV/rHPm5K/gXsdEpExCpE867hBIlVuUQebNYIM6FLmfGUOFg1ob?= =?us-ascii?Q?N0cmMySRIm9fUvIHEb2uNbxOIjotGnQp7XR9A1mcS3z4zmgRhWuTMip8VKLM?= =?us-ascii?Q?invBuCiB4YZX4Jp/PIfwoVa0R+l9yvQNBKLmEfm4jSsbrvhAEGCGPwurqPws?= =?us-ascii?Q?TDb7QWx5+iOWM2Vb761exda80t+diw3/RdHnHi2dykagsklAJccT93ugGjCn?= =?us-ascii?Q?K4fuFWW54SH2hcT1KCIkrIgwDbKZntKVSBZ7JUz8DgmGIR4+Hq+O0OQg/4uX?= =?us-ascii?Q?jSnX3Vi+BwHxz3WcWiGHbF23i64itOPLPUs3AZerQAyGkE/TIqAuI2BjEqpJ?= =?us-ascii?Q?DEiBhp/Fih2lgM6Y4f76pw8QkgalO3qzDPHYeANcGcGh2f5+WaKv32EDCLt6?= =?us-ascii?Q?EPXSfQosErD5bIj3myGu9Pjxh68m0m/UvkA/goTtQeXcnYpsbc8Bq1qLuLMf?= =?us-ascii?Q?IP01SMeFy6IOtNXvY3rSdBuMWajXiQx5afwhB5SeHZjI1EJxTThOkOtQtvQM?= =?us-ascii?Q?TnmlkcGy3zwZ1sV0OrvDOVtvut6u4/EOH01WIdznW/dhCnw4LQib78xXx528?= =?us-ascii?Q?gDaCf64Js8j15UMGwVdw/zz+HcVzL8g1Vq/nBl3mi4UdoM2NdkShWbz+oAYl?= =?us-ascii?Q?ss0g46WxbWKulUK4f9KXaKk//bTieX4Xm8r+/U+qd5CO7UsHhCXz6oXBjBnt?= =?us-ascii?Q?02IyGuexxjuw+V9hGmFOoX3NeiiQfxMuywMccvWhEC1ekoFwNzB/g2tz5xR0?= =?us-ascii?Q?BJ+lVS3Y8BBhEA3+AcOQMg76JTpvf4lYFs+r5VPTpz4Tk2VMibv6vEOO2CES?= =?us-ascii?Q?AC4VP4TJBfzokTMYvCwREfBBkcagDo7Hh3ifN21qqvHZXCBG5L4VkASk9yZx?= =?us-ascii?Q?iqjnUIbcDdU80LKXHpXjfpHhrZ/VsWE+vVC72SvyguYLkw3o3LbWnh2ogCfE?= =?us-ascii?Q?y/N6VLcRi2WLGmwXUQb1HXQZa6ZBsdBFakzpvVUj3nHvgBzW+k+x6t5o5ShD?= =?us-ascii?Q?Oza53S8JU2ILyn1OlsGzzQ4=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: 52190833-8055-4fd5-b602-08d9eba943a0 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Feb 2022 08:50:46.5292 (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: XxI2oLwRYgYi2v7jq/YC8bzK9auYT7kMF4uT92b0enyQmLht2FTR9IRwwsjHPyfqMO53fmqIkqDJZrYbYD2XWg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB2779 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 > -----Original Message----- > From: Yaqi Tang > Sent: Wednesday, February 9, 2022 9:52 PM > To: dts@dpdk.org > Cc: Tang, Yaqi > Subject: [dts][PATCH V6] 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> Acked-by: Xueqin Lin > --- > test_plans/cvl_switch_filter_test_plan.rst | 440 +++++++++++++++++++++ > 1 file changed, 440 insertions(+) >=20 > diff --git a/test_plans/cvl_switch_filter_test_plan.rst > b/test_plans/cvl_switch_filter_test_plan.rst > index 770af996..c064b955 100644 > --- a/test_plans/cvl_switch_filter_test_plan.rst > +++ b/test_plans/cvl_switch_filter_test_plan.rst > @@ -4761,3 +4761,443 @@ 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. > + > +Test Case > +=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +Common Steps > +------------ > +All the packets in the QINQ test case use below settings: > +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"") > + > +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