summaryrefslogtreecommitdiffstats
path: root/nest
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>1999-08-03 21:34:26 +0200
committerMartin Mares <mj@ucw.cz>1999-08-03 21:34:26 +0200
commit9c11ec9efca2fc75495cf8dcb28a959ba22b01fa (patch)
tree80f4d7b42bebab8ed3d9df22d244baef21fe4bfd /nest
parent8c943173ced1fb85c627a8ba1c3d7360eab7d22b (diff)
downloadbird-9c11ec9efca2fc75495cf8dcb28a959ba22b01fa.tar
bird-9c11ec9efca2fc75495cf8dcb28a959ba22b01fa.zip
Implemented a Table-to-Table protocol a.k.a The Pipe.
Diffstat (limited to 'nest')
-rw-r--r--nest/protocol.h1
-rw-r--r--nest/route.h3
2 files changed, 4 insertions, 0 deletions
diff --git a/nest/protocol.h b/nest/protocol.h
index 8d2f8cf..a2c0eb9 100644
--- a/nest/protocol.h
+++ b/nest/protocol.h
@@ -64,6 +64,7 @@ extern struct protocol proto_device;
extern struct protocol proto_rip;
extern struct protocol proto_static;
extern struct protocol proto_ospf;
+extern struct protocol proto_pipe;
/*
* Routing Protocol Instance
diff --git a/nest/route.h b/nest/route.h
index 577142a..c11d771 100644
--- a/nest/route.h
+++ b/nest/route.h
@@ -117,6 +117,7 @@ typedef struct rtable {
struct fib fib;
char *name; /* Name of this table */
list hooks; /* List of announcement hooks */
+ int pipe_busy; /* Pipe loop detection */
} rtable;
typedef struct network {
@@ -223,6 +224,7 @@ typedef struct rta {
#define RTS_OSPF_IA 10 /* OSPF inter-area route */
#define RTS_OSPF_BOUNDARY 11 /* OSPF route to boundary router (???) */
#define RTS_BGP 12 /* BGP route */
+#define RTS_PIPE 13 /* Inter-table wormhole */
#define RTC_UNICAST 0
#define RTC_BROADCAST 1
@@ -316,6 +318,7 @@ static inline eattr * rta_find(rta *a, unsigned ea) { return ea_find(a->attrs, e
#define DEF_PREF_BGP 100 /* BGP */
#define DEF_PREF_OSPF_EXTERNAL 80 /* OSPF external routes */
#define DEF_PREF_RIP_EXTERNAL 70 /* RIP external routes */
+#define DEF_PREF_PIPE 60 /* Routes piped from other tables */
#define DEF_PREF_UKR 50 /* Unidentified Kernel Route */
#define DEF_PREF_SINK 10 /* Sink route */