Routing Control Data Model (3.2)

The UDRs in PCC.Routing store information about destinations, routing attributes, and use cases.

The main objects of PCC Routing are:

ObjectDescription

Routing_Details

Contains the name of the workflow route to a specific Diameter Request Agent. It also contains the routing use cases to execute.

Routing_Destination

Contains the available routes for the incoming UDRs. Each route corresponds to a Hostname or Realm defined in the Diameter Routing Profile used by the Diameter Requested agent specified by the Routing_Details.

RouteMapping

Maps message attributes to an entry in Routing_Details. If a match is found by the routing logic, it will be used to retrieve a set of destinations from Routing_Destination.

Use_Case

A use case triggers additional routing functions.

Overview of the Routing Data Model

The different UDRs within the Routing Control data model are connected as follows:

Overview of the Routing Data Model

RouteMapping UDR

In the RouteMapping UDR (PCC.Routing.RouteMapping) you set the arguments that are used by the routing logic to map incoming UDRs to entries in the Routing_Details. This makes it possible to route e g Diameter messages to specific destinations based on a custom set of attributes associated with the session or the subscriber.


Field (name and type)

Description

Arguments (list<string>)

The name of the attributes to map. For information about the attributes that are used by the default workflow configurations, see the section below, RouteMapping Arguments.

ID (int)

The unique id of the RouteMapping entry.

Priority (int)

The priority of the RouteMapping entry, a low value indicates a high priority. Determines the order in which the matched entries are returned.

StopFallThrough (boolean)

The routing logic will match the attributes of incoming UDRs against RouteMapping entries in priority order. If StopFallThrough is set to true the routing logic will not iterate through all matching entries.

Targets (list<Routing_Details>)

The Routing_Details to be mapped against the message attributes.

Below is a screenshot of the UDR Assistance displaying the RouteMapping UDR:

RouteMapping UDR

RouteMapping Arguments

The RouteMapping arguments are implementation specific and are typically adapted to meet specific customer requirements. The following attributes are used as arguments in default workflow configurations:

Argument

Description

Group Id

The group of a subscriber-identifier. The default workflow configuration extracts the value from an external database.

Origin Source

The value of the Origin-Host AVP.

Origin Destination

The value of the Destination-Host AVP.

Protocol

Set to diameter in the workflow.

Application

The value of the Auth-Application-Id AVP.

Routing_Details UDR

In the Routing_Details UDR (PCC.Routing.Routing_Details) you set the workflow route that is to be used by the routing logic. The UDR contains one or several instances of Routing_Destination , which holds information about the destination hosts or realms.

Field (name and type)

Description

Active (int)

Indicates if the Routing_Details entry is active.

ID (int)

The unique id of the Routing Details entry.

Misc (map<string, any>)

See the section below, Misc Field, for more information.

Route_Name (string)

The name of the workflow route to a specific Diameter Request Agent.

Routing_Destination (list<Routing_Destinations>)

The Routing_Destinations associated with the Route_Name.

Routing_Type (string)

Indicates session-based or subscriber based routing.

Use_Cases (list<Use_Case>)

A list of use cases to be executed.


Route_Name

Below is a screenshot of the UDR Assistance displaying the Routing_Details UDR:

Routing_Details UDR

Routing_Destination UDR

In the Routing_Destination UDR (PCC.Routing.Routing_Destination) you set the peer, realms and weights that is to be used by the routing logic.

Field (name and type)

Description

Active (int)

Indicates if the Routing_Destination is active.

Routing_Destination (string)

The host or realm name.

ID (int)

The unique id of the Routing Destination.

Misc (map<string, any>)

See the section below, Misc Field, for more information.

Weight (int)

Used to achieve load balancing when routing UDRs to a list of destinations. The weight indicates the probability for a message to be routed to a specific destination relative to other destinations in the same list. The weight is expressed as a percentage and the sum of the weights in a list of destinations should be 0% or 100%.

When the sum of the weights are not 100%, the individual weights are normalized. For instance, the weights 1, 3, and 5 approximately corresponds to 11% 33%, and 56%.

Below is a screenshot of the UDR Assistance displaying the Routing_Destination UDR:

Routing_Destination UDR

Use Case UDR

In the Use Case UDR (PCC.Routing.Use_Case) you set the use cases that trigger the workflow logic to perform additional routing functions.

Field (name and type)

Description

ID (int)

The unique id of the use case.

Misc (map<string, any>)

See the section below, Misc Field, for more information.

Use_Case (string)

The name of the use case. Acceptable values in the default workflow configurations are:
  • NULL for no additional functions

  • wfb for routing via Back-End Workflow

  • realm for realm-based routing. For information about realm-based routing see /wiki/spaces/MD82/pages/3786561 in the Desktop User's Guide.

The default workflow configurations can be extended to handle additional use cases.

Below is a screenshot of the UDR Assistance displaying the Use_Case UDR:

Use Case UDR

Misc Field

Some objects in the PCC Routing Control data model include a field for storing miscellaneous data. The field is called Misc and has the type map<string, any>.

Even though the Misc field is stated to support storing values of type any there are some limitations to what type the values can have. The following types can be used:

  • bigint
  • bitset
  • boolean
  • byte
  • bytearray
  • char
  • date
  • float/ double
  • int
  • ipaddress
  • long
  • short
  • string