diff options
Diffstat (limited to 'bgpd/bgp_table.h')
| -rw-r--r-- | bgpd/bgp_table.h | 212 |
1 files changed, 97 insertions, 115 deletions
diff --git a/bgpd/bgp_table.h b/bgpd/bgp_table.h index 3c96dac617..d2577f3df0 100644 --- a/bgpd/bgp_table.h +++ b/bgpd/bgp_table.h @@ -23,60 +23,57 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA #include "table.h" -struct bgp_table -{ - /* afi/safi of this table */ - afi_t afi; - safi_t safi; - - int lock; +struct bgp_table { + /* afi/safi of this table */ + afi_t afi; + safi_t safi; + + int lock; - /* The owner of this 'bgp_table' structure. */ - struct peer *owner; + /* The owner of this 'bgp_table' structure. */ + struct peer *owner; - struct route_table *route_table; - uint64_t version; + struct route_table *route_table; + uint64_t version; }; -struct bgp_node -{ - /* - * CAUTION - * - * These fields must be the very first fields in this structure. - * - * @see bgp_node_to_rnode - * @see bgp_node_from_rnode - */ - ROUTE_NODE_FIELDS +struct bgp_node { + /* + * CAUTION + * + * These fields must be the very first fields in this structure. + * + * @see bgp_node_to_rnode + * @see bgp_node_from_rnode + */ + ROUTE_NODE_FIELDS - struct bgp_adj_out *adj_out; + struct bgp_adj_out *adj_out; - struct bgp_adj_in *adj_in; + struct bgp_adj_in *adj_in; - struct bgp_node *prn; + struct bgp_node *prn; - uint64_t version; - u_char flags; + uint64_t version; + u_char flags; #define BGP_NODE_PROCESS_SCHEDULED (1 << 0) #define BGP_NODE_USER_CLEAR (1 << 1) }; /* * bgp_table_iter_t - * + * * Structure that holds state for iterating over a bgp table. */ -typedef struct bgp_table_iter_t_ -{ - struct bgp_table *table; - route_table_iter_t rt_iter; +typedef struct bgp_table_iter_t_ { + struct bgp_table *table; + route_table_iter_t rt_iter; } bgp_table_iter_t; -extern struct bgp_table *bgp_table_init (afi_t, safi_t); -extern void bgp_table_lock (struct bgp_table *); -extern void bgp_table_unlock (struct bgp_table *); -extern void bgp_table_finish (struct bgp_table **); +extern struct bgp_table *bgp_table_init(afi_t, safi_t); +extern void bgp_table_lock(struct bgp_table *); +extern void bgp_table_unlock(struct bgp_table *); +extern void bgp_table_finish(struct bgp_table **); /* @@ -84,10 +81,9 @@ extern void bgp_table_finish (struct bgp_table **); * * Returns the bgp_node structure corresponding to a route_node. */ -static inline struct bgp_node * -bgp_node_from_rnode (struct route_node *rnode) +static inline struct bgp_node *bgp_node_from_rnode(struct route_node *rnode) { - return (struct bgp_node *) rnode; + return (struct bgp_node *)rnode; } /* @@ -95,10 +91,9 @@ bgp_node_from_rnode (struct route_node *rnode) * * Returns the route_node structure corresponding to a bgp_node. */ -static inline struct route_node * -bgp_node_to_rnode (struct bgp_node *node) +static inline struct route_node *bgp_node_to_rnode(struct bgp_node *node) { - return (struct route_node *) node; + return (struct route_node *)node; } /* @@ -106,10 +101,9 @@ bgp_node_to_rnode (struct bgp_node *node) * * Returns the bgp_table that the given node is in. */ -static inline struct bgp_table * -bgp_node_table (struct bgp_node *node) +static inline struct bgp_table *bgp_node_table(struct bgp_node *node) { - return bgp_node_to_rnode (node)->table->info; + return bgp_node_to_rnode(node)->table->info; } /* @@ -117,19 +111,17 @@ bgp_node_table (struct bgp_node *node) * * Gets the parent node of the given node without locking it. */ -static inline struct bgp_node * -bgp_node_parent_nolock (struct bgp_node *node) +static inline struct bgp_node *bgp_node_parent_nolock(struct bgp_node *node) { - return bgp_node_from_rnode (node->parent); + return bgp_node_from_rnode(node->parent); } /* * bgp_unlock_node */ -static inline void -bgp_unlock_node (struct bgp_node *node) +static inline void bgp_unlock_node(struct bgp_node *node) { - route_unlock_node (bgp_node_to_rnode (node)); + route_unlock_node(bgp_node_to_rnode(node)); } /* @@ -140,183 +132,173 @@ bgp_unlock_node (struct bgp_node *node) * @see bgp_table_top */ static inline struct bgp_node * -bgp_table_top_nolock (const struct bgp_table *const table) +bgp_table_top_nolock(const struct bgp_table *const table) { - return bgp_node_from_rnode (table->route_table->top); + return bgp_node_from_rnode(table->route_table->top); } /* * bgp_table_top */ static inline struct bgp_node * -bgp_table_top (const struct bgp_table *const table) +bgp_table_top(const struct bgp_table *const table) { - return bgp_node_from_rnode (route_top (table->route_table)); + return bgp_node_from_rnode(route_top(table->route_table)); } /* * bgp_route_next */ -static inline struct bgp_node * -bgp_route_next (struct bgp_node *node) +static inline struct bgp_node *bgp_route_next(struct bgp_node *node) { - return bgp_node_from_rnode (route_next (bgp_node_to_rnode (node))); + return bgp_node_from_rnode(route_next(bgp_node_to_rnode(node))); } /* * bgp_route_next_until */ -static inline struct bgp_node * -bgp_route_next_until (struct bgp_node *node, struct bgp_node *limit) +static inline struct bgp_node *bgp_route_next_until(struct bgp_node *node, + struct bgp_node *limit) { - struct route_node *rnode; + struct route_node *rnode; - rnode = route_next_until (bgp_node_to_rnode (node), - bgp_node_to_rnode (limit)); - return bgp_node_from_rnode (rnode); + rnode = route_next_until(bgp_node_to_rnode(node), + bgp_node_to_rnode(limit)); + return bgp_node_from_rnode(rnode); } /* * bgp_node_get */ -static inline struct bgp_node * -bgp_node_get (struct bgp_table *const table, struct prefix *p) +static inline struct bgp_node *bgp_node_get(struct bgp_table *const table, + struct prefix *p) { - return bgp_node_from_rnode (route_node_get (table->route_table, p)); + return bgp_node_from_rnode(route_node_get(table->route_table, p)); } /* * bgp_node_lookup */ static inline struct bgp_node * -bgp_node_lookup (const struct bgp_table *const table, struct prefix *p) +bgp_node_lookup(const struct bgp_table *const table, struct prefix *p) { - return bgp_node_from_rnode (route_node_lookup (table->route_table, p)); + return bgp_node_from_rnode(route_node_lookup(table->route_table, p)); } /* * bgp_lock_node */ -static inline struct bgp_node * -bgp_lock_node (struct bgp_node *node) +static inline struct bgp_node *bgp_lock_node(struct bgp_node *node) { - return bgp_node_from_rnode (route_lock_node (bgp_node_to_rnode (node))); + return bgp_node_from_rnode(route_lock_node(bgp_node_to_rnode(node))); } /* * bgp_node_match */ -static inline struct bgp_node * -bgp_node_match (const struct bgp_table *table, struct prefix *p) +static inline struct bgp_node *bgp_node_match(const struct bgp_table *table, + struct prefix *p) { - return bgp_node_from_rnode (route_node_match (table->route_table, p)); + return bgp_node_from_rnode(route_node_match(table->route_table, p)); } /* * bgp_node_match_ipv4 */ static inline struct bgp_node * -bgp_node_match_ipv4 (const struct bgp_table *table, struct in_addr *addr) +bgp_node_match_ipv4(const struct bgp_table *table, struct in_addr *addr) { - return bgp_node_from_rnode (route_node_match_ipv4 (table->route_table, - addr)); + return bgp_node_from_rnode( + route_node_match_ipv4(table->route_table, addr)); } /* * bgp_node_match_ipv6 */ static inline struct bgp_node * -bgp_node_match_ipv6 (const struct bgp_table *table, struct in6_addr *addr) +bgp_node_match_ipv6(const struct bgp_table *table, struct in6_addr *addr) { - return bgp_node_from_rnode (route_node_match_ipv6 (table->route_table, - addr)); + return bgp_node_from_rnode( + route_node_match_ipv6(table->route_table, addr)); } -static inline unsigned long -bgp_table_count (const struct bgp_table *const table) +static inline unsigned long bgp_table_count(const struct bgp_table *const table) { - return route_table_count (table->route_table); + return route_table_count(table->route_table); } /* * bgp_table_get_next */ -static inline struct bgp_node * -bgp_table_get_next (const struct bgp_table *table, struct prefix *p) +static inline struct bgp_node *bgp_table_get_next(const struct bgp_table *table, + struct prefix *p) { - return bgp_node_from_rnode (route_table_get_next (table->route_table, p)); + return bgp_node_from_rnode(route_table_get_next(table->route_table, p)); } /* * bgp_table_iter_init */ -static inline void -bgp_table_iter_init (bgp_table_iter_t * iter, struct bgp_table *table) +static inline void bgp_table_iter_init(bgp_table_iter_t *iter, + struct bgp_table *table) { - bgp_table_lock (table); - iter->table = table; - route_table_iter_init (&iter->rt_iter, table->route_table); + bgp_table_lock(table); + iter->table = table; + route_table_iter_init(&iter->rt_iter, table->route_table); } /* * bgp_table_iter_next */ -static inline struct bgp_node * -bgp_table_iter_next (bgp_table_iter_t * iter) +static inline struct bgp_node *bgp_table_iter_next(bgp_table_iter_t *iter) { - return bgp_node_from_rnode (route_table_iter_next (&iter->rt_iter)); + return bgp_node_from_rnode(route_table_iter_next(&iter->rt_iter)); } /* * bgp_table_iter_cleanup */ -static inline void -bgp_table_iter_cleanup (bgp_table_iter_t * iter) +static inline void bgp_table_iter_cleanup(bgp_table_iter_t *iter) { - route_table_iter_cleanup (&iter->rt_iter); - bgp_table_unlock (iter->table); - iter->table = NULL; + route_table_iter_cleanup(&iter->rt_iter); + bgp_table_unlock(iter->table); + iter->table = NULL; } /* * bgp_table_iter_pause */ -static inline void -bgp_table_iter_pause (bgp_table_iter_t * iter) +static inline void bgp_table_iter_pause(bgp_table_iter_t *iter) { - route_table_iter_pause (&iter->rt_iter); + route_table_iter_pause(&iter->rt_iter); } /* * bgp_table_iter_is_done */ -static inline int -bgp_table_iter_is_done (bgp_table_iter_t * iter) +static inline int bgp_table_iter_is_done(bgp_table_iter_t *iter) { - return route_table_iter_is_done (&iter->rt_iter); + return route_table_iter_is_done(&iter->rt_iter); } /* * bgp_table_iter_started */ -static inline int -bgp_table_iter_started (bgp_table_iter_t * iter) +static inline int bgp_table_iter_started(bgp_table_iter_t *iter) { - return route_table_iter_started (&iter->rt_iter); + return route_table_iter_started(&iter->rt_iter); } /* This would benefit from a real atomic operation... * until then. */ -static inline uint64_t -bgp_table_next_version (struct bgp_table *table) +static inline uint64_t bgp_table_next_version(struct bgp_table *table) { - return ++table->version; + return ++table->version; } -static inline uint64_t -bgp_table_version (struct bgp_table *table) +static inline uint64_t bgp_table_version(struct bgp_table *table) { - return table->version; + return table->version; } #endif /* _QUAGGA_BGP_TABLE_H */ |
