From 179ab361b78076bb3732d8c518c15f496a9373a5 Mon Sep 17 00:00:00 2001 From: Jon Loeliger Date: Mon, 12 Mar 2018 14:50:08 -0500 Subject: [PATCH] SPAN: Add 'is_l2" flag to DETAILS response messages. Change-Id: I375bb0e663bc082d98a29fb101c653557ddc8f55 Signed-off-by: Jon Loeliger --- src/vat/api_format.c | 6 ++++-- src/vnet/span/span.api | 2 ++ src/vnet/span/span_api.c | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/vat/api_format.c b/src/vat/api_format.c index 776f3500675..7bb463c867f 100644 --- a/src/vat/api_format.c +++ b/src/vat/api_format.c @@ -20522,8 +20522,9 @@ vl_api_sw_interface_span_details_t_handler (vl_api_sw_interface_span_details_t } })); /* *INDENT-ON* */ - print (vam->ofp, "%20s => %20s (%s)", - sw_if_from_name, sw_if_to_name, states[mp->state]); + print (vam->ofp, "%20s => %20s (%s) %s", + sw_if_from_name, sw_if_to_name, states[mp->state], + mp->is_l2 ? "l2" : "device"); } static void @@ -20572,6 +20573,7 @@ static void vat_json_object_add_string_copy (node, "dst-if-name", sw_if_to_name); } vat_json_object_add_uint (node, "state", mp->state); + vat_json_object_add_uint (node, "is-l2", mp->is_l2); } static int diff --git a/src/vnet/span/span.api b/src/vnet/span/span.api index 8cbac7b73aa..7b2e47c9af5 100644 --- a/src/vnet/span/span.api +++ b/src/vnet/span/span.api @@ -49,10 +49,12 @@ define sw_interface_span_dump { @param sw_if_index_from - mirorred interface @param sw_if_index_to - interface where the traffic is mirrored @param state - 0 = disabled, 1 = rx enabled, 2 = tx enabled, 3 tx & rx enabled + @param is_l2 - 0 = mirrored at hw device level, 1 = mirrored at l2 */ define sw_interface_span_details { u32 context; u32 sw_if_index_from; u32 sw_if_index_to; u8 state; + u8 is_l2; }; diff --git a/src/vnet/span/span_api.c b/src/vnet/span/span_api.c index 5df93faf52b..f96d2677cf7 100644 --- a/src/vnet/span/span_api.c +++ b/src/vnet/span/span_api.c @@ -97,6 +97,7 @@ vl_api_sw_interface_span_dump_t_handler (vl_api_sw_interface_span_dump_t * mp) rmp->sw_if_index_to = htonl (i); rmp->state = (u8) (clib_bitmap_get (rxm->mirror_ports, i) + clib_bitmap_get (txm->mirror_ports, i) * 2); + rmp->is_l2 = mp->is_l2; vl_api_send_msg (reg, (u8 *) rmp); })); -- 2.16.6