]> git.proxmox.com Git - mirror_frr.git/commitdiff
bgpd: Make `struct bgp_addr` a private data structure
authorDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 21 Sep 2018 19:50:47 +0000 (15:50 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 21 Sep 2018 19:51:58 +0000 (15:51 -0400)
The `struct bgp_addr` is not needed for anything other than
the address hash.  Isolate this data structure so that it
is not polluting up the name space.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd/bgp_nexthop.c
bgpd/bgp_nexthop.h
bgpd/bgp_vty.c

index 76bfa73feeb143f559e25f4eac79aff61c3be40a..bcada6c5849aeeff09d80733f260b7a7cf799962 100644 (file)
@@ -169,6 +169,28 @@ void bgp_tip_del(struct bgp *bgp, struct in_addr *tip)
        }
 }
 
+/* BGP own address structure */
+struct bgp_addr {
+       struct in_addr addr;
+       int refcnt;
+};
+
+static void show_address_entry(struct hash_backet *backet, void *args)
+{
+       struct vty *vty = (struct vty *)args;
+       struct bgp_addr *addr = (struct bgp_addr *)backet->data;
+
+       vty_out(vty, "addr: %s, count: %d\n", inet_ntoa(addr->addr),
+               addr->refcnt);
+}
+
+void bgp_nexthop_show_address_hash(struct vty *vty, struct bgp *bgp)
+{
+       hash_iterate(bgp->address_hash,
+                    (void (*)(struct hash_backet *, void *))show_address_entry,
+                    vty);
+}
+
 static void *bgp_address_hash_alloc(void *p)
 {
        const struct in_addr *val = (const struct in_addr *)p;
index a771bead230126778244e81c52a87f993420c5a7..1cb05bc853efab0df569928f9bd561601e8ac8e8 100644 (file)
@@ -68,12 +68,6 @@ struct bgp_nexthop_cache {
        struct bgp *bgp;
 };
 
-/* BGP own address structure */
-struct bgp_addr {
-       struct in_addr addr;
-       int refcnt;
-};
-
 /* Own tunnel-ip address structure */
 struct tip_addr {
        struct in_addr addr;
@@ -103,4 +97,5 @@ extern void bgp_tip_del(struct bgp *bgp, struct in_addr *tip);
 extern void bgp_tip_hash_init(struct bgp *bgp);
 extern void bgp_tip_hash_destroy(struct bgp *bgp);
 
+extern void bgp_nexthop_show_address_hash(struct vty *vty, struct bgp *bgp);
 #endif /* _QUAGGA_BGP_NEXTHOP_H */
index e6d44c1a2c500b6fed62ba77c6f43c67b702030a..58f23fd2f4338d16f1c12f07def034bfa32464d9 100644 (file)
@@ -7451,14 +7451,6 @@ DEFUN (show_bgp_vrfs,
        return CMD_SUCCESS;
 }
 
-static void show_address_entry(struct hash_backet *backet, void *args)
-{
-       struct vty *vty = (struct vty *)args;
-       struct bgp_addr *addr = (struct bgp_addr *)backet->data;
-
-       vty_out(vty, "addr: %s, count: %d\n", inet_ntoa(addr->addr),
-               addr->refcnt);
-}
 
 static void show_tip_entry(struct hash_backet *backet, void *args)
 {
@@ -7472,9 +7464,7 @@ static void show_tip_entry(struct hash_backet *backet, void *args)
 static void bgp_show_martian_nexthops(struct vty *vty, struct bgp *bgp)
 {
        vty_out(vty, "self nexthop database:\n");
-       hash_iterate(bgp->address_hash,
-                    (void (*)(struct hash_backet *, void *))show_address_entry,
-                    vty);
+       bgp_nexthop_show_address_hash(vty, bgp);
 
        vty_out(vty, "Tunnel-ip database:\n");
        hash_iterate(bgp->tip_hash,