From a05c6af88f3d3085b2d0500021d5080dcc4bf9bb Mon Sep 17 00:00:00 2001 From: Yaroslav Kholod Date: Mon, 23 Dec 2024 13:06:57 +0200 Subject: [PATCH] babel: Clean babel related config on daemon stop When deactivating babel no router babel and later re-enabling it router babel the previous configuration is still in place. Steps to reproduce: Enable babel Configure babel Disable babel with "no router babel" Verify config Expected correct behavior: No config present Signed-off-by: Yaroslav Kholod --- babeld/babel_interface.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/babeld/babel_interface.c b/babeld/babel_interface.c index b83c7b1908..f17842366a 100644 --- a/babeld/babel_interface.c +++ b/babeld/babel_interface.c @@ -719,6 +719,7 @@ babel_interface_close_all(void) { struct vrf *vrf = vrf_lookup_by_id(VRF_DEFAULT); struct interface *ifp = NULL; + int type; FOR_ALL_INTERFACES(vrf, ifp) { if(!if_up(ifp)) @@ -740,8 +741,14 @@ babel_interface_close_all(void) flushbuf(ifp); usleep(roughly(10000)); gettime(&babel_now); + babel_enable_if_delete(ifp->name); interface_reset(ifp); } + /* Disable babel redistribution */ + for (type = 0; type < ZEBRA_ROUTE_MAX; type++) { + zclient_redistribute (ZEBRA_REDISTRIBUTE_DELETE, zclient, AFI_IP, type, 0, VRF_DEFAULT); + zclient_redistribute (ZEBRA_REDISTRIBUTE_DELETE, zclient, AFI_IP6, type, 0, VRF_DEFAULT); + } } /* return "true" if address is one of our ipv6 addresses */