This directory contains a BFD implementation. BFD is defined in [RFC5880]. This implementation only implements layer-3 BFD over UDP for multihop paths as described in [RFC5883].
This BFD implementation is a multisession daemon with an [OpenAPI3] management interface. The daemon is managed entirely through its management API, there is no static configuration.
Peers are defined as IP addresses (IPv4 or IPv6). A session is created for each peer. Session status may be queried through the management API. The well known BFD multihop UDP port 4784 is used for all communications.
A default transmission rate of one control message per second is used. This value may be modified on a per-session basis through the management API.
A management CLI is also included in this implementation. It is simply a client of the management API. By default the management API listens on TCP port 0xbfdd (49117).
A Rust client library is provided for implementing management API clients.
,------,
,------, |
| peer |-'
'------'
,---------------,
| ,---------, |
| ,---------, | |
| | session |-' |
| '---------' | bfdd
| ,-----------, |
| | admin | |
| '-----------' |
'---------------'
,--------,
,--------, |
| client |-'
'--------'
-
[RFC5880] Bidirectional Forwarding Detection (BFD)
-
[RFC5883] Bidirectional Forwarding Detection (BFD) for Multihop Paths
-
[OpenAPI3] OpenAPI Specification v3.0.0