HomeFreeBSD

iflib: simplify lro & use tcp_lro_queue_mbuf()

Description

iflib: simplify lro & use tcp_lro_queue_mbuf()

Simplify LRO handling by:

  • removing fowarding checks... LRO will already do this
  • using the rss sorted LRO (tcp_lro_queue_mbuf()) API, which

allows LRO to accumulated large numbers of packets
and sort them by LRO hash and arrival time, leading to
far higher LRO aggregation rates on servers with lots
of connections (esp. internet facing servers).

  • eliminate cache busing loop over chained packets

Note that this change may slightly pessimize a silly case
(LRO enabled + IP forwarding enabled) wth the benefit of giving
a small speedup for forwarding with LRO disabled, and a very
large speedup for LRO w/o forwarding disabled. And the large
benefit of simplifying the code.

Reviewed by: kbowling, markj
Tested by: olivier
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D51772

Details

Provenance
gallatinAuthored on Aug 12 2025, 5:54 PM
Reviewer
kbowling
Differential Revision
D51772: iflib: simplify lro & use lro_queue_mbuf()
Parents
rG6bca82843e56: netstat: remove unneeded cast
Branches
Unknown
Tags
Unknown