from .topology import NodeType
from .topology import NodeSubTypeTG
from .topology import Topology
-from .TRexConfigGenerator import TrexInitConfig
+from .TRexConfigGenerator import TrexConfig
from .DUTSetup import DUTSetup as DS
__all__ = [u"TGDropRateSearchImpl", u"TrafficGenerator", u"OptimizedSearch"]
self.ramp_up_duration = None
self.state_timeout = None
# Transient data needed for async measurements.
- self._xstats = (None, None)
+ self._xstats = ()
@property
def node(self):
message = u"Get T-Rex version failed!"
stdout, _ = exec_cmd_no_error(tg_node, command, message=message)
return stdout.strip()
- else:
- return "none"
+ return "none"
def initialize_traffic_generator(self, osi_layer, parallel_links=1):
"""TG initialization.
trex_topology = list()
self._mode = TrexMode.ASTF if osi_layer == "L7" else TrexMode.STL
- for l in range(1, parallel_links*2, 2):
- tg_if1_adj_addr = topology[f"TG_pf{l+1}_mac"][0]
- tg_if2_adj_addr = topology[f"TG_pf{l}_mac"][0]
+ for link in range(1, parallel_links*2, 2):
+ tg_if1_adj_addr = topology[f"TG_pf{link+1}_mac"][0]
+ tg_if2_adj_addr = topology[f"TG_pf{link}_mac"][0]
if osi_layer in ("L3", "L7") and "DUT1" in topology.keys():
ifl = BuiltIn().get_variable_value("${int}")
last = topology["duts_count"]
tg_if1_adj_addr = Topology().get_interface_mac(
- topology["DUT1"],
+ topology["DUT1"],
BuiltIn().get_variable_value(
- f"${{DUT1_{ifl}{l}}}[0]"
+ f"${{DUT1_{ifl}{link}}}[0]"
)
)
tg_if2_adj_addr = Topology().get_interface_mac(
- topology[f"DUT{last}"],
+ topology[f"DUT{last}"],
BuiltIn().get_variable_value(
- f"${{DUT{last}_{ifl}{l+1}}}[0]"
+ f"${{DUT{last}_{ifl}{link+1}}}[0]"
)
)
trex_topology.append(
dict(
- interface=topology[f"TG_pf{l}"][0],
+ interface=topology[f"TG_pf{link}"][0],
dst_mac=tg_if1_adj_addr
)
)
trex_topology.append(
dict(
- interface=topology[f"TG_pf{l+1}"][0],
+ interface=topology[f"TG_pf{link+1}"][0],
dst_mac=tg_if2_adj_addr
)
)
- if1_pci = topology[f"TG_pf{l}_pci"][0]
- if2_pci = topology[f"TG_pf{l+1}_pci"][0]
+ if1_pci = topology[f"TG_pf{link}_pci"][0]
+ if2_pci = topology[f"TG_pf{link+1}_pci"][0]
if min(if1_pci, if2_pci) != if1_pci:
self._ifaces_reordered = True
trex_topology.reverse()
- TrexInitConfig.init_trex_startup_configuration(
+ TrexConfig.add_startup_configuration(
self._node, trex_topology
)
TrafficGenerator.startup_trex(
:type node: dict
:raises RuntimeError: If stop traffic script fails.
"""
- command_line = OptionString().add(u"python3")
+ command_line = OptionString().add("python3")
dirname = f"{Constants.REMOTE_FW_DIR}/GPL/tools/trex"
command_line.add(f"'{dirname}/trex_astf_stop.py'")
- command_line.change_prefix(u"--")
- for index, value in enumerate(self._xstats):
+ command_line.add("--xstat")
+ for value in self._xstats:
if value is not None:
- value = value.replace(u"'", u"\"")
- command_line.add_equals(f"xstat{index}", f"'{value}'")
+ value = value.replace("'", "\"")
+ command_line.add(f"'{value}'")
stdout, _ = exec_cmd_no_error(
node, command_line,
- message=u"T-Rex ASTF runtime error!"
+ message="T-Rex ASTF runtime error!"
)
self._parse_traffic_results(stdout)
:type node: dict
:raises RuntimeError: If stop traffic script fails.
"""
- command_line = OptionString().add(u"python3")
+ command_line = OptionString().add("python3")
dirname = f"{Constants.REMOTE_FW_DIR}/GPL/tools/trex"
command_line.add(f"'{dirname}/trex_stl_stop.py'")
- command_line.change_prefix(u"--")
- for index, value in enumerate(self._xstats):
+ command_line.add("--xstat")
+ for value in self._xstats:
if value is not None:
- value = value.replace(u"'", u"\"")
- command_line.add_equals(f"xstat{index}", f"'{value}'")
+ value = value.replace("'", "\"")
+ command_line.add(f"'{value}'")
stdout, _ = exec_cmd_no_error(
node, command_line,
- message=u"T-Rex STL runtime error!"
+ message="T-Rex STL runtime error!"
)
self._parse_traffic_results(stdout)
self._sent = None
self._loss = None
self._latency = None
- xstats = [None, None]
+ xstats = []
self._l7_data = dict()
self._l7_data[u"client"] = dict()
self._l7_data[u"client"][u"active_flows"] = None
index = 0
for line in stdout.splitlines():
if f"Xstats snapshot {index}: " in line:
- xstats[index] = line[19:]
+ xstats.append(line[19:])
index += 1
- if index == 2:
- break
self._xstats = tuple(xstats)
else:
self._target_duration = duration
self._loss = None
self._latency = None
- xstats = [None, None]
+ xstats = []
index = 0
for line in stdout.splitlines():
if f"Xstats snapshot {index}: " in line:
- xstats[index] = line[19:]
+ xstats.append(line[19:])
index += 1
- if index == 2:
- break
self._xstats = tuple(xstats)
else:
self._target_duration = duration