Method to synchronize and upload an offloaded network stack connection with a network stack
First Claim
1. A method to upload an offloaded network stack state object from a first path going from a peripheral device to a switch layer to a second path going from the peripheral device through a plurality of software layers and the switch layer, the plurality of software layers including an intermediate layer, the network stack state object having at least one cached state and at least one delegated state, the method comprising the steps of:
- commanding the intermediate layer to take control of the at least one delegated state after the at least one delegated state has been received; and
sending data through the second path.
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
5 Claims
-
1. A method to upload an offloaded network stack state object from a first path going from a peripheral device to a switch layer to a second path going from the peripheral device through a plurality of software layers and the switch layer, the plurality of software layers including an intermediate layer, the network stack state object having at least one cached state and at least one delegated state, the method comprising the steps of:
- commanding the intermediate layer to take control of the at least one delegated state after the at least one delegated state has been received; and
sending data through the second path.
- commanding the intermediate layer to take control of the at least one delegated state after the at least one delegated state has been received; and
-
2. A method to upload an offloaded network stack state object and at least one associated protocol from a first path going from a peripheral device to a switch layer to a second path going from the peripheral device through a plurality of software layers and the switch layer, the plurality of software layers including an intermediate layer, the network stack state object having a cached state and a delegated state, the method comprising the steps of:
- completing outstanding requests with a transfer status;
handing the delegated state to the switch layer;
freeing resources in the peripheral device for the intermediate layer; and
sending data through the second path.
- completing outstanding requests with a transfer status;
-
3. A method of synchronizing an offloaded network stack state object between a host and a peripheral device in a host having a plurality of software layers, each software layer having at least one state variable, the method comprising the steps of:
- for each software layer in the plurality of software layers;
classifying the at least one state variable to be one of a constant variable, a cached variable, and a delegated variable;
sending the at least one state variable to the peripheral device; and
if the at least one state variable has been classified as a cached variable;
processing the cached variable by the host; and
updating the cached variable in the peripheral device if the cached variable has changed.
- for each software layer in the plurality of software layers;
-
4. A method to conserve resources in a peripheral device that is processing at least one offloaded state and an associated protocol for a plurality of intermediate software layers, the at least one offloaded state having a state object, the method comprising the steps of:
- storing an initial state object for a first offloaded state;
receiving an initial offload handle for the initial state object from the peripheral device;
handing the initial offload handle to the peripheral device on a subsequent offload if the state object is the initial state object; and
receiving a new offload handle on the subsequent offload if the state object is a new state object.
- storing an initial state object for a first offloaded state;
-
5. A method to obtain statistics for a network stack having at least one intermediate software layer and at least one network state object offloaded to a peripheral device, the network state object having at least one of a constant state variable, a cached state variable, and a delegated state variable, the network stack controlled by a host and the offloaded network state object processed by the peripheral device the method comprising the steps of:
- for each intermediate software layer;
obtaining statistics from the host for host maintained statistics;
obtaining statistics from the peripheral device for peripheral device maintained statistics;
obtaining statistics from the host and peripheral device for host and peripheral device maintained statistics; and
combining the peripheral device maintained statistics and the host and peripheral device maintained statistics to the host maintained statistics.
- for each intermediate software layer;
Specification