From owner-freebsd-ipfw@freebsd.org Thu Mar 10 08:29:02 2016 Return-Path: Delivered-To: freebsd-ipfw@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 948A2ACA708; Thu, 10 Mar 2016 08:29:02 +0000 (UTC) (envelope-from truckman@FreeBSD.org) Received: from gw.catspoiler.org (unknown [IPv6:2602:304:b010:ef20::f2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "gw.catspoiler.org", Issuer "gw.catspoiler.org" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 567A8C01; Thu, 10 Mar 2016 08:29:02 +0000 (UTC) (envelope-from truckman@FreeBSD.org) Received: from FreeBSD.org (mousie.catspoiler.org [192.168.101.2]) by gw.catspoiler.org (8.15.2/8.15.2) with ESMTP id u2A8Smbt013642; Thu, 10 Mar 2016 00:28:52 -0800 (PST) (envelope-from truckman@FreeBSD.org) Message-Id: <201603100828.u2A8Smbt013642@gw.catspoiler.org> Date: Thu, 10 Mar 2016 00:28:48 -0800 (PST) From: Don Lewis Subject: Re: Dummynet AQM v0.1- CoDel and FQ-CoDel for FreeBSD's ipfw/dummynet To: ralsaadi@swin.edu.au cc: aqm@ietf.org, freebsd-net@freebsd.org, freebsd-ipfw@freebsd.org, garmitage@swin.edu.au In-Reply-To: <6545444AE21C2749939E637E56594CEA3C187192@gsp-ex02.ds.swin.edu.au> MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii X-BeenThere: freebsd-ipfw@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: IPFW Technical Discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Mar 2016 08:29:02 -0000 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 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.