Bidirectional Forwarding Detection (BFD) is a low-overhead, short-duration method for detection of failures in the path between adjacent forwarding engines, including the interfaces, data link(s), and, to the extent possible, the forwarding engines themselves. It also provides a single mechanism that can be used for liveness detection between a pair of devices over any media, at any protocol layer, with a wide range of Detection Times and overhead, to avoid proliferation of different methods. BFD operates in two modes:

  • Asynchronous mode: In this mode, an operating device periodically sends BFD control packets. If the device does not receive BFD control packet from the peer within the specified interval, it tears down the BFD session.
  • Demand mode: in this mode, it is assumed that an operating device has an independent way of verifying that it has connectivity to the peer. Once a BFD session is established, one device may requrest that the other device stops sending BFD control packets, except when the connection needs to be explicity validated, in which case a short sequence of BFD Control packets is exchanged. Demand mode may operate independently in each direction, or simultaneously.

In addition to these two modes, BFD has an echo function. When echo is active, an operating device periodically sends BFD echo packets. The peer device returns the received BFD echo packets back without processing them (it loops them through its forwarding path). If the sending device does not receive BFD echo packets from the peer within a specified interval, the session is considered down. Since the echo function is handling the task of detection, the rate of periodic transmission of control packets may be reduced in asynchronous mode, and completely eliminated in demand mode.