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