From 537b8b13f9a56c15e34f226365805b9cbbea8f2a Mon Sep 17 00:00:00 2001 From: Carmine Scarpitta Date: Thu, 6 Oct 2022 17:26:57 +0200 Subject: [PATCH] zebra: Do not allow SRv6 func_bit_len > 20 Currently, the SID transposition algorithm implemented in bgpd handles incorrectly the SRv6 locators with function length greater than 20 bits. To prevent issues, we currently limit the function length to 20 bits. This limit will be removed when the bgpd SID transposition is fixed. Signed-off-by: Carmine Scarpitta --- zebra/zebra_srv6_vty.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/zebra/zebra_srv6_vty.c b/zebra/zebra_srv6_vty.c index e00f974e77..9adfc6550a 100644 --- a/zebra/zebra_srv6_vty.c +++ b/zebra/zebra_srv6_vty.c @@ -318,6 +318,19 @@ DEFPY (locator_prefix, return CMD_WARNING_CONFIG_FAILED; } + /* + * Currently, the SID transposition algorithm implemented in bgpd + * handles incorrectly the SRv6 locators with function length greater + * than 20 bits. To prevent issues, we currently limit the function + * length to 20 bits. + * This limit will be removed when the bgpd SID transposition is fixed. + */ + if (func_bit_len > 20) { + vty_out(vty, + "%% currently func_bit_len > 20 is not supported\n"); + 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; -- 2.39.5