blob: 88ae82d648cd27dea517ee98b0645c3e23840460 [file] [log] [blame]
Pau Espin Pedrolc8b0f932020-02-11 17:45:26 +01001#!/usr/bin/env python3
2from osmo_gsm_tester.testenv import *
3
Pau Espin Pedrol143365d2020-03-02 16:12:19 +01004def print_result_node(result, node_str):
5 sent = result['end']['sum_sent']
6 recv = result['end']['sum_received']
7 print("Result %s:" % node_str)
8 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'))))
9 print("\tRECV: %d KB, %d kbps, %d seconds" % (recv['bytes']/1000, recv['bits_per_second']/1000, recv['seconds']))
Pau Espin Pedrolc8b0f932020-02-11 17:45:26 +010010
Pau Espin Pedrol143365d2020-03-02 16:12:19 +010011def print_results(cli_res, srv_res):
12 print_result_node(cli_res, 'client')
13 print_result_node(srv_res, 'server')
Pau Espin Pedrolc8b0f932020-02-11 17:45:26 +010014
15epc = suite.epc()
16enb = suite.enb()
17ue = suite.modem()
18iperf3srv = suite.iperf3srv({'addr': epc.tun_addr()})
19iperf3srv.set_run_node(epc.run_node())
20iperf3cli = iperf3srv.create_client()
21iperf3cli.set_run_node(ue.run_node())
22
23epc.subscriber_add(ue)
24epc.start()
25enb.ue_add(ue)
26enb.start(epc)
27
28print('waiting for ENB to connect to EPC...')
29wait(epc.enb_is_connected, enb)
30print('ENB is connected to EPC')
31
32ue.connect(enb)
33
34iperf3srv.start()
Andre Puschmann2dcc4312020-03-28 15:34:00 +010035proc = iperf3cli.prepare_test_proc(True, ue.netns())
Pau Espin Pedrolc8b0f932020-02-11 17:45:26 +010036
37print('waiting for UE to attach...')
38wait(ue.is_connected, None)
39print('UE is attached')
40
41print("Running iperf3 client to %s through %s" % (str(iperf3cli), ue.netns()))
42proc.launch_sync()
43iperf3srv.stop()
44print_results(iperf3cli.get_results(), iperf3srv.get_results())
Pau Espin Pedrol151b08a2020-03-02 14:14:27 +010045
Pau Espin Pedrol03a2fc52020-03-02 18:54:40 +010046max_rate = enb.ue_max_rate(downlink=True)
Andre Puschmannf00d9bc2020-03-19 21:14:31 +010047res_str = ue.verify_metric(max_rate * 0.8, operation='avg', metric='dl_brate', criterion='gt')
Pau Espin Pedrol644cb412020-03-04 16:14:31 +010048print(res_str)
49test.set_report_stdout(res_str)