* [dts][PATCH V3 1/3] framework/*:add config dcf mode in execution file
@ 2022-09-02 10:18 Zhimin Huang
2022-09-02 10:18 ` [dts][PATCH V3 2/3] test_plans/*:add 22.07 new feature, support in dcf mode Zhimin Huang
2022-09-02 10:18 ` [dts][PATCH V3 3/3] tests/*:add " Zhimin Huang
0 siblings, 2 replies; 3+ messages in thread
From: Zhimin Huang @ 2022-09-02 10:18 UTC (permalink / raw)
To: dts; +Cc: Zhimin Huang
add dcf_mode parm into execution file configuration.
if take dcf mode,add dcf_mode=enable into execution.cfg.
Signed-off-by: Zhimin Huang <zhiminx.huang@intel.com>
---
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"
--
2.17.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [dts][PATCH V3 2/3] test_plans/*:add 22.07 new feature, support in dcf mode
2022-09-02 10:18 [dts][PATCH V3 1/3] framework/*:add config dcf mode in execution file Zhimin Huang
@ 2022-09-02 10:18 ` Zhimin Huang
2022-09-02 10:18 ` [dts][PATCH V3 3/3] tests/*:add " Zhimin Huang
1 sibling, 0 replies; 3+ messages in thread
From: Zhimin Huang @ 2022-09-02 10:18 UTC (permalink / raw)
To: dts; +Cc: Zhimin Huang
add description for support dcf case.
1.set vf trust on.
2.start up testpmd with dcf parm.
Signed-off-by: Zhimin Huang <zhiminx.huang@intel.com>
---
test_plans/kernelpf_iavf_test_plan.rst | 12 ++++++++++++
test_plans/vf_macfilter_test_plan.rst | 16 ++++++++++++++++
test_plans/vf_offload_test_plan.rst | 14 ++++++++++++++
| 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::
./<build_target>/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
+
+ ./<build_target>/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
--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
======================================
--
2.17.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [dts][PATCH V3 3/3] tests/*:add 22.07 new feature, support in dcf mode
2022-09-02 10:18 [dts][PATCH V3 1/3] framework/*:add config dcf mode in execution file Zhimin Huang
2022-09-02 10:18 ` [dts][PATCH V3 2/3] test_plans/*:add 22.07 new feature, support in dcf mode Zhimin Huang
@ 2022-09-02 10:18 ` Zhimin Huang
1 sibling, 0 replies; 3+ messages in thread
From: Zhimin Huang @ 2022-09-02 10:18 UTC (permalink / raw)
To: dts; +Cc: Zhimin Huang
modify test case code to support dcf.
Signed-off-by: Zhimin Huang <zhiminx.huang@intel.com>
---
tests/TestSuite_kernelpf_iavf.py | 146 +++++++++++++++++++++++++++----
tests/TestSuite_vf_macfilter.py | 34 ++++++-
tests/TestSuite_vf_offload.py | 84 ++++++++++++++----
| 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)
--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")
--
2.17.1
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-09-02 2:03 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-02 10:18 [dts][PATCH V3 1/3] framework/*:add config dcf mode in execution file Zhimin Huang
2022-09-02 10:18 ` [dts][PATCH V3 2/3] test_plans/*:add 22.07 new feature, support in dcf mode Zhimin Huang
2022-09-02 10:18 ` [dts][PATCH V3 3/3] tests/*:add " Zhimin Huang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).