Subject: [mpls] BFD Packet Flow

From: RAKESH GUPTA <[email-masked]>
Date: Thu, 12 Aug 2010 15:50:34 +0530 (IST)

hi,

I have query regarding BFD packet flow when LSP Ping is used for bootstrapping. 

As per my understanding from the RFC 5880 and RFC 5884 when LSP Ping is used for bootstrapping the remote end MUST reply with BFD control in response to the LSPPing.

The specification does not clearly specify about the Stat parameter value that should be returned in the response of LSPPing. Should it have the value Init or Down? Or it might be possible to return no stat information.

Can someone please share the exact packet flow that happens during BFD session set up with LSPPing in Bootstrap till the session comes into UP state?

thanks a lot in advance for ur help,
rakesh

---

From: Dave Katz <[email-masked]>
Date: Fri, 13 Aug 2010 15:39:20 -0600

I suppose the source of confusion might be RFC 5884's choice of verbiage:

   On receipt of the LSP Ping Echo request message, the egress LSR MUST
   send a BFD Control packet to the ingress LSR...

This might give the impression that LSP Ping is just transmitting BFD control packets willy-nilly without any BFD context.  But it also says:

   A BFD session is bootstrapped using LSP Ping.

and

   A BFD session may be established for a FEC associated with an MPLS LSP.  

This seems unambiguous that a BFD session is being established, and the procedure for doing so is spelled out clearly in RFC 5880.  I believe the following to be unambiguous:

   State (Sta)

      Set to the value indicated by bfd.SessionState.

and

   bfd.SessionState

      ...This variable MUST be initialized to Down.

One might be tempted to start in Init state in order to save one packet during session establishment, but in doing so one would be breaking the semantics of the protocol, in particular the three-way handshake through session failure.

--Dave

On Aug 12, 2010, at 4:20 AM, RAKESH GUPTA wrote:

> _______________________________________________
> mpls mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/mpls

---

From: RAKESH GUPTA <[email-masked]>
Date: Mon, 16 Aug 2010 21:09:41 +0530 (IST)

Thanks Dave.

--- On Sat, 14/8/10, Dave Katz <[email-masked]> wrote:

From: Dave Katz <[email-masked]>
Subject: Re: [mpls] BFD Packet Flow
To: "RAKESH GUPTA" <[email-masked]>
Cc: [email-masked], "[email-masked] WG" <[email-masked]>
Date: Saturday, 14 August, 2010, 3:09 AM

and
   bfd.SessionState

---

From: "Weingarten, Yaacov (NSN - IL/Hod HaSharon)" <[email-masked]>
Date: Thu, 19 Aug 2010 11:08:30 +0200

Hi, 

Just to verify that I understand the flow of messages and the state of
the BFD Session - is the following flow correct -

Assume a LSP between LSR-A and LSR-Z -

1. Both LSRs initialize the BFD Session and set the state to Down

2. LSR-A (the ingress LSR) sends a LSP-Ping (with the Discriminator TLV)
to LSR-Z - both sessions still in Down state.

3. LSR-Z receives the LSP-Ping, and (assuming that LSR-Z is in Active
mode) sends a BFD Control Packet with its own Discriminator, the
Discriminator received from the LSP-Ping, and State=Down to LSR-A, both
session still in Down State.

4. LSR-A receives the BFD Control and switches to Init state (as per
RFC5880), and sends a BFD Control Packet with State=Init to LSR-Z

5. LSR-Z receives the BFD Control and switches to Up state, and sends a
BFD Control Packet with State=Up to LSR-A

6. LSR-A receives the BFD Control and switches to UP state

Additional question - regarding step 3 above - must LSR-Z be in Active
mode? What happens if LSR-Z is in Passive mode and LSR-A is in Active
mode?

Thanx and BR,

Yaacov Weingarten

Nokia Siemens Networks

________________________________

From: [email-masked] [mailto:[email-masked]] On
Behalf Of ext Dave Katz
Sent: Saturday, August 14, 2010 00:39
To: RAKESH GUPTA
Cc: [email-masked]; [email-masked] WG
Subject: Re: [mpls] BFD Packet Flow

I suppose the source of confusion might be RFC 5884's choice of
verbiage:

This might give the impression that LSP Ping is just transmitting BFD
control packets willy-nilly without any BFD context.  But it also says:

and

   A BFD session may be established for a FEC associated with an MPLS
LSP.  

This seems unambiguous that a BFD session is being established, and the
procedure for doing so is spelled out clearly in RFC 5880.  I believe
the following to be unambiguous:

   State (Sta)

and
 
   bfd.SessionState

One might be tempted to start in Init state in order to save one packet
during session establishment, but in doing so one would be breaking the
semantics of the protocol, in particular the three-way handshake through
session failure.

--Dave

hi,

I have query regarding BFD packet flow when LSP Ping is used for
bootstrapping. 

As per my understanding from the RFC 5880 and RFC 5884 when LSP Ping is
used for bootstrapping the remote end MUST reply with BFD control in
response to the LSPPing.

The specification does not clearly specify about the Stat parameter
value that should be returned in the response of LSPPing. Should it have
the value Init or Down? Or it might be possible to return no stat
information.

Can someone please share the exact packet flow that happens during BFD
session set up with LSPPing in Bootstrap till the session comes into UP
state?

---

From: Greg Mirsky <[email-masked]>
Date: Thu, 19 Aug 2010 09:21:36 -0700

