From b1534957e463b5e34957a8d48ce5c6b0552ffbb4 Mon Sep 17 00:00:00 2001 From: Martin Klozik Date: Thu, 31 Aug 2017 15:01:18 +0200 Subject: teststeps: Improvements and bugfixing of teststeps This patch introduces several improvements and small bugfixes of teststeps. These changes were identified during implementation of OVS/DPDK regression tests. Patch content: * teststeps: step aliases were implemented * teststeps: improved filtering by regex for any step, which returns string or list of stings; filter will process all lines * teststeps: support for log object * teststeps: support for trafficgen get_results call * teststeps: configurable suppression of step validation * trafficgen: remove old results before traffic is executed * trafficgen: support for flow control on/off (IxNet) * trafficgen: support for configurable learning frames (IxNet) * trafficgen: support for runtime changes of TRAFFICGEN_PKT_SIZES, _DURATION and _LOSSRATE * vnf: flush pexpect output of previous commands * vnf: use execute_and_wait() to ensure correct cmds order * vnf: dpdk vHost User interface name set according to its type, e.g. dpdkvhostuserclient * vswitch: support for OVS restart * decap: simplify configuration of tunneling decapsulation tests * settings: values of all configuration options are restored after TC execution * modified formatting of test description used by --list * testcase name and description is logged before its execution * small bugfixes JIRA: VSPERF-539 Change-Id: I550ba0d897ece89abd3f33d6d66f545c4d863e7b Signed-off-by: Martin Klozik Reviewed-by: Al Morton Reviewed-by: Christian Trautman Reviewed-by: Sridhar Rao Reviewed-by: Trevor Cooper --- conf/03_traffic.conf | 15 ++++++++++++++- conf/04_vnf.conf | 2 ++ conf/__init__.py | 12 ++++++++++++ conf/integration/02_vswitch.conf | 6 ------ conf/integration/03_traffic.conf | 6 +++--- 5 files changed, 31 insertions(+), 10 deletions(-) (limited to 'conf') diff --git a/conf/03_traffic.conf b/conf/03_traffic.conf index b5533833..6cfbbf23 100644 --- a/conf/03_traffic.conf +++ b/conf/03_traffic.conf @@ -71,6 +71,18 @@ LOG_FILE_TRAFFIC_GEN = 'traffic-gen.log' # "IP" - flow is defined by ingress ports # and src and dst IP addresses # Default value: "port" +# 'flow_control' - Controls flow control support by traffic generator. +# Supported values: +# False - flow control is disabled +# True - flow control is enabled +# Default value: False +# Note: Currently it is supported by IxNet only +# 'learning_frames' - Controls learning frames support by traffic generator. +# Supported values: +# False - learning freames are disabled +# True - learning freames are enabled +# Default value: True +# Note: Currently it is supported by IxNet only # 'l2' - A dictionary with l2 network layer details. Supported # values are: # 'srcmac' - Specifies source MAC address filled by traffic generator. @@ -143,7 +155,8 @@ TRAFFIC = { 'stream_type' : 'L4', 'pre_installed_flows' : 'No', # used by vswitch implementation 'flow_type' : 'port', # used by vswitch implementation - + 'flow_control' : False, # supported only by IxNet + 'learning_frames' : True, # supported only by IxNet 'l2': { 'framesize': 64, 'srcmac': '00:00:00:00:00:00', diff --git a/conf/04_vnf.conf b/conf/04_vnf.conf index eafec74b..37fbe2b1 100644 --- a/conf/04_vnf.conf +++ b/conf/04_vnf.conf @@ -96,6 +96,8 @@ GUEST_SHARED_DRIVE_TYPE = ['scsi'] # 'linux_bridge' - linux bridge will be configured # 'buildin' - nothing will be configured by vsperf; VM image must # ensure traffic forwarding between its interfaces +# 'clean' - nothing will be configured, but automatic login will +# be performed; Useful for stepdriven testcases. # For 2 VNFs you may use ['testpmd', 'l2fwd'] GUEST_LOOPBACK = ['testpmd'] diff --git a/conf/__init__.py b/conf/__init__.py index 808cfc97..a7c0ee5d 100644 --- a/conf/__init__.py +++ b/conf/__init__.py @@ -189,6 +189,18 @@ class Settings(object): else: setattr(self, key.upper(), conf[key]) + def restore_from_dict(self, conf): + """ + Restore ``settings`` with values found in ``conf``. + + Method will drop all configuration options and restore their + values from conf dictionary + """ + self.__dict__.clear() + tmp_conf = copy.deepcopy(conf) + for key in tmp_conf: + self.setValue(key, tmp_conf[key]) + def load_from_env(self): """ Update ``settings`` with values found in the environment. diff --git a/conf/integration/02_vswitch.conf b/conf/integration/02_vswitch.conf index 68eaf73e..63ffe1bc 100644 --- a/conf/integration/02_vswitch.conf +++ b/conf/integration/02_vswitch.conf @@ -23,12 +23,6 @@ TUNNEL_EXTERNAL_BRIDGE_IP = '192.168.240.1/24' # vxlan|gre|geneve TUNNEL_TYPE = 'vxlan' -# The receiving NIC of VXLAN traffic -# Used for OVS Vanilla Decap -DUT_NIC1_MAC = '' -# Used for OVS DPDK Decap -DUT_NIC2_MAC = '' - #Tunnel bridge configuration for P-TUN-P(VxLAN) deployment scenario # to test VxLAN performance without any overlay ingress traffic by doing the # encap decap inside the virtual switch itself. diff --git a/conf/integration/03_traffic.conf b/conf/integration/03_traffic.conf index e78e2668..5126f515 100644 --- a/conf/integration/03_traffic.conf +++ b/conf/integration/03_traffic.conf @@ -29,7 +29,7 @@ VXLAN_VNI = '99' # '00:1b:21:b3:48:a9'} VXLAN_FRAME_L2 = {'srcmac': '01:02:03:04:05:06', - 'dstmac': DUT_NIC2_MAC, + 'dstmac': '06:05:04:03:02:01', } # VXLAN is supported both in IxNetwork and IXIA IxExplorer @@ -71,7 +71,7 @@ VXLAN_FRAME_L4 = {'srcport': 4789, # TEST frame # dstmac should be set to the MAC address of the DUT's receiving port GRE_FRAME_L2 = {'srcmac': '01:02:03:04:05:06', - 'dstmac': DUT_NIC2_MAC, + 'dstmac': '06:05:04:03:02:01', } GRE_FRAME_L3 = {'proto': 'gre', @@ -95,7 +95,7 @@ GRE_FRAME_L4 = {'srcport': 0, # TEST frame # dstmac should be set to the MAC address of the DUT's receiving port GENEVE_FRAME_L2 = {'srcmac': '01:02:03:04:05:06', - 'dstmac': DUT_NIC2_MAC, + 'dstmac': '06:05:04:03:02:01', } GENEVE_FRAME_L3 = {'proto': 'udp', -- cgit 1.2.3-korg