summaryrefslogtreecommitdiffstats
path: root/lib/srv6.h
diff options
context:
space:
mode:
authorHiroki Shirokura <slank.dev@gmail.com>2020-12-31 12:56:32 +0100
committerMark Stapp <mjs@voltanet.io>2021-06-02 16:24:48 +0200
commitac6a9479af182fad4810fe6d21abc73f39c751f9 (patch)
treef0e2de60e74c2fcbd95a6920a50fbb5483108271 /lib/srv6.h
parentdoc: fix srv6 section according to review (diff)
downloadfrr-ac6a9479af182fad4810fe6d21abc73f39c751f9.tar.xz
frr-ac6a9479af182fad4810fe6d21abc73f39c751f9.zip
zebra: add zapi_srv6_locator_chunk_{en,de}code
Signed-off-by: Hiroki Shirokura <slank.dev@gmail.com>
Diffstat (limited to 'lib/srv6.h')
-rw-r--r--lib/srv6.h25
1 files changed, 24 insertions, 1 deletions
diff --git a/lib/srv6.h b/lib/srv6.h
index 46ff830e7..9ac89125c 100644
--- a/lib/srv6.h
+++ b/lib/srv6.h
@@ -76,7 +76,16 @@ struct seg6local_context {
struct srv6_locator {
char name[SRV6_LOCNAME_SIZE];
struct prefix_ipv6 prefix;
+
+ /*
+ * Bit length of SRv6 locator described in
+ * draft-ietf-bess-srv6-services-05#section-3.2.1
+ */
+ uint8_t block_bits_length;
+ uint8_t node_bits_length;
uint8_t function_bits_length;
+ uint8_t argument_bits_length;
+
int algonum;
uint64_t current;
bool status_up;
@@ -87,11 +96,25 @@ struct srv6_locator {
DECLARE_QOBJ_TYPE(srv6_locator);
struct srv6_locator_chunk {
+ char locator_name[SRV6_LOCNAME_SIZE];
+ struct prefix_ipv6 prefix;
+
+ /*
+ * Bit length of SRv6 locator described in
+ * draft-ietf-bess-srv6-services-05#section-3.2.1
+ */
+ uint8_t block_bits_length;
+ uint8_t node_bits_length;
+ uint8_t function_bits_length;
+ uint8_t argument_bits_length;
+
+ /*
+ * For Zclient communication values
+ */
uint8_t keep;
uint8_t proto;
uint16_t instance;
uint32_t session_id;
- struct prefix_ipv6 prefix;
};
static inline const char *seg6_mode2str(enum seg6_mode_t mode)