Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/115247/?format=api
http://patches.dpdk.org/api/patches/115247/?format=api", "web_url": "http://patches.dpdk.org/project/dts/patch/20220819140709.16971-3-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": "<20220819140709.16971-3-zhiminx.huang@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dts/20220819140709.16971-3-zhiminx.huang@intel.com", "date": "2022-08-19T14:07:09", "name": "[V2,3/3] tests/*:add 22.07 new feature, support in dcf mode", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "7dfed878a6640b9298990567fb54ba3cae9cba61", "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/20220819140709.16971-3-zhiminx.huang@intel.com/mbox/", "series": [ { "id": 24360, "url": "http://patches.dpdk.org/api/series/24360/?format=api", "web_url": "http://patches.dpdk.org/project/dts/list/?series=24360", "date": "2022-08-19T14:07:07", "name": "[V2,1/3] framework/*:add dcf mode into execution file", "version": 2, "mbox": "http://patches.dpdk.org/series/24360/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/115247/comments/", "check": "success", "checks": "http://patches.dpdk.org/api/patches/115247/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 47D49A04FD;\n\tFri, 19 Aug 2022 07:50:10 +0200 (CEST)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 402F240A80;\n\tFri, 19 Aug 2022 07:50:10 +0200 (CEST)", "from mga07.intel.com (mga07.intel.com [134.134.136.100])\n by mails.dpdk.org (Postfix) with ESMTP id 43ABF400D7\n for <dts@dpdk.org>; Fri, 19 Aug 2022 07:50:08 +0200 (CEST)", "from fmsmga008.fm.intel.com ([10.253.24.58])\n by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 18 Aug 2022 22:50:07 -0700", "from unknown (HELO cvl_100g_103.icx.intel.com) ([10.239.252.93])\n by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 18 Aug 2022 22:50:05 -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=1660888208; x=1692424208;\n h=from:to:cc:subject:date:message-id:in-reply-to: references;\n bh=mtYa3YMzMVq6FdXoQ0muboTySzoPNhQiNTd9P/3PdBM=;\n b=n8srdirpT4BkqBj3NpA3oNHuImwrhoMjXBuW/fSsNyeO5hdqfXCjVeB6\n yihu2d2peAD391qpNNuX8dgfeeJooIB7gJZmTqpyXKdPD8NFL51/uUAD7\n RXQ07IQBxYuL1a3SclbSA7udHMT8qkm/AzWrJQjQHAeTOTU47Fx5N698n\n PvZ1SraNzf3xTL8iv9ACbEiWpR+CX4Z3UK2cOnJryVrUTDP2016DUo8xZ\n JHEwVrwiI4CwJChh3mEEdIu98aTpe5gcvB4psKvohbRClF81d3LIUidWY\n 61QDiCjPqPAkv6t8mfZycHDlPfV2r5oN/suBELkhmHDDtYWy31HN4WN9H A==;", "X-IronPort-AV": [ "E=McAfee;i=\"6500,9779,10443\"; a=\"356927181\"", "E=Sophos;i=\"5.93,247,1654585200\"; d=\"scan'208\";a=\"356927181\"", "E=Sophos;i=\"5.93,247,1654585200\"; d=\"scan'208\";a=\"668441302\"" ], "From": "Zhimin Huang <zhiminx.huang@intel.com>", "To": "dts@dpdk.org", "Cc": "Zhimin Huang <zhiminx.huang@intel.com>", "Subject": "[dts][PATCH V2 3/3] tests/*:add 22.07 new feature,\n support in dcf mode", "Date": "Fri, 19 Aug 2022 22:07:09 +0800", "Message-Id": "<20220819140709.16971-3-zhiminx.huang@intel.com>", "X-Mailer": "git-send-email 2.17.1", "In-Reply-To": "<20220819140709.16971-1-zhiminx.huang@intel.com>", "References": "<20220819140709.16971-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": "modify test case code to support dcf.\n\nSigned-off-by: Zhimin Huang <zhiminx.huang@intel.com>\n---\n tests/TestSuite_kernelpf_iavf.py | 162 +++++++++++++++++++++++++++----\n tests/TestSuite_vf_macfilter.py | 34 ++++++-\n tests/TestSuite_vf_offload.py | 84 ++++++++++++----\n tests/TestSuite_vf_rss.py | 44 +++++++--\n tests/TestSuite_vf_smoke.py | 18 +++-\n tests/TestSuite_vf_vlan.py | 76 +++++++++++++--\n 6 files changed, 359 insertions(+), 59 deletions(-)", "diff": "diff --git a/tests/TestSuite_kernelpf_iavf.py b/tests/TestSuite_kernelpf_iavf.py\nindex d7d17ac4..593cce20 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, HEADER_SIZE, 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@@ -85,6 +86,10 @@ class TestKernelpfIavf(TestCase):\n self.destroy_vm_env()\n elif self.env_done is False:\n self.setup_vm_env()\n+ if self.dcf_mode:\n+ self.dut.send_expect(\n+ \"ip link set %s vf 0 trust on\" % (self.host_intf), \"# \"\n+ )\n \n def setup_vm_env(self, driver=\"default\", set_vf_mac=True):\n \"\"\"\n@@ -136,6 +141,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@@ -190,7 +196,14 @@ class TestKernelpfIavf(TestCase):\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+ if self.dcf_mode:\n+ self.vm_testpmd.start_testpmd(\n+ \"all\",\n+ ports=[self.vf_guest_pci],\n+ port_options={self.vf_guest_pci: \"cap=dcf\"},\n+ )\n+ else:\n+ self.vm_testpmd.start_testpmd(\"all\")\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@@ -225,7 +238,14 @@ 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+ if self.dcf_mode:\n+ out = self.vm_testpmd.start_testpmd(\n+ \"all\",\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\")\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@@ -273,7 +293,14 @@ 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+ if self.dcf_mode:\n+ self.vm_testpmd.start_testpmd(\n+ \"all\",\n+ ports=[self.vf_guest_pci],\n+ port_options={self.vf_guest_pci: \"cap=dcf\"},\n+ )\n+ else:\n+ self.vm_testpmd.start_testpmd(\"all\")\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@@ -312,7 +339,14 @@ 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+ if self.dcf_mode:\n+ self.vm_testpmd.start_testpmd(\n+ \"all\",\n+ ports=[self.vf_guest_pci],\n+ port_options={self.vf_guest_pci: \"cap=dcf\"},\n+ )\n+ else:\n+ self.vm_testpmd.start_testpmd(\"all\")\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@@ -336,7 +370,14 @@ 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+ if self.dcf_mode:\n+ self.vm_testpmd.start_testpmd(\n+ \"all\",\n+ ports=[self.vf_guest_pci],\n+ port_options={self.vf_guest_pci: \"cap=dcf\"},\n+ )\n+ else:\n+ self.vm_testpmd.start_testpmd(\"all\")\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@@ -366,7 +407,14 @@ class TestKernelpfIavf(TestCase):\n return out\n \n def test_vf_vlan_insertion(self):\n- self.vm_testpmd.start_testpmd(\"all\")\n+ if self.dcf_mode:\n+ self.vm_testpmd.start_testpmd(\n+ \"all\",\n+ ports=[self.vf_guest_pci],\n+ port_options={self.vf_guest_pci: \"cap=dcf\"},\n+ )\n+ else:\n+ self.vm_testpmd.start_testpmd(\"all\")\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@@ -387,7 +435,14 @@ 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+ if self.dcf_mode:\n+ self.vm_testpmd.start_testpmd(\n+ \"all\",\n+ ports=[self.vf_guest_pci],\n+ port_options={self.vf_guest_pci: \"cap=dcf\"},\n+ )\n+ else:\n+ self.vm_testpmd.start_testpmd(\"all\")\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@@ -423,7 +478,14 @@ 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+ if self.dcf_mode:\n+ self.vm_testpmd.start_testpmd(\n+ \"all\",\n+ ports=[self.vf_guest_pci],\n+ port_options={self.vf_guest_pci: \"cap=dcf\"},\n+ )\n+ else:\n+ self.vm_testpmd.start_testpmd(\"all\")\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@@ -460,7 +522,15 @@ 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+ if self.dcf_mode:\n+ self.vm_testpmd.start_testpmd(\n+ \"all\",\n+ \"--txq=4 --rxq=4\",\n+ ports=[self.vf_guest_pci],\n+ port_options={self.vf_guest_pci: \"cap=dcf\"},\n+ )\n+ else:\n+ self.vm_testpmd.start_testpmd(\"all\", \"--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@@ -483,7 +553,15 @@ 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+ if self.dcf_mode:\n+ self.vm_testpmd.start_testpmd(\n+ \"all\",\n+ \"--txq=4 --rxq=4\",\n+ ports=[self.vf_guest_pci],\n+ port_options={self.vf_guest_pci: \"cap=dcf\"},\n+ )\n+ else:\n+ self.vm_testpmd.start_testpmd(\"all\", \"--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@@ -644,9 +722,18 @@ class TestKernelpfIavf(TestCase):\n self.tester.send_expect(\n \"ifconfig %s mtu %d\" % (self.tester_intf, ETHER_JUMBO_FRAME_MTU), \"#\"\n )\n- self.vm_testpmd.start_testpmd(\n- \"all\", \"--port-topology=chained --max-pkt-len=%d\" % ETHER_JUMBO_FRAME_MTU\n- )\n+ if self.dcf_mode:\n+ self.vm_testpmd.start_testpmd(\n+ \"all\",\n+ \"--port-topology=chained --max-pkt-len=%d\" % ETHER_JUMBO_FRAME_MTU,\n+ ports=[self.vf_guest_pci],\n+ port_options={self.vf_guest_pci: \"cap=dcf\"},\n+ )\n+ else:\n+ self.vm_testpmd.start_testpmd(\n+ \"all\",\n+ \"--port-topology=chained --max-pkt-len=%d\" % ETHER_JUMBO_FRAME_MTU,\n+ )\n self.vm_testpmd.execute_cmd(\"set fwd csum\")\n self.vm_testpmd.execute_cmd(\"set verbose 1\")\n self.enable_hw_checksum()\n@@ -711,7 +798,14 @@ 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+ if self.dcf_mode:\n+ self.vm_testpmd.start_testpmd(\n+ \"all\",\n+ ports=[self.vf_guest_pci],\n+ port_options={self.vf_guest_pci: \"cap=dcf\"},\n+ )\n+ else:\n+ self.vm_testpmd.start_testpmd(\"all\")\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@@ -730,7 +824,14 @@ 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+ if self.dcf_mode:\n+ self.vm_testpmd.start_testpmd(\n+ \"all\",\n+ ports=[self.vf_guest_pci],\n+ port_options={self.vf_guest_pci: \"cap=dcf\"},\n+ )\n+ else:\n+ self.vm_testpmd.start_testpmd(\"all\")\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@@ -752,7 +853,14 @@ class TestKernelpfIavf(TestCase):\n )\n \n def test_vf_information(self):\n- self.vm_testpmd.start_testpmd(\"all\")\n+ if self.dcf_mode:\n+ self.vm_testpmd.start_testpmd(\n+ \"all\",\n+ ports=[self.vf_guest_pci],\n+ port_options={self.vf_guest_pci: \"cap=dcf\"},\n+ )\n+ else:\n+ self.vm_testpmd.start_testpmd(\"all\")\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@@ -821,7 +929,14 @@ class TestKernelpfIavf(TestCase):\n )\n \n def test_vf_unicast(self):\n- self.vm_testpmd.start_testpmd(\"all\")\n+ if self.dcf_mode:\n+ self.vm_testpmd.start_testpmd(\n+ \"all\",\n+ ports=[self.vf_guest_pci],\n+ port_options={self.vf_guest_pci: \"cap=dcf\"},\n+ )\n+ else:\n+ self.vm_testpmd.start_testpmd(\"all\")\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@@ -839,7 +954,14 @@ 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+ if self.dcf_mode:\n+ self.vm_testpmd.start_testpmd(\n+ \"all\",\n+ ports=[self.vf_guest_pci],\n+ port_options={self.vf_guest_pci: \"cap=dcf\"},\n+ )\n+ else:\n+ self.vm_testpmd.start_testpmd(\"all\")\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@@ -853,7 +975,7 @@ class TestKernelpfIavf(TestCase):\n self.scapy_send_packet(self.vf_mac, self.tester_intf, vlan_flags=True, count=10)\n out = self.vm_dut.get_session_output()\n packets = len(re.findall(\"received 1 packets\", out))\n- if self.kdriver == \"i40e\" and self.driver_version < \"2.13.10\":\n+ if self.kdriver == \"i40e\" and self.driver_version < \"2.13.10\" or self.dcf_mode:\n self.verify(packets == 10, \"Not receive expected packet\")\n else:\n self.verify(packets == 0, \"Receive expected packet\")\ndiff --git a/tests/TestSuite_vf_macfilter.py b/tests/TestSuite_vf_macfilter.py\nindex c2007999..f49c4406 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:\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:\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@@ -145,7 +155,17 @@ 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+ if self.dcf_mode:\n+ self.vm0_testpmd.start_testpmd(\n+ VM_CORES_MASK,\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)\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 +262,17 @@ 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+ if self.dcf_mode:\n+ self.vm0_testpmd.start_testpmd(\n+ VM_CORES_MASK,\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)\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 4dd05cac..b79ba4cc 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@@ -67,6 +68,11 @@ class TestVfOffload(TestCase):\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_intf0 = self.dut.ports_info[0][\"port\"].get_interface_name()\n+ pf_intf1 = self.dut.ports_info[1][\"port\"].get_interface_name()\n+ if self.dcf_mode:\n+ self.dut.send_expect(\"ip link set %s vf 0 trust on\" % (pf_intf0), \"# \")\n+ self.dut.send_expect(\"ip link set %s vf 0 trust on\" % (pf_intf1), \"# \")\n \n try:\n \n@@ -92,6 +98,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@@ -249,13 +257,27 @@ 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)\n- + \"--enable-rx-cksum \"\n- + \"\"\n- + \"--port-topology=loop\",\n- )\n+ if self.dcf_mode:\n+ self.vm0_testpmd.start_testpmd(\n+ VM_CORES_MASK,\n+ \"--portmask=%s \" % (self.portMask)\n+ + \"--enable-rx-cksum \"\n+ + \"\"\n+ + \"--port-topology=loop\",\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(\n+ VM_CORES_MASK,\n+ \"--portmask=%s \" % (self.portMask)\n+ + \"--enable-rx-cksum \"\n+ + \"\"\n+ + \"--port-topology=loop\",\n+ )\n self.vm0_testpmd.execute_cmd(\"set fwd csum\")\n \n time.sleep(2)\n@@ -312,12 +334,27 @@ class TestVfOffload(TestCase):\n Send same packet with incorrect checksum and verify checksum is valid.\n \"\"\"\n \n- self.vm0_testpmd.start_testpmd(\n- VM_CORES_MASK,\n- \"--portmask=%s \" % (self.portMask)\n- + \"--enable-rx-cksum \"\n- + \"--port-topology=loop\",\n- )\n+ if self.dcf_mode:\n+ self.vm0_testpmd.start_testpmd(\n+ VM_CORES_MASK,\n+ \"--portmask=%s \" % (self.portMask)\n+ + \"--enable-rx-cksum \"\n+ + \"\"\n+ + \"--port-topology=loop\",\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(\n+ VM_CORES_MASK,\n+ \"--portmask=%s \" % (self.portMask)\n+ + \"--enable-rx-cksum \"\n+ + \"\"\n+ + \"--port-topology=loop\",\n+ )\n self.vm0_testpmd.execute_cmd(\"set fwd csum\")\n \n time.sleep(2)\n@@ -451,10 +488,21 @@ 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- )\n+ if self.dcf_mode:\n+ self.vm0_testpmd.start_testpmd(\n+ VM_CORES_MASK,\n+ \"--portmask=0x3 \" + \"--enable-rx-cksum \" + \"--max-pkt-len=%s\" % TSO_MTU,\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(\n+ VM_CORES_MASK,\n+ \"--portmask=0x3 \" + \"--enable-rx-cksum \" + \"--max-pkt-len=%s\" % TSO_MTU,\n+ )\n \n mac = self.vm0_testpmd.get_port_mac(0)\n \ndiff --git a/tests/TestSuite_vf_rss.py b/tests/TestSuite_vf_rss.py\nindex 3c97e1fe..c8b14e16 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:\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@@ -381,11 +387,20 @@ 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- )\n+ if self.dcf_mode:\n+ self.vm0_testpmd.start_testpmd(\n+ \"all\",\n+ \"--rxq=%d --txq=%d %s\" % (queue, queue, eal_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+ \"--rxq=%d --txq=%d %s\" % (queue, queue, eal_param),\n+ socket=self.vm0_ports_socket,\n+ )\n \n for iptype, rss_type in list(iptypes.items()):\n self.vm_dut_0.send_expect(\"set verbose 8\", \"testpmd> \")\n@@ -453,11 +468,20 @@ 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- )\n+ if self.dcf_mode:\n+ self.vm0_testpmd.start_testpmd(\n+ \"all\",\n+ \"--rxq=%d --txq=%d %s\" % (queue, queue, eal_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+ \"--rxq=%d --txq=%d %s\" % (queue, queue, eal_param),\n+ socket=self.vm0_ports_socket,\n+ )\n \n for iptype, rsstype in list(iptypes.items()):\n self.vm_dut_0.send_expect(\"set verbose 8\", \"testpmd> \")\ndiff --git a/tests/TestSuite_vf_smoke.py b/tests/TestSuite_vf_smoke.py\nindex b19160c6..3ab8ba71 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:\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:\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 e73ad479..9ce75316 100644\n--- a/tests/TestSuite_vf_vlan.py\n+++ b/tests/TestSuite_vf_vlan.py\n@@ -8,7 +8,7 @@ import time\n \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, get_nic_name, load_global_setting\n from framework.test_case import TestCase\n from framework.virt_common import VM\n \n@@ -47,6 +47,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@@ -76,6 +77,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@@ -92,6 +97,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@@ -112,6 +121,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@@ -159,7 +170,17 @@ 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+ if self.dcf_mode:\n+ self.vm0_testpmd.start_testpmd(\n+ VM_CORES_MASK,\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)\n self.vm0_testpmd.execute_cmd(\"set fwd mac\")\n self.vm0_testpmd.execute_cmd(\"start\")\n \n@@ -203,7 +224,17 @@ 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+ if self.dcf_mode:\n+ self.vm0_testpmd.start_testpmd(\n+ VM_CORES_MASK,\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)\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@@ -233,7 +264,7 @@ class TestVfVlan(TestCase):\n self.vm0_testpmd.execute_cmd(\"start\")\n \n out = self.send_and_getout(vlan=random_vlan, pkt_type=\"VLAN_UDP\")\n- if self.kdriver == \"i40e\" and self.driver_version < \"2.13.10\":\n+ if self.kdriver == \"i40e\" and self.driver_version < \"2.13.10\" or self.dcf_mode:\n self.verify(\"received\" in out, \"Failed to received vlan packet!!!\")\n else:\n self.verify(\"received\" not in out, \"Received vlan packet without pvid!!!\")\n@@ -274,7 +305,17 @@ 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+ if self.dcf_mode:\n+ self.vm0_testpmd.start_testpmd(\n+ VM_CORES_MASK,\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)\n self.vm0_testpmd.execute_cmd(\"set verbose 1\")\n \n for tx_vlan in tx_vlans:\n@@ -299,7 +340,18 @@ 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+ if self.dcf_mode:\n+ self.vm0_testpmd.start_testpmd(\n+ VM_CORES_MASK,\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+ eal_param=\"--force-max-simd-bitwidth=64\",\n+ )\n+ else:\n+ self.vm0_testpmd.start_testpmd(VM_CORES_MASK)\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@@ -374,8 +426,16 @@ 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+ if self.dcf_mode:\n+ self.vm0_testpmd.start_testpmd(\n+ VM_CORES_MASK,\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+ eal_param=\"--force-max-simd-bitwidth=64\",\n+ )\n else:\n self.vm0_testpmd.start_testpmd(VM_CORES_MASK)\n self.vm0_testpmd.execute_cmd(\"set fwd rxonly\")\n", "prefixes": [ "V2", "3/3" ] }{ "id": 115247, "url": "