Intel PCI User Manual

Page of 406
Receive and Transmit Description
 Software Developer’s Manual
57
3.5.2.1
TCP Segmentation Data Fetch Control
To perform TCP Segmentation in the Ethernet controller, the DMA unit must ensure that the entire 
payload of the segmented packet fits into the available space in the on-chip Packet Buffer. The 
segmentation process is performed without interruption. The DMA performs various comparisons 
between the payload and the Packet Buffer to ensure that no interruptions occur. The TCP 
Segmentation Pad & Minimum Threshold (TSPMT) register is used to allow software to program 
the minimum threshold required for a TCP Segmentation payload. Consideration should be made 
for the MTU value when writing this field. The TSPMT register is also used to program the 
threshold padding overhead. This padding is necessary due to the indeterminate nature of the MTU 
and the associated headers.
3.5.3
TCP Segmentation Performance
Performance improvements for a hardware implementation of TCP Segmentation offload mean:
The operating system stack does not need to partition the block to fit the MTU size, saving 
CPU cycles.
The operating system stack only computes one Ethernet, IP, and TCP header per segment, 
saving CPU cycles.
The operating system stack interfaces with the software device driver only once per block 
transfer, instead of once per frame.
Larger PCI bursts are used which improves bus efficiency.
Interrupts are easily reduced to one per TCP message instead of one per packet.
Fewer I/O accesses are required to command the hardware.
3.5.4
Packet Format
Typical TCP/IP transmit window size is 8760 bytes (about 6 full size frames). A TCP message can 
be as large as 64 KB and is generally fragmented across multiple pages in host memory. The 
Ethernet controller partitions the data packet into standard Ethernet frames prior to transmission. 
The Ethernet controller supports calculating the Ethernet, IP, TCP, and even UDP headers, 
including checksum, on a frame by frame basis. 
Figure 3-5. TCP/IP Packet Format
Frame formats supported by the Ethernet controller’s TCP segmentation include:
Ethernet 802.3
IEEE 802.1q VLAN (Ethernet 802.3ac) 
Ethernet Type 2
Ethernet SNAP
IPv4 headers with options 
IPv6 headers with IP option next headers
IPv6 packet tunneled in IPv4
 Ethernet
IPv4
TCP/UDP
DATA
FCS