Configuring Modular QoS on Link Bundles

QoS on Link Bundles

A bundle is a group of one or more ports that are aggregated together and treated as a single link. Cisco NCS 5001 and Cisco NCS 5002 Routers support Ethernet interfaces and VLAN interfaces (bundle sub-interfaces) bundles. All QoS features currently supported on physical interfaces, are also supported on all link bundle interfaces. Applying QoS on sub-interfaces is not supported.

For more info on link bundles, see Configuring Link Bundles chapter in L2VPN and Ethernet Services Configuration Guide for the Cisco NCS 5000 Series Routers, IOS XR Release 6.0.x

Load Balancing

Load balancing function is a forwarding mechanism to distribute traffic over multiple links based on Layer 3 routing information in the router. Per-destination load balancing, where the router is allowed to distribute packets over one of the links in the bundle, is the only supported load balancing in the Cisco NCS 5001 Router and Cisco NCS 5002 Router. When the per-destination load balancing is enabled, all packets for a certain source-destination pair goes through the same link, though there are multiple links available. In other words, per-destination load balancing can ensure that packets for a certain source-destination pair could arrive in order.

Layer 3 Load Balancing on Link Bundles

Layer 3 load balancing for link bundles is done on Ethernet Flow Points (EFPs) and is based on the IPv4 source and destination addresses in the packet. When Layer 3 service-specific load balancing is configured, all egress bundles are load balanced based on the IPv4 source and destination addresses. When packets do not have IPv4 addresses, default load-balancing (based on the MAC SA/DA fields in the packet header) is used.

Configure QoS on Link Bundles

QoS is configured on link bundles in the same way that it is configured on individual interfaces.

Guidelines

  • When a QoS policy is applied on a bundle (ingress or egress direction), the policy is applied at each member interface. Any queue or policer in the policy-map (ingress or egress direction) is replicated on each bundle member.

  • If a QoS policy is not applied to a bundle interface, both the ingress and egress traffic use the default queue of the per link member port.

  • The shape rate specified in the bundle policy-map is not an aggregate for all bundle members. The shape rate applied to the bundle depends on the load balancing of the links. For example, if a policy map with a shape rate of 10 Mbps is applied to a bundle with two member links, and if the traffic is always load-balanced to the same member link, then an overall rate of 10 Mbps applies to the bundle. However, if the traffic is load-balanced evenly between the two links, the overall shape rate for the bundle becomes 20 Mbps.

  • If a member is deleted from a bundle, the total bundle statistics changes because the statistics that belongs to the detached link is lost.

Configuration Example

You have to accomplish the following to complete the QoS configuration on link bundles:

  1. Creating a class-map

  2. Creating a policy-map and specifying the respective class-map

  3. Specifying the action type for the traffic

    Refer Attach a Traffic Policy to an Interface for details on step 1, 2 and 3.

  4. Creating a link bundle

  5. Applying traffic policy to the link bundle


/* Configure a class-map */
Router# configure
Router(config)# class-map match-any c1
Router(config-cmap)# match dscp af11
Router(config-cmap)# match precedence 7
Router(config-cmap)# end-class-map
Router(config)# commit

/* Configure a policy-map and specify the police rate */
Router(config)# policy-map p1
Router(config-pmap)# class c1
Router(config-pmap-c)# set qos-group 5
Router(config-pmap-c)# police rate percent 50 burst 1600 bytes
Router(config-pmap-c-police)# exit
Router(config-pmap-c)# exit
Router(config-pmap)# class class-default
Router(config-pmap)# end-policy-map
Router(config)# commit

/* Configure Ether-Bundle and apply traffic policy */
Router(config)# interface Bundle-Ether1
Router(config-if)# service-policy input p1
Router(config-if)# ipv4 address 192.1.1.1 255.255.255.0
Router(config-if)# mac-address 1212.1212.1212 (optional)
Router(config-if)# bundle minimum-active links 1
Router(config-if)# commit

