diff --git a/measurement_main.py b/measurement_main.py index f207c3a..dab7cf3 100755 --- a/measurement_main.py +++ b/measurement_main.py @@ -369,10 +369,13 @@ class Server: self.config["server"], self.config["port"], ) - try: - subprocess.call(iperf_command, timeout=float(time) + 1 + TIMEOUT_OFFSET) - except: - print_message("iPerf timed out. Going ahead with next measurement...") + is_measurement_done = False + while not is_measurement_done: + try: + subprocess.call(iperf_command, timeout=float(time) + 1.0 + TIMEOUT_OFFSET) + is_measurement_done = True + except: + print_message("iPerf timed out. Retry...") processHandler.kill_all() congestion_control_index = (congestion_control_index + 1) % len( tcp_algo @@ -441,10 +444,13 @@ class Server: str(self.config["port"]), "--one-off", ] - try: - subprocess.call(iperf_command, timeout=float(time) + 1.0 + TIMEOUT_OFFSET) - except: - print_message("iPerf timed out. Going ahead with next measurement...") + is_measurement_done = False + while not is_measurement_done: + try: + subprocess.call(iperf_command, timeout=float(time) + 1.0 + TIMEOUT_OFFSET) + is_measurement_done = True + except: + print_message("iPerf timed out. Retry...") sleep(2) processHandler.kill_all() congestion_control_index = (congestion_control_index + 1) % len( @@ -807,10 +813,13 @@ class Client: "-C", tcp_algo[congestion_control_index], ] - try: - subprocess.call(iperf_command, timeout=float(time) + 2 + TIMEOUT_OFFSET) - except: - print_message("iPerf timed out. Going ahead with next measurement...") + is_measurement_done = False + while not is_measurement_done: + try: + subprocess.call(iperf_command, timeout=float(time) + 2.0 + TIMEOUT_OFFSET) + is_measurement_done = True + except: + print_message("iPerf timed out. Retry...") sleep(4) processHandler.kill_all() congestion_control_index = (congestion_control_index + 1) % len( @@ -865,10 +874,13 @@ class Client: self.config["port"], ) sleep(2) - try: - subprocess.call(iperf_command, timeout=float(time)+ 2 + TIMEOUT_OFFSET) - except: - print_message("iPerf timed out. Going ahead with next measurement...") + is_measurement_done = False + while not is_measurement_done: + try: + subprocess.call(iperf_command, timeout=float(time) + 2.0 + TIMEOUT_OFFSET) + is_measurement_done = True + except: + print_message("iPerf timed out. Retry...") processHandler.kill_all() congestion_control_index = (congestion_control_index + 1) % len( tcp_algo