From patchwork Mon Jul 18 02:54:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Weiyuan Li X-Patchwork-Id: 113993 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 54D57A0547; Mon, 18 Jul 2022 04:55:09 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4F97A410F6; Mon, 18 Jul 2022 04:55:09 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 1B00B4069F for ; Mon, 18 Jul 2022 04:55:06 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1658112907; x=1689648907; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=wRWE2bJF6MzSrtnw0AJtDawVo8MxdZu7OfTO89/IiYw=; b=M3TRq+mxAYQytRzUI1RUKKpa41Eba4XXQ5rXIvjYTEwjHt3JZXqqa3G9 ysvrKX6wspTj/xUZzQxSnu/UbuGBQQnAzL/Jm8ugnnUJZxGmDN41vOC5i 4rh+XMGkYT59Jl1jUktJELVAY831W7JjD9bnzf9Ql045CMJvXCE2yiJHm 8gzZbA17rXYaWx0f9hNVGbzKcZN1dhwmc497sWyueuh5ngv12soxldlxr Dn/sn+t30Jw4O71wulU7DjLfMtVFAVbJEU8etIXTni59x42uDnrBwyCbD hagu69o/tdq38VDV93AALbEqTz22D5yM1Rjrcg+e+fOWVfyntacBpCecA A==; X-IronPort-AV: E=McAfee;i="6400,9594,10411"; a="287263497" X-IronPort-AV: E=Sophos;i="5.92,280,1650956400"; d="scan'208";a="287263497" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jul 2022 19:55:06 -0700 X-IronPort-AV: E=Sophos;i="5.92,280,1650956400"; d="scan'208";a="624541985" Received: from unknown (HELO localhost.localdomain) ([10.239.252.248]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jul 2022 19:55:04 -0700 From: Weiyuan Li To: dts@dpdk.org, yuan.peng@intel.com Cc: Weiyuan Li Subject: [dts][PATCH V1 04/12] tests/ice_advanced_iavf_rss: update dts code for dpdk csum change Date: Mon, 18 Jul 2022 10:54:39 +0800 Message-Id: <20220718025447.13287-4-weiyuanx.li@intel.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220718025447.13287-1-weiyuanx.li@intel.com> References: <20220718025447.13287-1-weiyuanx.li@intel.com> MIME-Version: 1.0 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 According to dpdk commit 9b4ea7ae77fa(app/testpmd: revert MAC update in checksum forwarding) modify the script adapt to this chagne. 1. Modify VF case to enable promisc. 2. Modify PF case to send packet dst mac is random. Signed-off-by: Weiyuan Li --- tests/TestSuite_ice_advanced_iavf_rss.py | 70 +++++++++++++++++++----- 1 file changed, 56 insertions(+), 14 deletions(-) diff --git a/tests/TestSuite_ice_advanced_iavf_rss.py b/tests/TestSuite_ice_advanced_iavf_rss.py index e560c9e6..5ed68d1c 100644 --- a/tests/TestSuite_ice_advanced_iavf_rss.py +++ b/tests/TestSuite_ice_advanced_iavf_rss.py @@ -5781,10 +5781,34 @@ class AdvancedIavfRSSTest(TestCase): self.vf_flag = False self.create_iavf() + def ip_link_set(self, host_intf=None, cmd=None, port=None, types=None, value=0): + if host_intf is None or cmd is None or port is None or types is None: + return + set_command = f"ip link set {host_intf} {cmd} {port} {types} {value}" + out = self.dut.send_expect(set_command, "# ") + if "RTNETLINK answers: Invalid argument" in out: + self.dut.send_expect(set_command, "# ") + def set_up(self): """ Run before each test case. """ + if self.running_case == "test_flow_rule_not_impact_rx_tx_chksum": + self.host_intf_0 = self.dut.ports_info[self.used_dut_port]["intf"] + self.ip_link_set( + host_intf=self.host_intf_0, + cmd="vf", + port=0, + types="trust", + value="on", + ) + self.ip_link_set( + host_intf=self.host_intf_0, + cmd="vf", + port=0, + types="spoofchk", + value="off", + ) self.pkt = Packet() self.pmd_output = PmdOutput(self.dut) self.launch_testpmd() @@ -6371,6 +6395,7 @@ class AdvancedIavfRSSTest(TestCase): checksum_pattern = re.compile("chksum.*=.*(0x[0-9a-z]+)") self.tester.send_expect("scapy", ">>> ") sniff_src = self.dut.get_mac_address(self.dut_ports[0]) + vf0_mac = "52:00:00:00:00:00" for pkt in expect_pkts: self.tester.send_expect("p = %s" % expect_pkts[pkt], ">>>") out = self.tester.send_expect("p.show2()", ">>>") @@ -6418,23 +6443,24 @@ class AdvancedIavfRSSTest(TestCase): self.pmd_output.execute_cmd("csum set sctp hw 0") self.pmd_output.execute_cmd("port start all") self.pmd_output.execute_cmd("start") + random_dst_mac = "00:11:22:33:44:56" pkt_list = { - "IP": 'Ether(dst="00:11:22:33:44:55", src="52:00:00:00:00:00")/IP(src="192.168.0.1", chksum=0xfff3)/("X"*48)', - "IP/TCP": 'Ether(dst="00:11:22:33:44:55", src="52:00:00:00:00:00")/IP(src="192.168.0.1")/TCP(sport=22, chksum=0xfff3)/("X"*48)', - "IP/UDP": 'Ether(dst="00:11:22:33:44:55", src="52:00:00:00:00:00")/IP(src="192.168.0.1")/UDP(sport=22, chksum=0x1)/("X"*48)', - "IP/SCTP": 'Ether(dst="00:11:22:33:44:55", src="52:00:00:00:00:00")/IP(src="192.168.0.1")/SCTP(sport=22, chksum=0x0)/("X"*48)', - "IPv6/TCP": 'Ether(dst="00:11:22:33:44:55", src="52:00:00:00:00:00")/IPv6()/TCP(sport=22, chksum=0xe38)/("X"*48)', - "IPv6/UDP": 'Ether(dst="00:11:22:33:44:55", src="52:00:00:00:00:00")/IPv6()/UDP(sport=22, chksum=0xe38)/("X"*48)', - "IPv6/SCTP": 'Ether(dst="00:11:22:33:44:55", src="52:00:00:00:00:00")/IPv6()/SCTP(sport=22, chksum=0x0)/("X"*48)', + "IP": f'Ether(dst="{random_dst_mac}", src="52:00:00:00:00:00")/IP(src="192.168.0.1", chksum=0xfff3)/("X"*48)', + "IP/TCP": f'Ether(dst="{random_dst_mac}", src="52:00:00:00:00:00")/IP(src="192.168.0.1")/TCP(sport=22, chksum=0xfff3)/("X"*48)', + "IP/UDP": f'Ether(dst="{random_dst_mac}", src="52:00:00:00:00:00")/IP(src="192.168.0.1")/UDP(sport=22, chksum=0x1)/("X"*48)', + "IP/SCTP": f'Ether(dst="{random_dst_mac}", src="52:00:00:00:00:00")/IP(src="192.168.0.1")/SCTP(sport=22, chksum=0x0)/("X"*48)', + "IPv6/TCP": f'Ether(dst="{random_dst_mac}", src="52:00:00:00:00:00")/IPv6()/TCP(sport=22, chksum=0xe38)/("X"*48)', + "IPv6/UDP": f'Ether(dst="{random_dst_mac}", src="52:00:00:00:00:00")/IPv6()/UDP(sport=22, chksum=0xe38)/("X"*48)', + "IPv6/SCTP": f'Ether(dst="{random_dst_mac}", src="52:00:00:00:00:00")/IPv6()/SCTP(sport=22, chksum=0x0)/("X"*48)', } expect_pkt = { - "IP": 'Ether(dst="00:11:22:33:44:55", src="52:00:00:00:00:00")/IP(src="192.168.0.1")/("X"*48)', - "IP/TCP": 'Ether(dst="00:11:22:33:44:55", src="52:00:00:00:00:00")/IP(src="192.168.0.1")/TCP(sport=22)/("X"*48)', - "IP/UDP": 'Ether(dst="00:11:22:33:44:55", src="52:00:00:00:00:00")/IP(src="192.168.0.1")/UDP(sport=22)/("X"*48)', - "IP/SCTP": 'Ether(dst="00:11:22:33:44:55", src="52:00:00:00:00:00")/IP(src="192.168.0.1")/SCTP(sport=22)/("X"*48)', - "IPv6/TCP": 'Ether(dst="00:11:22:33:44:55", src="52:00:00:00:00:00")/IPv6()/TCP(sport=22)/("X"*48)', - "IPv6/UDP": 'Ether(dst="00:11:22:33:44:55", src="52:00:00:00:00:00")/IPv6()/UDP(sport=22)/("X"*48)', - "IPv6/SCTP": 'Ether(dst="00:11:22:33:44:55", src="52:00:00:00:00:00")/IPv6()/SCTP(sport=22)/("X"*48)', + "IP": f'Ether(dst="{random_dst_mac}", src="52:00:00:00:00:00")/IP(src="192.168.0.1")/("X"*48)', + "IP/TCP": f'Ether(dst="{random_dst_mac}", src="52:00:00:00:00:00")/IP(src="192.168.0.1")/TCP(sport=22)/("X"*48)', + "IP/UDP": f'Ether(dst="{random_dst_mac}", src="52:00:00:00:00:00")/IP(src="192.168.0.1")/UDP(sport=22)/("X"*48)', + "IP/SCTP": f'Ether(dst="{random_dst_mac}", src="52:00:00:00:00:00")/IP(src="192.168.0.1")/SCTP(sport=22)/("X"*48)', + "IPv6/TCP": f'Ether(dst="{random_dst_mac}", src="52:00:00:00:00:00")/IPv6()/TCP(sport=22)/("X"*48)', + "IPv6/UDP": f'Ether(dst="{random_dst_mac}", src="52:00:00:00:00:00")/IPv6()/UDP(sport=22)/("X"*48)', + "IPv6/SCTP": f'Ether(dst="{random_dst_mac}", src="52:00:00:00:00:00")/IPv6()/SCTP(sport=22)/("X"*48)', } rule_list = [ "flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4-chksum end queues end / end", @@ -6631,6 +6657,22 @@ class AdvancedIavfRSSTest(TestCase): self.dut.send_command("clear port stats all", timeout=1) self.pmd_output.execute_cmd("stop") self.pmd_output.execute_cmd("quit", "#") + if self.running_case == "test_flow_rule_not_impact_rx_tx_chksum": + self.host_intf_0 = self.dut.ports_info[self.used_dut_port]["intf"] + self.ip_link_set( + host_intf=self.host_intf_0, + cmd="vf", + port=0, + types="trust", + value="off", + ) + self.ip_link_set( + host_intf=self.host_intf_0, + cmd="vf", + port=0, + types="spoofchk", + value="on", + ) def tear_down_all(self): self.dut.kill_all()