MPLS PHP – Penultimate Hop Popping

Penultimate Hop Popping is the operation where the outermost label is removed (MPLS POP) from the packet one hop before it’s destination and was implemented to reduce the load on the endpoint routers.

Without PHP the destination router would have to do two label label operations; one to remove the core label identifying the packet destination, and one to process the service label to identify the pseudowire or VRF.

PHP is achieved by the destination router advertising the implicit-null label 3 to it’s neighbor routers for his own loopback address and is the default behavior for LDP.

mpls_php2_smallImplicit-null might be disabled by enabling explit-null. In most cases the default behavior is used and advised unless you need to keep some specific QoS parameters for the attached circuit.

The difference between implicit-null and explicit-null will be explained in detail in one of the upcoming posts.

My previous post about tLDP is a great example to explain the MPLS Penultimate Hop Popping operation.

As you can see the destination router advertises the implicit-null label for his loopback address, informing the upstream router to pop the core label.

The edge router receives a packet immediately identifying the destination pseudowire FEC or VRF without the need to perform two label operations.

mpls_php_small

The first image with the London, Brussels and Paris design was based upon an image from a Cisco  Systems presentation given by Stefaan Vander Rasieren. The necessary credits where added into the image.

Comments (4)

shivlu jainMay 22nd, 2009 at 6:02 pm

nice explanation

felixDecember 18th, 2009 at 7:49 pm

The “destination” or “destination router” that you are referring to should be corrected to “provider edge” or “provider edge router”.

raoFebruary 2nd, 2010 at 5:20 am

do we need to any configure any thing for this php behaviour

MukarramFebruary 18th, 2010 at 8:26 am

PHP does not works on ELSRs, core LSRs also advertise their directly connected prefixes as imp-null to other LSRs. I need to know the adv. of PHP within MPLS domain.

Secondly PHP does not work for prefixes not directly connected with Edge-LSRs, therefore no imp-null will be requested for them… and mostly the traffic is destined for prefixes not directly connected to ELSRs, for all such prefixes the Edge-LSR will still be doing two lookups..
whats the benefit of PHP???

Leave a comment

Your comment