IP Library Granted Patent US 7,457,845
Granted Patent B2
US 7,457,845 · App. 10/644,205 · Granted Nov 25, 2008

Method and system for TCP/IP using generic buffers for non-posting TCP applications

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,457,845
App. No.
10/644,205
Granted
Nov 25, 2008
Kind
B2
Abstract

Aspects of the invention for posting buffers for a non-posting TCP application may comprise posting at least one generic buffer located in a memory external to a host adapter and transferring incoming data for a TCP connection to the posted generic buffer prior to the non-posting TCP application posting a TCP application buffer for the incoming data. At least one generic buffer may be allocated from a pool of available generic buffers upon receipt of the incoming TCP connection data. At least a portion of the incoming data may be stored in the allocated generic buffer if the TCP application buffer is unable to accommodate the incoming data. The method may further determining whether the incoming data for the TCP connection transferred to the posted generic buffer is in sequence and ordering the incoming data based on a sequence number if the incoming data is out of sequence.

Claims (54)

1. A method for posting buffers for a non-posting TCP application, the method comprising:

posting at least one generic buffer located in a memory external to a host adapter; and

transferring incoming data for a TCP connection to said at least one posted generic buffer prior to the non-posting TCP application posting a TCP application posted buffer for said incoming data.

2. The method according to claim 1 , comprising allocating at least one generic buffer from a pool of available generic buffers upon receipt of said incoming data for said TCP connection.

3. The method according to claim 2 , comprising storing at least a portion of said incoming data in said allocated at least one generic buffer, if said TCP application posted buffer is unable to accommodate said incoming data.

4. The method according to claim 1 , comprising determining whether said incoming data for said TCP connection transferred to said at least one posted generic buffer is in sequence.

5. The method according to claim 4 , wherein said determining comprises assembling said incoming data in said at least one posted generic buffer, if said incoming data is out of sequence.

6. The method according to claim 1 , comprising polling said at least one posted generic buffer by the non-posting TCP application to determine when said at least one posted generic buffer contains data for said TCP connection.

7. The method according to claim 6 , comprising, in response to said polling, notifying the non-posting TCP application when said incoming data is stored in said at least one posted generic buffer.

8. The method according to claim 1 , comprising posting at least one generic buffer prior to said transferring of said incoming data for a TCP connection to at least a portion of available TCP application buffers.

9. The method according to claim 1 , comprising posting at least one posted generic buffer located in a memory internal to said host adapter.

10. A machine-readable storage, having stored thereon a computer program having at least one code section for posting buffers for a non-posting TCP application, the at least one code section executable by a machine for causing the machine to perform the steps comprising:

posting at least one generic buffer located in a memory external to a host adapter; and

transferring incoming data for a TCP connection to said at least one posted generic buffer prior to the non-posting TCP application posting a TCP application posted buffer for said incoming data.

11. The machine-readable storage according to claim 10 , comprising code for allocating at least one generic buffer from a pool of available generic buffers upon receipt of said incoming data for said TCP connection.

12. The machine-readable storage according to claim 11 , comprising code for storing at least a portion of said incoming data in said allocated at least one generic buffer, if said TCP application posted buffer is unable to accommodate said incoming data.

13. The machine-readable storage according to claim 10 , comprising code for determining whether said incoming data for said TCP connection transferred to said at least one posted generic buffer is in sequence.

14. The machine-readable storage according to claim 13 , comprising code for assembling said incoming data in said at least one posted generic buffer if said incoming data is out of sequence.

15. The machine-readable storage according to claim 10 , comprising code for polling said at least one posted generic buffer by the non-posting TCP application to determine when said at least one posted generic buffer contains data for said TCP connection.

16. The machine-readable storage according to claim 15 , comprising code for notifying the non-posting TCP application when said incoming data is stored in said at least one posted generic buffer in response to said polling.

17. The machine-readable storage according to claim 10 , comprising code for posting at least one generic buffer prior to said transferring of said incoming data for a TCP connection to at least a portion of available TCP application buffers.

