Intel PCI Video Game Controller User Manual


 
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