]> git.puffer.fish Git - matthieu/frr.git/commitdiff
lib: Add function to copy an SRv6 locator
authorCarmine Scarpitta <cscarpit@cisco.com>
Wed, 8 May 2024 14:41:05 +0000 (16:41 +0200)
committerCarmine Scarpitta <cscarpit@cisco.com>
Thu, 13 Jun 2024 12:54:16 +0000 (14:54 +0200)
Add a new function to copy an SRv6 locator.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
lib/srv6.c
lib/srv6.h

index abaff7eab83086652d53140038f9e465ed48e23d..1f485fb8ac8d93ee55a83e6377b899ce0c57038e 100644 (file)
@@ -141,6 +141,21 @@ struct srv6_locator_chunk *srv6_locator_chunk_alloc(void)
        return chunk;
 }
 
+void srv6_locator_copy(struct srv6_locator *copy,
+                      const struct srv6_locator *locator)
+{
+       strlcpy(copy->name, locator->name, sizeof(locator->name));
+       copy->prefix = locator->prefix;
+       copy->block_bits_length = locator->block_bits_length;
+       copy->node_bits_length = locator->node_bits_length;
+       copy->function_bits_length = locator->function_bits_length;
+       copy->argument_bits_length = locator->argument_bits_length;
+       copy->algonum = locator->algonum;
+       copy->current = locator->current;
+       copy->status_up = locator->status_up;
+       copy->flags = locator->flags;
+}
+
 void srv6_locator_free(struct srv6_locator *locator)
 {
        if (locator) {
index 04f560b2678081bfa6f4dc3211d3c7ce8116ac1a..66f1854dabda6d5992ddba37a8ffac27b6a54293 100644 (file)
@@ -311,6 +311,8 @@ extern struct srv6_locator_chunk *srv6_locator_chunk_alloc(void);
 extern void srv6_locator_free(struct srv6_locator *locator);
 extern void srv6_locator_chunk_list_free(void *data);
 extern void srv6_locator_chunk_free(struct srv6_locator_chunk **chunk);
+extern void srv6_locator_copy(struct srv6_locator *copy,
+                             const struct srv6_locator *locator);
 json_object *srv6_locator_chunk_json(const struct srv6_locator_chunk *chunk);
 json_object *srv6_locator_json(const struct srv6_locator *loc);
 json_object *srv6_locator_detailed_json(const struct srv6_locator *loc);