3 About Policies

You can create policies for Session Management, Access and Mobility Management, UE Management, pcrf-core and pds services. For each policy project, multiple interlocking, graphical blocks are predefined and divided into categories. You can combine these blocks in the work area to create policies.

The side menu, called the Toobox, contains blocks that are organized in categories. Policy writers can click on any of the categories in the toolbox, and select blocks to create policies. The following screen capture shows the toolbox when a user creates policy project in PCF-SM category:

Figure 3-1 Toolbox

Screen capture to show toolbox

Work area allows you to create, edit, save, and delete policies. A policy project execution starts with the main policy. If you want to add more policies to the execution thread, you have to refer to them from the main policy. After the blocks are added to the work area, you can modify them using the context menu available for each block. To view the context menu, right-click the respective block. For more information about the context menu options, see Context Menu Options for All Blocks.

3.1 Creating Policies

You can create new policies using the blocks available for each block category. You can drag blocks to the work area and interconnect them to create policies. These policies can be edited further in the work area.
You must have created policy projects in the Policy Projects area as described in Creating and Modifying Policy Projects.
  1. From the left navigation menu, under Policy, then under Policy Management, click Policy Projects. Existing policy projects appears in the Policy Projects area.
  2. In the Policy Projects area, select a policy project and click Open.
    The toolbox and work area appear.work area
  3. From the toolbox, click a category to view the blocks in an adjacent pane. The following screen capture shows the blocks available for Logic category:
    Logic category
  4. To create a policy, do the following:
    1. From the adjacent pane of the toolbox, click the required block to add into the work area. You can also add the blocks using drag-drop functionality.
    2. After adding the required blocks in the work area, interconnect these blocks in a logical manner to create a policy.
  5. Click Save.
    A new policy is created.
The following image shows an example of a policy for the Session Management policy service:SM policy example

3.2 Logic Category

Using blocks under this category, user can create and terminate loops, compare value of variables, and apply conditionals while writing policies.

Table 3-1 Logic Category

Block Icon Block Name Description
repeat while block repeat

Runs a code in the block body for the specified number of times.

This block provides loop options. You can alter between the following options by clicking the existing option:

  • while: Repeats a code in the block body while some conditions are achieved.
  • until: Repeats a code in the block body until some conditions are achieved.
for each item block for each item

Renders loop variable values from a list, not in a numeric sequence.

i indicates a variable that can be set for each item in the list. To change the value of i, or to rename or delete it, click i and choose an appropriate option.

for each index block for each index

Loops through list provided using an index i.

This loop is created to loop custom attributes list using an index value.

i indicates a variable that can be set for each index. To change the value of i, or to rename or delete it, click i and choose an appropriate option.

if block if

Compares the values of two variables available in another block that is interconnected to it.

This block provides options to add appropriate clauses to a condition. You can click the gear icon (gear icon) to add following options to the if clause:

  • else if
  • else
break out block break out of loop

Terminates the loop from moving from one phase or iteration to another.

If you want to continue the looping from next phase or iteration, then click break out and select the continue with next iteration option from the context menu.

Note: This block can be used with the following blocks only:
and block and/or

Returns or produces the true value when the following options are set:

  • and: Both the inputs are also true.
  • or: Either of its inputs are true.

You can alter between the aforementioned options by clicking the existing option.

not block not Converts the input value of its interconnected block to its opposite value. For example, if this block is interconnected to a block with the input values as true, then the output is false. If no input is provided to this block, then it accepts a true value by default and produces an output with value as false.
inequailty block inequality

Performs a non-equal comparison between two values using the available inequality options.

You can select an appropriate inequality option from the context menu by clicking the existing option.

Block image for comparisonBlock for comparison comparison Performs simple wildcard matching for character * and ? when the policy writer selects Matches from the drop-down value. To perform full regular expression matching, select RegExp-Matches from the drop-down list.

3.3 Variables Category

Using this block category, you can assign values to variables.

Table 3-2 Variables Category

Block Icon Block Name Description
set block set

Assigns a value to the variable that matches the value of the input. Also, creates a variable if it does not exist.

i indicates a variable that can be set for this block. To rename or delete this variable, click i and choose an appropriate option from the context menu.

change block change

Adds a number to a variable.

i indicates a variable that can be set for this block. To rename or delete this variable, click i and choose an appropriate option from the context menu.

variable block variable

Returns or produces the value of this variable.

i indicates a variable. To rename or delete this variable, click i and choose an appropriate option from the context menu.

3.4 List Category

Using blocks under this category, you can create lists.

Table 3-3 Blocks in List Category

Block Icon Block Name Description
create empty list block create empty list Returns or produces a list of length 0 without any data record.
concat list block Concat list Creates lists in loop. See Use case.
create list with block create list with

Creates a list with any number of items.

You can click the gear icon (gear icon) to add items to the list from the context menu.

contains block contains

This block takes two lists as an input and check if the contents of the list on the right hand side are present in the list on the left hand side based on the option selected in the drop-down list.

Return Type : returns true/false based on match of drop-down option(any,all,none)

Drop-down list Options :

  1. all : returns true if all the contents of the list on the right hand side are present in the list on the left hand side.
  2. any: returns true if any one of the contents of the list on the right hand side are present in the list on the left hand side.
  3. none: returns true if none of the contents of the list on the right hand side are present in the list on the left hand side.
find block find
It has two parameters.
  • Param1 – accepts array of items given by user.
  • Param2 – takes the json path which has key-value pair -> fetches keys from JSON

Return Type : array of matched items based on drop-down list (one/any)

Drop-down list options :

  1. any: Returns the array of matched items.
  2. one: Returns the first matched item in array.

Value List

valuelist

This block matches two value lists as an input and matches the contents of the list on the right hand side with the list on the left hand side based on the option selected in the drop-down list.

3.5 Public Category

Under the Public category, you can find the most commonly used blocks. This category further consists of the following sub-categories:
  • Customer Attributes
  • Policy Table
  • State Variables
  • Policy Counters (PCF-SM, PCF-AM, PCF-UE, PCRF)
  • Operator Specific Data
  • User Attributes (PCF-SM, PCF-AM, PCF-UE, PCRF)
  • Subscriber Notification (PCF-SM and PCRF only)
  • Analytics Data
  • Usage Monitoring (PCRF only)
  • Observability

Table 3-4 Blocks in Public Category

Block Icon Block Name Description
number block number

Represents a numerical value.

To replace the existing value, click the value and type a new value.

string block string

Represents a series of characters and numbers.

To add one or a series of characters, click the square symbol embedded between quotation mark and type a character for the string.

message block message

Accepts or rejects a message when interconnected with another block.

You can alter between accept and reject options by clicking the existing option.

end block End This block is actually a return statement.
end with block End with This block is used to return with a value.
request block request  
response block response  
string opeartions block String Operations

It has two parameters and performs (contains, append) between two strings.

Both the parameters are strings.

Drop-down operators :

  1. contains: returns true if the param1 has substring param2.
  2. appends: returns the string by appending param1 with param2.
call function block Call function

This block executes a function from the policy library with zero or more arguments. Please see the Policy Library section for help with defining functions.

A function call with zero arguments can be done like this:

call with zero arguments
call policy block Call policy This block is used to call a policy inside another. Click the drop-down option next to the Policy block to choose an appropriate option to set the policy.
Key Value block Key Value This block allows policy writers to create {key:"key",value:"value"} pair.

You may use this block along with map block to create a {key:value} attribute pair.

object expression block Object expression This block helps the operator to write a JavaScript statement. This block can return a value or expression.

For Example:

request.request.appSessionContextReqData.ascReqData.medComponents
statement expression block Statement expression This block helps the operator to write a JavaScript statement. This block does not return anything.

For Example:

logger.log("ALWAYS",JSON.stringify(response))
arithmetic block Arithmetic

Performs arithmetic operations on two variables.

This block provides multiple arithmetic operations. Click the drop-down option to choose an appropriate option.

date arithematic helper block Date Arithmetic Helper

Performs date arithmetic operations.

This block provides multiple units of time. Click the drop-down option to choose an appropriate option.

built-in function block built-in function

Performs built-in functions and produces outputs in predefined formats. For example, a date input can produce outputs in different formats, such as hour, minute, seconds, and so on.

This block provides multiple options to set a value of the function. Click the drop-down option to choose an appropriate option.

date and time format block Date and time format

Produces a selected date in date and time formats.

To set a date and time, click the required option and type a value.

boolean block boolean

Sets a variable value to true or false.

To set this block to true or false, click the drop-down option and choose the required option.

exist/is null check block Exist/is null check

Determines the value of the block at the placeholder. You can set this block to one of the following options:

  • exists: Checks whether the value of block at the placeholder is "undefined". If yes, it produces true, otherwise false.
  • is null: Checks whether the value of block at the placeholder is "null". If yes, it produces true, otherwise false.

To set this block to exists or is null, click the drop-down option and choose the required option.

contains in matchlist block contains in matchlist

This block takes matchlist items in right side and any block can be attached in list in left side.

There are three options:
  • any - If any attribute value from left side is present in matchList - condition will return true, otherwise false.
  • all - If all attribute values from left side are present in matchList - condition will return true, otherwise false.
  • none - If none of the attribute value from left side is present in matchList - condition will return true, otherwise false.
list includes variable list includes variable

This block can be used to find whether a variable is present in the list or not.

Left hand side contains List and right hand side is variable which is to be validated for its presence or absence.

There are two options:
  • includes
  • doesnt_include
list items contain substring list items contain substring

This block can be used to find whether all, any, or no substring is present in list items.

Left hand side contains List and right hand side is variable/list which is to be validated for its presence or absence.

There are three options:
  • any
  • all
  • none
Built-in function Block Convert epoch time to date format This block can be used to convert epoch time to specified date format.
User Attributes
User attribute block User Attributes This block allows operators to access custom yaml schemas for suscribers that were imported and tagged as "user" during the import on the Yaml Schema screen on CNC Console. The drop-down values in the block are auto-populated depending on the attribute selected by the operator.

The User Attributes can be used for PCF-SM, PCF-AM, PCF-UE, and PCRF Core policy projects.

Customer Attributes
root block root Creates attributes at the root level.
default block default Configures the default path of a policy.
custom attribute validation block custom attributes validation Produces the value of a selected attribute present in the path provided by the default block.
set custom attribute block set custom attributes Creates custom attributes with the "attributeName" name at the "root" location with a value provided by the Create node block.
remove custom attribute block remove custom attributes Removes custom attributes and the attribute name from the root location.
create node block create node Creates JSON objects. When an attribute is selected, all the fields of that attribute are populated. You must provide values to these attributes by clicking the drop-down options.
Map with block Create map with Creates Map object with key value pairs when combined Key Value block.
Policy Table
fetch policy table row block Fetch Policy Table Row Fetches "policy Table Row" based on the match with the key Columns values provided.
This block can be used to configure Charging Servers. To configure a changing server:
  1. Select ChargingServers from the Use Policy Table drop-down list.
  2. Provide value for the Charging_Server_row.
fetch policy table coloumn block Fetch Policy Table Column Fetches "Policy Table Column value" based on the row selected in the "Fetch Policy Table Row" Block.
Use policy table having key(s) block Use policy table having key(s) This block returns multiple matched rows. It supports sort option, and can be used with the following operators:
  • Ignore: In the case of Ignore the key column selected is been ignored and return all the rows, under "do" should be executed.
  • "=" (Equal): In the case of equal, the key column data should be an exact match to return the row and execute the "do".
  • "!=" (Not Equal): In the case of not equal, the key column data should not match with the given input to return the row and execute the "do".
  • Contains: In the case of contains, the key column should be an array, and the input must been contained in particular row (exact match only).
  • Doesn't Contains: In the case of doesn't contains, the key column should be an array, and the input must not contained in particular row (exact match only).
  • Matches: "Matches" means that the given value/values from the block should match with all of the value/values mentioned as string/strings. For "Matches" to be used in Policy Table the Data type have to be String.
  • Matches all of: "Matches all of" means that the given value/values from the block should match with all of the value/values mentioned in the matchlist/matchlists. For "Matches all of" to be used in Policy Table the Data type have to be MatchList or MatchLists (array of matchlist).
  • Matches any of: "Matches any of" means that the given value/values from the block should match with any of the value/values mentioned in the matchlist/matchlists. For "Matches any of" to be used in Policy Table the Data type have to be MatchList or MatchLists (array of matchlist).
  • Matches none of: "Matches none of" means that the given value/values from the block should not match with any of the value/values mentioned in the matchlist/matchlists. For "Matches none of" to be used in Policy Table the Data type have to be MatchList or MatchLists (array of matchlist).
break out of loop block break out of loop Terminates the loop from moving from one phase or iteration to another.

If you want to continue the looping from next phase or iteration, then click break out and select the continue with next iteration option from the contex menu.

Note: This block can only be used with the blocks listed under the Policy Table category.

State Variables
save state variable to policy context blockexample of save state variable blocksave state variable for remote subscriber blocksave state variable for remote subscriber use case

Figure 3-2 Example: Remote SSV for UE Policy


Remote SSV for UE Policy

save/load/remove state variable(s) When you use the context as Policy, Session, or Subscriber, this block can be used to save in, load, or remove from the specified state variable var and the value assigned to it inside the selected context.
When you select the context as Subscriber Remote, the block is automatically populated with the following new fields:
  • at Location: This drop-down list provides the list of root path types that are pre-configured in PDS page under Service Configurations section in CNC Console.
  • root path: After you select the required root path type, this field shows the list of configured paths as a drop-down list. You may select any one from the list.

Note: The specific path check box can be used to modify a particular attribute or variable in JSON.

In the given policy example, SM receives SMPolicyData and SubscriberStateVariables from PDS. Then, PRE evaluates subscriberStateVariables (5G_ALLOWED), and SM_PRE sends updated information to PDS.

It is important to note that both PRE and SM-PRE refers to subscribervariable.remote.smpolicydata.dynamicattribute and not smpolicydata.dynamicAttrib.

Note:The context list includes the Remote option to create Subscriber Remote State Variables only for SM and UE Services. This option is not available for AM Service.

remove all state variables from specified context blockremove all state variables from subscriber remote context block remove all variables Removes all the variables from specified context. The available options for context drop-down are:
  • Policy
  • Session
  • Subscriber
  • Subscriber Remote

Figure 3-3 Operator Specific Data

Operator Specific Data
Operator Specific Data Retrieves the values from the schema.yaml files uploaded on the Yaml Schema page on CNC Console for Policy. For more information on how to use Yaml Schema page, see Oracle Communications Cloud Native Core, Converged Policy User's Guide.
Policy Counters
Policy counter name block image Policy Counter Name Retrieves policy counter names, configured using Policy Data configurations (PolicyPolicy Data ConfigurationsCommonPolicy Counter Id) on the Cloud Native Configuration Console.
Status of Policy counters block image Status of Policy Counter ID(s) Retrieves the current or pending status of specified policy counter IDs. Operators can specify policy counter IDs by using either Policy Counter Name block or string block.
attribute of pending policy counters with status block image Attribute of pending policy counter with status Selects activationTime attribute of pending policy counter IDs, specified by the operator. The status here is optional. Select the check box for status, and provide its value using a string block.
Policy counter IDs block image Policy Counter IDs Retrieves all the available policy counter IDs. It is available only in the Public category of PCRF Core policy projects.
Policy counter information exists block image Policy Counter Information Checks if Policy Counter Information exists or not. It is available only in the Public category of PCRF Core policy projects.
Block image for fetch policy counters from CHF/OCS Fetch Policy Counters Retrieves the status of all or specific policy counters from the CHF or OCS through session management service. If you want to fetch specific policy counters from CHF or OCS, use either of the following blocks:
  • policy counter name block and select policy counter ID from the drop-down list.
  • string block with comma separated values (policy counter IDs).

