summaryrefslogtreecommitdiffstats
path: root/scripts/automation
diff options
context:
space:
mode:
authorHanoh Haim <hhaim@cisco.com>2016-01-07 23:58:22 +0200
committerHanoh Haim <hhaim@cisco.com>2016-01-07 23:58:22 +0200
commit8db09096b9dcf030b7dc744fbd7ee463d8e6fd1b (patch)
tree8de1422ac003e403889b2b248009431aa1176dd3 /scripts/automation
parent7e37a0aabbd351aa899bf7bdb2327eaa61733095 (diff)
parent79b2a5ea59c3b420988891b9f3751579bfbe8e0e (diff)
Merge
Diffstat (limited to 'scripts/automation')
-rwxr-xr-xscripts/automation/regression/aggregate_results.py60
-rwxr-xr-xscripts/automation/regression/misc_methods.py4
-rw-r--r--scripts/automation/regression/reports/.keep0
-rwxr-xr-xscripts/automation/regression/setups/dave/benchmark.yaml118
-rwxr-xr-xscripts/automation/regression/setups/dave/config.yaml94
-rw-r--r--scripts/automation/regression/setups/dummy/config.yaml11
-rw-r--r--scripts/automation/regression/setups/kiwi02/benchmark.yaml138
-rw-r--r--scripts/automation/regression/setups/kiwi02/config.yaml95
-rw-r--r--scripts/automation/regression/setups/trex-dan/benchmark.yaml153
-rw-r--r--scripts/automation/regression/setups/trex-dan/config.yaml69
-rw-r--r--scripts/automation/regression/setups/trex04/benchmark.yaml60
-rw-r--r--scripts/automation/regression/setups/trex04/config.yaml39
-rw-r--r--scripts/automation/regression/setups/trex08/benchmark.yaml37
-rw-r--r--scripts/automation/regression/setups/trex08/config.yaml40
-rw-r--r--scripts/automation/regression/setups/trex09/benchmark.yaml118
-rw-r--r--scripts/automation/regression/setups/trex09/config.yaml67
-rw-r--r--scripts/automation/regression/setups/trex10/benchmark.yaml60
-rw-r--r--scripts/automation/regression/setups/trex10/config.yaml38
-rw-r--r--scripts/automation/regression/setups/trex11/benchmark.yaml133
-rw-r--r--scripts/automation/regression/setups/trex11/config.yaml69
-rw-r--r--scripts/automation/regression/setups/trex12/benchmark.yaml161
-rw-r--r--scripts/automation/regression/setups/trex12/config.yaml68
-rwxr-xr-xscripts/automation/regression/style.css54
-rwxr-xr-xscripts/automation/regression/trex_unit_test.py4
-rw-r--r--scripts/automation/trex_control_plane/client/trex_stateless_sim.py160
25 files changed, 1731 insertions, 119 deletions
diff --git a/scripts/automation/regression/aggregate_results.py b/scripts/automation/regression/aggregate_results.py
index a3a90fbf..cab19d09 100755
--- a/scripts/automation/regression/aggregate_results.py
+++ b/scripts/automation/regression/aggregate_results.py
@@ -138,6 +138,64 @@ def add_category_of_tests(category, tests, hidden = False, category_info_dir = N
html_output += '\n</table>\n</div>'
return html_output
+style_css = """
+html {overflow-y:scroll;}
+
+body {
+ font-size:12px;
+ color:#000000;
+ background-color:#ffffff;
+ margin:0px;
+ font-family:verdana,helvetica,arial,sans-serif;
+}
+
+div {width:100%;}
+
+table,th,td,input,textarea {
+ font-size:100%;
+}
+
+table.reference, table.reference_fail {
+ background-color:#ffffff;
+ border:1px solid #c3c3c3;
+ border-collapse:collapse;
+ vertical-align:middle;
+}
+
+table.reference th {
+ background-color:#e5eecc;
+ border:1px solid #c3c3c3;
+ padding:3px;
+}
+
+table.reference_fail th {
+ background-color:#ffcccc;
+ border:1px solid #c3c3c3;
+ padding:3px;
+}
+
+
+table.reference td, table.reference_fail td {
+ border:1px solid #c3c3c3;
+ padding:3px;
+}
+
+a.example {font-weight:bold}
+
+#a:link,a:visited {color:#900B09; background-color:transparent}
+#a:hover,a:active {color:#FF0000; background-color:transparent}
+
+.linktr {
+ cursor: pointer;
+}
+
+.linktext {
+ color:#0000FF;
+ text-decoration: underline;
+}
+"""
+
+
# main
if __name__ == '__main__':
@@ -276,8 +334,6 @@ if __name__ == '__main__':
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
'''
- with open('style.css') as f:
- style_css = f.read()
html_output += style_css
html_output +='''
</style>
diff --git a/scripts/automation/regression/misc_methods.py b/scripts/automation/regression/misc_methods.py
index f736d805..2341b9be 100755
--- a/scripts/automation/regression/misc_methods.py
+++ b/scripts/automation/regression/misc_methods.py
@@ -38,7 +38,7 @@ def run_remote_command(host, passwd, command_string):
return_code, stdout, stderr = run_command(cmd)
if return_code == 0:
return (return_code, stdout, stderr)
- else:
+ elif passwd is not None:
print 'Trying connection with expect + sshpass.exp...'
cmd = 'sshpass.exp %s %s root "%s"' % (passwd, host, command_string)
return_code, stdout, stderr = run_command(cmd)
@@ -128,7 +128,7 @@ def load_complete_config_file (filepath):
# Handle T-Rex configuration
trex_config['trex_name'] = config["trex"]["hostname"]
- trex_config['trex_password'] = config["trex"]["password"]
+ trex_config['trex_password'] = config["trex"].get("password")
#trex_config['trex_is_dual'] = config["trex"]["is_dual"]
trex_config['trex_cores'] = int(config["trex"]["cores"])
#trex_config['trex_latency'] = int(config["trex"]["latency"])
diff --git a/scripts/automation/regression/reports/.keep b/scripts/automation/regression/reports/.keep
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/scripts/automation/regression/reports/.keep
diff --git a/scripts/automation/regression/setups/dave/benchmark.yaml b/scripts/automation/regression/setups/dave/benchmark.yaml
new file mode 100755
index 00000000..0427f9a1
--- /dev/null
+++ b/scripts/automation/regression/setups/dave/benchmark.yaml
@@ -0,0 +1,118 @@
+################################################################
+#### T-Rex benchmark configuration file ####
+################################################################
+
+test_nbar_simple :
+ multiplier : 0.5
+ cores : 4
+ exp_gbps : 0.5
+ cpu_to_core_ratio : 37270000
+ cpu2core_custom_dev: YES
+ cpu2core_dev : 0.07
+ exp_max_latency : 1000
+
+ nbar_classification:
+ http : 29.95
+ rtp_audio : 20.75
+ oracle_sqlnet : 11.09
+ rtp : 10.9
+ exchange : 8.16
+ citrix : 5.54
+ rtsp : 2.85
+ sctp : 3.83
+ ssl : 2.41
+ sip : 0.09
+ dns : 1.92
+ smtp : 0.56
+ pop3 : 0.36
+ unknown : 3.15
+
+test_rx_check :
+ multiplier : 25
+ cores : 4
+ rx_sample_rate : 128
+ exp_gbps : 0.5
+ cpu_to_core_ratio : 37270000
+ exp_bw : 1
+ exp_latency : 1
+
+test_nat_simple :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ nat_dict :
+ clients_net_start : 16.0.0.0
+ client_acl_wildcard_mask : 0.0.0.255
+ dual_port_mask : 1.0.0.0
+ pool_start : 200.0.0.0
+ pool_netmask : 255.255.255.0
+ multiplier : 400
+ cpu_to_core_ratio : 37270000
+ cores : 4
+ exp_bw : 1
+ exp_latency : 1
+ allow_timeout_dev : YES
+
+test_nat_learning :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 400
+ cores : 4
+ nat_opened : 100000
+ cpu_to_core_ratio : 37270000
+ exp_bw : 1
+ exp_latency : 1
+ allow_timeout_dev : YES
+
+test_routing_imix_64 :
+ multiplier : 2500
+ cores : 4
+ cpu_to_core_ratio : 8900
+ exp_latency : 1
+
+test_routing_imix :
+ multiplier : 70
+ cores : 2
+ cpu_to_core_ratio : 8900
+ exp_latency : 1
+
+test_static_routing_imix :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 70
+ cores : 2
+ cpu_to_core_ratio : 3766666
+ exp_latency : 1
+
+test_static_routing_imix_asymmetric:
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 36
+ cores : 1
+ cpu_to_core_ratio : 3766666
+ exp_latency : 1
+
+test_ipv6_simple :
+ multiplier : 36
+ cores : 4
+ cpu_to_core_ratio : 30070000
+ cpu2core_custom_dev: YES
+ cpu2core_dev : 0.07
+
+
+
diff --git a/scripts/automation/regression/setups/dave/config.yaml b/scripts/automation/regression/setups/dave/config.yaml
new file mode 100755
index 00000000..66e92097
--- /dev/null
+++ b/scripts/automation/regression/setups/dave/config.yaml
@@ -0,0 +1,94 @@
+################################################################
+#### T-Rex nightly test configuration file ####
+################################################################
+
+
+### T-Rex configuration:
+# hostname - can be DNS name or IP for the TRex machine for ssh to the box
+# password - root password for TRex machine
+# is_dual - should the TRex inject with -p ?
+# version_path - path to the t-rex version and executable
+# cores - how many cores should be used
+# latency - rate of latency packets injected by the TRex
+# modes - list of modes (tagging) of this setup (loopback, virtual etc.)
+# * loopback - Trex works via loopback. Router and TFTP configurations may be skipped.
+# * virtual - virtual OS (accept low CPU utilization in tests)
+
+### Router configuration:
+# hostname - the router hostname as apears in ______# cli prefix
+# ip_address - the router's ip that can be used to communicate with
+# image - the desired imaged wished to be loaded as the router's running config
+# line_password - router password when access via Telent
+# en_password - router password when changing to "enable" mode
+# interfaces - an array of client-server pairs, representing the interfaces configurations of the router
+# configurations - an array of configurations that could possibly loaded into the router during the test.
+# The "clean" configuration is a mandatory configuration the router will load with to run the basic test bench
+
+### TFTP configuration:
+# hostname - the tftp hostname
+# ip_address - the tftp's ip address
+# images_path - the tftp's relative path in which the router's images are located
+
+### Test_misc configuration:
+# expected_bw - the "golden" bandwidth (in Gbps) results planned on receiving from the test
+
+trex:
+ hostname : cpp-rtp-trex-01
+ cores : 4
+
+router:
+ model : ESP100
+ hostname : cpp-rtp-ts-15
+ ip_address : 172.18.4.34
+ port : 2054
+ image : trex_regression_v155_315.bin
+ line_password : cisco
+ en_password : cisco
+ mgmt_interface : dummy
+ clean_config : dummy
+ intf_masking : 255.255.255.0
+ ipv6_mask : 64
+ interfaces :
+ - client :
+ name : TenGigabitEthernet0/0/0
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ server :
+ name : TenGigabitEthernet0/1/0
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ vrf_name :
+ - client :
+ name : TenGigabitEthernet0/2/0
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ server :
+ name : TenGigabitEthernet0/3/0
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ vrf_name :
+ - client :
+ name : TenGigabitEthernet1/0/0
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ server :
+ name : TenGigabitEthernet1/1/0
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ vrf_name :
+ - client :
+ name : TenGigabitEthernet1/2/0
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ server :
+ name : TenGigabitEthernet1/3/0
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ vrf_name :
+
+
+tftp:
+ hostname : ats-asr-srv-1
+ ip_address : 10.56.128.23
+ root_dir : /auto/avc-devtest/images/
+ images_path : /images/RP1/
diff --git a/scripts/automation/regression/setups/dummy/config.yaml b/scripts/automation/regression/setups/dummy/config.yaml
new file mode 100644
index 00000000..8426ec6c
--- /dev/null
+++ b/scripts/automation/regression/setups/dummy/config.yaml
@@ -0,0 +1,11 @@
+################################################################
+#### T-Rex nightly test configuration file ####
+################################################################
+
+
+# dummy setup, all Trex tests are expected to be skipped
+
+trex:
+ hostname : csi-trex-04
+ cores : 2
+ modes : [loopback, virtual, dummy_mode]
diff --git a/scripts/automation/regression/setups/kiwi02/benchmark.yaml b/scripts/automation/regression/setups/kiwi02/benchmark.yaml
new file mode 100644
index 00000000..b50662e1
--- /dev/null
+++ b/scripts/automation/regression/setups/kiwi02/benchmark.yaml
@@ -0,0 +1,138 @@
+################################################################
+#### T-Rex benchmark configuration file ####
+################################################################
+
+test_nbar_simple :
+ multiplier : 20
+ cores : 2
+ exp_gbps : 4.5
+ cpu_to_core_ratio : 37270000
+ cpu2core_custom_dev: YES
+ cpu2core_dev : 0.07
+ exp_max_latency : 1000
+
+ nbar_classification:
+ http : 30.41
+ rtp_audio : 21.22
+ rtp : 11.4
+ oracle_sqlnet : 11.3
+ exchange : 10.95
+ citrix : 5.65
+ rtsp : 2.67
+ dns : 1.95
+ smtp : 0.57
+ pop3 : 0.36
+ sctp : 0.09
+ sip : 0.09
+ ssl : 0.06
+ unknown : 3.2
+
+test_rx_check :
+ multiplier : 25
+ cores : 4
+ rx_sample_rate : 128
+ exp_gbps : 0.5
+ cpu_to_core_ratio : 37270000
+ exp_bw : 1
+ exp_latency : 1
+
+test_nat_simple :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ nat_dict :
+ clients_net_start : 16.0.0.0
+ client_acl_wildcard_mask : 0.0.0.255
+ dual_port_mask : 1.0.0.0
+ pool_start : 200.0.0.0
+ pool_netmask : 255.255.255.0
+ multiplier : 400
+ cpu_to_core_ratio : 37270000
+ cores : 4
+ exp_bw : 1
+ exp_latency : 1
+ allow_timeout_dev : YES
+
+test_nat_learning :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 400
+ cores : 4
+ nat_opened : 100000
+ cpu_to_core_ratio : 37270000
+ exp_bw : 1
+ exp_latency : 1
+ allow_timeout_dev : YES
+
+test_routing_imix_64 :
+ multiplier : 2500
+ cores : 4
+ cpu_to_core_ratio : 8900
+ exp_latency : 1
+
+test_routing_imix :
+ multiplier : 36
+ cores : 4
+ cpu_to_core_ratio : 8900
+ exp_latency : 1
+
+test_static_routing_imix :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 36
+ cores : 4
+ cpu_to_core_ratio : 3766666
+ exp_latency : 1
+
+test_static_routing_imix_asymmetric:
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 19
+ cores : 4
+ cpu_to_core_ratio : 3766666
+ exp_latency : 1
+
+test_ipv6_simple :
+ multiplier : 36
+ cores : 4
+ cpu_to_core_ratio : 30070000
+ cpu2core_custom_dev: YES
+ cpu2core_dev : 0.07
+
+
+test_rx_check_sfr:
+ multiplier : 25
+ cores : 4
+ rx_sample_rate : 32
+
+test_rx_check_http:
+ multiplier : 40000
+ cores : 2
+ rx_sample_rate : 32
+
+test_rx_check_sfr_ipv6:
+ multiplier : 25
+ cores : 4
+ rx_sample_rate : 32
+
+test_rx_check_http_ipv6:
+ multiplier : 40000
+ cores : 2
+ rx_sample_rate : 32
+
+
diff --git a/scripts/automation/regression/setups/kiwi02/config.yaml b/scripts/automation/regression/setups/kiwi02/config.yaml
new file mode 100644
index 00000000..1154b558
--- /dev/null
+++ b/scripts/automation/regression/setups/kiwi02/config.yaml
@@ -0,0 +1,95 @@
+################################################################
+#### T-Rex nightly test configuration file ####
+################################################################
+
+
+### T-Rex configuration:
+# hostname - can be DNS name or IP for the TRex machine for ssh to the box
+# password - root password for TRex machine
+# is_dual - should the TRex inject with -p ?
+# version_path - path to the t-rex version and executable
+# cores - how many cores should be used
+# latency - rate of latency packets injected by the TRex
+# modes - list of modes (tagging) of this setup (loopback, virtual etc.)
+# * loopback - Trex works via loopback. Router and TFTP configurations may be skipped.
+# * VM - Virtual OS (accept low CPU utilization in tests, latency can get spikes)
+# * virt_nics - NICs are virtual (VMXNET3 etc.)
+
+### Router configuration:
+# hostname - the router hostname as apears in ______# cli prefix
+# ip_address - the router's ip that can be used to communicate with
+# image - the desired imaged wished to be loaded as the router's running config
+# line_password - router password when access via Telent
+# en_password - router password when changing to "enable" mode
+# interfaces - an array of client-server pairs, representing the interfaces configurations of the router
+# configurations - an array of configurations that could possibly loaded into the router during the test.
+# The "clean" configuration is a mandatory configuration the router will load with to run the basic test bench
+
+### TFTP configuration:
+# hostname - the tftp hostname
+# ip_address - the tftp's ip address
+# images_path - the tftp's relative path in which the router's images are located
+
+### Test_misc configuration:
+# expected_bw - the "golden" bandwidth (in Gbps) results planned on receiving from the test
+
+trex:
+ hostname : 10.56.217.210 #10.56.192.189
+ cores : 4
+
+router:
+ model : ESP100
+ hostname : csi-mcp-asr1k-40
+ ip_address : 10.56.192.57
+ image : BLD_V155_2_S_XE315_THROTTLE_LATEST_20150424_100040-std.bin # is in harddisk of router
+ #image : asr1000rp2-adventerprisek9.2014-11-10_18.33_etis.bin
+ line_password : cisco
+ en_password : cisco
+ mgmt_interface : GigabitEthernet0
+ clean_config : /tmp/asr1001_TRex_clean_config.cfg
+ intf_masking : 255.255.255.0
+ ipv6_mask : 64
+ interfaces :
+ - client :
+ name : TenGigabitEthernet0/0/0
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ server :
+ name : TenGigabitEthernet0/1/0
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ vrf_name : duplicate
+ - client :
+ name : TenGigabitEthernet0/2/0
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ server :
+ name : TenGigabitEthernet0/3/0
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ vrf_name : duplicate
+ - client :
+ name : TenGigabitEthernet1/0/0
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ server :
+ name : TenGigabitEthernet1/1/0
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ vrf_name :
+ - client :
+ name : TenGigabitEthernet1/2/0
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ server :
+ name : TenGigabitEthernet1/3/0
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ vrf_name :
+
+
+tftp:
+ hostname : kiwi02_tftp_server
+ ip_address : 10.56.217.7
+ root_dir : /scratch/tftp/
+ images_path : hhaim/
diff --git a/scripts/automation/regression/setups/trex-dan/benchmark.yaml b/scripts/automation/regression/setups/trex-dan/benchmark.yaml
new file mode 100644
index 00000000..419fe7b3
--- /dev/null
+++ b/scripts/automation/regression/setups/trex-dan/benchmark.yaml
@@ -0,0 +1,153 @@
+###############################################################
+#### TRex benchmark configuration file ####
+###############################################################
+
+test_nbar_simple :
+ multiplier : 1.5
+ cores : 1
+ exp_gbps : 0.5
+ cpu_to_core_ratio : 20800000
+ cpu2core_custom_dev: YES
+ cpu2core_dev : 0.07
+ exp_max_latency : 1000
+
+ nbar_classification:
+ http : 30.3
+ rtp_audio : 21.06
+ oracle_sqlnet : 11.25
+ rtp : 11.1
+ exchange : 10.16
+ citrix : 5.6
+ rtsp : 2.84
+ sctp : 0.65
+ ssl : 0.8
+ sip : 0.09
+ dns : 1.95
+ smtp : 0.57
+ pop3 : 0.36
+ unknown : 3.19
+
+test_rx_check :
+ multiplier : 0.8
+ cores : 1
+ rx_sample_rate : 128
+ exp_gbps : 0.5
+ cpu_to_core_ratio : 37270000
+ exp_bw : 1
+ exp_latency : 1
+
+test_nat_simple :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ nat_dict :
+ clients_net_start : 16.0.0.0
+ client_acl_wildcard_mask : 0.0.0.255
+ dual_port_mask : 1.0.0.0
+ pool_start : 200.0.0.0
+ pool_netmask : 255.255.255.0
+ multiplier : 150
+ cores : 1
+ cpu_to_core_ratio : 37270000
+ exp_bw : 1
+ exp_latency : 1
+ allow_timeout_dev : YES
+
+test_nat_learning :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 150
+ cores : 1
+ nat_opened : 40000
+ cpu_to_core_ratio : 270
+ exp_bw : 1
+ exp_latency : 1
+ allow_timeout_dev : YES
+
+test_routing_imix_64 :
+ multiplier : 28
+ cores : 1
+ cpu_to_core_ratio : 280
+ exp_latency : 1
+
+test_routing_imix :
+ multiplier : 1
+ cores : 1
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_static_routing_imix :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 0.7
+ cores : 1
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_static_routing_imix_asymmetric:
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 0.8
+ cores : 1
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_ipv6_simple :
+ multiplier : 1.5
+ cores : 1
+ cpu_to_core_ratio : 30070000
+ cpu2core_custom_dev: YES
+ cpu2core_dev : 0.07
+
+
+test_rx_check_sfr:
+ multiplier : 1.7
+ cores : 2
+ rx_sample_rate : 16
+
+test_rx_check_http:
+ multiplier : 2200
+ cores : 1
+ rx_sample_rate : 16
+
+test_rx_check_sfr_ipv6:
+ multiplier : 1.7
+ cores : 2
+ rx_sample_rate : 16
+
+test_rx_check_http_ipv6:
+ multiplier : 2200
+ cores : 1
+ rx_sample_rate : 16
+
+test_rx_check_http_negative:
+ multiplier : 2200
+ cores : 1
+ rx_sample_rate : 16
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ nat_dict :
+ clients_net_start : 16.0.0.0
+ client_acl_wildcard_mask : 0.0.0.255
+ dual_port_mask : 1.0.0.0
+ pool_start : 200.0.0.0
+ pool_netmask : 255.255.255.0 \ No newline at end of file
diff --git a/scripts/automation/regression/setups/trex-dan/config.yaml b/scripts/automation/regression/setups/trex-dan/config.yaml
new file mode 100644
index 00000000..ae60f9ad
--- /dev/null
+++ b/scripts/automation/regression/setups/trex-dan/config.yaml
@@ -0,0 +1,69 @@
+################################################################
+#### T-Rex nightly test configuration file ####
+################################################################
+
+
+### T-Rex configuration:
+# hostname - can be DNS name or IP for the TRex machine for ssh to the box
+# is_dual - should the TRex inject with -p ?
+# version_path - path to the t-rex version and executable
+# cores - how many cores should be used
+# latency - rate of latency packets injected by the TRex
+# modes - list of modes (tagging) of this setup (loopback, virtual etc.)
+# * loopback - Trex works via loopback. Router and TFTP configurations may be skipped.
+# * VM - Virtual OS (accept low CPU utilization in tests, latency can get spikes)
+# * virt_nics - NICs are virtual (VMXNET3 etc.)
+
+### Router configuration:
+# hostname - the router hostname as apears in ______# cli prefix
+# ip_address - the router's ip that can be used to communicate with
+# image - the desired imaged wished to be loaded as the router's running config
+# line_password - router password when access via Telent
+# en_password - router password when changing to "enable" mode
+# interfaces - an array of client-server pairs, representing the interfaces configurations of the router
+# configurations - an array of configurations that could possibly loaded into the router during the test.
+# The "clean" configuration is a mandatory configuration the router will load with to run the basic test bench
+
+### TFTP configuration:
+# hostname - the tftp hostname
+# ip_address - the tftp's ip address
+# images_path - the tftp's relative path in which the router's images are located
+
+### Test_misc configuration:
+# expected_bw - the "golden" bandwidth (in Gbps) results planned on receiving from the test
+
+trex:
+ hostname : trex-dan
+# version_path : /auto/proj-pcube-b/apps/PL-b/tools/bp_sim2/v1.57/ #/auto/srg-sce-swinfra-usr/emb/users/danklei/Work/asr1k/emb/private/bpsim/main/scripts
+ cores : 2
+ modes : [VM]
+
+router:
+ model : 1RU
+ hostname : ASR1001_T-Rex
+ ip_address : 10.56.199.247
+ image : asr1001-universalk9.BLD_V155_1_S_XE314_THROTTLE_LATEST_20141112_090734-std.bin
+ #image : asr1001-universalk9.BLD_V155_2_S_XE315_THROTTLE_LATEST_20150121_110036-std.bin
+ #image : asr1001-universalk9.BLD_V155_2_S_XE315_THROTTLE_LATEST_20150324_100047-std.bin
+ line_password : lab
+ en_password : lab
+ mgmt_interface : GigabitEthernet0/0/0
+ clean_config : /Configurations/danklei/asr1001_TRex_clean_config.cfg
+ intf_masking : 255.255.255.0
+ ipv6_mask : 64
+ interfaces :
+ - client :
+ name : GigabitEthernet0/0/1
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ server :
+ name : GigabitEthernet0/0/2
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ vrf_name : null
+
+tftp:
+ hostname : ats-asr-srv-1
+ ip_address : 10.56.128.23
+ root_dir : /auto/avc-devtest/
+ images_path : /images/1RU/
diff --git a/scripts/automation/regression/setups/trex04/benchmark.yaml b/scripts/automation/regression/setups/trex04/benchmark.yaml
new file mode 100644
index 00000000..d448910e
--- /dev/null
+++ b/scripts/automation/regression/setups/trex04/benchmark.yaml
@@ -0,0 +1,60 @@
+################################################################
+#### T-Rex benchmark configuration file ####
+################################################################
+
+
+test_rx_check :
+ multiplier : 0.8
+ cores : 1
+ rx_sample_rate : 128
+ exp_gbps : 0.5
+ cpu_to_core_ratio : 37270000
+ exp_bw : 1
+ exp_latency : 1
+
+
+test_routing_imix_64 :
+ multiplier : 28
+ cores : 1
+ cpu_to_core_ratio : 280
+ exp_latency : 1
+
+test_routing_imix :
+ multiplier : 0.8
+ cores : 1
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_static_routing_imix :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 0.8
+ cores : 1
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_static_routing_imix_asymmetric:
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 0.8
+ cores : 1
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_ipv6_simple :
+ multiplier : 0.5
+ cores : 1
+ cpu_to_core_ratio : 30070000
+ cpu2core_custom_dev: YES
+ cpu2core_dev : 0.07
+
+
+
diff --git a/scripts/automation/regression/setups/trex04/config.yaml b/scripts/automation/regression/setups/trex04/config.yaml
new file mode 100644
index 00000000..f9cc21df
--- /dev/null
+++ b/scripts/automation/regression/setups/trex04/config.yaml
@@ -0,0 +1,39 @@
+################################################################
+#### T-Rex nightly test configuration file ####
+################################################################
+
+
+### T-Rex configuration:
+# hostname - can be DNS name or IP for the TRex machine for ssh to the box
+# password - root password for TRex machine
+# is_dual - should the TRex inject with -p ?
+# version_path - path to the t-rex version and executable
+# cores - how many cores should be used
+# latency - rate of latency packets injected by the Trex
+# modes - list of modes (tagging) of this setup (loopback, virtual etc.)
+# * loopback - Trex works via loopback. Router and TFTP configurations may be skipped.
+# * VM - Virtual OS (accept low CPU utilization in tests, latency can get spikes)
+# * virt_nics - NICs are virtual (VMXNET3 etc. have their limitations in tests)
+
+### Router configuration:
+# hostname - the router hostname as apears in ______# cli prefix
+# ip_address - the router's ip that can be used to communicate with
+# image - the desired imaged wished to be loaded as the router's running config
+# line_password - router password when access via Telent
+# en_password - router password when changing to "enable" mode
+# interfaces - an array of client-server pairs, representing the interfaces configurations of the router
+# configurations - an array of configurations that could possibly loaded into the router during the test.
+# The "clean" configuration is a mandatory configuration the router will load with to run the basic test bench
+
+### TFTP configuration:
+# hostname - the tftp hostname
+# ip_address - the tftp's ip address
+# images_path - the tftp's relative path in which the router's images are located
+
+### Test_misc configuration:
+# expected_bw - the "golden" bandwidth (in Gbps) results planned on receiving from the test
+
+trex:
+ hostname : csi-trex-04
+ cores : 2
+ modes : [loopback, virt_nics, VM]
diff --git a/scripts/automation/regression/setups/trex08/benchmark.yaml b/scripts/automation/regression/setups/trex08/benchmark.yaml
new file mode 100644
index 00000000..3676abf3
--- /dev/null
+++ b/scripts/automation/regression/setups/trex08/benchmark.yaml
@@ -0,0 +1,37 @@
+###############################################################
+#### TRex benchmark configuration file ####
+###############################################################
+
+test_routing_imix_64 :
+ multiplier : 8000
+ cores : 7
+ cpu_to_core_ratio : 280
+ exp_latency : 1
+
+test_routing_imix :
+ multiplier : 80
+ cores : 4
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_static_routing_imix_asymmetric:
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 70
+ cores : 3
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_ipv6_simple :
+ multiplier : 80
+ cores : 7
+ cpu_to_core_ratio : 30070000
+ cpu2core_custom_dev: YES
+ cpu2core_dev : 0.07
+
+
+
diff --git a/scripts/automation/regression/setups/trex08/config.yaml b/scripts/automation/regression/setups/trex08/config.yaml
new file mode 100644
index 00000000..fd3a6a78
--- /dev/null
+++ b/scripts/automation/regression/setups/trex08/config.yaml
@@ -0,0 +1,40 @@
+################################################################
+#### T-Rex nightly test configuration file ####
+################################################################
+
+
+### T-Rex configuration:
+# hostname - can be DNS name or IP for the TRex machine for ssh to the box
+# password - root password for TRex machine
+# is_dual - should the TRex inject with -p ?
+# version_path - path to the t-rex version and executable
+# cores - how many cores should be used
+# latency - rate of latency packets injected by the TRex
+# modes - list of modes (tagging) of this setup (loopback etc.)
+# * loopback - Trex works via loopback. Router and TFTP configurations may be skipped.
+# * VM - Virtual OS (accept low CPU utilization in tests, latency can get spikes)
+# * virt_nics - NICs are virtual (VMXNET3 etc.)
+
+### Router configuration:
+# hostname - the router hostname as apears in ______# cli prefix
+# ip_address - the router's ip that can be used to communicate with
+# image - the desired imaged wished to be loaded as the router's running config
+# line_password - router password when access via Telent
+# en_password - router password when changing to "enable" mode
+# interfaces - an array of client-server pairs, representing the interfaces configurations of the router
+# configurations - an array of configurations that could possibly loaded into the router during the test.
+# The "clean" configuration is a mandatory configuration the router will load with to run the basic test bench
+
+### TFTP configuration:
+# hostname - the tftp hostname
+# ip_address - the tftp's ip address
+# images_path - the tftp's relative path in which the router's images are located
+
+### Test_misc configuration:
+# expected_bw - the "golden" bandwidth (in Gbps) results planned on receiving from the test
+
+trex:
+ hostname : csi-trex-08
+ cores : 2
+ modes : ['loopback']
+
diff --git a/scripts/automation/regression/setups/trex09/benchmark.yaml b/scripts/automation/regression/setups/trex09/benchmark.yaml
new file mode 100644
index 00000000..3f7b9a95
--- /dev/null
+++ b/scripts/automation/regression/setups/trex09/benchmark.yaml
@@ -0,0 +1,118 @@
+###############################################################
+#### TRex benchmark configuration file ####
+###############################################################
+
+test_nbar_simple :
+ multiplier : 1.5
+ cores : 1
+ exp_gbps : 0.5
+ cpu_to_core_ratio : 20800000
+ cpu2core_custom_dev: YES
+ cpu2core_dev : 0.07
+ exp_max_latency : 1000
+
+ nbar_classification:
+ http : 30.3
+ rtp_audio : 21.06
+ oracle_sqlnet : 11.25
+ rtp : 11.1
+ exchange : 10.16
+ citrix : 5.6
+ rtsp : 2.84
+ sctp : 0.65
+ ssl : 0.8
+ sip : 0.09
+ dns : 1.95
+ smtp : 0.57
+ pop3 : 0.36
+ unknown : 3.19
+
+test_rx_check :
+ multiplier : 0.8
+ cores : 1
+ rx_sample_rate : 128
+ exp_gbps : 0.5
+ cpu_to_core_ratio : 37270000
+ exp_bw : 1
+ exp_latency : 1
+
+test_nat_simple :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ nat_dict :
+ clients_net_start : 16.0.0.0
+ client_acl_wildcard_mask : 0.0.0.255
+ dual_port_mask : 1.0.0.0
+ pool_start : 200.0.0.0
+ pool_netmask : 255.255.255.0
+ multiplier : 150
+ cores : 1
+ cpu_to_core_ratio : 37270000
+ exp_bw : 1
+ exp_latency : 1
+ allow_timeout_dev : YES
+
+test_nat_learning :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 150
+ cores : 1
+ nat_opened : 40000
+ cpu_to_core_ratio : 270
+ exp_bw : 1
+ exp_latency : 1
+ allow_timeout_dev : YES
+
+test_routing_imix_64 :
+ multiplier : 28
+ cores : 1
+ cpu_to_core_ratio : 280
+ exp_latency : 1
+
+test_routing_imix :
+ multiplier : 1
+ cores : 1
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_static_routing_imix :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 0.7
+ cores : 1
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_static_routing_imix_asymmetric:
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 0.8
+ cores : 1
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_ipv6_simple :
+ multiplier : 1.5
+ cores : 1
+ cpu_to_core_ratio : 30070000
+ cpu2core_custom_dev: YES
+ cpu2core_dev : 0.07
+
+
+
diff --git a/scripts/automation/regression/setups/trex09/config.yaml b/scripts/automation/regression/setups/trex09/config.yaml
new file mode 100644
index 00000000..9820ce6e
--- /dev/null
+++ b/scripts/automation/regression/setups/trex09/config.yaml
@@ -0,0 +1,67 @@
+################################################################
+#### T-Rex nightly test configuration file ####
+################################################################
+
+
+### T-Rex configuration:
+# hostname - can be DNS name or IP for the TRex machine for ssh to the box
+# password - root password for TRex machine
+# is_dual - should the TRex inject with -p ?
+# version_path - path to the t-rex version and executable
+# cores - how many cores should be used
+# latency - rate of latency packets injected by the TRex
+# modes - list of modes (tagging) of this setup (loopback, virtual etc.)
+# * loopback - Trex works via loopback. Router and TFTP configurations may be skipped.
+# * virtual - virtual OS (accept low CPU utilization in tests)
+
+### Router configuration:
+# hostname - the router hostname as apears in ______# cli prefix
+# ip_address - the router's ip that can be used to communicate with
+# image - the desired imaged wished to be loaded as the router's running config
+# line_password - router password when access via Telent
+# en_password - router password when changing to "enable" mode
+# interfaces - an array of client-server pairs, representing the interfaces configurations of the router
+# configurations - an array of configurations that could possibly loaded into the router during the test.
+# The "clean" configuration is a mandatory configuration the router will load with to run the basic test bench
+
+### TFTP configuration:
+# hostname - the tftp hostname
+# ip_address - the tftp's ip address
+# images_path - the tftp's relative path in which the router's images are located
+
+### Test_misc configuration:
+# expected_bw - the "golden" bandwidth (in Gbps) results planned on receiving from the test
+
+trex:
+ hostname : csi-trex-09
+ cores : 2
+
+router:
+ model : 1RU
+ hostname : ASR1001_T-Rex
+ ip_address : 10.56.199.247
+ image : asr1001-universalk9.BLD_V155_1_S_XE314_THROTTLE_LATEST_20141112_090734-std.bin
+ #image : asr1001-universalk9.BLD_V155_2_S_XE315_THROTTLE_LATEST_20150121_110036-std.bin
+ #image : asr1001-universalk9.BLD_V155_2_S_XE315_THROTTLE_LATEST_20150324_100047-std.bin
+ line_password : lab
+ en_password : lab
+ mgmt_interface : GigabitEthernet0/0/0
+ clean_config : /Configurations/danklei/asr1001_TRex_clean_config.cfg
+ intf_masking : 255.255.255.0
+ ipv6_mask : 64
+ interfaces :
+ - client :
+ name : GigabitEthernet0/0/1
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ server :
+ name : GigabitEthernet0/0/2
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ vrf_name : null
+
+tftp:
+ hostname : ats-asr-srv-1
+ ip_address : 10.56.128.23
+ root_dir : /auto/avc-devtest/
+ images_path : /images/1RU/
diff --git a/scripts/automation/regression/setups/trex10/benchmark.yaml b/scripts/automation/regression/setups/trex10/benchmark.yaml
new file mode 100644
index 00000000..999eff3d
--- /dev/null
+++ b/scripts/automation/regression/setups/trex10/benchmark.yaml
@@ -0,0 +1,60 @@
+################################################################
+#### T-Rex benchmark configuration file ####
+################################################################
+
+
+test_rx_check :
+ multiplier : 0.8
+ cores : 1
+ rx_sample_rate : 128
+ exp_gbps : 0.5
+ cpu_to_core_ratio : 37270000
+ exp_bw : 1
+ exp_latency : 1
+
+
+test_routing_imix_64 :
+ multiplier : 37
+ cores : 1
+ cpu_to_core_ratio : 280
+ exp_latency : 1
+
+test_routing_imix :
+ multiplier : 0.8
+ cores : 1
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_static_routing_imix :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 0.8
+ cores : 1
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_static_routing_imix_asymmetric:
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 0.8
+ cores : 1
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_ipv6_simple :
+ multiplier : 0.5
+ cores : 1
+ cpu_to_core_ratio : 30070000
+ cpu2core_custom_dev: YES
+ cpu2core_dev : 0.07
+
+
+
diff --git a/scripts/automation/regression/setups/trex10/config.yaml b/scripts/automation/regression/setups/trex10/config.yaml
new file mode 100644
index 00000000..093911a9
--- /dev/null
+++ b/scripts/automation/regression/setups/trex10/config.yaml
@@ -0,0 +1,38 @@
+################################################################
+#### T-Rex nightly test configuration file ####
+################################################################
+
+
+### T-Rex configuration:
+# hostname - can be DNS name or IP for the TRex machine for ssh to the box
+# password - root password for TRex machine
+# is_dual - should the TRex inject with -p ?
+# version_path - path to the t-rex version and executable
+# cores - how many cores should be used
+# latency - rate of latency packets injected by the Trex
+# modes - list of modes (tagging) of this setup (loopback, virtual etc.)
+# * loopback - Trex works via loopback. Router and TFTP configurations may be skipped.
+# * virtual - virtual OS (accept low CPU utilization in tests)
+
+### Router configuration:
+# hostname - the router hostname as apears in ______# cli prefix
+# ip_address - the router's ip that can be used to communicate with
+# image - the desired imaged wished to be loaded as the router's running config
+# line_password - router password when access via Telent
+# en_password - router password when changing to "enable" mode
+# interfaces - an array of client-server pairs, representing the interfaces configurations of the router
+# configurations - an array of configurations that could possibly loaded into the router during the test.
+# The "clean" configuration is a mandatory configuration the router will load with to run the basic test bench
+
+### TFTP configuration:
+# hostname - the tftp hostname
+# ip_address - the tftp's ip address
+# images_path - the tftp's relative path in which the router's images are located
+
+### Test_misc configuration:
+# expected_bw - the "golden" bandwidth (in Gbps) results planned on receiving from the test
+
+trex:
+ hostname : csi-trex-10
+ cores : 2
+ modes : [loopback, virtual]
diff --git a/scripts/automation/regression/setups/trex11/benchmark.yaml b/scripts/automation/regression/setups/trex11/benchmark.yaml
new file mode 100644
index 00000000..7280cede
--- /dev/null
+++ b/scripts/automation/regression/setups/trex11/benchmark.yaml
@@ -0,0 +1,133 @@
+###############################################################
+#### TRex benchmark configuration file ####
+###############################################################
+
+test_nbar_simple :
+ multiplier : 1.5
+ cores : 1
+ exp_gbps : 0.5
+ cpu_to_core_ratio : 20800000
+ cpu2core_custom_dev: YES
+ cpu2core_dev : 0.07
+ exp_max_latency : 1000
+
+ nbar_classification:
+ http : 30.3
+ rtp_audio : 21.06
+ oracle_sqlnet : 11.25
+ rtp : 11.1
+ exchange : 10.16
+ citrix : 5.6
+ rtsp : 2.84
+ sctp : 0.65
+ ssl : 0.8
+ sip : 0.09
+ dns : 1.95
+ smtp : 0.57
+ pop3 : 0.36
+ unknown : 3.19
+
+test_rx_check :
+ multiplier : 0.8
+ cores : 1
+ rx_sample_rate : 128
+ exp_gbps : 0.5
+ cpu_to_core_ratio : 37270000
+ exp_bw : 1
+ exp_latency : 1
+
+test_nat_simple :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ nat_dict :
+ clients_net_start : 16.0.0.0
+ client_acl_wildcard_mask : 0.0.0.255
+ dual_port_mask : 1.0.0.0
+ pool_start : 200.0.0.0
+ pool_netmask : 255.255.255.0
+ multiplier : 150
+ cores : 1
+ cpu_to_core_ratio : 37270000
+ exp_bw : 1
+ exp_latency : 1
+ allow_timeout_dev : YES
+
+test_nat_learning :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 150
+ cores : 1
+ nat_opened : 40000
+ cpu_to_core_ratio : 270
+ exp_bw : 1
+ exp_latency : 1
+ allow_timeout_dev : YES
+
+test_routing_imix_64 :
+ multiplier : 28
+ cores : 1
+ cpu_to_core_ratio : 280
+ exp_latency : 1
+
+test_routing_imix :
+ multiplier : 1
+ cores : 1
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_static_routing_imix :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 0.7
+ cores : 1
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_static_routing_imix_asymmetric:
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 0.8
+ cores : 1
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_ipv6_simple :
+ multiplier : 1.5
+ cores : 1
+ cpu_to_core_ratio : 30070000
+ cpu2core_custom_dev: YES
+ cpu2core_dev : 0.07
+
+test_rx_check_http_negative:
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ nat_dict :
+ clients_net_start : 16.0.0.0
+ client_acl_wildcard_mask : 0.0.0.255
+ dual_port_mask : 1.0.0.0
+ pool_start : 200.0.0.0
+ pool_netmask : 255.255.255.0
+ multiplier : 4000
+ cores : 1
+ rx_sample_rate : 32
+
diff --git a/scripts/automation/regression/setups/trex11/config.yaml b/scripts/automation/regression/setups/trex11/config.yaml
new file mode 100644
index 00000000..876a1afd
--- /dev/null
+++ b/scripts/automation/regression/setups/trex11/config.yaml
@@ -0,0 +1,69 @@
+################################################################
+#### T-Rex nightly test configuration file ####
+################################################################
+
+
+### T-Rex configuration:
+# hostname - can be DNS name or IP for the TRex machine for ssh to the box
+# password - root password for TRex machine
+# is_dual - should the TRex inject with -p ?
+# version_path - path to the t-rex version and executable
+# cores - how many cores should be used
+# latency - rate of latency packets injected by the TRex
+# modes - list of modes (tagging) of this setup (loopback, virtual etc.)
+# * loopback - Trex works via loopback. Router and TFTP configurations may be skipped.
+# * virtual - virtual OS (accept low CPU utilization in tests)
+
+### Router configuration:
+# hostname - the router hostname as apears in ______# cli prefix
+# ip_address - the router's ip that can be used to communicate with
+# image - the desired imaged wished to be loaded as the router's running config
+# line_password - router password when access via Telent
+# en_password - router password when changing to "enable" mode
+# interfaces - an array of client-server pairs, representing the interfaces configurations of the router
+# configurations - an array of configurations that could possibly loaded into the router during the test.
+# The "clean" configuration is a mandatory configuration the router will load with to run the basic test bench
+
+### TFTP configuration:
+# hostname - the tftp hostname
+# ip_address - the tftp's ip address
+# images_path - the tftp's relative path in which the router's images are located
+
+### Test_misc configuration:
+# expected_bw - the "golden" bandwidth (in Gbps) results planned on receiving from the test
+
+trex:
+ hostname : csi-trex-11
+ cores : 2
+ modes : ['loopback', 'virtual']
+
+router:
+ model : 1RU
+ hostname : ASR1001_T-Rex
+# ip_address : 10.56.199.247
+ ip_address : 10.56.199.247123123123
+ image : asr1001-universalk9.BLD_V155_1_S_XE314_THROTTLE_LATEST_20141112_090734-std.bin
+ #image : asr1001-universalk9.BLD_V155_2_S_XE315_THROTTLE_LATEST_20150121_110036-std.bin
+ #image : asr1001-universalk9.BLD_V155_2_S_XE315_THROTTLE_LATEST_20150324_100047-std.bin
+ line_password : lab
+ en_password : lab
+ mgmt_interface : GigabitEthernet0/0/0
+ clean_config : /Configurations/danklei/asr1001_TRex_clean_config.cfg
+ intf_masking : 255.255.255.0
+ ipv6_mask : 64
+ interfaces :
+ - client :
+ name : GigabitEthernet0/0/1
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ server :
+ name : GigabitEthernet0/0/2
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ vrf_name : null
+
+tftp:
+ hostname : ats-asr-srv-1
+ ip_address : 10.56.128.23
+ root_dir : /auto/avc-devtest/
+ images_path : /images/1RU/
diff --git a/scripts/automation/regression/setups/trex12/benchmark.yaml b/scripts/automation/regression/setups/trex12/benchmark.yaml
new file mode 100644
index 00000000..98f7215e
--- /dev/null
+++ b/scripts/automation/regression/setups/trex12/benchmark.yaml
@@ -0,0 +1,161 @@
+###############################################################
+#### TRex benchmark configuration file ####
+###############################################################
+
+test_nbar_simple :
+ multiplier : 7.5
+ cores : 2
+ exp_gbps : 3.5
+ cpu_to_core_ratio : 20800000
+ cpu2core_custom_dev: YES
+ cpu2core_dev : 0.07
+ exp_max_latency : 1000
+
+ nbar_classification:
+ http : 30.18
+ rtp-audio : 21.27
+ rtp : 11.26
+ oracle_sqlnet : 11.2
+ exchange : 10.78
+ citrix : 5.61
+ rtsp : 2.82
+ dns : 1.94
+ smtp : 0.57
+ pop3 : 0.36
+ ssl : 0.16
+ sctp : 0.13
+ sip : 0.09
+ unknown : 3.54
+
+test_rx_check :
+ multiplier : 13
+ cores : 4
+ rx_sample_rate : 128
+ exp_gbps : 6
+ cpu_to_core_ratio : 37270000
+ exp_bw : 13
+ exp_latency : 1
+
+test_nat_simple :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ nat_dict :
+ clients_net_start : 16.0.0.0
+ client_acl_wildcard_mask : 0.0.0.255
+ dual_port_mask : 1.0.0.0
+ pool_start : 200.0.0.0
+ pool_netmask : 255.255.255.0
+ multiplier : 12000
+ cores : 1
+ cpu_to_core_ratio : 37270000
+ exp_bw : 1
+ exp_latency : 1
+ allow_timeout_dev : YES
+
+test_nat_learning :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 12000
+ cores : 1
+ nat_opened : 40000
+ cpu_to_core_ratio : 270
+ exp_bw : 8
+ exp_latency : 1
+ allow_timeout_dev : YES
+
+test_routing_imix_64 :
+ multiplier : 430
+ cores : 1
+ cpu_to_core_ratio : 280
+ exp_latency : 1
+
+test_routing_imix :
+ multiplier : 10
+ cores : 1
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_static_routing_imix :
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 10
+ cores : 1
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_static_routing_imix_asymmetric:
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ multiplier : 8
+ cores : 1
+ cpu_to_core_ratio : 1800
+ exp_latency : 1
+
+test_ipv6_simple :
+ multiplier : 18
+ cores : 4
+ cpu_to_core_ratio : 30070000
+ cpu2core_custom_dev: YES
+ cpu2core_dev : 0.07
+
+
+test_rx_check_sfr:
+ multiplier : 15
+ cores : 3
+ rx_sample_rate : 16
+ # allow 0.03% errors, bad router
+ error_tolerance : 0.03
+
+test_rx_check_http:
+ multiplier : 15000
+ cores : 1
+ rx_sample_rate : 16
+ # allow 0.03% errors, bad router
+ error_tolerance : 0.03
+
+test_rx_check_sfr_ipv6:
+ multiplier : 15
+ cores : 3
+ rx_sample_rate : 16
+ # allow 0.03% errors, bad router
+ error_tolerance : 0.03
+
+test_rx_check_http_ipv6:
+ multiplier : 15000
+ cores : 1
+ rx_sample_rate : 16
+ # allow 0.03% errors, bad router
+ error_tolerance : 0.03
+
+test_rx_check_http_negative:
+ multiplier : 13000
+ cores : 1
+ rx_sample_rate : 16
+ stat_route_dict :
+ clients_start : 16.0.0.1
+ servers_start : 48.0.0.1
+ dual_port_mask : 1.0.0.0
+ client_destination_mask : 255.0.0.0
+ server_destination_mask : 255.0.0.0
+ nat_dict :
+ clients_net_start : 16.0.0.0
+ client_acl_wildcard_mask : 0.0.0.255
+ dual_port_mask : 1.0.0.0
+ pool_start : 200.0.0.0
+ pool_netmask : 255.255.255.0
diff --git a/scripts/automation/regression/setups/trex12/config.yaml b/scripts/automation/regression/setups/trex12/config.yaml
new file mode 100644
index 00000000..af17db45
--- /dev/null
+++ b/scripts/automation/regression/setups/trex12/config.yaml
@@ -0,0 +1,68 @@
+################################################################
+#### T-Rex nightly test configuration file ####
+################################################################
+
+
+### T-Rex configuration:
+# hostname - can be DNS name or IP for the TRex machine for ssh to the box
+# password - root password for TRex machine
+# is_dual - should the TRex inject with -p ?
+# version_path - path to the t-rex version and executable
+# cores - how many cores should be used
+# latency - rate of latency packets injected by the TRex
+# modes - list of modes (tagging) of this setup (loopback etc.)
+# * loopback - Trex works via loopback. Router and TFTP configurations may be skipped.
+# * VM - Virtual OS (accept low CPU utilization in tests, latency can get spikes)
+# * virt_nics - NICs are virtual (VMXNET3 etc.)
+
+### Router configuration:
+# hostname - the router hostname as apears in ______# cli prefix
+# ip_address - the router's ip that can be used to communicate with
+# image - the desired imaged wished to be loaded as the router's running config
+# line_password - router password when access via Telent
+# en_password - router password when changing to "enable" mode
+# interfaces - an array of client-server pairs, representing the interfaces configurations of the router
+# configurations - an array of configurations that could possibly loaded into the router during the test.
+# The "clean" configuration is a mandatory configuration the router will load with to run the basic test bench
+
+### TFTP configuration:
+# hostname - the tftp hostname
+# ip_address - the tftp's ip address
+# images_path - the tftp's relative path in which the router's images are located
+
+### Test_misc configuration:
+# expected_bw - the "golden" bandwidth (in Gbps) results planned on receiving from the test
+
+trex:
+ hostname : csi-trex-12
+# version_path : /auto/proj-pcube-b/apps/PL-b/tools/bp_sim2/v1.57/ #/auto/srg-sce-swinfra-usr/emb/users/danklei/Work/asr1k/emb/private/bpsim/main/scripts
+ cores : 1
+ modes : [VM]
+
+router:
+ model : ASR1001x
+ hostname : csi-asr-01
+ ip_address : 10.56.216.103
+ image : asr1001x-universalk9_npe.BLD_V155_2_S_XE315_THROTTLE_LATEST_20151121_110441-std_2.SSA.bin
+ line_password : cisco
+ en_password : cisco
+ mgmt_interface : GigabitEthernet0
+ clean_config : /Configurations/danklei/asr1001_TRex_clean_config.cfg
+ intf_masking : 255.255.255.0
+ ipv6_mask : 64
+ interfaces :
+ - client :
+ name : Te0/0/0
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ server :
+ name : Te0/0/1
+ src_mac_addr : 0000.0001.0000
+ dest_mac_addr : 0000.0001.0000
+ vrf_name : null
+
+tftp:
+ hostname : ats-asr-srv-1
+ ip_address : 10.56.128.23
+ root_dir : /auto/avc-devtest/
+ images_path : /images/RP2/
diff --git a/scripts/automation/regression/style.css b/scripts/automation/regression/style.css
deleted file mode 100755
index b5996af1..00000000
--- a/scripts/automation/regression/style.css
+++ /dev/null
@@ -1,54 +0,0 @@
-html {overflow-y:scroll;}
-
-body {
- font-size:12px;
- color:#000000;
- background-color:#ffffff;
- margin:0px;
- font-family:verdana,helvetica,arial,sans-serif;
-}
-
-div {width:100%;}
-
-table,th,td,input,textarea {
- font-size:100%;
-}
-
-table.reference, table.reference_fail {
- background-color:#ffffff;
- border:1px solid #c3c3c3;
- border-collapse:collapse;
- vertical-align:middle;
-}
-
-table.reference th {
- background-color:#e5eecc;
- border:1px solid #c3c3c3;
- padding:3px;
-}
-
-table.reference_fail th {
- background-color:#ffcccc;
- border:1px solid #c3c3c3;
- padding:3px;
-}
-
-
-table.reference td, table.reference_fail td {
- border:1px solid #c3c3c3;
- padding:3px;
-}
-
-a.example {font-weight:bold}
-
-#a:link,a:visited {color:#900B09; background-color:transparent}
-#a:hover,a:active {color:#FF0000; background-color:transparent}
-
-.linktr {
- cursor: pointer;
-}
-
-.linktext {
- color:#0000FF;
- text-decoration: underline;
-} \ No newline at end of file
diff --git a/scripts/automation/regression/trex_unit_test.py b/scripts/automation/regression/trex_unit_test.py
index 9e3652b4..f38eb04e 100755
--- a/scripts/automation/regression/trex_unit_test.py
+++ b/scripts/automation/regression/trex_unit_test.py
@@ -199,10 +199,10 @@ if __name__ == "__main__":
long_test = False
xml_name = 'unit_test.xml'
CTRexScenario.report_dir = 'reports'
- setup_dir = os.getenv('SETUP_DIR', '')#.rstrip('/')
+ setup_dir = os.getenv('SETUP_DIR', '').rstrip('/')
CTRexScenario.setup_dir = check_setup_path(setup_dir)
if not CTRexScenario.setup_dir:
- CTRexScenario.setup_dir = check_setup_path(os.path.join(os.pardir, os.pardir, os.pardir, os.pardir, 'trex-local', 'setups', setup_dir))
+ CTRexScenario.setup_dir = check_setup_path(os.path.join('setups', setup_dir))
if CTRexScenario.setup_dir:
CTRexScenario.setup_name = os.path.basename(CTRexScenario.setup_dir)
diff --git a/scripts/automation/trex_control_plane/client/trex_stateless_sim.py b/scripts/automation/trex_control_plane/client/trex_stateless_sim.py
index 5d06c6e5..d38411a3 100644
--- a/scripts/automation/trex_control_plane/client/trex_stateless_sim.py
+++ b/scripts/automation/trex_control_plane/client/trex_stateless_sim.py
@@ -26,6 +26,8 @@ except ImportError:
from client_utils.jsonrpc_client import JsonRpcClient, BatchMessage
from client_utils.packet_builder import CTRexPktBuilder
+from client_utils import parsing_opts
+
import json
from common.trex_streams import *
@@ -37,6 +39,8 @@ import os
from dpkt import pcap
from operator import itemgetter
+class BpSimException(Exception):
+ pass
def merge_cap_files (pcap_file_list, out_filename, delete_src = False):
@@ -68,29 +72,21 @@ def merge_cap_files (pcap_file_list, out_filename, delete_src = False):
class SimRun(object):
- def __init__ (self, yaml_file, dp_core_count, core_index, packet_limit, output_filename, is_valgrind, is_gdb, limit):
+ def __init__ (self, options):
- self.yaml_file = yaml_file
- self.output_filename = output_filename
- self.dp_core_count = dp_core_count
- self.core_index = core_index
- self.packet_limit = packet_limit
- self.is_valgrind = is_valgrind
- self.is_gdb = is_gdb
- self.limit = limit
+ self.options = options
# dummies
self.handler = 0
self.port_id = 0
- self.mul = {"op": "abs",
- "type": "raw",
- "value": 1}
+
+ self.mul = options.mult
self.duration = -1
def load_yaml_file (self):
streams_db = CStreamsDB()
- stream_list = streams_db.load_yaml_file(self.yaml_file)
+ stream_list = streams_db.load_yaml_file(self.options.input_file)
streams_json = []
for stream in stream_list.compiled:
@@ -130,44 +126,70 @@ class SimRun(object):
f.close()
try:
- cmd = ['bp-sim-64-debug',
- '--pcap',
- '--sl',
- '--cores',
- str(self.dp_core_count),
- '--limit',
- str(self.limit),
- '-f',
- f.name,
- '-o',
- self.output_filename]
-
- if self.core_index != None:
- cmd += ['--core_index', str(self.core_index)]
-
- if self.is_valgrind:
- cmd = ['valgrind', '--leak-check=full'] + cmd
- elif self.is_gdb:
- cmd = ['gdb', '--args'] + cmd
-
- print "executing command: '{0}'".format(" ".join(cmd))
- subprocess.call(cmd)
-
- # core index
- if (self.dp_core_count > 1) and (self.core_index == None):
- self.merge_results()
-
+ if self.options.json:
+ with open(f.name) as file:
+ data = "\n".join(file.readlines())
+ print json.dumps(json.loads(data), indent = 4, separators=(',', ': '), sort_keys = True)
+ else:
+ self.execute_bp_sim(f.name)
finally:
os.unlink(f.name)
+
+ def execute_bp_sim (self, json_filename):
+ exe = 'bp-sim-64' if self.options.release else 'bp-sim-64-debug'
+ if not os.path.exists(exe):
+ print "cannot find executable '{0}'".format(exe)
+ exit(-1)
+
+ cmd = [exe,
+ '--pcap',
+ '--sl',
+ '--cores',
+ str(self.options.cores),
+ '--limit',
+ str(self.options.limit),
+ '-f',
+ json_filename,
+ '-o',
+ self.options.output_file]
+
+ if self.options.dry:
+ cmd += ['--dry']
+
+ if self.options.core_index != None:
+ cmd += ['--core_index', str(self.options.core_index)]
+
+ if self.options.valgrind:
+ cmd = ['valgrind', '--leak-check=full', '--error-exitcode=1'] + cmd
+
+ elif self.options.gdb:
+ cmd = ['gdb', '--args'] + cmd
+
+ print "executing command: '{0}'".format(" ".join(cmd))
+ rc = subprocess.call(cmd)
+ if rc != 0:
+ raise BpSimException()
+
+ self.merge_results()
+
+
def merge_results (self):
- if (self.core_index != None) or (self.dp_core_count == 1):
- # nothing to do
+ if self.options.dry:
+ return
+
+ if self.options.cores == 1:
return
- inputs = ["{0}-{1}".format(self.output_filename, index) for index in xrange(0, self.dp_core_count)]
- merge_cap_files(inputs, self.output_filename, delete_src = True)
+ if self.options.core_index != None:
+ return
+
+
+ print "Mering cores output to a single pcap file...\n"
+ inputs = ["{0}-{1}".format(self.options.output_file, index) for index in xrange(0, self.options.cores)]
+ merge_cap_files(inputs, self.options.output_file, delete_src = True)
+
@@ -180,8 +202,8 @@ def is_valid_file(filename):
def unsigned_int (x):
x = int(x)
- if x <= 0:
- raise argparse.ArgumentTypeError("argument must be >= 1")
+ if x < 0:
+ raise argparse.ArgumentTypeError("argument must be >= 0")
return x
@@ -207,16 +229,26 @@ def setParserOptions():
default = None,
type = int)
- parser.add_argument("-j", "--join",
- help = "run and join output from 0..core_count [default is False]",
- default = False,
- type = bool)
+ parser.add_argument("-r", "--release",
+ help = "runs on release image instead of debug [default is False]",
+ action = "store_true",
+ default = False)
+
+ parser.add_argument("-s", "--dry",
+ help = "dry run only (nothing will be written to the file) [default is False]",
+ action = "store_true",
+ default = False)
parser.add_argument("-l", "--limit",
help = "limit test total packet count [default is 5000]",
default = 5000,
type = unsigned_int)
+ parser.add_argument('-m', '--multiplier',
+ help = parsing_opts.match_multiplier_help,
+ dest = 'mult',
+ default = {'type':'raw', 'value':1, 'op': 'abs'},
+ type = parsing_opts.match_multiplier_strict)
group = parser.add_mutually_exclusive_group()
@@ -230,6 +262,11 @@ def setParserOptions():
action = "store_true",
default = False)
+ group.add_argument("--json",
+ help = "generate JSON output only to stdout [default is False]",
+ action = "store_true",
+ default = False)
+
return parser
@@ -239,6 +276,9 @@ def validate_args (parser, options):
if not options.core_index in xrange(0, options.cores):
parser.error("DP core index valid range is 0 to {0}".format(options.cores - 1))
+ # zero is ok - no limit, but other values must be at least as the number of cores
+ if (options.limit != 0) and options.limit < options.cores:
+ parser.error("limit cannot be lower than number of DP cores")
def main ():
@@ -247,17 +287,19 @@ def main ():
validate_args(parser, options)
- r = SimRun(options.input_file,
- options.cores,
- options.core_index,
- options.limit,
- options.output_file,
- options.valgrind,
- options.gdb,
- options.limit)
+ r = SimRun(options)
+
+ try:
+ r.run()
+ except KeyboardInterrupt as e:
+ print "\n\n*** Caught Ctrl + C... Exiting...\n\n"
+ exit(1)
- r.run()
+ except BpSimException as e:
+ print "\n\n*** BP sim exit code was non zero\n\n"
+ exit(1)
+ exit(0)
if __name__ == '__main__':
main()