Control protocol debugging.
<tag><label id="cli-dump">dump resources|sockets|interfaces|neighbors|attributes|routes|protocols "<m/file/"</tag>
- Creates the given file (it must not exist) and dumps contents of
- internal data structures there. By sending SIGUSR1, you get all of
+ Creates the given file (it must not exist) and dumps contents of
+ internal data structures there. By sending SIGUSR1, you get all of
these concatenated to <cf/bird.dump/ in the current directory.
The file is only readable for the user running the daemon.
The format of dump files is internal and could change in the future
as used by UNIX shells. Autonomous system numbers match themselves,
<cf/*/ matches any (even empty) sequence of arbitrary AS numbers and
<cf/?/ matches one arbitrary AS number. For example, if <cf>bgp_path</cf>
- is 4 3 2 1, then: <tt>bgp_path ˜ [= * 4 3 * =]</tt> is true,
+ is 4 3 2 1, then: <tt>bgp_path ˜ [= * 4 3 * =]</tt> is true,
but <tt>bgp_path ˜ [= * 4 5 * =]</tt> is false. There is also
<cf/+/ operator which matches one or multiple instances of previous
expression, e.g. <tt>[= 1 2+ 3 =]</tt> matches both path 1 2 3 and path
<tag><label id="aggregator-rule">aggregate on <m/expr/ | <m/attribute/ [<m/, .../]</tag>
All the given filter expressions and route attributes are evaluated for each route. Then routes
are sorted into buckets where <em/all/ values are the same. Note: due to performance reasons,
- all filter expressions must return a compact type, e.g. integer, a BGP
- (standard, extended, large) community or an IP address. If you need to compare e.g. modified
+ all filter expressions must return a compact type, e.g. integer, a BGP
+ (standard, extended, large) community or an IP address. If you need to compare e.g. modified
AS Paths in the aggregation rule, you can define a custom route attribute and set this attribute
in the export filter. For now, it's mandatory to say <cf/net/ here, we can't merge prefixes yet.
protocol babel [<name>] {
ipv4 { <channel config> };
ipv6 [sadr] { <channel config> };
- randomize router id <switch>;
+ randomize router id <switch>;
interface <interface pattern> {
type <wired|wireless|tunnel>;
rxcost <number>;
ipv6 table vrf0v6;
protocol kernel kernel0v4 {
- vrf "vrf0";
- ipv4 { table vrf0v4; export all; };
- kernel table 100;
+ vrf "vrf0";
+ ipv4 { table vrf0v4; export all; };
+ kernel table 100;
}
protocol kernel kernel0v6 {
- vrf "vrf0";
- ipv6 { table vrf0v6; export all; };
- kernel table 100;
+ vrf "vrf0";
+ ipv6 { table vrf0v6; export all; };
+ kernel table 100;
}
protocol l3vpn l3vpn0 {
- vrf "vrf0";
- ipv4 { table vrf0v4; };
- ipv6 { table vrf0v6; };
- vpn4 { table vpntab4; };
- vpn6 { table vpntab6; };
- mpls { label policy vrf; };
-
- rd 10:12;
- import target [(rt, 10, 32..40)];
- export target [(rt, 10, 30), (rt, 10, 31)];
+ vrf "vrf0";
+ ipv4 { table vrf0v4; };
+ ipv6 { table vrf0v6; };
+ vpn4 { table vpntab4; };
+ vpn6 { table vpntab6; };
+ mpls { label policy vrf; };
+
+ rd 10:12;
+ import target [(rt, 10, 32..40)];
+ export target [(rt, 10, 30), (rt, 10, 31)];
}
</code>
translator <switch>;
translator stability <num>;
- networks {
+ networks {
<prefix>;
<prefix> hidden;
};
- external {
+ external {
<prefix>;
<prefix> hidden;
<prefix> tag <num>;
<code>
protocol rpki [<name>] {
- roa4 { table <tab>; };
- roa6 { table <tab>; };
+ roa4 { table <tab>; };
+ roa6 { table <tab>; };
aspa { table <tab>; };
- remote <ip> | "<domain>" [port <num>];
- port <num>;
- local address <ip>;
- refresh [keep] <num>;
- retry [keep] <num>;
- expire [keep] <num>;
- transport tcp {
- authentication none|md5;
- password "<text>";
- };
- transport ssh {
- bird private key "</path/to/id_rsa>";
- remote public key "</path/to/known_host>";
- user "<name>";
- };
- max version 2;
- min version 2;
+ remote <ip> | "<domain>" [port <num>];
+ port <num>;
+ local address <ip>;
+ refresh [keep] <num>;
+ retry [keep] <num>;
+ expire [keep] <num>;
+ ignore max length <switch>;
+ min version <num>;
+ max version <num>;
+ transport tcp {
+ authentication none|md5;
+ password "<text>";
+ };
+ transport ssh {
+ bird private key "</path/to/id_rsa>";
+ remote public key "</path/to/known_host>";
+ user "<name>";
+ };
}
</code>