From 688ea1cbe26601f3953fa97f53f8b89d5e38a7b1 Mon Sep 17 00:00:00 2001 From: Emanuele Di Pascale Date: Tue, 28 May 2019 16:46:06 +0200 Subject: [PATCH] isisd: del routes when area is unconfigured attempt to fix #4399 Signed-off-by: Emanuele Di Pascale --- isisd/isis_route.c | 8 +++++++- isisd/isisd.c | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) 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); -- 2.39.5