Flexible and extensible receive side scaling
AssigneeIntel Corporation
InventorsStephen D. Goglin, Linden Cornett
Life of this patent
Estimating the term…
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.
Claims24
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.
8-13. (canceled)
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.
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.
24-28. (canceled)
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.
Dependencies are inferred from the claim text.