Hashing packet contents to determine a processor
AssigneeIntel Corporation
InventorsYadong Li, Xinan Tang
Life of this patent
Estimating the term…
Abstract
The disclosure includes a description of an apparatus having circuitry to determine a first hash value for a first packet tuple of a first packet traveling in a first direction of a duplex connection and determine a processor for the first packet from a set of multiple processors based, at least in part, on the first hash value. The apparatus includes circuitry to determine a second hash value for a second packet tuple of a second packet traveling in a second direction of the duplex connection and determine the same processor for the second packet from the set of multiple processors based, at least in part, on the second hash value.
Claims14
A method, comprising:
- receiving an Internet Protocol datagram;
- performing a first hash operation on a first ordering of a set of bits included in the Internet Protocol datagram, the set of bits including bits included in a header of the Internet Protocol datagram;
- performing a second hash operation on a second ordering of the set of bits included in the Internet Protocol datagram, the first ordering of the set of bits being different than the second ordering of the set of bits;
- combining results of the first hash operation and the second hash operation;
- determining a processor for the Internet Protocol datagram from among a set of multiple processors based on the combining of the results of the first hash operation and the second hash operation;
- receiving at least one configuration parameter, the at least one configuration parameter to select an operation mode of an network interface controller, the operation modes of the network interface controller including:
- a first mode that uses an asymmetric hash operation on flow data of a packet to determine a processor from a set of multiple processors for the packet;
- and
- a second mode that uses a symmetric hash operation of flow data of a packet to determine a processor from the set of multiple processors for the packet.
A computer program product, disposed on a non-transitory tangible computer readable medium, the product comprising instructions for causing a processor to:
- issue to a network interface controller a set of configuration parameters, at least one of the configuration parameters to select an operation mode of the network interface controller, the operation modes of the network interface controller including:
- a first mode that uses a asymmetric hash operation of flow data of a packet to determine a processor from a set of multiple processors for the packet;
- and
- a second mode that uses a symmetric hash operation of flow data of a packet to determine a processor from the set of multiple processors for the packet.
A network interface controller, comprising circuitry to:
- receive an Internet Protocol datagram;
- perform a first hash operation on a first ordering of a set of bits included in the Internet Protocol datagram, the set of bits including bits included in a header of the Internet Protocol datagram;
- perform a second hash operation on a second ordering of the set of bits included in the Internet Protocol datagram, the first ordering of the set of bits being different than the second ordering of the set of bits;
- combine results of the first hash operation and the second hash operation;
- determine a processor for the Internet Protocol datagram from among a set of multiple processors based on the combining of the results of the first hash operation and the second hash operation;
- receive at least one configuration parameter, the at least one configuration parameter to select an operation mode of an network interface controller, the operation modes of the network interface controller including:
- a first mode that uses an asymmetric hash operation on flow data of a packet to determine a processor from a set of multiple processors for the packet;
- and
- a second mode that uses a s symmetric hash operation of flow data of a packet to determine a processor from the set of multiple processors for the packet.
An apparatus, comprising circuitry to:
- determine a first hash value for a first packet tuple of a first packet traveling in a first direction of a bi-directional connection;
- determine a processor for the first packet from a set of multiple processors based, at least in part, on the first hash value;
- determine a second hash value for a second packet tuple of a second packet traveling in a second direction of the bi-directional connection;
- and
- determine the same processor for the second packet from the set of multiple processors based, at least in part, on the second hash value;
- wherein the first hash value and the second hash value are equal;
- herein the first packet tuple and the second packet tuple are not equal.
Dependencies are inferred from the claim text.