Protocol processing stack for use with intelligent network interface device
First 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 a TCP offload mechanism.
3 Assignments
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.
127 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 a 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)
-
- 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