Data Sheet

Ethernet Controller I210 —Inline Functions
312
7.2.5.2 TCP/UDP Checksum
Three fields in the Transmit Context Descriptor (TDESC) set the context of the TCP/UDP checksum off
loading feature:
•MACLEN
•IPLEN
•TUCMD.L4T
TUCMD.L4T = 01b specifies that the packet type is TCP, and that the 16-bit TCP header checksum
should be inserted at byte offset MACLEN + IPLEN +16. TUCMD.L4T = 00b indicates that the packet is
UDP and that the 16-bit checksum should be inserted starting at byte offset MACLEN + IPLEN + 6.
IPLEN + MACLEN specifies the byte offset from the start of the DMA'd data to the first byte to be
included in the checksum, the start of the TCP header. The minimal allowed value for this sum is 32/42
for UDP or TCP respectively.
Note: The IPLEN + MACLEN + L4LEN value needs to be less than the total DMA length for a packet.
If this is not the case, the results are unpredictable.
The TCP/UDP checksum always continues to the last byte of the DMA data.
Note: For non-TSO, software still needs to calculate a full checksum for the TCP/UDP pseudo-
header. This checksum of the pseudo-header should be placed in the packet data buffer at the
appropriate offset for the checksum calculation.
7.2.5.3 SCTP CRC Offloading
For SCTP packets, a CRC32 checksum offload is provided.
Three fields in the Transmit Context Descriptor (TDESC) set the context of the STCP checksum off
loading feature:
•MACLEN
•IPLEN
•TUCMD.L4T
TUCMD.L4T = 10b specifies that the packet type is SCTP, and that the 32-bit STCP CRC should be
inserted at byte offset MACLEN + IPLEN + 8.
IPLEN + MACLEN specifies the byte offset from the start of the DMA'd data to the first byte to be
included in the checksum, the start of the STCP header. The minimal allowed value for this sum is 26.
The SCTP CRC calculation always continues to the last byte of the DMA data.
The SCTP total L3 payload size (TDESCD.PAYLEN - IPLEN - MACLEN) should be a multiple of 4 bytes
(SCTP padding not supported).
Notes:
1. TSO is not available for SCTP packets.
2. The CRC field of the SCTP header must be set to zero prior to requesting a CRC calculation offload.
7.2.5.4 Checksum Supported Per Packet Types
Table 7-45 lists which checksum is supported per packet type.