]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/rib.h
isisd: implement the 'lsp-too-large' notification
[mirror_frr.git] / zebra / rib.h
index 439327aa48c6d2fede1e09e4d8e2310453402867..ae25a0e67980acd6593863782c42d039938197fa 100644 (file)
@@ -91,6 +91,9 @@ struct route_entry {
        /* Nexthop information. */
        uint8_t nexthop_num;
        uint8_t nexthop_active_num;
+
+       /* Sequence value incremented for each dataplane operation */
+       uint32_t dplane_sequence;
 };
 
 /* meta-queue structure:
@@ -279,8 +282,6 @@ extern enum multicast_mode multicast_mode_ipv4_get(void);
 extern void rib_lookup_and_dump(struct prefix_ipv4 *p, vrf_id_t vrf_id);
 extern void rib_lookup_and_pushup(struct prefix_ipv4 *p, vrf_id_t vrf_id);
 
-extern int rib_lookup_ipv4_route(struct prefix_ipv4 *p, union sockunion *qgate,
-                                vrf_id_t vrf_id);
 #define ZEBRA_RIB_LOOKUP_ERROR -1
 #define ZEBRA_RIB_FOUND_EXACT 0
 #define ZEBRA_RIB_FOUND_NOGATE 1
@@ -311,7 +312,8 @@ extern int rib_add_multipath(afi_t afi, safi_t safi, struct prefix *p,
 extern void rib_delete(afi_t afi, safi_t safi, vrf_id_t vrf_id, int type,
                       unsigned short instance, int flags, struct prefix *p,
                       struct prefix_ipv6 *src_p, const struct nexthop *nh,
-                      uint32_t table_id, uint32_t metric, bool fromkernel);
+                      uint32_t table_id, uint32_t metric, uint8_t distance,
+                      bool fromkernel);
 
 extern struct route_entry *rib_match(afi_t afi, safi_t safi, vrf_id_t vrf_id,
                                     union g_addr *addr,
@@ -324,6 +326,8 @@ extern struct route_entry *rib_lookup_ipv4(struct prefix_ipv4 *p,
                                           vrf_id_t vrf_id);
 
 extern void rib_update(vrf_id_t vrf_id, rib_update_event_t event);
+extern void rib_update_table(struct route_table *table,
+                            rib_update_event_t event);
 extern void rib_sweep_route(void);
 extern void rib_sweep_table(struct route_table *table);
 extern void rib_close_table(struct route_table *table);
@@ -352,7 +356,7 @@ extern uint8_t route_distance(int type);
  */
 static inline rib_table_info_t *rib_table_info(struct route_table *table)
 {
-       return (rib_table_info_t *)table->info;
+       return (rib_table_info_t *)route_table_get_info(table);
 }
 
 /*