Data Sheet
Inline Functions—Ethernet Controller I210
309
7.2.4.7.2 TCP/UDP/IP Headers for the Subsequent Frames
The hardware makes the following changes to the headers for subsequent packets that are derived as
part of a TCP segmentation context:
Number of bytes left for transmission = PAYLEN - (N * MSS). Where N is the number of frames that
have been transmitted.
MAC Header (for SNAP Packets)
Type/Len field = MSS + MACLEN + IPLEN + L4LEN - 14 - 4 (if VLAN added by Software)
IPv4 Header
• IP Identification: incremented from last value (wrap around based on 16 bit-width)
• IP Total Length = MSS + L4LEN + IPLEN
•IP Checksum
IPv6 Header
•Payload Length = MSS + L4LEN + IPV6_HDR_extension
1
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.
• The flag values of the subsequent frames are set by ANDing the flag word in the pseudo header
with the DTXTCPFLGL.TCP_Flg_mid_seg register field. The default value of the
DTXTCPFLGL.TCP_Flg_mid_seg are set so that if the FIN flag and the PSH flag are cleared in these
frames.
• TCP Checksum
UDP Header
• UDP Length = MSS + L4LEN
•UDP Checksum
7.2.4.7.3 TCP/UDP/IP Headers for the Last Frame
The hardware makes the following changes to the headers for the last frame of a TCP segmentation
context:
Last frame payload bytes = PAYLEN - (N * MSS)
MAC Header (for SNAP Packets)
• Type/Len field = Last frame payload bytes + MACLEN + IPLEN + L4LEN - 14 - 4 (if VLAN added by
Software)
IPv4 Header
• IP Total Length = last frame payload bytes + L4LEN + IPLEN
• IP Identification: incremented from last value (wrap around based on 16 bit-width)
•IP Checksum
1. IPV6_HDR_extension is calculated as IPLEN - 40 bytes.