freebsd-dev/sys/net
Luigi Rizzo cc4d3c30ea 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.
2010-03-02 17:40:48 +00:00
..
bpf_buffer.c Always embed pointer to BPF JIT function in BPF descriptor 2009-08-12 17:28:53 +00:00
bpf_buffer.h
bpf_filter.c
bpf_jitter.c General style cleanup, no functional change. 2009-11-20 21:12:40 +00:00
bpf_jitter.h - Allocate scratch memory on stack instead of pre-allocating it with 2009-11-20 18:49:20 +00:00
bpf_zerocopy.c Always embed pointer to BPF JIT function in BPF descriptor 2009-08-12 17:28:53 +00:00
bpf_zerocopy.h
bpf.c Return partially filled buffer for non-blocking read(2) 2010-02-20 00:19:21 +00:00
bpf.h
bpfdesc.h Always embed pointer to BPF JIT function in BPF descriptor 2009-08-12 17:28:53 +00:00
bridgestp.c Rework global locks for interface list and index management, correcting 2009-08-23 20:40:19 +00:00
bridgestp.h
ethernet.h
fddi.h Switch cmd argument to u_long. This matches what if_ethersubr.c does and 2009-06-21 10:29:31 +00:00
firewire.h Switch cmd argument to u_long. This matches what if_ethersubr.c does and 2009-06-21 10:29:31 +00:00
flowtable.c Remove extraneous semicolons, no functional changes. 2010-01-07 21:01:37 +00:00
flowtable.h The flow-table associates TCP/UDP flows and IP destinations with 2009-10-01 20:32:29 +00:00
ieee8023ad_lacp.c
ieee8023ad_lacp.h
if_arc.h Switch cmd argument to u_long. This matches what if_ethersubr.c does and 2009-06-21 10:29:31 +00:00
if_arcsubr.c Switch cmd argument to u_long. This matches what if_ethersubr.c does and 2009-06-21 10:29:31 +00:00
if_arp.h Add ARP statistics to the kernel and netstat. 2009-09-03 21:10:57 +00:00
if_atm.h
if_atmsubr.c Move "options MAC" from opt_mac.h to opt_global.h, as it's now in GENERIC 2009-06-05 14:55:22 +00:00
if_bridge.c Bring in the most recent version of ipfw and dummynet, developed 2010-03-02 17:40:48 +00:00
if_bridgevar.h
if_clone.c Merge the remainder of kern_vimage.c and vimage.h into vnet.c and 2009-08-01 19:26:27 +00:00
if_clone.h Introduce and use a sysinit-based initialization scheme for virtual 2009-07-23 20:46:49 +00:00
if_dead.c Remove if_timer/if_watchdog now that they are no longer used. The space 2009-11-30 21:25:57 +00:00
if_disc.c
if_dl.h
if_edsc.c
if_ef.c Take a step towards removing if_watchdog/if_timer. Don't explicitly set 2009-11-06 14:55:01 +00:00
if_enc.c Unbreak the VIMAGE build with IPSEC, broken with r197952 by 2009-10-14 11:55:55 +00:00
if_enc.h
if_epair.c Correct a typo. 2010-01-10 12:03:53 +00:00
if_ethersubr.c Bring in the most recent version of ipfw and dummynet, developed 2010-03-02 17:40:48 +00:00
if_faith.c Merge the remainder of kern_vimage.c and vimage.h into vnet.c and 2009-08-01 19:26:27 +00:00
if_fddisubr.c Break at_ifawithnet() into two variants: 2009-06-24 10:32:44 +00:00
if_fwsubr.c Switch cmd argument to u_long. This matches what if_ethersubr.c does and 2009-06-21 10:29:31 +00:00
if_gif.c Check pointer for NULL before dereferencing it, not after. 2009-10-22 06:17:04 +00:00
if_gif.h Remove unused VNET_SET() and related macros; only VNET_GET() is 2009-07-16 21:13:04 +00:00
if_gre.c The NetBSD Foundation has granted permission to remove clause 3 and 4 from 2010-03-01 17:05:46 +00:00
if_gre.h The NetBSD Foundation has granted permission to remove clause 3 and 4 from 2010-03-01 17:05:46 +00:00
if_iso88025subr.c Switch cmd argument to u_long. This matches what if_ethersubr.c does and 2009-06-21 10:29:31 +00:00
if_lagg.c Propagate the vlan eventis to the underlying interfaces/members so they can do initialization of hw related features. 2010-02-06 13:49:35 +00:00
if_lagg.h Propagate the vlan eventis to the underlying interfaces/members so they can do initialization of hw related features. 2010-02-06 13:49:35 +00:00
if_llatbl.c The proxy arp entries could not be added into the system over the 2009-12-30 21:35:34 +00:00
if_llatbl.h The proxy arp entries could not be added into the system over the 2009-12-30 21:35:34 +00:00
if_llc.h
if_loop.c ifconfig(8) expects interface fooX to be supported by the module if_foo, 2010-02-21 15:25:47 +00:00
if_media.c
if_media.h Implementation of the upcoming Wireless Mesh standard, 802.11s, on the 2009-07-11 15:02:45 +00:00
if_mib.c Merge the remainder of kern_vimage.c and vimage.h into vnet.c and 2009-08-01 19:26:27 +00:00
if_mib.h
if_sppp.h
if_spppfr.c
if_spppsubr.c Merge the remainder of kern_vimage.c and vimage.h into vnet.c and 2009-08-01 19:26:27 +00:00
if_stf.c Merge the remainder of kern_vimage.c and vimage.h into vnet.c and 2009-08-01 19:26:27 +00:00
if_stf.h
if_tap.c In both if_tun and if_tap: 2010-02-28 16:25:49 +00:00
if_tap.h
if_tapvar.h
if_tun.c In both if_tun and if_tap: 2010-02-28 16:25:49 +00:00
if_tun.h
if_types.h
if_var.h Fix drbr and altq interaction: 2010-02-13 16:04:58 +00:00
if_vlan_var.h
if_vlan.c Add __FBSDID. 2010-02-21 00:07:45 +00:00
if.c Use the DB_SHOW_ALL_COMMAND() macro to register the formerly 'show ifnets' 2010-02-24 15:54:24 +00:00
if.h Add TSO support on VLANs. Intentionally separated IFCAP_VLAN_HWTSO 2010-02-20 22:47:20 +00:00
iso88025.h Switch cmd argument to u_long. This matches what if_ethersubr.c does and 2009-06-21 10:29:31 +00:00
netisr_internal.h Changes to support crashdump analysis of netisr: 2010-03-01 00:42:36 +00:00
netisr.c Changes to support crashdump analysis of netisr: 2010-03-01 00:42:36 +00:00
netisr.h Whitespace tweak. 2010-03-01 00:43:05 +00:00
pfil.c Clean up comments, white space, and style in pfil.c (especially new VNET 2009-10-19 15:19:14 +00:00
pfil.h Remove unused pfil_flags field in packet_filter_hook. 2009-10-18 22:54:09 +00:00
pfkeyv2.h Added support for NAT-Traversal (RFC 3948) in IPsec stack. 2009-06-12 15:44:35 +00:00
ppp_defs.h
radix_mpath.c
radix_mpath.h
radix.c remove unnecessary casts leftover from a bogus fix to a previous bug 2010-03-02 16:24:16 +00:00
radix.h Move the scan for max_keylen into route.c::route_init(), 2009-12-14 20:12:51 +00:00
raw_cb.c Merge the remainder of kern_vimage.c and vimage.h into vnet.c and 2009-08-01 19:26:27 +00:00
raw_cb.h Remove unused VNET_SET() and related macros; only VNET_GET() is 2009-07-16 21:13:04 +00:00
raw_usrreq.c Merge the remainder of kern_vimage.c and vimage.h into vnet.c and 2009-08-01 19:26:27 +00:00
route.c The proxy arp entries could not be added into the system over the 2009-12-30 21:35:34 +00:00
route.h The proxy arp entries could not be added into the system over the 2009-12-30 21:35:34 +00:00
rtsock.c The proxy arp entries could not be added into the system over the 2009-12-30 21:35:34 +00:00
slcompress.c
slcompress.h
vnet.c Add DDB support for printing vnet_sysinit and vnet_sysuninit 2010-02-09 22:39:34 +00:00
vnet.h Instead of spamming the console on each curvnet recursion event, print 2010-02-04 07:55:42 +00:00
zlib.c
zlib.h Merge projects/enhanced_coredumps (r204346) into HEAD: 2010-03-02 06:58:58 +00:00
zutil.h Merge projects/enhanced_coredumps (r204346) into HEAD: 2010-03-02 06:58:58 +00:00