This updates the documentation to correctly mention Babel when protocols
are listed, and adds examples and route attribute documentation to the
Babel section of the docs.

Signed-off-by: Toke Høiland-Jørgensen <[email protected]>
---
 doc/bird.sgml  | 33 ++++++++++++++++++++++++++++++---
 nest/config.Y  |  2 +-
 nest/rt-attr.c |  2 +-
 3 files changed, 32 insertions(+), 5 deletions(-)

diff --git a/doc/bird.sgml b/doc/bird.sgml
index a0b45f4..71fcb1c 100644
--- a/doc/bird.sgml
+++ b/doc/bird.sgml
@@ -610,8 +610,8 @@ agreement").
        options, in that case for given interface the first matching interface
        option is used.
 
-       This option is allowed in BFD, Direct, OSPF, RAdv and RIP protocols, but
-       in OSPF protocol it is used in the <cf/area/ subsection.
+       This option is allowed in Babel, BFD, Direct, OSPF, RAdv and RIP
+       protocols, but in OSPF protocol it is used in the <cf/area/ subsection.
 
        Default: none.
 
@@ -1312,7 +1312,7 @@ clist for most purposes.
        <cf/RTS_DUMMY/, <cf/RTS_STATIC/, <cf/RTS_INHERIT/, <cf/RTS_DEVICE/,
        <cf/RTS_STATIC_DEVICE/, <cf/RTS_REDIRECT/, <cf/RTS_RIP/, <cf/RTS_OSPF/,
        <cf/RTS_OSPF_IA/, <cf/RTS_OSPF_EXT1/, <cf/RTS_OSPF_EXT2/, <cf/RTS_BGP/,
-       <cf/RTS_PIPE/.
+       <cf/RTS_PIPE/, <cf/RTS_BABEL/.
 
        <tag><m/enum/ cast</tag>
        Route type (Currently <cf/RTC_UNICAST/ for normal routes,
@@ -1475,6 +1475,33 @@ protocol babel [<name>] {
       yes.
 </descrip>
 
+<sect1>Attributes
+
+<p>Babel defines just one attribute: the internal babel metric of the route. It
+is exposed as the <cf/babel_metric/ attribute and has range from 1 to infinity
+(65535).
+
+<sect1>Example
+
+<p><code>
+protocol babel {
+       interface "eth*" {
+               type wired;
+       };
+       interface "wlan0", "wlan1" {
+               type wireless;
+               hello interval 1;
+               rxcost 512;
+       };
+       interface "tap0";
+
+       # This matches the default of babeld: redistribute all addresses
+       # configured on local interfaces, plus re-distribute all routes received
+       # from other babel peers.
+       export where (source = RTS_DEVICE) || (source = RTS_BABEL);
+}
+</code>
+
 
 <sect><label id="sect-bfd">BFD
 
diff --git a/nest/config.Y b/nest/config.Y
index 4566971..ca70564 100644
--- a/nest/config.Y
+++ b/nest/config.Y
@@ -63,7 +63,7 @@ CF_KEYWORDS(RELOAD, IN, OUT, MRTDUMP, MESSAGES, RESTRICT, 
MEMORY, IGP_METRIC, CL
 CF_KEYWORDS(GRACEFUL, RESTART, WAIT, MAX, FLUSH, AS)
 
 CF_ENUM(T_ENUM_RTS, RTS_, DUMMY, STATIC, INHERIT, DEVICE, STATIC_DEVICE, 
REDIRECT,
-       RIP, OSPF, OSPF_IA, OSPF_EXT1, OSPF_EXT2, BGP, PIPE)
+       RIP, OSPF, OSPF_IA, OSPF_EXT1, OSPF_EXT2, BGP, PIPE, BABEL)
 CF_ENUM(T_ENUM_SCOPE, SCOPE_, HOST, LINK, SITE, ORGANIZATION, UNIVERSE, 
UNDEFINED)
 CF_ENUM(T_ENUM_RTC, RTC_, UNICAST, BROADCAST, MULTICAST, ANYCAST)
 CF_ENUM(T_ENUM_RTD, RTD_, ROUTER, DEVICE, BLACKHOLE, UNREACHABLE, PROHIBIT, 
MULTIPATH)
diff --git a/nest/rt-attr.c b/nest/rt-attr.c
index 7fa05d6..b57bcd5 100644
--- a/nest/rt-attr.c
+++ b/nest/rt-attr.c
@@ -1160,7 +1160,7 @@ rta_dump(rta *a)
   static char *rts[] = { "RTS_DUMMY", "RTS_STATIC", "RTS_INHERIT", 
"RTS_DEVICE",
                         "RTS_STAT_DEV", "RTS_REDIR", "RTS_RIP",
                         "RTS_OSPF", "RTS_OSPF_IA", "RTS_OSPF_EXT1",
-                         "RTS_OSPF_EXT2", "RTS_BGP" };
+                         "RTS_OSPF_EXT2", "RTS_BGP", "RTS_PIPE", "RTS_BABEL" };
   static char *rtc[] = { "", " BC", " MC", " AC" };
   static char *rtd[] = { "", " DEV", " HOLE", " UNREACH", " PROHIBIT" };
 
-- 
2.8.0

Reply via email to