The Modular Quality of Service CLI (MQC) Review – Class Maps


The MQC is king when it comes to almost all of our QoS configurations these days. Let’s review the first step – the Class Map step.

The Class Map step is where we take traffic forms and place them into pails. Notice I am avoiding the term bucket because we use that already for another QoS topic :-).

When you are learning your QoS configs, be sure to use context-sensitive help every step of the way. This helps you discover what is possible, and helps you avoid potential pitfalls and gotchas.

Well, let’s fire up Cisco VIRL and examine these important structures in great detail…

iosv-1(config)#class-map ?
WORD           class-map name
match-all      Logical-AND all matching statements under this classmap
match-any    Logical-OR all matching statements under this classmap
type                Configure CPL Class Map

We begin by examining the options after our class-map command to create the class map. Notice we can go right to naming it, or, most importantly, selecting whether we must match ALL of the criteria that follow or ANY of them in order to have the traffic fall within this pail. There is a default here, but I can never remember what it is, so I always pick match-all or match-any. Notice also we can configure a type of class map. This is because the MQC has been extended and called the Modular Policy Framework and can now do more than just QoS for us. Let’s create a match-any class map named CM_TEST.

iosv-1(config)#class-map match-any CM_TEST

Now we are in class map configuration mode where we use the match command to match on a ton of options – here are just some:

access-group                   Access group
any                                      Any packets
application                      Application to match
cac                                      Call Admission Control
class-map                        Class map
cos                                      IEEE 802.1Q/ISL class of service/user priority values
destination-address    Destination address
discard-class                  Discard behavior identifier
dscp                                   Match DSCP in IPv4 and IPv6 packets

Note that while we can use QoS to mark traffic, if our traffic is already marked, we can match on the Layer 2 or Layer 3 markings easily in the class map.

Here is the rest of my sample configuration based on these facts:

iosv-1(config-cmap)#match access-group 100
iosv-1(config-cmap)#match protocol icmp

The match access-group 100 matches an ACL (not shown) that specifies traffic we want, and the match protocol ICMP ensures that Network Based Application Recognition (NBAR) is at work to automatically recognize any ICMP traffic.

Remember, thanks to our match any logic, this class map will gather traffic that matches either of these or both!

I hope you enjoyed this review of class maps. Obviously the next post will review our second step of the MQC process – policy maps! Here is where we take action on the traffic that we have matched.

Questions, comments, hate mail? Use the comments below! 🙂

7 thoughts on “The Modular Quality of Service CLI (MQC) Review – Class Maps

  1. Hey Anthony!!! I’m going to take CCNA DC exam in few upcoming days. I have watched all your videos. amazing videos!!!! Thanks for great training. Any other recommendations for exam, as it will be my first exam. Suggest please

    1. Thanks for the kind words! Rematch the videos that deal with Data Center tech directly and take notes. For the CCNA-like content in that first CCNA Data Center course – you can ensure you know it by taking plenty of CCENT and CCNA practice exams!

  2. Hi Anthony. First off, LOVE the new CBT Nuggets CCIE series. It’s definitely one of my go-to resources. My question for you involves uplinkfast. I understand the basics of what it does for classic STP and I know that when it’s enabled it increases the bridge priority and port costs. Most videos and books say it does this to help prevent the device from becoming a transit bridge. What they don’t say is why? Why do we care whether or not that happens? Don’t we want a switch with a root port to be a transit to that root bridge? Look forward to hearing from you…

  3. I appreciate your efforts, sir.

    Regarding you QOS CBT nugget, R2 isn’t dropping the expected traffic. My configuration is below:

    class-map match-all CM_ICMP
    match protocol icmp
    policy-map PM_ICMP
    class CM_ICMP
    police cir 64000
    conform-action transmit
    exceed-action drop

    interface Serial0
    ip address
    service-policy input PM_ICMP

    All traffic is allowed. Where am I going wrong?

    Thanks again.

Leave a Reply

Your email address will not be published. Required fields are marked *