Intel 82544GC/EI Network Card User Manual


 
Receive and Transmit Description
Software Developer’s Manual 43
Table 3-14. Transmit Descriptor (TDESC) Layout
Transmit
Descriptor Offload
Description
TUCSE
TCP/UDP Checksum Ending
Defines the ending byte for the TCP/UDP checksum offload feature.
Setting TUCSE field to 0b indicates that the checksum covers from TUCCS to the
end of the packet.
TUCSO
TCP/UDP Checksum Offset
Defines the offset where to insert the TCP/UDP checksum field in the packet data
buffer. This is used in situations where the software needs to calculate partial
checksums (TCP pseudo-header, for example) to include bytes which are not
contained within the range of start and end.
If no partial checksum is required, software must write a value of 0b.
TUCSS
TCP/UDP Checksum Start
Defines the starting byte for the TCP/UDP checksum offload feature.
It must be defined even if checksum insertion is not desired for some reason.
When setting the TCP segmentation context, TUCSS is used to indicate the start
of the TCP header.
IPCSE
IP Checksum Ending
Defines the ending byte for the IP checksum offload feature.
It specifies where the checksum should stop. A 16-bit value supports checksum
offloading of packets as large as 64KB.
Setting IPCSE field to 0b indicates that the checksum covers from IPCCS to the
end of the packet. In this way, the length of the packet does not need to be
calculated.
IPCSO
IP Checksum Offset
The IPCSO field specifies where the resulting IP checksum should be placed. It is
limited to the first 256 bytes of the packet and must be less than or equal to the
total length of a given packet. If this is not the case, the checksum is not inserted.
IPCSS
IP Checksum Start
IPCSS specifies the byte offset from the start of the transferred data to the first
byte in be included in the checksum. Setting this value to 0b means the first byte of
the data would be included in the checksum.
Note that the maximum value for this field is 255. This is adequate for typical
applications.
The IPCSS value needs to be less than the total transferred length of the packet. If
this is not the case, the results are unpredictable.
IPCSS must be defined even if checksum insertion is not desired for some reason.
When setting the TCP segmentation context, IPCSS is used to indicate the start of
the IP header.
MSS
Maximum Segment Size
Controls the Maximum Segment Size. This specifies the maximum TCP or UDP
payload “segment” sent per frame, not including any header. The total length of
each frame (or “section”) sent by the TCP Segmentation mechanism (excluding
802.3ac tagging and Ethernet CRC) is MSS bytes + HRDLEN. The one exception
is the last packet of a TCP segmentation context which is (typically) shorter than
“MSS+HDRLEN”. This field is ignored if TDESC.TSE is not set.
HDRLEN
Header Length
Specifies the length (in bytes) of the header to be used for each frame (or
“section”) of a TCP Segmentation operation. The first HDRLEN bytes fetched from
data descriptor(s) are stored internally and used as a prototype header for each
section, and are pre-pended to each payload segment to form individual frames.
For UDP packets this is normally equal to “UDP checksum offset + 2”. For TCP
packets it is normally equal to “TCP checksum offset + 4 + TCP header option
bytes”. This field is ignored if TDESC.TSE is not set.