2.2 Application Chaining
Application Chaining for RBAR and PCA refers to the enhanced ability to support the running of multiple DSR applications independently on a same DSR DA-MP without interfering to each other’s functionality and the two applications can be invoked in turn on the same DA-MP. The order in which the applications are invoked can be configured based on the existing and enhanced Application Routing Rule.
When DSR receives a request, the routing layer makes the decision to forward the message, either to an application residing in the DSR or to a peer DSR node. This decision is based on the Application Routing Table (ART) rules. The ART also determines which application is initially forwarded the message.
Historically, Diameter messages use the Command Code as one of the main parameters in the ART to help with the DRL application forwarding decision. Application chaining enhances and expands the currently used Command Code parameter into an Extended Command Code (ECC) that contains the following attributes:
- ECC name, which is the actual Command Code name
- Command Code value
- AVP code Value, an AVP within the Command Code
- AVP data value
Application Route Table (ART)
Application Route Tables (ART) are used for routing Request messages to DSR Applications. An Application Route Table consists of a set of prioritized Application Routing Rules that the Diameter Routing Function searches with the content of a Request message, to determine whether the message should be forwarded to a DSR Application for processing.
The ART is searched when a Request message is received from a Peer Node or a DSR Application. Searching an ART when a Request message is received from a DSR Application allows the operator to route the ingress Diameter transaction to multiple DSR Applications in sequence. The operator can create multiple ARTs to assign an ART to a Request message based upon a set of user-defined criteria.
One ART is searched each time a Request message is received from a Peer Node or a DSR Application. This method allows forwarding a Diameter transaction to one or more DSR Applications for processing.
However, the Diameter Routing Function does not allow a DSR application to process a Diameter transaction more than once. The Diameter Routing Function internally keeps track of which DSR applications have already processed the message. When the Diameter Routing Function is searching an ART and encounters an Application Routing Rule that is associated with a DSR application that has already processed the transaction, that Application Routing Rule is bypassed.
For RBAR and PCA Application chaining, up to six parameters may be used to form Application Routing Rules:
- Application ID
- Extended Command Code
- Origin-Host
- Origin-Realm
- Destination-Host
- Destination-Realm
A priority is also assigned to each Application Routing Rule. If conditions in multiple rules are triggered simultaneously, the associated priority determines which rule applies.