aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python/TrafficGenerator.py
diff options
context:
space:
mode:
authorTibor Frank <tifrank@cisco.com>2017-04-04 10:06:00 +0200
committerTibor Frank <tifrank@cisco.com>2017-06-05 07:40:28 +0200
commitb92b5be7d4bbbf523812f774bb2e539ab2081cf6 (patch)
tree61d967364e6eb9952616434b913648742e70fbc9 /resources/libraries/python/TrafficGenerator.py
parent78e999f1203dc8b7c29c24b0178bb8c23edf4c52 (diff)
CSIT-524: Traffic generator using python profiles
Profile name structure: [trex|ixia]-[sl|sf]-[topo]-[packet structure]-[scale] - Traffic generator - T-rex (trex) or Ixia (ixia) - Stateless (sl) or statefull (sf) - Topology - 2-node topology (2n) or 3-node topology (3n) - Packet structure - eth | ip4/6 | udp - Scale - e.g. ip4dst1, ip6dst10000, 4000u15p Traffic types changed to stream profiles: - From: 2-node-bridge To: trex-sl-2n-ethip4-ip4src253 - From: 3-node-bridge To: trex-sl-3n-ethip4-ip4src254 - From: 3-node-IPv4-dst-1000000 To: trex-sl-3n-ethip4-ip4dst1000000 - From: 3-node-IPv4-dst-100000 To: trex-sl-3n-ethip4-ip4dst100000 - From: 3-node-IPv4-dst-10000 To: trex-sl-3n-ethip4-ip4dst10000 - From: 3-node-IPv4-dst-1000 To: trex-sl-3n-ethip4-ip4dst1000 - From: 3-node-IPv4-dst-100 To: trex-sl-3n-ethip4-ip4dst100 - From: 3-node-IPv4-dst-1 To: trex-sl-3n-ethip4-ip4dst1 - From: 3-node-IPv4 To: trex-sl-3n-ethip4-ip4src253 - From: 3-node-IPv6-dst-1000000 To: trex-sl-3n-ethip6-ip6dst1000000 - From: 3-node-IPv6-dst-100000 To: trex-sl-3n-ethip6-ip6dst100000 - From: 3-node-IPv6-dst-10000 To: trex-sl-3n-ethip6-ip6dst10000 - From: 3-node-IPv6 To: trex-sl-3n-ethip6-ip6src253 - From: 3-node-xconnect To: trex-sl-3n-ethip4-ip4src254 - From: 3-node-IPv4-SNAT-1000u-15p To: trex-sl-3n-ethip4udp-1000u15p - From: 3-node-IPv4-SNAT-100u-15p To: trex-sl-3n-ethip4udp-100u15p - From: 3-node-IPv4-SNAT-10u-15p To: trex-sl-3n-ethip4udp-10u15p - From: 3-node-IPv4-SNAT-1u-15p To: trex-sl-3n-ethip4udp-1u15p - From: 3-node-IPv4-SNAT-1u-1p To: trex-sl-3n-ethip4udp-1u1p - From: 3-node-IPv4-SNAT-2000u-15p To: trex-sl-3n-ethip4udp-2000u15p - From: 3-node-IPv4-SNAT-4000u-15p To: trex-sl-3n-ethip4udp-4000u15p Change-Id: If6a3cf204c93ff9f2cdccc5fd395e26b05483b58 Signed-off-by: Tibor Frank <tifrank@cisco.com>
Diffstat (limited to 'resources/libraries/python/TrafficGenerator.py')
-rw-r--r--resources/libraries/python/TrafficGenerator.py408
1 files changed, 26 insertions, 382 deletions
diff --git a/resources/libraries/python/TrafficGenerator.py b/resources/libraries/python/TrafficGenerator.py
index 8fb9191063..0f25ebe42e 100644
--- a/resources/libraries/python/TrafficGenerator.py
+++ b/resources/libraries/python/TrafficGenerator.py
@@ -103,7 +103,7 @@ class TrafficGenerator(object):
self._received = None
self._node = None
# T-REX interface order mapping
- self._ifaces_reordered = 0
+ self._ifaces_reordered = False
@property
def node(self):
@@ -222,7 +222,7 @@ class TrafficGenerator(object):
if1_mac, if2_mac = if2_mac, if1_mac
if1_pci, if2_pci = if2_pci, if1_pci
if1_adj_mac, if2_adj_mac = if2_adj_mac, if1_adj_mac
- self._ifaces_reordered = 1
+ self._ifaces_reordered = True
if1_mac_hex = "0x"+if1_mac.replace(":", ",0x")
if2_mac_hex = "0x"+if2_mac.replace(":", ",0x")
@@ -283,7 +283,7 @@ class TrafficGenerator(object):
# try again
max_startup_retries -= 1
# after max retries T-rex is still not responding to API
- # critical error occured
+ # critical error occurred
raise RuntimeError('t-rex-64 startup failed')
@staticmethod
@@ -319,7 +319,7 @@ class TrafficGenerator(object):
ssh = SSH()
ssh.connect(node)
- (ret, stdout, stderr) = ssh.exec_command(
+ (ret, _, _) = ssh.exec_command(
"sh -c '{}/resources/tools/t-rex/"
"t-rex-stateless-stop.py'".format(Constants.REMOTE_FW_DIR))
@@ -340,395 +340,39 @@ class TrafficGenerator(object):
:param warmup_time: Warmup time period.
:type duration: int
:type rate: str
- :type framesize: int
+ :type framesize: str
:type traffic_type: str
:type async_call: bool
:type latency: bool
:type warmup_time: int
:returns: Nothing
- :raises: NotImplementedError if traffic type is not supported.
:raises: RuntimeError in case of TG driver issue.
"""
ssh = SSH()
ssh.connect(self._node)
- _p0 = 1
- _p1 = 2
_async = "--async" if async_call else ""
_latency = "--latency" if latency else ""
-
- 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 '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} "
- "--p{4}_src_start_ip 10.10.10.1 "
- "--p{4}_src_end_ip 10.10.10.254 "
- "--p{4}_dst_start_ip 20.20.20.1 "
- "--p{5}_src_start_ip 20.20.20.1 "
- "--p{5}_src_end_ip 20.20.20.254 "
- "--p{5}_dst_start_ip 10.10.10.1 "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration)+60)
- elif traffic_type in ["3-node-IPv4"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} "
- "--p{4}_src_start_ip 10.10.10.2 "
- "--p{4}_src_end_ip 10.10.10.254 "
- "--p{4}_dst_start_ip 20.20.20.2 "
- "--p{5}_src_start_ip 20.20.20.2 "
- "--p{5}_src_end_ip 20.20.20.254 "
- "--p{5}_dst_start_ip 10.10.10.2 "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration)+60)
- elif traffic_type in ["3-node-IPv4-dst-1"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} "
- "--p{4}_src_start_ip 10.0.0.1 "
- "--p{4}_dst_start_ip 20.0.0.0 "
- "--p{4}_dst_end_ip 20.0.0.0 "
- "--p{5}_src_start_ip 20.0.0.1 "
- "--p{5}_dst_start_ip 10.0.0.0 "
- "--p{5}_dst_end_ip 10.0.0.0 "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration)+60)
- elif traffic_type in ["3-node-IPv4-dst-100"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} "
- "--p{4}_src_start_ip 10.0.0.1 "
- "--p{4}_dst_start_ip 20.0.0.0 "
- "--p{4}_dst_end_ip 20.0.0.99 "
- "--p{5}_src_start_ip 20.0.0.1 "
- "--p{5}_dst_start_ip 10.0.0.0 "
- "--p{5}_dst_end_ip 10.0.0.99 "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration)+60)
- elif traffic_type in ["3-node-IPv4-dst-1000"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} "
- "--p{4}_src_start_ip 10.0.0.1 "
- "--p{4}_dst_start_ip 20.0.0.0 "
- "--p{4}_dst_end_ip 20.0.3.231 "
- "--p{5}_src_start_ip 20.0.0.1 "
- "--p{5}_dst_start_ip 10.0.0.0 "
- "--p{5}_dst_end_ip 10.0.3.231 "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration)+60)
-
- elif traffic_type in ["3-node-IPv4-SNAT-1u-1p"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} "
- "--p{4}_src_start_ip 20.0.0.0 "
- "--p{4}_src_end_ip 20.0.0.0 "
- "--p{4}_dst_start_ip 12.0.0.2 "
- "--p{5}_src_start_ip 12.0.0.2 "
- "--p{5}_src_end_ip 12.0.0.2 "
- "--p{5}_dst_start_ip 200.0.0.0 "
- "--p{4}_src_start_udp_port 1024 "
- "--p{4}_src_end_udp_port 1024 "
- "--p{4}_dst_start_udp_port 1024 "
- "--p{5}_src_start_udp_port 1024 "
- "--p{5}_dst_start_udp_port 1028 "
- "--p{5}_dst_end_udp_port 1028 "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration)+60)
-
- elif traffic_type in ["3-node-IPv4-SNAT-1u-15p"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} "
- "--p{4}_src_start_ip 20.0.0.0 "
- "--p{4}_src_end_ip 20.0.0.0 "
- "--p{4}_dst_start_ip 12.0.0.2 "
- "--p{5}_src_start_ip 12.0.0.2 "
- "--p{5}_src_end_ip 12.0.0.2 "
- "--p{5}_dst_start_ip 200.0.0.0 "
- "--p{4}_src_start_udp_port 1024 "
- "--p{4}_src_end_udp_port 1038 "
- "--p{4}_dst_start_udp_port 1024 "
- "--p{5}_src_start_udp_port 1024 "
- "--p{5}_dst_start_udp_port 1024 "
- "--p{5}_dst_end_udp_port 1038 "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration)+60)
-
- elif traffic_type in ["3-node-IPv4-SNAT-10u-15p"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} "
- "--p{4}_src_start_ip 20.0.0.0 "
- "--p{4}_src_end_ip 20.0.0.9 "
- "--p{4}_dst_start_ip 12.0.0.2 "
- "--p{5}_src_start_ip 12.0.0.2 "
- "--p{5}_src_end_ip 12.0.0.2 "
- "--p{5}_dst_start_ip 200.0.0.0 "
- "--p{4}_src_start_udp_port 1024 "
- "--p{4}_src_end_udp_port 1038 "
- "--p{4}_dst_start_udp_port 1024 "
- "--p{5}_src_start_udp_port 1024 "
- "--p{5}_dst_start_udp_port 1024 "
- "--p{5}_dst_end_udp_port 1173 "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration)+60)
-
- elif traffic_type in ["3-node-IPv4-SNAT-100u-15p"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} "
- "--p{4}_src_start_ip 20.0.0.0 "
- "--p{4}_src_end_ip 20.0.0.99 "
- "--p{4}_dst_start_ip 12.0.0.2 "
- "--p{5}_src_start_ip 12.0.0.2 "
- "--p{5}_src_end_ip 12.0.0.2 "
- "--p{5}_dst_start_ip 200.0.0.0 "
- "--p{4}_src_start_udp_port 1024 "
- "--p{4}_src_end_udp_port 1038 "
- "--p{4}_dst_start_udp_port 1024 "
- "--p{5}_src_start_udp_port 1024 "
- "--p{5}_dst_start_udp_port 1024 "
- "--p{5}_dst_end_udp_port 2523 "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration) + 60)
-
- elif traffic_type in ["3-node-IPv4-SNAT-1000u-15p"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} "
- "--p{4}_src_start_ip 20.0.0.0 "
- "--p{4}_src_end_ip 20.0.3.231 "
- "--p{4}_dst_start_ip 12.0.0.2 "
- "--p{5}_src_start_ip 12.0.0.2 "
- "--p{5}_src_end_ip 12.0.0.2 "
- "--p{5}_dst_start_ip 200.0.0.0 "
- "--p{4}_src_start_udp_port 1024 "
- "--p{4}_src_end_udp_port 1038 "
- "--p{4}_dst_start_udp_port 1024 "
- "--p{5}_src_start_udp_port 1024 "
- "--p{5}_dst_start_udp_port 1024 "
- "--p{5}_dst_end_udp_port 16023 "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration)+60)
-
- elif traffic_type in ["3-node-IPv4-SNAT-2000u-15p"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} "
- "--p{4}_src_start_ip 20.0.0.0 "
- "--p{4}_src_end_ip 20.0.7.207 "
- "--p{4}_dst_start_ip 12.0.0.2 "
- "--p{5}_src_start_ip 12.0.0.2 "
- "--p{5}_src_end_ip 12.0.0.2 "
- "--p{5}_dst_start_ip 200.0.0.0 "
- "--p{4}_src_start_udp_port 1024 "
- "--p{4}_src_end_udp_port 1038 "
- "--p{4}_dst_start_udp_port 1024 "
- "--p{5}_src_start_udp_port 1024 "
- "--p{5}_dst_start_udp_port 1024 "
- "--p{5}_dst_end_udp_port 31022 "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration)+60)
-
- elif traffic_type in ["3-node-IPv4-SNAT-4000u-15p"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} "
- "--p{4}_src_start_ip 20.0.0.0 "
- "--p{4}_src_end_ip 20.0.15.159 "
- "--p{4}_dst_start_ip 12.0.0.2 "
- "--p{5}_src_start_ip 12.0.0.2 "
- "--p{5}_src_end_ip 12.0.0.2 "
- "--p{5}_dst_start_ip 200.0.0.0 "
- "--p{4}_src_start_udp_port 1024 "
- "--p{4}_src_end_udp_port 1038 "
- "--p{4}_dst_start_udp_port 1024 "
- "--p{5}_src_start_udp_port 1024 "
- "--p{5}_dst_start_udp_port 1024 "
- "--p{5}_dst_end_udp_port 61022 "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration)+60)
-
- elif traffic_type in ["3-node-IPv4-dst-10000"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} "
- "--p{4}_src_start_ip 10.0.0.1 "
- "--p{4}_dst_start_ip 20.0.0.0 "
- "--p{4}_dst_end_ip 20.0.39.15 "
- "--p{5}_src_start_ip 20.0.0.1 "
- "--p{5}_dst_start_ip 10.0.0.0 "
- "--p{5}_dst_end_ip 10.0.39.15 "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration)+60)
- elif traffic_type in ["3-node-IPv4-dst-100000"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} "
- "--p{4}_src_start_ip 10.0.0.1 "
- "--p{4}_dst_start_ip 20.0.0.0 "
- "--p{4}_dst_end_ip 20.1.134.159 "
- "--p{5}_src_start_ip 20.0.0.1 "
- "--p{5}_dst_start_ip 10.0.0.0 "
- "--p{5}_dst_end_ip 10.1.134.159 "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration)+60)
- elif traffic_type in ["3-node-IPv4-dst-1000000"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} "
- "--p{4}_src_start_ip 10.0.0.1 "
- "--p{4}_dst_start_ip 20.0.0.0 "
- "--p{4}_dst_end_ip 20.15.66.63 "
- "--p{5}_src_start_ip 20.0.0.1 "
- "--p{5}_dst_start_ip 10.0.0.0 "
- "--p{5}_dst_end_ip 10.15.66.63 "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration)+60)
- elif traffic_type in ["3-node-IPv6"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} -6 "
- "--p{4}_src_start_ip 2001:1::2 "
- "--p{4}_src_end_ip 2001:1::FE "
- "--p{4}_dst_start_ip 2001:2::2 "
- "--p{5}_src_start_ip 2001:2::2 "
- "--p{5}_src_end_ip 2001:2::FE "
- "--p{5}_dst_start_ip 2001:1::2 "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration)+60)
- elif traffic_type in ["3-node-IPv6-dst-10000"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} -6 "
- "--p{4}_src_start_ip 2001:1::1 "
- "--p{4}_dst_start_ip 2001:2::0 "
- "--p{4}_dst_end_ip 2001:2::270F "
- "--p{5}_src_start_ip 2001:2::1 "
- "--p{5}_dst_start_ip 2001:1::0 "
- "--p{5}_dst_end_ip 2001:1::270F "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration)+60)
- elif traffic_type in ["3-node-IPv6-dst-100000"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} -6 "
- "--p{4}_src_start_ip 2001:1::1 "
- "--p{4}_dst_start_ip 2001:2::0 "
- "--p{4}_dst_end_ip 2001:2::1:869F "
- "--p{5}_src_start_ip 2001:2::1 "
- "--p{5}_dst_start_ip 2001:1::0 "
- "--p{5}_dst_end_ip 2001:1::1:869F "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration)+60)
- elif traffic_type in ["3-node-IPv6-dst-1000000"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} -6 "
- "--p{4}_src_start_ip 2001:1::1 "
- "--p{4}_dst_start_ip 2001:2::0 "
- "--p{4}_dst_end_ip 2001:2::F:423F "
- "--p{5}_src_start_ip 2001:2::1 "
- "--p{5}_dst_start_ip 2001:1::0 "
- "--p{5}_dst_end_ip 2001:1::F:423F "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration)+60)
- elif traffic_type in ["2-node-bridge"]:
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} "
- "--p{4}_src_start_ip 10.10.10.2 "
- "--p{4}_src_end_ip 10.10.10.254 "
- "--p{4}_dst_start_ip 20.20.20.2 "
- "--p{5}_src_start_ip 20.20.20.2 "
- "--p{5}_src_end_ip 20.20.20.254 "
- "--p{5}_dst_start_ip 10.10.10.2 "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout = int(duration) + 60)
- elif traffic_type in ["3-node-IPv4-l3fwd"]:
- # add for the DPDK l3fwd routing test
- # please make sure the TG port 0 connect to the DUT port 0
- (ret, stdout, stderr) = ssh.exec_command(
- "sh -c '{0}/resources/tools/t-rex/t-rex-stateless.py "
- "--duration={1} -r {2} -s {3} "
- "--p{4}_dst_start_ip 2.1.1.2 "
- "--p{4}_dst_end_ip 2.1.1.254 "
- "--p{4}_src_start_ip 20.20.20.2 "
- "--p{5}_dst_start_ip 1.1.1.2 "
- "--p{5}_dst_end_ip 1.1.1.254 "
- "--p{5}_src_start_ip 10.10.10.2 "
- "{6} {7} --warmup_time={8}'".format(Constants.REMOTE_FW_DIR,
- duration, rate, framesize,
- _p0, _p1, _async, _latency,
- warmup_time),
- timeout=int(duration)+60)
- else:
- raise NotImplementedError('Unsupported traffic type')
+ _p0, _p1 = (2, 1) if self._ifaces_reordered else (1, 2)
+
+ profile_path = ("{0}/resources/tools/t-rex/stream_profiles/"
+ "{1}.py".format(Constants.REMOTE_FW_DIR,
+ traffic_type))
+ (ret, stdout, _) = ssh.exec_command(
+ "sh -c "
+ "'{0}/resources/tools/t-rex/t-rex-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')
@@ -800,7 +444,7 @@ class TrafficGenerator(object):
if node['subtype'] is None:
raise RuntimeError('TG subtype not defined')
elif node['subtype'] == NodeSubTypeTG.TREX:
- self.trex_stl_start_remote_exec(duration, rate, framesize,
+ self.trex_stl_start_remote_exec(int(duration), rate, framesize,
traffic_type, async_call, latency,
warmup_time=warmup_time)
else: