Method to offload a network stack
First Claim
1. A method to offload a network stack state object and at least one associated protocol stack in a computer system environment from a first path going through a plurality of software layers to a peripheral device to a second path going from a switch layer to the peripheral device, the network stack state object having a cached state variable and at least one of a constant state variable and a delegated state variable, the method comprising the steps of:
- sending a request to offload the network stack state object from the switch layer to the peripheral device through the plurality of software layers, the request having a list of resource requirements;
if the network stack state object will be offloaded;
receiving an offload handle at at least one of the plurality of software layers;
sending the network stack state object to the peripheral device from the at least one of the plurality of software layers; and
transferring buffers to the peripheral device from the switch layer.
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.
128 Citations
4 Claims
-
1. A method to offload a network stack state object and at least one associated protocol stack in a computer system environment from a first path going through a plurality of software layers to a peripheral device to a second path going from a switch layer to the peripheral device, the network stack state object having a cached state variable and at least one of a constant state variable and a delegated state variable, the method comprising the steps of:
- sending a request to offload the network stack state object from the switch layer to the peripheral device through the plurality of software layers, the request having a list of resource requirements;
if the network stack state object will be offloaded;
receiving an offload handle at at least one of the plurality of software layers;
sending the network stack state object to the peripheral device from the at least one of the plurality of software layers; and
transferring buffers to the peripheral device from the switch layer.
- sending a request to offload the network stack state object from the switch layer to the peripheral device through the plurality of software layers, the request having a list of resource requirements;
-
2. A method to offload a network stack state object in a computer system environment from a first path going through a plurality of software layers to a peripheral device to a second path going from a switch layer to the peripheral device, the network stack state object having a cached variable and at least one of a constant state variable and a delegated state variable, the method comprising the steps of:
- receiving a request to offload the network stack state object from the switch layer, the request having a list of resource requirements;
deciding if the network stack state object will be offloaded;
if the network stack state object will be offloaded;
allocating resources;
passing an offload handle to at least one of the plurality of software layers;
receiving the network stack state object to the peripheral device from the at least one of the plurality of software layers; and
receiving buffers from the switch layer.
- receiving a request to offload the network stack state object from the switch layer, the request having a list of resource requirements;
-
3. A method to offload a network stack state object and at least one associated protocol stack in a computer environment from a first path going through a plurality of software layers to a peripheral device to a second path going from a switch layer to the peripheral device, the network stack state object having a cached state and at least one of a constant state and a delegated state, the method comprising the steps of:
- sending a request to offload the protocol stack to the peripheral device through the plurality of software layers, the request having a list of resource requirements;
if the protocol stack will be offloaded;
for each layer of the plurality of software layers, performing one of adding resource requirements to the list of resource requirements if the layer does not have an existing offload handle from a prior offload and adding the existing offload handle to the list of resource requirements;
sending a cached state to the peripheral device for each of the plurality of software layers that is offloading a state and that does not have an existing offload handle; and
transferring buffers to the peripheral device from the switch layer if the protocol stack has been offloaded.
- sending a request to offload the protocol stack to the peripheral device through the plurality of software layers, the request having a list of resource requirements;
-
4. A method to offload a protocol stack in a computer environment from a first path going through a plurality of software layers to a peripheral device to a second path going from a switch layer to the peripheral device comprising the steps of:
- receiving a request to offload the protocol stack, the request having a list of resource requirements and at least one existing offload handle for at least one of the plurality of software layers;
deciding if the protocol stack will be offloaded;
allocating resources to handle the list of resource requirements if the protocol stack will be offloaded; and
sending an offload handle to each layer of the plurality of layers that does not have an existing offload handle if the layer has offloaded a layer state object.
- receiving a request to offload the protocol stack, the request having a list of resource requirements and at least one existing offload handle for at least one of the plurality of software layers;
Specification