- Configure ADC Based on ADC Rules (Sd) Overview
- Configuration Prerequisites
- Sd Diameter Data
- Configure Gx PCEF Nodes
- Configure Sd TDF Nodes
- Configure TDF Selection
- Configure Event Triggers
- Provision Services for ADC Rules
- Configure Service Access Control
- Configure Service Charging Control
- Provision Dynamic Services
- Configure Dynamic Service Classification for Sd
- Configure Dynamic Service Qualification in Sd
- Configure Bearer QoS Control for Dynamic Services
- Configure Access and Charging Policies Based on Dynamic Service Establishment
- Configuration Examples for Use Cases
- Appendix A. ADC over Sd Policy Types
- Appendix B. ADC over Sd Policy Tags
- Reference List
1 Configure ADC Based on ADC Rules (Sd) Overview
Figure 1 shows the main parts related to configuring and provisioning the SAPC.
The purpose of this document is to provide guidelines to configure the SAPC for Application Detection and Control (ADC) based on ADC rules and Dynamic Policy Control over the Sd interface by providing configuration examples.
This document does not intend to be a complete guide for configuring all possibilities related to ADC rules and Dynamic Policy Control over Sd in the SAPC.
The complete parameter list and details of all configured options of the SAPC are included in separate documents, refer to Managed Object Model (MOM) and Provisioning REST API.
For general concepts about the provisioning of policies, see Configuration Guide for Subscription and Policies.
| Note: |
The configuration for ADC based on PCC rules (Gx) is already
covered in
Configuration Guide for ADC based on PCC rules (Gx). |
Examples in this document cover the case of data configured in the SAPC internal repository. If an external repository is used, refer to Database Access.
1.1 Typographic Conventions
The following typographic and document conventions are used:
|
Convention |
Description |
Example |
|---|---|---|
|
Representational State Transfer (REST) |
Exact REST resources, methods, attibutes, or their corresponding values. |
PUT /dataplans/Silver { "dataplanName" : "Silver", "notification" : "sms" } |
|
Managed Object Class (MOC) or Attributes value |
Exact COM model object, classes names, attributes, or their corresponding values. |
SmsCenter enableDelivery=true |
|
NETCONF |
<edit-config> <target> <running /> </target> <config> <ManagedElement xmlns="urn:com:ericsson:ecim:ComTop"> <managedElementId> 1 </managedElementId> <PolicyControlFunction xmlns="urn:com:ericsson:ecim:sapcmom"> <policyControlFunctionId> 1 </policyControlFunctionId> <NotificationConfig xmlns="urn:com:ericsson: ecim:notificationconfigmom"> <notificationConfigId> 1 </notificationConfigId> <enableDelivery> true </enableDelivery> </NotificationConfig> </PolicyControlFunction> </ManagedElement> </config> </edit-config> |
2 Configuration Prerequisites
Before configuring the SAPC in an operational network, assure that:
3 Sd Diameter Data
To support ADC and Dynamic Policy Control over Sd in the SAPC, configure the PCEF and Traffic Detection Function (TDF) node data to be able to send and receive messages over the Gx and Sd interfaces:
| Note: |
The Origin-Host,
Origin-Realm, IP address and diameter port values are set during the
SAPC installation procedure. Diameter data related to capabilities
exchange (application and vendor identifiers) are provided at installation
time, so that no manual procedure is needed. |
3.1 Configure Gx PCEF Nodes
An Sd session towards a TDF can be established per IP-CAN session only if the PCEF that initiates the IP-CAN session does not support ADC based on PCC rules enhanced with ADC.
To support an Sd session for an IP-CAN session initiated from a PCEF, make sure that the adcSupport attribute is not set to"true" at DiameterNode level.
The PCEF configuration to support Dynamic Policy Control in Sd is the same configuration needed to support Dynamic Policy Control in Rx. For further details refer to the Dynamic Policy Control (Rx) and Configuration Guide for Dynamic Policy Control (Rx) documents.
The procedure to configure the set of policy controls that the SAPC applies for a PCEF node is detailed in Configuration Guide for Access and Charging Control (Gx). The Dynamic Policy Control over Sd refers to the following controls:
| Note: |
In multiple Gx scenarios where an IP-CAN session is controlled
by several PCEFs, the Sd session is associated with only one Gx
session. |
3.2 Configure Sd TDF Nodes
When the SAPC establishes an Sd session towards a TDF, the TDF connection details can be received over the Gx interface during the Gx session establishment or can be previously configured in the SAPC.
A TDF is configured in the SAPC including the Diameter realm and Diameter host or the TDF IP address, as shown in Example 1.
Example 1 Sd TDF Node Configuration
<edit-config>
<target>
<running/>
</target>
<config>
<ManagedElement xmlns="urn:com:ericsson:ecim:ComTop">
<managedElementId>1</managedElementId>
<PolicyControlFunction xmlns="urn:com:ericsson:ecim:sapcmom">
<policyControlFunctionId>1</policyControlFunctionId>
<Network xmlns="urn:com:ericsson:ecim:networkmom">
<networkId>1</networkId>
<DiameterNodes>
<diameterNodesId>1</diameterNodesId>
<Tdfs>
<tdfsId>1</tdfsId>
<Tdf>
<tdfId>tdf1</tdfId>
<host>TDFNodeHostname1.tdf1gpprealm.com</host>
<realm>tdf1gpprealm.com</realm>
</Tdf>
<Tdf>
<tdfId>tdf2</tdfId>
<ipAddress>192.168.14.42</ipAddress>
</Tdf>
<Tdf>
<tdfId>tdf3</tdfId>
<host>TDFNodeHostname3.tdf3gpprealm.com</host>
<realm>tdf3gpprealm.com</realm>
<ipAddress>192.168.14.43</ipAddress>
</Tdf>
</Tdfs>
</DiameterNodes>
</Network>
</PolicyControlFunction>
</ManagedElement>
</config>
</edit-config>
| Note: |
When the Diameter host, Diameter realm, and TDF IP addresses are provisioned, the
SAPC only uses the host and realm to establish the Diameter session with the
TDF. |
3.3 Configure TDF Selection
Once the SAPC identifies that an Sd session has to be established, and in case the TDF diameter routing details are not provided during the Gx session establishment, the SAPC needs to find the TDF intended to provide ADC to the PCEF that is requesting the IP-CAN session establishment.
3.3.1 Select TDF Conditionally
To assign a TDF to a PCEF conditionally, create a TdfRoute object at DiameterNode level. In the tdfId attributeset a valid TDF name as already defined in Configure Sd TDF Nodes.
The apns attribute includes the list of APNs for which the indicated TDF must be used for ADC, as shown in Example 2.
Example 2 Conditional TDF Selection
<edit-config>
<target>
<running/>
</target>
<config>
<ManagedElement xmlns="urn:com:ericsson:ecim:ComTop">
<managedElementId>1</managedElementId>
<PolicyControlFunction xmlns="urn:com:ericsson:ecim:sapcmom">
<policyControlFunctionId>1</policyControlFunctionId>
<Network xmlns="urn:com:ericsson:ecim:networkmom">
<networkId>1</networkId>
<DiameterNodes>
<diameterNodesId>1</diameterNodesId>
<DiameterNode>
<diameterNodeId>PCEF1</diameterNodeId>
<controls>IP_CAN_SESSION_ACCESS</controls>
<controls>SERVICE_ACCESS_PCEF_TOD</controls>
<controls>BEARER_QOS</controls>
<controls>CONTENT_FILTERING</controls>
<dynamicServiceSupport>true</dynamicServiceSupport>
<adcSupport>false</adcSupport>
<TdfRoute>
<tdfId>tdf1</tdfId>
<apns>APN1,APN5,APN9</apns>
</TdfRoute>
</DiameterNode>
</DiameterNodes>
</Network>
</PolicyControlFunction>
</ManagedElement>
</config>
</edit-config>
If the tdfId attribute contains a nonexistent or wrong TDF name, the SAPC cannot establish the Sd session.
An APN should not be configured in more than one TdfRoute. Otherwise, it is considered an erroneous configuration. The SAPC manages this scenario by selecting the first TDF found for the target APN as the TDF to be used for the Sd session establishment.
3.3.2 Select TDF Unconditionally
To assign a TDF to a PCEF unconditionally (also known as default TDF), configure a TdfRoute object at DiameterNode level. In the tdfId attribute set a valid TDF name that is already defined in Configure Sd TDF Nodes. The apns attribute is an empty value.TDF conditionally selected has precedence over the default . See Example 3 for further details.
Example 3 Unconditional TDF Selection
<edit-config>
<target>
<running/>
</target>
<config>
<ManagedElement xmlns="urn:com:ericsson:ecim:ComTop">
<managedElementId>1</managedElementId>
<PolicyControlFunction xmlns="urn:com:ericsson:ecim:sapcmom">
<policyControlFunctionId>1</policyControlFunctionId>
<Network xmlns="urn:com:ericsson:ecim:networkmom">
<networkId>1</networkId>
<DiameterNodes>
<diameterNodesId>1</diameterNodesId>
<DiameterNode>
<diameterNodeId>PCEF2</diameterNodeId>
<controls>IP_CAN_SESSION_ACCESS</controls>
<controls>SERVICE_ACCESS_PCEF_TOD</controls>
<controls>BEARER_QOS</controls>
<controls>CONTENT_FILTERING</controls>
<dynamicServiceSupport>true</dynamicServiceSupport>
<adcSupport>false</adcSupport>
<TdfRoute>
<tdfId>tdf2</tdfId>
<apns></apns>
</TdfRoute>
</DiameterNode>
</DiameterNodes>
</Network>
</PolicyControlFunction>
</ManagedElement>
</config>
</edit-config>
If the tdfId attribute contains a nonexistent or wrong TDF name, the SAPC cannot establish the Sd session.
The configuration of more than one TDFs selected unconditionally per PCEF is considered an erroneous configuration. The SAPC manages this scenario by selecting the first TDF found as the default TDF per corresponding Diameter node.
| Note: |
To configure a TDF for Clustered Diameter Systems, it is also necessary to add
the TdfRoute object under the corresponding
DiameterNode MOC with the
clusterPattern attribute set to the proper value. |
3.4 Configure Event Triggers
To indicate to the TDF that the SAPC is about to start or stop application reporting, the SAPC always sends APPLICATION_START and APPLICATION_STOP event trigger values to the TDF during the Sd session establishment.
There is no need to configure any eventTriggers attribute at subscriber, dataplan, or SAPC level.
3.5 Provision Services for ADC Rules
The services controlled by the SAPC over the Sd interface must be provisioned. To provision services use the contents URI in the provisioning REST API.
The SAPC only supports the following type of services in the Sd interface:
3.5.1 Set ADC rules
To set an ADC rule for a static service, fill the following attributes in the corresponding contents URI in the provisioning REST API:
Steps
Example 4 Provisioning of Services
PUT /contents/Chat
{
"contentName" : "Chat",
"adcRuleName" : "1000",
"adcRuleType" : 0
}
PUT /contents/Internet
{
"contentName" : "Internet",
"adcRuleName" : "2000",
"adcRuleType" : 1
}
PUT /contents/Skype
{
"contentName" : "Skype",
"pccRuleName" : "8001",
"pccRuleType" : 0,
"adcRuleName" : "8002",
"adcRuleType" : 0
}
This example provisions the following services:
3.6 Configure Service Access Control
Service Access Control applied over a content containing ADC rules determines the services to be monitored on a particular Sd session. It happens in a similar way that Service Access Control applied over a content containing PCC rules determines the services to be authorized for a particular Gx session.
The services over Sd applicable to a subscriber must be known by the SAPC. These services must be provisioned for the subscriber or the dataplan in the subscribedContents attribute of the subscriber or dataplan. Refer to Configuration Guide for Access and Charging Control (Gx) for more information.
Table 2 shows the policy types related to service access, which can be used and configured in the SAPC for service access over Sd.
|
Policy Type |
Policy Locator |
Output Attributes |
Comments |
||
|
Context |
Resource |
Subject |
|||
|
Access Control (Service Authorization) Access |
access |
<contentId> |
<subscriberId> <dataplanId> |
Sd Conditions:
ToD |
|
|
Access Control (Static Service Qualification) Static Access |
static-access |
<contentId> |
<subscriberId> <dataplanId> |
permit adc-rule-id "<adcRuleName>" |
Sd Conditions:
ToD |
3.6.1 Provision Policies for Service Authorization
To configure Service Authorization depending on Conditions, create the necessary policies using the following URIs in the provisioning REST API:
| Note: |
It is not necessary to use the outputAttributes object. |
| Note: |
Non-authorization codes are not supported over the Sd interface. |
In Example 5 the "Internet" service is authorized for the subscriber if access is performed through IP-CAN type 5 (3GPP-EPS). If the condition is not fulfilled, the service is not authorized. Therefore, the corresponding ADC rule is not downloaded to the TDF over the Sd interface.
Example 5 Configuration of Service Authorization for Internet Service
PUT /rules/SAuth_Internet_AccessBased
{
"condition" : "(AccessData.bearer.ipCanType==5)",
"ruleName" : "SAuth_Internet_AccessBased"
}
PUT /policies/SAuth_Internet_Policy_1
{
"policyName" : "SAuth_Internet_Policy_1",
"ruleCombiningAlgorithm" : "permit-overrides",
"rules" : [ "SAuth_Internet_AccessBased" ]
}
PUT /subscribers/34600000001/locators/resources/Internet/contexts/access
{
"policies" : [ "SAuth_Internet_Policy_1" ]
}
PUT /subscribers/34600000001
{
"subscriberId" : "34600000001",
"subscribedContents" :
[
{
"contentName" : "Internet"
}
]
}
3.6.2 Provision Static Service Policies
Together with the TDF, the SAPC can assign and change the bandwidth limits and rating group for static services during an Sd session lifetime, depending on flexible conditions for a subscriber or subscriber group.
Some examples of possible use cases are the following:
A static service in the TDF can be identified by several static service names. Each static service name in the TDF assigns different characteristics (rating group, service bandwidth, and so on) to the service. The SAPC authorizes the static base name taking into account subscriber information, accumulated use, and so on. The SAPC then selects the right AdcRuleName in terms of bandwidth and rating group, depending on the conditions configured in the policies.
To configure Static Services depending on Conditions, create the needed policies using:
|
Service |
adcRuleName (ADC-Rule-Base-Name AVP) |
adcRuleType |
Condition |
new adcRuleName (ADC-Rule-Name AVP) |
|---|---|---|---|---|
|
P2P |
20 |
1 (basename) |
Not roaming Roaming |
20001 20002 |
|
ADC-Rule-Name |
Bandwidth |
RatingGroup |
|---|---|---|
|
20001 |
1 Mbps |
Flat rate |
|
20002 |
128 Kbps |
Not flat rate |
In Example 6, for the "P2P" service, depending whether the subscriber is in roaming or not, a different bandwidth and rating group is applied, by sending either ADC-Rule-Name = 20002 or ADC-Rule-Name = 20001 to the TDF.
Example 6 Configuration for Qualifying Static ADC Rules for TDF
# ---------------------------------------------
PUT /rules/rQualify1
{
"condition" : "AccessData.subscriber.locationInfo.countryCode == 214",
"outputAttributes" :
[
{
"attrName" : "adc-rule-id",
"attrValue" : "\"20001\"",
"result" : "permit"
}
],
"ruleName" : "rQualify1"
}
PUT /rules/rQualify2
{
"condition" : "not(AccessData.subscriber.locationInfo.countryCode == 214)",
"outputAttributes" :
[
{
"attrName" : "adc-rule-id",
"attrValue" : "\"20002\"",
"result" : "permit"
}
],
"ruleName" : "rQualify2"
}
PUT /policies/pQualify
{
"policyName" : "pQualify",
"ruleCombiningAlgorithm" : "permit-overrides",
"rules" : [ "rQualify1", "rQualify2" ]
}
PUT /dataplans/OneGroup/locators/resources/P2P/contexts/static-access
{
"policies" : [ "pQualify" ]
}
PUT /contents/P2P
{
"contentName" : "P2P",
"adcRuleName" : "20",
"adcRuleType" : 1
}
PUT /dataplans/OneGroup
{
"dataplanName" : "OneGroup",
"subscribedContents" :
[
{
"contentName" : "P2P",
"redirect" : false
}
]
}
Bandwidth limits and rating group for static defined services can also be changed depending on time conditions. A specific bandwidth and rating group can be applied in flat hours, and a different bandwidth and rating group for the rest of the time. To achieve that, modify the condition attribute of the rules in the previous example. For example:
3.8 Provision Dynamic Services
In addition to the dynamic services activated in the SAPC based on the information coming from the AF (using the Rx interface), the SAPC supports dynamic services activated in the SAPC based on the information coming from the TDF (using the Sd interface) and dynamically provisioned towards the GGSN/PDN-GW.
For further information regarding the provisioning of dynamic services, refer to the Dynamic Policy Control (Rx) and Configuration Guide for Dynamic Policy Control (Rx) documents.
3.9 Configure Dynamic Service Classification for Sd
The SAPC needs to determine a service identifier corresponding to the dynamic service activated by TDF events. The service identifier is relevant to perform dynamic service qualification afterwards. For further information on how to configure the conditions to determine such a service identifier, see Configuration Guide for Dynamic Policy Control (Rx).
The SAPC uses the following information received over the Sd interface for Dynamic Service Classification:
The output result is the identifier of the service. The association between dynamic services and the information provided by the TDF is flexible, and requires a detailed knowledge about the TDF-Application-Identifier or TDF-Application-Instance-Identifier data, or both that trigger the activation of dynamic services in the SAPC.
To provision policies for Dynamic Service Classification for Sd, use the values summarized in the following table:
|
Policy Type |
Policy Locator |
Output Attributes |
Comments |
||
|
Context |
Resource |
Subject |
|||
|
Dynamic Service Classification for Sd |
service-classification |
tdf-detected-application |
- |
service <contentId> |
Algorithms:
Conditions:
|
The result of service classification in Sd is successful if the SAPC matches the application detection information (which includes the TDF application identifier, TDF application instance identifier, and the flow information, provided in the CC-Request Update command from the TDF) with any of the configured rules in the applicable policies:
| Note: |
Only global policy locator policies can be configured for
Dynamic Service Classification. |
Table 6 shows examples for dynamic service classification for Sd, whose columns contain the input and output information elements. The rows in the table are evaluated in order.
|
TDF-Application-Identifier |
TDF-Application-Instance-Identifier |
Condition |
Service Id |
|---|---|---|---|
|
"skype" |
"audio" |
application="skype", instance="audio" |
Skype_audio |
|
"skype" |
"video" |
application="skype", instance="video" |
Skype_video |
|
"facebook" |
"streaming" |
application="facebook", server port="995" |
Facebook_streaming |
Figure 2 shows the required configuration for two services ("Skype_audio" and "Skype_video") in one policy and for the "Facebook_streaming" service in a different policy:
| Note: |
The "Skype" (audio and video) and "Facebook" services can also be configured using one policy only, since the any-match attribute does not impose any restrictions
on the number of rules configured per policy. |
Figure 2 Example of Configuration to Classify the Skype Audio and
Video and Facebook Streaming ServicesExample 7 shows the configuration corresponding to the services and conditions described in Table 6:
Example 7 Configuration of Classification Policies for Dynamic Services in Sd
# ---------------------------------------------
PUT /rules/classifySkypeAudio
{
"condition" : "(TdfData.tdfAppId == \"skype\")&&(TdfData.tdfAppInstanceId == \"audio\")",
"outputAttributes" :
[
{
"attrName" : "service",
"attrValue" : "\"Skype_audio\"",
"result" : "permit"
}
],
"ruleName" : "classifySkypeAudio"
}
PUT /rules/classifySkypeVideo
{
"condition" : "(TdfData.tdfAppId == \"skype\")&&(TdfData.tdfAppInstanceId == \"video\")",
"outputAttributes" :
[
{
"attrName" : "service",
"attrValue" : "\"Skype_video\"",
"result" : "permit"
}
],
"ruleName" : "classifySkypeVideo"
}
PUT /policies/pClassifySkype
{
"policyName" : "pClassifySkype",
"ruleCombiningAlgorithm" : "any-match",
"rules" : [ "classifySkypeAudio", "classifySkypeVideo" ]
}
PUT /rules/classifyFacebookStreaming
{
"condition" : "(TdfData.tdfAppId == \"facebook\")&&(TdfData.port == \"995\")",
"outputAttributes" :
[
{
"attrName" : "service",
"attrValue" : "\"Facebook_streaming\"",
"result" : "permit"
}
],
"ruleName" : "classifyFacebookStreaming"
}
PUT /policies/pClassifyFacebook
{
"policyName" : "pClassifyFacebook",
"ruleCombiningAlgorithm" : "any-match",
"rules" : [ "classifyFacebookStreaming" ]
}
PUT /locators/resources/tdf-detected-application/contexts/service-classification
{
"policies" : [ "pClassifySkype", "pClassifyFacebook" ]
}
This configuration example results in the following classification for dynamic services depending on the data received in the Sd requests:
Once a dynamic service is classified, a charging profile or a QoS profile, or both can be associated with it, using the dynamic service qualification Configure Dynamic Service Qualification in Sdprocess. For further details, see Configure Dynamic Service Qualification in Sd.
3.10 Configure Dynamic Service Qualification in Sd
Dynamic services over Sd can be qualified with QoS or charging data either statically or using policy conditions. The SAPC first evaluates the service qualification policies, but if there are not applicable policies, or the policies are not fulfilled, the SAPC obtains the QoS and charging profiles statically assigned to the dynamic service.
3.10.1 Configure Static Qualification for Dynamic Services in Sd
The association of a static QoS profile or a static charging profile with a dynamic service follows the same process as for preconfigured services:
Example 8 shows the allocation of static QoS and charging profiles to a dynamic service:
Example 8 Static QoS and Charging Profiles Assigned to Dynamic Services
PUT /contents/Skype_video
{
"contentName" : "Skype_video",
"staticQualification" :
{
"contentChargingProfileId" : "Char_Skype_video",
"contentQosProfileId" : "QoS_Skype_video"
}
}
PUT /profiles/content-qos/QoS_Skype_video
{
"arpPriorityLevel" : 7,
"profileId" : "QoS_Skype_video",
"qci" : 2
}
PUT /profiles/content-charging/Char_Skype_video
{
"chargingServiceId" : 301,
"profileId" : "Char_Skype_video",
"ratingGroup" : 301,
"reportingLevel" : 1
}
3.10.2 Configure Dynamic Qualification for Dynamic Services in Sd
Using policies, it is possible to use dynamic conditions to assign QoS and charging profiles to dynamic services in Sd.
To use policies for dynamic service qualification, create the needed policies using the following URIs in the provisioning REST API:
Where <contentName> is the given name of the service to be qualified and <context type> is either charging or qos.
In addition, to define the conditions that need to be fulfilled to apply a given QoS or charging profile, define qualification rules and qualification policies by using the following tables:
|
Policy Type |
Policy Locator |
Output Attributes |
Comments |
||
|
Context |
Resource |
Subject |
|||
|
Bearer QoS Control (Dynamic Service Qualification) QoS for Service |
qos |
<contentId> |
<subscriberId> <dataplanId> |
permit qos ServiceQoSProfile ["<qosProfileName>"] |
Mixing policies and qualification Conditions:
ToD |
|
(Dynamic Service Qualification) Service Charging |
charging |
<contentId> |
<subscriberId> <dataplanId> |
permit charging ServiceChargingProfile ["<chargingProfileName>"] |
Mixing policies and qualification Conditions:
ToD |
Example 9 shows how to assign a QoS profile depending on policy conditions to the "Skype_video" dynamic service:
Example 9 Configuration of QoS Upgrade for Dynamic Services
PUT /profiles/content-qos/Qos_Upgrade
{
"arpPci" : false,
"arpPriorityLevel" : 5,
"arpPvi" : true,
"gbrDownlink" : 2000,
"gbrUplink" : 500,
"mbrDownlink" : 2500,
"mbrUplink" : 1000,
"profileId" : "Qos_Upgrade"
}
PUT /rules/qualifySkype_video
{
"condition" : "(AccessData.bearer.accessPoint == \"internet.network2.operatorX\")",
"outputAttributes" :
[
{
"attrName" : "qos",
"attrValue" : "ServiceQosProfile[\"Qos_Upgrade\"]",
"result" : "permit"
}
],
"ruleName" : "qualifySkype_video"
}
PUT /policies/pQualifySkype_video
{
"policyName" : "pQualifySkype_video",
"ruleCombiningAlgorithm" : "permit-overrides",
"rules" : [ "qualifySkype_video" ]
}
PUT /locators/resources/Skype_video/contexts/qos
{
"policies" : [ "pQualifySkype_video" ]
}
Example 9 shows how to configure a QoS profile named “Qos_Upgrade” for the "Skype_audio" dynamic service when the APN is internet.network2.operatorX.
Example 10 Configuration of Charging Data for Dynamic Services
Example 10 shows how to configure a charging data profile for dynamic services depending on conditions:
PUT /profiles/content-charging/ChargingType1
{
"meteringMethod" : 1,
"offlineEnabled" : true,
"onlineEnabled" : false,
"profileId" : "ChargingType1",
"ratingGroup" : 4,
"reportingLevel" : 1
}
PUT /rules/qualifyFacebook_streaming
{
"condition" : "(AccessData.subscriber.locationInfo.countryCode == \"214\") && (AccessData.subscriber.locationInfo.networkCode == \"07\")",
"outputAttributes" :
[
{
"attrName" : "charging",
"attrValue" : "ServiceChargingProfile[\"ChargingType1\"]",
"result" : "permit"
}
],
"ruleName" : "qualifyFacebook_streaming"
}
PUT /policies/pQualifyFacebook_streaming
{
"policyName" : "pQualifyFacebook_streaming",
"ruleCombiningAlgorithm" : "permit-overrides",
"rules" : [ "qualifyFacebook_streaming" ]
}
PUT /locators/resources/Facebook_streaming/contexts/charging
{
"policies" : [ "pQualifyFacebook_streaming" ]
}
The “ChargingType1” charging profile is configured for the “Facebook_streaming” dynamic service when the user location information indicates that MCC=214 and MNC=07.
3.11 Configure Bearer QoS Control for Dynamic Services
In scenarios where dynamic services do not require a dedicated bearer, but are installed on the default IP-CAN session bearer, it may be required to configure the QoS of the default bearer in connection with the establishment of dynamic services on the IP-CAN session.
The configuration of bearer QoS control is described in Configuration Guide for Bearer QoS and Bandwidth Management. In addition, the following specific QoS selection tags are defined in connection with dynamic services based on notifications received from the Rx and Sd interfaces:
|
Policy Type |
Policy Locator |
Output Attributes |
Comments |
||
|
Context |
Resource |
Subject |
|||
|
Bearer QoS Control QoS for Bearer |
qos |
ip-can-session |
<subscriberId> <dataplanId> |
permit max-qos: BearerQosProfile ["<qosProfileName>"] or qos_prof_expression (1) permit min-qos: BearerQosProfile ["<qosProfileName>"] or qos_prof_expression (1) |
Mixing policies and qualification Conditions:
ToD |
3.12 Configure Access and Charging Policies Based on Dynamic Service Establishment
The SAPC can be configured to reevaluate the access and charging policy decisions taken for the IP-CAN and Sd session based on the successful resource allocation of dynamic services.
The configuration of access and charging policy control is described in Configuration Guide for Access and Charging Control (Gx). In addition, the following policy tag is defined in connection with dynamic services based on notifications received from the Rx and Sd interfaces:
4 Configuration Examples for Use Cases
4.1 Upgrade Default Bearer to Prioritize Streaming Delivery
Example 11 shows how application detection can be used to upgrade the default bearer QoS when specific application traffic is detected by the TDF and reported to the SAPC.
The ADC rule configured in the "Netflix" content is activated in the TDF for subscribers belong to "Bronze" subscriber group. When the TDF notifies the SAPC about the start of the application identified as "NetflixStream", the SAPC updates the default bearer QoS in the PCEF.
Example 11 Default Bearer QoS Upgrade
PUT /contents/Netflix
{
"contentName" : "Netflix",
"adcRuleName" : "2000",
"adcRuleType" : 0
}
PUT /dataplans/Bronze
{
"dataplanName" : "Bronze",
"subscribedContents" :
[
{
"contentName" : "Netflix",
"redirect" : false
}
],
"staticQualification" :
{
"maxBearerQosProfileId" : "MaxBearerQoS",
"minBearerQosProfileId" : "MinBearerQoS"
}
}
PUT /profiles/ip-can-session-qos/MinBearerQoS
{
"arpPci" : true,
"arpPriorityLevel" : 3,
"arpPvi" : false,
"mbrDownlink" : 512,
"mbrUplink" : 512,
"profileId" : "MinBearerQoS",
"qci" : 6
}
PUT /profiles/ip-can-session-qos/MaxBearerQoS
{
"arpPci" : true,
"arpPriorityLevel" : 3,
"arpPvi" : false,
"mbrDownlink" : 1024,
"mbrUplink" : 1024,
"profileId" : "MaxBearerQoS",
"qci" : 6
}
PUT /profiles/ip-can-session-qos/UpgradeBearerQoS
{
"arpPci" : true,
"arpPriorityLevel" : 3,
"arpPvi" : false,
"mbrDownlink" : 2048,
"mbrUplink" : 2048,
"profileId" : "UpgradeBearerQoS",
"qci" : 6
}
PUT /rules/rQosUpgrade
{
"condition" : "(TdfData.tdfApp[\"NetflixStream\"].isStarted)",
"outputAttributes" :
[
{
"attrName" : "max-qos",
"attrValue" : "BearerQosProfile[\"UpgradeBearerQoS\"]",
"result" : "permit"
} ],
"ruleName" : "rQosUpgrade"
}
PUT /policies/pQosUpgrade
{
"policyName" : "pQosUpgrade",
"ruleCombiningAlgorithm" : "permit-overrides",
"rules" : [ "rQosUpgrade" ]
}
PUT /dataplans/Bronze/locators/resources/ip-can-session/contexts/qos
{
"policies" : [ "pQosUpgrade" ]
}
4.2 Allocate Dedicated Bearer to Prioritize Streaming Delivery
Example 12 shows how application detection can be used to allocate a dedicated bearer, when specific application traffic is detected by the TDF and reported to the SAPC.
The ADC rule configured in the "YouTube" content is activated in the TDF for subscribers belong to "Premium" subscriber group. When the TDF notifies the SAPC about the starting of the application identified as "YouTubeStream" and delivered from the remote server using ports in the range of 1000-2000, the SAPC requests to initiate a dedicated bearer in the PCEF.
Example 12 YouTube Dedicated Bearer Allocation"
PUT /profiles/content-charging/Char_YouTube
{
"chargingServiceId" : 301,
"profileId" : "Char_YouTube",
"ratingGroup" : 301,
"reportingLevel" : 1
}
PUT /profiles/content-qos/QoS_YouTube
{
"arpPriorityLevel" : 7,
"profileId" : "QoS_YouTube",
"qci" : 2
}
PUT /contents/YouTube
{
"contentName" : "YouTube",
"staticQualification" :
{
"contentChargingProfileId" : "Char_YouTube",
"contentQosProfileId" : "QoS_YouTube"
}
}
PUT /rules/rule_YouTube
{
"condition" : "(TdfData.tdfAppId == \"YouTubeStream\") && inRange(TdfData.port,\"1000-2000\")",
"outputAttributes" :
[
{
"attrName" : "service",
"attrValue" : "\"YouTube\"",
"result" : "permit"
}
],
"ruleName" : "rule_YouTube"
}
PUT /policies/policy_YouTube
{
"policyName" : "policy_YouTube",
"ruleCombiningAlgorithm" : "any-match",
"rules" : [ "rule_YouTube" ]
}
PUT /locators/resources/tdf-detected-application/contexts/service-classification
{
"policies" : [ "policy_YouTube" ]
}
5 Appendix A. ADC over Sd Policy Types
Table 9 and Table 10 show the different policy types applicable to ADC over Sd and Dynamic Policy Control over Sd that can be used and configured in the SAPC.
|
Policy Type |
Policy Locator |
Output Attributes |
Comments |
||
|
Context |
Resource |
Subject |
|||
|
Access Control (Service Authorization) Access |
access |
<contentId> |
<subscriberId> <dataplanId> |
Sd Conditions:
ToD |
|
|
Access Control (Static Service Qualification) Static Access |
static-access |
<contentId> |
<subscriberId> <dataplanId> |
permit adc-rule-id "<adcRuleName>" |
Sd Conditions:
ToD |
|
Policy Type |
Policy Locator |
Output Attributes |
Comments |
||
|
Context |
Resource |
Subject |
|||
|
Dynamic Service Classification for Sd |
service-classification |
tdf-detected-application |
- |
service <contentId> |
Algorithms:
Conditions:
|
|
Bearer QoS Control (Dynamic Service Qualification) QoS for Service |
qos |
<contentId> |
<subscriberId> <dataplanId> |
permit qos ServiceQosProfile ["<qosProfileName>"] |
Mixing policies and qualification Conditions:
ToD |
|
(Dynamic Service Qualification) Service Charging |
charging |
<contentId> |
<subscriberId> <dataplanId> |
permit charging ServiceChargingProfile ["<chargingProfileName>"] |
Mixing policies and qualification Conditions:
ToD |
|
Bearer QoS Control QoS for Bearer |
qos |
ip-can-session |
<subscriberId> <dataplanId> |
permit max-qos: BearerQosProfile ["<qosProfileName>"] or qos_prof_expression (1) permit min-qos: BearerQosProfile ["<qosProfileName>"] or qos_prof_expression (1) |
Mixing policies and qualification Conditions:
ToD |
6 Appendix B. ADC over Sd Policy Tags
The following Sd policy tags can be used in the condition formula of rules:
|
Tag |
Return Type |
Possible Values |
Comments |
|---|---|---|---|
|
TdfData.tdfAppId |
String |
any |
Identifies the TDF application identifier. This tag iterates on each application detection information of the Sd message. |
|
TdfData.tdfAppInstanceId |
String |
any |
Given a TDF application identifier, identifies the instance associated to the flows reported by the TDF. This tag iterates on each application detection information of the Sd message. |
|
TdfData.ipAddress |
IPAddress |
Identifies the value of the remote server IP. This tag iterates on each application detection information of the Sd message. |
|
|
TdfData.port |
String |
Identifies the value of the remote server port. It could also be a port range. This tag iterates on each application detection information of the Sd message. |
|
Tag |
Return Type |
Possible Values |
Comments |
|---|---|---|---|
|
TdfData.tdfApp[“id”].isStarted |
Boolean |
true/false |
The current state for the TDF application: True
False
|

Contents