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