From 305ca81ee9058cb3daa96706ba9cb9c071e3e41c Mon Sep 17 00:00:00 2001 From: Martin Klozik Date: Mon, 19 Oct 2015 17:38:52 +0100 Subject: bugfix of Vanilla OVS testing scenarios Automatic selection of OVS and DPDK directories must be performed before initialization of modules is called. Otherwise modules will use wrong values with unpredictable results. Default directory values have been changed to point to sources build by make. Clean&sweep of directory usage was performed. Configuration file for pylint has been renamed to follow pylint naming convention. Change-Id: I42c89f8890c021f0062b478a856ae0113f1245fb JIRA: VSPERF-121 Signed-off-by: Martin Klozik Reviewed-by: Maryam Tahhan Reviewed-by: Billy O Mahony Reviewed-by: Brian Castelli Reviewed-by: Gene Snider Reviewed-by: Al Morton Reviewed-by: Tv Rao --- conf/00_common.conf | 12 ++++++++++ conf/02_vswitch.conf | 65 +++++++++++++++++++++++++++++----------------------- conf/04_vnf.conf | 4 +--- conf/10_custom.conf | 11 --------- 4 files changed, 49 insertions(+), 43 deletions(-) (limited to 'conf') diff --git a/conf/00_common.conf b/conf/00_common.conf index f9782c6a..225cf476 100644 --- a/conf/00_common.conf +++ b/conf/00_common.conf @@ -27,6 +27,18 @@ ROOT_DIR = os.path.normpath(os.path.join( TRAFFICGEN_DIR = os.path.join(ROOT_DIR, 'tools/pkt_gen') SYSMETRICS_DIR = os.path.join(ROOT_DIR, 'tools/collectors') +# deployment specific paths to OVS and DPDK +OVS_DIR_VANILLA = os.path.join(ROOT_DIR, 'src_vanilla/ovs/ovs/') + +RTE_SDK_CUSE = os.path.join(ROOT_DIR, 'src_cuse/dpdk/dpdk/') +OVS_DIR_CUSE = os.path.join(ROOT_DIR, 'src_cuse/ovs/ovs/') + +RTE_SDK_USER = os.path.join(ROOT_DIR, 'src/dpdk/dpdk/') +OVS_DIR_USER = os.path.join(ROOT_DIR, 'src/ovs/ovs/') + +# the same qemu version is used for vanilla, vHost User and Cuse +QEMU_DIR = os.path.join(ROOT_DIR, 'src/qemu/qemu/') + # ############################ # Process configuration # ############################ diff --git a/conf/02_vswitch.conf b/conf/02_vswitch.conf index 32f4c0e1..f56548f7 100644 --- a/conf/02_vswitch.conf +++ b/conf/02_vswitch.conf @@ -13,10 +13,16 @@ # limitations under the License. # ############################ -# vswitch configuration +# Directories # ############################ -RTE_SDK = '~/dpdk' -OVS_DIR = '~/openvswitch' +# use DPDK VHOST USER by default +RTE_SDK = RTE_SDK_USER +OVS_DIR = OVS_DIR_USER + +OVS_VAR_DIR = '/usr/local/var/run/openvswitch/' +OVS_ETC_DIR = '/usr/local/etc/openvswitch/' + +VSWITCH_DIR = os.path.join(ROOT_DIR, 'vswitches') # ############################ # DPDK configuration @@ -34,13 +40,38 @@ WHITELIST_NICS = ['05:00.0', '05:00.1'] BLACKLIST_NICS = ['0000:09:00.0', '0000:09:00.1', '0000:09:00.2', '0000:09:00.3'] +# for DPDK_MODULES the path is in reference to the build directory +DPDK_MODULES = [ + ('kmod', 'igb_uio'), +] + +VHOST_MODULE = [ + ('eventfd_link', 'eventfd_link') +] + +# list of modules that will be inserted using 'modprobe' on system init +SYS_MODULES = ['uio', 'cuse'] + +# vhost character device file used by dpdkvhostport QemuWrap cases +VHOST_DEV_FILE = 'ovs-vhost-net' + +# location of vhost-user sockets +VHOST_USER_SOCKS = ['/tmp/dpdkvhostuser0', '/tmp/dpdkvhostuser1', + '/tmp/dpdkvhostuser2', '/tmp/dpdkvhostuser3', + '/tmp/myport0', '/tmp/helloworld123', '/tmp/abcstuff0'] + +# ############################ +# vswitch configuration +# ############################ # These are DPDK EAL parameters and they may need to be changed depending on # hardware configuration, like cpu numbering and NUMA. VSWITCHD_DPDK_ARGS = ['-c', '0x4', '-n', '4', '--socket-mem 1024,0'] VSWITCHD_VANILLA_ARGS = ['--pidfile'] VSWITCH_VANILLA_PHY_PORT_NAMES = ['', ''] -VSWITCH_VANILLA_KERNEL_MODULES = ['openvswitch'] + +# use full module path to load module matching OVS version built from the source +VSWITCH_VANILLA_KERNEL_MODULES = [os.path.join(ROOT_DIR, 'datapath/linux/openvswitch.ko')] # Bridge name to be used by VSWTICH VSWITCH_BRIDGE_NAME = 'br0' @@ -60,35 +91,11 @@ VSWITCH_FLOW_TIMEOUT = '30000' # for OVS modules the path is in reference to the OVS directory. OVS_MODULES = [] -# for DPDK_MODULES the path is in reference to the build directory -DPDK_MODULES = [ - ('kmod', 'igb_uio'), -] - -VHOST_MODULE = [ - ('eventfd_link', 'eventfd_link') -] - -# list of modules that will be inserted using 'modprobe' on system init -SYS_MODULES = ['uio', 'cuse'] - -# vhost character device file used by dpdkvhostport QemuWrap cases -VHOST_DEV_FILE = 'ovs-vhost-net' - -# location of vhost-user sockets -VHOST_USER_SOCKS = ['/tmp/dpdkvhostuser0', '/tmp/dpdkvhostuser1', - '/tmp/dpdkvhostuser2', '/tmp/dpdkvhostuser3', - '/tmp/myport0', '/tmp/helloworld123', '/tmp/abcstuff0'] - # log file for ovs-vswitchd LOG_FILE_VSWITCHD = 'vswitchd.log' # log file for ovs-dpdk LOG_FILE_OVS = 'ovs.log' -VSWITCH_DIR = os.path.join(ROOT_DIR, 'vswitches') +# default vswitch implementation VSWITCH = "OvsDpdkVhost" - -# Use vhost user or vhost cuse -# Set to cuse if you want to test vhostcuse -VHOST_METHOD = 'user' diff --git a/conf/04_vnf.conf b/conf/04_vnf.conf index 52cc6ec1..1059482e 100644 --- a/conf/04_vnf.conf +++ b/conf/04_vnf.conf @@ -57,9 +57,7 @@ LOG_FILE_GUEST_CMDS = 'guest-cmds.log' # Executables # ############################ -QEMU_BIN = 'qemu-system-x86_64' - -OVS_VAR_DIR = '/usr/local/var/run/openvswitch/' +QEMU_BIN = os.path.join(QEMU_DIR, 'x86_64-softmmu/qemu-system-x86_64') # For 2 VNFs you may use ['00:00:00:00:00:01', '00:00:00:00:00:03'] GUEST_NET1_MAC = ['00:00:00:00:00:01', '00:00:00:00:00:03'] diff --git a/conf/10_custom.conf b/conf/10_custom.conf index f42df2d4..3f98d543 100644 --- a/conf/10_custom.conf +++ b/conf/10_custom.conf @@ -12,17 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Operational settings for various resources -OVS_DIR_VANILLA = '~/src_vanilla/ovs/' -QEMU_DIR_VANILLA = '~/src_vanilla/qemu/' - -RTE_SDK_CUSE = '~/src_cuse/dpdk/' -OVS_DIR_CUSE = '~/src_cuse/ovs/' -QEMU_DIR_CUSE = '~/src_cuse/qemu/' - -RTE_SDK_USER = '~/src/dpdk/' -OVS_DIR_USER = '~/src/ovs/' -QEMU_DIR_USER = '~/src/qemu/' RTE_TARGET = '' # the relevant DPDK build target # traffic generator to use in tests -- cgit