Intel 324632-003 Switch User Manual


 
Intel
®
82575EB Gigabit Ethernet Controller — TCP Segmentation Indication
Intel
®
82575EB Gigabit Ethernet Controller 324632-003
Software Developer’s Manual and EEPROM Guide Revision: 2.1
150 January 2011
Setting the TSE bit in the TUCMD field to 1b indicates that this descriptor refers to the TCP
Segmentation context (as opposed to the normal checksum offloading context). This causes the
checksum offloading, packet length, header length, and maximum segment size parameters to be
loaded from the descriptor into the 82575.
The TCP Segmentation prototype header is taken from the packet data itself. Software must identity
the type of packet that is being sent (IPv4/IPv6, TCP/UDP, other), calculate appropriate checksum
offloading values for the desired checksums, and calculate the length of the header which is pre-
pended. The header can be up to 240 bytes in length.
Once the TCP Segmentation context has been set, the next descriptor provides the initial data to
transfer. This first descriptor(s) must point to a packet of the type indicated. Furthermore, the data it
points to might need to be modified by software as it serves as the prototype header for all packets
within the TCP Segmentation context. The following sections describe the supported packet types and
the various updates that are performed by hardware. This should be used as a guide to determine what
must be modified in the original packet header to make it a suitable prototype header.
The following summarizes the fields considered by the software device driver for modification in
constructing the prototype header:
IP Header:
Length should be set to zero
For IPv4 Headers:
Identification field should be set as appropriate for first packet of send (if not already)
Header checksum should be zeroed out unless some adjustment is needed by the software
device driver
TCP Header:
Sequence number should be set as appropriate for first packet of send (if not already)
PSH and FIN flags should be set as appropriate for last packet of send
TCP checksum should be set to the partial pseudo-header checksum as follows:
Figure 8. TCP Partial Pseudo-Header Checksum for IPv6
Figure 9. TCP Partial Pseudo-Header Checksum for IPv4
IP Source Address
IP Destination Address
Zero Layer 4 Protocol ID Zero
IPv6 Source Address
IPv6 Final Destination Address
Zero
Zero Next Header