FLEXIBLE AND EXTENSIBLE RECEIVE SIDE SCALING
First Claim
Patent Images
1. A computer implemented method for distributing packets across a plurality of processors of a computer, said method comprising:
- in response to receiving a packet, looking up a packet characteristic in one of at least one protocol table stored on a computer readable memory to determine one or more fields of the packet to use as a hash value;
applying a hash function to the hash value to obtain a hash result;
using the hash result to determine one of said plurality of processors on which to process the packet; and
transmitting said packet to said determined one of said plurality of processors.
0 Assignments
0 Petitions
Accused Products
Abstract
In an embodiment, a method is provided. The method of this embodiment provides in response to receiving a packet, looking up a packet characteristic in one of at least one protocol table to determine one or more fields of the packet to use as a hash value, applying a hash function to the hash value to obtain a hash result, and using the hash result to determine one of a plurality of processors on which to process the packet.
-
Citations
33 Claims
-
1. A computer implemented method for distributing packets across a plurality of processors of a computer, said method comprising:
-
in response to receiving a packet, looking up a packet characteristic in one of at least one protocol table stored on a computer readable memory to determine one or more fields of the packet to use as a hash value; applying a hash function to the hash value to obtain a hash result; using the hash result to determine one of said plurality of processors on which to process the packet; and transmitting said packet to said determined one of said plurality of processors. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8-13. -13. (canceled)
-
14. An apparatus for distributing packets across a plurality of processors, said apparatus comprising:
-
a computer comprising said plurality of processors; and logic configured to run on said computer, said logic configured to; in response to receiving a packet, look up a packet characteristic in one of at least one protocol table stored on a computer readable memory to determine one or more fields of the packet to use as a hash value; apply a hash function to the hash value to obtain a hash result; and use the hash result to determine one of said plurality of processors on which to process the packet; and transmit said packet to said determined one of said plurality of processors. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A system comprising:
a circuit card that is capable of being coupled to a circuit board via a circuit card slot of said circuit board, the circuit card including logic operable to; in response to receiving a packet, look up a packet characteristic in one of at least one protocol table to determine one or more fields of the packet to use as a hash value; in response to receiving a packet, look up a packet characteristic in one of at least one protocol table to determine one or more fields of the packet to use as a hash value apply a hash function to the hash value to obtain a hash result; and use the hash result to determine one of a plurality of processors on which to process the packet. - View Dependent Claims (20, 21, 22, 23)
-
24-28. -28. (canceled)
-
29. A system comprising:
-
a plurality of processors; a plurality of receive queues, each of said plurality of receive queues associated with only one of said plurality of processors; and a circuit card configured to receive a packet, the circuit card including logic operable to; in response to receiving a packet, look up a packet characteristic in one of at least one protocol table to determine one or more fields of the packet to use as a hash value; in response to receiving a packet, look up a packet characteristic in one of at least one protocol table to determine one or more fields of the packet to use as a hash value apply a hash function to the hash value to obtain a hash result; use the hash result to determine one of said plurality of processors on which to process the packet; and transmitting said packet to a receive queue associated with said determined one of said plurality of processors. - View Dependent Claims (30, 31, 32, 33)
-
Specification