Subject: [mpls] Questrion Re: MPLS originating forwarding behavior

From: David Charlap <[email-masked]>
Date: Mon, 18 Jan 2010 15:45:08 -0500

What is the correct behavior for an MPLS forwarder under this situation:

- An unlabeled packet arrives on interface X
- The packet matches a FEC that has an associated originating LSP
- The egress interface for the LSP (its outsegment) is interface X

Is this a case of a forwarding loop, where the packet should be dropped?  In a non-MPLS situation where the route table's next-hop is the same interface the packet arrived on, it would clearly be considered a loop and the packet would be dropped, but I'm not so certain about this behavior in the MPLS world.

I'm thinking that in the MPLS case (labeled packet leaves on the same interface the unlabeled packet arrived on), it's not really a loop, because the next-hop node isn't necessarily going to forward the packet back, the way it would in a classical IP-forwarding scenario.  In the case of an LDP network, it would be the case, because labels there follow the route table, but in the case of RSVP-TE or provisioned LSPs, that labeled packet may not necessarily be in a loop, therefore the forwarder should forward the packet according to the NHLFE, without regard to the interface it arrived on.

Does this sound right?

-- David

---

From: Ron Bonica <[email-masked]>
Date: Mon, 18 Jan 2010 16:11:50 -0500

David,

It is not a loop. In fact, there are many good reasons to do what you
describe. The following is an example:

    A---B---C---D
        <--LSP--

Nodes A, B, C, and D are connected in series, as depicted above. An MPLS
 LSP connects Node D to Node B.

Node D tells Node C about its route to Node A through the LSP. However,
Node B does not tell Node C about its direct route to Node A. So, Node
C's only route to Node A is through Node D and the LSP.

When Node C receives the MPLS encapsulated packet from Node D, it
forwards it to NODE B (based on the MPLS label) not Node D (based on the
IP header). So, there is no loop.

                                            Ron