Change in osmo-gsm-tester[master]: 4g: Pass max bitrate to iperf3

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

pespin gerrit-no-reply at lists.osmocom.org
Mon May 25 12:41:27 UTC 2020


pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18448 )


Change subject: 4g: Pass max bitrate to iperf3
......................................................................

4g: Pass max bitrate to iperf3

Otherwise bitrate 0 (unlimited) does weird stuff, like iperf3 hanging
forever in DL.

Change-Id: I631243cce132923d9024f8161cf96161c51cdae5
---
M doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py
M doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py
M src/osmo_gsm_tester/obj/iperf3.py
M sysmocom/suites/4g/iperf3_dl.py
M sysmocom/suites/4g/iperf3_ul.py
5 files changed, 17 insertions(+), 13 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/48/18448/1

diff --git a/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py b/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py
index 66d75bb..d90c80b 100755
--- a/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py
+++ b/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py
@@ -20,8 +20,10 @@
 
 ue.connect(enb)
 
+max_rate = enb.ue_max_rate(downlink=True)
+
 iperf3srv.start()
-proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_DL, ue.netns())
+proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_DL, ue.netns(), bitrate=max_rate)
 
 print('waiting for UE to attach...')
 wait(ue.is_connected, None)
@@ -34,7 +36,6 @@
 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')
 print(res_str)
 test.set_report_stdout(res_str)
diff --git a/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py b/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py
index 7dca127..453cdfa 100755
--- a/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py
+++ b/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py
@@ -20,8 +20,10 @@
 
 ue.connect(enb)
 
+max_rate = enb.ue_max_rate(downlink=False)
+
 iperf3srv.start()
-proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_UL, ue.netns())
+proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_UL, ue.netns(), bitrate=max_rate)
 
 print('waiting for UE to attach...')
 wait(ue.is_connected, None)
@@ -34,7 +36,6 @@
 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')
 print(res_str)
 test.set_report_stdout(res_str)
diff --git a/src/osmo_gsm_tester/obj/iperf3.py b/src/osmo_gsm_tester/obj/iperf3.py
index 04aac47..70fceff 100644
--- a/src/osmo_gsm_tester/obj/iperf3.py
+++ b/src/osmo_gsm_tester/obj/iperf3.py
@@ -219,7 +219,7 @@
         locally = not self._run_node or self._run_node.is_local()
         return locally
 
-    def prepare_test_proc(self, dir=None, netns=None, time_sec=None, proto=None):
+    def prepare_test_proc(self, dir=None, netns=None, time_sec=None, proto=None, bitrate=0):
         values = config.get_defaults('iperf3cli')
         config.overlay(values, self.testenv.suite().config().get('iperf3cli', {}))
 
@@ -247,11 +247,11 @@
         self.run_dir = util.Dir(self.testenv.test().get_run_dir().new_dir(self.name()))
         self.log_file = self.run_dir.new_file(IPerf3Client.LOGFILE)
         if self.runs_locally():
-            return self.prepare_test_proc_locally(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP)
+            return self.prepare_test_proc_locally(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate)
         else:
-            return self.prepare_test_proc_remotely(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP)
+            return self.prepare_test_proc_remotely(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate)
 
-    def prepare_test_proc_remotely(self, dir, netns, time_sec, use_udp):
+    def prepare_test_proc_remotely(self, dir, netns, time_sec, use_udp, bitrate):
         self.rem_host = remote.RemoteHost(self.run_dir, self._run_node.ssh_user(), self._run_node.ssh_addr())
 
         remote_prefix_dir = util.Dir(IPerf3Client.REMOTE_DIR)
@@ -270,7 +270,7 @@
         elif dir == IPerf3Client.DIR_BI:
             popen_args += ('--bidir',)
         if use_udp:
-            popen_args += ('-u', '-b', '0')
+            popen_args += ('-u', '-b', str(bitrate))
 
         if netns:
             self.process = self.rem_host.RemoteNetNSProcess(self.name(), netns, popen_args, env={})
diff --git a/sysmocom/suites/4g/iperf3_dl.py b/sysmocom/suites/4g/iperf3_dl.py
index 66d75bb..d90c80b 100755
--- a/sysmocom/suites/4g/iperf3_dl.py
+++ b/sysmocom/suites/4g/iperf3_dl.py
@@ -20,8 +20,10 @@
 
 ue.connect(enb)
 
+max_rate = enb.ue_max_rate(downlink=True)
+
 iperf3srv.start()
-proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_DL, ue.netns())
+proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_DL, ue.netns(), bitrate=max_rate)
 
 print('waiting for UE to attach...')
 wait(ue.is_connected, None)
@@ -34,7 +36,6 @@
 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')
 print(res_str)
 test.set_report_stdout(res_str)
diff --git a/sysmocom/suites/4g/iperf3_ul.py b/sysmocom/suites/4g/iperf3_ul.py
index 7dca127..453cdfa 100755
--- a/sysmocom/suites/4g/iperf3_ul.py
+++ b/sysmocom/suites/4g/iperf3_ul.py
@@ -20,8 +20,10 @@
 
 ue.connect(enb)
 
+max_rate = enb.ue_max_rate(downlink=False)
+
 iperf3srv.start()
-proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_UL, ue.netns())
+proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_UL, ue.netns(), bitrate=max_rate)
 
 print('waiting for UE to attach...')
 wait(ue.is_connected, None)
@@ -34,7 +36,6 @@
 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')
 print(res_str)
 test.set_report_stdout(res_str)

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18448
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-gsm-tester
Gerrit-Branch: master
Gerrit-Change-Id: I631243cce132923d9024f8161cf96161c51cdae5
Gerrit-Change-Number: 18448
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200525/37de25a7/attachment.htm>


More information about the gerrit-log mailing list