summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYaroslav Brustinov <ybrustin@cisco.com>2016-05-03 04:28:08 +0300
committerYaroslav Brustinov <ybrustin@cisco.com>2016-05-03 04:28:08 +0300
commit7007bf04481b76b51e30d42148df710bccc9aa35 (patch)
tree3147ab3243ce6e1f3dd33be1b8f9da7786125c54
parentc227a2fff3e815c38cff89630e22c3b8485c32de (diff)
bp_sim: correct description of supported stateful layers
main_dpdk: send bw_per_core with json, return back precision of low values jsonrpcserver: disable logging regression: use bw_per_core from cpp calculation correct test name for GA
-rw-r--r--scripts/automation/regression/setups/kiwi02/benchmark.yaml24
-rw-r--r--scripts/automation/regression/setups/trex-dan/benchmark.yaml28
-rw-r--r--scripts/automation/regression/setups/trex04/benchmark.yaml20
-rw-r--r--scripts/automation/regression/setups/trex08/benchmark.yaml14
-rw-r--r--scripts/automation/regression/setups/trex09/benchmark.yaml14
-rw-r--r--scripts/automation/regression/setups/trex12/benchmark.yaml18
-rw-r--r--scripts/automation/regression/setups/trex14/benchmark.yaml22
-rw-r--r--scripts/automation/regression/setups/trex17/benchmark.yaml8
-rw-r--r--scripts/automation/regression/setups/trex25/benchmark.yaml24
-rwxr-xr-xscripts/automation/regression/stateful_tests/trex_general_test.py15
-rwxr-xr-xscripts/automation/regression/stateless_tests/stl_benchmark_test.py29
-rw-r--r--scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_stats.py3
-rw-r--r--scripts/external_libs/jsonrpclib-pelix-0.2.5/jsonrpclib/SimpleJSONRPCServer.py5
-rwxr-xr-xsrc/bp_sim.cpp4
-rw-r--r--src/main_dpdk.cpp18
15 files changed, 127 insertions, 119 deletions
diff --git a/scripts/automation/regression/setups/kiwi02/benchmark.yaml b/scripts/automation/regression/setups/kiwi02/benchmark.yaml
index f6ad8e9a..343d4120 100644
--- a/scripts/automation/regression/setups/kiwi02/benchmark.yaml
+++ b/scripts/automation/regression/setups/kiwi02/benchmark.yaml
@@ -24,39 +24,39 @@ nat_dict: &nat_dict
test_jumbo:
multiplier : 55
cores : 1
- bw_per_core : 647305
+ bw_per_core : 647.305
test_routing_imix:
multiplier : 32
cores : 2
- bw_per_core : 39131
+ bw_per_core : 39.131
test_routing_imix_64:
multiplier : 2500
cores : 4
- bw_per_core : 7427
+ bw_per_core : 7.427
test_static_routing_imix:
stat_route_dict : *stat_route_dict
multiplier : 32
cores : 2
- bw_per_core : 39039
+ bw_per_core : 39.039
test_static_routing_imix_asymmetric:
stat_route_dict : *stat_route_dict
multiplier : 16
cores : 1
- bw_per_core : 38796
+ bw_per_core : 38.796
test_ipv6_simple:
multiplier : 32
cores : 4
- bw_per_core : 19283
+ bw_per_core : 19.283
test_nat_simple_mode1: &test_nat_simple
@@ -65,7 +65,7 @@ test_nat_simple_mode1: &test_nat_simple
multiplier : 10000
cores : 1
allow_timeout_dev : True
- bw_per_core : 45304
+ bw_per_core : 45.304
test_nat_simple_mode2: *test_nat_simple
@@ -77,7 +77,7 @@ test_nat_learning:
test_nbar_simple:
multiplier : 20
cores : 2
- bw_per_core : 18243
+ bw_per_core : 18.243
nbar_classification:
http : 30.41
rtp_audio : 21.22
@@ -100,11 +100,11 @@ test_rx_check_http: &rx_http
cores : 2
rx_sample_rate : 32
error_tolerance : 0.01
- bw_per_core : 38071
+ bw_per_core : 38.071
test_rx_check_http_ipv6:
<< : *rx_http
- bw_per_core : 46733
+ bw_per_core : 46.733
test_rx_check_sfr: &rx_sfr
@@ -112,11 +112,11 @@ test_rx_check_sfr: &rx_sfr
cores : 4
rx_sample_rate : 32
error_tolerance : 0.01
- bw_per_core : 16915
+ bw_per_core : 16.915
test_rx_check_sfr_ipv6:
<< : *rx_sfr
- bw_per_core : 20323
+ bw_per_core : 20.323
diff --git a/scripts/automation/regression/setups/trex-dan/benchmark.yaml b/scripts/automation/regression/setups/trex-dan/benchmark.yaml
index d2af373c..c8b046d4 100644
--- a/scripts/automation/regression/setups/trex-dan/benchmark.yaml
+++ b/scripts/automation/regression/setups/trex-dan/benchmark.yaml
@@ -24,39 +24,39 @@ nat_dict: &nat_dict
test_jumbo:
multiplier : 2.8
cores : 1
- bw_per_core : 67030
+ bw_per_core : 67.030
test_routing_imix:
multiplier : 1
cores : 1
- bw_per_core : 3979
+ bw_per_core : 3.979
test_routing_imix_64:
multiplier : 150
cores : 4
- bw_per_core : 681
+ bw_per_core : .681
test_static_routing_imix:
stat_route_dict : *stat_route_dict
multiplier : 0.7
cores : 1
- bw_per_core : 3837
+ bw_per_core : 3.837
test_static_routing_imix_asymmetric:
stat_route_dict : *stat_route_dict
multiplier : 0.8
cores : 1
- bw_per_core : 3939
+ bw_per_core : 3.939
test_ipv6_simple:
multiplier : 1.5
cores : 2
- bw_per_core : 4719
+ bw_per_core : 4.719
test_nat_simple_mode1: &test_nat_simple
@@ -65,20 +65,20 @@ test_nat_simple_mode1: &test_nat_simple
multiplier : 550
cores : 1
allow_timeout_dev : True
- bw_per_core : 7465
+ bw_per_core : 7.465
test_nat_simple_mode2: *test_nat_simple
test_nat_learning:
<< : *test_nat_simple
- bw_per_core : 7377
+ bw_per_core : 7.377
nat_opened : 40000
test_nbar_simple:
multiplier : 1.5
cores : 2
- bw_per_core : 4465
+ bw_per_core : 4.465
nbar_classification:
http : 30.3
rtp_audio : 21.06
@@ -100,28 +100,28 @@ test_rx_check_http: &rx_http
multiplier : 2200
cores : 1
rx_sample_rate : 16
- bw_per_core : 8142
+ bw_per_core : 8.142
test_rx_check_http_ipv6:
<< : *rx_http
- bw_per_core : 8591
+ bw_per_core : 8.591
test_rx_check_http_negative:
<< : *rx_http
stat_route_dict : *stat_route_dict
nat_dict : *nat_dict
- bw_per_core : 8037
+ bw_per_core : 8.037
test_rx_check_sfr: &rx_sfr
multiplier : 1.7
cores : 2
rx_sample_rate : 16
- bw_per_core : 4473
+ bw_per_core : 4.473
test_rx_check_sfr_ipv6:
<< : *rx_sfr
- bw_per_core : 4773
+ bw_per_core : 4.773
diff --git a/scripts/automation/regression/setups/trex04/benchmark.yaml b/scripts/automation/regression/setups/trex04/benchmark.yaml
index e3a477f5..d2b1c4f2 100644
--- a/scripts/automation/regression/setups/trex04/benchmark.yaml
+++ b/scripts/automation/regression/setups/trex04/benchmark.yaml
@@ -7,39 +7,27 @@
test_jumbo:
multiplier : 2.8
cores : 1
- bw_per_core : 106652
+ bw_per_core : 106.652
test_routing_imix:
multiplier : 0.5
cores : 1
- bw_per_core : 11577
+ bw_per_core : 11.577
test_routing_imix_64:
multiplier : 28
cores : 1
- bw_per_core : 2030
+ bw_per_core : 2.030
test_static_routing_imix_asymmetric:
multiplier : 0.8
cores : 1
- bw_per_core : 13742
+ bw_per_core : 13.742
-test_CPU_benchmark:
- profiles:
- - name : stl/udp_1pkt_simple.py
- kwargs : {packet_len: 64}
- cpu_util : 1
- bw_per_core : 1
-
- - name : stl/udp_1pkt_simple.py
- kwargs : {packet_len: 128}
- cpu_util : 1
- bw_per_core : 1
-
### stateless ###
diff --git a/scripts/automation/regression/setups/trex08/benchmark.yaml b/scripts/automation/regression/setups/trex08/benchmark.yaml
index 97db6598..c5c2fde7 100644
--- a/scripts/automation/regression/setups/trex08/benchmark.yaml
+++ b/scripts/automation/regression/setups/trex08/benchmark.yaml
@@ -7,45 +7,45 @@
test_jumbo:
multiplier : 150
cores : 2
- bw_per_core : 962464
+ bw_per_core : 962.464
test_routing_imix:
multiplier : 80
cores : 4
- bw_per_core : 55130
+ bw_per_core : 55.130
test_routing_imix_64:
multiplier : 8000
cores : 7
- bw_per_core : 11699
+ bw_per_core : 11.699
test_static_routing_imix_asymmetric:
multiplier : 70
cores : 3
- bw_per_core : 50561
+ bw_per_core : 50.561
test_ipv6_simple:
multiplier : 80
cores : 7
- bw_per_core : 25948
+ bw_per_core : 25.948
test_rx_check_http:
multiplier : 99000
cores : 3
rx_sample_rate : 128
- bw_per_core : 49464
+ bw_per_core : 49.464
test_rx_check_sfr:
multiplier : 80
cores : 7
rx_sample_rate : 128
- bw_per_core : 20871
+ bw_per_core : 20.871
diff --git a/scripts/automation/regression/setups/trex09/benchmark.yaml b/scripts/automation/regression/setups/trex09/benchmark.yaml
index 8522f1bf..1f8fe47a 100644
--- a/scripts/automation/regression/setups/trex09/benchmark.yaml
+++ b/scripts/automation/regression/setups/trex09/benchmark.yaml
@@ -7,45 +7,45 @@
test_jumbo:
multiplier : 110
cores : 1
- bw_per_core : 767198
+ bw_per_core : 767.198
test_routing_imix:
multiplier : 64
cores : 2
- bw_per_core : 35889
+ bw_per_core : 35.889
test_routing_imix_64:
multiplier : 5000
cores : 2
- bw_per_core : 10672
+ bw_per_core : 10.672
test_static_routing_imix_asymmetric:
multiplier : 32
cores : 1
- bw_per_core : 52738
+ bw_per_core : 52.738
test_ipv6_simple:
multiplier : 64
cores : 4
- bw_per_core : 22808
+ bw_per_core : 22.808
test_rx_check_http:
multiplier : 90000
cores : 2
rx_sample_rate : 32
- bw_per_core : 46075
+ bw_per_core : 46.075
test_rx_check_sfr:
multiplier : 50
cores : 3
rx_sample_rate : 32
- bw_per_core : 20469
+ bw_per_core : 20.469
diff --git a/scripts/automation/regression/setups/trex12/benchmark.yaml b/scripts/automation/regression/setups/trex12/benchmark.yaml
index 084b57de..0ebc2bcb 100644
--- a/scripts/automation/regression/setups/trex12/benchmark.yaml
+++ b/scripts/automation/regression/setups/trex12/benchmark.yaml
@@ -7,53 +7,53 @@
test_jumbo:
multiplier : 14
cores : 1
- bw_per_core : 689664
+ bw_per_core : 689.664
test_routing_imix:
multiplier : 8
cores : 1
- bw_per_core : 45422
+ bw_per_core : 45.422
test_routing_imix_64:
multiplier : 2200
cores : 1
- bw_per_core : 11655
+ bw_per_core : 11.655
test_static_routing_imix_asymmetric:
multiplier : 4
cores : 1
- bw_per_core : 45294
+ bw_per_core : 45.294
test_ipv6_simple:
multiplier : 8
cores : 1
- bw_per_core : 29332
+ bw_per_core : 29.332
test_rx_check_http: &rx_http
multiplier : 11000
cores : 1
rx_sample_rate : 16
- bw_per_core : 47813
+ bw_per_core : 47.813
test_rx_check_http_ipv6:
<< : *rx_http
- bw_per_core : 55607
+ bw_per_core : 55.607
test_rx_check_sfr: &rx_sfr
multiplier : 8
cores : 1
rx_sample_rate : 16
- bw_per_core : 24203
+ bw_per_core : 24.203
test_rx_check_sfr_ipv6:
<< : *rx_sfr
- bw_per_core : 28867
+ bw_per_core : 28.867
### stateless ###
diff --git a/scripts/automation/regression/setups/trex14/benchmark.yaml b/scripts/automation/regression/setups/trex14/benchmark.yaml
index a63abc61..afa27a82 100644
--- a/scripts/automation/regression/setups/trex14/benchmark.yaml
+++ b/scripts/automation/regression/setups/trex14/benchmark.yaml
@@ -24,26 +24,26 @@ nat_dict: &nat_dict
test_jumbo:
multiplier : 17
cores : 1
- bw_per_core : 543232
+ bw_per_core : 543.232
test_routing_imix:
multiplier : 10
cores : 1
- bw_per_core : 34128
+ bw_per_core : 34.128
test_routing_imix_64:
multiplier : 430
cores : 1
- bw_per_core : 5893
+ bw_per_core : 5.893
test_static_routing_imix: &test_static_routing_imix
stat_route_dict : *stat_route_dict
multiplier : 8
cores : 1
- bw_per_core : 34339
+ bw_per_core : 34.339
test_static_routing_imix_asymmetric: *test_static_routing_imix
@@ -51,7 +51,7 @@ test_static_routing_imix_asymmetric: *test_static_routing_imix
test_ipv6_simple:
multiplier : 9
cores : 2
- bw_per_core : 19064
+ bw_per_core : 19.064
test_nat_simple_mode1: &test_nat_simple
@@ -61,7 +61,7 @@ test_nat_simple_mode1: &test_nat_simple
cores : 1
nat_opened : 40000
allow_timeout_dev : True
- bw_per_core : 44445
+ bw_per_core : 44.445
test_nat_simple_mode2: *test_nat_simple
@@ -73,7 +73,7 @@ test_nat_learning:
test_nbar_simple:
multiplier : 7.5
cores : 2
- bw_per_core : 17174
+ bw_per_core : 17.174
nbar_classification:
http : 32.58
rtp-audio : 21.21
@@ -95,11 +95,11 @@ test_rx_check_http: &rx_http
multiplier : 15000
cores : 1
rx_sample_rate : 16
- bw_per_core : 39560
+ bw_per_core : 39.560
test_rx_check_http_ipv6:
<< : *rx_http
- bw_per_core : 49237
+ bw_per_core : 49.237
test_rx_check_http_negative:
<< : *rx_http
@@ -111,11 +111,11 @@ test_rx_check_sfr: &rx_sfr
multiplier : 10
cores : 3
rx_sample_rate : 16
- bw_per_core : 16082
+ bw_per_core : 16.082
test_rx_check_sfr_ipv6:
<< : *rx_sfr
- bw_per_core : 19198
+ bw_per_core : 19.198
diff --git a/scripts/automation/regression/setups/trex17/benchmark.yaml b/scripts/automation/regression/setups/trex17/benchmark.yaml
index 219a01ed..d9191a42 100644
--- a/scripts/automation/regression/setups/trex17/benchmark.yaml
+++ b/scripts/automation/regression/setups/trex17/benchmark.yaml
@@ -7,25 +7,25 @@
test_jumbo:
multiplier : 2.8
cores : 1
- bw_per_core : 66489
+ bw_per_core : 66.489
test_routing_imix:
multiplier : 0.5
cores : 1
- bw_per_core : 5530
+ bw_per_core : 5.530
test_routing_imix_64:
multiplier : 28
cores : 1
- bw_per_core : 859
+ bw_per_core : 0.859
test_static_routing_imix_asymmetric:
multiplier : 0.8
cores : 1
- bw_per_core : 9635
+ bw_per_core : 9.635
diff --git a/scripts/automation/regression/setups/trex25/benchmark.yaml b/scripts/automation/regression/setups/trex25/benchmark.yaml
index 8ef7e0c7..f87759f9 100644
--- a/scripts/automation/regression/setups/trex25/benchmark.yaml
+++ b/scripts/automation/regression/setups/trex25/benchmark.yaml
@@ -24,26 +24,26 @@ nat_dict: &nat_dict
test_jumbo:
multiplier : 6
cores : 1
- bw_per_core : 443970
+ bw_per_core : 443.970
test_routing_imix:
multiplier : 4
cores : 1
- bw_per_core : 26509
+ bw_per_core : 26.509
test_routing_imix_64:
multiplier : 600
cores : 1
- bw_per_core : 6391
+ bw_per_core : 6.391
test_static_routing_imix:
stat_route_dict : *stat_route_dict
multiplier : 2.8
cores : 1
- bw_per_core : 24510
+ bw_per_core : 24.510
@@ -51,13 +51,13 @@ test_static_routing_imix_asymmetric:
stat_route_dict : *stat_route_dict
multiplier : 3.2
cores : 1
- bw_per_core : 28229
+ bw_per_core : 28.229
test_ipv6_simple:
multiplier : 6
cores : 1
- bw_per_core : 19185
+ bw_per_core : 19.185
test_nat_simple_mode1: &test_nat_simple
@@ -66,7 +66,7 @@ test_nat_simple_mode1: &test_nat_simple
multiplier : 2200
cores : 1
allow_timeout_dev : True
- bw_per_core : 32171
+ bw_per_core : 32.171
test_nat_simple_mode2: *test_nat_simple
@@ -78,7 +78,7 @@ test_nat_learning:
test_nbar_simple:
multiplier : 6
cores : 1
- bw_per_core : 16645
+ bw_per_core : 16.645
nbar_classification:
http : 24.55
rtp : 19.15
@@ -101,11 +101,11 @@ test_rx_check_http: &rx_http
multiplier : 8800
cores : 1
rx_sample_rate : 16
- bw_per_core : 31389
+ bw_per_core : 31.389
test_rx_check_http_ipv6:
<< : *rx_http
- bw_per_core : 37114
+ bw_per_core : 37.114
test_rx_check_http_negative:
<< : *rx_http
@@ -117,11 +117,11 @@ test_rx_check_sfr: &rx_sfr
multiplier : 6.8
cores : 1
rx_sample_rate : 16
- bw_per_core : 16063
+ bw_per_core : 16.063
test_rx_check_sfr_ipv6:
<< : *rx_sfr
- bw_per_core : 19663
+ bw_per_core : 19.663
### stateless ###
diff --git a/scripts/automation/regression/stateful_tests/trex_general_test.py b/scripts/automation/regression/stateful_tests/trex_general_test.py
index d7d83096..42720f70 100755
--- a/scripts/automation/regression/stateful_tests/trex_general_test.py
+++ b/scripts/automation/regression/stateful_tests/trex_general_test.py
@@ -150,13 +150,9 @@ class CTRexGeneral_Test(unittest.TestCase):
if cpu_util < minimal_cpu:
self.fail("CPU is too low (%s%%), can't verify performance in such low CPU%%." % cpu_util )
- cores = self.get_benchmark_param('cores')
- ports_count = trex_res.get_ports_count()
- trex_tx_bps = sum(trex_res.get_value_list("trex-global.data.m_tx_bps")[-4:-1]) / 3.0
- # x2 because each thread uses 2 ports and another x2 because each core can use 2 threads
- test_norm_cpu = 2 * 2 * (100.0 / cpu_util) * trex_tx_bps / (ports_count * cores * 1e6)
+ test_norm_cpu = sum(trex_res.get_value_list("trex-global.data.m_bw_per_core")[-4:-1]) / 3.0
- print("TRex CPU utilization: %g%%, norm_cpu is : %g Mb/core" % (round(cpu_util, 2), round(test_norm_cpu)))
+ print("TRex CPU utilization: %g%%, norm_cpu is : %g Gb/core" % (round(cpu_util, 2), round(test_norm_cpu)))
expected_norm_cpu = self.get_benchmark_param('bw_per_core')
if not expected_norm_cpu:
@@ -164,13 +160,14 @@ class CTRexGeneral_Test(unittest.TestCase):
calc_error_precent = abs(100.0 * test_norm_cpu / expected_norm_cpu - 100)
print('Err percent: %s' % calc_error_precent)
- if calc_error_precent > err:
+ if calc_error_precent > err and cpu_util > 10:
self.fail('Excepted bw_per_core ratio: %s, got: %g' % (expected_norm_cpu, round(test_norm_cpu)))
# report benchmarks
if self.GAManager:
- self.GAManager.gaAddAction(Event = 'stateful_test', action = self.get_name(), label = 'bw_per_core', value = int(test_norm_cpu))
- self.GAManager.gaAddAction(Event = 'stateful_test', action = self.get_name(), label = 'bw_per_core_exp', value = int(expected_norm_cpu))
+ setup_test = '%s.%s' % (CTRexScenario.setup_name, self.get_name())
+ self.GAManager.gaAddAction(Event = 'stateful_test', action = setup_test, label = 'bw_per_core', value = int(test_norm_cpu))
+ self.GAManager.gaAddAction(Event = 'stateful_test', action = setup_test, label = 'bw_per_core_exp', value = int(expected_norm_cpu))
self.GAManager.emptyAndReportQ()
def check_results_gt (self, res, name, val):
diff --git a/scripts/automation/regression/stateless_tests/stl_benchmark_test.py b/scripts/automation/regression/stateless_tests/stl_benchmark_test.py
index 51c77b57..ef4c435f 100755
--- a/scripts/automation/regression/stateless_tests/stl_benchmark_test.py
+++ b/scripts/automation/regression/stateless_tests/stl_benchmark_test.py
@@ -11,12 +11,11 @@ class STLBenchmark_Test(CStlGeneral_Test):
def test_CPU_benchmark(self):
timeout = 60 # max time to wait for stabilization
stabilize = 5 # ensure stabilization over this period
- cores = self.configuration.trex['trex_cores']
- ports = self.stl_trex.get_port_count()
print('')
for profile_bench in self.get_benchmark_param('profiles'):
- cpu_utils = deque([0] * stabilize, maxlen = stabilize)
+ cpu_utils = deque([0] * stabilize, maxlen = stabilize)
+ bws_per_core = deque([0] * stabilize, maxlen = stabilize)
kwargs = profile_bench.get('kwargs', {})
print('Testing profile %s, kwargs: %s' % (profile_bench['name'], kwargs))
profile = STLProfile.load(os.path.join(CTRexScenario.scripts_path, profile_bench['name']), **kwargs)
@@ -24,18 +23,22 @@ class STLBenchmark_Test(CStlGeneral_Test):
self.stl_trex.reset()
self.stl_trex.clear_stats()
sleep(1)
- self.stl_trex.add_streams(profile, ports = [0, 1])
- self.stl_trex.start(ports = [0, 1], mult = '10%')
+ self.stl_trex.add_streams(profile)
+ self.stl_trex.start(mult = '10%')
start_time = time()
for i in range(timeout + 1):
stats = self.stl_trex.get_stats()
cpu_utils.append(stats['global']['cpu_util'])
+ bws_per_core.append(stats['global']['bw_per_core'])
if i > stabilize and min(cpu_utils) > max(cpu_utils) * 0.95:
break
sleep(0.5)
- if i == timeout:
+ agv_cpu_util = sum(cpu_utils) / stabilize
+ agv_bw_per_core = sum(bws_per_core) / stabilize
+
+ if i == timeout and agv_cpu_util > 10:
raise Exception('Timeout on waiting for stabilization, last CPU util values: %s' % list(cpu_utils))
if stats[0]['opackets'] < 1000 or stats[1]['opackets'] < 1000:
raise Exception('Too few opackets, port0: %s, port1: %s' % (stats[0]['opackets'], stats[1]['opackets']))
@@ -43,17 +46,19 @@ class STLBenchmark_Test(CStlGeneral_Test):
raise Exception('Too much queue_full: %s' % stats['global']['queue_full'])
if not cpu_utils[-1]:
raise Exception('CPU util is zero, last values: %s' % list(cpu_utils))
- agv_cpu_util = sum(cpu_utils) / stabilize
- bw_per_core = 2 * 2 * (100 / agv_cpu_util) * stats['global']['tx_bps'] / (ports * cores * 1e9)
- print('Done (%ss), CPU util: %4g, bw_per_core: %6sGb/core' % (int(time() - start_time), agv_cpu_util, round(bw_per_core, 2)))
+ print('Done (%ss), CPU util: %4g, bw_per_core: %6sGb/core' % (int(time() - start_time), agv_cpu_util, round(agv_bw_per_core, 2)))
# TODO: add check of benchmark based on results from regression
# report benchmarks
if self.GAManager:
- profile_repr = '%s %s' % (os.path.basename(profile_bench['name']), repr(kwargs).replace("'", ''))
- self.GAManager.gaAddAction(Event = 'stateless_test', action = profile_repr, label = 'bw_per_core', value = int(bw_per_core))
+ profile_repr = '%s.%s %s' % (CTRexScenario.setup_name,
+ os.path.basename(profile_bench['name']),
+ repr(kwargs).replace("'", ''))
+ self.GAManager.gaAddAction(Event = 'stateless_test', action = profile_repr,
+ label = 'bw_per_core', value = int(agv_bw_per_core))
# TODO: report expected once acquired
- #self.GAManager.gaAddAction(Event = 'stateless_test', action = profile_repr, label = 'bw_per_core_exp', value = int(expected_norm_cpu))
+ #self.GAManager.gaAddAction(Event = 'stateless_test', action = profile_repr,
+ # label = 'bw_per_core_exp', value = int(expected_norm_cpu))
self.GAManager.emptyAndReportQ()
def tearDown(self):
diff --git a/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_stats.py b/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_stats.py
index 12c2c578..c7513144 100644
--- a/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_stats.py
+++ b/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_stats.py
@@ -212,7 +212,7 @@ class CTRexInfoGenerator(object):
if ratio <= 0.1875:
return u'\u2581' # 1/8
if ratio <= 0.3125:
- return u'\u2582' # 2/4
+ return u'\u2582' # 2/8
if ratio <= 0.4375:
return u'\u2583' # 3/8
if ratio <= 0.5625:
@@ -594,6 +594,7 @@ class CGlobalStats(CTRexStats):
# absolute
stats['cpu_util'] = self.get("m_cpu_util")
stats['rx_cpu_util'] = self.get("m_rx_cpu_util")
+ stats['bw_per_core'] = self.get("m_bw_per_core")
stats['tx_bps'] = self.get("m_tx_bps")
stats['tx_pps'] = self.get("m_tx_pps")
diff --git a/scripts/external_libs/jsonrpclib-pelix-0.2.5/jsonrpclib/SimpleJSONRPCServer.py b/scripts/external_libs/jsonrpclib-pelix-0.2.5/jsonrpclib/SimpleJSONRPCServer.py
index e9fe4e68..d55ce0fb 100644
--- a/scripts/external_libs/jsonrpclib-pelix-0.2.5/jsonrpclib/SimpleJSONRPCServer.py
+++ b/scripts/external_libs/jsonrpclib-pelix-0.2.5/jsonrpclib/SimpleJSONRPCServer.py
@@ -397,6 +397,11 @@ class SimpleJSONRPCRequestHandler(xmlrpcserver.SimpleXMLRPCRequestHandler):
The server that receives the requests must have a json_config member,
containing a JSONRPClib Config instance
"""
+
+ # disable logging
+ def log_message(*args, **kwargs):
+ pass
+
def do_POST(self):
"""
Handles POST requests
diff --git a/src/bp_sim.cpp b/src/bp_sim.cpp
index 2c122e72..94f8a2ba 100755
--- a/src/bp_sim.cpp
+++ b/src/bp_sim.cpp
@@ -2258,11 +2258,11 @@ enum CCapFileFlowInfo::load_cap_file_err CCapFileFlowInfo::load_cap_file(std::st
}
}else{
- fprintf(stderr, "ERROR packet %d is not supported, should be IP(0x0800)/TCP/UDP format try to convert it using Wireshark !\n",cnt);
+ fprintf(stderr, "ERROR packet %d is not supported, should be Ethernet/IP(0x0800)/(TCP|UDP) format try to convert it using Wireshark !\n",cnt);
return kPktNotSupp;
}
}else{
- fprintf(stderr, "ERROR packet %d is not supported, should be IP(0x0800)/TCP/UDP format try to convert it using Wireshark !\n",cnt);
+ fprintf(stderr, "ERROR packet %d is not supported, should be Ethernet/IP(0x0800)/(TCP|UDP) format try to convert it using Wireshark !\n",cnt);
return kPktProcessFail;
}
}
diff --git a/src/main_dpdk.cpp b/src/main_dpdk.cpp
index 1496513d..edc3cb67 100644
--- a/src/main_dpdk.cpp
+++ b/src/main_dpdk.cpp
@@ -2317,6 +2317,7 @@ public:
float m_open_flows;
float m_cpu_util;
float m_rx_cpu_util;
+ float m_bw_per_core;
uint8_t m_threads;
uint32_t m_num_of_ports;
@@ -2335,7 +2336,10 @@ private:
std::string CGlobalStats::get_field(std::string name,float &f){
char buff[200];
- snprintf(buff, sizeof(buff), "\"%s\":%.1f,",name.c_str(),f);
+ if(f >= -10.0 or f <= 10.0)
+ snprintf(buff, sizeof(buff), "\"%s\":%.1f,",name.c_str(),f);
+ else
+ snprintf(buff, sizeof(buff), "\"%s\":%.3e,",name.c_str(),f);
return (std::string(buff));
}
@@ -2347,7 +2351,10 @@ std::string CGlobalStats::get_field(std::string name,uint64_t &f){
std::string CGlobalStats::get_field_port(int port,std::string name,float &f){
char buff[200];
- snprintf(buff, sizeof(buff), "\"%s-%d\":%.1f,",name.c_str(),port,f);
+ if(f >= -10.0 or f <= 10.0)
+ snprintf(buff, sizeof(buff), "\"%s-%d\":%.1f,",name.c_str(),port,f);
+ else
+ snprintf(buff, sizeof(buff), "\"%s-%d\":%.3e,",name.c_str(),port,f);
return (std::string(buff));
}
@@ -2376,6 +2383,7 @@ void CGlobalStats::dump_json(std::string & json, bool baseline,uint32_t stats_ti
#define GET_FIELD_PORT(p,f) get_field_port(p,std::string(#f),lp->f)
json+=GET_FIELD(m_cpu_util);
+ json+=GET_FIELD(m_bw_per_core);
json+=GET_FIELD(m_rx_cpu_util);
json+=GET_FIELD(m_platform_factor);
json+=GET_FIELD(m_tx_bps);
@@ -2441,7 +2449,7 @@ void CGlobalStats::DumpAllPorts(FILE *fd){
- fprintf (fd," Cpu Utilization : %2.1f %% %2.1f Gb/core \n",m_cpu_util,(2*(m_tx_bps/1e9)*100.0/(m_cpu_util*m_threads)));
+ fprintf (fd," Cpu Utilization : %2.1f %% %2.1f Gb/core \n",m_cpu_util,m_bw_per_core);
fprintf (fd," Platform_factor : %2.1f \n",m_platform_factor);
fprintf (fd," Total-Tx : %s ",double_to_human_str(m_tx_bps,"bps",KBYE_1000).c_str());
if ( CGlobalInfo::is_learn_mode() ) {
@@ -3554,6 +3562,10 @@ void CGlobalTRex::get_stats(CGlobalStats & stats){
stats.m_tx_pps = total_tx_pps*pf;
stats.m_rx_pps = total_rx_pps*pf;
stats.m_tx_cps = m_last_total_cps*pf;
+ if(stats.m_cpu_util < 0.0001)
+ stats.m_bw_per_core = 0;
+ else
+ stats.m_bw_per_core = 2*(stats.m_tx_bps/1e9)*100.0/(stats.m_cpu_util*stats.m_threads);
stats.m_tx_expected_cps = m_expected_cps*pf;
stats.m_tx_expected_pps = m_expected_pps*pf;