<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.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.<AuthBy DiaPCRF>
clause.<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.<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.<PCRFSPRSQL>
clause.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<PCRFGxSessionSQL>
clause.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.<PCRFRxSessionSQL>
clause.PCRFRxSessionGeneric.pm
module. The backend is not
limited to SQL but should use a a backend that supports frequent creation
and updating of session dataINITIAL_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.# Support EAP-SIM, EAP-AKA, EAP-AKA’ and PEAP based auth GxSubIdTypes IMSI, NAI
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.# We support Rel10 + Application Detection and Control SupportedGxFeatures Rel10,ADC
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.# We support Rel10 + UE address and mask in filters SupportedRxFeatures Rel10,ExtendedFilter
50 000
000
.# Use a really small value for testing DefaultOctets 200
DefaultOctets
left. Defaults to 500
000
.# Allow very small allocations MinOctets 100
600
seconds.# Allocate 20 minutes by default DefaultTime 1200
10
seconds.# Use 15 seconds as the smallest available time MinTime 15
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.# We want to know about OCS credit situation EventTriggers OUT_OF_CREDIT,REALLOCATION_OF_CREDIT
Event-Trigger
attributes. This allows, for
example, activating or deactivating predefined PCC (Policy and Charging Control) rules in the PCEF with the
CCA.PCRFmsg
PCRFmsg
ThresholdHook
will be called once for
each threshold. The order of calls depends on the order the thresholds are
defined in the SPR.PCRFmsg
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.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.PCRFmsg
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.RxSIPServiceIdentifier 200
RxSIPMeteringMethod
controls
PCEF online and offline charging. Possible
value is one of: DURATION
, VOLUME
and
DURATION_VOLUME
. There is no default.RxSIPMeteringMethod DURATION
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.RxSIPPriorityLevel 8
<AuthBy DiaPCRF>
clause
PCRFGx
parameter.PCRFRx
module processes incoming Diameter
Rx messages and adds any attributes required by processing done by
PCRF.<Auth DiaPCRF>
do not directly use Diameter Rx
messages.<AuthBy DiaPCRF>
clause
PCRFRx
parameter.<AuthBy DiaPCRF>
SPR parameter.%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.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.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 |
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
WLANPCCRuleSelect
.PCCRuleSelect
statement.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 fielddataitem
is the name of a entry in the
PCC rule informationName | 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 |
Charging-Rule-Definition
AVP (Attribute-Value Pair)s where each table row describes one AVP.DynRuleSelect
.DynRuleSelect
statement.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 informationName | 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 |
FlowInfoSelect
.FlowInfoSelect
statement.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 informationName | 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 |
QoSInfoSelect
.QoSInfoSelect
statement.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
informationName | 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 |
DataPlanSelect
. %0
is replaced by
the data plan identifier from the subscriber's usage tracking
information.DataPlanSelect
statement.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 informationName | 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. |
UsageSelect
. %0
is replaced by the
subscriber ID.UsageSelect
statement.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 informationName | 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 |
<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.<AuthBy DiaPCRF PCRFGxSession>
parameter.INITIAL_REQUEST
is received.AddSessionQuery
. The values for %0
-
%12
come from the incoming Gx message attributes and
quota reserved for the new session.UPDATE_REQUEST
reporting used octets is
received.%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
sessionTERMINATION_REQUEST
is received.GetSessionSelect
. %0 is replaced
by the Diameter Session-Id
attribute
value.GetSessionSelect
statement.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 informationName | 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 |
GetSessionColumnDef
parameters. For this reason the query must return same values as
GetSessionSelect
. %0 is the
subscriber ID fetched from the SPR.GetSubscriberSessionsSelect
. %0 is
replaced by the subscriber ID fetched from the SPR.<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.<AuthBy DiaPCRF PCRFRxSession>
parameter.AddSessionQuery
. The values for %0
- %7 come from the incoming Rx message
attributes.UpdateSessionQuery
. %0 is replaced
by the session ID fetched with
GetSessionSelect
.CloseSessionQuery
. %0 is replaced
by the session id fetched with
GetSessionSelect
.GetSessionSelect
. %0 is replaced
by the Diameter Session-Id
attribute
value.GetSessionSelect
statement.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
fielddataitem
is the name of a entry in the
subscriber informationName | 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 |
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
.RemoveGxRuleQueryParam
specifies the bind
variables to be used with RemoveGxRuleQuery
.
%0 is replaced with the rule id fetched with
GxRuleSelect
.GxRuleSelectParam
specifies the bind
variables to be used GxRuleSelect
.
%0 is replaced with the Rx
Session-Id
.GxRuleColumnDef
allows you to define the
way Radiator interprets the result of the
GxRuleSelect
statement.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 informationName | 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 |