SPAN: Add 'is_l2" flag to DETAILS response messages.

Change-Id: I375bb0e663bc082d98a29fb101c653557ddc8f55
Signed-off-by: Jon Loeliger <jdl@netgate.com>
diff --git a/src/vat/api_format.c b/src/vat/api_format.c
index 776f350..7bb463c 100644
--- a/src/vat/api_format.c
+++ b/src/vat/api_format.c
@@ -20522,8 +20522,9 @@
       }
   }));
   /* *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 @@
       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 8cbac7b..7b2e47c 100644
--- a/src/vnet/span/span.api
+++ b/src/vnet/span/span.api
@@ -49,10 +49,12 @@
     @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 5df93fa..f96d267 100644
--- a/src/vnet/span/span_api.c
+++ b/src/vnet/span/span_api.c
@@ -97,6 +97,7 @@
           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);
         }));