Receive and Transmit Description

Table 3-14. Transmit Descriptor (TDESC) Layout

Transmit

Description

Descriptor Offload

 

 

 

 

TCP/UDP Checksum Ending

TUCSE

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.

 

 

 

TCP/UDP Checksum Offset

 

Defines the offset where to insert the TCP/UDP checksum field in the packet data

TUCSO

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.

 

 

 

TCP/UDP Checksum Start

TUCSS

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.

 

 

 

IP Checksum Ending

 

Defines the ending byte for the IP checksum offload feature.

IPCSE

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.

 

 

 

IP Checksum Offset

IPCSO

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.

 

 

 

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

IPCSS

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.

 

 

 

Maximum Segment Size

 

Controls the Maximum Segment Size. This specifies the maximum TCP or UDP

MSS

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.

 

 

 

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

HDRLEN

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.

 

 

Software Developer’s Manual

43

Page 57
Image 57
Intel PCI-X manual Transmit Descriptor Tdesc Layout, Transmit Description Descriptor Offload