Dynamically Managing QoS Profiles
The SAE provides a QoS-tracking plug-in (QTP) that you can use to ensure that, as a subscriber activates and deactivates services, the required QoS profile is attached to the subscriber interface. With the QTP, the QoS profile selected is based on the activation state of an aggregation of services, not just one service.
For example, a subscriber activates a QoS service on a subscriber interface that requires a QoS profile that supports 512 best effort. The subscriber then activates a faster service (for example, 1024 best effort), as well as video on demand, and now has two QoS services running on an interface. The subscriber now needs a QoS profile to be attached to the interface that supports both video on demand and 1024 best-effort service. The QTP can determine which QoS profile the subscriber needs, and can cause the existing QoS profile to be removed from the subscriber interface and the new QoS profile to be attached to the interface.
Note that if a profile is installed on a subscriber interface and the QTP installs a new profile, the new profile is based on QoS services that are currently active. The new profile does not combine the functionality of the previous profile with the new profile. For example, if a subscriber has a default policy with QoS profile be-512 installed on the subscriber interface, and the subscriber activates a video-on-demand service, the QTP does not combine the functionality of be-512 with the profile that supports video on demand.
How QoS Profile Tracking Works
The SAE manages policies on router interfaces through service sessions. Service session configurations contain the policy that needs to be installed on an interface when a service is activated. The policy definition can include the name of a QoS profile to attach to the interface when the policy is installed.
When you set up the QTP, you create a QoS profile attachment service. The purpose of this service is to attach the required QoS profile to an interface. This service is hidden from subscribers and is under only QTP control.
Because profiles need to be changed only when QoS services are activated or deactivated, the QTP tracks services and reacts to service state changes by adjusting the QoS profile attachment as needed by deactivating and activating the QoS profile attachment service.
Subscribers who need their services managed by the QTP are subscribed to the QoS profile attachment service.
Identifying QoS Services
When you set up a service, you identify the service as a QoS service in one of the fields in the service definition. For example, you can assign a service name or category to indicate that the service is a QoS service, or you could assign the QTP instance name in the Tracking Plugin field.
When the SAE notifies the QTP that a service has been activated or deactivated, the QTP determines whether it is a QoS service by searching attributes in the service object. The QTP uses a search filter that you set up to search an attribute for the information that you assigned to the service to indicate that it is a QoS service.
For example, suppose you enter myqtp in the tracking plug-in field of QoS services to indicate that the service is a QoS service. You would set up the search filter to search tracking plug-in attributes for any service that contains myqtp:
Or you might configure the category to indicate that a service is a QoS service. The following filter searches service category attributes for any entry that contains ultra, video on demand, or video telephony:
To obtain a list of attribute names for the sspService
object class, see the LDAP schema documentation in
SDK+AppSupport+Demos+Samples.tar.gz file in the
folder SDK/doc/ldap or on the Juniper Networks
website at https://www.juniper.net/documentation/software/management/src.
Determining the QoS Profile
After the QTP determines that a service is a QoS service, it needs to obtain the name of the QoS profile for the service. The QTP generates a QoS profile name based on active QoS services as follows:
Obtains QoS profile input values.
The QTP obtains these values by taking the value of an attribute in the service definition. You specify which attribute that you want the QTP to use as the input value. For example, you can specify the service name, the category, or the contents of the design and graphics attribute.
Compiles a list of the QoS profile input values.
Removes duplicate values from the list.
Sorts the remaining list by using a case-sensitive alphanumeric comparison.
Concatenates the values with a separator. The default value for the separator is a hyphen (-). You can specify a different separator.
Table 3 shows how lists of QoS profile input values are sorted and then concatenated.
Table 3: Examples of Concatenated QoS Profile Input Values
Input—QoS Profile Input Values
game, be1024, vod
Adds a prefix to the resulting name. The default prefix is qos-profile. (You can specify a different value.) The output from our examples now looks like this:
The names that result from this process are the QoS profile names.
As you can see from this process, you need to design services and configure the QTP so that the resulting QoS profile names match the names of the QoS profiles configured on the router running JunosE Software.
Typically, a QoS designer creates a number of QoS profiles that support all the services that are expected to be used. This design results in various QoS profiles that need to be configured on each router. If a required QoS profile is not configured on the router, the hidden QoS profile attachment service cannot be activated. Services are still activated for the subscriber, but the services will not provide the expected traffic requirements. When this happens, the SAE logs the error but does not send an error message to the subscriber.
Setting Up Policy Groups
You need to create two types of policy groups in your QTP configuration. The QoS profile attachment service needs a policy group that attaches the required QoS profile to the subscriber interface when the attachment service is activated. QoS services need policy groups that classify traffic and specify the action to take on traffic that matches the classifier. (You can set up traffic classifiers to match any traffic.)
Policy Group for QoS Profile Attachment Service
The policy group for the hidden QoS profile attachment service must have an egress policy list with only one policy rule that contains a QoS profile attachment action. The QoS profile attachment action must have a variable parameter in the QoS profile field.
The policy group for the QoS profile attachment service must contain only one egress policy list and must contain one and only one QoS profile attachment action. Otherwise, the SRC software will require a license for the hidden service.
When the profile attachment service is activated, the QTP substitutes the QoS profile attribute in the policy with the QoS profile name that it determined. The service then loads the policy.
The following example creates a policy group for the QoS profile attachment service. This policy group does not match any traffic.
Create a policy group called Pg-qos-attach, and add an egress policy list.
In the egress policy list, create a policy rule that has a QoS profile attachment action with QoS profile qpName.
By default, the QTP looks for qpName as the variable parameter.
When the QTP determines the required QoS profile name, it substitutes qpName with the value that it acquired.
Setting Up Services
You need to set up a QoS profile attachment service and QoS services. Both types of services are value-added (SSP) services.
In the QoS profile attachment service, assign the policy group that you configured for the service. For example, policyGroupName=Pg-qos-attach, ou=ent, o=Policies, o=umc.
In QoS services, assign the policy group that you configured for the service.
Subscribe subscribers to the QoS profile attachment service and to the appropriate QoS services.
Reestablishing Default QoS Profile
A default QoS profile may be installed on the subscriber interface before the QTP installs QoS profiles in response to the activation of QoS services. For example, a profile may have been attached to the subscriber interface when the default policy was installed. Once QoS services are no longer active on the interface, the QTP can reestablish the QoS profile that was installed on the interface before the QTP began tracking services and installing profiles on the interface.
Example: How QTP Activates a QoS Service
The following example shows the process that QTP uses when a subscriber activates a QoS service. In this example, QoS profile input values are taken from the service name attribute. The hidden QoS profile attachment service is named svc-qos-attach. The svc-qos-attach service contains a policy that has the variable parameter qpName assigned as the QoS profile name.
The subscriber does not have any active services.
The subscriber activates service be512, which is a QoS service.
The SAE sends a Service Session Start event to the QTP.
The QTP searches an attribute in the service definition and determines that the service is a QoS service.
Using the SAE Common Object Request Broker Architecture (CORBA) remote application programming interface (API), the QTP gets a list of the subscriber’s active QoS services.
The list contains only service be512 because that is the only service that the subscriber has activated.
The QTP adds the default prefix to the QoS profile input value to obtain the QoS profile name. The result is:
The QTP deactivates the hidden svc-qos-attach service. Because this svc-qos-attach service was not active before, this operation does not have any effect.
The QTP activates the hidden svc-qos-attach service, and it substitutes variable parameter qpName with $’qos-profile-be512’ as the QoS profile name in the policy.
The policy loads qos-profile-be512 on the subscriber interface.
The subscriber activates service vod, which is a QoS service.
The SAE sends a Service Session Start event to the QTP.
QTP searches attributes in active service definitions and determines that the service is a QoS service.
The QTP gets a list of the subscriber’s active QoS services. The result is:
The QTP sorts the list and concatenates the QoS profile input values with the separator. The result is:
The QTP adds the default prefix to the concatenated name to obtain the QoS profile name. The result is:
The QTP deactivates the hidden svc-qos-attach service.
The QTP activates the hidden svc-qos-attach service, and it substitutes variable parameter qpName with $’qos-profile-be512-vod’ as the QoS profile name in the policy.
The policy loads qos-profile-be512-vod.
The subscriber deactivates service vod.
The QTP follows the same procedure as in Step 2 above and determines that the QoS profile name is qos-profile-vod.
The QTP deactivates the hidden svc-qos-attach service.
The QTP reactivates the hidden svc-qos-attach service, and it substitutes variable parameter qpName with $’qos-profile-be512’ as the QoS profile name in the policy.
The policy loads qos-profile-be512.