iperf3: Add support for setting TOS

Change-Id: I3ccc249ad1c9598c606303c52eff6823f45afa7b
diff --git a/src/osmo_gsm_tester/obj/iperf3.py b/src/osmo_gsm_tester/obj/iperf3.py
index d79ff98..4ccbf42 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, bitrate=0):
+    def prepare_test_proc(self, dir=None, netns=None, time_sec=None, proto=None, bitrate=0, tos=None):
         values = config.get_defaults('iperf3cli')
         config.overlay(values, self.testenv.suite().config().get('iperf3cli', {}))
 
@@ -256,6 +256,9 @@
             popen_args += ('--bidir',)
         if proto == IPerf3Client.PROTO_UDP:
             popen_args += ('-u', '-b', str(bitrate))
+        if tos is not None:
+            popen_args += ('-S', str(tos))
+
         if self.runs_locally():
             proc = self.prepare_test_proc_locally(netns, popen_args)
         else: