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

Neighbor

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

DestinationAddress

Path

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

PathMtu

TCP

A client application enables keepalive functionality on the TCP connection.

Flags(set to TCP_FLAG_KEEP_ALIVE_ENABLED)

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.

InitialRcvWnd

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.