Annotation of embedaddon/bird/doc/bird-3.html, revision 1.1

1.1     ! misho       1: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
        !             2: <HTML>
        !             3: <HEAD>
        !             4:  <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 1.0.9">
        !             5:  <TITLE>BIRD User's Guide: Configuration</TITLE>
        !             6:  <LINK HREF="bird-4.html" REL=next>
        !             7:  <LINK HREF="bird-2.html" REL=previous>
        !             8:  <LINK HREF="bird.html#toc3" REL=contents>
        !             9: </HEAD>
        !            10: <BODY>
        !            11: <A HREF="bird-4.html">Next</A>
        !            12: <A HREF="bird-2.html">Previous</A>
        !            13: <A HREF="bird.html#toc3">Contents</A>
        !            14: <HR>
        !            15: <H2><A NAME="config"></A> <A NAME="s3">3.</A> <A HREF="bird.html#toc3">Configuration</A></H2>
        !            16: 
        !            17: <H2><A NAME="config-intro"></A> <A NAME="ss3.1">3.1</A> <A HREF="bird.html#toc3.1">Introduction</A>
        !            18: </H2>
        !            19: 
        !            20: <P>BIRD is configured using a text configuration file. Upon startup, BIRD reads
        !            21: <I>prefix</I><CODE>/etc/bird.conf</CODE> (unless the <CODE>-c</CODE> command line option
        !            22: is given). Configuration may be changed at user's request: if you modify the
        !            23: config file and then signal BIRD with <CODE>SIGHUP</CODE>, it will adjust to the new
        !            24: config. Then there's the client which allows you to talk with BIRD in an
        !            25: extensive way.
        !            26: <P>
        !            27: <P>In the config, everything on a line after <CODE>#</CODE> or inside <CODE>/* */</CODE> is
        !            28: a comment, whitespace characters are treated as a single space. If there's a
        !            29: variable number of options, they are grouped using the <CODE>{ }</CODE> brackets. Each
        !            30: option is terminated by a <CODE>;</CODE>. Configuration is case sensitive. There are two
        !            31: ways how to name symbols (like protocol names, filter names, constants etc.). You
        !            32: can either use a simple string starting with a letter followed by any
        !            33: combination of letters and numbers (e.g. "R123", "myfilter", "bgp5") or you can
        !            34: enclose the name into apostrophes (<CODE>'</CODE>) and than you can use any combination
        !            35: of numbers, letters. hyphens, dots and colons (e.g. "'1:strange-name'",
        !            36: "'-NAME-'", "'cool::name'").
        !            37: <P>
        !            38: <P>Here is an example of a simple config file. It enables synchronization of
        !            39: routing tables with OS kernel, scans for new network interfaces every 10 seconds
        !            40: and runs RIP on all network interfaces found.
        !            41: <P>
        !            42: <HR>
        !            43: <PRE>
        !            44: protocol kernel {
        !            45:         persist;                # Don't remove routes on BIRD shutdown
        !            46:         scan time 20;           # Scan kernel routing table every 20 seconds
        !            47:         export all;             # Default is export none
        !            48: }
        !            49: 
        !            50: protocol device {
        !            51:         scan time 10;           # Scan interfaces every 10 seconds
        !            52: }
        !            53: 
        !            54: protocol rip {
        !            55:         export all;
        !            56:         import all;
        !            57:         interface "*";
        !            58: }
        !            59: </PRE>
        !            60: <HR>
        !            61: <P>
        !            62: <P>
        !            63: <H2><A NAME="global-opts"></A> <A NAME="ss3.2">3.2</A> <A HREF="bird.html#toc3.2">Global options</A>
        !            64: </H2>
        !            65: 
        !            66: <P>
        !            67: <DL>
        !            68: <DT><CODE>
        !            69: <A NAME="opt-include"></A> include "<I>filename</I>"</CODE><DD><P>This statement causes inclusion of a new file. <I>Filename</I> could also
        !            70: be a wildcard, in that case matching files are included in alphabetic
        !            71: order. The maximal depth is 8. Note that this statement could be used
        !            72: anywhere in the config file, not just as a top-level option.
        !            73: <P>
        !            74: <DT><CODE>
        !            75: <A NAME="opt-log"></A> log "<I>filename</I>"|syslog [name <I>name</I>]|stderr all|{ <I>list of classes</I> }</CODE><DD><P>Set logging of messages having the given class (either <CODE>all</CODE> or
        !            76: <CODE>{ error|trace [, <I>...</I>] }</CODE> etc.) into selected destination (a file specified
        !            77: as a filename string, syslog with optional name argument, or the stderr
        !            78: output). Classes are:
        !            79: <CODE>info</CODE>, <CODE>warning</CODE>, <CODE>error</CODE> and <CODE>fatal</CODE> for messages about local problems,
        !            80: <CODE>debug</CODE> for debugging messages,
        !            81: <CODE>trace</CODE> when you want to know what happens in the network,
        !            82: <CODE>remote</CODE> for messages about misbehavior of remote machines,
        !            83: <CODE>auth</CODE> about authentication failures,
        !            84: <CODE>bug</CODE> for internal BIRD bugs.
        !            85: You may specify more than one <CODE>log</CODE> line to establish logging to
        !            86: multiple destinations. Default: log everything to the system log.
        !            87: <P>
        !            88: <DT><CODE>
        !            89: <A NAME="opt-debug-protocols"></A> debug protocols all|off|{ states|routes|filters|interfaces|events|packets [, <I>...</I>] }</CODE><DD><P>Set global defaults of protocol debugging options. See <CODE>debug</CODE> in the
        !            90: following section. Default: off.
        !            91: <P>
        !            92: <DT><CODE>
        !            93: <A NAME="opt-debug-commands"></A> debug commands <I>number</I></CODE><DD><P>Control logging of client connections (0 for no logging, 1 for logging
        !            94: of connects and disconnects, 2 and higher for logging of all client
        !            95: commands). Default: 0.
        !            96: <P>
        !            97: <DT><CODE>
        !            98: <A NAME="opt-debug-latency"></A> debug latency <I>switch</I></CODE><DD><P>Activate tracking of elapsed time for internal events. Recent events
        !            99: could be examined using <CODE>dump events</CODE> command. Default: off.
        !           100: <P>
        !           101: <DT><CODE>
        !           102: <A NAME="opt-debug-latency-limit"></A> debug latency limit <I>time</I></CODE><DD><P>If <CODE>debug latency</CODE> is enabled, this option allows to specify a limit
        !           103: for elapsed time. Events exceeding the limit are logged. Default: 1 s.
        !           104: <P>
        !           105: <DT><CODE>
        !           106: <A NAME="opt-watchdog-warn"></A> watchdog warning <I>time</I></CODE><DD><P>Set time limit for I/O loop cycle. If one iteration took more time to
        !           107: complete, a warning is logged. Default: 5 s.
        !           108: <P>
        !           109: <DT><CODE>
        !           110: <A NAME="opt-watchdog-timeout"></A> watchdog timeout <I>time</I></CODE><DD><P>Set time limit for I/O loop cycle. If the limit is breached, BIRD is
        !           111: killed by abort signal. The timeout has effective granularity of
        !           112: seconds, zero means disabled. Default: disabled (0).
        !           113: <P>
        !           114: <DT><CODE>
        !           115: <A NAME="opt-mrtdump"></A> mrtdump "<I>filename</I>"</CODE><DD><P>Set MRTdump file name. This option must be specified to allow MRTdump
        !           116: feature. Default: no dump file.
        !           117: <P>
        !           118: <DT><CODE>
        !           119: <A NAME="opt-mrtdump-protocols"></A> mrtdump protocols all|off|{ states|messages [, <I>...</I>] }</CODE><DD><P>Set global defaults of MRTdump options. See <CODE>mrtdump</CODE> in the
        !           120: following section. Default: off.
        !           121: <P>
        !           122: <DT><CODE>
        !           123: <A NAME="opt-filter"></A> filter <I>name local variables</I>{ <I>commands</I> }</CODE><DD><P>Define a filter. You can learn more about filters in the following
        !           124: chapter.
        !           125: <P>
        !           126: <DT><CODE>
        !           127: <A NAME="opt-function"></A> function <I>name</I> (<I>parameters</I>) <I>local variables</I> { <I>commands</I> }</CODE><DD><P>Define a function. You can learn more about functions in the following chapter.
        !           128: <P>
        !           129: <DT><CODE>
        !           130: <A NAME="opt-protocol"></A> protocol rip|ospf|bgp|<I>...</I> [<I>name</I> [from <I>name2</I>]] { <I>protocol options</I> }</CODE><DD><P>Define a protocol instance called <CODE><I>name</I></CODE> (or with a name like
        !           131: "rip5" generated automatically if you don't specify any
        !           132: <CODE><I>name</I></CODE>). You can learn more about configuring protocols in
        !           133: their own chapters. When <CODE>from <I>name2</I></CODE> expression is used,
        !           134: initial protocol options are taken from protocol or template
        !           135: <CODE><I>name2</I></CODE> You can run more than one instance of most protocols
        !           136: (like RIP or BGP). By default, no instances are configured.
        !           137: <P>
        !           138: <DT><CODE>
        !           139: <A NAME="opt-template"></A> template rip|bgp|<I>...</I> [<I>name</I> [from <I>name2</I>]] { <I>protocol options</I> }</CODE><DD><P>Define a protocol template instance called <I>name</I> (or with a name like
        !           140: "bgp1" generated automatically if you don't specify any <I>name</I>).
        !           141: Protocol templates can be used to group common options when many
        !           142: similarly configured protocol instances are to be defined. Protocol
        !           143: instances (and other templates) can use templates by using <CODE>from</CODE>
        !           144: expression and the name of the template. At the moment templates (and
        !           145: <CODE>from</CODE> expression) are not implemented for OSPF protocol.
        !           146: <P>
        !           147: <DT><CODE>
        !           148: <A NAME="opt-define"></A> define <I>constant</I> = <I>expression</I></CODE><DD><P>Define a constant. You can use it later in every place you could use a
        !           149: value of the same type. Besides, there are some predefined numeric
        !           150: constants based on /etc/iproute2/rt_* files. A list of defined constants
        !           151: can be seen (together with other symbols) using 'show symbols' command.
        !           152: <P>
        !           153: <DT><CODE>
        !           154: <A NAME="opt-router-id"></A> router id <I>IPv4 address</I></CODE><DD><P>Set BIRD's router ID. It's a world-wide unique identification of your
        !           155: router, usually one of router's IPv4 addresses. Default: in IPv4
        !           156: version, the lowest IP address of a non-loopback interface. In IPv6
        !           157: version, this option is mandatory.
        !           158: <P>
        !           159: <DT><CODE>
        !           160: <A NAME="opt-router-id-from"></A> router id from [-] [ "<I>mask</I>" ] [ <I>prefix</I> ] [, <I>...</I>]</CODE><DD><P>Set BIRD's router ID based on an IP address of an interface specified by
        !           161: an interface pattern. The option is applicable for IPv4 version only.
        !           162: See 
        !           163: <A HREF="#proto-iface">interface</A> section for detailed
        !           164: description of interface patterns with extended clauses.
        !           165: <P>
        !           166: <DT><CODE>
        !           167: <A NAME="opt-listen-bgp"></A> listen bgp [address <I>address</I>] [port <I>port</I>] [dual]</CODE><DD><P>This option allows to specify address and port where BGP protocol should
        !           168: listen. It is global option as listening socket is common to all BGP
        !           169: instances. Default is to listen on all addresses (0.0.0.0) and port 179.
        !           170: In IPv6 mode, option <CODE>dual</CODE> can be used to specify that BGP socket
        !           171: should accept both IPv4 and IPv6 connections (but even in that case,
        !           172: BIRD would accept IPv6 routes only). Such behavior was default in older
        !           173: versions of BIRD.
        !           174: <P>
        !           175: <DT><CODE>
        !           176: <A NAME="opt-graceful-restart"></A> graceful restart wait <I>number</I></CODE><DD><P>During graceful restart recovery, BIRD waits for convergence of routing
        !           177: protocols. This option allows to specify a timeout for the recovery to
        !           178: prevent waiting indefinitely if some protocols cannot converge. Default:
        !           179: 240 seconds.
        !           180: <P>
        !           181: <DT><CODE>
        !           182: <A NAME="opt-timeformat"></A> timeformat route|protocol|base|log "<I>format1</I>" [<I>limit</I> "<I>format2</I>"]</CODE><DD><P>This option allows to specify a format of date/time used by BIRD. The
        !           183: first argument specifies for which purpose such format is used.
        !           184: <CODE>route</CODE> is a format used in 'show route' command output,
        !           185: <CODE>protocol</CODE> is used in 'show protocols' command output, <CODE>base</CODE> is
        !           186: used for other commands and <CODE>log</CODE> is used in a log file.
        !           187: <P>"<I>format1</I>" is a format string using <I>strftime(3)</I> notation (see
        !           188: <I>man strftime</I> for details). <I>limit> and "<I>format2</I>" allow to
        !           189: specify the second format string for times in past deeper than <I>limit</I>
        !           190: seconds. There are few shorthands: <CODE>iso long</CODE> is a ISO 8601 date</I>time
        !           191: format (YYYY-MM-DD hh:mm:ss) that can be also specified using <CODE>"%F %T"</CODE>.
        !           192: <CODE>iso short</CODE> is a variant of ISO 8601 that uses just the time format
        !           193: (hh:mm:ss) for near times (up to 20 hours in the past) and the date
        !           194: format (YYYY-MM-DD) for far times. This is a shorthand for
        !           195: <CODE>"%T" 72000 "%F"</CODE>.
        !           196: <P>By default, BIRD uses the <CODE>iso short</CODE> format for <CODE>route</CODE> and
        !           197: <CODE>protocol</CODE> times, and the <CODE>iso long</CODE> format for <CODE>base</CODE> and
        !           198: <CODE>log</CODE> times.
        !           199: <P>In pre-1.4.0 versions, BIRD used an short, ad-hoc format for <CODE>route</CODE>
        !           200: and <CODE>protocol</CODE> times, and a <CODE>iso long</CODE> similar format (DD-MM-YYYY
        !           201: hh:mm:ss) for <CODE>base</CODE> and <CODE>log</CODE>. These timeformats could be set by
        !           202: <CODE>old short</CODE> and <CODE>old long</CODE> compatibility shorthands.
        !           203: <P>
        !           204: <DT><CODE>
        !           205: <A NAME="opt-table"></A> table <I>name</I> [sorted]</CODE><DD><P>Create a new routing table. The default routing table is created
        !           206: implicitly, other routing tables have to be added by this command.
        !           207: Option <CODE>sorted</CODE> can be used to enable sorting of routes, see
        !           208: <A HREF="bird-2.html#dsc-table-sorted">sorted table</A> description for details.
        !           209: <P>
        !           210: <DT><CODE>
        !           211: <A NAME="opt-roa-table"></A> roa table <I>name</I> [ { <I>roa table options ...</I> } ]</CODE><DD><P>Create a new ROA (Route Origin Authorization) table. ROA tables can be
        !           212: used to validate route origination of BGP routes. A ROA table contains
        !           213: ROA entries, each consist of a network prefix, a max prefix length and
        !           214: an AS number. A ROA entry specifies prefixes which could be originated
        !           215: by that AS number. ROA tables could be filled with data from RPKI (<A HREF="http://www.rfc-editor.org/info/rfc6480">RFC 6480</A>) or from public databases like Whois. ROA tables are
        !           216: examined by <CODE>roa_check()</CODE> operator in filters.
        !           217: <P>Currently, there is just one option, <CODE>roa <I>prefix</I> max <I>num</I> as
        !           218: <I>num</I></CODE>, which can be used to populate the ROA table with static
        !           219: ROA entries. The option may be used multiple times. Other entries can be
        !           220: added dynamically by <CODE>add roa</CODE> command.
        !           221: <P>
        !           222: <DT><CODE>
        !           223: <A NAME="opt-eval"></A> eval <I>expr</I></CODE><DD><P>Evaluates given filter expression. It is used by us for   testing of filters.
        !           224: </DL>
        !           225: <P>
        !           226: <P>
        !           227: <H2><A NAME="protocol-opts"></A> <A NAME="ss3.3">3.3</A> <A HREF="bird.html#toc3.3">Protocol options</A>
        !           228: </H2>
        !           229: 
        !           230: <P>For each protocol instance, you can configure a bunch of options. Some of
        !           231: them (those described in this section) are generic, some are specific to the
        !           232: protocol (see sections talking about the protocols).
        !           233: <P>
        !           234: <P>Several options use a <I>switch</I> argument. It can be either <CODE>on</CODE>,
        !           235: <CODE>yes</CODE> or a numeric expression with a non-zero value for the option to be
        !           236: enabled or <CODE>off</CODE>, <CODE>no</CODE> or a numeric expression evaluating to zero to
        !           237: disable it. An empty <I>switch</I> is equivalent to <CODE>on</CODE> ("silence means
        !           238: agreement").
        !           239: <P>
        !           240: <DL>
        !           241: <DT><CODE>
        !           242: <A NAME="proto-preference"></A> preference <I>expr</I></CODE><DD><P>Sets the preference of routes generated by this protocol. Default:
        !           243: protocol dependent.
        !           244: <P>
        !           245: <DT><CODE>
        !           246: <A NAME="proto-disabled"></A> disabled <I>switch</I></CODE><DD><P>Disables the protocol. You can change the disable/enable status from the
        !           247: command line interface without needing to touch the configuration.
        !           248: Disabled protocols are not activated. Default: protocol is enabled.
        !           249: <P>
        !           250: <DT><CODE>
        !           251: <A NAME="proto-debug"></A> debug all|off|{ states|routes|filters|interfaces|events|packets [, <I>...</I>] }</CODE><DD><P>Set protocol debugging options. If asked, each protocol is capable of
        !           252: writing trace messages about its work to the log (with category
        !           253: <CODE>trace</CODE>). You can either request printing of <CODE>all</CODE> trace messages
        !           254: or only of the types selected: <CODE>states</CODE> for protocol state changes
        !           255: (protocol going up, down, starting, stopping etc.), <CODE>routes</CODE> for
        !           256: routes exchanged with the routing table, <CODE>filters</CODE> for details on
        !           257: route filtering, <CODE>interfaces</CODE> for interface change events sent to the
        !           258: protocol, <CODE>events</CODE> for events internal to the protocol and <CODE>packets</CODE>
        !           259: for packets sent and received by the protocol. Default: off.
        !           260: <P>
        !           261: <DT><CODE>
        !           262: <A NAME="proto-mrtdump"></A> mrtdump all|off|{ states|messages [, <I>...</I>] }</CODE><DD><P>Set protocol MRTdump flags. MRTdump is a standard binary format for
        !           263: logging information from routing protocols and daemons. These flags
        !           264: control what kind of information is logged from the protocol to the
        !           265: MRTdump file (which must be specified by global <CODE>mrtdump</CODE> option, see
        !           266: the previous section). Although these flags are similar to flags of
        !           267: <CODE>debug</CODE> option, their meaning is different and protocol-specific. For
        !           268: BGP protocol, <CODE>states</CODE> logs BGP state changes and <CODE>messages</CODE> logs
        !           269: received BGP messages. Other protocols does not support MRTdump yet.
        !           270: <P>
        !           271: <DT><CODE>
        !           272: <A NAME="proto-router-id"></A> router id <I>IPv4 address</I></CODE><DD><P>This option can be used to override global router id for a given
        !           273: protocol. Default: uses global router id.
        !           274: <P>
        !           275: <DT><CODE>
        !           276: <A NAME="proto-import"></A> import all | none | filter <I>name</I> | filter { <I>filter commands</I> } | where <I>filter expression</I></CODE><DD><P>Specify a filter to be used for filtering routes coming from the
        !           277: protocol to the routing table. <CODE>all</CODE> is shorthand for <CODE>where true</CODE>
        !           278: and <CODE>none</CODE> is shorthand for <CODE>where false</CODE>. Default: <CODE>all</CODE>.
        !           279: <P>
        !           280: <DT><CODE>
        !           281: <A NAME="proto-export"></A> export <I>filter</I></CODE><DD><P>This is similar to the <CODE>import</CODE> keyword, except that it works in
        !           282: the direction from the routing table to the protocol. Default: <CODE>none</CODE>.
        !           283: <P>
        !           284: <DT><CODE>
        !           285: <A NAME="proto-import-keep-filtered"></A> import keep filtered <I>switch</I></CODE><DD><P>Usually, if an import filter rejects a route, the route is forgotten.
        !           286: When this option is active, these routes are kept in the routing table,
        !           287: but they are hidden and not propagated to other protocols. But it is
        !           288: possible to show them using <CODE>show route filtered</CODE>. Note that this
        !           289: option does not work for the pipe protocol. Default: off.
        !           290: <P>
        !           291: <DT><CODE>
        !           292: <A NAME="proto-import-limit"></A> import limit [<I>number</I> | off ] [action warn | block | restart | disable]</CODE><DD><P>Specify an import route limit (a maximum number of routes imported from
        !           293: the protocol) and optionally the action to be taken when the limit is
        !           294: hit. Warn action just prints warning log message. Block action discards
        !           295: new routes coming from the protocol. Restart and disable actions shut
        !           296: the protocol down like appropriate commands. Disable is the default
        !           297: action if an action is not explicitly specified. Note that limits are
        !           298: reset during protocol reconfigure, reload or restart. Default: <CODE>off</CODE>.
        !           299: <P>
        !           300: <DT><CODE>
        !           301: <A NAME="proto-receive-limit"></A> receive limit [<I>number</I> | off ] [action warn | block | restart | disable]</CODE><DD><P>Specify an receive route limit (a maximum number of routes received from
        !           302: the protocol and remembered). It works almost identically to <CODE>import
        !           303: limit</CODE> option, the only difference is that if <CODE>import keep
        !           304: filtered</CODE> option is active, filtered routes are counted towards the
        !           305: limit and blocked routes are forgotten, as the main purpose of the
        !           306: receive limit is to protect routing tables from overflow. Import limit,
        !           307: on the contrary, counts accepted routes only and routes blocked by the
        !           308: limit are handled like filtered routes. Default: <CODE>off</CODE>.
        !           309: <P>
        !           310: <DT><CODE>
        !           311: <A NAME="proto-export-limit"></A> export limit [ <I>number</I> | off ] [action warn | block | restart | disable]</CODE><DD><P>Specify an export route limit, works similarly to the <CODE>import
        !           312: limit</CODE> option, but for the routes exported to the protocol. This
        !           313: option is experimental, there are some problems in details of its
        !           314: behavior -- the number of exported routes can temporarily exceed the
        !           315: limit without triggering it during protocol reload, exported routes
        !           316: counter ignores route blocking and block action also blocks route
        !           317: updates of already accepted routes -- and these details will probably
        !           318: change in the future. Default: <CODE>off</CODE>.
        !           319: <P>
        !           320: <DT><CODE>
        !           321: <A NAME="proto-description"></A> description "<I>text</I>"</CODE><DD><P>This is an optional description of the protocol. It is displayed as a
        !           322: part of the output of 'show route all' command.
        !           323: <P>
        !           324: <DT><CODE>
        !           325: <A NAME="proto-table"></A> table <I>name</I></CODE><DD><P>Connect this protocol to a non-default routing table.
        !           326: </DL>
        !           327: <P>
        !           328: <P>There are several options that give sense only with certain protocols:
        !           329: <P>
        !           330: <DL>
        !           331: <DT><CODE>
        !           332: <A NAME="proto-iface"></A> interface [-] [ "<I>mask</I>" ] [ <I>prefix</I> ] [, <I>...</I>] [ { <I>option</I>; [<I>...</I>] } ]</CODE><DD><P>Specifies a set of interfaces on which the protocol is activated with
        !           333: given interface-specific options. A set of interfaces specified by one
        !           334: interface option is described using an interface pattern. The interface
        !           335: pattern consists of a sequence of clauses (separated by commas), each
        !           336: clause is a mask specified as a shell-like pattern. Interfaces are
        !           337: matched by their name.
        !           338: <P>An interface matches the pattern if it matches any of its clauses. If
        !           339: the clause begins with <CODE>-</CODE>, matching interfaces are excluded. Patterns
        !           340: are processed left-to-right, thus <CODE>interface "eth0", -"eth*", "*";</CODE>
        !           341: means eth0 and all non-ethernets.
        !           342: <P>Some protocols (namely OSPFv2 and Direct) support extended clauses that
        !           343: may contain a mask, a prefix, or both of them. An interface matches such
        !           344: clause if its name matches the mask (if specified) and its address
        !           345: matches the prefix (if specified). Extended clauses are used when the
        !           346: protocol handles multiple addresses on an interface independently.
        !           347: <P>An interface option can be used more times with different interface-specific
        !           348: options, in that case for given interface the first matching interface
        !           349: option is used.
        !           350: <P>This option is allowed in Babel, BFD, Direct, OSPF, RAdv and RIP
        !           351: protocols, but in OSPF protocol it is used in the <CODE>area</CODE> subsection.
        !           352: <P>Default: none.
        !           353: <P>Examples:
        !           354: <P><CODE>interface "*" { type broadcast; };</CODE> - start the protocol on all
        !           355: interfaces with <CODE>type broadcast</CODE> option.
        !           356: <P><CODE>interface "eth1", "eth4", "eth5" { type ptp; };</CODE> - start the
        !           357: protocol on enumerated interfaces with <CODE>type ptp</CODE> option.
        !           358: <P><CODE>interface -192.168.1.0/24, 192.168.0.0/16;</CODE> - start the protocol
        !           359: on all interfaces that have address from 192.168.0.0/16, but not from
        !           360: 192.168.1.0/24.
        !           361: <P><CODE>interface -192.168.1.0/24, 192.168.0.0/16;</CODE> - start the protocol
        !           362: on all interfaces that have address from 192.168.0.0/16, but not from
        !           363: 192.168.1.0/24.
        !           364: <P><CODE>interface "eth*" 192.168.1.0/24;</CODE> - start the protocol on all
        !           365: ethernet interfaces that have address from 192.168.1.0/24.
        !           366: <P>
        !           367: <DT><CODE>
        !           368: <A NAME="proto-tx-class"></A> tx class|dscp <I>num</I></CODE><DD><P>This option specifies the value of ToS/DS/Class field in IP headers of
        !           369: the outgoing protocol packets. This may affect how the protocol packets
        !           370: are processed by the network relative to the other network traffic. With
        !           371: <CODE>class</CODE> keyword, the value (0-255) is used for the whole ToS/Class
        !           372: octet (but two bits reserved for ECN are ignored). With <CODE>dscp</CODE>
        !           373: keyword, the value (0-63) is used just for the DS field in the octet.
        !           374: Default value is 0xc0 (DSCP 0x30 - CS6).
        !           375: <P>
        !           376: <DT><CODE>
        !           377: <A NAME="proto-tx-priority"></A> tx priority <I>num</I></CODE><DD><P>This option specifies the local packet priority. This may affect how the
        !           378: protocol packets are processed in the local TX queues. This option is
        !           379: Linux specific. Default value is 7 (highest priority, privileged traffic).
        !           380: <P>
        !           381: <DT><CODE>
        !           382: <A NAME="proto-pass"></A> password "<I>password</I>" [ { <I>password options</I> } ]</CODE><DD><P>Specifies a password that can be used by the protocol as a shared secret
        !           383: key. Password option can be used more times to specify more passwords.
        !           384: If more passwords are specified, it is a protocol-dependent decision
        !           385: which one is really used. Specifying passwords does not mean that
        !           386: authentication is enabled, authentication can be enabled by separate,
        !           387: protocol-dependent <CODE>authentication</CODE> option.
        !           388: <P>This option is allowed in BFD, OSPF and RIP protocols. BGP has also
        !           389: <CODE>password</CODE> option, but it is slightly different and described
        !           390: separately.
        !           391: Default: none.
        !           392: </DL>
        !           393: <P>
        !           394: <P>Password option can contain section with some (not necessary all) password sub-options:
        !           395: <P>
        !           396: <DL>
        !           397: <DT><CODE>
        !           398: <A NAME="proto-pass-id"></A> id <I>num</I></CODE><DD><P>ID of the password, (1-255). If it is not used, BIRD will choose ID based
        !           399: on an order of the password item in the interface. For example, second
        !           400: password item in one interface will have default ID 2. ID is used by
        !           401: some routing protocols to identify which password was used to
        !           402: authenticate protocol packets.
        !           403: <P>
        !           404: <DT><CODE>
        !           405: <A NAME="proto-pass-gen-from"></A> generate from "<I>time</I>"</CODE><DD><P>The start time of the usage of the password for packet signing.
        !           406: The format of <CODE><I>time</I></CODE> is <CODE>dd-mm-yyyy HH:MM:SS</CODE>.
        !           407: <P>
        !           408: <DT><CODE>
        !           409: <A NAME="proto-pass-gen-to"></A> generate to "<I>time</I>"</CODE><DD><P>The last time of the usage of the password for packet signing.
        !           410: <P>
        !           411: <DT><CODE>
        !           412: <A NAME="proto-pass-accept-from"></A> accept from "<I>time</I>"</CODE><DD><P>The start time of the usage of the password for packet verification.
        !           413: <P>
        !           414: <DT><CODE>
        !           415: <A NAME="proto-pass-accept-to"></A> accept to "<I>time</I>"</CODE><DD><P>The last time of the usage of the password for packet verification.
        !           416: <P>
        !           417: <DT><CODE>
        !           418: <A NAME="proto-pass-from"></A> from "<I>time</I>"</CODE><DD><P>Shorthand for setting both <CODE>generate from</CODE> and <CODE>accept from</CODE>.
        !           419: <P>
        !           420: <DT><CODE>
        !           421: <A NAME="proto-pass-to"></A> to "<I>time</I>"</CODE><DD><P>Shorthand for setting both <CODE>generate to</CODE> and <CODE>accept to</CODE>.
        !           422: <P>
        !           423: <DT><CODE>
        !           424: <A NAME="proto-pass-algorithm"></A> algorithm ( keyed md5 | keyed sha1 | hmac sha1 | hmac sha256 | hmac sha384 | hmac sha512 )</CODE><DD><P>The message authentication algorithm for the password when cryptographic
        !           425: authentication is enabled. The default value depends on the protocol.
        !           426: For RIP and OSPFv2 it is Keyed-MD5 (for compatibility), for OSPFv3
        !           427: protocol it is HMAC-SHA-256.
        !           428: <P>
        !           429: </DL>
        !           430: <P>
        !           431: <HR>
        !           432: <A HREF="bird-4.html">Next</A>
        !           433: <A HREF="bird-2.html">Previous</A>
        !           434: <A HREF="bird.html#toc3">Contents</A>
        !           435: </BODY>
        !           436: </HTML>

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