diff options
| author | Ryoga Saito <ryoga.saito@linecorp.com> | 2022-09-20 18:24:50 +0900 |
|---|---|---|
| committer | Ryoga Saito <ryoga.saito@linecorp.com> | 2022-10-07 11:34:20 +0900 |
| commit | 85521aaabd26d58939279440c0ebce5e69c84cae (patch) | |
| tree | d620212a10a21001a6e7b99fbd5941fad8afb0fe | |
| parent | 0f926d91416be5cb874a2af4a733f116013bd93b (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>
| -rw-r--r-- | zebra/zebra_srv6_vty.c | 11 | ||||
| -rw-r--r-- | zebra/zebra_srv6_vty.h | 4 |
2 files changed, 13 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; diff --git a/zebra/zebra_srv6_vty.h b/zebra/zebra_srv6_vty.h index 42d6aefa9a..2f8b5048d5 100644 --- a/zebra/zebra_srv6_vty.h +++ b/zebra/zebra_srv6_vty.h @@ -20,6 +20,10 @@ #ifndef _ZEBRA_SRV6_VTY_H #define _ZEBRA_SRV6_VTY_H +#define ZEBRA_SRV6_LOCATOR_BLOCK_LENGTH 40 +#define ZEBRA_SRV6_LOCATOR_NODE_LENGTH 24 +#define ZEBRA_SRV6_FUNCTION_LENGTH 16 + extern void zebra_srv6_vty_init(void); #endif /* _ZEBRA_SRV6_VTY_H */ |
