]> git.proxmox.com Git - mirror_frr.git/blobdiff - bgpd/bgp_table.h
lib: add frr-isisd to the native models
[mirror_frr.git] / bgpd / bgp_table.h
index c267b4fe8ae42ceb69f65d87399280967e45b54a..040e83a8cd9e8a92ca278759f89cf27967137209 100644 (file)
@@ -26,6 +26,7 @@
 #include "queue.h"
 #include "linklist.h"
 #include "bgpd.h"
+#include "bgp_advertise.h"
 
 struct bgp_table {
        /* table belongs to this instance */
@@ -52,7 +53,7 @@ struct bgp_node {
         */
        ROUTE_NODE_FIELDS
 
-       struct bgp_adj_out *adj_out;
+       struct bgp_adj_out_rb adj_out;
 
        struct bgp_adj_in *adj_in;
 
@@ -60,9 +61,10 @@ struct bgp_node {
 
        STAILQ_ENTRY(bgp_node) pq;
 
+       uint64_t version;
+
        mpls_label_t local_label;
 
-       uint64_t version;
        uint8_t flags;
 #define BGP_NODE_PROCESS_SCHEDULED     (1 << 0)
 #define BGP_NODE_USER_CLEAR             (1 << 1)
@@ -318,61 +320,94 @@ void bgp_table_range_lookup(const struct bgp_table *table, struct prefix *p,
 
 
 static inline struct bgp_aggregate *
-bgp_aggregate_get_node_info(struct bgp_node *node)
+bgp_node_get_bgp_aggregate_info(struct bgp_node *node)
 {
        return node->info;
 }
 
-static inline void bgp_aggregate_set_node_info(struct bgp_node *node,
-                                              struct bgp_aggregate *aggregate)
+static inline void
+bgp_node_set_bgp_aggregate_info(struct bgp_node *node,
+                               struct bgp_aggregate *aggregate)
 {
        node->info = aggregate;
 }
 
-static inline struct bgp_distance *bgp_distance_get_node(struct bgp_node *node)
+static inline struct bgp_distance *
+bgp_node_get_bgp_distance_info(struct bgp_node *node)
 {
        return node->info;
 }
 
-static inline void bgp_distance_set_node_info(struct bgp_node *node,
-                                             struct bgp_distance *distance)
+static inline void bgp_node_set_bgp_distance_info(struct bgp_node *node,
+                                                 struct bgp_distance *distance)
 {
        node->info = distance;
 }
 
-static inline struct bgp_static *bgp_static_get_node_info(struct bgp_node *node)
+static inline struct bgp_static *
+bgp_node_get_bgp_static_info(struct bgp_node *node)
 {
        return node->info;
 }
 
-static inline void bgp_static_set_node_info(struct bgp_node *node,
-                                           struct bgp_static *bgp_static)
+static inline void bgp_node_set_bgp_static_info(struct bgp_node *node,
+                                               struct bgp_static *bgp_static)
 {
        node->info = bgp_static;
 }
 
 static inline struct bgp_connected_ref *
-bgp_connected_get_node_info(struct bgp_node *node)
+bgp_node_get_bgp_connected_ref_info(struct bgp_node *node)
 {
        return node->info;
 }
 
-static inline void bgp_connected_set_node_info(struct bgp_node *node,
-                                              struct bgp_connected_ref *bc)
+static inline void
+bgp_node_set_bgp_connected_ref_info(struct bgp_node *node,
+                                   struct bgp_connected_ref *bc)
 {
        node->info = bc;
 }
 
 static inline struct bgp_nexthop_cache *
-bgp_nexthop_get_node_info(struct bgp_node *node)
+bgp_node_get_bgp_nexthop_info(struct bgp_node *node)
 {
        return node->info;
 }
 
-static inline void bgp_nexthop_set_node_info(struct bgp_node *node,
+static inline void bgp_node_set_bgp_nexthop_info(struct bgp_node *node,
                                             struct bgp_nexthop_cache *bnc)
 {
        node->info = bnc;
 }
 
+static inline struct bgp_path_info *
+bgp_node_get_bgp_path_info(struct bgp_node *node)
+{
+       return node->info;
+}
+
+static inline void bgp_node_set_bgp_path_info(struct bgp_node *node,
+                                             struct bgp_path_info *bi)
+{
+       node->info = bi;
+}
+
+static inline struct bgp_table *
+bgp_node_get_bgp_table_info(struct bgp_node *node)
+{
+       return node->info;
+}
+
+static inline void bgp_node_set_bgp_table_info(struct bgp_node *node,
+                                              struct bgp_table *table)
+{
+       node->info = table;
+}
+
+static inline bool bgp_node_has_bgp_path_info_data(struct bgp_node *node)
+{
+       return !!node->info;
+}
+
 #endif /* _QUAGGA_BGP_TABLE_H */