Intel Gigabit Ethernet Controllers User Manual

Page of 406
Receive and Transmit Description
 Software Developer’s Manual
67
3.5.9.1
TCP/IP/UDP Header for the First Frame
The hardware makes the following changes to the headers of the first packet that is derived from 
each TCP segmentation context.
IPv4 Header
— IP Total Length = MSS + HDRLEN – IPCSS
— IP Checksum
— IPv6 Header
— Payload Length = MSS + HDRLEN - IPCSS
TCP Header
— Sequence Number: The value is the Sequence Number of the first TCP byte in this frame.
— If FIN flag = 1b, it is cleared in the first frame.
— If PSH flag =1b, it is cleared in the first frame.
— TCP Checksum
UDP Header
— UDP length: MSS + HDRLEN - TUCSS 
— UDP Checksum
3.5.9.2
TCP/IP/UDP Header 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:
Note: Number of bytes left for transmission = PAYLEN – (N * MSS). Where N is the number of frames 
that have been transmitted.
IPv4 Header
— IP Identification: incremented from last value (wrap around)
— IP Total Length = MSS + HDRLEN – IPCSS
— IP Checksum
IPv6 Header
Payload Length = MSS + HRDLEN - IPCSS
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, it is cleared in these frames.
— If PSH flag =1b, it is cleared in these frames.
— TCP Checksum
UDP Header
— UDP Length: MSS + HDRLEN – TUCSS
— UDP Checksum