<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18448">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">4g: Pass max bitrate to iperf3<br><br>Otherwise bitrate 0 (unlimited) does weird stuff, like iperf3 hanging<br>forever in DL.<br><br>Change-Id: I631243cce132923d9024f8161cf96161c51cdae5<br>---<br>M doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py<br>M doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py<br>M src/osmo_gsm_tester/obj/iperf3.py<br>M sysmocom/suites/4g/iperf3_dl.py<br>M sysmocom/suites/4g/iperf3_ul.py<br>5 files changed, 17 insertions(+), 13 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/48/18448/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py b/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py</span><br><span>index 66d75bb..d90c80b 100755</span><br><span>--- a/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py</span><br><span>+++ b/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py</span><br><span>@@ -20,8 +20,10 @@</span><br><span> </span><br><span> ue.connect(enb)</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+max_rate = enb.ue_max_rate(downlink=True)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> iperf3srv.start()</span><br><span style="color: hsl(0, 100%, 40%);">-proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_DL, ue.netns())</span><br><span style="color: hsl(120, 100%, 40%);">+proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_DL, ue.netns(), bitrate=max_rate)</span><br><span> </span><br><span> print('waiting for UE to attach...')</span><br><span> wait(ue.is_connected, None)</span><br><span>@@ -34,7 +36,6 @@</span><br><span> iperf3cli.print_results()</span><br><span> iperf3srv.print_results(iperf3cli.proto() == iperf3cli.PROTO_UDP)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-max_rate = enb.ue_max_rate(downlink=True)</span><br><span> res_str = ue.verify_metric(max_rate * 0.8, operation='avg', metric='dl_brate', criterion='gt')</span><br><span> print(res_str)</span><br><span> test.set_report_stdout(res_str)</span><br><span>diff --git a/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py b/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py</span><br><span>index 7dca127..453cdfa 100755</span><br><span>--- a/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py</span><br><span>+++ b/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py</span><br><span>@@ -20,8 +20,10 @@</span><br><span> </span><br><span> ue.connect(enb)</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+max_rate = enb.ue_max_rate(downlink=False)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> iperf3srv.start()</span><br><span style="color: hsl(0, 100%, 40%);">-proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_UL, ue.netns())</span><br><span style="color: hsl(120, 100%, 40%);">+proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_UL, ue.netns(), bitrate=max_rate)</span><br><span> </span><br><span> print('waiting for UE to attach...')</span><br><span> wait(ue.is_connected, None)</span><br><span>@@ -34,7 +36,6 @@</span><br><span> iperf3cli.print_results()</span><br><span> iperf3srv.print_results(iperf3cli.proto() == iperf3cli.PROTO_UDP)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-max_rate = enb.ue_max_rate(downlink=False)</span><br><span> res_str = ue.verify_metric(max_rate * 0.8, operation='avg', metric='ul_brate', criterion='gt')</span><br><span> print(res_str)</span><br><span> test.set_report_stdout(res_str)</span><br><span>diff --git a/src/osmo_gsm_tester/obj/iperf3.py b/src/osmo_gsm_tester/obj/iperf3.py</span><br><span>index 04aac47..70fceff 100644</span><br><span>--- a/src/osmo_gsm_tester/obj/iperf3.py</span><br><span>+++ b/src/osmo_gsm_tester/obj/iperf3.py</span><br><span>@@ -219,7 +219,7 @@</span><br><span>         locally = not self._run_node or self._run_node.is_local()</span><br><span>         return locally</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    def prepare_test_proc(self, dir=None, netns=None, time_sec=None, proto=None):</span><br><span style="color: hsl(120, 100%, 40%);">+    def prepare_test_proc(self, dir=None, netns=None, time_sec=None, proto=None, bitrate=0):</span><br><span>         values = config.get_defaults('iperf3cli')</span><br><span>         config.overlay(values, self.testenv.suite().config().get('iperf3cli', {}))</span><br><span> </span><br><span>@@ -247,11 +247,11 @@</span><br><span>         self.run_dir = util.Dir(self.testenv.test().get_run_dir().new_dir(self.name()))</span><br><span>         self.log_file = self.run_dir.new_file(IPerf3Client.LOGFILE)</span><br><span>         if self.runs_locally():</span><br><span style="color: hsl(0, 100%, 40%);">-            return self.prepare_test_proc_locally(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP)</span><br><span style="color: hsl(120, 100%, 40%);">+            return self.prepare_test_proc_locally(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate)</span><br><span>         else:</span><br><span style="color: hsl(0, 100%, 40%);">-            return self.prepare_test_proc_remotely(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP)</span><br><span style="color: hsl(120, 100%, 40%);">+            return self.prepare_test_proc_remotely(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP, bitrate)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    def prepare_test_proc_remotely(self, dir, netns, time_sec, use_udp):</span><br><span style="color: hsl(120, 100%, 40%);">+    def prepare_test_proc_remotely(self, dir, netns, time_sec, use_udp, bitrate):</span><br><span>         self.rem_host = remote.RemoteHost(self.run_dir, self._run_node.ssh_user(), self._run_node.ssh_addr())</span><br><span> </span><br><span>         remote_prefix_dir = util.Dir(IPerf3Client.REMOTE_DIR)</span><br><span>@@ -270,7 +270,7 @@</span><br><span>         elif dir == IPerf3Client.DIR_BI:</span><br><span>             popen_args += ('--bidir',)</span><br><span>         if use_udp:</span><br><span style="color: hsl(0, 100%, 40%);">-            popen_args += ('-u', '-b', '0')</span><br><span style="color: hsl(120, 100%, 40%);">+            popen_args += ('-u', '-b', str(bitrate))</span><br><span> </span><br><span>         if netns:</span><br><span>             self.process = self.rem_host.RemoteNetNSProcess(self.name(), netns, popen_args, env={})</span><br><span>diff --git a/sysmocom/suites/4g/iperf3_dl.py b/sysmocom/suites/4g/iperf3_dl.py</span><br><span>index 66d75bb..d90c80b 100755</span><br><span>--- a/sysmocom/suites/4g/iperf3_dl.py</span><br><span>+++ b/sysmocom/suites/4g/iperf3_dl.py</span><br><span>@@ -20,8 +20,10 @@</span><br><span> </span><br><span> ue.connect(enb)</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+max_rate = enb.ue_max_rate(downlink=True)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> iperf3srv.start()</span><br><span style="color: hsl(0, 100%, 40%);">-proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_DL, ue.netns())</span><br><span style="color: hsl(120, 100%, 40%);">+proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_DL, ue.netns(), bitrate=max_rate)</span><br><span> </span><br><span> print('waiting for UE to attach...')</span><br><span> wait(ue.is_connected, None)</span><br><span>@@ -34,7 +36,6 @@</span><br><span> iperf3cli.print_results()</span><br><span> iperf3srv.print_results(iperf3cli.proto() == iperf3cli.PROTO_UDP)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-max_rate = enb.ue_max_rate(downlink=True)</span><br><span> res_str = ue.verify_metric(max_rate * 0.8, operation='avg', metric='dl_brate', criterion='gt')</span><br><span> print(res_str)</span><br><span> test.set_report_stdout(res_str)</span><br><span>diff --git a/sysmocom/suites/4g/iperf3_ul.py b/sysmocom/suites/4g/iperf3_ul.py</span><br><span>index 7dca127..453cdfa 100755</span><br><span>--- a/sysmocom/suites/4g/iperf3_ul.py</span><br><span>+++ b/sysmocom/suites/4g/iperf3_ul.py</span><br><span>@@ -20,8 +20,10 @@</span><br><span> </span><br><span> ue.connect(enb)</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+max_rate = enb.ue_max_rate(downlink=False)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> iperf3srv.start()</span><br><span style="color: hsl(0, 100%, 40%);">-proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_UL, ue.netns())</span><br><span style="color: hsl(120, 100%, 40%);">+proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_UL, ue.netns(), bitrate=max_rate)</span><br><span> </span><br><span> print('waiting for UE to attach...')</span><br><span> wait(ue.is_connected, None)</span><br><span>@@ -34,7 +36,6 @@</span><br><span> iperf3cli.print_results()</span><br><span> iperf3srv.print_results(iperf3cli.proto() == iperf3cli.PROTO_UDP)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-max_rate = enb.ue_max_rate(downlink=False)</span><br><span> res_str = ue.verify_metric(max_rate * 0.8, operation='avg', metric='ul_brate', criterion='gt')</span><br><span> print(res_str)</span><br><span> test.set_report_stdout(res_str)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18448">change 18448</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18448"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-gsm-tester </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I631243cce132923d9024f8161cf96161c51cdae5 </div>
<div style="display:none"> Gerrit-Change-Number: 18448 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>