Ethernet NIC drivers depending unconditionally on INET

Andrew Gallatin gallatin at cs.duke.edu
Fri Jun 12 18:19:43 UTC 2009


Bjoern A. Zeeb wrote:

 >>> if there is no INET there should be no LRO for now, the capabilities
 >>> not advertised, etc.  Be prepared in case LRO will arrive for IPv6.
 >>
 >> As to LRO & IPV6... I was going to port our LRO for IPv6,
 >> but discovered the state of IPv6 in FreeBSD is so disgraceful
 >> that there was no point.  Eg, there is no checksum offload,
 >> no TSO, etc, for INET6.  Once those things are there, I'll
 >> be happy to provide LRO for IPv6.
 >
 > With "port our LRO" you mean the driver parts?  So how much does the
 > FreeBSD infrastructure for LRO/v4 help and work for you (and the
 > others)?  Would adding v6 support there help?

For "port our LRO", I actually meant the LRO code itself, the IPv4
version of which was originally contributed by my employer (Myricom).
Notice sys/netinet/tcp_lro.c is sys/dev/mxge/mxge_lro.c ported to be a
bit more generic by Jack when he wanted LRO for ixgbe.  The mxge LRO
is shared among a few of our drivers for other OSes, and at least one
has grown support for LRO for IPv6, so that should be trivial to port
to FreeBSD.

The thing I really need to do is convert mxge to use tcp_lro.c and
remove mxge_lro.c.  I've just been too busy.

As to how much it helps.. I've seen some machines go from 3Gb/s
to line rate (9.4Gb/s) for 1500b recieves.

Drew



More information about the freebsd-net mailing list