# Patent

## Title
Methods, systems, and computer readable media for diameter protocol harmonization

## Abstract

According to one aspect, the subject matter described herein includes a method for providing Diameter protocol harmonization. The method includes steps occurring at a Diameter node. The method further includes determining a first Diameter protocol associated with received Diameter information that is to be sent to a destination. The method also includes determining a second Diameter protocol associated with the destination. The method further includes harmonizing the received Diameter information such that the harmonized Diameter information is compatible with the second Diameter protocol. The method also includes providing the harmonized Diameter information to the destination.

## Background
PRIORITY CLAIM
This application claims the benefit of U.S. Provisional Patent Application Ser. No. 61/304,310 filed Feb. 12, 2010; the disclosure of which is incorporated herein by reference in its entirety.


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. 13/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 Performing Diameter Answer Message-Based Network Management At A Diameter Signaling Router (DSR),” (Ser. No. 13/026,125);
“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 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 methods, systems, and computer readable media for communications in a communications network. More particularly, the subject matter described herein relates to methods, systems, and computer readable media for Diameter protocol harmonization.
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 International Engineering Task Force (IETF) request for comments (RFC) 3588 which is incorporated by reference herein in its entirety. Extensions to the base protocol also exist, with some extensions having defined standards. For example, RFC 4072 defines Diameter Extensible Authentication Protocol (EAP) Application.
While a standard may generally describe scope and other characteristics of a Diameter protocol, the standard may also allow for various implementation choices. For example, vendor ‘A’ may implement or use a Diameter protocol that creates Diameter messages that are different (e.g., partially or fully incompatible) from Diameter messages created using a second vendor's implementation. Diameter protocol incompatibility can cause various problems. For example, Diameter nodes that use incompatible Diameter protocols may be unable to effectively communicate.
Accordingly, there exists a need for methods, systems, and computer readable media for Diameter protocol harmonization.
SUMMARY
According to one aspect, the subject matter described herein includes a method for providing Diameter protocol harmonization. The method includes steps occurring at a Diameter node. The method further includes determining a first Diameter protocol associated with received Diameter information that is to be sent to a destination. The method also includes determining a second Diameter protocol associated with the destination. The method further includes harmonizing the received Diameter information such that the harmonized Diameter information is compatible with the second Diameter protocol. The method also includes providing the harmonized Diameter information to the destination.
According to another aspect, the subject matter described herein includes a system for providing Diameter protocol harmonization. The system includes a Diameter node. The Diameter node includes a communications interface for receiving Diameter information that is to be sent to a destination. The Diameter node also includes a harmonization module for determining a first Diameter protocol associated with the received Diameter information, for determining a second Diameter protocol associated with the destination, for harmonizing the received Diameter information such that the harmonized Diameter information is compatible with the second Diameter protocol, and for providing the harmonized Diameter information to the destination.
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 may be implemented using a computer readable medium having stored thereon computer executable instructions that when executed by the processor of a computer control the computer to perform steps. Exemplary computer readable media suitable for implementing the subject matter described herein include non-transitory devices, such as disk memory devices, chip memory devices, 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 device or computing platform or may be distributed across multiple devices or computing platforms.
As used herein, the term “node” refers to a physical computing platform including one or more processors and memory.
As used herein, the terms “function” or “module” refer to software in combination with hardware and/or firmware for implementing features described herein.
As used herein, the term “Diameter protocol” may refer to any Diameter protocol framework or implementation thereof. For example, a Diameter protocol may be a Diameter protocol implementation, a Diameter protocol version, a variant of a Diameter protocol version, a Diameter protocol variant, or a version of a Diameter protocol variant.



BRIEF DESCRIPTION OF THE DRAWINGS
Preferred embodiments of the subject matter described herein will now be explained with reference to the accompanying drawings, wherein like reference numerals represent like parts, of which:
FIG. 1 is a network diagram illustrating an exemplary network including a Diameter node having a harmonization module according to an embodiment of the subject matter described herein;
FIG. 2 is a diagram illustrating exemplary information for determining a Diameter protocol according to an embodiment of the subject matter described herein;
FIG. 3 is a diagram illustrating exemplary information for determining a harmonization rule set to be applied according to an embodiment of the subject matter described herein;
FIG. 4 is a diagram illustrating exemplary information for determining rules associated with a harmonization rule set to be applied according to an embodiment of the subject matter described herein;
FIG. 5 is block diagram illustrating an exemplary Diameter signaling router for providing Diameter protocol harmonization according to an embodiment of the subject matter described herein; and
FIG. 6 is a flow chart illustrating exemplary steps for providing Diameter protocol harmonization according to an embodiment of the subject matter described herein.



