]> git.puffer.fish Git - matthieu/frr.git/commitdiff
lib: Add CLI nodes to support SRv6 SID format
authorCarmine Scarpitta <cscarpit@cisco.com>
Fri, 22 Mar 2024 14:56:15 +0000 (15:56 +0100)
committerCarmine Scarpitta <cscarpit@cisco.com>
Thu, 13 Jun 2024 12:54:16 +0000 (14:54 +0200)
Add CLI commands to support overriding default configuration of the SID
format.

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

index e4c575e8d787b889bda9ec1604738c97cb89b4f8..6f819c7e36939739ffc340a4c2732c0ed4d6419e 100644 (file)
@@ -161,6 +161,9 @@ enum node_type {
        SRV6_LOCS_NODE,          /* SRv6 locators node */
        SRV6_LOC_NODE,           /* SRv6 locator node */
        SRV6_ENCAP_NODE,                 /* SRv6 encapsulation node */
+       SRV6_SID_FORMATS_NODE,           /* SRv6 SID formats config node */
+       SRV6_SID_FORMAT_USID_F3216_NODE,                 /* SRv6 uSID f3216 format config node */
+       SRV6_SID_FORMAT_UNCOMPRESSED_F4024_NODE,                 /* SRv6 uncompressed f4024 format config node */
        VTY_NODE,                /* Vty node. */
        FPM_NODE,                /* Dataplane FPM node. */
        LINK_PARAMS_NODE,       /* Link-parameters node */
index dffc6ca091bbb0fd494c6524c011ce6a13e1c71c..fa3b4a733b892040e4924181d0e2cc3d2fe1863c 100644 (file)
@@ -92,7 +92,7 @@ static int zebra_srv6_cleanup(struct zserv *client)
 
 /* --- Zebra SRv6 SID format management functions --------------------------- */
 
-void zebra_srv6_sid_format_register(struct zebra_srv6_sid_format *format)
+void zebra_srv6_sid_format_register(struct srv6_sid_format *format)
 {
        struct zebra_srv6 *srv6 = zebra_srv6_get_default();
 
@@ -102,17 +102,17 @@ void zebra_srv6_sid_format_register(struct zebra_srv6_sid_format *format)
        listnode_add(srv6->sid_formats, format);
 }
 
-void zebra_srv6_sid_format_unregister(struct zebra_srv6_sid_format *format)
+void zebra_srv6_sid_format_unregister(struct srv6_sid_format *format)
 {
        struct zebra_srv6 *srv6 = zebra_srv6_get_default();
 
        listnode_delete(srv6->sid_formats, format);
 }
 
-struct zebra_srv6_sid_format *zebra_srv6_sid_format_lookup(const char *name)
+struct srv6_sid_format *zebra_srv6_sid_format_lookup(const char *name)
 {
        struct zebra_srv6 *srv6 = zebra_srv6_get_default();
-       struct zebra_srv6_sid_format *format;
+       struct srv6_sid_format *format;
        struct listnode *node;
 
        for (ALL_LIST_ELEMENTS_RO(srv6->sid_formats, node, format))
@@ -125,12 +125,11 @@ struct zebra_srv6_sid_format *zebra_srv6_sid_format_lookup(const char *name)
 /*
  * Helper function to create the SRv6 compressed format `usid-f3216`.
  */
-static struct zebra_srv6_sid_format *create_srv6_sid_format_usid_f3216(void)
+static struct srv6_sid_format *create_srv6_sid_format_usid_f3216(void)
 {
-       struct zebra_srv6_sid_format *format = NULL;
+       struct srv6_sid_format *format = NULL;
 
-       format = zebra_srv6_sid_format_alloc(
-               ZEBRA_SRV6_SID_FORMAT_USID_F3216_NAME);
+       format = srv6_sid_format_alloc(ZEBRA_SRV6_SID_FORMAT_USID_F3216_NAME);
 
        format->type = SRV6_SID_FORMAT_TYPE_USID;
 
@@ -158,11 +157,11 @@ static struct zebra_srv6_sid_format *create_srv6_sid_format_usid_f3216(void)
 /*
  * Helper function to create the SRv6 uncompressed format.
  */
-static struct zebra_srv6_sid_format *create_srv6_sid_format_uncompressed(void)
+static struct srv6_sid_format *create_srv6_sid_format_uncompressed(void)
 {
-       struct zebra_srv6_sid_format *format = NULL;
+       struct srv6_sid_format *format = NULL;
 
-       format = zebra_srv6_sid_format_alloc(
+       format = srv6_sid_format_alloc(
                ZEBRA_SRV6_SID_FORMAT_UNCOMPRESSED_F4024_NAME);
 
        format->type = ZEBRA_SRV6_SID_FORMAT_TYPE_UNCOMPRESSED;
@@ -314,8 +313,8 @@ struct zebra_srv6 srv6;
 struct zebra_srv6 *zebra_srv6_get_default(void)
 {
        static bool first_execution = true;
-       struct zebra_srv6_sid_format *format_usidf3216;
-       struct zebra_srv6_sid_format *format_uncompressed;
+       struct srv6_sid_format *format_usidf3216;
+       struct srv6_sid_format *format_uncompressed;
 
        if (first_execution) {
                first_execution = false;
@@ -323,7 +322,7 @@ struct zebra_srv6 *zebra_srv6_get_default(void)
 
                /* Initialize list of SID formats */
                srv6.sid_formats = list_new();
-               srv6.sid_formats->del = delete_zebra_srv6_sid_format;
+               srv6.sid_formats->del = delete_srv6_sid_format;
 
                /* Create SID format `usid-f3216` */
                format_usidf3216 = create_srv6_sid_format_usid_f3216();
@@ -536,7 +535,7 @@ void zebra_srv6_encap_src_addr_unset(void)
 void zebra_srv6_terminate(void)
 {
        struct srv6_locator *locator;
-       struct zebra_srv6_sid_format *format;
+       struct srv6_sid_format *format;
 
        if (srv6.locators) {
                while (listcount(srv6.locators)) {
@@ -555,7 +554,7 @@ void zebra_srv6_terminate(void)
                        format = listnode_head(srv6.sid_formats);
 
                        zebra_srv6_sid_format_unregister(format);
-                       zebra_srv6_sid_format_free(format);
+                       srv6_sid_format_free(format);
                }
 
                list_delete(&srv6.sid_formats);
index a645c5cc0d4986da5543ff499455668754485233..57f9d83825ae4f58d16d63e0ab2334c4e87993aa 100644 (file)
@@ -99,8 +99,8 @@ extern int release_daemon_srv6_locator_chunks(struct zserv *client);
 extern void zebra_srv6_encap_src_addr_set(struct in6_addr *src_addr);
 extern void zebra_srv6_encap_src_addr_unset(void);
 
-void zebra_srv6_sid_format_register(struct zebra_srv6_sid_format *format);
-void zebra_srv6_sid_format_unregister(struct zebra_srv6_sid_format *format);
-struct zebra_srv6_sid_format *zebra_srv6_sid_format_lookup(const char *name);
+void zebra_srv6_sid_format_register(struct srv6_sid_format *format);
+void zebra_srv6_sid_format_unregister(struct srv6_sid_format *format);
+struct srv6_sid_format *zebra_srv6_sid_format_lookup(const char *name);
 
 #endif /* _ZEBRA_SRV6_H */