vnet_buffer (b1)->sw_if_index[VLIB_RX] = s->sw_if_index[VLIB_RX];
vnet_buffer (b0)->sw_if_index[VLIB_TX] =
- vnet_buffer (b1)->sw_if_index[VLIB_TX] = (u32) ~ 0;
+ vnet_buffer (b1)->sw_if_index[VLIB_TX] = s->sw_if_index[VLIB_TX];
if (set_data)
{
b0 = vlib_get_buffer (vm, bi0);
vnet_buffer (b0)->sw_if_index[VLIB_RX] = s->sw_if_index[VLIB_RX];
- /* s->sw_if_index[VLIB_TX]; */
- vnet_buffer (b0)->sw_if_index[VLIB_TX] = (u32) ~ 0;
+ vnet_buffer (b0)->sw_if_index[VLIB_TX] = s->sw_if_index[VLIB_TX];
if (set_data)
clib_memcpy_fast (b0->data, data, n_data);
b = vlib_get_buffer (vm, buffers[current_buffer_index]);
clib_memcpy_fast (b->data, d0 + data_offset, bytes_this_chunk);
vnet_buffer (b)->sw_if_index[VLIB_RX] = s->sw_if_index[VLIB_RX];
- vnet_buffer (b)->sw_if_index[VLIB_TX] = (u32) ~ 0;
+ vnet_buffer (b)->sw_if_index[VLIB_TX] = s->sw_if_index[VLIB_TX];
b->flags = 0;
b->next_buffer = 0;
b->current_data = 0;
static void
pg_input_trace (pg_main_t * pg,
- vlib_node_runtime_t * node,
- pg_stream_t * s, u32 * buffers, u32 n_buffers)
+ vlib_node_runtime_t * node, u32 stream_index, u32 next_index,
+ u32 * buffers, u32 n_buffers)
{
vlib_main_t *vm = vlib_get_main ();
- u32 *b, n_left, stream_index, next_index;
+ u32 *b, n_left;
n_left = n_buffers;
b = buffers;
- stream_index = s - pg->streams;
- next_index = s->next_index;
while (n_left >= 2)
{
pi = pool_elt_at_index (pg->interfaces, s->pg_if_index);
ef->sw_if_index = pi->sw_if_index;
ef->hw_if_index = pi->hw_if_index;
+ vlib_frame_no_append (f);
}
else
vlib_get_next_frame (vm, node, next_index, to_next, n_left);
if (n_trace > 0)
{
u32 n = clib_min (n_trace, n_this_frame);
- pg_input_trace (pg, node, s, to_next, n);
+ pg_input_trace (pg, node, s - pg->streams, next_index, to_next, n);
vlib_set_trace_count (vm, node, n_trace - n);
}
n_packets_to_generate -= n_this_frame;
int i;
vlib_buffer_t *b;
- for (i = 0; i < VLIB_FRAME_SIZE - n_left; i++)
+ for (i = 0; i < n_this_frame; i++)
{
b = vlib_get_buffer (vm, to_next[i]);
ASSERT ((b->flags & VLIB_BUFFER_NEXT_PRESENT) == 0 ||