DETAILED DESCRIPTION
Reference will now be made in detail to exemplary embodiments of the subject matter described herein, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.
FIG. 1 is a network diagram illustrating an exemplary communications network 100 according to an embodiment of the subject matter described herein. In the embodiment illustrated in FIG. 1, communications network 100 may include a Diameter harmonization node 106 having a harmonization module 108 and having access to a rules database 110. Communications network 100 may also include additional Diameter nodes, such as Node A 102 and Node B 104.
Diameter nodes (e.g., Node A 102, and Node B 104, and harmonization node 106) may be nodes capable of implementing or using a Diameter protocol. For example, a Diameter node may comprise 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 policy and charging enforcement function (PCEF), a policy and charging rules function (PCRF), a subscriber profile repository (SPR), a serving gateway (SGW), a packet data network gateway (PDN GW), a Diameter peer node, a Diameter 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, a server, a node, a database, a computing platform, or a Diameter signaling router (DSR).
In some embodiments, harmonization node 106 may comprise a DSR. A DSR may be any suitable entity for routing or relaying Diameter signaling messages between Diameter nodes. For example, a DSR may be a LTE signaling router, an LTE Diameter signaling router, a Diameter signaling agent, a Diameter proxy agent, a Diameter relay agent, a Diameter routing agent, a Diameter translation agent, or a Diameter redirect agent. A DSR may include functionality for processing various messages and may include various communications interfaces for communication with Diameter nodes, e.g., 3rd Generation Partnership Project (3GPP) LTE communications interfaces and other (e.g., non-LTE) communications interfaces. In one embodiment, DSR related functionality, including the subject matter described herein, may be included in one or more modules (e.g., a harmonization module and a routing module). Harmonization node 106 and/or harmonization module 108 may include functionality for performing Diameter protocol harmonization. Diameter protocol harmonization may include any actions for providing Diameter information in a compatible or appropriate form. For example, Diameter protocol harmonization may include receiving, modifying, generating, and/or providing Diameter information between Diameter nodes that use various Diameter protocols.
Diameter protocols may be defined, described, and/or implemented by various entities. For example, a Diameter protocol version and/or variant may be defined by a standards setting entity, such as IETF, International Telecommunication Union (ITU), European Telecommunications Standards Institute (ETSI), 3GPP, governmental agencies, and/or other organizations. In another example, a Diameter protocol version and/or variant may be defined by other entities, e.g., open source projects, product vendors, and network operators.
In one embodiment, Diameter protocol harmonization may include adding, deleting, and/or modifying one or more portions of a Diameter message. For example, Diameter protocol harmonization may include adding, deleting, and/or modifying an attribute value pair (AVP) of a Diameter message. In another example, harmonization may include adding, deleting, and/or modifying parameters and/or values contained in an AVP. In yet another example, harmonization may include adding, deleting, and/or modifying message portions, such as a header portion and a payload portion.
In one embodiment, Diameter protocol harmonization may use one or more harmonization rules for performing Diameter protocol harmonization. For example, a harmonization rule may include information for converting Diameter information from a first Diameter protocol version into a second Diameter protocol version. For instance, the harmonization rule may include information indicating portions of a Diameter message to be modified and indicating modifications to be performed on the portions.
Harmonization node 106 may include or have access to one or more databases, such as rules database 110. Rules database 110 may include any suitable data structure for storing or maintaining harmonization rules. Harmonization node 106 may include or have access to a reporting database. The reporting database may store information about messages and associated processing (e.g., call detail records (CDRs)). The stored information at reporting database may be usable for various purposes, such as accounting, billing, maintenance, and authentication.
Referring to the embodiment shown in FIG. 1, harmonization node 106, including harmonization module 108, may be an intermediate node for communications between Node A 102 and Node B 104. Node A 102 may utilize a Diameter protocol (e.g., Diameter Variant 1) that is partially or fully incompatible with a second Diameter protocol (e.g., Diameter Variant 2) utilized by Node B 104.
Harmonization node 106 may receive Diameter messages (e.g., Diameter request messages and Diameter answer messages) from Node A 102 and/or Node B 104. In one embodiment, harmonization node 106 may determine a Diameter protocol associated with a received Diameter message. For example, harmonization node 106 may have access to stored Diameter protocol information for various nodes and/or applications executing at the nodes. For instance, harmonization node 106 may access a data structure that includes information associating Diameter nodes and utilized Diameter protocols. By comparing header information of a received Diameter message with stored Diameter protocol information, harmonization node 106 may determine that a Diameter message originating from Node B 104 is associated with a particular Diameter protocol. In another example, harmonization node 106 may determine a Diameter protocol associated with a received Diameter message based on an examining the message structure, or a portion thereof. For instance, harmonization node 106 may use a parser module and Diameter protocol definitions to identify characteristics (e.g., particular AVP information) of a received message that indicate an associated Diameter protocol.
In one embodiment, harmonization node 106 may determine a Diameter protocol associated with a destination (e.g., a node, a host, a realm, a domain, a network segment, or a network) to which a received Diameter message is addressed or may traverse. For example, harmonization node 106 may determine, by examining a header portion of a Diameter message, that the Diameter message is addressed to Node B 104. Using one or more methods, harmonization node 106 may determine that Node B 104 utilizes a particular Diameter protocol. In another example, harmonization node 106 may determine, by examining one or more portions of a received Diameter message, an intermediate (e.g., a next hop) destination to send the received Diameter message, or Diameter information therein. In this example, harmonization node 106 may determine that the intermediate destination utilizes a particular Diameter protocol.
In one embodiment, harmonization node 106 may determine that Diameter protocol harmonization should be performed. For example, after receiving a Diameter message destined for Node B 104, harmonization node 106 may determine that the Diameter protocol associated with the received Diameter message is incompatible with the Diameter protocol associated with the message's destination, Node B 104.
In response to determining that Diameter protocol harmonization should be performed, harmonization node 106 may perform Diameter protocol harmonization. In one embodiment, Diameter protocol harmonization may include modifying a received Diameter message so as to make the Diameter message compatible with a Diameter protocol used by a destination. For example, a header portion of a received Diameter message sent from Node A 102 may be modified at harmonization node 106 so it is compatible for processing at Node B 104. After modification, the modified Diameter message may be sent to the destination.
In another embodiment, Diameter protocol harmonization may include generating a new Diameter message that is based on the received Diameter message. For example, harmonization module 108 may use a harmonization rule to modify or convert Diameter information from a received Diameter message to be compatible with a Diameter protocol used by a destination and may include the modified Diameter information in the new Diameter message. After generating a Diameter message that is based on the received Diameter message, the generated Diameter message may be sent to the destination and the received Diameter message may be discarded.
It will be appreciated that Diameter protocol harmonization may be depend on various factors, e.g., Diameter protocols involved and Diameter information to be communicated. For example, harmonizing a Diameter message originating from Node A 102 and destined for Node B 104 may include a set of harmonization rules and/or processing steps. Likewise, harmonizing a Diameter message originating from Node B 104 and destined for Node A 102 may include a different set of harmonization rules and/or processing steps.
FIG. 2 is a diagram illustrating exemplary information usable for determining a Diameter protocol according to an embodiment of the subject matter described herein. In one embodiment, the exemplary information may be stored at a database, e.g., rules database 110, and/or other data structure. For example, the exemplary information may be located at or integrated with one or more Diameter nodes, e.g., harmonization node 106, Node A 102, and Node B 104. In another example, one or more Diameter nodes may have access to the exemplary information stored at a distinct database node.
Referring to FIG. 2, a table 200 represents any suitable data structure for storing information usable for determining a Diameter protocol associated with Diameter information and/or a destination for Diameter information. In the embodiment illustrated in FIG. 2, table 200 may include Diameter host identifiers (IDs), application IDs, and associated Diameter protocol IDs. Diameter host IDs may be uniform resource identifiers (URIs) or other identifiers for identifying Diameter nodes. For instance, a Diameter host ID may indicate an origination node for a Diameter message received at a harmonization node 106. A Diameter host ID may also be usable to identify a vendor and/or network associated with the origination node.
Application IDs may be values or other information for identifying applications that use a Diameter protocol. For example, an application ID may identify an authentication application, an authorization application, an accounting application, or a vendor specific application. As shown in the embodiment illustrated in FIG. 2, a Diameter host ID may be associated with various application IDs.
Diameter protocol IDs may be values or other information for identifying particular Diameter protocols or groups of Diameter protocols. For example, a Diameter protocol ID may be a version number, a variant number, a value based on a global identifying scheme, or a value based on a local (e.g., vendor specified) identifying scheme. In another example, a Diameter protocol ID may indicate all Diameter protocols that are compatible with a vendor, a product, or a product version. For example, a Diameter protocol ID “1” may indicate a Tekelec-compatible Diameter protocol, a Diameter protocol ID “2” may indicate a Cisco-compatible Diameter protocol, and a Diameter protocol ID “3” may indicate an Ericsson-compatible Diameter protocol.
In one embodiment, a Diameter host ID and an application ID may be associated with a Diameter protocol IDs. For example, as illustrated in table 200, a Diameter host ID “www.tekelec.com” and an application ID “88” may be associated with a Diameter protocol ID “1”. In another example illustrated in table 200, a Diameter host ID “www.vzw.com” and an application ID “88” may be associated with a Diameter protocol ID “2”. In yet another example illustrated in table 200, a Diameter host ID “www.vzw.com” and an application ID “15” may be associated with a Diameter protocol ID “3”.
In one embodiment, harmonization node 106 and/or harmonization module 108 may use table 200, or information therein, for determining Diameter protocols. For example, harmonization node 106 may examine a header portion of a received Diameter message and discover an origination host ID and an application ID. Using the origination host ID and the application ID, harmonization node 106 may query data structure 200 for a Diameter protocol ID associated with the origination node. In another example, harmonization node 106 may examine a header portion of a received Diameter message and discover a destination host ID and an application ID. Using the destination host ID and the application ID, harmonization node 106 may query data structure 200 for a Diameter protocol ID associated with a destination.
FIG. 3 is a diagram illustrating exemplary information for determining a harmonization rule set to be applied according to an embodiment of the subject matter described herein. As used herein, a harmonization rule set may include one or more harmonization rules. In one embodiment, the exemplary information may be stored at a database, e.g., rules database 110, and/or other data structure. For example, the exemplary information may be located at or integrated with one or more Diameter nodes, e.g., harmonization node 106, Node A 102, and Node B 104. In another example, one or more Diameter nodes may have access to the exemplary information stored at a distinct database node.
Referring to FIG. 3, a table 300 represents any suitable data structure for storing information usable for determining a harmonization rule set to be applied in harmonizing Diameter information. In the embodiment illustrated in FIG. 3, table 300 may include ingress Diameter protocols ID, egress Diameter protocols ID, and associated harmonization rule set IDs. Ingress Diameter protocol IDs may identify Diameter protocols associated with ingress Diameter information. For instance, an ingress Diameter protocol ID may identify a Diameter protocol that is utilized by an origination node of a received Diameter message. Egress Diameter protocol IDs may identify Diameter protocols associated with egress Diameter information. For instance, an egress Diameter protocol ID may identify a Diameter protocol utilized by a destination node that is to receive Diameter information. Harmonization rule set IDs may be values or other information for identifying harmonization rule sets.
In one embodiment, an ingress Diameter protocol ID and an egress Diameter protocol ID may be associated with a harmonization rule set ID. For example, as illustrated in table 300, an ingress Diameter protocol ID “1” and an egress Diameter protocol ID “2” may be associated with a harmonization rule set ID “1”. In another example illustrated in table 300, an ingress Diameter protocol ID “2” and an egress Diameter protocol ID “1” may be associated with a harmonization rule set ID “2”. In yet another example illustrated in table 300, an ingress Diameter protocol ID “1” and an egress Diameter protocol ID “3” may be associated with a harmonization rule set ID “3”.
In one embodiment, harmonization node 106 and/or harmonization module 108 may use table 300, or information therein, for determining harmonization rule sets to apply during Diameter protocol harmonization. For example, using an ingress Diameter protocol ID and an egress Diameter protocol ID, harmonization node 106 may query table 300 for an appropriate harmonization rule set ID. In one embodiment, an appropriate harmonization rule set ID may indicate a particular harmonization rule set for harmonizing Diameter information associated with the ingress Diameter protocol such that the harmonized Diameter information is compatible with the egress Diameter protocol. For example, a harmonization rule set may indicate multiple rules or processing steps for converting and/or generating a Diameter message, or portion therein, from an ingress Diameter protocol to an egress Diameter protocol.
FIG. 4 is a diagram illustrating exemplary information for determining rules associated with a harmonization rule set according to an embodiment of the subject matter described herein. In one embodiment, the exemplary information may be stored at a database, e.g., rules database 110, and/or other data structure. For example, the exemplary information may be located at or integrated with one or more Diameter nodes, e.g., harmonization node 106, Node A 102, and Node B 104. In another example, one or more Diameter nodes may have access to the exemplary information stored at a distinct database node.
Referring to FIG. 4, a table 400 represents any suitable data structure for storing information usable for determining rules associated with a harmonization rule set. In the embodiment illustrated in FIG. 4, table 400 may include harmonization rule set IDs and associated harmonization rules. As stated above, harmonization rule set IDs may be values or other information for identifying harmonization rule sets. Harmonization rules may include instructions, processing steps, and/or other information for modifying and/or generating Diameter information. For example, a harmonization rule may indicate a particular portion or portions of a Diameter message to modify and particular modifications to perform. In another example, a harmonization rule may indicate particular information (e.g., a vendor specific AVP) to add to a Diameter message. In yet another example, a harmonization rule may indicate particular information to delete in a Diameter message.
In one embodiment, a harmonization rule set ID may be associated with one or more harmonization rules. For example, as illustrated in table 400, harmonization rule set ID “1” may be associated with three harmonization rules, e.g., ‘ADD AVP: “Server Capacity” AVP: Default value=“300”’, ‘MODIFY AVP: Format AVP Containing IMSI Value into ITU E.212 Format”, and ‘DELETE AVP: Delete “ATT_Host” AVP’. As illustrated in table 400, each rule may include a different action or processing step to be performed. In one embodiment, a harmonization rule set may include priority and/or ordering information. For example, a harmonization rule set may include information indicating in what order associated harmonization rules are to be applied.
In one embodiment, harmonization node 106 and/or harmonization module 108 may use table 400, or information therein, for determining rules associated with a harmonization rule set. For example, harmonization node 106 may determine a harmonization rule set ID based on an ingress Diameter protocol ID and an egress Diameter protocol ID. Using the harmonization rule set ID, harmonization node 106 may query data structure 400 for each harmonization rule. In one embodiment, harmonization node 106 and/or harmonization module 108 may apply the associated harmonization rules during Diameter protocol harmonization. After applying the harmonization rules, Diameter information may be harmonized such that the Diameter information is compatible for processing at a destination node.
FIG. 5 is block diagram illustrating an exemplary DSR 102 for providing Diameter protocol harmonization according to an embodiment of the subject matter described herein.
Referring to the embodiment illustrated in FIG. 5, DSR 102 includes one or more message processors (MPs) 500A-D for sending, receiving, and/or processing various messages, such as Diameter messages. MPs 500A-D may include one or more communications interfaces for communicating signaling messages (e.g., Diameter messages) and/or inter-MP messages. For example, MPs 500A-D may send and receive Diameter request messages between external entities, e.g., Node A 102 and Node B 104. MPs 500A-D may also send and receive messages (e.g., Diameter messages and other non-Diameter messages) between internal entities. For example, MP 500A may screen a Diameter message and relay it to MP 500C for further processing.
MPs 500A-D may include or have access to one or more harmonization modules, e.g., harmonization modules 108A-D. Harmonization modules 108A-D may include any functionality described herein associated with Diameter protocol harmonization. In one embodiment, MPs 500A-D and harmonization modules 108A-D may include functionality for handling particular messages. For example, harmonization module 108A at MP 500A may handle communications with Node A 102 and harmonization module 108D at MP 500D may handle communications with Node B 104.
MPs 500A-D and/or harmonization modules 108A-D may include or have access to one or more databases, such as rules databases 110A-D and a reporting database. Rules databases 110A-D may include any suitable data structure for storing or maintaining harmonization rules. In one embodiment, rules databases 110A-D may include functionality for handling particular messages and/or Diameter protocols. For example, rules database 110A may include with rules for converting a Diameter protocol associated with a particular service provider or a particular equipment vendor and rules database 110B may include with rules for converting Diameter credit control messages.
In one embodiment where a DSR 102 includes multiple processors (e.g., a distributed architecture), each processor (e.g., an MP 500) may be capable of providing Diameter protocol harmonization, or a portion thereof, e.g., regardless of which processor receives a Diameter message. For example, MP 500A may receive a Diameter request message from Node A 102 that is destined for Node B 104. MP 500A and/or harmonization module 108A may harmonize the received Diameter message to a Diameter protocol compatible for processing at Node B 104. MP 500A may relay or route the harmonized Diameter message to another entity, e.g., to Node B 104 or to MP 500D for delivery to Node B 104.
In some embodiments, two or more MPs 500 may work together to harmonize a Diameter message. For example, MP 500B may receive a Diameter request message from Node A 102 that is destined for Node B 104. MP 500B and/or harmonization module 108B may partially harmonize the received Diameter message to a Diameter protocol or other format compatible for further processing at MP 500C. MP 500A may send the partially harmonized Diameter message to MP 500C. MP 500C may receive the partially harmonized Diameter message. MP 500C and/or harmonization module 108C may further harmonize the received Diameter message to a Diameter protocol compatible for processing at Node B 104. MP 500A may relay or route the harmonized Diameter message to Node B 104.
FIG. 6 is a flow chart illustrating exemplary steps for providing Diameter protocol harmonization according to an embodiment of the subject matter described herein. In one embodiment, one or more exemplary steps described herein may be performed at or performed by harmonization node 106, e.g., a DSR or a processor (e.g., an MP) in a DSR. In another embodiment, one or more exemplary steps described herein may be performed at or performed by harmonization module 108 located at various Diameter nodes, e.g., Node A 102 and Node B 104.
Referring to the embodiment illustrated in FIG. 6, at step 600, a first Diameter protocol may be determined that is associated with received Diameter information. The received Diameter information may be for sending to a destination. For example, harmonization node 106 (e.g., a DSR) may receive a Diameter signaling message from Node A 102. The received message may be intended for Node B 104. Harmonization node 106 may use the message and other accessible information (e.g., table 200 in rules database 110) in determining that the received Diameter message uses a particular Diameter protocol (e.g., a Diameter Variant 1).
At step 602, a second Diameter protocol may be determined that is associated with the destination. Continuing from the example stated above, harmonization node 106 may determine a Diameter protocol that is associated with Node B 104.
In one embodiment, the first Diameter protocol and the second Diameter protocol may each include a Diameter protocol implementation, a Diameter protocol version, a variant of a Diameter protocol version, a Diameter protocol variant, a version of a Diameter protocol variant, a Diameter protocol defined by a standards entity, or a Diameter protocol defined by a non-standards entity.
At step 604, the received Diameter information may be harmonized such that the harmonized Diameter information is compatible with the second Diameter protocol. Continuing from the example stated above, harmonization node 106 may use harmonization rules to harmonize the received Diameter message from its original Diameter protocol to the Diameter protocol used by Node B 104.
In one embodiment, harmonizing the Diameter information may include adding, deleting, and/or modifying the received Diameter information, or a portion thereof. In another embodiment, harmonizing the Diameter information may include generating a new Diameter message based on the received Diameter information. For example, the received Diameter information and/or the harmonized Diameter information may include a Diameter message, AVP information, parameter information, value information, message header information, or message payload information.
At step 606, the harmonized Diameter information may be provided to the destination. For example where harmonizing the received Diameter information include generating a Diameter message, providing the harmonized Diameter information to the destination may include sending the generated Diameter message to the destination. In another example where harmonizing the received Diameter information include modifying a received Diameter message, providing the harmonized Diameter information to the destination may include sending the modified Diameter message to the destination.
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.

