Subject: Connection collision in BFD

From: sambath kumar <[email-masked]>
Date: Thu, 15 Apr 2010 13:57:57 -0700 (PDT)

Hi,

   How does connection collision gets resolved in BFD? What if 2 systems are
trying to create BFD sessions to each other at the same time. Is there is a possibility 
that we might land up with 2 sessions?

 Regards,
Sambath

---

From: Satyam Sinha <[email-masked]>
Date: Thu, 15 Apr 2010 14:16:40 -0700

Hi Sambath,

A BFD session is identified by remote-discr/local-discr pair so its possible that you could have criss-cross on multiple BFD sessions between two systems (and thats acceptable). However, when you have only one BFD session between the two systems, you will get only one session as both ends have allocated only one discriminator each. 

Can you explain the interaction which could possibly get two sessions ?

Regards,

Satyam

Date: Thu, 15 Apr 2010 13:57:57 -0700
From: [email-masked]
Subject: Connection collision in BFD
To: [email-masked]

Hi,

_________________________________________________________________
Hotmail is redefining busy with tools for the New Busy. Get more from your inbox.
http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_2

---

From: "Shahram Davari" <[email-masked]>
Date: Thu, 15 Apr 2010 14:18:21 -0700

Hi,

This is the normal operation when both systems are in Active mode. It is the responsibility of each system to bind these two stream to each other.

Regards,
Shahram

From: [email-masked] [mailto:[email-masked]] On Behalf Of sambath kumar
Sent: Thursday, April 15, 2010 1:58 PM
To: [email-masked]
Subject: Connection collision in BFD

Hi,

Regards,
Sambath

---

From: sambath kumar <[email-masked]>
Date: Thu, 15 Apr 2010 14:39:11 -0700 (PDT)

Hi Shahram/ Satyam,

  Thanks for your answers. I realize now that it is system's responsibility to
tie the 2 streams together.

Regards,
Sambath

________________________________
From: Shahram Davari <[email-masked]>
To: sambath kumar <[email-masked]>; "[email-masked]" <[email-masked]>
Sent: Thu, April 15, 2010 2:18:21 PM
Subject: RE: Connection collision in BFD

Hi,
 
This is the normal operation when both systems are in Active
mode. It is the responsibility of each system to bind these two stream to each
other.
 
Regards,
Shahram
 
From:[email-masked] [mailto:[email-masked]] On Behalf Of sambath
kumar
Sent: Thursday, April 15, 2010 1:58 PM
To: [email-masked]
Subject: Connection collision in BFD
 
Hi,

   How does connection collision gets resolved in BFD? What if 2
systems are
trying to create BFD sessions to each other at the same time. Is there is a
possibility 
that we might land up with 2 sessions?
 
Regards,
Sambath

---

From: Dave Katz <[email-masked]>
Date: Thu, 15 Apr 2010 21:10:19 -0700

This functionality varies depending on the application of BFD.

In particular, this cannot happen in 1hop mode because of the way the  
demuxing is defined therein:

3. Initialization and Demultiplexing

    In this application, there will be only a single BFD session between
    two systems over a given interface (logical or physical) for a
    particular protocol.  The BFD session must be bound to this
    interface.  As such, both sides of a session MUST take the "Active"
    role (sending initial BFD Control packets with a zero value of Your
    Discriminator) and any BFD packet from the remote machine with a  
zero
    value of Your Discriminator MUST be associated with the session  
bound
    to the remote system, interface, and protocol.

So this works even when packets from both sides are in flight  
simultaneously, since each will have YourDisc == 0, and thus both will  
bind to the (only) session.  In this case it only takes one packet in  
each direction to complete the binding;  without the race condition it  
takes two packets in one direction and one packet in the other.

In multihop BFD, there are three scenarios spelled out in section 4.   
BFD-over-MPLS specifies the out-of-band approach.  Other multihop BFD  
usually uses the bind-single-session-to-address model, but in this  
case it is a little ambiguous.  Note that if one end thinks it is  
operating on a unidirectional link and the other end doesn't realize  
it via some out-of-band mechanism and so is doing address binding, the  
two ends will still convierge to a single session so long as the  
address on the undirectional sender end remains stable.  And if that  
address *does* change, there will temporarily be two sessions (until  
the first times out, since no more packets will be forthcoming from  
the old address.)  The implications of *that* are limited to nil,  
since it is up to whatever application/protocol is listening to the  
BFD "service" to know which session to bind to.  Either that  
application will be address agile (and will know the session to bind  
to) or it will fail on its own due to the address change.

--Dave

On Apr 15, 2010, at 2:39 PM, sambath kumar wrote:

> To: sambath kumar <[email-masked]>; "[email-masked]" <[email-masked] 
> >
> This is the normal operation when both systems are in Active mode.  
> It is the responsibility of each system to bind these two stream to  
> each other.
>
> Regards,
> Shahram
>