summaryrefslogtreecommitdiffstats
path: root/vswitches/vpp_dpdk_vhost.py
diff options
context:
space:
mode:
authorMartin Klozik <martinx.klozik@intel.com>2017-03-17 09:32:53 +0000
committerMartin Klozik <martinx.klozik@intel.com>2017-03-20 14:57:28 +0000
commit00ae14186c5292c04766321d02fc7f82668ee066 (patch)
tree65b15fc50a83f5a71261b916efb38444104f0b89 /vswitches/vpp_dpdk_vhost.py
parent023b29d33f11292a18af7f81c593f9f1642b3818 (diff)
vpp: Reporting update related to VPP
VSPERF reports were updated to contain vSwitch name. In case of VPP, it is not possible to read its version if VPP is not running. Thus VSPERF was enhanced to support tool version check during its runtime. This mechanism can be enhanced to support e.g. VNF in the future. JIRA: VSPERF-496 Change-Id: I74b47505e35340eead165d9b588e9cc15c058bbf Signed-off-by: Martin Klozik <martinx.klozik@intel.com> Reviewed-by: Al Morton <acmorton@att.com> Reviewed-by: Christian Trautman <ctrautma@redhat.com> Reviewed-by: Sridhar Rao <sridhar.rao@spirent.com> Reviewed-by: Trevor Cooper <trevor.cooper@intel.com>
Diffstat (limited to 'vswitches/vpp_dpdk_vhost.py')
-rw-r--r--vswitches/vpp_dpdk_vhost.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/vswitches/vpp_dpdk_vhost.py b/vswitches/vpp_dpdk_vhost.py
index d0d9e2ac..68375538 100644
--- a/vswitches/vpp_dpdk_vhost.py
+++ b/vswitches/vpp_dpdk_vhost.py
@@ -25,6 +25,7 @@ from src.dpdk import dpdk
from conf import settings as S
from vswitches.vswitch import IVSwitch
from tools import tasks
+from tools.version import Version
# pylint: disable=too-many-public-methods
class VppDpdkVhost(IVSwitch, tasks.Process):
@@ -110,7 +111,6 @@ class VppDpdkVhost(IVSwitch, tasks.Process):
self._logger.debug("VPP CLI args: %s", cli_args)
return cli_args
-
def start(self):
"""Activates DPDK kernel modules and starts VPP
@@ -156,6 +156,25 @@ class VppDpdkVhost(IVSwitch, tasks.Process):
# has not been terminated yet
tasks.Process.kill(self, signal, sleep)
+ def get_version(self):
+ """See IVswitch for general description
+ """
+ versions = []
+ output = self.run_vppctl(['show', 'version', 'verbose'])
+ if output[1]:
+ self._logger.warning("VPP version can not be read!")
+ return versions
+
+ match = re.search(r'Version:\s*(.+)', output[0])
+ if match:
+ versions.append(Version(S.getValue('VSWITCH'), match.group(1)))
+
+ match = re.search(r'DPDK Version:\s*DPDK (.+)', output[0])
+ if match:
+ versions.append(Version('dpdk', match.group(1)))
+
+ return versions
+
def add_switch(self, switch_name, dummy_params=None):
"""See IVswitch for general description
"""