## Claims

1. A method for providing Diameter protocol harmonization,
the method comprising:
at a Diameter node:
determining a first Diameter protocol associated with received Diameter
determining a second Diameter protocol associated with the destination, wherein the second Diameter protocol is different than the first Diameter protocol,
wherein determining the second Diameter protocol includes determining the second protocol based on an application identifier and an origination host ID associated with the received Diameter information;
harmonizing the received Diameter information such that the harmonized Diameter information is compatible with the second Diameter protocol, wherein harmonizing includes adding, deleting, or modifying an attribute value pair associated with the received Diameter information; and
providing the harmonized Diameter information to the destination.

2. The method of claim 1 wherein the first Diameter protocol and the second Diameter protocol each include a Diameter protocol implementation, a Diameter protocol version, a variant of a Diameter protocol version, a Diameter protocol variant, a version of a Diameter protocol variant, a Diameter protocol defined by a standards entity, or a Diameter protocol defined by a non-standards entity.

3. The method of claim 1 wherein the destination includes a node, a host, a realm, a domain, a network segment, or a network.

4. The method of claim 1 wherein harmonizing the Diameter information includes generating, using a harmonization rule, a new Diameter message based on the received Diameter information and wherein providing the harmonized Diameter information to the destination includes sending the new Diameter message to the destination.

5. The method of claim 1 wherein harmonizing the Diameter information includes modifying, using a harmonization rule, the received Diameter information and wherein providing the harmonized Diameter information to the destination includes sending the modified Diameter information to the destination.

6. The method of claim 1 wherein one or more harmonization rule is stored at a database.

7. The method of claim 1 wherein at least one of the received Diameter information and the harmonized Diameter information includes a Diameter message, attribute value pair (AVP) information, parameter information, value information, message header information, or message payload information.

8. The method of claim 1 wherein the Diameter node comprises a Diameter signaling router (DSR), a Diameter relay agent, a Diameter redirect agent, a Diameter translation agent, a Diameter proxy agent, a Diameter node, 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 packet data network gateway (PDN GW), a policy and charging enforcement function (PCEF), a policy and charging rules function (PCRF), a subscriber profile repository (SPR), a Diameter 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, a server, a node, a processor, a database, or a computing platform.

9. A system for providing Diameter protocol harmonization,
the system comprising:
a Diameter node including:
a communications interface for receiving Diameter information that is to be sent to a destination; and
a harmonization module for determining a first Diameter protocol associated with the received Diameter information, for determining a second Diameter protocol associated with the destination, wherein the second Diameter protocol is different than the first Diameter protocol, wherein determining the second Diameter protocol includes determining the second protocol based on an application identifier and an origination host ID associated with the received Diameter information, for harmonizing the received Diameter information such that the harmonized Diameter information is compatible with the second Diameter protocol, wherein harmonizing includes adding, deleting, or modifying an attribute value pair associated with the received Diameter information, and for providing the harmonized Diameter information to the destination.

