From 1b95782ee3716d09f66524287dc5e93c59c133ea Mon Sep 17 00:00:00 2001 From: Vratko Polak Date: Fri, 13 Sep 2019 10:22:11 +0200 Subject: Add support for HDRhistogram + Enable hdrh in trex server. + Append hdrh coded output after min/avg/max/. + Read (not show nor decode) hdrh value in PAL. + Also, remove old ndrpdrdisc code. Change-Id: I99d99f10386a621772b5419ca1f36080fa15aca7 Signed-off-by: Vratko Polak --- resources/tools/trex/trex_stateless_profile.py | 32 ++++++++++++++------------ 1 file changed, 17 insertions(+), 15 deletions(-) (limited to 'resources/tools/trex') diff --git a/resources/tools/trex/trex_stateless_profile.py b/resources/tools/trex/trex_stateless_profile.py index 15a0225911..b888bcdea9 100755 --- a/resources/tools/trex/trex_stateless_profile.py +++ b/resources/tools/trex/trex_stateless_profile.py @@ -27,17 +27,19 @@ sys.path.insert(0, "/opt/trex-core-2.61/scripts/automation/" from trex.stl.api import * -def fmt_latency(lat_min, lat_avg, lat_max): +def fmt_latency(lat_min, lat_avg, lat_max, hdrh): """Return formatted, rounded latency. :param lat_min: Min latency :param lat_avg: Average latency :param lat_max: Max latency - :type lat_min: string - :type lat_avg: string - :type lat_max: string - :return: Formatted and rounded output "min/avg/max" - :rtype: string + :param hdrh: Base64 encoded compressed HDRHistogram object. + :type lat_min: str + :type lat_avg: str + :type lat_max: str + :type hdrh: str + :return: Formatted and rounded output (hdrh unchanged) "min/avg/max/hdrh". + :rtype: str """ try: t_min = int(round(float(lat_min))) @@ -52,7 +54,7 @@ def fmt_latency(lat_min, lat_avg, lat_max): except ValueError: t_max = int(-1) - return "/".join(str(tmp) for tmp in (t_min, t_avg, t_max)) + return "/".join(str(tmp) for tmp in (t_min, t_avg, t_max, hdrh)) def simple_burst(profile_file, duration, framesize, rate, warmup_time, port_0, @@ -100,8 +102,8 @@ def simple_burst(profile_file, duration, framesize, rate, warmup_time, port_0, total_sent = 0 lost_a = 0 lost_b = 0 - lat_a = "-1/-1/-1" - lat_b = "-1/-1/-1" + lat_a = "-1/-1/-1/" + lat_b = "-1/-1/-1/" # Read the profile: try: @@ -214,15 +216,15 @@ def simple_burst(profile_file, duration, framesize, rate, warmup_time, port_0, # Stats index is not a port number, but "pgid". # TODO: Find out what "pgid" means. if latency: + lat_obj = stats["latency"][0]["latency"] lat_a = fmt_latency( - str(stats["latency"][0]["latency"]["total_min"]), - str(stats["latency"][0]["latency"]["average"]), - str(stats["latency"][0]["latency"]["total_max"])) + str(lat_obj["total_min"]), str(lat_obj["average"]), + str(lat_obj["total_max"]), str(lat_obj["hdrh"])) if traffic_directions > 1: + lat_obj = stats["latency"][1]["latency"] lat_b = fmt_latency( - str(stats["latency"][1]["latency"]["total_min"]), - str(stats["latency"][1]["latency"]["average"]), - str(stats["latency"][1]["latency"]["total_max"])) + str(lat_obj["total_min"]), str(lat_obj["average"]), + str(lat_obj["total_max"]), str(lat_obj["hdrh"])) if traffic_directions > 1: total_sent = stats[0]["opackets"] + stats[1]["opackets"] -- cgit 1.2.3-korg