On Tue, Mar 02, 2010 at 05:40:48PM +0000, Luigi Rizzo wrote: > Author: luigi > Date: Tue Mar 2 17:40:48 2010 > New Revision: 204591 > URL: http://svn.freebsd.org/changeset/base/204591 > > Log: > Bring in the most recent version of ipfw and dummynet, developed > and tested over the past two months in the ipfw3-head branch. This > also happens to be the same code available in the Linux and Windows > ports of ipfw and dummynet. > > The major enhancement is a completely restructured version of > dummynet, with support for different packet scheduling algorithms > (loadable at runtime), faster queue/pipe lookup, and a much cleaner > internal architecture and kernel/userland ABI which simplifies > future extensions. > > In addition to the existing schedulers (FIFO and WF2Q+), we include > a Deficit Round Robin (DRR or RR for brevity) scheduler, and a new, > very fast version of WF2Q+ called QFQ. > > Some test code is also present (in sys/netinet/ipfw/test) that > lets you build and test schedulers in userland. > > Also, we have added a compatibility layer that understands requests > from the RELENG_7 and RELENG_8 versions of the /sbin/ipfw binaries, > and replies correctly (at least, it does its best; sometimes you > just cannot tell who sent the request and how to answer). > The compatibility layer should make it possible to MFC this code in a > relatively short time. > > Some minor glitches (e.g. handling of ipfw set enable/disable, > and a workaround for a bug in RELENG_7's /sbin/ipfw) will be > fixed with separate commits. > > CREDITS: > This work has been partly supported by the ONELAB2 project, and > mostly developed by Riccardo Panicucci and myself. > The code for the qfq scheduler is mostly from Fabio Checconi, > and Marta Carbone and Francesco Magno have helped with testing, > debugging and some bug fixes. > > Added: > head/sys/netinet/ipfw/dn_heap.c (contents, props changed) > head/sys/netinet/ipfw/dn_heap.h (contents, props changed) > head/sys/netinet/ipfw/dn_sched.h (contents, props changed) > head/sys/netinet/ipfw/dn_sched_fifo.c (contents, props changed) > head/sys/netinet/ipfw/dn_sched_qfq.c (contents, props changed) > head/sys/netinet/ipfw/dn_sched_rr.c (contents, props changed) > head/sys/netinet/ipfw/dn_sched_wf2q.c (contents, props changed) > head/sys/netinet/ipfw/dummynet.txt (contents, props changed) > head/sys/netinet/ipfw/ip_dn_glue.c (contents, props changed) > head/sys/netinet/ipfw/ip_dn_io.c (contents, props changed) > head/sys/netinet/ipfw/ip_dn_private.h (contents, props changed) > head/sys/netinet/ipfw/test/ > head/sys/netinet/ipfw/test/Makefile (contents, props changed) > head/sys/netinet/ipfw/test/dn_test.h (contents, props changed) > head/sys/netinet/ipfw/test/main.c (contents, props changed) > head/sys/netinet/ipfw/test/mylist.h (contents, props changed) > head/sys/netinet/ipfw/test/test_dn_heap.c (contents, props changed) > head/sys/netinet/ipfw/test/test_dn_sched.c (contents, props changed) > Modified: > head/sbin/ipfw/Makefile > head/sbin/ipfw/altq.c > head/sbin/ipfw/dummynet.c > head/sbin/ipfw/ipfw.8 > head/sbin/ipfw/ipfw2.c > head/sbin/ipfw/ipfw2.h > head/sbin/ipfw/main.c > head/sys/conf/files > head/sys/net/if_bridge.c > head/sys/net/if_ethersubr.c > head/sys/netinet/ip_dummynet.h > head/sys/netinet/ip_fw.h > head/sys/netinet/ipfw/ip_dummynet.c > head/sys/netinet/ipfw/ip_fw2.c > head/sys/netinet/ipfw/ip_fw_dynamic.c > head/sys/netinet/ipfw/ip_fw_log.c > head/sys/netinet/ipfw/ip_fw_pfil.c > head/sys/netinet/ipfw/ip_fw_private.h > head/sys/netinet/ipfw/ip_fw_sockopt.c > head/sys/netinet/ipfw/ip_fw_table.c > > Modified: head/sbin/ipfw/Makefile > ============================================================================== > --- head/sbin/ipfw/Makefile Tue Mar 2 17:34:11 2010 (r204590) > +++ head/sbin/ipfw/Makefile Tue Mar 2 17:40:48 2010 (r204591) > @@ -3,7 +3,6 @@ > PROG= ipfw > SRCS= ipfw2.c dummynet.c ipv6.c main.c nat.c altq.c > WARNS?= 2 > -DPADD= ${LIBUTIL} > LDADD= -lutil > MAN= ipfw.8 Removal of DPADD is most likely regression ?
pgpltiLC3RAJ0.pgp
Description: PGP signature