From ace499fbbdd44cbb9c0d68d6aad40e0b280d54de Mon Sep 17 00:00:00 2001 From: Xavier Simonart Date: Thu, 2 Jul 2020 10:02:40 +0200 Subject: Added support for reporting packet (mis)order. The "Latency" screen has been updated with 3 columns: - mis-ordered Count the number of mis-ordered packets. - extent: Gives an indication of how mis-ordered the packets are. Receiving packet "x - 5" after receiving packet "x" will cause an extent of 5. - duplicate: Count number of duplicate packets. Following commands have been added for the impair mode: - proba no drop: replaces the former "probability" command. Percentage of forwarded packets. So 99.5 means 0.5% of packet drop. - proba delay Percentage of delayed packets for the impair mode. - proba duplicate Percentage of duplicate packets. Similar parameters are supported within the config files: - proba no drop - proba delay - proba duplicate Note: it is recommanded to use the signature when measuring packet misorder, as otherwise unexpected packet would cause miscounts. Change-Id: I037f606f264d6e2bd7f123df5ed57ab7df8386d7 Signed-off-by: Xavier Simonart --- VNFs/DPPD-PROX/display_latency.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'VNFs/DPPD-PROX/display_latency.c') diff --git a/VNFs/DPPD-PROX/display_latency.c b/VNFs/DPPD-PROX/display_latency.c index 04382e46..f43dd69d 100644 --- a/VNFs/DPPD-PROX/display_latency.c +++ b/VNFs/DPPD-PROX/display_latency.c @@ -26,6 +26,9 @@ static struct display_column *stddev_col; static struct display_column *accuracy_limit_col; static struct display_column *used_col; static struct display_column *lost_col; +static struct display_column *mis_ordered_col; +static struct display_column *extent_col; +static struct display_column *duplicate_col; static struct display_page display_page_latency; static void display_latency_draw_frame(struct screen_state *screen_state) @@ -68,12 +71,18 @@ static void display_latency_draw_frame(struct screen_state *screen_state) used_col = display_table_add_col(acc); display_column_init(used_col, "Used Packets (%)", 16); accuracy_limit_col = display_table_add_col(acc); - display_column_init(accuracy_limit_col, "limit (us)", 16); + display_column_init(accuracy_limit_col, "limit (us)", 12); display_table_init(other, "Other"); lost_col = display_table_add_col(other); - display_column_init(lost_col, "Lost Packets", 16); + display_column_init(lost_col, "Lost", 12); + mis_ordered_col = display_table_add_col(other); + display_column_init(mis_ordered_col, "mis-ordered", 12); + extent_col = display_table_add_col(other); + display_column_init(extent_col, "extent", 12); + duplicate_col = display_table_add_col(other); + display_column_init(duplicate_col, "duplicate", 12); display_page_draw_frame(&display_page_latency, n_latency); @@ -117,8 +126,11 @@ static void display_stats_latency_entry(int row, struct stats_latency *stats_lat } display_column_print(accuracy_limit_col, row, "%s", print_time_unit_usec(dst, &accuracy_limit)); - display_column_print(lost_col, row, "%16"PRIu64"", stats_latency->lost_packets); + display_column_print(lost_col, row, "%12"PRIu64"", stats_latency->lost_packets); display_column_print(used_col, row, "%3u.%06u", used / AFTER_POINT, used % AFTER_POINT); + display_column_print(mis_ordered_col, row, "%12"PRIu64"", stats_latency->mis_ordered); + display_column_print(extent_col, row, "%12"PRIu64"", stats_latency->extent); + display_column_print(duplicate_col, row, "%12"PRIu64"", stats_latency->duplicate); } static void display_latency_draw_stats(struct screen_state *screen_state) -- cgit 1.2.3-korg