# US 10,320,956 B2 · Generic data integrity check

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,320,956 B2
- Document ID: US10320956B2
- Status: Granted
- Kind: B2
- Application number: 14/594,137
- Filed: 2015-01-11
- Published: 2015-07-02
- Granted: 2019-06-11
- Earliest claimed: 2013-09-16
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Ofer Naaman; Erez Izenberg; Nafea Bshara
- Web page: https://patentgrep.com/patent/US10320956B2

## CPC

- H04L 47/2433: {Allocation of priorities to traffic types}
- G06F 16/00: Information retrieval; Database structures therefor; File system structures therefor
- G06F 16/134: {Distributed indices}
- G06F 16/182: Distributed file systems
- G06F 16/245: Query processing
- G06F 16/2471: {Distributed queries}
- G06F 16/254: {Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses}
- G06F 16/90: Details of database functions independent of the retrieved data types
- G06F 16/90344: {by using string matching techniques}
- H04L 45/38: {Flow based routing}
- H04L 45/74: Address processing for routing
- H04L 47/10: Flow control; Congestion control
- H04L 47/43: Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
- H04L 49/602: {Multilayer or multiprotocol switching, e.g. IP switching}
- H04L 49/90: Buffering arrangements
- H04L 69/02: {Protocol performance}
- H04L 69/12: Protocol engines
- H04L 69/16: Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L 69/22: Parsing or analysis of headers
- G06F 9/3001: {Arithmetic instructions}
- G06F 13/385: {for adaptation of a particular data processing system to different peripheral devices}
- H04L 1/0066: {Parallel concatenated codes}
- H04L 47/125: by balancing the load, e.g. traffic engineering
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## 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

### Claim 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.

### Claim 2 (depends on 1)

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

### Claim 3 (depends on 2)

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

### Claim 4 (depends on 2)

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.

### Claim 5 (depends on 2)

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.

### Claim 6 (depends on 1)

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

### Claim 7 (depends on 6)

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.

### Claim 8 (depends on 7)

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

### Claim 9 (depends on 1)

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.

### Claim 10 (depends on 9)

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.

### Claim 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.

### Claim 12 (depends on 11)

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.

### Claim 13 (depends on 12)

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

### Claim 14 (depends on 12)

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.

### Claim 15 (depends on 12)

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.

### Claim 16 (depends on 11)

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.

### Claim 17 (depends on 16)

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.

### Claim 18 (depends on 17)

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

### Claim 19 (depends on 17)

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

### Claim 20 (depends on 11)

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.

### Claim 21 (depends on 11)

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.

### Claim 22 (depends on 21)

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.
