doc: fixup babeld.rst

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
Quentin Young 2017-12-20 17:54:03 -05:00
parent 4652e58cef
commit 2dd0a0ed1d
No known key found for this signature in database
GPG Key ID: DAF48E0F57E0834F

View File

@ -13,7 +13,7 @@ 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.
FRR implements Babel as described in RFC6126.
FRR imlements Babel as described in :t:`RFC6126`.
.. _Configuring_babeld:
@ -35,231 +35,253 @@ Configuration of *babeld* is done in its configuration file
Babel configuration
===================
.. index:: Command {router babel} {}
.. index::
single: router babel
single: no router babel
Command {router babel} {}
.. index:: Command {no router babel} {}
Command {no router babel} {}
``[no] router babel``
Enable or disable Babel routing.
.. index:: Command {babel resend-delay <20-655340>} {}
.. index::
single: babel resend-delay <20-655340>
single: no babel resend-delay [<20-655340>]
Command {babel resend-delay <20-655340>} {}
``[no] 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}.
avoiding a black-hole. The default is 2000 ms.
.. index:: Command {babel diversity} {}
.. index::
single: babel diversity
single: no babel diversity
Command {babel diversity} {}
.. index:: Command {no babel diversity} {}
Command {no babel diversity} {}
``[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 `babel
diversity-factor` and `babel channel` below.
If you enable this, you will probably want to set `babel diversity-factor` and `babel channel` below.
.. index:: babel diversity-factor <1-256>
.. index:: Command {babel diversity-factor <1-256>} {}
Command {babel diversity-factor <1-256>} {}
``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.
.. index:: {Babel Command} {network `ifname`} {}
.. index::
single: network IFNAME
single: no network IFNAME
{Babel Command} {network `ifname`} {}
.. index:: {Babel Command} {no network `ifname`} {}
``no network IFNAME``
Enable or disable Babel on the given interface.
{Babel Command} {no network `ifname`} {}
Enable or disable Babel on the given interface.
.. index:: babel <wired|wireless>
.. index:: {Interface Command} {babel wired} {}
``babel <wired|wireless>``
Specifies whether this interface is wireless, which disables a number
of optimisations that are only correct on wired interfaces.
Specifying `wireless` (the default) is always correct, but may
cause slower convergence and extra routing traffic.
{Interface Command} {babel wired} {}
.. index:: {Interface Command} {babel wireless} {}
.. index::
single: babel split-horizon
single: no babel split-horizon
{Interface Command} {babel wireless} {}
Specifies whether this interface is wireless, which disables a number
of optimisations that are only correct on wired interfaces.
Specifying `wireless` (the default) is always correct, but may
cause slower convergence and extra routing traffic.
``[no] babel split-horizon``
Specifies whether to perform split-horizon on the interface. Specifying
``no babel split-horizon`` is always correct, while ``babel
split-horizon`` is an optimisation that should only be used on symmetric
and transitive (wired) networks. The default is ``babel split-horizon``
on wired interfaces, and ``no babel split-horizon`` on wireless
interfaces. This flag is reset when the wired/wireless status of an
interface is changed.
.. index:: {Interface Command} {babel split-horizon}
.. index:: babel hello-interval <20-655340>
{Interface Command} {babel split-horizon}
.. index:: {Interface Command} {no babel split-horizon}
``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 ms.
{Interface Command} {no babel split-horizon}
Specifies whether to perform split-horizon on the interface.
Specifying `no babel split-horizon` is always correct, while
`babel split-horizon` is an optimisation that should only be used
on symmetric and transitive (wired) networks. The default is
`babel split-horizon` on wired interfaces, and `no babel split-horizon` on wireless interfaces. This flag is reset when the
wired/wireless status of an interface is changed.
.. index:: babel update-interval <20-655340>
.. index:: {Interface Command} {babel hello-interval <20-655340>}
``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 ms.
{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}.
.. index::
single: babel channel <1-254>
single: babel channel interfering
single: babel channel noninterfering
.. index:: {Interface Command} {babel update-interval <20-655340>}
``babel channel <1-254>``
see below
{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}.
``babel channel interfering``
see below
.. index:: {Interface Command} {babel channel <1-254>}
``babel channel noninterfering``
Set the channel number that diversity routing uses for this interface
(see `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.
{Interface Command} {babel channel <1-254>}
.. index:: {Interface Command} {babel channel interfering}
.. index:: babel rxcost <1-65534>
{Interface Command} {babel channel interfering}
.. index:: {Interface Command} {babel channel noninterfering}
``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.
{Interface Command} {babel channel noninterfering}
Set the channel number that diversity routing uses for this interface
(see `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.
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.
.. index:: {Interface Command} {babel rxcost <1-65534>}
.. index:: babel rtt-decay <1-256>
{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.
``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.
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.
.. index:: babel rtt-min <1-65535>
.. index:: {Interface Command} {babel rtt-decay <1-256>}
``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 100 ms.
{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.
.. index:: babel rtt-max <1-65535>
.. index:: {Interface Command} {babel rtt-min <1-65535>}
``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 ms.
{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}.
.. index:: babel max-rtt-penalty <0-65535>
.. index:: {Interface Command} {babel rtt-max <1-65535>}
``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.
{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}.
.. index::
single: babel enable-timestamps
single: no babel enable-timestamps
.. index:: {Interface Command} {babel max-rtt-penalty <0-65535>}
``[no] babel enable-timestamps``
Enable or disable sending timestamps with each Hello and IHU message in
order to compute RTT values. The default is `no babel enable-timestamps`.
{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.
.. index:: babel resend-delay <20-655340>
.. index:: {Interface Command} {babel enable-timestamps}
``babel resend-delay <20-655340>``
Specifies the time in milliseconds after which an 'important'
request or update will be resent. The default is 2000 ms. You
probably don't want to tweak this value.
{Interface Command} {babel enable-timestamps}
.. index:: {Interface Command} {no babel enable-timestamps}
.. index:: babel smoothing-half-life <0-65534>
{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 `no babel enable-timestamps`.
.. index:: {Babel Command} {babel resend-delay <20-655340>}
{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.
.. index:: {Babel Command} {babel smoothing-half-life <0-65534>}
{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}.
``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 s.
.. _Babel_redistribution:
Babel redistribution
====================
.. index:: {Babel command} {redistribute `<ipv4|ipv6>` `kind`}
.. index::
single: redistribute <ipv4|ipv6> KIND
single: no redistribute <ipv4|ipv6> KIND
{Babel command} {redistribute `<ipv4|ipv6>` `kind`}
.. index:: {Babel command} {no redistribute `<ipv4|ipv6>` `kind`}
{Babel command} {no redistribute `<ipv4|ipv6>` `kind`}
Specify which kind of routes should be redistributed into Babel.
``[no] redistribute <ipv4|ipv6> KIND``
Specify which kind of routes should be redistributed into Babel.
.. _Show_Babel_information:
Show Babel information
======================
.. index:: {Command} {show babel route} {}
These commands dump various parts of *babeld*'s internal state.
{Command} {show babel route} {}
.. index:: {Command} {show babel route A.B.C.D}
.. index:: show babel route
{Command} {show babel route A.B.C.D}
.. index:: {Command} {show babel route X:X::X:X}
``show babel route``
*missing description*
{Command} {show babel route X:X::X:X}
.. index:: {Command} {show babel route A.B.C.D/M}
.. index:: show babel route A.B.C.D
{Command} {show babel route A.B.C.D/M}
.. index:: {Command} {show babel route X:X::X:X/M}
``show babel route A.B.C.D``
*missing description*
{Command} {show babel route X:X::X:X/M}
.. index:: {Command} {show babel interface} {}
.. index:: show babel route X:X::X:X
{Command} {show babel interface} {}
.. index:: {Command} {show babel interface `ifname`} {}
``show babel route X:X::X:X``
*missing description*
{Command} {show babel interface `ifname`} {}
.. index:: {Command} {show babel neighbor} {}
.. index:: show babel route A.B.C.D/M
{Command} {show babel neighbor} {}
.. index:: {Command} {show babel parameters} {}
``show babel route A.B.C.D/M``
*missing description*
{Command} {show babel parameters} {}
These commands dump various parts of *babeld*'s internal state.
.. index:: show babel route X:X::X:X/M
``show babel route X:X::X:X/M``
*missing description*
.. index:: show babel interface
``show babel interface``
*missing description*
.. index:: show babel interface `IFNAME`
``show babel interface IFNAME``
*missing description*
.. index:: show babel neighbor
``show babel neighbor``
*missing description*
.. index:: show babel parameters
``show babel parameters``
*missing description*
Babel debugging commands
========================
.. index:: {Babel Command} {debug babel `kind`} {}
.. index::
simple: debug babel KIND
simple: no debug babel KIND
{Babel Command} {debug babel `kind`} {}
.. index:: {Babel Command} {no debug babel `kind`} {}
``[no] debug babel KIND``
Enable or disable debugging messages of a given kind. ``KIND`` can
be one of:
{Babel Command} {no debug babel `kind`} {}
Enable or disable debugging messages of a given kind. `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.
- common
- filter
- timeout
- interface
- route
- all
Note that if you have compiled with the NO_DEBUG flag, then these commands
aren't available.