From 3b31c538333156770ddb74a7a27f271784745144 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Sun, 4 Jun 2000 16:15:37 +0000 Subject: Documented all the trivial protocols. --- Doc | 1 - proto/Doc | 1 + proto/pipe/Doc | 1 + proto/pipe/pipe.c | 12 ++++++++++++ proto/static/Doc | 1 + proto/static/static.c | 18 ++++++++++++++++++ 6 files changed, 33 insertions(+), 1 deletion(-) diff --git a/Doc b/Doc index 00e0489..57eeb78 100644 --- a/Doc +++ b/Doc @@ -4,5 +4,4 @@ C conf C filter C proto C sysdep -C client C lib diff --git a/proto/Doc b/proto/Doc index 608c227..18e193a 100644 --- a/proto/Doc +++ b/proto/Doc @@ -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 e69de29..e7a6d6a 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 3f41faa..f7ba866 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 e69de29..73632b1 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 c380aeb..de061e8 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" -- cgit v1.2.3