Data Sheet
Inline Functions—Ethernet Controller I210
303
• The protocol stack calculates the number of packets required to transmit this block based on the
MTU size of the media and required packet headers.
For each packet of the data block:
• Ethernet, IP and TCP/UDP headers are prepared by the stack.
• The stack interfaces with the software device driver and commands it to send the individual packet.
• The software device driver gets the frame and interfaces with the hardware.
• The hardware reads the packet from host memory (via DMA transfers).
• The software device driver returns ownership of the packet to the Network Operating System (NOS)
when hardware has completed the DMA transfer of the frame (indicated by an interrupt).
The transmission process for the I210 TCP segmentation offload implementation involves:
• The protocol stack receives from an application a block of data that is to be transmitted.
• The stack interfaces to the software device driver and passes the block down with the appropriate
header information.
• The software device driver sets up the interface to the hardware (via descriptors) for the TCP
segmentation context.
Hardware DMA's (transfers) the packet data and performs the Ethernet packet segmentation and
transmission based on offset and payload length parameters in the TCP/IP context descriptor including:
• Packet encapsulation
• Header generation and field updates including IPv4, IPV6, and TCP/UDP checksum generation
• The software device driver returns ownership of the block of data to the NOS when hardware has
completed the DMA transfer of the entire data block (indicated by an interrupt).
7.2.4.2.1 TCP Segmentation Data Fetch Control
To perform TCP Segmentation in the I210, the DMA must be able to fit at least one packet of the
segmented payload into available space in the on-chip Packet Buffer. The DMA does various
comparisons between the remaining payload and the Packet Buffer available space, fetching additional
payload and sending additional packets as space permits.
To support interleaving between descriptor queues at Ethernet frame resolution inside TSO requests,
the frame header pointed to by the so called header descriptors are reread from system memory by
hardware for every LSO segment. The I210 stores in an internal cache only the header’s descriptors
instead of the header’s content.
To limit the internal cache size software should not spread the L3/L4 header (TCP, UDP, IPV4 or IPV6)
on more than 4 descriptors. In the last header buffer it’s allowed to mix header and data. This limitation
stands for up to Layer4 header included, and for IPv4 or IPv6 indifferently.