freebsd-src/sys/netinet
Lawrence Stewart ac230a79e1 Import a clean-room implementation of the Hamilton-Delay (HD) congestion control
algorithm based on the paper "A strategy for fair coexistence of loss and
delay-based congestion control algorithms" by Budzisz, Stanojevic, Shorten and
Baker. It is implemented as a kernel module compatible with the recently
committed modular congestion control framework.

HD uses a probabilistic approach to reacting to delay-based congestion. The
probability of reducing cwnd is zero when the queuing delay is very small,
increasing to a maximum at a set threshold, then back down to zero again when
the queuing delay is high. Normal operation keeps the queuing delay below the
set threshold. However, since loss-based congestion control algorithms push the
queuing delay high when probing for bandwidth, having the probability of
reducing cwnd drop back to zero for high delays allows HD to compete 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 06:42:46 +00:00
..
cc Import a clean-room implementation of the Hamilton-Delay (HD) congestion control 2011-02-01 06:42:46 +00:00
ipfw Use a blocking malloc() to initialize the dummynet taskq. 2011-01-13 17:02:39 +00:00
khelp Import the ERTT (Enhanced Round Trip Time) Khelp module. ERTT uses the 2011-01-24 23:08:38 +00:00
libalias Standardise all Swinburne related copyright/licence statements throughout the 2010-11-12 00:44:18 +00:00
accf_data.c
accf_dns.c
accf_http.c
cc.h Make the CC framework more VIMAGE friendly by adding the machinery to allow 2010-11-16 09:34:31 +00:00
icmp6.h
icmp_var.h
if_atm.c Bring back (most of) NATM to avoid further bitrot after r186119. 2010-12-15 22:58:45 +00:00
if_atm.h
if_ether.c When matching an incoming ARP against a bridge, ensure both interfaces belong 2011-01-25 17:15:23 +00:00
if_ether.h
igmp.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
igmp.h
igmp_var.h
in.c Use time_uptime instead of non-monotonic time_second to drive ARP 2010-11-30 15:57:00 +00:00
in.h Make the RPC specific __rpc_inet_ntop() and __rpc_inet_pton() general 2010-09-24 15:01:45 +00:00
in_cksum.c
in_debug.c Add initial inet DDB support for show in_ifaddr and show sin commands which 2010-10-24 22:02:36 +00:00
in_gif.c
in_gif.h
in_mcast.c
in_pcb.c Prison check addresses set with multicast interface options. 2011-01-26 17:31:03 +00:00
in_pcb.h
in_proto.c Allow carp(4) to be loaded as a kernel module. Follow precedent set by 2010-08-11 00:51:50 +00:00
in_rmx.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
in_systm.h
in_var.h
ip.h
ip6.h Fix more continuous/contiguous typos (cf. r215955) 2010-11-27 21:51:39 +00:00
ip_carp.c Redo r166423. It is important not only skip freeing multicast 2010-11-24 05:24:36 +00:00
ip_carp.h Unbreak LINT by moving all carp hooks to net/if.c / netinet/ip_carp.h, with 2010-08-11 20:18:19 +00:00
ip_divert.c Specify a CTLTYPE_FOO so that a future sysctl(8) change does not need 2011-01-18 21:14:13 +00:00
ip_divert.h
ip_dummynet.h
ip_ecn.c
ip_ecn.h
ip_encap.c
ip_encap.h
ip_fastfwd.c Use correct field to track statistics counting error as bad header length. 2010-12-05 01:09:48 +00:00
ip_fw.h The first customer of the SO_USER_COOKIE option: 2010-11-12 13:05:17 +00:00
ip_gre.c
ip_gre.h
ip_icmp.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
ip_icmp.h
ip_id.c
ip_input.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
ip_ipsec.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
ip_ipsec.h
ip_mroute.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
ip_mroute.h
ip_options.c Use ifa_ifwithaddr_check() rather than ifa_ifwithaddr() as we are not 2010-10-14 12:32:49 +00:00
ip_options.h
ip_output.c Try to catch a possible divide-by-zero as early as possible if "mtu" is 0 2010-12-31 21:47:11 +00:00
ip_var.h MFp4 CH=183052 183053 183258: 2010-09-02 17:43:44 +00:00
pim.h
pim_var.h
raw_ip.c Specify a CTLTYPE_FOO so that a future sysctl(8) change does not need 2011-01-18 21:14:13 +00:00
sctp.h Fixes to ECN in SCTP. 2011-01-29 19:55:29 +00:00
sctp_asconf.c Define and use SCTP_SSN_GE, SCTP_SSN_GT, SCTP_TSN_GE, SCTP_TSN_GT macros 2010-12-30 21:32:35 +00:00
sctp_asconf.h Delay the assignment of a path for DATA chunk until they hit 2010-09-15 23:10:45 +00:00
sctp_auth.c Fix a locking issue which shows up when the code is used 2010-09-19 11:42:16 +00:00
sctp_auth.h
sctp_bsd_addr.c Code cleanup: Use LIST_FOREACH, LIST_FOREACH_SAFE, TAILQ_FOREACH, 2010-12-30 16:56:20 +00:00
sctp_bsd_addr.h
sctp_cc_functions.c More ECN fixes: 2011-01-31 11:50:11 +00:00
sctp_constants.h More ECN fixes: 2011-01-31 11:50:11 +00:00
sctp_crc32.c Simplify sctp_delayed_cksum() a bit. 2010-11-14 14:37:20 +00:00
sctp_crc32.h Fix the the SCTP_WITH_NO_CSUM option when used in combination with 2010-08-29 18:50:30 +00:00
sctp_dtrace_declare.h Adds new dtrace for cwnd functions and lay's 2010-11-25 13:39:55 +00:00
sctp_dtrace_define.h Adds new dtrace for cwnd functions and lay's 2010-11-25 13:39:55 +00:00
sctp_header.h More ECN fixes: 2011-01-31 11:50:11 +00:00
sctp_indata.c More ECN fixes: 2011-01-31 11:50:11 +00:00
sctp_indata.h More ECN fixes: 2011-01-31 11:50:11 +00:00
sctp_input.c More ECN fixes: 2011-01-31 11:50:11 +00:00
sctp_input.h
sctp_lock_bsd.h
sctp_os.h
sctp_os_bsd.h Fix typos. 2010-11-09 10:59:09 +00:00
sctp_output.c More ECN fixes: 2011-01-31 11:50:11 +00:00
sctp_output.h Fixes to ECN in SCTP. 2011-01-29 19:55:29 +00:00
sctp_pcb.c More ECN fixes: 2011-01-31 11:50:11 +00:00
sctp_pcb.h Change infrastructure for SCTP_MAX_BURST to allow compliance 2011-01-26 19:49:03 +00:00
sctp_peeloff.c Fix the switching on/off of CMT using sysctl and socket option. 2010-08-28 17:59:51 +00:00
sctp_peeloff.h
sctp_ss_functions.c Add stream scheduling support. 2011-01-23 19:36:28 +00:00
sctp_structs.h More ECN fixes: 2011-01-31 11:50:11 +00:00
sctp_sysctl.c More ECN fixes: 2011-01-31 11:50:11 +00:00
sctp_sysctl.h More ECN fixes: 2011-01-31 11:50:11 +00:00
sctp_timer.c More ECN fixes: 2011-01-31 11:50:11 +00:00
sctp_timer.h Remove two functions which are not used. 2010-11-07 17:50:56 +00:00
sctp_uio.h Fix a bug in the way ECN-Echo chunk 2011-01-28 20:49:15 +00:00
sctp_usrreq.c Make SCTP_MAX_BURST compliant with the latest version of 2011-01-26 19:55:54 +00:00
sctp_var.h
sctputil.c More ECN fixes: 2011-01-31 11:50:11 +00:00
sctputil.h Do not have the MTU table twice in the code. Therefore move the 2010-11-07 18:50:35 +00:00
siftr.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
tcp.h Add new, per connection, statistics for TCP, including: 2010-11-17 18:55:12 +00:00
tcp_debug.c
tcp_debug.h
tcp_fsm.h
tcp_hostcache.c sysctl(9) cleanup checkpoint: amd64 GENERIC builds cleanly. 2011-01-12 19:53:50 +00:00
tcp_hostcache.h
tcp_input.c Reset the last_sack_ack SACK hint for TCP input processing to ensure that the 2011-01-10 06:12:01 +00:00
tcp_lro.c Trim extra spaces before tabs. 2011-01-07 21:40:34 +00:00
tcp_lro.h Trim extra spaces before tabs. 2011-01-07 21:40:34 +00:00
tcp_offload.c
tcp_offload.h
tcp_output.c - Add some helper hook points to the TCP stack. The hooks allow Khelp modules to 2010-12-28 12:13:30 +00:00
tcp_reass.c Specify a CTLTYPE_FOO so that a future sysctl(8) change does not need 2011-01-18 21:14:13 +00:00
tcp_sack.c Add a new sack hint to track the most recent and highest sacked sequence number. 2010-12-28 03:27:20 +00:00
tcp_seq.h
tcp_subr.c Specify a CTLTYPE_FOO so that a future sysctl(8) change does not need 2011-01-18 21:14:13 +00:00
tcp_syncache.c sysctl(9) cleanup checkpoint: amd64 GENERIC builds cleanly. 2011-01-12 19:53:50 +00:00
tcp_syncache.h Trim extra spaces before tabs. 2011-01-07 21:40:34 +00:00
tcp_timer.c Trim extra spaces before tabs. 2011-01-07 21:40:34 +00:00
tcp_timer.h Remove the TCP inflight bandwidth limiter as announced in r211315 2010-09-16 21:06:45 +00:00
tcp_timewait.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
tcp_usrreq.c Remove duplicate printing of TF_NOPUSH in db_print_tflags(). 2011-01-29 22:11:13 +00:00
tcp_var.h Fixe some whitespace nits that were introduced in r216758. 2011-01-11 01:32:08 +00:00
tcpip.h
toedev.h
udp.h Trim extra spaces before tabs. 2011-01-07 21:40:34 +00:00
udp_usrreq.c Fix style 9 nit that snuck in when I 2011-01-19 20:57:08 +00:00
udp_var.h Trim extra spaces before tabs. 2011-01-07 21:40:34 +00:00