Cisco Support Community
Showing results for 
Search instead for 
Did you mean: 

Welcome to Cisco Support Community. We would love to have your feedback.

For an introduction to the new site, click here. If you'd prefer to explore, try our test area to get started. And see here for current known issues.

New Member

MPLS label confusion !

Hi all, i have a very basic question regarding mpls labels. i have read in various books and seen it practically that for directly connected links a router will advertise the prefix with imp null label which is shown as POP tag on the neighoring router. My question is why is this so ?? consider the following scenario





I have enabled mpls ip on links between R1, R2 and R3. When R1 advertises the link between R4 and itself (lets say its then on R2 i see it as POP tag ok ?? why is R1 advertising it as a imp null label ? since mpls is not enabled on it why bother assigning it any label at all ?? i am aware of PHP but this what confuses me, since is a pure ip network then why R1 doesnt assign any label at all and on R2 shall i see UNTAGGED !! i mean why this is not the behaviour !!

Can some1 guide me in this pls ??? pls tell me why R1 is using PHP for a pure ip network ?


Re: MPLS label confusion !


PHP is performed by default on Cisco IOS for directly connected or aggregated subnets.

its normal for R1 to advertise imp null label for its directly connected subnet.

you can check that by issuing :

sh mpls ldp binding on R1.



Cisco Employee

Re: MPLS label confusion !


It is inevitable for all MPLS environments that there will be pure IP networks, which get MPLS labels assigned. It can be explained in different ways. Answers to your question:

A1) MPLS is a transport technology transparent to the IP end systems (like PCs). Thus an edge MPLS router will have to assign labels to "pure IP networks". Otherwise no MPLS labels could be assigned to those networks which traffic should be transported.

A2) MPLS label allocation - by default - follows a simple rule: allocate a label to every IP route except if it is learned by BGP. Locally assigned labels are sent to all LDP neighbors. A MPLS router does neither know, if a neighbor will ever use those labels nor, if it is essentials to have a label. Assume as an example you have configured MPLS L3VPN with your R1 routers address as next hop. Then it would be crucial not to use "unlabeled/untagged", as this would break connectivity. LDP cannot "know" BGP next hops used somewhere in your network. Therefore the default label allocation scheme is as described and observed.

Note: LDP can be configured with selective label allocation, as the network administrator knows, what LDP can not. In your example you could restrict LDP to only allocate/announce labels for loopback addresses. Then the behaviour you expected from the beginning could be observed. As depicted in A2) misconfigured selective label allocation can break connectivity in MPLS networks.

Hope this helps! Please use the rating system.