Subject: LDP - question about partially setup LSPs

From: David Charlap <[email-masked]>
Date: Fri, 26 Jan 2001 16:42:09 -0500

Here's a hypothetical network:

	A ----- B ----- C

The network is running LDP and is configured for unordered, downstream
unsolicited label distribution.

Assume that the IGP knows about one prefix, which is reachable through
router C.

Suppose now, that B sends out a label mapping for this prefix, and C has
not yet sent out its label mapping.

A, since it has received a label mapping, decides to start labelling
traffic for this prefix, and forwards it on to B.

B now receives this traffic, but does not have a label mapping for the
FEC.  What should it do?

I would assume, based on section 3.22 of RFC 3031 that router B should
discard these packets until it receives a label mapping from C.

A coworker here believes that router B should pop the label stack and
forward the unlabeled packet based on its routing tables.  He claims
that section 3.22 doesn't really apply.  His rationale is that:

	- We can assume no routing loops, because the LSP from ingress
	  to this point is following the same IGP shortest path that
	  it would be forwarding along.  If there's a loop in the IGP,
	  it will still be there after receiving a label mapping.

	- We know we'll be able to forwrad the packet based on its IP
	  header, because router A used that same header against the
	  same IGP tables when it determined the initial label for the
	  packet.

	- C may (for some reason) choose to never send a label mapping
	  for the prefix.  Since the network is downstream unsolicited,
	  it may never receive a request.  It wouldn't make sense for
	  this legal scenario to result in a black hole.

I counter his arguments by claiming that:

	- We don't know there won't be routing loops.  The IGP may not
	  yet have converged to a stable state.  When the last label
	  mapping message is sent, the loop detection features of LDP
	  (if turned on, of course) will detect it and prevent any
	  traffic from flowing until the IGP stabilizes.

	- We can't assume that B has the same routing table that A and
	  C has.  If A and C are border routers, they may be running an
	  EGP (like BGP) and know about far more prefixes than a core
	  router, which would only be running an IGP (like OSPF).

	  The FEC for the LSP may be one of C's addresses, and the
	  packet destination may be an address many hops beyond C.  B
	  does not necessarily have any clue how to get to the
	  destination address in the absence of the LSP.

	- C will eventually send a label mapping for everything in its
	  routing table.  It would be a broken implementation for it to
	  arbitrarily choose to not map a prefix without deliberate
	  operator intervention.  If an operator chooses to configure
	  this, then he probably intends to create a black hole.  If
	  he really wants the label to be popped, he can send a NULL
	  label mapping an explicitly request it.

So, which of us is correct here?

-- David

---

From: Giles Heron <[email-masked]>
Date: Mon, 29 Jan 2001 22:01:57 +0000

I would agree with you on this one.

Your second point is key.  How can you know that the destination address
in the packet is an IGP prefix?  I suspect that many networks will want
to run BGP edge-to-edge, but to have only IGP routes in the core.

In addition to this you have the issue of MPLS VPN and Layer 2 over MPLS
traffic.  Either one of these will generate a label stack in which the
innermost label is assigned edge-to-edge and is not visible to the
intermediate devices.

Giles

-- 
===================================================
Giles Heron - IP Architect - Level 3 Communications
phone: +44 20 7864 0719     mobile: +44 7880 506185
===================================================