]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/rib.h
Merge pull request #1515 from donaldsharp/selected_to_front1
[mirror_frr.git] / zebra / rib.h
index e3ed6210ca61764a046823789f7c451d68764f09..804372f18e1157037188a3faf25abc90ea528edb 100644 (file)
@@ -71,7 +71,7 @@ struct route_entry {
        u_int32_t nexthop_mtu;
 
        /* Distance. */
-       u_char distance;
+       uint8_t distance;
 
        /* Flags of this route.
         * This flag's definition is in lib/zebra.h ZEBRA_FLAG_* and is exposed
@@ -85,8 +85,7 @@ struct route_entry {
 /* to simplify NHT logic when NHs change, instead of doing a NH by NH cmp */
 #define ROUTE_ENTRY_NEXTHOPS_CHANGED 0x2
 #define ROUTE_ENTRY_CHANGED          0x4
-#define ROUTE_ENTRY_SELECTED_FIB     0x8
-#define ROUTE_ENTRY_LABELS_CHANGED   0x10
+#define ROUTE_ENTRY_LABELS_CHANGED   0x8
 
        /* Nexthop information. */
        u_char nexthop_num;
@@ -122,6 +121,8 @@ typedef struct rib_dest_t_ {
         */
        struct route_entry *routes;
 
+       struct route_entry *selected_fib;
+
        /*
         * Flags, see below.
         */
@@ -285,9 +286,9 @@ extern int zebra_check_addr(struct prefix *p);
 extern void rib_addnode(struct route_node *rn, struct route_entry *re,
                        int process);
 extern void rib_delnode(struct route_node *rn, struct route_entry *re);
-extern int rib_install_kernel(struct route_node *rn, struct route_entry *re,
-                             struct route_entry *old);
-extern int rib_uninstall_kernel(struct route_node *rn, struct route_entry *re);
+extern void rib_install_kernel(struct route_node *rn, struct route_entry *re,
+                              struct route_entry *old);
+extern void rib_uninstall_kernel(struct route_node *rn, struct route_entry *re);
 
 /* NOTE:
  * All rib_add function will not just add prefix into RIB, but
@@ -296,7 +297,7 @@ extern int rib_add(afi_t afi, safi_t safi, vrf_id_t vrf_id, int type,
                   u_short instance, int flags, struct prefix *p,
                   struct prefix_ipv6 *src_p, const struct nexthop *nh,
                   u_int32_t table_id, u_int32_t metric, u_int32_t mtu,
-                  u_char distance);
+                  uint8_t distance, route_tag_t tag);
 
 extern int rib_add_multipath(afi_t afi, safi_t safi, struct prefix *,
                             struct prefix_ipv6 *src_p, struct route_entry *);
@@ -330,7 +331,7 @@ extern void rib_unlink(struct route_node *, struct route_entry *);
 extern int rib_gc_dest(struct route_node *rn);
 extern struct route_table *rib_tables_iter_next(rib_tables_iter_t *iter);
 
-extern u_char route_distance(int type);
+extern uint8_t route_distance(int type);
 
 /*
  * Inline functions.
@@ -435,4 +436,8 @@ static inline void rib_tables_iter_cleanup(rib_tables_iter_t *iter)
 DECLARE_HOOK(rib_update, (struct route_node * rn, const char *reason),
             (rn, reason))
 
+
+extern void zebra_vty_init(void);
+extern pid_t pid;
+
 #endif /*_ZEBRA_RIB_H */