diff options
Diffstat (limited to 'proto')
-rw-r--r-- | proto/Doc | 1 | ||||
-rw-r--r-- | proto/pipe/Doc | 1 | ||||
-rw-r--r-- | proto/pipe/pipe.c | 12 | ||||
-rw-r--r-- | proto/static/Doc | 1 | ||||
-rw-r--r-- | proto/static/static.c | 18 |
5 files changed, 33 insertions, 0 deletions
@@ -4,3 +4,4 @@ C ospf C pipe C rip C static +S ../nest/rt-dev.c diff --git a/proto/pipe/Doc b/proto/pipe/Doc index e69de29b..e7a6d6a7 100644 --- a/proto/pipe/Doc +++ b/proto/pipe/Doc @@ -0,0 +1 @@ +S pipe.c diff --git a/proto/pipe/pipe.c b/proto/pipe/pipe.c index 3f41faaf..f7ba866b 100644 --- a/proto/pipe/pipe.c +++ b/proto/pipe/pipe.c @@ -6,6 +6,18 @@ * Can be freely distributed and used under the terms of the GNU GPL. */ +/** + * DOC: Pipe + * + * The Pipe protocol is very simple. It just connects to two routing tables + * using proto_add_announce_hook() and whenever it receives a rt_notify() + * about a change in one of the tables, it converts it to a rte_update() + * in the other one. + * + * To avoid pipe loops, Pipe keeps a `being updated' flag in each routing + * table. + */ + #undef LOCAL_DEBUG #include "nest/bird.h" diff --git a/proto/static/Doc b/proto/static/Doc index e69de29b..73632b1f 100644 --- a/proto/static/Doc +++ b/proto/static/Doc @@ -0,0 +1 @@ +S static.c diff --git a/proto/static/static.c b/proto/static/static.c index c380aeb2..de061e81 100644 --- a/proto/static/static.c +++ b/proto/static/static.c @@ -6,6 +6,24 @@ * Can be freely distributed and used under the terms of the GNU GPL. */ +/** + * DOC: Static + * + * The Static protocol is implemented in a very straightforward way. It keeps + * a two lists of static routes: one containing interface routes and one + * holding the remaining ones. Interface routes are inserted and removed according + * to interface events received from the core via the if_notify() hook, routes + * pointing to a neighboring router use a sticky node in the neighbor cache + * to be notified about gaining or losing the neighbor and finally special + * routes like black holes or rejects are inserted all the time. + * + * The only other thing worth mentioning is that when asked for reconfiguration, + * Static not only compares the two configurations, but it also calculates + * difference between the lists of static routes mentioned in the old config + * and the lists in the new one and it just inserts the newly added routes + * and removes the obsolete ones. + */ + #undef LOCAL_DEBUG #include "nest/bird.h" |