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 *);
+ u32 indent = format_get_indent (s);
+
+ s = format (s, "%Ubuffer 0x%x: %U",
+ format_white_space, indent,
+ t->buffer_index, format_vnet_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)
{
.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* */
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;
pg_buffer_index_t *bi;
int n;
-#if DPDK > 0
- s->buffer_bytes = VLIB_BUFFER_DATA_SIZE;
-#endif
-
- if (!s->buffer_bytes)
- s->buffer_bytes = s->max_packet_bytes;
-
- s->buffer_bytes = vlib_buffer_round_size (s->buffer_bytes);
-
+ s->buffer_bytes = VLIB_BUFFER_DEFAULT_FREE_LIST_BYTES;
n = s->max_packet_bytes / s->buffer_bytes;
n += (s->max_packet_bytes % s->buffer_bytes) != 0;
vec_resize (s->buffer_indices, n);
vec_foreach (bi, s->buffer_indices)
- {
- bi->free_list_index =
- vlib_buffer_create_free_list (vm, s->buffer_bytes,
- "pg stream %d buffer #%d",
- s - pg->streams,
- 1 + (bi - s->buffer_indices));
- }
+ bi->free_list_index = VLIB_BUFFER_DEFAULT_FREE_LIST_INDEX;
}
/* Find an interface to use. */
void
pg_stream_del (pg_main_t * pg, uword index)
{
- vlib_main_t *vm = vlib_get_main ();
pg_stream_t *s;
pg_buffer_index_t *bi;
vec_foreach (bi, s->buffer_indices)
{
- vlib_buffer_delete_free_list (vm, bi->free_list_index);
clib_fifo_free (bi->buffer_fifo);
}