ep->rx_sw_if_index = vnet_buffer (b[0])->sw_if_index[VLIB_RX];
if (is_cross_connect)
{
- ep->tx_sw_if_index =
+ ep->tx_sw_if_index = vnet_buffer (b[0])->sw_if_index[VLIB_TX] =
(vnet_buffer (b[0])->sw_if_index[VLIB_RX] ==
nsm->sw_if_index0) ? nsm->sw_if_index1 : nsm->sw_if_index0;
ep->output_next_index =
ep->buffer_index = from[0];
buffered++;
}
-
if (is_trace)
{
- if (b[1]->flags & VLIB_BUFFER_IS_TRACED)
+ if (b[0]->flags & VLIB_BUFFER_IS_TRACED)
{
- nsim_trace_t *t = vlib_add_trace (vm, node, b[1], sizeof (*t));
+ nsim_trace_t *t = vlib_add_trace (vm, node, b[0], sizeof (*t));
t->expires = expires;
- t->is_drop = is_drop[1];
- t->is_lost = b[1]->error == loss_error;
- t->tx_sw_if_index = (is_drop[1] == 0) ? ep->tx_sw_if_index : 0;
+ t->is_drop = is_drop[0];
+ t->is_lost = b[0]->error == loss_error;
+ t->tx_sw_if_index = (is_drop[0] == 0) ? ep->tx_sw_if_index : 0;
}
}
ep->rx_sw_if_index = vnet_buffer (b[1])->sw_if_index[VLIB_RX];
if (is_cross_connect)
{
- ep->tx_sw_if_index =
+ ep->tx_sw_if_index = vnet_buffer (b[1])->sw_if_index[VLIB_TX] =
(vnet_buffer (b[1])->sw_if_index[VLIB_RX] ==
nsm->sw_if_index0) ? nsm->sw_if_index1 : nsm->sw_if_index0;
ep->output_next_index =
if (is_trace)
{
- if (b[2]->flags & VLIB_BUFFER_IS_TRACED)
+ if (b[1]->flags & VLIB_BUFFER_IS_TRACED)
{
- nsim_trace_t *t = vlib_add_trace (vm, node, b[2], sizeof (*t));
+ nsim_trace_t *t = vlib_add_trace (vm, node, b[1], sizeof (*t));
t->expires = expires;
- t->is_drop = is_drop[2];
- t->is_lost = b[2]->error == loss_error;
- t->tx_sw_if_index = (is_drop[2] == 0) ? ep->tx_sw_if_index : 0;
+ t->is_drop = is_drop[1];
+ t->is_lost = b[1]->error == loss_error;
+ t->tx_sw_if_index = (is_drop[1] == 0) ? ep->tx_sw_if_index : 0;
}
}
+
if (PREDICT_TRUE (is_drop[2] == 0))
{
ep = wp->entries + wp->tail;
ep->rx_sw_if_index = vnet_buffer (b[2])->sw_if_index[VLIB_RX];
if (is_cross_connect)
{
- ep->tx_sw_if_index =
+ ep->tx_sw_if_index = vnet_buffer (b[2])->sw_if_index[VLIB_TX] =
(vnet_buffer (b[2])->sw_if_index[VLIB_RX] ==
nsm->sw_if_index0) ? nsm->sw_if_index1 : nsm->sw_if_index0;
ep->output_next_index =
t->tx_sw_if_index = (is_drop[2] == 0) ? ep->tx_sw_if_index : 0;
}
}
+
if (PREDICT_TRUE (is_drop[3] == 0))
{
ep = wp->entries + wp->tail;
ep->rx_sw_if_index = vnet_buffer (b[3])->sw_if_index[VLIB_RX];
if (is_cross_connect)
{
- ep->tx_sw_if_index =
+ ep->tx_sw_if_index = vnet_buffer (b[3])->sw_if_index[VLIB_TX] =
(vnet_buffer (b[3])->sw_if_index[VLIB_RX] ==
nsm->sw_if_index0) ? nsm->sw_if_index1 : nsm->sw_if_index0;
ep->output_next_index =
ep->rx_sw_if_index = vnet_buffer (b[0])->sw_if_index[VLIB_RX];
if (is_cross_connect)
{
- ep->tx_sw_if_index =
+ ep->tx_sw_if_index = vnet_buffer (b[0])->sw_if_index[VLIB_TX] =
(vnet_buffer (b[0])->sw_if_index[VLIB_RX] ==
nsm->sw_if_index0) ? nsm->sw_if_index1 : nsm->sw_if_index0;
ep->output_next_index =