Intel 82558 Switch User Manual


 
160 10/100 Mbps Ethernet Controller Family Open Source Software Developer Manual
82550 and 82551QM Specific Information
first byte of the TCP or UDP header. The controller reads this parameter when Hardware
Parsing is clear and TCP/UDP checksum is set.
Note: If TCP/UDP headset offset is specified, then the IP header offset must also be
specified.
Note: VLAN mode does not impact this number since the 4 VLAN bytes are not
included in the count if they are inserted by hardware.
Transmit Threshold.
B.2.2.2 Status
If IPv4 checksum mode is set in the IPCB, but the IPv4 header was not found or had a length
field smaller than 5, the 82550 may corrupt the frame.
If TCP/UDP checksum mode is set, but a TCP/UDP header was not found or the length of the
TCP/UDP packet was smaller than the offset of the checksum, the 82550 may corrupt the
frame.
B.2.2.3 Configuration
IPCB usage is enabled only if the 82550 is in the Extended TxCB mode.
B.2.3 Data Flow
The flow of events for a single transmit frame with checksum offloading is described below.
1. The 82550 enters checksum mode if IPv4 checksum or TCP/UDP checksum is set.
2. If Hardware Parsing is clear, the 82550 uses the IP header offset and TCP/UDP header offset
from IPCB. Otherwise, the 82550 parses the frame to locate these offsets.
3. The 82550 computes the checksum over the IP header while it is being access from memory
using the IP header length field from the frame (regardless of Hardware Parsing). The
checksum is stored in the appropriate location.
4. The 82550 computes the checksum over the TCP/UDP header and payload according to the
TCP/UDP header offset, the IP header total length, and the TCP or UDP bit (according to the
IP header protocol field if Hardware Parsing is set or according to the TCP/UDP bit if
Hardware Parsing is clear). The checksum is stored in the appropriate location.
5. At this point, the frame is ready for transmission.
The TCP/UDP checksum includes the pseudo header partial checksum that should be stored by the
driver in the checksum field. In Large Send mode, the driver should store the partial checksum of
the pseudo header of the first packet (which includes the header and payload length [or TCP
segment size] of the first frame). The controller generates the correct payload length and
corresponding pseudo header checksum for each frame transmitted within the Large Send.