Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 7/19/2024
Public
Document Table of Contents

5.1.6.5.3. TCP/IP Header Fields

While segmenting a TCP packet, the DMA automatically updates the TCP/IP header fields as shown in the following table.
Table 147.  TSO: TCP and IP Header Fields
Packet Sequence TCP Header IP Header
First packet
  1. The sequence number is not updated. The value provided in the header is used.
  2. If set, the FIN and PSH flags are cleared.
  3. The TCP checksum is calculated.
  • IPv4 header
    • Total Length = MSS + TCP Header Length + IP Header Length
    • Identification field is not modified.

      It is sent as per the header provided by the software.

  • IPv4 header checksum is recalculated.
  • IPv6 header

Payload Length = MSS + TCP Header Length + IP Extension Header Length

Subsequent

packets

  1. The sequence number is updated. The MSS value is added to the sequence number value of previous segment.
  2. If set, the FIN and PSH flags are cleared.
  3. The TCP checksum is calculated.
  • IPv4 header
    • Total Length = MSS + TCP Header Length + IP Header Length
    • Identification field = Previous Identification Field + 1
    • IPv4 Header Checksum is recalculated
  • IPv6 header

Payload Length = MSS + TCP Header Length + IP Extension Header Length

Last packet
  1. The sequence number is updated. The MSS value is added to the previous sequence number value.
  2. If FIN and PSH flags were set in original header, these flags are set.
  3. The TCP checksum is calculated.
  • IPv4 header
    • Total Length = Remaining Payload + TCP Header Length + IP Header Length
    • Identification Field = Previous Identification Field + 1
    • IPv4 header Checksum is recalculated
  • IPv6 header

Payload Length = Remaining Payload Length + TCP Header Length + IP Extension Header Length