Dear Yaacov,
it is my understanding, that after receiving LSP Ping Request (step 3) LSR-Z
must send LSP Ping Reply with My Discriminator. Then, even if LSR-Z is in
Passive mode, LSR-A will receive LSR-Z's discriminator and can advance to
Init state.

Regards,
Greg

On Thu, Aug 19, 2010 at 2:08 AM, Weingarten, Yaacov (NSN - IL/Hod HaSharon)
<[email-masked]> wrote:

>  Hi,
>
>
>
> Just to verify that I understand the flow of messages and the state of the
> BFD Session – is the following flow correct –
>
>
>
> Assume a LSP between LSR-A and LSR-Z –
>
> 2. LSR-A (the ingress LSR) sends a LSP-Ping (with the Discriminator TLV) to
> LSR-Z – both sessions still in Down state.
>
> 3. LSR-Z receives the LSP-Ping, and (assuming that LSR-Z is in Active mode)
> sends a BFD Control Packet with its own Discriminator, the Discriminator
> received from the LSP-Ping, and State=Down to LSR-A, both session still in
> Down State.
>
> 5. LSR-Z receives the BFD Control and switches to Up state, and sends a BFD
> Control Packet with State=Up to LSR-A
>
> Additional question – regarding step 3 above – must LSR-Z be in Active
> mode? What happens if LSR-Z is in Passive mode and LSR-A is in Active mode?
>
>
>
> Thanx and BR,
>
> Yaacov Weingarten
>
> Nokia Siemens Networks
>
>
>  ------------------------------
>
> *From:* [email-masked] [mailto:[email-masked]] *On
> Behalf Of *ext Dave Katz
> *Sent:* Saturday, August 14, 2010 00:39
> *To:* RAKESH GUPTA
>
> *Cc:* [email-masked]; [email-masked] WG
> *Subject:* Re: [mpls] BFD Packet Flow
>
>
>
> procedure for doing so is spelled out clearly in RFC 5880.  I believe the
> following to be unambiguous:
>
>
>
>    State (Sta)
>
>
>
> The specification does not clearly specify about the Stat parameter value
> that should be returned in the response of LSPPing. Should it have the value
> Init or Down? Or it might be possible to return no stat information.
>

---

From: Dave Katz <[email-masked]>
Date: Sat, 21 Aug 2010 12:45:09 -0700

On Aug 19, 2010, at 2:08 AM, Weingarten, Yaacov (NSN - IL/Hod HaSharon) wrote:

> Hi,
>  
> Just to verify that I understand the flow of messages and the state of the BFD Session – is the following flow correct –
>  
> 2. LSR-A (the ingress LSR) sends a LSP-Ping (with the Discriminator TLV) to LSR-Z – both sessions still in Down state.
> 3. LSR-Z receives the LSP-Ping, and (assuming that LSR-Z is in Active mode) sends a BFD Control Packet with its own Discriminator, the Discriminator received from the LSP-Ping, and State=Down to LSR-A, both session still in Down State.
> 4. LSR-A receives the BFD Control and switches to Init state (as per RFC5880), and sends a BFD Control Packet with State=Init to LSR-Z
> 5. LSR-Z receives the BFD Control and switches to Up state, and sends a BFD Control Packet with State=Up to LSR-A
> Additional question – regarding step 3 above – must LSR-Z be in Active mode? What happens if LSR-Z is in Passive mode and LSR-A is in Active mode?

In some sense the question is meaningless;  the active and passive roles are really a way of describing the way the protocol behaves in a larger context.  In the LSP context, LSR-Z is by definition in the active role because it must send the first BFD packet.

--Dave

---

From: [email-masked]
Date: Mon, 23 Aug 2010 11:08:31 +0800

Hi Greg,

Acc to section 6 (the second paragraph) of RFC 5884:
 "The egress LSR MAY respond with an LSP Ping Echo
reply message that carries the local discriminator assigned by it for
the BFD session."
So it should be said like that in step 3, there MAY be another action for 
the LSR-Z to respond with an LSP Ping Echo reply, but it's not must.

And I have a small comment on step 2, "both sessions still in Down state" 
may be inaccurate and "both session ends still in Down state" is better.

Best Regards,
Xiao Min

Greg Mirsky <[email-masked]> 
发件人:  [email-masked]
2010/08/20 00:21

收件人
"Weingarten, Yaacov (NSN - IL/Hod HaSharon)" <[email-masked]>
抄送
[email-masked], [email-masked], RAKESH GUPTA <[email-masked]>
主题
Re: [mpls] BFD Packet Flow

Dear Yaacov,
it is my understanding, that after receiving LSP Ping Request (step 3) 
LSR-Z must send LSP Ping Reply with My Discriminator. Then, even if LSR-Z 
is in Passive mode, LSR-A will receive LSR-Z's discriminator and can 
advance to Init state.

Regards,
Greg

On Thu, Aug 19, 2010 at 2:08 AM, Weingarten, Yaacov (NSN - IL/Hod 
HaSharon) <[email-masked]> wrote:
Hi, 

to LSR-Z – both sessions still in Down state.

Thanx and BR,
Yaacov Weingarten
Nokia Siemens Networks

From: [email-masked] [mailto:[email-masked]] On Behalf 
Of ext Dave Katz
Sent: Saturday, August 14, 2010 00:39
To: RAKESH GUPTA

 

and

 
   State (Sta)

and
 
   bfd.SessionState

 
--Dave

hi,

The specification does not clearly specify about the Stat parameter value 
that should be returned in the response of LSPPing. Should it have the 
value Init or Down? Or it might be possible to return no stat information.