VPP-1507: Added binary api to dump configured ip_punt_redirect
[vpp.git] / src / vnet / bonding / cli.c
index 522d13a..14c52f7 100644 (file)
@@ -91,7 +91,7 @@ bond_dump_ifs (bond_interface_details_t ** out_bondifs)
   /* *INDENT-OFF* */
   pool_foreach (bif, bm->interfaces,
     vec_add2(r_bondifs, bondif, 1);
-    memset (bondif, 0, sizeof (*bondif));
+    clib_memset (bondif, 0, sizeof (*bondif));
     bondif->sw_if_index = bif->sw_if_index;
     hi = vnet_get_hw_interface (vnm, bif->hw_if_index);
     clib_memcpy(bondif->interface_name, hi->name,
@@ -129,7 +129,7 @@ bond_dump_slave_ifs (slave_interface_details_t ** out_slaveifs,
   vec_foreach (sw_if_index, bif->slaves)
   {
     vec_add2 (r_slaveifs, slaveif, 1);
-    memset (slaveif, 0, sizeof (*slaveif));
+    clib_memset (slaveif, 0, sizeof (*slaveif));
     sif = bond_get_slave_by_sw_if_index (*sw_if_index);
     if (sif)
       {
@@ -231,7 +231,7 @@ bond_delete_if (vlib_main_t * vm, u32 sw_if_index)
 
   clib_bitmap_free (bif->port_number_bitmap);
   hash_unset (bm->bond_by_sw_if_index, bif->sw_if_index);
-  memset (bif, 0, sizeof (*bif));
+  clib_memset (bif, 0, sizeof (*bif));
   pool_put (bm->interfaces, bif);
 
   return 0;
@@ -264,7 +264,7 @@ bond_create_if (vlib_main_t * vm, bond_create_if_args_t * args)
       return;
     }
   pool_get (bm->interfaces, bif);
-  memset (bif, 0, sizeof (*bif));
+  clib_memset (bif, 0, sizeof (*bif));
   bif->dev_instance = bif - bm->interfaces;
   bif->lb = args->lb;
   bif->mode = args->mode;
@@ -274,6 +274,8 @@ bond_create_if (vlib_main_t * vm, bond_create_if_args_t * args)
     bif->lb = BOND_LB_RR;
   else if (bif->mode == BOND_MODE_BROADCAST)
     bif->lb = BOND_LB_BC;
+  else if (bif->mode == BOND_MODE_ACTIVE_BACKUP)
+    bif->lb = BOND_LB_AB;
 
   bif->use_custom_mac = args->hw_addr_set;
   if (!args->hw_addr_set)
@@ -447,7 +449,7 @@ bond_enslave (vlib_main_t * vm, bond_enslave_args_t * args)
       return;
     }
   pool_get (bm->neighbors, sif);
-  memset (sif, 0, sizeof (*sif));
+  clib_memset (sif, 0, sizeof (*sif));
   sw = pool_elt_at_index (im->sw_interfaces, args->slave);
   sif->port_enabled = sw->flags & VNET_SW_INTERFACE_FLAG_ADMIN_UP;
   sif->sw_if_index = sw->sw_if_index;
@@ -524,7 +526,7 @@ bond_enslave (vlib_main_t * vm, bond_enslave_args_t * args)
     bond_per_thread_data_t *ptd = vec_elt_at_index (bm->per_thread_data,
                                                    thread_index);
 
-    vec_validate_aligned (ptd->per_port_queue, sif->sw_if_index,
+    vec_validate_aligned (ptd->per_port_queue, vec_len (bif->slaves) - 1,
                          CLIB_CACHE_LINE_BYTES);
 
     vec_foreach_index (sif_if_index, ptd->per_port_queue)
@@ -666,14 +668,14 @@ show_bond (vlib_main_t * vm)
   bond_main_t *bm = &bond_main;
   bond_if_t *bif;
 
-  vlib_cli_output (vm, "%-16s %-12s %-12s %-13s %-14s %s",
+  vlib_cli_output (vm, "%-16s %-12s %-13s %-13s %-14s %s",
                   "interface name", "sw_if_index", "mode",
                   "load balance", "active slaves", "slaves");
 
   /* *INDENT-OFF* */
   pool_foreach (bif, bm->interfaces,
   ({
-    vlib_cli_output (vm, "%-16U %-12d %-12U %-13U %-14u %u",
+    vlib_cli_output (vm, "%-16U %-12d %-13U %-13U %-14u %u",
                     format_bond_interface_name, bif->dev_instance,
                     bif->sw_if_index, format_bond_mode, bif->mode,
                     format_bond_load_balance, bif->lb,