Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Nov 2012 22:13:45 +0100
From:      Stefano Marinelli <postnet@dragas.dyndns.org>
To:        freebsd-net@freebsd.org
Subject:   "Weighted round robin" for LAGG - anyhow?
Message-ID:  <646662D0-E66C-4168-B351-482B06ACF26A@dragas.dyndns.org>

next in thread | raw e-mail | index | archive | help

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


Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?646662D0-E66C-4168-B351-482B06ACF26A>