IP Library Granted Patent US 7,346,701
Granted Patent B2
US 7,346,701 · App. 10/652,267 · Granted Mar 18, 2008

System and method for 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,346,701
App. No.
10/652,267
Granted
Mar 18, 2008
Kind
B2
Abstract

Aspects of the invention may comprise receiving an incoming TCP packet at a TEEC and processing at least a portion of the incoming packet once by the TEEC without having to do any reassembly and/or retransmission by the TEEC. At least a portion of the incoming TCP packet may be buffered in at least one internal elastic buffer of the TEEC. The internal elastic buffer may comprise a receive internal elastic buffer and/or a transmit internal elastic buffer. Accordingly, at least a portion of the incoming TCP packet may be buffered in the receive internal elastic buffer. At least a portion of the processed incoming packet may be placed in a portion of a host memory for processing by a host processor or CPU. Furthermore, at least a portion of the processed incoming TCP packet may be DMA transferred to a portion of the host memory.

Claims (43)

1. A system for offloading TCP processing, the system comprising:

a host;

a network interface card (NIC) coupled to said host, said NIC comprising,

a TCP enabled Ethernet controller (TEEC), said TEEC comprising,

at least one internal elastic buffer, wherein said TEEC processes an incoming TOP packet once and temporarily buffers at least a portion of said incoming TOP packet in said internal elastic buffer, said processing occurring without reassembly.

2. The system according to claim 1 , wherein said at least one internal elastic buffer comprises at least one of a receive internal elastic buffer and a transmit internal elastic buffer.

3. The system according to claim 2 , wherein said at least a portion of said incoming TCP packet is temporarily buffered in said receive internal elastic buffer.

4. The system according to claim 2 , wherein at least a portion of a TCP packet to be transmitted is temporarily buffered in said transmit internal elastic buffer.

5. The system according to claim 1 , wherein said TEEC places at least a portion of said incoming TCP packet data into at least a portion of a host memory.

6. The system according to claim 1 , wherein said NIC utilizes only said at least one internal elastic buffer to temporarily buffer said at least a portion of said incoming TCP packet.

7. The system according to claim 1 , wherein out-of-order TCP packets are not at least one of stored, re-ordered and re-assembled in a TEEC buffer.

8. The system according to claim 1 , wherein said NIC does not require a dedicated memory for re-ordering out-of-sequence TCP packets.

9. The system according to claim 1 , wherein said NIC does not require a dedicated memory for assembling and re-ordering IP packets fragmented at the IP layer.

10. The system according to claim 1 , wherein said TEEC places at least data from said incoming TCP packet into-a highest hierarchy of buffer available in a host memory by performing a single copy operation.

11. The system according to claim 1 , wherein said TEEC DMA transfers at least a portion of said processed incoming TCP packet to at least a portion of a host memory.

12. The system according to claim 1 , wherein said NIC does not require a TCP off load engine (TOE) dedicated memory for at least one of packet retransmission and packet reassembly.

13. The system according to claim 1 , wherein said TEEC places at least a portion of said processed incoming TCP packets into host buffers in a host memory for reassembly.

14. The system according to claim 1 , wherein said TEEC comprises a single chip, having integrated therein, said at least one internal elastic buffer.

15. The system according to claim 1 , wherein said TEEC comprises a single chip, having integrated therein, said at least one internal elastic buffer, and no internal buffers and interfaces to external buffers, that are utilized for at least one of packet retransmission, packet reassembly and packet re-ordering.

16. A method for offloading TCP processing, the method comprising:

receiving an incoming TCP packet at a TCP enabled Ethernet controller (TEEC);

processing at least a portion of said incoming packet once by said TEEC without reassembly; and

temporarily buffering said at least a portion of said incoming TCP packet in at least one internal elastic buffer of said TEEC.

17. The method according to claim 16 , wherein said at least one internal elastic buffer comprises at least one of a receive internal elastic buffer and a transmit internal elastic buffer.

18. The method according to claim 17 , further comprising temporarily buffering said at least a portion of said incoming TCP packet in said receive internal elastic buffer.

19. The method according to claim 16 , further comprising placing at least a portion of said processed at least a portion of said incoming packet in at least a portion of a host memory.

20. The method according to claim 16 , wherein said placing further comprises placing at least a portion of said processed incoming TCP packet in a highest hierarchy of buffer available in a host memory by performing a single copy operation.

21. The method according to claim 16 , further comprising DMA transferring at least a portion of said processed incoming TCP packet in at least a portion of a host memory.

22. The method according to claim 16 , wherein packets temporarily buffered in said in at least one internal elastic buffer are not buffered for at least one of reassembly and retransmission.

23. The method according to claim 16 , further comprising placing at least a portion of said processed incoming TCP packet in host buffers in a host memory for processing.

24. The method according to claim 16 , wherein said TEEC comprises a single chip, having integrated therein, said at least one internal elastic buffer.

25. A machine-readable storage, having stored thereon, a computer program having at least one code section for providing TCP offload, the at least one code section being executable by a machine for causing the machine to perform steps comprising:

receiving an incoming TCP packet at a TCP enabled Ethernet controller (TEEC);

processing at least a portion of said incoming packet once by said TEEC without reassembly; and

temporarily buffering said at least a portion of said incoming TCP packet in at least one internal elastic buffer of said TEEC.

26. The machine-readable storage according to claim 25 , wherein said at least one internal elastic buffer comprises at least one of a receive internal elastic buffer and a transmit internal elastic buffer.

27. The machine-readable storage according to claim 26 , code for temporarily buffering said at least a portion of said incoming TCP packet in said receive internal elastic buffer.

28. The machine-readable storage according to claim 25 , further comprising code for placing at least a portion of said processed at least a portion of said incoming packet in at least a portion of a host memory.

29. The machine-readable storage according to claim 25 , further comprising code for placing at least a portion of said processed incoming TCP packet in a highest hierarchy of buffer available in a host memory by performing a single copy operation.

30. The machine-readable storage according to claim 25 , further comprising code for DMA transferring at least a portion of said processed incoming TCP packet in at least a portion of a host memory.

31. The machine-readable storage according to claim 25 , wherein packets temporarily buffered in said in at least one internal elastic buffer are not buffered for at least one of reassembly and retransmission.

32. The machine-readable storage according to claim 25 , further comprising code for placing at least a portion of said processed incoming TCP packet in host buffers in a host memory for processing.

33. The machine-readable storage according to claim 25 , wherein said TEEC comprises a single chip, having integrated therein, said at least one internal elastic buffer.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER PREVIOUSLY RECORDED AT REEL: 047357 FRAME: 0302. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048674/0834 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER PREVIOUSLY RECORDED ON REEL 047195 FRAME 0658. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047357/0302 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047195/0658 →
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 →