
Bidirectional Forwarding Detection (BFD) provides a universal and standard fast fault detection mechanism that is independent of media and protocols. This mechanism is used to quickly detect communication faults between systems. BFD technology is relatively mature. However, if many BFD sessions are configured to detect links, their negotiation time gets longer, reducing system performance. In this case, you can configure SBFD — a simplified BFD mechanism — which speeds up BFD session negotiation and improves the flexibility of path detection for nodes across the network by simplifying the BFD state machine.
Why Do We Need SBFD?
BFD provides a universal and standard fast fault detection mechanism that is independent of media and protocols. This mechanism is used to quickly detect communication faults between systems.
In the BFD detection mechanism, two systems establish a BFD session, and negotiate the session based on the parameters carried in BFD packets. BFD session negotiation uses the three-way handshake mechanism. After successful negotiation, BFD packets are periodically sent along the path between the two systems based on the negotiated packet sending and receiving time. Having many BFD sessions configured to detect links prolongs BFD session negotiation, reducing system performance.
SBFD simplifies the BFD session negotiation mechanism. An SBFD session consists of an initiator and a reflector. The initiator (responsible for detection) sends an SBFD packet to the reflector to trigger session negotiation, and the reflector only reflects back the packet sent by the initiator. This speeds up BFD session negotiation and improves the flexibility of path detection for nodes across the network.
How Does SBFD Work?
The session state of the SBFD initiator can only be Up or Down, and it can only send packets carrying the Up or Down state. The reflector does not proactively send SBFD packets; it only verifies the parameters of SBFD packets to reflect the packets back. The state of the reflected packets can only be Up or AdminDown. If the reflector is not in the working state, it sets the packet state to AdminDown.
Initial state: The initiator first sends an SBFD packet in which the initial state is Down to the reflector.
State transition: The initiator sets the local SBFD session state to Up if it receives a reflected packet carrying the Up state. The initiator sets the local SBFD session state to Down either if it receives a reflected packet carrying the AdminDown state or does not receive any reflected packet before the timer expires.
State retention: If the initiator is in the Up state and receives a reflected packet carrying the Up state, the local SBFD session remains in the Up state. If the initiator is in the Down state and receives a reflected packet carrying the AdminDown state or does not receive any packet before the timer expires, the local SBFD session remains in the Down state.
The initiator (responsible for detection) sends an SBFD packet to the reflector. The initial state of the SBFD packet is Down.
The reflector is not running an SBFD state machine or detection mechanism, and therefore it does not proactively send SBFD packets. Instead, it only reflects back the received SBFD packets. After receiving an SBFD packet from the initiator, the reflector checks whether the SBFD discriminator carried in the packet is the same as the locally configured global SBFD discriminator. If they do not match, the packet is discarded. If they match and the reflector is in the working state, the reflector reflects back the packet. If they match but the reflector is not in the working state, the reflector sets the state in the packet to AdminDown.

SBFD session negotiation

SBFD state machine of the initiator
For more information, see SBFD