From 6178bdafa6a318d50cc8ad82f07c6c798c7024ef Mon Sep 17 00:00:00 2001 From: Benoît Ganne Date: Wed, 4 Nov 2020 10:02:03 +0100 Subject: feature: reset interface feature arc on interface deletion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When removing an interface we must reset all per-interface per-feature arc data to ensure we do not get wrong feature arc config data when the sw_if_index is recycled. Type: fix Change-Id: I8c9d850d7c62b7b77193da4258ab5fb9bdda85a6 Signed-off-by: Benoît Ganne --- src/vnet/config.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/vnet/config.c') diff --git a/src/vnet/config.c b/src/vnet/config.c index 4e9fa36dfc3..c9d4909cdeb 100644 --- a/src/vnet/config.c +++ b/src/vnet/config.c @@ -241,6 +241,14 @@ vnet_get_config_heap (vnet_config_main_t * cm, u32 ci) return heap_elt_at_index (cm->config_string_heap, ci); } +void +vnet_config_del (vnet_config_main_t * cm, u32 config_id) +{ + u32 *p = vnet_get_config_heap (cm, config_id); + vnet_config_t *old = pool_elt_at_index (cm->config_pool, p[-1]); + remove_reference (cm, old); +} + u32 vnet_config_modify_end_node (vlib_main_t * vm, vnet_config_main_t * cm, -- cgit 1.2.3-korg