Quality of Service Overview
Quality of Service (QoS) is the technique of prioritizing network traffic for time-sensitive and mission-critical applications such as VoIP services, live streaming of videos, priority accesses to database, and so on. Functions that QoS provides ensure that such applications receive sufficient bandwidth at low latency, with reduced data loss.
QoS functions perform preferential forwarding of high-priority packets. To do so, the packet is identified, classified, and then prioritized on all routers along the data-forwarding path throughout the network. As a result, priority applications get the resources they require, while other applications access the network, simultaneously.
QoS functions provide service providers cost benefits by enabling them to use existing resources efficiently and ensure the required level of service without reactively expanding, or over-provisioning their networks. QoS also improves customer experience when they get reliable services from a variety of network applications.
It is ideal to deploy QoS on BNG because BNG is present at the edge router, and subscriber directly connects to it. One of the unique features of BNG is QoS accounting. This feature enables BNG to collect and report QoS encapsulation information to the RADIUS server. For details, see QoS Accounting.
The deployment of QoS involves three components:
-
Class-map — Classifies different forms of traffic, like video, data, VOIP and so on, based on matching rules.
-
Policy-map — Defines the QoS actions to be applied to the classified traffic. It references the classes previously defined in the class-map. These policy-maps are also called QoS maps. The actions defined in the policy-map perform traffic prioritization and bandwidth allocation.
-
Service policy — Associates a previously defined policy-map with a attachment point and direction, on BNG. The attachment points are listed in the section QoS Attachment Points.The two directions possible for a policy is input and output. The policy direction is relative to the attachment point.
BNG supports two-level hierarchical policy (parent policy and child policy) for deploying QoS. Based on the preference of service provider, the QoS policies are defined and applied on BNG in these ways:
-
Define and apply the QoS policy from CLI. See, Configuring Service-policy and Applying Subscriber Settings Through Dynamic Template.
-
Define the QoS policy in CLI, but apply it from RADIUS. See, Configuring Service-policy and Applying Subscriber Settings Through RADIUS.
-
Define and apply the QoS policy from RADIUS. It is also called Parameterized QoS.
Restriction
-
If the subscriber ingress or egress QoS includes policing, shaping, bandwidth, or WRED actions, it is recommended that only active:standby bundle interfaces be used. Load-sharing should be avoided.
-
Users can configure only 7 class-maps (both ingress and egress, excluding the class-default map) to achieve a higher scale configuration per node processor.
Configuring Service-policy and Applying Subscriber Settings Through RADIUS
Perform this task to deploy the QoS policy using CLI commands. In this task, subscriber settings are applied from the RADIUS server.
SUMMARY STEPS
- configure
- policy-map type qos q_in
- class class-default
- service-policy q_child_in
- policy-map type qos q_out
- class class-default
- service-policy q_child_out
- Use the commit or end command.
DETAILED STEPS
Command or Action | Purpose | |||
---|---|---|---|---|
Step 1 |
configure Example:
|
Enters global configuration mode. |
||
Step 2 |
policy-map type qos q_in Example:
|
Configures the policy-map for the type qos. |
||
Step 3 |
class class-default Example:
|
Configures or modifies the parent class-default class.
|
||
Step 4 |
service-policy q_child_in Example:
|
Applies a bottom-level policy to the top-level class-default class. |
||
Step 5 |
policy-map type qos q_out Example:
|
Configures the policy-map for the type qos. |
||
Step 6 |
class class-default Example:
|
Configures or modifies the parent class-default class.
|
||
Step 7 |
service-policy q_child_out Example:
|
Applies a bottom-level policy to the top-level class-default class. |
||
Step 8 |
Use the commit or end command. |
commit —Saves the configuration changes and remains within the configuration session.
|
Configuring Subscriber Policy through CLI and Applying through RADIUS: Examples
configure
policy-map type qos q_in
class class-default
end
\\the following procedure is ran in RADIUS
Service-Type = Outbound-User
Cisco-avpair = "ipv4:ipv4-mtu=750",
Cisco-avpair = "ipv4:ipv4-unnumbered=Loopback0",
Cisco-avpair = "subscriber:sub-qos-policy-in=q_in",
Cisco-avpair = "subscriber:sub-qos-policy-out=q_out",
Idle-Timeout = 1000,
Session-Timeout = 5000
Configuring Service-policy and Applying Subscriber Settings Through Dynamic Template
Perform this task to deploy the QoS policy using CLI commands. In this task, subscriber settings are applied using a dynamic template.
SUMMARY STEPS
- configure
- policy-map type qos q_in
- class class-default
- service-policy q_child_in
- policy-map type qos q_out
- class class-default
- service-policy q_child_out
- dynamic-template type ppp dynamic_config
- service-policy input q_in
- service-policy output q_out
- Use the commit or end command.
DETAILED STEPS
Command or Action | Purpose | |||
---|---|---|---|---|
Step 1 |
configure Example:
|
Enters global configuration mode. |
||
Step 2 |
policy-map type qos q_in Example:
|
Configures the policy-map in the input direction. |
||
Step 3 |
class class-default Example:
|
Configures or modifies the parent class-default class.
|
||
Step 4 |
service-policy q_child_in Example:
|
Configures the service policy for the input direction.
|
||
Step 5 |
policy-map type qos q_out Example:
|
Configures the policy-map for the output direction.
|
||
Step 6 |
class class-default Example:
|
Configures or modifies the parent class-default class.
|
||
Step 7 |
service-policy q_child_out Example:
|
Applies a bottom-level policy to the top-level class-default class.
|
||
Step 8 |
dynamic-template type ppp dynamic_config Example:
|
Configures dynamic-template of the type ppp and applies the configuration through dynamic-template. |
||
Step 9 |
service-policy input q_in Example:
|
Configures the service-policy in the input direction. |
||
Step 10 |
service-policy output q_out Example:
|
Configures the service-policy in the output direction. |
||
Step 11 |
Use the commit or end command. |
commit —Saves the configuration changes and remains within the configuration session.
|
Configuring Subscriber Policy through CLI and Applying to Subscriber through Dynamic-Template: Examples
configure
policy-map type qos q_in // policy-map input direction
class class-default
end
configure
policy-map type qos q_out // policy-map output direction
class class-default
end
// applying configuration through dynamic-template
configure
dynamic-template type ppp dynamic_policy
service-policy input q_in
service-policy output q_out
end