mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-30 13:50:31 +00:00
Merge pull request #5202 from Orange-OpenSource/isis-TE
isisd: Correct missing advertisement of TE parameters
This commit is contained in:
commit
a783c421f9
@ -1418,29 +1418,12 @@ static int isis_instance_mpls_te_create(enum nb_event event,
|
|||||||
area->mta->status = enable;
|
area->mta->status = enable;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/* Update Extended TLVs according to Interface link parameters */
|
||||||
* Following code is intended to handle two cases;
|
for (ALL_LIST_ELEMENTS_RO(area->circuit_list, node, circuit))
|
||||||
*
|
isis_link_params_update(circuit, circuit->interface);
|
||||||
* 1) MPLS-TE was disabled at startup time, but now become enabled.
|
|
||||||
* In this case, we must enable MPLS-TE Circuit regarding interface
|
|
||||||
* MPLS_TE flag
|
|
||||||
* 2) MPLS-TE was once enabled then disabled, and now enabled again.
|
|
||||||
*/
|
|
||||||
for (ALL_LIST_ELEMENTS_RO(area->circuit_list, node, circuit)) {
|
|
||||||
if (circuit->ext == NULL)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (!IS_EXT_TE(circuit->ext)
|
/* Reoriginate STD_TE & GMPLS circuits */
|
||||||
&& HAS_LINK_PARAMS(circuit->interface))
|
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||||
isis_link_params_update(circuit, circuit->interface);
|
|
||||||
else
|
|
||||||
continue;
|
|
||||||
|
|
||||||
/* Reoriginate STD_TE & GMPLS circuits */
|
|
||||||
if (circuit->area)
|
|
||||||
lsp_regenerate_schedule(circuit->area, circuit->is_type,
|
|
||||||
0);
|
|
||||||
}
|
|
||||||
|
|
||||||
return NB_OK;
|
return NB_OK;
|
||||||
}
|
}
|
||||||
@ -1473,13 +1456,11 @@ static int isis_instance_mpls_te_destroy(enum nb_event event,
|
|||||||
circuit->ext->status = EXT_LAN_ADJ_SID;
|
circuit->ext->status = EXT_LAN_ADJ_SID;
|
||||||
else
|
else
|
||||||
circuit->ext->status = 0;
|
circuit->ext->status = 0;
|
||||||
|
|
||||||
/* Re-originate circuit without STD_TE & GMPLS parameters */
|
|
||||||
if (circuit->area)
|
|
||||||
lsp_regenerate_schedule(circuit->area, circuit->is_type,
|
|
||||||
0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Reoriginate STD_TE & GMPLS circuits */
|
||||||
|
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||||
|
|
||||||
zlog_debug("ISIS-TE(%s): Disabled MPLS Traffic Engineering",
|
zlog_debug("ISIS-TE(%s): Disabled MPLS Traffic Engineering",
|
||||||
area->area_tag);
|
area->area_tag);
|
||||||
|
|
||||||
@ -1509,8 +1490,7 @@ static int isis_instance_mpls_te_router_address_modify(enum nb_event event,
|
|||||||
area->mta->router_id.s_addr = value.s_addr;
|
area->mta->router_id.s_addr = value.s_addr;
|
||||||
|
|
||||||
/* And re-schedule LSP update */
|
/* And re-schedule LSP update */
|
||||||
if (listcount(area->area_addrs) > 0)
|
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
|
||||||
|
|
||||||
return NB_OK;
|
return NB_OK;
|
||||||
}
|
}
|
||||||
@ -1532,8 +1512,7 @@ static int isis_instance_mpls_te_router_address_destroy(enum nb_event event,
|
|||||||
area->mta->router_id.s_addr = INADDR_ANY;
|
area->mta->router_id.s_addr = INADDR_ANY;
|
||||||
|
|
||||||
/* And re-schedule LSP update */
|
/* And re-schedule LSP update */
|
||||||
if (listcount(area->area_addrs) > 0)
|
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
|
||||||
|
|
||||||
return NB_OK;
|
return NB_OK;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user