Skip to content

Commit

Permalink
zebra: do not accept static label requests conflicting with dynamic-b…
Browse files Browse the repository at this point in the history
…lock

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 <[email protected]>
  • Loading branch information
pguibert6WIND committed Oct 18, 2023
1 parent 3cae026 commit d3f686d
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions zebra/label_manager.c
Original file line number Diff line number Diff line change
Expand Up @@ -345,6 +345,15 @@ assign_specific_label_chunk(uint8_t proto, unsigned short instance,
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
* falls inside any of such chunks */
for (ALL_LIST_ELEMENTS_RO(lbl_mgr.lc_list, node, lmc)) {
Expand Down

0 comments on commit d3f686d

Please sign in to comment.