QoS on Link Bundles
A bundle is a group of one or more ports that are aggregated together and treated as a single link. The router supports 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 bundle members 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 function is a forwarding mechanism to distribute traffic over multiple links based on Layer 3 routing information in the router. Per-destination load balancing isonly supported on the router, where the router is allowed to distribute packets over one of the links in the bundle. 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.
When a QoS policy is applied on a bundle (ingress or egress direction), the policy is applied at each member interface. The reference bandwidth that is used to calculate shaper or bandwidth values is applied as per the physical member interface bandwidth.
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 that is 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.
The QoS policy that is applied on bundle is inherited to all its member links and the reference bandwidth that is used to calculate shaper/bandwidth is applied as per the physical member interface bandwidth, and not the bundle as a whole.
You have to accomplish the following to complete the QoS configuration on link bundles:
The policy works only if it is applied on the ingress direction. The egress is supported on COS, DEI and MPLS exp marking. So the below policy may not work when it is applied on egress.
Creating a class-map
Creating a policy-map and specifying the respective class-map
Specifying the action type for the traffic
Refer Attach a Traffic Policy to an Interface for details on step 1, 2 and 3.
Creating a link bundle
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 22.214.171.124 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
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 126.96.36.199 255.255.255.0 mac-address 1212.1212.1212 bundle minimum-active links 1 !
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 links.
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
bundle maximu-active links