get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/115774/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 115774,
    "url": "http://patches.dpdk.org/api/patches/115774/?format=api",
    "web_url": "http://patches.dpdk.org/project/dts/patch/20220902151654.28455-2-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": "<20220902151654.28455-2-zhiminx.huang@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dts/20220902151654.28455-2-zhiminx.huang@intel.com",
    "date": "2022-09-02T15:16:53",
    "name": "[V4,2/3] tests/*:add 22.07 new feature, support in dcf mode",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "91f9ef854323eeec20ad45844498e3b8dd360f13",
    "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/20220902151654.28455-2-zhiminx.huang@intel.com/mbox/",
    "series": [
        {
            "id": 24513,
            "url": "http://patches.dpdk.org/api/series/24513/?format=api",
            "web_url": "http://patches.dpdk.org/project/dts/list/?series=24513",
            "date": "2022-09-02T15:16:52",
            "name": "[V4,1/3] framework/*:add config dcf mode in execution file",
            "version": 4,
            "mbox": "http://patches.dpdk.org/series/24513/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/115774/comments/",
    "check": "pending",
    "checks": "http://patches.dpdk.org/api/patches/115774/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 EB6E7A0544;\n\tFri,  2 Sep 2022 09:02:18 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id DCC0F427F4;\n\tFri,  2 Sep 2022 09:02:18 +0200 (CEST)",
            "from mga04.intel.com (mga04.intel.com [192.55.52.120])\n by mails.dpdk.org (Postfix) with ESMTP id 8DFDF40684\n for <dts@dpdk.org>; Fri,  2 Sep 2022 09:02:10 +0200 (CEST)",
            "from orsmga008.jf.intel.com ([10.7.209.65])\n by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 02 Sep 2022 00:01:45 -0700",
            "from unknown (HELO localhost.localdomain) ([10.239.252.93])\n by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 02 Sep 2022 00:01:42 -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=1662102132; x=1693638132;\n h=from:to:cc:subject:date:message-id:in-reply-to: references;\n bh=qmJDMD2FfEWOxRy9Ch4T2nwOKROlJ64fYIxj9lNEUPQ=;\n b=MOE/huH1K6rpMPv9+ZvKX8E0wjQRscXL24kDmrGGxgpjs3vy1yLT1I7e\n ljCiIui1/uZNlo6gOHSsYniZQW8IEGb0SVyAK/0HkuysMlOdZmPTMfpHf\n E29uU+1/0dmkEwA8/o02zwxv5by1nAlsjlqWlevgZzkAVqyxVMZ7TTGBk\n XMuR9psRxMuyz63/z5FndGuaIG/42Av35U8fkdczqR1jWjxk40arjjZMb\n A1cha+Bv1qBTWRaPD2crGpT1RUTy8c/QWJCQTBMbV+vq4JE0w4WV963p6\n jejqxuNuQYt4h1HYfQ1HhWsE7xGWim1/rncd/WKjL4d7lsx7hQWsQg1s3 Q==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6500,9779,10457\"; a=\"294651428\"",
            "E=Sophos;i=\"5.93,283,1654585200\"; d=\"scan'208\";a=\"294651428\"",
            "E=Sophos;i=\"5.93,283,1654585200\"; d=\"scan'208\";a=\"642793155\""
        ],
        "From": "Zhimin Huang <zhiminx.huang@intel.com>",
        "To": "dts@dpdk.org",
        "Cc": "Zhimin Huang <zhiminx.huang@intel.com>",
        "Subject": "[dts][PATCH V4 2/3] tests/*:add 22.07 new feature,\n support in dcf mode",
        "Date": "Fri,  2 Sep 2022 23:16:53 +0800",
        "Message-Id": "<20220902151654.28455-2-zhiminx.huang@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20220902151654.28455-1-zhiminx.huang@intel.com>",
        "References": "<20220902151654.28455-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 | 146 +++++++++++++++++++++++++++----\n tests/TestSuite_vf_macfilter.py  |  34 ++++++-\n tests/TestSuite_vf_offload.py    |  63 ++++++++++---\n tests/TestSuite_vf_rss.py        |  44 +++++++---\n tests/TestSuite_vf_smoke.py      |  18 +++-\n tests/TestSuite_vf_vlan.py       |  75 ++++++++++++++--\n 6 files changed, 331 insertions(+), 49 deletions(-)",
    "diff": "diff --git a/tests/TestSuite_kernelpf_iavf.py b/tests/TestSuite_kernelpf_iavf.py\nindex a6d4d016..190f9fa5 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@@ -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@@ -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@@ -199,7 +205,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 == \"enable\":\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@@ -234,7 +247,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 == \"enable\":\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@@ -282,7 +302,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 == \"enable\":\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@@ -321,7 +348,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 == \"enable\":\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@@ -345,7 +379,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 == \"enable\":\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@@ -375,7 +416,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 == \"enable\":\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@@ -396,7 +444,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 == \"enable\":\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@@ -432,7 +487,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 == \"enable\":\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@@ -473,7 +535,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 == \"enable\":\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@@ -496,7 +566,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 == \"enable\":\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@@ -681,7 +759,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 == \"enable\":\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@@ -700,7 +785,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 == \"enable\":\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@@ -722,7 +814,14 @@ class TestKernelpfIavf(TestCase):\n         )\n \n     def test_vf_information(self):\n-        self.vm_testpmd.start_testpmd(\"all\")\n+        if self.dcf_mode == \"enable\":\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@@ -791,7 +890,14 @@ class TestKernelpfIavf(TestCase):\n         )\n \n     def test_vf_unicast(self):\n-        self.vm_testpmd.start_testpmd(\"all\")\n+        if self.dcf_mode == \"enable\":\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@@ -809,7 +915,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 == \"enable\":\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@@ -827,6 +940,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:\ndiff --git a/tests/TestSuite_vf_macfilter.py b/tests/TestSuite_vf_macfilter.py\nindex c2007999..e6b3131e 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@@ -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 == \"enable\":\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 == \"enable\":\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 eee77c69..87310817 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@@ -290,10 +293,21 @@ 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-        )\n+        if self.dcf_mode == \"enable\":\n+            self.vm0_testpmd.start_testpmd(\n+                VM_CORES_MASK,\n+                \"--portmask=%s \" % (self.portMask) + \"--enable-rx-cksum \" + \"\",\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) + \"--enable-rx-cksum \" + \"\",\n+            )\n         self.vm0_testpmd.execute_cmd(\"set fwd csum\")\n         self.vm0_testpmd.execute_cmd(\"set promisc 1 on\")\n         self.vm0_testpmd.execute_cmd(\"set promisc 0 on\")\n@@ -351,10 +365,22 @@ 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+\n+        if self.dcf_mode == \"enable\":\n+            self.vm0_testpmd.start_testpmd(\n+                VM_CORES_MASK,\n+                \"--portmask=%s \" % (self.portMask) + \"--enable-rx-cksum \" + \"\",\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) + \"--enable-rx-cksum \" + \"\",\n+            )\n         self.vm0_testpmd.execute_cmd(\"set fwd csum\")\n         self.vm0_testpmd.execute_cmd(\"set promisc 1 on\")\n         self.vm0_testpmd.execute_cmd(\"set promisc 0 on\")\n@@ -491,10 +517,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 == \"enable\":\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         self.vm0_testpmd.execute_cmd(\"set verbose 1\", \"testpmd> \", 120)\ndiff --git a/tests/TestSuite_vf_rss.py b/tests/TestSuite_vf_rss.py\nindex 3c97e1fe..b6359987 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@@ -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 == \"enable\":\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 == \"enable\":\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..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 c4904c55..e160b737 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, get_nic_name, 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 == \"enable\":\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 == \"enable\":\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@@ -170,7 +181,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 == \"enable\":\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@@ -214,7 +235,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 == \"enable\":\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@@ -248,6 +279,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 == \"enable\"\n         ):\n             self.verify(\"received\" in out, \"Failed to received vlan packet!!!\")\n         else:\n@@ -289,7 +321,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 == \"enable\":\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@@ -314,7 +356,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 == \"enable\":\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@@ -393,8 +446,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 == \"enable\":\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": [
        "V4",
        "2/3"
    ]
}