Change in osmo-gsm-tester[master]: iperf3: Support runing test with bidirectional data

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/+/18447 )


Change subject: iperf3: Support runing test with bidirectional data
......................................................................

iperf3: Support runing test with bidirectional data

Change-Id: Ia6f12c65fd3ea26d412997741cb8685a9646af43
---
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/handover.py
M sysmocom/suites/4g/iperf3_dl.py
M sysmocom/suites/4g/iperf3_ul.py
M sysmocom/suites/gprs/lib/testlib.py
7 files changed, 25 insertions(+), 13 deletions(-)



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

diff --git a/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py b/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py
index bcc569a..66d75bb 100755
--- a/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py
+++ b/doc/examples/4g_srsLTE/suites/4g/iperf3_dl.py
@@ -21,7 +21,7 @@
 ue.connect(enb)
 
 iperf3srv.start()
-proc = iperf3cli.prepare_test_proc(True, ue.netns())
+proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_DL, ue.netns())
 
 print('waiting for UE to attach...')
 wait(ue.is_connected, None)
diff --git a/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py b/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py
index a92a658..7dca127 100755
--- a/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py
+++ b/doc/examples/4g_srsLTE/suites/4g/iperf3_ul.py
@@ -21,7 +21,7 @@
 ue.connect(enb)
 
 iperf3srv.start()
-proc = iperf3cli.prepare_test_proc(False, ue.netns())
+proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_UL, ue.netns())
 
 print('waiting for UE to attach...')
 wait(ue.is_connected, None)
diff --git a/src/osmo_gsm_tester/obj/iperf3.py b/src/osmo_gsm_tester/obj/iperf3.py
index 9c05d44..04aac47 100644
--- a/src/osmo_gsm_tester/obj/iperf3.py
+++ b/src/osmo_gsm_tester/obj/iperf3.py
@@ -193,6 +193,10 @@
     PROTO_TCP = "tcp"
     PROTO_UDP = "udp"
 
+    DIR_UL = "ul"
+    DIR_DL = "dl"
+    DIR_BI = "bi"
+
     @classmethod
     def validate_protocol(cls, val):
         return val in (cls.PROTO_TCP, cls.PROTO_UDP)
@@ -215,9 +219,13 @@
         locally = not self._run_node or self._run_node.is_local()
         return locally
 
-    def prepare_test_proc(self, downlink=False, netns=None, time_sec=None, proto=None):
+    def prepare_test_proc(self, dir=None, netns=None, time_sec=None, proto=None):
         values = config.get_defaults('iperf3cli')
         config.overlay(values, self.testenv.suite().config().get('iperf3cli', {}))
+
+        if dir is None:
+            dir = self.DIR_UL
+
         if time_sec is None:
             time_sec_str = values.get('time', time_sec)
 
@@ -239,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(downlink, netns, time_sec, proto == IPerf3Client.PROTO_UDP)
+            return self.prepare_test_proc_locally(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP)
         else:
-            return self.prepare_test_proc_remotely(downlink, netns, time_sec, proto == IPerf3Client.PROTO_UDP)
+            return self.prepare_test_proc_remotely(dir, netns, time_sec, proto == IPerf3Client.PROTO_UDP)
 
-    def prepare_test_proc_remotely(self, downlink, netns, time_sec, use_udp):
+    def prepare_test_proc_remotely(self, dir, netns, time_sec, use_udp):
         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)
@@ -257,8 +265,10 @@
                       '-t', str(time_sec))
         if self.logfile_supported:
             popen_args += ('--logfile', self.remote_log_file,)
-        if downlink:
+        if dir == IPerf3Client.DIR_DL:
             popen_args += ('-R',)
+        elif dir == IPerf3Client.DIR_BI:
+            popen_args += ('--bidir',)
         if use_udp:
             popen_args += ('-u', '-b', '0')
 
@@ -268,7 +278,7 @@
             self.process = self.rem_host.RemoteProcess(self.name(), popen_args, env={})
         return self.process
 
-    def prepare_test_proc_locally(self, downlink, netns, time_sec, use_udp):
+    def prepare_test_proc_locally(self, dir, netns, time_sec, use_udp):
         pcap_recorder.PcapRecorder(self.testenv, self.run_dir.new_dir('pcap'), None,
                                    'host %s and port not 22' % self.server.addr(), netns)
 
@@ -277,8 +287,10 @@
                       '-t', str(time_sec))
         if self.logfile_supported:
             popen_args += ('--logfile', os.path.abspath(self.log_file),)
-        if downlink:
+        if dir == IPerf3Client.DIR_DL:
             popen_args += ('-R',)
+        elif dir == IPerf3Client.DIR_BI:
+            popen_args += ('--bidir',)
         if use_udp:
             popen_args += ('-u', '-b', '0')
 
diff --git a/sysmocom/suites/4g/handover.py b/sysmocom/suites/4g/handover.py
index a503465..b0837d8 100755
--- a/sysmocom/suites/4g/handover.py
+++ b/sysmocom/suites/4g/handover.py
@@ -43,7 +43,7 @@
 ue.connect(enb)
 
 iperf3srv.start()
-proc = iperf3cli.prepare_test_proc(False, ue.netns(), duration + 30)
+proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_UL, ue.netns(), duration + 30)
 
 print('waiting for UE to attach...')
 wait(ue.is_connected, None)
diff --git a/sysmocom/suites/4g/iperf3_dl.py b/sysmocom/suites/4g/iperf3_dl.py
index bcc569a..66d75bb 100755
--- a/sysmocom/suites/4g/iperf3_dl.py
+++ b/sysmocom/suites/4g/iperf3_dl.py
@@ -21,7 +21,7 @@
 ue.connect(enb)
 
 iperf3srv.start()
-proc = iperf3cli.prepare_test_proc(True, ue.netns())
+proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_DL, ue.netns())
 
 print('waiting for UE to attach...')
 wait(ue.is_connected, None)
diff --git a/sysmocom/suites/4g/iperf3_ul.py b/sysmocom/suites/4g/iperf3_ul.py
index a92a658..7dca127 100755
--- a/sysmocom/suites/4g/iperf3_ul.py
+++ b/sysmocom/suites/4g/iperf3_ul.py
@@ -21,7 +21,7 @@
 ue.connect(enb)
 
 iperf3srv.start()
-proc = iperf3cli.prepare_test_proc(False, ue.netns())
+proc = iperf3cli.prepare_test_proc(iperf3cli.DIR_UL, ue.netns())
 
 print('waiting for UE to attach...')
 wait(ue.is_connected, None)
diff --git a/sysmocom/suites/gprs/lib/testlib.py b/sysmocom/suites/gprs/lib/testlib.py
index 765f463..1421229 100644
--- a/sysmocom/suites/gprs/lib/testlib.py
+++ b/sysmocom/suites/gprs/lib/testlib.py
@@ -10,7 +10,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(False, ms_li[i].netns()))
+        procs.append(iperf3clients[i].prepare_test_proc(iperf3clients[i].DIR_UL, ms_li[i].netns()))
     try:
         for proc in procs:
             proc.launch()

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-gsm-tester/+/18447
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: Ia6f12c65fd3ea26d412997741cb8685a9646af43
Gerrit-Change-Number: 18447
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/b40809ed/attachment.htm>


More information about the gerrit-log mailing list