Modular QoS Configuration Guide for Cisco 8000 Series Routers, Cisco IOS XR Release

PDF

Modular QoS Configuration Guide for Cisco 8000 Series Routers, Cisco IOS XR Release

Absolute-value shaping on bundle interfaces

Want to summarize with AI?

Log in

Describes how you can configure fixed egress shaping rates on supported bundle interfaces using absolute units such as kbps, mbps, and gbps.


Absolute-value shaping on a bundle interface is a bundle QoS traffic shaping feature that

  • uses the existing shape average command to configure a fixed shaper rate on supported bundle main interfaces and bundle subinterfaces for Layer 2 and Layer 3 use cases,

  • replicates the configured shaper rate on each bundle member interface, and

  • preserves the existing percentage-based shaping behavior for bundle interfaces.

Use absolute-value shaping when customers, services, or AI workloads require predictable egress bandwidth allocations without relying on interface-relative percentages.

Feature history and shaping behavior

Table 1. Feature History Table

Feature Name

Release Information

Feature Description

Absolute-value shaping on bundle interfaces

Release 26.3.1

Introduced in this release on: Fixed Systems (8200 [ASIC: Q200, P100], 8700 [ASIC: P100, K100], 8010 [ASIC: A100]); Centralized Systems (8600 [ASIC: Q200], 8400 [ASIC: K100]); Modular Systems (8800 [LC ASIC: Q200, P100, K100]).

You can control egress bandwidth with fixed shaping rates on supported bundle interfaces. This helps enforce predictable bandwidth allocations for customers, services, or AI workloads without relying on interface-relative percentages.

Absolute-value shaping and percentage-based shaping use the same bundle-member replication model, but they express the shaper rate differently.

Table 2. Absolute-value shaping and percentage-based shaping

Absolute-Value Shaping

Percentage-Based Shaping

Uses fixed units, such as shape average 500 mbps.

Uses a relative value, such as shape average percent 4.

Helps align egress shaping with fixed customer, service, or transport bandwidth profiles.

Helps shape traffic as a percentage of available interface bandwidth.

Useful when you already know the target service rate in bps, kbps, mbps, or gbps.

Useful when the target rate must remain relative to the interface or member bandwidth.

Bundle member shaping

A bundle interface has three active 10-Gbps member interfaces. You configure an egress class with shape average 500 mbps on the bundle interface.

The configured 500 Mbps shaper rate is replicated on each bundle member interface. If traffic for that class is distributed across all three members, each member can shape that class to the configured 500 Mbps rate. The configured rate is not a single 500 Mbps aggregate shaper for the entire bundle.

What absolute-value shaping on bundle interfaces is not

Absolute-value shaping on a bundle interface is not a single aggregate bundle-wide shaper. If you need one configured value to represent the total shaped bandwidth across all active bundle members, do not interpret this feature as providing that behavior. The effective aggregate shaped rate depends on the number of active bundle members and how traffic is distributed across those members.

Absolute-value shaping is not to be confused with absolute-value policing on bundle interfaces. Shaping controls egress traffic by scheduling packets for transmission at a configured rate. Policing enforces a traffic contract by marking or dropping traffic that exceeds the configured rate.


Benefits of absolute-value shaping on bundle interfaces

Absolute-value shaping on bundle interfaces enables you to configure fixed egress shaping rates for supported bundle interfaces without converting those rates into percentages. This feature is particularly useful when a service, customer, or transport design requires a specific configured rate in bps, kbps, Mbps, or Gbps.
Absolute-value shaping on bundle interfaces provides these benefits:

  • Fixed service-rate expression: You can configure shaping values using absolute units (bps, kbps, Mbps, Gbps) instead of converting the target rate to a percentage.

  • Existing MQC workflow: You use the existing shape average command. No new aggregate bundle mode CLI is introduced.

  • Per-member egress rate control: The configured shaper value is replicated on each bundle member interface, so each member shapes traffic to the configured value.

  • Percentage-based compatibility: Existing percentage-based shaping behavior remains supported alongside absolute-value shaping.

  • Predictable bandwidth allocations: You can align bundle egress shaping with fixed customer, service, or AI workload bandwidth profiles.


Guidelines for absolute-value shaping on bundle interfaces

Use absolute-value shaping for fixed egress rates

Use absolute-value shaping when customers, services, or AI workloads require fixed egress bandwidth allocations on a supported bundle interface.

  • Configure the rate with the existing shape average command.

  • If your router does not support absolute shaper values on bundle interfaces, use percentage-based shaping instead.

This guideline applies to absolute-value shapers on bundle main interfaces and bundle subinterfaces on supported Cisco 8000 Series routers. The supported bundle scope includes Layer 2 and Layer 3 QoS deployments, and ETM and non-ETM modes.

Before this release, shapers on bundle interfaces supported percentage-based values, while shapers on physical interfaces supported absolute values. This feature extends fixed-rate shaping to bundle QoS without introducing a new aggregate bundle mode CLI.

Using absolute values helps align bundle egress shaping with customer, service, or transport bandwidth profiles.

For releases or routers outside this feature scope, configure percentage-based shaping on bundle interfaces.

Interpret the configured value as a per-member shaper rate

Treat the configured absolute shaper value as a per-member egress rate.

  • The router replicates the configured shaper value to each bundle member interface.

  • Plan the aggregate behavior based on active bundle members and traffic distribution across those members.

This guideline applies to every absolute-value shaper configured on a supported bundle interface.

A configured value such as 500 mbps is therefore applied to each member interface that receives the replicated policy.

When you plan the service rate as a per-member value, the bundle design reflects the way the shaper is programmed and avoids incorrect aggregate-rate assumptions.

If the service outcome requires an aggregate bundle target, calculate the per-member shaper value for the expected active-member set and verify the programmed values with the show qos interface command.

Keep the shaper value within member bandwidth

Ensure that the configured absolute shaper value is less than or equal to the bandwidth of each bundle member interface.

  • Check the bandwidth of existing bundle members before attaching an absolute-value shaper policy.

  • Check the bandwidth of planned bundle members before adding them to a bundle that already has an absolute-value shaper policy.

  • Check the show bundle output after you add a lower-bandwidth member to a bundle that already has an absolute-value shaper policy.

This guideline applies to bundles with one member speed and to bundles that include or may later include members with different speeds.

The shaper is programmed per member interface, so the absolute shaper rate must fit within the bandwidth of each member interface.

If the absolute shaper rate is greater than the member reference bandwidth, attaching the policy can fail with this message: MQC: Shape bandwidth rate is greater than the parent reference bandwidth.

If you add a lower-bandwidth member to a bundle that already has a valid absolute-value shaper policy, the commit can succeed, but member policy replication for that member can remain incomplete. The show bundle output can display this warning: 'qos-lib' detected the 'warning' condition 'MQC: Shape bandwidth rate is greater than the parent reference bandwidth'.

After you remove a lower-bandwidth member, increasing the shaper value in an attached policy can fail with this message, even when the remaining member bandwidth can support the higher rate: MQC: Shape bandwidth rate is greater than the parent reference bandwidth: InPlace Modify Error:.

If the warning appears after you add a lower-bandwidth member, remove the member, reduce the shaper rate so that the configured value is less than or equal to the bandwidth of the lower-bandwidth member, and add the member again.

If in-place policy modification fails after bundle member changes, remove the egress service policy from the bundle interface, update the shaper rate to a value supported by the current bundle member bandwidth, and apply the egress service policy again.

Apply the shaping policy in the egress direction

Apply absolute-value shaping policies to supported bundle interfaces in the egress direction.

  • Use this feature for egress shaping on bundle interfaces.

  • Use bundle main interfaces or bundle subinterfaces within the documented Layer 2 and Layer 3 bundle QoS scope.

This guideline applies when you attach a policy map that contains shape average <absolute-value with unit> to a bundle interface in the egress direction.

Applying the policy in the egress direction aligns the configuration with the supported feature behavior and verification output.

Verify the attached output policy and programmed shaping values with show qos interface and show policy-map type qos interface .

Plan with existing QoS scale and percentage-based behavior

Plan absolute-value shaping with the existing QoS scale expectations for bundle shapers.

  • Use the existing percentage-based shaping behavior when the service design requires relative shaping rates.

  • Use existing bundle QoS planning guidance for hierarchical policies, inheritance, and other supported shaper variations.

