Load sharing across flows
First Claim
1. A method for distributing a sequence of packets among a number N of data paths, said method including steps forfor each packet in said sequence, associating a distribution value therewith, said distribution value having a number of possible values well in excess of said number N;
- for each said distribution value, determining a modulus of said distribution value with regard to said number N; and
sharing packet traffic load among a plurality of outgoing data paths in response to said modulus.
1 Assignment
0 Petitions
Accused Products
Abstract
The invention provides a system and system for sharing packet traffic load among a plurality of possible paths. Each packet is associated with a flow, and a hash value is determined for each flow, so as to distribute the sequence of packets into a set of hash buckets. The hash value has a relatively large number of bits, but is divided by the number of possible paths so as to achieve a relatively small modulus value; the modulus value is used to index into a relatively small table associating one selected path with each entry. The modulus value is determined by a relatively small amount of circuitry, simultaneously for a plurality of moduli, and one such modulus value is selected in response to the number of possible paths.
255 Citations
26 Claims
-
1. A method for distributing a sequence of packets among a number N of data paths, said method including steps for
for each packet in said sequence, associating a distribution value therewith, said distribution value having a number of possible values well in excess of said number N; -
for each said distribution value, determining a modulus of said distribution value with regard to said number N; and sharing packet traffic load among a plurality of outgoing data paths in response to said modulus. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system for distributing a sequence of packets among a number N of data paths, said system including
a distribution value element coupled to each packet in said sequence, an output of said distribution value element having a number of possible values well in excess of said number N; -
a modulus element coupled to said distribution value element; and a load-sharing element responsive to an output of said modulus element. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
Specification