Data Sheet
Ethernet Controller I210 —Inline Functions
308
7.2.4.7 TCP/UDP/IP Headers Update
IP/TCP or IP/UDP header is updated for each outgoing frame based on the IP/TCP header prototype
which hardware DMA's from the first descriptor(s). 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 what fields are modified by hardware during the TCP Segmentation
process by the I210.
Note: Placing incorrect values in the Context descriptors might cause failure of Large Send. The
indication of Large Send failure can be checked in the TSCTC statistics register.
7.2.4.7.1 TCP/UDP/IP Headers for the First Frames
The hardware makes the following changes to the headers of the first packet that is derived from each
TCP segmentation context.
MAC Header (for SNAP)
• Type/Len field = MSS + MACLEN + IPLEN + L4LEN - 14 - 4 (if VLAN added by Software)
IPv4 Header
• IP Identification: Value in the IPv4 header of the prototype header in the packet data itself
•IP Total Length = MSS + L4LEN + IPLEN
•IP Checksum
IPv6 Header
•Payload Length = MSS + L4LEN + IPV6_HDR_extension
1
TCP Header
• Sequence Number: The value is the Sequence Number of the first TCP byte in this frame.
• The flag values of the first frame are set by ANDing the flag word in the pseudo header with the
DTXTCPFLGL.TCP_flg_first_seg register field. The default value of the
DTXTCPFLGL.TCP_flg_first_seg are set so that the FIN flag and the PSH flag are cleared in the first
frame.
• TCP Checksum
UDP Header
• UDP Length = MSS + L4LEN
• UDP Checksum
Yes Yes TCP segment or UDP datagram with checksum off-load
No No Non-IP packet or checksum not offloaded
TSO Yes Yes For TSO, checksum off-load must be done
1. IPV6_HDR_extension is calculated as IPLEN - 40 bytes.
Table 7-44. Conditions for Checksum Offloading