blob: 1f24edd062748db606c115bc41bb9c94b7813414 [file] [log] [blame]
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +01001@c -*-texinfo-*-
2@c This is part of the Quagga Manual.
3@c @value{COPYRIGHT_STR}
4@c See file quagga.texi for copying conditions.
5@node Babel
6@chapter Babel
7
8Babel is an interior gateway protocol that is suitable both for wired
9networks and for wireless mesh networks. Babel has been described as
10``RIP on speed'' --- it is based on the same principles as RIP, but
11includes a number of refinements that make it react much faster to
12topology changes without ever counting to infinity, and allow it to
13perform reliable link quality estimation on wireless links. Babel is
14a double-stack routing protocol, meaning that a single Babel instance
15is able to perform routing for both IPv4 and IPv6.
16
Matthieu Boutier73c74d42012-02-08 00:32:59 +010017Quagga implements Babel as described in RFC6126.
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +010018
19@menu
20* Configuring babeld::
21* Babel configuration::
22* Babel redistribution::
23* Show Babel information::
24* Babel debugging commands::
25@end menu
26
27@node Configuring babeld, Babel configuration, Babel, Babel
28@section Configuring babeld
29
30The @command{babeld} daemon can be invoked with any of the common
31options (@pxref{Common Invocation Options}).
32
33The @command{zebra} daemon must be running before @command{babeld} is
Matthieu Boutier73c74d42012-02-08 00:32:59 +010034invoked. Also, if @command{zebra} is restarted then @command{babeld}
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +010035must be too.
36
37Configuration of @command{babeld} is done in its configuration file
38@file{babeld.conf}.
39
40@node Babel configuration, Babel redistribution, Configuring babeld, Babel
41@section Babel configuration
42
43@deffn Command {router babel} {}
44@deffnx Command {no router babel} {}
45Enable or disable Babel routing.
46@end deffn
47
48@deffn {Babel Command} {network @var{ifname}} {}
49@deffnx {Babel Command} {no network @var{ifname}} {}
50Enable or disable Babel on the given interface.
51@end deffn
52
Matthieu Boutier3c442e82012-02-08 23:30:46 +010053@deffn {Interface Command} {babel wired} {}
54@deffnx {Interface Command} {babel wireless} {}
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +010055Specifies whether this interface is wireless, which disables a number
56of optimisations that are only correct on wired interfaces.
Juliusz Chroboczek4d176dc2012-02-14 08:52:19 +010057Specifying @code{wireless} (the default) is always correct, but may
58cause slower convergence and extra routing traffic.
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +010059@end deffn
60
61@deffn {Interface Command} {babel split-horizon}
62@deffnx {Interface Command} {no babel split-horizon}
Juliusz Chroboczek4d176dc2012-02-14 08:52:19 +010063Specifies whether to perform split-horizon on the interface.
64Specifying @code{no babel split-horizon} (the default) is always
65correct, while @code{babel split-horizon} is an optimisation that
66should only be used on symmetric and transitive (wired) networks.
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +010067@end deffn
68
Juliusz Chroboczek68c65a52012-02-11 14:28:17 +010069@deffn {Interface Command} {babel hello-interval <20-655340>}
Juliusz Chroboczek4d176dc2012-02-14 08:52:19 +010070Specifies the time in milliseconds between two scheduled hellos. On
71wired links, Babel notices a link failure within two hello intervals;
72on wireless links, the link quality value is reestimated at every
73hello interval. The default is 4000@dmn{ms}.
Juliusz Chroboczek68c65a52012-02-11 14:28:17 +010074@end deffn
75
Matthieu Boutier8a46e122012-02-11 15:09:33 +010076@deffn {Interface Command} {babel update-interval <20-655340>}
Juliusz Chroboczek68c65a52012-02-11 14:28:17 +010077Specifies the time in milliseconds between two scheduled updates.
Juliusz Chroboczek4d176dc2012-02-14 08:52:19 +010078Since Babel makes extensive use of triggered updates, this can be set
79to fairly high values on links with little packet loss. The default
80is 20000@dmn{ms}.
Juliusz Chroboczek68c65a52012-02-11 14:28:17 +010081@end deffn
82
83@deffn {Babel Command} {babel resend-delay <20-655340>}
84Specifies the time in milliseconds after which an ``important''
Juliusz Chroboczek4d176dc2012-02-14 08:52:19 +010085request or update will be resent. The default is 2000@dmn{ms}. You
86probably don't want to tweak this value.
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +010087@end deffn
88
89@node Babel redistribution, Show Babel information, Babel configuration, Babel
90@section Babel redistribution
91
92@deffn {Babel command} {redistribute @var{kind}}
93@deffnx {Babel command} {no redistribute @var{kind}}
94Specify which kind of routes should be redistributed into Babel.
95@end deffn
96
97@node Show Babel information, Babel debugging commands, Babel redistribution, Babel
98@section Show Babel information
99
100@deffn {Command} {show babel database} {}
101@deffnx {Command} {show babel interface} {}
102@deffnx {Command} {show babel neighbour} {}
Denis Ovsienkoa14ef5e2012-02-11 21:06:16 +0400103@deffnx {Command} {show babel parameters} {}
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +0100104These commands dump various parts of @command{babeld}'s internal
105state. They are mostly useful for troubleshooting.
106@end deffn
107
108@node Babel debugging commands, , Show Babel information, Babel
109@section Babel debugging commands
110
Denis Ovsienkoa14ef5e2012-02-11 21:06:16 +0400111@deffn {Babel Command} {debug babel @var{kind}} {}
112@deffnx {Babel Command} {no debug babel @var{kind}} {}
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +0100113Enable or disable debugging messages of a given kind. @var{kind} can
114be one of @samp{common}, @samp{kernel}, @samp{filter}, @samp{timeout},
Matthieu Boutier73c74d42012-02-08 00:32:59 +0100115@samp{interface}, @samp{route} or @samp{all}. Note that if you have
116compiled with the NO_DEBUG flag, then these commands aren't available.
Juliusz Chroboczekf92a55f2012-02-07 16:33:17 +0100117@end deffn
118