mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-09 12:39:21 +00:00
Merge pull request #3825 from opensourcerouting/master-isis-fix-3533
[master] isisd: skip over deleted fragments
This commit is contained in:
commit
b682d930e9
@ -1930,6 +1930,27 @@ int lsp_tick(struct thread *thread)
|
|||||||
area->area_tag, lsp->level,
|
area->area_tag, lsp->level,
|
||||||
rawlspid_print(lsp->hdr.lsp_id),
|
rawlspid_print(lsp->hdr.lsp_id),
|
||||||
lsp->hdr.seqno);
|
lsp->hdr.seqno);
|
||||||
|
|
||||||
|
/* if we're aging out fragment 0,
|
||||||
|
* lsp_destroy() below will delete all
|
||||||
|
* other fragments too, so we need to
|
||||||
|
* skip over those
|
||||||
|
*/
|
||||||
|
while (!LSP_FRAGMENT(lsp->hdr.lsp_id)
|
||||||
|
&& dnode_next) {
|
||||||
|
struct isis_lsp *nextlsp;
|
||||||
|
|
||||||
|
nextlsp = dnode_get(dnode_next);
|
||||||
|
if (memcmp(nextlsp->hdr.lsp_id,
|
||||||
|
lsp->hdr.lsp_id,
|
||||||
|
ISIS_SYS_ID_LEN + 1))
|
||||||
|
break;
|
||||||
|
|
||||||
|
dnode_next = dict_next(
|
||||||
|
area->lspdb[level],
|
||||||
|
dnode_next);
|
||||||
|
}
|
||||||
|
|
||||||
lsp_destroy(lsp);
|
lsp_destroy(lsp);
|
||||||
lsp = NULL;
|
lsp = NULL;
|
||||||
dict_delete_free(area->lspdb[level],
|
dict_delete_free(area->lspdb[level],
|
||||||
|
Loading…
Reference in New Issue
Block a user