Running Configuration

This example shows how a traffic policy is applied on an Ethernet link bundle, in the ingress direction. The policy is applied to all interfaces that are members of the Ethernet link bundle.



/* Class-map */
configure
 class-map match-any c1
  match dscp af11 
  match precedence 7 
  end-class-map
 ! 

/* Policy-map */
policy-map p1
 class c1
  set qos-group 5
  police rate percent 50 burst 1600 bytes 
  ! 
 ! 
 class class-default
 ! 
 end-policy-map
! 

/* Ether Bundle */
interface Bundle-Ether1
 service-policy input p1
 ipv4 address 192.1.1.1 255.255.255.0
 mac-address 1212.1212.1212
 bundle minimum-active links 1
!

Verification

  • Verify that the bundle status is UP.

    
    router# show bundle bundle-ether 1
    
    Bundle-Ether1
      Status:                                    Up
      Local links <active/standby/configured>:   2 / 0 / 3
      Local bandwidth <effective/available>:     20000000 (20000000) kbps
      MAC address (source):                      1212.1212.1212 (Configured)
      Inter-chassis link:                        No
      Minimum active links / bandwidth:          1 / 1 kbps
      Maximum active links:                      32
      Wait while timer:                          2000 ms
      Load balancing:                            Default
      LACP:                                      Not operational
        Flap suppression timer:                  Off
        Cisco extensions:                        Disabled
        Non-revertive:                           Disabled
      mLACP:                                     Not configured
      IPv4 BFD:                                  Not configured
    
      Port                  Device           State        Port ID         B/W, kbps
      --------------------  ---------------  -----------  --------------  ----------
      Te0/0/0/1             Local            Active       0x8000, 0x0000    10000000
          Link is Active
      Te0/0/0/2             Local            Configured   0x8000, 0x0000    10000000
          Link is down
      Te0/0/0/7             Local            Active       0x8000, 0x0000    10000000
    
    
  • Check the statistics of bundle member link(s) .

    
    router# show policy-map interface Bundle-Ether 1 input member TenGigE0/0/0/7 
     
    Interface:Bundle-Ether1 Member:TenGigE0/0/0/7 input: p1
    
    Class c1
      Classification statistics          (packets/bytes)     (rate - kbps)
        Matched             :                2759/176576               0
        Transmitted         : N/A 
        Total Dropped       :                   0/0                    0
      Policing statistics                (packets/bytes)     (rate - kbps) 
        Policed(conform)    :                2759/176576               0
        Policed(exceed)     :                   0/0                    0
        Policed(violate)    :                   0/0                    0
        Policed and dropped :                   0/0                  
    Class class-default
      Classification statistics          (packets/bytes)     (rate - kbps)
        Matched             :                 255/16372                0
        Transmitted         : N/A 
        Total Dropped       : N/A 
    
    
  • Verify that the bundle statistics show the cumulative of member link 1 and 2 .

    
    router# show policy-map interface bundle-ether 1 
     
    Tue Feb 11 11:57:22.532 UTC
    
    Bundle-Ether1 input: p1
    
    Class c1
      Classification statistics          (packets/bytes)     (rate - kbps)
        Matched             :                7588/485632               0
        Transmitted         : N/A 
        Total Dropped       :                   0/0                    0
      Policing statistics                (packets/bytes)     (rate - kbps) 
        Policed(conform)    :                7588/485632               0
        Policed(exceed)     :                   0/0                    0
        Policed(violate)    :                   0/0                    0
        Policed and dropped :                   0/0                  
    Class class-default
      Classification statistics          (packets/bytes)     (rate - kbps)
        Matched             :                 257/16552                0
        Transmitted         : N/A 
        Total Dropped       : N/A 
    Bundle-Ether1 direction output: Service Policy not installed
    
    

Related Topics

Associated Commands

  • bundle maximu-active links

  • interface Bundle-Ether