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 <carmine.scarpitta@uniroma2.it>
This commit is contained in:
Carmine Scarpitta 2022-10-06 17:26:57 +02:00
parent 34e3711fb4
commit 537b8b13f9

View File

@ -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;