IP Library Granted Patent US 7,876,761
Granted Patent B2
US 7,876,761 · App. 12/822,023 · Granted Jan 25, 2011

System and method for fault tolerant TCP offload

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,876,761
App. No.
12/822,023
Granted
Jan 25, 2011
Kind
B2
Abstract

Systems and methods that provide fault tolerant transmission control protocol (TCP) offloading are provided. In one example, a method that provides fault tolerant TCP offloading is provided. The method may include one or more of the following steps: receiving TCP segment via a TCP offload engine (TOE); calculating a TCP sequence number; writing a receive sequence record based upon at least the calculated TCP sequence number to a TCP sequence update queue in a host; and updating a first host variable with a value from the written receive sequence record.

Claims (45)

1. In a network interface, a method for interfacing a host computer to a communication network, the method comprising:

in a network interface:

in a first mode of operation, where the first mode of operation comprises receiving in-order TCP segments, at least:

receiving a TCP segment;

calculating a TCP received sequence number based upon the received TCP segment;

updating a value of a first network interface variable with the calculated TCP received sequence number; and

transferring only a portion of the received TCP segment to a buffer of the host, wherein said transferring comprises using direct memory access to transfer the portion; and

in a recovery mode of operation, at least:

transferring the received TCP segment to a buffer of the host for TCP processing by the host.

2. The method of claim 1 , comprising in the recovery mode of operation, utilizing a network interface card different from an interface utilized in the first mode of operation.

3. The method of claim 1 , comprising in the recovery mode of operation, setting state variables in the network interface.

4. The method of claim 1 , comprising in the recovery mode of operation, setting state variables in the network interface under control of the host.

5. The method of claim 1 , comprising in the recovery mode of operation, receiving TCP segments out-of-order.

6. The method of claim 5 , comprising in the recovery mode of operation, monitoring ACK messages to determine when received TCP segments are back in order.

7. The method of claim 1 , wherein the transferred portion of the received TCP segment is a payload of the received TCP segment.

8. The method of claim 1 , comprising:

detecting a communication condition; and

in response to at least detecting the communication condition:

entering the recovery mode of operation; and

transferring TCP state variable information to the host.

9. The method of claim 8 , wherein detecting a communication condition comprise detecting a fault.

10. The method of claim 1 , comprising, during an initialization mode of operation, receiving buffer address information from the host.

11. The method of claim 1 , wherein the network interface comprises a TCP offload engine.

12. In a network interface for interfacing a host computer to a communication network, at least one circuit operable to, at least:

in a first mode of operation, where the first mode of operation comprises receiving in-order TCP segments, at least:

receive a TCP segment;

calculate a TCP received sequence number based upon the received TCP segment;

update a value of a first network interface variable with the calculated TCP received sequence number; and

transfer only a portion of the received TCP segment to a buffer of the host, where said at least one circuit is operable to transfer the portion using direct memory access; and

in a recovery mode of operation, at least:

transfer the received TCP segment to a buffer of the host for TCP processing by the host.

13. The network interface of claim 12 , wherein in the recovery mode of operation, the at least one circuit is operable to utilize a network interface card different from an interface utilized in the first mode of operation.

14. The network interface of claim 12 , wherein in the recovery mode of operation, the at least one circuit is operable to set state variables in the network interface.

15. The network interface of claim 12 , wherein in the recovery mode of operation, the at least one circuit is operable to set state variables in the network interface under control of the host.

16. The network interface of claim 12 , wherein in the recovery mode of operation, the at least one circuit is operable to receive TCP segments out-of-order.

17. The network interface of claim 16 , wherein in the recovery mode of operation, the at least one circuit is operable to monitor ACK messages to determine when received TCP segments are back in order.

18. The network interface of claim 12 , where said only a portion of the received TCP segment is a payload of the received TCP segment.

19. The network interface of claim 12 , where the at least one circuit is operable to:

detect a communication condition; and

in response to at least detecting the communication condition:

enter the recovery mode of operation; and

transfer TCP state variable information to the host.

20. The network interface of claim 19 , wherein the at least one circuit is operable to detect a communication condition by, at least in part, operating to detect a fault.

21. The network interface of claim 12 , wherein the at least one circuit is operable to, during an initialization mode of operation, receive buffer address information from the host.

22. The network interface of claim 12 , wherein the network interface comprises a TCP offload engine.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 47630 FRAME: 344. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 21, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0267 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 9/5/2018 PREVIOUSLY RECORDED AT REEL: 047196 FRAME: 0687. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047630/0344 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047196/0687 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →