IP Library Granted Patent US 8,737,431
Granted Patent B2
US 8,737,431 · App. 13/204,135 · Granted May 27, 2014

Checking data integrity

Inventors: Steve Leslie Pope (Cambridge, GB); Derek Edwards Roberts (Cambridge, GB); David James Riddoch (Cambridge, GB)
Assignee: Solarflare Communications, Inc.
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 8,737,431
App. No.
13/204,135
Granted
May 27, 2014
Kind
B2
Abstract

A network interface device for connection to a data processing device and to a data network so as to provide an interface between the data processing device and the network for supporting the network of packets of a transport protocol, the network interface device being configured to: identify within the payloads of such packets data of a further protocol, the data of the further protocol comprising payload data of the further protocol and framing data of the further protocol, and the framing data including verification data for permitting the integrity of the payload data to be verified; on so identifying data of the further protocol, process at least the payload data for determining the integrity thereof and transmit to the data processing device at least some of the framing data and an indication of the result of the said processing.

Claims (30)

1. A data processing system comprising:

a data processing device configured to perform transport protocol processing; and

a network interface device connected to the data processing device and configured to on receiving a data packet of the transport protocol:

identify within a payload of the data packet data of a further protocol, the data of the further protocol comprising payload data of the further protocol and framing data of the further protocol, the framing data of the further protocol including verification data for permitting the integrity of the payload data of the further protocol to be verified;

upon identifying the data of the further protocol, process the payload data of the further protocol so as to determine the integrity thereof; and

if the payload data of the further protocol is determined by said processing not to have integrity, then transmit to the data processing device header data of the data packet of the transport protocol and at least some of the framing data of the further protocol but not the payload data of the further protocol; and

otherwise, transmit to the data processing device the header data of the data packet of the transport protocol, the payload data of the further protocol and at least some of the framing data of the further protocol;

wherein the data processing device is further configured to:

on receiving the header data of the data packet of the transport protocol and at least some of the framing data of the further protocol but not the payload data of the further protocol, initiate a request for retransmission of the payload data of the further protocol; and

on receiving the header data of the data packet of the transport protocol, payload data of the further protocol and at least some of the framing data of the further protocol, process the payload and framing data of the further protocol and at least partially protocol process the header data of the data packet of the transport protocol.

2. A data processing system as claimed in claim 1 , wherein the network interface device is configured to process the payload data of the further protocol by applying a data verification algorithm to the payload data of the further protocol to form a verification result.

3. A data processing system as claimed in claim 2 , wherein the network interface device is configured to transmit the verification result to the data processing device with the at least some of the framing data of the further protocol.

4. A data processing system as claimed in claim 1 , wherein the network interface device is configured to transmit header data of the data packet of the transport protocol to the data processing device with the at least some of the framing data of the further protocol.

5. A data processing system as claimed in claim 2 , wherein the data verification algorithm is a cyclic redundancy check function.

6. A data processing system as claimed in claim 2 , wherein the data verification algorithm is an authentication function.

7. A data processing system as claimed in claim 1 , wherein the network interface device is configured to perform the transmission to the data processing device by transmitting data to a transport library supported by the data processing device.

8. A data processing system as claimed in claim 1 , wherein the transport protocol is the TCP (transmission control protocol) protocol.

9. A data processing system as claimed in claim 1 , wherein the further protocol is a protocol for remote direct memory access.

10. A data processing system as claimed in claim 9 , wherein the further protocol is such that it supports memory write instructions and the framing data of the further protocol includes information indicative of a memory address of the data processing device to which at least some of the payload data is intended to be written.

11. A data processing system as claimed in claim 10 , wherein the further protocol is the RDMA (remote direct memory access) or iSCSI (internet small computer serial interface) protocol.

12. A data processing system as claimed in claim 1 , wherein the network interface device is configured to provide an interface between the data processing device and a network.

13. A method for processing a data packet received over a network at a data processing system having a data processing device configured to perform transport protocol processing and a network interface device, the method comprising:

the network interface device, on receiving a data packet formed in accordance with a transport protocol:

identifying within a payload of the data packet data of a further protocol, the data of the further protocol comprising payload data of the further protocol and framing data of the further protocol, the framing data of the further protocol including verification data for permitting the integrity of the payload data to be verified;

upon identifying the data of the further protocol, processing the payload data of the further protocol so as to determine the integrity thereof; and

if the payload data of the further protocol is determined by said processing not to have integrity, then transmitting to the data processing device header data of the data packet of the transport protocol and at least some of the framing data of the further protocol but not the payload data of the further protocol; and

otherwise, transmitting to the data processing device the header data of the data packet of the transport protocol, the payload data of the further protocol and at least some of the framing data of the further protocol;

on receiving the header data of the data packet of the transport protocol and at least some of the framing data of the further protocol but not the payload data of the further protocol, initiate a request for retransmission of the payload data of the further protocol; and

on receiving the header data of the data packet of the transport protocol, payload data of the further protocol and at least some of the framing data of the further protocol, process the payload and framing data of the further protocol and at least partially protocol process the header data of the data packet of the transport protocol.

14. A method as claimed in claim 13 , wherein the network interface device is located between the data processing device and a network.

Assignments (10)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2021
From: POPE, STEVE LESLIE; ROBERTS, DAVID EDWARDS; RIDDOCH, DAVID JAMES
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 057854/0853 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2019
From: SOLARFLARE COMMUNICATIONS, INC.
To: XILINX, INC.
Reel/Frame 051108/0209 →
RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jul 31, 2019
From: ALLY BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 049918/0440 →
RELEASE OF SECURITY INTEREST Recorded Jun 15, 2017
From: PACIFIC WESTERN BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 042820/0890 →
SECURITY INTEREST Recorded Mar 7, 2017
From: SOLARFLARE COMMUNICATIONS, INC.
To: ALLY BANK
Reel/Frame 041902/0527 →
SECURITY INTEREST Recorded Apr 6, 2016
From: SOLARFLARE COMMUNICATIONS, INC.
To: PACIFIC WESTERN BANK
Reel/Frame 038363/0589 →
RELEASE OF SECURITY INTEREST Recorded Nov 24, 2014
From: COMERICA BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 034255/0140 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2014
From: COMERICA BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 033716/0073 →
CHANGE OF ADDRESS Recorded Oct 31, 2012
From: SOLARFLARE COMMUNICATIONS, INC.
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 029360/0956 →
SECURITY AGREEMENT Recorded Jan 5, 2012
From: SOLARFLARE COMMUNICATIONS, INC., A DELAWARE CORPORATION
To: COMERICA BANK, AS AGENT, A TEXAS BANKING ASSOCIATION
Reel/Frame 027487/0097 →
Priority Claims (1)
WO PCT/GB2005/001376 · Apr 21, 2004 · international
Continuity (2)
Continuation 11584263 · Oct 19, 2006
Related Publication 20110296535A1 · Dec 1, 2011