This guideline applies when you add absolute-value shaping to an existing bundle QoS design or migrate a physical-interface shaping design to a bundle interface.

The feature changes absolute-value support on bundle shapers. It does not introduce a scale change, and existing percentage-based shaping remains supported.

Keeping the existing scale and percentage-based behavior in view helps you add fixed-rate shaping without redesigning unrelated QoS behavior.

If the design depends on relative rates or an unsupported release or router, keep the bundle shaper percentage-based.


Configure an absolute-value shaper on a bundle interface

Use this task to configure fixed egress shaping rates for traffic classes on a bundle interface.

  • The configured shaper value is replicated on each bundle member interface.

  • The configured value is not one aggregate bundle-wide shaper rate.

This example matches traffic by traffic-class values and applies absolute shaper values in units of Gbps, Mbps, and kbps. Replace the class names, policy-map name, bundle interface, traffic classes, and shaper rates with values for your network.

Percentage-based shaping remains supported on bundle interfaces. This example uses only absolute shaper values to focus on absolute-value shaping.

Before you begin

  • Verify that your router supports absolute-value shaping on bundle interfaces.

  • Ensure that the bundle interface and its member interfaces are configured.

  • Ensure that each absolute shaper value is less than or equal to the bandwidth of each bundle member interface.

  • Identify the traffic classes and fixed egress rates that you want to shape.

Follow these steps to configure an absolute-value shaper on a bundle interface.

