English
Language : 

82598EB Datasheet, PDF (270/596 Pages) Intel Corporation – Intel® 82598EB 10 Gigabit Ethernet Controller Datasheet
Intel® 82598EB 10 GbE Controller - Transmit Functionality
3.5.3.5
IP/TCP/UDP Transmit Checksum Offloading in Non-
Segmentation Mode
The previous section on TCP segmentation offload describes the IP/TCP/UDP checksum offloading
mechanism used in conjunction with TCP Segmentation. The same underlying mechanism can also be
applied as a standalone feature. The main difference in normal packet mode (non-TCP segmentation) is
that only the checksum fields in the IP/TCP/UDP headers need to be updated.
Before taking advantage of the 82598's enhanced checksum offload capability, a checksum context
must be initialized. For the normal transmit checksum offload feature this is performed by providing the
device with a TCP/IP context descriptor. For additional details on contexts, refer to Section 3.5.3.3.2.
Note: Enabling the checksum offloading capability without first initializing the appropriate checksum
context leads to unpredictable results.
CRC appending (HLREG0.TXCRCEN) must be enabled in TCP/IP checksum mode, since CRC
must be inserted by hardware after the checksums have been calculated.
As mentioned in Section 3.5.3.3, it is not necessary to set a new context for each new packet. In many
cases, the same checksum context can be used for a majority of the packet stream.
Each checksum operates independently. Inserting the IP and TCP checksums for each packet are
enabled through the transmit data descriptor POPTS.TSXM and POPTS.IXSM fields, respectively.
3.5.3.5.1 IP Checksum
Three fields in the transmit context descriptor set the context of the IP checksum offloading feature:
• TUCMD.IPV4
• IPLEN
• MACLEN
TUCMD.IPV4=1b specifies that the packet type for this context is IPv4 and that the IP header checksum
should be inserted. TUCMD.IP=0b indicates that the packet type is IPv6 (or some other protocol) and
that the IP header checksum should not be inserted.
MACLEN specifies the byte offset from the start of the transferred data to the first byte to be included in
the checksum, the start of the IP header. The minimal allowed value for this field is 14. Note that the
maximum value for this field is 127. This is adequate for typical applications.
Note: The MACLEN+IPLEN value needs to be less than the total DMA length for a packet. If this is
not the case, the results are unpredictable.
IPLEN specifies the IP header length the maximum allowed value is 511 bytes (the IP checksum should
stop after MACLEN+IPLEN. This is limited to the first 127+511 bytes of the packet and must be less
than or equal to the total length of a given packet. If this is not the case, the result is unpredictable.
The 16-bit IPv4 header checksum is placed at the two bytes starting at MACLEN+10.
3.5.3.5.2 TCP Checksum
Three fields in the transmit context descriptor set the context of the TCP checksum offloading feature:
• MACLEN
• IPLEN
• TUCMD.L4T
270