"Weighted round robin" for LAGG - anyhow?

Stefano Marinelli postnet at dragas.dyndns.org
Wed Nov 14 21:13:53 UTC 2012


Hello everybody,
I've been trying to do some experiments to improve my ADSL speed. The idea is to bond two ADSLs,  create two OpenVPN TAP channels connected to a remote (fast connected) server and doing a round-robind LAGG aggregation on both nodes. The remote end will NAT. The operation is successful but, as by design of the R-R configuration, I just get the the slowest link speed * 2. "loadbalance" mode is way slower.
The first ADSL is more or less 2.2 Mbit/sec, the second one about 1.4 MBit/sec so the gain is minimal. It's useful just for fault-tolerance.
I thought about doing  some sort of "weighted round-robin", giving a weight to the two tap interfaces. Something like "send 2 packets to the first one, than one to the second one".
I found some patches [1] for Linux (I'm compiling a kernel right now), but no information about FreeBSD. My tests show that FreeBSD has a better bonding throughput (in Linux, I just get a bit more than 2.3 Mbit/sec, on FreeBSD I can almost get the theorical 2.8Mbit/sec).
Did anyone ever tried something like that? I tried to have a look at the if_lagg source code, but I think it'd be quite difficult for me to do something like that, even trying to adapt those Linux patches. 

[1] http://sourceforge.net/projects/bonding/forums/forum/77912/topic/2048022

Thank you,
Stefano


More information about the freebsd-net mailing list