Protocol processing stack for use with intelligent network interface device
DCFirst Claim
1. A set of instructions executable on a processor, the set of instructions being for performing steps comprising:
- establishing a TCP connection, the TCP connection being at least in part identified by a TCP source port, TCP destination port, IP source address, and IP destination address; and
offloading the TCP connection from the processor to an intelligent TCP offload mechanism.
3 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A host CPU runs a network protocol processing stack that provides instructions not only to process network messages but also to allocate processing of certain network messages to a specialized network communication device, offloading some of the most time consuming protocol processing from the host CPU to the network communication device. By allocating common and time consuming network processes to the device, while retaining the ability to handle less time intensive and more varied processing on the host stack, the network communication device can be relatively simple and cost effective. The host CPU, operating according to instructions from the stack, and the network communication device together determine whether and to what extent a given message is processed by the host CPU or by the network communication device.
-
Citations
23 Claims
-
1. A set of instructions executable on a processor, the set of instructions being for performing steps comprising:
-
establishing a TCP connection, the TCP connection being at least in part identified by a TCP source port, TCP destination port, IP source address, and IP destination address; and
offloading the TCP connection from the processor to an intelligent TCP offload mechanism. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A set of instructions executable on a host computer, the set of instructions being for performing steps comprising:
-
sending a first communication from the host computer to a TCP offload device, the first communication causing the TCP offload device to store subsequently received frames for a TCP connection, the subsequently received frames being received onto the TCP offload device from a network;
receiving a second communication from the TCP offload device by the host computer; and
in response to the receiving of the second communication sending a third communication from the host computer to the TCP offload device, the third communication causing control of the TCP connection to be passed from the host computer to the TCP offload device. - View Dependent Claims (14, 15)
-
-
16. A set of instructions executable on a host computer for performing steps comprising:
-
determining whether a TCP offload device coupled to the host computer has fast-path capabilities;
obtaining from an application program an indication of a destination on the host computer, the destination being a place in a memory on the host computer where data of a TCP connection is to be placed;
passing control of the TCP connection to the TCP offload device; and
receiving statistics information from the TCP offload device, the statistics information being statistics information on the TCP connection. - View Dependent Claims (17, 18, 19, 20)
receiving control of the TCP connection back from the TCP offload device; and
receiving a communication from the TCP offload device, the communication containing a residual field, the residual field indicating an amount of the data of the TCP connection that remains to be placed in the destination on the host computer.
-
-
19. The set of instructions of claim 16, wherein the control of the TCP connection is passed to the TCP offload device in a plural-phase handout process, a first phase of the handout process including causing the TCP offload device to queue subsequent message packets received onto the TCP offload device for the TCP connection such that the subsequent message packets do not pass to the host computer during the first phase, a second phase of the handout process including passing the indication of the destination to the TCP offload device.
-
20. The set of instructions of claim 16, wherein the indication of the destination is a memory descriptor list (MDL).
- 21. An operating system that passes control of a TCP connection from a host computer to a TCP offload device coupled to the host computer, wherein after said control of the TCP connection is passed to the TCP offload device the TCP offload device performs all or substantially all TCP protocol processing on network frames received onto the TCP offload device for the TCP connection such that the operating system and the host computer perform no or substantially no TCP protocol processing on the network frames after said control is passed.
Specification