]> git.puffer.fish Git - matthieu/frr.git/commitdiff
lib: export prefix-lists functions
authorRafael Zalamena <rzalamena@opensourcerouting.org>
Mon, 11 Nov 2019 23:21:25 +0000 (20:21 -0300)
committerRafael Zalamena <rzalamena@opensourcerouting.org>
Fri, 5 Jun 2020 17:31:26 +0000 (14:31 -0300)
Export all functions that are going to be used by the northbound.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
lib/plist.c
lib/plist.h
lib/plist_int.h

index d18d51618a93b71423cff586a533f2ed25e574ca..0addb6fde0de11d0dfc683afa12816dcf13508f1 100644 (file)
@@ -178,7 +178,7 @@ static void prefix_list_free(struct prefix_list *plist)
        XFREE(MTYPE_PREFIX_LIST, plist);
 }
 
-static struct prefix_list_entry *prefix_list_entry_new(void)
+struct prefix_list_entry *prefix_list_entry_new(void)
 {
        struct prefix_list_entry *new;
 
@@ -279,7 +279,7 @@ static struct prefix_list *prefix_list_insert(afi_t afi, int orf,
        return plist;
 }
 
-static struct prefix_list *prefix_list_get(afi_t afi, int orf, const char *name)
+struct prefix_list *prefix_list_get(afi_t afi, int orf, const char *name)
 {
        struct prefix_list *plist;
 
@@ -294,7 +294,7 @@ static void prefix_list_trie_del(struct prefix_list *plist,
                                 struct prefix_list_entry *pentry);
 
 /* Delete prefix-list from prefix_list_master and free it. */
-static void prefix_list_delete(struct prefix_list *plist)
+void prefix_list_delete(struct prefix_list *plist)
 {
        struct prefix_list_list *list;
        struct prefix_master *master;
@@ -381,7 +381,7 @@ void prefix_list_delete_hook(void (*func)(struct prefix_list *plist))
 }
 
 /* Calculate new sequential number. */
-static int64_t prefix_new_seq_get(struct prefix_list *plist)
+int64_t prefix_new_seq_get(struct prefix_list *plist)
 {
        int64_t maxseq;
        int64_t newseq;
@@ -411,7 +411,7 @@ static struct prefix_list_entry *prefix_seq_check(struct prefix_list *plist,
        return NULL;
 }
 
-static struct prefix_list_entry *
+struct prefix_list_entry *
 prefix_list_entry_lookup(struct prefix_list *plist, struct prefix *prefix,
                         enum prefix_list_type type, int64_t seq,
                         int le, int ge)
@@ -502,9 +502,9 @@ static void prefix_list_trie_del(struct prefix_list *plist,
 }
 
 
-static void prefix_list_entry_delete(struct prefix_list *plist,
-                                    struct prefix_list_entry *pentry,
-                                    int update_list)
+void prefix_list_entry_delete(struct prefix_list *plist,
+                             struct prefix_list_entry *pentry,
+                             int update_list)
 {
        if (plist == NULL || pentry == NULL)
                return;
index ba2846d74add9c9b42085cec2d91b4a37557dfdf..57eb763a6838e051a76f443435d1763204bef12e 100644 (file)
@@ -79,6 +79,20 @@ extern void prefix_bgp_orf_remove_all(afi_t, char *);
 extern int prefix_bgp_show_prefix_list(struct vty *vty, afi_t afi, char *name,
                                       bool use_json);
 
+extern struct prefix_list *prefix_list_get(afi_t afi, int orf,
+                                          const char *name);
+extern void prefix_list_delete(struct prefix_list *plist);
+extern int64_t prefix_new_seq_get(struct prefix_list *plist);
+
+extern struct prefix_list_entry *prefix_list_entry_new(void);
+extern void prefix_list_entry_delete(struct prefix_list *plist,
+                                    struct prefix_list_entry *pentry,
+                                    int update_list);
+extern struct prefix_list_entry *
+prefix_list_entry_lookup(struct prefix_list *plist, struct prefix *prefix,
+                        enum prefix_list_type type, int64_t seq, int le,
+                        int ge);
+
 #ifdef __cplusplus
 }
 #endif
index ec8bbe1315905e57ee24a26efc566ab47193087b..b180d18081cf59d8c23f181d5ccb63a19c421067 100644 (file)
@@ -65,6 +65,8 @@ struct prefix_list_entry {
        unsigned long refcnt;
        unsigned long hitcnt;
 
+       struct prefix_list *pl;
+
        struct prefix_list_entry *next;
        struct prefix_list_entry *prev;