From patchwork Tue Oct 19 17:55:50 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zou Ping X-Patchwork-Id: 102151 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 9F6BDA0C4D; Tue, 19 Oct 2021 11:25:13 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 97CFD40142; Tue, 19 Oct 2021 11:25:13 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 85AE54003E for ; Tue, 19 Oct 2021 11:25:11 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10141"; a="228344795" X-IronPort-AV: E=Sophos;i="5.85,384,1624345200"; d="scan'208";a="228344795" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Oct 2021 02:25:06 -0700 X-IronPort-AV: E=Sophos;i="5.85,384,1624345200"; d="scan'208";a="494017757" Received: from unknown (HELO cvl_100g_103.icx.intel.com) ([10.240.183.103]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Oct 2021 02:25:02 -0700 From: Zou Ping To: dts@dpdk.org Cc: Zou Ping Date: Wed, 20 Oct 2021 01:55:50 +0800 Message-Id: <20211019175551.26271-1-pingx.zou@intel.com> X-Mailer: git-send-email 2.17.1 Subject: [dts] [PATCH V1 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 change. modified influenced rules and deleted unsupported rules. Signed-off-by: Zou Ping --- tests/TestSuite_cvl_fdir.py | 80 ++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 42 deletions(-) diff --git a/tests/TestSuite_cvl_fdir.py b/tests/TestSuite_cvl_fdir.py index 541599fe..d7aa4a55 100644 --- a/tests/TestSuite_cvl_fdir.py +++ b/tests/TestSuite_cvl_fdir.py @@ -30,18 +30,17 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -import re -import time import copy import os +import re +import time -from packet import Packet -from pmd_output import PmdOutput -from test_case import TestCase, skip_unsupported_pkg -import rte_flow_common as rfc - -from utils import GREEN, RED -import utils +import framework.utils as utils +import tests.rte_flow_common as rfc +from framework.packet import Packet +from framework.pmd_output import PmdOutput +from framework.test_case import TestCase, skip_unsupported_pkg +from framework.utils import GREEN, RED MAC_IPV4_PAY = { "match": [ @@ -399,7 +398,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 +449,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 +991,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 +1458,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 +1506,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 +1561,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 +1626,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 +1924,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 +1989,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 +2136,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 +2194,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 +2332,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 +2747,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 +2913,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 +2925,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 +2945,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 +2995,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",