From c2b70369b641250363c919ccba80476cacd350a3 Mon Sep 17 00:00:00 2001 From: baozhen-H3C Date: Wed, 9 Oct 2024 17:58:05 +0800 Subject: [PATCH] isisd: Lsp fragments will delete the corresponding dyn_cache entry. When LSP fragments age, isis_dynhn_remove() is also called to remove the corresponding dyhn_cache entries. Signed-off-by: baozhen-H3C --- isisd/isis_lsp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/isisd/isis_lsp.c b/isisd/isis_lsp.c index 391d42fba156..c00b7efed77a 100644 --- a/isisd/isis_lsp.c +++ b/isisd/isis_lsp.c @@ -119,6 +119,10 @@ static void lsp_destroy(struct isis_lsp *lsp) lsp_clear_data(lsp); if (!LSP_FRAGMENT(lsp->hdr.lsp_id)) { + /* Only non-pseudo nodes and non-fragment LSPs can delete nodes. */ + if (!LSP_PSEUDO_ID(lsp->hdr.lsp_id)) + isis_dynhn_remove(lsp->area->isis, lsp->hdr.lsp_id); + if (lsp->lspu.frags) { lsp_remove_frags(&lsp->area->lspdb[lsp->level - 1], lsp->lspu.frags); @@ -2226,10 +2230,6 @@ void lsp_tick(struct event *thread) &area->lspdb[level], next); - if (!LSP_PSEUDO_ID(lsp->hdr.lsp_id)) - isis_dynhn_remove(area->isis, - lsp->hdr.lsp_id); - lspdb_del(&area->lspdb[level], lsp); lsp_destroy(lsp); lsp = NULL;