Modular/Pluggable TCP Congestion Control for FreeBSD

Andre Oppermann andre at freebsd.org
Tue Dec 18 04:55:13 PST 2007


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



More information about the freebsd-net mailing list