Large Receive Offload implementation in Neterion 10GbE Ethernet driver
The benefits of TSO (Transmit Side Offload) implementation in Ethernet ASICs and device drivers are well known. TSO is a de facto standard in version 2.6 Linux kernel and provides a significant reduction in CPU utilization, especially with 1500 MTU frames. When a system is CPU-bound, these cycles translate into a dramatic increase in throughput. Unlike TOE (TCP Offload Engine) implementations, stateless offloads do not break the Linux stack and do not introduce either security or support issues. The benefits of stateless offloads are especially apparent at 10 Gigabit rates. TSO hardware support on a 10GbE sender uses a fraction of a single CPU to achieve full line rate, still leaving plenty of cycles for applications. On the receiver side, however, the Linux stack presently does not support an equivalent stateless offload. Receiver CPU utilization, as a consequience, becomes the bottleneck that prevents 10GbE adapters from reaching line rate with 1500 MTU. Neterion Xframe adapter, implementing a LRO (Large Receive Offload) approach, was designed to address this bottleneck and reduce TCP processing overhead on the receiver. Both design and performance results will be presented.