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>
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);
&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;