* vnet_buffer()->ip.adj_index[VLIB_TX] will be set to the index of the
* adjacency for the source address (the remote sender's address)
*/
- if (PREDICT_FALSE (last_check->first ||
- (last_check->src.as_u32 != ip0->src_address.as_u32)))
+ if (PREDICT_TRUE (last_check->src.as_u32 != ip0->src_address.as_u32) ||
+ last_check->first)
{
mtrie0 = &ip4_fib_get (vnet_buffer (b)->ip.fib_index)->mtrie;
leaf0 = ip4_fib_mtrie_lookup_step_one (mtrie0, &ip0->src_address);
last_check->src.as_u32 = ip0->src_address.as_u32;
last_check->lbi = lbi0;
last_check->error = *error0;
+ last_check->first = 0;
}
else
{
vnet_buffer (b)->ip.adj_index[VLIB_TX];
vnet_buffer (b)->ip.adj_index[VLIB_TX] = last_check->lbi;
*error0 = last_check->error;
- last_check->first = 0;
}
}
* vnet_buffer()->ip.adj_index[VLIB_TX] will be set to the index of the
* adjacency for the source address (the remote sender's address)
*/
- if (PREDICT_FALSE (not_last_hit))
+ if (PREDICT_TRUE (not_last_hit))
{
mtrie[0] = &ip4_fib_get (vnet_buffer (b[0])->ip.fib_index)->mtrie;
mtrie[1] = &ip4_fib_get (vnet_buffer (b[1])->ip.fib_index)->mtrie;
last_check->src.as_u32 = ip[1]->src_address.as_u32;
last_check->lbi = lbi[1];
last_check->error = error[1];
+ last_check->first = 0;
}
else
{
error[0] = last_check->error;
error[1] = last_check->error;
- last_check->first = 0;
}
}