aboutsummaryrefslogtreecommitdiffstats
path: root/suites
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2018-10-26 15:54:28 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2018-10-31 09:59:45 +0100
commit8a72586835c8852fb3cded82ee3432e07754dce7 (patch)
tree49560151677b6a1c7d9f959738a4330a9adfe876 /suites
parent34735f1c495efba6788953fca601908cfb13278c (diff)
Introduce iperf3 testing infrastructure
Diffstat (limited to 'suites')
-rwxr-xr-xsuites/gprs/iperf3.py74
-rw-r--r--suites/gprs/suite.conf2
2 files changed, 75 insertions, 1 deletions
diff --git a/suites/gprs/iperf3.py b/suites/gprs/iperf3.py
new file mode 100755
index 0000000..a1dd62c
--- /dev/null
+++ b/suites/gprs/iperf3.py
@@ -0,0 +1,74 @@
+#!/usr/bin/env python3
+from osmo_gsm_tester.testenv import *
+
+def print_results(cli_res, srv_res):
+ cli_sent = cli_res['end']['sum_sent']
+ cli_recv = cli_res['end']['sum_received']
+ print("RESULT client:")
+ print("\tSEND: %d KB, %d kbps, %d seconds (%d retrans)" % (cli_sent['bytes']/1000, cli_sent['bits_per_second']/1000, cli_sent['seconds'], cli_sent['retransmits']))
+ print("\tRECV: %d KB, %d kbps, %d seconds" % (cli_recv['bytes']/1000, cli_recv['bits_per_second']/1000, cli_recv['seconds']))
+ print("RESULT server:")
+ print("\tSEND: %d KB, %d kbps, %d seconds" % (cli_sent['bytes']/1000, cli_sent['bits_per_second']/1000, cli_sent['seconds']))
+ print("\tRECV: %d KB, %d kbps, %d seconds" % (cli_recv['bytes']/1000, cli_recv['bits_per_second']/1000, cli_recv['seconds']))
+
+hlr = suite.hlr()
+bts = suite.bts()
+pcu = bts.pcu()
+mgw_msc = suite.mgw()
+mgw_bsc = suite.mgw()
+stp = suite.stp()
+ggsn = suite.ggsn()
+sgsn = suite.sgsn(hlr, ggsn)
+msc = suite.msc(hlr, mgw_msc, stp)
+bsc = suite.bsc(msc, mgw_bsc, stp)
+ms = suite.modem()
+iperf3srv = suite.iperf3srv()
+iperf3cli = iperf3srv.create_client()
+
+bsc.bts_add(bts)
+sgsn.bts_add(bts)
+
+print('start iperfv3 server...')
+iperf3srv.start()
+
+print('start network...')
+hlr.start()
+stp.start()
+ggsn.start()
+sgsn.start()
+msc.start()
+mgw_msc.start()
+mgw_bsc.start()
+bsc.start()
+
+bts.start()
+wait(bsc.bts_is_connected, bts)
+print('Waiting for bts to be ready...')
+wait(bts.ready_for_pcu)
+pcu.start()
+
+hlr.subscriber_add(ms)
+
+ms.connect(msc.mcc_mnc())
+ms.attach()
+
+ms.log_info()
+
+print('waiting for modems to attach...')
+wait(ms.is_connected, msc.mcc_mnc())
+wait(msc.subscriber_attached, ms)
+
+print('waiting for modems to attach to data services...')
+wait(ms.is_attached)
+
+# We need to use inet46 since ofono qmi only uses ipv4v6 eua (OS#2713)
+ctx_id_v4 = ms.activate_context(apn='inet46', protocol=ms.CTX_PROT_IPv4)
+print("Setting up data plan for %r" % repr(ctx_id_v4))
+ms.setup_context_data_plane(ctx_id_v4)
+
+print("Running iperf3 client to %s through %r" % (iperf3srv.addr(),repr(ctx_id_v4)))
+res = iperf3cli.run_test(ms.netns())
+iperf3srv.stop()
+print_results(res, iperf3srv.get_results())
+
+ms.deactivate_context(ctx_id_v4)
diff --git a/suites/gprs/suite.conf b/suites/gprs/suite.conf
index 1590b7d..a24bc5d 100644
--- a/suites/gprs/suite.conf
+++ b/suites/gprs/suite.conf
@@ -1,6 +1,6 @@
resources:
ip_address:
- - times: 8 # msc, bsc, hlr, stp, mgw*2, sgsn, ggsn
+ - times: 9 # msc, bsc, hlr, stp, mgw*2, sgsn, ggsn, iperf3srv
bts:
- times: 1
modem: