IP Library Granted Patent US 9,992,131
Granted Patent B2
US 9,992,131 · App. 13/892,672 · Granted Jun 5, 2018

Diameter routing agent load balancing

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,992,131
App. No.
13/892,672
Granted
Jun 5, 2018
Kind
B2
Abstract

Various exemplary embodiments relate to a method and related network node including one or more of the following: receiving a Diameter message at the DRA from an origin device; encountering an instruction to perform load balancing; locating an applicable load balancing pool of a plurality of load balancing pools for the Diameter message; identifying a pool host from the applicable load balancing pool to receive the Diameter message; modifying a destination address of the Diameter message to include an address of the identified pool host; and transmitting the Diameter message based on the modified destination address.

Claims (46)

1. A method performed by a Diameter Routing Agent (DRA) for processing a Diameter message, the method comprising:

receiving a Diameter message at the DRA from an origin device;

locating, based on an instruction to perform load balancing, an applicable load balancing pool of a plurality of load balancing pools for the Diameter message;

identifying a pool host from the applicable load balancing pool to receive the Diameter message;

modifying a destination address of the Diameter message to include an address of the identified pool host; and

transmitting the Diameter message based on the modified destination address.

2. The method of claim 1 , wherein: the instruction to perform load balancing includes a name of a load balancing pool; and locating an applicable load balancing pool comprises

locating a load balancing pool associated with the name.

3. The method of claim 1 , wherein: the plurality of load balancing pools are associated with respective values for a destination realm attribute and respective values for an application attribute; and locating an applicable load balancing pool comprises:

identifying a destination realm and an application associated with the Diameter request; and

locating a load balancing pool having values for the destination realm attribute and the application attribute that most closely matches the destination realm and the application associated with the Diameter request.

4. The method of claim 3 , wherein: a first load balancing pool of the plurality of load balancing pools is associated with: a value for the destination realm attribute that exactly matches the destination realm of the Diameter request, and a value for the application attribute that exactly matches the application of the Diameter request; a second load balancing pool of the plurality of load balancing pools is associated with: a value for the destination realm attribute that includes the destination realm of the Diameter request and at least one additional destination realm, and a value for the application attribute that exactly matches the application of the Diameter request; a third load balancing pool of the plurality of load balancing pools is associated with: a value for the destination realm attribute that exactly matches the destination realm of the Diameter request, and a value for the application attribute that includes the application of the Diameter request and at least one additional application; and locating a load balancing pool comprises

determining that the first load balancing pool more closely matches the Diameter request than the second load balancing pool and the third load balancing pool.

5. The method of claim 1 , wherein: the applicable load balancing pool identifies a balancing algorithm and a plurality of pool hosts; and identifying a pool host from the applicable load balancing pool to receive the Diameter message comprises:

determining the balancing algorithm identified by the load balancing pool, and

applying the balancing algorithm to the plurality of pool hosts to identify the pool host.

6. The method of claim 5 , wherein applying the balancing algorithm utilizes a plurality of weights respectively associated with the plurality of pool hosts.

7. The method of claim 1 , wherein the destination address of the identified pool host includes a value for a destination realm attribute and a nonvalue for a destination host attribute.

8. The method of claim 1 , further comprising

evaluating a rule of a plurality of externalized rules, wherein the rule includes the instruction to perform load balancing.

9. A Diameter Routing Agent (DRA) for processing a Diameter message, the DRA comprising:

a rule storage configured to store a rule that includes an instruction to perform load balancing;

a Diameter stack configured to receive a Diameter message;

a rule engine configured to: evaluate the rule, locate, based on the instruction to perform load balancing, an applicable load balancing pool of a plurality of load balancing pools for the Diameter message, identify a pool host from the applicable load balancing pool to receive the Diameter message, and modify a destination address of the Diameter message to include an address of the identified pool host; and

a message handler configured to transmit, via the Diameter stack, the Diameter message based on the modified destination address.

10. The DRA of claim 9 , wherein: the instruction to perform load balancing includes a name of a load balancing pool; and in locating an applicable load balancing pool, the rule engine is configured to locate a load balancing pool associated with the name.

11. The DRA of claim 9 , wherein: the plurality of load balancing pools are associated with respective values for a destination realm attribute and respective values for an application attribute; and in locating an applicable load balancing pool, the rule engine is configured to: identify a destination realm and an application associated with the Diameter request; and locate a load balancing pool having values for the destination realm attribute and the application attribute that most closely matches the destination realm and the application associated with the Diameter request.

12. The DRA of claim 11 , wherein: a first load balancing pool of the plurality of load balancing pools is associated with: a value for the destination realm attribute that exactly matches the destination realm of the Diameter request, and a value for the application attribute that exactly matches the application of the Diameter request; a second load balancing pool of the plurality of load balancing pools is associated with: a value for the destination realm attribute that includes the destination realm of the Diameter request and at least one additional destination realm, and a value for the application attribute that exactly matches the application of the Diameter request; a third load balancing pool of the plurality of load balancing pools is associated with: a value for the destination realm attribute that exactly matches the destination realm of the Diameter request, and a value for the application attribute that includes the application of the Diameter request and at least one additional application; and in locating a load balancing pool, the rule engine is configured to determine that the first load balancing pool more closely matches the Diameter request than the second load balancing pool and the third load balancing pool.

13. The DRA of claim 9 , wherein: the applicable load balancing pool identifies a balancing algorithm and a plurality of pool hosts; and in identifying a pool host from the applicable load balancing pool to receive the Diameter message, the rule engine is configured to: determine the balancing algorithm identified by the load balancing pool, and apply the balancing algorithm to the plurality of pool hosts to identify the pool host.

14. The DRA of claim 13 , wherein applying the balancing algorithm utilizes a plurality of weights respectively associated with the plurality of pool hosts.

15. The DRA of claim 9 , wherein the destination address of the identified pool host includes a value for a destination realm attribute and a nonvalue for a destination host attribute.

16. A non-transitory machine-readable storage medium encoded with instructions for execution by a Diameter Routing Agent (DRA) for processing a Diameter message, the medium comprising:

instructions for receiving a Diameter message at the DRA from an origin device;

instructions for locating, based on an instruction to perform load balancing, an applicable load balancing pool of a plurality of load balancing pools for the Diameter message;

instructions for identifying a pool host from the applicable load balancing pool to receive the Diameter message;

instructions for modifying a destination address of the Diameter message to include an address of the identified pool host; and

instructions for transmitting the Diameter message based on the modified destination address.

17. The non-transitory machine-readable storage medium of clam 16 , wherein: the instruction to perform load balancing includes a name of a load balancing pool; and the instructions for locating an applicable load balancing pool comprise

instructions for locating a load balancing pool associated with the name.

18. The non-transitory machine-readable storage medium of claim 16 , wherein: the plurality of load balancing pools are associated with respective values for a destination realm attribute and respective values for an application attribute; and the instructions for locating an applicable load balancing pool comprise:

instructions for identifying a destination realm and an application associated with the Diameter request; and

instructions for locating a load balancing pool having values for the destination realm attribute and the application attribute that most closely matches the destination realm and the application associated with the Diameter request.

19. The non-transitory machine-readable storage medium of claim 16 , wherein: the applicable load balancing pool identifies a balancing algorithm and a plurality of pool hosts; and the instructions for identifying a pool host from the applicable load balancing pool to receive the Diameter message comprise:

instructions for determining the balancing algorithm identified by the load balancing pool, and

instructions for applying the balancing algorithm to the plurality of pool hosts to identify the pool host.

20. The non-transitory machine-readable storage medium of claim 16 , further comprising instructions for evaluating a rule of a plurality of externalized rules, wherein the rule includes the instruction to perform load balancing.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Sep 3, 2014
From: CREDIT SUISSE AG
To: ALCATEL-LUCENT CANADA INC.
Reel/Frame 033683/0191 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2014
From: ALCATEL-LUCENT CANADA INC.
To: ALCATEL LUCENT
Reel/Frame 033231/0434 →
SECURITY AGREEMENT Recorded Jul 22, 2013
From: ALCATEL LUCENT CANADA INC.
To: CREDIT SUISSE AG
Reel/Frame 030851/0623 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2013
From: MANN, ROBERT A.
To: ALCATEL LUCENT CANADA, INC.
Reel/Frame 030403/0470 →