diff options
author | Donald Sharp <donaldsharp72@gmail.com> | 2024-10-11 00:41:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-11 00:41:27 +0200 |
commit | 1014901021c7928fd13efb95ec32237f12b10e3d (patch) | |
tree | 6c99fab2944b1cb4e00cda4e994043650e746fc0 /isisd | |
parent | Merge pull request #17054 from opensourcerouting/fix/add_missing_logrotate_mgmtd (diff) | |
parent | isisd: Lsp fragments will delete the corresponding dyn_cache entry. (diff) | |
download | frr-1014901021c7928fd13efb95ec32237f12b10e3d.tar.xz frr-1014901021c7928fd13efb95ec32237f12b10e3d.zip |
Merge pull request #17044 from baozhen-H3C/202410091476
isisd: Lsp fragments will delete the corresponding dyn_cache entry.
Diffstat (limited to 'isisd')
-rw-r--r-- | isisd/isis_lsp.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/isisd/isis_lsp.c b/isisd/isis_lsp.c index d588af314..28b987df3 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); @@ -2209,10 +2213,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; |