02-28-2025 03:08 AM
I'm configuring QoS for some VRF customers and I'm undecided if I should be using explicit null (or php-disable in the case of SR).
If I have a VRF customer connected to a PE and I wish to apply a policy (shaping, remakring etc) on outboud traffic to the CE, based on the MPLS markings (pipe diff serv model for example), should I disable PHP?
The MPLS EXP markings will, by default, be copied down to the VPN labels EXP values. So the top transport label doesn't need to be retained in this instance does it?
I susepct if I was using a customer who was in the global routing table, where the PHP would remove all labels (and thus the MPLS EXP data), then I would need it. But do I need to disable PHP for L3VPN customers given the default behaviour of EXP values being copied down to exposed label during a POP operation?
02-28-2025 04:01 AM - edited 02-28-2025 04:03 AM
Hello @steven.crutchley
EXP bits are part of the MPLS header, specifically in the trafic class field of each label. However, in MPLS L3VPN scenario, when PHP occurs, the top transport label is removed, and its EXP bits are copied to the remaining vpn label (the inner label). So, QOS policies on the PE still have access to the original EXP values, even though the top label has been removed...
The main disadvantage of implicit null (PHP) is that if there is no remaining label, the MPLS header is completely removed, causing the loss of EXP bits between the penultimate router and the last hop (PE or CE). This is an issue for QoS when the last-hop router needs to classify or prioritize traffic based on MPLS EXP values.
Then, in order to preserve QOS treatment, explicit null can be enabled. This forces the penultimate router to retain the MPLS header but replace the top label with label 0 (IPv4) or label 2 (IPv6) while keeping the EXP bits intact. This way, QoS policies at the last hop can still make use of the MPLS EXP values for traffic differentiation.
--
https://community.cisco.com/t5/mpls/explicit-null-simple-explanation/td-p/323997
02-28-2025 04:13 AM
I think the answer is platform dependent, because different platforms use different diffserv tunneling methods. But generally spoken, there is no need for turning on explicit-null (php-disable) for L3VPN traffic classification. You can use MPLS EXP bits from the VPN label for this purpose.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide