Large-receive offload is a performance optimization between the networking stack and device drivers. With LRO, the networking code in the kernel can fetch more than one received packet from a network adapter, and process this "bundle" of packets as a unit. LRO complements interrupt coalescence.
LRO was initially implemented in the Linux kernel, first for a specific type of Ten Gigabit Ethernet adapter (Neterion), later in a more generic way. More recently, FreeBSD added LRO support in release 7.0.
A network adapter can support LRO by splitting incoming frames so that headers and payloads from different packets can be more easily combined to larger internal pseudo-packets that are then passed to the networking stack.
References
- Large Receive Offload implementation in Neterion 10GbE Ethernet driver, L. Grossman, Proc. Linux Symp., July 2005 PDF
– Main.SimonLeinen - 02 Apr 2008