Intel 82559 用户手册

下载
页码 175
10/100 Mbps Ethernet Controller Family Open Source Software Developer Manual  
161
 
 
82550 and 82551QM Specific Information
Note: The partial checksum required by the 82550 is not the partial checksum passed by the Microsoft* 
IP stack per Microsoft offloading specification, v0.106.
For TCP/UDP checksum computation, the 82550 requires that the whole frame is copied into its 
internal FIFO. The result is stored in the proper header fields and only then can the frame be 
cleared for transmission or further processing. The 82550 pipelines transmission of frame N-1 and 
the checksum computation of frame N such that back-to-back frames on the transmit queue will 
flow at maximal DMA rate and checksum operation and transmission are at wire speed. This 
minimizes the performance hit to “first frames events,” where the 82550 transmit FIFO was empty 
prior to the transmission command.
B.2.4
Tunneling Support
The 82550 and 82551 provide one level of IPv4 header and TCP/UDP checksum computation. In 
IP tunnel mode, the driver is expected to compute all IP headers checksum except one that may be 
handled by the device. As these frame formats are not supported in autonomous mode, the driver is 
expected to provide the semi-autonomous mode parameters to the 82550.
B.3
Large Send
B.3.1
Rationale
Large Send (also known as TCP Segmentation Offload [TSO]) allows the stack to transfer a frame 
(larger than the MTU for that media) to the driver. (The maximum frame size for 10/100 Mbps 
Ethernet is 1518 bytes.) For TCP/IP, a typical frame size may be the transmit window (the default 
is 8760 bytes, which is approximately 6 full size frames). The 82550 supports Large Send of 
frames up to 64 Kbytes. Performance increases would result from:
Stack computes only one header per block.
Stack does not segment the block to fit the MTU size. This decreases the overhead of multiple 
virtual address mapping and linked list management.
The 82550 loads the prototype header from host memory only once (and stores it in the device) to 
reduce PCI overhead.
The Large Send operation is supported for TCP only (not for UDP). Since servers are typically 
more involved in transmission than client systems, the Large Send feature primarily benefits these 
server systems. The estimated reduction in CPU utilization is 20%.
B.3.2
Driver interface
The IPCB structure used for Large Send operation is presented below. The fields relevant for the 
Large Send feature are shaded. The driver must ensure that the TCP payload of a Large Send frame 
is greater than the maximum TCP payload. In other words, there must be more than one frame in a 
Large Send.