Source: http://www.patentgenius.com/patent/8644324.html
Timestamp: 2019-01-19 02:17:29
Document Index: 564030773

Matched Legal Cases: ['application No. 10824243', 'ART 500', 'ART 500', 'ART 500', 'ART 500', 'ART 500', 'ART 500']

Methods, systems, and computer readable media for providing priority routing at a diameter node - Patent # 8644324 - PatentGenius
8644324 Methods, systems, and computer readable media for providing priority routing at a diameter node
Inventor: Kanode, et al.
U.S. Class: 370/401; 370/252; 370/395.21; 370/395.4; 370/400; 709/230; 709/238; 709/240
Field Of Search: ;370/241; ;370/389; ;370/349; ;370/412; ;370/230.1; ;370/356; ;370/242; ;370/252; ;370/392; ;370/395.2; ;370/395.4
Foreign Patent Documents: 2 716 544; 1 134 939; 1 328 102; 1 465 385; 1 314 324; 1 847 076; WO 2008/087633; WO 2009/058067; WO 2009/070179; WO 2009/070179; WO 2009/134265; WO 2011/047382; WO 2011/100587; WO 2011/100594; WO 2011/100603; WO 2011/100606; WO 2011/100609; WO 2011/100610; WO 2011/100612; WO 2011/100615; WO 2011/100621; WO 2011/100626; WO 2011/100629; WO 2011/100630; WO 2012/119147
Other References: Final Official Action for U.S. Appl. No. 12/906,816 (Feb. 21, 2012). cited by applicant.
Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration for International Application No. PCT/US2010/053062 (Jun. 28, 2011). cited by applicant.
"Next Generation Networks Load Balancing--The Key to NGN Control, Management, and Growth" Whitepaper by Traffix Systems, pp. 1-7 (Publication Date Unknown) (Downloaded form the Internet on Feb. 8, 2010). cited by applicant.
"Digital Cellular Telecommunications System (Phase 2+); Universal Mobile Telecommunciations System (UMTS); LTE; IP Multimedia (IM) Subsystem Cx and Dx Interfaces; Signalling Flows and Message Contents (3GPP TS 29.228 Version 8.7.0 Release 8)," ETSITS 129 228 v8.7.0 (Jan. 2010). cited by applicant.
3GPP, "3rd Generation Partnership Project; Technical Specification Group Core Network and Terminals; IP Multimedia (IM) Subsystem Cx and Dx Interfaces; Signalling Flows and Message Content (Release 9)," 3GPP TS 29.228 V9.0.0 (Dec. 2009). cited byapplicant.
3GPP, "3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; Policy and Charging Control Architecture (Release 9)," 3GPP TS 23.203 V9.3.0 (Dec. 2009). cited by applicant.
Jiao et al., "The Diameter Capabilities Update Application," Network Working Group Internet-Draft draft-ietf-dime-capabilities-update-01, pp. 1-8 (Dec. 1, 2009). cited by applicant.
Huang et al., "The Diameter Precongeston Notification (PCN) Data Collection Applications," Network Working Group Internet-Draft <draft-huang-dime-pcn-collection-02>, pp. 1-19 (Oct. 26, 2009). cited by applicant.
3GPP, "3rd Generation Partnership Project; Technical Specification Group Core Network and Terminals; Numbering, Addressing and Identificaiton (Release 8)," 3GPP TS 23.003 V8.6.0 (Sep. 2009). cited by applicant.
3GPP, "3rd Generation Partnership Project; Technical Specification Group Service and System Aspects; Telecommunication Management; Charging Management; Charging Data Description for the IP Multimedia System (IMS) (Release 5)," 3GPP TS 32.225 V5.11.0(Mar. 2006). cited by applicant.
Stewart et al., "Stream Control Transmission Protocol," Network Working Group RFC 2960, pp. 1-134.(Oct. 2000). cited by applicant.
"Diameter Overview," referenced from www.ulticom.com/html/products/signalware-diameter-reference-guide.asp (Publication Date Unknown). cited by applicant.
Non-Final Official Action for U.S. Appl. No. 13/026,112 (Aug. 29, 2012). cited by applicant.
Communication of European Publication Number and Information on the Application of Article 67(3) EPC for European Patent application No. 10824243.9 (Jul. 25, 2012). cited by applicant.
Commony-Assigned, Co-Pending U.S. Appl. No. 14/016,000 titled "Methods, Systems, and Computer Readable Media for Answer-Based Routing of Diameter Request Messages," (unpublished, filed Aug. 30, 2013). cited by applicant.
Non-Final Office Action for U.S. Appl. No. 13/026,125 (Aug. 30, 2013). cited by applicant.
Non-Final Office Action for U.S. Appl. No. 13/026,133 (Aug. 19, 2013). cited by applicant.
Commony-Assigned, Co-Pending U.S. Appl. No. 13/932,608 titled "Methods, Systems, and Computer Readable Media for Inter-Diameter-Message Processor Routing," (unpublished, filed Jul. 1, 2013). cited by applicant.
Notice of Allowance and Fee(s) Due for for U.S. Appl. No. 13/026,076 (Jun. 27, 2013). cited by applicant.
Restriction Requirement for U.S. Appl. No. 13/026,125 (Jun. 11, 2013). cited by applicant.
Commonly-assigned, co-pending International Application No. PCT/US13/45188 for "Methods, Systems, and Computer Readable Media for Routing Diameter Messages at a Diameter Signaling Router," (Unpublished, filed Jun. 11, 2013). cited by applicant.
Commonly-assigned, co-pending U.S. Appl. No. 13/915,281 for "Methods, Systems, and Computer Readable Media for Routing Diameter Messages at a Diameter Signaling Router," (Unpublished, filed Jun. 11, 2013). cited by applicant.
Notice of Allowance and Fee(s) Due for U.S. Appl. No. 13/026,081 (Jun. 5, 2013). cited by applicant.
Notice of Allowance and Fee(s) Due for U.S. Appl. No. 13/026,031 (May 30, 2013). cited by applicant.
Notice of Allowance and Fee(s) Due for U.S. Appl. No. 13/412,352 (May 28, 2013). cited by applicant.
Interview Summary for U.S. Appl. No. 13/026,098 (May 23, 2013). cited by applicant.
Notice of Allowance and Fee(s) Due for U.S. Appl. No. 13/026,144 (May 1, 2013). cited by applicant.
Notice of Allowance and Fee(s) Due for U.S. Appl. No. 13/026,112 (Apr. 26, 2013). cited by applicant.
Notice of Allowance and Fee(s) Due for U.S. Appl. No. 13/026,153 (Apr. 15, 2013). cited by applicant.
Notice of Allowance and Fee(s) Due for U.S. Appl. No. 13/026,162 (Apr. 1, 2013). cited by applicant.
Supplemental Notice of Allowability for U.S. Appl. No. 13/026,031 (Mar. 22, 2013). cited by applicant.
Notice of Allowance and Fee(s) Due for U.S. Appl. No. 13/026,098 (Mar. 11, 2013). cited by applicant.
Fajardo et al., "Diameter Base Protocol," RFC 6733, pp. 1-152 (Oct. 2012). cited by applicant.
Abstract: Methods, systems, and computer readable media for providing priority routing at a Diameter node are disclosed. One exemplary method includes receiving, at a Diameter message processor associated with a DSR, a Diameter message from a first Diameter node. The method further includes assigning, at the Diameter message processor, a priority level indicator to the Diameter message. The method also includes routing the Diameter message with the priority level indicator to a second Diameter node. A second exemplary method includes receiving, at a Diameter message processor associated with a DSR, a Diameter message that includes a priority level indicator from a first Diameter node. The second method further includes applying, at the Diameter message processor, a routing action to the Diameter message based at least in part on the priority level indicator contained in the Diameter message.
1. A method for routing Diameter messages using a Diameter Signaling Router (DSR) based on priority information, the method comprising: receiving, at a Diameter messageprocessor associated with a DSR, a Diameter message from a first Diameter node; assigning, at the Diameter message processor, a priority level indicator to the Diameter message; selecting a route over which to send the Diameter message based at leastin part on the assigned priority level indicator to a second Diameter node; and routing the Diameter message with the priority level indicator to the second Diameter node, wherein routing the Diameter message includes selecting the second Diameter nodeas the destination for the Diameter message based at least in part on the assigned priority level indicator, wherein routing the Diameter message includes routing the Diameter message to the second Diameter node if the assigned priority level indicatorexceeds a priority threshold contained in a priority routing rules database, and discarding the Diameter message if the assigned priority level indicator fails to exceed the priority threshold contained in the priority routing rules database.
2. The method of claim 1 wherein selecting the second Diameter node includes selecting the second Diameter node associated with a particular quality of service (QoS) level that is indicated by the assigned priority level indicator in theDiameter message.
3. The method of claim 1 wherein in response to discarding the Diameter message, sending the first Diameter node a Diameter response message that indicates that an error associated with the Diameter message occurred.
4. The method of claim 1 wherein selecting a route includes selecting a route based at least in part on a congestion state of the second Diameter node.
5. The method of claim 1 wherein the second Diameter node is a peer node with respect to the DSR.
6. A method for routing Diameter messages using a Diameter Signaling Router (DSR) based on priority information, the method comprising: receiving, at a Diameter message processor associated with a DSR, a Diameter message that includes apriority level indicator from a first Diameter node; and applying, at the Diameter message processor, a routing action to the Diameter message based at least in part on the priority level indicator contained in the Diameter message, wherein applying arouting action includes using the priority level indicator to access a priority based rule in a Diameter priority based routing rules database and routing the Diameter message in accordance with the priority based rule, wherein applying a routing actionfurther includes selecting a route over which to send the Diameter message based at least in part on the assigned priority level indicator to a second Diameter node and routing the Diameter message to the second Diameter node if the assigned prioritylevel indicator exceeds a priority threshold contained in the Diameter priority routing rules database, and delaying the Diameter message if the assigned priority level indicator fails to exceed the priority threshold contained in the Diameter priorityrouting rules database.
7. The method of claim 6 wherein applying a routing action includes discarding the Diameter message.
8. The method of claim 6 wherein applying a routing action includes routing the Diameter message to a quality of service (QoS) Diameter resource node associated with the priority level indicator.
9. The method of claim 6 wherein the priority level indicator is encrypted.
10. The method of claim 9 wherein receiving the Diameter message includes decrypting the priority level indicator at the DSR.
11. A system for routing Diameter signaling messages, the system comprising: a Diameter signaling router (DSR) comprising: a memory for storing Diameter peer routing information that includes Diameter message priority level information; and aDiameter message processor configured to receive a Diameter message from a first Diameter node, assigning a priority level indicator to the Diameter message, to route the Diameter message with the priority level indicator to a second Diameter node inaccordance to the Diameter message priority level information, and to select the second Diameter node as the destination for the Diameter message based at least in part on the assigned priority level indicator, wherein the Diameter message processor isconfigured to select a route over which to send the Diameter message based at least in part on the assigned priority level indicator to the second Diameter node, wherein the Diameter message processor is configured to route the Diameter message to thesecond Diameter node if the assigned priority level indicator exceeds a priority threshold contained in a priority routing rules database, and to discard the Diameter message if the assigned priority level indicator fails to exceed the priority thresholdcontained in the priority routing rules database.
12. The system of claim 11 wherein the Diameter message processor is configured to select the second Diameter node associated with a particular quality of service (QoS) level that is indicated by the assigned priority level indicator in theDiameter message.
13. The system of claim 11 wherein in response to discarding the Diameter message, the Diameter message processor is configured to send the first Diameter node a Diameter response message that indicates that an error associated with theDiameter message occurred.
14. The system of claim 11 wherein the Diameter message processor is configured to select a route based at least in part on a congestion state of the second Diameter node.
15. The system of claim 11 wherein the second Diameter node is a peer node with respect to the DSR.
16. A system for routing Diameter signaling messages, the system comprising: a Diameter signaling router (DSR) comprising: a memory for storing Diameter peer routing information that includes Diameter message priority level information; aDiameter message processor configured to receive a Diameter message that includes a priority level indicator from a first Diameter node and to apply a routing action to the Diameter message based at least in part on the priority level indicator containedin the Diameter message by using the priority level indicator to access a priority based rule in a Diameter priority based routing rules database and routing the Diameter message in accordance with the priority based rule, wherein the Diameter messageprocessor is configured to select a route over which to send the Diameter message based at least in part on the priority level indicator to a second Diameter node and to route the Diameter message to the second Diameter node if the priority levelindicator exceeds a priority threshold contained in the priority routing rules database, and to delay the Diameter message if the priority level indicator fails to exceed the priority threshold contained in the priority routing rules database.
17. The system of claim 16 wherein the Diameter message processor is configured to discard the Diameter message.
18. The system of claim 16 wherein the Diameter message processor is configured to route the Diameter message to a quality of service (QoS) Diameter resource node associated with the priority level indicator.
19. The system of claim 16 wherein the priority level indicator is encrypted.
20. The system of claim 16 the Diameter message processor is configured to decrypt the priority level indicator at the DSR.
21. A non-transitory computer readable medium comprising computer executable instructions embodied in a computer readable medium and when executed by a processor of a computer performs steps comprising: receiving, at a Diameter messageprocessor associated with a DSR, a Diameter message from a first Diameter node; assigning, at the Diameter message processor, a priority level indicator to the Diameter message; selecting a route over which to send the Diameter message based at leastin part on the assigned priority level indicator to a second Diameter node; and routing the Diameter message with the priority level indicator to the second Diameter node, wherein routing the Diameter message includes selecting the second Diameter nodeas the destination for the Diameter message based at least in part on the assigned priority level indicator, wherein routing the Diameter message includes routing the Diameter message to the second Diameter node if the assigned priority level indicatorexceeds a priority threshold contained in a priority routing rules database, and discarding the Diameter message if the assigned priority level indicator fails to exceed the priority threshold contained in the priority routing rules database.
22. A non-transitory computer readable medium comprising computer executable instructions embodied in a computer readable medium and when executed by a processor of a computer performs steps comprising: receiving, at a Diameter messageprocessor associated with a DSR, a Diameter message that includes a priority level indicator from a first Diameter node; and applying, at the Diameter message processor, a routing action to the Diameter message based at least in part on the prioritylevel indicator contained in the Diameter message, wherein applying a routing action includes using the priority level indicator to access a priority based rule in a Diameter priority based routing rules database and routing the Diameter message inaccordance with the priority based rule, wherein applying a routing action includes selecting a route over which to send the Diameter message based at least in part on the priority level indicator to a second Diameter node and routing the Diametermessage to the second Diameter node if the priority level indicator exceeds a priority threshold contained in the Diameter priority routing rules database, and delaying the Diameter message if the priority level indicator fails to exceed the prioritythreshold contained in the Diameter priority routing rules database.
Diameter is an authentication, authorization and accounting (AAA) protocol for computer networks, and is a successor to RADIUS. The Diameter base protocol is defined in IETF RFC 3588, the disclosure of which is incorporated by reference hereinin its entirety. RFC 3588 discusses a Diameter routing agent that routes Diameter signaling messages, but does not specify architecture for the Diameter routing agent or Diameter routing in general. Similarly, RFC 3588 does not address a specificmethod in which to conduct Diameter message routing using priority information parameters contained in Diameter signaling messages.
Methods, systems, and computer readable media for providing priority routing at a Diameter node are disclosed. One exemplary method includes receiving, at a Diameter message processor associated with a DSR, a Diameter message from a firstDiameter node. The method further includes assigning, at the Diameter message processor, a priority level indicator to the Diameter message. The method also includes routing the Diameter message with the priority level indicator to a second Diameternode. A second exemplary method includes receiving, at a Diameter message processor associated with a DSR, a Diameter message that includes a priority level indicator from a first Diameter node. The second method further includes applying, at theDiameter message processor, a routing action to the Diameter message based at least in part on the priority level indicator contained in the Diameter message.
The subject matter described herein may be implemented in software in combination with hardware and/or firmware. For example, the subject matter described herein may be implemented in software executed by a processor. In one exemplaryimplementation, the subject matter described herein for providing priority routing at a Diameter node may be implemented using a non-transitory computer readable medium to having stored thereon executable instructions that when executed by the processorof a computer control the processor to perform steps. Exemplary non-transitory computer readable media suitable for implementing the subject matter described herein include chip memory devices or disk memory devices accessible by a processor,programmable logic devices, and application specific integrated circuits. In addition, a computer readable medium that implements the subject matter described herein may be located on a single computing platform or may be distributed across pluralcomputing platforms.
FIG. 4 is a block diagram illustrating an exemplary architecture including dedicated DCL/DRL and application message processors (MPs) for providing priority routing at a Diameter node according to an embodiment of the subject matter describedherein;
The subject matter described herein includes methods, systems, and computer readable media for providing priority routing at a Diameter node. Specifically, the present subject matter described herein may be implemented at a Diameter node thatincludes a Diameter connection layer (DCL), Diameter routing layer (DRL), one or more local applications, and one or more routing tables, such as a peer routing table (PRT) and application routing table (ART). For example, a Diameter node may comprise aDiameter signaling router (DSR) a mobility management entity (MME), a home subscriber server (HSS) and/or authentication, authorization, and accounting (AAA) server, a Bearer Binding and Event Reporting Function (BBERF), a serving gateway (SGW), a packetdata network gateway (PDN GW), a charging data function (CDF), an online charging system, an offline charging system, a policy and charging enforcement function (PCEF), a policy and charging rules function (PCRF), a subscriber profile repository (SPR), aDiameter agent, a network node, a policy engine, a policy server, an application function (AF), an application server, a Diameter signaling agent, a long term evolution (LTE) node, an Internet protocol (IP) multimedia subsystem (IMS) network node, aserver, a correlation node, a node, a database, a signaling gateway, a gateway, a monitoring node, a Diameter message processor, a data collection platform, a multi-protocol signaling gateway, a multi-protocol signaling router, or a computing platform. Examples of a Diameter signaling router (DSR) include, but are not limited to, a Diameter routing agent, a Diameter relay agent, a Diameter redirect agent, a Diameter translation agent, a Diameter proxy agent. In one embodiment, a DSR includes a set ofco-located DSR MPs that share common Diameter routing tables.
As used herein, the term "Diameter connection layer (DCL)" refers to a software layer of a Diameter stack in the DSR that implements Diameter transport connections. As used herein, the term "Diameter routing layer (DRL)" refers to a softwarelayer of the Diameter stack which implements Diameter routing. Exemplary DRL capabilities may include: routing request messages to Diameter peer nodes or local applications based on message content, discarding or rejecting Diameter request messagesbased on message content rules, peer congestion control, and easier configuration. In order to support both application processing and core Diameter routing, functions, the DRL in the DSR may support the following message routing tables: an applicationrouting table (ART) and a peer routing table (PRT), each of which will be described in greater detail later.
In one embodiment, priority-based routing may be performed at a DSR that only includes a single Diameter message processor. This exemplary software architecture option is depicted in FIG. 1 where a DSR network element (NE) 200 includes aDiameter message processor (MP) 201 supports a full Diameter stack that includes the DCL, DRL, and Application layers (not shown). DSR 200 may be further provisioned with a priority-based routing rules (PRR) database 230. The Diameter MP 201 may beconfigured to receive Diameter messages from Diameter peer nodes (such as Diameter peer node 218) as well as to transmit Diameter messages to other Diameter peer nodes (such as Diameter peer node 220). Upon receiving a Diameter message, the Diameter MP201 may access PRR database 230 using priority information contained in the Diameter message in order to determine how and where to route the message. Other exemplary software architectures that employ multiple message processors may also be employed.
For example, a first multi-MP software architecture option may include an embodiment where each message processor (MP) supports a full Diameter stack that includes the DCL, DRL, and Application layers. A second multi-MP software architectureoption may include a DCL that runs on dedicated MPs, Routing and Application layers can either be combined on dedicated MPs or have dedicated MPs for each layer. A third multi-MP software architecture option may include a Diameter stack (DCL, DRL) thatruns on dedicated MPs, local Diameter applications run on separate dedicated MPs. Each of these exemplary software architecture options are described in greater detail below with respect to FIGS. 2, 3, and 4.
FIG. 2 is a block diagram illustrating an exemplary architecture including a full stack per MP for providing priority routing at a DSR according to an embodiment of the subject matter described herein. Referring to FIG. 2, DSR network element(NE) 200 may include an ingress MP 202 for receiving Diameter messages from Diameter peer nodes and an egress MP 204 for transmitting Diameter messages to Diameter peer nodes. Ingress MP 202 and egress MP 204 may each include a DCL, DRL, and one or moresignaling applications (residing in the application layer). For example, ingress MP 202 may include a DCL 206, a DRL 208, and a signaling application 210. Likewise, egress MP 204 may include a DCL 212, a DRL 214, and a signaling application 216. Inorder to facilitate communications between ingress MP 202 and egress MP 204, DRL 208 of ingress MP 202 may be operable to communicate with DRL 214 of egress MP 204. Additionally, DRLs 208 and 214 may each be operable to communicate with DCLs 206 and 212and applications 210 and 216, respectively.
In an exemplary Diameter message routing scenario, Diameter peer node N-1 218 may send a Diameter message to DSR 200. The Diameter message may be received by DCL 206 of ingress MP 202. In one embodiment, the received Diameter message is aDiameter request message. Ingress messages may be processed completely on ingress MP 202 including the selection of a destination Diameter peer node for the Diameter message by DRL 208. Continuing with the above example, DRL 208 may receive a Diametermessage passed by DCL 206.
If local application processing is required, ingress DRL 208 may forward the Diameter message to an appropriate local application prior to the forwarding of the Diameter message to the appropriate egress MP. For example, DRL 208 may forward theDiameter message to local application 210, which processes the message and returns the message to DRL 208. It is appreciated that an application distribution function may not be required.
Next, ingress DRL 208 may forward the Diameter message to egress DRL 214 for forwarding to the local queue associated with DCL 212. Egress DCL 212 may then transmit the Diameter message to Diameter peer node N+1 220. FIG. 3 is a block diagramillustrating an exemplary architecture including dedicated DCL MPs for providing priority routing at a DSR according to an embodiment of the subject matter described herein. In contrast to the full stack-per MP embodiment shown in FIG. 2, the embodimentshown in FIG. 3 includes dedicated MPs for the DCLs, as well as dedicated MPs for the DRLs and local applications. Referring to FIG. 3, DSR 200 may include DCL-MP 300 for receiving Diameter messages from peers and DCL-MP 308 for transmitting Diametermessages to peers. Similarly, DSR 200 may include DRL-MP 302 and DRL-MP 306 for receiving Diameter messages from Diameter peer nodes and for transmitting Diameter messages to Diameter peer nodes. In contrast to a full stack-per MP embodiment (see FIG.2), application-MP 304 may be associated with DRL-MP 302 and may not have a corollary associated with DRL-MP 306. DRL-MPs 302 and 306 may each be operable to communicate with one another.
In an exemplary Diameter message routing scenario analogous to the one described above with respect to FIG. 2, ingress Diameter messages may be received by DCL-MP 300, which may distribute the Diameter messages (e.g., a Diameter requestmessages) to DRL-MPs based on various factors including, but not limited to, the availability, transactions per second (TPS) capacity and congestion status of DRL-MP 302 as compared with other DRL-MPs (not shown in their entirety). In one embodiment,DRL-MP 302 may determine whether signaling application processing required. If application processing is required, ingress DRL-MP 302 may forward the Request message to Appl-MP 304 (also based on its availability, TPS capacity and congestion status).
In one embodiment, ingress DRL-MP 302 may then select a destination peer and route for the Diameter message using a peer routing table (not shown) and ingress DRL-MP 302 may forward the message to egress DRL-MP 306 based on the route selectionprocess. Egress DRL-MP 306 may then forward the Diameter message to egress DCL-MP 308 (for delivery to Diameter peer node N+1 220 as selected by ingress DRL-MP 302.
FIG. 4 is a diagram illustrating an exemplary software architecture including dedicated DCL/DRL MPs and application MPs for providing local application routing at a DSR according to an embodiment of the subject matter described herein. FIG. 4represents a hybrid approach between the full stack per MP of FIG. 2 and the dedicated DCL/DRL/application-MPs of FIG. 3. Referring to FIG. 4, in an exemplary Diameter message routing scenario, Diameter peer node N-1 218 may send a Diameter message toDSR 200. The Diameter message may be received by DCL 206 of ingress MP 202. Ingress Diameter messages may be processed completely on ingress MP 202 including the selection of a destination Diameter peer node for the Diameter message by DRL 208. DCL206 may then pass the Diameter message to DRL 208.
If signaling application processing is required, ingress DRL 208 may forward the Diameter message to local signaling application(s). For example, DRL 208 may forward the Diameter message to local application 304, which may process the messageand return the message to DRL 208. Afterwards, ingress DRL 208 may forward the Diameter message to egress DRL 214 for forwarding to the local queue associated with DCL 212. Egress DCL 212 may then transmit the Diameter message to Diameter peer node N+1220.
FIG. 5 is a block diagram illustrating an exemplary high level message routing flow for providing priority routing at a DSR according to an embodiment of the subject matter described herein. Referring to FIG. 5, Diameter peer node N-1 218 maysend a Diameter request message to DSR 200. In one embodiment, DSR 200 may optionally consult ART 500 in order to determine whether processing of the Diameter message by a Diameter signaling application is needed. If the message content matches an ARTrule, the message is forwarded to the identified application for processing. The searching process may continue iteratively until no additional rule matches are found. For example, ART 500 may forward the message to application 210 for processing and,after the Diameter message is returned to ART 500, the message may then be forwarded to application 216 for processing.
After application processing is completed in DSR 200, ART 500 may forward the message to Peer Routing Table (PRT) 502. In one embodiment, PRT 502 may be searched after ART 500 searching is completed such that if the message content (afterapplication processing updates) matches a rule in PRT 502, the message may be routed to a Diameter peer node as defined by a Route List in route list table 504 associated with the rule. Thus, the message may be sent to Diameter peer N+1 220 after routelist table 504 is consulted.
By using a single DSR configuration as described above, redundant DRL routing on both the ingress and egress MPs may be eliminated. For example, the ingress MP may be configured to receive a Diameter message from a first Diameter peer node andbe responsible for conducting ART and PRT searches and a route selection process. The ingress MP would select a route from the Active Route Group and forward both the Diameter message received from a sending Diameter peer node and the selected route tothe egress DSR MP that controls the Diameter peer connection. Notably, when the egress MP on the DSR receives a Diameter request message from an ingress MP containing a route, the egress MP will bypass local ART and PRT process described above andattempt to deliver the message to the Diameter peer node selected by the ingress MP.
This is aspect is depicted in FIG. 6, which is a block diagram illustrating an exemplary scalable DSR including functional partitioning for providing priority routing according to an embodiment of the subject matter described herein. Referringto FIG. 6, the ingress MP 202 and egress MP 204 are utilized to perform steps associated with route list processing 700. In one embodiment, ingress MP 202 is configured to conduct the selection of the Active Route Group step (step 520) and the selectionof a route from the route group step (step 610). Specifically, ART 500, local application 210, PRT 502, and the selection of a route group step 520 and the selection of a route from the route group step (step 610) of route list processing 700 may beassociated with ingress MP 202. Likewise, the Diameter message delivery step (step 620) of route list processing 700 may be associated with egress MP 204. If egress MP 204 cannot route the message (e.g., the Diameter peer node is unavailable), egressMP 204 will send a response to ingress MP 202. In response, ingress MP 202 may then select a next viable route from the Active Route Group.
In one embodiment, the inter-MP Diameter message routing with the scalable DSR may be optimized. In order to minimize overhead associated with inter-MP routing of Diameter messages, the overhead of Diameter messages on inter-MP links should beavoided. Namely, forwarding a Diameter request message from the ingress MP to the egress MP may involve the ingress DRL creating a new Hop-by-Hop identifier for the request message directed toward the egress MP. Specifically, the ingress DRL may inserta MP identifier into the Hop-by-Hop identifier, which allows an egress DRL to back-route a Diameter answer response message to an ingress DRL. If the egress DRL happens to encounter an error (e.g., the failure of the second Diameter peer node, thetransport queue is full, etc.), the egress DRL may send an error response (with a cause code) to the ingress DRL. In one embodiment, the error response may include either a Diameter answer message or an internal message.
In one embodiment, egress-to-ingress MP Diameter answer messages may be forwarded upon the egress DRL validating the embedded MP identifier in the Diameter answer message's Hop-by-Hop identifier. If the MP identifier is valid and the MP isavailable, the egress DRL internally routes the Diameter answer message to the ingress DRL for Diameter back-routing processing. If either the MP identifier is invalid or the MP is unavailable, then the egress DRL may discard the Diameter answer messagereceived from a second Diameter peer node. Notably, any Diameter answer messages received by the Ingress DRL from an egress DRL may be processed as if the Diameter message has been received directly from the second Diameter peer node.
FIG. 7 is an exemplary Diameter signaling flow diagram illustrating inter-MP routing according to an embodiment of the subject matter described herein. Diameter peer node 218 is depicted as sending a Diameter request message, which includes aHop-by-Hop identifier that is equal to 100, to ingress MP 202 in a DSR. Ingress MP 202 may then use the Diameter request message, whose parameters match a PRT rule with an Action of "Route to Peer". Ingress MP 202 may then select the first route fromthe Route List's Active Route Group (which is indicated by a priority identifier), create a new Hop-by-Hop ID containing the MP identifier of the ingress MP(e.g., ID=200), and forward the Diameter message to the egress MP's DCL layer that controls theconnection to Diameter peer node 220. When egress DSR MP 204 receives a request message from ingress MP 202 containing a route, egress MP 204 may bypass DRL processing and attempt to queue the Diameter request message to the Diameter peer node 220(i.e., the peer node selected by ingress MP 202) unmodified. Egress MP 204 then sends the Diameter request message to the Diameter peer node indicated in the Diameter request message (e.g., "Peer=X1"). After receiving the Diameter request message,Diameter peer node 220 responds by transmitting a Diameter answer message with Hop-by-Hop identifier=200 to egress MP 204. When egress MP 204 receives the Diameter answer message from Diameter peer node 220, egress MP 204 routes the message to the MPidentified in the Hop-by-Hop ID (i.e., ingress MP 202). Upon receiving the Diameter message, ingress MP 202 modifies the Hop-by-Hop ID from "200" to "100" and forwards the message to Diameter peer node 218 to complete the back tracking process. Notably, the Diameter answer message sent by Diameter peer node 220 to Diameter peer node 218 traverses through the same "path" of egress and ingress message processors that were utilized to transmit the Diameter request message from Diameter peer node218 to Diameter peer node 220. In one embodiment, each of the ingress and egress message processors maintains state information associated with the Diameter session or connection. In another embodiment, the ingress and egress message processors may useand modify the Hop-by-Hop identifiers in the Diameter messages to ensure that the entire Diameter request-answer communication transaction is handled by the same ingress and egress message processors. For example, in the DSR, the ingress MP (MP1) mayreceive a Diameter message, M1, on a connection C10, with a hop-by-hop ID=250. The ingress MP may then select an egress MP (MP2), on a connection C20, and generate a new hop-by-hop-ID=01000231. Notably, MP1 generates a hop-by-hop ID that encodes theingress MP into the hop-by-hop ID For example, the hop-by-hop ID is 32 bits: 8 bits which encode the ingress MP's address and 24 bits which are an increasing counter starting from 0. Every egress MP that receives an Answer message from a peer diameternode can forward the Answer message to the original ingress MP. This is because the peer is configured to return an Answer message using the original hop-by-hop ID. The egress MP can access the 8 bits where the original ingress MP's address wasencoded. Also, the egress MP may forward the Answer message to the ingress MP. The egress MP identifies itself (MP2) and the connection it received the Answer message on (C20) when it forwards the Answer message. Furthermore, the ingress MP may usethe connection ID and the 24-bit sequence number as a KEY to lookup the original ingress Request message. For example, the KEY=C20+000231 where the result is Connection C10 and the message with hop-by-hop ID=250.
In an alternate embodiment, where multiple Diameter message processors may be associated with or service the same Diameter peer connection, the present subject matter allows for the ingress MP that receives a Diameter answer message to select anegress MP that is different from the MP that received the associated Diameter request message. As such, in the event that an MP which served as the ingress MP for a Diameter request message fails (or becomes unavailable) prior to receipt at the DSR ofan associated answer message, the Diameter answer message may be internally routed by the ingress MP to an egress MP that is different from the failed MP.
FIG. 8 is an exemplary signaling flow diagram illustrating a first routing attempt rejected by an egress MP due to the unavailability of a Diameter peer node according to an embodiment of the subject matter described herein. Diameter peer node218 is depicted as sending a Diameter request message, which includes a Hop-by-Hop identifier that is equal to 100 (which identifies peer node 218), to ingress MP 202 in a DSR. Ingress MP 202 searches ART and the PRT (not shown) in order to determine ifthe parameters in the Diameter request message matches a PRT rule "Route to Peer" which is then paired with a Route List Name. Ingress MP 202 may then select the first route from the Route List's Active Route Group (e.g., Peer=X1 via egress MP 204)whose current status on the ingress MP is "Available". Ingress MP 202 may then create a new Hop-by-Hop identifier containing its MP identifier and subsequently forward the request message to egress MP 204 along with the selected route (Peer=X1). Inthis particular scenario, Diameter peer node 220 is indicated as being "Unavailable" on egress MP 204 and egress MP 204 rejects the Diameter request message. Thus, routing fails for the first route selected. In response, ingress MP 202 may update thestatus of Diameter peer node 220 on egress MP 204 to "Unavailable" and select a route to another peer node, i.e., Diameter peer node 820. Ingress MP 202 may also create a new Hop-by-Hop identifier containing its MP identifier and re-forward the Diameterrequest message to egress MP 804, which controls the new route. Egress MP 804 then forwards the Diameter request message to Diameter peer node 820. Diameter peer node 820 responds by sending a Diameter answer message indicating success (i.e.,DIAMETER_SUCESS) back to egress MP 804. When egress MP 804 receives a Diameter answer message from Diameter peer node 820, egress MP 804 routes the Diameter answer message to ingress MP 202, which is identified by the Hop-by-Hop identifier. Ingress MP202 may then, in turn, forward the Diameter answer message to Diameter peer node 218.
FIG. 9 is an exemplary signaling flow diagram illustrating a scenario where no routes support the application identifier in an ingress Diameter request message according to an embodiment of the subject matter described herein. Diameter peernode 218 is depicted as sending a Diameter request message, which indicates the need for a Diameter application identified by ID=87, to ingress MP 202. Ingress MP 202 may search ART and PRT (not shown) in order to determine if parameters in the receivedDiameter request message matches a PRT rule "Route to Peer", which is then paired with a Route List Name. The Route List's Active Route Group may indicate two Available routes (e.g., egress MP 204 to peer node 220 and egress MP 804 to peer node 820). However, in this scenario, neither Diameter peer node 220 nor Diameter peer node 820 supports the Application ID=87. Consequently, ingress MP 202 sends a Diameter answer message, which indicates that the Diameter request message was unable to bedelivered, to Diameter peer node 218.
In one embodiment, a scalable DSR may be used to route Diameter messages to Diameter peer nodes. After local application routing has completed on the DSR (or not invoked if the DSR has no locally configured services/applications), the ingressDRL on a DSR may search the PRT using parameters included in the Diameter message. In one embodiment, the PRT may include a plurality of message content matching rule entries, each of which may have one of the following Actions assigned by a networkoperator. For example, the assigned Action may either be "Route to Peer" or "Send Answer response". If the Action is "Route to Peer", the rule may be associated with a "Route List" that the ingress DRL can use to route the Diameter message towards theultimate message destination (i.e., a Diameter peer node). In one embodiment, a Route List consists of one or more routes, each of which is associated with a specific Diameter peer node. An exemplary route list 1000 is depicted in FIG. 10. FIG. 10depicts an exemplary route table 1000 that includes a plurality of route lists (e.g., route list-1, route list-2, route list-3). FIG. 11 illustrates a conceptual view of an exemplary route list that includes multiple route groups. Specifically, FIG. 11depicts the conceptual view of route list-1 in route list table 1000 (as shown in FIG. 10). DSR 1100 may communicate with three Diameter peer nodes in route group 1102 via three weighted routes. Notably, DSR 110 may send Diameter messages to routegroups 1104 and 1106 via the weighed routes as shown in FIG. 11.
As indicated above, a "route" may actually represent a specific Diameter peer node. Because more than one route can be assigned to a "Route List", each route may be assigned a priority and weight to provide assistance in the route selectionprocess. A set of routes in a Route List with equal priority may be called a "Route Group". In one embodiment, a Route Group in a Route List may be used for routing messages selected by a PRT rule. The Route Group that is currently being used forrouting, based on Route Group availability and capacity rules, may be called the "Active Route Group."
The routing of Diameter messages from a DSR to a Diameter peer node is conducted in accordance with certain rules or objectives. In one embodiment, the DSR may support routing to Diameter peer nodes that is consistent with DNS load-sharerouting required by 1) the ability to define multiple Route Groups to a Diameter peer node using costs/priorities and/or 2) the ability to load share messages across multiple routes within the same priority (Route Group) using route weights. However,the DSR may not select a route within a Route Group if the Diameter peer node does not support the Diameter application indicated by the application ID in the message or if a Diameter peer node has already processed the message (i.e., message loopingdetection). Also, the DSR may not select a route if the Diameter peer node's transport layer queue is full. In one embodiment, the DSR may reduce the percentage of messages the DSR routes to a Diameter peer node based on the peer node's level ofcongestion. In another embodiment, the DSR may not attempt to select a route more than once for routing the same Diameter message. In yet another embodiment, the DSR should not exceed the Diameter peer node's rated capacity.
In one embodiment, the DSR may attempt to route a message to a Diameter peer node using the highest priority Route Group in the Route List that is available. A Route Group is "available" if all of the following criteria are met. First, atleast one route in the set is "Available" and the available routes in the set meet the minimum capacity requirement assigned to the Route List. Please note that "capacity" may be defined in terms of route weights. For example, if the minimum capacityassigned to a Route List is "5", and Route Group-1 is comprised of Route-A (weight=4) and Route-B (weight=6), then Route Group-1 is Available only if Route-B is Available. Also, the DSR may be configured to send a Diameter answer message indicating"DIAMETER_UNABLE_TO_DELIVER" if the peer routing process selects a Route List that does not have any available Route Groups.
As mentioned above, the PRT may include a number of contents, such as a rule name, a rule priority, and a plurality of message selection parameters. As used herein, the rule name is an operator provided name for identification. Similarly, therule priority refers to the selection of a table entry with the highest priority in the event a table query finds multiple matches. As used herein and indicated above, rule message selection parameters include Diameter message parameters that the usermay specify as criteria for message matching. Exemplary rule message selection parameters in the PRT (which may match parameters in the Diameter message) include: 1) a Destination-Realm which is similar to Diameter Realm Routing Table and has anOctetString core data type, 2) an Application ID which is similar to Diameter Realm Routing Table and may be represented by a 32-bit value, and 3) a Destination-Host which is not unlike to "Host Identity" in a Diameter Peer Table and has an OctetStringcore data type, 4) the Origin-Realm, which identifies the realm from which the message was originated and has an OctetString core data type, 5) an Origin-Host that identifies the Host from which the message was originated, 6) a User-Name that identifiesthe user for which this service is being invoked and has an OctetString core data type, and 7) a Command-Code that that includes 24 bits and identifies the request message type. Any value may be supported in order to later add application-specificcommand-codes.
Additional contents of the PRT may include an "Action", which may be defined as the action to perform when the rule is invoked. Exemplary actions include "Route to Peer" (where the Diameter message may be routed to a Diameter peer node definedby the rule's "Route List" field) and "Send Answer Response", which is a Diameter answer response that may be sent using the rules' Result-Code field when a Diameter peer node is unavailable.
In one embodiment, the PRT may also include "Route List Name" and a "Result-Code" parameters associated with a given Action parameter. The Route List name indicates the Route List to be used when the "Action" is set to "Route to Peer". Similarly, the Result-Code includes a Result-Code AVP value to be used when the "Action" is set to "Send Answer Response." The default value of the Result-Code may be 3002 "DIAMETER_UNABLE_TO_DELIVER." For example, if the ingress DRL searches the PRT andis unable to find a match, then a routing failure occurs. The DRL may then send a DIAMETER_UNABLE_TO_DELIVER Answer response message to the original sending Diameter peer node.
FIG. 12 depicts an exemplary PRT 1202 and a related route list table 1204. Notably, PRT 1202 includes a column for one or more route list names, which indicates a specific portion of route list table 1204 that needs to be accessed in order toselect the appropriate route. The entries of route list table 1204 are assigned either a priority=1 or priority=2. Notably, for each route group, the entries indicating a priority=1 constitute an Active Route Group while the entries indicating apriority=2 in constitute a Standby Route Group.
In one embodiment, a PRT utilizes one or more default entries. With the ability to wildcard PRT entries and assign priorities to rules, a network operator may specify routing for Diameter request messages addressed to a specificDestination-Realm (regardless of Application ID), a specific Application ID (regardless of Destination-Ream), or for all request messages. This flexibility enables the network operator to configure one or more specific routing rules and then utilize oneor more default entries to handle everything else. For example, FIG. 13 depicts an exemplary PRT 1300 that includes four routing rules. In this example, the local realm is a realm referenced as "myrealm.com". Rule-3 in PRT 1300 is the default forlocal realm applications other than applications 55 and 57. Similarly, PRT 1300 indicates that Rule-4 is default for all other realms.
FIG. 14 depicts another exemplary PRT that includes a plurality of routing rules. In this Figure, the local realm is "local.com". Referring to the first column of PRT 1400, rules 1-3 are routing rules for known non-local realms, rules 4-5perform routing for local application 10, rules 6-7 perform routing for local application 24, rule 8 is default rule for local realm (e.g., for Application IDs other than 10 or 24), and Rule 9 is default for all other non-local realms.
FIG. 15 depicts another exemplary PRT that includes a plurality of rules. In this Figure, the local realm is "local.com". Referring to the first column of PRT 1500, rules 1-4 are default rules created for a local realm Diameter Client and/orServer peer which indicate support for a single application ID in the CER/CEA handshake. This may be used for Destination-Host routing. Similarly, rules 5-6 in PRT 1500 are for a local realm Diameter Proxy Agent peer which indicates support for twodifferent application IDs in the CER/CEA handshake. Lastly, rules 7-8 are routing rules for a local realm Diameter Relay Agent peer which indicates support for all application IDs (0xffffffff) in a CER/CEA handshake.
In one embodiment, a PRT and associated route lists may be used to route Diameter request messages to a Diameter peer node. For example, entries in the PRT may utilize priority routing schemes that include priority indicators and load sharingrouting schemes that include weights to facilitate the routing of Diameter messages. Priority routing includes defining more than one route to a destination and assigning a relative priority to each route. With priority routing, the route with thehighest priority available Route Group (as indicated with a priority indicator) may be selected for routing. Likewise, load share routing allows for the distributing of Diameter the messages to a set of routes with equal priority (i.e., a Route Group). The distribution of Diameter messages within a Route Group is controlled by assigning a relative weight to each route within a Route Group. The percentage of messages sent to a given route in the Route Group may be determined from the set of Availableroutes in the Route Group (i.e., Unavailable routes are excluded) using the calculation: Percent=100*(weight of Route-X)/(sum of the weights of the available routes in the Route Group)
In one embodiment, a route list may be comprised of multiple route groups in a PRT, wherein each route group has a unique priority within its route list. Two types of route list redundancy schemes may be supported. A first redundancy schememay include all route groups within a route list being eligible for routing messages. In such an embodiment, the route selection may start with the highest priority route group with overflows assigned to lower priority groups when no routes in thehigher priority can be selected. A second redundancy scheme may involve Active/Standby route groups. For example, one Route Group for routing messages may be designated as the "Active Route Group" while all other Route Groups serve as backups to theActive Route Group in the event the Active Route Group fails. These alternate groups are referred to as "Standby Route Groups". In one embodiment, the highest priority Route Group is always the Active Route Group if at least one route in the RouteGroup is Available. The Active/Standby redundancy scheme is typically the default Route List redundancy option supported by the DRL.
FIG. 16 depicts an exemplary route list capacity table 1600 in a PRT that includes route list capacities. The route list capacity may be defined in terms of a weight, similarly to weights assigned to routes within the route list. In oneembodiment, the capacity of a Route Group is the sum of the weights of its available routes as shown in route list capacity table 1600. The DRL may maintain a status for each Route Group in route list capacity table 1600 that can be used to determinewhich Route Group in a Route List should be the Active Route Group for routing all messages for that Route List.
Similarly, the present subject matter may address a route group's availability status. In one embodiment, a route group's availability status may be expressed in terms of its capacity. Statuses may include 1) Available, 2) Degraded, or 3)Unavailable. As used herein with respect to a route group's availability status, "Available" is intended to mean the route group's capacity meets or exceeds the minimum value assigned to the route list, "Degraded" is intended to mean the route group'scapacity is greater than zero but less than the minimum value assigned to the route list, and "Unavailable" is intended to mean the route group's capacity is zero.
In one embodiment, a Route Group is designated the "Active Route Group" for the Route List when it meets one of the following criteria: 1) it is the Highest priority Route Group among Route Groups with the status of "Available", or 2) it is theHighest capacity Route Group when no Route Groups have the status "Available". If more than one Route Group has the same capacity, then the highest priority Route Group is designated as the Active Route group.
In one embodiment, the DRL evaluates and may change the Route Group status and the designated "Active Route Group" for a Route List when any of the following events occur: 1) a Peer (Route) status change (i.e., this potentially impacts multipleRoute Lists), 2) the Route added to a Route List by operator (i.e., this increases capacity of a Route Group if peer's status is Available), 3) the Route is deleted from a Route List by a network operator (i.e., this decreases current capacity of a RouteGroup if peer's status is Available), 4) the route's priority is modified by the network operator, or 5) the route's weight is modified by operator (i.e., this changes the current capacity of associated Route Group if the Diameter peer node's status isAvailable). In one embodiment, an availability status may be maintained for each Route List to quickly facilitate routing decisions when a Route List is selected by a PRT rule. A Route List availability status may be identical to the status of itsActive Route Group. This is depicted in FIG. 17, which illustrates an exemplary Route List 1700 that is comprised of Route Groups 1, 2, and 3.
The present subject matter may include a peer table that contains the list of Diameter peer nodes to which a DSR has direct connections for routing Diameter messages via TCP, SCTP, or UDP transport. Notably, all of the information a DSR MPneeds to know about a peer node is stored in a peer record. Any peer-specific information required in making a decision of routing a message to a peer node may be stored in this table. Peer-specific information may include the peer node's availabilitystatus (i.e., whether at least one active transport connection is available), the peer node's congestion state, and a list of applications IDs the Diameter peer node supports (acquired during Capabilities-Exchange). Any information about the Diameterpeer node which is acquired during the Capabilities-Exchange may be stored in the peer node's record so it can be viewed by the network operator.
In one embodiment, the present subject matter may allow for route selection by the ingress DRL. When routing is invoked for a Diameter message that matches a PRT rule Action of "Route to Peer", the DRL may use the Route List assigned to thatrule for routing the message to a Diameter peer node. In one embodiment, the DRL uses the Route List's currently designated Active Route Group to route the Diameter message. Notably, the "Active Route Group" designation may be determined asynchronouslyfrom message routing based on peer status changes and route list management events. If the Active Route Group has more than one route, then the DRL creates a list of available routes from the Route Group that will be used for all subsequent decisionsabout routing this message. In one embodiment, this list is stored in the "pending transaction record" for this Diameter message in case message rerouting is required after a message is forwarded. Also, Diameter message rerouting may occur after aDiameter message is forwarded if a Diameter peer node failure occurs or if a negative Diameter answer response message is received.
Once a list of available routes for the Diameter message has been created, the DRL may select a route from the list based on the relative weights assigned to each route. As indicated above, weights may be used to proportion traffic acrossroutes in the Route Group. A weight assigned to a route does not serve as the route's priority for route selection within the Route Group, but rather the assigned weight serves to calculate the probability that the route may be selected from the list. For example, if a Route Group is comprised of four routes with weights 40, 30, 20, and 10, respectively, then the probability that Route-1 will be selected first for routing any message is 40% (i.e., 40/(40+30+20+10)). In one embodiment, the DRL selectsa route from the list using a statistical algorithm that utilizes the route weights. For example, the algorithm may select Route-1 40% of the time.
Once the DRL selects a route from the list, the DRL determines whether it is possible to use that route based on certain criteria. In one embodiment, the criteria includes: 1) the Diameter message's Application ID is supported by the peer, 2)the Diameter peer node has not previously processed the message (e.g., the peer node's identity does not match one of the message's Route-Record AVPs), 3) the peer node's transport layer queue is not full, 4) the peer node is congested but the Diametermessage meets the criteria for forwarding the message to the peer (as described below with respect to peer congestion), 5) the peer node's status is Unavailable, and 6) the peer node is no longer associated with the Route Group or Route List.
If a Diameter peer node matches the route selection criteria, standard Request message processing will be invoked (as mentioned above) and the message will be queued on the Diameter peer node's transport layer queue. If a Diameter peer nodedoes not match the route selection criteria then the DRL may remove that route from the list (i.e., a route should never be considered more than once for routing the same message) and the DRL may re-invoke the statistical route selection algorithm basedon the remaining routes in the list. In the previous example, if Route-1 was selected first but did not meet the additional criteria for using that route as defined above, the new list would be limited to routes 2, 3, and 4 with weights 30, 20, and 10,respectively. Thus, with the smaller list of routes, the probability of selecting Route-2 would be 50% (i.e., 30/(30+20+10)=50%). Notably, the route selection process continues until a viable route is found or the list is exhausted. Specifically, ifno peer nodes in the Active Route Group meet the route selection criteria, the DRL may abandon routing and send a DIAMETER_UNABLE_TO_DELIVER Answer response message to the Diameter peer node that originally sent the Diameter request message. FIG. 18illustrates an exemplary route selection process of using a list of equal priority routes with assigned weights. In this Figure, the Active Route Group has four available routes with weights 40, 30, 20, and 10, respectively. Specifically, a statisticalroute selection algorithm is executed by the DRL using the information in initial list 1800. The DRL determines that route 3 is unavailable because of an application ID mismatch. Consequently, the DRL executes a statistical route selection algorithmusing the information in updated list 1802 (which does not include route 3). The DRL then determines that route 1 is unavailable due to congestion. The DRL then executes a statistical route selection algorithm using the information in updated list 1804(which does not include route 1), which results in the selection of route 4. The DRL then forwards the Diameter message using route 4 and generates a pending transaction record 1806. Record 1806 may be subsequently used if the Diameter message must bere-routed due to a peer node failure or the like.
In one embodiment, the present subject matter may utilize peer application identifiers to conduct route selection. As mentioned above, a Diameter message should not be routed to a Diameter peer node that does not support the Applicationidentifier indicated in the Diameter message. The Diameter base protocol indicates that each time a first transport connection is established between Diameter peer nodes, a Capabilities-Exchange is performed before the transport connection is allowed. Namely, a peer node will send the lists of Application IDs it supports in the CER or CEA message. When a DSR receives a list of Application IDs from a peer node, these identifiers are stored in the Peer Table to be accessed during message routing. Whenthe DSR message routing selects a route from a Route List associated with a peer node, the peer node's supported Application ID list is interrogated to verify that the Application ID in the message matches one of the Application IDs supported by the peernode. If an Application ID match is not found, the DSR bypasses this route and continues the route selection process.
In one embodiment, the present subject matter may consider peer congestion to conduct route selection. A Diameter peer node may report congestion by sending an Answer response with Result-Code AVP set to DIAMETER_TOO_BUSY. The congested nodeis identified by the Origin-Host in the Answer response (i.e., the response may not have been sent by a peer node). The DRL should only be concerned with peer congestion, not upstream node congestion. That is, the Diameter protocol is only peer statusaware such that the status of upstream nodes is not tracked or managed. In one embodiment, the DRL may detect peer congestion via DIAMETER_TOO_BUSY Answer responses containing the peer node's identity in the Origin Host AVP and via the transport layerinterface to the peer (e.g., outbound queue depth, etc.).
A peer congestion detection and control solution may be implemented in the DSR that includes monitoring based on internal queue lengths (e.g., SCTP association egress queue). Currently, simple congestion control procedure may involve discardingthe Diameter message if the queue is full. Thus, a DSR may bypass this route during route selection when a Diameter peer node's SCTP egress queue is full. In one embodiment, a DIAMETER_TOO_BUSY Answer response from a peer node may be used to determinethe congestion level of peer node. For example, upon receipt of an initial DIAMETER_TOO_BUSY message, the peer congestion level may be set to "1". The DSR may maintain a rolling window of percentage of Request messages rejected by the DIAMETER_TOO_BUSYresponse and adjust the peer node's congestion level accordingly. It is worth noting that a DIAMETER_TOO_BUSY Answer response received from a peer node may have been originated by an upstream node. The DRL validates that the busy response was initiatedby the peer node (i.e., Origin-Host AVP set to the peer node's FQDN) in order to determine if the peer node is congested.
In one embodiment, the DSR may be configured to receive a Diameter message, which includes a priority indicator parameter, from a sending Diameter peer node. The DSR in this case be configured to inspect the priority indicator in the Diametermessage and route the message in accordance with a priority based rule stored in a Diameter priority-based routing rules database. Notably, there may be situations (e.g., partial network outage, emergency scenario, etc.) when the operator of acommunications network that employs DIAMETER signaling (e.g., IMS, LTE, etc.) may want to prioritize the importance or urgency of various communications within the communications network and control these communications accordingly. For example, in anemergency scenario, a network operator may want to ensure that network resources are preferentially allocated to communications associated with first responders, law enforcement officers, and the like.
Such an embodiment is illustrated in FIG. 19, which depicts a Diameter signaling diagram. Specifically, FIG. 19 depicts a Diameter peer node 218 that sends a Diameter request message with an assigned priority level that indicates a low priority(e.g., PRI=Low). The message is received by DSR 200, which then inspects the received Diameter message for a priority level indicator. In one embodiment, DSR 200 may be configured to decrypt an encrypted priority level indicator parameter uponreceiving the Diameter message from a Diameter peer node. Upon detecting the low priority level indicator, DSR 200 accesses priority-based routing rules database 230 to determine an appropriate routing action to execute. In this scenario, DSR 200 maycross-reference the entries in database 230 with the low priority indicator to determine a "Do Not Route" action. DSR 200 may also be optionally configured to send a Diameter response "error" message back to Diameter peer node 218 indicating that thepriority level of the original Diameter request message is low and will not be routed. If the priority indicator in the original Diameter request message was sufficiently high, database 230 may have indicated that the message be routed on to Diameterpeer node 220.
In another embodiment, DSR 200 may insert, in a received Diameter message, information (e.g., a new parameter) that assigns a priority level to the received Diameter message (or to a communication with which the Diameter message is associated). In one embodiment, the DSR may include a prioritization indicator parameter in a Diameter message that is generated or relayed by the DSR. In one embodiment, the DSR 200 may also encrypt the priority indicator parameter. This priority indicatorparameter may be examined by other Diameter nodes and used to determine if and how the associated communication should be allowed to proceed.
Such an embodiment is illustrated in FIG. 20, which depicts a Diameter signaling diagram. Specifically, FIG. 20 depicts a Diameter peer node 218 that sends a Diameter request message without an assigned priority level. The message is receivedby DSR 200, which then assigns a priority level indicator to the Diameter request message (e.g., PRI=Low). After assigning a priority level indicator, DSR 200 may forward the modified Diameter request message to a Diameter peer node 220, which may beconfigured to determine if and how the modified Diameter request message should be allowed to proceed.
In another embodiment, network operators may want to prioritize communications in order to provide subscribers with varying levels of quality of service (QoS). The varying levels of QoS may depend, for example, on the type of service planpurchased by a subscriber. Such an embodiment is illustrated in FIG. 21, which depicts a Diameter signaling diagram. Specifically, FIG. 21 depicts a Diameter peer node 218 that sends a first Diameter request message with an assigned priority level thatindicates a low priority (e.g., PRI=Low) and a second Diameter request message with an assigned priority level that indicates a high priority (e.g., PRI=High). The messages are received by DSR 200, which then inspects each received Diameter message fora priority level indicator. Upon detecting the low priority level indicator in the first Diameter message and a high priority level indicator in the second Diameter message, DSR 200 accesses priority-based routing rules database 230 to determine anappropriate routing action to execute for each Diameter message. In this scenario, DSR 200 may cross-reference the entries in database 230 with the low priority indicator to determine that the first message should be routed to a Low QoS Diameterresource node 234. Similarly, DSR 200 may cross-reference the entries in database 230 with the high priority indicator to determine that the second message should be routed to a High QoS Diameter resource node 232.
In another embodiment, DSR 200 may be configured to delay the routing of the Diameter message to a destination Diameter node based on the value of the prioritization indicator parameter. For example, upon receiving a plurality of Diametermessages with different prioritization indicator parameters, the Diameter relay node may route the messages in accordance to the level of priority, thereby effectively delaying the Diameter messages with the lowest priority indicator parameters andthereby preferentially allocating routing, processing and/or bandwidth resources towards Diameter messages with higher priority indicator values. For example, FIG. 22 depicts Diameter peer node 218 that sends a first Diameter request message with anassigned priority level that indicates a low priority (e.g., PRI=Low) and a second Diameter request message with an assigned priority level that indicates a high priority (e.g., PRI=High). The messages are received by DSR 200, which then inspects eachreceived Diameter message for a priority level indicator. Upon detecting the low priority level indicator in the first Diameter message and a high priority level indicator in the second Diameter message, DSR 200 accesses priority-based routing rulesdatabase 230 to determine an appropriate routing action to execute for each Diameter message.
DSR 200 may utilize database 230 to determine that only the second Diameter request message with the high, priority level indicator is forwarded to a Diameter resource node 236 and that the first Diameter request message with the low prioritylevel indicator is to be delayed for a period of time or after a certain condition is met. Instead, database 230 may indicate that DSR 200 instead send a Diameter response "error" message back to Diameter peer node 218 indicating that the priority levelof the first Diameter request message is too low and will instead be routed after a predetermined delay period. Alternatively, instead of routing both Diameter request messages to a Diameter resource of an appropriate QoS level, DSR 200 may utilizedatabase 230 to determine that only the second Diameter request message with the high priority level indicator is forwarded to a Diameter resource node 236 and that the first Diameter request message with the low priority level indicator is not to berouted. Instead, database 230 may indicate that DSR 200 instead send a Diameter response "error" message back to Diameter peer node 218 indicating that the priority level of the first Diameter request message is too low and will not be routed.
Position transducer having absolute position compensation
Take-up system for the drive belt of a live roller conveyor
Kit system for cemented prostheses
Method for making silica gel wtih a large active surface area
Catch-cord drawing device for looms