diff options
| author | baozhen-H3C <bao.zhen@h3c.com> | 2024-10-09 17:58:05 +0800 |
|---|---|---|
| committer | b29332 <bao.zhen@h3c.com> | 2024-10-09 19:41:07 +0800 |
| commit | c2b70369b641250363c919ccba80476cacd350a3 (patch) | |
| tree | 41857e5cf4df5448ec91c20c40a06bd2bcddde12 /isisd | |
| parent | 93032f183ae7f98f68fa97855015ac16c44c0065 (diff) | |
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 <bao.zhen@h3c.com>
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 391d42fba1..c00b7efed7 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; |