Note: To use this block, make sure that Enable Async CHF Query  or Enable Async OCS Query button is enabled on service configurations page on CNC console. (Policy > Service Configurations > PCF Session Management)

This block is available under the Public category of PCF Session Management policy projects.

Fetch policy counters from OCS block image Fetch Policy Counters from OCS Retrieves the status of all or specific policy counters from the OCS. If operators wish to fetch specific policy counters from OCS, either of the following can be used:
  • policy counter name block and select policy counter ID from the drop-down list
  • string block with comma separated values (policy counter IDs)

Note: To use this block, make sure that Async Query switch is enabled on service configurations page on CNC console. (Policy > Service Configurations > PCRF Core > Settings)

This block is available under the Public category of PCRF Core policy projects.

End All Block Image End All

You can exit the policy evaluation at any point in time using the End All blockly. This blockly has been added in the Public section for all the services such as PCRF CORE, SM, PDS, and so on.

If the End All blockly is used, the policy evaluation exits from that point and whatever evaluation has been done till then returns from PRE (policy runtime). It is used in case the user wants to perform a certain set of actions and exit from there in some condition without going and evaluating an entire policy. The following log message is printed in the policy runtime indicating that policy evaluation has exited:
Exit requested from Policy evaluation, hence Exiting from policy!!
Subscriber Notification

Figure 3-4 Send HTTP Notification

Send HTTP Notification
Send HTTP Notification This block can be used to send HTTP messages to pre-defined HTTP servers with HTTP header and message body. The HTTP methods supported for sending messages are POST, PUT, GET, and PATCH.

Figure 3-5 Send SMS


Send SMS using SMPP Protocol

Send SMS using SMPP protocol

This action is used to send short text messages as SMS using SMPP Protocol.

You must include the MessageBody and the Destination address with User IDs.

Note: Currently, this action is supported only for PCRF-Core call flows.

For more details on Send SMS action, see Subscriber Notification Use Cases.

Figure 3-6 Type of Number


Type of Number

Type of Number Type of Number can be:
  • UNKNOWN
  • INTERNATIONAL
  • NATIONAL
  • NETWORK SPECIFIC
  • SUBSCRIBER NUMBER
  • ALPHANUMERIC
  • ABBREVIATED

Figure 3-7 SMS Gateway Group


SMS Gateway Group

SMS Gateway Group This blockly is used to display the list of SMS Gateways configured in CNC Console.

Figure 3-8 Delivery Receipt


Delivery Receipt

Delivery Receipt The Delivery Receipt can be:
  • No Delivery Receipt
  • Delivery Receipt on Success and Failure
  • Delivery Receipt on Failure

Figure 3-9 Number Plan Indicator


Number Plan Indicator

Number Plan Indicator Number Plan Indicator blockly is used to select the type of plan such as:
  • UNKNOWN
  • ISDN (E163/E164)
  • DATA (X, 121)
  • TELEX
  • LAND MOBILE
  • NATIONAL
  • PRIVATE
  • ERMES
  • INTERNET (IP)
  • WAP CLIENT ID
Analytics Data

Figure 3-10 Analytics Data

Slice Load Level
Analytics Data This block can be used to select analytic data attributes related to Slice Load Level.

Figure 3-11 Reject Session with Cause

Reject Session with Cause
Reject Session with Cause This block can be used to reject a session due to insufficient resources or unauthorized scenario.
Usage Monitoring

Figure 3-12 Usage Monitoring exists

Usage Monitoring exists
Usage Monitoring Information exists Checks if Usage Monitoring Information exists or not.

Figure 3-13 Monitoring Key for Usage Monitoring Level

Monitoring Key for Usage Monitoring Level
Monitoring Key for Usage Monitoring Level This block can be used to retrieve monitoring key when Usage Monitoring is at session level.

Figure 3-14 Usage Threshold Status for Monitoring Key

Usage Threshold Status for Monitoring Key
Usage Threshold Status for Monitoring Key This block can be used to retrieve usage threshold status or value for the specified Monitoring Key.

Figure 3-15 Grant Status for Monitoring Key

Grant Status for Monitoring Key
Grant Status for Monitoring Key This block is used to retrieve the grant status or reset time for the specified Monitoring Key.

Figure 3-16 Apply Grant for Monitoring Key

Apply Grant for Monitoring Key
Apply Grant for Monitoring Key This action block can be used to apply Grant for the specified Monitoring Key.

Figure 3-17 Disable Usage Monitoring for Monitoring Key

Disable Usage Monitoring for Monitoring Key
Disable Usage Monitoring for Monitoring Key This action block can be used to disable Grant for the specified Monitoring Key.

Figure 3-18 Usage Monitoring Level

Usage Monitoring Level
Usage Monitoring Level This util can be used for specifying that the Usage Monitoring is at session level.

Figure 3-19 Grant Status Approved

Grant Status Approved
Grant status This util can be used for specifying whether Grant status is approved or denied.

Figure 3-20 Usage Monitoring Information

Usage Monitoring Information
Usage Monitoring Information This util can be used for retrieving Usage Monitoring Information.

Forwarded Attribute

Forwarded Attribute Used to access the value of an attribute forwarded by the core service to Usage Monitoring service.

Reported Usage Data Limits

Reported Usage Data Limits Used to access the Data Limit Profile names for which usage was reported by the core (such as PGW) in the Session Update (such as CCR-UPDATE) message.

Attribute in UM Request

Attribute in UM Request

Provides the following options:

  • dnn
  • operationType
  • UDR indicated Limit Ids

Data Limit Profile Attribute

Data Limit Profile Attribute

Used to access the properties of a Usage Monitoring Data Limit Profile configured on the Policy.

The Data Limit Profile Attribute provides the following options:

  • Profile Type
  • Plan Type
  • Priority
  • UM Level
  • Usage Limit / Duration
  • Usage Limit / Volume Total
  • Usage Limit / Volume Uplink
  • Usage Limit / Volume Downlink
  • Reset Period / Periodicity
  • Reset Period / Max No. of Periods
  • Billing Day / Type
  • Billing Day / Day
  • Billing Day / Time
  • Data Rollover Profile
  • Inactivity Time
  • Allow Excess Usage
  • Excess Usage Limit / Percentage
  • Excess Usage Limit / Duration
  • Excess Usage Limit / Volume Total
  • Excess Usage Limit / Volume Uplink
  • Excess Usage Limit / Volume Downlink

UDR Data Limit Attribute

UDR Data Limit Attribute

Used to access the properties of a Usage Monitoring Data Limit provided by UDR.

The UDR Data Limit Attribute provides the following options:

  • UM Level
  • Start Date
  • End Date
  • Usage Limit / Duration
  • Usage Limit / Volume Total
  • Usage Limit / Volume Uplink
  • Usage Limit / Volume Downlink
  • Reset Period / Periodicity
  • Reset Period / Max No. of Periods
  • Custom Attribute / <name>

Usage Data Attribute

Usage Data Attribute

Used to access the properties of a Usage Monitoring Data object.

The Usage Data Attribute block provides the following options:

  • UM Level
  • Allowed Usage / Duration
  • Allowed Usage / Volume Total
  • Allowed Usage / Volume Uplink
  • Allowed Usage / Volume Downlink
  • Consumed Usage / Duration
  • Consumed Usage / Volume Total
  • Consumed Usage / Volume Uplink
  • Consumed Usage / Volume Downlink
  • Consumed Usage Percentage / Duration
  • Consumed Usage Percentage / Volume Total
  • Consumed Usage Percentage / Volume Uplink
  • Consumed Usage Percentage / Volume Downlink
  • Reset Time
  • Activation Time
  • Last Reset Time
  • Reset Count
  • Custom Attribute / <name>

Policy Tag

Policy Tag Used to access the Policy Decision Tags provided by Usage Monitoring service to Core Service.

Set Grant Volume

Set Grant Volume

Used to indicate a volume grant value.

Units has the following options:

  • Percent
  • Bytes

Source options:

  • Initial
  • Used
  • Remaining

Set Grant Time

Set Grant Time

Used to indicate a time grant value.

Units has the following options:

  • Percent
  • Seconds

Source options:

  • Initial
  • Used
  • Remaining

Apply Data Limit Profile

Apply Data Limit Profile Selects a Data Limit Profile from the configured Data Limit Profiles. This blockly also presents the option to use any Data Limits provisioned on the UDR for the subscriber. The provisioned Data Limits can be any top-ups and/or passes. Those data limits can have an option to preempt the currently running data limit.

Override Attribute

Override Attribute

The Data Limit block represents the attributes inside the UM Data Limit. This block can be used along with Action blocks like "Override Attributes" to indicate which attributes to override.

The value selected for this blockly is sent in the PRE response:

  • Usage Limit / Duration
  • Usage Limit / Total Volume
  • Usage Limit / Downlink Volume
  • Usage Limit / Uplink Volume
  • Priority
  • Start Date
  • End Date
  • Reset Period / Periodicity
  • Reset Period / Max No. of Periods
  • Billing Day / Type
  • Billing Day / Day
  • Billing Day / Time
  • Custom Attribute / <var>
  • Data Rollover Profile
  • Excess Usage Limit / Percentage
  • Excess Usage Limit / Duration
  • Excess Usage Limit / Total Volume
  • Excess Usage Limit / Downlink Volume
  • Excess Usage Limit / Uplink Volume

Figure 3-21 PCC Rule Hint


PCC Rule Hint

PCC Rule Hint

This attribute is used with the Data Limit Profile block.

It allows to access the value of PCCRuleHint from Data limit profile and apply the same in UMPolicyDecision in monitoring key.

Figure 3-22 Volume Grant Params


PCC Rule Hint

Volume Grant Parameters Used to configure volume grants at PCC rule level.

Figure 3-23 Time Grant Params


PCC Rule Hint

Time Grant Parameters Used to configure time grants at PCC rule level.

Figure 3-24 Active Monitoring Key with PCCRuleHint


Active Monitoring Key with PCCRuleHint

Active Monitoring Key with PCCRuleHint

Selects a Monitoring key for the configured PCCRule from usage monitoring policy decision which fulfills the value from active monitoring with PccRuleHint attribute.


Select Data Limit - Using Data Limit Selection Profile

Select Data Limit - Using Data Limit Selection Profile

Selects a Data Limit from the List of Data Limits provided by the UDR using a Selection Profile.

The Override Attributes option allows to override:

  • Start Date
  • End Date
  • Usage Limit / Duration
  • Usage Limit / Total Volume
  • Usage Limit / Downlink Volume
  • Usage Limit / Uplink Volume
  • Priority
  • Excess Usage Limit / Percentage
  • Excess Usage Limit / Duration
  • Excess Usage Limit / Total Volume
  • Excess Usage Limit / Downlink Volume
  • Excess Usage Limit / Uplink Volume

Sort Data Limits using Data Limit Sorting Profile

Sort Data Limits using Data Limit Sorting Profile Sorts the selected Data Limits using the given sorting profile..

Apply UDR Data Limit having

Apply UDR Data Limit having

Selects a Data Limit from the List of Data Limits provided by the UDR using either a plan name.

This blockly provides the following options:

  • Limit Identifier
  • Name
  • Custom Attribute

Apply Tag with name and value

Apply Tag with name and value Used to indicate to the core service one or more identifiers (key value pair(s)) to take further actions such as QoS or Charging related decisions.

Reset Usage Data for Data Limit

Reset Usage Data Instructs the Usage Monitoring service to reset the Usage Data for the Profile / Data Limit name mentioned.

Disable Usage Monitoring

Disable Usage Monitoring Disable usage monitoring for all or a specific data limit.
Observability
Log Level Block Log level
This block can be used to set the log level for Policy services. Users can select any of the following valid values using the drop-down menu:
  • ALWAYS
  • ERROR
  • WARN
  • INFO
  • DEBUG
  • TRACE

The Log level condition block can be used to design policies for PCF-SM, UE, AM, PDS, and PCRF-Core policy projects.

Note: For this block, the 'occnp_policy_processing_latency_ms' metric is pegged. For more information see "PRE Metrics" in Oracle Communications Cloud Native Core, Converged Policy User Guide.


Log Level Content Block

Log Level for content

This block can be used to set the log level for Policy services and write any string in the Content. In the policy flow, the specified content will be included in the logs of PRE.

Increment Counter Label Increment Counter Label Tracks total number of given custom block is invoked for corresponding label.

Note: For this block, the 'occnp_block_counter_label' metric is pegged. For more information see "PRE Metrics" in Oracle Communications Cloud Native Core, Converged Policy User Guide.

Time Block Time Tracks overall time taken by all the blocks captured as part of this block.

Note: For this block, the 'occnp_block_exec_time_ns' metric is pegged. For more information see "PRE Metrics" in Oracle Communications Cloud Native Core, Converged Policy User Guide.

3.6 PCF-SM Category

The blocks for this category is available only when you select SM service while configuring the policy project.

Table 3-5 Blocks in SM Service Category

Block Icon Block Name Description
Constructs
for each flow block For Each AF Flow Request It loops through the Media Component and SubComponent Blocks comparing with Media Type Block.
Conditions
request attributes block Request attributes Sets the value to one of the JSON paths of drop-down list options.

Drop-down list options:

requesterNFType

operationType

request attributes in SMF Request Attributes in SMF

Sets the value to one of the JSON paths of drop-down list options.

Drop-down list options : requesterNFType, operationType, gpsi, supi, accessType, ratType, pei, subsDefQos.5qi, subsDefQos.arp.priorityLevel, subsDefQos.arp.preemptCap, subsDefQos.arp.preemptVuln, subsDefQos.priorityLevel, dnn.

Note: It is recommended to use Request attributes block, described in the next row, if you are selecting requesterNFType or operationType from the drop-down list.

RAT Type block Rat Type

Sets the value to one of the drop-down list options of Rat Type.

Drop-down list options : NR, NR_REDCAP, EUTRA, WLAN, VIRTUAL.

appID block app ID Sets the application ID.
Operation Type block Operation Type

Sets the value to one of the drop-down list options of Operation Type.

Drop-down list options : CREATE, MODIFY, TERMINATE, REAUTH.

Block image for PLMN Id
PLMN Id Compares the plmnId in the User Location Info received in SM Policy Create or Update request.
Block image for request containing session rules Contains session rules Compares the given list with the list of session rules previously delivered to the SMF and stored in the SM Policy Association.
Block image for comparing policy triggers Contains policy triggers Compares the policy triggers received in the SM Policy Update request with the given list of triggers.
Block image for comparing user categories Contain user categories Compares User Categories attribute fetched from UDR with a list of provided User Categories.
Block image for sliceInfo sliceInfo Compares the Slice Information received in SM Policy request.
Block image for AMBR AMBR Compares the AMBR received in the "subsSessAmbr" attribute in SM Policy request from SMF.
Block image for installed SM policies Installed SM Policies Retrieves the list of PCC Rules previously delivered to the SMF and stored in the SM Policy Association.
Block image for attribute in SM policy data Attribute in SM Policy Data Retrieves data from the SM Policy Data (Subscriber Profile) fetched from UDR for a given S-NSSAI and DNN.
Media Component block Media Componet

Sets the value to one of the JSON path of drop-down list options.

Drop-down list options : AF Application Id, Media Type, Media Component Number, Flow Status.

Media Sub Component block Media Sub-Component

Sets the value to one of the JSON path of drop-down list options.

Drop-down list options : Flow Usage, Flow Number, Flow Description, Flow Status, ToS Traffic Class.

Media Type Block Media Type

Sets the value to one of the drop-down list options of Media Type.

Drop-down list options : AUDIO, DATA, VIDEO, TEXT,CONTROL, APPLICATION, MESSAGE,OTHERS.

Flow Usage block Flow Usage

Sets the value to one of the drop-down list options of Flow Usage.

Drop-down list options: RTCP, NO_INFO.

Flow Status Block Flow Status

Sets the value to one of the drop-down list options of Flow Status.

Drop-down list options: ENABLED-UPLINK, ENABLED, ENABLED-DOWNLINK, DISABLED, REMOVED.

condition block for attribute in Reported PRA Information Attribute in Reported PRA Information Retrieves the value of presenceState attribute in Reported PRA information for specified PRAs.

Note: Before accessing the presenceState attribute, it verifies the availability of the specified PRA and its Reported PRA information. If either of the two is missing, this block returns null value.

NF Type block NF Type Allows operators to specify the type of network function. The following are the available drop-down list values:
  • SMF
  • AMF
  • BSF
  • NEF
  • AF
  • UDR
  • CHF
communication mode block Communication Mode Allows operators to specify mode of communication. The available drop-down values are:
  • Synchronous
  • Asynchronous
Condition block for Presence State Presence State Allows operators to specify the value for presence state. The supported values are:
  • IN_AREA
  • OUT_OF_AREA
  • UNKNOWN
  • INACTIVE
Reauthorization condition block Reauthorization Cause Checks the value of the attribute - reauthCause of the policy request. The supported value is "USER_DATA_CHANGE_NOTIFICATION".
UDR delResource condition block UDR delete Resources Checks the value of the attribute - policyDataChangeNotification.delResources of the policy request. The supported values are "sm-data" and "operator-specific-data".
Actions
pcc rule dynamic override blockpcc rule dynamic override PCC Rule Dyanamic Override This block is used as a key to create a pair of {attribute: value}to override PCC rule attributes in real-time. This block is used with the Key Value block.

The drop-down list values, auto-populated in the block, are taken from the PCC Rule configuration Page.PolicyPolicy Data ConfigurationsPCF Session ManagementPCC Rule

Currently, operators can use this block to override the values for the following parameters:
  • App Id
  • Content Version
  • Precedence

    Note: This attribute specifies the precedence of the PCC rule among all PCC rules associated with the PDU session.

  • AF Signalling Protocol
  • Application Relocation
  • QoS Data
  • Traffic Control Data
  • Charging Data
  • Condition Data
Important: If SM service does not override attributes provided in the policy:
  • Verify if the response from PRE contains all parameters specified in the policy.
  • Verify if SM service logs contain the following:

    Invalid format of OverriddenAttr received from PRE.

    It indicates a problem parsing PRE response for overridden attributes.

session rule dynamic overridesession rule dynamic override block Session Rule Dynamic Override This block is used as a key to create a pair of {attribute: value}to override session rule attributes in real-time. This block is used with Key Value block.

The drop-down list values, auto-populated in the block, are taken from the Session Rule configuration Page.PolicyPolicy Data ConfigurationsPCF Session ManagementSession Rule

Currently, operators can use this block to override the values for the following parameters:
  • Authorized Session AMBR
  • Condition Data
  • Authorize Default QoS
Apply Session Rule block Apply Session Rule It modifies the session Rule that is atttached after the "Create list with" Block.
Install Policy Triggers block Install/Remove Policy Trigger

This block performs Install / Remove of the Policy Trigger.

The Policy Trigger item to install/remove is picked from the set of hardcoded drop-down list values of Policy Trigger Block.

Install PRA block Install/Remove PRA

This block performs Install / Remove of the PRA.

The PRA item to install/remove is picked from the configuration Page.(PCF→ Policy Configurations → Common → Presence Reporting Area)

PCC Rules with Override Attributes Enabled

Figure 3-25 Install PCC Rule with SRA


Install PCC Rule with SUCC_RES_ALLO selected as Request Data

Remove PCC Rules ConditionInstall PCC Rules Sample Policy
Install/Update/Remove PCC Rules with Override Attributes

This block can be used to create, modify, or remove specific PCC Rules. To update or override PCC rule attributes dynamically, you can drag and add create list with block to create pairs of {key:value} attributes using the Key Value block.

The PCC rule attributes that you can update dynamically can be selected from the drop-down.

You can select SUCC_RES_ALLO for Request Data to install PCC rules with Successful Resource Allocation (SRA) attribute.

Note: Override Attributes checkbox is disabled if you select the Remove option from the drop-down.

Important: When the PCC rule is initially provisioned, PCF must supply flowInfos or appId attribute.

If it supplies appId, then PCF does not update appId attribute later provided by the user.

Install Session Rule with Override Attributes EnabledRemove Session Rules ConditionInstall session rules sample policy Install/Update/Remove Session Rules with Override Attributes

This block can be used to create, update, and remove specific session rules. To update or override session rule attributes dynamically, you can drag and add create list with block to create pairs of {key:value} attributes using the Key Value block.

Note: Override Attributes checkbox is disabled if you select Remove option from the drop-down.

The Session rule attributes that you can update dynamically can be selected from the drop-down.

Apply PCC Rule Profile to flow with Override Attributes Apply PCC Rule Profile to flow with Override Attributes It applies PCC rule with specified PCC Rule Profile. To update or override attributes dynamically, you can drag and add create list with block to create pairs of key:value attributes using the Key block.
Remove PCC Rules block Remove PCC Rules

This block removes PCC Rules as per the option selected in drop-down list by the user.

Drop-down list options:

ALL

DYNAMIC

PRE_DEFINED

NON_CONDITIONED

CONDITIONED

If you select DYNAMIC from the drop-down value, SM service removes the following Dynamic PCC rules:
  • Defined on CM for SM policy data and installed by previous policy decisions for the specified SM Policy association
  • Derived and installed for AF flow

If you select PRE_DEFINED from the drop-down value, SM service removes the pre-defined PCC rules defined on CM for SM policy data, and installed by previous policy decisions for the specified SM policy association.

When removing PCC Rules in bulk, the policy also removes reference data only if the data is not referred by any PCC rule except the ones being deleted.

To view all the PCC rules removed as part of a policy action, you can refer to the Info level policy logs.

Important: If you are importing policies from older versions (previous to 1.8.0), delete the existing Remove PCC Rules blocks, and drag it from blockly library again after upgrade.

Remove Session Rules block Remove Session Rules

This block performs Remove of Session Rules as per condition in drop-down list.

Drop-down list options: REMOVE_ALL, REMOVE_NON_CONDITIONED, REMOVE_ALL_CONDITIONED.

Block image for set binding registration Set Binding Registration Specifies whether to enable or disable the binding operation. The supported values are True and False.

Note: This policy action can read values from a policy table.

Note: If Binding Operation flag is disabled on the service configurations page on CNC Console (Policy > Service Configurations > PCF Session Management), no binding operation is performed, irrespective of the value of policy decision.

Block image for set binding registration mode Set Binding Registration Mode Specifies whether to set binding registration mode as synchronous or asynchronous.

Note: This policy action can read values from a policy table.

Policy Trigger block Policy Trigger

Sets the value to one of the drop-down list options of Policy Trigger.

Drop-down list options: PLMN_CH, RES_MO_RE, AC_TY_CH, UE_IP_CH, UE_MAC_CH, AN_CH_COR, US_RE, APP_STA, APP_STO, AN_INFO, CM_SES_FAIL, PS_DA_OFF, DEF_QOS_CH, SE_AMBR_CH, QOS_NOTIF, NO_CREDIT, PRA_CH, SAREA_CH, SCNN_CH, RE_TIMEOUT, RES_RELEASE, SUCC_RES_ALLO, RAT_TY_CH, REF_QOS_IND_CH, NUM_OF_PACKET_FILTER, UE_STATUS_RESUME, UE_TZ_CH, SCELL_CH.

PCC Rule block PCC Rule

sets the value to one of the drop-down list options of PCC Rule.

The drop-down list Values is picked from configuration Page.(PCF→ Policy Configurations → SM Policy → PCC Rule)

PCC Rule Profile block PCC Rule Profile

sets the value to one of the drop-down list options of PCC Rule Profile.

The drop-down list Values is picked from configuration Page.(PCF→ Policy Configurations → SM Policy → PCC Rule Profile)

Override PCC Rule block Override PCC Rule

It appends the "PCC Rule" and "PCC Rule Profile" Block and creates an Object {"pccRuleId": ('geyes-max'), "id":('pc_1')} and returns it.

Session Rule block Session Rule

sets the value to one of the drop-down list options of Session Rule.

The drop-down list Values is picked from configuration Page.(PCF→ Policy Configurations → SM Policy → Session Rule)

Override Session Rule block Ovverride Session Rule

It appends the "Session Rule" and "Session Rule Profile" Block and creates an Object {"sessRuleId": 'sm-data', "sessRuleProfileId":('session_rule_profile_2')} and returns it.

Session Rule Profile block Session Rule Profile

Sets the value to one of the drop-down list options of Session Rule profile.

The drop-down list Values is picked from configuration Page.(PCF→ Policy Configurations → SM Policy → Session Rule Profile)

PRA block Presence Reporting Area

Sets the value to one of the drop-down list options of PRA.

The drop-down list Values is picked from configuration Page.(PCF→ Policy Configurations → Common → Presence Reporting Area)

Release Session action block Release Session Directs the SM service to trigger session termination notification and thus releasing a policy association. When SM service receives this action, it ignores all other actions.

Note: SM Service only releases a policy association triggered by UserDataChangeNotification.

That is, session terminate notification is triggered based on:
  • change notification on CHF counters.
  • policies in PCF in response to an UPDATE from SMF.
  • any upate notification from UDR.

Figure 3-26 Set Revalidation Time

Set Revalidation Time Block Image
Set Revalidation Time

Revalidation time defines the period within which the Session Management Function (SMF) triggers the PCC rule request towards PCF for an established PDU Session.

You can use this action block to set the session revalidation time to a specific year, month, day, or time. In addition, you can check the Randomize checkbox to select a random revalidation time from the defined range.

When you select the Randomize checkbox, you need to define the range for revalidation time. You can define the range by using the number block (under Public category) for specifying the seconds and selecting any of the following values from the dropdown list:
  • "+": It adds the specified seconds to the time entered.
  • "-": It subtracts the specified seconds from the time entered.
  • "+/-": The range is defined by [ Time entered - specified seconds] to [ Time entered + specified seconds].
If you select the Randomize option, the following message is printed in the Policy runtime logs:

{"messageTimestamp":"2022-01-28T10:56:33.148Z","logLevel":"WARN","pid":9700,"workerId":1,"fileName":"..\\..\\engine\\policies\\pcf-sm\\test1\\main.js","lineNo":"46","message":"Randomization of revalidation time choosen by seconds"}

If you input anything other than a number for randomization, the following error is printed in the logs:

"message":"Error!! Entered seconds is not a number for randomization !!Please enter number in seconds field."

Note: On upgrading to Policy 22.1.0 or higher, the Set revalidation time block is upgraded automatically in the existing policies.

Figure 3-27 Set session revalidation time to earliest of

set session revalidation time to earliest of
Set Session Revalidation time to earliest of
Set session revalidation time to the earliest of returns the earliest time from the following list:
  • Time in the specified policy counter ID or IDs
  • Time defined in the Seconds/Minutes/Hours/Days format from the time when a policy is executed
  • Specific time in hh:mm format (limited to 15-minute intervals) on a specific day of the week using either SYSTEM TIME or UTC TIME time-zone.
  • Random time between a time range

This action block is Policy table compliant.

In addition, you can check the Randomize checkbox to select a random revalidation time from the time range.

You can define the range by using the number block (under Public category) for specifying the seconds and selecting any of the following values from the dropdown list:
  • "+": It adds the specified seconds to the time entered.
  • "-": It subtracts the specified seconds from the time entered.
  • "+/-": The range is defined by [ Time entered - specified seconds] to [ Time entered + specified seconds].
If you select the Randomize option, the following message is printed in the Policy runtime logs:

