Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/117490/?format=api
http://patches.dpdk.org/api/patches/117490/?format=api", "web_url": "http://patches.dpdk.org/project/dts/patch/20221007003137.12787-4-zhiminx.huang@intel.com/", "project": { "id": 3, "url": "http://patches.dpdk.org/api/projects/3/?format=api", "name": "DTS", "link_name": "dts", "list_id": "dts.dpdk.org", "list_email": "dts@dpdk.org", "web_url": "", "scm_url": "git://dpdk.org/tools/dts", "webscm_url": "http://git.dpdk.org/tools/dts/", "list_archive_url": "https://inbox.dpdk.org/dts", "list_archive_url_format": "https://inbox.dpdk.org/dts/{}", "commit_url_format": "" }, "msgid": "<20221007003137.12787-4-zhiminx.huang@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dts/20221007003137.12787-4-zhiminx.huang@intel.com", "date": "2022-10-07T00:31:37", "name": "[V6,3/3] tests/*:modify cases to check dcf as a full feature pmd", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "af2360fddf81c8f9b4a56f035ca02f61ff600cf5", "submitter": { "id": 1685, "url": "http://patches.dpdk.org/api/people/1685/?format=api", "name": "Huang, ZhiminX", "email": "zhiminx.huang@intel.com" }, "delegate": null, "mbox": "http://patches.dpdk.org/project/dts/patch/20221007003137.12787-4-zhiminx.huang@intel.com/mbox/", "series": [ { "id": 25014, "url": "http://patches.dpdk.org/api/series/25014/?format=api", "web_url": "http://patches.dpdk.org/project/dts/list/?series=25014", "date": "2022-10-07T00:31:34", "name": "modify cases to check dcf as a full feature pmd", "version": 6, "mbox": "http://patches.dpdk.org/series/25014/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/117490/comments/", "check": "fail", "checks": "http://patches.dpdk.org/api/patches/117490/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dts-bounces@dpdk.org>", "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])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 980D8A00C2;\n\tThu, 6 Oct 2022 18:21:00 +0200 (CEST)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 937B640DDC;\n\tThu, 6 Oct 2022 18:21:00 +0200 (CEST)", "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n by mails.dpdk.org (Postfix) with ESMTP id ED95940042\n for <dts@dpdk.org>; Thu, 6 Oct 2022 18:20:57 +0200 (CEST)", "from orsmga003.jf.intel.com ([10.7.209.27])\n by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 06 Oct 2022 09:20:57 -0700", "from unknown (HELO cvl_100g_103.icx.intel.com) ([10.239.252.93])\n by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 06 Oct 2022 09:20:55 -0700" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1665073258; x=1696609258;\n h=from:to:cc:subject:date:message-id:in-reply-to: references;\n bh=l6pN6pb0l35lwj49v30Ro2Gqg22fcRTqbBbnUS1y9jo=;\n b=hHZ/mbM2xWGtSm7lh9w/nN9cQ3VdFfi8vncmlaanC2aUEUNMYVb6fozK\n X4OTkxPp0Yw2XWk8CrZlrBznKe+2lhEgS65EbfOWcIepPKCeMg7HV3edU\n hH1Dmhf1WVBIbfkC/lGoCIy3tvX3IyaJvn0uyHgpglADF+XbiMumHIPf9\n f72OvLUM0nw9WO233NfzHWCJVY874AVfx7LnIQ9XjNfznMQ0SRdX0ebIR\n FekFLztw4vns+8V3aVhTxNnUNQciPoFvKswMIXqGcV1fBol7gz35cGCUl\n 9CH7nl9gz66qmWKoor0snatgXjlfVrdsWJMoZuiFsjLrRrTlGX1Gp9lpp A==;", "X-IronPort-AV": [ "E=McAfee;i=\"6500,9779,10492\"; a=\"303469917\"", "E=Sophos;i=\"5.95,164,1661842800\"; d=\"scan'208\";a=\"303469917\"", "E=McAfee;i=\"6500,9779,10492\"; a=\"575888468\"", "E=Sophos;i=\"5.95,164,1661842800\"; d=\"scan'208\";a=\"575888468\"" ], "From": "Zhimin Huang <zhiminx.huang@intel.com>", "To": "dts@dpdk.org", "Cc": "Zhimin Huang <zhiminx.huang@intel.com>", "Subject": "[dts][PATCH V6 3/3] tests/*:modify cases to check dcf as a full\n feature pmd", "Date": "Fri, 7 Oct 2022 08:31:37 +0800", "Message-Id": "<20221007003137.12787-4-zhiminx.huang@intel.com>", "X-Mailer": "git-send-email 2.17.1", "In-Reply-To": "<20221007003137.12787-1-zhiminx.huang@intel.com>", "References": "<20221007003137.12787-1-zhiminx.huang@intel.com>", "X-BeenThere": "dts@dpdk.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "test suite reviews and discussions <dts.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dts>,\n <mailto:dts-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dts/>", "List-Post": "<mailto:dts@dpdk.org>", "List-Help": "<mailto:dts-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dts>,\n <mailto:dts-request@dpdk.org?subject=subscribe>", "Errors-To": "dts-bounces@dpdk.org" }, "content": "the dcf mode support more pmd feature in dpdk22.07.\nmodify cases to support dcf and check normal datapath in dcf mode.\n\nSigned-off-by: Zhimin Huang <zhiminx.huang@intel.com>\nAcked-by: Xueqin Lin <xueqin.lin@intel.com>\nTested-by: Jiale Song < songx.jiale@intel.com>\n---\nv6:\n-encapsulate the startup testpmd into a function.\n\nv5:\n-detailed the subject and comments.\n\n tests/TestSuite_kernelpf_iavf.py | 58 ++++++++++++++++++++++----------\n tests/TestSuite_stats_checks.py | 23 +++++++++++--\n tests/TestSuite_vf_macfilter.py | 30 +++++++++++++++--\n tests/TestSuite_vf_offload.py | 42 +++++++++++++++++------\n tests/TestSuite_vf_rss.py | 39 ++++++++++++++++-----\n tests/TestSuite_vf_smoke.py | 18 +++++++++-\n tests/TestSuite_vf_vlan.py | 45 +++++++++++++++++++------\n 7 files changed, 203 insertions(+), 52 deletions(-)", "diff": "diff --git a/tests/TestSuite_kernelpf_iavf.py b/tests/TestSuite_kernelpf_iavf.py\nindex a6d4d016..348dc76e 100644\n--- a/tests/TestSuite_kernelpf_iavf.py\n+++ b/tests/TestSuite_kernelpf_iavf.py\n@@ -16,7 +16,7 @@ import time\n import framework.utils as utils\n from framework.packet import Packet\n from framework.pmd_output import PmdOutput\n-from framework.settings import HEADER_SIZE\n+from framework.settings import DPDK_DCFMODE_SETTING, load_global_setting\n from framework.test_case import TestCase\n from framework.utils import RED\n from framework.virt_common import VM\n@@ -74,6 +74,7 @@ class TestKernelpfIavf(TestCase):\n # get priv-flags default stats\n self.flag = \"vf-vlan-pruning\"\n self.default_stats = self.dut.get_priv_flags_state(self.host_intf, self.flag)\n+ self.dcf_mode = load_global_setting(DPDK_DCFMODE_SETTING)\n \n def set_up(self):\n \n@@ -129,6 +130,10 @@ class TestKernelpfIavf(TestCase):\n self.dut.send_expect(\n \"ip link set %s vf 0 mac %s\" % (self.host_intf, self.vf_mac), \"# \"\n )\n+ if self.dcf_mode:\n+ self.dut.send_expect(\n+ \"ip link set %s vf 0 trust on\" % (self.host_intf), \"# \"\n+ )\n try:\n \n for port in self.sriov_vfs_port:\n@@ -145,6 +150,7 @@ class TestKernelpfIavf(TestCase):\n raise Exception(\"Set up VM ENV failed!\")\n \n self.vm_testpmd = PmdOutput(self.vm_dut)\n+ self.vf_guest_pci = self.vm.pci_maps[0][\"guestpci\"]\n except Exception as e:\n self.destroy_vm_env()\n raise Exception(e)\n@@ -195,11 +201,25 @@ class TestKernelpfIavf(TestCase):\n )\n return result\n \n+ def launch_testpmd(self, **kwargs):\n+ dcf_flag = kwargs.get(\"dcf_flag\")\n+ param = kwargs.get(\"param\") if kwargs.get(\"param\") else \"\"\n+ if dcf_flag == \"enable\":\n+ out = self.vm_testpmd.start_testpmd(\n+ \"all\",\n+ param=param,\n+ ports=[self.vf_guest_pci],\n+ port_options={self.vf_guest_pci: \"cap=dcf\"},\n+ )\n+ else:\n+ out = self.vm_testpmd.start_testpmd(\"all\", param=param)\n+ return out\n+\n def test_vf_basic_rxtx(self):\n \"\"\"\n Set rxonly forward,Send 100 random packets from tester, check packets can be received\n \"\"\"\n- self.vm_testpmd.start_testpmd(\"all\")\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n self.vm_testpmd.execute_cmd(\"set fwd rxonly\")\n self.vm_testpmd.execute_cmd(\"set verbose 1\")\n self.vm_testpmd.execute_cmd(\"start\")\n@@ -234,7 +254,7 @@ class TestKernelpfIavf(TestCase):\n Not set VF MAC from kernel PF for this case, if set, will print\n \"not permitted error\" when add new MAC for VF.\n \"\"\"\n- out = self.vm_testpmd.start_testpmd(\"all\")\n+ out = self.launch_testpmd(dcf_flag=self.dcf_mode)\n self.testpmd_mac = self.get_testpmd_vf_mac(out)\n self.vm_testpmd.execute_cmd(\"set fwd mac\")\n self.vm_testpmd.execute_cmd(\"set promisc all off\")\n@@ -282,7 +302,7 @@ class TestKernelpfIavf(TestCase):\n Enable kernel trust mode\n \"\"\"\n self.dut.send_expect(\"ip link set dev %s vf 0 trust on\" % self.host_intf, \"# \")\n- self.vm_testpmd.start_testpmd(\"all\")\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n self.vm_testpmd.execute_cmd(\"set fwd mac\")\n self.vm_testpmd.execute_cmd(\"set verbose 1\")\n self.vm_testpmd.execute_cmd(\"start\")\n@@ -321,7 +341,7 @@ class TestKernelpfIavf(TestCase):\n \"\"\"\n multicast_mac = \"01:80:C2:00:00:08\"\n self.dut.send_expect(\"ip link set dev %s vf 0 trust on\" % self.host_intf, \"# \")\n- self.vm_testpmd.start_testpmd(\"all\")\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n self.vm_testpmd.execute_cmd(\"set fwd mac\")\n self.vm_testpmd.execute_cmd(\"set promisc all off\")\n self.vm_testpmd.execute_cmd(\"set allmulti all off\")\n@@ -345,7 +365,7 @@ class TestKernelpfIavf(TestCase):\n def test_vf_broadcast(self):\n \"\"\" \"\"\"\n broadcast_mac = \"ff:ff:ff:ff:ff:ff\"\n- self.vm_testpmd.start_testpmd(\"all\")\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n self.vm_testpmd.execute_cmd(\"set fwd mac\")\n self.vm_testpmd.execute_cmd(\"set promisc all off\")\n self.vm_testpmd.execute_cmd(\"set verbose 1\")\n@@ -375,7 +395,7 @@ class TestKernelpfIavf(TestCase):\n return out\n \n def test_vf_vlan_insertion(self):\n- self.vm_testpmd.start_testpmd(\"all\")\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n random_vlan = random.randint(1, MAX_VLAN)\n self.vm_testpmd.execute_cmd(\"vlan set strip off 0\")\n self.vm_testpmd.execute_cmd(\"port stop all\")\n@@ -396,7 +416,7 @@ class TestKernelpfIavf(TestCase):\n \n def test_vf_vlan_strip(self):\n random_vlan = random.randint(1, MAX_VLAN)\n- self.vm_testpmd.start_testpmd(\"all\")\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n self.vm_testpmd.execute_cmd(\"port stop all\")\n self.vm_testpmd.execute_cmd(\"vlan set filter on 0\")\n self.vm_testpmd.execute_cmd(\"rx_vlan add %s 0\" % random_vlan)\n@@ -432,7 +452,7 @@ class TestKernelpfIavf(TestCase):\n \n def test_vf_vlan_filter(self):\n random_vlan = random.randint(2, MAX_VLAN)\n- self.vm_testpmd.start_testpmd(\"all\")\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n self.vm_testpmd.execute_cmd(\"port stop all\")\n self.vm_testpmd.execute_cmd(\"set promisc all off\")\n self.vm_testpmd.execute_cmd(\"vlan set filter on 0\")\n@@ -473,7 +493,7 @@ class TestKernelpfIavf(TestCase):\n \n def test_vf_rss(self):\n rss_type = [\"ip\", \"tcp\", \"udp\"]\n- self.vm_testpmd.start_testpmd(\"all\", \"--txq=4 --rxq=4\")\n+ self.launch_testpmd(dcf_flag=self.dcf_mode, param=\"--txq=4 --rxq=4\")\n self.vm_testpmd.execute_cmd(\"set fwd mac\")\n self.vm_testpmd.execute_cmd(\"set verbose 1\")\n default_rss_reta = self.vm_testpmd.execute_cmd(\n@@ -496,7 +516,7 @@ class TestKernelpfIavf(TestCase):\n \n def test_vf_rss_hash_key(self):\n update_hash_key = \"1b9d58a4b961d9cd1c56ad1621c3ad51632c16a5d16c21c3513d132c135d132c13ad1531c23a51d6ac49879c499d798a7d949c8a\"\n- self.vm_testpmd.start_testpmd(\"all\", \"--txq=4 --rxq=4\")\n+ self.launch_testpmd(dcf_flag=self.dcf_mode, param=\"--txq=4 --rxq=4\")\n self.vm_testpmd.execute_cmd(\"show port 0 rss-hash key\")\n self.vm_testpmd.execute_cmd(\"set fwd rxonly\")\n self.vm_testpmd.execute_cmd(\"set verbose 1\")\n@@ -681,7 +701,7 @@ class TestKernelpfIavf(TestCase):\n self.tester.send_expect(\"^C\", \"#\")\n \n def test_vf_port_start_stop(self):\n- self.vm_testpmd.start_testpmd(\"all\")\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n for i in range(10):\n self.vm_testpmd.execute_cmd(\"port stop all\")\n self.vm_testpmd.execute_cmd(\"port start all\")\n@@ -700,7 +720,7 @@ class TestKernelpfIavf(TestCase):\n self.verify(vf0_tx_cnt == 100, \"no packet was fwd by vm0_VF0\")\n \n def test_vf_statistic_reset(self):\n- self.vm_testpmd.start_testpmd(\"all\")\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n self.vm_testpmd.execute_cmd(\"set fwd mac\")\n self.vm_testpmd.execute_cmd(\"set verbose 1\")\n self.vm_testpmd.execute_cmd(\"start\")\n@@ -722,7 +742,7 @@ class TestKernelpfIavf(TestCase):\n )\n \n def test_vf_information(self):\n- self.vm_testpmd.start_testpmd(\"all\")\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n out = self.vm_testpmd.execute_cmd(\"show port info 0\")\n self.verify(\"Link status: up\" in out, \"link stats has error\")\n self.verify(\"Link speed: %s\" % self.speed in out, \"link speed has error\")\n@@ -791,7 +811,7 @@ class TestKernelpfIavf(TestCase):\n )\n \n def test_vf_unicast(self):\n- self.vm_testpmd.start_testpmd(\"all\")\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n self.vm_testpmd.execute_cmd(\"set verbose 1\")\n self.vm_testpmd.execute_cmd(\"set fwd mac\")\n self.vm_testpmd.execute_cmd(\"set promisc all off\")\n@@ -809,7 +829,7 @@ class TestKernelpfIavf(TestCase):\n self.verify(packets == 10, \"Not receive expected packet\")\n \n def test_vf_vlan_promisc(self):\n- self.vm_testpmd.start_testpmd(\"all\")\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n self.vm_testpmd.execute_cmd(\"port stop all\")\n self.vm_testpmd.execute_cmd(\"set promisc all on\")\n self.vm_testpmd.execute_cmd(\"set fwd mac\")\n@@ -827,6 +847,7 @@ class TestKernelpfIavf(TestCase):\n (self.kdriver == \"i40e\" and self.driver_version < \"2.13.10\")\n or (self.kdriver == \"i40e\" and not self.default_stats)\n or (self.kdriver == \"ice\" and not self.default_stats)\n+ or self.dcf_mode\n ):\n self.verify(packets == 10, \"Not receive expected packet\")\n else:\n@@ -899,7 +920,10 @@ class TestKernelpfIavf(TestCase):\n time.sleep(1)\n if self.running_case == \"test_vf_mac_filter\":\n self.destroy_vm_env()\n- self.dut.send_expect(\"ip link set dev %s vf 0 trust off\" % self.host_intf, \"# \")\n+ if not self.dcf_mode:\n+ self.dut.send_expect(\n+ \"ip link set dev %s vf 0 trust off\" % self.host_intf, \"# \"\n+ )\n \n def tear_down_all(self):\n \"\"\"\ndiff --git a/tests/TestSuite_stats_checks.py b/tests/TestSuite_stats_checks.py\nindex 7ebb74d5..f81d284e 100644\n--- a/tests/TestSuite_stats_checks.py\n+++ b/tests/TestSuite_stats_checks.py\n@@ -17,6 +17,7 @@ from typing import Iterator, List, Tuple\n import framework.packet as packet\n import framework.utils as utils\n from framework.pmd_output import PmdOutput\n+from framework.settings import DPDK_DCFMODE_SETTING, load_global_setting\n from framework.test_case import TestCase\n \n ETHER_HEADER_LEN = 18\n@@ -241,6 +242,7 @@ class TestStatsChecks(TestCase):\n self.verify(len(self.dut_ports) >= 2, \"Insufficient ports\")\n self.rx_port = self.dut_ports[0]\n self.tx_port = self.dut_ports[1]\n+ self.rx_intf = self.dut.ports_info[self.rx_port][\"intf\"]\n \n cores = self.dut.get_core_list(\"1S/2C/1T\")\n self.coremask = utils.create_mask(cores)\n@@ -248,6 +250,7 @@ class TestStatsChecks(TestCase):\n self.port_mask = utils.create_mask([self.rx_port, self.tx_port])\n \n self.pmdout = PmdOutput(self.dut)\n+ self.dcf_mode = load_global_setting(DPDK_DCFMODE_SETTING)\n \n def set_up(self):\n \"\"\"\n@@ -271,6 +274,20 @@ class TestStatsChecks(TestCase):\n \"\"\"\n self.dut.kill_all()\n \n+ def launch_testpmd(self, **kwargs):\n+ dcf_flag = kwargs.get(\"dcf_flag\")\n+ param = kwargs.get(\"param\") if kwargs.get(\"param\") else \"\"\n+ if dcf_flag == \"enable\":\n+ self.pmdout.start_testpmd(\n+ \"default\",\n+ param=param,\n+ eal_param=\"-a %s,cap=dcf\" % self.vf_port_pci,\n+ )\n+ else:\n+ self.pmdout.start_testpmd(\n+ \"default\", param=param, eal_param=\"-a %s\" % self.vf_port_pci\n+ )\n+\n def test_stats_checks(self):\n self.pmdout.start_testpmd(\"Default\")\n self.exec(\"port start all\")\n@@ -288,10 +305,10 @@ class TestStatsChecks(TestCase):\n \n def test_xstats_check_vf(self):\n self.dut.generate_sriov_vfs_by_port(self.dut_ports[0], 1, self.kdriver)\n+ if self.dcf_mode:\n+ self.dut.send_expect(\"ip link set %s vf 0 trust on\" % (self.rx_intf), \"# \")\n self.vf_port = self.dut.ports_info[self.dut_ports[0]][\"vfs_port\"][0]\n self.vf_port.bind_driver(driver=\"vfio-pci\")\n self.vf_port_pci = self.dut.ports_info[self.dut_ports[0]][\"sriov_vfs_pci\"][0]\n- self.pmdout.start_testpmd(\n- \"default\", \"--rxq=4 --txq=4\", eal_param=\"-a %s\" % self.vf_port_pci\n- )\n+ self.launch_testpmd(dcf_flag=self.dcf_mode, param=\"--txq=4 --rxq=4\")\n self.xstats_check(0, 0, if_vf=True)\ndiff --git a/tests/TestSuite_vf_macfilter.py b/tests/TestSuite_vf_macfilter.py\nindex c2007999..dc4e1098 100644\n--- a/tests/TestSuite_vf_macfilter.py\n+++ b/tests/TestSuite_vf_macfilter.py\n@@ -6,6 +6,7 @@ import re\n import time\n \n from framework.pmd_output import PmdOutput\n+from framework.settings import DPDK_DCFMODE_SETTING, load_global_setting\n from framework.test_case import TestCase\n from framework.virt_common import VM\n \n@@ -34,6 +35,7 @@ class TestVfMacFilter(TestCase):\n else:\n self.vf_assign_method = \"vfio-pci\"\n self.dut.send_expect(\"modprobe vfio-pci\", \"#\")\n+ self.dcf_mode = load_global_setting(DPDK_DCFMODE_SETTING)\n \n def set_up(self):\n \n@@ -50,10 +52,15 @@ class TestVfMacFilter(TestCase):\n self.dut.send_expect(\n \"ip link set %s vf 0 mac %s\" % (pf_intf0, self.pf0_vf0_mac), \"#\"\n )\n+ if self.dcf_mode == \"enable\":\n+ self.dut.send_expect(\"ip link set %s vf 0 trust on\" % (pf_intf0), \"# \")\n \n self.used_dut_port_1 = self.dut_ports[1]\n self.dut.generate_sriov_vfs_by_port(self.used_dut_port_1, 1, driver=driver)\n self.sriov_vfs_port_1 = self.dut.ports_info[self.used_dut_port_1][\"vfs_port\"]\n+ pf_intf1 = self.dut.ports_info[1][\"port\"].get_interface_name()\n+ if self.dcf_mode == \"enable\":\n+ self.dut.send_expect(\"ip link set %s vf 0 trust on\" % (pf_intf1), \"# \")\n \n try:\n \n@@ -89,6 +96,9 @@ class TestVfMacFilter(TestCase):\n raise Exception(\"Set up VM0 ENV failed!\")\n \n self.setup_2pf_2vf_1vm_env_flag = 1\n+ self.vf0_guest_pci = self.vm0.pci_maps[0][\"guestpci\"]\n+ self.vf1_guest_pci = self.vm0.pci_maps[1][\"guestpci\"]\n+\n except Exception as e:\n self.destroy_2pf_2vf_1vm_env()\n raise Exception(e)\n@@ -128,6 +138,22 @@ class TestVfMacFilter(TestCase):\n \n self.setup_2pf_2vf_1vm_env_flag = 0\n \n+ def launch_testpmd(self, **kwargs):\n+ dcf_flag = kwargs.get(\"dcf_flag\")\n+ param = kwargs.get(\"param\") if kwargs.get(\"param\") else \"\"\n+ if dcf_flag == \"enable\":\n+ self.vm0_testpmd.start_testpmd(\n+ VM_CORES_MASK,\n+ param=param,\n+ ports=[self.vf0_guest_pci, self.vf1_guest_pci],\n+ port_options={\n+ self.vf0_guest_pci: \"cap=dcf\",\n+ self.vf1_guest_pci: \"cap=dcf\",\n+ },\n+ )\n+ else:\n+ self.vm0_testpmd.start_testpmd(VM_CORES_MASK, param=param)\n+\n def test_kernel_2pf_2vf_1vm_iplink_macfilter(self):\n \"\"\"\n test case for kernel pf and dpdk vf 2pf_2vf_1vm MAC filter\n@@ -145,7 +171,7 @@ class TestVfMacFilter(TestCase):\n self.host_testpmd.execute_cmd(\"set vf mac addr 0 0 %s\" % self.pf0_vf0_mac)\n self.vm0_dut_ports = self.vm_dut_0.get_ports(\"any\")\n self.vm0_testpmd = PmdOutput(self.vm_dut_0)\n- self.vm0_testpmd.start_testpmd(VM_CORES_MASK)\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n # Get VF's MAC\n pmd_vf0_mac = self.vm0_testpmd.get_port_mac(0)\n self.vm0_testpmd.execute_cmd(\"set promisc all off\")\n@@ -242,7 +268,7 @@ class TestVfMacFilter(TestCase):\n def send_packet_and_verify(self):\n self.vm0_dut_ports = self.vm_dut_0.get_ports(\"any\")\n self.vm0_testpmd = PmdOutput(self.vm_dut_0)\n- self.vm0_testpmd.start_testpmd(VM_CORES_MASK)\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n \n # Get VF0 port MAC address\n pmd_vf0_mac = self.vm0_testpmd.get_port_mac(0)\ndiff --git a/tests/TestSuite_vf_offload.py b/tests/TestSuite_vf_offload.py\nindex eee77c69..c70b24f4 100644\n--- a/tests/TestSuite_vf_offload.py\n+++ b/tests/TestSuite_vf_offload.py\n@@ -9,7 +9,7 @@ import time\n import framework.utils as utils\n from framework.crb import Crb\n from framework.pmd_output import PmdOutput\n-from framework.settings import HEADER_SIZE\n+from framework.settings import DPDK_DCFMODE_SETTING, HEADER_SIZE, load_global_setting\n from framework.test_case import TestCase\n from framework.utils import GREEN, RED\n from framework.virt_common import VM\n@@ -39,6 +39,7 @@ class TestVfOffload(TestCase):\n else:\n self.vf_assign_method = \"vfio-pci\"\n self.dut.send_expect(\"modprobe vfio-pci\", \"#\")\n+ self.dcf_mode = load_global_setting(DPDK_DCFMODE_SETTING)\n \n self.setup_2pf_2vf_1vm_env_flag = 0\n self.setup_2pf_2vf_1vm_env(driver=\"\")\n@@ -131,6 +132,8 @@ class TestVfOffload(TestCase):\n self.vm_dut_0 = self.vm0.start()\n if self.vm_dut_0 is None:\n raise Exception(\"Set up VM0 ENV failed!\")\n+ self.vf0_guest_pci = self.vm0.pci_maps[0][\"guestpci\"]\n+ self.vf1_guest_pci = self.vm0.pci_maps[1][\"guestpci\"]\n \n self.setup_2pf_2vf_1vm_env_flag = 1\n except Exception as e:\n@@ -169,6 +172,22 @@ class TestVfOffload(TestCase):\n \n self.setup_2pf_2vf_1vm_env_flag = 0\n \n+ def launch_testpmd(self, **kwargs):\n+ dcf_flag = kwargs.get(\"dcf_flag\")\n+ param = kwargs.get(\"param\") if kwargs.get(\"param\") else \"\"\n+ if dcf_flag == \"enable\":\n+ self.vm0_testpmd.start_testpmd(\n+ VM_CORES_MASK,\n+ param=param,\n+ ports=[self.vf0_guest_pci, self.vf1_guest_pci],\n+ port_options={\n+ self.vf0_guest_pci: \"cap=dcf\",\n+ self.vf1_guest_pci: \"cap=dcf\",\n+ },\n+ )\n+ else:\n+ self.vm0_testpmd.start_testpmd(VM_CORES_MASK, param=param)\n+\n def checksum_enablehw(self, port, dut):\n dut.send_expect(\"port stop all\", \"testpmd>\")\n dut.send_expect(\"csum set ip hw %d\" % port, \"testpmd>\")\n@@ -290,9 +309,9 @@ class TestVfOffload(TestCase):\n can rx it and report the checksum error,\n verify forwarded packets have correct checksum.\n \"\"\"\n- self.vm0_testpmd.start_testpmd(\n- VM_CORES_MASK,\n- \"--portmask=%s \" % (self.portMask) + \"--enable-rx-cksum \" + \"\",\n+ self.launch_testpmd(\n+ dcf_flag=self.dcf_mode,\n+ param=\"--portmask=%s \" % (self.portMask) + \"--enable-rx-cksum \" + \"\",\n )\n self.vm0_testpmd.execute_cmd(\"set fwd csum\")\n self.vm0_testpmd.execute_cmd(\"set promisc 1 on\")\n@@ -351,9 +370,10 @@ class TestVfOffload(TestCase):\n Enable SW checksum offload.\n Send same packet with incorrect checksum and verify checksum is valid.\n \"\"\"\n- self.vm0_testpmd.start_testpmd(\n- VM_CORES_MASK,\n- \"--portmask=%s \" % (self.portMask) + \"--enable-rx-cksum \" + \"\",\n+\n+ self.launch_testpmd(\n+ dcf_flag=self.dcf_mode,\n+ param=\"--portmask=%s \" % (self.portMask) + \"--enable-rx-cksum \" + \"\",\n )\n self.vm0_testpmd.execute_cmd(\"set fwd csum\")\n self.vm0_testpmd.execute_cmd(\"set promisc 1 on\")\n@@ -491,9 +511,11 @@ class TestVfOffload(TestCase):\n )\n \n self.portMask = utils.create_mask([self.vm0_dut_ports[0]])\n- self.vm0_testpmd.start_testpmd(\n- VM_CORES_MASK,\n- \"--portmask=0x3 \" + \"--enable-rx-cksum \" + \"--max-pkt-len=%s\" % TSO_MTU,\n+ self.launch_testpmd(\n+ dcf_flag=self.dcf_mode,\n+ param=\"--portmask=0x3 \"\n+ + \"--enable-rx-cksum \"\n+ + \"--max-pkt-len=%s\" % TSO_MTU,\n )\n \n mac = self.vm0_testpmd.get_port_mac(0)\ndiff --git a/tests/TestSuite_vf_rss.py b/tests/TestSuite_vf_rss.py\nindex 3c97e1fe..058d53db 100644\n--- a/tests/TestSuite_vf_rss.py\n+++ b/tests/TestSuite_vf_rss.py\n@@ -15,6 +15,7 @@ reta_entries = []\n reta_lines = []\n \n from framework.pmd_output import PmdOutput\n+from framework.settings import DPDK_DCFMODE_SETTING, load_global_setting\n \n # Use scapy to send packets with different source and dest ip.\n # and collect the hash result of five tuple and the queue id.\n@@ -289,6 +290,7 @@ class TestVfRss(TestCase):\n self.vm0 = None\n self.host_testpmd = None\n self.setup_1pf_1vf_1vm_env_flag = 0\n+ self.dcf_mode = load_global_setting(DPDK_DCFMODE_SETTING)\n self.setup_1pf_1vf_1vm_env(driver=\"\")\n \n def set_up(self):\n@@ -302,6 +304,9 @@ class TestVfRss(TestCase):\n self.used_dut_port_0 = self.dut_ports[0]\n self.dut.generate_sriov_vfs_by_port(self.used_dut_port_0, 1, driver=driver)\n self.sriov_vfs_port_0 = self.dut.ports_info[self.used_dut_port_0][\"vfs_port\"]\n+ pf_intf0 = self.dut.ports_info[0][\"port\"].get_interface_name()\n+ if self.dcf_mode == \"enable\":\n+ self.dut.send_expect(\"ip link set %s vf 0 trust on\" % (pf_intf0), \"# \")\n \n try:\n for port in self.sriov_vfs_port_0:\n@@ -322,6 +327,7 @@ class TestVfRss(TestCase):\n self.vm_dut_0 = self.vm0.start()\n if self.vm_dut_0 is None:\n raise Exception(\"Set up VM0 ENV failed!\")\n+ self.vf0_guest_pci = self.vm0.pci_maps[0][\"guestpci\"]\n \n self.vm0_testpmd = PmdOutput(self.vm_dut_0)\n \n@@ -357,6 +363,24 @@ class TestVfRss(TestCase):\n \n self.setup_1pf_2vf_1vm_env_flag = 0\n \n+ def launch_testpmd(self, **kwargs):\n+ dcf_flag = kwargs.get(\"dcf_flag\")\n+ param = kwargs.get(\"param\") if kwargs.get(\"param\") else \"\"\n+ if dcf_flag == \"enable\":\n+ self.vm0_testpmd.start_testpmd(\n+ \"all\",\n+ param=param,\n+ ports=[self.vf0_guest_pci],\n+ port_options={self.vf0_guest_pci: \"cap=dcf\"},\n+ socket=self.vm0_ports_socket,\n+ )\n+ else:\n+ self.vm0_testpmd.start_testpmd(\n+ \"all\",\n+ param=param,\n+ socket=self.vm0_ports_socket,\n+ )\n+\n def test_vf_pmdrss_reta(self):\n \n vm0dutPorts = self.vm_dut_0.get_ports(\"any\")\n@@ -381,12 +405,10 @@ class TestVfRss(TestCase):\n eal_param = \"\"\n for queue in testQueues:\n \n- self.vm0_testpmd.start_testpmd(\n- \"all\",\n- \"--rxq=%d --txq=%d %s\" % (queue, queue, eal_param),\n- socket=self.vm0_ports_socket,\n+ self.launch_testpmd(\n+ dcf_flag=self.dcf_mode,\n+ param=\"--rxq=%d --txq=%d %s\" % (queue, queue, eal_param),\n )\n-\n for iptype, rss_type in list(iptypes.items()):\n self.vm_dut_0.send_expect(\"set verbose 8\", \"testpmd> \")\n self.vm_dut_0.send_expect(\"set fwd rxonly\", \"testpmd> \")\n@@ -453,10 +475,9 @@ class TestVfRss(TestCase):\n # test with different rss queues\n for queue in testQueues:\n \n- self.vm0_testpmd.start_testpmd(\n- \"all\",\n- \"--rxq=%d --txq=%d %s\" % (queue, queue, eal_param),\n- socket=self.vm0_ports_socket,\n+ self.launch_testpmd(\n+ dcf_flag=self.dcf_mode,\n+ param=\"--rxq=%d --txq=%d %s\" % (queue, queue, eal_param),\n )\n \n for iptype, rsstype in list(iptypes.items()):\ndiff --git a/tests/TestSuite_vf_smoke.py b/tests/TestSuite_vf_smoke.py\nindex b19160c6..9faba9dd 100644\n--- a/tests/TestSuite_vf_smoke.py\n+++ b/tests/TestSuite_vf_smoke.py\n@@ -4,6 +4,7 @@\n \n from framework.packet import Packet\n from framework.pmd_output import PmdOutput\n+from framework.settings import DPDK_DCFMODE_SETTING, load_global_setting\n from framework.test_case import TestCase\n \n from .smoke_base import (\n@@ -60,11 +61,16 @@ class TestVfSmoke(TestCase):\n self.vf0_prop = {\"opt_host\": self.vf_ports[0].pci}\n self.dut.send_expect(\"ifconfig %s up\" % self.pf_interface, \"# \")\n self.tester.send_expect(\"ifconfig %s up\" % self.smoke_tester_nic, \"# \")\n+ self.dcf_mode = load_global_setting(DPDK_DCFMODE_SETTING)\n \n # set vf mac address\n self.dut.send_expect(\n \"ip link set %s vf 0 mac %s\" % (self.pf_interface, self.smoke_dut_mac), \"# \"\n )\n+ if self.dcf_mode == \"enable\":\n+ self.dut.send_expect(\n+ \"ip link set %s vf 0 trust on\" % (self.pf_interface), \"# \"\n+ )\n \n # set default app parameter\n if self.vf0_prop is not None:\n@@ -100,7 +106,17 @@ class TestVfSmoke(TestCase):\n self.vf_launch_dpdk_app()\n \n def vf_launch_dpdk_app(self):\n- self.pmd_out.start_testpmd(cores=self.cores, ports=self.ports, param=self.param)\n+ if self.dcf_mode == \"enable\":\n+ self.pmd_out.start_testpmd(\n+ cores=self.cores,\n+ ports=self.ports,\n+ port_options={port: \"cap=dcf\" for port in self.ports},\n+ param=self.param,\n+ )\n+ else:\n+ self.pmd_out.start_testpmd(\n+ cores=self.cores, ports=self.ports, param=self.param\n+ )\n \n # set default param\n self.dut.send_expect(\"set promisc all off\", \"testpmd> \")\ndiff --git a/tests/TestSuite_vf_vlan.py b/tests/TestSuite_vf_vlan.py\nindex 31826db5..d5a29c04 100644\n--- a/tests/TestSuite_vf_vlan.py\n+++ b/tests/TestSuite_vf_vlan.py\n@@ -9,7 +9,7 @@ import time\n import framework.utils as utils\n from framework.packet import Packet\n from framework.pmd_output import PmdOutput\n-from framework.settings import get_nic_name\n+from framework.settings import DPDK_DCFMODE_SETTING, load_global_setting\n from framework.test_case import TestCase\n from framework.virt_common import VM\n \n@@ -48,6 +48,7 @@ class TestVfVlan(TestCase):\n # get priv-flags default stats\n self.flag = \"vf-vlan-pruning\"\n self.default_stats = self.dut.get_priv_flags_state(self.host_intf0, self.flag)\n+ self.dcf_mode = load_global_setting(DPDK_DCFMODE_SETTING)\n \n def set_up(self):\n self.setup_vm_env()\n@@ -87,6 +88,10 @@ class TestVfVlan(TestCase):\n self.dut.send_expect(\n \"ip link set %s vf 0 mac %s\" % (self.host_intf0, self.vf0_mac), \"# \"\n )\n+ if self.dcf_mode:\n+ self.dut.send_expect(\n+ \"ip link set %s vf 0 trust on\" % (self.host_intf0), \"# \"\n+ )\n \n self.used_dut_port_1 = self.dut_ports[1]\n self.host_intf1 = self.dut.ports_info[self.used_dut_port_1][\"intf\"]\n@@ -103,6 +108,10 @@ class TestVfVlan(TestCase):\n self.dut.send_expect(\n \"ip link set %s vf 0 mac %s\" % (self.host_intf1, self.vf1_mac), \"# \"\n )\n+ if self.dcf_mode:\n+ self.dut.send_expect(\n+ \"ip link set %s vf 0 trust on\" % (self.host_intf1), \"# \"\n+ )\n \n try:\n \n@@ -123,6 +132,8 @@ class TestVfVlan(TestCase):\n self.vm_dut_0 = self.vm0.start()\n if self.vm_dut_0 is None:\n raise Exception(\"Set up VM0 ENV failed!\")\n+ self.vf0_guest_pci = self.vm0.pci_maps[0][\"guestpci\"]\n+ self.vf1_guest_pci = self.vm0.pci_maps[1][\"guestpci\"]\n \n except Exception as e:\n self.destroy_vm_env()\n@@ -155,6 +166,22 @@ class TestVfVlan(TestCase):\n \n self.env_done = False\n \n+ def launch_testpmd(self, **kwargs):\n+ dcf_flag = kwargs.get(\"dcf_flag\")\n+ param = kwargs.get(\"param\") if kwargs.get(\"param\") else \"\"\n+ if dcf_flag:\n+ self.vm0_testpmd.start_testpmd(\n+ VM_CORES_MASK,\n+ ports=[self.vf0_guest_pci, self.vf1_guest_pci],\n+ param=param,\n+ port_options={\n+ self.vf0_guest_pci: \"cap=dcf\",\n+ self.vf1_guest_pci: \"cap=dcf\",\n+ },\n+ )\n+ else:\n+ self.vm0_testpmd.start_testpmd(VM_CORES_MASK, param=param)\n+\n def test_pvid_vf_tx(self):\n \"\"\"\n Add port based vlan on vf device and check vlan tx work\n@@ -170,7 +197,7 @@ class TestVfVlan(TestCase):\n self.vm0_dut_ports = self.vm_dut_0.get_ports(\"any\")\n \n self.vm0_testpmd = PmdOutput(self.vm_dut_0)\n- self.vm0_testpmd.start_testpmd(VM_CORES_MASK)\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n self.vm0_testpmd.execute_cmd(\"set fwd mac\")\n self.vm0_testpmd.execute_cmd(\"start\")\n \n@@ -214,7 +241,7 @@ class TestVfVlan(TestCase):\n self.vm0_dut_ports = self.vm_dut_0.get_ports(\"any\")\n \n self.vm0_testpmd = PmdOutput(self.vm_dut_0)\n- self.vm0_testpmd.start_testpmd(VM_CORES_MASK)\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n self.vm0_testpmd.execute_cmd(\"set fwd rxonly\")\n self.vm0_testpmd.execute_cmd(\"set verbose 1\")\n self.vm0_testpmd.execute_cmd(\"start\")\n@@ -240,7 +267,7 @@ class TestVfVlan(TestCase):\n \n # restart testpmd\n self.vm0_testpmd = PmdOutput(self.vm_dut_0)\n- self.vm0_testpmd.start_testpmd(VM_CORES_MASK)\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n self.vm0_testpmd.execute_cmd(\"set fwd rxonly\")\n self.vm0_testpmd.execute_cmd(\"set verbose 1\")\n self.vm0_testpmd.execute_cmd(\"start\")\n@@ -250,6 +277,7 @@ class TestVfVlan(TestCase):\n (self.kdriver == \"i40e\" and self.driver_version < \"2.13.10\")\n or (self.kdriver == \"i40e\" and not self.default_stats)\n or (self.kdriver == \"ice\" and not self.default_stats)\n+ or self.dcf_mode\n ):\n self.verify(\"received\" in out, \"Failed to received vlan packet!!!\")\n else:\n@@ -291,7 +319,7 @@ class TestVfVlan(TestCase):\n self.vm0_dut_ports = self.vm_dut_0.get_ports(\"any\")\n \n self.vm0_testpmd = PmdOutput(self.vm_dut_0)\n- self.vm0_testpmd.start_testpmd(VM_CORES_MASK)\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n self.vm0_testpmd.execute_cmd(\"set verbose 1\")\n \n for tx_vlan in tx_vlans:\n@@ -316,7 +344,7 @@ class TestVfVlan(TestCase):\n self.vm0_dut_ports = self.vm_dut_0.get_ports(\"any\")\n \n self.vm0_testpmd = PmdOutput(self.vm_dut_0)\n- self.vm0_testpmd.start_testpmd(VM_CORES_MASK)\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n self.vm0_testpmd.execute_cmd(\"set fwd rxonly\")\n self.vm0_testpmd.execute_cmd(\"set verbose 1\")\n self.vm0_testpmd.execute_cmd(\"vlan set strip on 0\")\n@@ -395,10 +423,7 @@ class TestVfVlan(TestCase):\n self.vm0_dut_ports = self.vm_dut_0.get_ports(\"any\")\n \n self.vm0_testpmd = PmdOutput(self.vm_dut_0)\n- if self.kdriver == \"i40e\":\n- self.vm0_testpmd.start_testpmd(VM_CORES_MASK, \"\")\n- else:\n- self.vm0_testpmd.start_testpmd(VM_CORES_MASK)\n+ self.launch_testpmd(dcf_flag=self.dcf_mode)\n self.vm0_testpmd.execute_cmd(\"set fwd rxonly\")\n self.vm0_testpmd.execute_cmd(\"set verbose 1\")\n self.vm0_testpmd.execute_cmd(\"start\")\n", "prefixes": [ "V6", "3/3" ] }{ "id": 117490, "url": "