I got a question on how actually I could put kind of nested policy-maps under an interface on a 4500x switch.
This is needed because 100Mbps link connecting 2 head office locations. The 100Mpbs is a metro ethernet link and the provider is fixing port to 100Mbps speed.
Since 4500x is not supporting 100Mbps speed on interfaces, the provider's port is connected to an intermediary switch at 100Mbps. And the 4500x is connected to intermediary switch at 1Gbps.
Hence, I need to shape to 100Mpbs out to my 4500x port. But I also need do perform queuing for traffic. The thing is nested policy-maps doesn't seem to be implemented on 4500x as in routers.
Any idea on how to workaround this? In a router world I'd do something like this:
policy-map SHAPER class class-default shape average 100000000 service-policy QUEUING
policy-map QUEUING class VOICE priority police 5000000 conform-action transmit exceed-action drop class INTERACTIVE bandwidth 20000 class BULK bandwidth 20000 class class-default dbl
interface TenGigabitEthernet2/1/9 description TO_REMOTE_HEADOFFICE ! ... service-policy output SHAPER
I have the same problem. I wanted to do sub-interfaces with dot1q tags and nested shaper policies, but the 4500x doesn't appear to support either nested shapers or subifs. Really wish there was more consistency across platforms.
Instead of the subifs, I can simply create vlan interfaces (not my favorite method, but it works).
As far as shaping goes, the best I've been able to come up with is a custom policy that polices for the realtime traffic (i.e marked with EF or AF41, 42, 43) and everything else is matched by a custom class that matches any and sets the shape average % on the interface accordingly. (i.e. a 10g interface shaped to a 2G pipe would get 19% for all traffic and 100Mb for realtime apps like voice and video). Not perfect, but without nested policies it's hard to do a full 8 class policy and shape each class to a specific rate.
class-map match-any REALTIME
match dscp ef
match dscp af41 af42 af43
class-map match-any CATCH_ALL
police rate percent 1
shape average percent 19
service-policy output QOS_SHAPE_2G_OUT
If you want queuing, then drop dbl in the catch all class and you're set. This is not ideal and doesn't do as well as a nested shaper policy. If anyone can come up with a better solution, please post it!
Based on this white paper, you can configure priority, shaping & sharing under the same class:
Thank you for your response. Although it is possible to shape at the class level, I don't know if that would allow an existing policy to be constrained to a set bandwidth limit. In my case, I am looking to limit a 10G interface to 2G CIR set by the provider and I'd like each class to be able to use the full 2G rate, however if there is more than 2G of traffic, each class is scaled back to its defined limits.
Here is an example policy I'd like to nest in a shaper:
police rate percent 5
bandwidth remaining percent 10
bandwidth remaining percent 2
bandwidth remaining percent 15
bandwidth remaining percent 20
bandwidth remaining percent 10
bandwidth remaining percent 38
It would be very convenient to be able to just drop this in a shape policy, similar to several other Cisco platforms:
shape average percent 20
But since the class sub commands don't include the service-policy command on the 4500x, it's not possible as far as I can tell. If you have a way to manipulate an existing policy so that each class can use the full bandwidth of the CIR, but then be shaped down to a percentage of the CIR when saturation occurs, please share an example. Thank you