From acdb444a54124834acdde45107062eaf1452c119 Mon Sep 17 00:00:00 2001 From: Martin Klozik Date: Thu, 8 Sep 2016 09:41:10 +0100 Subject: bugfix: SRIOV used wrong device names QemuPciPassthrough class responsible for SRIOV testing used wrong device names for GUEST configuration. Details of HOST interfaces connected to the traffic generator were used to initialize forwarding applications inside the guest. Code was fixed to use correct device configuration. As part of this fix, old bug in VNF type detection was fixed. JIRA: VSPERF-389 Change-Id: I269c9232012980c600c171571e90beb11e7b72cd Signed-off-by: Martin Klozik Reviewed-by: Maryam Tahhan Reviewed-by: Al Morton Reviewed-by: Christian Trautman Reviewed-by: Bill Michalowski --- vnfs/qemu/qemu_pci_passthrough.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'vnfs') diff --git a/vnfs/qemu/qemu_pci_passthrough.py b/vnfs/qemu/qemu_pci_passthrough.py index 951d6086..ba1f1010 100644 --- a/vnfs/qemu/qemu_pci_passthrough.py +++ b/vnfs/qemu/qemu_pci_passthrough.py @@ -39,7 +39,7 @@ class QemuPciPassthrough(IVnfQemu): """ super(QemuPciPassthrough, self).__init__() self._logger = logging.getLogger(__name__) - self._nics = S.getValue('NICS') + self._host_nics = S.getValue('NICS') # in case of SRIOV and PCI passthrough we must ensure, that MAC addresses are swapped if S.getValue('SRIOV_ENABLED') and not self._testpmd_fwd_mode.startswith('mac'): @@ -47,7 +47,7 @@ class QemuPciPassthrough(IVnfQemu): self._testpmd_fwd_mode, 'mac') self._testpmd_fwd_mode = 'mac' - for nic in self._nics: + for nic in self._host_nics: self._cmd += ['-device', 'vfio-pci,host=' + nic['pci']] def start(self): @@ -59,12 +59,12 @@ class QemuPciPassthrough(IVnfQemu): # bind every interface to vfio-pci driver try: - nics_list = list(tmp_nic['pci'] for tmp_nic in self._nics) + nics_list = list(tmp_nic['pci'] for tmp_nic in self._host_nics) tasks.run_task(['sudo', _RTE_PCI_TOOL, '--bind=vfio-pci'] + nics_list, self._logger, 'Binding NICs %s...' % nics_list, True) except subprocess.CalledProcessError: - self._logger.error('Unable to bind NICs %s', self._nics) + self._logger.error('Unable to bind NICs %s', self._host_nics) super(QemuPciPassthrough, self).start() @@ -75,7 +75,7 @@ class QemuPciPassthrough(IVnfQemu): super(QemuPciPassthrough, self).stop() # bind original driver to every interface - for nic in self._nics: + for nic in self._host_nics: if nic['driver']: try: tasks.run_task(['sudo', _RTE_PCI_TOOL, '--bind=' + nic['driver'], nic['pci']], -- cgit 1.2.3-korg