From 0d7fd782e058e6e1f1e80c1f2879da7ad8cf5892 Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Mon, 4 Oct 2021 15:28:47 +0000 Subject: linux-cp: Cleanup any existing pairs when an interface is deleted Type: fix This only happens when the user deletes the physical before they delete the pair, that's not supoosed to be the case, but don't crash if it is. Signed-off-by: Neale Ranns Change-Id: I8c2317b360d897775dde23833d04430f88531cbd --- src/plugins/linux-cp/lcp_interface.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/plugins/linux-cp/lcp_interface.c b/src/plugins/linux-cp/lcp_interface.c index 6eb94068d63..b42e5cbce97 100644 --- a/src/plugins/linux-cp/lcp_interface.c +++ b/src/plugins/linux-cp/lcp_interface.c @@ -510,6 +510,23 @@ lcp_itf_pair_delete (u32 phy_sw_if_index) return 0; } +/** + * lcp_itf_interface_add_del + * + * Registered to receive interface Add and delete notifications + */ +static clib_error_t * +lcp_itf_interface_add_del (vnet_main_t *vnm, u32 sw_if_index, u32 is_add) +{ + if (!is_add) + /* remove any interface pair we have for this interface */ + lcp_itf_pair_delete (sw_if_index); + + return (NULL); +} + +VNET_SW_INTERFACE_ADD_DEL_FUNCTION (lcp_itf_interface_add_del); + void lcp_itf_pair_walk (lcp_itf_pair_walk_cb_t cb, void *ctx) { -- cgit 1.2.3-korg