Claims
- 1. A computer-based method for failover of a network offload engine in communication with a network and associated with a host, the method comprising:
reconstructing state information for the network offload engine from information stored at a location external to the network offload engine; resuming network operation with a standby network adapter in accordance with the state information.
- 2. The method of claim 1, further comprising:
designating at least one selected network connection in the network offload engine as having failover support, wherein the state information is specific to the at least one selected network connection and network operation is resumed only with respect to the at least one selected network connection.
- 3. The method of claim 2, wherein the at least one selected network connection is designated as having failover support by setting a socket option associated with the at least one selected network connection.
- 4. The method of claim 1, wherein the location external to the network offload engine is the host.
- 5. The method of claim 1, wherein the location external to the network offload engine is one of the standby network adapter and another network adapter.
- 6. The method of claim 1, wherein information stored on the host is sufficient to reconstruct hard state information for the network offload engine.
- 7. The method of claim 6, further comprising:
acquiring soft state information during the resumed network operation with the standby network adapter.
- 8. The method of claim 6, wherein the hard state information includes at least one of a last sequence number received, a last sequence number sent, a last acknowledgement number received, and a last acknowledgement number sent.
- 9. The method of claim 6, wherein the network offload engine, when operable, sends an acknowledgment for received data only after the received data has been delivered to the host.
- 10. The method of claim 6, wherein a transmit buffer in the host is released only after an acknowledgment for transmitted data associated with the transmit buffer has been received by the network offload engine, when the network offload engine is operable.
- 11. The method of claim 6,
wherein the network offload engine, when operable, sends an acknowledgment for received data only after the received data has been delivered to the host; and wherein a transmit buffer in the host is released only after an acknowledgment for transmitted data associated with the transmit buffer has been received by the network offload engine, when the network offload engine is operable.
- 12. The method of claim 1, further comprising:
checkpointing, on a pre-defined periodic basis, at least a subset of state information associated with the network offload engine, when operable, by copying the at least a subset of state information associated with the network offload engine to memory in the host.
- 13. The method of claim 1, further comprising:
detecting failure of the network offload engine; in response to detecting the failure of the network offload engine, identifying connections associated with the network offload engine; designating the connections as recovering connections; recovering state information for each of the recovering connections; and resuming network operation of each of the recovering connections on the standby network adapter as the state information for each of the recovering connections is recovered.
- 14. The method of claim 1, wherein the standby network adapter is a standby network offload engine.
- 15. The method of claim 1, wherein the standby network adapter requires the host to perform protocol processing.
- 16. A computer program product in a computer-readable medium for failover of a network offload engine in communication with a network and associated with a host, the computer program product comprising functional descriptive material that, when executed by a computer, enables the computer to perform acts including:
reconstructing state information for the network offload engine from information stored at a location external to the network offload engine; resuming network operation with a standby network adapter in accordance with the state information.
- 17. The computer program product of claim 16, comprising additional functional descriptive material that, when executed by the computer, enables the computer to perform additional acts including:
designating at least one selected network connection in the network offload engine as having failover support, wherein the state information is specific to the at least one selected network connection and network operation is resumed only with respect to the at least one selected network connection.
- 18. The computer program product of claim 17, wherein the at least one selected network connection is designated as having failover support by setting a socket option associated with the at least one selected network connection.
- 19. The computer program product of claim 16, wherein the location external to the network offload engine is the host.
- 20. The computer program product of claim 16, wherein the location external to the network offload engine is one of the standby network adapter and another network adapter.
- 21. The computer program product of claim 16, wherein information stored on the host is sufficient to reconstruct hard state information for the network offload engine.
- 22. The computer program product of claim 21, comprising additional functional descriptive material that, when executed by the computer, enables the computer to perform additional acts including:
acquiring soft state information during the resumed network operation with the standby network adapter.
- 23. The computer program product of claim 21, wherein the hard state information includes at least one of a last sequence number received, a last sequence number sent, a last acknowledgement number received, and a last acknowledgement number sent.
- 24. The computer program product of claim 21, wherein the network offload engine, when operable, sends an acknowledgment for received data only after the received data has been delivered to the host.
- 25. The computer program product of claim 21, wherein a transmit buffer in the host is released only after an acknowledgment for transmitted data associated with the transmit buffer has been received by the network offload engine, when the network offload engine is operable.
- 26. The computer program product of claim 21,
wherein the network offload engine, when operable, sends an acknowledgment for received data only after the received data has been delivered to the host; and wherein a transmit buffer in the host is released only after an acknowledgment for transmitted data associated with the transmit buffer has been received by the network offload engine, when the network offload engine is operable.
- 27. The computer program product of claim 16, comprising additional functional descriptive material that, when executed by the computer, enables the computer to perform additional acts including:
checkpointing, on a pre-defined periodic basis, at least a subset of state information associated with the network offload engine, when operable, by copying the at least a subset of state information associated with the network offload engine to memory in the host.
- 28. The computer program product of claim 16, comprising additional functional descriptive material that, when executed by the computer, enables the computer to perform additional acts including:
detecting failure of the network offload engine; in response to detecting the failure of the network offload engine, identifying connections associated with the network offload engine; designating the connections as recovering connections; recovering state information for each of the recovering connections; and resuming network operation of each of the recovering connections on the standby network adapter as the state information for each of the recovering connections is recovered.
- 29. The computer program product of claim 16, wherein the standby network adapter is a standby network offload engine.
- 30. The computer program product of claim 16, wherein the standby network adapter requires the host to perform protocol processing.
- 31. A data processing system for failover of a network offload engine in communication with a network and associated with a host, the method comprising:
means for reconstructing state information for the network offload engine from information stored at a location external to the network offload engine; means for resuming network operation with a standby network adapter in accordance with the state information.
- 32. The data processing system of claim 31, further comprising:
means for designating at least one selected network connection in the network offload engine as having failover support, wherein the state information is specific to the at least one selected network connection and network operation is resumed only with respect to the at least one selected network connection.
- 33. The data processing system of claim 32, wherein the at least one selected network connection is designated as having failover support by setting a socket option associated with the at least one selected network connection.
- 34. The data processing system of claim 31, wherein the location external to the network offload engine is the host.
- 35. The data processing system of claim 31, wherein the location external to the network offload engine is one of the standby network adapter and another network adapter.
- 36. The data processing system of claim 31, wherein information stored on the host is sufficient to reconstruct hard state information for the network offload engine.
- 37. The data processing system of claim 36, further comprising:
means for acquiring soft state information during the resumed network operation with the standby network adapter.
- 38. The data processing system of claim 36, wherein the hard state information includes at least one of a last sequence number received, a last sequence number sent, a last acknowledgement number received, and a last acknowledgement number sent.
- 39. The data processing system of claim 36, wherein the network offload engine, when operable, sends an acknowledgment for received data only after the received data has been delivered to the host.
- 40. The data processing system of claim 36, wherein a transmit buffer in the host is released only after an acknowledgment for transmitted data associated with the transmit buffer has been received by the network offload engine, when the network offload engine is operable.
- 41. The data processing system of claim 36,
wherein the network offload engine, when operable, sends an acknowledgment for received data only after the received data has been delivered to the host; and wherein a transmit buffer in the host is released only after an acknowledgment for transmitted data associated with the transmit buffer has been received by the network offload engine, when the network offload engine is operable.
- 42. The data processing system of claim 31, further comprising:
means for checkpointing, on a pre-defined periodic basis, at least a subset of state information associated with the network offload engine, when operable, by copying the at least a subset of state information associated with the network offload engine to memory in the host.
- 43. The data processing system of claim 31, further comprising:
means for detecting failure of the network offload engine; means, responsive to detecting the failure of the network offload engine, for identifying connections associated with the network offload engine; designating the connections as recovering connections; recovering state information for each of the recovering connections; and resuming network operation of each of the recovering connections on the standby network adapter as the state information for each of the recovering connections is recovered.
- 44. The data processing system of claim 31, wherein the standby network adapter is a standby network offload engine.
- 45. The data processing system of claim 31, wherein the standby network adapter requires the host to perform protocol processing.
- 46. A data processing system comprising:
a host; a network offload engine in communication with a network and associated with the host, the data processing system comprising; a standby network adapter in communication with the network and associated with the host; and a host control program associated with the host, wherein the host executes the host control program to perform acts including: reconstructing state information for the network offload engine from information stored in the host; resuming network operation with the standby network adapter in accordance with the state information.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present application is related to commonly-assigned, copending U.S. patent application Ser. No. 10/235,691, entitled “REMOTE DIRECT MEMORY ACCESS ENABLED NETWORK INTERFACE CONTROLLER SWITCHOVER AND SWITCHBACK SUPPORT,” filed Sep. 5, 2002, which is hereby incorporated by reference.