iperf3: Support using configuring UDP protocol
Change-Id: I0b3545847b01ae3d029881f243fea276f0fa39de
diff --git a/sysmocom/suites/4g/iperf3_dl.py b/sysmocom/suites/4g/iperf3_dl.py
index d4fa649..bcc569a 100755
--- a/sysmocom/suites/4g/iperf3_dl.py
+++ b/sysmocom/suites/4g/iperf3_dl.py
@@ -1,17 +1,6 @@
#!/usr/bin/env python3
from osmo_gsm_tester.testenv import *
-def print_result_node(result, node_str):
- sent = result['end']['sum_sent']
- recv = result['end']['sum_received']
- print("Result %s:" % node_str)
- print("\tSEND: %d KB, %d kbps, %d seconds (%s retrans)" % (sent['bytes']/1000, sent['bits_per_second']/1000, sent['seconds'], str(sent.get('retransmits', 'unknown'))))
- print("\tRECV: %d KB, %d kbps, %d seconds" % (recv['bytes']/1000, recv['bits_per_second']/1000, recv['seconds']))
-
-def print_results(cli_res, srv_res):
- print_result_node(cli_res, 'client')
- print_result_node(srv_res, 'server')
-
epc = tenv.epc()
enb = tenv.enb()
ue = tenv.modem()
@@ -41,7 +30,9 @@
print("Running iperf3 client to %s through %s" % (str(iperf3cli), ue.netns()))
proc.launch_sync()
iperf3srv.stop()
-print_results(iperf3cli.get_results(), iperf3srv.get_results())
+
+iperf3cli.print_results()
+iperf3srv.print_results(iperf3cli.proto() == iperf3cli.PROTO_UDP)
max_rate = enb.ue_max_rate(downlink=True)
res_str = ue.verify_metric(max_rate * 0.8, operation='avg', metric='dl_brate', criterion='gt')
diff --git a/sysmocom/suites/4g/iperf3_ul.py b/sysmocom/suites/4g/iperf3_ul.py
index 64d476b..a92a658 100755
--- a/sysmocom/suites/4g/iperf3_ul.py
+++ b/sysmocom/suites/4g/iperf3_ul.py
@@ -1,17 +1,6 @@
#!/usr/bin/env python3
from osmo_gsm_tester.testenv import *
-def print_result_node(result, node_str):
- sent = result['end']['sum_sent']
- recv = result['end']['sum_received']
- print("Result %s:" % node_str)
- print("\tSEND: %d KB, %d kbps, %d seconds (%s retrans)" % (sent['bytes']/1000, sent['bits_per_second']/1000, sent['seconds'], str(sent.get('retransmits', 'unknown'))))
- print("\tRECV: %d KB, %d kbps, %d seconds" % (recv['bytes']/1000, recv['bits_per_second']/1000, recv['seconds']))
-
-def print_results(cli_res, srv_res):
- print_result_node(cli_res, 'client')
- print_result_node(srv_res, 'server')
-
epc = tenv.epc()
enb = tenv.enb()
ue = tenv.modem()
@@ -41,7 +30,9 @@
print("Running iperf3 client to %s through %s" % (str(iperf3cli), ue.netns()))
proc.launch_sync()
iperf3srv.stop()
-print_results(iperf3cli.get_results(), iperf3srv.get_results())
+
+iperf3cli.print_results()
+iperf3srv.print_results(iperf3cli.proto() == iperf3cli.PROTO_UDP)
max_rate = enb.ue_max_rate(downlink=False)
res_str = ue.verify_metric(max_rate * 0.8, operation='avg', metric='ul_brate', criterion='gt')
diff --git a/sysmocom/suites/gprs/lib/testlib.py b/sysmocom/suites/gprs/lib/testlib.py
index 636ee2b..765f463 100644
--- a/sysmocom/suites/gprs/lib/testlib.py
+++ b/sysmocom/suites/gprs/lib/testlib.py
@@ -1,21 +1,9 @@
#!/usr/bin/env python3
from osmo_gsm_tester.testenv import *
-def print_result_node(result, node_str):
- try:
- sent = result['end']['sum_sent']
- recv = result['end']['sum_received']
- print("Result %s:" % node_str)
- print("\tSEND: %d KB, %d kbps, %d seconds (%s retrans)" % (sent['bytes']/1000, sent['bits_per_second']/1000, sent['seconds'], str(sent.get('retransmits', 'unknown'))))
- print("\tRECV: %d KB, %d kbps, %d seconds" % (recv['bytes']/1000, recv['bits_per_second']/1000, recv['seconds']))
- except Exception as e:
- print("Exception while using iperf3 %s results: %r" % (node_str, repr(result)))
- raise e
-
-
-def print_results(cli_res, srv_res):
- print_result_node(cli_res, 'client')
- print_result_node(srv_res, 'server')
+def print_results(cli, srv):
+ cli.print_results()
+ srv.print_results(cli.proto() == cli.PROTO_UDP)
def run_iperf3_cli_parallel(iperf3clients, ms_li, ready_cb):
assert len(iperf3clients) == len(ms_li)
@@ -114,7 +102,7 @@
for i in range(num_ms):
servers[i].stop()
print("Results for %s through %r" % (str(servers[i]), repr(ms_li[i].tmp_ctx_id)))
- print_results(clients[i].get_results(), servers[i].get_results())
+ print_results(clients[i], servers[i])
for ms in ms_li:
ms.deactivate_context(ms.tmp_ctx_id)