Class-based shaping can be used in combination with CBWFQ. The shape rate provides a maximum rate limit for the traffic class, while the bandwidth statement within CBWFQ provides a minimum bandwidth guarantee.
In the example, the cust1 traffic class is shaped to an average rate of 384 kbps, and is guaranteed a minimum of 256 kbps by the CBWFQ bandwidth statement. Because the Bc and Be are not specified, they will be automatically calculated by the Cisco IOS software.
Example: Class-Based Shaping Hierarchical Policy Maps
The example uses hierarchical policy maps and configures CBWFQ inside the class-based shaping.
The parent policy is the shape-all policy. This parent policy references a child policy named child-cbwfq.
The parent policy map shape-all specifies an average shape rate of 384 kbps for all the traffic (matched by class-default) and assigns the service policy called child-cbwfq as the child policy.
The shaped traffic is further classified into three distinct traffic subclasses:
■ subclass-x: The subclass-x class is configured to have a minimum guarantee equal to 50 percent of the shaped bandwidth.
■ subclass-y: The subclass-y class is configured to have a minimum guarantee equal to 20 percent of the shaped bandwidth.
■ subclass-z: The subclass-z class is configured to have a minimum guarantee equal to 10 percent of the shaped bandwidth.
For example, in a service provider implementation, all traffic going to a specific customer edge router on the S0/0 interface is shaped, then further classified as follows:
■ subclass-x class for interactive traffic
■ subclass-y class for business-critical traffic
■ subclass-z class for bulk traffic
The traffic going out to that specific customer edge router over the S0/0 interface is rate-limited to 384 kbps total. The interactive traffic has a minimal guarantee of 192 kbps (384 x 0.5), the business-critical traffic has a minimal guarantee of 76.8 kbps (384 x 0.2), and the bulk traffic has a minimal guarantee of 38.4 kbps (384 x 0.1).
This topic describes the Cisco IOS commands that are used to monitor class-based shaping.
Was this article helpful?