iperf3: Support configuring data direction (dl vs ul)
Change-Id: I6b5b740beac22015c952ce826c034031ad4c4465
diff --git a/src/osmo_gsm_tester/iperf3.py b/src/osmo_gsm_tester/iperf3.py
index 1b13ffe..78dc140 100644
--- a/src/osmo_gsm_tester/iperf3.py
+++ b/src/osmo_gsm_tester/iperf3.py
@@ -154,17 +154,17 @@
locally = not self._run_node or self._run_node.is_local()
return locally
- def prepare_test_proc(self, netns=None):
+ def prepare_test_proc(self, downlink=False, netns=None):
self.log('Starting iperf3-client connecting to %s:%d' % (self.server.addr(), self.server.port()))
self.log_copied = False
self.run_dir = util.Dir(self.suite_run.get_test_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(netns)
+ return self.prepare_test_proc_locally(downlink, netns)
else:
- return self.prepare_test_proc_remotely(netns)
+ return self.prepare_test_proc_remotely(downlink, netns)
- def prepare_test_proc_remotely(self, netns):
+ def prepare_test_proc_remotely(self, downlink, netns):
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)
@@ -176,19 +176,25 @@
popen_args = ('iperf3', '-c', self.server.addr(),
'-p', str(self.server.port()), '-J',
'--logfile', self.remote_log_file)
+ if downlink:
+ popen_args += ('-R',)
+
if netns:
self.process = self.rem_host.RemoteNetNSProcess(self.name(), netns, popen_args, env={})
else:
self.process = self.rem_host.RemoteProcess(self.name(), popen_args, env={})
return self.process
- def prepare_test_proc_locally(self, netns):
+ def prepare_test_proc_locally(self, downlink, netns):
pcap_recorder.PcapRecorder(self.suite_run, self.run_dir.new_dir('pcap'), None,
'host %s and port not 22' % self.server.addr(), netns)
popen_args = ('iperf3', '-c', self.server.addr(),
'-p', str(self.server.port()), '-J',
'--logfile', os.path.abspath(self.log_file))
+ if downlink:
+ popen_args += ('-R',)
+
if netns:
self.process = process.NetNSProcess(self.name(), self.run_dir, netns, popen_args, env={})
else:
diff --git a/suites/4g/iperf3.py b/suites/4g/iperf3.py
index 5ccc922..cc7bca0 100755
--- a/suites/4g/iperf3.py
+++ b/suites/4g/iperf3.py
@@ -32,7 +32,7 @@
ue.connect(enb)
iperf3srv.start()
-proc = iperf3cli.prepare_test_proc(ue.netns())
+proc = iperf3cli.prepare_test_proc(False, ue.netns())
print('waiting for UE to attach...')
wait(ue.is_connected, None)
diff --git a/suites/gprs/lib/testlib.py b/suites/gprs/lib/testlib.py
index 284ca63..c0af372 100644
--- a/suites/gprs/lib/testlib.py
+++ b/suites/gprs/lib/testlib.py
@@ -16,7 +16,7 @@
procs = []
for i in range(len(iperf3clients)):
print("Running iperf3 client to %s through %r" % (str(iperf3clients[i]), repr(ms_li[i].tmp_ctx_id)))
- procs.append(iperf3clients[i].prepare_test_proc(ms_li[i].netns()))
+ procs.append(iperf3clients[i].prepare_test_proc(False, ms_li[i].netns()))
try:
for proc in procs:
proc.launch()