Receive and Transmit Description

3.5.9.1TCP/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.2TCP/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

Software Developer’s Manual

67

Page 81
Image 81
Intel PCI-X manual 9.1 TCP/IP/UDP Header for the First Frame, 9.2 TCP/IP/UDP Header for the Subsequent Frames