From patchwork Wed Oct 20 13:53:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zou Ping X-Patchwork-Id: 102338 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C09CFA0C45; Wed, 20 Oct 2021 07:22:47 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7DFF540150; Wed, 20 Oct 2021 07:22:47 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 022B340142 for ; Wed, 20 Oct 2021 07:22:44 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10142"; a="228964879" X-IronPort-AV: E=Sophos;i="5.87,165,1631602800"; d="scan'208";a="228964879" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Oct 2021 22:22:44 -0700 X-IronPort-AV: E=Sophos;i="5.87,165,1631602800"; d="scan'208";a="662105330" Received: from unknown (HELO cvl_100g_103.icx.intel.com) ([10.240.183.103]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Oct 2021 22:22:42 -0700 From: Zou Ping To: dts@dpdk.org Cc: Zou Ping Date: Wed, 20 Oct 2021 21:53:23 +0800 Message-Id: <20211020135324.8931-1-pingx.zou@intel.com> X-Mailer: git-send-email 2.17.1 Subject: [dts] [PATCH V2 1/2] tests/cvl_fdir: modify the priority of switch and fdir and length of qfi 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" the priority of switch and fdir changed,length of qfi changed. modified influenced rules and deleted unsupported rules. Signed-off-by: Zou Ping --- tests/TestSuite_cvl_fdir.py | 63 ++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 33 deletions(-) diff --git a/tests/TestSuite_cvl_fdir.py b/tests/TestSuite_cvl_fdir.py index 541599fe..6cd5262a 100644 --- a/tests/TestSuite_cvl_fdir.py +++ b/tests/TestSuite_cvl_fdir.py @@ -399,7 +399,7 @@ tv_mac_ipv4_pay_passthru = { tv_mac_ipv4_pay_drop = { "name": "test_mac_ipv4_pay_drop", - "rule": "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions drop / end", + "rule": "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions drop / mark / end", "scapy_str": MAC_IPV4_PAY, "check_func": rfc.check_mark, "check_param": {"port_id": 0, "drop": True} @@ -450,7 +450,7 @@ tv_mac_ipv4_udp_passthru = { tv_mac_ipv4_udp_drop = { "name": "test_mac_ipv4_udp_drop", - "rule": "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions drop / end", + "rule": "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions drop / mark / end", "scapy_str": MAC_IPV4_UDP, "check_func": rfc.check_mark, "check_param": {"port_id": 0, "drop": True} @@ -992,7 +992,7 @@ tv_mac_ipv4_tun_mac_ipv4_pay_passthru = { tv_mac_ipv4_tun_mac_ipv4_pay_drop = { "name": "test_mac_ipv4_tun_mac_ipv4_pay_drop", - "rule": "flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions drop / end", + "rule": "flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions drop / mark / end", "scapy_str": MAC_IPV4_TUN_IPV4_PAY_MAC_IPV4_TUN_MAC_IPV4_PAY, "check_func": rfc.check_mark, "check_param": {"port_id": 0, "drop": True} @@ -1459,7 +1459,7 @@ tv_mac_ipv4_gtpu_passthru = { tv_mac_ipv4_gtpu_drop = { "name": "test_mac_ipv4_gtpu_drop", - "rule": "flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions drop / end", + "rule": "flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions drop / mark / end", "scapy_str": MAC_IPV4_GTPU, "check_func": rfc.check_mark, "check_param": {"port_id": 0, "drop": True} @@ -1507,7 +1507,7 @@ tv_mac_ipv4_gtpu_3tuple_passthru = { tv_mac_ipv4_gtpu_3tuple_drop = { "name": "test_mac_ipv4_gtpu_3tuple_drop", - "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / gtpu teid is 0x12345678 / end actions drop / end", + "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / gtpu teid is 0x12345678 / end actions drop / mark / end", "scapy_str": MAC_IPV4_GTPU, "check_func": rfc.check_mark, "check_param": {"port_id": 0, "drop": True} @@ -1562,7 +1562,7 @@ tv_mac_ipv4_gtpu_dstip_passthru = { tv_mac_ipv4_gtpu_dstip_drop = { "name": "test_mac_ipv4_gtpu_dstip_drop", - "rule": "flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp / gtpu / end actions drop / end", + "rule": "flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp / gtpu / end actions drop / mark / end", "scapy_str": {"match": [ 'Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.21", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x1234567)/IPv6()/TCP()/Raw("x"*20)'], @@ -1627,7 +1627,7 @@ tv_mac_ipv4_gtpu_srcip_passthru = { tv_mac_ipv4_gtpu_srcip_drop = { "name": "test_mac_ipv4_gtpu_srcip_drop", - "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / gtpu / end actions drop / end", + "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / gtpu / end actions drop / mark / end", "scapy_str": {"match": [ 'Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.22")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x1234567)/IPv6()/UDP()/Raw("x"*20)'], @@ -1925,7 +1925,7 @@ tv_mac_ipv6_gtpu_dstip_passthru = { tv_mac_ipv6_gtpu_dstip_drop = { "name": "test_mac_ipv6_gtpu_dstip_drop", - "rule": "flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu / end actions drop / end", + "rule": "flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / gtpu / end actions drop / mark / end", "scapy_str": {"match": [ 'Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::3", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x1234567)/IPv6()/IPv6ExtHdrFragment()/Raw("x"*20)'], @@ -1990,7 +1990,7 @@ tv_mac_ipv6_gtpu_srcip_passthru = { tv_mac_ipv6_gtpu_srcip_drop = { "name": "test_mac_ipv6_gtpu_srcip_drop", - "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::2 / udp / gtpu / end actions drop / end", + "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::2 / udp / gtpu / end actions drop / mark / end", "scapy_str": {"match": [ 'Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IPv6(src="2001::2", dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x1234567)/IPv6()/TCP(sport=22, dport=23)/Raw("x"*20)'], @@ -2137,11 +2137,11 @@ tv_l2_ethertype_mark = { tv_l2_ethertype_drop = { "name": "test_l2_ethertype_drop", "rule": [ - "flow create 0 ingress pattern eth type is 0x8863 / end actions drop / end", - "flow create 0 ingress pattern eth type is 0x8864 / end actions drop / end", - "flow create 0 ingress pattern eth type is 0x0806 / end actions drop / end", - "flow create 0 ingress pattern eth type is 0x8100 / end actions drop / end", - "flow create 0 ingress pattern eth type is 0x88f7 / end actions drop / end"], + "flow create 0 ingress pattern eth type is 0x8863 / end actions drop / mark / end", + "flow create 0 ingress pattern eth type is 0x8864 / end actions drop / mark / end", + "flow create 0 ingress pattern eth type is 0x0806 / end actions drop / mark / end", + "flow create 0 ingress pattern eth type is 0x8100 / end actions drop / mark / end", + "flow create 0 ingress pattern eth type is 0x88f7 / end actions drop / mark / end"], "scapy_str": L2_Ethertype, "check_param": [ {"port_id": 0, "drop": 1}, @@ -2195,7 +2195,7 @@ tv_mac_ipv4_esp_passthru = { tv_mac_ipv4_esp_drop = { "name": "tv_mac_ipv4_esp_drop", - "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions drop / end", + "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions drop / mark / end", "scapy_str": {"match": MAC_IPV4_ESP['matched'], "unmatched": MAC_IPV4_ESP['unmatched'], }, @@ -2333,7 +2333,7 @@ tv_mac_ipv4_nat_t_esp_passthru = { tv_mac_ipv4_nat_t_esp_drop = { "name": "tv_mac_ipv4_nat_t_esp_drop", - "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions drop / end", + "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions drop / mark / end", "scapy_str": {"match": MAC_IPV4_NAT_T_ESP['matched'], "unmatched": MAC_IPV4_NAT_T_ESP['unmatched'], }, @@ -2748,9 +2748,6 @@ class TestCVLFdir(TestCase): self.validate_fdir_rule( 'flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 63 64 end / end', check_stats=False, check_msg='Invalid argument') - self.validate_fdir_rule( - 'flow validate 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x100 / end actions queue index 1 / end', - check_stats=False, check_msg='Bad arguments') self.validate_fdir_rule( 'flow validate 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x100000000 / gtp_psc qfi is 0x5 / end actions queue index 2 / end', check_stats=False, check_msg='Bad arguments') @@ -2917,7 +2914,6 @@ class TestCVLFdir(TestCase): def test_invalid_parameters_of_input_set(self): rule = [ - "flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x100 / end actions queue index 1 / end", "flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x100000000 / gtp_psc qfi is 0x5 / end actions queue index 2 / end", "flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x100000000 / end actions queue index 1 / end" ] @@ -2930,19 +2926,19 @@ class TestCVLFdir(TestCase): self.check_fdir_rule(stats=False) def test_duplicated_rules(self): - rule = "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions queue index 1 / end" + rule = "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions queue index 1 / mark / end" rule_li = self.create_fdir_rule(rule, check_stats=True) self.create_fdir_rule(rule, check_stats=False, msg="Rule already exists!: File exists", validate=False) self.check_fdir_rule(stats=True, rule_list=rule_li) def test_conflicted_rules(self): rule1 = [ - 'flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions queue index 1 / end', + 'flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions queue index 1 / mark / end', 'flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 / end actions queue index 1 / mark / end'] rule_li = self.create_fdir_rule(rule1, check_stats=True) rule2 = [ - "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions queue index 2 / end", - "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions drop / end", + "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions queue index 2 / mark / end", + "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions drop / mark / end", 'flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 / end actions queue index 2 / mark / end', 'flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 / end actions rss queues 2 3 end / mark / end', 'flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.21 ttl is 2 tos is 4 / end actions queue index 3 / mark / end', @@ -2950,8 +2946,7 @@ class TestCVLFdir(TestCase): 'flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2021 / end actions mark / end', 'flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 / udp src is 22 dst is 23 / end actions queue index 1 / mark / end'] self.create_fdir_rule(rule2[0:4], check_stats=False, msg="Rule already exists!: File exists", validate=False) - self.create_fdir_rule(rule2[4:7], check_stats=False, msg="error", validate=False) - self.create_fdir_rule(rule2[7:], check_stats=False, msg="Invalid input set: Invalid argument", validate=False) + self.create_fdir_rule(rule2[4:], check_stats=False, msg="error", validate=False) self.check_fdir_rule(stats=True, rule_list=rule_li) def test_conflicted_actions(self): @@ -3001,29 +2996,31 @@ class TestCVLFdir(TestCase): switch_flag = "ice_flow_create(): Succeeded to create (2) flow" pkts = ['Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/Raw("x" * 80)', 'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21") /UDP(sport=22, dport=23)/ Raw("x" * 80)'] - rule1 = 'flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / end actions queue index 1 / end' + rule1 = 'flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / end actions queue index 1 / mark id 1 / end' out = self.pmd_output.execute_cmd(rule1) self.verify(fdir_flag in out, "fdir rule should be created") out = self.send_pkts_getouput(pkts=pkts) - rfc.check_mark(out, pkt_num=2, check_param={"port_id": 0, "queue": 1}, stats=True) + rfc.check_mark(out, pkt_num=2, check_param={"port_id": 0, "queue": 1,"mark_id":1}, stats=True) rule2 = "flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 2 / end" out = self.pmd_output.execute_cmd(rule2) self.verify(switch_flag in out, "switch rule should be created") out = self.send_pkts_getouput(pkts=pkts[0]) - rfc.check_mark(out, pkt_num=1, check_param={"port_id": 0, "queue": 1}, stats=True) + rfc.check_mark(out, pkt_num=1, check_param={"port_id": 0, "queue": 1,"mark_id":1}, stats=True) out = self.send_pkts_getouput(pkts=pkts[1]) rfc.check_mark(out, pkt_num=1, check_param={"port_id": 0, "queue": 2}, stats=True) + rule3 = "flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 2 / mark id 1 / end" + rule4 = "flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / end actions queue index 1 / end" self.pmd_output.execute_cmd('flow flush 0') - out = self.pmd_output.execute_cmd(rule2) + out = self.pmd_output.execute_cmd(rule3) self.verify(fdir_flag in out, "fdir rule should be created") out = self.send_pkts_getouput(pkts=pkts[1]) - rfc.check_mark(out, pkt_num=1, check_param={"port_id": 0, "queue": 2}, stats=True) - out = self.pmd_output.execute_cmd(rule1) + rfc.check_mark(out, pkt_num=1, check_param={"port_id": 0, "queue": 2,"mark_id":1}, stats=True) + out = self.pmd_output.execute_cmd(rule4) self.verify(switch_flag in out, "switch rule should be created") out = self.send_pkts_getouput(pkts=pkts[1]) - rfc.check_mark(out, pkt_num=1, check_param={"port_id": 0, "queue": 1}, stats=True) + rfc.check_mark(out, pkt_num=1, check_param={"port_id": 0, "queue": 1,"mark_id":1}, stats=True) def test_count_for_1_rule(self): rule = ["flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 1 / count / end",