From patchwork Fri Sep 2 10:18:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Huang, ZhiminX" X-Patchwork-Id: 115759 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D51CCA0542; Fri, 2 Sep 2022 04:03:41 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AA2AC40695; Fri, 2 Sep 2022 04:03:41 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id 3B92840684 for ; Fri, 2 Sep 2022 04:03:39 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662084220; x=1693620220; h=from:to:cc:subject:date:message-id; bh=P5bUU4r8A2eidWyi3X4/yEQ1GIQ2rSbQEQ6jet5lYQM=; b=a4b1sTpcax5oIVjKC5VxWtznA+1GHHCAo2jj6eKDEkYr+JpNuhmyr4BP ReNkqgeXDsxiRcv75ZGPgWSPISjhI8gK1QpLt5HF69TlqKSvgCi/4SVLS HtWUoJAFDpWn4Q68sFfXNWJq28pfao6tIiEKetw0pcESsCMKwAG2I+VPS Z0HaLHO3UI4w2/HW78E4wTIRGSnCi5zYW5GBD0YAQn+cF7BstNA19PrQ9 HXCFaFNDqKlNhSys8UoAvzrNZoxaYNtgZ99MCjlXr1PMWmYosnXshKSic Gs3aCvt6ontmnaGoIXUGtcTn/9MJSe9RgfN0e/6V+A+/pCjpYxGH6JurQ g==; X-IronPort-AV: E=McAfee;i="6500,9779,10457"; a="382171944" X-IronPort-AV: E=Sophos;i="5.93,281,1654585200"; d="scan'208";a="382171944" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Sep 2022 19:03:38 -0700 X-IronPort-AV: E=Sophos;i="5.93,281,1654585200"; d="scan'208";a="941105694" Received: from unknown (HELO cvl_100g_103.icx.intel.com) ([10.239.252.93]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Sep 2022 19:03:36 -0700 From: Zhimin Huang To: dts@dpdk.org Cc: Zhimin Huang Subject: [dts][PATCH V3 1/3] framework/*:add config dcf mode in execution file Date: Fri, 2 Sep 2022 18:18:53 +0800 Message-Id: <20220902101855.27214-1-zhiminx.huang@intel.com> X-Mailer: git-send-email 2.17.1 X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org add dcf_mode parm into execution file configuration. if take dcf mode,add dcf_mode=enable into execution.cfg. Signed-off-by: Zhimin Huang --- framework/dts.py | 6 ++++++ framework/settings.py | 1 + 2 files changed, 7 insertions(+) diff --git a/framework/dts.py b/framework/dts.py index a894c461..a8e670b5 100644 --- a/framework/dts.py +++ b/framework/dts.py @@ -141,7 +141,13 @@ def dts_parse_config(config, section): except: rx_mode = "default" + try: + dcf_mode = config.get(section, "dcf_mode").strip().lower() + except: + dcf_mode = "" + settings.save_global_setting(settings.DPDK_RXMODE_SETTING, rx_mode) + settings.save_global_setting(settings.DPDK_DCFMODE_SETTING, dcf_mode) for suite in test_suites: if suite == "": diff --git a/framework/settings.py b/framework/settings.py index 2e7bcfa5..65029668 100644 --- a/framework/settings.py +++ b/framework/settings.py @@ -235,6 +235,7 @@ HOST_SHARED_LIB_PATH = "DTS_HOST_SHARED_LIB_PATH" DEBUG_SETTING = "DTS_DEBUG_ENABLE" DEBUG_CASE_SETTING = "DTS_DEBUGCASE_ENABLE" DPDK_RXMODE_SETTING = "DTS_DPDK_RXMODE" +DPDK_DCFMODE_SETTING = "DTS_DPDK_DCFMODE" DTS_ERROR_ENV = "DTS_RUNNING_ERROR" DTS_CFG_FOLDER = "DTS_CFG_FOLDER" DTS_PARALLEL_SETTING = "DTS_PARALLEL_ENABLE" From patchwork Fri Sep 2 10:18:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Huang, ZhiminX" X-Patchwork-Id: 115760 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 42097A0543; Fri, 2 Sep 2022 04:03:42 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C9EE340F18; Fri, 2 Sep 2022 04:03:41 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id D1BF240684 for ; Fri, 2 Sep 2022 04:03:40 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662084221; x=1693620221; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=q95YJp3DMDX2qUAX5VZE3w7vk98+oRTOcQ0N+2U/qg8=; b=LLiZEZtzEChUkH+goJ5kTmBPiOrDaHeRxyjDg/fD53MW83D7c9TDZbwO 0M4ZU+oddZ1IaCjdg8UoYs44mB/JHUATmTAo76crPgHqGP2YbZ7uqgbQI MwOLyU/G6Iu5+0XGLKsOH21Vr5/yd23aQzNFif7/JBQR0OSUWrJOuYsfi aYjOPtlqGiSzKxF+HEjLkbWxj2Dq6SeA/ga+rrN90E8ZOFpUufYNKjoJ4 JYrk0/Xr+QSdsPtYYE/YR8RsHd0jd79uDPEOLw1zzohSL6sUYHT8hmIZ6 2ML3Zywx2jeKMQRgT2gv4sdu6ufiiEm0r57MXrTDk+Dk7x5N4LSlL6iV6 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10457"; a="382171950" X-IronPort-AV: E=Sophos;i="5.93,281,1654585200"; d="scan'208";a="382171950" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Sep 2022 19:03:39 -0700 X-IronPort-AV: E=Sophos;i="5.93,281,1654585200"; d="scan'208";a="941105709" Received: from unknown (HELO cvl_100g_103.icx.intel.com) ([10.239.252.93]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Sep 2022 19:03:38 -0700 From: Zhimin Huang To: dts@dpdk.org Cc: Zhimin Huang Subject: [dts][PATCH V3 2/3] test_plans/*:add 22.07 new feature, support in dcf mode Date: Fri, 2 Sep 2022 18:18:54 +0800 Message-Id: <20220902101855.27214-2-zhiminx.huang@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220902101855.27214-1-zhiminx.huang@intel.com> References: <20220902101855.27214-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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org add description for support dcf case. 1.set vf trust on. 2.start up testpmd with dcf parm. Signed-off-by: Zhimin Huang --- test_plans/kernelpf_iavf_test_plan.rst | 12 ++++++++++++ test_plans/vf_macfilter_test_plan.rst | 16 ++++++++++++++++ test_plans/vf_offload_test_plan.rst | 14 ++++++++++++++ test_plans/vf_rss_test_plan.rst | 13 +++++++++++++ test_plans/vf_smoke_test_plan.rst | 13 +++++++++++++ test_plans/vf_vlan_test_plan.rst | 12 ++++++++++++ 6 files changed, 80 insertions(+) diff --git a/test_plans/kernelpf_iavf_test_plan.rst b/test_plans/kernelpf_iavf_test_plan.rst index d877bb90..aa7aed82 100644 --- a/test_plans/kernelpf_iavf_test_plan.rst +++ b/test_plans/kernelpf_iavf_test_plan.rst @@ -47,6 +47,18 @@ Start up VF port:: .//app/dpdk-testpmd -c f -n 4 -- -i +Or set VF port to dcf and start up:: + + Enable kernel trust mode: + + ip link set $PF_INTF vf 0 trust on + + .//app/dpdk-testpmd -c f -n 4 -a 0000:18:01.0,cap=dcf -- -i + +.. note:: + + make dcf as full feature pmd is dpdk22.07 feature, and only support E810 series nic. + Test case: VF basic RX/TX ========================= Set rxonly forward, start testpmd diff --git a/test_plans/vf_macfilter_test_plan.rst b/test_plans/vf_macfilter_test_plan.rst index d623cf04..e2f3c355 100644 --- a/test_plans/vf_macfilter_test_plan.rst +++ b/test_plans/vf_macfilter_test_plan.rst @@ -77,6 +77,14 @@ Test Case 1: test_kernel_2pf_2vf_1vm_iplink_macfilter testpmd> set fwd mac testpmd> start + Or set VF port to dcf and start up:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x0f -n 4 -a 00:06.0,cap=dcf -a 00:07.0,cap=dcf -- -i --portmask=0x3 + +.. note:: + + make dcf as full feature pmd is dpdk22.07 feature, and only support E810 series nic. + 6. Use scapy to send 100 random packets with ip link set MAC to VF, verify the packets can be received by one VF and can be forwarded to another VF correctly. @@ -156,6 +164,14 @@ Test Case 2: test_kernel_2pf_2vf_1vm_mac_add_filter testpmd> set fwd mac testpmd> start + Or set VF port to dcf and start up:: + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x0f -n 4 -a 00:06.0,cap=dcf -a 00:07.0,cap=dcf -- -i --portmask=0x3 + +.. note:: + + make dcf as full feature pmd is dpdk22.07 feature, and only support E810 series nic. + 6. Use scapy to send 100 random packets with current VF0's MAC, verify the packets can be received by one VF and can be forwarded to another VF correctly. diff --git a/test_plans/vf_offload_test_plan.rst b/test_plans/vf_offload_test_plan.rst index 522fc017..7c6e775a 100644 --- a/test_plans/vf_offload_test_plan.rst +++ b/test_plans/vf_offload_test_plan.rst @@ -25,6 +25,20 @@ launch the ``testpmd`` with the following arguments:: --txht=8 --txwt=0 --txfreet=0 --rxfreet=64 --mbcache=250 --portmask=0x5 --enable-rx-cksum +Or set VF port to dcf and start up:: + + Enable kernel trust mode: + + ip link set $PF_INTF vf 0 trust on + + dpdk-testpmd -c 0x0f -n 4 -a 00:04.0,cap=dcf -a 00:05.0,cap=dcf -- -i --burst=1 --txpt=32 \ + --txht=8 --txwt=0 --txfreet=0 --rxfreet=64 --mbcache=250 --portmask=0x5 + --enable-rx-cksum + +.. note:: + + make dcf as full feature pmd is dpdk22.07 feature, and only support E810 series nic. + Set the verbose level to 1 to display information for each received packet:: testpmd> set verbose 1 diff --git a/test_plans/vf_rss_test_plan.rst b/test_plans/vf_rss_test_plan.rst index 846de2d7..75520206 100644 --- a/test_plans/vf_rss_test_plan.rst +++ b/test_plans/vf_rss_test_plan.rst @@ -54,6 +54,19 @@ Testpmd configuration - 4 RX/TX queues per port dpdk-testpmd -c 1f -n 3 -- -i --rxq=4 --txq=4 + +Or set VF port to dcf and start up:: + + Enable kernel trust mode: + + ip link set $PF_INTF vf 0 trust on + + dpdk-testpmd -c 0x0f -n 4 -a 00:04.0,cap=dcf -a 00:05.0,cap=dcf -- -i --rxq=4 --txq=4 + +.. note:: + + make dcf as full feature pmd is dpdk22.07 feature, and only support E810 series nic. + Testpmd Configuration Options ----------------------------- diff --git a/test_plans/vf_smoke_test_plan.rst b/test_plans/vf_smoke_test_plan.rst index 33a3273c..7698947d 100644 --- a/test_plans/vf_smoke_test_plan.rst +++ b/test_plans/vf_smoke_test_plan.rst @@ -59,6 +59,19 @@ Prerequisites testpmd> start testpmd> show port info all +Or set VF port to dcf and start up:: + + Enable kernel trust mode: + + ip link set $PF_INTF vf 0 trust on + + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:86:01.0,cap=dcf --file-prefix=pf -- -i --rxq=4 + --txq=4 + +.. note:: + + make dcf as full feature pmd is dpdk22.07 feature, and only support E810 series nic. + Test Case 1: test enable and disable jumbo frame ==================================================== diff --git a/test_plans/vf_vlan_test_plan.rst b/test_plans/vf_vlan_test_plan.rst index 2c38d4dd..4ddf8e6e 100644 --- a/test_plans/vf_vlan_test_plan.rst +++ b/test_plans/vf_vlan_test_plan.rst @@ -66,6 +66,18 @@ Prerequisites testpmd> set verbose 1 testpmd> start +Or set VF port to dcf and start up:: + + Enable kernel trust mode: + + ip link set $PF_INTF vf 0 trust on + + dpdk-testpmd -c 0x0f -n 4 -a 00:04.0,cap=dcf -a 00:05.0,cap=dcf -- -i --portmask=0x3 + +.. note:: + + make dcf as full feature pmd is dpdk22.07 feature, and only support E810 series nic. + Test Case 1: Add port based vlan on VF ====================================== From patchwork Fri Sep 2 10:18:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Huang, ZhiminX" X-Patchwork-Id: 115761 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0C8DAA0544; Fri, 2 Sep 2022 04:03:43 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EFDBA40693; Fri, 2 Sep 2022 04:03:42 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id 754A940684 for ; Fri, 2 Sep 2022 04:03:41 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662084221; x=1693620221; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=GldxCyMBkmO1FBBfjRS1ZDOFPkzBSK3LQevplPEWeXE=; b=UKrozKXGho05fszMmhUd9G4REUlgQLcv8OOKbRFN7s6ZsWm1wYB692bc zd8PL7JUfQ3efMc3n9UPkP7gcFp/M/kaYgtX8o0tE+75B9YTb7m8vTJIS 4CMO0F3IcUfewELXZUyslpa+h+1ffCP7NXsJsRLRQso9KOpBHxvhaMyZD PjUyNZb+XcCPTKSvyBYahaRN/0bJodVEog1vt1wm1uPtPP7KrKLVZqegM eXO8PT9meaXipj4K1otZEYSNt0UxcBMUiDN8wclqAt5Cpo7P8PgBVhBDX Ubw/TxYN5if4Pi2/y5HbBzvQgZFTKzn1A847beOU9HJo1wxyDfFDAQpti Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10457"; a="382171952" X-IronPort-AV: E=Sophos;i="5.93,281,1654585200"; d="scan'208";a="382171952" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Sep 2022 19:03:40 -0700 X-IronPort-AV: E=Sophos;i="5.93,281,1654585200"; d="scan'208";a="941105722" Received: from unknown (HELO cvl_100g_103.icx.intel.com) ([10.239.252.93]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Sep 2022 19:03:39 -0700 From: Zhimin Huang To: dts@dpdk.org Cc: Zhimin Huang Subject: [dts][PATCH V3 3/3] tests/*:add 22.07 new feature, support in dcf mode Date: Fri, 2 Sep 2022 18:18:55 +0800 Message-Id: <20220902101855.27214-3-zhiminx.huang@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220902101855.27214-1-zhiminx.huang@intel.com> References: <20220902101855.27214-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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org modify test case code to support dcf. Signed-off-by: Zhimin Huang --- tests/TestSuite_kernelpf_iavf.py | 146 +++++++++++++++++++++++++++---- tests/TestSuite_vf_macfilter.py | 34 ++++++- tests/TestSuite_vf_offload.py | 84 ++++++++++++++---- tests/TestSuite_vf_rss.py | 44 +++++++--- tests/TestSuite_vf_smoke.py | 18 +++- tests/TestSuite_vf_vlan.py | 75 ++++++++++++++-- 6 files changed, 347 insertions(+), 54 deletions(-) diff --git a/tests/TestSuite_kernelpf_iavf.py b/tests/TestSuite_kernelpf_iavf.py index a6d4d016..190f9fa5 100644 --- a/tests/TestSuite_kernelpf_iavf.py +++ b/tests/TestSuite_kernelpf_iavf.py @@ -16,7 +16,7 @@ import time import framework.utils as utils from framework.packet import Packet from framework.pmd_output import PmdOutput -from framework.settings import HEADER_SIZE +from framework.settings import DPDK_DCFMODE_SETTING, load_global_setting from framework.test_case import TestCase from framework.utils import RED from framework.virt_common import VM @@ -74,6 +74,7 @@ class TestKernelpfIavf(TestCase): # get priv-flags default stats self.flag = "vf-vlan-pruning" self.default_stats = self.dut.get_priv_flags_state(self.host_intf, self.flag) + self.dcf_mode = load_global_setting(DPDK_DCFMODE_SETTING) def set_up(self): @@ -85,6 +86,10 @@ class TestKernelpfIavf(TestCase): self.destroy_vm_env() elif self.env_done is False: self.setup_vm_env() + if self.dcf_mode: + self.dut.send_expect( + "ip link set %s vf 0 trust on" % (self.host_intf), "# " + ) def setup_vm_env(self, driver="default", set_vf_mac=True): """ @@ -145,6 +150,7 @@ class TestKernelpfIavf(TestCase): raise Exception("Set up VM ENV failed!") self.vm_testpmd = PmdOutput(self.vm_dut) + self.vf_guest_pci = self.vm.pci_maps[0]["guestpci"] except Exception as e: self.destroy_vm_env() raise Exception(e) @@ -199,7 +205,14 @@ class TestKernelpfIavf(TestCase): """ Set rxonly forward,Send 100 random packets from tester, check packets can be received """ - self.vm_testpmd.start_testpmd("all") + if self.dcf_mode == "enable": + self.vm_testpmd.start_testpmd( + "all", + ports=[self.vf_guest_pci], + port_options={self.vf_guest_pci: "cap=dcf"}, + ) + else: + self.vm_testpmd.start_testpmd("all") self.vm_testpmd.execute_cmd("set fwd rxonly") self.vm_testpmd.execute_cmd("set verbose 1") self.vm_testpmd.execute_cmd("start") @@ -234,7 +247,14 @@ class TestKernelpfIavf(TestCase): Not set VF MAC from kernel PF for this case, if set, will print "not permitted error" when add new MAC for VF. """ - out = self.vm_testpmd.start_testpmd("all") + if self.dcf_mode == "enable": + out = self.vm_testpmd.start_testpmd( + "all", + ports=[self.vf_guest_pci], + port_options={self.vf_guest_pci: "cap=dcf"}, + ) + else: + out = self.vm_testpmd.start_testpmd("all") self.testpmd_mac = self.get_testpmd_vf_mac(out) self.vm_testpmd.execute_cmd("set fwd mac") self.vm_testpmd.execute_cmd("set promisc all off") @@ -282,7 +302,14 @@ class TestKernelpfIavf(TestCase): Enable kernel trust mode """ self.dut.send_expect("ip link set dev %s vf 0 trust on" % self.host_intf, "# ") - self.vm_testpmd.start_testpmd("all") + if self.dcf_mode == "enable": + self.vm_testpmd.start_testpmd( + "all", + ports=[self.vf_guest_pci], + port_options={self.vf_guest_pci: "cap=dcf"}, + ) + else: + self.vm_testpmd.start_testpmd("all") self.vm_testpmd.execute_cmd("set fwd mac") self.vm_testpmd.execute_cmd("set verbose 1") self.vm_testpmd.execute_cmd("start") @@ -321,7 +348,14 @@ class TestKernelpfIavf(TestCase): """ multicast_mac = "01:80:C2:00:00:08" self.dut.send_expect("ip link set dev %s vf 0 trust on" % self.host_intf, "# ") - self.vm_testpmd.start_testpmd("all") + if self.dcf_mode == "enable": + self.vm_testpmd.start_testpmd( + "all", + ports=[self.vf_guest_pci], + port_options={self.vf_guest_pci: "cap=dcf"}, + ) + else: + self.vm_testpmd.start_testpmd("all") self.vm_testpmd.execute_cmd("set fwd mac") self.vm_testpmd.execute_cmd("set promisc all off") self.vm_testpmd.execute_cmd("set allmulti all off") @@ -345,7 +379,14 @@ class TestKernelpfIavf(TestCase): def test_vf_broadcast(self): """ """ broadcast_mac = "ff:ff:ff:ff:ff:ff" - self.vm_testpmd.start_testpmd("all") + if self.dcf_mode == "enable": + self.vm_testpmd.start_testpmd( + "all", + ports=[self.vf_guest_pci], + port_options={self.vf_guest_pci: "cap=dcf"}, + ) + else: + self.vm_testpmd.start_testpmd("all") self.vm_testpmd.execute_cmd("set fwd mac") self.vm_testpmd.execute_cmd("set promisc all off") self.vm_testpmd.execute_cmd("set verbose 1") @@ -375,7 +416,14 @@ class TestKernelpfIavf(TestCase): return out def test_vf_vlan_insertion(self): - self.vm_testpmd.start_testpmd("all") + if self.dcf_mode == "enable": + self.vm_testpmd.start_testpmd( + "all", + ports=[self.vf_guest_pci], + port_options={self.vf_guest_pci: "cap=dcf"}, + ) + else: + self.vm_testpmd.start_testpmd("all") random_vlan = random.randint(1, MAX_VLAN) self.vm_testpmd.execute_cmd("vlan set strip off 0") self.vm_testpmd.execute_cmd("port stop all") @@ -396,7 +444,14 @@ class TestKernelpfIavf(TestCase): def test_vf_vlan_strip(self): random_vlan = random.randint(1, MAX_VLAN) - self.vm_testpmd.start_testpmd("all") + if self.dcf_mode == "enable": + self.vm_testpmd.start_testpmd( + "all", + ports=[self.vf_guest_pci], + port_options={self.vf_guest_pci: "cap=dcf"}, + ) + else: + self.vm_testpmd.start_testpmd("all") self.vm_testpmd.execute_cmd("port stop all") self.vm_testpmd.execute_cmd("vlan set filter on 0") self.vm_testpmd.execute_cmd("rx_vlan add %s 0" % random_vlan) @@ -432,7 +487,14 @@ class TestKernelpfIavf(TestCase): def test_vf_vlan_filter(self): random_vlan = random.randint(2, MAX_VLAN) - self.vm_testpmd.start_testpmd("all") + if self.dcf_mode == "enable": + self.vm_testpmd.start_testpmd( + "all", + ports=[self.vf_guest_pci], + port_options={self.vf_guest_pci: "cap=dcf"}, + ) + else: + self.vm_testpmd.start_testpmd("all") self.vm_testpmd.execute_cmd("port stop all") self.vm_testpmd.execute_cmd("set promisc all off") self.vm_testpmd.execute_cmd("vlan set filter on 0") @@ -473,7 +535,15 @@ class TestKernelpfIavf(TestCase): def test_vf_rss(self): rss_type = ["ip", "tcp", "udp"] - self.vm_testpmd.start_testpmd("all", "--txq=4 --rxq=4") + if self.dcf_mode == "enable": + self.vm_testpmd.start_testpmd( + "all", + "--txq=4 --rxq=4", + ports=[self.vf_guest_pci], + port_options={self.vf_guest_pci: "cap=dcf"}, + ) + else: + self.vm_testpmd.start_testpmd("all", "--txq=4 --rxq=4") self.vm_testpmd.execute_cmd("set fwd mac") self.vm_testpmd.execute_cmd("set verbose 1") default_rss_reta = self.vm_testpmd.execute_cmd( @@ -496,7 +566,15 @@ class TestKernelpfIavf(TestCase): def test_vf_rss_hash_key(self): update_hash_key = "1b9d58a4b961d9cd1c56ad1621c3ad51632c16a5d16c21c3513d132c135d132c13ad1531c23a51d6ac49879c499d798a7d949c8a" - self.vm_testpmd.start_testpmd("all", "--txq=4 --rxq=4") + if self.dcf_mode == "enable": + self.vm_testpmd.start_testpmd( + "all", + "--txq=4 --rxq=4", + ports=[self.vf_guest_pci], + port_options={self.vf_guest_pci: "cap=dcf"}, + ) + else: + self.vm_testpmd.start_testpmd("all", "--txq=4 --rxq=4") self.vm_testpmd.execute_cmd("show port 0 rss-hash key") self.vm_testpmd.execute_cmd("set fwd rxonly") self.vm_testpmd.execute_cmd("set verbose 1") @@ -681,7 +759,14 @@ class TestKernelpfIavf(TestCase): self.tester.send_expect("^C", "#") def test_vf_port_start_stop(self): - self.vm_testpmd.start_testpmd("all") + if self.dcf_mode == "enable": + self.vm_testpmd.start_testpmd( + "all", + ports=[self.vf_guest_pci], + port_options={self.vf_guest_pci: "cap=dcf"}, + ) + else: + self.vm_testpmd.start_testpmd("all") for i in range(10): self.vm_testpmd.execute_cmd("port stop all") self.vm_testpmd.execute_cmd("port start all") @@ -700,7 +785,14 @@ class TestKernelpfIavf(TestCase): self.verify(vf0_tx_cnt == 100, "no packet was fwd by vm0_VF0") def test_vf_statistic_reset(self): - self.vm_testpmd.start_testpmd("all") + if self.dcf_mode == "enable": + self.vm_testpmd.start_testpmd( + "all", + ports=[self.vf_guest_pci], + port_options={self.vf_guest_pci: "cap=dcf"}, + ) + else: + self.vm_testpmd.start_testpmd("all") self.vm_testpmd.execute_cmd("set fwd mac") self.vm_testpmd.execute_cmd("set verbose 1") self.vm_testpmd.execute_cmd("start") @@ -722,7 +814,14 @@ class TestKernelpfIavf(TestCase): ) def test_vf_information(self): - self.vm_testpmd.start_testpmd("all") + if self.dcf_mode == "enable": + self.vm_testpmd.start_testpmd( + "all", + ports=[self.vf_guest_pci], + port_options={self.vf_guest_pci: "cap=dcf"}, + ) + else: + self.vm_testpmd.start_testpmd("all") out = self.vm_testpmd.execute_cmd("show port info 0") self.verify("Link status: up" in out, "link stats has error") self.verify("Link speed: %s" % self.speed in out, "link speed has error") @@ -791,7 +890,14 @@ class TestKernelpfIavf(TestCase): ) def test_vf_unicast(self): - self.vm_testpmd.start_testpmd("all") + if self.dcf_mode == "enable": + self.vm_testpmd.start_testpmd( + "all", + ports=[self.vf_guest_pci], + port_options={self.vf_guest_pci: "cap=dcf"}, + ) + else: + self.vm_testpmd.start_testpmd("all") self.vm_testpmd.execute_cmd("set verbose 1") self.vm_testpmd.execute_cmd("set fwd mac") self.vm_testpmd.execute_cmd("set promisc all off") @@ -809,7 +915,14 @@ class TestKernelpfIavf(TestCase): self.verify(packets == 10, "Not receive expected packet") def test_vf_vlan_promisc(self): - self.vm_testpmd.start_testpmd("all") + if self.dcf_mode == "enable": + self.vm_testpmd.start_testpmd( + "all", + ports=[self.vf_guest_pci], + port_options={self.vf_guest_pci: "cap=dcf"}, + ) + else: + self.vm_testpmd.start_testpmd("all") self.vm_testpmd.execute_cmd("port stop all") self.vm_testpmd.execute_cmd("set promisc all on") self.vm_testpmd.execute_cmd("set fwd mac") @@ -827,6 +940,7 @@ class TestKernelpfIavf(TestCase): (self.kdriver == "i40e" and self.driver_version < "2.13.10") or (self.kdriver == "i40e" and not self.default_stats) or (self.kdriver == "ice" and not self.default_stats) + or self.dcf_mode ): self.verify(packets == 10, "Not receive expected packet") else: diff --git a/tests/TestSuite_vf_macfilter.py b/tests/TestSuite_vf_macfilter.py index c2007999..e6b3131e 100644 --- a/tests/TestSuite_vf_macfilter.py +++ b/tests/TestSuite_vf_macfilter.py @@ -6,6 +6,7 @@ import re import time from framework.pmd_output import PmdOutput +from framework.settings import DPDK_DCFMODE_SETTING, load_global_setting from framework.test_case import TestCase from framework.virt_common import VM @@ -34,6 +35,7 @@ class TestVfMacFilter(TestCase): else: self.vf_assign_method = "vfio-pci" self.dut.send_expect("modprobe vfio-pci", "#") + self.dcf_mode = load_global_setting(DPDK_DCFMODE_SETTING) def set_up(self): @@ -50,10 +52,15 @@ class TestVfMacFilter(TestCase): self.dut.send_expect( "ip link set %s vf 0 mac %s" % (pf_intf0, self.pf0_vf0_mac), "#" ) + if self.dcf_mode == "enable": + self.dut.send_expect("ip link set %s vf 0 trust on" % (pf_intf0), "# ") self.used_dut_port_1 = self.dut_ports[1] self.dut.generate_sriov_vfs_by_port(self.used_dut_port_1, 1, driver=driver) self.sriov_vfs_port_1 = self.dut.ports_info[self.used_dut_port_1]["vfs_port"] + pf_intf1 = self.dut.ports_info[1]["port"].get_interface_name() + if self.dcf_mode == "enable": + self.dut.send_expect("ip link set %s vf 0 trust on" % (pf_intf1), "# ") try: @@ -89,6 +96,9 @@ class TestVfMacFilter(TestCase): raise Exception("Set up VM0 ENV failed!") self.setup_2pf_2vf_1vm_env_flag = 1 + self.vf0_guest_pci = self.vm0.pci_maps[0]["guestpci"] + self.vf1_guest_pci = self.vm0.pci_maps[1]["guestpci"] + except Exception as e: self.destroy_2pf_2vf_1vm_env() raise Exception(e) @@ -145,7 +155,17 @@ class TestVfMacFilter(TestCase): self.host_testpmd.execute_cmd("set vf mac addr 0 0 %s" % self.pf0_vf0_mac) self.vm0_dut_ports = self.vm_dut_0.get_ports("any") self.vm0_testpmd = PmdOutput(self.vm_dut_0) - self.vm0_testpmd.start_testpmd(VM_CORES_MASK) + if self.dcf_mode == "enable": + self.vm0_testpmd.start_testpmd( + VM_CORES_MASK, + ports=[self.vf0_guest_pci, self.vf1_guest_pci], + port_options={ + self.vf0_guest_pci: "cap=dcf", + self.vf1_guest_pci: "cap=dcf", + }, + ) + else: + self.vm0_testpmd.start_testpmd(VM_CORES_MASK) # Get VF's MAC pmd_vf0_mac = self.vm0_testpmd.get_port_mac(0) self.vm0_testpmd.execute_cmd("set promisc all off") @@ -242,7 +262,17 @@ class TestVfMacFilter(TestCase): def send_packet_and_verify(self): self.vm0_dut_ports = self.vm_dut_0.get_ports("any") self.vm0_testpmd = PmdOutput(self.vm_dut_0) - self.vm0_testpmd.start_testpmd(VM_CORES_MASK) + if self.dcf_mode == "enable": + self.vm0_testpmd.start_testpmd( + VM_CORES_MASK, + ports=[self.vf0_guest_pci, self.vf1_guest_pci], + port_options={ + self.vf0_guest_pci: "cap=dcf", + self.vf1_guest_pci: "cap=dcf", + }, + ) + else: + self.vm0_testpmd.start_testpmd(VM_CORES_MASK) # Get VF0 port MAC address pmd_vf0_mac = self.vm0_testpmd.get_port_mac(0) diff --git a/tests/TestSuite_vf_offload.py b/tests/TestSuite_vf_offload.py index 4dd05cac..b6e96018 100644 --- a/tests/TestSuite_vf_offload.py +++ b/tests/TestSuite_vf_offload.py @@ -9,7 +9,7 @@ import time import framework.utils as utils from framework.crb import Crb from framework.pmd_output import PmdOutput -from framework.settings import HEADER_SIZE +from framework.settings import DPDK_DCFMODE_SETTING, HEADER_SIZE, load_global_setting from framework.test_case import TestCase from framework.utils import GREEN, RED from framework.virt_common import VM @@ -39,6 +39,7 @@ class TestVfOffload(TestCase): else: self.vf_assign_method = "vfio-pci" self.dut.send_expect("modprobe vfio-pci", "#") + self.dcf_mode = load_global_setting(DPDK_DCFMODE_SETTING) self.setup_2pf_2vf_1vm_env_flag = 0 self.setup_2pf_2vf_1vm_env(driver="") @@ -67,6 +68,11 @@ class TestVfOffload(TestCase): self.used_dut_port_1 = self.dut_ports[1] self.dut.generate_sriov_vfs_by_port(self.used_dut_port_1, 1, driver=driver) self.sriov_vfs_port_1 = self.dut.ports_info[self.used_dut_port_1]["vfs_port"] + pf_intf0 = self.dut.ports_info[0]["port"].get_interface_name() + pf_intf1 = self.dut.ports_info[1]["port"].get_interface_name() + if self.dcf_mode == "enable": + self.dut.send_expect("ip link set %s vf 0 trust on" % (pf_intf0), "# ") + self.dut.send_expect("ip link set %s vf 0 trust on" % (pf_intf1), "# ") try: @@ -92,6 +98,8 @@ class TestVfOffload(TestCase): self.vm_dut_0 = self.vm0.start() if self.vm_dut_0 is None: raise Exception("Set up VM0 ENV failed!") + self.vf0_guest_pci = self.vm0.pci_maps[0]["guestpci"] + self.vf1_guest_pci = self.vm0.pci_maps[1]["guestpci"] self.setup_2pf_2vf_1vm_env_flag = 1 except Exception as e: @@ -249,13 +257,27 @@ class TestVfOffload(TestCase): can rx it and report the checksum error, verify forwarded packets have correct checksum. """ - self.vm0_testpmd.start_testpmd( - VM_CORES_MASK, - "--portmask=%s " % (self.portMask) - + "--enable-rx-cksum " - + "" - + "--port-topology=loop", - ) + if self.dcf_mode == "enable": + self.vm0_testpmd.start_testpmd( + VM_CORES_MASK, + "--portmask=%s " % (self.portMask) + + "--enable-rx-cksum " + + "" + + "--port-topology=loop", + ports=[self.vf0_guest_pci, self.vf1_guest_pci], + port_options={ + self.vf0_guest_pci: "cap=dcf", + self.vf1_guest_pci: "cap=dcf", + }, + ) + else: + self.vm0_testpmd.start_testpmd( + VM_CORES_MASK, + "--portmask=%s " % (self.portMask) + + "--enable-rx-cksum " + + "" + + "--port-topology=loop", + ) self.vm0_testpmd.execute_cmd("set fwd csum") time.sleep(2) @@ -312,12 +334,27 @@ class TestVfOffload(TestCase): Send same packet with incorrect checksum and verify checksum is valid. """ - self.vm0_testpmd.start_testpmd( - VM_CORES_MASK, - "--portmask=%s " % (self.portMask) - + "--enable-rx-cksum " - + "--port-topology=loop", - ) + if self.dcf_mode == "enable": + self.vm0_testpmd.start_testpmd( + VM_CORES_MASK, + "--portmask=%s " % (self.portMask) + + "--enable-rx-cksum " + + "" + + "--port-topology=loop", + ports=[self.vf0_guest_pci, self.vf1_guest_pci], + port_options={ + self.vf0_guest_pci: "cap=dcf", + self.vf1_guest_pci: "cap=dcf", + }, + ) + else: + self.vm0_testpmd.start_testpmd( + VM_CORES_MASK, + "--portmask=%s " % (self.portMask) + + "--enable-rx-cksum " + + "" + + "--port-topology=loop", + ) self.vm0_testpmd.execute_cmd("set fwd csum") time.sleep(2) @@ -451,10 +488,21 @@ class TestVfOffload(TestCase): ) self.portMask = utils.create_mask([self.vm0_dut_ports[0]]) - self.vm0_testpmd.start_testpmd( - VM_CORES_MASK, - "--portmask=0x3 " + "--enable-rx-cksum " + "--max-pkt-len=%s" % TSO_MTU, - ) + if self.dcf_mode == "enable": + self.vm0_testpmd.start_testpmd( + VM_CORES_MASK, + "--portmask=0x3 " + "--enable-rx-cksum " + "--max-pkt-len=%s" % TSO_MTU, + ports=[self.vf0_guest_pci, self.vf1_guest_pci], + port_options={ + self.vf0_guest_pci: "cap=dcf", + self.vf1_guest_pci: "cap=dcf", + }, + ) + else: + self.vm0_testpmd.start_testpmd( + VM_CORES_MASK, + "--portmask=0x3 " + "--enable-rx-cksum " + "--max-pkt-len=%s" % TSO_MTU, + ) mac = self.vm0_testpmd.get_port_mac(0) diff --git a/tests/TestSuite_vf_rss.py b/tests/TestSuite_vf_rss.py index 3c97e1fe..b6359987 100644 --- a/tests/TestSuite_vf_rss.py +++ b/tests/TestSuite_vf_rss.py @@ -15,6 +15,7 @@ reta_entries = [] reta_lines = [] from framework.pmd_output import PmdOutput +from framework.settings import DPDK_DCFMODE_SETTING, load_global_setting # Use scapy to send packets with different source and dest ip. # and collect the hash result of five tuple and the queue id. @@ -289,6 +290,7 @@ class TestVfRss(TestCase): self.vm0 = None self.host_testpmd = None self.setup_1pf_1vf_1vm_env_flag = 0 + self.dcf_mode = load_global_setting(DPDK_DCFMODE_SETTING) self.setup_1pf_1vf_1vm_env(driver="") def set_up(self): @@ -302,6 +304,9 @@ class TestVfRss(TestCase): self.used_dut_port_0 = self.dut_ports[0] self.dut.generate_sriov_vfs_by_port(self.used_dut_port_0, 1, driver=driver) self.sriov_vfs_port_0 = self.dut.ports_info[self.used_dut_port_0]["vfs_port"] + pf_intf0 = self.dut.ports_info[0]["port"].get_interface_name() + if self.dcf_mode == "enable": + self.dut.send_expect("ip link set %s vf 0 trust on" % (pf_intf0), "# ") try: for port in self.sriov_vfs_port_0: @@ -322,6 +327,7 @@ class TestVfRss(TestCase): self.vm_dut_0 = self.vm0.start() if self.vm_dut_0 is None: raise Exception("Set up VM0 ENV failed!") + self.vf0_guest_pci = self.vm0.pci_maps[0]["guestpci"] self.vm0_testpmd = PmdOutput(self.vm_dut_0) @@ -381,11 +387,20 @@ class TestVfRss(TestCase): eal_param = "" for queue in testQueues: - self.vm0_testpmd.start_testpmd( - "all", - "--rxq=%d --txq=%d %s" % (queue, queue, eal_param), - socket=self.vm0_ports_socket, - ) + if self.dcf_mode == "enable": + self.vm0_testpmd.start_testpmd( + "all", + "--rxq=%d --txq=%d %s" % (queue, queue, eal_param), + ports=[self.vf0_guest_pci], + port_options={self.vf0_guest_pci: "cap=dcf"}, + socket=self.vm0_ports_socket, + ) + else: + self.vm0_testpmd.start_testpmd( + "all", + "--rxq=%d --txq=%d %s" % (queue, queue, eal_param), + socket=self.vm0_ports_socket, + ) for iptype, rss_type in list(iptypes.items()): self.vm_dut_0.send_expect("set verbose 8", "testpmd> ") @@ -453,11 +468,20 @@ class TestVfRss(TestCase): # test with different rss queues for queue in testQueues: - self.vm0_testpmd.start_testpmd( - "all", - "--rxq=%d --txq=%d %s" % (queue, queue, eal_param), - socket=self.vm0_ports_socket, - ) + if self.dcf_mode == "enable": + self.vm0_testpmd.start_testpmd( + "all", + "--rxq=%d --txq=%d %s" % (queue, queue, eal_param), + ports=[self.vf0_guest_pci], + port_options={self.vf0_guest_pci: "cap=dcf"}, + socket=self.vm0_ports_socket, + ) + else: + self.vm0_testpmd.start_testpmd( + "all", + "--rxq=%d --txq=%d %s" % (queue, queue, eal_param), + socket=self.vm0_ports_socket, + ) for iptype, rsstype in list(iptypes.items()): self.vm_dut_0.send_expect("set verbose 8", "testpmd> ") diff --git a/tests/TestSuite_vf_smoke.py b/tests/TestSuite_vf_smoke.py index b19160c6..9faba9dd 100644 --- a/tests/TestSuite_vf_smoke.py +++ b/tests/TestSuite_vf_smoke.py @@ -4,6 +4,7 @@ from framework.packet import Packet from framework.pmd_output import PmdOutput +from framework.settings import DPDK_DCFMODE_SETTING, load_global_setting from framework.test_case import TestCase from .smoke_base import ( @@ -60,11 +61,16 @@ class TestVfSmoke(TestCase): self.vf0_prop = {"opt_host": self.vf_ports[0].pci} self.dut.send_expect("ifconfig %s up" % self.pf_interface, "# ") self.tester.send_expect("ifconfig %s up" % self.smoke_tester_nic, "# ") + self.dcf_mode = load_global_setting(DPDK_DCFMODE_SETTING) # set vf mac address self.dut.send_expect( "ip link set %s vf 0 mac %s" % (self.pf_interface, self.smoke_dut_mac), "# " ) + if self.dcf_mode == "enable": + self.dut.send_expect( + "ip link set %s vf 0 trust on" % (self.pf_interface), "# " + ) # set default app parameter if self.vf0_prop is not None: @@ -100,7 +106,17 @@ class TestVfSmoke(TestCase): self.vf_launch_dpdk_app() def vf_launch_dpdk_app(self): - self.pmd_out.start_testpmd(cores=self.cores, ports=self.ports, param=self.param) + if self.dcf_mode == "enable": + self.pmd_out.start_testpmd( + cores=self.cores, + ports=self.ports, + port_options={port: "cap=dcf" for port in self.ports}, + param=self.param, + ) + else: + self.pmd_out.start_testpmd( + cores=self.cores, ports=self.ports, param=self.param + ) # set default param self.dut.send_expect("set promisc all off", "testpmd> ") diff --git a/tests/TestSuite_vf_vlan.py b/tests/TestSuite_vf_vlan.py index c4904c55..e160b737 100644 --- a/tests/TestSuite_vf_vlan.py +++ b/tests/TestSuite_vf_vlan.py @@ -9,7 +9,7 @@ import time import framework.utils as utils from framework.packet import Packet from framework.pmd_output import PmdOutput -from framework.settings import get_nic_name +from framework.settings import DPDK_DCFMODE_SETTING, get_nic_name, load_global_setting from framework.test_case import TestCase from framework.virt_common import VM @@ -48,6 +48,7 @@ class TestVfVlan(TestCase): # get priv-flags default stats self.flag = "vf-vlan-pruning" self.default_stats = self.dut.get_priv_flags_state(self.host_intf0, self.flag) + self.dcf_mode = load_global_setting(DPDK_DCFMODE_SETTING) def set_up(self): self.setup_vm_env() @@ -87,6 +88,10 @@ class TestVfVlan(TestCase): self.dut.send_expect( "ip link set %s vf 0 mac %s" % (self.host_intf0, self.vf0_mac), "# " ) + if self.dcf_mode == "enable": + self.dut.send_expect( + "ip link set %s vf 0 trust on" % (self.host_intf0), "# " + ) self.used_dut_port_1 = self.dut_ports[1] self.host_intf1 = self.dut.ports_info[self.used_dut_port_1]["intf"] @@ -103,6 +108,10 @@ class TestVfVlan(TestCase): self.dut.send_expect( "ip link set %s vf 0 mac %s" % (self.host_intf1, self.vf1_mac), "# " ) + if self.dcf_mode == "enable": + self.dut.send_expect( + "ip link set %s vf 0 trust on" % (self.host_intf1), "# " + ) try: @@ -123,6 +132,8 @@ class TestVfVlan(TestCase): self.vm_dut_0 = self.vm0.start() if self.vm_dut_0 is None: raise Exception("Set up VM0 ENV failed!") + self.vf0_guest_pci = self.vm0.pci_maps[0]["guestpci"] + self.vf1_guest_pci = self.vm0.pci_maps[1]["guestpci"] except Exception as e: self.destroy_vm_env() @@ -170,7 +181,17 @@ class TestVfVlan(TestCase): self.vm0_dut_ports = self.vm_dut_0.get_ports("any") self.vm0_testpmd = PmdOutput(self.vm_dut_0) - self.vm0_testpmd.start_testpmd(VM_CORES_MASK) + if self.dcf_mode == "enable": + self.vm0_testpmd.start_testpmd( + VM_CORES_MASK, + ports=[self.vf0_guest_pci, self.vf1_guest_pci], + port_options={ + self.vf0_guest_pci: "cap=dcf", + self.vf1_guest_pci: "cap=dcf", + }, + ) + else: + self.vm0_testpmd.start_testpmd(VM_CORES_MASK) self.vm0_testpmd.execute_cmd("set fwd mac") self.vm0_testpmd.execute_cmd("start") @@ -214,7 +235,17 @@ class TestVfVlan(TestCase): self.vm0_dut_ports = self.vm_dut_0.get_ports("any") self.vm0_testpmd = PmdOutput(self.vm_dut_0) - self.vm0_testpmd.start_testpmd(VM_CORES_MASK) + if self.dcf_mode == "enable": + self.vm0_testpmd.start_testpmd( + VM_CORES_MASK, + ports=[self.vf0_guest_pci, self.vf1_guest_pci], + port_options={ + self.vf0_guest_pci: "cap=dcf", + self.vf1_guest_pci: "cap=dcf", + }, + ) + else: + self.vm0_testpmd.start_testpmd(VM_CORES_MASK) self.vm0_testpmd.execute_cmd("set fwd rxonly") self.vm0_testpmd.execute_cmd("set verbose 1") self.vm0_testpmd.execute_cmd("start") @@ -248,6 +279,7 @@ class TestVfVlan(TestCase): (self.kdriver == "i40e" and self.driver_version < "2.13.10") or (self.kdriver == "i40e" and not self.default_stats) or (self.kdriver == "ice" and not self.default_stats) + or self.dcf_mode == "enable" ): self.verify("received" in out, "Failed to received vlan packet!!!") else: @@ -289,7 +321,17 @@ class TestVfVlan(TestCase): self.vm0_dut_ports = self.vm_dut_0.get_ports("any") self.vm0_testpmd = PmdOutput(self.vm_dut_0) - self.vm0_testpmd.start_testpmd(VM_CORES_MASK) + if self.dcf_mode == "enable": + self.vm0_testpmd.start_testpmd( + VM_CORES_MASK, + ports=[self.vf0_guest_pci, self.vf1_guest_pci], + port_options={ + self.vf0_guest_pci: "cap=dcf", + self.vf1_guest_pci: "cap=dcf", + }, + ) + else: + self.vm0_testpmd.start_testpmd(VM_CORES_MASK) self.vm0_testpmd.execute_cmd("set verbose 1") for tx_vlan in tx_vlans: @@ -314,7 +356,18 @@ class TestVfVlan(TestCase): self.vm0_dut_ports = self.vm_dut_0.get_ports("any") self.vm0_testpmd = PmdOutput(self.vm_dut_0) - self.vm0_testpmd.start_testpmd(VM_CORES_MASK) + if self.dcf_mode == "enable": + self.vm0_testpmd.start_testpmd( + VM_CORES_MASK, + ports=[self.vf0_guest_pci, self.vf1_guest_pci], + port_options={ + self.vf0_guest_pci: "cap=dcf", + self.vf1_guest_pci: "cap=dcf", + }, + eal_param="--force-max-simd-bitwidth=64", + ) + else: + self.vm0_testpmd.start_testpmd(VM_CORES_MASK) self.vm0_testpmd.execute_cmd("set fwd rxonly") self.vm0_testpmd.execute_cmd("set verbose 1") self.vm0_testpmd.execute_cmd("vlan set strip on 0") @@ -393,8 +446,16 @@ class TestVfVlan(TestCase): self.vm0_dut_ports = self.vm_dut_0.get_ports("any") self.vm0_testpmd = PmdOutput(self.vm_dut_0) - if self.kdriver == "i40e": - self.vm0_testpmd.start_testpmd(VM_CORES_MASK, "") + if self.dcf_mode == "enable": + self.vm0_testpmd.start_testpmd( + VM_CORES_MASK, + ports=[self.vf0_guest_pci, self.vf1_guest_pci], + port_options={ + self.vf0_guest_pci: "cap=dcf", + self.vf1_guest_pci: "cap=dcf", + }, + eal_param="--force-max-simd-bitwidth=64", + ) else: self.vm0_testpmd.start_testpmd(VM_CORES_MASK) self.vm0_testpmd.execute_cmd("set fwd rxonly")