Fix IP feature ordering.
[vpp.git] / src / vnet / pg / stream.c
index 1ed7189..05d820a 100644 (file)
@@ -94,6 +94,25 @@ pg_stream_enable_disable (pg_main_t * pg, pg_stream_t * s, int want_enabled)
   s->time_last_generate = 0;
 }
 
+static u8 *
+format_pg_output_trace (u8 * s, va_list * va)
+{
+  CLIB_UNUSED (vlib_main_t * vm) = va_arg (*va, vlib_main_t *);
+  CLIB_UNUSED (vlib_node_t * node) = va_arg (*va, vlib_node_t *);
+  pg_output_trace_t *t = va_arg (*va, pg_output_trace_t *);
+  uword indent = format_get_indent (s);
+
+  s = format (s, "%Ubuffer 0x%x: %U",
+             format_white_space, indent,
+             t->buffer_index, format_vlib_buffer, &t->buffer);
+
+  s = format (s, "\n%U%U", format_white_space, indent,
+             format_ethernet_header_with_length, t->buffer.pre_data,
+             sizeof (t->buffer.pre_data));
+
+  return s;
+}
+
 static u8 *
 format_pg_interface_name (u8 * s, va_list * args)
 {
@@ -125,6 +144,7 @@ VNET_DEVICE_CLASS (pg_dev_class) = {
   .name = "pg",
   .tx_function = pg_output,
   .format_device_name = format_pg_interface_name,
+  .format_tx_trace = format_pg_output_trace,
   .admin_up_down_function = pg_interface_admin_up_down,
 };
 /* *INDENT-ON* */
@@ -203,10 +223,6 @@ pg_interface_add_or_get (pg_main_t * pg, uword if_id)
                                              CLIB_CACHE_LINE_BYTES);
          *pi->lockp = 0;
        }
-
-      ip4_sw_interface_enable_disable (pi->hw_if_index, 1);
-      ip6_sw_interface_enable_disable (pi->hw_if_index, 1);
-      mpls_sw_interface_enable_disable (&mpls_main, pi->hw_if_index, 1);
     }
 
   return i;
@@ -422,9 +438,8 @@ pg_stream_add (pg_main_t * pg, pg_stream_t * s_init)
     pg_buffer_index_t *bi;
     int n;
 
-#if DPDK > 0
-    s->buffer_bytes = VLIB_BUFFER_DATA_SIZE;
-#endif
+    if (vm->buffer_main->extern_buffer_mgmt)
+      s->buffer_bytes = VLIB_BUFFER_DATA_SIZE;
 
     if (!s->buffer_bytes)
       s->buffer_bytes = s->max_packet_bytes;