IP Library Granted Patent US 8,824,284
Granted Patent B2
US 8,824,284 · App. 12/780,524 · Granted Sep 2, 2014

Dynamic load balancing using virtual link credit accounting

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,824,284
App. No.
12/780,524
Granted
Sep 2, 2014
Kind
B2
Abstract

Methods and apparatus for dynamic load balancing using virtual link credit accounting are disclosed. An example method includes receiving, at a network device, a data packet to be communicated using an aggregation group, the aggregation group including a plurality of virtual links having a common destination. The example method further includes determining a hash value based on the packet and determining an assigned virtual link of the plurality of virtual links based on the hash value. The example method also includes reducing a number of available transmission credits for the aggregation group and reducing a number of available transmission credits for the assigned virtual link. The example method still further includes communicating the packet to another network device using the assigned virtual link.

Claims (66)

1. A method comprising:

receiving, at a network device, a data packet to be communicated using an aggregation group, the aggregation group including a plurality of virtual links having a single source and a common destination;

determining a hash value based on the data packet;

determining an assigned virtual link of the plurality of virtual links based on 1) the hash value and 2) respective amounts of available transmission credits for each of the plurality of virtual links;

reducing a number of available transmission credits for the aggregation group; and

reducing a number of available transmission credits for the assigned virtual link; and

communicating the data packet to another network device using the assigned virtual link.

2. The method of claim 1 , wherein the plurality of virtual links comprises a plurality of equal-cost-multiple-path (ECMP) links.

3. The method of claim 1 , wherein the plurality of virtual links comprises a plurality of weighted-cost paths.

4. The method of claim 1 , wherein the plurality of virtual links correspond with a single physical link.

5. The method of claim 1 , wherein the plurality of virtual links is implemented using one of a link aggregation group (LAG) and a HiGig trunk.

6. The method of claim 1 , wherein:

reducing the number of available transmission credits for the aggregation group comprises reducing the number of available transmission credits for the aggregation group by an amount proportional to a size of the data packet; and

reducing the number of available transmission credits for the assigned virtual link comprises reducing the number of available transmission credits for the assigned virtual link by the amount proportional to the size of the data packet.

7. The method of claim 1 , wherein:

reducing the number of available transmission credits for the aggregation group comprises reducing the number of available transmission credits for the aggregation group by one transmission credit; and

reducing the number of available transmission credits for the assigned virtual link comprises reducing the number of available transmission credits for the assigned virtual link by one transmission credit.

8. The method of claim 1 , further comprising:

assigning, at a network device, an aggregation group transmission credit quota for the aggregation group; and

assigning respective amounts of transmission credits of the aggregation group transmission credit quota to each virtual link of the aggregation group,

wherein:

reducing the number of available transmission credits for the aggregation group comprises reducing the aggregation group transmission credit quota; and

reducing the number of available transmission credits for the assigned virtual link comprises reducing the respective amount of transmission credits assigned to the assigned virtual link.

9. The method of claim 8 , wherein a sum of the respective amounts of transmission credits assigned to the plurality of virtual links equals the assigned aggregation group transmission credit quota.

10. The method of claim 8 , wherein the respective amounts of transmission credits assigned to the plurality of virtual links are equal.

11. The method of claim 8 , wherein the respective amounts of transmission credits assigned to the plurality of virtual links are weighted.

12. The method of claim 1 , wherein:

reducing the number of available transmission credits for the aggregation group comprises reducing the number of available transmission credits for the aggregation group prior to communicating the data packet to the other network device; and

reducing the number of available transmission credits for the assigned virtual link comprises reducing the number of available transmission credits for the assigned virtual link prior to communicating the data packet to the other network device.

13. The method of claim 1 , further comprising grouping the plurality of virtual links into loading/quality bands based on respective amounts of available transmission credits for each of the plurality of virtual links, wherein:

each loading/quality band has a respective upper threshold and a respective lower threshold, and

the determining of the assigned virtual link further comprises selecting a virtual link from a loading/quality band with the largest upper and lower thresholds.

14. A network device comprising:

a first data port configured to receive a data packet to be communicated using an aggregation group, the aggregation group including a plurality of virtual links having a single source and a common destination;

a virtual link assignment module configured to:

determine a hash value based on the data packet; and

determine an assigned virtual link of the plurality of virtual links based on 1) the hash value and 2) respective amounts of available transmission credits for each of the plurality of virtual links;

an imbalance detection module configured to:

reduce a number of available transmission credits for the aggregation group; and

reduce a number of available transmission credits for the assigned virtual link; and

a second data port configured to communicate the data packet to another network device using the assigned virtual link.

15. The network device of claim 14 , wherein the virtual link assignment module is further configured to determine the assigned virtual link based on respective amounts of available transmission credits for each of the plurality of virtual links.

16. The network device of claim 14 , wherein the imbalance detection module is further configured to:

assign, at a network device, an aggregation group transmission credit quota for the aggregation group; and

assign respective amounts of transmission credits of the aggregation group transmission credit quota to each virtual link of the aggregation group,

wherein:

reducing the number of available transmission credits for the aggregation group comprises reducing the aggregation group transmission credit quota; and

reducing the number of available transmission credits for the assigned virtual link comprises reducing the respective amount of transmission credits assigned to the assigned virtual link.

17. The network device of claim 14 , wherein the plurality of virtual links comprises a plurality of equal-cost-multiple-path (ECMP) links.

18. The network device of claim 14 , wherein the plurality of virtual links correspond with a single physical link.

19. The network device of claim 14 , wherein the plurality of virtual links are implemented using one of a link aggregation group (LAG) and a HiGig trunk.

20. The network device of claim 14 , wherein the virtual link assignment module is further configured to: group the plurality of virtual links into loading/quality bands based on respective amounts of available transmission credits for each of the plurality of virtual links, wherein:

each loading/quality band has a respective upper threshold and a respective lower threshold, and

the virtual link assignment module is further configured to determine the assigned virtual link by selecting a virtual link from a loading/quality band with the largest upper and lower thresholds.

21. A method comprising:

assigning, at a network device, an aggregation group transmission credit quota for an aggregation group, the aggregation group comprising a plurality of virtual links having a single source and a common destination;

assigning respective amounts of transmission credits of the aggregation group transmission credit quota to each virtual link of the aggregation group;

receiving, at the network device, a data packet to be communicated using the aggregation group;

determining a hash value based on the data packet;

determining an assigned virtual link of the plurality of virtual links based on 1) the hash value and 2) respective amounts of available transmission credits for each of the plurality of virtual links;

reducing the aggregation group transmission credit quota by an amount proportional to a size of the data packet;

reducing the respective amount of transmission credits assigned to the assigned virtual link by the amount proportional to the size of the data packet; and

communicating the data packet to another network device using the assigned virtual link.

22. The method of claim 21 , further comprising grouping the plurality of virtual links into loading/quality bands based on respective amounts of available transmission credits for each of the plurality of virtual links, wherein:

each loading/quality band has a respective upper threshold and a respective lower threshold, and

the determining of the assigned virtual link further comprises selecting a virtual link from a loading/quality band with the largest upper and lower thresholds.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER IN THE INCORRECT US PATENT NO. 8,876,094 PREVIOUSLY RECORDED ON REEL 047351 FRAME 0384. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 8, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 049248/0558 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE MERGER PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0910. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047351/0384 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0910 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2012
From: MATTHEWS, BRAD; KWAN, BRUCE; AGARWAL, PUNEET
To: BROADCOM CORPORATION
Reel/Frame 027829/0122 →