{"messageTimestamp":"2022-01-25T08:10:41.698Z","logLevel":"WARN","pid":14692,"workerId":2,"fileName":"lib\\services\\sm_core-service.js","lineNo":"25","message":"Applying randomization on earliest time}

If you input anything other than a number for randomization, the following error is printed in the logs:

"message":"Error!! Entered seconds is not a number for randomization !!Please enter number in seconds field."

Figure 3-28 Reject Session with Error Code and Error Cause

Reject Session with Error Code and Error Cause

Figure 3-29 Example

Example
Reject Session with Error Code and Error Cause Allow to reject the session with a custom error code and a custom error cause.

Note: If the Error Cause field is empty, only the Error Code will be sent back.

Figure 3-30 Release Sesssion with cause for PCF-SM


Release Sesssion with cause for SM

Action Release SM Session with PolicyAssociationReleaseCause
SMPolicyAssociationReleaseCause can have following values:

Table 3-6 SMPolicyAssociationReleaseCause

Enumeration value Description
UNSPECIFIED This value is used for unspecified reasons.
UE_SUBSCRIPTION This value indicates that the policy association needs to be terminated as the subscription of UE has changed.
INSUFFICIENT_RES This value indicates that the server is overloaded and needs to abort the policy association.
REACTIVATION_REQUESTED This value indicates that policy association needs to be terminated, since PCF is not able to maintain the existing PDU session and requests for PDU session reactivation.

3.6.1 PCC/Session Rule Error Report

The blocks for this category is available only when you select PCC/Session Rule Error Report under PCF-SM service while configuring the policy project.

Table 3-7 Blocks in PCC/Session Rule Error Report

Block Icon Block Name Description
Constructs
PCC/Session Rule Status PCC/Session Rule Status The rule status can be combined with policy conditions "RuleIds" and "Rulereports" to specify rule status "Active" or "Inactive"
PCC/Session Rule Failure Code PCC/Session Rule Failure Code sessRuleFailureCode can be combined with policy conditions "RuleIds" and "Rulereports" to check the failure code values
PCC/Session Failure Cause PCC/Session Failure Cause Returns Failure Cause values ["RULE_PERMANENT_ERROR", "RULE_TEMPORARY_ERROR"] used along with two condition blocks "PCC/Session Rule Ids" and PCC/Session Rule report".

Checks the cause/failureCause attribute received in errorReport or partialSuccessReport.

Checks the sessRuleFailureCode attribute received in sessRuleReports.

PCC/Session RuleIds from rulereport PCC/Session RuleIds from rulereport Used to get the ruleIds received in ruleReports or sessRuleReports with condition matching for ruleStatus, ruleFailureCode or sessRuleFailureCode and failureCause.
PCC/Session Rule Report PCC/Session Rule Report This condition blockly matches with configured ruleIds, ruleStatus, sessRuleFailureCode and failureCause and returns true or false.
Sample block for PCC/Session Rule Error Report:

Figure 3-31 Sample block for PCC/Session Rule Error ReportSample block for PCC/Session Rule Error Report

3.7 PCF UE Policy

This section describes the blocks that operators can access while configuring PCF UE Policy projects.

Table 3-8 UE Policy Blocks

Block Description

Figure 3-32 Attribute in Request Type


Attribute in Request Type

Allows the policy writer to retrieve the following:
  • Requester NF Type (e.g. AMF etc.) - The value retrieved can be compared to the enumeration block "NF Type".
  • Operation Type (e.g. "CREATE", "UPDATE", "TERMINATE" etc.) - The value retrieved can be compared to the enumeration block "Operation Type".
  • N1 Transfer Failure Cause - The value retrieved can be compared to the failure causes.

    Note: Currently, N1 Transfer Failure Cause option is deprecated for Attribute in Request Type and is available under Attribute in AMF Request.

Figure 3-33 N1 Transfer Failure Cause


N1 Transfer Failure Cause

This blockly allows the policy writer to identify the N1 transfer failure causes such as UE_NOT_RESPONDING in the messages.

Figure 3-34 Attribute in AMF Request

Block for attributes in AMF request type
Retrieves the specified attribute value from the incoming request message.

The available options are:

  • gpsi
  • supi
  • accessType
  • ratType
  • pei
  • dnn
  • timezone
  • UE Indicated UPSIs
  • UE Indicated OS Ids
  • n1TransferFailureCause

Figure 3-35 Attributes in UE Policy Set

Block for attributes in UE Policy set
Retrieves the specified attribute value from the UE Policy Set (as obtained from UDR).

The available options are:

  • subsCats
  • upsis
  • pei
  • osIds

Figure 3-36 Operation Type

Operation Type
Allows operators to specify the Operation Type. The supported values are CREATE, UPDATE, TERMINATE, and NOTIFICATION.

Figure 3-37 RatType

RatType
Allows operators to specify the value of RAT Type. The supported values are :
  • NR
  • WLAN
  • EUTRA
  • VIRTUAL
  • NR_REDCAP

Figure 3-38 AccessType

AccessType
Allows operators to specify the Access Type. The supported values are 3GPP Access and Non 3GPP Access.

Figure 3-39 PLMN ID

PLMN ID
Allows operators to specify MCC or MNC of plmnid in the following supported values: Serving PLMN Id, EUTRACelld, EUTRA tracking Area Code, NR Celld, NR tracking Area Code, eutraLocation.tai, ecgi, globalNgenbld, nrLocation.tai, ncgi, and globalGnbld.

Figure 3-40 UPSI Values

UPSI Values
Allows the operators to specify the value of the UPSI.

Figure 3-41 UPSI

Block for UPSI
This block allows the policy writer to select a UPSI configured using the Policy > Policy Data Configurations > PCF UE Policy > UPSI screen.

Figure 3-42 URSP

URSP
This block allows the policy writer to select a URSP configured using the Policy > Policy Data Configurations > PCF UE Policy > URSP Rule screen.
Actions

Figure 3-43 Install/Remove UPSI

Action block for installing or removing UPSI
Allows the policy writer to install or remove UPSIs that are already configured in GUI on the UPSI screen (Policy > Policy Data Configurations > PCF UE Policy > UPSI).

Click the drop-down menu of UPSI block to select desired UPSI Ids.

Figure 3-44 Install/Remove UPSIs from UE Policy Set

Action block for installing or removing UPSIs from UE Policy Set
Allows the policy writer to install or remove UPSIs retrieved from the UDR in the UE Policy Set (upsis attribute).
Notes:
  • The UPSIs in the UePolicySet.upsis attribute MUST be represented in string format "<mcc>-<mnc>-<upsc>" where mcc is an integer containing the Mobile Country Code, mnc is an integer containing the Mobile Network Code and upsc is an integer containing the Ue Policy Section Code. E.g. "401-301-1234"
  • A corresponding UPSI must be configured using the Policy > Policy Data Configurations > PCF UE Policy > UPSI screen having the same MCC, MNC and UPSC as that received from UDR. The name of the UPSI in the PCF configuration can be anything convenient.
  • PCF shall use the upsis received from UDR to pick the URSP rules from the PCF configuration and deliver the same to the UE.

Figure 3-45 Install Policy Trigger

Install policy trigger action block
This action block allows the policy writer to install or remove policy triggers. The Policy Trigger value to install/remove is automatically populated in the form of drop-down with the Policy Trigger block.

Note: Currently, the only supported policy trigger value is LOC_CH (change in location).

Figure 3-46 Install/Remove URSPs

Install URSP
Allows the policy writer to install or delete URSP rules for delivery using the fragmentation feature.

Figure 3-47 Remove UPSIs

Remove UPSIs
Allows the policy writer to remove UPSI from the UDR in the UE Policy Set.

Single URSP

Figure 3-48 Policy Table Column Blockly


Policy Table Column Blockly

Figure 3-49 Example: Policy Table Column, an URSP


Example: Policy Table Column, an URSP

This block allows the policy writer to create an Policy URSP data type column, while configuring the policy project using the policy table.

For example: Use Policy Table UE-PT1 whose access type is Non-3GPP Access and Install URSPs with Policy Table UE-PT1 with column c3_URSP (single URSP).

URSP List

Figure 3-50 Example: Policy Table Column, URSP List


Example: Policy Table Column, URSP List

This block allows the policy writer to create an Policy URSP List data type column, while configuring the policy project using the policy table.

For example: Use Policy Table UE-PT1 whose access type is Non-3GPP Access and Install URSPs with Policy Table UE-PT1 with column c3_URSP_List (an URSP List).

Figure 3-51 Retransmit UPSI


Retransmit UPSI

This blockly allows the policy writer to either re-transmit some of the rejected UPSI or to abort the transmission entirely.

Figure 3-52 Skip current fragment


Skip current fragment

This blockly allows the policy writer to skip the current fragment transmission, immediately starting the next fragment transmission or ending the transaction in case there is no next fragment.

Figure 3-53 Abort N1 Notify Transmission


Abort N1 Notify Transmission

This blockly immediately ends the transaction and won't continue the N1 transmission.

Figure 3-54 UPSI List


UPSI List

Note:

The List blockly is used for setting operation on two lists. It can be used for general cases in addition to the operation on UPSI lists.

The List operation is used while finding the delta between the UPSI's ID list that is currently configured in PCF, the UPSI's that are sent on UE Policy Registration and the UPSIs that are on UDR.

Allowed values:
  • Union: Displays the list of all the UPSI IDs that are present in two separate lists.
  • Intersection: Displays the list of UPSI IDs that are common (intersection) in two separate lists.
  • Difference: Displays the list of UPSI IDs that contain the difference of the two separate lists.

Figure 3-55 Retransmit Fragment


Retransmit_Fragment

This blockly allows the policy writer to retransmit the whole n1 fragment.
Condition Blocks

Figure 3-56 N1 Notify Message Received


N1 Notify Message Received

This blockly allows the policy writer to identify the following N1Notify messages:
  • MANAGE UE POLICY COMPLETE
  • MANAGE UE POLICY COMMAND REJECT
  • MESSAGE TRANSFER FAILURE

Figure 3-57 UPSIs attribute path


UPSIs attribute path

UPSI's in VSA: Specify upsi PATH condition returns the UPSIs attribute path in the request.

Figure 3-58 UPSI's attribute path in VSA - Example


UPSI's attribute path in VSA - Example

The above example returns the UPSIs attribute path in VSA as: request['variables']['subscriber']['remote']['vendorSpecific-012591']['consumerAttrs']['blobValue']['upsis']

Note: The PATH text must be either the dotted notation or the array notation and must not mix these two together.

Figure 3-59 Get Configured UPSIs/ UPSI Name/ UPSI Index


Get Configured UPSIs

with condition allows to retrieve configured UPSI from PCF, or UPSI name, or UPSI index for the specified attribute (mcc/mnc/upsc/ursp) from the list of UPSIs or individual UPSI plugged in the last section of the blockly.

Example for Configured UPSIs and UPSI Name:


Example for Configured UPSIs and UPSI Name

In this example, the first part of the blockly will install the "upsc1" upsi if its mcc equals to 123 and mnc equals to 456 and override its PLMN to be 222-333.

Similar for the second part, it will assign a variable called attr1 with the attribute of upsc from the UPSI which has the name "upsc2" on the VSA UPSIs list, and if this value is equal to 2, it will remove this UPSI and will override its PLMN to be 222-333.

NOTE: In this case, when searching by name, we will check of the list that are on VSA request and if it exist on the PCF Configured UPSIs, it will return the given attribute, so here we check for the UPSI with name "upsc2" which is in the list of the VSA UPSIs and it exists also as a configured UPSI in PCF, then we procced with the validation.

Example for UPSI Index:


Example for UPSI Index

This example loops on all the UPSIs that are located on AMF request. It allows to access an attribute from specific UPSI on AMF request. This Policy checks if any of the UPSIs on the list has its UPSC as 2.

If found, it removes the corresponding UPSI and overrides its PLMN to be 222-333.

Util Blocks

Figure 3-60 Successfully Installed UPSI in N1 Notify Message


Successfully Installed UPSI in N1 Notify Message

This blockly allows to notify the successfully installed UPSI received in N1N2 notification.

The successfully installed UPSI will only be available in the blockly when they are installed using the install UPSIs blockly.

Figure 3-61 Rejected UPSI in N1 Notify Message


Rejected UPSI in N1 Notify Message

This blockly allows the policy writer to iterate over the rejected UPSI when the N1 Notify message comes as MANAGE UE POLICY COMMAND REJECT.

Figure 3-62 Retransmit count for UPSI


Get retransmit count for UPSI

This blockly allows the policy writer to get the current retransmission count for a specific UPSI, allowing the policy writer to control how many times the retransmission has happened.

PRA Install


Install PRA

Installs or removes elements such as PRAs or UPSIs as specified by the operator.

  • INSTALL PRA: Installs the specified PRA on CREATE or UPDATE request.
  • REMOVE PRA: Removes previously installed PRA and installs different PRA on UPDATE Request.

The drop-down values, auto-populated in the block, are taken as per the configuration on PCF Presence Reporting Area page under Common Policy Data Configurations.

Note: Currently, Remove all request triggers functionality is not yet supported.

Figure 3-63 Install UPSIs


Install UPSIs

Figure 3-64 Remove UPSIs


Remove UPSIs

Install/Remove UPSIs with/without matching specific attribute of mcc, mnc and upsc. It also supports the checkbox to override PLMN for INSTALL/REMOVE.

Figure 3-65 Retransmit count for URSP


Retransmit count for URSP

This blockly allows the policy writer to get the current re-transmission count for a specific URSP, allowing the policy writer to control how many times the re-transmission has happened.

Figure 3-66 Rejected URSP in N1 Notify Message


Rejected URSP in N1 Notify Message

This blockly allows the policy writer to iterate over the rejected URSP when the N1 Notify message comes as MANAGE UE POLICY COMMAND REJECT.

Figure 3-67 N1 fragement retransmit count


N1 fragement retransmit count

This blockly allows the policy writer to get the current re-transmission count of the whole N1 fragment. Using this the policy writer supervises number of retransmission occurrences.

Install Policy Triggers

Specifies if it is the PRA Change (PRA_CH) or the Location Change (LOC_CH) action to be mentioned in the PRA report sent by UE Policy Service to AMF upon success Creation or update of the UE Policy Association.

Presence State

Indicates the presence state of the UE:

  • IN_AREA: UE is present in the specified Presence Reporting Area.
  • OUT_OF_AREA: UE is not present in the specified Presence Reporting Area.
  • UNKNOWN: The presence status of the UE in the specified Presence Reporting Area is unknown or not available.
  • INACTIVE: The Presence Reporting Area is unavailable or not supported.

PRA blockly

Sets the value to one of the drop-down list options of PRA.

The drop-down list Values is picked from configuration Page. (PCF→ Policy Configurations → Common → Presence Reporting Area)


PresenceState Attribute

Indicates current presence status of the UE in a Presence Reporting Area, and notifies that the UE enters/leaves the Presence Reporting Area.

Figure 3-68 PCF Configured UPSIs


PCF Configured UPSIs

PCF Configured UPSIs utility used with create list with block to generate a list of all configured UPSIs in PCF.

Figure 3-69 Convert UPSI Format to 3GPP


Convert UPSI Format to 3GPP

Converts UPSI in format "mcc-mnc-upsc" or UPSI configuration name in PCF such as "upsi01" to 3GPP format.

This utility is used with UPSIs in VSA block.

For example:


convert_upsi_format_to_3gpp_example

Figure 3-70 UDR delResources contains


UDR delResources contains

Checks the value of the attribute - policyDataChangeNotification.delResources of the policy request. The supported values are:
  • am-data
  • sm-data
  • ue-policy-set
  • operator-specific-data
For example:

Figure 3-71 Example usage of UDR delResources contains


UDR delResources contains usage

Figure 3-72 Release Session with cause


Release Session with cause

PolicyAssociationReleaseCause can have:

Table 3-9 PolicyAssociationReleaseCause

Enumeration value Description
UNSPECIFIED This value is used for unspecified reasons.
UE_SUBSCRIPTION This value indicates that the policy association needs to be terminated as the subscription of UE has changed.
INSUFFICIENT_RES This value indicates that the server is overloaded and needs to abort the policy association.

Figure 3-73 Release Session without cause


Release Session without cause

Directs the AM/UE service to trigger session termination notification and thus releasing a policy association. When AM/UE service receives this action, it ignores all other actions.

3.8 PCF-AM Blocks

This section describes the blocks that operators can access while configuring PCF AM Policy projects.

Table 3-10 AM Policy Blocks

Block Description
Attribute in Request Retrieves the value of requester NFType attribute in request.
Attribute in AMF Request Retrieves the value of SUPI attribute in AMF request.
RAT Type Allows operators to specify the value of RAT Type. The supported values are NR, NR_REDCAP, WLAN, EUTRA, and VIRTUAL.
NF Type Allows operators to specify the NF Type. The supported values are AMF, SMF, BSF, NEF, AF, UDR, and CHF.
Operation type Allows operators to specify the Operation Type. The supported values are CREATE, UPDATE, DELETE, NOTIFICATION, UPDATE_NOTIFY, and TERMINATE_NOTIFY.
MCC Allows operators to specify MCC or MNC of plmnid in the following supported values: eutraLocation.tai, ecgi, globalNgenbld, nrLocation.tai, ncgi, globalGnbld, and negaLocation.n3gppTai.
Restriction type Allows operators to specify Restriction Type as ALLOWED_AREAS or NOT_ALLOWED_AREAS.
SAR block Retrieves the service area restriction values, created through Service Area Restriction screen on CNC Console.
condition block for attribute in Reported PRA Information Retrieves the value of presenceState attribute in Reported PRA information for specified PRAs.

Note: Before accessing presenceState attribute, it verifies the availability of the specified PRA and its Reported PRA information. If either of the two is missing, this block returns null value.

PRA Retrieves the PRA values. The supported values are PRA1 and PRA2.
Request Trigger Retrieves the Request Trigger values. The supported values are LOC_CH, PRA_CH, SERV_AREA_CH, and RFSP_CH.
Actions
Set SAR action block Installs Service Area Restriction, specified by the operator.
Set RFSP Index action block Sets a value for RFSP Index.
Install PRA action block

Installs or removes list of PRAs, specified by the operator.

The drop-down values, auto-populated in the block, are taken from the PCF Presence Reporting Area configuration Page (Policy > Policy Data Configurations > Common > PCF Presence Reporting Area).

Install Request Trigger Actions

Installs or removes list Request Trigger Actions, specified by the operator.

Remove All Request Triggers Removes all request triggers.

3.9 PDS Category

This section provides information about blocks that can be used to write policies for Policy Data Source service.

Table 3-11 PDS Blocks

Block Image Description
Conditions
Block image for SUPI between two given values Specifies the first value and the last value of a SUPI range.
Block image for GPSI between two given values Specifies the first value and the last value of a GPSI range.
Block image for SUPI Specifies the pattern representing the set of SUPI's belonging to this range.
Block image for GPSI Specifies the pattern representing the set of GPSI's belonging to this range.
Block image for request type Specifies whether the incoming request message is coming from soap connector or PCRF core.
Actions
Block image to fetch LDAPBlock image to fetch UDRBlock image to fetch OCS This blockly action allows policy writers to retrieve resourceTypes from specified datasource.

When the user selects LDAP from the drop-down menu, retrieval takes place through LDAP datasource. Use the drop-down menu to select LDAP ID configured on PDS Settings page under Service Configurations in CNC Console. In addition, user can select parameters - SUPI or GPSI to perform the lookup. When the 4G checkbox is selected, the lookup is done using IMSI or MSISDN.

When UDR is selected from the drop-down menu, the policy retrieves UDR datasource and the default configurations, configured on PCF User Connector under Service Configurations in CNC Console. In addition, user can use the checkboxes to retrieve multiple resourceTypes at once.

When CHF is selected from the drop-down menu, the policy retrieves CHF datasource and the default configurations, configured on PCF User Connector page under Service Configurations in CNC Console.

When OCS is selected from the drop-down menu, the policy retrieves OCS datasource and the default configurations, configured using Policy > Diameter Configurations > Peer Nodes page. By default, OCS supports 4G format.

3.10 PCRF-Core

The policy wizard supports a large number of conditions that can be used for constructing policy rules. To help you find the conditions you want, the conditions are organized into different categories.

The conditions that are included within each of these categories are described in the sections that follow. Within each category, conditions are listed in alphabetical order. The parameters that can be modified within each condition are also detailed.

3.10.1 Conditions

This section provides information on policy conditions available for PCRF Core service.

The enforcement session is one of an IP-CAN session

This policy condition, as shown in the following image, triggers a policy that evaluates the type of the enforcement session.

Enforcement session policy condition
The following are the valid values that can be selected from the drop-down field:
  • an IP-CAN session (default)
  • a gateway control session
  • a DPI enforcement session
  • an S9 sub-session
  • an S9 session

Mobile session includes Sponsored Connectivity

The Mobile session includes or does not include Sponsored Connectivity policy condition, as shown in the following image, triggers a policy that evaluates whether or not the mobile session supports sponsored data connectivity. This condition supports sponsored data connectivity for both Gx and Rx requests.

The screen capture shows a sample policy condition, where the mobile session supports sponsored connectivity.

Reauthorization Reason

The Reauthorization Reason policy condition, as shown in the following image, compares reauthorization reason in request received by PRE with the value specified in the policy condition.Reauthorization reason block image

User can select any of the following valid values from the Reauthorization drop-down field:
  • REASON_DEFAULT
  • REASON_AUDIT
  • REASON_TOD
  • REASON_LI
  • REASON_RELEASE_SESSION
  • REASON_POLICY
  • REASON_NOTIFICATION
  • REASON_RETRY
  • REASON_AF
  • REASON_OCS_NOTIFICATION
  • REASON_RECONCILE
  • REASON_USER_SCHEDULED_TASK
  • REASON_REVALIDATION_TIMEOUT
  • REASON_SY_SESSION_TERMINATION_BY_OCS

request supports feature name

The request supports or does not support feature name policy condition, as shown in the following image, determines whether the request supports or does not support a specified feature respectively.

The screen capture shows a sample policy condition, where the request supports feature name.

For the name of the feature, this policy condition supports a comma-delimited list of values.

where the event trigger is one of

This policy condition, as shown in the following image, triggers a policy that is only evaluated for a specific event trigger type.

event trigger type policy condition
User can select any one of the following valid values from event trigger drop-down field:
  • SGSN_CHANGE
  • QOS_CHANGE
  • RAT_CHANGE
  • TFT_CHANGE
  • PLMN_CHANGE
  • LOSS_OF_BEARER
  • RECOVERY_OF_BEARER
  • IP_CAN_CHANGE
  • GW_PCEF_MALFUNCTION
  • RESOURCES_LIMITATION
  • MAX_NR_BEARERS_REACHED
  • QOS_CHANGE_EXCEEDING_AUTHORIZATION
  • RAI_CHANGE
  • USER_LOCATION_CHANGE
  • NO_EVENT_TRIGGERS
  • OUT_OF_CREDIT
  • REALLOCATION_OF_CREDIT
  • REVALIDATION_TIMEOUT
  • UE_IP_ADDRESS_ALLOCATE
  • UE_IP_ADDRESS_RELEASE
  • DEFAULT_EPS_BEARER_QOS_CHANGE
  • AN_GW_CHANGE
  • SUCCESSFUL_RESOURCE_ALLOCATION
  • RESOURCE_MODIFICATION_REQUEST
  • UE_TIME_ZONE_CHANGE
  • TAI_CHANGE
  • ECGI_CHANGE
  • CHARGING_CORRELATION_EXCHANGE
  • APN_AMBR_MODIFICATION_FAILURE
  • USER_CSG_INFORMATION_CHANGE
  • USAGE_REPORT
  • DEFAULT_EPS_BEARER_QOS_MODIFICATION_FAILURE
  • USER_CSG_HYBRID_SUBSCRIBED_INFORMATION_CHANGE
  • USER_CSG_HYBRID_UNSUBSCRIBED_INFORMATION_CHANGE
  • APPLICATION_START
  • APPLICATION_STOP
  • ADC_REVALIDATION_TIMEOUT
  • ACCESS_NETWORK_INFO_REPORT
  • CHANGE_OF_UE_PRESENCE_IN_PRESENCE_REPORTING_AREA_REPORT
  • HOTSPOT_SHARE_START
  • USAGE_THRESHOLD_REACHED
  • SERVICE_FLOW_DETECTION
  • CELL_CONGESTED
  • CELL_CLEAR
  • RAN_NAS_Cause
  • SESSION_RECOVERY_VZW
  • SESSION_SYNC_VZW
  • CREDIT_MANAGEMENT_SESSION_FAILURE

network initiated requests are supported

The network initiated requests policy condition, as shown in the following image, triggers a policy that is only evaluated when network initiated requests are supported. On selecting does not Support from the drop-down field, this condition block triggers a policy that is only evaluated when network initiated requests are not supported.

The screen capture shows a sample policy condition, where network initiated requests are supported.

APN aggregate maximum bitrate

The APN aggregate maximum bitrate condition block, as shown in the following image, selects protocol messages based on the maximum bitrate being requested for an access point name (APN) in a specific direction relative to a numeric value - specified in the string block. The unit of bandwidth is compatible with the Credit Control Request (CCR) message. The APN aggregate maximum bitrate condition block is Policy Table compliant.

The screen capture displays the sample policy condition, where the requested upstream APN aggregate maximum bitrate is equal to 100.

From the drop-down field, user can choose the flow direction as Upstream or Downstream. The default operator for this condition is =. Select any one of the following operators from the drop-down field:
  • =
  • !=
  • <
  • <=
  • >
  • >=
  • Matches
  • RegExp-Matches

IP-CAN type

The IP-CAN type policy condition, as shown in the following image, triggers a policy that is only evaluated for a protocol message with a specific IP-CAN type.

The screen capture shows a sample policy condition, where the IP-CAN type is specified.

The user can select any one of the following supported values using the IP-CAN Type drop-down field:
  • 3GPP_GPRS
  • 3GPP_EPS
  • NON_3GPP EPS
  • 3GPP2
  • WiMAX
  • DOCSIS
  • xDSL

The request is

The request is policy condition, as shown in the following image, evaluates whether the request type matches with the specified request.

the request is condition
The user can select any one of the following supported values using the drop-down field:
  • creating a new session (default)
  • modifying an existing session
  • re-authorizing an existing session
  • terminating an existing session

The RAT type is

The The RAT type is policy condition, as shown in the following image, triggers a policy that is only evaluated for a protocol message with a specific Radio Access Technology (RAT) type.

RAT type policy condition

The user can select any one of the following valid values from RATType drop-down field:
  • GERAN
  • UTRAN
  • HSPA Evolution
  • UMA/GAN
  • EUTRAN
  • EUTRAN NB IoT
  • WLAN
  • CDMA2000 1x
  • HRPD
  • UMB
  • eHRPD
  • NR_REDCAP

QoS Upgrade

The QoS Upgrade policy condition, as shown in the following image, evaluates if QoS upgrade is supported (supports) or not (does not support).

QoS Upgrade condition block

The session is an enforcement session

The The session is an enforcement session condition block, as shown in the following image, distinguishes between protocol messages that are operating on different sessions.

The screen capture shows a sample policy condition, where the session is an enforcement session.

The user can select any one of the values for the session type using the drop-down field:
  • an enforcement session (default)
  • an application session
  • a credit control session
  • a radius authorization session

tier

The tier condition block, as shown in the following image, triggers a policy that is evaluated for one or more specific tiers.

PCRF condition block for tier

cell state is congested

The cell state is congested policy condition block, as shown in the following image, triggers a policy that is evaluated based on the level of congestion in the cell. The supported values are congested and not congested.

PCRF condition block for cell state is congested or not congested

3.10.2 Actions

This section describes the policy actions that can be used to construct policy rules for PCRF Core service.

set Alert with severity level, ID and message

This policy action, as shown in the following image, sends an alert to the system containing the specified severity level and message text. This alert appears in the Active Alerts display for one hour, until cleared, or unless the server fails over, whichever comes first. Alerts generated by policy actions do not affect the HA score of a server, and will not cause a failover. On choosing clear from the drop-down field, the alert containing the specified severity level and message text is cleared from the system.

set alert with severity, ID and message policy action

The following are the valid values that can be selected from the severity drop-down field:
  • Critical (default)
  • Major
  • Minor

The ID field specifies the alert ID. On selecting Evaluate as expression, the text in the field is evaluated as an arithmetic expression, and the result is used.

The message accepts string value. This text may contain policy parameters to perform parameter substitution within the message text. If you select Evaluate as expression, the text in the field is evaluated as an arithmetic expression, and the result is used.

Note:

The "set Alert with severity level, ID and message" has been deprecated in 23.4.0. It should not be used.

reset all subscriber data

The reset all subscriber data policy action, as shown in the following image, resets all data for the subscriber.

reset all subscriber data policy action

set policy context property name to value

This policy action block, as shown in the following image, sets a subscriber property. The property-name and value accept strings as value.

set policy context property name to value action block

remove all policy context properties

The remove all policy context properties policy action, as shown in the following image, removes all policy context properties.

remove all policy context properties policy action

Establish Traffic Detection Session for a Peer Node

The Establish Traffic detection session with policy action, as shown in the following image, establishes a traffic detection session with the selected network element identity.


Establish Traffic Detection Session

Establish Traffic Detection Session for Peer Node Set

The Establish Traffic detection session with policy action, as shown in the following image, establishes a traffic detection session with the selected network element identity.

Establish Traffic Detection Session for Peer Node Set

Enable Logging with log levels

The public Log: Level block is enabled ALWAYS in the event of various actions, as shown in the following image.

Figure 3-74 Log: level


Log: level

3.10.3 AF

This section describes the blocks and conditions specific to flows.

3.10.3.1 Conditions

This section describes the conditions specific to flows.

Required-Access-Info

The Required-Access-Info policy condition, as shown in the following image, triggers a policy when the returned access network information, populated in Rx call flow, for that AF session matches the specified value.

Figure 3-75 Policy Condition for Required-Access-Info

Block design for sample Required-Access-Info policy
The user can select any one of the following valid values from the drop-down field:
  • USER_LOCATION (default)
  • MS_TIME_ZONE
  • USER_LOCATION_AND_MS_TIME_ZONE

the corresponding enforcement session supports feature

The the corresponding enforcement session supports feature name policy condition, as shown in the following image, evaluates the feature name in the enforcement session that correlates to the corresponding application (Rx) request.

The screen capture shows a sample policy condition, where the where the corresponding enforcement session supports feature name.

To specify the name of the features, a comma-delimited list of values can be used. This list can contain one or more supported feature. To use a wildcard match pattern, select RegExp-Matches. Wildcard match patterns use the following characters:
  • * (asterisk) character to match zero or more characters
  • ? (question mark) character to match exactly one character

where the application session type is Rx

The where the application session type is Rx policy condition, as shown in the following image, validates whether the application-session is Rx or RxOverS9.

Figure 3-76 Application Session Type Block

Blockly design for Application Session Type

Note:

If the application session is not Rx, the policy condition returns unknown.

Apply Traffic Profile to Flow(s) whose media type matches one of specified values

This policy condition, as shown in the following image, applies one or more traffic profiles to one or more flows of the specified type media type. It overwrites the corresponding settings in the protocol messages of the specified flows. If multiple traffic profiles are selected, they are applied in the order in which they are specified. If a traffic profile contains settings that are not relevant in the current protocol message, they are ignored. This policy condition is Policy Table compliant.

apply traffic profile to flows policy condition
To specify the flow media type, user can select any of the following valid values from the Type drop-down field:
  • Audio
  • Video
  • Data
  • Application
  • Control
  • Text
  • Message
  • Other

Specific action

The Specific action policy condition, as shown in the following image, triggers a policy when the value of the Specific-Action AVP field within an Rx RAA message matches the specified value.

specific action policy condition block

The user can select any of the following valid values from the Specific actions drop-down field:

  • SERVICE_INFORMATION_REQUEST (default)
  • CHARGING_CORRELATION_EXCHANGE
  • INDICATION_OF_LOSS_OF_BEARER
  • INDICATION_OF_RECOVERY_OF_BEARER
  • INDICATION_OF_RELEASE_OF_BEARER
  • INDICATION_OF_ESTABLISHMENT_OF_BEARER
  • INDICATION_OF_IP_CAN_CHANGE
  • INDICATION_OF_OUT_OF_CREDIT
  • INDICATION_OF_SUCCESSFUL_RESOURCES_ALLOCATION
  • INDICATION_OF_FAILED_RESOURCES_ALLOCATION
  • INDICATION_OF_LIMITED_PCC_DEPLOYMENT
  • USAGE_REPORT
  • ACCESS_NETWORK_INFO_REPORT
  • INDICATION_OF_RECOVERY_FROM_LIMITED_PCC_DEPLOYMENT
  • INDICATION_OF_ACCESS_NETWORK_INFO_REPORTING_FAILURE
  • PLMN_CHANGE
3.10.3.2 CODEC Conditions

Session Description Protocol (SDP) properties conditions identify any specific SDP attributes and evaluate their value. This includes setting proper bandwidth values on related PCC rules. The following conditions are available.

the local specified SDP property matches one of value(s)

This policy condition, as shown in the following image, checks the Codec type (offer or answer) for a subscriber's device (local, remote or common) for specific values (a comma-delimited list).

Local Sdp Property matches specified value

Users can select any of the following valid values from the drop-down field that specifies where to search for the SDP Property:
  • Local—The capabilities of the device for the subscriber.
  • Remote—The capabilities of the device for the remote party.
  • Common—The capabilities that the local and remote devices have in common.
Specifying SDP Property
A comma-delimited list of SDP properties. Specify the SDP properties using one of the following methods:
  • Generic descriptor
    Syntax: sdp.[option]

    where option is any name (for example, i) or any keyword (for example, a=ptime)

    Examples using an SDP generic descriptor:
    • where the local sdp.[i] matches one of *recvonly*
    • where the common sdp.[a=ptime] matches one of 20
    • where the common sdp.[a] matches one of ptime: 20
    • where the common sdp.[u] matches one of http://www.oracle.com:8080/hr/one.htm
    • where the common sdp.[u=http://www.oracle.com] matches one of 8080/hr/one.htm
    • where the common sdp.[u=http] matches one of //www.oracle.com:8080/hr/one.htm
    • where the remote sdp.[xy] matches one of z
    • where the remote sdp.[xy=z] matches one of 80
  • Media descriptor
    Syntax: sdp.[m.option]

    where option can be any of the given values - fmt, port, numberofports, media, and proto.

    Examples using an SDP media descriptor:
    • where the common sdp.[m.fmt] matches one of 102
    • where the common sdp.[m.port] does not match any of 41000,41002
    • where the remote sdp.[m.media] matches one of audio,video
    • where the local sdp.[m.proto] matches one of RTP/AVP
  • rtpmap
    Syntax: sdp.[codec-name(codec-name).rtpmap.OPTION]

    where codec-name specifies a codec name.

    where option can be any of the given values - payloadtype, clockrate, and encodingparameters.

    Examples using rtpmap:
    • where the common sdp.[ codec-name(AMR-WB).rtpmap] matches one of 104 AMR-WB/160000
    • where the common sdp.[ codec-name(AMR-WB).rtpmap.encodingparameters] matches one of 2
    • where the common sdp.[ codec-name(AMR-WB).rtpmap.payloadtype] matches one of 104,102
  • fmtp
    Syntax: sdp.[codec-name(codec-name).fmtp.OPTIONS]

    where codec-name specifies a codec name.

    where option can be any of the given values - fmt, profile-level-id, mode-set, packetization-mode, or any other parameter to be conveyed.

    Examples using fmtp:
    • where the common sdp.[codec-name(AMR-WB).fmtp.fmt] matches one of 104,102
    • where the common sdp.[codec-name(AMR-WB).fmtp.mode-set] matches one of 2,4
    • where the commonsdp.[codec-name(H264).fmtp.profile-level-id] matches one of42e00c

the local specified SDP property exists

This policy condition, as shown in the following image, checks for the existence or non-existence of any SDP property for a subscriber's device (local, remote or common).

Local SDP property exists
Users can select any of the following valid values from the drop-down field that specifies where to search for the SDP Property:
  • Local—The capabilities of the device for the subscriber.
  • Remote—The capabilities of the device for the remote party.
  • Common—The capabilities that the local and remote devices have in common.

For information on how to specify the name of SDP property, see Specifying SDP Property.

the local specified SDP property is numerically equal to specified value

This policy condition, as shown in the following image, compares a numerical SDP property for a subscriber's device (local, remote or common) against a specified number (string).

Local SDP property is numerically equal to value

Users can select any of the following valid values from the drop-down field that specifies where to search for the SDP Property:
  • Local—The capabilities of the device for the subscriber.
  • Remote—The capabilities of the device for the remote party.
  • Common—The capabilities that the local and remote devices have in common.

Users can select any of the following valid values from the drop-down field for the comparison:

  • equal to
  • not equal to
  • less than
  • greater than
  • less than or equal to
  • greater than or equal to

where the local codec data is an offer

This policy condition, as shown in the following image, checks the Codec type (offer or answer) for a subscriber's device (local, remote, or common).

local codec data is an offer

Users can select any of the following valid values from the drop-down field that specifies where to search for the SDP Property:
  • Local—The capabilities of the device for the subscriber.
  • Remote—The capabilities of the device for the remote party.
  • Common—The capabilities that the local and remote devices have in common.

3.10.4 AVP Specific

This section describes conditions and actions specific to Attribute Value Pair (AVP).

3.10.4.1 Conditions

This section describes the conditions specific to AVP. The AVP conditions are Policy Table compliant.

AVP Name exists

This policy condition, as shown in the following image, checks whether the specified third-party AVP exists or does not exist in an incoming Diameter message. This policy condition supports both loaded base Diameter AVPs and third-party AVPs.

The screen capture shows a sample policy condition, where the request AVP name exists.

To specify AVP name, select any one of the following formats:
  • name:vendorID
  • a full path
    [avp_name1]:vendorID.[avp_name2]:vendorID…
    for the members of the grouped AVPs

value of AVP with name contains one or more of specified values

This policy condition, as shown in the following image, compares the specified value of AVP with name with the values or variables from the specified list. The condition is where the request AVP name value matches one of the values. The values can be evaluated for equality as well as inequality. To evaluate an AVP value for inequality, the block contains of must have the value none. This policy condition supports both loaded base Diameter AVPs and third-party AVPs.

The screen capture shows a sample policy condition, where the request AVP name value matches one of specified values.

To specify AVP name, select any one of the following formats:
  • name:vendorID
  • a full path
    [avp_name1]:vendorID.[avp_name2]:vendorID…
    for the members of the grouped AVPs.
3.10.4.2 Actions

This section describes the policy actions specific to AVP. The AVP actions are Policy Table compliant.

set custom AVP value to the specified property name

This policy action, as shown in the following image, makes the AVP value accessible throughout the policy context so other policies can access this AVP value as a context property. The context property variable will be set only if this AVP exists in the request and its value is not null.

Assign custom AVP value to the specified property name

The property name is a string that represents the policy context property. The Custom AVP name must be an existing AVP name and Vendor ID.

set value to existing or new custom AVP

This policy action, as shown in the following image, adds the third-party non-grouped AVP to the current Diameter session with the specified value. If a third-party AVP value is set in the current Diameter session, it will be sent with the corresponding outgoing message. The value parameter must correspond to the AVP data type; otherwise, the AVP shall not be set. If New is selected as the value for custom AVP, a new AVP is added to the message on every execution of this policy action, without considering that the same AVP name is present in the message.

Assign value to existing or new custom AVP

The value string represents a third-party non-grouped AVP.

The custom AVP name must be an existing AVP name and Vendor ID. For the send mode, select any one of the following values from the drop-down field:
  • Always
  • Unless rejected
  • If rejected

Add custom grouped AVP and send Always

This policy action, as shown in the following image, adds or sends new custom grouped AVP to the current reply. A condition can be set specifying that the AVP is always set to send mode. If you are defining a new grouped third-party AVP with members, the grouped AVP has to appear first in the policy. If you are adding a new member AVP that does not have its parent AVP added yet, the policy attempts to locate this grouped AVP in the rest of the policy. To include a grouped AVP multiple times in the same message, users must follow the order in which it appears in the message.

Add custom grouped AVP and send always policy action

The Custom AVP name must be an existing AVP name and Vendor ID. For the send mode, select any one of the following valid values from the drop-down field:
  • Always
  • Unless rejected
  • If rejected

Remove custom AVP from reply Always

This policy action, as shown in the following image, removes the custom AVP name set previously from the reply message.

remove custom avp from reply always policy action

The Custom AVP name, selected from the drop-down menu, must be an existing AVP name and Vendor ID. For the send mode, select any one of the following valid values from the drop-down field:
  • Always
  • Unless rejected
  • If rejected

Mark request AVP as failed if exists and send Always

This policy action, as shown in the following image, marks request AVP as failed if it exists.

Mark request AVP as failed if exists and send always action block

For the send mode, select any one of the following valid values from the drop-down field:
  • Always
  • Unless rejected
  • If rejected
3.10.4.3 Use Cases

This section describes use cases for policy conditions specific to AVP.

Use Case - AVP Name exists

The following screen capture shows a sample policy condition that determines whether the AVP Media-Component-Description is accessible. The screen capture shows a sample policy condition, where the request AVP Media-Component-Description exists.

Use Case - Add custom grouped AVP and send Always

In the following sample policy, a third party grouped AVP Custom-Group-AVP:1300 is added to the current Diameter session. It adds the third party non-grouped AVP Custom-Member-AVP2:1300 as a new AVP to the current Diameter session with the specified value 9876 and this AVP can only be send if the policy is not rejected. It adds the third party non-grouped AVP Custom-Member-AVP1:1300 to the current Diameter session with the specified value 4566 and if there are multiple instances of this existing AVP the new value will be set to all of them and this AVP can be sent always regardless of the policy execution outcome.

In CCA, the following AVP will be installed at the end:
  Custom-Group-AVP (43,VM,v=1300,l=44) =
    Custom-Member-AVP2 (1322,V,v=1300,l=16) = 9876
    Custom-Member-AVP1 (1311,VM,v=1300,l=15) = 456
Sample policy for add custom grouped AVPSample policy for add custom grouped AVP with policy table

Use Case - Assign value to custom AVP and send response

The following screenshot shows a sample policy for Assign value to custom AVP and send response policy action:

Sample policy for assign value to custom AVP

Use Case - Assign custom AVP value to the property

The following screenshot shows a sample policy for Assign custom AVP value to the propert name pname2:

Sample policy for assign custom AVP value to the specified propertySample policy that is called in the preceding sample policy

Use Case - Remove custom AVP from reply

The following screenshot shows a sample policy for Remove custom AVP policy action:

Sample policy for remove custom AVP from reply

3.10.5 Closed User Group (CSG)

This section describes the Closed User Group (CSG) conditions and use cases for PCRF Core service.

3.10.5.1 Conditions

This section describes the policy conditions that can be used to configure AVP for PCRF Core service.

CSG Id exists

The CSG Id exists policy condition, as shown in the following image, checks if user CSG id is present or is null in request.Policy condition for CSG Id

CSG Id value matches one of specified values

This policy condition, as shown in the following image, evaluates if the CSG Id value in the request matches or does not match with the one or more specified values in the string block.

Policy condition to check if CSG Id value matches with match-list

CSG Access Mode is closed

The CSG Access Mode policy condition, as shown in the following image, checks if user CSG Access Mode is equal to the specified value.

CSG Access Mode policy condition
User can select any one of the following valid values from the drop-down field:
  • Closed
  • Hybrid

IP-CAN type

The IP-CAN type policy condition, as shown in the following image, triggers a policy that is only evaluated for a protocol message with a specific IP-CAN type.

The screen capture shows a sample policy condition, where the IP-CAN type is specified.

The user can select any one of the following supported values using the IP-CAN Type drop-down field:
  • 3GPP_GPRS
  • 3GPP_EPS
  • NON_3GPP EPS
  • 3GPP2
  • WiMAX
  • DOCSIS
  • xDSL

Request Attribute present in specified match-list

Request attribute present in specified match-list policy condition

UE is member of CSG

The UE is member of CSG policy condition, as shown in the following image, checks if UE is a member of CSG and returns a boolean value.

UE is member of CSG
3.10.5.2 Use Cases

This section describes the use cases specific to CSG that can be used to configure AVP for PCRF Core service.

Use Case - CSG Access Mode

In the following sample policy, pccRule is installed if CSG Access Mode returns the hybrid_mode string value from request. Use case for CSG Access Mode

Use Case - CSG Id value matches one or more of specified values

In the following sample policy, pccRule is installed if CSG Id does not match with the list with values ["123", "12"].Use case if CSG does not match the list

Use Case - UE is member of CSG

In the following sample policy, pccRule is installed if UE is not a member of CSG.Use case for UE is member of CSG block

3.10.6 Day/Time

Day and Time conditions, actions, and utils are related to the time at which the policy rules are being executed.

Configuring Local Time

To configure the local time, perform the following steps:
  1. From the navigation menu, under PCRF, then under Services, click Core Service.

    The Core Service screen appears.

  2. Click Edit to edit the core service configurations.
  3. In Advance Settings, click Create.

    The Create page appears.

  4. Enter DB.User.DefaultLocalTimeMode in the Key field.
  5. Enter True in the Value field.
  6. Click Save.

If no configuration is provided, the SYSTEM_LOCAL_TIME is considered as default local time.

3.10.6.1 Conditions

This section describes the conditions that can be used to configure day and time for PCRF Core service.

today is the specified day(s) of month in natural order using Configured Local Time

This policy condition, as shown in the following image, triggers a policy based on a day in a month. If current date matches specified number th day (a comma-delimited list of values) of specified months in natural order or reverse order as per the configured time then the condition returns true, otherwise false.

The screen capture displays a sample policy condition, where today is the specified number(s) th day(s) of Any Month in natural order using configured local time.
User can select any of the following valid values from the Month drop-down field:
  • January (default)
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
User can select any of the following valid values from the time-zone drop-down field:
  • CONFIGURED_LOCAL_TIME (default)—Calculate the time from the location configured for this MPE device
  • SYSTEM_LOCAL_TIME—Calculate the time from the location of this MPE device
  • USER_LOCAL_TIME—Calculate the time from the location configured for the user equipment's location

the current time is within the Time Period

This policy condition, as shown in the following image, triggers a policy based on the time period. This condition gets time slots of all the time periods, and compares current time with these time slots. If the current time falls within the range of time slots configured in these time periods then the condition returns true, otherwise false.

This screen caputre displays the sample policy condition, where the current time is within the specified time periods.

The Time Period drop-down field lists the time periods, configured using the Time Periods page on CNC Console. To navigate to the Time Periods page, click Policy, and then Policy Data Configurations. Select PCRF Core, and then click Time Periods.

the current time is between start time and end time using Configured Local Time

This policy condition, as shown in the following image, triggers a policy based on time. If the present time is between start time and end time then the condition returns true, otherwise false. If start time is greater than end time then the condition is evaluated, where the end time is considered as the next day.

This screen capture shows a sample policy condition, where the current time is between start time and end time using configured local time.

Enter the start time and end time in the format of hh:mm, where hh is a number in the range from 0 to 23.

User can select any of the following valid values from the time-zone drop-down field:
  • CONFIGURED_LOCAL_TIME (default)—Calculate the time from the location configured for this MPE device
  • SYSTEM_LOCAL_TIME—Calculate the time from the location of this MPE device
  • USER_LOCAL_TIME—Calculate the time from the location configured for the user equipment's location

today is a week day using Configured Local Time

This policy condition, as shown in the following image, triggers a policy based on whether it is a week day or the weekend. If today is week day using the system time (CONFIGURED_LOCAL_TIME) then the condition returns true. If today is not week day using the system time, this policy condition returns false.

The screen capture shows a sample policy condition, where today is a weekend day using configured local time.

User can select any of the following valid values from the time-zone drop-down field:
  • CONFIGURED_LOCAL_TIME (default)—Calculate the time from the location configured for this MPE device
  • SYSTEM_LOCAL_TIME—Calculate the time from the location of this MPE device
  • USER_LOCAL_TIME—Calculate the time from the location configured for the user equipment's location

today is Day Sunday using Configured Local Time

This policy condition, as shown in the following image, triggers a policy based on the day of the week. If today is Sunday using the system time (CONFIGURED_LOCAL_TIME) then the condition returns true. If today is not Sunday using the system time, this policy condition returns false.

The screen capture shows a sample policy condition, where today is day using configured local time.

User can select any of the following valid values from the Day drop-down field:
  • Sunday (default)
  • Monday
  • Tuesday
  • Wednesday
  • Thursday
  • Friday
  • Saturday
User can select any of the following valid values from the time-zone drop-down field:
  • CONFIGURED_LOCAL_TIME (default)—Calculate the time from the location configured for this MPE device
  • SYSTEM_LOCAL_TIME—Calculate the time from the location of this MPE device
  • USER_LOCAL_TIME—Calculate the time from the location configured for the user equipment's location

the MSTimezone DST

The the MSTimezone DST policy condition triggers a policy that is only evaluated if the applied Daylight Saving Time offset for the location of a mobile subscriber or mobile station (MS) matches the parameter.

MSTimezone DST mobility condition

User can select any one of the following operators from the drop-down field:
  • = (default)
  • !=
  • <
  • <=
  • >
  • >=
  • Matches
  • RegExp-Matches

the MSTimezone offset

The the MSTimezone offset policy condition triggers a policy that is only evaluated if the applied time zone for a mobile subscriber or mobile station (MS) matches the parameter.

MSTimezone offset

User can select any one of the following operators from the drop-down field:
  • = (default)
  • !=
  • <
  • <=
  • >
  • >=
  • Matches
  • RegExp-Matches
3.10.6.2 Actions

This section describes the actions that can be used to configure day and time for PCRF Core service.

Set session revalidation time to earliest of specified time

The Set session revalidation time to the earliest of action block returns the earliest time from the following list:
  • Time in the specified policy counter ID or IDs
  • Time defined in the Seconds/Minutes/Hours/Days format from the time when a policy is executed
  • Specific time in hh:mm format (limited to 15-minute intervals) on a specific day of the week using either SYSTEM TIME or UTC TIME time-zone.
  • Random time between a time range

Figure 3-77 Set session revalidation time to earliest of

set session revalidation time to earliest of

This action block is Policy table compliant.

In addition, you can check the Randomize checkbox to select a random revalidation time from the time range.

You can define the range by using the number block (under Public category) for specifying the seconds and selecting any of the following values from the dropdown list:
  • "+": It adds the specified seconds to the time entered.
  • "-": It subtracts the specified seconds from the time entered.
  • "+/-": The range is defined by [ Time entered - specified seconds] to [ Time entered + specified seconds].
If you select the Randomize option, the following message is printed in the Policy runtime logs:

{"messageTimestamp":"2022-01-25T08:10:41.698Z","logLevel":"WARN","pid":14692,"workerId":2,"fileName":"lib\\services\\sm_core-service.js","lineNo":"25","message":"Applying randomization on earliest time}

If you input anything other than a number for randomization, the following error is printed in the logs:

"message":"Error!! Entered seconds is not a number for randomization !!Please enter number in seconds field."

Note: On upgrading to Policy 22.1.0 or later versions, the Set revalidation time to earliest of block is upgraded automatically in the existing policies.

3.10.6.3 Utils

This section describes the utils that can be used to configure day and time for PCRF Core service.

Offset

The Offset util can be combined with policy conditions and actions to specify a time zone.

Offset util

Time Period

The Time Period util can be combined with policy conditions and actions to specify a time period.

Time Period util

The Time Period drop-down field lists the time periods, configured using the Time Periods page on CNC Console. To navigate to the Time Periods page, click Policy, and then Policy Data Configurations. Select PCRF Core, and then click Time Periods.

Day

The Day util can be combined with policy conditions and actions to specify the day.

Day util

The available drop-down values are as follow:
  • Sunday (default)
  • Monday
  • Tuesday
  • Wednesday
  • Thursday
  • Friday
  • Saturday

3.10.7 Identities/Addresses

The conditions categorized under Identities and Addresses are Policy Table compliant. The conditions can be used to manage policies for PCRF Core service.

3.10.7.1 Conditions

This section describes the conditions specific to user identities and addresses.

where the User IMSI

The where the User IMSI condition block, as shown in the following image, allows operators to identify users based on IMSI, E.164, NAI or SIP URI from the request received by the Policy Rule Engine.

where the user IMSI block

User Equipment

The User Equipment condition block, as shown in the following image, allows operators to evaluate one or more IMEISV or MAC values. The evaluation is based on matching wildcard patterns. On selecting matches one of from the drop-down menu, if the IMEISV/MAC value matches with the address present in the JSON request, then the condition returns true, otherwise false.

User Equipment Block Image

Note:

A wildcard match pattern uses the * (asterisk) character to match zero or more characters and the ? (question mark) character to match exactly one character. It can be of form "*-*-56-*-*-D?" or "*:*:56:*:*:D?" and not like "00-*" etc.

The Endpoint IP address

In the The Endpoint IP address condition block, as shown in the following image, the The Endpoint IP address child block fetches endpoints IP address from the JSON path, and then compares the retrieved value with the value provided in the string block. It supports both IPv4 and IPv6 addresses.

Endpoint IP Address Block Image
The Endpoint IP Address condition block supports the following two comparison methods:
  1. matches_to - On selecting this value, the block performs a string comparison, and matches the retrieved value with the value provided in the string block.
  2. is_in_subnet - On selecting this value, the block performs a comparison based on node IP library, and verifies if the retrieved value is in subnet provided in the string block.
3.10.7.2 Use Cases

This section provides information about the use cases related to Identities/Addresses condition blocks.

Use Case - User Equipment

The following policy example shows a create request for a PCC rule when MAC address matches the specified value, that is, "*:*:56:F2:*:*".Use case for User Equipment info type condition

Use Case - The Endpoint IP Address

The following policy example triggers a policy when the endpoint IP address matches 10.0.3.102:Use case for The Endpoint IP Address

3.10.8 Location/Presence

This section describes the conditions, actions, and utils specific to user location and presence reporting area.

3.10.8.1 Conditions

This section provides information on Location/Presence conditions available under PCRF Core Service.

The UE is inside/outside/inactive for PRA Area

This policy condition, as shown in the following image, triggers a policy that is only evaluated when the user equipment is or is not inside the subscribed PRA area.

The screen capture shows a sample policy condition, where the UE is insids/outside/active subscribed PRA area for any one of the PRA area.

Operators may select the location of the UE as inside, outside or inactive from the drop-down field.

The subscribed PRA area matches/does not match one or more PRA areas

This policy condition, as shown in the following image, triggers a policy that is only evaluated for one or more specific PRA values. If default area is selected as the definition for the parameter pra-areas, the policy is only evaluated if the user equipment is already subscribed to a PRA.

The screen capture shows a sample policy condition, where the subscribed PRA area matches one of PRA area(s).

A single area or multiple specific PRA areas selected from the defined PRA areas, manually input, or Default.
  • CMP defined PRA lists

    Select one or more defined PRA lists

  • Manual Input

    Enter the identifier for the PRA in hexadecimal format or a custom PRA from a subscriber profile in the format {User.CustomField}.

    The manual input format for multiple PRAs is:
    PRA
    identifier1 [;PRA element list1],PRA identifier2 [; PRA element
    list2],…

    The format of PRA identifier and PRA Element List is according to section 8.108 of TS 29.274[9]. It is specified in Hexadecimal format. If only has a PRA identifier then the PRA area is a predefined PRA area. If both PRA identifier and PRA Element List exists, then it is a UE-dedicated PRA Area. The manual input is typically used to input a temporally PRA area. The manual input can also be used to get a PRA area from Custom field of subscriber. For example, {User.Custom4}. If the operator wants to manually input a PRA area they need to get the Hexadecimal value for each. Different vendors/operators should interact or exchange PRA info using the Hexadecimal representation as defined in section 8.108 of TS 29.274[9].

    The manual input format for a single PRA is:
    PRA identifier [, PRA element list]
  • Default

    The PRA to which the user equipment is already subscribed, if any.

    The Default option specifies using the default PRA area. The default PRA is the PRA area subscribed or provisioned by the PCRF for the UE during IP-CAN session life cycle. It is either a UE- dedicated or predefined PRA area. It can be a PRA area that is retrieved from the subscriber profile (normally UE-dedicated) or a PRA area defined in the CMP (normally predefined). When used , this Default option means to check whether the UE has subscribed to a PRA area but does not care what the PRA area is.

Routing Area Identifier

The Routing Area Identifier policy condition, as shown in the following image, triggers a policy that is only evaluated for one or more specified Routing area identifier values (based on matching wildcard patterns).

routing area identifier mobility condition

Note:

To know more about the format of routing area identifier, see the 3GPP TS 23.003 standard.

Serving MCC-MNC

The Serving MCC-MNC policy condition, as shown in the following image, triggers a policy that is only evaluated for one or more specific mobile country code (MCC)-mobile network code (MNC) values. A valid value consists of a 3-digit mobile country code and a 2- or 3-digit mobile network code, such as 123045.

The screen capture shows a sample policy condition,where the Serving MCC-MNC matches one of specified MCC-MNC value(s)

Location Area Code

The Location Area Code policy condition, as shown in the following image, triggers a policy that is only evaluated for one or more specified Location area code values (based on matching wildcard patterns).

Location area code mobility condition

A valid location area code is an integer between 0 and 65535.

Service Area Code

The Service Area Code policy condition, as shown in the following image, triggers a policy that is only evaluated for one or more specified Service area code values (based on matching wildcard patterns).

service area code mobility condition

A valid service area code is an integer between 0 and 65535.

Routing Area Code

The Routing Area Code policy condition, as shown in the following image, triggers a policy that is only evaluated for one or more specified Routing area code values (based on matching wildcard patterns).

routing area code mobility condition

Tracking Area Code

The Tracking Area Code policy condition, as shown in the following image, triggers a policy that is only evaluated for one or more specified Tracking area code values (based on matching wildcard patterns).

tracking area code mobility condition

E-UTRAN Cell Identifier

The E-UTRAN Cell Identifier policy condition, as shown in the following image, triggers a policy that is only evaluated for one or more specific E-UTRAN Cell Identifier values (based on matching wildcard patterns).

The screen capture shows a sample policy condition, where the E-UTRAN cell identifier matches one of the specified ECI values.

The values specified in the string block can be a comma-separated list of values, where each value is a wildcard match pattern that uses the * (asterisk) character to match zero or more characters and the ? (question mark) character to match exactly one character.

Cell Identifier

The Cell Identifier policy condition, as shown in the following image, triggers a policy that is only evaluated for one or more specific Cell Identifier values (based on matching wildcard patterns). A valid Cell Identifier is an integer between 0 and 65535.

The screen capture shows a sample policy condition, where the cell identifier matches one of the specified CI values.

The values specified in the string block can be a comma-separated list of values, where each value is a wildcard match pattern that uses the * (asterisk) character to match zero or more characters and the ? (question mark) character to match exactly one character.

3.10.8.2 Actions

This section describes the actions specific to Presence Reporting Area, which can be used to create and manage policies for PCRF Core service.

Remove/Install/Subscribe PRA change for PRA Area(s)

This policy action, as shown in the following image, subscribes the user equipment to PRA changes in the specified PRA. If default area is selected as the definition for the parameter pra, subscribes the user equipment to PRA changes in the last subscribedPRA.

Policy action to remove, install or subscribe PRA change for PRA areas

For PRA area, any of the following options can be selected:
  • predefined PRA list — select a defined PRA list
  • manual input — enter the identifier for the PRA in hexadecimal format or a custom PRA from a subscriber profile in the format {User.CustomField}.
  • default area - the last PRA to which the user equipment was subscribed

PRA Subscription

This policy action, as shown in the following image, enable or disable PRA subscriptions.

Enable or disable PRA subscription

3.10.9 Network Device Conditions

Network Device conditions are related to the specific network device for which the policy rule is being evaluated. This includes conditions based on the network device type, as well as those that refer to specific unique identifiers for network devices.

3.10.9.1 Conditions

This section provides information on conditions for Network Devices, available under PCRF Core service.

Enforcement network element type

The enforcement network element type policy condition, as shown in the following image, triggers a policy when enforcement network element type contains any, none or all the specified value of Device type.

Policy condition for enforcement network element type

The user can select any one of the following valid values from the Device type drop-down field:
  • PGW
  • GGSN

Enforcement network element name

The Enforcement network element name policy condition, as shown in the following image, triggers a policy when enforcement network element name block contains any, all or none of the specified one or more values in the string block.

Figure 3-78 Policy condition for enforcement network element name


Policy condition for enforcement network element name

identity of requesting network element

The identity of requesting network element block condition, as shown in the following image, triggers a policy when the identity of networking element, that is, ORIGIN_HOST AVP matches one of or does not match specified values or lists.

Identity of requesting network element condition

Note:

The wildcards * (asterisk) and ? (question mark) are allowed for entries in the match-list.

An-Gw Status

The An-Gw Status policy condition, as shown in the following image, triggers a policy based on whether the An-Gw status is active or inactive. It compares the An-Gw status selected from the drop-down field with An-Gw status read from JSON (which is sent from PCRF-Core to PRE). An-Gw Status Block

The user can select any one of the following valid values from the An-Gw Status drop-down field:
  • AN_GW_FAILED
  • AN_GW_ACTIVE

Note:

The AN_GW_FAILED value indicates that the AN-Gateway has failed and that the PCRF should refrain from sending policy decisions to the PCEF until it is informed that the AN-Gateway has been recovered. This value shall not be used if the IP-CAN Session Modification procedure is initiated for PCC rule removal only.

In place of the dropdown, a string block can also be used, as shown in the following image:An-Gw Policy Condition with string block

IP Address of the Serving Gateway

The IP address of the Serving Gateway policy condition, as shown in the following image, triggers a policy that is only evaluated for one or more specific Serving Gateway addresses (based on matching wildcard patterns).

The screen capture shows a sample policy condition, where the IP address of the serving gateway matches one of the specified values.

The Serving Gateway addresses in the string block can be a comma-separated list of values, where each value is a wildcard match pattern that uses the * (asterisk) character to match zero or more characters and ? (question mark) character to match exactly one character.

3.10.10 Priority/Emergency

This section describes the policy conditions and actions for multimedia priority support and emergency sessions.

3.10.10.1 Conditions

This section describes the conditions specific to multimedia priority support and emergency sessions.

Media component description reservation priority

This policy condition, as shown in the following image, selects Rx protocol messages based on the requested media component description reservation priority.Media component description reservation priority policy condition block

User can select any of the following valid values from the drop-down field:
  • DEFAULT
  • PRIORITY_ONE
  • PRIORITY_TWO
  • PRIORITY_THREE
  • PRIORITY_FOUR
  • PRIORITY_FIVE
  • PRIORITY_SIX
  • PRIORITY_SEVEN
  • PRIORITY_EIGHT
  • PRIORITY_NINE
  • PRIORITY_TEN
  • PRIORITY_ELEVEN
  • PRIORITY_TWELVE
  • PRIORITY_THIRTEEN
  • PRIORITY_FOURTEEN
  • PRIORITY_FIFTEEN

Media Type

Sets the value to one of the drop-down list options of Media Type:
  • AUDIO
  • DATA
  • VIDEO
  • TEXT
  • CONTROL
  • APPLICATION
  • MESSAGE
  • OTHERS

Figure 3-79 Media Type


Media Type blockly condition

AF Application Identifier

This policy condition indicates the particular service that the AF session belongs to. This AVP can be provided at both AF session level, and Media-Component-Descriptionlevel. When provided at both levels, the AF-Application Identifier provided within the Media-Component-Description AVP will have precedence.

Figure 3-80 AF Application Identifier


AF Application Identifier blockly condition

MCPTT Identifier

This policy condition indicates that the new AF session relates to an MCPTT session with priority call. If PCRF receives the MCPTT-Identifier AVP related to that MCPTT session, PCRF can take specific actions on the corresponding IP-CAN to ensure that the MCPTT session is prioritized.

Figure 3-81 MCPTT Identifier


MCPTT Identifier blockly condition

MCVideo-Identifier

This policy condition indicates that the new AF session relates toan MCVideo session with priority call. If PCRF receives the MCVideo-Identifier AVP related to that MCVideosession, PCRF can take specific actions on the corresponding IP-CAN to ensure that the MCVideo session isprioritized.

Figure 3-82 MCVideo Identifier


MCVideo Identifier blockly condition

Session reservation priority is

This policy condition, as shown in the following image, selects Rx protocol messages based on the requested session reservation priority.

session reservation priority policy condition

User can select any of the following valid values from the drop-down field:
  • DEFAULT
  • PRIORITY_ONE
  • PRIORITY_TWO
  • PRIORITY_THREE
  • PRIORITY_FOUR
  • PRIORITY_FIVE
  • PRIORITY_SIX
  • PRIORITY_SEVEN
  • PRIORITY_EIGHT
  • PRIORITY_NINE
  • PRIORITY_TEN
  • PRIORITY_ELEVEN
  • PRIORITY_TWELVE
  • PRIORITY_THIRTEEN
  • PRIORITY_FOURTEEN
  • PRIORITY_FIFTEEN

MPS identifier

The MPS identifier policy condition, as shown in the following image, determines the value of the MPS identifier.

MPS identifier policy condition

the Service-URN is one of specified value(s)

This policy condition, as shown in the following image, selects Rx protocol messages based on the value of the Service-URN field.

service-URN is one of specified values policy condition
3.10.10.2 Actions

This section describes the actions that can be performed to configure multimedia priority support and emergency sessions.

set GCS ARP to specified Priority Value with Preemption Capability and Preemption Vulnerability enabled

This policy action overrides the default ARP settings for eMPS or GCS ARP. The priority level defines the relative importance of a resource request. Enter a value from 1 to 15. The default is 1.

set ARP settings for eMPS or GCS ARP policy action

The Preemption Capability defines whether a service data flow can get resources that were assigned to another service data flow with a lower priority level. Select Enable (default) or Disable from the drop-down field.

The Preemption Vulnerability defines whether a service data flow can release the assigned resources so that a service data flow with a higher priority level can be admitted. Select Enable (default) or Disable from the drop-down field.

set DRMP AVP to specified priority in Re-Authorized Request

This policy action sets the priority level of the Diameter routing message priority (DRMP) AVP for Gx: RAR messages. Select one of the drmp-level values from the drop-down field, where PRIORITY_0 is the highest priority and PRIORITY_15 is the lowest priority.

set priority for DRMP AVP in Re-Authorized Request policy action

3.10.11 Roaming

This section describes the policy conditions that can be used to configure policies for roaming scenarios under PCRF Core service.

3.10.11.1 Conditions

This section describes the conditions categorized under Roaming for PCRF Core service.

User is Home

The User is Home policy condition, as shown in the following image, evaluates whether the user is a home user or a visitor.

User is Home policy condition

Current mobile country code

The Current mobile country code policy condition, as shown in the following image, retrieves the current mobile country code of the user from the request received by PRE.

current mobile country code policy condition

3.10.12 Rules/Flows

This section describes the conditions and actions that can be used to configure rules and flows to manage policies for PCRF Core service.

3.10.12.1 Conditions

This section describes the conditions that can be used to configure rules and flows to manage policies for PCRF Core service.

Rule report contains one of rule name(s) and the rule status is Active

This policy condition, as shown in the following image, triggers a policy when the rule report contains one of the specified rule name(s) and the rule status for the specified rule name is active. This policy condition is policy table compliant.

Rule report contains one of rule names policy condition

User can select any of the following valid rule status values from the drop-down field:
  • ACTIVE
  • INACTIVE
  • TEMPORARILY_INACTIVE

Rule report contains one of rule name(s) and the rule status is Active and the Final Unit Action is one of specified failure code(s)

This policy condition, as shown in the following image, triggers a policy when the rule report contains one of the specified rule name(s) that is active, and has final unit action as one of the specified values. In place of active rule names, the policy condition can evaluate policy for inactive or temporarily inactive rule names as well.

Rule Report Failure Code

Instead of Final Unit Action, user can select Rule Failure Code and specify values for policy evaluation.

This policy condition is policy table compliant.

Flow type

The flow type policy condition, as shown in the following image, triggers a policy that is only evaluated for a specific flow type.

Flow type policy condition

Select any of the following valid values using the Flow type drop-down field:
  • UE_FLOW (default)
  • AF_FLOW
  • PCC_RULE_FLOW
  • ENF_APP_FLOW

Flow request type

The flow request type policy condition, as shown in the following image, triggers a policy that is only evaluated for a specific flow request type.

Flow request type policy condition
Select any of the following valid values using the Flow request type drop-down field:
  • TYPE_NOCHANGE (default)
  • TYPE_CREATE
  • TYPE_MODIFY
  • TYPE_DELETE
  • TYPE_PROVISION

the name(s) of the installed PCC/ADC rules contains one of specified PCC/ADC rules

This policy condition, as shown in the following image, triggers a policy when the installed PCC or ADC rules contains one of the specified PCC or ADC rules.

Installed PCC and ADC Rules policy condition

3.10.12.2 Actions

This section describes the policy actions that can be applied to configure rules and flows for PCRF Core service.

Apply QoS and Charging Parameter Values

The following policy action can be used to apply the QoS and charging parameter values for a particular session flow:

Policy action to set QoS and charging parameters for a particular flow

Use Case

The following is a sample policy rule to apply QoS and charging parameters to all the session flows:Policy rule to apply QoS and charging parameters to all flows

The following is a sample policy rule to apply QoS and charging parameters on a particular session flow:Policy rule to apply QoS and charging parameters on a specific flow

Apply Traffic Profile to All flows in the request with FlowInfo

This policy action, as shown in the following image, applies one or more traffic profiles to all flows or a specific flow with FlowInfo. It overwrites the corresponding settings in the protocol messages of the specified flows. If multiple traffic profiles are selected, they are applied in the order in which they are specified. If a traffic profile contains settings that are not relevant in the current protocol message, they are ignored. This policy condition is Policy Table compliant.

Apply traffic profile to flows with FlowInfo policy action

remove PCC rule for the specified flow

This policy action, as shown in the following image, removes the policy and charging control role from the current flow. Users can select either ENF_APP_FLOW or UE_FLOW from the drop-down list.

Remove PCC rules for the specified flow policy action

Install PCC Rules for specified scope

This policy action, as shown in the following image, installs or removes specified list of PCC Rules for a defined scope.

Install PCC Rules for specified scope

Users can select any one of the following valid drop-down values from the scope field:
  • SCOPE_SESSION
  • SCOPE_FLOW
  • SCOPE_ALL

Install PCC Rule with specified Active and Inactive time

The following policy action allows users to install PCC Rules for a specified time duration.

Install PCC Rule with specified Active and Inactive time policy action

This policy action is Policy Table compliant and can be combined with the Use Policy Table condition block, as shown in the following image:

Install PCC Rules with Policy Table policy action
When the user selects the Active Between check box, the following scenarios are possible:
  • Start time only - PCC rule becomes active at the specified time with a null value for the end time.

    Note:

    To install a rule at the current system time, users are recommended to not use any block to specify the Start Time. Instead, leave the Start Time empty and the Rule-Activation-Time gets installed at the current system time in CCA.
  • End time only - PCC rule takes current time as start time and gets inactive at the specified time.
  • Both Start time and End time - PCC rule remains active between the specified duration.
The following time formats can be used to specify a time frame:
  • Date and time block
  • Relative Time
  • now
  • YYYY-MM-DDThh:mm:ss+UTCoffset

When the Active Between check box is deselected, the PCC rule is installed and becomes active (taking current time as default) with no end time.

Install PCC rules with no time specified policy action

Use Case

The following screenshot shows a sample policy that installs pccRule2 and sets values for Rule-Activation-Time and Rule-Deactivation-Time as Sat Jun 19 16:03:07 UTC 2021 and Fri Aug 20 02:04:54 UTC 2021 respectively.

The installed pccRule2 remains active from specified start time to end time. It also sets the Revalidation-Time, which is same as the Rule-Deactivation-Time.

Use case for Install PCC Rule with active and inactive time policy action

Remove all ADC rules

This policy action, as shown in the following image, removes all the ADC rules from the current flow. Users can select the session scope using the dropdown.


Remove all ADC Rules

Remove ADC rule for the specified flow

This policy action, as shown in the following image, removes the specified ADC rule from the current flow. Users can select the ADC Rule ID using the dropdown.


Remove Specified ADC Rule

Install ADC Rule with specified Active and Inactive time

The following policy action allows users to install ADC Rules for a specified time duration.


Install ADC Rule with specified Active and Inactive time

When the user selects the Active Between check box, the following scenarios are possible:
  • Start time only - ADC rule becomes active at the specified time with a null value for the end time.
  • End time only - ADC rule takes current time as start time and gets inactive at the specified time.
  • Both Start time and End time - ADC rule remains active between the specified duration.

When the Active Between check box is deselected, the ADC rule is installed and becomes active (taking current time as default) with no end time.


Install ADC rules with no time specified policy action

Set values for Charging Server parameters

The following policy action can be used to set values for online or offline charging servers:

policy action to set values for charging servers

The block allows you to select the following Charging Servers:
  • Primary Online
  • Secondary Online
  • Primary Offline
  • Secondary Offline

The Charging Server blocks are Policy Table compliant.

The following is a use case to configure Charging Server using the Policy Table block:

The following screen capture illustrates a charging server Policy Table configured on Policy GUI:

A charging server Policy Table on Policy GUI
The Policy Table can be used in the Charging Server block as follows:
Usecase to select Charging server configurations from Policy Table

In the above example, the charging server Policy Table is already configured. You can select the particular row from the Policy Table. For more information, see Policy Table.

Add or override Conditional Policy Information with Execution-Time and specified parameters

The following policy action allows users to add a new Conditional-Policy-Information AVP with specified parameter values to the existing list of Conditional-Policy-Information AVPs. By selecting override value, user can replace an existing list of Conditional-Policy-Information AVPs.

Add Conditional Policy Information with Execution-Time

Any of the following time formats can be used to specify time of execution:
  • Date and time block
  • Relative Time
  • now (the local date and time)
  • Date and time in the format: YYYY-MM-DDThh:mm:ss+UTCoffset
For parameters, select any of the following from the drop-down menu and provide appropriate values:
  • Diameter APN-Aggregate-Max-Bitrate-UL
  • Diameter APN-Aggregate-Max-Bitrate-DL
  • Diameter Default EPS Bearer QCI
  • Diameter Default EPS Bearer ARP Priority Level
  • Diameter Default EPS Bearer ARP Preemption Capability
  • Diameter Default EPS Bearer ARP Preemption Vulnerability

Remove PCC Rules for a Defined Scope

This policy action removes the specified PCC rule for a defined scope as shown in the following image:

An illustration of Remove field.

The user can select one of the following items from the Remove drop-down list:
  • ALL
  • DYNAMIC
  • PRE_DEFINED
  • PRE_DEFINED_BASE
Moreover, the user can select one of the following values from the PCC Rules for scope drop-down list to remove the PCC rule:
  • SCOPE_SESSION
  • SCOPE_FLOW
  • SCOPE_ALL

An illustration for removing PCC rule when scope is specified

Use case: The following image shows a sample policy when Dynamic is set for Remove field and SCOPE_ALL is set for PCC Rules for scope field:

An illustration of use case for removing PCC rule for scope

The return-CCA must include:

Charging-Rule-Remove (1002,VM,v=10415,l=32) = Charging-Rule-Name (1005,VM,v=10415,l=20) = pccRule1

Use case: The following image shows a sample policy when ALL is selected for the Remove field and PCC Rules for scope is set to SCOPE_ALL:

An illustration of use case for removing PCC rules for scope

The return-CCA must include:

Charging-Rule-Remove (1002,VM,v=10415,l=84) = Charging-Rule-Name (1005,VM,v=10415,l=20) = pccRule1 Charging-Rule-Name (1005,VM,v=10415,l=24) = predPccRule1 Charging-Rule-Base-Name (1004,VM,v=10415,l=28) = predPccRuleBase1

3.11 Context Menu Options for All Blocks

The following table provides details about the context menu options for all the blocks:

Table 3-12 Context Menu Options

Menu Options Description
Duplicate Creates a copy of this block.
Add Comment Insert comments into the block.
Collapse Block Compresses the elements within the block.
Disable Block Deactivates or disables the block.
Delete Block Removes the block.
Help Opens Google Blockly webpage.