Intel
®
82575EB Gigabit Ethernet Controller — IP/TCP/UDP Transmit Checksum Offloading
Intel
®
82575EB Gigabit Ethernet Controller 324632-003
Software Developer’s Manual and EEPROM Guide Revision: 2.1
158 January 2011
— UDP Checksum
5.8.7.3 TCP/IP/UDP Header for the Last Frame
Hardware makes the following changes to the headers for the last frame of a TCP segmentation
context:
Note: Last frame payload bytes = PAYLEN – (N * MSS)
• MAC Header (for SNAP packets)
— Type/LEN field = last frame payload bytes + MACLEN + IPLEN + L4LEN – 14
• IPv4 Header
— IP Total Length = last frame payload bytes + L4LEN) + IPLEN
— IP Identification: incremented from last value (wrap around configurable based on a 15 bit
width or 16-bit width)
— IP Checksum
• IPv6 Header
— Payload Length = last frame payload bytes + L4LEN + IPV6_HDR_extension
• TCP Header
— Sequence Number update: Add previous TCP payload size to the previous sequence number
value. This is equivalent to adding the MSS to the previous sequence number.
— If FIN flag = 1b, set it in this last frame
— If PSH flag =1b, set it in this last frame
— TCP Checksum
• UDP Header
— UDP length: last frame payload bytes + L4LEN
— UDP Checksum
5.9 IP/TCP/UDP Transmit Checksum
Offloading
The 82575 performs checksum offloading as an optional part of the TCP/UDP segmentation offload
feature. These specific checksums are supported under TCP segmentation:
• IPv4 checksum
• TCP checksum
• UDP checksum
Checksum offloading can also be performed in a single-send packet.
Note: For tunneled packets, hardware can perform either an IPv4 checksum or TCP checksum but
not both.