From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id DD549A04B5; Mon, 14 Dec 2020 06:30:30 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id CE4FC1F1C; Mon, 14 Dec 2020 06:30:29 +0100 (CET) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 87BE9A3 for ; Mon, 14 Dec 2020 06:30:28 +0100 (CET) IronPort-SDR: rqEW7dujDtyVCbBmzKzB8X8IEQCoJqEHx2rxk3q4qEnBiAhcT1iQOZtNAmVT0FpQAEEz7J7tzt DwlA82EN8V2A== X-IronPort-AV: E=McAfee;i="6000,8403,9834"; a="259383548" X-IronPort-AV: E=Sophos;i="5.78,417,1599548400"; d="scan'208";a="259383548" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2020 21:30:26 -0800 IronPort-SDR: 4YKhNumdiaGvK5YBW+ShxYAHse0S9yWZgZnVVxAa+X8bxAYNMVPS8MnTbV11lHrtIYSsm0AIc3 Z0YTML0seMjQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,417,1599548400"; d="scan'208";a="381354201" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga002.fm.intel.com with ESMTP; 13 Dec 2020 21:30:25 -0800 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Sun, 13 Dec 2020 21:30:25 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Sun, 13 Dec 2020 21:30:24 -0800 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (104.47.73.45) 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.1713.5; Sun, 13 Dec 2020 21:30:23 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l4VrIHQXUHR0B6oafF1HBO7BMf00v5/UlHG1JGVxJD4k+sFaZbfmEi22Eyi4bxWAYTJ0xa/THhmrW/vShM3qIgTkcj38hXv3dt+YSEpEhE9dhISOkInsUO/joipIHj7Hqx4WKX0MhdnWIgFWEX2iC8ec77cbzVtksZth6GRa4TiCchz/eDPoxlZ+NpuMRHdhEzNVLNYuo6r6LOogfnnRgNa9BIk84nD7AAEYo8xHpOY5SsdohxSM+dFz9vNHnL2vMAzT2H3ZIC4xqbzJs/FGfzVk9QrkuchJTadGXZacr6Nbe3YCxCYBnDoprh3ooVM8IIS0cd/11Ey5Pn74m82Eyw== 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=Ib0gJaQQTVadM9mnKHVm157ISI5h8Cuw3JVnjE8zAI8=; b=ZEcq9NukBwEXdJTqTQ1kF0x4QrWvzaeAquFtYSX24XN8yU3wJSmAaKGKi717l4Rtu4AOGRA1KK41NJWt30pqisE/FKguPZHkzMTvH33SKi49/Zq0XMaAb6Rf2SazKy9K1oskwW5E2hVD8JimWq+xfeocx/d6RsgyvtEgNHIwZvnwhHQHzBmWiG02TSMvShYZ9ycRqqPegZeYUws3AJ39aFPpOc2lL0TNV141oqr90HVsP5JE+abYtbMnsor8mMyEpyaKXhQFJI1EuD16OJBchBbUtEf/i6v2GMVy5+j9bE/IPA8bnQfkUJTAE8A3FpsagznzmZhZV9RlV/nRgtk9dw== 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=Ib0gJaQQTVadM9mnKHVm157ISI5h8Cuw3JVnjE8zAI8=; b=J1AlUJJfR4U7jccyIuiaBmawpKrtzcKc39rby0tJgPIVQ2X81V0+0f7bmgzNHMfteSManmKLxdm5ZGHRexhGRFbRYOnR2aE/u5y1q78UF9120fjFJgLnhnHgRV86EhV2b7lIA4uBlg6Y4LfTL5HHIabAekYGx9jhcdKFDs5n6fQ= Received: from BL0PR11MB3364.namprd11.prod.outlook.com (2603:10b6:208:69::21) by MN2PR11MB4757.namprd11.prod.outlook.com (2603:10b6:208:26b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3654.13; Mon, 14 Dec 2020 05:30:22 +0000 Received: from BL0PR11MB3364.namprd11.prod.outlook.com ([fe80::b8cc:2b0f:dcd5:953]) by BL0PR11MB3364.namprd11.prod.outlook.com ([fe80::b8cc:2b0f:dcd5:953%3]) with mapi id 15.20.3654.025; Mon, 14 Dec 2020 05:30:22 +0000 From: "Lin, Xueqin" To: "Chen, BoX C" , "dts@dpdk.org" CC: "Chen, BoX C" Thread-Topic: [dts] [PATCH V1] tests/cvl_dcf_switch_filter: add drop action test case Thread-Index: AQHWz2ZFtdHi0drNMkep+9pQjosz/6n2FZpQ Date: Mon, 14 Dec 2020 05:30:22 +0000 Message-ID: References: <20201211023317.13817-1-box.c.chen@intel.com> In-Reply-To: <20201211023317.13817-1-box.c.chen@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-reaction: no-action dlp-product: dlpe-windows 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.198.147.194] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2efa8a34-b27c-43ff-b654-08d89ff15a95 x-ms-traffictypediagnostic: MN2PR11MB4757: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:81; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hKTNJqZU1RZ7EpPdMGSkfdGHARPhjelI2KESdb3zO8EFf2ZzSa9kChbiHmcYUu6l+8xcppo+Y416vAEb6XJldHiajKHzdvgVmhGP3rrAT2twiGdeUO/87k9F37wM6X4AhqQFezgb8ssFlWcPQW3wUsdLkTXeWO1Mv2gSf0aF+WJCpEL0qZuUBA4sjI8TjA9Qbcw+Mf4BOcygSCqa57pS9AETaXtajIHKgPQs4gAYQYX5lSRP7Eh8IvPI1yXCOhhBNBkfau3+V3tjtTWz+EcrYBH3Xixhf5EUCUCQuN5RkR1HPI8yLKtZV2qJ3VgVI7Pq x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL0PR11MB3364.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(376002)(366004)(136003)(107886003)(66446008)(508600001)(4326008)(8936002)(33656002)(86362001)(30864003)(7696005)(66476007)(6506007)(71200400001)(110136005)(55016002)(66556008)(76116006)(52536014)(66946007)(64756008)(5660300002)(83380400001)(2906002)(26005)(53546011)(186003)(9686003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?jEePQ7LKEhVtJ37npuRjnnUr+lZe2X4wGx2w55GLxgatMpRAslT8uYgUKdze?= =?us-ascii?Q?PnrC3bMxZtM5K34UIuate+M2DH4uffljYetRKA7TUpU3imvQfr0eFXz0rKBI?= =?us-ascii?Q?rW7UFoGc/dTxScLKKJZBB6O7gQ9l9hM+IQjGpX9uQRCSAWyyGL4WmfXMbXkO?= =?us-ascii?Q?Cu3/BbsAcgqF+WNxkCyWBqgnlHXCpEXPYF4Qj3o9IL5wp75KtlBdQ/OKG0w5?= =?us-ascii?Q?B4yGbi+GKbeQhUM9sL1eBZmzE3SP3jf2BgPmyzpsf/f7RCeF+SHJFg4YtRN2?= =?us-ascii?Q?Lwz4ODP3xda4mH9oAT6xnPLkpFxVXxQqj4RE9dEFqG6rKAnFXQWEb+qtN5Y4?= =?us-ascii?Q?cXUmqA7AGmC32VIwkQeshG0C5nx+jJ6lMjGlQ7uXmfQ5cWdfHUjYxIKWQOZM?= =?us-ascii?Q?O1+pUkdzam+CnBl1Bsg8UqWUfh1VFdvM2tYbmLz+yPvhCdvZHMWLPgGqyj2Q?= =?us-ascii?Q?BDcmyTyoO14s3ZT4RZzWQ+jv8hUe6FytKHpfYuYpTerrloFV0aT11aXmNTt6?= =?us-ascii?Q?Nh/OnQvDtMPjwyMur5QlL0bJSGkorXXsSH389f6cWl+jSEycupHhv+TQvoCQ?= =?us-ascii?Q?eYmDXD89kRZzvCxinp8oq67kDbTw+bXMUB54CzOOorZmrKwIZugwlEhxRIyU?= =?us-ascii?Q?l95eP3M5cIOyl1BR3Tp2qAeB4QNTU7EFJVE0v8DnighF3uoQV3nkzi/k83gC?= =?us-ascii?Q?f7HG9exTRKiAzSozQnLE+pyqVX7m8SqtML+7/QXCX1pVnrqS2RBDR4X/by60?= =?us-ascii?Q?//Nav2GI8xW2pgTU7tiLyYVV5d36RyErNmWpmHpSFZ9uiPy/9KfF9NpCbK3y?= =?us-ascii?Q?kTtTaQsvpGre8vCLXrOlOeECwXyojtKAmHkofpHDJ+RixCPfD3ht936I9/Dk?= =?us-ascii?Q?KC0p8EwmHAN6dCoAbvI31rOylaWA0yDrDyw0xeIkkD8PjX6yvmLYdYm/r9sl?= =?us-ascii?Q?6OLNuRKhCcCGnXG6XzjQADitWfFp6Yu/qvT4dm9LBWA=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: BL0PR11MB3364.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2efa8a34-b27c-43ff-b654-08d89ff15a95 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Dec 2020 05:30:22.7351 (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: Y/oGfYK82z93VjsL46WNdzSNh/AdD++DO2b851rk2AeLCsQf2/Frq8cbbYoMvOpwGYZOczhCgy74FxBCGU3MFw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4757 X-OriginatorOrg: intel.com Subject: Re: [dts] [PATCH V1] tests/cvl_dcf_switch_filter: add drop action test case X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org Sender: "dts" Acked-by: Xueqin Lin > -----Original Message----- > From: dts On Behalf Of ChenBo > Sent: Friday, December 11, 2020 10:33 AM > To: dts@dpdk.org > Cc: Chen, BoX C > Subject: [dts] [PATCH V1] tests/cvl_dcf_switch_filter: add drop action te= st > case >=20 > Add test cases to test the drop action function of DCF. >=20 > Signed-off-by: ChenBo > --- > tests/TestSuite_cvl_dcf_switch_filter.py | 176 +++++++++++++++++++++++ > 1 file changed, 176 insertions(+) >=20 > diff --git a/tests/TestSuite_cvl_dcf_switch_filter.py > b/tests/TestSuite_cvl_dcf_switch_filter.py > index a65b73a3..be2e6cd6 100644 > --- a/tests/TestSuite_cvl_dcf_switch_filter.py > +++ b/tests/TestSuite_cvl_dcf_switch_filter.py > @@ -1216,6 +1216,156 @@ tv_mac_vlan_pppoe_ipcp_pay =3D { > "expect_results":{"expect_pkts":0}} > } >=20 > +tv_mac_ipv4_drop =3D { > + "name": "tv_mac_ipv4_drop", > + "rte_flow_pattern": "flow create 0 priority 0 ingress pattern eth / = ipv4 src > is 192.168.0.1 / end actions drop / end", > + "matched": {"scapy_str": > ['Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.1")/Raw("x"*80)'], > + "check_func": {"func": rfc.check_vf_rx_packets_number, > + "param": {"expect_port": 1, "expect_queues"= : "null"}}, > + "expect_results": {"expect_pkts": 0}}, > + "mismatched": {"scapy_str": > ['Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.2")/Raw("x"*80)'], > + "check_func": {"func": rfc.check_vf_rx_packets_number, > + "param": {"expect_port": 1, "expect_queues"= : "null"}}, > + "expect_results": {"expect_pkts": 1}} } > + > +tv_mac_ipv4_mask_drop =3D { > + "name": "tv_mac_ipv4_drop", > + "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 dst sp= ec > 224.0.0.0 dst mask 240.0.0.0 / end actions drop / end", > + "matched": {"scapy_str": > ['Ether(dst=3D"00:11:22:33:44:55")/IP(dst=3D"239.0.0.0")/TCP()/Raw("x"*80= )'], > + "check_func": {"func": rfc.check_vf_rx_packets_number, > + "param": {"expect_port": 1, "expect_queues"= : "null"}}, > + "expect_results": {"expect_pkts": 0}}, > + "mismatched": {"scapy_str": > ['Ether(dst=3D"00:11:22:33:44:55")/IP(dst=3D"128.0.0.0")/TCP()/Raw("x"*80= )'], > + "check_func": {"func": rfc.check_vf_rx_packets_number, > + "param": {"expect_port": 1, "expect_queues"= : "null"}}, > + "expect_results": {"expect_pkts": 1}} } > + > +tv_mac_nvgre_drop =3D { > + "name": "tv_mac_nvgre_drop", > + "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 dst is > 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.1= 68.1.3 / > end actions drop / end", > + "matched": {"scapy_str": > ['Ether(dst=3D"00:11:22:33:44:55")/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D2)= /Ether > ()/IP(src=3D"192.168.1.2", dst=3D"192.168.1.3")/Raw("x"*80)'], > + "check_func": {"func": rfc.check_vf_rx_packets_number, > + "param": {"expect_port": 1, "expect_queues"= : "null"}}, > + "expect_results": {"expect_pkts": 0}}, > + "mismatched": {"scapy_str": > ['Ether(dst=3D"00:11:22:33:44:55")/IP(dst=3D"192.168.0.1")/NVGRE(TNI=3D1)= /Ether > ()/IP(src=3D"192.168.1.2", dst=3D"192.168.1.3")/Raw("x"*80)'], > + "check_func": {"func": rfc.check_vf_rx_packets_number, > + "param": {"expect_port": 1, "expect_queues"= : "null"}}, > + "expect_results": {"expect_pkts": 1}} } > + > +tv_mac_ppoes_drop =3D { > + "name": "tv_mac_ppoes_drop", > + "rte_flow_pattern": "flow create 0 ingress pattern eth dst is > 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is = 0x0021 > / end actions drop / end", > + "matched": {"scapy_str": > ['Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x= 8864)/ > PPPoE(sessionid=3D3)/PPP(b"\\x00\\x21")/IP()/Raw("x" * 80)'], > + "check_func": {"func": rfc.check_vf_rx_packets_number, > + "param": {"expect_port": 1, "expect_queues"= : "null"}}, > + "expect_results": {"expect_pkts": 0}}, > + "mismatched": {"scapy_str": > ['Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x= 8864)/ > PPPoE(sessionid=3D2)/PPP(b"\\x00\\x21")/IP()/Raw("x" * 80)'], > + "check_func": {"func": rfc.check_vf_rx_packets_number, > + "param": {"expect_port": 1, "expect_queues"= : "null"}}, > + "expect_results": {"expect_pkts": 1}} } > + > +tv_mac_pfcp_drop =3D { > + "name": "tv_mac_pfcp_drop", > + "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / udp = / pfcp > s_field is 0 / end actions drop / end", > + "matched": {"scapy_str": > ['Ether(dst=3D"00:11:22:33:44:55")/IP()/UDP(dport=3D8805)/PFCP(S=3D0)'], > + "check_func": {"func": rfc.check_vf_rx_packets_number, > + "param": {"expect_port": 1, "expect_queues"= : "null"}}, > + "expect_results": {"expect_pkts": 0}}, > + "mismatched": {"scapy_str": > ['Ether(dst=3D"00:11:22:33:44:55")/IP()/UDP(dport=3D8805)/PFCP(S=3D1)'], > + "check_func": {"func": rfc.check_vf_rx_packets_number, > + "param": {"expect_port": 1, "expect_queues"= : "null"}}, > + "expect_results": {"expect_pkts": 1}} } > + > +tv_mac_vlan_drop =3D { > + "name": "tv_mac_vlan_drop", > + "rte_flow_pattern": "flow create 0 ingress pattern eth dst is > 00:11:22:33:44:55 / vlan tci is 1 / end actions drop / end", > + "matched": {"scapy_str": > ['Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1)/IP(src= =3D"192.16 > 8.0.1",dst=3D"192.168.0.2",tos=3D4,ttl=3D2)/TCP()/Raw("X"*80)'], > + "check_func": {"func": rfc.check_vf_rx_packets_number, > + "param": {"expect_port": 1, "expect_queues"= : "null"}}, > + "expect_results": {"expect_pkts": 0}}, > + "mismatched": {"scapy_str": > ['Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D2)/IP(src= =3D"192.16 > 8.0.1",dst=3D"192.168.0.2",tos=3D4,ttl=3D2)/TCP()/Raw("X"*80)'], > + "check_func": {"func": rfc.check_vf_rx_packets_number, > + "param": {"expect_port": 1, "expect_queues"= : "null"}}, > + "expect_results": {"expect_pkts": 1}} } > + > +tv_mac_l2tp_drop =3D { > + "name": "tv_mac_l2tp_drop", > + "rte_flow_pattern": "flow create 0 priority 0 ingress pattern eth / = ipv4 src > is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions drop / end", > + "matched": {"scapy_str": > ["Ether(dst=3D'00:11:22:33:44:55')/IP(src=3D'192.168.0.2', > proto=3D115)/L2TP(b'\\x00\\x00\\x00\\x01')/('X'*480)"], > + "check_func": {"func": rfc.check_vf_rx_packets_number, > + "param": {"expect_port": 1, "expect_queues"= : "null"}}, > + "expect_results": {"expect_pkts": 0}}, > + "mismatched": {"scapy_str": > ["Ether(dst=3D'00:11:22:33:44:55')/IP(src=3D'192.168.0.2', > proto=3D115)/L2TP(b'\\x00\\x00\\x00\\x02')/('X'*480)"], > + "check_func": {"func": rfc.check_vf_rx_packets_number, > + "param": {"expect_port": 1, "expect_queues"= : "null"}}, > + "expect_results": {"expect_pkts": 1}} } > + > +tv_mac_esp_drop =3D { > + "name": "tv_mac_l2tp_drop", > + "rte_flow_pattern": "flow create 0 priority 0 ingress pattern eth / = ipv4 src > is 192.168.0.2 / esp spi is 1 / end actions drop / end", > + "matched": {"scapy_str": > ['Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.2", > proto=3D50)/ESP(spi=3D1)/("X"*480)'], > + "check_func": {"func": rfc.check_vf_rx_packets_number, > + "param": {"expect_port": 1, "expect_queues"= : "null"}}, > + "expect_results": {"expect_pkts": 0}}, > + "mismatched": {"scapy_str": > ['Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.2", > proto=3D50)/ESP(spi=3D2)/("X"*480)'], > + "check_func": {"func": rfc.check_vf_rx_packets_number, > + "param": {"expect_port": 1, "expect_queues"= : "null"}}, > + "expect_results": {"expect_pkts": 1}} } > + > +tv_mac_blend_pkg_drop =3D { > + "name": "tv_mac_blend_pkg_drop", > + "rte_flow_pattern": ["flow create 0 priority 0 ingress pattern eth /= ipv4 > src is 192.168.0.1 / end actions drop / end", > + "flow create 0 ingress pattern eth / ipv4 dst s= pec 224.0.0.0 dst > mask 240.0.0.0 / end actions drop / end", > + "flow create 0 ingress pattern eth / ipv4 dst i= s 192.168.0.3 / > nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end a= ctions > drop / end", > + "flow create 0 ingress pattern eth dst is 00:11= :22:33:44:55 / > vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions= drop / > end", > + "flow create 0 ingress pattern eth / ipv4 / udp= / pfcp s_field is > 0 / end actions drop / end", > + "flow create 0 ingress pattern eth dst is 00:11= :22:33:44:55 / > vlan tci is 1 / end actions drop / end", > + "flow create 0 priority 0 ingress pattern eth /= ipv4 src is > 192.168.0.4 / l2tpv3oip session_id is 1 / end actions drop / end", > + "flow create 0 priority 0 ingress pattern eth /= ipv4 src is > 192.168.0.5 / esp spi is 1 / end actions drop / end"], > + "matched": {"scapy_str": > ['Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.1")/Raw("x"*80)', > + > 'Ether(dst=3D"00:11:22:33:44:55")/IP(dst=3D"239.0.0.0")/TCP()/Raw("x"*80)= ', > + > 'Ether(dst=3D"00:11:22:33:44:55")/IP(dst=3D"192.168.0.3")/NVGRE(TNI=3D2)/= Ether() > /IP(src=3D"192.168.1.2", dst=3D"192.168.1.3")/Raw("x"*80)', > + > 'Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x8= 864)/P > PPoE(sessionid=3D3)/PPP(b"\\x00\\x21")/IP()/Raw("X" * 80)', > + > 'Ether(dst=3D"00:11:22:33:44:55")/IP()/UDP(dport=3D8805)/PFCP(S=3D0)', > + > 'Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1)/IP(src=3D= "192.16 > 8.0.1",dst=3D"192.168.0.2",tos=3D4,ttl=3D2)/TCP()/Raw("X"*80)', > + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src= =3D"192.168.0.4", > proto=3D115)/L2TP(b"\\x00\\x00\\x00\\x01")/("X"*480)', > + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src= =3D"192.168.0.5", > proto=3D50)/ESP(spi=3D1)/("X"*80)'], > + "check_func": {"func": rfc.check_vf_rx_packets_number, > + "param": {"expect_port": 1, "expect_queues"= : "null"}}, > + "expect_results": {"expect_pkts": 0}}, > + "mismatched": {"scapy_str": > ['Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"192.168.0.6")/Raw("x"*80)', > + > 'Ether(dst=3D"00:11:22:33:44:55")/IP(dst=3D"128.0.0.0")/TCP()/Raw("x"*80)= ', > + > 'Ether(dst=3D"00:11:22:33:44:55")/IP(dst=3D"192.168.0.8")/NVGRE(TNI=3D1)/= Ether() > /IP(src=3D"192.168.1.2", dst=3D"192.168.1.3")/Raw("x"*80)', > + > 'Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D1,type=3D0x8= 864)/P > PPoE(sessionid=3D2)/PPP(b"\\x00\\x21")/IP()/Raw("x" * 80)', > + > 'Ether(dst=3D"00:11:22:33:44:55")/IP()/UDP(dport=3D8805)/PFCP(S=3D1)', > + > 'Ether(dst=3D"00:11:22:33:44:55",type=3D0x8100)/Dot1Q(vlan=3D2)/IP(src=3D= "192.16 > 8.0.9",dst=3D"192.168.0.2",tos=3D4,ttl=3D2)/TCP()/Raw("X"*80)', > + 'Ether(dst=3D"00:11:22:33:44:55")/IP(sr= c=3D"192.168.0.10", > proto=3D115)/L2TP(b"\\x00\\x00\\x00\\x02")/("X"*480)', > + 'Ether(dst=3D"00:11:22:33:44:55")/IP(sr= c=3D"192.168.0.11", > proto=3D50)/ESP(spi=3D2)/("X"*80)'], > + "check_func": {"func": rfc.check_vf_rx_packets_number, > + "param": {"expect_port": 1, "expect_queues"= : "null"}}, > + "expect_results": {"expect_pkts": 8}} } > + > +sv_mac_test_drop_action =3D [ > + tv_mac_ipv4_drop, > + tv_mac_ipv4_mask_drop, > + tv_mac_nvgre_drop, > + tv_mac_ppoes_drop, > + tv_mac_pfcp_drop, > + tv_mac_vlan_drop, > + tv_mac_l2tp_drop, > + tv_mac_esp_drop, > + tv_mac_blend_pkg_drop > +] > + > class CVLDCFSwitchFilterTest(TestCase): >=20 > def bind_nics_driver(self, ports, driver=3D""): > @@ -2175,6 +2325,32 @@ class CVLDCFSwitchFilterTest(TestCase): > self.setup_1pf_vfs_env() > self._rte_flow_validate_pattern(tv_mac_vlan_pppoe_ipcp_pay) >=20 > + def test_mac_drop_action(self): > + self.setup_1pf_vfs_env() > + self.dut.send_expect('ip link set %s vf 1 mac "00:11:22:33:44:55= "' % > self.pf0_intf, '# ') > + self.launch_testpmd() > + for pattern in sv_mac_test_drop_action: > + # validate a rule > + self.validate_switch_filter_rule(pattern["rte_flow_pattern"]= ) > + # create a rule > + rule_list =3D self.create_switch_filter_rule(pattern["rte_fl= ow_pattern"]) > # create a rule > + self.check_switch_filter_rule_list(0, rule_list) > + # send matched packets and check > + matched_dic =3D pattern["matched"] > + self.send_and_check_packets(matched_dic) > + # send mismatched packets and check > + mismatched_dic =3D pattern["mismatched"] > + self.send_and_check_packets(mismatched_dic) > + # destroy rule and send matched packets > + self.destroy_switch_filter_rule(0, rule_list) > + self.check_switch_filter_rule_list(0, []) > + # send matched packets and check > + destroy_dict =3D copy.deepcopy(matched_dic) > + destroy_dict["expect_results"]["expect_pkts"] =3D > len(pattern["matched"]["scapy_str"]) > + self.send_and_check_packets(destroy_dict) > + self.dut.send_expect("flow flush 0", "testpmd> ", 15) > + self.dut.send_expect("clear port stats all", "testpmd> ", > + 15) > + > def tear_down(self): > """ > Run after each test case. > -- > 2.17.1