From 34e3711fb49212bc643a238d8a1e285a2fd5980d Mon Sep 17 00:00:00 2001 From: Carmine Scarpitta Date: Tue, 23 Aug 2022 16:20:07 +0200 Subject: [PATCH] zebra: Ensure SRv6 SID length does not exceed 128 According to RFC 8986, the SRv6 SID length cannot exceed 128 bits. This commit ensures that the condition `block_len + node_len + function_len + arg_len <= 128` is satisfied when a new SRv6 locator is created. Signed-off-by: Carmine Scarpitta --- zebra/zebra_srv6_vty.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/zebra/zebra_srv6_vty.c b/zebra/zebra_srv6_vty.c index 09c0a9af59..e00f974e77 100644 --- a/zebra/zebra_srv6_vty.c +++ b/zebra/zebra_srv6_vty.c @@ -311,6 +311,13 @@ DEFPY (locator_prefix, } } + if (prefix->prefixlen + func_bit_len + 0 > 128) { + vty_out(vty, + "%% prefix-len + function-len + arg-len (%ld) cannot be greater than 128\n", + prefix->prefixlen + func_bit_len + 0); + return CMD_WARNING_CONFIG_FAILED; + } + locator->block_bits_length = block_bit_len; locator->node_bits_length = node_bit_len; locator->function_bits_length = func_bit_len;