We run a reasonably large WAN that has a mix of MPLS backbone links and conventional WAN circuits. We're deploying an enterprise QoS policy that identifies and marks traffic with DSCP values, so I've been trying to design a configuration that will preserve our DSCP values as traffic traverses our MPLS backbone links. I understand that there are configurations that will convert the DSCP values into EXP values, and I can then set policing or bandwidth guarantees for different traffic classes using the EXP values.
But I'm confused about how to convert the EXP values back to DSCP values once the traffic arrives at the far end of an MPLS link. Are the DSCP values actually overwritten by the EXP values, or is the EXP value just a part of the MPLS label that gets "popped" off at the last MPLS router? If the EXP value gets popped off, should we be able to preserve the original DSCP value of the IP packet, and allow normal QoS queuing to take over once the packet is done traversing the MPLS core?