GBP: l3-out subnets
[vpp.git] / src / vnet / l2 / l2_output.c
index 31e3f06..e15f0ac 100644 (file)
@@ -50,6 +50,7 @@ format_l2_output_features (u8 * s, va_list * args)
 #undef _
   };
   u32 feature_bitmap = va_arg (*args, u32);
+  u32 verbose = va_arg (*args, u32);
 
   if (feature_bitmap == 0)
     {
@@ -59,8 +60,18 @@ format_l2_output_features (u8 * s, va_list * args)
 
   int i;
   for (i = L2OUTPUT_N_FEAT - 1; i >= 0; i--)
-    if (feature_bitmap & (1 << i))
-      s = format (s, "%17s (%s)\n", display_names[i], l2output_feat_names[i]);
+    {
+      if (feature_bitmap & (1 << i))
+       {
+         if (verbose)
+           s =
+             format (s, "%17s (%s)\n", display_names[i],
+                     l2output_feat_names[i]);
+         else
+           s = format (s, "%s ", l2output_feat_names[i]);
+       }
+    }
+
   return s;
 }
 
@@ -415,9 +426,9 @@ VLIB_NODE_FN (l2output_node) (vlib_main_t * vm,
                vlib_add_trace (vm, node, b[0], sizeof (*t));
              t->sw_if_index = vnet_buffer (b[0])->sw_if_index[VLIB_TX];
              h = vlib_buffer_get_current (b[0]);
-             clib_memcpy (t->src, h->src_address, 6);
-             clib_memcpy (t->dst, h->dst_address, 6);
-             clib_memcpy (t->raw, &h->type, sizeof (t->raw));
+             clib_memcpy_fast (t->src, h->src_address, 6);
+             clib_memcpy_fast (t->dst, h->dst_address, 6);
+             clib_memcpy_fast (t->raw, &h->type, sizeof (t->raw));
            }
          /* next */
          n_left--;