The present invention provides a method, computer program product, and
data processing system for efficiently recovering state and performing
failover of a network offload engine. The present invention distinguishes
between the hard state and the soft state of a protocol. Hard state is
state information that, when lost, leads to incorrect protocol behavior.
Soft state is state information that may be lost or become inconsistent
without loss of correctness. The present invention ensures correctness by
always being able to recover the hard state of the protocol. A preferred
embodiment of the present invention performs a failover of a network
offload engine by temporarily blocking the reception of network packets,
recovering hard state from host information, resuming network operation
using a substitute network offload engine, and recovering soft state from
the subsequent network activity.