- 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)
- else:
- raise NotImplementedError('Unsupported traffic type')
-
- logger.trace(ret)
- logger.trace(stdout)
- logger.trace(stderr)
-
- #last line from console output
- line = stdout.splitlines()[-1]
-
- self._result = line
- logger.info('TrafficGen result: {0}'.format(self._result))
-
- self._received = self._result.split(', ')[1].split('=')[1]
- self._sent = self._result.split(', ')[2].split('=')[1]
- self._loss = self._result.split(', ')[3].split('=')[1]
-
- def send_traffic_on(self, node, duration, rate,
- framesize, traffic_type):
- """Send traffic from all configured interfaces on TG
- :param node: Dictionary containing TG information
- :param duration: Duration of test traffic generation in seconds
- :param rate: Offered load per interface (e.g. 1%, 3gbps, 4mpps, ...)
- :param framesize: Frame size (L2) in Bytes
- :param traffic_type: Traffic profile
- :type node: dict
+ self._received = self._result.split(', ')[1].split('=')[1]
+ self._sent = self._result.split(', ')[2].split('=')[1]
+ self._loss = self._result.split(', ')[3].split('=')[1]
+
+ self._latency = []
+ self._latency.append(self._result.split(', ')[4].split('=')[1])
+ self._latency.append(self._result.split(', ')[5].split('=')[1])
+
+ def stop_traffic_on_tg(self):
+ """Stop all traffic on TG.
+
+ :returns: Nothing
+ :raises: RuntimeError if TG is not set.
+ """
+ if self._node is None:
+ raise RuntimeError("TG is not set")
+ if self._node['subtype'] == NodeSubTypeTG.TREX:
+ self.trex_stl_stop_remote_exec(self._node)
+
+ def send_traffic_on_tg(self, duration, rate, framesize,
+ traffic_type, warmup_time=5, async_call=False,
+ latency=True):
+ """Send traffic from all configured interfaces on TG.
+
+ :param duration: Duration of test traffic generation in seconds.
+ :param rate: Offered load per interface (e.g. 1%, 3gbps, 4mpps, ...).
+ :param framesize: Frame size (L2) in Bytes.
+ :param traffic_type: Traffic profile.
+ :param warmup_time: Warmup phase in seconds.
+ :param async_call: Async mode.
+ :param latency: With latency measurement.