]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/zebra_rnh.h
zebra: add struct zmsghdr
[mirror_frr.git] / zebra / zebra_rnh.h
index f8d89ec8ca89fe2780e44734033a09264b012dc0..7af1dbeaf12540d873ccec10268832ebd7057402 100644 (file)
@@ -39,9 +39,11 @@ 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_static_route_list; /* static routes dependent on this NH
+                                            */
+       struct list
+               *zebra_pseudowire_list; /* pseudowires dependent on this NH */
        struct route_node *node;
        int filtered[ZEBRA_ROUTE_MAX]; /* if this has been filtered for client
                                          */
@@ -52,6 +54,15 @@ typedef enum { RNH_NEXTHOP_TYPE, RNH_IMPORT_CHECK_TYPE } rnh_type_t;
 extern int zebra_rnh_ip_default_route;
 extern int zebra_rnh_ipv6_default_route;
 
+static inline int rnh_resolve_via_default(int family)
+{
+       if (((family == AF_INET) && zebra_rnh_ip_default_route)
+           || ((family == AF_INET6) && zebra_rnh_ipv6_default_route))
+               return 1;
+       else
+               return 0;
+}
+
 extern struct rnh *zebra_add_rnh(struct prefix *p, vrf_id_t vrfid,
                                 rnh_type_t type);
 extern struct rnh *zebra_lookup_rnh(struct prefix *p, vrf_id_t vrfid,
@@ -67,6 +78,8 @@ extern void zebra_deregister_rnh_static_nexthops(vrf_id_t,
                                                 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,