TCP_OFFLOAD_STATS structure (ndischimney.h)
[The TCP chimney offload feature is deprecated and should not be used.]
The TCP_OFFLOAD_STATS structure contains statistics that an offload target supplies in response to a query of OID_TCP4_OFFLOAD_STATS or OID_TCP6_OFFLOAD_STATS.
Syntax
typedef struct _TCP_OFFLOAD_STATS {
ULONG64 InSegments;
ULONG64 OutSegments;
ULONG CurrentlyEstablished;
ULONG ResetEstablished;
ULONG RetransmittedSegments;
ULONG InErrors;
ULONG OutResets;
} TCP_OFFLOAD_STATS, *PTCP_OFFLOAD_STATS;
Members
InSegments
The total number of segments received on offloaded TCP connections, including those received in error ( InErrors ). This count includes segments received on currently established connections. See tcpInSegs in RFC 1156.
OutSegments
The total number of segments sent on offloaded TCP connections, including those on current connections but excluding those containing only retransmitted octets. See tcpOutSegs in RFC 1156.
CurrentlyEstablished
The number of TCP connections for which the current state is either ESTABLISHED or CLOSE-WAIT. See
tcpCurrEstab in RFC 1156.
ResetEstablished
The number of times that offloaded TCP connections have made a direct transition to the CLOSED state from either the ESTABLISHED state or the CLOSE-WAIT state.
RetransmittedSegments
The total number of segments retransmitted on offloaded TCP connections--that is, the number of TCP segments transmitted that contain one or more previously transmitted octets. See tcpRetransSegs in RFC 1156.
InErrors
The number of packets received on offloaded TCP connections that contained one or more TCP-specific errors that prevented the offload target from delivering the packets. See ifInErrors in RFC 1156.
OutResets
The number of segments transmitted on offloaded TCP connections with the RST bit set in the TCP header.
Remarks
The statistics in the TCP_OFFLOAD_STATS structure pertain only to offloaded TCP connections. The offload target must not include counts for TCP segments on connections that haven't been offloaded. The statistics in the TCP_OFFLOAD_STATS structure pertain to a single network interface.
If an offload target has more than one network interface, it must maintain a separate set of TCP statistics counters for each network interface. If the offload target supports both IPv4 and IPv6 connections on a network interface, it must, for that interface, maintain a separate set of TCP statistics counters for TCP/IPv4 traffic and a separate set of TCP statistics counters for TCP/IPv6 traffic.
If an offload target's TCP chimney capabilities are enabled (see NDIS_TASK_OFFLOAD) and if at least one offloaded path state object has been offloaded to the offload target, the offload target can process a received packet that has a corrupted TCP header (but a valid IP header) in one of two ways:
- The offload target can indicate the packet through the non-offload interface by calling the NdisMIndicateReceiveNetBufferLists function. In this case, the offload target must not increment the InErrors counter. This is the recommended approach.
- Alternatively, the offload target can drop the corrupted packet and increment the InErrors counter.
The host stack integrates the statistics returned by an offload target with the statistics that the host stack maintains for non-offloaded TCP connections.
Note that the host stack supplies a TCP_OFFLOAD_STATS structure when setting OID_TCP4_OFFLOAD_STATS or OID_TCP6_OFFLOAD_STATS. In this case, however, the offload target does not have to examine the values in the TCP_OFFLOAD_STATS structure. Instead, when OID_TCP4_OFFLOAD_STATS is set, the offload target should reset to zero its TCP statistics counters for offloaded TCP connections that convey IPv4 datagrams. When OID_TCP6_OFFLOAD_STATS is set, the offload target should reset to zero its TCP statistics counters for offloaded TCP connections that convey IPv6 datagrams.
All of the counters that supply the values for the TCP_OFFLOAD_STATS structure wrap (restart from zero) when incremented beyond their maximum counts.
Requirements
Requirement | Value |
---|---|
Header | ndischimney.h (include Ndischimney.h) |