bonding: feature arc may not be enabled for the slave interface
vnet_feature_enable_disable takes sw_if_index, not hw_if_index. If there
is a subinterface created prior to the slave interface is created,
sw_if_index and hw_if_index start to diverge and the problem will happen.
Type: fix
@@ -287,7 +287,7 @@ bond_delete_neighbor (vlib_main_t * vm, bond_if_t * bif, slave_if_t * sif)
bond_disable_collecting_distributing (vm, sif);
vnet_feature_enable_disable ("device-input", "bond-input",
- sif_hw->hw_if_index, 0, 0, 0);
+ sif->sw_if_index, 0, 0, 0);
/* Put back the old mac */
vnet_hw_interface_change_mac_address (vnm, sif_hw->hw_if_index,
@@ -703,7 +703,7 @@ bond_enslave (vlib_main_t * vm, bond_enslave_args_t * args)
}
args->rv = vnet_feature_enable_disable ("device-input", "bond-input",
- sif_hw->hw_if_index, 1, 0, 0);
+ sif->sw_if_index, 1, 0, 0);
if (args->rv)
{
