Subject: Label space of a label advertised through MPLS-BGP

From: [email-masked]
Date: Wed, 22 Nov 2000 12:12:01 -0800

Hi  All,
     Suppose two LSRs A and B are BGP peers and are not directly adjacent.  When
the egress LSR (B) advertises a FEC and the corresponding lable to the ingree
LSR (A), in which label space should the advertised label reside?   Should B
always use its per-platform label space in this situation?  When B receives a
labeled  packet in the FEC routed through A, how can B unambiguously interpret
the label (assuming PHP is used)?   See figure8.4 of Bruce Davie's book on MPLS
for example of this scenario.

     Thanks for your answer.

-- James Huang

---

From: Shahram Davari <[email-masked]>
Date: Mon, 27 Nov 2000 13:50:46 -0800

Hi James,

> we need to search for a value which does 
> not conflict
> with the label spaces of the interfaces that this label could 
> arrive on.
> 

Actually we don't need to do any search. During the node configuration, a part of the per-interface label spaces could be set aside for per-platform label space. Then we could be sure there is no conflict.

> Also, what was once a outer label could become an inner label due to
> protection switching/path protection.

If we expect this to happen, we also need to use per-platform label space for the outer tunnel. 

Regards,
-Shahram

---

From: Shahram Davari <[email-masked]>
Date: Tue, 28 Nov 2000 09:15:15 -0800

Hi James,

> > If we expect this to happen, we also need to use 
> per-platform label space
> > for the outer tunnel. 
> 
> If I understand you correctly, your answer to the original question
> (about MPLS-BGP labels), can be summarized as "clever label 
> allocation".
> 

Sorry James this was my mistake. In fact you don't need anything special and the previous rule that I mentioned is still valid: "Use per-platform label space for the inner label of tunneled packets"

First of all I assume by protection switching you meant using by-pass tunnels, otherwise you won't have label stacking. With this assumption, let me explain the solution to it by an example:

Assume the working path is F-A-B-C-D, and the protection path is F-A-E-C-D. Assume that labels L1,L2,L3,L4 are used for working path and labels L1,L5,L6,L4 are used for protection path. However to use the protection path as a bypass tunnel node A needs to swap label L1 to another label that has been distributed by C, which I call it X1. It is this X1 that should be from the per-platform label space of C. Label L3,L6 don't need to be from per-platform label space of C.

   L1      L2       L3       L4
F-------A-------B--------C---------D
	  |                |
         -------E--------              
           L5       L6
           X1       X1

Regards,
-Shahram

---

From: "Choudhury, Sanjaya" <[email-masked]>
Date: Tue, 28 Nov 2000 15:46:09 -0500

Hi Shahram! I have some follow-up questions on the rules
you pointed out. 

Q1. Is the rule, "Use per-platform label space for
inner label of tunneled packets" is true for ALL cases ?

Q2. Is the following approach for allocation of label for
inner label incorrect ?

Consider the following case:
1. R1 & R5 are two LSRs controlled by enterprise1
2. R2, R3 and R4 are three LSRs controlled by provider1
3. LSP Tunnel L1 originates at R2 and terminates at R4
   a. Label between R4 & R3 is L1 (from interface label space)
   b. Label between R3 and R2 is L1' (from interface label space)
   c. Assume that the LSP has been advertised as link into ISIS/OSPF
	R1----------R2-------R3-------R4-------R5
(LSP L1)		----L1'------L1----	

Now, if one has to create a LSP L2 between R1 and R5
can the following scheme be used ? 

4. LSP L2 originates from R1 and terminates at R5
   a. Label between R5 and R4 is L2 (from interface label space)
   b. Label between R4 and R2 is L2' (from interface label space)
	This Label L2' will be the second level label until R2.	
   c. Label between R2 and R1 is L2" (from interface label space)

	R1----------R2-------R3-------R4-------R5
(LSP L1)		----L1'-------L1----	  
(LSP L2)----L2"-----L1'|L2'-----L1|L2'---L2---

Q3. You also pointed out that following: "Also note that any label
that has been drawn from the per-platform label space should not 
be used any more by the per-interface label spaces."

The LSR MIB (lsr-mib-08) states that the 
mplsInterfaceParticipationType for a specific MPLS Interface can
either be perPlatform(0) or perInterface(1). Does one have to take
out label drawn from the per-platform label space, from the label
spaces of interface that are not participating in the perPlatform
label space ?

Thanks for your help,
sanjay

-----Original Message-----
From: Shahram Davari [mailto:[email-masked]]
Sent: Tuesday, November 28, 2000 12:15 PM
To: [email-masked]'
Cc: [email-masked]; [email-masked]
Subject: RE: Label space of a label advertised through MPLS-BGP

Hi James,

> (about MPLS-BGP labels), can be summarized as "clever label 

Sorry James this was my mistake. In fact you don't need anything special and
the previous rule that I mentioned is still valid: "Use per-platform label
space for the inner label of tunneled packets"

First of all I assume by protection switching you meant using by-pass
tunnels, otherwise you won't have label stacking. With this assumption, let
me explain the solution to it by an example:

Assume the working path is F-A-B-C-D, and the protection path is F-A-E-C-D.
Assume that labels L1,L2,L3,L4 are used for working path and labels
L1,L5,L6,L4 are used for protection path. However to use the protection path
as a bypass tunnel node A needs to swap label L1 to another label that has
been distributed by C, which I call it X1. It is this X1 that should be from
the per-platform label space of C. Label L3,L6 don't need to be from
per-platform label space of C.

   L1      L2       L3       L4
         -------E--------              
           L5       L6
           X1       X1

Regards,
-Shahram

---

From: Shahram Davari <[email-masked]>
Date: Tue, 28 Nov 2000 13:10:20 -0800

Hi,

> inner label of tunneled packets" is true for ALL cases ?

No. If somehow you know from which interface an assigned label will arrive, we could use per-interface labels. The reason that I said use per-platform label is because MPLS is mainly used for TE, so the LSP could change dynamically and therefore the interface that the label arrives could change.
> (LSP L2)----L2"-----L1'|L2'-----L1|L2'---L2---

Yes. This works as long as the LSP tunnel L1 is static or at least terminates at the same R4 interface.

> spaces of interface that are not participating in the perPlatform

I don't understand what you mean by "interface that are not participating in the perPlatform label space". If you mean that you are 100% sure that no per-platform label could arrive at a particular interface, then you probably don't have to exclude them from that per-interface label space. But a router has millions of labels, which I doubt will be fully used. It probably is safer to exclude the per-platform labels from all per-interface label spaces.

Regards,
-Shahram