From owner-freebsd-net@FreeBSD.ORG Tue Dec 18 12:55:13 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 42D8C16A420 for ; Tue, 18 Dec 2007 12:55:13 +0000 (UTC) (envelope-from andre@freebsd.org) Received: from c00l3r.networx.ch (c00l3r.networx.ch [62.48.2.2]) by mx1.freebsd.org (Postfix) with ESMTP id 9224B13C478 for ; Tue, 18 Dec 2007 12:55:12 +0000 (UTC) (envelope-from andre@freebsd.org) Received: (qmail 87173 invoked from network); 18 Dec 2007 12:23:20 -0000 Received: from c00l3r.networx.ch (HELO [127.0.0.1]) ([62.48.2.2]) (envelope-sender ) by c00l3r.networx.ch (qmail-ldap-1.03) with SMTP for ; 18 Dec 2007 12:23:20 -0000 Message-ID: <4767C338.4070709@freebsd.org> Date: Tue, 18 Dec 2007 13:55:20 +0100 From: Andre Oppermann User-Agent: Thunderbird 1.5.0.13 (Windows/20070809) MIME-Version: 1.0 To: Lawrence Stewart References: <47675291.5070101@swin.edu.au> In-Reply-To: <47675291.5070101@swin.edu.au> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Tue, 18 Dec 2007 13:00:18 +0000 Cc: James Healy , grenville armitage , "freebsd-net@freebsd.org" , Iccrg@cs.ucl.ac.uk, Randall Stewart , tmrg-interest@ICSI.Berkeley.EDU, end2end-interest@postel.org, David Malone , Douglas Leith , Robert Shorten , Larry Dunn , Fred Baker Subject: Re: Modular/Pluggable TCP Congestion Control for FreeBSD X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Dec 2007 12:55:13 -0000 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