summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven <sluong@cisco.com>2018-09-24 21:09:36 -0700
committerDamjan Marion <dmarion@me.com>2018-09-25 07:41:23 +0000
commit5967bafdf541beaf546ff868f28dbf0b5f8ec9bb (patch)
tree77f0d7c232a6e97aaf0f6621042483525f2e0db1
parent8812a68062016e622b33cbae6a21bc073caa918e (diff)
bond: crash when deleting bond interface [VPP-1427]
After the slave interface is removed from bond, bond input node still receives traffic for the slave interface. We have to disable feature arc for the corresponding slave interface. Change-Id: I44e7001e6685e290b032c48147d02911a55d547b Signed-off-by: Steven <sluong@cisco.com>
-rw-r--r--src/vnet/bonding/cli.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/vnet/bonding/cli.c b/src/vnet/bonding/cli.c
index 91c6e2cdb7d..83a512ea8bc 100644
--- a/src/vnet/bonding/cli.c
+++ b/src/vnet/bonding/cli.c
@@ -176,14 +176,17 @@ 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);
+
/* Put back the old mac */
vnet_hw_interface_change_mac_address (vnm, sif_hw->hw_if_index,
sif->persistent_hw_address);
- pool_put (bm->neighbors, sif);
-
if ((bif->mode == BOND_MODE_LACP) && bm->lacp_enable_disable)
(*bm->lacp_enable_disable) (vm, bif, sif, 0);
+
+ pool_put (bm->neighbors, sif);
}
int