diff options
Diffstat (limited to 'vswitches/vpp_dpdk_vhost.py')
-rw-r--r-- | vswitches/vpp_dpdk_vhost.py | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/vswitches/vpp_dpdk_vhost.py b/vswitches/vpp_dpdk_vhost.py index 5d676a01..f88ed95e 100644 --- a/vswitches/vpp_dpdk_vhost.py +++ b/vswitches/vpp_dpdk_vhost.py @@ -37,8 +37,12 @@ class VppDpdkVhost(IVSwitch, tasks.Process): """See IVswitch for general description """ super().__init__() - self._logfile = os.path.join(S.getValue('LOG_DIR'), - S.getValue('LOG_FILE_VPP')) + name, ext = os.path.splitext(S.getValue('LOG_FILE_VPP')) + rename_vpplf = "{name}_{uid}{ex}".format(name=name, + uid=S.getValue( + 'LOG_TIMESTAMP'), + ex=ext) + self._logfile = os.path.join(S.getValue('RESULTS_PATH'), rename_vpplf) self._expect = r'vpp#' self._cmd_template = ['sudo', '-E', S.getValue('TOOLS')['vpp']] self._phy_ports = [] @@ -100,12 +104,20 @@ class VppDpdkVhost(IVSwitch, tasks.Process): tmpif = iface.split() if not tmpif: continue + if 'Link' in iface or 'local' in iface: + continue # get PCI address of given interface output = self.run_vppctl(['show', 'hardware', tmpif[1], 'detail']) - match = re.search(r'pci address:\s*([\d:\.]+)', output[0]) + lines = output[0].split('\n') + #match = re.search(r'pci address:\s*([\d:\.]+)', output[0]) + match = '' + for line in lines: + if "pci:" in line: + match = line.split(' ')[6] if match: # normalize PCI address, e.g. 0000:05:10.01 => 0000:05:10.1 - tmp_pci = match.group(1).split('.') + tmp_pci = match.split('.') + # tmp_pci = match.group(1).split('.') tmp_pci[1] = str(int(tmp_pci[1])) tmpif.append('.'.join(tmp_pci)) else: @@ -450,4 +462,4 @@ class VppDpdkVhost(IVSwitch, tasks.Process): def get_ports(self, switch_name): """See IVswitch for general description """ - raise NotImplementedError() + return self._phy_ports |