From 31770a64cd8a5c40ee3657ac97e87a900f7aeca5 Mon Sep 17 00:00:00 2001 From: Martin Klozik Date: Tue, 14 Nov 2017 12:55:09 +0000 Subject: vpp: Define vppctl socket name 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 Reviewed-by: Al Morton Reviewed-by: Christian Trautman Reviewed-by: Sridhar Rao Reviewed-by: Trevor Cooper --- conf/02_vswitch.conf | 1 + vswitches/vpp_dpdk_vhost.py | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/conf/02_vswitch.conf b/conf/02_vswitch.conf index 92521f9a..6a830a05 100644 --- a/conf/02_vswitch.conf +++ b/conf/02_vswitch.conf @@ -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 diff --git a/vswitches/vpp_dpdk_vhost.py b/vswitches/vpp_dpdk_vhost.py index bb472788..c62e28d4 100644 --- a/vswitches/vpp_dpdk_vhost.py +++ b/vswitches/vpp_dpdk_vhost.py @@ -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) # -- cgit 1.2.3-korg