The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
This feature module describes how to configure quality of service (QoS) hierarchical queueing policy maps on sessions and subinterfaces in Ethernet Digital Subscriber Line Access Multiplexer (E-DSLAM) applications on a Cisco ASR 1000 series router. The QoS Hierarchical Queueing for Ethernet DSLAMs feature supports IEEE 802.1 QinQ VLAN tag termination to configure inner VLAN identifiers on E-DSLAMs.
For the latest feature information and caveats, see the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the "Feature Information for QoS Hierarchical Queueing for Ethernet DSLAMs" section.
Use Cisco Feature Navigator to find information about platform support and Cisco IOS XE Software image support. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.
•Prerequisites for QoS Hierarchical Queueing for Ethernet DSLAMs
•Restrictions for QoS Hierarchical Queueing for Ethernet DSLAMs
•Information About QoS Hierarchical Queueing for Ethernet DSLAMs
•How to Configure QoS Hierarchical Queueing for Ethernet DSLAMs
•Configuration Examples for QoS Hierarchical Queueing for Ethernet DSLAMs
•Feature Information for QoS Hierarchical Queueing for Ethernet DSLAMs
You must configure traffic classes using the class-map command.
This feature is not supported in combination with load balancing when a session service policy is routed to a Layer 2 Tunnel Protocol (L2TP) tunnel. Do not configure load balancing on an L2TP tunnel if per-session queueing is enabled.
Traffic downstream from a Broadband Router Access Server (BRAS) requires different levels of QoS provisioning (for example, traffic shaping) depending on the network architecture between the BRAS and the subscriber. Figure 1 illustrates an Ethernet DSL access network. The sample network includes multiple entities where QoS provisioning is required for different reasons.
Figure 1 Ethernet DSL Access Network
The following entities may require different traffic shaping:
•A VLAN that is shaped to a certain aggregate traffic rate to limit the traffic to a group of subscribers (different 802.1Q interfaces in Figure 1).
•Individual sessions that is shaped with certain QoS services for different classes of traffic (individual PCs in Figure 1).
Different traffic shaping requirements result in QoS provisioning at multiple levels at the same time. The QoS-Hierarchical Queueing for Ethernet DSLAMs feature provides the ability to form one integrated queueing hierarchy that provides QoS provisioning at multiple levels with support for features such as bandwidth distribution at any of these levels.
The integrated queueing hierarchy is formed on the physical interface. When a service policy is instantiated on a session, the Subscriber Service Switch (SSS) infrastructure invokes the MQC and a common queueing control plane sets up and enables the queueing features.
Session-to-interface associations are resolved to determine the physical interface on which to form the integrated queueing hierarchy for all levels of QoS provisioning. As subinterface session-based policies are added, the respective queues are created and integrated into the queueing hierarchy.
When a subinterface is provisioned followed by session-based policy provisioning, the integrated queueing hierarchy is formed on top of the physical interface as a result of queueing policies provisioned at two different levels. When a session is provisioned before subinterface-based policy provisioning, the queueing hierarchy has a placeholder logical level between the physical queue and the session queue. The placeholder queue becomes the default queue at that level, and all other sessions are parented to that queue.
When configuring the QoS Hierarchical Queueing for Ethernet DSLAMs feature, note the following guidelines:
•An individual subscriber is always identified by a PPP or IP session. A group of subscribers is identified by a particular VLAN by means of the outer tag ISP, E-DSLAM, or user-facing provider edge (U-PE).
•When a subinterface is used to aggregate a number of sessions with queueing policies, a queueing policy at a subinterface level must be a one-level policy map that is configured as class-default with only the shape and bandwidth remaining ratio feature enabled.
•Both subinterfaces and sessions can be oversubscribed and controlled by shaper and bandwidth remaining ratio.
1. enable
2. configure terminal
3. policy-map policy-map-name
4. class class-map-name
5. bandwidth {bandwidth-kbps | percent percentage | remaining percent percentage}
6. precedence precedence min-threshold max-threshold mark-probability-denominator
7. set cos cos-value
8. exit
9. exit
10. policy-map policy-map-name
11. class class-default
12. shape average cir
13. bandwidth remaining ratio ratio
14. service-policy policy-map-name
15. exit
16. exit
17. interface virtual-template number
18. service-policy output policy-map-name
19. end
The following is an example of how to configure and apply a QoS hierarchical queueing policy map to PPP/IP sessions by using a virtual template:
Router> enable
Router# configure terminal
Router(config)# policy-map session_a_child
Router(config-pmap)# class voip
Router(config-pmap-c)# police 1000000
Router(config-pmap-c)# priority level 1
Router(config-pmap-c)# exit
Router(config-pmap)# class video
Router(config-pmap-c)# police 100000
Router(config-pmap-c)# priority level 2
Router(config-pmap-c)# exit
Router(config-pmap)# class precedence_0
Router(config-pmap-c)# bandwidth remaining ratio 10
Router(config-pmap-c)# exit
Router(config-pmap)# class precedence_1
Router(config-pmap-c)# bandwidth remaining ratio 20
Router(config-pmap-c)# exit
Router(config-pmap)# exit
Router(config)# policy-map session_a_parent
Router(config-pmap-c)# exit
Router(config-pmap)# class class-default
Router(config-pmap-c)# shape average 10000000
Router(config-pmap-c)# bandwidth remaining ratio 10
Router(config-pmap-c)# service-policy session_a_child
Router(config-pmap-c)# exit
Router(config-pmap)# exit
Router(config)# interface virtual-template 20
Router(config-if)# service-policy output session_a_parent
Router(config-if)# end
1. enable
2. configure terminal
3. policy-map policy-map-name
4. class class-default
5. shape average cir
6. exit
7. exit
8. interface type slot/subslot/port.subinterface
9. encapsulation dot1q outer-vlan-id [second-dot1q inner-vlan-id]
10. service-policy output policy-map-name
11. end
The following is an example of how to configure and apply a QoS hierarchical queueing policy map to a subinterface (and provide aggregate shaping for a large number of subscribers):
Router> enable
Router# configure terminal
Router(config)# policy-map subint_1
Router(config-pmap)# class class-default
Router(config-pmap-c)# shape average 10000000
Router(config-pmap-c)# exit
Router(config-pmap)# exit
Router(config)# interface GigabitEthernet3/1/1.1
Router(config-subif)# encapsulation dot1q 100
Router(config-subif)# service-policy output subint_1
Router(config-subif)# end
1. enable
2. show policy-map
3. show policy-map interface type number
4. show policy-map session
5. exit
The following example shows how to configure and apply QoS hierarchical queueing policy maps on VLANs or QinQ subinterfaces. A child queueing policy is applied to each parent subscriber line level policy. In this example, the policy maps are applied to create subscriber groups on subinterfaces.
Router> enable
Router# configure terminal
Router(config)# policy-map service_a_out
Router(config-pmap)# class voip
Router(config-pmap-c)# priority
Router(config-pmap-c)# police cir percent 20 bc 300 ms pir precent 40
Router(config-pmap-c)# set cos 1
Router(config-pmap-c)# exit
Router(config-pmap)# class video
Router(config-pmap-c)# police cir percent 20 bc 300 ms pir prectent 40
Router(config-pmap-c)# set cos 2
Router(config-pmap-c)# exit
Router(config-pmap)# class gaming
Router(config-pmap-c)# bandwidth remaining percent 80
Router(config-pmap-c)# set cos 3
Router(config-pmap-c)# exit
Router(config-pmap)# class class-default
Router(config-pmap-c)# bandwidth remaining percent 20
Router(config-pmap-c)# set cos 4
Router(config-pmap-c)# exit
Router(config-pmap)# exit
!
Router(config)# policy-map service_z_out
Router(config-pmap)# exit
!
Router(config)# policy-map rate_1_service_a_in
Router(config-pmap)# class voip
Router(config-pmap-c)# police cir percent 25 4 ms 1 ms
Router(config-pmap-c)# exit
Router(config-pmap)# class gaming
Router(config-pmap-c)# police cir percent 50 2 ms 1 ms
Router(config-pmap-c)# exit
Router(config-pmap)# class class-default
Router(config-pmap-c)# police percent 20 bc 300 ms pir 40
Router(config-pmap-c)# exit
Router(config-pmap)# exit
!
Router(config)# policy-map rate_x_service_z_in
Router(config-pmap)# exit
!
Router(config)# policy-map rate_1_service_a_out
Router(config-pmap)# class class-default
Router(config-pmap-c)# bandwidth remaining ratio 10
Router(config-pmap-c)# shape average 100000
Router(config-pmap-c)# service policy service_a_out
Router(config-pmap-c)# exit
Router(config-pmap)# exit
!
Router(config)# policy-map rate_x_service_z_out
Router(config-pmap)# class class-default
Router(config-pmap-c)# bandwidth remaining ratio 10
Router(config-pmap-c)# shape average 100000
Router(config-pmap-c)# service policy service_z_out
Router(config-pmap-c)# exit
Router(config-pmap)# exit
Router(config)# interface GigabitEthernet1/0/0.1
Router(config-subif)# encapsulation dot1q 5 second dot1q 20
Router(config-subif)# service-policy output rate_1_service_a_out
Router(config-subif)# service-policy input rate_1_service_a_in
Router(config-subif)# exit
Router(config)# interface GigabitEthernet1/0/0.2
Router(config-subif)# encapsulation dot1q 5 second dot1q 25
Router(config-subif)# service-policy output rate_x_service_z_out
Router(config-subif)# service-policy input rate_x_service_z_in
Router(config-subif)# end
The following example shows how to configure and apply QoS hierarchical queueing policy maps on VLANs with subscriber lines grouped by arbitrary QinQ. A child queueing policy is applied to each parent subscriber line level policy. This example includes the configuration of multiple class maps.
Router> enable
Router# configure terminal
Router(config)# class-map match-all user_1
Router(config-cmap)# match vlan 10
Router(config-cmap)# exit
Router(config)# class-map match-all user_2
Router(config-cmap)# match vlan 11
Router(config-cmap)# exit
Router(config)# class-map match-all user_3
Router(config-cmap)# match vlan 10
Router(config-cmap)# exit
Router(config)# class-map match-any user_4
Router(config-cmap)# match vlan 11
Router(config-cmap)# exit
Router(config)# class-map match-all user_n
Router(config-cmap)# exit
Router(config)# class-map match-any isp_A
Router(config-cmap)# match class user_1
Router(config-cmap)# match class user_2
Router(config-cmap)# exit
Router(config)# class-map match-any isp_Z
Router(config-cmap)# match class user_3
Router(config-cmap)# match class user_4
Router(config-cmap)# exit
!
Router(config)# policy-map service_a_out
Router(config-pmap)# class voip
Router(config-pmap-c)# priority
Router(config-pmap-c)# police cir percent 20 bc 300 ms pir precent 40
Router(config-pmap-c)# set cos 1
Router(config-pmap-c)# exit
Router(config-pmap)# class video
Router(config-pmap-c)# police cir percent 20 bc 300 ms pir precent 40
Router(config-pmap-c)# set cos 2
Router(config-pmap-c)# exit
Router(config-pmap)# class gaming
Router(config-pmap-c)# bandwidth remaining percent 80
Router(config-pmap-c)# set cos 3
Router(config-pmap-c)# exit
Router(config-pmap)# class class-default
Router(config-pmap-c)# bandwidth remaining percent 20
Router(config-pmap-c)# set cos 4
Router(config-pmap-c)# exit
Router(config-pmap)# exit
!
Router(config)# policy-map service_z_out
Router(config)# policy-map service_a_in
Router(config-pmap)# class voip
Router(config-pmap-c)# police cir percent 25 4 ms 1 ms
Router(config-pmap-c)# exit
Router(config-pmap)# class gaming
Router(config-pmap-c)# police cir percent 50 2 ms 1 ms
Router(config-pmap-c)# exit
Router(config-pmap)# class class-default
Router(config-pmap-c)# police cir percent 20 bc 300 ms pir precent 40
Router(config-pmap-c)# exit
Router(config-pmap)# exit
!
Router(config)# policy-map service_z_in
Router(config-pmap)# exit
!
Router(config)# policy-map isp_A_out
Router(config-pmap)# class user_1
Router(config-pmap-c)# bandwidth remaining ratio 10
Router(config-pmap-c)# shape average 100000
Router(config-pmap-c)# service policy service_a_out
Router(config-pmap-c)# exit
Router(config-pmap)# class user_n
Router(config-pmap-c)# bandwidth remaining ratio 20
Router(config-pmap-c)# shape average 100000
Router(config-pmap-c)# service policy service_z_out
Router(config-pmap-c)# exit
Router(config-pmap)# exit
!
Router(config)# policy-map isp_Z_out
Router(config-pmap)# exit
!
Router(config)# policy-map isp_A_in
Router(config-pmap)# class user_1
Router(config-pmap-c)# service policy service_a_in
Router(config-pmap-c)# class user_n
Router(config-pmap-c)# service policy service_z_in
Router(config-pmap-c)# exit
Router(config-pmap)# exit
!
Router(config)# policy-map isp_Z_in
Router(config-pmap)# exit
!
Router(config)# policy-map interface_policy_out
Router(config-pmap)# class isp_A
Router(config-pmap-c)# shape average 100000
Router(config-pmap-c)# service policy isp_A_out
Router(config-pmap-c)# exit
Router(config-pmap)# class isp_Z
Router(config-pmap-c)# shape average 100000
Router(config-pmap-c)# service policy isp_Z_out
Router(config-pmap-c)# exit
Router(config-pmap)# exit
!
Router(config)# policy-map interface_policy_in
Router(config-pmap)# class isp_A
Router(config-pmap-c)# service policy isp_A_in
Router(config-pmap-c)# exit
Router(config-pmap)# class isp_Z
Router(config-pmap-c)# service policy isp_Z_in
Router(config-pmap-c)# exit
Router(config-pmap)# exit
!
Router(config)# interface GigabitEthernet1/0/0.1
Router(config-subif)# encapsulation dot1q 5 second dot1q any
Router(config-subif)# service-policy output interface_policy_out
Router(config-subif)# service-policy input interface_policy_in
Router(config-subif)# end
The following example shows how to configure and apply QoS hierarchical queueing policy maps on sessions. A child queueing policy is applied to each parent subscriber line level policy.
Router> enable
Router# configure terminal
Router(config)# policy-map service_a_out
Router(config-pmap)# class voip
Router(config-pmap-c)# priority
Router(config-pmap-c)# set cos 1
Router(config-pmap-c)# exit
Router(config-pmap)# class video
Router(config-pmap-c)# set cos 2
Router(config-pmap-c)# exit
Router(config-pmap)# class gaming
Router(config-pmap-c)# bandwidth remaining percent 80
Router(config-pmap-c)# set cos 3
Router(config-pmap-c)# exit
Router(config-pmap)# class class-default
Router(config-pmap-c)# bandwidth remaining percent 20
Router(config-pmap-c)# set cos 4
Router(config-pmap-c)# exit
Router(config-pmap)# exit
!
Router(config)# policy-map service_z_out
Router(config-pmap)# exit
!
Router(config)# policy-map rate_1_service_a_out
Router(config-pmap)# class class-default
Router(config-pmap-c)# bandwidth remaining ratio 10
Router(config-pmap-c)# shape average 100000
Router(config-pmap-c)# service-policy service_a_out
Router(config-pmap-c)# exit
Router(config-pmap)# exit
!
Router(config)# policy-map rate_x_service_z_out
Router(config-pmap)# class class-default
Router(config-pmap-c)# bandwidth remaining ratio 10
Router(config-pmap-c)# shape average 100000
Router(config-pmap-c)# service-policy service_z_out
Router(config-pmap-c)# exit
Router(config-pmap)# exit
!
Router(config)# policy-map rate_1_service_a_in
Router(config-pmap)# class voip
Router(config-pmap-c)# police cir percent 25 4 ms 1 ms
Router(config-pmap-c)# exit
Router(config-pmap)# class gaming
Router(config-pmap-c)# police cir percent 50 2 ms 1 ms
Router(config-pmap-c)# exit
Router(config-pmap)# class class-default
Router(config-pmap-c)# police cir percent 20 bc 300 ms pir precent 40
Router(config-pmap-c)# exit
Router(config-pmap)# exit
!
Router(config)# policy-map rate_x_service_z_in
Router(config-pmap)# exit
!
Router(config)# policy-map isp_A_out
Router(config-pmap)# class class-default
Router(config-pmap-c)# shape average 100000
Router(config-pmap-c)# bandwidth remaining ratio 10
Router(config-pmap-c)# exit
Router(config-pmap)# exit
Router(config)# exit
Router(config)# policy-map isp_Z_out
Router(config-pmap-c)# exit
Router(config-pmap)# class class-default
Router(config-pmap-c)# shape average 200000
Router(config-pmap-c)# bandwidth remaining ratio 30
Router(config-pmap-c)# exit
Router(config-pmap)# exit
Router(config)# interface GigabitEthernet1/0/0.1
Router(config-subif)# encapsulation dot1q 1
Router(config-subif)# service-policy output isp_A_out
Router(config-subif)# exit
Router(config)# interface GigabitEthernet2/0/0.2
Router(config-subif)# encapsulation dot1q 2
Router(config-subif)# service-policy output isp_Z_out
Router(config-subif)# end
The following example shows how to configure and apply QoS hierarchical queueing policy maps on sessions with multiple PPP/IP sessions per subscriber line. In this example, the same policies are applied to all sessions using the same virtual interface.
Router> enable
Router# configure terminal
Router(config)# policy-map service_a_out
Router(config-pmap)# class voip
Router(config-pmap-c) priority
Router(config-pmap-c)# police cir percent 25 4 ms 1 ms
Router(config-pmap-c)# set cos 1
Router(config-pmap-c)# exit
Router(config-pmap)# class video
Router(config-pmap-c)# police cir percent 30 5 ms 1 ms
Router(config-pmap-c)# set cos 2
Router(config-pmap-c)# exit
Router(config-pmap)# class class-default
Router(config-pmap-c)# bandwidth remaining percent 20
Router(config-pmap-c)# set cos 3
Router(config-pmap-c)# exit
Router(config-pmap)# exit
!
Router(config)# policy-map service_z_out
Router(config-pmap)# exit
!
Router(config)# policy-map rate_1_service_a_in
Router(config-pmap)# class voip
Router(config-pmap-c)# police cir percent 25 4 ms 1 ms
Router(config-pmap-c)# exit
Router(config-pmap)# class video
Router(config-pmap-c)# police cir percent 30 2 ms 1 ms
Router(config-pmap-c)# exit
Router(config-pmap)# class class-default
Router(config-pmap-c)# police cir percent 40 2 ms 1 ms
Router(config-pmap-c)# exit
Router(config-pmap)# exit
!
Router(config)# policy-map rate_x_service_z_in
Router(config-pmap)# exit
!
Router(config)# policy-map rate_1_service_a_out
Router(config-pmap)# class class-default
Router(config-pmap-c)# bandwidth remaining ratio 10
Router(config-pmap-c)# shape average 100000
Router(config-pmap-c)# service policy service_a_out
Router(config-pmap-c)# exit
Router(config-pmap)# exit
!
Router(config)# policy-map rate_x_service_z_out
Router(config-pmap)# class class-default
Router(config-pmap-c)# bandwidth remaining ratio 10
Router(config-pmap-c)# shape average 100000
Router(config-pmap-c)# service policy service_z_out
Router(config-pmap-c)# exit
Router(config-pmap)# exit
Router(config)# interface GigabitEthernet1/0/0
Router(config-if)# encapsulation dot1q 1
Router(config-if)# service-policy output isp_A_out
Router(config-if)# exit
Router(config)# interface GigabitEthernet2/0/0
Router(config-if)# encapsulation dot1q 2
Router(config-if)# service-policy output isp_Z_out
Router(config-if)# end
|
|
---|---|
QoS commands: complete command syntax, command modes, command history, defaults, usage guidelines, and examples |
|
Traffic shaping |
|
MQC |
|
|
---|---|
No new or modified standards are supported by this feature, and support for existing standards has not been modified by this feature. |
— |
|
|
---|---|
No new or modified RFCs are supported by this feature, and support for existing RFCs has not been modified by this feature. |
— |
Table 1 lists the release history for this feature.
Use Cisco Feature Navigator to find information about platform support and software image support. Cisco Feature Navigator enables you to determine which Cisco IOS XE software images support a specific Software release, feature set, or platform. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.
Note Table 1 lists only the Cisco IOS XE software release that introduced support for a given feature in a given Cisco IOS XE software release train. Unless noted otherwise, subsequent releases of that Cisco IOS XE software release train also support that feature.