ssh.connect(self._node)
reorder = self._ifaces_reordered # Just to make the next line fit.
p_0, p_1 = (rx_port, tx_port) if reorder else (tx_port, rx_port)
+ # Values from Robot can introduce type unicode,
+ # we need to encode them, so that repr() does not lead with 'u'.
+ if isinstance(rate, unicode):
+ rate = rate.encode("utf-8")
+ if isinstance(duration, unicode):
+ duration = duration.encode("utf-8")
+ if isinstance(warmup_time, unicode):
+ warmup_time = warmup_time.encode("utf-8")
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