MPLS LDP Label Filtering Example

This topic is to discuss the following lesson:

For r1 why is untagged?
Similar for r3 why is untagged?


That’s what this tutorial is about…filtering tags so not all prefixes get a tag. R2 only sends a tag for /32 to R1 and R3, not for or

My bad. Just realized that r2 is between r1 and r3


Great lesson as usual. However, I have question loop backs which are not label it means they can not be reached and can not be in the routing table?





Hi Hamood,

If there is no label for a prefix then we can still reach it through normal routing with the routing table, the only difference is that it won’t be label switched.


Good.! I had the same question what cla had. Thanks for answering Rene.!!

why i am seeing TDP instead of LDP.

R1#show mpls ldp neighbor
    Peer TDP Ident:; Local TDP Ident
        TCP connection: -
        State: Oper; PIEs sent/rcvd: 5/5; Downstream
        Up time: 00:01:01
        TDP discovery sources:
          FastEthernet0/0, Src IP addr:
        Addresses bound to peer TDP Ident:


TDP is the old Cisco equivalent protocol for LDP. LDP is an IETF standard. On older IOS versions, TDP is the default. Nowadays LDP is the default. There is a command to change the protocol:

R1(config)#mpls label protocol ?
  ldp  Use LDP (default)
  tdp  Use TDP
1 Like

Thank you so much Rene…

Hi Rene,

I am little bit confused that where we can use the label filtering in Production network .I am looking for scenario where we deploy it . Thx


Hi Zaman,

Think of an MPLS VPN network where we have PE and CE routers. The PE routers only require an LSP (Label Switched Path) between their loopback interfaces and the /32 IP address that is configured on these loopback interfaces. These are the IP addresses that are used for the next hops in BGP.

By default, LDP creates and advertises a label for each and every prefix that is learned. This increases memory usage but also the number of advertisements between peers. If you only advertise labels for the LSPs that you need, you reduce convergence time and memory usage.


R3(config)#access-list 1 permit
R3(config)#no mpls ldp advertise-labels
R3(config)#mpls ldp advertise-labels for 1

(mpls ldp advertise-labels for ) is a command ok but ( 1) what for i dont understand

Hello Bahri

The mpls ldp advertise-labels for 1 command is used to control which labels are advertised to which LDP neighbors. The “1” at the end of the command indicates that it is the access list “1” which is configured above that will be used to filter the labels such that labels will be generated only for loopback 0. On R3, is the IP address of loopback 0.

I hope this has been helpful!



I can see that “tag / pop tag” is used in the output. In the previous lesson “label / pop label” was used. Is there any difference?

Many thanks,

Hello Staut

When speaking about MPLS, the term label and tag may be used interchangeably. The term label is the officially correct one, but keep in mind that in the context of MPLS, the term tag may be used as well.

I hope this has been helpful!


1 Like

Hello Rene,
i still confused, where is the filter ? i mean i can see you filtered out all the prefixes not some of them, i think R3 should advertise and filter out but what really see it’s filter out both of them and R1,R2 the same problem.
thanks to demonstrate.

Hello Ahmed

When the filtering mechanism is enabled on each router, it is applied for all networks whether those networks exist on the local router or are received and transmitted by intervening routers. What this means is that R2 will see and labelled while and will not have labels, as expected.

Similarly, R1 will see that is labelled while will not have labels, again as expected. However, because R3 sends its information to R1 via R2, the mpls ldp advertise-labels for 1 command applied to R2 will also filter out those routes delivered from R3. So since both and are filtered out using R2’s filtering mechanism, these arrive at R1 untagged.

A similar situation occurs for routes that are advertised from R1 to R3 which affects how they appear in R3.

I hope this has been helpful!


1 Like


What is use-case to filter the label for the certain prefixes, does that means if prefixes doesn’t have a label and traffic to un-labeled prefixes will be drop or blackhole in transit.
in this case R1 doesn’t have a label for R3 ( by virtue if access-list defined on R1 does that means traffic to destination from R1 will be drop?

Hell Ankit

It is useful to filter the label for certain prefixes if those prefixes need not be advertised on the MPLS network. Label filtering has a little bit of a different meaning than when we apply filtering to routing protocols. When applying filters to LDP labels, you are essentially deciding which prefixes will be labeled and which will not. Those that are labeled are participating in MLPS and thus are being sent from end to end of an MPLS network, while those that are filtered are simply not included as labels in the topology.

This is useful when you have certain networks that you don’t need to be advertised using labels on the MPLS network. This simply improves efficiency by reducing the amount of information that needs to be shared and processed. On a small network this might not seem very important, but on an MPLS network with hundreds or thousands of routers, this can save a substantial amount of bandwidth and resources.

I hope this has been helpful!