From 9b1af783ec53050129239102355e1a5c3ceb1d97 Mon Sep 17 00:00:00 2001 From: Martin Klozik Date: Fri, 26 Aug 2016 15:39:29 +0100 Subject: paths: Support binary packages Currently VSPERF supports OVS, DPDK and QEMU built from the source code only. In some cases it is required to support installation of these tools from binary packages available for given linux distribution. Thus VSPERF configuration and code was modified to suport both source and binary versions of tools. This can be configured perf tool, so various combinations of source and binary version are supported. Together with new configuration also a handling of kernel modules was modified to automatically detect and load module dependencies. JIRA: VSPERF-340 JIRA: VSPERF-339 Change-Id: I855cb438cbd8998bdc499613ea5e7de2526299d7 Signed-off-by: Martin Klozik Reviewed-by: Maryam Tahhan Reviewed-by: Al Morton Reviewed-by: Christian Trautman Reviewed-by: Bill Michalowski Reviewed-by: Otto Sabart --- conf/00_common.conf | 54 +++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 8 deletions(-) (limited to 'conf/00_common.conf') diff --git a/conf/00_common.conf b/conf/00_common.conf index fe4e1f5d..7f30deb2 100644 --- a/conf/00_common.conf +++ b/conf/00_common.conf @@ -17,6 +17,7 @@ # ########################### import os +import copy # default language and encoding, which will be set in case # that locale is not set properly @@ -36,14 +37,51 @@ 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_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 and vHost User -QEMU_DIR = os.path.join(ROOT_DIR, 'src/qemu/qemu/') +# Dictionary PATHS is used for configuration of vswitches, dpdk and qemu. +# It contains paths to various utilities, temporary directories and kernel +# modules used by VSPERF. Particular sections of PATHS dictionary are spread +# among several configuration files, i.e.: +# conf/02_vswtich.conf - configuration of vswitches (i.e. PATHS['vswitch']) +# and dpdk (i.e. PATHS['dpdk']) can be found there +# conf/04_vnf.conf - configuration of qemu (i.e. PATHS['qemu']) can +# be found there +# +# VSPERF will process PATHS dictionary before execution of every testcase +# and it will create a testcase specific dictionary TOOLS with paths to the +# utilities used by the test. During PATHS processing, following rules +# will apply for every item of PATHS dictionary: +# item 'type' - string, which defines the type of paths ('src' or 'bin') to be selected +# for a given section: +# 'src' means, that VSPERF will use OVS, DPDK or QEMU built from sources +# e.g. by execution of systems/build_base_machine.sh script during VSPERF +# installation +# 'bin' means, that VSPERF will use OVS, DPDK or QEMU binaries installed +# in the OS, e.g. via OS specific packaging system +# item 'path' - string with valid path; Its content is checked for existence, prefixed +# with section name and stored into TOOLS for later use +# e.g. TOOLS['dpdk_src'] or TOOLS['vswitch_src'] +# item 'modules' - list of strings; Every value from given list is checked for '.ko' +# suffix. In case it matches and it is not an absolute path to the module, then +# module name is prefixed with 'path' defined for the same section +# e.g. TOOLS['vswitch_modules'] = [ +# '/tmp/vsperf/src_vanilla/ovs/ovs/datapath/linux/openvswitch.ko'] +# all other items - string - if given string is a relative path and item 'path' +# is defined for a given section, then item content will be prefixed with +# content of the 'path'. Otherwise tool name will be searched within +# standard system directories. Also any OS filename wildcards will be +# expanded to the real path. At the end of processing, every absolute +# path is checked for its existence. In case that temporary path (i.e. path +# with '_tmp' suffix) doesn't exist, then log will be written and vsperf will +# continue. If any other path will not exist, then vsperf execution will +# be terminated with runtime error. +# +# Note: In case that 'bin' type is set for DPDK, then TOOLS['dpdk_src'] will be set to +# the value of PATHS['dpdk']['src']['path']. The reason is, that VSPERF uses downloaded +# DPDK sources to copy DPDK and testpmd into the GUEST, where testpmd is built. In case, +# that DPDK sources are not available, then vsperf will continue with test execution, +# but testpmd can't be used as a guest loopback. This is useful in case, that other guest +# loopback applications (e.g. buildin) are used by CI jobs, etc. +PATHS = {} # ############################ # Process configuration -- cgit 1.2.3-korg