]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/zebra_rnh.h
isisd: implement the 'lsp-too-large' notification
[mirror_frr.git] / zebra / zebra_rnh.h
index ea7d5545e820b5c149bfdf8b1f4cd1aaf1a190d7..33302f0ee27dc5d083fc4123761edbbf63bbdab9 100644 (file)
@@ -39,14 +39,16 @@ struct rnh {
        struct route_entry *state;
        struct prefix resolved_route;
        struct list *client_list;
-       struct list
-               *zebra_static_route_list; /* static routes dependent on this NH
-                                            */
-       struct list
-               *zebra_pseudowire_list; /* pseudowires dependent on this NH */
+
+       /* pseudowires dependent on this nh */
+       struct list *zebra_pseudowire_list;
+
        struct route_node *node;
-       int filtered[ZEBRA_ROUTE_MAX]; /* if this has been filtered for client
-                                         */
+
+       /*
+        * if this has been filtered for the client
+        */
+       int filtered[ZEBRA_ROUTE_MAX];
 };
 
 typedef enum { RNH_NEXTHOP_TYPE, RNH_IMPORT_CHECK_TYPE } rnh_type_t;
@@ -66,25 +68,18 @@ static inline int rnh_resolve_via_default(int family)
 }
 
 extern struct rnh *zebra_add_rnh(struct prefix *p, vrf_id_t vrfid,
-                                rnh_type_t type);
+                                rnh_type_t type, bool *exists);
 extern struct rnh *zebra_lookup_rnh(struct prefix *p, vrf_id_t vrfid,
                                    rnh_type_t type);
 extern void zebra_free_rnh(struct rnh *rnh);
 extern void zebra_delete_rnh(struct rnh *rnh, rnh_type_t type);
 extern void zebra_add_rnh_client(struct rnh *rnh, struct zserv *client,
                                 rnh_type_t type, vrf_id_t vrfid);
-extern void zebra_register_rnh_static_nh(vrf_id_t, struct prefix *,
-                                        struct route_node *);
-extern void zebra_deregister_rnh_static_nexthops(vrf_id_t,
-                                                struct nexthop *nexthop,
-                                                struct route_node *rn);
-extern void zebra_deregister_rnh_static_nh(vrf_id_t, struct prefix *,
-                                          struct route_node *);
 extern void zebra_register_rnh_pseudowire(vrf_id_t, struct zebra_pw *);
 extern void zebra_deregister_rnh_pseudowire(vrf_id_t, struct zebra_pw *);
 extern void zebra_remove_rnh_client(struct rnh *rnh, struct zserv *client,
                                    rnh_type_t type);
-extern void zebra_evaluate_rnh(vrf_id_t vrfid, int family, int force,
+extern void zebra_evaluate_rnh(struct zebra_vrf *zvrf, int family, int force,
                               rnh_type_t type, struct prefix *p);
 extern void zebra_print_rnh_table(vrf_id_t vrfid, int family, struct vty *vty,
                                  rnh_type_t);