IP Library Granted Patent US 10,320,956
Granted Patent B2
US 10,320,956 · App. 14/594,137 · Granted Jun 11, 2019

Generic data integrity check

Inventors: Ofer Naaman (Hod-Hasharon, IL); Erez Izenberg (Tel Aviv, IL); Nafea Bshara (San Jose, CA)
Assignee: Amazon Technologies, Inc.
H04L69/22H04L47/10H04L47/2433H04L69/12H04L69/16G06F9/3001G06F13/385H04L1/0066H04L47/125Y02D10/14Y02D10/151
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 10,320,956
App. No.
14/594,137
Granted
Jun 11, 2019
Kind
B2
Abstract

A system, comprising: a configurable parser that comprises one or more configurable parsing engines, wherein the configurable parser is arranged to receive a packet and to extract from the packet headers associated with a set of protocols that comprises at least one protocol; a packet type detection unit that is arranged to determine a type of the packet in response to the set of protocols; and a configurable data integrity unit that comprises a configuration unit and at least one configurable data integrity engine; wherein the configuration unit is arranged to configure the at least one configurable data integrity engine according to the set of protocols; and wherein the at least one configurable data integrity engine is arranged to perform data integrity processing of the packet to provide at least one data integrity result.

Claims (34)

1. A method for packet processing, the method comprising:

receiving a packet;

detecting, by a configurable parser, a protocol set of multiple protocols that is associated with the packet, wherein the configurable parser comprises a configurable data integrity unit having a configuration unit and multiple configurable data integrity engines that are each independently programmable to support multiple protocols;

extracting and parsing, by the configurable parser, each header of each protocol of the set of multiple protocols;

configuring different configurable data integrity engines of the multiple configurable data integrity engines according to different protocols of the multiple protocols associated with the packet wherein the configuring is executed by the configuration unit of the configurable data integrity unit;

extracting, from the packet, packet portions to be data integrity processed;

performing, by the configurable data integrity unit of the configurable parser, data integrity processing of the extracted packet portions of the packet to provide data integrity results for the packet; and

responding to the data integrity results.

2. The method according to claim 1 , comprising configuring the multiple configurable data integrity engines by providing to each configurable data integrity engine configuration information.

3. The method according to claim 2 , wherein the configuration information comprises masking information for masking bits of the packet.

4. The method according to claim 2 , wherein the configuration information comprises masking information for masking variant bits of the packet that are changed during a propagation of the packet through a network, and for unmasking non-variant bits of the packet.

5. The method according to claim 2 , wherein the configuration information includes an offset from a start of the packet and an offset from an end of the packet indicating which portion of the packet is to be processed by a corresponding configurable parsing engine.

6. The method according to claim 1 , wherein the data integrity results are indicative of an outcome of an end-to-end data integrity check.

7. The method according to claim 6 , comprising ignoring variant bits of the packet that are changed during a propagation of the packet through a network and processing non-variant bits of the packet that are expected not to be changed during the propagation of the packet through the network.

8. The method according to claim 7 , wherein the variant bits being ignored includes data bits corresponding to port identifiers.

9. The method according to claim 1 , wherein the configurable parser comprises multiple configurable parsing engines, wherein different portions of an information unit are processed by different configurable parsing engines; and the method comprises processing, by a configurable parsing engine, a portion of the information unit in response to at least previous processing result provided from a previous configurable parsing engine, and generating, by the configurable parsing engine, a current processing result to be used by a next configurable parsing engine.

10. The method according to claim 9 , wherein the multiple configurable parsing engines and concatenating modules form a first interleaved sequence, and wherein each parsing engine is followed by a concatenating module.

11. An integrated circuit device comprising:

a configurable parser that comprises one or more configurable parsing engines, wherein the configurable parser is arranged to receive a packet and to extract, from the packet, headers associated with a set of protocols;

a packet type detection unit that is arranged to determine multiple protocols associated with the packet; and

a configurable data integrity unit that comprises a configuration unit and multiple configurable data integrity engines that are each independently programmable to support multiple protocols,

wherein the configuration unit is arranged to configure different configurable data integrity engines of the multiple configurable data integrity engines according to different protocols of the multiple protocols associated with the packet, and

wherein the multiple configurable data integrity engines are arranged to perform data integrity processing of the packet to provide a set of data integrity results for the packet.

12. The integrated circuit device according to claim 11 , wherein the configuration unit is arranged to configure the multiple configurable data integrity engines by providing to each configurable data engine configuration information.

13. The integrated circuit device according to claim 12 , wherein the configuration information comprises masking information for masking bits of the packet.

14. The integrated circuit device according to claim 12 , wherein the configuration information comprises masking information for masking variant bits of the packet that are changed during a propagation of the packet through a network, and for unmasking non-variant bits of the packet.

15. The integrated circuit device according to claim 12 , wherein the configuration information includes an offset from a start of the packet and an offset from an end of the packet indicating which portion of the packet is to be processed by the corresponding configurable parsing engine.

16. The integrated circuit device according to claim 11 , wherein the the integrated circuit device is arranged to perform an end-to-end data integrity check.

17. The integrated circuit device according to claim 16 , wherein the the integrated circuit device is arranged to perform the end-to-end data integrity check by ignoring variant bits of the packet that are changed during a propagation of the packet through a network and processing non-variant bits of the packet that are expected not to be changed during the propagation of the packet through the network.

18. The integrated circuit device according to claim 17 , wherein the variant bits being ignored include data bits corresponding to a time to live value.

19. The integrated circuit device according to claim 17 , wherein the variant bits being ignored include data bits corresponding to port identifiers.

20. The integrated circuit device according to claim 11 , wherein the configurable data integrity unit is coupled between a media access control module and a communication endpoint adaptor.

21. The integrated circuit device according to claim 11 , wherein the configurable parser comprises multiple configurable parsing engines, wherein different portions of an information unit are processed by different configurable parsing engines, and wherein at least one configurable parsing engine is configured to process a portion of the information unit in response to at least previous processing result provided from a previous configurable parsing engine, and to generate a current processing result to be used by a next configurable parsing engine.

22. The integrated circuit device according to claim 21 , wherein the multiple configurable parsing engines and concatenating modules form a first interleaved sequence, and wherein each parsing engine is followed by a concatenating module.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2017
From: ANNAPURNA LABS LTD.
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 042934/0057 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2015
From: NAAMAN, OFER; IZENBERG, EREZ; BSHARA, NAFEA
To: ANNAPURNA LABS LTD.
Reel/Frame 034861/0472 →
Continuity (2)
Continuation In Part 14027257 · Sep 16, 2013
Related Publication 20150189047A1 · Jul 2, 2015