vpp: Define vppctl socket name 85/47185/1
authorMartin Klozik <martinx.klozik@intel.com>
Tue, 14 Nov 2017 12:55:09 +0000 (12:55 +0000)
committerMartin Klozik <martinx.klozik@intel.com>
Tue, 14 Nov 2017 13:25:58 +0000 (13:25 +0000)
Newer versions of VPP require an explicit definition of CLI socket
file for proper functionality. Otherwise vppctl is not able to connect
to running vpp process and thus vsperf is not able to configure
and control vpp.

Change-Id: Id0df75fd0894e22b1b4d7fa05e16f49efe20d3ab
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>
conf/02_vswitch.conf
vswitches/vpp_dpdk_vhost.py

index 92521f9..6a830a0 100644 (file)
@@ -206,6 +206,7 @@ VSWITCH_JUMBO_FRAMES_SIZE = 9000
 #########################
 # Set of arguments used for startup of VPP
 # NOTE: DPDK socket mem allocation is driven by parameter DPDK_SOCKET_MEM
+VSWITCH_VPP_CLI_SOCK = ''
 VSWITCH_VPP_ARGS = {
     'unix' : [
         'interactive',      # required by VSPERF to detect successful VPP startup
index bb47278..c62e28d 100644 (file)
@@ -50,6 +50,7 @@ class VppDpdkVhost(IVSwitch, tasks.Process):
         self._phy_ports = []
         self._virt_ports = []
         self._switches = {}
+        self._vpp_ctl = ['sudo', S.getValue('TOOLS')['vppctl']]
 
         # configure DPDK NICs
         tmp_args = copy.deepcopy(S.getValue('VSWITCH_VPP_ARGS'))
@@ -71,6 +72,12 @@ class VppDpdkVhost(IVSwitch, tasks.Process):
         # configure path to the plugins
         tmp_args['plugin_path'] = S.getValue('TOOLS')['vpp_plugin_path']
 
+        # cli sock file must be used for VPP 17.10 and newer
+        if S.getValue('VSWITCH_VPP_CLI_SOCK'):
+            self._vpp_ctl += ['-s', S.getValue('VSWITCH_VPP_CLI_SOCK')]
+            tmp_args['unix'].append('cli-listen {}'.format(
+                S.getValue('VSWITCH_VPP_CLI_SOCK')))
+
         mqs = int(S.getValue('VSWITCH_DPDK_MULTI_QUEUES'))
         tmp_rxqs = ''
         if mqs:
@@ -371,7 +378,7 @@ class VppDpdkVhost(IVSwitch, tasks.Process):
 
         :return: None
         """
-        cmd = ['sudo', S.getValue('TOOLS')['vppctl']] + args
+        cmd = self._vpp_ctl + args
         return tasks.run_task(cmd, self._logger, 'Running vppctl...', check_error)
 
     #