Updating Cached Variables

[The TCP chimney offload feature is deprecated and should not be used.]

Because the host stack owns and maintains cached variables, it must alert the offload target to any changes in the values of such variables. The host stack changes the values of cached variables with one or more update operations. The host stack can update cached variables in offloaded neighbor, path, and TCP connection state objects.

The following table lists some of the events that require updates to cached variables in offloaded state objects.

State object Event Updated variables


The destination address of a neighbor changes because of an Address Resolution Protocol (ARP) update (IPv4) or through neighbor discovery (IPv6).



The host stack receives an Internet Control Message Protocol (ICMP) message that changes the PathMtu variable.



A client application enables keepalive functionality on the TCP connection.


A client applications sets socket options to enable or disable keepalives.

KaProbeCount, KaTimeout, and/or KaInterval

A client application sets the SO_RCVBUF socket option variable to increase or decrease the receive window. The offload target must honor the updated receive window.


Note that, if an offloaded TCP connection's TCP_FLAG_MAX_RT_RESTART flag is set (in the Flags member of TCP_OFFLOAD_STATE_CACHED), the offload target must:

  • Reset that connection's delegated KeepaliveProbeCount variable when the host stack updates that connection's cached KaProbeCount variable.

  • Reset that connection's delegated KeepaliveTimeoutDelta variable when the host stack updates that connection's cached KaTimeout variable or KaInterval variable or both.