diff options
Diffstat (limited to 'bgpd/bgp_table.c')
| -rw-r--r-- | bgpd/bgp_table.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/bgpd/bgp_table.c b/bgpd/bgp_table.c index 833bdec2ed..376172a6f9 100644 --- a/bgpd/bgp_table.c +++ b/bgpd/bgp_table.c @@ -31,6 +31,7 @@ #include "bgpd/bgpd.h" #include "bgpd/bgp_table.h" #include "bgp_addpath.h" +#include "bgp_trace.h" void bgp_table_lock(struct bgp_table *rt) { @@ -61,6 +62,42 @@ void bgp_table_finish(struct bgp_table **rt) } /* + * bgp_dest_unlock_node + */ +void bgp_dest_unlock_node(struct bgp_dest *dest) +{ + frrtrace(1, frr_bgp, bgp_dest_unlock, dest); + bgp_delete_listnode(dest); + route_unlock_node(bgp_dest_to_rnode(dest)); +} + +/* + * bgp_dest_lock_node + */ +struct bgp_dest *bgp_dest_lock_node(struct bgp_dest *dest) +{ + frrtrace(1, frr_bgp, bgp_dest_lock, dest); + struct route_node *rn = route_lock_node(bgp_dest_to_rnode(dest)); + + return bgp_dest_from_rnode(rn); +} + +/* + * bgp_dest_get_prefix_str + */ +const char *bgp_dest_get_prefix_str(struct bgp_dest *dest) +{ + const struct prefix *p = NULL; + char str[PREFIX_STRLEN] = {0}; + + p = bgp_dest_get_prefix(dest); + if (p) + return prefix2str(p, str, sizeof(str)); + + return NULL; +} + +/* * bgp_node_create */ static struct route_node *bgp_node_create(route_table_delegate_t *delegate, |
