I'm looking at applying WRED on an egress PE within an MPLS network. But I'm struggling to understand how to configure it.
I understand the basic concept of WRED. Based on the average queue depth (calculated by a somewhat complex equation - at least to my eye) and IP Precedence certain minimum and maximum values are set. Then, comparing the queue depth to these values employs the following behaviour:
-
- If queue depth < min - nothing is dropped
- If queue depth is between min and max a certain percentage will be dropped - increasing as you approach the maximum. On IOS-XE you can cap the maximum percentage to be discarded using the Mark Probability Denominator (MPD) where the max percentage to be discard is 1/MPD.
- If queue depth > max - everything is dropped
To put this in graph form, it looks like this (forgive the horrible scale):
(on XR the increase would be linear from 0% to 100% given that MPD is hardcoded to 1)
You can also configure WRED to match on aspects other than IP Prec. Which is where my question comes in...
My question concerns how I would configured this on an egress MPLS PE facing a customer CE.
My thinking would be to match the MPLS EXP bits from the core and set the relevant QoS group. Then on the egress interface, I would set the WRED min/max values for each QoS group based on my needs.
But looking at the config, I can only specify MPLS EXP bits at not QoS groups:
RP/0/RP0/CPU0:R1(config)#class-map type qos match-all CM-ICMP
RP/0/RP0/CPU0:R1(config-cmap)# match protocol icmp
RP/0/RP0/CPU0:R1(config-cmap)# end-class-map
RP/0/RP0/CPU0:R1(config)#policy-map type qos PM-POLICY1
RP/0/RP0/CPU0:R1(config-pmap)#class CM-ICMP
RP/0/RP0/CPU0:R1(config-pmap-c)#random-detect ?
<0-1073741823> Minimum threshold
cos COS based WRED (upto 8 values)
default Enable RED with default min and max thresholds
dei DEI based WRED
discard-class Discard Class based WRED (upto 8 values)
dscp DSCP based WRED (upto 8 values or ranges)
ecn ECN based WRED
exp MPLS Experimental value based WRED (upto 8 values)
precedence Precedence based WRED (upto 8 values)
RP/0/RP0/CPU0:R1(config-pmap-c)#
So my questions would be as follows:
- If I match on MPLS EXP on the egress PE, would my QoS policy work? Or is the MPLS label removed before the QoS is applied towards the customer device? If that's the case, what should I use?
- Are there default profiles for match on MPLS EXP? I seem to need to configure each EXP individually... What would happen if I hadn't configured something for MPLS EXP value 5 and a packet with that value arrived? Would no WRED be applied at all?
Thanks in advance and happy to clarify anything if unclear.