- _p0 = 1
- _p1 = 2
-
- if self._ifaces_reordered != 0:
- _p0, _p1 = _p1, _p0
-
- if traffic_type in ["3-node-xconnect", "3-node-bridge"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '/tmp/openvpp-testing/resources/tools/t-rex/"
- "t-rex-stateless.py "
- "-d {0} -r {1} -s {2} "
- "--p{3}_src_start_ip 10.10.10.1 "
- "--p{3}_src_end_ip 10.10.10.254 "
- "--p{3}_dst_start_ip 20.20.20.1 "
- "--p{4}_src_start_ip 20.20.20.1 "
- "--p{4}_src_end_ip 20.20.20.254 "
- "--p{4}_dst_start_ip 10.10.10.1'".\
- format(duration, rate, framesize, _p0, _p1),\
- timeout=int(duration)+60)
- elif traffic_type in ["3-node-IPv4"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '/tmp/openvpp-testing/resources/tools/t-rex/"
- "t-rex-stateless.py "
- "-d {0} -r {1} -s {2} "
- "--p{3}_src_start_ip 10.10.10.2 "
- "--p{3}_src_end_ip 10.10.10.254 "
- "--p{3}_dst_start_ip 20.20.20.2 "
- "--p{4}_src_start_ip 20.20.20.2 "
- "--p{4}_src_end_ip 20.20.20.254 "
- "--p{4}_dst_start_ip 10.10.10.2'".\
- format(duration, rate, framesize, _p0, _p1),\
- timeout=int(duration)+60)
+ _async = "--async" if async_call else ""
+ _latency = "--latency" if latency else ""
+ _p0, _p1 = (2, 1) if self._ifaces_reordered else (1, 2)
+
+ profile_path = ("{0}/resources/traffic_profiles/trex/"
+ "{1}.py".format(Constants.REMOTE_FW_DIR,
+ traffic_type))
+ (ret, stdout, _) = ssh.exec_command(
+ "sh -c "
+ "'{0}/resources/tools/trex/trex_stateless_profile.py "
+ "--profile {1} "
+ "--duration {2} "
+ "--frame_size {3} "
+ "--rate {4} "
+ "--warmup_time {5} "
+ "--port_0 {6} "
+ "--port_1 {7} "
+ "{8} " # --async
+ "{9}'". # --latency
+ format(Constants.REMOTE_FW_DIR, profile_path, duration, framesize,
+ rate, warmup_time, _p0 - 1, _p1 - 1, _async, _latency),
+ timeout=int(duration) + 60)
+
+ if int(ret) != 0:
+ raise RuntimeError('T-rex stateless runtime error')
+ elif async_call:
+ #no result
+ self._received = None
+ self._sent = None
+ self._loss = None
+ self._latency = None