From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 294B12661 for ; Thu, 12 Oct 2017 03:50:10 +0200 (CEST) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Oct 2017 18:50:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.43,363,1503385200"; d="scan'208";a="137639101" Received: from yuweizh1-mobl2.ccr.corp.intel.com ([10.67.68.32]) by orsmga004.jf.intel.com with ESMTP; 11 Oct 2017 18:50:08 -0700 From: Yuwei Zhang To: dts@dpdk.org Cc: Yuwei Zhang Date: Thu, 12 Oct 2017 09:50:06 +0800 Message-Id: <20171012015006.17400-1-yuwei1.zhang@intel.com> X-Mailer: git-send-email 2.14.1.windows.1 Subject: [dts] [PATCH V2] support configured pass-through method to all the VF related test suites X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Oct 2017 01:50:11 -0000 All the VF related test suites load VF pass-through method from global configuration, by default will be pci-assign pass-through. Signed-off-by: Yuwei Zhang --- tests/TestSuite_vf_jumboframe.py | 17 +++++++++++++++-- tests/TestSuite_vf_macfilter.py | 21 +++++++++++++++++---- tests/TestSuite_vf_offload.py | 23 +++++++++++++++++++---- 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, 115 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..2cb402b 100644 --- a/tests/TestSuite_vf_offload.py +++ b/tests/TestSuite_vf_offload.py @@ -16,16 +16,31 @@ 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 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 +56,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 +74,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