Modular/Pluggable TCP Congestion Control for FreeBSD

Fred Baker fred at
Tue Dec 18 11:21:29 PST 2007

Thanks to each of you.

On Dec 18, 2007, at 4:55 AM, 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

More information about the freebsd-net mailing list