summaryrefslogtreecommitdiffstats
path: root/nest/protocol.h
diff options
context:
space:
mode:
Diffstat (limited to 'nest/protocol.h')
-rw-r--r--nest/protocol.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/nest/protocol.h b/nest/protocol.h
index 5e1e2ce..3aed2f2 100644
--- a/nest/protocol.h
+++ b/nest/protocol.h
@@ -73,6 +73,7 @@ struct proto_config {
struct protocol *proto; /* Protocol */
char *name;
unsigned debug, preference, disabled; /* Generic parameters */
+ struct rtable_config *table; /* Table we're attached to */
struct filter *in_filter, *out_filter; /* Attached filters */
/* Protocol-specific data follow... */
@@ -128,9 +129,10 @@ struct proto {
void (*rte_insert)(struct network *, struct rte *);
void (*rte_remove)(struct network *, struct rte *);
- struct rtable *table; /* Routing table we're connected to */
+ struct rtable *table; /* Our primary routing table */
struct filter *in_filter; /* Input filter */
struct filter *out_filter; /* Output filter */
+ struct announce_hook *ahooks; /* Announcement hooks for this protocol */
/* Hic sunt protocol-specific data */
};
@@ -223,6 +225,19 @@ void proto_notify_state(struct proto *p, unsigned state);
extern struct proto_config *cf_dev_proto;
/*
+ * Route Announcement Hook
+ */
+
+struct announce_hook {
+ node n;
+ struct rtable *table;
+ struct proto *proto;
+ struct announce_hook *next; /* Next hook for the same protocol */
+};
+
+struct announce_hook *proto_add_announce_hook(struct proto *, struct rtable *);
+
+/*
* Callback to sysdep code when shutdown is finished
*/