ethernet_set_rx_redirect (vnm, sif_hw, 1);
}
}
+ else if ((bif_hw->l2_if_count == 0) && (l2_if_adjust == -1))
+ {
+ /* Just removed last L2 subinterface on this port */
+ vec_foreach (sw_if_index, bif->slaves)
+ {
+ sif_hw = vnet_get_sup_hw_interface (vnm, *sw_if_index);
+
+ /* Allow ip packets to go directly to ip4-input etc */
+ ethernet_set_rx_redirect (vnm, sif_hw, 0);
+ }
+ }
return 0;
}
n_left -= 1;
b += 1;
+ h += 1;
}
}
u32 mask = n_slaves - 1;
#ifdef CLIB_HAVE_VEC256
- /* only lower 16 bits of hash due to single precision fp arithmetics */
+ /* only lower 16 bits of hash due to single precision fp arithmetic */
u32x8 mask8, sc8u, h8a, h8b;
f32x8 sc8f;
vlib_get_buffers (vm, from, bufs, n_left);
- /* active-backup mode, ship everyting to first sw if index */
+ /* active-backup mode, ship everything to first sw if index */
if ((bif->lb == BOND_LB_AB) || PREDICT_FALSE (n_slaves == 1))
{
sw_if_index = *vec_elt_at_index (bif->active_slaves, 0);
ptd->per_port_queue[p].n_buffers = 0;
}
}
-
- vlib_increment_simple_counter (vnet_main.interface_main.sw_if_counters
- + VNET_INTERFACE_COUNTER_TX, thread_index,
- bif->sw_if_index, frame->n_vectors);
-
return frame->n_vectors;
}