freebsd with flexible iflib nic queues
Go to file
Lawrence Stewart 0927e1a18b Import an implementation of the CAIA-Hamilton-Delay (CHD) congestion control
algorithm described in the paper "Improved coexistence and loss tolerance for
delay based TCP congestion control" by Hayes and Armitage. It is implemented as
a kernel module compatible with the recently committed modular congestion
control framework.

CHD enhances the approach taken by the Hamilton-Delay (HD) algorithm to provide
tolerance to non-congestion related packet loss and improvements to coexistence
with loss-based congestion control algorithms. A key idea in improving
coexistence with loss-based congestion control algorithms is the use of a shadow
window, which attempts to track how NewReno's congestion window (cwnd) would
evolve. At the next packet loss congestion event, CHD uses the shadow window to
correct cwnd in a way that reduces the amount of unfairness CHD experiences when
competing with loss-based algorithms.

In collaboration with:	David Hayes <dahayes at swin edu au> and
				Grenville Armitage <garmitage at swin edu au>
Sponsored by:	FreeBSD Foundation
Reviewed by:	bz and others along the way
MFC after:	3 months
2011-02-01 07:05:14 +00:00
bin sh: Send messages about signals to stderr. 2011-01-30 22:57:52 +00:00
cddl Re-commit the zfs sysctl(9) type-safety changes. 2011-01-13 18:20:19 +00:00
contrib MFV of tzdata2011a, r218120 2011-01-31 09:22:49 +00:00
crypto Merge OpenSSL 0.9.8q into head. 2010-12-03 22:59:54 +00:00
etc Let rpcbind clean up after itself 2011-01-31 21:03:08 +00:00
games factor(6): Check return values of BN_* functions. 2010-12-20 19:07:56 +00:00
gnu Rewrite the ARCH check another way for backward compatibility. 2011-01-29 10:32:00 +00:00
include Add missing __dead2 to __assert(). 2011-01-09 21:39:46 +00:00
kerberos5 Fix a typo. 2010-01-09 18:53:03 +00:00
lib Fix n32 compile. 2011-01-27 14:16:12 +00:00
libexec Fix grammar in comment. 2011-01-30 16:21:25 +00:00
release Fix making a release. The old libdialog was renamed to libodialog. 2011-01-14 10:56:44 +00:00
rescue Break out the rules which generate crunchgen'ed binaries into a separate 2010-11-13 03:11:27 +00:00
sbin Fix build on ia64. 2011-01-31 23:46:36 +00:00
secure Regenerate manual pages for OpenSSL 0.9.8q. 2010-12-03 23:07:45 +00:00
share syscons: install all available kbdmaps 2011-01-30 12:57:10 +00:00
sys Import an implementation of the CAIA-Hamilton-Delay (CHD) congestion control 2011-02-01 07:05:14 +00:00
tools sh: Send messages about signals to stderr. 2011-01-30 22:57:52 +00:00
usr.bin Fix typo in example getopt(1) script: $i vs $1 [1] 2011-01-26 18:43:15 +00:00
usr.sbin Use correct alphabetical order for xz(1) in SEE ALSO section 2011-01-31 11:30:26 +00:00
COPYRIGHT Happy New Year 2011. 2010-12-31 18:07:16 +00:00
LOCKS Update LOCKS syntax. 2008-06-05 19:47:58 +00:00
MAINTAINERS Add a comment to MAINTAINERS indicating that sbin/routed is in fact 2010-04-10 12:29:09 +00:00
Makefile Move the architecture guessing from Makefile.inc1 to Makefile. We 2011-01-31 15:17:47 +00:00
Makefile.inc1 Move the architecture guessing from Makefile.inc1 to Makefile. We 2011-01-31 15:17:47 +00:00
Makefile.mips Retire TARGET_ABI. 2011-01-07 20:26:33 +00:00
ObsoleteFiles.inc Update dialog to version 20100428. This changes the license under which 2011-01-12 14:55:02 +00:00
README Import OpenSSL 0.9.8q. 2010-12-02 22:36:51 +00:00
UPDATING Fix wrapping of 20110103 entry. 2011-01-12 19:28:52 +00:00

This is the top level of the FreeBSD source directory.  This file
was last revised on:
$FreeBSD$

For copyright information, please see the file COPYRIGHT in this
directory (additional copyright information also exists for some
sources in this tree - please see the specific source directories for
more information).

The Makefile in this directory supports a number of targets for
building components (or all) of the FreeBSD source tree, the most
commonly used one being ``world'', which rebuilds and installs
everything in the FreeBSD system from the source tree except the
kernel, the kernel-modules and the contents of /etc.  The ``world''
target should only be used in cases where the source tree has not
changed from the currently running version.  See:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
for more information, including setting make(1) variables.

The ``buildkernel'' and ``installkernel'' targets build and install
the kernel and the modules (see below).  Please see the top of
the Makefile in this directory for more information on the
standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process, documentation
for which can be found at:
   http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html
And in the config(8) man page.
Note: If you want to build and install the kernel with the
``buildkernel'' and ``installkernel'' targets, you might need to build
world before.  More information is available in the handbook.

The sample kernel configuration files reside in the sys/<arch>/conf
sub-directory (assuming that you've installed the kernel sources), the
file named GENERIC being the one used to build your initial installation
kernel.  The file NOTES contains entries and documentation for all possible
devices, not just those commonly used.  It is the successor of the ancient
LINT file, but in contrast to LINT, it is not buildable as a kernel but a
pure reference and documentation file.


Source Roadmap:
---------------
bin		System/user commands.

cddl		Various commands and libraries under the Common Development
		and Distribution License.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

games		Amusements.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberos5	Kerberos5 (Heimdal) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

rescue		Build system for statically linked /rescue utilities.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

sys		Kernel sources.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.


For information on synchronizing your source tree with one or more of
the FreeBSD Project's development branches, please see:

  http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html