summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/bird.sgml34
-rw-r--r--nest/config.Y2
-rw-r--r--nest/rt-attr.c2
3 files changed, 33 insertions, 5 deletions
diff --git a/doc/bird.sgml b/doc/bird.sgml
index de7041a9..b90f65d1 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.
@@ -1314,7 +1314,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,
@@ -1477,6 +1477,34 @@ 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 4566971f..ca705640 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 f181b452..42b74f34 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" };