From f765c92fe25c6c3cf035f633367c50ed4f96dda8 Mon Sep 17 00:00:00 2001 From: Martin Klozik Date: Thu, 29 Mar 2018 07:29:34 +0100 Subject: [PATCH] ovs: Configurable arguments of ovs-*ctl This patch introduces new configuration parameters OVS_OFCTL_ARGS, OVS_VSCTL_ARGS and OVS_APPCTL_ARGS, which specify default arguments passed to respective ovs-*ctl tools. So user can specify default arguments passed to these tools inside configuration file, testcase parameters or by --test-params option. For example OVS_OFCTL_ARGS can be modified to use different OpenFlow version by default. JIRA: VSPERF-567 Change-Id: Ie7448ea94a54b8044af12d0246d66514e057b7dc Signed-off-by: Martin Klozik Reviewed-by: Al Morton Reviewed-by: Christian Trautman Reviewed-by: Sridhar Rao Reviewed-by: Richard Elias --- conf/02_vswitch.conf | 5 +++++ src/ovs/ofctl.py | 20 +++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/conf/02_vswitch.conf b/conf/02_vswitch.conf index 6a830a05..4d0fc46b 100644 --- a/conf/02_vswitch.conf +++ b/conf/02_vswitch.conf @@ -201,6 +201,11 @@ VSWITCH = "OvsDpdkVhost" VSWITCH_JUMBO_FRAMES_ENABLED = False VSWITCH_JUMBO_FRAMES_SIZE = 9000 +# default arguments of OVS ctl tools +OVS_VSCTL_ARGS = [] +OVS_OFCTL_ARGS = ['-O', 'OpenFlow13'] # backward compatible default value +OVS_APPCTL_ARGS = [] + ######################### ## VPP ######################### diff --git a/src/ovs/ofctl.py b/src/ovs/ofctl.py index 64d54466..110940c8 100644 --- a/src/ovs/ofctl.py +++ b/src/ovs/ofctl.py @@ -25,10 +25,10 @@ import re import netaddr from tools import tasks -from conf import settings +from conf import settings as S -_OVS_BRIDGE_NAME = settings.getValue('VSWITCH_BRIDGE_NAME') -_OVS_CMD_TIMEOUT = settings.getValue('OVS_CMD_TIMEOUT') +_OVS_BRIDGE_NAME = S.getValue('VSWITCH_BRIDGE_NAME') +_OVS_CMD_TIMEOUT = S.getValue('OVS_CMD_TIMEOUT') _CACHE_FILE_NAME = '/tmp/vsperf_flows_cache' @@ -62,9 +62,11 @@ class OFBase(object): :return: None """ if self.timeout == -1: - cmd = ['sudo', settings.getValue('TOOLS')['ovs-vsctl'], '--no-wait'] + args + cmd = ['sudo', S.getValue('TOOLS')['ovs-vsctl'], '--no-wait'] + \ + S.getValue('OVS_VSCTL_ARGS') + args else: - cmd = ['sudo', settings.getValue('TOOLS')['ovs-vsctl'], '--timeout', str(self.timeout)] + args + cmd = ['sudo', S.getValue('TOOLS')['ovs-vsctl'], '--timeout', + str(self.timeout)] + S.getValue('OVS_VSCTL_ARGS') + args return tasks.run_task( cmd, self.logger, 'Running ovs-vsctl...', check_error) @@ -77,9 +79,9 @@ class OFBase(object): :return: None """ - cmd = ['sudo', settings.getValue('TOOLS')['ovs-appctl'], + cmd = ['sudo', S.getValue('TOOLS')['ovs-appctl'], '--timeout', - str(self.timeout)] + args + str(self.timeout)] + S.getValue('OVS_APPCTL_ARGS') + args return tasks.run_task( cmd, self.logger, 'Running ovs-appctl...', check_error) @@ -180,8 +182,8 @@ class OFBridge(OFBase): :return: None """ tmp_timeout = self.timeout if timeout is None else timeout - cmd = ['sudo', settings.getValue('TOOLS')['ovs-ofctl'], '-O', - 'OpenFlow13', '--timeout', str(tmp_timeout)] + args + cmd = ['sudo', S.getValue('TOOLS')['ovs-ofctl'], '--timeout', + str(tmp_timeout)] + S.getValue('OVS_OFCTL_ARGS') + args return tasks.run_task( cmd, self.logger, 'Running ovs-ofctl...', check_error) -- 2.16.6