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
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.
Guidelines
-
When a QoS policy is applied on a bundle in the egress direction, it’s also applied at each member interface.
-
When a QoS policy is applied on a bundle (ingress direction), it’s replicated at each NPU core.
-
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.
Configuration Example
You have to accomplish the following to complete the QoS configuration on link bundles:
Note |
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 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 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
Related Topics
Associated Commands
-
bundle maximu-active links
-
interface Bundle-Ether