Bidirectional Forwarding Detection (BFD)

Hello Aashish

When configuring BFD, you configure two timer intervals. The interval, which is how often the local device will send BFD packets, and the min_rx interval which is how often we expect to receive a BFD packet from the neighbor. So the frequency with which BFD packets are sent can be different for each direction.

For example, for a topology with R1 and R2, we can have the following configuration:

R1 interval 50
R1 min_rx 100

R2 interval 100
R2 min_rx 50

The interval on the local device should correspond with the min_rx on the remote device.

Now when min_rx = interval, then you have the same intervals for both directions, therefore what the multiplier is applied to isn’t readily understandable. But if these values are different, then the multiplier becomes more significant.

According to RFC 5880 the multiplier is applied to the min_rx value, because it determines if the neighbor is down or not, and this depends upon the expected frequency of BFD packets received from that neighbor, which is defined by min_rx.

Actually, these detection times can be negotiated according to the RFC, and according to Cisco’s relevant documentation once the routing protocol has been enabled to use BFD. In such a case, as stated in the RFC:

…the Detection Time calculated in the local system is equal to the value of the multiplier received from the remote system, multiplied by the agreed transmit interval of the remote system… The multiplier value is roughly the number of packets that have to be missed in a row to declare the session to be down.

So beyond the statically assigned values for BFD, once the routing protocol is up and running, these values seem to be renegotiated between the neighbours.

I hope this has been helpful!

Laz

2 Likes