]> git.proxmox.com Git - mirror_frr.git/blame - doc/babeld.texi
zebra: add hooks upon enabling / disabling a VRF
[mirror_frr.git] / doc / babeld.texi
CommitLineData
f92a55ff
JC
1@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
73c74d4e 17Quagga implements Babel as described in RFC6126.
f92a55ff
JC
18
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
73c74d4e 34invoked. Also, if @command{zebra} is restarted then @command{babeld}
f92a55ff
JC
35must 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
3c442e88
MB
53@deffn {Interface Command} {babel wired} {}
54@deffnx {Interface Command} {babel wireless} {}
f92a55ff
JC
55Specifies whether this interface is wireless, which disables a number
56of optimisations that are only correct on wired interfaces.
4d176dc0
JC
57Specifying @code{wireless} (the default) is always correct, but may
58cause slower convergence and extra routing traffic.
f92a55ff
JC
59@end deffn
60
61@deffn {Interface Command} {babel split-horizon}
62@deffnx {Interface Command} {no babel split-horizon}
4d176dc0
JC
63Specifies 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.
f92a55ff
JC
67@end deffn
68
68c65a5d 69@deffn {Interface Command} {babel hello-interval <20-655340>}
4d176dc0
JC
70Specifies 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}.
68c65a5d
JC
74@end deffn
75
8a46e12f 76@deffn {Interface Command} {babel update-interval <20-655340>}
68c65a5d 77Specifies the time in milliseconds between two scheduled updates.
4d176dc0
JC
78Since 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}.
68c65a5d
JC
81@end deffn
82
83@deffn {Babel Command} {babel resend-delay <20-655340>}
84Specifies the time in milliseconds after which an ``important''
4d176dc0
JC
85request or update will be resent. The default is 2000@dmn{ms}. You
86probably don't want to tweak this value.
f92a55ff
JC
87@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} {}
a14ef5ee 103@deffnx {Command} {show babel parameters} {}
f92a55ff
JC
104These 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
a14ef5ee
DO
111@deffn {Babel Command} {debug babel @var{kind}} {}
112@deffnx {Babel Command} {no debug babel @var{kind}} {}
f92a55ff
JC
113Enable or disable debugging messages of a given kind. @var{kind} can
114be one of @samp{common}, @samp{kernel}, @samp{filter}, @samp{timeout},
73c74d4e
MB
115@samp{interface}, @samp{route} or @samp{all}. Note that if you have
116compiled with the NO_DEBUG flag, then these commands aren't available.
f92a55ff
JC
117@end deffn
118