03-03-2025 04:11 AM
I'm trying to classify incoming traffic into a QoS-Group and Mark the DSCP at the same time in IOS-XE. We've been doing this for many years on NXOS, but annoyingly it looks like this isn't possible with IOS-XE:
class-map match-any CM-QOS-VIDEO
match dscp af41 cs4
exit
[...]
policy-map PM-QOS-IN
[...]
class CM-QOS-VIDEO
set qos-group 6
set dscp 34 ! consolidate to af41
063645: Mar 3 10:00:03.137 EST: Multiple set actions in the same class is not supported
[...]
exit
Does anyone know if later versions of IOS-XE might support this or any other workarounds? Maybe in the output queueing policy we could mark the new DSCP?
It seems odd that Cisco would introduce features like being able to set a qos-group or traffic-class etc, but limit us to a single set action per policy-map class.
Solved! Go to Solution.
03-03-2025 02:37 PM - edited 03-03-2025 02:38 PM
I ran a quick test on CML to try to config multiple "set" commands under a policy-map's class. I did not attempt to determine if the multiple set commands actually behaved as expected, I only determined whether the config-mode command parser would accept multiple sets.
Node Type | XE Version | Multiple SET Commands Accepted |
Catalyst 8000v | 17.15.01a | Yes |
CSR1000v | 17.03.08a | Yes |
IOL | 17.15.1 | Yes |
Catalyst 9000v-Q200 | 17.15.01 | Yes |
Catalyst 9000v-UADP | 17.15.01 | No |
It appears to me that not accepting multiple set commands is not an XE PI (platform independent) limitation in CML, but a PD (platform dependent) limitation, specifically with Cat9Kv node that emulates the UADP NPU. On what platform are you seeing this behavior?
03-03-2025 06:29 AM
Why are you setting the qos-group? That is, are you matching on qos-group in an egress policy?
Also, what XE platform is this?
03-03-2025 06:37 AM
Yes, exactly that, where a qos-group corresponds to one of the output queues.
03-03-2025 07:14 AM
Thus implying same DSCP egress marked traffic might have different egress treatment, correct?
If correct, somewhat unusual but not necessarily "bad", if fact, could be very useful.
03-03-2025 07:24 AM
Yes, that's what we've been doing in NXOS for many years and I thought finally IOSXE might offer the same flexibility, so that we could unify the config, but it seems not.
Also, it makes more logical sense to be marking DSCP on ingress rather than egress.
03-03-2025 02:37 PM - edited 03-03-2025 02:38 PM
I ran a quick test on CML to try to config multiple "set" commands under a policy-map's class. I did not attempt to determine if the multiple set commands actually behaved as expected, I only determined whether the config-mode command parser would accept multiple sets.
Node Type | XE Version | Multiple SET Commands Accepted |
Catalyst 8000v | 17.15.01a | Yes |
CSR1000v | 17.03.08a | Yes |
IOL | 17.15.1 | Yes |
Catalyst 9000v-Q200 | 17.15.01 | Yes |
Catalyst 9000v-UADP | 17.15.01 | No |
It appears to me that not accepting multiple set commands is not an XE PI (platform independent) limitation in CML, but a PD (platform dependent) limitation, specifically with Cat9Kv node that emulates the UADP NPU. On what platform are you seeing this behavior?
03-03-2025 03:13 PM
What an answer! Thank you so much for checking all this.
I'm using a C9500-32QC, which has a UADPv3 asic.
So basically from your testing it looks like the Q200/SiliconeOne platforms support multiple set commands.
03-03-2025 07:15 AM
"Maybe in the output queueing policy we could mark the new DSCP?"
That's what I would have suggested.
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