<p>pespin <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/17315">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  pespin: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">iperf3: Support configuring data direction (dl vs ul)<br><br>Change-Id: I6b5b740beac22015c952ce826c034031ad4c4465<br>---<br>M src/osmo_gsm_tester/iperf3.py<br>M suites/4g/iperf3.py<br>M suites/gprs/lib/testlib.py<br>3 files changed, 13 insertions(+), 7 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo_gsm_tester/iperf3.py b/src/osmo_gsm_tester/iperf3.py</span><br><span>index 1b13ffe..78dc140 100644</span><br><span>--- a/src/osmo_gsm_tester/iperf3.py</span><br><span>+++ b/src/osmo_gsm_tester/iperf3.py</span><br><span>@@ -154,17 +154,17 @@</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, netns=None):</span><br><span style="color: hsl(120, 100%, 40%);">+    def prepare_test_proc(self, downlink=False, netns=None):</span><br><span>         self.log('Starting iperf3-client connecting to %s:%d' % (self.server.addr(), self.server.port()))</span><br><span>         self.log_copied = False</span><br><span>         self.run_dir = util.Dir(self.suite_run.get_test_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(netns)</span><br><span style="color: hsl(120, 100%, 40%);">+            return self.prepare_test_proc_locally(downlink, netns)</span><br><span>         else:</span><br><span style="color: hsl(0, 100%, 40%);">-            return self.prepare_test_proc_remotely(netns)</span><br><span style="color: hsl(120, 100%, 40%);">+            return self.prepare_test_proc_remotely(downlink, netns)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    def prepare_test_proc_remotely(self, netns):</span><br><span style="color: hsl(120, 100%, 40%);">+    def prepare_test_proc_remotely(self, downlink, netns):</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>@@ -176,19 +176,25 @@</span><br><span>         popen_args = ('iperf3', '-c',  self.server.addr(),</span><br><span>                       '-p', str(self.server.port()), '-J',</span><br><span>                       '--logfile', self.remote_log_file)</span><br><span style="color: hsl(120, 100%, 40%);">+        if downlink:</span><br><span style="color: hsl(120, 100%, 40%);">+            popen_args += ('-R',)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>         if netns:</span><br><span>             self.process = self.rem_host.RemoteNetNSProcess(self.name(), netns, popen_args, env={})</span><br><span>         else:</span><br><span>             self.process = self.rem_host.RemoteProcess(self.name(), popen_args, env={})</span><br><span>         return self.process</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    def prepare_test_proc_locally(self, netns):</span><br><span style="color: hsl(120, 100%, 40%);">+    def prepare_test_proc_locally(self, downlink, netns):</span><br><span>         pcap_recorder.PcapRecorder(self.suite_run, self.run_dir.new_dir('pcap'), None,</span><br><span>                                    'host %s and port not 22' % self.server.addr(), netns)</span><br><span> </span><br><span>         popen_args = ('iperf3', '-c',  self.server.addr(),</span><br><span>                       '-p', str(self.server.port()), '-J',</span><br><span>                       '--logfile', os.path.abspath(self.log_file))</span><br><span style="color: hsl(120, 100%, 40%);">+        if downlink:</span><br><span style="color: hsl(120, 100%, 40%);">+            popen_args += ('-R',)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>         if netns:</span><br><span>             self.process = process.NetNSProcess(self.name(), self.run_dir, netns, popen_args, env={})</span><br><span>         else:</span><br><span>diff --git a/suites/4g/iperf3.py b/suites/4g/iperf3.py</span><br><span>index 5ccc922..cc7bca0 100755</span><br><span>--- a/suites/4g/iperf3.py</span><br><span>+++ b/suites/4g/iperf3.py</span><br><span>@@ -32,7 +32,7 @@</span><br><span> ue.connect(enb)</span><br><span> </span><br><span> iperf3srv.start()</span><br><span style="color: hsl(0, 100%, 40%);">-proc = iperf3cli.prepare_test_proc(ue.netns())</span><br><span style="color: hsl(120, 100%, 40%);">+proc = iperf3cli.prepare_test_proc(False, ue.netns())</span><br><span> </span><br><span> print('waiting for UE to attach...')</span><br><span> wait(ue.is_connected, None)</span><br><span>diff --git a/suites/gprs/lib/testlib.py b/suites/gprs/lib/testlib.py</span><br><span>index 284ca63..c0af372 100644</span><br><span>--- a/suites/gprs/lib/testlib.py</span><br><span>+++ b/suites/gprs/lib/testlib.py</span><br><span>@@ -16,7 +16,7 @@</span><br><span>     procs = []</span><br><span>     for i in range(len(iperf3clients)):</span><br><span>         print("Running iperf3 client to %s through %r" % (str(iperf3clients[i]), repr(ms_li[i].tmp_ctx_id)))</span><br><span style="color: hsl(0, 100%, 40%);">-        procs.append(iperf3clients[i].prepare_test_proc(ms_li[i].netns()))</span><br><span style="color: hsl(120, 100%, 40%);">+        procs.append(iperf3clients[i].prepare_test_proc(False, ms_li[i].netns()))</span><br><span>     try:</span><br><span>         for proc in procs:</span><br><span>             proc.launch()</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-gsm-tester/+/17315">change 17315</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/+/17315"/><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: I6b5b740beac22015c952ce826c034031ad4c4465 </div>
<div style="display:none"> Gerrit-Change-Number: 17315 </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-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>