bond_main_t *bm = &bond_main;
bond_if_t *bif = pool_elt_at_index (bm->interfaces, dev_instance);
- s = format (s, "BondEthernet%lu", bif->dev_instance);
+ s = format (s, "BondEthernet%lu", bif->id);
return s;
}
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;
}
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);
f = vnet_get_frame_to_sw_interface (vnm, sw_if_index);
f->n_vectors = ptd->per_port_queue[p].n_buffers;
to_next = vlib_frame_vector_args (f);
- clib_memcpy (to_next, ptd->per_port_queue[p].buffers,
- f->n_vectors * sizeof (u32));
+ clib_memcpy_fast (to_next, ptd->per_port_queue[p].buffers,
+ f->n_vectors * sizeof (u32));
vnet_put_frame_to_sw_interface (vnm, sw_if_index, f);
ptd->per_port_queue[p].n_buffers = 0;
}