cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1640
Views
0
Helpful
4
Replies
Highlighted
Beginner

Catalyst 4500x : Shaping traffic and appliying queuing (nested policy-maps)

Hi Everyone, 

 

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

 

Thank you.

 

4 REPLIES 4
Highlighted
Beginner

   

 

 

Highlighted
Beginner

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
match any


policy-map QOS_SHAPE_2G_OUT
 class REALTIME
  priority
  police rate percent 1

 class CATCH_ALL
  shape average percent 19

 

int ten1/1/27
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!

Highlighted

Hi,

 

Based on this white paper, you can configure priority, shaping & sharing under the same class:

 

http://www.cisco.com/c/en/us/products/collateral/switches/catalyst-4500-series-switches/white_paper_c11-539588.html

 

Regards,

Minh

 

Highlighted

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:


policy-map OUT
 class VOICE
  priority
  police rate percent 5

 class VIDEO
  bandwidth remaining percent 10

 class SIGNALING
  bandwidth remaining percent 2

  class GOLD
  bandwidth remaining percent 15

  dbl

  class SILVER
  bandwidth remaining percent 20
  dbl

 class BRONZE
  bandwidth remaining percent 10
  dbl

 class class-default
  bandwidth remaining percent 38
  dbl

It would be very convenient to be able to just drop this in a shape policy, similar to several other Cisco platforms:


policy-map SHAPE
 class class-default
  shape average percent 20
  service-policy OUT

 

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