summaryrefslogtreecommitdiff
path: root/zebra/zebra_srv6_vty.c
diff options
context:
space:
mode:
authorRyoga Saito <ryoga.saito@linecorp.com>2022-09-20 18:24:50 +0900
committerRyoga Saito <ryoga.saito@linecorp.com>2022-10-07 11:34:20 +0900
commit85521aaabd26d58939279440c0ebce5e69c84cae (patch)
treed620212a10a21001a6e7b99fbd5941fad8afb0fe /zebra/zebra_srv6_vty.c
parent0f926d91416be5cb874a2af4a733f116013bd93b (diff)
zebra: add default SRv6 Function length
Add default SRv6 Function Length for usecases like SRv6 L3VPN. The default value (16) comes from the default Function length for SRv6 L3VPN in BGPd. Signed-off-by: Ryoga Saito <ryoga.saito@linecorp.com>
Diffstat (limited to 'zebra/zebra_srv6_vty.c')
-rw-r--r--zebra/zebra_srv6_vty.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/zebra/zebra_srv6_vty.c b/zebra/zebra_srv6_vty.c
index 62ce17326c..0572714669 100644
--- a/zebra/zebra_srv6_vty.c
+++ b/zebra/zebra_srv6_vty.c
@@ -281,7 +281,14 @@ DEFPY (locator_prefix,
struct srv6_locator_chunk *chunk = NULL;
struct listnode *node = NULL;
+ if (prefix->prefixlen != 64) {
+ vty_out(vty,
+ "%% Invalid argument: Unsupported locator format\n");
+ return CMD_WARNING_CONFIG_FAILED;
+ }
+
locator->prefix = *prefix;
+ func_bit_len = func_bit_len ?: ZEBRA_SRV6_FUNCTION_LENGTH;
/*
* TODO(slankdev): please support variable node-bit-length.
@@ -298,8 +305,8 @@ DEFPY (locator_prefix,
* user should use a pattern of zeros as a filler.
* (3) The Node Id portion (LSBs) cannot exceed 24 bits.
*/
- locator->block_bits_length = prefix->prefixlen - 24;
- locator->node_bits_length = 24;
+ locator->block_bits_length = ZEBRA_SRV6_LOCATOR_BLOCK_LENGTH;
+ locator->node_bits_length = ZEBRA_SRV6_LOCATOR_NODE_LENGTH;
locator->function_bits_length = func_bit_len;
locator->argument_bits_length = 0;