mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-14 16:04:49 +00:00
zebra: do not accept static label requests conflicting with dynamic-block
A static label allocation should not be accepted if the desired range conflicts with the configured dynamic-block configuration. Do not accept such label requests, only when dynamic blocks are configured. Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
This commit is contained in:
parent
3cae026428
commit
d3f686d163
@ -345,6 +345,15 @@ assign_specific_label_chunk(uint8_t proto, unsigned short instance,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((lbl_mgr.dynamic_block_start != MPLS_LABEL_UNRESERVED_MIN ||
|
||||||
|
lbl_mgr.dynamic_block_end != MPLS_LABEL_MAX) &&
|
||||||
|
base >= lbl_mgr.dynamic_block_start &&
|
||||||
|
end <= lbl_mgr.dynamic_block_end) {
|
||||||
|
zlog_warn("Invalid LM request arguments: base: %u, size: %u for %s in conflict with the dynamic label block",
|
||||||
|
base, size, zebra_route_string(proto));
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* Scan the existing chunks to see if the requested range of labels
|
/* Scan the existing chunks to see if the requested range of labels
|
||||||
* falls inside any of such chunks */
|
* falls inside any of such chunks */
|
||||||
for (ALL_LIST_ELEMENTS_RO(lbl_mgr.lc_list, node, lmc)) {
|
for (ALL_LIST_ELEMENTS_RO(lbl_mgr.lc_list, node, lmc)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user