summaryrefslogtreecommitdiffstats
path: root/zebra/zebra_rnh.h
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2015-05-20 02:47:22 +0200
committerDonald Sharp <sharpd@cumulusnetworks.com>2015-05-20 02:47:22 +0200
commit6e26278cbabccf64de9abf4a764ee71f2c6e9165 (patch)
tree557beea0102080862534dd0a41a4afa986a3f128 /zebra/zebra_rnh.h
parent'set metric -12' is broken in the parser (diff)
downloadfrr-6e26278cbabccf64de9abf4a764ee71f2c6e9165.tar.xz
frr-6e26278cbabccf64de9abf4a764ee71f2c6e9165.zip
zebra: zebra-static-route-nht.patch
Use NHT to support static routes with NH derived from protocols.
Diffstat (limited to 'zebra/zebra_rnh.h')
-rw-r--r--zebra/zebra_rnh.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/zebra/zebra_rnh.h b/zebra/zebra_rnh.h
index 92e4c7a88..53e932aa4 100644
--- a/zebra/zebra_rnh.h
+++ b/zebra/zebra_rnh.h
@@ -33,6 +33,7 @@ struct rnh
#define ZEBRA_NHT_CONNECTED 0x1
struct rib *state;
struct list *client_list;
+ struct list *zebra_static_route_list; /* static routes dependent on this NH */
struct route_node *node;
int filtered[ZEBRA_ROUTE_MAX]; /* if this has been filtered for client */
};
@@ -41,6 +42,8 @@ extern struct rnh *zebra_add_rnh(struct prefix *p, u_int32_t vrfid);
extern struct rnh *zebra_lookup_rnh(struct prefix *p, u_int32_t vrfid);
extern void zebra_delete_rnh(struct rnh *rnh);
extern void zebra_add_rnh_client(struct rnh *rnh, struct zserv *client);
+extern void zebra_register_rnh_static_nh(struct prefix *, struct route_node *);
+extern void zebra_deregister_rnh_static_nh(struct prefix *, struct route_node *);
extern void zebra_remove_rnh_client(struct rnh *rnh, struct zserv *client);
extern int zebra_evaluate_rnh_table(int vrfid, int family, int force);
extern int zebra_dispatch_rnh_table(int vrfid, int family, struct zserv *cl);