Receive and Transmit Description

3.5.2.1TCP 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.3TCP 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.4Packet 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.

Ethernet

IPv4

TCP/UDP

DATA

FCS

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

Software Developer’s Manual

57

Page 71
Image 71
Intel Intel Gigabit Ethernet Controllers TCP Segmentation Performance, Packet Format, TCP Segmentation Data Fetch Control