]> git.proxmox.com Git - mirror_frr.git/commitdiff
zebra: expose label-manager util-funcs
authorPat Ruddy <pat@voltanet.io>
Tue, 5 Jan 2021 12:32:26 +0000 (12:32 +0000)
committerPat Ruddy <pat@voltanet.io>
Tue, 5 Jan 2021 18:19:44 +0000 (18:19 +0000)
Revert "zebra: unexpose label-manager util-funcs as static"
This reverts commit d3d9639d9a2251aa519b5399706ce816982001a1.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
zebra/label_manager.c
zebra/label_manager.h

index feec49ecc25a8531406e398e85496e5095565323..ef51669022d17c63195cb8defa3c560320b362c1 100644 (file)
@@ -91,11 +91,8 @@ static int label_manager_get_chunk(struct label_manager_chunk **lmc,
                                   vrf_id_t vrf_id);
 static int label_manager_release_label_chunk(struct zserv *client,
                                             uint32_t start, uint32_t end);
-static int release_label_chunk(uint8_t proto, unsigned short instance,
-                              uint32_t session_id, uint32_t start,
-                              uint32_t end);
 
-static void delete_label_chunk(void *val)
+void delete_label_chunk(void *val)
 {
        XFREE(MTYPE_LM_CHUNK, val);
 }
@@ -178,11 +175,9 @@ void label_manager_init(void)
 }
 
 /* alloc and fill a label chunk */
-static struct label_manager_chunk *create_label_chunk(uint8_t proto,
-                                                     unsigned short instance,
-                                                     uint32_t session_id,
-                                                     uint8_t keep, uint32_t start,
-                                                     uint32_t end)
+struct label_manager_chunk *
+create_label_chunk(uint8_t proto, unsigned short instance, uint32_t session_id,
+                  uint8_t keep, uint32_t start, uint32_t end)
 {
        /* alloc chunk, fill it and return it */
        struct label_manager_chunk *lmc =
@@ -305,11 +300,9 @@ assign_specific_label_chunk(uint8_t proto, unsigned short instance,
  * @param base Desired starting label of the chunk; if MPLS_LABEL_BASE_ANY it does not apply
  * @return Pointer to the assigned label chunk, or NULL if the request could not be satisfied
  */
-static struct label_manager_chunk *assign_label_chunk(uint8_t proto,
-                                                     unsigned short instance,
-                                                     uint32_t session_id,
-                                                     uint8_t keep, uint32_t size,
-                                                     uint32_t base)
+struct label_manager_chunk *
+assign_label_chunk(uint8_t proto, unsigned short instance, uint32_t session_id,
+                  uint8_t keep, uint32_t size, uint32_t base)
 {
        struct label_manager_chunk *lmc;
        struct listnode *node;
@@ -398,7 +391,7 @@ static int label_manager_release_label_chunk(struct zserv *client,
  * @param end Last label of the chunk
  * @return 0 on success, -1 otherwise
  */
-static int release_label_chunk(uint8_t proto, unsigned short instance,
+int release_label_chunk(uint8_t proto, unsigned short instance,
                        uint32_t session_id, uint32_t start, uint32_t end)
 {
        struct listnode *node;
index 094155f71455c3876e5d038a7fdd8f9cc1bedc66..8636c79219920aa1c7d570485d9a9e5d1f139f42 100644 (file)
@@ -94,6 +94,12 @@ int lm_client_connect_response(uint8_t proto, uint16_t instance,
 int lm_get_chunk_response(struct label_manager_chunk *lmc, struct zserv *client,
                          vrf_id_t vrf_id);
 
+/* convenience function to allocate an lmc to be consumed by the above API */
+struct label_manager_chunk *
+create_label_chunk(uint8_t proto, unsigned short instance, uint32_t session_id,
+                  uint8_t keep, uint32_t start, uint32_t end);
+void delete_label_chunk(void *val);
+
 /* register/unregister callbacks for hooks */
 void lm_hooks_register(void);
 void lm_hooks_unregister(void);
@@ -107,6 +113,11 @@ struct label_manager {
 };
 
 void label_manager_init(void);
+struct label_manager_chunk *
+assign_label_chunk(uint8_t proto, unsigned short instance, uint32_t session_id,
+                  uint8_t keep, uint32_t size, uint32_t base);
+int release_label_chunk(uint8_t proto, unsigned short instance,
+                       uint32_t session_id, uint32_t start, uint32_t end);
 int lm_client_disconnect_cb(struct zserv *client);
 int release_daemon_label_chunks(struct zserv *client);
 void label_manager_close(void);