Intel Gigabit Ethernet Controllers Benutzerhandbuch

Seite von 406
Receive and Transmit Description
 Software Developer’s Manual
65
Three specific types of checksum are supported by the hardware in the context of the TCP 
Segmentation offload feature: 
IPv4 checksum (IPv6 does not have a checksum)
TCP checksum
UDP checksum
Each packet that is sent via the TCP segmentation offload feature optionally includes the IPv4 
checksum and either the TCP or UDP checksum.
All checksum calculations use a 16-bit wide one’s complement checksum. The checksum word is 
calculated on the outgoing data. The checksum field is written with the 16 bit one’s complement of 
the one’s complement sum of all 16-bit words in the range of CSS to CSE, including the checksum 
field itself.
3.5.9
IP/TCP/UDP Header Updating
IP/TCP/UDP header is updated for each outgoing frame based on the IP/TCP header prototype 
which hardware transfers from the first descriptor(s) and stores on chip. The IP/TCP/UDP headers 
are fetched from host memory into an on-chip 240 byte header buffer once for each TCP 
segmentation context (for performance reasons, this header is not fetched again for each additional 
packet that is derived from the TCP segmentation process). The checksum fields and other header 
information are later updated on a frame by frame basis. The updating process is performed 
concurrently with the packet data fetch.
The following sections define which fields are modified by hardware during the TCP Segmentation 
process by the Ethernet controller. 
 illustrates the overall data flow.