RFC Errata


Errata Search

 
Source of RFC  
Summary Table Full Records

RFC 5880, "Bidirectional Forwarding Detection (BFD)", June 2010

Source of RFC: bfd (rtg)

Errata ID: 5205
Status: Held for Document Update
Type: Technical

Reported By: Dave Katz
Date Reported: 2017-12-14
Held for Document Update by: Alvaro Retana
Date Held: 2018-03-14

Section 6.8.4 says:

If Demand mode is not active, and a period of time equal to the
Detection Time passes without receiving a BFD Control packet from the
remote system, and bfd.SessionState is Init or Up, the session has
gone down -- the local system MUST set bfd.SessionState to Down and
bfd.LocalDiag to 1 (Control Detection Time Expired).

It should say:

If Demand mode is not active, and a period of time equal to the
Detection Time passes without receiving a BFD Control packet from the
remote system, the session has
gone down -- the local system MUST set bfd.SessionState to Down and
bfd.LocalDiag to 1 (Control Detection Time Expired).

Notes:

This is based on an email I received from Anil Kumar of Nokia (anil.kumar_t_v@nokia.com).

The language as originally written made a session timeout a no-op when in Down state. This was a gratuitous attempt to avoid a null state transition, but had the side effect of not setting the diag code (and otherwise is no different).

This turns out to be problematic in the case where system "A" signals AdminDown, causing system "B" to respond with Down state. If the link then fails, the existing verbiage implies that "B" will not report the detection timeout, even locally.

If the link fails in a unidirectional manner (such that "B" is deaf), B will give no indication of a timeout in its outgoing Control packets back to A (which can in fact hear them).

Making the suggested change should ensure that the diagnostic code is always set to Detection Time Expired when Control packets stop arriving, even if the far end system was previously reporting AdminDown.

Report New Errata