Intel 324632-003 Switch User Manual


 
Intel
®
82575EB Gigabit Ethernet Controller — TCP Checksum
Intel
®
82575EB Gigabit Ethernet Controller 324632-003
Software Developer’s Manual and EEPROM Guide Revision: 2.1
160 January 2011
As mentioned in Section 5.6.2, it is not necessary to set a new context for each new packet. In many
cases, the same checksum context can be used for a majority of the packet stream. In this case, some
performance can be gained by only changing the context on an as needed basis or electing to use the
offload feature only for a particular traffic type, thereby avoiding all context descriptors except for the
initial one.
5.10.2 TCP Checksum
Three fields in the Transmit Context Descriptor set the context of the TCP checksum offloading feature:
MACLEN
IPLEN
TUCMD.L4T
TUCMD.TCPL4T = 1b specifies that the packet type is TCP, and that the 16-bit TCP header checksum
should be inserted at byte offset MACLEN + IPLEN + 16. TUCMD.L4T = 0b indicates that the packet is
UDP and that the 16-bit checksum should be inserted starting at byte offset MACLEN + IPLEN + 6.
IPLEN+MACLEN specifies the byte offset from the start of the transferred data to the first byte to be
included in the checksum, the start of the TCP header. The minimal allowed value for this sum is 18/28
for UDP or TCP, respectively. Note that the maximum value for this field is 255 and is adequate for
typical applications.
Note: The IPLEN + MACLEN + L4LEN value needs to be less than the total transfer length for a
packet. If not, results are unpredictable.
The TCP/UDP checksum always continues to the last byte of the transferred data.
Note: For non-TSO, software still needs to calculate a full checksum for the TCP/UDP pseudo-
header. This checksum of the pseudo-header should be placed in the packet data buffer at
the appropriate offset for the checksum calculation.
5.11 Multiple Transmit Queues
The number of transmit queues for the 82575 has increased to four, to match the expected number of
processors on most server platforms. If there are more processors than queues, then one queue can be
used to service more than one processor.
In transmission, each processor sets a queue in the host memory (this memory is likely to be the one
that is closely connected to the processor).
Transmission priority among the queues is under software configuration and meets the following rules:
Arbitration between queues is done at the segment boundary. That is, once a segment (including a
TSO segment) is selected for transmission, it would complete transmitting before another packet is
selected.
Each queue can be assigned as High Priority (HP) or Low Priority (LP). Software can change priority
any time during operation.
HP queues are always selected before LP queues. Note that this might cause starvation of the LP
queues.
Round robin arbitration is performed among the HP queues.