[dts] [PATCH V1] add some vfio-pci assign cases to all the vf test suites.
Yuwei Zhang
yuwei1.zhang at intel.com
Mon Oct 9 09:43:24 CEST 2017
Add test cases that use vfio-pci assign method to pass-through VFs to vm in all the VF related test suites,
dts will read a global conf variable to determine the assign method(pci-assign or vfio-pci).
Signed-off-by: Yuwei Zhang <yuwei1.zhang at intel.com>
---
tests/TestSuite_vf_jumboframe.py | 17 +++++++++++++++--
tests/TestSuite_vf_macfilter.py | 21 +++++++++++++++++----
tests/TestSuite_vf_offload.py | 25 +++++++++++++++++++++----
tests/TestSuite_vf_port_start_stop.py | 19 ++++++++++++++++---
tests/TestSuite_vf_rss.py | 17 +++++++++++++++--
tests/TestSuite_vf_to_vf_nic_bridge.py | 19 ++++++++++++++++---
tests/TestSuite_vf_vlan.py | 21 +++++++++++++++++----
7 files changed, 117 insertions(+), 22 deletions(-)
diff --git a/tests/TestSuite_vf_jumboframe.py b/tests/TestSuite_vf_jumboframe.py
index d7241ff..7a62a50 100644
--- a/tests/TestSuite_vf_jumboframe.py
+++ b/tests/TestSuite_vf_jumboframe.py
@@ -19,6 +19,8 @@ ETHER_JUMBO_FRAME_MTU = 9000
class TestVfJumboFrame(TestCase):
+ supported_vf_driver = ['pci-stub', 'vfio-pci']
+
def set_up_all(self):
self.dut_ports = self.dut.get_ports(self.nic)
@@ -30,6 +32,17 @@ class TestVfJumboFrame(TestCase):
self.vm_port = 0
cores = self.dut.get_core_list("1S/1C/1T")
self.port_mask = utils.create_mask([self.port])
+
+ # set vf assign method and vf driver
+ self.dut.send_expect('modprobe vfio-pci', '#')
+ self.vf_driver = self.get_suite_cfg()['vf_driver']
+ if self.vf_driver is None:
+ self.vf_driver = 'pci-stub'
+ self.verify(self.vf_driver in self.supported_vf_driver, "Unspported vf driver")
+ if self.vf_driver == 'pci-stub':
+ self.vf_assign_method = 'pci-assign'
+ else:
+ self.vf_assign_method = 'vfio-pci'
# enable tester mtu
tester_port = self.tester.get_local_port(self.port)
@@ -91,14 +104,14 @@ class TestVfJumboFrame(TestCase):
try:
for port in self.sriov_vfs_port:
- port.bind_driver('pci-stub')
+ port.bind_driver(self.vf_driver)
time.sleep(1)
vf_popt = {'opt_host': self.sriov_vfs_port[0].pci}
# set up VM ENV
self.vm = QEMUKvm(self.dut, 'vm0', 'vf_jumboframe')
- self.vm.set_vm_device(driver='pci-assign', **vf_popt)
+ self.vm.set_vm_device(driver=self.vf_assign_method, **vf_popt)
self.vm_dut = self.vm.start()
if self.vm_dut is None:
raise Exception("Set up VM ENV failed!")
diff --git a/tests/TestSuite_vf_macfilter.py b/tests/TestSuite_vf_macfilter.py
index 09611bf..ec290a7 100644
--- a/tests/TestSuite_vf_macfilter.py
+++ b/tests/TestSuite_vf_macfilter.py
@@ -12,6 +12,8 @@ VM_CORES_MASK = 'all'
class TestVfMacFilter(TestCase):
+ supported_vf_driver = ['pci-stub', 'vfio-pci']
+
def set_up_all(self):
self.dut_ports = self.dut.get_ports(self.nic)
self.verify(len(self.dut_ports) > 1, "Insufficient ports")
@@ -19,6 +21,17 @@ class TestVfMacFilter(TestCase):
self.pf0_vf0_mac = "00:12:34:56:78:01"
self.iplinkset = True
+ # set vf assign method and vf driver
+ self.vf_driver = self.get_suite_cfg()['vf_driver']
+ if self.vf_driver is None:
+ self.vf_driver = 'pci-stub'
+ self.verify(self.vf_driver in self.supported_vf_driver, "Unspported vf driver")
+ if self.vf_driver == 'pci-stub':
+ self.vf_assign_method = 'pci-assign'
+ else:
+ self.vf_assign_method = 'vfio-pci'
+ self.tester.send_expect('modprobe vfio-pci', '#')
+
def set_up(self):
self.setup_2pf_2vf_1vm_env_flag = 0
@@ -41,10 +54,10 @@ class TestVfMacFilter(TestCase):
try:
for port in self.sriov_vfs_port_0:
- port.bind_driver('pci-stub')
+ port.bind_driver(self.vf_driver)
for port in self.sriov_vfs_port_1:
- port.bind_driver('pci-stub')
+ port.bind_driver(self.vf_driver)
time.sleep(1)
vf0_prop = {'opt_host': self.sriov_vfs_port_0[0].pci}
@@ -59,8 +72,8 @@ class TestVfMacFilter(TestCase):
# set up VM0 ENV
self.vm0 = QEMUKvm(self.dut, 'vm0', 'vf_macfilter')
- self.vm0.set_vm_device(driver='pci-assign', **vf0_prop)
- self.vm0.set_vm_device(driver='pci-assign', **vf1_prop)
+ self.vm0.set_vm_device(driver=self.vf_assign_method, **vf0_prop)
+ self.vm0.set_vm_device(driver=self.vf_assign_method, **vf1_prop)
self.vm_dut_0 = self.vm0.start()
if self.vm_dut_0 is None:
raise Exception("Set up VM0 ENV failed!")
diff --git a/tests/TestSuite_vf_offload.py b/tests/TestSuite_vf_offload.py
index ed6d106..f447c69 100644
--- a/tests/TestSuite_vf_offload.py
+++ b/tests/TestSuite_vf_offload.py
@@ -16,16 +16,33 @@ VM_CORES_MASK = 'all'
class TestVfOffload(TestCase):
+ supported_vf_driver = ['pci-stub', 'vfio-pci']
+
def set_up_all(self):
self.dut_ports = self.dut.get_ports(self.nic)
self.verify(len(self.dut_ports) > 1, "Insufficient ports")
self.vm0 = None
+
+ # set vf assign method and vf driver
+ self.vf_driver = self.get_suite_cfg()['vf_driver']
+ if self.vf_driver is None:
+ self.vf_driver = 'pci-stub'
+ self.verify(self.vf_driver in self.supported_vf_driver, "Unspported vf driver")
+ if self.vf_driver == 'pci-stub':
+ self.vf_assign_method = 'pci-assign'
+ else:
+ self.vf_assign_method = 'vfio-pci'
+ self.tester.send_expect('modprobe vfio-pci', '#')
+
self.setup_2pf_2vf_1vm_env_flag = 0
+ import pdb
+ pdb.set_trace()
self.setup_2pf_2vf_1vm_env(driver='')
self.vm0_dut_ports = self.vm_dut_0.get_ports('any')
self.portMask = utils.create_mask([self.vm0_dut_ports[0]])
self.vm0_testpmd = PmdOutput(self.vm_dut_0)
+
def set_up(self):
pass
@@ -41,10 +58,10 @@ class TestVfOffload(TestCase):
try:
for port in self.sriov_vfs_port_0:
- port.bind_driver('pci-stub')
+ port.bind_driver(self.vf_driver)
for port in self.sriov_vfs_port_1:
- port.bind_driver('pci-stub')
+ port.bind_driver(self.vf_driver)
time.sleep(1)
vf0_prop = {'opt_host': self.sriov_vfs_port_0[0].pci}
@@ -59,8 +76,8 @@ class TestVfOffload(TestCase):
# set up VM0 ENV
self.vm0 = QEMUKvm(self.dut, 'vm0', 'vf_offload')
- self.vm0.set_vm_device(driver='pci-assign', **vf0_prop)
- self.vm0.set_vm_device(driver='pci-assign', **vf1_prop)
+ self.vm0.set_vm_device(driver=self.vf_assign_method, **vf0_prop)
+ self.vm0.set_vm_device(driver=self.vf_assign_method, **vf1_prop)
self.vm_dut_0 = self.vm0.start()
if self.vm_dut_0 is None:
raise Exception("Set up VM0 ENV failed!")
diff --git a/tests/TestSuite_vf_port_start_stop.py b/tests/TestSuite_vf_port_start_stop.py
index 9e2e47c..5629f8c 100644
--- a/tests/TestSuite_vf_port_start_stop.py
+++ b/tests/TestSuite_vf_port_start_stop.py
@@ -14,6 +14,8 @@ VM_CORES_MASK = 'all'
class TestVfPortStartStop(TestCase):
+ supported_vf_driver = ['pci-stub', 'vfio-pci']
+
def set_up_all(self):
self.dut_ports = self.dut.get_ports(self.nic)
@@ -21,6 +23,17 @@ class TestVfPortStartStop(TestCase):
self.vm0 = None
self.filename = "/tmp/vf.pcap"
+ # set vf assign method and vf driver
+ self.vf_driver = self.get_suite_cfg()['vf_driver']
+ if self.vf_driver is None:
+ self.vf_driver = 'pci-stub'
+ self.verify(self.vf_driver in self.supported_vf_driver, "Unspported vf driver")
+ if self.vf_driver == 'pci-stub':
+ self.vf_assign_method = 'pci-assign'
+ else:
+ self.vf_assign_method = 'vfio-pci'
+ self.tester.send_expect('modprobe vfio-pci', '#')
+
def set_up(self):
self.setup_1pf_2vf_1vm_env_flag = 0
@@ -152,7 +165,7 @@ class TestVfPortStartStop(TestCase):
try:
for port in self.sriov_vfs_port:
- port.bind_driver('pci-stub')
+ port.bind_driver(self.vf_driver)
time.sleep(1)
@@ -168,8 +181,8 @@ class TestVfPortStartStop(TestCase):
# set up VM0 ENV
self.vm0 = QEMUKvm(self.dut, 'vm0', 'vf_port_start_stop')
- self.vm0.set_vm_device(driver='pci-assign', **vf0_prop)
- self.vm0.set_vm_device(driver='pci-assign', **vf1_prop)
+ self.vm0.set_vm_device(driver=self.vf_assign_method, **vf0_prop)
+ self.vm0.set_vm_device(driver=self.vf_assign_method, **vf1_prop)
self.vm_dut_0 = self.vm0.start()
if self.vm_dut_0 is None:
raise Exception("Set up VM0 ENV failed!")
diff --git a/tests/TestSuite_vf_rss.py b/tests/TestSuite_vf_rss.py
index 6e2ff97..33591b5 100644
--- a/tests/TestSuite_vf_rss.py
+++ b/tests/TestSuite_vf_rss.py
@@ -47,6 +47,9 @@ from pmd_output import PmdOutput
from qemu_kvm import QEMUKvm
class TestVfRss(TestCase):
+
+ supported_vf_driver = ['pci-stub', 'vfio-pci']
+
def send_packet(self, itf, tran_type):
"""
Sends packets.
@@ -218,6 +221,16 @@ class TestVfRss(TestCase):
self.dut_ports = self.dut.get_ports(self.nic)
self.verify(len(self.dut_ports) >= 1, "Not enough ports available")
+ # set vf assign method and vf driver
+ self.vf_driver = self.get_suite_cfg()['vf_driver']
+ if self.vf_driver is None:
+ self.vf_driver = 'pci-stub'
+ self.verify(self.vf_driver in self.supported_vf_driver, "Unspported vf driver")
+ if self.vf_driver == 'pci-stub':
+ self.vf_assign_method = 'pci-assign'
+ else:
+ self.vf_assign_method = 'vfio-pci'
+
self.vm0 = None
self.host_testpmd = None
self.setup_1pf_1vf_1vm_env_flag = 0
@@ -237,7 +250,7 @@ class TestVfRss(TestCase):
try:
for port in self.sriov_vfs_port_0:
- port.bind_driver('pci-stub')
+ port.bind_driver(self.vf_driver)
time.sleep(1)
vf0_prot = {'opt_host': self.sriov_vfs_port_0[0].pci}
@@ -250,7 +263,7 @@ class TestVfRss(TestCase):
# set up VM0 ENV
self.vm0 = QEMUKvm(self.dut, 'vm0', 'vf_rss')
- self.vm0.set_vm_device(driver='pci-assign', **vf0_prot)
+ self.vm0.set_vm_device(driver=self.vf_assign_method, **vf0_prot)
self.vm_dut_0 = self.vm0.start()
if self.vm_dut_0 is None:
diff --git a/tests/TestSuite_vf_to_vf_nic_bridge.py b/tests/TestSuite_vf_to_vf_nic_bridge.py
index efdb9fb..c5b1cb6 100644
--- a/tests/TestSuite_vf_to_vf_nic_bridge.py
+++ b/tests/TestSuite_vf_to_vf_nic_bridge.py
@@ -49,12 +49,25 @@ SEND_PACKET = 100
class TestVF2VFBridge(TestCase):
+ supported_vf_driver = ['pci-stub', 'vfio-pci']
+
def set_up_all(self):
self.dut_ports = self.dut.get_ports(self.nic)
self.verify(len(self.dut_ports) >= 1, "Insufficient ports")
self.vm0 = None
self.vm1 = None
+ # set vf assign method and vf driver
+ self.vf_driver = self.get_suite_cfg()['vf_driver']
+ if self.vf_driver is None:
+ self.vf_driver = 'pci-stub'
+ self.verify(self.vf_driver in self.supported_vf_driver, "Unspported vf driver")
+ if self.vf_driver == 'pci-stub':
+ self.vf_assign_method = 'pci-assign'
+ else:
+ self.vf_assign_method = 'vfio-pci'
+
+
def set_up(self):
self.set_up_vf_to_vf_env()
@@ -71,7 +84,7 @@ class TestVF2VFBridge(TestCase):
(self.host_port_intf, i, VF_TEMP_MAC % i), '#', 10)
try:
for port in self.sriov_vfs_ports:
- port.bind_driver('pci-stub')
+ port.bind_driver(self.vf_driver)
time.sleep(1)
except Exception as e:
raise Exception(e)
@@ -80,7 +93,7 @@ class TestVF2VFBridge(TestCase):
vf1_prop = {'opt_host': self.sriov_vfs_ports[1].pci}
time.sleep(1)
self.vm0 = QEMUKvm(self.dut, 'vm0', 'vf_to_vf_bridge')
- self.vm0.set_vm_device(driver='pci-assign', **vf0_prop)
+ self.vm0.set_vm_device(driver=self.vf_assign_method, **vf0_prop)
try:
self.vm0_dut = self.vm0.start()
if self.vm0_dut is None:
@@ -89,7 +102,7 @@ class TestVF2VFBridge(TestCase):
print utils.RED(str(e))
self.vm1 = QEMUKvm(self.dut, 'vm1', 'vf_to_vf_bridge')
- self.vm1.set_vm_device(driver='pci-assign', **vf1_prop)
+ self.vm1.set_vm_device(driver=self.vf_assign_method, **vf1_prop)
try:
self.vm1_dut = self.vm1.start()
if self.vm1_dut is None:
diff --git a/tests/TestSuite_vf_vlan.py b/tests/TestSuite_vf_vlan.py
index 90b1d13..ab64a15 100644
--- a/tests/TestSuite_vf_vlan.py
+++ b/tests/TestSuite_vf_vlan.py
@@ -16,6 +16,8 @@ MAX_VLAN = 4095
class TestVfVlan(TestCase):
+ supported_vf_driver = ['pci-stub', 'vfio-pci']
+
def set_up_all(self):
self.dut_ports = self.dut.get_ports(self.nic)
@@ -23,6 +25,17 @@ class TestVfVlan(TestCase):
self.vm0 = None
self.env_done = False
+ # set vf assign method and vf driver
+ self.vf_driver = self.get_suite_cfg()['vf_driver']
+ if self.vf_driver is None:
+ self.vf_driver = 'pci-stub'
+ self.verify(self.vf_driver in self.supported_vf_driver, "Unspported vf driver")
+ if self.vf_driver == 'pci-stub':
+ self.vf_assign_method = 'pci-assign'
+ else:
+ self.vf_assign_method = 'vfio-pci'
+
+
def set_up(self):
self.setup_vm_env()
@@ -90,10 +103,10 @@ class TestVfVlan(TestCase):
try:
for port in self.sriov_vfs_port_0:
- port.bind_driver('pci-stub')
+ port.bind_driver(self.vf_driver)
for port in self.sriov_vfs_port_1:
- port.bind_driver('pci-stub')
+ port.bind_driver(self.vf_driver)
time.sleep(1)
vf0_prop = {'opt_host': self.sriov_vfs_port_0[0].pci}
@@ -101,8 +114,8 @@ class TestVfVlan(TestCase):
# set up VM0 ENV
self.vm0 = QEMUKvm(self.dut, 'vm0', 'vf_vlan')
- self.vm0.set_vm_device(driver='pci-assign', **vf0_prop)
- self.vm0.set_vm_device(driver='pci-assign', **vf1_prop)
+ self.vm0.set_vm_device(driver=self.vf_assign_method, **vf0_prop)
+ self.vm0.set_vm_device(driver=self.vf_assign_method, **vf1_prop)
self.vm_dut_0 = self.vm0.start()
if self.vm_dut_0 is None:
raise Exception("Set up VM0 ENV failed!")
--
2.14.1.windows.1
More information about the dts
mailing list