diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2018-10-26 15:54:28 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2018-10-31 09:59:45 +0100 |
commit | 8a72586835c8852fb3cded82ee3432e07754dce7 (patch) | |
tree | 49560151677b6a1c7d9f959738a4330a9adfe876 /suites | |
parent | 34735f1c495efba6788953fca601908cfb13278c (diff) |
Introduce iperf3 testing infrastructure
Change-Id: I6ff6bef14feb535d98ca41b9788700d699e1ef1e
Diffstat (limited to 'suites')
-rwxr-xr-x | suites/gprs/iperf3.py | 74 | ||||
-rw-r--r-- | suites/gprs/suite.conf | 2 |
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: |