summaryrefslogtreecommitdiff
path: root/proto
diff options
context:
space:
mode:
Diffstat (limited to 'proto')
-rw-r--r--proto/Doc1
-rw-r--r--proto/pipe/Doc1
-rw-r--r--proto/pipe/pipe.c12
-rw-r--r--proto/static/Doc1
-rw-r--r--proto/static/static.c18
5 files changed, 33 insertions, 0 deletions
diff --git a/proto/Doc b/proto/Doc
index 608c2275..18e193a2 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 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"