Modular/Pluggable TCP Congestion Control for FreeBSD

Rui Paulo rpaulo at
Tue Dec 18 07:25:09 PST 2007

Rui Paulo
At Tue, 18 Dec 2007 13:55:20 +0100,
Andre Oppermann wrote:
> Lawrence Stewart wrote:
> > Hi all,
> > We've been involved in a research project to implement and test an
> > emerging TCP congestion control algorithm under FreeBSD. As a part of
> > this, we've put together a patch for FreeBSD 7.0-BETA4 that modularises
> > the congestion control code in the TCP stack. It allows for new
> > congestion control algorithms to be developed as loadable kernel modules.
> > This improves FreeBSD's usefulness as a TCP research platform and
> > makes
> > it easier to customise the stack for specific scenarios like high
> > bandwidth, long delay paths.
> > There is an accompanying technical report "Light-Weight Modular
> > TCP Congestion Control for FreeBSD 7" [1] that covers the design,
> > features, kernel interface and usage of the framework. Also on our
> > website is
> > a beta release of a module that implements the H-TCP[2] congestion control
> > algorithm proposed by the Hamilton Institute.
> > We believe that modular congestion control is a worthwhile addition
> > to
> > FreeBSD. We've performed significant internal testing and there are
> > currently no known issues or regressions with the implementation
> > compared to a 'vanilla' FreeBSD 7.0-BETA4 kernel. We would welcome
> > further review and testing from the wider community in the hope of
> > getting this
> > patch folded into FreeBSD 8-CURRENT.
> > SIFTR [3], our tool for monitoring FreeBSD kernel TCP connection
> > state, has also
> > received a minor update to v1.1.5, with the addition of 6 new,
> > useful variables.
> > All code and documentation is available on our website[3].
> I've started to completely overhaul tcp_input and tcp_output
> including separating out the congestion control.  Actually it
> is similiar to the way you seem to do it.
> A quick glance at your patch shows a couple of style issues
> and a complete lack of locking.
> Let me get you a Perforce account so we can develop and complete
> this work together.  I'll create a Perforce branch and import my
> code and work in progress.

Andre, perhaps you could keep us, committers, more up to date with
your projects? I've been asked to port my NetBSD tcp_congctl(9) API to
FreeBSD at some point in time and I wasn't aware that you were working
on the same thing. Perhaps you could create a branch for you in p4 so
we could follow your work?

Rui Paulo

More information about the freebsd-net mailing list