10. The system of claim 9 wherein the first Diameter protocol and the second Diameter protocol each include a Diameter protocol implementation, a Diameter protocol version, a variant of a Diameter protocol version, a Diameter protocol variant, a version of a Diameter protocol variant, a Diameter protocol defined by a standards entity, or a Diameter protocol defined by a non-standards entity.

11. The system of claim 9 wherein the destination includes a node, a host, a realm, a domain, a network segment, or a network.

12. The system of claim 9 wherein harmonizing the received Diameter information includes generating, using a harmonization rule, a new Diameter message based on the received Diameter information and wherein providing the harmonized Diameter information to the destination includes sending the new Diameter message to the destination.

13. The system of claim 9 wherein harmonizing the received Diameter information includes modifying, using a harmonization rule, the received Diameter information and wherein providing the harmonized Diameter information to the destination includes sending the modified Diameter information to the destination.

14. The system of claim 9 comprising a database for storing one or more harmonization rules.

15. The system of claim 9 wherein at least one of the received Diameter information and the harmonized Diameter information includes a Diameter message, attribute value pair (AVP) information, parameter information, value information, message header information, or message payload information.

16. The system of claim 9 wherein the system comprises a Diameter signaling router, a Diameter relay agent, a Diameter redirect agent, a Diameter translation agent, a Diameter proxy agent, a Diameter node, 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 (SOW), a packet data network gateway (PDN GW), a policy and charging enforcement function (PCEF), a policy and charging rules function (PCRF), a subscriber profile repository (SPR), a Diameter 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, a server, a node, a processor, a database, or a computing platform.

17. A non-transitory computer readable medium having stored thereon executable instructions that when executed by the processor of a computer control the computer to perform steps comprising:
at a Diameter node:
determining a first Diameter protocol associated with received Diameter information that is to be sent to a destination;
determining a second Diameter protocol associated with the destination, wherein the second Diameter protocol is different than the first Diameter protocol,
wherein determining the second Diameter protocol includes determining the second protocol based on an application identifier and an origination host ID associated with the received Diameter information;
harmonizing the received Diameter information such that the harmonized Diameter information is compatible with the second Diameter protocol, wherein harmonizing includes adding, deleting, or modifying an attribute value pair associated with the received Diameter information; and
providing the harmonized Diameter information to the destination.