]> git.proxmox.com Git - mirror_frr.git/commitdiff
doc: Missed babel documentation
authorDonald Sharp <sharpd@cumulusnetworks.com>
Sun, 14 May 2017 02:40:00 +0000 (22:40 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Sun, 14 May 2017 02:40:00 +0000 (22:40 -0400)
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
doc/babeld.texi [new file with mode: 0644]

diff --git a/doc/babeld.texi b/doc/babeld.texi
new file mode 100644 (file)
index 0000000..6b4cca1
--- /dev/null
@@ -0,0 +1,212 @@
+@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 Command {babel resend-delay <20-655340>} {}
+Specifies the time after which important messages are resent when
+avoiding a black-hole.  The default is 2000@dmn{ms}.
+@end deffn
+
+@deffn Command {babel diversity} {}
+@deffnx Command {no babel diversity} {}
+Enable or disable routing using radio frequency diversity.  This is
+highly recommended in networks with many wireless nodes.
+
+If you enable this, you will probably want to set @code{babel
+diversity-factor} and @code{babel channel} below.
+@end deffn
+
+@deffn Command {babel diversity-factor <1-256>} {}
+Sets the multiplicative factor used for diversity routing, in units of
+1/256; lower values cause diversity to play a more important role in
+route selection.  The default it 256, which means that diversity plays
+no role in route selection; you will probably want to set that to 128
+or less on nodes with multiple independent radios.
+@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} is always correct, while
+@code{babel split-horizon} is an optimisation that should only be used
+on symmetric and transitive (wired) networks.  The default is
+@code{babel split-horizon} on wired interfaces, and @code{no babel
+split-horizon} on wireless interfaces.  This flag is reset when the
+wired/wireless status of an interface is changed.
+@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 {Interface Command} {babel channel <1-254>}
+@deffnx {Interface Command} {babel channel interfering}
+@deffnx {Interface Command} {babel channel noninterfering}
+Set the channel number that diversity routing uses for this interface
+(see @code{babel diversity} above).  Noninterfering interfaces are
+assumed to only interfere with themselves, interfering interfaces are
+assumed to interfere with all other channels except noninterfering
+channels, and interfaces with a channel number interfere with
+interfering interfaces and interfaces with the same channel number.
+The default is @samp{babel channel interfering} for wireless
+interfaces, and @samp{babel channel noninterfering} for wired
+interfaces.  This is reset when the wired/wireless status of an
+interface is changed.
+@end deffn
+
+@deffn {Interface Command} {babel rxcost <1-65534>}
+Specifies the base receive cost for this interface.  For wireless
+interfaces, it specifies the multiplier used for computing the ETX
+reception cost (default 256); for wired interfaces, it specifies the
+cost that will be advertised to neighbours.  This value is reset when
+the wired/wireless attribute of the interface is changed.
+
+Do not use this command unless you know what you are doing; in most
+networks, acting directly on the cost using route maps is a better
+technique.
+@end deffn
+
+@deffn {Interface Command} {babel rtt-decay <1-256>}
+This specifies the decay factor for the exponential moving average of
+RTT samples, in units of 1/256.  Higher values discard old samples
+faster.  The default is 42.
+@end deffn
+
+@deffn {Interface Command} {babel rtt-min <1-65535>}
+This specifies the minimum RTT, in milliseconds, starting from which we
+increase the cost to a neighbour. The additional cost is linear in (rtt
+- rtt-min ).  The default is 10@dmn{ms}.
+@end deffn
+
+@deffn {Interface Command} {babel rtt-max <1-65535>}
+This specifies the maximum RTT, in milliseconds, above which we don't
+increase the cost to a neighbour. The default is 120@dmn{ms}.
+@end deffn
+
+@deffn {Interface Command} {babel max-rtt-penalty <0-65535>}
+This specifies the maximum cost added to a neighbour because of RTT,
+i.e. when the RTT is higher or equal than rtt-max.  The default is 0,
+which effectively disables the use of a RTT-based cost.
+@end deffn
+
+@deffn {Interface Command} {babel enable-timestamps}
+@deffnx {Interface Command} {no babel enable-timestamps}
+Enable or disable sending timestamps with each Hello and IHU message in
+order to compute RTT values.  The default is @code{no babel
+enable-timestamps}.
+@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
+
+@deffn {Babel Command} {babel smoothing-half-life <0-65534>}
+Specifies the time constant, in seconds, of the smoothing algorithm
+used for implementing hysteresis.  Larger values reduce route
+oscillation at the cost of very slightly increasing convergence time.
+The value 0 disables hysteresis, and is suitable for wired networks.
+The default is 4@dmn{s}.
+@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 route} {}
+@deffnx {Command} {show babel route A.B.C.D}
+@deffnx {Command} {show babel route X:X::X:X}
+@deffnx {Command} {show babel route A.B.C.D/M}
+@deffnx {Command} {show babel route X:X::X:X/M}
+@deffnx {Command} {show babel interface} {}
+@deffnx {Command} {show babel interface @var{ifname}} {}
+@deffnx {Command} {show babel neighbor} {}
+@deffnx {Command} {show babel parameters} {}
+These commands dump various parts of @command{babeld}'s internal state.
+@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
+