@c -*-texinfo-*- @c This is part of the Quagga Manual. @c @value{COPYRIGHT_STR} @c See file quagga.texi for copying conditions. @node Babel @chapter Babel Babel is an interior gateway protocol that is suitable both for wired networks and for wireless mesh networks. Babel has been described as ``RIP on speed'' --- it is based on the same principles as RIP, but includes a number of refinements that make it react much faster to topology changes without ever counting to infinity, and allow it to perform reliable link quality estimation on wireless links. Babel is a double-stack routing protocol, meaning that a single Babel instance is able to perform routing for both IPv4 and IPv6. Quagga implements Babel as described in RFC6126. @menu * Configuring babeld:: * Babel configuration:: * Babel redistribution:: * Show Babel information:: * Babel debugging commands:: @end menu @node Configuring babeld, Babel configuration, Babel, Babel @section Configuring babeld The @command{babeld} daemon can be invoked with any of the common options (@pxref{Common Invocation Options}). The @command{zebra} daemon must be running before @command{babeld} is invoked. Also, if @command{zebra} is restarted then @command{babeld} must be too. Configuration of @command{babeld} is done in its configuration file @file{babeld.conf}. @node Babel configuration, Babel redistribution, Configuring babeld, Babel @section Babel configuration @deffn Command {router babel} {} @deffnx Command {no router babel} {} Enable or disable Babel routing. @end deffn @deffn {Babel Command} {network @var{ifname}} {} @deffnx {Babel Command} {no network @var{ifname}} {} Enable or disable Babel on the given interface. @end deffn @deffn {Interface Command} {babel wired} {} @deffnx {Interface Command} {babel wireless} {} Specifies whether this interface is wireless, which disables a number of optimisations that are only correct on wired interfaces. Specifying @code{wireless} (the default) is always correct, but may cause slower convergence and extra routing traffic. @end deffn @deffn {Interface Command} {babel split-horizon} @deffnx {Interface Command} {no babel split-horizon} Specifies whether to perform split-horizon on the interface. Specifying @code{no babel split-horizon} (the default) is always correct, while @code{babel split-horizon} is an optimisation that should only be used on symmetric and transitive (wired) networks. @end deffn @deffn {Interface Command} {babel hello-interval <20-655340>} Specifies the time in milliseconds between two scheduled hellos. On wired links, Babel notices a link failure within two hello intervals; on wireless links, the link quality value is reestimated at every hello interval. The default is 4000@dmn{ms}. @end deffn @deffn {Interface Command} {babel update-interval <20-655340>} Specifies the time in milliseconds between two scheduled updates. Since Babel makes extensive use of triggered updates, this can be set to fairly high values on links with little packet loss. The default is 20000@dmn{ms}. @end deffn @deffn {Babel Command} {babel resend-delay <20-655340>} Specifies the time in milliseconds after which an ``important'' request or update will be resent. The default is 2000@dmn{ms}. You probably don't want to tweak this value. @end deffn @node Babel redistribution, Show Babel information, Babel configuration, Babel @section Babel redistribution @deffn {Babel command} {redistribute @var{kind}} @deffnx {Babel command} {no redistribute @var{kind}} Specify which kind of routes should be redistributed into Babel. @end deffn @node Show Babel information, Babel debugging commands, Babel redistribution, Babel @section Show Babel information @deffn {Command} {show babel database} {} @deffnx {Command} {show babel interface} {} @deffnx {Command} {show babel neighbour} {} @deffnx {Command} {show babel parameters} {} These commands dump various parts of @command{babeld}'s internal state. They are mostly useful for troubleshooting. @end deffn @node Babel debugging commands, , Show Babel information, Babel @section Babel debugging commands @deffn {Babel Command} {debug babel @var{kind}} {} @deffnx {Babel Command} {no debug babel @var{kind}} {} Enable or disable debugging messages of a given kind. @var{kind} can be one of @samp{common}, @samp{kernel}, @samp{filter}, @samp{timeout}, @samp{interface}, @samp{route} or @samp{all}. Note that if you have compiled with the NO_DEBUG flag, then these commands aren't available. @end deffn