Data Sheet

Ethernet Controller I210 — Programming Interface
442
Field Bit(s) Initial Value Description
PCSS 7:0 0x0
Packet Checksum Start.
Controls the packet checksum calculation. The packet checksum shares the same
location as the RSS field and is reported in the receive descriptor when the
RXCSUM.PCSD bit is cleared.
If the RXCSUM.IPPCSE is set, the Packet checksum is aimed to accelerate checksum
calculation of fragmented UDP packets. Please refer to Section 7.1.7.2 for detailed
explanation. If RXCSUM.IPPCSE is cleared (the default value), the checksum
calculation that is reported in the Rx Packet checksum field is the unadjusted 16-bit
ones complement of the packet.
The packet checksum starts from the byte indicated by RXCSUM.PCSS (0b
corresponds to the first byte of the packet), after VLAN stripping if enabled by the
CTRL.VME. For example, for an Ethernet II frame encapsulated as an 802.3ac VLAN
packet and with RXCSUM.PCSS set to 14, the packet checksum would include the
entire encapsulated frame, excluding the 14-byte Ethernet header (DA, SA, Type/
Length) and the 4-byte VLAN tag. The packet checksum does not include the Ethernet
CRC if the RCTL.SECRC bit is set. Software must make the required offsetting
computation (to back out the bytes that should not have been included and to include
the pseudo-header) prior to comparing the packet checksum against the L4 checksum
stored in the packet checksum. The partial checksum in the descriptor is aimed to
accelerate checksum calculation of fragmented UDP packets.
Note: The PCSS value should point to a field that is before or equal to the IP header
start. Otherwise, the IP header checksum or TCP/UDP checksum is not
calculated correctly.
IPOFLD 8 1b
IP Checksum Off-load Enable.
RXCSUM.IPOFLD is used to enable the IP Checksum off-loading feature. If
RXCSUM.IPOFLD is set to 1b, the I210 calculates the IP checksum and indicates a
pass/fail indication to software via the IP Checksum Error bit (IPE) in the Error field of
the receive descriptor. Similarly, if RXCSUM.TUOFLD is set to 1b, the I210 calculates
the TCP or UDP checksum and indicates a pass/fail indication to software via the TCP/
UDP Checksum Error bit (RDESC.L4E).
This applies to checksum off loading only. Supported frame types:
Ethernet II
Ethernet SNAP
TUOFLD 9 1b TCP/UDP Checksum Off-load Enable.
ICMPv6XSUM 10 1b
ICMPv6 Checksum Enable.
0b = Disable ICMPv6 checksum calculation.
1b = Enable ICMPv6 checksum calculation.
Note: ICMPv6 checksum offload is supported only for packets sent to firmware for
Proxying.
CRCOFL 11 0b
CRC32 Offload Enable.
Enables the SCTP CRC32 checksum off-loading feature. If RXCSUM.CRCOFL is set to
1b, the I210 calculates the CRC32 checksum and indicates a pass/fail indication to
software via the CRC32 Checksum Valid bit (RDESC.L4I) in the Extended Status field
of the receive descriptor.
In non I/OAT, this bit is read only as 0b.
IPPCSE 12 0b
IP Payload Checksum Enable.
See PCSS description.
PCSD 13 0b
Packet Checksum Disable.
The packet checksum and IP identification fields are mutually exclusive with the RSS
hash. Only one of the two options is reported in the Rx descriptor.
RXCSUM.PCSD Legacy Rx Descriptor (SRRCTL.DESCTYPE = 000b):
0b (checksum enable) = Packet checksum is reported in the Rx descriptor.
1b (checksum disable) = Not supported.
RXCSUM.PCSD Extended or Header Split Rx Descriptor (SRRCTL.DESCTYPE not equal
000b):
0b (checksum enable) = checksum and IP identification are reported in the Rx
descriptor.
1b (checksum disable) = RSS Hash value is reported in the Rx descriptor.
Reserved 31:14 0x0
Reserved.
Write 0x0, ignore on read.