US 7,613,109 B2
Processing data for a TCP connection using an offload unit
Ashutosh K. Jha, Sunnyvale, Calif. (US); Radoslav Danilak, Santa Clara, Calif. (US); Paul J. Gyugyi, Sunnyvale, Calif. (US); Thomas A. Maufer, Menlo Park, Calif. (US); Sameer Nanda, San Jose, Calif. (US); Anand Rajagopalan, Santa Clara, Calif. (US); and Paul J. Sidenblad, Cupertino, Calif. (US)
Assigned to NVIDIA Corporation, Santa Clara, Calif. (US)
Filed on Dec. 09, 2003, as Appl. No. 10/731,632.
Claims priority of provisional application 60/476570, filed on Jun. 05, 2003.
Prior Publication US 2004/0257986 A1, Dec. 23, 2004
Int. Cl. G08C 15/00 (2006.01); G06F 3/00 (2006.01); G06F 15/16 (2006.01); G06F 15/76 (2006.01)
U.S. Cl. 370—230  [370/412; 709/250; 710/56; 712/34] 20 Claims
OG exemplary drawing
 
1. A method of processing frames for a delegated TCP connection, comprising:
receiving a user buffer descriptor specifying a location of a plurality of user buffers in a first portion of memory that is allocated to an application program, wherein each user buffer is configured to store processed frame data for the delegated TCP connection;
processing a first portion of the frames using an offload unit to produce first processed frame data;
indicating in a field of the user buffer descriptor how many of the user buffers are accepted for the delegated TCP connection before the processed frame data is stored in one of the user buffers;
uploading the first processed frame data to a user buffer in the first portion of memory that is allocated to the application program;
processing a second portion of the frames using the offload unit to produce second processed frame data;
uploading the second processed frame data to a legacy buffer in a second portion of the memory that is allocated to a software driver configured to communicate between the offload unit and a TCP stack; and
processing the second processed frame data using the TCP stack executed on a CPU to produce third processed frame data.