From: Emanuele Di Pascale Date: Tue, 28 May 2019 14:46:06 +0000 (+0200) Subject: isisd: del routes when area is unconfigured X-Git-Tag: base_7.2~301^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=688ea1cbe26601f3953fa97f53f8b89d5e38a7b1;p=matthieu%2Ffrr.git isisd: del routes when area is unconfigured attempt to fix #4399 Signed-off-by: Emanuele Di Pascale --- diff --git a/isisd/isis_route.c b/isisd/isis_route.c index 82005c911e..281eaf11bc 100644 --- a/isisd/isis_route.c +++ b/isisd/isis_route.c @@ -543,7 +543,8 @@ void isis_route_verify_merge(struct isis_area *area, ISIS_ROUTE_FLAG_ZEBRA_SYNCED ); continue; - } else { + } else if (CHECK_FLAG(rinfo->flag, + ISIS_ROUTE_FLAG_ACTIVE)) { /* Clear the ZEBRA_SYNCED flag on the L1 * route when L2 wins, otherwise L1 * won't get reinstalled when it @@ -553,6 +554,11 @@ void isis_route_verify_merge(struct isis_area *area, mrinfo->flag, ISIS_ROUTE_FLAG_ZEBRA_SYNCED ); + } else if ( + CHECK_FLAG( + mrinfo->flag, + ISIS_ROUTE_FLAG_ZEBRA_SYNCED)) { + continue; } } mrnode->info = rnode->info; diff --git a/isisd/isisd.c b/isisd/isisd.c index 07be68d9ae..0b7d44ea1c 100644 --- a/isisd/isisd.c +++ b/isisd/isisd.c @@ -272,7 +272,7 @@ int isis_area_destroy(const char *area_tag) lsp_db_fini(&area->lspdb[1]); /* invalidate and verify to delete all routes from zebra */ - isis_area_invalidate_routes(area, ISIS_LEVEL1 & ISIS_LEVEL2); + isis_area_invalidate_routes(area, area->is_type); isis_area_verify_routes(area); spftree_area_del(area);