bonding: support custom interface IDs
[vpp.git] / src / vnet / bonding / device.c
index 13ff644..e288c57 100644 (file)
@@ -72,7 +72,7 @@ format_bond_interface_name (u8 * s, va_list * args)
   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;
 }
@@ -658,7 +658,7 @@ VNET_DEVICE_CLASS_TX_FN (bond_dev_class) (vlib_main_t * vm,
 
   if (PREDICT_FALSE (bif->admin_up == 0))
     {
-      vlib_buffer_free (vm, vlib_frame_args (frame), frame->n_vectors);
+      vlib_buffer_free (vm, vlib_frame_vector_args (frame), frame->n_vectors);
       vlib_increment_simple_counter (vnet_main.interface_main.sw_if_counters +
                                     VNET_INTERFACE_COUNTER_DROP,
                                     thread_index, bif->sw_if_index,
@@ -671,7 +671,7 @@ VNET_DEVICE_CLASS_TX_FN (bond_dev_class) (vlib_main_t * vm,
   n_slaves = vec_len (bif->active_slaves);
   if (PREDICT_FALSE (n_slaves == 0))
     {
-      vlib_buffer_free (vm, vlib_frame_args (frame), frame->n_vectors);
+      vlib_buffer_free (vm, vlib_frame_vector_args (frame), frame->n_vectors);
       vlib_increment_simple_counter (vnet_main.interface_main.sw_if_counters +
                                     VNET_INTERFACE_COUNTER_DROP,
                                     thread_index, bif->sw_if_index,
@@ -745,8 +745,8 @@ done:
          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;
        }