Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Sep 2015 21:50:29 -0700 (PDT)
From:      Don Lewis <truckman@FreeBSD.org>
To:        freebsd-net@FreeBSD.org
Subject:   CoDel and ECN questions
Message-ID:  <201509020450.t824oTKP057556@gw.catspoiler.org>

next in thread | raw e-mail | index | archive | help
Bufferbloat on my DSL link to the outside world has been bugging me
lately.  I was considering adding an OpenWrt box between my DSL modem
and my FreeBSD firewall in order to get CoDel, when I discovered that
CoDel had been quietly added to FreeBSD 11.  Unfortunately the
documentation is severely lacking.  The ALTQ(4) man page mentions CoDel
and points to pfctl(8) and pf.conf(5) for details, but pf.conf(5)
discusses cbq, priq, hfsc, and red, but not codel.

I'm currently using ipfw and not pf, but it looks like ipfw can connect
to altq, so I'm good there.

I need to limit bandwidth in both directions, but altq only controls
outbound traffic on an interface, which makes sense.  If this box was
just forwarding packets between two interfaces, I could also use altq on
the inward-facing interface to limit download bandwidth to control the
queue depth on the ISP side of my DSL link.   The problem is that some
of the inbound traffic terminates on the firewall box itself, and in the
future I may have more than one inside interface.  Dummynet is able to
control bandwidth in both directions, but it only implements RED and
gRED but not CoDel (or at least it's not documented).

The OpenWrt implementation can account for extra per-packet overhead in
its bandwidth calculations.  That could be significant for me because of
the additional PPPoE and ATM overhead, which is pretty large for small
packets. Do we have anything similar?

Can we combine ECN with CoDel?  Pf.conf(5) says that ECN implies RED.

I'm using 6rd and gif(4) for IPv6 connectivity.  Does gif copy the ECN
bits when encapsulating and decapsulating packets?

According to
<https://en.wikipedia.org/wiki/Explicit_Congestion_Notification>, Apple
has announced that OS X 10.11 and iOS 9 will enable ECN by default. Have
we given any thought to changing our default?  Linux can control ECN
separately for incoming and outgoing connections.  It sounds like the
default is now to accepting ECN for incoming connections, but not
request it for outgoing connections.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201509020450.t824oTKP057556>