def initialize_traffic_generator(
self, tg_node, tg_if1, tg_if2, tg_if1_adj_node, tg_if1_adj_if,
- tg_if2_adj_node, tg_if2_adj_if, test_type, tg_if1_dst_mac=None,
+ tg_if2_adj_node, tg_if2_adj_if, osi_layer, tg_if1_dst_mac=None,
tg_if2_dst_mac=None):
"""TG initialization.
:param tg_if1_adj_if: TG if1 adjecent interface.
:param tg_if2_adj_node: TG if2 adjecent node.
:param tg_if2_adj_if: TG if2 adjecent interface.
- :param test_type: 'L2', 'L3' or 'L7' - OSI Layer testing type.
+ :param osi_layer: 'L2', 'L3' or 'L7' - OSI Layer testing type.
:param tg_if1_dst_mac: Interface 1 destination MAC address.
:param tg_if2_dst_mac: Interface 2 destination MAC address.
:type tg_node: dict
:type tg_if1_adj_if: str
:type tg_if2_adj_node: dict
:type tg_if2_adj_if: str
- :type test_type: str
+ :type osi_layer: str
:type tg_if1_dst_mac: str
:type tg_if2_dst_mac: str
:returns: nothing
if1_addr = Topology().get_interface_mac(tg_node, tg_if1)
if2_addr = Topology().get_interface_mac(tg_node, tg_if2)
- if test_type == 'L2':
+ if osi_layer == 'L2':
if1_adj_addr = if2_addr
if2_adj_addr = if1_addr
- elif test_type == 'L3':
+ elif osi_layer == 'L3':
if1_adj_addr = Topology().get_interface_mac(tg_if1_adj_node,
tg_if1_adj_if)
if2_adj_addr = Topology().get_interface_mac(tg_if2_adj_node,
tg_if2_adj_if)
- elif test_type == 'L7':
+ elif osi_layer == 'L7':
if1_addr = Topology().get_interface_ip4(tg_node, tg_if1)
if2_addr = Topology().get_interface_ip4(tg_node, tg_if2)
if1_adj_addr = Topology().get_interface_ip4(tg_if1_adj_node,
if1_adj_addr, if2_adj_addr = if2_adj_addr, if1_adj_addr
self._ifaces_reordered = True
- if test_type == 'L2' or test_type == 'L3':
+ if osi_layer == 'L2' or osi_layer == 'L3':
(ret, _, _) = ssh.exec_command(
"sudo sh -c 'cat << EOF > /etc/trex_cfg.yaml\n"
"- port_limit: 2\n"
"0x"+if1_addr.replace(":", ",0x"),
"0x"+if2_adj_addr.replace(":", ",0x"),
"0x"+if2_addr.replace(":", ",0x")))
- elif test_type == 'L7':
+ elif osi_layer == 'L7':
(ret, _, _) = ssh.exec_command(
"sudo sh -c 'cat << EOF > /etc/trex_cfg.yaml\n"
"- port_limit: 2\n"
raise RuntimeError('trex-cfg failed')
# start TRex
- if test_type == 'L2' or test_type == 'L3':
+ if osi_layer == 'L2' or osi_layer == 'L3':
(ret, _, _) = ssh.exec_command(
"sh -c 'cd {0}/scripts/ && "
"sudo nohup ./t-rex-64 -i -c 7 --iom 0 > /tmp/trex.log "
"2>&1 &' > /dev/null"\
.format(Constants.TREX_INSTALL_DIR))
- elif test_type == 'L7':
+ elif osi_layer == 'L7':
(ret, _, _) = ssh.exec_command(
"sh -c 'cd {0}/scripts/ && "
"sudo nohup ./t-rex-64 --astf -i -c 7 --iom 0 > "
command = (
"sh -c '{tool}/resources/tools/trex/trex_stateless_profile.py"
" --profile {prof}/resources/traffic_profiles/trex/{traffic}.py"
- " --duration {duration} --frame_size {frame_size} --rate {rate}"
- " --warmup_time {warmup} --port_0 {p_0} --port_1 {p_1}").format(
+ " --duration {duration!r} --frame_size {frame_size} --rate {rate!r}"
+ " --warmup_time {warmup!r} --port_0 {p_0} --port_1 {p_1}").format(
tool=Constants.REMOTE_FW_DIR, prof=Constants.REMOTE_FW_DIR,
traffic=traffic_profile, duration=duration,
frame_size=frame_size, rate=rate, warmup=warmup_time, p_0=p_0,
@staticmethod
def perform_soak_search(
frame_size, traffic_profile, minimum_transmit_rate,
- maximum_transmit_rate, plr_target=1e-7, tdpt=0.2,
- initial_count=50, timeout=1800.0):
+ maximum_transmit_rate, plr_target=1e-7, tdpt=0.1,
+ initial_count=50, timeout=1800.0, trace_enabled=False):
"""Setup initialized TG, perform soak search, return avg and stdev.
:param frame_size: Frame size identifier or value [B].
algorithm = PLRsearch(
measurer=tg_instance, trial_duration_per_trial=tdpt,
packet_loss_ratio_target=plr_target,
- trial_number_offset=initial_count, timeout=timeout)
+ trial_number_offset=initial_count, timeout=timeout,
+ trace_enabled=trace_enabled)
result = algorithm.search(minimum_transmit_rate, maximum_transmit_rate)
return result