Subject: RE: Valid Operations on MPLS Labels

From: "Kullberg, Alan" <[email-masked]>
Date: Mon, 31 Jan 2000 09:37:36 -0500

> -----Original Message-----
> From: Pathangi N Janardhanan [mailto:[email-masked]]
> Sent: Monday, January 31, 2000 9:24 AM
> To: Kullberg, Alan
> Cc: [email-masked]
> Subject: Re: Valid Operations on MPLS Labels
> 
> 
> Hi,
> 
> > Here's an example where LSR-B would perform a POP, SWAP, 
> and then PUSH.
> > In the following set of LSRs, A & B and B & C are LDP 
> targeted peers.
> 
>   This could be modelled as a POP followed by a SWAP if the operations
> can be defined for label stacks, rather than single labels. That way
> the maximum number of operations would always be two.

I don't think so.  What if another LSP between A & B is also using the
A123B LSP for a tunnel for the A to B leg and then goes from B to
another LSR D (connected directly to B)  In this case, the ABC LSP
and the ABD LSP are sharing the A123B LSP for tunneling between A & B.
Thus, when a packet is received at B with the A123B label on top, the
label must be POPped followed by an ILM lookup on the next level label,
which may be the ABC label or the ABD label.  When it is the ABC label,
a SWAP followed by a PUSH B456C label is performed.  When it is the ABD
label, a just a SWAP is performed.

Since multiple LSPs (and hence, multiple different labels) can share
an LSP for tunneling between 2 LSRs, I think the label stack must be
processed label by label.

                 D
                 |
     A           B           C
      \         / \         /
       1---2---3   4---5---6

Alan

> 
> Jana
> 
> > An LSP has been setup from A to B to C.  In addition, there 
> are 2 other
> > LSPs, one from A to B using 1, 2, & 3, and another from B 
> to C using 4,
> > 5, & 6.  The ABC LSP uses label stacking between A & B and B & C.
> > Assuming no PHP, when B receives a labeled packet, there 
> are 2 labels.
> > The A123B level label is POPped, then a SWAP of the ABC level label,
> > then a PUSH of the B456C level label.
> > 
> >     A           B           C
> >      \         / \         /
> >       1---2---3   4---5---6
> > 
> > Alan
> > 
> > > -----Original Message-----
> > > From: Bora Akyol [mailto:[email-masked]]
> > > Sent: Friday, January 28, 2000 5:47 PM
> > > To: [email-masked]; [email-masked]
> > > Subject: Valid Operations on MPLS Labels
> > >
> > >
> > > What are valid operations that can be performed on MPLS labels?
> > >
> > > Yes sounds simple, but is it really?
> > >
> > > 1. SWAP: Lookup on incoming label, determine egress
> > > interface, outgoing
> > > label, swap labels, update TTL.
> > >
> > > 2. PUSH: Look up on incoming label, determine egress 
> interface, swap
> > > topmost label and push one or more labels. Fix TTL in top 
> most label.
> > >
> > > 3. POP: This is where the MPLS arch document is confusing.
> > > Assuming that
> > > Penultimate hop popping is not used:
> > >  So far we know that we have to lookup on incoming label, 
> determine
> > > operation (in this case POP), pop topmost label.
> > >
> > > If it reveals an IP packet, we do a route lookup and 
> everything is OK.
> > >
> > > If it reveals an MPLS packet underneath, then what are valid
> > > operations
> > > that can be performed on the label that emerges after the
> > > topmost label
> > > is popped. I would like to know whether a swap or a push 
> can follow a
> > > pop. I am willing to do another lookup on the resultant 
> packet, but
> > > don't want to get into a recursive pop or push paradigm.
> > >
> > > Any thoughts?
> > >
> > > Bora
> > >
> > >
> > >
> > >
> 
> -- 
> -----
> Pathangi N Janardhanan
> HCL Technologies India Ltd.,
> D-12 & 12-B, 3rd South Street,
> SIDCO Industrial Estate,
> Ambattur Chennai - 600 058
> India
> 
> Phone Off : + 91 44 230711/6230712 ext. 2535
> Phone Res: +91 44 3743690
> Fax : +91 44 6244213
> e-mail : [email-masked] <mailto:[email-masked]>
>

---

From: Pathangi N Janardhanan <[email-masked]>
Date: Mon, 31 Jan 2000 20:21:22 +0530

Hi,

> processed label by label.

  Yes, the processing of incoming label stack must be performed on a 
label by label basis, what I was refering to was the outgoing labels,
we could model a SWAP and PUSH on the outgoing side as a single SWAP
of the appropriate label stack.

> > > > don't want to get into a recursive pop or push paradigm.

  considering a stack of depth greater than 2, we may have to
recurisvely POP labels if we are the egress for more than one level.

Jana