Can some one please help me understand the below QOS setting on our MPLS router the service policy.. Policy map and class map

I know the basic understanding behind how these work .. I need to in detail, how in this particular scenario ,,traffic rate that is being allowed , policed or dropped .

I am kind of confused ..

    class-map match-any ENHANCED
     match any 
    class-map match-any MGMT
     match access-group name CLASSIFY-MGMT
     match access-group name CLASSIFY-BGP
    class-map match-any ENHANCED-PLUS
     match access-group name CLASSIFY-ENHANCED-PLUS
     match ip dscp ef 
     match ip precedence 5 
    policy-map QOS-SCHEDULER-GI0/0
     class ENHANCED-PLUS
      priority 10000
      police 10000000 conform-action transmit  exceed-action transmit 
      set ip dscp ef
     class ENHANCED
    policy-map QOS-SHAPER-GI0/0
     class class-default
      shape average 50000000
      service-policy QOS-SCHEDULER-GI0/0

     interface GigabitEthernet0/0
     description MPLS WAN Link
     bandwidth 50000
     ip address
     duplex full
     speed 100
     no cdp enable
     no mop enabled
     max-reserved-bandwidth 100
     service-policy output QOS-SHAPER-GI0/0

please help .

The port capacity is 100 Mb.

need help undersanding how these commands work in respect to each other ..

priority 10000
  police 10000000 conform-action transmit  exceed-action transmit 

shape average 50000000 

on policy map

bandwidth 50000 

on interface

  • What operating system is this configuration for? Is this some Cisco operating system like IOS, IOS-XE, NX-OS? Or is it another manufacturer with IOS-like commands? Commented May 19, 2016 at 20:33

1 Answer 1


When decoding QOS policies I like to reverse engineer it. Start with the last command that was configured in regards to the QOS. This is usually the service-policy statement on the interface.

service-policy output QOS-SHAPER-GI0/0

The points to a shaping parent policy with nested LLQ scheduler (QOS-SCHEDULER-GI0/0) child policy. The shaper is configured for 50Mbps. And the LLQ has one priority traffic classes with a policer.

The bandwidth statement on the interface is referenced when bandwidth statements exist in the parent policy. For example if you had configured two classes (one being class default) the bandwidth statements for those classes can't exceed the max_reserve x bandwidth statement on the interface. In your case the max res is 100% for a result of 50Mbps. In your actual configuration you have a shaper in the parent policy and it effectively ignores the bandwidth statement. However the bandwidth statements in the child policy, if any were present, are now bound to the bandwidth of the shaper. Hopefully your able to follow this.


With regard to the priority queue in the LLQ scheduler you have something called conditional policing and unconditional policing. During periods of congestion the priority bandwidth command polices the traffic to the configured CIR. During periods of non-congestion the priority queue is able to exceed the CIR. The is call conditional policing. The police command provides an unconditional policer and polices any excess traffic during periods of congestion and non-congestion. Typically you would choose one or the other.


With both configured the unconditional takes precedence. I had to test to confirm. And with your configuration they both are configured at the same rate. Priority is configured in kbps and policers/shapers are configured in bps.

I don't understand why you are configuring the exceed action to transmit and remark to ef. I think this defeats the purpose of the LLQ.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.