summaryrefslogtreecommitdiffstats
path: root/isisd
diff options
context:
space:
mode:
authorDonald Sharp <donaldsharp72@gmail.com>2024-10-11 00:41:27 +0200
committerGitHub <noreply@github.com>2024-10-11 00:41:27 +0200
commit1014901021c7928fd13efb95ec32237f12b10e3d (patch)
tree6c99fab2944b1cb4e00cda4e994043650e746fc0 /isisd
parentMerge pull request #17054 from opensourcerouting/fix/add_missing_logrotate_mgmtd (diff)
parentisisd: Lsp fragments will delete the corresponding dyn_cache entry. (diff)
downloadfrr-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.c8
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;