# US 8,751,909 B2 · Processing of block and transaction signatures

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

- Number: US 8,751,909 B2
- Document ID: US8751909B2
- Status: Granted
- Kind: B2
- Application number: 13/489,474
- Filed: 2012-06-06
- Published: 2012-09-27
- Granted: 2014-06-10
- Earliest claimed: 2009-10-04
- Assignees: Mellanox Technologies, Ltd.
- Applicants: Michael Kagan; Noam Bloch; Ariel Shachar
- Inventors: Michael Kagan; Noam Bloch; Ariel Shachar
- Web page: https://patentgrep.com/patent/US8751909B2

## CPC

- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 63/123: {received data contents, e.g. message integrity}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A network communication device includes a host interface, which is coupled to communicate with a host processor, having a host memory, so as to receive a work request to execute a transaction in which a plurality of data blocks are to be transferred over a packet network. Processing circuitry is configured to process multiple data packets so as to execute the transaction, each data packet in the transaction containing a portion of the data blocks, and the multiple data packets including at least first and last packets, which respectively contain the first and last data blocks of the transaction. The processing circuitry is configured to compute a transaction signature over the data blocks while processing the data packets so that at least the first data block passes out of the network communication device through one of the interfaces before computation of the transaction signature is completed.

## Claims

### Claim 1

A network communication device, comprising:
a host interface, which is coupled to communicate with a host processor so as to receive a work request to execute a transaction in which data are transferred over a packet network;
a network interface, coupled to the packet network; and
processing circuitry, which is configured to process one or more data packets containing the data so as to execute the transaction subject to a signature that is defined over an integer number of data blocks of a given size, and which is configured to pad the data in order to fit the integer number of the data blocks, and to compute the signature over the padded data.

### Claim 2 (depends on 1)

The device according to claim 1, wherein the processing circuitry is configured to pad the data with padding that is signature-invariant with respect to the defined signature.

### Claim 3 (depends on 1)

The device according to claim 1, wherein the processing circuitry is configured to receive the data from a heterogeneous protection domain, in which different data blocks may have different sizes, and to pad the data for transmission in a homogeneous protection domain, in which all the data blocks have the same size.

### Claim 4 (depends on 1)

The device according to claim 1, and comprising a control memory, which is configured to store a signature context specifying a definition of the signature for the transaction, wherein the processing circuitry is configured to read and apply the signature context in order to compute the signature.

### Claim 5 (depends on 1)

The device according to claim 1, wherein the data are received by the processing circuitry with a first signature, and the processing circuitry is configured to remove, read and verify the first signature, to pad the data after removing the first signature, and to compute and append a second signature, different from the first signature, to the integer number of the data blocks that contain the padded data.

### Claim 6

A method for communication, comprising:
receiving a work request from a host processor to execute a transaction in which data are transferred, subject to a signature that is defined over an integer number of data blocks of a given size, over a packet network via a network interface device;
padding the data in the network interface device in order to fit the integer number of the data blocks;
computing the signature in the network interface device over the padded data; and
processing, in the network interface device, one or more data packets containing the data with the signature so as to execute the transaction.

### Claim 7 (depends on 6)

The method according to claim 6, wherein the padding the data comprises appending to the data padding that is signature-invariant with respect to the defined signature.

### Claim 8 (depends on 6)

The method according to claim 6, wherein processing the one or more data packets comprises receiving the data from a heterogeneous protection domain, in which different data blocks may have different sizes, and wherein padding the data comprises preparing the data for transmission in a homogeneous protection domain, in which all the data blocks have the same size.

### Claim 9 (depends on 6)

The method according to claim 6, and comprising reading a definition of the signature for the transaction from a signature context stored in a control memory, wherein the data are padded and the signature is computed in accordance with the definition in the signature context.

### Claim 10 (depends on 6)

The method according to claim 6, wherein processing the one or more data packets comprises receiving the data with a first signature, verifying the first signature, and removing the first signature from the data, and
wherein the data are padded after removing the first signature, and wherein computing the signature comprises computing and appending a second signature, different from the first signature, to the integer number of the data blocks that contain the padded data.
