summaryrefslogtreecommitdiff
path: root/lib/zclient.c
diff options
context:
space:
mode:
authorCarmine Scarpitta <cscarpit@cisco.com>2024-05-06 17:46:44 +0200
committerCarmine Scarpitta <cscarpit@cisco.com>2024-06-13 14:54:16 +0200
commit164117f2ec3d85c7ed63bb81413fb0d28651bc84 (patch)
treeaf1848ebecdc9a71665b6c553863c99d40a1156f /lib/zclient.c
parentee1d20879b0cb44abb77954190a55a07e1921435 (diff)
lib: Add missing info to locator encode/decode
Include block/node/function/argument lengthi when encoding/decoding an SRv6 locator. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
Diffstat (limited to 'lib/zclient.c')
-rw-r--r--lib/zclient.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/zclient.c b/lib/zclient.c
index 8308215de9..b0e97b0f12 100644
--- a/lib/zclient.c
+++ b/lib/zclient.c
@@ -1125,6 +1125,10 @@ int zapi_srv6_locator_encode(struct stream *s, const struct srv6_locator *l)
stream_put(s, l->name, strlen(l->name));
stream_putw(s, l->prefix.prefixlen);
stream_put(s, &l->prefix.prefix, sizeof(l->prefix.prefix));
+ stream_putc(s, l->block_bits_length);
+ stream_putc(s, l->node_bits_length);
+ stream_putc(s, l->function_bits_length);
+ stream_putc(s, l->argument_bits_length);
stream_putc(s, l->flags);
return 0;
}
@@ -1141,6 +1145,10 @@ int zapi_srv6_locator_decode(struct stream *s, struct srv6_locator *l)
STREAM_GETW(s, l->prefix.prefixlen);
STREAM_GET(&l->prefix.prefix, s, sizeof(l->prefix.prefix));
l->prefix.family = AF_INET6;
+ STREAM_GETC(s, l->block_bits_length);
+ STREAM_GETC(s, l->node_bits_length);
+ STREAM_GETC(s, l->function_bits_length);
+ STREAM_GETC(s, l->argument_bits_length);
STREAM_GETC(s, l->flags);
return 0;