mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-14 10:37:29 +00:00
isisd: purge on correct level
Signed-off-by: Christian Franke <chris@opensourcerouting.org> Acked-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
b20ccb3aa9
commit
17baea9c4e
@ -2345,7 +2345,8 @@ lsp_purge_pseudo (u_char * id, struct isis_circuit *circuit, int level)
|
|||||||
* -> Do as in 7.3.16.4
|
* -> Do as in 7.3.16.4
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
lsp_purge_non_exist (struct isis_link_state_hdr *lsp_hdr,
|
lsp_purge_non_exist (int level,
|
||||||
|
struct isis_link_state_hdr *lsp_hdr,
|
||||||
struct isis_area *area)
|
struct isis_area *area)
|
||||||
{
|
{
|
||||||
struct isis_lsp *lsp;
|
struct isis_lsp *lsp;
|
||||||
@ -2355,8 +2356,7 @@ lsp_purge_non_exist (struct isis_link_state_hdr *lsp_hdr,
|
|||||||
*/
|
*/
|
||||||
lsp = XCALLOC (MTYPE_ISIS_LSP, sizeof (struct isis_lsp));
|
lsp = XCALLOC (MTYPE_ISIS_LSP, sizeof (struct isis_lsp));
|
||||||
lsp->area = area;
|
lsp->area = area;
|
||||||
lsp->level = ((lsp_hdr->lsp_bits & LSPBIT_IST) == IS_LEVEL_1) ?
|
lsp->level = level;
|
||||||
IS_LEVEL_1 : IS_LEVEL_2;
|
|
||||||
lsp->pdu = stream_new(LLC_LEN + area->lsp_mtu);
|
lsp->pdu = stream_new(LLC_LEN + area->lsp_mtu);
|
||||||
lsp->isis_header = (struct isis_fixed_hdr *) STREAM_DATA (lsp->pdu);
|
lsp->isis_header = (struct isis_fixed_hdr *) STREAM_DATA (lsp->pdu);
|
||||||
fill_fixed_hdr (lsp->isis_header, (lsp->level == IS_LEVEL_1) ? L1_LINK_STATE
|
fill_fixed_hdr (lsp->isis_header, (lsp->level == IS_LEVEL_1) ? L1_LINK_STATE
|
||||||
|
@ -87,7 +87,8 @@ void lsp_build_list_ssn (struct isis_circuit *circuit, u_char num_lsps,
|
|||||||
|
|
||||||
void lsp_search_and_destroy (u_char * id, dict_t * lspdb);
|
void lsp_search_and_destroy (u_char * id, dict_t * lspdb);
|
||||||
void lsp_purge_pseudo (u_char * id, struct isis_circuit *circuit, int level);
|
void lsp_purge_pseudo (u_char * id, struct isis_circuit *circuit, int level);
|
||||||
void lsp_purge_non_exist (struct isis_link_state_hdr *lsp_hdr,
|
void lsp_purge_non_exist (int level,
|
||||||
|
struct isis_link_state_hdr *lsp_hdr,
|
||||||
struct isis_area *area);
|
struct isis_area *area);
|
||||||
|
|
||||||
#define LSP_EQUAL 1
|
#define LSP_EQUAL 1
|
||||||
|
@ -1529,7 +1529,7 @@ dontcheckadj:
|
|||||||
if (!lsp)
|
if (!lsp)
|
||||||
{
|
{
|
||||||
/* 7.3.16.4: initiate a purge */
|
/* 7.3.16.4: initiate a purge */
|
||||||
lsp_purge_non_exist (hdr, circuit->area);
|
lsp_purge_non_exist(level, hdr, circuit->area);
|
||||||
return ISIS_OK;
|
return ISIS_OK;
|
||||||
}
|
}
|
||||||
/* 7.3.15.1 d) - If this is our own lsp and we have it */
|
/* 7.3.15.1 d) - If this is our own lsp and we have it */
|
||||||
|
Loading…
Reference in New Issue
Block a user