Working Group,

Greg Mirsky brought to our attention that we may have an undefined edge case
covering Passive mode in RFC 5880.  This discussion is partially a result of
prior analysis about Demand mode, but Demand mode is not the relevant detail
here.

Presuming Greg's observation is correct, this is at least deserving an Errata.

Copying selectively from the thread with Greg:

RFC 5880, §6.1:
:   A system taking the
:   Passive role MUST NOT begin sending BFD packets for a particular
:   session until it has received a BFD packet for that session, and thus
:   has learned the remote system's discriminator value

Passive governs the initial connection.  A system desiring to be passive
can't fully go back to being passive until signaling to the remote system
sufficiently to take the session to the Down state.

RFC 5880 §6.8.7:
:   A system MUST NOT transmit BFD Control packets if bfd.RemoteDiscr is
:   zero and the system is taking the Passive role.

We have a session that's transitioning, the RemoteDiscr was known, but
procedure says to clear it:

RFC 5880 §6.8.1:
:   bfd.RemoteDiscr
:
:      The remote discriminator for this BFD session.  This is the
:      discriminator chosen by the remote system, and is totally opaque
:      to the local system.  This MUST be initialized to zero.  If a
:      period of a Detection Time passes without the receipt of a valid,
:      authenticated BFD packet from the remote system, this variable
:      MUST be set to zero.

So, without a deep comb-through of the RFC to find something that causes us
to send Down "long enough", passive mode could indeed imply with pedantic
reading of the RFC that you'd not do work that lets the remote take the
state down.  (See the Daves' caveat about excess pedantry.)

The obvious thing to do here is that we need to send packets in the Down
state for some period.  The reasonable question is, how long?  And even if
we provide a length of time, the obvious point is "is that long enough?"

Since Demand mode isn't a core scenario for the bfd-unsolicited draft, we
don't have the unfortunate circumstance that reporting the BFD state is
difficult.  A session that was Up minimally in the presence of such pedantic
behavior would simply go Down at the Active side once the Detection Interval
expired.

Since bfd-unsolicited has implementations, what do YOUR implementations do?

One option would be to transmit Down for at least DetectMult number of
packets.

-- Jeff

Reply via email to