Implemented a Table-to-Table protocol a.k.a The Pipe.
This commit is contained in:
parent
8c943173ce
commit
9c11ec9efc
4 changed files with 11 additions and 1 deletions
|
@ -8,7 +8,7 @@ AC_CONFIG_AUX_DIR(tools)
|
||||||
|
|
||||||
AC_ARG_ENABLE(debug,[ --enable-debug enable internal debugging routines (default: enabled)],,enable_debug=yes)
|
AC_ARG_ENABLE(debug,[ --enable-debug enable internal debugging routines (default: enabled)],,enable_debug=yes)
|
||||||
AC_ARG_WITH(sysconfig,[ --with-sysconfig=FILE use specified BIRD system configuration file])
|
AC_ARG_WITH(sysconfig,[ --with-sysconfig=FILE use specified BIRD system configuration file])
|
||||||
AC_ARG_WITH(protocols,[ --with-protocols=LIST include specified routing protocols (default: rip,static)],,[with_protocols="rip,static"])
|
AC_ARG_WITH(protocols,[ --with-protocols=LIST include specified routing protocols (default: rip,static,pipe)],,[with_protocols="rip,static,pipe"])
|
||||||
AC_ARG_WITH(sysinclude,[ --with-sysinclude=PATH search for system includes on specified place])
|
AC_ARG_WITH(sysinclude,[ --with-sysinclude=PATH search for system includes on specified place])
|
||||||
|
|
||||||
if test "$srcdir" = . ; then
|
if test "$srcdir" = . ; then
|
||||||
|
|
|
@ -50,3 +50,9 @@ protocol static {
|
||||||
# route 10.1.3.0:255.255.255.0 via 62.168.0.4;
|
# route 10.1.3.0:255.255.255.0 via 62.168.0.4;
|
||||||
# route 10.2.0.0/24 via "arc0";
|
# route 10.2.0.0/24 via "arc0";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#protocol pipe {
|
||||||
|
# peer table testable;
|
||||||
|
# import all;
|
||||||
|
# export all;
|
||||||
|
#}
|
||||||
|
|
|
@ -64,6 +64,7 @@ extern struct protocol proto_device;
|
||||||
extern struct protocol proto_rip;
|
extern struct protocol proto_rip;
|
||||||
extern struct protocol proto_static;
|
extern struct protocol proto_static;
|
||||||
extern struct protocol proto_ospf;
|
extern struct protocol proto_ospf;
|
||||||
|
extern struct protocol proto_pipe;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Routing Protocol Instance
|
* Routing Protocol Instance
|
||||||
|
|
|
@ -117,6 +117,7 @@ typedef struct rtable {
|
||||||
struct fib fib;
|
struct fib fib;
|
||||||
char *name; /* Name of this table */
|
char *name; /* Name of this table */
|
||||||
list hooks; /* List of announcement hooks */
|
list hooks; /* List of announcement hooks */
|
||||||
|
int pipe_busy; /* Pipe loop detection */
|
||||||
} rtable;
|
} rtable;
|
||||||
|
|
||||||
typedef struct network {
|
typedef struct network {
|
||||||
|
@ -223,6 +224,7 @@ typedef struct rta {
|
||||||
#define RTS_OSPF_IA 10 /* OSPF inter-area route */
|
#define RTS_OSPF_IA 10 /* OSPF inter-area route */
|
||||||
#define RTS_OSPF_BOUNDARY 11 /* OSPF route to boundary router (???) */
|
#define RTS_OSPF_BOUNDARY 11 /* OSPF route to boundary router (???) */
|
||||||
#define RTS_BGP 12 /* BGP route */
|
#define RTS_BGP 12 /* BGP route */
|
||||||
|
#define RTS_PIPE 13 /* Inter-table wormhole */
|
||||||
|
|
||||||
#define RTC_UNICAST 0
|
#define RTC_UNICAST 0
|
||||||
#define RTC_BROADCAST 1
|
#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_BGP 100 /* BGP */
|
||||||
#define DEF_PREF_OSPF_EXTERNAL 80 /* OSPF external routes */
|
#define DEF_PREF_OSPF_EXTERNAL 80 /* OSPF external routes */
|
||||||
#define DEF_PREF_RIP_EXTERNAL 70 /* RIP 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_UKR 50 /* Unidentified Kernel Route */
|
||||||
#define DEF_PREF_SINK 10 /* Sink route */
|
#define DEF_PREF_SINK 10 /* Sink route */
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue