Oracle® Communications Service Broker Policy Controller Implementation Guide Release 6.1 Part Number E29455-01 |
|
|
PDF · Mobi · ePub |
The Oracle Communications Service Broker Policy Controller (Policy Controller) Diameter stack supports a specific list of Diameter AVPs that Policy Controller can use to pass information from Diameter reference points. If your Policy Controller implementation requires additional AVPs, follow the instructions in this chapter to add them to the Diameter stack using the Administration Console. Policy Controller rejects any messages with unsupported AVPs and returns an error message to the sender.
Policy Controller entities such as Policy Control Enforcement Functions (PCEFs), Application Functions (AFs), Online Charging Systems (OCSs) may use custom (non Diameter-standard) AVPs to transfer information among Diameter nodes. If your Policy Controller implementation requires it, you can add these custom AVPs to the Diameter stack. Policy Controller rejects any messages with unsupported AVPs and returns an error message to the sender.
You are free to add as many custom AVPs to the Policy Controller Diameter stack as necessary, and this chapter explains how. Once custom AVPs are added to the stack, Policy Controller accepts messages with these AVPs, but does not by default use any of the information they contain. To make use of the information they contain you must create a Policy Designer rule that uses the AVP information.
Note:
If your Policy Controller implementation uses split domains, you must add the same list of AVPs to both domains manually.The "About Diameter AVP Data Types" section lists how various Service Broker and Policy Controller entities represent the different AVP data types, and "Functions Available for Each Data Type" lists the functions that they can use.
To add custom AVPs to Policy Controller:
Start the Administration Console.
For details see Oracle Communications Service Broker Administrator's Guide.
Navigate to Platform, OCSB, Domain Management, Diameter AVPs, AVP Definitions.
The AVP Definitions screen appears.
Click Lock and Edit.
The New AVP Definitions/Attributes pane appears.
Enter a Code for the new AVP.
Ensure that this code is not used by any existing Diameter AVP.
Enter the Vendor-Id of the AVP.
This is the IANA SMI Network Management Private Enterprise Codes for the vendor. For details see http://www.iana.org/assignments/enterprise-numbers
. A value of 0 indicates that there is no vendor code.
Enter a Name for the AVP.
Enter a unique name for the new AVP.
Select a data Type for the new AVP.
See Table 6-1 for a list of the available types.
Select a Mandatory Flag option to control support for the new AVP. See RFC 3588 for details. The options are:
Default - No behavior is specified if the AVP is unsupported by a Diameter client.
MUST - The AVP must be rejected by a Diameter client if unsupported.
MAY - The AVP may be rejected by a Diameter client if unsupported
MUST_NOT - The AVP can never be rejected by the Diameter client if unsupported.
Select a level of security support in the End-to-end encryption setting. The options are:
Blank (no value - Does not specify a security behavior.
TRUE - The AVP must not be sent unless end-to-end encryption is supported by both parties of the connection.
FALSE - The AVP may be sent even if end-to-end encryption is not supported by both parties of the connection.
The new AVP appears in the AVP Attributes table.
Repeat steps 4 through 11 for each custom AVP you are adding.
Table 6-1 lists the various AVP data types and how they are represented in Policy Controller entities.
Table 6-1 Diameter AVP Data Types and the Policy Controller/Policy Designer Equivalents
Policy Controller (Administration Console) Representation | Diameter AVP Type (from RFC 3588) | Derived from type (from RFC3588) | Policy Designer Representation | Policy Designer Representation for Custom AVPs |
---|---|---|---|---|
bytes |
OctetString |
N/A |
java.lang.String |
java.lang.String |
integer32 |
Integer32 |
N/A |
java.lang.Integer |
java.lang.Integer |
integer64 |
Integer64 |
N/A |
java.lang.Long |
java.lang.Long |
unsigned32 |
Unsigned32 |
N/A |
java.lang.Long |
java.lang.Long |
unsigned64 |
Unsigned64 |
N/A |
java.math.BigInteger |
java.math.BigInteger |
float32 |
Float32 |
N/A |
java.lang.Float |
java.lang.Float |
float64 |
Float64 |
N/A |
java.lang.Double |
java.lang.Double |
grouped |
Grouped |
N/A |
N/A |
N/A |
addressbytes |
Address |
OctetString |
InetAddress Address |
Address |
time |
Time |
OctetString |
java.sql.Time (oracle.ocsb.app.rcc.feature.pcrf.api.type.Time) |
java.sql.Time |
string |
UTF8String |
OctetString |
java.lang.String |
java.lang.String |
bytes |
DiameterIdentity |
OctetString |
java.lang.String |
java.lang.String |
bytes |
Diameter URI |
N/A |
java.lang.String |
java.lang.String |
integer32 |
Enumerated |
Integer32 |
Known types will have a new class, for example: EventTrigger (oracle.ocsb.app.rcc.feature.pcrf.api.type.EventTrigger) IPCanType (oracle.ocsb.app.rcc.feature.pcrf.api.type.IPCanType) |
java.lang.Integer |
bytes |
IPFilterRule |
OctetString |
IPFilterRule (oracle.ocsb.app.rcc.feature.pcrf.api.type.IPFilterRule) |
IPFilterRule (oracle.ocsb.app.rcc.feature.pcrf.api.type.IPFilterRule) |
bytes |
QoSFilterRule |
OctetString |
IPFilterRule (oracle.ocsb.app.rcc.feature.pcrf.api.type.IPFilterRule) |
IPFilterRule (oracle.ocsb.app.rcc.feature.pcrf.api.type.IPFilterRule) |
Table 6-2 lists the Policy Designer rule functions available for custom AVPs by data type.
Table 6-2 Supported Functions for Custom AVPs
Data Type | Supported Function | Description |
---|---|---|
IntegerList |
contains(Integer intValue) |
Check whether intValue is in the list. |
IntegerList |
|
Check whether the list contains a value greater than intValue. |
IntegerList |
|
Check whether the list contains a value lesser than intValue. |
LongList |
|
Check whether longValue is in the list. |
LongList |
|
Check whether the list contains a value greater than longValue. |
LongList |
|
Check whether the list contains a value lesser than longValue. |
BigIntegerList |
|
Check whether the list contains bigIntegerValue. |
BigIntegerList |
|
Check whether the list contains a value greater than bigIntegerValue. |
BigIntegerList |
|
Check whether the list contains a value less than bigIntegerValue. |
StringList |
|
Check whether stringValue is in the list. |
FloatList |
|
Check whether floatValue is in the list. |
FloatList |
|
Check whether the list contains a value greater than floatValue. |
FloatList |
|
Check whether the list contains a value less than floatValue. |
DoubleList |
|
Check whether doubleValue is in the list. |
DoubleList |
|
Check whether the list contains a value greater than doubleValue. |
DoubleList |
|
Check whether the list contains a value less than doubleValue. |
AddressList |
|
Check whether values for addressType, addressData are in the list. |
IPFilterRuleList |
Not used by Policy Controller |
Not used by Policy Controller. |
TimeList |
|
Check whether the list contains c. |
TimeList |
|
Checkwhether the list contains a value less than c. |
TimeList |
|
Check whether the list contains a value greater than c. |