Modular/Pluggable TCP Congestion Control for FreeBSD

Lawrence Stewart lastewart at
Mon Dec 17 22:09:07 PST 2007

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].

Jim and Lawrence


More information about the freebsd-net mailing list