Diff for /embedaddon/bird/doc/bird.sgml between versions 1.1 and 1.1.1.2

version 1.1, 2017/08/22 12:33:54 version 1.1.1.2, 2021/03/17 19:50:23
Line 594  agreement"). Line 594  agreement").
   
         <tag><label id="proto-description">description "<m/text/"</tag>          <tag><label id="proto-description">description "<m/text/"</tag>
         This is an optional description of the protocol. It is displayed as a          This is an optional description of the protocol. It is displayed as a
        part of the output of 'show route all' command.        part of the output of 'show protocols all' command.
   
         <tag><label id="proto-table">table <m/name/</tag>          <tag><label id="proto-table">table <m/name/</tag>
         Connect this protocol to a non-default routing table.          Connect this protocol to a non-default routing table.
   
           <tag><label id="proto-vrf">vrf "<m/text/"|default</tag>
           Associate the protocol with specific VRF. The protocol will be
           restricted to interfaces assigned to the VRF and will use sockets bound
           to the VRF. A corresponding VRF interface must exist on OS level. For
           kernel protocol, an appropriate table still must be explicitly selected
           by <cf/table/ option.
   
           By selecting <cf/default/, the protocol is associated with the default
           VRF; i.e., it will be restricted to interfaces not assigned to any
           regular VRF. That is different from not specifying <cf/vrf/ at all, in
           which case the protocol may use any interface regardless of its VRF
           status.
   
           Note that for proper VRF support it is necessary to use Linux kernel
           version at least 4.14, older versions have limited VRF implementation.
           Before Linux kernel 5.0, a socket bound to a port in default VRF collide
           with others in regular VRFs.
 </descrip>  </descrip>
   
 <p>There are several options that give sense only with certain protocols:  <p>There are several options that give sense only with certain protocols:
Line 828  This argument can be omitted if there exists only a si Line 846  This argument can be omitted if there exists only a si
         number of networks, number of routes before and after filtering). If          number of networks, number of routes before and after filtering). If
         you use <cf/count/ instead, only the statistics will be printed.          you use <cf/count/ instead, only the statistics will be printed.
   
           <tag><label id="cli-mrt-dump">mrt dump table <m/name/|"<m/pattern/" to "<m/filename/" [filter <m/f/|where <m/c/]</tag>
           Dump content of a routing table to a specified file in MRT table dump
           format. See <ref id="mrt" name="MRT protocol"> for details.
   
         <tag><label id="cli-show-roa">show roa [<m/prefix/ | in <m/prefix/ | for <m/prefix/] [as <m/num/] [table <m/t/]</tag>          <tag><label id="cli-show-roa">show roa [<m/prefix/ | in <m/prefix/ | for <m/prefix/] [as <m/num/] [table <m/t/]</tag>
         Show contents of a ROA table (by default of the first one). You can          Show contents of a ROA table (by default of the first one). You can
         specify a <m/prefix/ to print ROA entries for a specific network. If you          specify a <m/prefix/ to print ROA entries for a specific network. If you
Line 1187  foot). Line 1209  foot).
   
         <cf><m/P/.len</cf> returns the length of path <m/P/.          <cf><m/P/.len</cf> returns the length of path <m/P/.
   
           <cf><m/P/.empty</cf> resets path <m/P/ to empty path.
   
         <cf>prepend(<m/P/,<m/A/)</cf> prepends ASN <m/A/ to path <m/P/ and          <cf>prepend(<m/P/,<m/A/)</cf> prepends ASN <m/A/ to path <m/P/ and
         returns the result.          returns the result.
   
Line 1225  foot). Line 1249  foot).
   
         <cf><m/C/.len</cf> returns the length of clist <m/C/.          <cf><m/C/.len</cf> returns the length of clist <m/C/.
   
           <cf><m/C/.empty</cf> resets clist <m/C/ to empty clist.
   
         <cf>add(<m/C/,<m/P/)</cf> adds pair (or quad) <m/P/ to clist <m/C/ and          <cf>add(<m/C/,<m/P/)</cf> adds pair (or quad) <m/P/ to clist <m/C/ and
         returns the result. If item <m/P/ is already in clist <m/C/, it does          returns the result. If item <m/P/ is already in clist <m/C/, it does
         nothing. <m/P/ may also be a clist, in that case all its members are          nothing. <m/P/ may also be a clist, in that case all its members are
Line 1392  clist for most purposes. Line 1418  clist for most purposes.
         <tag><label id="rta-ifname"><m/string/ ifname</tag>          <tag><label id="rta-ifname"><m/string/ ifname</tag>
         Name of the outgoing interface. Sink routes (like blackhole, unreachable          Name of the outgoing interface. Sink routes (like blackhole, unreachable
         or prohibit) and multipath routes have no interface associated with          or prohibit) and multipath routes have no interface associated with
        them, so <cf/ifname/ returns an empty string for such routes. Read-only.        them, so <cf/ifname/ returns an empty string for such routes. Setting it
         would also change route to a direct one (remove gateway).
   
         <tag><label id="rta-ifindex"><m/int/ ifindex</tag>          <tag><label id="rta-ifindex"><m/int/ ifindex</tag>
         Index of the outgoing interface. System wide index of the interface. May          Index of the outgoing interface. System wide index of the interface. May