Procedure

  1. Enter global configuration mode.

    Example:

    Router# configure
  2. Create class maps to identify the traffic classes that require shaping.

    Example:

    Router(config)#class-map match-any bundle_tc1
    Router(config-cmap)#match traffic-class 1
    Router(config-cmap)#exit
    Router(config)#class-map match-any bundle_tc2
    Router(config-cmap)#match traffic-class 2
    Router(config-cmap)#exit
    Router(config)#class-map match-any bundle_tc3
    Router(config-cmap)#match traffic-class 3
    Router(config-cmap)#exit

    This example uses traffic-class values as the match criteria. Use the match criteria that apply to your QoS design.

    The class maps identify the traffic classes to which the shaping policy applies.

  3. Create a policy map and configure absolute shaper rates for the traffic classes.

    Example:

    Router(config)#policy-map bundle_abs_shape
    Router(config-pmap)#class bundle_tc1
    Router(config-pmap-c)#shape average 500 mbps
    Router(config-pmap-c)#exit
    Router(config-pmap)#class bundle_tc2
    Router(config-pmap-c)#shape average 1000 mbps
    Router(config-pmap-c)#exit
    Router(config-pmap)#class bundle_tc3
    Router(config-pmap-c)#shape average 1500 mbps
    Router(config-pmap-c)#exit
    Router(config-pmap)#class class-default
    Router(config-pmap-c)#exit
    Router(config-pmap)#end-policy-map

    Use the shape average command with the absolute unit that matches the rate you want to configure. This example uses Mbps consistently for readability.

    The policy map defines absolute egress shaping rates for the matched traffic classes.

  4. Apply the policy map to the bundle interface in the egress direction.

    Example:

    Router(config)#interface Bundle-Ether30
    Router(config-if)#service-policy output bundle_abs_shape

    The output direction is the egress direction. The router replicates the egress shaping policy to each bundle member interface.

  5. Commit the configuration.

    Example:

    Router(config-if)#commit
    Router(config-if)#end

    The router applies the QoS policy to the bundle interface.

  6. Verify that the QoS policy is programmed on the bundle interface and on the member interface.

    Example:

    Router#show qos interface Bundle-Ether30 output
    NOTE: Configured values are displayed within parentheses
    Node 0/7/CPU0, Interface Bundle-Ether30 Ifh 0x7800011c (BundleMain) -- output policy
    NPU Id:                        1
    Total number of classes:       4
    Interface Bandwidth:           100000000 kbps
    Policy Name:                   bundle_abs_shape
    Accounting Type:               Layer1 (Include Layer 1 encapsulation and above)
    ------------------------------------------------------------------------------
    Level1 Class                             =   bundle_tc1
    
    Level1 Class                             =   bundle_tc2
    
    Level1 Class                             =   bundle_tc3
    
    Level1 Class                             =   class-default
    
    Interface HundredGigE0/7/0/11 Ifh 0x1c000240 (Member) -- output policy
    NPU Id:                        1
    Total number of classes:       4
    Interface Bandwidth:           100000000 kbps
    Policy Name:                   bundle_abs_shape
    VOQ Base:                      41600
    Accounting Type:               Layer1 (Include Layer 1 encapsulation and above)
    VOQ Mode:                      8
    Shared Counter Mode:           1
    ------------------------------------------------------------------------------
    Level1 Class                             =   bundle_tc1
    Egressq Queue ID                         =   41601 (LP queue)
    Queue Max. BW.                           =   500000 kbps (500 mbits/sec)
    Guaranteed service rate                  =   500000 kbps
    
    Level1 Class                             =   bundle_tc2
    Egressq Queue ID                         =   41602 (LP queue)
    Queue Max. BW.                           =   1000000 kbps (1000 mbits/sec)
    Guaranteed service rate                  =   1000000 kbps
    
    Level1 Class                             =   bundle_tc3
    Egressq Queue ID                         =   41603 (LP queue)
    Queue Max. BW.                           =   1500000 kbps (1500 mbits/sec)
    Guaranteed service rate                  =   1500000 kbps

    The output confirms that the output QoS policy is programmed on the bundle member interface and that each configured traffic class has its configured shaping rate. The configured values appear within parentheses.

    The output confirms that the shaping policy has been replicated to the member interface.

  7. Verify the policy-map statistics on the bundle interface.

    Example:

    Router#show policy-map type qos interface Bundle-Ether30 output pmap-name bundle_abs_shape
    
    Bundle-Ether30 output: bundle_abs_shape
    
    Class bundle_tc1
      Classification statistics          (packets/bytes)     (rate - kbps)
        Matched             :              1200000/921600000             600000
        Transmitted         :              1000000/768000000             500000
        Total Dropped       :               200000/153600000             100000
      Queueing statistics
        Queue ID                             : None (Bundle)
        Taildropped(packets/bytes)           : 200000/153600000
    
    Class bundle_tc2
      Classification statistics          (packets/bytes)     (rate - kbps)
        Matched             :              2400000/1843200000           1200000
        Transmitted         :              2000000/1536000000           1000000
        Total Dropped       :               400000/307200000             200000
      Queueing statistics
        Queue ID                             : None (Bundle)
        Taildropped(packets/bytes)           : 400000/307200000
    
    Class bundle_tc3
      Classification statistics          (packets/bytes)     (rate - kbps)
        Matched             :              3600000/2764800000           1800000
        Transmitted         :              3000000/2304000000           1500000
        Total Dropped       :               600000/460800000             300000
      Queueing statistics
        Queue ID                             : None (Bundle)
        Taildropped(packets/bytes)           : 600000/460800000

    The output shows that packets are matching the configured classes and that traffic is being transmitted according to the configured shaping policy. Use these counters to verify that the policy is active and handling traffic as expected.

  8. Verify the configured policy definition.

    Example:

    Router#show policy-map pmap-name bundle_abs_shape detail
    class-map match-any bundle_tc1
     match traffic-class 1
     end-class-map
    !
    class-map match-any bundle_tc2
     match traffic-class 2
     end-class-map
    !
    class-map match-any bundle_tc3
     match traffic-class 3
     end-class-map
    !
    policy-map bundle_abs_shape
     class bundle_tc1
      shape average 500 mbps
     !
     class bundle_tc2
      shape average 1000 mbps
     !
     class bundle_tc3
      shape average 1500 mbps
     !
     class class-default
     !
     end-policy-map
    !

    The policy definition confirms that the configured shape average values match the values that you configured in the policy map.

The bundle interface has an egress QoS policy that shapes matched traffic classes to fixed absolute rates. The configured shaper rate is applied per bundle member interface.

What to do next

After you add or replace bundle members, verify the bundle state using the show bundle Bundle-Ether 30 command.

  • If the command output displays the warning MQC: Shape bandwidth rate is greater than the parent reference bandwidth, remove the lower-bandwidth member, reduce the shaper rate so that it fits within the member bandwidth, and add the member again.