IP Library Granted Patent US 8,549,170
Granted Patent B2
US 8,549,170 · App. 10/741,978 · Granted Oct 1, 2013

Retransmission system and method for a transport offload engine

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,549,170
App. No.
10/741,978
Granted
Oct 1, 2013
Kind
B2
Abstract

A system and method are provided for performing the retransmission of data in a network. Included is an offload engine in communication with system memory and a network. The offload engine serves for managing the retransmission of data transmitted in the network.

Claims (49)

1. An offload engine system for performing the retransmission of data in a network, comprising:

an offload engine in communication with system memory and a network,

wherein the offload engine manages the retransmission of data transmitted in the network;

wherein the offload engine transmits a status message to a processor to initiate retrieval of the data to be retransmitted, and the status message is transmitted based on a receipt of at least one acknowledgement or lack thereof;

wherein the offload engine is in communication with the processor and manages the retransmission of the data, by:

identifying the data to be retransmitted,

retrieving the data to be retransmitted that is stored in the system memory, and

retransmitting the retrieved data;

wherein the processor transmits a retransmit instruction message to the offload engine, in response to the status message;

wherein the offload engine transmits the status message to the processor utilizing a host driver associated with the processor and the host driver takes an oldest buffer from a buffer list to include in the retransmit instruction message.

2. The system as recited in claim 1 , wherein the status message is transmitted based on a timeout.

3. The system as recited in claim 1 , wherein the status message includes a handle for a control block for a socket.

4. The system as recited in claim 1 , wherein the status message includes a sequence number.

5. The system as recited in claim 1 , wherein the status message includes a retransmit data size.

6. The system as recited in claim 1 , wherein the retransmit instruction message includes a sequence number.

7. The system as recited in claim 1 , wherein the retransmit instruction message includes at least one pointer to at least one host buffer.

8. The system as recited in claim 7 , wherein the pointer is maintained by the offload engine.

9. The system as recited in claim 7 , wherein the pointer is maintained by the processor.

10. The system as recited in claim 7 , wherein the retransmit instruction message includes an offset for use with the pointer to identify the data to be retransmitted.

11. The system as recited in claim 10 , wherein the offset is included to specify a starting location in the buffer list for the data to be retransmitted.

12. The system as recited in claim 1 , wherein the retransmit instruction message includes a handle for a control block for a socket.

13. The system as recited in claim 12 , wherein the control block includes information associated with the data that is recently acknowledged.

14. The system as recited in claim 1 , wherein the offload engine requests a direct memory access to retrieve the data to be retransmitted, in response to the retransmit instruction message.

15. The system as recited in claim 14 , wherein the offload engine initiates a comparison involving a sequence number, in response to receipt of the data to be retransmitted.

16. The system as recited in claim 15 , wherein the offload engine retransmits the data based on the comparison.

17. The system as recited in claim 1 , wherein the offload engine transmits the status message to the processor to indicate that the acknowledgement for transmitted data has been received from a remote host.

18. The system as recited in claim 17 , wherein the status message includes a handle for a control block for a socket.

19. The system as recited in claim 17 , wherein the status message includes an acknowledgement number.

20. The system as recited in claim 1 , wherein the system memory includes processor system memory coupled to the processor via a bus.

21. The system as recited in claim 1 , wherein the system memory includes processor system memory that resides on the processor.

22. The system as recited in claim 1 , wherein the offload engine includes a receiver, a poller, memory, a status message generator, an instruction block queue, an instruction block parser, a transmission requestor, a direct memory access queue, and a data packet generator.

23. An offload engine sub-system for performing the retransmission of data in a network, comprising:

an offload engine in communication with a processor and a network,

wherein the offload engine manages data transmitted in the network, by:

identifying data to be retransmitted,

retrieving the data to be retransmitted that is stored in processor system memory, and

retransmitting the retrieved data;

wherein the offload engine transmits a status message to the processor to initiate the retrieval of the data to be retransmitted, and the status message is transmitted based on a receipt of at least one acknowledgement or lack thereof;

wherein the processor transmits a retransmit instruction message to the offload engine, in response to the status message;

wherein the offload engine transmits the status message to the processor utilizing a host driver associated with the processor and the host driver takes an oldest buffer from a buffer list to include in the retransmit instruction message.

24. A method for performing the retransmission of data in a network, utilizing an offload engine, comprising:

identifying data to be retransmitted;

retrieving the data to be retransmitted that is stored in system memory, and

retransmitting the retrieved data;

wherein an offload engine transmits a status message to a processor to initiate the retrieval of the data to be retransmitted, and the status message is transmitted based on a receipt of at least one acknowledgement or lack thereof;

wherein the offload engine is in communication with system memory and a network;

wherein the offload engine manages the retransmission of data transmitted in the network;

wherein the processor transmits a retransmit instruction message to the offload engine, in response to the status message;

wherein the offload engine transmits the status message to the processor utilizing a host driver associated with the processor and the host driver takes an oldest buffer from a buffer list to include in the retransmit instruction message.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2004
From: IREADY CORPORATION
To: NVIDIA CORPORATION
Reel/Frame 015377/0829 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2004
From: IREADY CORPORATION
To: NVIDIA CORPORATION
Reel/Frame 015320/0112 →
TERMINATION OF SECURITY INTEREST IN PATENTS Recorded Apr 23, 2004
From: LANZA TECHVENTURE, AS COLLATERAL AGENT
To: IREADY CORPORATION
Reel/Frame 014556/0307 →
SECURITY INTEREST Recorded Mar 15, 2004
From: IREADY CORPORATION
To: LANZA TECHVENTURE AS COLLETERAL AGENT
Reel/Frame 014428/0212 →
SECURITY AGREEEMENT Recorded Mar 11, 2004
From: IREADY CORPORATION
To: LANZA TECHVENTURE, COLLATERAL AGENT
Reel/Frame 014409/0910 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2003
From: MINAMI, JOHN SHIGETO; JOHNSON, MICHAEL WARD; CURRID, ANDREW; KANURI, MRUDULA
To: IREADY CORPORATION
Reel/Frame 014838/0800 →