IP Library › Granted Patent US 7,383,483
Granted Patent B2
US 7,383,483 · App. 10/733,588 · Granted Jun 3, 2008

Data transfer error checking

Assignee: International Business Machines Corporation
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 7,383,483
App. No.
10/733,588
Granted
Jun 3, 2008
Kind
B2
Abstract

An RNIC implementation that performs direct data placement to memory where all segments of a particular connection are aligned, or moves data through reassembly buffers where all segments of a particular connection are non-aligned. The type of connection that cuts-through without accessing the reassembly buffers is referred to as a “Fast” connection because it is highly likely to be aligned, while the other type is referred to as a “Slow” connection. When a consumer establishes a connection, it specifies a connection type. The connection type can change from Fast to Slow and back. The invention reduces memory bandwidth, latency, error recovery using TCP retransmit and provides for a “graceful recovery” from an empty receive queue. The implementation also may conduct CRC validation for a majority of inbound DDP segments in the Fast connection before sending a TCP acknowledgement (Ack) confirming segment reception.

Claims (18)

1. A system for checking a data transfer for an error, the system comprising:

means for identifying a boundary of the data transfer based on a first assumption that a first two bytes of a transmission control protocol (TCP) payload includes a marker with protocol data unit alignment (MPA) protocol length field;

means for calculating a cyclical redundancy check (CRC) value based on the first assumption and a second assumption that the data transfer includes at least one aligned direct data placement (DDP) segment, wherein the calculating means further calculates a TCP checksum value, and wherein the calculating means calculates the CRC value and the TCP checksum value in parallel; and

wherein the data transfer includes an MPA length field that includes an entire MPA frame including: fourteen most-significant bits (MSBs) of the MPA length field, an upper layer protocol (ULP) payload length, all MPA markers, CRC data, two least-significant bits (LSBs) of the MPA length field, and any valid bits in MPA padding.

2. The system of claim 1 , wherein the identifying means includes means for fetching an Initial Sequence Number from a connection context and determining a remainder between the Initial Sequence Number and a data transfer sequence number.

3. The system of claim 1 , wherein an MPA request/reply frame includes a correction factor including a number of bytes needed to make an initial sequence number of the data transfer word-aligned.

4. The system of claim 3 , wherein the identifying means includes means for implementing a sequence number mod 512 process.

5. The system of claim 1 , further comprising:

means for determining whether a first word of the MPA frame equals zero;

means for reading the MPA length field from a next word where the first word equals zero; and

means for reading the MPA length field from the first word where the first word does not equal zero.

6. The system of claim 1 , wherein when the data transfer does not include an MPA marker.

7. A computer program product comprising a computer useable medium having computer readable program code embodied therein for limiting a number of re-transmission attempts for checking a data transfer for an error, the program product comprising:

program code configured to identify a boundary of the data transfer based on a first assumption that a first two bytes of a transmission control protocol (TCP) payload includes a marker with protocol data unit alignment (MPA) protocol length field and wherein the data transfer includes an MPA length field that includes an entire MPA frame including: fourteen most-significant bits (MSBs) of the MPA length field, an upper layer protocol (ULP) payload length, all MPA markers, CRC data, two least-significant bits (LSBs) of the MPA length field, and any valid bits in MPA padding;

program code configured to calculate a cyclical redundancy check (CRC) value based on the first assumption and a second assumption that the data transfer includes at least one aligned direct data placement (DDP) segment; and

program code configured to calculate a TCP checksum value in parallel with calculating the CRC value.

8. The program product of claim 7 , wherein an MPA request/reply includes a correction factor including a number of bytes needed to make an initial sequence number of the data transfer word-aligned.

9. The program product of claim 8 , wherein the identifying program code includes program code configured to implement a sequence number mod 512 process.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2003
From: BIRAN, GIORA; MACHULSKY, ZORIK; MAKHERVAKS, VADIM
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 014803/0456 →
Continuity (1)
Related Publication 20050149817A1 · Jul 7, 2005