summaryrefslogtreecommitdiffstats
path: root/conf
diff options
context:
space:
mode:
Diffstat (limited to 'conf')
-rwxr-xr-xconf/01_testcases.conf12
-rw-r--r--conf/02_vswitch.conf5
-rw-r--r--conf/03_traffic.conf52
-rw-r--r--conf/__init__.py10
-rw-r--r--conf/integration/01_testcases.conf5
5 files changed, 74 insertions, 10 deletions
diff --git a/conf/01_testcases.conf b/conf/01_testcases.conf
index c1e82163..4a68ab3f 100755
--- a/conf/01_testcases.conf
+++ b/conf/01_testcases.conf
@@ -256,6 +256,18 @@ PERFORMANCE_TESTS = [
},
},
{
+ "Name": "phy2phy_burst",
+ "Deployment": "p2p",
+ "Description": "Phy2Phy single burst of 1000 frames at 100% frame rate",
+ "Parameters" : {
+ "TRAFFIC" : {
+ "traffic_type" : "burst",
+ "frame_rate" : 100,
+ "burst_size" : 1000,
+ },
+ },
+ },
+ {
"Name": "pvp_cont",
"Deployment": "pvp",
"Description": "PVP Continuous Stream",
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/conf/03_traffic.conf b/conf/03_traffic.conf
index 8aff2e35..f043b4ca 100644
--- a/conf/03_traffic.conf
+++ b/conf/03_traffic.conf
@@ -23,8 +23,8 @@ LOG_FILE_TRAFFIC_GEN = 'traffic-gen.log'
# Detailed description of TRAFFIC dictionary items follows:
#
# 'traffic_type' - One of the supported traffic types.
-# E.g. rfc2544_throughput, rfc2544_back2back
-# or rfc2544_continuous
+# E.g. rfc2544_throughput, rfc2544_back2back,
+# rfc2544_continuous or burst
# Data type: str
# Default value: "rfc2544_throughput".
# 'bidir' - Specifies if generated traffic will be full-duplex (True)
@@ -36,6 +36,12 @@ LOG_FILE_TRAFFIC_GEN = 'traffic-gen.log'
# continuous stream tests.
# Data type: int
# Default value: 100.
+# 'burst_size' - Defines a number of frames in the single burst, which is sent
+# by burst traffic type. Burst size is applied for each direction,
+# i.e. the total number of tx frames will be 2*burst_size in case of
+# bidirectional traffic.
+# Data type: int
+# Default value: 100.
# 'multistream' - Defines number of flows simulated by traffic generator.
# Value 0 disables multistream feature
# Data type: int
@@ -112,7 +118,7 @@ LOG_FILE_TRAFFIC_GEN = 'traffic-gen.log'
# NOTE: It can be modified by vsperf in some scenarios.
# Data type: str
# Default value: "90.90.90.90".
-# 'proto' - Specifies deflaut protocol type.
+# 'proto' - Specifies protocol type.
# Please check particular traffic generator implementation
# for supported protocol types.
# Data type: str
@@ -171,9 +177,38 @@ LOG_FILE_TRAFFIC_GEN = 'traffic-gen.log'
# details.
# Data type: str
# Default value: ''
+# 'scapy' - A dictionary with definition of a frame content for both traffic
+# directions. The frame content is defined by a SCAPY notation.
+# NOTE: It is supported only by the T-Rex traffic generator.
+# Following keywords can be used to refer to the related parts of
+# the TRAFFIC dictionary:
+# Ether_src - refers to TRAFFIC['l2']['srcmac']
+# Ether_dst - refers to TRAFFIC['l2']['dstmac']
+# IP_proto - refers to TRAFFIC['l3']['proto']
+# IP_PROTO - refers to upper case version of TRAFFIC['l3']['proto']
+# IP_src - refers to TRAFFIC['l3']['srcip']
+# IP_dst - refers to TRAFFIC['l3']['dstip']
+# IP_PROTO_sport - refers to TRAFFIC['l4']['srcport']
+# IP_PROTO_dport - refers to TRAFFIC['l4']['dstport']
+# Dot1Q_prio - refers to TRAFFIC['vlan']['priority']
+# Dot1Q_id - refers to TRAFFIC['vlan']['cfi']
+# Dot1Q_vlan - refers to TRAFFIC['vlan']['id']
+# '0' - A string with the frame definition for the 1st direction.
+# Data type: str
+# Default value: 'Ether(src={Ether_src}, dst={Ether_dst})/'
+# 'Dot1Q(prio={Dot1Q_prio}, id={Dot1Q_id}, vlan={Dot1Q_vlan})/'
+# 'IP(proto={IP_proto}, src={IP_src}, dst={IP_dst})/'
+# '{IP_PROTO}(sport={IP_PROTO_sport}, dport={IP_PROTO_dport})'
+# '1' - A string with the frame definition for the 2nd direction.
+# Data type: str
+# Default value: 'Ether(src={Ether_dst}, dst={Ether_src})/'
+# 'Dot1Q(prio={Dot1Q_prio}, id={Dot1Q_id}, vlan={Dot1Q_vlan})/'
+# 'IP(proto={IP_proto}, src={IP_dst}, dst={IP_src})/'
+# '{IP_PROTO}(sport={IP_PROTO_dport}, dport={IP_PROTO_sport})',
TRAFFIC = {
'traffic_type' : 'rfc2544_throughput',
'frame_rate' : 100,
+ 'burst_size' : 100,
'bidir' : 'True', # will be passed as string in title format to tgen
'multistream' : 0,
'stream_type' : 'L4',
@@ -210,6 +245,17 @@ TRAFFIC = {
'count': 1,
'filter': '',
},
+ 'scapy': {
+ 'enabled': False,
+ '0' : 'Ether(src={Ether_src}, dst={Ether_dst})/'
+ 'Dot1Q(prio={Dot1Q_prio}, id={Dot1Q_id}, vlan={Dot1Q_vlan})/'
+ 'IP(proto={IP_proto}, src={IP_src}, dst={IP_dst})/'
+ '{IP_PROTO}(sport={IP_PROTO_sport}, dport={IP_PROTO_dport})',
+ '1' : 'Ether(src={Ether_dst}, dst={Ether_src})/'
+ 'Dot1Q(prio={Dot1Q_prio}, id={Dot1Q_id}, vlan={Dot1Q_vlan})/'
+ 'IP(proto={IP_proto}, src={IP_dst}, dst={IP_src})/'
+ '{IP_PROTO}(sport={IP_PROTO_dport}, dport={IP_PROTO_sport})',
+ }
}
#path to traffic generators directory.
diff --git a/conf/__init__.py b/conf/__init__.py
index d5d26757..83c5475f 100644
--- a/conf/__init__.py
+++ b/conf/__init__.py
@@ -70,7 +70,7 @@ class Settings(object):
except AttributeError:
pass
return param
- elif isinstance(param, list) or isinstance(param, tuple):
+ elif isinstance(param, (list, tuple)):
tmp_list = []
for item in param:
tmp_list.append(self._eval_param(item))
@@ -229,7 +229,7 @@ class Settings(object):
if key not in self.__dict__ and key not in _EXTRA_TEST_PARAMS:
unknown_keys.append(key)
- if len(unknown_keys):
+ if unknown_keys:
raise RuntimeError('Test parameters contain unknown configuration '
'parameter(s): {}'.format(', '.join(unknown_keys)))
@@ -270,7 +270,7 @@ class Settings(object):
for vmindex in range(vm_number):
value = master_value_str.replace('#VMINDEX', str(vmindex))
for macro, args, param, _, step in re.findall(_PARSE_PATTERN, value):
- multi = int(step) if len(step) and int(step) else 1
+ multi = int(step) if step and int(step) else 1
if macro == '#EVAL':
# pylint: disable=eval-used
tmp_result = str(eval(param))
@@ -325,13 +325,13 @@ class Settings(object):
assert result == self.getValue(attr)
return True
- def validate_setValue(self, dummy_result, name, value):
+ def validate_setValue(self, _dummy_result, name, value):
"""Verifies, that value was correctly set
"""
assert value == self.__dict__[name]
return True
- def validate_resetValue(self, dummy_result, attr):
+ def validate_resetValue(self, _dummy_result, attr):
"""Verifies, that value was correctly reset
"""
return 'TEST_PARAMS' not in self.__dict__ or \
diff --git a/conf/integration/01_testcases.conf b/conf/integration/01_testcases.conf
index bb2809b8..8c013d2a 100644
--- a/conf/integration/01_testcases.conf
+++ b/conf/integration/01_testcases.conf
@@ -1129,10 +1129,11 @@ INTEGRATION_TESTS += [
"vSwitch" : "OvsDpdkVhost", # works also for Vanilla OVS
"Parameters" : {
"TRAFFICGEN" : "Trex",
- "TRAFFICGEN_DURATION" : 5,
+ "TRAFFICGEN_TREX_LEARNING_MODE" : True,
"TRAFFIC" : {
- "traffic_type" : "rfc2544_continuous",
+ "traffic_type" : "burst",
"frame_rate" : 100,
+ "burst_size" : 5,
# enable capture of five RX frames
'capture': {
'enabled': True,