Modular QoS CLI Class-Map Limitations
I received a question from a customer that I thought I would post up….
Question:
Hi Joe, I was wondering if there are any limitations on the maximum number of class-maps per policy-map on a 2800 series ISR. I thought I saw a newsgroup listing indicating that the limit of 256 was to be lifted, however this thread is dated. Can you provide me with a definitive answer as it stands with IOS 12.4?
Answer:
I tried with 12.4(16) and cannot configure more than 255.
R2(config-pmap)#do sh ver | inc Ver
Cisco IOS Software, 2800 Software (C2800NM-ADVIPSERVICESK9-M), Version 12.4(16), RELEASE SOFTWARE (fc1)
ROM: System Bootstrap, Version 12.4(1r) [hqluong 1r], RELEASE SOFTWARE (fc1)
R2(config-pmap)#
R2(config-pmap)#class TEST_485
Max limit of 255 classes in a policy reached
R2(config-pmap)#

Comment by shef on 26 November 2007:
Hm…. I cannot image 256 class-maps in policy-map, for what purpose? :/
Comment by Joe Harris on 28 November 2007:
Hierarchical queuing and the ability to create nested policies…as increasingly providers are handing customers services using Ethernet termination. A 2Mb circuit may be presented now as a 10Mb or 100Mb Ethernet RJ45 and we will need to rate this interface down to 2Mb and then perform queuing within this 2Mb.
Comment by Joe Harris on 28 November 2007:
As a follow-up here is an example configuration related to my last post that should make it’s uses clear:
#Cust1-classes configuration
R2(config)# policy-map cust1-classes
R2(config-pmap)# class gold
R2(config-pmap-c)# bandwidth percent 50
R2(config-pmap)# class silver
R2(config-pmap-c)# bandwidth percent 20
R2(config-pmap)# class bronze
R2(config-pmap-c)# bandwidth percent 15
!
#Cust2-classes configuration
R2(config)# policy-map cust2-classes
R2(config-pmap)# class gold
R2(config-pmap-c)# bandwidth percent 30
R2(config-pmap)# class silver
R2(config-pmap-c)# bandwidth percent 15
R2(config-pmap)# class bronze
R2(config-pmap-c)# bandwidth percent 10
!
#Cust Policy and QoS Features Config
R2(config)# policy-map cust-policy
R2(config-pmap)# class cust1
R2(config-pmap-c)# shape average 384000
R2(config-pmap-c)# service-policy cust1-classes
R2(config-pmap)# class cust2
R2(config-pmap-c)# shape peak 512000
R2(config-pmap-c)# service-policy cust2-classes
!
R2(config-pmap-c)# interface Serial 2/1
R2(config-if)# service out cust-policy