Subject: BFD alternate path?

From: Glen Kent <[email-masked]>
Date: Mon, 31 May 2010 09:42:11 +0530

Hi,

Assume the link that i have between two BFD enabled routers A and B
goes down. Will BFD, since its riding on top of UDP, automatically
follow the routing table and try to find an alternate path to keep the
connectivity alive?

If Yes, then this will result in BFD session remaining up, while the
link is down. Is this acceptable?

Glen

---

From: Vishwas Manral <[email-masked]>
Date: Sun, 30 May 2010 21:20:27 -0700

Hi Glen,

You are nearly right.

The case however is just the opposite. In most cases however the Route
table calculation will be triggered by topology changes which will be
triggered by BFD.

However in some cases (multihop sessions), the BFD session timers will
be set to higher value so that the lower level sessions can converge
faster (which will result in the session staying up). If we do not
want the behavior we can set the timers to smaller values. This
however is a choice of the operator.

Thanks,
Vishwas

---

From: Glen Kent <[email-masked]>
Date: Tue, 1 Jun 2010 04:26:36 +0530

> be set to higher value so that the lower level sessions can converge

In case of multihop sessions, say between two IBGP  peers, what is a
lower level session here? Is this the IGP?

My doubt is this:

A -- B
|      |
C ---+

A and B are directly connected. A can also reach B via C. I am running
a BFD session between A and B. Since A and B are directly connected,
BFD packets will always use the A-B interface. However, if A-B fails,
then will BFD packets take the alternate path available via C to reach
the other end. I am not sure if this will happen as its a
chicken-and-egg problem - BFD can take the alternate path only if the
IGP recomputes the path. IGP can recompute only when it learns that
A-B has gone down, and its most probably only BFD that can inform the
IGP that A-B has gone down (assume for instance when there is a switch
in between A and B and the switch goes down).

Also, what will happen if there is a default route on both A and B via
C. In that case BFD need not wait for the IGP to reconverge. It can
always take the alternate path. Will in such cases, BFD take the
alternate path and keep the session alive? If it does that then its
wrong as the physical link has indeed gone down.

Glen

---

From: Vishwas Manral <[email-masked]>
Date: Mon, 31 May 2010 16:28:25 -0700

Hi Glen,

If you want to monitor that a session goes over a particular link you
can impose the restriction to a Multihop session in which case the BFD
session will fail.

If we do not impose the restriction the session will stay UP. I do not
see any sort of collision of interests. It depends on what an operator
wants and can get the right behavior using BFD.

Thanks,
Vishwas

---

From: Glen Kent <[email-masked]>
Date: Tue, 1 Jun 2010 05:43:29 +0530

Vishwas,

This might work for a multihop session. How about directly connected
next-hops that i brought up in my previous email.

A -- B
|      |
C ---+

In this case if link A-B fails, will BFD on A and B use the alternate
path via C (assume its the default gateway in for both A and B)? More
details in my previous email.

Glen

---

From: Vishwas Manral <[email-masked]>
Date: Mon, 31 May 2010 18:39:27 -0700

Hi Glen,

In single hop cases the BFD session is generally bound to the
interface. So the BFD session will brought down.

Thanks,
Vishwas

---

From: Glen Kent <[email-masked]>
Date: Tue, 1 Jun 2010 08:30:57 +0530

Hi Vishwas,

Dont intend to be picky, but ..

> interface. So the BFD session will brought down.

You use "generally". Does it mean that there would be instances when
the BFD session for a directly connected nexthop will NOT be tied to
an interface. If so, when and under what circumstances would that
happen?

Glen

---

From: Vishwas Manral <[email-masked]>
Date: Mon, 31 May 2010 20:24:34 -0700

Hi Glen,

If I wanted to monitor if the peer was UP and not just an interface UP
I could use that.

One example I can give you is in LMP, we can have multiple control
channels over individual interfaces for a control adjacency for a
neighbor. So if the peer crashed I would want to bring down the
control adjacency, but if an interface went down I would want to keep
the control adjacency UP.

One way could be have a different BFD session over each control
channel. Another way is to have a control channel which is not bound
to an interface. So in case there is another way the rerouting can
happen even before BFD can trigger it (loss of carrier), we can use a
single BFD session to the peer router.

Hope that is of some help.

Thanks,
Vishwas