NET_PACKET_CHECKSUM structure (checksumtypes.h)

A NET_PACKET_CHECKSUM structure describes checksum information for a NET_PACKET.

Syntax

typedef struct _NET_PACKET_CHECKSUM {
  UINT8 Layer2 : 2;
  UINT8 Layer3 : 2;
  UINT8 Layer4 : 2;
  UINT8 Reserved : 2;
} NET_PACKET_CHECKSUM;

Members

Layer2

A bit field that specifies a flag from either NET_PACKET_TX_CHECKSUM_ACTION or NET_PACKET_RX_CHECKSUM_EVALUATION. Targets the checksum field in the packet's layer 2 header.

Layer3

A bit field that specifies a flag from either NET_PACKET_TX_CHECKSUM_ACTION or NET_PACKET_RX_CHECKSUM_EVALUATION. Targets the checksum field in the packet's layer 3 header.

Layer4

A bit field that specifies a flag from either NET_PACKET_TX_CHECKSUM_ACTION or NET_PACKET_RX_CHECKSUM_EVALUATION. Targets the checksum field in the packet's layer 4 header.

Reserved

Reserved for system use.

Remarks

Client drivers can obtain this structure for a packet by calling NetExtensionGetPacketChecksum.

For a transmit queue, the client specifies flag values from the NET_PACKET_TX_CHECKSUM_ACTION enumeration. In a transmit queue, the client cross-references the Checksum information for a packet with the Layout member of a NET_PACKET in order to determine which hardware transmit checksum offloads need to be enabled.

For a receive queue, the client specifies flag values from the NET_PACKET_RX_CHECKSUM_EVALUATION enumeration. The client should also fill out the Layout member of the NET_PACKET structure.

Requirements

Requirement Value
Minimum KMDF version 1.29
Header checksumtypes.h

See also

Packet descriptors and extensions