IP Library Granted Patent US 7,746,867
Granted Patent B2
US 7,746,867 · App. 11/696,398 · Granted Jun 29, 2010

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,746,867
App. No.
11/696,398
Granted
Jun 29, 2010
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 (42)

1. In a Transmission Control Protocol (TCP) Offload Engine (TOE), a method for providing fault tolerant TCP offloading, the method comprising:

receiving a TCP segment;

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

updating a value of a first TOE variable with the TCP received sequence number; and

writing a receive sequence record based upon at least the TCP received sequence number to a TCP sequence update queue of a host, where the written receive sequence record causes the host to update a first host variable with the TCP received sequence number.

2. The method of claim 1 , wherein the written receive sequence record causes the host to remove the written receive sequence record from the TCP sequence update queue.

3. The method of claim 1 , further comprising, after writing the receive sequence record to the TCP sequence update queue in the hose, updating a value of a second TOE variable with the TCP received sequence number.

4. The method of claim 1 , further comprising, if the received TCP segment acknowledges previously sent data, then:

updating a value of a second TOE variable with the TCP received sequence number; and

writing a send sequence record based upon at least the TCP received sequence number to the TCP sequence update queue, where the written send sequence record causes the host to update a second host variable with the TCP received sequence number.

5. The method of claim 4 , wherein the written send sequence record causes the host to remove the written send sequence record from the TCP sequence update queue.

6. The method of claim 4 , further comprising, if a fault is detected in the TOE, then causing the host to continue a TCP connection in software using at least one of the first host variable, the second host variable and the TCP sequence update queue.

7. The method of claim 1 , further comprising, if a fault is detected in the TOE, then causing the host to continue a TCP connection in software.

8. The method of claim 7 , wherein causing the host to continue a TCP connection in software comprises writing information to the TCP sequence update queue.

9. The method of claim 7 , wherein causing the host to continue a TCP connection in software comprises causing the host to update TCP state variables using values reported by the TOE via the TCP sequence update queue.

10. The method of claim 7 , wherein causing the host to continue a TCP connection in software comprises failing to respond properly to probing by the host.

11. The method of claim 1 , further comprising transferring at least a payload of the received TCP segment to a host buffer via a direct memory access (DMA) engine.

12. In a Transmission Control Protocol (TCP) Offload Engine (TOE), a method for providing fault tolerant TCP offloading, the method comprising:

receiving a TCP segment;

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

if the received TCP segment acknowledges previously sent data, then at least:

updating a value of a TOE variable with the TCP received sequence number; and

writing a send sequence record based upon at least the TCP received sequence number to a TCP sequence update queue of a host, where the written send sequence record causes the host to update a value of a host variable with a value from the written send sequence record.

13. The method of claim 12 , further comprising updating a value of a first TOE variable with the TCP received sequence number.

14. The method of claim 13 , further comprising writing a receive sequence record based upon at least the TCP received sequence number to the TCP sequence update queue.

15. The method of claim 12 , wherein the written send sequence record causes the host to remove the written send sequence record from the TCP sequence update queue.

16. The method of claim 12 , further comprising, if a fault is detected in the TOE, then causing the host to continue a TCP connection in software.

17. The method of claim 16 , wherein causing the host to continue a TCP connection in software comprises writing information to the TCP sequence update queue.

18. The method of claim 16 , wherein causing the host to continue a TCP connection in software comprises causing the host to update TCP state variables using values reported by the TOE via the TCP sequence update queue.

19. The method of claim 16 , wherein causing the host to continue a TCP connection in software comprises failing to respond properly to probing by the host.

20. The method of claim 12 , further comprising transferring at least a payload of the received TCP segment to a host buffer via a direct memory access (DMA) engine.

21. In a Transmission Control Protocol (TCP) Offload Engine (TOE) for providing fault tolerant TCP offloading from a host, at least one circuit that operates to, at least:

receive a TCP segment;

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

update a value of a first TOE variable with the TCP received sequence number; and

write a receive sequence record based upon at least the TCP received sequence number to a TCP sequence update data structure of a host, where the written receive sequence record causes the host to update a first host variable with the TCP received sequence number.

22. In a Transmission Control Protocol (TCP) Offload Engine (TOE) for providing fault tolerant TCP offloading from a host, at least one circuit that operates to, at least:

receive a TCP segment;

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

if the received TCP segment acknowledges previously sent data, then at least:

update a value of a TOE variable with the TCP received sequence number; and

write a send sequence record based upon at least the TCP received sequence number to a TCP sequence update queue of a host, where the written send sequence record causes the host to update a value of a host variable with a value from the written send sequence record.

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 →