Line 1606  in the future. Also note that we currently support at  Line 1633  in the future. Also note that we currently support at 
 <p>BFD packets are sent with a dynamic source port number. Linux systems use by  <p>BFD packets are sent with a dynamic source port number. Linux systems use by
 default a bit different dynamic port range than the IANA approved one  default a bit different dynamic port range than the IANA approved one
 (49152-65535). If you experience problems with compatibility, please adjust  (49152-65535). If you experience problems with compatibility, please adjust
<cf>/proc/sys/net/ipv4/ip_local_port_range</cf><cf>/proc/sys/net/ipv4/ip_local_port_range</cf>.
   
 <sect1>Configuration  <sect1>Configuration
 <label id="bfd-config">  <label id="bfd-config">
Line 1623  configuration is often sufficient. Line 1650  configuration is often sufficient.
 <p>Note that to use BFD for other protocols like OSPF or BGP, these protocols  <p>Note that to use BFD for other protocols like OSPF or BGP, these protocols
 also have to be configured to request BFD sessions, usually by <cf/bfd/ option.  also have to be configured to request BFD sessions, usually by <cf/bfd/ option.
   
   <p>A BFD instance not associated with any VRF handles session requests from all
   other protocols, even ones associated with a VRF. Such setup would work for
   single-hop BFD sessions if <cf/net.ipv4.udp_l3mdev_accept/ sysctl is enabled,
   but does not currently work for multihop sessions. Another approach is to
   configure multiple BFD instances, one for each VRF (including the default VRF).
   Each BFD instance associated with a VRF (regular or default) only handles
   session requests from protocols in the same VRF.
   
 <p>Some of BFD session options require <m/time/ value, which has to be specified  <p>Some of BFD session options require <m/time/ value, which has to be specified
 with the appropriate unit: <m/num/ <cf/s/|<cf/ms/|<cf/us/. Although microseconds  with the appropriate unit: <m/num/ <cf/s/|<cf/ms/|<cf/us/. Although microseconds
 are allowed as units, practical minimum values are usually in order of tens of  are allowed as units, practical minimum values are usually in order of tens of
Line 1754  protocol bfd [&lt;name&gt;] { Line 1789  protocol bfd [&lt;name&gt;] {
         computation.          computation.
   
         <tag>password "<M>text</M>"</tag>          <tag>password "<M>text</M>"</tag>
        Specifies a password used for authentication. See <ref id="dsc-pass"        Specifies a password used for authentication. See <ref id="proto-pass"
         name="password"> common option for detailed description. Note that          name="password"> common option for detailed description. Note that
         password option <cf/algorithm/ is not available in BFD protocol. The          password option <cf/algorithm/ is not available in BFD protocol. The
         algorithm is selected by <cf/authentication/ option for all passwords.          algorithm is selected by <cf/authentication/ option for all passwords.
Line 1883  using the following configuration parameters: Line 1918  using the following configuration parameters:
         <tag><label id="bgp-iface">interface <m/string/</tag>          <tag><label id="bgp-iface">interface <m/string/</tag>
         Define interface we should use for link-local BGP IPv6 sessions.          Define interface we should use for link-local BGP IPv6 sessions.
         Interface can also be specified as a part of <cf/neighbor address/          Interface can also be specified as a part of <cf/neighbor address/
        (e.g., <cf/neighbor fe80::1234%eth0 as 65000;/). It is an error to use        (e.g., <cf/neighbor fe80::1234%eth0 as 65000;/). The option may also be
        this parameter for non link-local sessions.        used for non link-local sessions when it is necessary to explicitly
         specify an interface, but only for direct (not multihop) sessions.
   
         <tag><label id="bgp-direct">direct</tag>          <tag><label id="bgp-direct">direct</tag>
         Specify that the neighbor is directly connected. The IP address of the          Specify that the neighbor is directly connected. The IP address of the
Line 1963  using the following configuration parameters: Line 1999  using the following configuration parameters:
         immediately shut down. Note that this option cannot be used with          immediately shut down. Note that this option cannot be used with
         multihop BGP. Default: disabled.          multihop BGP. Default: disabled.
   
        <tag><label id="bgp-bfd">bfd <M>switch</M></tag>        <tag><label id="bgp-bfd">bfd <M>switch</M>|graceful</tag>
         BGP could use BFD protocol as an advisory mechanism for neighbor          BGP could use BFD protocol as an advisory mechanism for neighbor
         liveness and failure detection. If enabled, BIRD setups a BFD session          liveness and failure detection. If enabled, BIRD setups a BFD session
         for the BGP neighbor and tracks its liveness by it. This has an          for the BGP neighbor and tracks its liveness by it. This has an
         advantage of an order of magnitude lower detection times in case of          advantage of an order of magnitude lower detection times in case of
        failure. Note that BFD protocol also has to be configured, see        failure. When a neighbor failure is detected, the BGP session is
        <ref id="bfd" name="BFD"> section for details. Default: disabled.        restarted. Optionally, it can be configured (by <cf/graceful/ argument)
         to trigger graceful restart instead of regular restart.  Note that BFD
         protocol also has to be configured, see <ref id="bfd" name="BFD">
         section for details. Default: disabled.
   
         <tag><label id="bgp-ttl-security">ttl security <m/switch/</tag>          <tag><label id="bgp-ttl-security">ttl security <m/switch/</tag>
         Use GTSM (<rfc id="5082"> - the generalized TTL security mechanism). GTSM          Use GTSM (<rfc id="5082"> - the generalized TTL security mechanism). GTSM
Line 2043  using the following configuration parameters: Line 2082  using the following configuration parameters:
         TX direction. When active, all available routes accepted by the export          TX direction. When active, all available routes accepted by the export
         filter are advertised to the neighbor. Default: off.          filter are advertised to the neighbor. Default: off.
   
           <tag><label id="bgp-allow-local-pref">allow bgp_local_pref <m/switch/</tag>
           A standard BGP implementation do not send the Local Preference attribute
           to eBGP neighbors and ignore this attribute if received from eBGP
           neighbors, as per <rfc id="4271">.  When this option is enabled on an
           eBGP session, this attribute will be sent to and accepted from the peer,
           which is useful for example if you have a setup like in <rfc id="7938">.
           The option does not affect iBGP sessions. Default: off.
   
         <tag><label id="bgp-allow-local-as">allow local as [<m/number/]</tag>          <tag><label id="bgp-allow-local-as">allow local as [<m/number/]</tag>
         BGP prevents routing loops by rejecting received routes with the local          BGP prevents routing loops by rejecting received routes with the local
         AS number in the AS path. This option allows to loose or disable the          AS number in the AS path. This option allows to loose or disable the
Line 2086  using the following configuration parameters: Line 2133  using the following configuration parameters:
         re-establish after a restart before deleting stale routes. Default:          re-establish after a restart before deleting stale routes. Default:
         120 seconds.          120 seconds.
   
           <tag><label id="bgp-long-lived-graceful-restart">long lived graceful restart <m/switch/|aware</tag>
           The long-lived graceful restart is an extension of the traditional
           <ref id="bgp-graceful-restart" name="BGP graceful restart">, where stale
           routes are kept even after the <ref id="bgp-graceful-restart-time"
           name="restart time"> expires for additional long-lived stale time, but
           they are marked with the LLGR_STALE community, depreferenced, and
           withdrawn from routers not supporting LLGR. Like traditional BGP
           graceful restart, it has three states: disabled, aware (receiving-only),
           and enabled. Note that long-lived graceful restart requires at least
           aware level of traditional BGP graceful restart. Default: aware, unless
           graceful restart is disabled.
   
           <tag><label id="bgp-long-lived-stale-time">long lived stale time <m/number/</tag>
           The long-lived stale time is announced in the BGP long-lived graceful
           restart capability and specifies how long the neighbor would keep stale
           routes depreferenced during long-lived graceful restart until either the
           session is re-stablished and synchronized or the stale time expires and
           routes are removed. Default: 3600 seconds.
   
         <tag><label id="bgp-interpret-communities">interpret communities <m/switch/</tag>          <tag><label id="bgp-interpret-communities">interpret communities <m/switch/</tag>
         <rfc id="1997"> demands that BGP speaker should process well-known          <rfc id="1997"> demands that BGP speaker should process well-known
         communities like no-export (65535, 65281) or no-advertise (65535,          communities like no-export (65535, 65281) or no-advertise (65535,
Line 2137  using the following configuration parameters: Line 2203  using the following configuration parameters:
         disable the instance automatically and wait for an administrator to fix          disable the instance automatically and wait for an administrator to fix
         the problem manually. Default: off.          the problem manually. Default: off.
   
           <tag><label id="bgp-disable-after-cease">disable after cease <m/switch/|<m/set-of-flags/</tag>
           When a Cease notification is received, disable the instance
           automatically and wait for an administrator to fix the problem manually.
           When used with <m/switch/ argument, it means handle every Cease subtype
           with the exception of <cf/connection collision/. Default: off.
   
           The <m/set-of-flags/ allows to narrow down relevant Cease subtypes. The
           syntax is <cf>{<m/flag/ [, <m/.../] }</cf>, where flags are: <cf/cease/,
           <cf/prefix limit hit/, <cf/administrative shutdown/,
           <cf/peer deconfigured/, <cf/administrative reset/,
           <cf/connection rejected/, <cf/configuration change/,
           <cf/connection collision/, <cf/out of resources/.
   
         <tag><label id="bgp-hold-time">hold time <m/number/</tag>          <tag><label id="bgp-hold-time">hold time <m/number/</tag>
         Time in seconds to wait for a Keepalive message from the other side          Time in seconds to wait for a Keepalive message from the other side
         before considering the connection stale. Default: depends on agreement          before considering the connection stale. Default: depends on agreement
Line 2227  using the following configuration parameters: Line 2306  using the following configuration parameters:
 some of them (marked with `<tt/O/') are optional.  some of them (marked with `<tt/O/') are optional.
   
 <descrip>  <descrip>
        <tag><label id="rta-bgp-path">bgppath bgp_path/</tag>        <tag><label id="rta-bgp-path">bgppath bgp_path</tag>
         Sequence of AS numbers describing the AS path the packet will travel          Sequence of AS numbers describing the AS path the packet will travel
         through when forwarded according to the particular route. In case of          through when forwarded according to the particular route. In case of
         internal BGP it doesn't contain the number of the local AS.          internal BGP it doesn't contain the number of the local AS.
   
        <tag><label id="rta-bgp-local-pref">int bgp_local_pref/ [I]</tag>        <tag><label id="rta-bgp-local-pref">int bgp_local_pref [I]</tag>
         Local preference value used for selection among multiple BGP routes (see          Local preference value used for selection among multiple BGP routes (see
         the selection rules above). It's used as an additional metric which is          the selection rules above). It's used as an additional metric which is
         propagated through the whole local AS.          propagated through the whole local AS.
   
        <tag><label id="rta-bgp-med">int bgp_med/ [O]</tag>        <tag><label id="rta-bgp-med">int bgp_med [O]</tag>
         The Multiple Exit Discriminator of the route is an optional attribute          The Multiple Exit Discriminator of the route is an optional attribute
         which is used on external (inter-AS) links to convey to an adjacent AS          which is used on external (inter-AS) links to convey to an adjacent AS
         the optimal entry point into the local AS. The received attribute is          the optimal entry point into the local AS. The received attribute is
Line 2248  some of them (marked with `<tt/O/') are optional. Line 2327  some of them (marked with `<tt/O/') are optional.
         external BGP instance. See <rfc id="4451"> for further discussion of          external BGP instance. See <rfc id="4451"> for further discussion of
         BGP MED attribute.          BGP MED attribute.
   
        <tag><label id="rta-bgp-origin">enum bgp_origin/</tag>        <tag><label id="rta-bgp-origin">enum bgp_origin</tag>
         Origin of the route: either <cf/ORIGIN_IGP/ if the route has originated          Origin of the route: either <cf/ORIGIN_IGP/ if the route has originated
         in an interior routing protocol or <cf/ORIGIN_EGP/ if it's been imported          in an interior routing protocol or <cf/ORIGIN_EGP/ if it's been imported
         from the <tt>EGP</tt> protocol (nowadays it seems to be obsolete) or          from the <tt>EGP</tt> protocol (nowadays it seems to be obsolete) or
         <cf/ORIGIN_INCOMPLETE/ if the origin is unknown.          <cf/ORIGIN_INCOMPLETE/ if the origin is unknown.
   
        <tag><label id="rta-bgp-next-hop">ip bgp_next_hop/</tag>        <tag><label id="rta-bgp-next-hop">ip bgp_next_hop</tag>
         Next hop to be used for forwarding of packets to this destination. On          Next hop to be used for forwarding of packets to this destination. On
         internal BGP connections, it's an address of the originating router if          internal BGP connections, it's an address of the originating router if
         it's inside the local AS or a boundary router the packet will leave the          it's inside the local AS or a boundary router the packet will leave the
         AS through if it's an exterior route, so each BGP speaker within the AS          AS through if it's an exterior route, so each BGP speaker within the AS
         has a chance to use the shortest interior path possible to this point.          has a chance to use the shortest interior path possible to this point.
   
        <tag><label id="rta-bgp-atomic-aggr">void bgp_atomic_aggr/ [O]</tag>        <tag><label id="rta-bgp-atomic-aggr">void bgp_atomic_aggr [O]</tag>
         This is an optional attribute which carries no value, but the sole          This is an optional attribute which carries no value, but the sole
         presence of which indicates that the route has been aggregated from          presence of which indicates that the route has been aggregated from
         multiple routes by some router on the path from the originator.          multiple routes by some router on the path from the originator.
Line 2269  some of them (marked with `<tt/O/') are optional. Line 2348  some of them (marked with `<tt/O/') are optional.
 <!-- we don't handle aggregators right since they are of a very obscure type  <!-- we don't handle aggregators right since they are of a very obscure type
         <tag>bgp_aggregator</tag>          <tag>bgp_aggregator</tag>
 -->  -->
        <tag><label id="rta-bgp-community">clist bgp_community/ [O]</tag>        <tag><label id="rta-bgp-community">clist bgp_community [O]</tag>
         List of community values associated with the route. Each such value is a          List of community values associated with the route. Each such value is a
         pair (represented as a <cf/pair/ data type inside the filters) of 16-bit          pair (represented as a <cf/pair/ data type inside the filters) of 16-bit
         integers, the first of them containing the number of the AS which          integers, the first of them containing the number of the AS which
Line 2280  some of them (marked with `<tt/O/') are optional. Line 2359  some of them (marked with `<tt/O/') are optional.
         freedom about which community attributes it defines and what will their          freedom about which community attributes it defines and what will their
         semantics be.          semantics be.
   
        <tag><label id="rta-bgp-ext-community">eclist bgp_ext_community/ [O]</tag>        <tag><label id="rta-bgp-ext-community">eclist bgp_ext_community [O]</tag>
         List of extended community values associated with the route. Extended          List of extended community values associated with the route. Extended
         communities have similar usage as plain communities, but they have an          communities have similar usage as plain communities, but they have an
         extended range (to allow 4B ASNs) and a nontrivial structure with a type          extended range (to allow 4B ASNs) and a nontrivial structure with a type
         field. Individual community values are represented using an <cf/ec/ data          field. Individual community values are represented using an <cf/ec/ data
         type inside the filters.          type inside the filters.
   
        <tag><label id="rta-bgp-large-community">lclist <cf/bgp_large_community/ [O]</tag>        <tag><label id="rta-bgp-large-community">lclist bgp_large_community [O]</tag>
         List of large community values associated with the route. Large BGP          List of large community values associated with the route. Large BGP
         communities is another variant of communities, but contrary to extended          communities is another variant of communities, but contrary to extended
         communities they behave very much the same way as regular communities,          communities they behave very much the same way as regular communities,
Line 2295  some of them (marked with `<tt/O/') are optional. Line 2374  some of them (marked with `<tt/O/') are optional.
         Individual community values are represented using an <cf/lc/ data type          Individual community values are represented using an <cf/lc/ data type
         inside the filters.          inside the filters.
   
        <tag><label id="rta-bgp-originator-id">quad bgp_originator_id/ [I, O]</tag>        <tag><label id="rta-bgp-originator-id">quad bgp_originator_id [I, O]</tag>
         This attribute is created by the route reflector when reflecting the          This attribute is created by the route reflector when reflecting the
         route and contains the router ID of the originator of the route in the          route and contains the router ID of the originator of the route in the
         local AS.          local AS.
   
        <tag><label id="rta-bgp-cluster-list">clist bgp_cluster_list/ [I, O]</tag>        <tag><label id="rta-bgp-cluster-list">clist bgp_cluster_list [I, O]</tag>
         This attribute contains a list of cluster IDs of route reflectors. Each          This attribute contains a list of cluster IDs of route reflectors. Each
         route reflector prepends its cluster ID when reflecting the route.          route reflector prepends its cluster ID when reflecting the route.
 </descrip>  </descrip>
Line 2535  translated to appropriate system (and OS-specific) rou Line 2614  translated to appropriate system (and OS-specific) rou
 these attributes:  these attributes:
   
 <descrip>  <descrip>
        <tag><label id="rta-krt-source">int krt_source/</tag>        <tag><label id="rta-krt-source">int krt_source</tag>
         The original source of the imported kernel route. The value is          The original source of the imported kernel route. The value is
         system-dependent. On Linux, it is a value of the protocol field of the          system-dependent. On Linux, it is a value of the protocol field of the
         route. See /etc/iproute2/rt_protos for common values. On BSD, it is          route. See /etc/iproute2/rt_protos for common values. On BSD, it is
         based on STATIC and PROTOx flags. The attribute is read-only.          based on STATIC and PROTOx flags. The attribute is read-only.
   
        <tag><label id="rta-krt-metric">int krt_metric/</tag> (Linux)        <tag><label id="rta-krt-metric">int krt_metric</tag> (Linux)
         The kernel metric of the route. When multiple same routes are in a          The kernel metric of the route. When multiple same routes are in a
         kernel routing table, the Linux kernel chooses one with lower metric.          kernel routing table, the Linux kernel chooses one with lower metric.
         Note that preferred way to set kernel metric is to use protocol option          Note that preferred way to set kernel metric is to use protocol option
         <cf/metric/, unless per-route metric values are needed.          <cf/metric/, unless per-route metric values are needed.
   
        <tag><label id="rta-krt-prefsrc">ip krt_prefsrc/</tag> (Linux)        <tag><label id="rta-krt-prefsrc">ip krt_prefsrc</tag> (Linux)
         The preferred source address. Used in source address selection for          The preferred source address. Used in source address selection for
         outgoing packets. Has to be one of the IP addresses of the router.          outgoing packets. Has to be one of the IP addresses of the router.
   
        <tag><label id="rta-krt-realm">int krt_realm/</tag> (Linux)        <tag><label id="rta-krt-realm">int krt_realm</tag> (Linux)
         The realm of the route. Can be used for traffic classification.          The realm of the route. Can be used for traffic classification.
   
        <tag><label id="rta-krt-scope">int krt_scope/</tag> (Linux IPv4)        <tag><label id="rta-krt-scope">int krt_scope</tag> (Linux IPv4)
         The scope of the route. Valid values are 0-254, although Linux kernel          The scope of the route. Valid values are 0-254, although Linux kernel
         may reject some values depending on route type and nexthop. It is          may reject some values depending on route type and nexthop. It is
         supposed to represent `indirectness' of the route, where nexthops of          supposed to represent `indirectness' of the route, where nexthops of
Line 2608  protocol kernel {  # Secondary routing table Line 2687  protocol kernel {  # Secondary routing table
 </code>  </code>
   
   
   <sect>MRT
   <label id="mrt">
   
   <sect1>Introduction
   <label id="mrt-intro">
   
   <p>The MRT protocol is a component responsible for handling the Multi-Threaded
   Routing Toolkit (MRT) routing information export format, which is mainly used
   for collecting and analyzing of routing information from BGP routers. The MRT
   protocol can be configured to do periodic dumps of routing tables, created MRT
   files can be analyzed later by other tools. Independent MRT table dumps can also
   be requested from BIRD client. There is also a feature to save incoming BGP
   messages in MRT files, but it is controlled by <ref id="proto-mrtdump"
   name="mrtdump"> options independently of MRT protocol, although that might
   change in the future.
   
   BIRD implements the main MRT format specification as defined in <rfc id="6396">
   and the ADD_PATH extension (<rfc id="8050">).
   
   <sect1>Configuration
   <label id="mrt-config">
   
   <p>MRT configuration consists of several statements describing routing table
   dumps. Multiple independent periodic dumps can be done as multiple MRT protocol
   instances. There are two mandatory statements: <cf/filename/ and <cf/period/.
   The behavior can be modified by following configuration parameters:
   
   <descrip>
           <tag><label id="mrt-table">table <m/name/ | "<m/pattern/"</tag>
           Specify a routing table (or a set of routing tables described by a
           wildcard pattern) that are to be dumped by the MRT protocol instance.
           Default: the master table.
   
           <tag><label id="mrt-filter">filter { <m/filter commands/ }</tag>
           The MRT protocol allows to specify a filter that is applied to routes as
           they are dumped. Rejected routes are ignored and not saved to the MRT
           dump file. Default: no filter.
   
           <tag><label id="mrt-where">where <m/filter expression/</tag>
           An alternative way to specify a filter for the MRT protocol.
   
           <tag><label id="mrt-filename">filename "<m/filename/"</tag>
           Specify a filename for MRT dump files. The filename may contain time
           format sequences with <it/strftime(3)/ notation (see <it/man strftime/
           for details), there is also a sequence "%N" that is expanded to the name
           of dumped table. Therefore, each periodic dump of each table can be
           saved to a different file. Mandatory, see example below.
   
           <tag><label id="mrt-period">period <m/number/</tag>
           Specify the time interval (in seconds) between periodic dumps.
           Mandatory.
   
           <tag><label id="mrt-always-add-path">always add path <m/switch/</tag>
           The MRT format uses special records (specified in <rfc id="8050">) for
           routes received using BGP ADD_PATH extension to keep Path ID, while
           other routes use regular records. This has advantage of better
           compatibility with tools that do not know special records, but it loses
           information about which route is the best route. When this option is
           enabled, both ADD_PATH and non-ADD_PATH routes are stored in ADD_PATH
           records and order of routes for network is preserved. Default: disabled.
   </descrip>
   
   <sect1>Example
   <label id="mrt-exam">
   
   <p><code>
   protocol mrt {
           table "tab*";
           where source = RTS_BGP;
           filename "/var/log/bird/%N_%F_%T.mrt";
           period 300;
   }
   </code>
   
   
 <sect>OSPF  <sect>OSPF
 <label id="ospf">  <label id="ospf">
   
Line 2914  protocol ospf &lt;name&gt; { Line 3068  protocol ospf &lt;name&gt; {
         Specifies interval in seconds between retransmissions of unacknowledged          Specifies interval in seconds between retransmissions of unacknowledged
         updates. Default value is 5.          updates. Default value is 5.
   
           <tag><label id="ospf-transmit-delay">transmit delay <M>num</M></tag>
           Specifies estimated transmission delay of link state updates send over
           the interface. The value is added to LSA age of LSAs propagated through
           it. Default value is 1.
   
         <tag><label id="ospf-priority">priority <M>num</M></tag>          <tag><label id="ospf-priority">priority <M>num</M></tag>
         On every multiple access network (e.g., the Ethernet) Designated Router          On every multiple access network (e.g., the Ethernet) Designated Router
         and Backup Designated router are elected. These routers have some special          and Backup Designated router are elected. These routers have some special
Line 3314  time intervals or as an answer to a request) advertise Line 3473  time intervals or as an answer to a request) advertise
 networks. These packets contain basic information about a local network (e.g. a  networks. These packets contain basic information about a local network (e.g. a
 list of network prefixes), which allows network hosts to autoconfigure network  list of network prefixes), which allows network hosts to autoconfigure network
 addresses and choose a default route. BIRD implements router behavior as defined  addresses and choose a default route. BIRD implements router behavior as defined
in <rfc id="4861"> and also the DNS extensions from <rfc id="6106">.in <rfc id="4861">, router preferences and specific routes (<rfc id="4191">),
 and DNS extensions (<rfc id="6106">).
   
 <sect1>Configuration  <sect1>Configuration
 <label id="radv-config">  <label id="radv-config">
Line 3351  definitions, prefix definitions and DNS definitions: Line 3511  definitions, prefix definitions and DNS definitions:
         definitions may also be interface-specific when used inside interface          definitions may also be interface-specific when used inside interface
         options. By default, interface uses both global and interface-specific          options. By default, interface uses both global and interface-specific
         options, but that can be changed by <cf/rdnss local/ option.          options, but that can be changed by <cf/rdnss local/ option.
dsc-iface
         <tag><label id="radv-dnssl">dnssl { <m/options/ }</tag>          <tag><label id="radv-dnssl">dnssl { <m/options/ }</tag>
         DNSSL definitions allow to specify a list of advertised DNS search          DNSSL definitions allow to specify a list of advertised DNS search
         domains together with their options. Like <cf/rdnss/ above, multiple          domains together with their options. Like <cf/rdnss/ above, multiple
Line 3363  dsc-iface Line 3523  dsc-iface
         RAdv protocol could be configured to change its behavior based on          RAdv protocol could be configured to change its behavior based on
         availability of routes. When this option is used, the protocol waits in          availability of routes. When this option is used, the protocol waits in
         suppressed state until a <it/trigger route/ (for the specified network)          suppressed state until a <it/trigger route/ (for the specified network)
        is exported to the protocol, the protocol also returnsd to suppressed        is exported to the protocol, the protocol also returns to suppressed
         state if the <it/trigger route/ disappears. Note that route export          state if the <it/trigger route/ disappears. Note that route export
         depends on specified export filter, as usual. This option could be used,          depends on specified export filter, as usual. This option could be used,
         e.g., for handling failover in multihoming scenarios.          e.g., for handling failover in multihoming scenarios.
Line 3376  dsc-iface Line 3536  dsc-iface
         default router. <cf/preferred lifetime/ and <cf/valid lifetime/ could          default router. <cf/preferred lifetime/ and <cf/valid lifetime/ could
         also be configured as <cf/sensitive/ for a prefix, which would cause          also be configured as <cf/sensitive/ for a prefix, which would cause
         autoconfigured IPs to be deprecated or even removed.          autoconfigured IPs to be deprecated or even removed.
   
           <tag><label id="radv-propagate-routes">propagate routes <m/switch/</tag>
           This option controls propagation of more specific routes, as defined in
           <rfc id="4191">. If enabled, all routes exported to the RAdv protocol,
           with the exception of the trigger prefix, are added to advertisments as
           additional options. The lifetime and preference of advertised routes can
           be set individually by <cf/ra_lifetime/ and <cf/ra_preference/ route
           attributes, or per interface by <cf/route lifetime/ and
           <cf/route preference/ options. Default: disabled.
   
           Note that the RFC discourages from sending more than 17 routes and
           recommends the routes to be configured manually.
 </descrip>  </descrip>
   
 <p>Interface specific options:  <p>Interface specific options:
Line 3422  dsc-iface Line 3594  dsc-iface
         hosts. Valid values are 0-255, 0 means unspecified. Default: 64          hosts. Valid values are 0-255, 0 means unspecified. Default: 64
   
         <tag><label id="radv-iface-default-lifetime">default lifetime <m/expr/ [sensitive <m/switch/]</tag>          <tag><label id="radv-iface-default-lifetime">default lifetime <m/expr/ [sensitive <m/switch/]</tag>
        This option specifies the time (in seconds) how long (after the receipt        This option specifies the time (in seconds) how long (since the receipt
         of RA) hosts may use the router as a default router. 0 means do not use          of RA) hosts may use the router as a default router. 0 means do not use
         as a default router. For <cf/sensitive/ option, see <ref id="radv-trigger" name="trigger">.          as a default router. For <cf/sensitive/ option, see <ref id="radv-trigger" name="trigger">.
         Default: 3 * <cf/max ra interval/, <cf/sensitive/ yes.          Default: 3 * <cf/max ra interval/, <cf/sensitive/ yes.
   
        <tag><label id="radv-iface-default-preference-low">default preference low|medium|high</tag>        <tag><label id="radv-iface-default-preference">default preference low|medium|high</tag>
         This option specifies the Default Router Preference value to advertise          This option specifies the Default Router Preference value to advertise
         to hosts. Default: medium.          to hosts. Default: medium.
   
           <tag><label id="radv-iface-route-lifetime">route lifetime <m/expr/ [sensitive <m/switch/]</tag>
           This option specifies the default value of advertised lifetime for
           specific routes; i.e., the time (in seconds) for how long (since the
           receipt of RA) hosts should consider these routes valid. A special value
           0xffffffff represents infinity. The lifetime can be overriden on a per
           route basis by the <ref id="rta-ra-lifetime" name="ra_lifetime"> route
           attribute. Default: 3 * <cf/max ra interval/, <cf/sensitive/ no.
   
           For the <cf/sensitive/ option, see <ref id="radv-trigger" name="trigger">.
           If <cf/sensitive/ is enabled, even the routes with the <cf/ra_lifetime/
           attribute become sensitive to the trigger.
   
           <tag><label id="radv-iface-route-preference">route preference low|medium|high</tag>
           This option specifies the default value of advertised route preference
           for specific routes. The value can be overriden on a per route basis by
           the <ref id="rta-ra-preference" name="ra_preference"> route attribute.
           Default: medium.
   
           <tag><label id="radv-prefix-linger-time">prefix linger time <m/expr/</tag>
           When a prefix or a route disappears, it is advertised for some time with
           zero lifetime, to inform clients it is no longer valid. This option
           specifies the time (in seconds) for how long prefixes are advertised
           that way. Default: 3 * <cf/max ra interval/.
   
           <tag><label id="radv-route-linger-time">route linger time <m/expr/</tag>
           When a prefix or a route disappears, it is advertised for some time with
           zero lifetime, to inform clients it is no longer valid. This option
           specifies the time (in seconds) for how long routes are advertised
           that way. Default: 3 * <cf/max ra interval/.
   
         <tag><label id="radv-iface-rdnss-local">rdnss local <m/switch/</tag>          <tag><label id="radv-iface-rdnss-local">rdnss local <m/switch/</tag>
         Use only local (interface-specific) RDNSS definitions for this          Use only local (interface-specific) RDNSS definitions for this
         interface. Otherwise, both global and local definitions are used. Could          interface. Otherwise, both global and local definitions are used. Could
Line 3477  dsc-iface Line 3679  dsc-iface
         <cf/sensitive/ no.          <cf/sensitive/ no.
 </descrip>  </descrip>
   
   
 <p>RDNSS specific options:  <p>RDNSS specific options:
   
 <descrip>  <descrip>
Line 3510  dsc-iface Line 3711  dsc-iface
         RDNSS <cf/lifetime/ option above. Default: 3 * <cf/max ra interval/.          RDNSS <cf/lifetime/ option above. Default: 3 * <cf/max ra interval/.
 </descrip>  </descrip>
   
   <sect1>Attributes
   <label id="radv-attr">
   
   <p>RAdv defines two route attributes:
   
   <descrip>
           <tag><label id="rta-ra-preference">enum ra_preference</tag>
           The preference of the route. The value can be <it/RA_PREF_LOW/,
           <it/RA_PREF_MEDIUM/ or <it/RA_PREF_HIGH/. If the attribute is not set,
           the <ref id="radv-iface-route-preference" name="route preference">
           option is used.
   
           <tag><label id="rta-ra-lifetime">int ra_lifetime</tag>
           The advertised lifetime of the route, in seconds. The special value of
           0xffffffff represents infinity. If the attribute is not set, the
           <ref id="radv-iface-route-lifetime" name="route lifetime">
           option is used.
   </descrip>
   
 <sect1>Example  <sect1>Example
 <label id="radv-exam">  <label id="radv-exam">
   
 <p><code>  <p><code>
   table radv_routes;                      # Manually configured routes go here
   
   protocol static {
           table radv_routes;
   
           route 2001:0DB8:4000::/48 unreachable;
           route 2001:0DB8:4010::/48 unreachable;
   
           route 2001:0DB8:4020::/48 unreachable {
                   ra_preference = RA_PREF_HIGH;
                   ra_lifetime = 3600;
           };
   }
   
 protocol radv {  protocol radv {
           propagate routes yes;           # Propagate the routes from the radv_routes table
           table radv_routes;
           export all;
   
         interface "eth2" {          interface "eth2" {
                 max ra interval 5;      # Fast failover with more routers                  max ra interval 5;      # Fast failover with more routers
                 managed yes;            # Using DHCPv6 on eth2                  managed yes;            # Using DHCPv6 on eth2
Line 3788  protocol rip [&lt;name&gt;] { Line 4025  protocol rip [&lt;name&gt;] {
 <p>RIP defines two route attributes:  <p>RIP defines two route attributes:
   
 <descrip>  <descrip>
        <tag><label id="rta-rip-metric">int rip_metric/</tag>        <tag><label id="rta-rip-metric">int rip_metric</tag>
         RIP metric of the route (ranging from 0 to <cf/infinity/).  When routes          RIP metric of the route (ranging from 0 to <cf/infinity/).  When routes
         from different RIP instances are available and all of them have the same          from different RIP instances are available and all of them have the same
         preference, BIRD prefers the route with lowest <cf/rip_metric/. When a          preference, BIRD prefers the route with lowest <cf/rip_metric/. When a
         non-RIP route is exported to RIP, the default metric is 1.          non-RIP route is exported to RIP, the default metric is 1.
   
        <tag><label id="rta-rip-tag">int rip_tag/</tag>        <tag><label id="rta-rip-tag">int rip_tag</tag>
         RIP route tag: a 16-bit number which can be used to carry additional          RIP route tag: a 16-bit number which can be used to carry additional
         information with the route (for example, an originating AS number in          information with the route (for example, an originating AS number in
         case of external routes). When a non-RIP route is exported to RIP, the          case of external routes). When a non-RIP route is exported to RIP, the
Line 3806  protocol rip [&lt;name&gt;] { Line 4043  protocol rip [&lt;name&gt;] {
   
 <p><code>  <p><code>
 protocol rip {  protocol rip {
        debug all;        import all;
        port 1520;        export all;
        period 12;        interface "eth*" {
        garbage time 60;                metric 2;
        interface "eth0" { metric 3; mode multicast; };                port 1520;
        interface "eth*" { metric 2; mode broadcast; };                mode multicast;
        authentication cryptographic;                update time 12;
        password "secret-shared-key" { algorithm hmac sha256; };                timeout time 60;
        import filter { print "importing"; accept; };                authentication cryptographic;
        export filter { print "exporting"; accept; };                password "secret" { algorithm hmac sha256; };
         };
 }  }
 </code>  </code>
   

Removed from v.1.1  
changed lines
  Added in v.1.1.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>