4. Radiator PCRF configuration

The PCRF support in Radiator uses multiple clauses. The main processing is done by <AuthBy DiaPCRF> which uses separate modules for Diameter Gx request processing, Rx request processing, accessing SPR (Subscriber Profile Repository) and Rx and Gx session information.

4.1. <AuthBy DiaPCRF>

A DiaPCRF clause defines PCRF which handles Diameter Gx requests originated by a PCEF running on a GGSN (Gateway GPRS Support Node), PDN GW (Packet Data Network Gateway), or other gateway.
The PCRF in Radiator has been designed to be modular and uses a number of modules to process the Diameter Gx and Rx messages, fetch and update information in the SPR, store Gx and Rx session information. These modules are configured with separate clauses and referenced by their identifier from <AuthBy DiaPCRF> clause.
A number of hooks are defined to customise the action when, for example, usage monitoring thresholds are reached, quota runs out or quota is used for the first time. The operators are encouraged to develop their own functions and Perl modules to handle the different events.

4.1.1. PCRFGx

The Identifier of <PCRFGx> clause to use for processing Diameter Gx messages. PCRFGx module is required to read information from Gx requests and add information to Gx answers. This allows separating the PCRF policy decisions from Diameter messages details.

4.1.2. PCRFRx

The Identifier of <PCRFRx> clause to use for processing Diameter Rx messages. PCRFRx module is required to read information from Rx requests and add information to Rx answers. This allows separating the PCRF policy decisions from Diameter messages details.

4.1.3. PCRFSPR

The Identifier of clause that defines a SPR. For example, the SQL based SPR shipped with Radiator policy and charging support modules is configured with <PCRFSPRSQL> clause.
The SPR clause must implement the interface defined by the PCRFSPRGeneric.pm module. The backend is not limited to SQL but can be LDAP (Lightweight Directory Access Protocol) or any repository that can hold subscriber information

4.1.4. PCRFGxSession

The Identifier of clause that defines a Gx session repository. For example, the SQL based GxSession module shipped with Radiator policy and charging support modules is configured with <PCRFGxSessionSQL> clause.
The GxSession clause must implement the interface defined by the PCRFGxSessionGeneric.pm module. The backend is not limited to SQL but should use a a backend that supports frequent creation and updating of session data.

4.1.5. PCRFRxSession

The Identifier of clause that defines a Rx session repository. For example, the SQL based RxSession module shipped with Radiator policy and charging support modules is configured with <PCRFRxSessionSQL> clause.
The RxSession clause must implement the interface defined by the PCRFRxSessionGeneric.pm module. The backend is not limited to SQL but should use a a backend that supports frequent creation and updating of session data

4.1.6. GxSUBIdTypes

Subscription-Id-Type values to consider when looking up subscribers from Gx INITIAL_REQUEST messages. Defaults to IMSI (International mobile subscriber identity) which will work for EAP-SIM and EAP-AKA based authentication. If, for example, PEAP (Protected Extensible Authentication Protocol) is used for authentication, PCEF may use NAI (Network Access Identifier) as the subscription id where NAI is the PEAP user name.

Example

# Support EAP-SIM, EAP-AKA, EAP-AKA’ and PEAP based auth
GxSubIdTypes IMSI, NAI

4.1.7. SupportedGxFeatures

The default value for Gx Supported-Features is Rel11. You can set the value of Supported-Features as required with the SupportedGxFeatures option. The value is a comma-separated list of feature names.

Example

# We support Rel10 + Application Detection and Control
SupportedGxFeatures Rel10,ADC

4.1.8. SupportedRxFeatures

The default value for Rx Supported-Features is Rel10. You can set the value of Supported-Features as required with the SupportedRxFeatures option. The value is a comma-separated list of feature names.

Example

# We support Rel10 + UE address and mask in filters
SupportedRxFeatures Rel10,ExtendedFilter

4.1.9. DefaultOctets

Number of octets to allocate when requested by PCEF. Defaults to 50 000 000.

Example

# Use a really small value for testing
DefaultOctets 200

4.1.10. MinOctets

Minimum number of octets to allocate when there is less than DefaultOctets left. Defaults to 500 000.

Example

# Allow very small allocations
MinOctets 100

4.1.11. DefaultTime

Default time allocation when usage monitoring is enabled. Defaults to 600 seconds.

Example

# Allocate 20 minutes by default
DefaultTime 1200

4.1.12. MinTime

The minimum number of seconds to return when the usage monitoring quota is starting the reach the limit. Defaults to 10 seconds.

Example

# Use 15 seconds as the smallest available time
MinTime 15

4.1.13. EventTriggers

Comma-separated list of Event-Trigger attributes to return with CCA (Credit-Control Application). There is no default and the returned triggers depend on, for example, if usage monitoring is enabled. When usage monitoring is enabled, it will automatically return the appropriate trigger.

Example

# We want to know about OCS credit situation
EventTriggers OUT_OF_CREDIT,REALLOCATION_OF_CREDIT

4.1.14. EventTriggerHook

This hook will be called when CCR (Credit-Control-Request) contains Event-Trigger attributes. This allows, for example, activating or deactivating predefined PCC (Policy and Charging Control) rules in the PCEF with the CCA.
This hook is not defined by default.
The following arguments are passed to the hook in the following order:
  • Reference to this AuthBy
  • Reference to the current PCRFmsg
  • Array of event trigger names

4.1.15. UsageMonitorInitHook

This hook will be called when the subscriber's quota is initialised to the value defined in the SPR data plan. The quota is initialised typically when during the first use or subsequently when the remaining quota is initialised by provisioning system or for some other external reason.
The default hook will log the event, but you may change the hook to call send SMS, call an external process or do any other action.
The following arguments are passed to the hook in the following order:
  • Reference to this AuthBy
  • Reference to the current PCRFmsg
  • Number of octets in the initial quota

4.1.16. ThresholdHook

This hook will be called when the subscriber's quota reaches one or more threshold percentages defined in the subscriber's data plan.
The default hook will log the event, but you may change the hook to call send SMS, call an external process or do any other action.
Note
If multiple thresholds are reached during the quota allocation, the ThresholdHook will be called once for each threshold. The order of calls depends on the order the thresholds are defined in the SPR.
The following arguments are passed to the hook in the following order:
  • Reference to this AuthBy
  • Reference to the current PCRFmsg
  • Threshold percentage that was reached
  • Quota percentage before allocation but after unused bytes from previous allocation have been credited
  • Quota percentage after allocation

4.1.17. MinUnitsHook

This hook will be called when the quota available for allocation for a subscriber reaches the minimum allocation as defined by the MinOctets or MinOctets configuration parameter. Quota available for allocation is defined as the remaining quota minus the sum of all outstanding allocations. The quota type (octets or time), remaining quota and sum of outstanding allocations are passed to the hook as parameters.
The default hook will log the event and set the Result-Code attribute to DIAMETER_- CREDIT_LIMIT_REACHED effectively terminating the session. You may change the hook to call send SMS, call an external process or do any other action.
The following arguments are passed to the hook in the following order:
  • Reference to this AuthBy
  • Reference to the current PCRFmsg
  • Quota type as string: 'time' or 'octets'
  • Remaining quota in bytes
  • Outstanding allocated quota in bytes

4.1.18. RxSIPServiceIdentifier

RxSIPServiceIdentifier defines the Service-Identifier for Gx PCC rules installed in PCEF for AF (Application Function) SIP (Session Initiation Protocol) flows. There is no default.

Example

RxSIPServiceIdentifier 200

4.1.19. RxSIPRatingGroup

RxSIPRatingGroup defines the Rating-Group for Gx PCC rules installed in PCEF for AF SIP flows. There is no default.

Example

RxSIPRatingGroup 14

4.1.20. RxSIPReportingLevel

RxSIPReportingLevel defines on what level PCEF reports the usage for Gx PCC rule installed for AF SIP flow. There is no default.

Example

RxSIPReportingLevel SERVICE_IDENTIFIER_LEVEL

4.1.21. RxSIPOnline and RxSIPOffline

RxSIPOnline and RxSIPOffline enable or disable PCEF online and offline charging interfaces for Gx PCC rules installed for AF SIP flows. There is no default.

Example

RxSIPOnline DISABLE_ONLINE
RxSIPOffline ENABLE_OFFLINE

4.1.22. RxSIPMeteringMethod

RxSIPMeteringMethod controls PCEF online and offline charging. Possible value is one of: DURATION, VOLUME and DURATION_VOLUME. There is no default.

Example

RxSIPMeteringMethod DURATION

4.1.23. RxSIPPriorityLevel

RxSIPPriorityLevel sets the Priority-Level attribute value in Allocation-Retention-Priority attribute for PCC rules installed for AF SIP flows. If 0 or unset, no AllocationRetention-Priority is added in PCC rules. Otherwise Allocation-Retention-Priority is added with Pre-emption-Capability and -Vulnerability set to PRE-EMPTION_CAPABILITY_ENABLED and PRE-EMPTION_VULNERABILITY_DISABLED, respectively. There is no default.

Example

RxSIPPriorityLevel 8

4.2. <PCRFGx>

PCRFGx module processes incoming Diameter Gx messages and adds any attributes required by SPR PCC rules, usage monitoring and other processing done by PCRF.
The other modules used by <Auth DiaPCRF> do not directly use Diameter Gx messages.

4.2.1. Identifier

This optional parameter allows you to assign a symbolic name which is used by <AuthBy DiaPCRF> clause PCRFGx parameter.

4.3. <PCRFRx>

PCRFRx module processes incoming Diameter Rx messages and adds any attributes required by processing done by PCRF.
The other modules used by <Auth DiaPCRF> do not directly use Diameter Rx messages.

4.3.1. Identifier

This optional parameter allows you to assign a symbolic name which is used by <AuthBy DiaPCRF> clause PCRFRx parameter.

4.4. <PCRFSPRSQL>

The SPR that is shipped with Radiator policy and charging support uses SQL for storing the subscriber information.
<PCRFSPRSQL> implements the interface defined by PCRFSPRGeneric.pm which allows creating customised SPR that uses, for example, LDAP as the user repository

4.4.1. Identifier

This optional parameter allows you to assign a symbolic name which is used by <AuthBy DiaPCRF> SPR parameter.

4.4.2. SubscriberSelectE164

Defines the SQL statement that is called to find and fetch subscriber information based on the end user's E.164.

4.4.3. SubscriberSelectIMSI

Defines the SQL statement that is called to find and fetch subscriber information based on the end user's IMSI.

4.4.4. SubscriberSelectSIP_URI

Defines the SQL statement that is called to find and fetch subscriber information based on the end user's SIP URI.

4.4.5. SubscriberSelectNAI

Defines the SQL statement that is called to find and fetch subscriber information based on the end user's NAI.

4.4.6. SubscriberSelectPRIVATE

Defines the SQL statement that is called to find and fetch subscriber information based on the end user's private identifier.

4.4.7. SubscriberSelectById

Defines the SQL statement that is called to find and fetch subscriber information based on the end user's ID in the subscriber table. Used for example, when the ID is stored in the GxSession repository.

4.4.8. SubscriberSelectParam

This parameter specifies the bind variables to be used with all SubscriberSelect* statements. %0 is replaced by end user's E.164, IMSI, SIP URI (Uniform Resource Identifier), NAI, or ID based on which type of identity is used to lookup the subscriber.

4.4.9. SubscriberColumnDef

This optional parameter allows you to define the way Radiator interprets the result of the SubscriberSelect* statements.
You can specify any number of SusbscriberColumnDef parameters, one for each interesting field returned by SubscriberColumnSelect. The general format is:
SubscriberColumnDef n, dataitem
  • n is the index of the field in the result of SubscriberSelect. 0 is the first field.
  • dataitem is the name of a entry in the subscriber information.
The subscriber information entries required by the modules shipped with Radiator policy and charging support use the following information:

Table 1. Subscriber information fetched from the SPR

Name Description
id Index or other identifier that uniquely identifies the subscription in the SPR
e164 E.164 formatted telephone number for the user
imsi IMSI for the user
nai NAI for the user
sip_uri SIP_URI for the user
private Private identifier for the user
enabled Value the evaluates as true in Perl means the subscription is enabled
pcc_rules Comma separated list of names from pcc_rules table
qos_information Name of one entry in qos_information table
wlan_max_sess Non-NULL if session count should be limited for RAT-Type WLAN
wlan_curr_sess Current count of WLAN sessions
usage_tracking Name of one entry in usage tracking table
quota_octets Remaining default octet quota. Used when PCRF usage monitoring is enabled
all_reservations_octets Total default octet quota reserved for sessions. Used when PCRF usage monitoring is enabled
lte_quota_octets Non-NULL if usage monitoring it done for LTE. Currently RAT-types UTRAN, GERAN, GAN HSPA-Evolution and EUTRAN and the unknown RAT-Type are considered as LTE for octet usage monitoring purposes
lte_all_reservations_octets Total octet quota reserved for LTE sessions. Used when PCRF usage monitoring is enabled for LTE octets
wlan_quota_octets Non-NULL if usage monitoring it done for RAT-Type WLAN octets
wlan_all_reservations_octets Total WLAN octet quota reserved for sessions. Used when PCRF usage monitoring is enabled for WLAN octets
wlan_quota_time Non-NULL if usage monitoring is done for RAT-Type WLAN time
wlan_all_reservations_time Total WLAN time quota reserved for sessions. Used when PCRF usage monitoring is enabled for WLAN time

4.4.10. UpdateSubscriberQuery

Defines the SQL statement to update usage monitoring and related information for a subscriber. This is typically done after a request is received over Gx.

4.4.11. UpdateSubscriberQueryParam

This parameter specifies the bind variables to be used with UpdateSubscriberQuery. %0 is replaced by the id retrieved with SubscriberSelect. The other replacements are:
  • %1 adjustment in RAT-Type WLAN session count
  • %2 change in default octet quota
  • %3 change in default octet quota reserved across all sessions
  • %4 change in octet quota for RAT-Type LTE
  • %5 change in all octet reservations for RAT-Type LTE
  • %6 change in octet quota for RAT-Type WLAN
  • %7 change in all octet reservations for RAT-Type WLAN
  • %8 change in time quota for RAT-Type WLAN
  • %9 change in all time reservations RAT-Type WLAN

4.4.12. PCCRuleSelect

Defines the SQL statement to find and fetch the preconfigured PCC rule sets from the SPR.

4.4.13. PCCRuleSelectParam

This parameter specifies the bind variables to be used with PCCRuleSelect.

4.4.14. PCCRuleColumnDef

This optional parameter allows you to define the way Radiator interprets the result of the PCCRuleSelect statement.
You can specify any number of PCCRuleColumnDef parameters, one for each interesting field returned by PCCRuleSelect. The general format is:
PCCRuleColumnDef n, dataitem
  • n is the index of the field in the result of PCCRuleSelect. 0 is the first field
  • dataitem is the name of a entry in the PCC rule information
The subscriber information entries required by the modules shipped with Radiator policy and charging support use the following information:

Table 2. PCC rule information fetched from the SPR

Name Description
id Index or other identifier that uniquely identifies this PCC rule set in the SPR
name Free form description of this rule set for humans. Not used with Gx protocol
rule_names Comma separated list of names of rules predefined in the PCEF to activate
rule_basenames Comma separated list of names of rule groups predefined in the PCEF to activate
dyn_rule_names Comma separated list of names in dynamic_rules table
activation_time Activation-Time for this Charging-Rule-Install in Diameter Time format
deactivation_time Deactivation-Time for this Charging-Rule-Install in Diameter Time format

4.4.15. DynRuleSelect

Defines the SQL statement to find and fetch the dynamic PCC rule information from the SPR. The information is used to fill in Charging-Rule-Definition AVP (Attribute-Value Pair)s where each table row describes one AVP.

4.4.16. DynRuleSelectParam

This parameter specifies the bind variables to be used with DynRuleSelect.

4.4.17. DynRuleColumnDef

This optional parameter allows you to define the way Radiator interprets the result of the DynRuleSelect statement.
You can specify any number of DynRuleColumnDef parameters, one for each interesting field returned by DynRuleSelect. The general format is:
DynRuleColumnDef n, dataitem
  • n is the index of the field in the result of DynRuleSelect. 0 is the first field.
  • dataitem is the name of a entry in the dynamic rule information
The subscriber information entries required by the modules shipped with Radiator policy and charging support use the following information:

Table 3. Dynamic PCC rule information fetched from the SPR

Name Description
id Index or other identifier that uniquely identifies this dynamic PCC rule in the SPR
name Free form description of this dynamic rule for humans. Not used with Gx protocol
rule_name Charging-Rule-Name for this rule
tdf_application_id TDF-Application-Identifier AVP value
flow_information Comma separated list of names in flow_information table
qos_information Name of entry in qos_information table
online Value for Online, for example DISABLE_ONLINE
offline Value for Offline, for example ENABLE_OFFLINE
precedence Precedence AVP value

4.4.18. FlowInfoSelect

Defines the SQL statement to find and fetch flow information from the SPR for dynamic PCC rules. The information is used to fill in Flow-Information AVPs where each table row describes one AVP.

4.4.19. FlowInfoSelectParam

This parameter specifies the bind variables to be used with FlowInfoSelect.

4.4.20. FlowInfoColumnDef

This optional parameter allows you to define the way Radiator interprets the result of the FlowInfoSelect statement.
You can specify any number of FlowInfoColumnDef parameters, one for each interesting field returned by FlowInfoSelect. The general format is:
FlowInfoColumnDef n, dataitem
  • n is the index of the field in the result of FlowInfoSelect. 0 is the first field.
  • dataitem is the name of a entry in the dynamic rule information
The subscriber information entries required by the modules shipped with Radiator policy and charging support use the following information:

Table 4. Flow information fetched from the SPR

Name Description
id Index or other identifier that uniquely identifies this dynamic PCC rule in the SPR
name Free form description of this flow for humans. Not used with Gx protocol
description IPFilter rule, see Rx spec, 29.214 5.4.2
packet_filter_usage P Packet-Filter-Usage: SEND_TO_UE if defined
tos_traffic_class ToS-Traffic-Class
spi_index Security-Parameter-Index
flow_label IPv6 header flow label
flow_direction Values for Flow-Direction, for example, BIDIRECTIONAL

4.4.21. QoSInfoSelect

Defines the SQL statement to find and fetch the subscribers QoS information based on the subscriber information.

4.4.22. QoSInfoSelectParam

This parameter specifies the bind variables to be used with QoSInfoSelect.

4.4.23. QoSInfoColumnDef

This optional parameter allows you to define the way Radiator interprets the result of the QoSInfoSelect statement.
You can specify any number of QoSInfoColumnDef parameters, one for each interesting field returned by QoSInfoSelect. The general format is:
QoSInfoColumnDef n, dataitem
  • n is the index of the field in the result of QosInfoSelect. 0 is the first field.
  • dataitem is the name of a entry in the QoS information
The subscriber information entries required by the modules shipped with Radiator policy and charging support use the following information:

Table 5. QoS information fetched from the SPR

Name Description
id Index or other identifier that uniquely identifies this PCC rule set in the SPR
name Free form description of this rule set for humans. Not used with Gx protocol
qos_class_id Value for QoS-Class-Identifier attribute in the Gx answer
max_requested_bw_ul Value for Max_Requested-BW-UL attribute in the Gx answer
max_requested_bw_dl Value for Max_Requested-BW-DL attribute in the Gx answer
guaranteed_bitrate_ul Value for Guaranteed-Bitrate-UL attribute in the Gx answer
guaranteed_bitrate_dl Value for Guaranteed-Bitrate-DL attribute in the Gx answer
alloc_retention_priority Value for Priority-Level in Allocation-Retention-Priority in the Gx answer
apn_agg_max_bitrate_ul Value for APN-Aggregate-Max-Bitrate-UL in the Gx answer
apn_agg_max_bitrate_dl Value for APN-Aggregate-Max-Bitrate-DL in the Gx answer

4.4.24. DataPlanSelect

Defines the SQL statement to find and fetch subscriber's data plan information based on the subscriber information.

4.4.25. DataPlanSelectParam

This parameter specifies the bind variables to be used with DataPlanSelect. %0 is replaced by the data plan identifier from the subscriber's usage tracking information.

4.4.26. DataPlanColumnDef

This optional parameter allows you to define the way Radiator interprets the result of the DataPlanSelect statement.
You can specify any number of DataPlanColumnDef parameters, one for each interesting field returned by DataPlanSelect. The general format is:
DataPlanColumnDef n, dataitem
  • n is the index of the field in the result of DataPlanSelect. 0 is the first field.
  • dataitem is the name of a entry in the data plan information
The subscriber information entries required by the modules shipped with Radiator policy and charging support use the following information:

Table 6. Data plan information fetched from the SPR

Name Description
id Index or other identifier that uniquely identifies this data plan in the SPR
name Free form description of this data plan for humans. Not used with Gx protocol.
octets Size of data plan in octets. Value is in octets, for example 1000000000 for 1*10^9 octets
default_octets Default octets to allocate. Set to NULL to use DefaultOctets configuration parameter
min_octets Minimum octets to allocate. Set to NULL to use MinOctets configuration parameter
time Size of data plan in seconds
default_time Default octets to allocate. Set to NULL to use DefaultTime configuration parameter
min_time Minimum time to allocate. Set to NULL to use MinTime configuration parameter
thresholds List of comma separated threshold percentages. For example, 75,50,25,0. When one or more threshold values are reached, ThresholdHook is called once for each value.

4.4.27. UsageSelect

Defines the SQL statement to find and fetch information about the user related to usage monitoring, online and off line charging.

4.4.28. UsageSelectParam

This parameter specifies the bind variables to be used with UsageSelect. %0 is replaced by the subscriber ID.

4.4.29. UsageColumnDef

This optional parameter allows you to define the way Radiator interprets the result of the UsageSelect statement.
You can specify any number of UsageColumnDef parameters, one for each interesting field returned by UsageSelect. The general format is:
UsageColumnDef n, dataitem
  • n is the index of the field in the result of UsageSelect. 0 is the first field.
  • dataitem is the name of a entry in the subscriber information
The usage tracking information entries required by the modules shipped with Radiator policy and charging support use the following information:

Table 7. Usage tracking information fetched from the SPR

Name Description
id Index or other identifier that uniquely identifies a single row in the SPR
name Index of subscriber information table for the current subscriber
monitoring_enabled Value the evaluates as true in Perl means usage monitoring is enabled
data_plan Index or other identifier to Data plan, see DataPlanSelect for the details
online Value for Online, for example DISABLE_ONLINE
offline Value for Offline, for example ENABLE_OFFLINE
online_primary Diameter URI for the primary online charging server
online_secondary Diameter URI for the secondary online charging server
offline_primary Diameter URI for the primary offline charging server
offline_secondary Diameter URI for the secondary offline charging server

4.5. <PCRFGxSessionSQL>

<PCRFGxSessionSQL> stores information about subscribers' Gx sessions in SQL. The Gx session table has one row for each active session. By default session information is kept after the session is finished providing history information about all Gx sessions.
<PCRFGxSessionSQL> implements the interface defined by PCRFGxSessionGeneric.pm which allows creating customised Gx session repositories.

4.5.1. Identifier

This optional parameter allows you to assign a symbolic name which is used by <AuthBy DiaPCRF PCRFGxSession> parameter.

4.5.2. AddSessionQuery

Defines the SQL statement to add a new session after Gx INITIAL_REQUEST is received.

4.5.3. AddSessionQueryParam

This parameter specifies the bind variables to be used with AddSessionQuery. The values for %0 - %12 come from the incoming Gx message attributes and quota reserved for the new session.

4.5.4. UpdateSessionQuery

Defines the SQL statement to update a session after Gx UPDATE_REQUEST reporting used octets is received.

4.5.5. UpdateSessionQueryParam

This parameter specifies the bind variables to be used with UpdateSessionQuery. %0 is replaced by the session ID fetched with GetSessionSelect. The other replacements are:
  • %1 change in reserved octet quota for this session
  • %2 change in reserved time quota for this session

4.5.6. CloseSessionQuery

Defines the SQL statement to call after Gx TERMINATION_REQUEST is received.

4.5.7. CloseSessionQueryParam

This parameter specifies the bind variables to be used with CloseSessionQuery. %0 is replaced by the session id fetched with GetSessionSelect.

4.5.8. GetSessionSelect

Defines the SQL statement to find and fetch information about a Gx session.

4.5.9. GetSessionSelectParam

This parameter specifies the bind variables to be used with GetSessionSelect. %0 is replaced by the Diameter Session-Id attribute value.

4.5.10. GetSessionColumnDef

This optional parameter allows you to define the way Radiator interprets the result of the GetSessionSelect statement.
You can specify any number of GetSessionColumnDef parameters, one for each interesting field returned by GetSessionSelect. The general format is:
GetSessionColumnDef n, dataitem
  • n is the index of the field in the result of GetSessionSelect. 0 is the first field.
  • dataitem is the name of a entry in the subscriber information
The Gx session information entries required by the modules shipped with Radiator policy and charging support use the following information:

Table 8. Session information fetched from the GxSession

Name Description
id Index or other identifier that uniquely identifies this session in this table
start_time Unix timestamp of the session start
alive_time Unix timestamp of the last update for this session
stop_time Unix timestamp of the session end
subscription_id Index of subscriber information table for this subscriber
session_id Session-Id for this Gx session
imsi IMSI for the subscriber
nai NAI for the subscriber
e164 E.164 formatted telephone number for the subscriber
sip_uri SIP URI for the subscriber
origin_host Origin-Host value for this Rx session
origin_realm Origin-Realm value for this Rx session
framed_ip_address Framed-IP-Address for this Rx session
framed_ip_address Framed-IPv6-Prefix for this Rx session
rat_type RAT-Type value for this Gx session
reserved_octets Number of octets currently allocated for this session
reserved_time Number of seconds currently allocated for this session

4.5.11. GetSubscriberSessionsSelect

Defines the SQL statement to find and fetch information about multiple Gx sessions. Uses GetSessionColumnDef parameters. For this reason the query must return same values as GetSessionSelect. %0 is the subscriber ID fetched from the SPR.

4.5.12. GetSubscriberSessionsSelectParam

This parameter specifies the bind variables to be used with GetSubscriberSessionsSelect. %0 is replaced by the subscriber ID fetched from the SPR.

4.6. <PCRFRxSessionSQL>

<PCRFRxSessionSQL> stores information about subscribers’ Rx sessions in SQL. The Rx session table has one row for each active session. By default session information is kept after the session is finished providing history information about all Rx sessions.
<PCRFRxSessionSQL> implements the interface defined by PCRFRxSessionGeneric.pm which allows creating customised Gx session repositories.

4.6.1. Identifier

This optional parameter allows you to assign a symbolic name which is used by <AuthBy DiaPCRF PCRFRxSession> parameter.

4.6.2. AddSessionQuery

Defines the SQL statement to add a new session after the first AAR (AA Request) for the session is received.

4.6.3. AddSessionQueryParam

This parameter specifies the bind variables to be used with AddSessionQuery. The values for %0 - %7 come from the incoming Rx message attributes.

4.6.4. UpdateSessionQuery

Defines the SQL statement to update a session when a Rx AAR update for an ongoing session is received.

4.6.5. UpdateSessionQueryParam

This parameter specifies the bind variables to be used with UpdateSessionQuery. %0 is replaced by the session ID fetched with GetSessionSelect.

4.6.6. CloseSessionQuery

Defines the SQL statement to call after Rx STR (Session-Termination-Request) is received

4.6.7. CloseSessionQueryParam

This parameter specifies the bind variables to be used with CloseSessionQuery. %0 is replaced by the session id fetched with GetSessionSelect.

4.6.8. GetSessionSelect

Defines the SQL statement to find and fetch information about a Rx session.

4.6.9. GetSessionSelectParam

This parameter specifies the bind variables to be used with GetSessionSelect. %0 is replaced by the Diameter Session-Id attribute value.

4.6.10. GetSessionColumnDef

This optional parameter allows you to define the way Radiator interprets the result of the GetSessionSelect statement.
You can specify any number of GetSessionColumnDef parameters, one for each interesting field returned by GetSessionSelect. The general format is:
GetSessionColumnDef n, dataitem
  • n is the index of the field in the result of GetSessionSelect. 0 is the first field
  • dataitem is the name of a entry in the subscriber information
The Rx session information entries required by the modules shipped with Radiator policy and charging support use the following information:

Table 9. Session information fetched from the RxSession

Name Description
id Index or other identifier that uniquely identifies this session in this table
start_time Unix timestamp of the session start
alive_time Unix timestamp of the last update for this session
stop_time Unix timestamp of the session end
subscription_id Index of subscriber information table for this subscriber
session_id Session-Id for this Rx session
imsi IMSI for the subscriber
nai NAI for the subscriber
e164 E.164 formatted telephone number for the subscriber
sip_uri SIP URI for the subscriber
origin_host Origin-Host value for this Rx session
origin_realm Origin-Realm value for this Rx session
framed_ip_address Framed-IP-Address for this Rx session
framed_ipv6_prefix Framed-IPv6-Prefix for this Rx session

4.6.11. InstallGxRuleQuery

InstallGxRuleQuery defines the SQL statement to add a new entry in the table that tracks Gx PCC rules installed in PCEF for AF flows reported over Rx interface.

4.6.12. InstallGxRuleQueryParam

This parameter specifies the bind variables to be used with InstallGxRuleQuery. %0 is replaced with the Rx Session-Id, %1 with Gx Session-Id, %2 with the newly installed PCC rule name, and %3 with the subscriber's SIP_URI.

4.6.13. RemoveGxRuleQuery

RemoveGxRuleQuery defines the SQL statement to call when the Gx PCC rule for an AF flow is removed from the PCEF.

4.6.14. RemoveGxRuleQueryParam

RemoveGxRuleQueryParam specifies the bind variables to be used with RemoveGxRuleQuery. %0 is replaced with the rule id fetched with GxRuleSelect.

4.6.15. GxRuleSelect

GxRuleSelect defines the SQL statement to call when the Gx PCC rules installed in PCEF for a certain Rx session need to be fetched.

4.6.16. GxRuleSelectParam

GxRuleSelectParam specifies the bind variables to be used GxRuleSelect. %0 is replaced with the Rx Session-Id.

4.6.17. GxRuleColumnDef

GxRuleColumnDef allows you to define the way Radiator interprets the result of the GxRuleSelect statement.
You can specify any number of GxRuleColumnDef parameters, one for each interesting field returned by GxRuleSelect. The general format is:
GxRuleColumnDef n, dataitem
  • n is the index of the field in the result of GxRuleSelect. 0 is the first field.
  • dataitem is the name of a entry in the Gx PCC rule information
The Gx PCC rule information entries required by the modules shipped with Radiator policy and charging support use the following information:

Table 10. Gx PCC rule information for AF flows fetched from the database

Name Description
id Index or other identifier that uniquely identifies this rule in the table
start_time Unix timestamp of the rule creation
rx_session_id Session-Id of Rx session for which the rule was created for
gx_session_id Session-Id of Gx session for which the rule belongs to
rule_name Name of the Gx PCC rule installed in the PCEF
sip_uri SIP_URI of the subscriber the rule was created for as reported over Rx