Next Previous Contents

## 4. Remote control

You can use the command-line client birdc to talk with a running BIRD. Communication is done using a bird.ctl UNIX domain socket (unless changed with the `-s` option given to both the server and the client). The commands can perform simple actions such as enabling/disabling of protocols, telling BIRD to show various information, telling it to show routing table filtered by filter, or asking BIRD to reconfigure. Press `?` at any time to get online help. Option `-v` can be passed to the client, to make it dump numeric return codes along with the messages. You do not necessarily need to use birdc to talk to BIRD, your own applications could do that, too -- the format of communication between BIRD and birdc is stable (see the programmer's documentation).

Here is a brief list of supported functions:

`dump resources|sockets|interfaces|neighbors|attributes|routes|protocols`

  Dump contents of internal data structures to the debugging output.

`show status`

  Show router status, that is BIRD version, uptime and time from last reconfiguration.

`show protocols [all]`

  Show list of protocol instances along with tables they are connected to and protocol status, possibly giving verbose information, if `all` is specified.

`show ospf [interface|neighbors] [name] ["interface"]`

  Show detailed information about OSPF protocol, possibly giving a verbose list of interfaces and neighbors. The name of the protocol instance can be omitted if there exists only a single instance.

`show static [name]`

  Show detailed information about static routes. The name of the protocol instance can be omitted if there exists only a single instance.

`show interfaces [summary]`

  Show the list of interfaces. For each interface, print its type, state, MTU and addresses assigned.

`show symbols`

  Show the list of symbols defined in the configuration (names of protocols, routing tables etc.).

`show route [[for] prefix|IP] [table sym] [filter f|where c] [(import|preimport) p] [options]`

  Show contents of a routing table (by default of the main one), that is routes, their metrics and (in case the `all` switch is given) all their attributes.

  You can specify a prefix if you want to print routes for a specific network. If you use `for prefix or IP`, you'll get the entry which will be used for forwarding of packets to the given destination. By default, all routes for each network are printed with the selected one at the top, unless `primary` is given in which case only the selected route is shown.

  You can also ask for printing only routes processed and accepted by a given filter (`filter name` or `filter { filter }` or matching a given condition (`where condition`). The `import` and `preimport` switches ask for printing of entries that are imported to the specified protocol. With `preimport`, the import filter of the protocol is skipped.

  The `stats` switch requests showing of route statistics (the number of networks, number of routes before and after filtering). If you use `count` instead, only the statistics will be printed.

`enable|disable|restart name|"pattern"|all`

  Enable, disable or restart a given protocol instance, instances matching the `pattern` or `all` instances.

`configure ["config file"]`

  Reload configuration from a given file.

`down`

  Shut BIRD down.

`debug protocol|pattern|all all|off|{ states | routes | filters | events | packets }`

  Control protocol debugging.

Next Previous Contents