Method, apparatus and networking equipment for performing flow hashing using quasi cryptographic hash functions
First Claim
Patent Images
1. A method comprising:
- obtaining, at a network node, a key for a packet;
forming, at the network node, a first pseudorandom number as a function of a first polynomial generator and the key;
forming, at the network node, a second pseudorandom number as a function of a second polynomial generator and the key;
combining, at the network node, the first and the second pseudorandom numbers to form a third pseudorandom number, wherein combining the first and the second pseudorandom numbers to form the third pseudorandom number comprises invoking at least one polynomial operation where the first and the second pseudorandom numbers are operands for the at least one polynomial operation; and
selecting, at the network node, as a function of the third pseudorandom number, a path to which to forward the packet, wherein;
the third pseudorandom number comprises a most significant byte and a least significant byte; and
selecting the path as a function of the third pseudorandom number comprises selecting the path based on the most significant byte of the third pseudorandom number.
2 Assignments
0 Petitions
Accused Products
Abstract
A method, apparatus and networking equipment for performing flow hashing is provided. The method may include obtaining, at a network node, a key for a packet; forming, at the network node, a first pseudorandom number as a function of a first polynomial generator and the key; forming, at the network node, a second pseudorandom number as a function of a second polynomial generator and the key; combining, at the network node, the first and second pseudorandom numbers to form a third pseudorandom number; and selecting, at the network node, as a function of the third pseudorandom number, a path to which to forward the packet.
-
Citations
30 Claims
-
1. A method comprising:
-
obtaining, at a network node, a key for a packet; forming, at the network node, a first pseudorandom number as a function of a first polynomial generator and the key; forming, at the network node, a second pseudorandom number as a function of a second polynomial generator and the key; combining, at the network node, the first and the second pseudorandom numbers to form a third pseudorandom number, wherein combining the first and the second pseudorandom numbers to form the third pseudorandom number comprises invoking at least one polynomial operation where the first and the second pseudorandom numbers are operands for the at least one polynomial operation; and selecting, at the network node, as a function of the third pseudorandom number, a path to which to forward the packet, wherein; the third pseudorandom number comprises a most significant byte and a least significant byte; and selecting the path as a function of the third pseudorandom number comprises selecting the path based on the most significant byte of the third pseudorandom number. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
obtaining, at a network node, a key for a packet; forming, at the network node, a first pseudorandom number as a function of a first polynomial generator and the key; forming, at the network node, a second pseudorandom number as a function of a second polynomial generator and the key; forming, at the network node, a rotation code equal to one of a number of rotations of the first polynomial generator; combining, at the network node, the first pseudorandom number, the second pseudorandom number and the rotation code to form a third pseudorandom number, wherein combining the first pseudorandom number, the second pseudorandom number, and the rotation code to form the third pseudorandom number comprises invoking at least one polynomial operation where the first pseudorandom number, the second pseudorandom number, and the rotation code are operands for the at least one polynomial operation; and selecting, at the network node, as a function of the third pseudorandom number, a path to which to forward the packet, wherein; the third pseudorandom number comprises a most significant byte and a least significant byte; and selecting the path as a function of the third pseudorandom number comprises selecting the path based on the most significant byte of the third pseudorandom number. - View Dependent Claims (9, 10, 11)
-
-
12. A method comprising:
-
obtaining, at a network node, a key for a packet; forming, at the network node, a first pseudorandom number as a function of a first polynomial generator and the key; forming, at the network node, a rotation code equal to one of a number of rotations of the first polynomial generator; combining, at the network node, the first pseudorandom number and the rotation code to form a second pseudorandom number, wherein combining the first pseudorandom number and the rotation code to form the second pseudorandom number comprises invoking at least one polynomial operation where the first pseudorandom number and the rotation code are operands for the at least one polynomial operation; and selecting, at the network node, as a function of the second pseudorandom number, a path to which to forward the packet, wherein; the second pseudorandom number comprises a most significant byte and a least significant byte; and selecting the path as a function of the second pseudorandom number comprises selecting the path based on the most significant byte of the second pseudorandom number. - View Dependent Claims (13, 14, 15)
-
-
16. An apparatus comprising:
-
memory operable to store executable instructions; and a processor operable to obtain the executable instructions from memory and execute the executable instructions to; obtain a key for a packet; form a first pseudorandom number as a function of a first polynomial generator and the key; form a second pseudorandom number as a function of a second polynomial generator and the key; combine the first and the second pseudorandom numbers to form a third pseudorandom number, wherein the processor combines the first and the second pseudorandom numbers to form the third pseudorandom number by invoking at least one polynomial operation where the first and the second pseudorandom numbers are operands for the at least one polynomial operation; and select, as a function of the third pseudorandom number, a path to which to forward the packet, wherein; the third pseudorandom number comprises a most significant byte and a least significant byte; and selection of the path as a function of the third pseudorandom number comprises selection of the path based on the most significant byte of the third pseudorandom number. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
-
23. A system comprising:
-
a parsing circuit configured to obtain a key for a packet; and a memory in communication with the parsing circuit and a processor, the memory comprising logic that, when executed by the processor, causes the processor to; form a first pseudorandom number as a function of a first polynomial generator and the key; form a second pseudorandom number as a function of a second polynomial generator and the key; form a rotation code equal to one of a number of rotations of the first polynomial generator; combine the first pseudorandom number, the second pseudorandom number and the rotation code to form a third pseudorandom number, wherein the processor combines the first pseudorandom number, the second pseudorandom number, and the rotation code using by invoking at least one polynomial operation, where the first pseudorandom number, the second pseudorandom number, and the rotation code are operands for the at least one polynomial operation; and select, as a function of the third pseudorandom number, a path to which to forward the packet, wherein; the third pseudorandom number comprises a most significant byte and a least significant byte; and selection of the path as a function of the third pseudorandom number comprises selection of the path based on the most significant byte of the third pseudorandom number. - View Dependent Claims (24, 25, 26)
-
-
27. A networking equipment comprising:
-
a parsing circuit configured to obtain a key for a packet; and a memory in communication with the parsing circuit and a processor, the memory comprising logic that, when executed by the processor, causes the processor to; form a first pseudorandom number as a function of a first polynomial generator and the key; form a rotation code equal to one of a number of rotations of the first polynomial generator; combine the first pseudorandom number and the rotation code to form a second pseudorandom number, where the processor combines the first pseudorandom number and the rotation code by invoking at least one polynomial operation, where the first pseudorandom number and the rotation code are operands for the at least one polynomial operation; and select, as a function of the second pseudorandom number, a path to which to forward the packet, wherein; the second pseudorandom number comprises a most significant byte and a least significant byte; and selection of the path as a function of the second pseudorandom number comprises selection of the path based on the most significant byte of the second pseudorandom number. - View Dependent Claims (28, 29, 30)
-
Specification