IP Library Granted Patent US 9,473,405
Granted Patent B2
US 9,473,405 · App. 14/203,288 · Granted Oct 18, 2016

Concurrent hashes and sub-hashes on data streams

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,473,405
App. No.
14/203,288
Granted
Oct 18, 2016
Kind
B2
Abstract

One embodiment of the present invention provides a system for performing concurrent hashing of packet streams. During operation, the system receives a stream of packets at a controller. The controller then identifies types and parameters for a plurality of different hashing operations based on a received packet. The controller further sends the packet concurrently to corresponding different hashing modules to produce different hash values, which can be used to facilitate packet forwarding.

Claims (56)

1. A computer-executable method for performing concurrent hashing of packet streams, the method comprising:

receiving a stream of packets at a controller;

identifying by the controller types and parameters for a plurality of different hashing operations based on a received packet;

sending the packet concurrently to corresponding different hashing modules to produce different hash values, which can be used to facilitate packet forwarding;

receiving a status for the different hashing operations from the corresponding different hashing modules; and

scheduling hashing operations in a next cycle based on the received status for the different hashing operations.

2. The method of claim 1 , wherein a first of the plurality of hashing operations uses as input an intermediate state of a second hashing operation.

3. The method of claim 2 , wherein the first and second hashing operations are SipHash operations.

4. The method of claim 1 , wherein the plurality of different hashing operations include one or more of:

a SHA-2 hash;

a SHA-3 hash;

a SipHash; and

a Fowler-Noll-Vo (FNV) hash.

5. The method of claim 1 , further comprising:

receiving multiple packet streams in parallel into a plurality of corresponding controllers; and

cross-connecting a respective packet stream to an array of hashing modules, thereby facilitating concurrent multiple hashing operations for each of the multiple packet streams.

6. The method of claim 5 , further comprising:

in response to determining that the received status for a hashing operation indicates error or fault, discontinuing using the corresponding hashing module.

7. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method, the method comprising:

receiving a stream of packets at a controller;

identifying by the controller types and parameters for a plurality of different hashing operations based on a received packet;

sending the packet concurrently to corresponding different hashing modules to produce different hash values, which can be used to facilitate packet forwarding;

receiving a status for the different hashing operations from the corresponding different hashing modules; and

scheduling hashing operations in a next cycle based on the received status for the different hashing operations.

8. The storage medium of claim 7 , wherein a first of the plurality of hashing operations uses as input an intermediate state of a second hashing operation.

9. The storage medium of claim 8 , wherein the first and second hashing operations are SipHash operations.

10. The storage medium of claim 7 , wherein the plurality of different hashing operations include one or more of:

a SHA-2 hash;

a SHA-3 hash;

a SipHash; and

a Fowler-Noll-Vo (FNV) hash.

11. The storage medium of claim 7 , wherein the method further comprises:

receiving multiple packet streams in parallel into a plurality of corresponding controllers; and

cross-connecting a respective packet stream to an array of hashing modules, thereby facilitating concurrent multiple hashing operations for each of the multiple packet streams.

12. The storage medium of claim 11 , wherein the method further comprises:

in response to determining that the received status for a hashing operation indicates error or fault, discontinuing using the corresponding hashing module.

13. A computer system for performing concurrent hashing of packet streams, the computer system comprising:

a processor;

a storage device coupled to the processor and storing instructions which when executed by the processor cause the processor to perform a method, the method comprising:

receiving a stream of packets at a controller;

identifying by the controller types and parameters for a plurality of different hashing operations based on a received packet;

sending the packet concurrently to corresponding different hashing modules to produce different hash values, which can be used to facilitate packet forwarding;

receiving a status for the different hashing operations from the corresponding different hashing modules; and

scheduling hashing operations in a next cycle based on the received status for the different hashing operations.

14. The computer system of claim 13 , wherein a first of the plurality of hashing operations uses as input an intermediate state of a second hashing operation.

15. The computer system of claim 14 , wherein the first and second hashing operations are SipHash operations.

16. The computer system of claim 13 , wherein the plurality of different hashing operations include one or more of:

a SHA-2 hash;

a SHA-3 hash;

a SipHash; and

a Fowler-Noll-Vo (FNV) hash.

17. The computer system of claim 13 , wherein the method further comprises:

receiving multiple packet streams in parallel into a plurality of corresponding controllers; and

cross-connecting a respective packet stream to an array of hashing modules, thereby facilitating concurrent multiple hashing operations for each of the multiple packet streams.

18. The computer system of claim 17 , wherein the method further comprises:

in response to determining that the received status for a hashing operation indicates error or fault, discontinuing using the corresponding hashing module.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2017
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: CISCO SYSTEMS, INC.
Reel/Frame 041714/0373 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2017
From: CISCO SYSTEMS, INC.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 041715/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2014
From: MOSKO, MARC E.; SCOTT, GLENN C.
To: PALO ALTO RESEARCH CENTER INCORPORATED
Reel/Frame 032501/0389 →