1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
# Copyright 2015-2017 Intel Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ###########################
# Common setting potentially accessed by all components.
# ###########################
import os
import copy
# default language and encoding, which will be set in case
# that locale is not set properly
DEFAULT_LOCALE = 'en_US.UTF-8'
# default language and encoding, which will be used by external
# commands; This values will be set in case, that VSPERF parses
# command output.
DEFAULT_CMD_LOCALE = 'en_US.UTF-8'
# ############################
# Directories
# ############################
ROOT_DIR = os.path.normpath(os.path.join(
os.path.dirname(os.path.realpath(__file__)), '../'))
TRAFFICGEN_DIR = os.path.join(ROOT_DIR, 'tools/pkt_gen')
SYSMETRICS_DIR = os.path.join(ROOT_DIR, 'tools/collectors')
# 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
# ############################
# shell command to use when running commands through Pexpect
SHELL_CMD = ['/bin/bash', '-c']
# ############################
# Logging configuration
# ############################
# default log output directory for all logs
LOG_DIR = '/tmp'
# default log for all "small" executables
LOG_FILE_DEFAULT = 'vsperf-overall.log'
# log file for all commands executed on host
LOG_FILE_HOST_CMDS = 'host-cmds.log'
# log file prefix for infrastructure metrics
LOG_FILE_INFRA_METRICS_PFX = 'collectd_'
# ############################
# Test configuration
# ############################
# verbosity of output to 'stdout'
# NOTE: output to log files is always 'debug' level
VERBOSITY = 'debug'
# dictionary of test-specific parameters. These values are accessible
# from anywhere in the test framework so be careful with naming
# conventions
TEST_PARAMS = {}
# delay enforced after every step to allow system to process changes
TEST_STEP_DELAY = 5
# parameter used, when running mupltiple tests, to accumulate _PARAMS_LIST
# parameters for multiple tests running in a series
CUMULATIVE_PARAMS = False
# metric used by the performance matrix for comparision and analysis
# of tests run in a series. Must always refer to a numeric value.
# For example: 'throughput_rx_mbps', 'throughput_rx_fps', 'avg_latency_ns'
MATRIX_METRIC = 'throughput_rx_fps'
# OPNFVPOD specification.
OPNFVPOD = ''
# ############################
# Modules
# ############################
# following modules will be excluded from automatic load by LoaderServant
# it can be used to suppress automatic load of obsoleted or abstract modules
# Example:
# EXCLUDE_MODULES = ['ovs_vanilla', 'qemu_virtio_net', 'pidstat']
EXCLUDE_MODULES = ["testcenter-rfc2544-throughput"]
# ############################
# Vsperf Internal Options
# ############################
# following options should not be changed by the user
# internal list to keep track of PIDs of jobs executed by vsperf
_EXECUTED_PIDS = []
# dictionary containing the test-specific parameters of all tests being run
# for the purposes of cummulative parameter assignment using performance matrix
_PARAMS_LIST = {}
# index number of the current test, used for naming of result files
_TEST_INDEX = 0
|