18. The machine-readable storage according to claim 10 , comprising code for posting at least one posted generic buffer located in a memory internal to said host adapter.

19. A system for posting buffers for a non-posting TCP application, the system comprising:

at least one generic buffer located in a memory external to a host adapter;

at least one processor that posts said at least one generic buffer located in said memory external to said host adapter; and

said at least one processor transfers incoming data for a TCP connection to said at least one posted generic buffer prior to the non-posting TCP application posting a TCP application posted buffer for said incoming data.

20. The system according to claim 19 , wherein said at least one processor allocates at least one generic buffer from a pool of available generic buffers upon receipt of said incoming data for said TCP connection.

21. The system according to claim 20 , wherein said at least one processor stores at least a portion of said incoming data in said allocated at least one generic buffer, if said TCP application posted buffer is unable to accommodate said incoming data.

22. The system according to claim 19 , wherein said at least one processor determines whether said incoming data for said TCP connection transferred to said at least one posted generic buffer is in sequence.

23. The system according to claim 22 , wherein said at least one processor assembles said incoming data in said at least one posted generic buffer, if said incoming data is out of sequence.

24. The system according to claim 19 , wherein said at least one processor polls said at least one posted generic buffer by the non-posting TCP application to determine when said at least one posted generic buffer contains data for said TCP connection.

25. The system according to claim 24 , wherein said at least one processor notifies the non-posting TCP application when said incoming data is stored in said at least one posted generic buffer in response to said polling.

26. The system according to claim 19 , wherein said at least one processor posts at least one generic buffer prior to said transferring of said incoming data for a TCP connection to at least a portion of available TCP application buffers.

27. The system according to claim 19 , wherein said at least one processor posts at least one posted generic buffer located in a memory internal to said host adapter.

28. The system according to claim 19 , wherein said at least one processor is one or more of a NIC, a generic buffer handler, a buffer post handler, an application, a TCP notifier and/or a TCP data placement processor.

29. A method for posting buffers for a non-posting TCP application, the method comprising:

posting at least one generic buffer located in a memory external to a host adapter;

transferring incoming data for a TCP connection to said at least one posted generic buffer prior to the non-posting TCP application posting a TCP application posted buffer for said incoming data;

determining whether said incoming data for said TCP connection transferred to said at least one posted generic buffer is in sequence;

assembling said incoming data in said at least one posted generic buffer, if said incoming data is out of sequence; and

ordering said at least one posted generic buffer using a TCP data placement sequence number for said out of sequence incoming data.

30. A machine-readable storage, having stored thereon a computer program having at least one code section for posting buffers for a non-posting TCP application, the at least one code section executable by a machine for causing the machine to perform the steps comprising:

posting at least one generic buffer located in a memory external to a host adapter;

transferring incoming data for a TCP connection to said at least one posted generic buffer prior to the non-posting TCP application posting a TCP application posted buffer for said incoming data;

determining whether said incoming data for said TCP connection transferred to said at least one posted generic buffer is in sequence;

assembling said incoming data in said at least one posted generic buffer, if said incoming data is out of sequence; and

ordering said at least one posted generic buffer using a TCP data placement sequence number for said out of sequence incoming data.

31. A system for posting buffers for a non-posting TCP application, the system comprising:

at least one generic buffer located in a memory external to a host adapter; and

at least one processor that posts said at least one generic buffer located in said memory external to said host adapter,

wherein said at least one processor transfers incoming data for a TCP connection to said at least one posted generic buffer prior to the non-posting TCP application posting a TCP application posted buffer for said incoming data,

wherein said at least one processor determines whether said incoming data for said TCP connection transferred to said at least one posted generic buffer is in sequence,

wherein said at least one processor assembles said incoming data in said at least one posted generic buffer if said incoming data is out of sequence, and

wherein said at least one processor orders said at least one posted generic buffer using a TCP data placement sequence number for said out of sequence incoming data.

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 →