From owner-freebsd-ipfw@FreeBSD.ORG Wed Dec 2 10:32:44 2009 Return-Path: Delivered-To: ipfw@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 68BFB1065756 for ; Wed, 2 Dec 2009 10:32:42 +0000 (UTC) (envelope-from luigi@onelab2.iet.unipi.it) Received: from onelab2.iet.unipi.it (onelab2.iet.unipi.it [131.114.59.238]) by mx1.freebsd.org (Postfix) with ESMTP id DB7828FC12 for ; Wed, 2 Dec 2009 10:32:41 +0000 (UTC) Received: by onelab2.iet.unipi.it (Postfix, from userid 275) id 21F14730DA; Wed, 2 Dec 2009 11:25:41 +0100 (CET) Date: Wed, 2 Dec 2009 11:25:41 +0100 From: Luigi Rizzo To: current@freebsd.org Message-ID: <20091202102541.GA71448@onelab2.iet.unipi.it> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.2.3i Cc: ipfw@freebsd.org Subject: heads up - upcoming dummynet/ipfw refactoring X-BeenThere: freebsd-ipfw@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: IPFW Technical Discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Dec 2009 10:32:44 -0000 Hi, in the next weeks i am going to slowly push into -head (and when possible also in RELENG_8) several restructuring and cleanup changes in dummynet and ipfw. This is the result of work we have been doing in Pisa in the last few months with Riccardo Panicucci and Marta Carbone. I am trying to organize the commits so that the ABI CHANGE WILL BE HARMLESS -- basically, we have implemented some compatibility code in the kernel so that NEW KERNELS WILL UNDERSTAND THE OLD USERLAND (from 7.x and above). Apart from this, the high level goals are: - refactor and split the code which after 10+ years has grown in uncontrolled ways (huge files, some style issues, some performance issues); - pull out generic code for data structures (e.g. binary heaps, hash tables) that could be useful or perhaps already exist in other parts of the kernel. - clean up the ABI so we have a truly extensible one. This mostly affects dummynet because ipfw is already in a reasonable shape, but there are places where ipfw has issues as well (e.g. due to counter sizes etc.); - add support for more dummynet features, most noticeably an API for pluggable link schedulers so one can choose those that fit best his requirements. I don't expect much if any disruption of the system, because most of the work is on the software interfaces and not in the inner working of the algorithms. cheers luigi