Dummynet AQM v0.1- CoDel and FQ-CoDel for FreeBSD's ipfw/dummynet

Don Lewis truckman at FreeBSD.org
Thu Mar 10 08:29:02 UTC 2016


On 26 Feb, Rasool Al-Saadi wrote:
> Dear all,
> 
> I would like to announce that we (myself and Grenville Armitage) released Dummynet AQM v0.1, which is an independent implementation of CoDel and FQ-CoDel for FreeBSD's ipfw/dummynet framework, based on the IETF  CoDel [1] and FQ-CoDel [2] Internet-Drafts.
> We prepared patches for FreeBSD11-CURRENT-r295345  and FreeBSD 10.x-RELEASE (10.0, 10.1, 10.2), and a technical report  of our implementation.
> 
> Patches and documentation can be found in:
> http://caia.swin.edu.au/freebsd/aqm
> 
> Technical report:
> http://caia.swin.edu.au/reports/160226A/CAIA-TR-160226A.pdf

I've got some results with running this on my firewall in an attempt to
tame a severe bufferbloat problem on my ADSL connection to the outside
world.

The raw speed numbers reported by my ADSL modem are 6016 Kb/s downstream
and 768 Kb/s upstream.  I set my MTU to 1492 to avoid fragmentation from
PPPoE overhead.

Using <http://www.dslreports.com/speedtest> with things unthrottled, I
observe about 5050 Kb/s downstream and 648Kb/s upstream, with a
bufferbloat rating of F.

I configured the system to use FQ-CoDel, with separate pipes for each
direction.  Because of the slow upstream speed, I increased the target
value for the upstream direction to 25 ms since a maximum size packet
will require about 20 ms to send.  I also set the
net.inet.tcp.experimental.initcwnd10 sysctl value to 0.  The latter
seemed to help a lot.  With this feature enabled, the initial packet
blast at the start of the upload caused a large initial latency spike,
and the initial transfer rate ended up being very slow and it took a
long time to ramp up to its maximum sustained value.

My current dummynet pipe bandwidth settings are 4800 Kb/s downstream and
615 Kb/s upstream.  The speedtest results for these settings are
about 4600 Kb/s downstream and about 600 Kb/s upstream.  I'm somewhat
disappointed in the bandwith loss, but my bufferbloat rating has
improved to mostly A's with some B's.

I do still see a large increase in latency at the start of transfers,
and then it oscillates for a while before settling down at a reasonable
value for the remainder of the transfer.  I suspect this is to be
expected.

It would be nice if the implementation was able to account for the PPPOE
and ATM framing overhead like the Linux implementation does.  I think
that would help performance when there is a mix of packet sizes.



More information about the freebsd-net mailing list