Patent Publication Number: US-8995256-B2

Title: Methods, systems, and computer readable media for performing diameter answer message-based network management at a diameter signaling router (DSR)

Description:
PRIORITY CLAIM 
     This application is a divisional of U.S. patent application Ser. No. 13/026,125, filed Feb. 11, 2011, which claims the benefit of U.S. Provisional Patent Application Ser. No. 61/304,310 filed Feb. 12, 2010; the disclosures of which are incorporated herein by reference in their entireties. 
     STATEMENT OF INCORPORATION BY REFERENCE 
     The disclosures of each of the following commonly-owned, co-pending U.S. Patent Applications filed on Feb. 11, 2011 are hereby incorporated herein by reference in their entireties: 
     “Methods, Systems, And Computer Readable Media for Inter-Diameter-Message Processor Routing,” (Ser. No. 13/025,968); 
     “Methods, Systems, And Computer Readable Media For Source Peer Capacity-Based Diameter Load Sharing” (Ser. No.  1 3/026,031); 
     “Methods, Systems, And Computer Readable Media for Inter-Message Processor Status Sharing,” (Ser. No. 13/026,105); 
     “Methods, Systems, And Computer Readable Media for Providing Priority Routing at a Diameter Node,” (Ser. No. 13/026,060); 
     “Methods, Systems, And Computer Readable Media for Providing Peer Routing at a Diameter Node,” (Ser. No. 13/026,076); 
     “Methods, Systems, And Computer Readable Media for Providing Origin Routing at a Diameter Node,” (Ser. No. 13/026,081); 
     “Methods, Systems, And Computer Readable Media for Providing Local Application Routing at a Diameter Node,” (Ser. No. 13/026,098); 
     “Methods, Systems, And Computer Readable Media For Answer-Based Routing of Diameter Request Messages,” (Ser. No. 13/026,112); 
     “Methods, Systems, And Computer Readable Media for Multi-Interface Monitoring and Correlation of Diameter Signaling Information,” (Ser. No. 13/026,133); “Methods, Systems, And Computer Readable Media for Diameter Protocol Harmonization,” (Ser. No. 13/026,144); 
     “Methods, Systems, And Computer Readable Media for Diameter Network Management,” (Ser. No. 13/026,153); and 
     “Methods, Systems, And Computer Readable Media for Diameter Application Loop Prevention,” (Ser. No. 13/026,162). 
    
    
     TECHNICAL FIELD 
     The subject matter described herein relates to processing of Diameter answer messages. More specifically, the subject matter relates to methods, systems, and computer readable media for performing Diameter answer message-based network management at a Diameter message routing agent, such as a Diameter signaling router (DSR) node. 
     BACKGROUND 
     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 herein by reference herein in its entirety. Diameter communications may use a request-answer message exchange. Conventional Diameter answer message processing, including conventional relaying and proxying of answer messages, may be performed by a Diameter message routing agent. The base Diameter specification requires that answer message responses be routed over the same network path as the corresponding request message was forwarded. When a Diameter agent receives an answer message, it must route the message to the peer from which it received the corresponding request message. In order to ensure that each answer message is returned along the same path as its corresponding request message, the Diameter routing agent may maintain routing state information for each pending Diameter transaction (i.e., a Diameter request awaiting an answer). 
     As such, a Diameter routing agent is typically deployed in such a manner so as to permit the Diameter routing agent to see both the request and answer message portions of a Diameter transaction. However, the processing of answer messages is limited to their specific transactions, even though the answer messages may contain information that is usable for network management purposes. Accordingly, in light of these difficulties, a need exists for improved methods, systems, and computer readable media for improved network management in Diameter networks. 
     SUMMARY 
     Methods, systems, and computer readable media for performing Diameter answer message-based network management at a DSR are disclosed. According to one method, a Diameter answer message that includes error indicator information is received from a first Diameter node at a DSR. The error indicator information included in the Diameter answer message is examined, at the DSR, and the error indicator information is used to update status information for routes maintained by the DSR to the first Diameter node. 
     A system for performing Diameter answer message-based network management is also disclosed. The system includes a Diameter signaling router (DSR). The DSR includes a Diameter message processor for receiving a Diameter answer message that includes error indicator information from a first Diameter node. A network management (NM) module examines the error indicator information contained in the Diameter answer message and uses the error indicator information to update status information for routes maintained by the DSR to the first Diameter node. 
     According to another aspect, a method for providing network management is disclosed. The method includes establishing a lost answer message timer signifying a time period, after which, if an answer message responsive to a Diameter request message has not been received, it is determined that the answer message is lost. In response to determining that an answer message is lost, network management information maintained at the DSR may be updated and potentially distributed to other interested Diameter peer nodes. Additionally, resources may be deallocated by the DSR, which may include removing one or more pending transaction records maintained by the DSR. 
     According to another aspect, a system for unsolicited network management communication is disclosed. The system includes a DSR. The DSR includes a network management module for establishing a lost answer message timer signifying a time period, after which, if an answer message responsive to a Diameter request has not been received, it is determined that the answer message is lost and for updating Diameter network management information associated with a Diameter request message in response to determining that no Diameter answer message related to a Diameter request message was detected prior to expiration of the lost answer message timer. The system further includes a Diameter message processor for communicating Diameter network management information associated with a Diameter request message to one or more Diameter nodes in the network. 
     The subject matter described herein can be implemented in software in combination with hardware and/or firmware. For example, the subject matter described herein can be implemented in software executed by a processor. In one exemplary implementation, the subject matter described herein can be implemented using a non-transitory computer readable medium having stored thereon executable instructions that when executed by the processor of 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 plural computing platforms. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The subject matter described herein will now be explained with reference to the accompanying drawings of which: 
         FIG. 1A  is a block diagram of an exemplary Diameter signaling router for performing Diameter answer message-based network management according to an embodiment of the subject matter described herein; 
         FIG. 1B  is a block diagram of a Diameter signaling router having a distributed internal architecture according to an embodiment of the subject matter described herein; 
         FIG. 2  is a flow chart illustrating exemplary steps for updating status information for routes based on error indicator information contained in a Diameter message as part of performing Diameter answer message-based network management at a DSR according to an embodiment of the subject matter described herein; 
         FIG. 3  is a message sequence diagram illustrating an exemplary broadcast scenario as part of performing Diameter answer message-based network management at a DSR according to an embodiment of the subject matter described herein; 
         FIG. 4  is a flow chart illustrating exemplary steps for caching Diameter information and responding on behalf of another Diameter node as part of performing Diameter answer message-based network management at a DSR according to an embodiment of the subject matter described herein; 
         FIG. 5  is a message sequence diagram illustrating an exemplary conditional-on-Response “error” condition proxy scenario as part of performing Diameter answer message-based network management at a DSR according to an embodiment of the subject matter described herein; 
         FIG. 6  is a message sequence diagram illustrating an exemplary conditional-on-absence of Response condition proxy scenario as part of performing Diameter answer message-based network management at a DSR according to an embodiment of the subject matter described herein; and 
         FIGS. 7A and 7B  are diagrams illustrating an exemplary answer-based internal status sharing scenario as part of performing Diameter answer message-based network management at a DSR according to an embodiment of the subject matter described herein. 
     
    
    
     DETAILED DESCRIPTION 
     As mentioned above, a Diameter routing agent is typically deployed in such a manner so as to permit the Diameter routing agent to see both the request and answer message portions of a Diameter transaction. Accordingly, the subject matter described herein includes methods, systems, and computer readable media for exploiting this particular characteristic of Diameter message routing/propagation through a Diameter network in order to obtain and share Diameter network status/network management information among interested Diameter entities in the network. 
       FIG. 1A  is a block diagram of an exemplary Diameter relay/signaling routing node for performing Diameter answer message-based network management according to embodiments of the subject matter described herein. Referring to  FIG. 1A , Diameter signaling router (DSR)  100  may include a Diameter connection layer (DCL), Diameter routing layer (DRL), one or more applications, and one or more routing tables. DSR  100  may perform a variety of Diameter message routing functions and, therefore, may include functionality of a Diameter routing agent, Diameter relay agent, Diameter redirect agent, Diameter proxy agent, and/or Diameter translation agent. Exemplary DRL capabilities may include: routing request messages to peers or local applications based on message content, discarding or rejecting Diameter request messages based on message content rules, peer congestion control, allowing an operator to access only the features and capacities that are purchased, and easier configuration. In addition to message routing, DSR  100  may support a variety of value-add services/applications. In order to support both application processing and core Diameter routing functions, DSR  100  may support two message routing tables: an application routing table (ART) and a peer routing table (PRT). Additionally, the subject matter described herein for performing Diameter answer message-based network management may be designed with the assumption that answer messages and/or request messages will be lost and, therefore, effectively handle lost answer messages in order to avoid wasting memory or other resources to maintain pending transaction records for transactions that are no longer pending. 
     Diameter message processor  101  may be a printed circuit board including the processor and associated memory for performing Diameter routing and answer based message processing as described herein. As such, Diameter message processor  101  may support a variety of layers and applications by performing these functions. One layer on Diameter message processor  101  is Diameter application layer (DAL)  102 . 
     DAL  102  may include applications  104 . Exemplary applications  104  may include, but are not limited to, a Diameter client, Diameter server, translation agent, proxy agent, redirect agent, and a load generator. DAL  102  may also include timer  106  and application data  108 . DAL  102  may interface with Diameter message encode/decode library  110  for encoding and decoding Diameter messages. 
     Common platform services  112  may include buffer services  114 , database services  116 , measurements events alarms and logs (MEAL) services  118 , and high availability (HA) services  120 . 
     Diameter message processor  101  may further include Diameter routing layer (DRL)  124 . DRL  124  may be responsible for the following functions. DRL  124  may perform ingress and egress message looping detection and prevention. DRL  124  may route ingress message to one or more local DSR applications based upon user-define rules. DRL  124  may reroute messages upon failures. DRL  124  may perform message routing based upon route priorities and weights. DRL  124  may perform message routing based upon user-defined message content. DRL  124  may perform message routing to peers with multiple transport connections. DRL  124  may manage peer transport connections (TPS). DRL  124  may throttle ingress messages based upon local DSR congestion. DRL  124  may detect and avoid peer congestion. DRL  124  may load balance peer connection load to meet MP TPS constraints. 
     DRL  124  may include answer-based request routing module  126 , event processing module  128 , DRL rerouting module  130 , answer routing module  132 , routing data  134 , and DRL timer task  136 . Answer-based request routing module  126  may route request messages based on information determined from previously received answer messages. The functionality of routing answer messages based on request messages is described in detail in the above-described commonly-assigned patent application entitled, “Methods, Systems, and Computer Readable Media for Answer-Based Routing of Diameter Request Messages.” Message processor  101  may further include Diameter network management module  137  for updating route data  134  based on information learned from answer messages. The functionality of network management module  137  will be described in further detail below. 
     DRL  124  may communicate with DAL  102  via message-based APIs. For example, DRL  124  may use application indication and application request APIs to communicate with DAL  102 . 
     Diameter connection layer (DCL)  138  may perform the following functions. DCL  138  may implement Diameter connection state machine  140  for each Diameter peer. DCL  138  may establish transport connections with Diameter peers and process Diameter peer-to-peer messages and related functionality. This may include capabilities exchange request/answer (CER/CEA), Diameter Watchdog request/answer (DWR/DWA), and Disconnect Peer request/answer (DPR/DPA). DCL  138  may interface with the DRL  124  by sending Diameter messages received from peers to DRL  124  using one or more message-based APIs. DCL  138  may send Diameter messages received from DRL  124  to the appropriate peer. DCL  138  may notify DRL of peer transport connection and congestion status changes. DCL  138  may process configuration and maintenance requests from DSR OAM for transport configuration objects. DCL  138  may update MEAL data for transport configuration objects. DCL  138  may perform transport layer capacity control. 
     DCL  138  may include Diameter message dispatch module  140 , DCL listener module  142 , DCL timer task  144 , and connection data  145 . 
     DCL  138  may also include one or more IP transport tasks. For example, DCL  138  may include IP transport task  146  and  148 , where each IP transport task includes a receiving thread and a transmitting thread. For example, IP transport task  146  includes Rx thread  150  and Tx thread  152  and IP transport task  148  includes Rx thread  154  and Tx thread  156 . IP transport tasks  146  and  148  may each communicate with SCTP/TCP sockets for interfacing with an operating system. For example, IP transport task  146  may communicate with SCTP/TCP socket  158  and IP transport task  148  may communicate with SCTP/TCP socket  160 . SCTP/TCP sockets  158  and  160  may be associated with OS  162 . 
     For simplicity, DSR  100  illustrated in  FIG. 1A  includes a single message processor  101 . This is one possible configuration of DSR  100 , where a single message processor routes all Diameter signaling messages. However, DSR  100  may include full message processors, each configured as message processor  101  illustrated in  FIG. 1A .  FIG. 1B  illustrates such an embodiment. In  FIG. 1B , DSR  100  includes a plurality of message processors  101 A-D, each of which sends Diameter signaling messages to and receives Diameter signaling messages from a Diameter network. Message processors  101 A-D may be connected through an internal network  162 . Although each message processor  101 A-D may include all of the components of message processor  101  illustrated in  FIG. 1A , for simplicity, only network management modules  137  and routing data  134  are illustrated in  FIG. 1B . In operation, when a Diameter message arrives at one of message processors  101 A-D, the message is routed based on Diameter signaling information and the message from the ingress message processor to the egress message processor, and from the egress message processor to the Diameter network. As will be described in detail below, each Diameter message processor  101 A-D may perform the steps described herein for answer-based network management, which may be used to update routing or status information maintained by each message processor. 
       FIG. 2  is a flow chart illustrating exemplary steps for providing network management in a communications network that includes a Diameter relay/signaling routing node according to an embodiment of the subject matter described herein. Referring to  FIG. 2 , in step  200 , a Diameter answer message sent by a first Diameter node may be received at a DSR element that maintains Diameter route and route status information for routing Diameter messages to nodes in a Diameter network, where the Diameter answer message includes error indicator information. 
     In step  202 , the error indicator information contained in the Diameter message may be examined. For example, the error indicator information may include error Diameter_Too_Busy or any other error indicators specified in the Diameter base protocol. 
     In step  204 , the error indicator information may be used to update status information for routes to the first Diameter node. For example, network management module  137  may update routing data  134  based on status information from a received answer message. 
       FIG. 3  is a message flow diagram illustrating an exemplary message sequence for providing network management in a communications network that includes a Diameter routing agent/translation agent/proxy agent/relay agent/redirect agent/signaling routing node according to an embodiment of the subject matter described herein. Referring to  FIG. 3 , DSR  100  and associated answer-based network management module  137  may communicate with Diameter peer node  300 , Diameter peer node  302  and Diameter node  304 . For example, Diameter peer node  300  may send Diameter request message  306  to DSR  100 . DSR  100  may forward Diameter request message  308  to Diameter node  304 . In response, Diameter node  304  may return Diameter response message  310  that includes error indicator information to DSR  100 . At step  312 , DSR  100  may analyze Diameter answer message  310  and its error indicator information and generate a network management message. DSR  100  may then send Diameter answer message  314  including the error indicator information to Diameter peer node  300  and Diameter network management message  316  to Diameter peer  302 . Diameter network management message  316  may, for example, include an error cause code and the identity of the affected Diameter node (e.g., the fully qualified domain name for Diameter node  304 ). 
       FIG. 4  is a flow chart illustrating exemplary steps for providing answer-based network management according to an embodiment of the subject matter described herein. Referring to  FIG. 4 , in step  400 , a first Diameter answer message sent by a first Diameter node is received at a DSR node, where the first Diameter answer message includes error indicator information. For example, DSR  100  may receive an answer message from a Diameter server node. 
     In step  402 , information that identifies the affected Diameter node (or an application subsystem associated with the affected Diameter node) and associated error indicator information is cached based on the first Diameter answer message. For example, DSR  100  may cache information from the answer message that identifies an affected subsystem of the Diameter server. 
     In step  404 , a first Diameter request message sent by a second Diameter node is received at the DSR node, where the first Diameter request message is destined for the first Diameter node. For example, a Diameter client may send a request message to DSR  100 , where the request is destined for the Diameter server. 
     In step  406 , a second Diameter answer message is generated on behalf of the first Diameter node, where the second Diameter answer message includes information that is based on at least a portion of the error indicator information. For example, DSR  100  may use the cached information to generate an answer message on behalf of the server. 
     In step  408 , the second Diameter answer message is communicated to the second Diameter node. For example, DSR  100  may send the generated answer to the client that originated the request. 
       FIG. 5  is a message sequence diagram illustrating an exemplary message sequence for providing network management in a communications network that includes a Diameter relay/signaling routing node according to an embodiment of the subject matter described herein. Referring to  FIG. 5 , Diameter peer node  300  may send Diameter request message  500  to DSR  100 . DSR  100  may forward Diameter request message  502  to Diameter node  304 . In response, Diameter node  304  may return Diameter answer message  504  that includes error indicator information to DSR  100 . At step  506 , DSR  100  may analyze Diameter answer message  504  and its error indicator information. DSR  100  may then send Diameter answer message  508  including the error indicator information or information that is based at least in part on the error indicator information to Diameter peer node  300 . DSR  100  may also send Diameter request message  510  and Diameter answer message  512  including the error information or information that is based at least in part on the error indicator information to Diameter peer node  302 . 
       FIG. 6  is a message sequence diagram illustrating an exemplary message sequence for providing network management in a communications network that includes a Diameter relay/signaling routing node according to an embodiment of the subject matter described herein. Referring to  FIG. 6 , Diameter peer node  300  may send Diameter request message  600  to DSR  100 . DSR  100  may route Diameter request message  602  to Diameter node  304 . At step  604 , DSR  100  may start a timer for awaiting an answer to Diameter request message  602 . At step  606 , the response timer may expire without receiving a Diameter response message to Diameter request message  602 . At step  608 , status information associated with Diameter node  304  may be updated. Additionally, at step  608 , upon receipt of a next Diameter request message destined for Diameter node  304 , DSR  100  may proxy a Diameter response message including error indicator information on behalf of Diameter node  304 . DSR  100  may then send Diameter request message  610  and Diameter response message including the error indicator information to Diameter peer node  302 . 
     In an alternate embodiment, DSR  100  may start a timer when a Diameter request message is routed to or towards a destination and subsequently detect the expiration of this timer. If a Diameter answer message, related to the previously routed Diameter request message, is not detected prior to the expiration of the timer, then DSR  100  may be adapted to update internal route or destination status information associated with the Diameter request message. DSR  100  may further communicate associated Diameter network management/status information associated with the route or destination of the Diameter request message to one or more Diameter nodes in the network. For example, DSR  100  may communicate a network management message to a Diameter node in the network, where the network management message includes information which indicates that the route or destination associated with the Diameter request message is experiencing problems (e.g., congested, unavailable, unreachable, is not responding, etc.). Such unsolicited network management notifications may be made to other Diameter nodes (e.g., Diameter routing agents, Diameter application servers, etc.) that have been either statically or dynamically provisioned. A statically provisioned list/table/database of subscribing and subscribed-to Diameter nodes may be pre-provisioned at DSR  100 . A dynamically provisioned list/table/database of subscribing and subscribed-to Diameter nodes may be constructed in real-time at DSR  100  as each “interested” Diameter node signals the router with information identifying those Diameter nodes to which it would like to subscribe to network management information updates. Such network management subscription information may be maintained, for example, at DSR  100  by a process or module associated with DRL  124  or DAL  102 . 
     Answer-Based Internal Status Sharing 
       FIGS. 7A and 7B  are diagrams illustrating an exemplary answer-based internal status sharing scenario as part of performing Diameter answer message-based network management at a DSR according to an embodiment of the subject matter described herein. Referring to  FIG. 7A , DSR logical network element  700  may include multiple virtual Diameter relay nodes  702 ,  704 ,  706 , and  708 . Each virtual Diameter relay node  702 - 708  may be associated with a peer routing table (PRT) and application routing table (ART)  710 ,  712 ,  714 , and  716 , respectively. DSR logical network element  700  may be a DSR, such as DSR  100 , where each MP functions as a virtual Diameter relay node. As such, network management information learned by one virtual relay node based on a received answer message may be directed to other relay nodes within NE  700 . 
     ARTs  710 - 716  may each contain a prioritized list of user-configurable routing rules which define which local applications to invoke, and in which order, based upon message content. 
     PRTs  710 - 716  may each contain a prioritized list of user-configurable routing rules which define where to route a message to a peer based upon message content. 
     Diameter peer node  718  may send Diameter request message  720  to virtual Diameter relay node  702 . Virtual Diameter relay node  702  may then direct Diameter request message  722  to egress virtual Diameter relay node  708 . Virtual Diameter relay node  708  may then start a response/answer timer and route Diameter request message  726  to Diameter peer node  728 . 
     Referring to  FIG. 7B , at step  730 , the response/answer timer may expire before virtual Diameter relay node  708  receives Diameter response message  732  associated with Diameter request message  726 . It is appreciated that Diameter response message  732  may include internal status update information for Diameter peer node  728 . 
     Virtual Diameter relay node  708  may then communicate status update information to some or all virtual Diameter relay nodes in the DSR. For example, virtual Diameter relay node  708  may communicate status updates  734 A,  734 B, and  734 C to virtual Diameter relay nodes  706 ,  702 , and  704 , respectively. In response, virtual Diameter relay nodes  706 ,  702 , and  704  may update their respective ARTs and PRTs  714 ,  710 , and  712 , respectively, with the status information provided in status updates  734 A,  734 B, and  734 C. 
     Lost Answer Responses 
     When answer messages are lost prior to their receipt by DSR  100 , the “pending transactions” associated with the lost answer messages should either be aborted (answer response sent to peer) or re-routed. Since DSR  100  cannot directly “detect” a lost answer message, nor can it query the remote status of a forwarded Request message, it may predict with high probability that one has been lost. 
     One such prediction method may be time-based. If an answer has not been received in “X” seconds, then the answer message may be assumed to most likely be lost. The larger the value of “X”, the higher the probability of loss. In one embodiment, a DRL “Lost answer Timer” may be supported and operator-configurable. An exemplary default value for X may be  30  seconds. It may be appreciated that the value of X may also be application dependent. For example, if the “Lost answer Timer” is application specific and DSR  100  supports multiple applications, the value may be per-application specific. It may also be appreciated that when the “Lost answer Timer” expires, DRL  124  may abort the transaction (default) and send an answer Response message. In another embodiment, DRL  124  may re-route the transaction. 
     Processing Answer Responses from Redirect Agents 
     It may be appreciated that the process for redirecting a response message may be a DRL-configurable option. 
     According to one embodiment, the response message may be propagated backwards. This may be a default option. 
     According to another embodiment, the response message may be re-routed using Redirect-Host AVPs. 
     Routing Answer Responses to Unavailable/Congested Peers 
     When DRL  124  receives an answer message and the message cannot be immediately delivered because the transport layer queue for the peer is full or the peer is congested, then DRL  124  has two options: delay delivery of the message within DRL  124  or immediately discard the answer message. 
     Delaying delivery of the message within DRL  124  may include buffering answer messages for a configurable time-period X 1 . If the peer&#39;s status changes before the timer expires, then the buffered answer messages may be forwarded. If the timer expires and the peer is Available, then an attempt may be made to forward the buffered answer message until the buffer is flushed or another blocking condition occurs (e.g., transport queue full). In order to prevent an answer message from being queued indefinitely, a “maximum answer message queue delay” may be supported (i.e., message aging) where the answer message may be discarded when the above mentioned maximum delay is exceeded. It may be appreciated that if the transport connection is blocked for an inordinate period of time, preventing any answer messages from being sent, the transport layer may be disconnected in order to clear the condition and trigger the peer to re-forward the messages in the pending transaction queue(s). 
     It will be understood that various details of the subject matter described herein may be changed without departing from the scope of the subject matter described herein. Furthermore, the foregoing description is for the purpose of illustration only, and not for the purpose of limitation, as the subject matter described herein is defined by the claims as set forth hereinafter.