mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 07:23:41 +00:00
isisd: fix l2 neighbor formations
Add a timestamp information for level 2 circuits, otherwise if the circuit is marked as already processed on level 1 we will not process level 2 areas. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
This commit is contained in:
parent
013b29d7ea
commit
c60158ae6b
@ -676,7 +676,8 @@ int isis_circuit_up(struct isis_circuit *circuit)
|
|||||||
|
|
||||||
circuit->lsp_queue = list_new();
|
circuit->lsp_queue = list_new();
|
||||||
circuit->lsp_hash = isis_lsp_hash_new();
|
circuit->lsp_hash = isis_lsp_hash_new();
|
||||||
circuit->lsp_queue_last_push = monotime(NULL);
|
circuit->lsp_queue_last_push[0] = circuit->lsp_queue_last_push[1] =
|
||||||
|
monotime(NULL);
|
||||||
|
|
||||||
return ISIS_OK;
|
return ISIS_OK;
|
||||||
}
|
}
|
||||||
|
@ -84,7 +84,7 @@ struct isis_circuit {
|
|||||||
struct thread *t_send_lsp;
|
struct thread *t_send_lsp;
|
||||||
struct list *lsp_queue; /* LSPs to be txed (both levels) */
|
struct list *lsp_queue; /* LSPs to be txed (both levels) */
|
||||||
struct isis_lsp_hash *lsp_hash; /* Hashtable synchronized with lsp_queue */
|
struct isis_lsp_hash *lsp_hash; /* Hashtable synchronized with lsp_queue */
|
||||||
time_t lsp_queue_last_push; /* timestamp used to enforce transmit
|
time_t lsp_queue_last_push[2]; /* timestamp used to enforce transmit
|
||||||
* interval;
|
* interval;
|
||||||
* for scalability, use one timestamp per
|
* for scalability, use one timestamp per
|
||||||
* circuit, instead of one per lsp per
|
* circuit, instead of one per lsp per
|
||||||
|
@ -1873,12 +1873,12 @@ int lsp_tick(struct thread *thread)
|
|||||||
if (!circuit->lsp_queue)
|
if (!circuit->lsp_queue)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (now - circuit->lsp_queue_last_push
|
if (now - circuit->lsp_queue_last_push[level]
|
||||||
< MIN_LSP_RETRANS_INTERVAL) {
|
< MIN_LSP_RETRANS_INTERVAL) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
circuit->lsp_queue_last_push = now;
|
circuit->lsp_queue_last_push[level] = now;
|
||||||
|
|
||||||
for (ALL_LIST_ELEMENTS_RO(
|
for (ALL_LIST_ELEMENTS_RO(
|
||||||
lsp_list, lspnode, lsp)) {
|
lsp_list, lspnode, lsp)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user