Skip Headers
Oracle® Communications Service Broker Policy Controller Implementation Guide
Release 6.1

Part Number E29455-01
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

6 Adding Custom Diameter AVPs

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.

About Adding Custom Diameter AVPs

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.

Adding Custom AVPs to Use with Policy Controller

To add custom AVPs to Policy Controller:

  1. Start the Administration Console.

    For details see Oracle Communications Service Broker Administrator's Guide.

  2. Navigate to Platform, OCSB, Domain Management, Diameter AVPs, AVP Definitions.

    The AVP Definitions screen appears.

  3. Click Lock and Edit.

  4. Click New.

    The New AVP Definitions/Attributes pane appears.

  5. Enter a Code for the new AVP.

    Ensure that this code is not used by any existing Diameter AVP.

  6. 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.

  7. Enter a Name for the AVP.

    Enter a unique name for the new AVP.

  8. Select a data Type for the new AVP.

    See Table 6-1 for a list of the available types.

  9. 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.

  10. 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.

  11. Click Apply.

    The new AVP appears in the AVP Attributes table.

  12. Repeat steps 4 through 11 for each custom AVP you are adding.

About Diameter AVP Data Types

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)


Functions Available for Each Data Type

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

hasGreaterThan(Integer intValue)

Check whether the list contains a value greater than intValue.

IntegerList

hasLesserThan(Integer intValue)

Check whether the list contains a value lesser than intValue.

LongList

contains(String longValue)

Check whether longValue is in the list.

LongList

hasGreaterThan(String longValue)

Check whether the list contains a value greater than longValue.

LongList

hasLesserThan(String longValue)

Check whether the list contains a value lesser than longValue.

BigIntegerList

contains(String bigIntegerValue)

Check whether the list contains bigIntegerValue.

BigIntegerList

hasGreaterThan(String bigIntegerValue)

Check whether the list contains a value greater than bigIntegerValue.

BigIntegerList

hasLesserThan(String bigIntegerValue)

Check whether the list contains a value less than bigIntegerValue.

StringList

contains(String stringValue)

Check whether stringValue is in the list.

FloatList

contains(String floatValue)

Check whether floatValue is in the list.

FloatList

hasGreaterThan(String floatValue)

Check whether the list contains a value greater than floatValue.

FloatList

hasLesserThan(String floatValue)

Check whether the list contains a value less than floatValue.

DoubleList

contains(String doubleValue)

Check whether doubleValue is in the list.

DoubleList

hasGreaterThan(String doubleValue)

Check whether the list contains a value greater than doubleValue.

DoubleList

hasLesserThan(String doubleValue)

Check whether the list contains a value less than doubleValue.

AddressList

contains(Integer addressType, String addressData)

Check whether values for addressType, addressData are in the list.

IPFilterRuleList

Not used by Policy Controller

Not used by Policy Controller.

TimeList

contains(Calendar c)

Check whether the list contains c.

TimeList

hasBefore(Calendar c)

Checkwhether the list contains a value less than c.

TimeList

hasAfter(Calendar c)

Check whether the list contains a value greater than c.