IP Library Granted Patent US 8,369,332
Granted Patent B2
US 8,369,332 · App. 12/545,680 · Granted Feb 5, 2013

Server-side load balancing using parent-child link aggregation groups

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 8,369,332
App. No.
12/545,680
Granted
Feb 5, 2013
Kind
B2
Abstract

Various exemplary embodiments relate to a method and related network node including one or more of the following: establishing, at the network node, a first Child Link Aggregation Group (CLAG), wherein the first CLAG includes at least one link to a first downstream node; establishing, at the network node, a second CLAG, wherein the second CLAG includes at least one link to a second downstream node; establishing, at the network node, a Parent Link Aggregation Group (PLAG), wherein the PLAG includes the first CLAG and the second CLAG; receiving, at the network node, a packet including an address of a destination of the packet; determining that the destination of the packet is associated with the PLAG; and transmitting the packet over both the first CLAG and the second CLAG.

Claims (78)

1. A method of routing packets in a communications network by a network node, the method comprising:

establishing, at the network node, a first Child Link Aggregation Group (CLAG), wherein the first CLAG includes at least one link to a first downstream node;

establishing, at the network node, a second CLAG, wherein the second CLAG includes at least one link to a second downstream node;

establishing, at the network node, a Parent Link Aggregation Group (PLAG), wherein the PLAG includes the first CLAG and the second CLAG;

receiving, at the network node, a packet including an address of a destination of the packet;

determining that the destination of the packet is associated with the PLAG; and

transmitting the packet to both the first downstream node and the second downstream node over the first CLAG and the second CLAG individually.

2. The method, of claim 1 , wherein the packet is a unicast packet.

3. The method of claim 1 , further comprising:

associating a Layer 2 address with the PLAG;

associating an address of the first downstream node with the Layer 2 address; and

associating an address of the second downstream node with the Layer 2 address,

wherein the step of determining that the destination of the packet is associated with the PLAG comprises determining that the address of the destination of the packet is associated with the Layer 2 address.

4. The method of claim 3 , wherein:

the steps of associating the address of the first downstream node and associating the address of the second downstream node with the Layer 2 address both comprise modifying an Address Resolution Protocol (ARP) table; and

the step of determining that the address of the destination of the packet is associated with the Layer 2 address comprises reading an entry of the ARP table, the entry being associated with the address of the destination of the packet.

5. The method of claim 1 , wherein the step of transmitting the packet over both the first CLAG and the second CLAG comprises:

selecting a first chosen link of the at least one link included in the first CLAG;

selecting a second chosen link of the at least one link included in the second CLAG;

constructing a first frame that includes the packet and an address associated with the first chosen link;

constructing a second frame that includes the packet and an address associated with the second chosen link;

forwarding the first frame to the first downstream node over the first chosen link; and

forwarding the second frame to the second downstream node over the second chosen link.

6. The method of claim 1 , further comprising:

at the first downstream node:

receiving a list of all downstream nodes that receive frames via the PLAG,

determining a total number of downstream nodes from the list,

receiving the first frame from the network node,

deriving a piece of information from the first frame,

performing a mathematical operation on the piece of information using the total number of downstream nodes to obtain a result index,

determining whether the result index corresponds to the first downstream node,

responding to the first frame when the result index corresponds to the first downstream node, and

discarding the first frame when the result index does not correspond to the first downstream node.

7. The method of claim 6 , further comprising:

at the first downstream node, arranging the list of all downstream nodes in an array in increasing order of a node identifier associated with each downstream node,

wherein the step of determining whether the result index corresponds to the first downstream node comprises:

reading an element from the array, wherein an index of the element is equal to the result index, and

determining whether the element includes an identification of the first downstream node.

8. The method of claim 6 , wherein the mathematical operation is a modulo operation.

9. The method of claim 6 , wherein the step of deriving a piece of information from the frame comprises calculating a hash value from at least one field of the frame.

10. The method of claim 9 , wherein the at least one field of the frame includes a source IP address.

11. The method of claim 1 , wherein the first downstream node and the second downstream node are both Internet Protocol Television (IPTV) video servers.

12. A network node for routing packets in a communications network, the network node connected to a first downstream node and a second downstream node, the network node comprising:

an interface that receives a packet, the packet including a destination address;

a plurality of interfaces, including at least one interface connected to the first downstream node and at least another interface connected to the second downstream node;

a link aggregation control storage that stores:

a first Child Link Aggregation Group (CLAG) record that includes a first CLAG identifier and an indication of the at least one interface of the plurality of interfaces that is connected to the first downstream node,

a second CLAG record that includes a second CLAG identifier and an indication of the at least one interface of the plurality of interfaces that is connected to the second downstream node, and

a Parent Link Aggregation Group (PLAG) record that includes a PLAG identifier, the first CLAG identifier, and the second CLAG identifier, wherein the PLAG includes the first CLAG and the second CLAG;

an address resolution module that determines that the destination address of the packet is associated with the PLAG identifier; and

a link aggregation module that:

determines that the PLAG identifier is associated with the first CLAG identifier and the second CLAG identifier by retrieving the PLAG record from the link aggregation control storage,

selects a first selected interface from the at least one indication of an interface of the first CLAG record,

selects a second selected interface from the at least one indication of an interface of the second CLAG record,

forwards the packet to both the first downstream node and the second downstream node over the first selected interface and the second selected interface individually.

13. The network node of claim 12 , further comprising:

an address resolution storage that stores:

a first address resolution record identified by an address of the first downstream node and including the PLAG identifier, and

a second address resolution record identified by an address of the second downstream node and including the PLAG identifier; and

in determining that the destination address of the packet is associated with the PLAG identifier, the address resolution module retrieves an address resolution record identified by the destination address of the packet.

14. The network node of claim 12 , wherein the packet is a unicast packet.

15. The network node of claim 12 , wherein the first downstream node and the second downstream node are both Internet Protocol Television (IPTV) video servers.

16. A non-transitory machine-readable storage medium that contains instructions for routing packets by a network node in a communications network, the non-transitory machine-readable storage medium comprising:

instructions for receiving, from a Layer 2 (L2) client, an input frame having an input L2 address as a destination address;

instructions for determining that the input L2 address is associated with a Parent Link Aggregation Group (PLAG);

instructions for determining a first Child Link Aggregation Group (CLAG) and a second CLAG associated with the PLAG, wherein the PLAG includes the first CLAG and the second CLAG;

instructions for determining a first L2 interface associated with the first CLAG and a second L2 interface associated with the second CLAG;

instructions for extracting a payload from the input frame;

instructions for creating a first outgoing frame and a second outgoing frame, both including the payload extracted from the input frame;

instructions for passing the first outgoing frame to the first L2 interface; and

instructions for passing the second outgoing frame to the second L2 interface.

17. The non-transitory machine-readable readable storage medium of claim 16 , further comprising:

instructions for determining a first outgoing L2 address associated with the first L2 interface; and

instructions for determining a second outgoing L2 address associated with the second L2 interface,

wherein the first outgoing frame includes the first outgoing L2 address as a destination address and the second outgoing frame includes the second outgoing L2 address as a destination address.

18. The non-transitory machine-readable readable storage medium of claim 17 , wherein the first outgoing L2 address is the same as the input L2 address.

19. The non-transitory machine-readable readable storage medium of claim 16 , wherein the first L2 interface is one L2 interface of a plurality of L2 interfaces associated with the first CLAG.

20. The non-transitory machine-readable storage medium of claim 16 , wherein the input L2 address is a MAC address and the L2 client is a client of a MAC sublayer.

Assignments (14)
PATENT SECURITY AGREEMENT Recorded Aug 6, 2024
From: RPX CORPORATION; RPX CLEARINGHOUSE LLC
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 068328/0674 →
RELEASE OF LIEN ON PATENTS Recorded Aug 5, 2024
From: BARINGS FINANCE LLC
To: RPX CORPORATION
Reel/Frame 068328/0278 →
PATENT SECURITY AGREEMENT Recorded Apr 22, 2023
From: RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 063429/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2021
From: PROVENANCE ASSET GROUP LLC
To: RPX CORPORATION
Reel/Frame 059352/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: NOKIA US HOLDINGS INC.
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058363/0723 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: CORTLAND CAPITAL MARKETS SERVICES LLC
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058983/0104 →
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Feb 14, 2019
From: NOKIA USA INC.
To: NOKIA US HOLDINGS INC.
Reel/Frame 048370/0682 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2017
From: NOKIA TECHNOLOGIES OY; NOKIA SOLUTIONS AND NETWORKS BV; ALCATEL LUCENT SAS
To: PROVENANCE ASSET GROUP LLC
Reel/Frame 043877/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP LLC
To: NOKIA USA INC.
Reel/Frame 043879/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP, LLC
To: CORTLAND CAPITAL MARKET SERVICES, LLC
Reel/Frame 043967/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2014
From: CREDIT SUISSE AG
To: ALCATEL-LUCENT USA INC.
Reel/Frame 033949/0016 →
SECURITY INTEREST Recorded Mar 7, 2013
From: ALCATEL-LUCENT USA INC.
To: CREDIT SUISSE AG
Reel/Frame 030510/0627 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2011
From: ALCATEL-LUCENT USA INC.
To: ALCATEL LUCENT
Reel/Frame 026568/0625 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2009
From: KOTALWAR, JAYANT; HEMIGE, VENUGOPAL
To: ALCATEL-LUCENT USA INC.
Reel/Frame 023131/0907 →