1*f772f9feSLawrence Stewart.\" 2*f772f9feSLawrence Stewart.\" Copyright (c) 2010-2011 The FreeBSD Foundation 3*f772f9feSLawrence Stewart.\" All rights reserved. 4*f772f9feSLawrence Stewart.\" 5*f772f9feSLawrence Stewart.\" This documentation was written at the Centre for Advanced Internet 6*f772f9feSLawrence Stewart.\" Architectures, Swinburne University of Technology, Melbourne, Australia by 7*f772f9feSLawrence Stewart.\" David Hayes and Lawrence Stewart under sponsorship from the FreeBSD 8*f772f9feSLawrence Stewart.\" Foundation. 9*f772f9feSLawrence Stewart.\" 10*f772f9feSLawrence Stewart.\" Redistribution and use in source and binary forms, with or without 11*f772f9feSLawrence Stewart.\" modification, are permitted provided that the following conditions 12*f772f9feSLawrence Stewart.\" are met: 13*f772f9feSLawrence Stewart.\" 1. Redistributions of source code must retain the above copyright 14*f772f9feSLawrence Stewart.\" notice, this list of conditions and the following disclaimer. 15*f772f9feSLawrence Stewart.\" 2. Redistributions in binary form must reproduce the above copyright 16*f772f9feSLawrence Stewart.\" notice, this list of conditions and the following disclaimer in the 17*f772f9feSLawrence Stewart.\" documentation and/or other materials provided with the distribution. 18*f772f9feSLawrence Stewart.\" 19*f772f9feSLawrence Stewart.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 20*f772f9feSLawrence Stewart.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21*f772f9feSLawrence Stewart.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22*f772f9feSLawrence Stewart.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR 23*f772f9feSLawrence Stewart.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24*f772f9feSLawrence Stewart.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 25*f772f9feSLawrence Stewart.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26*f772f9feSLawrence Stewart.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27*f772f9feSLawrence Stewart.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28*f772f9feSLawrence Stewart.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29*f772f9feSLawrence Stewart.\" SUCH DAMAGE. 30*f772f9feSLawrence Stewart.\" 31*f772f9feSLawrence Stewart.\" $FreeBSD$ 32*f772f9feSLawrence Stewart.\" 33*f772f9feSLawrence Stewart.Dd September 15, 2011 34*f772f9feSLawrence Stewart.Dt MOD_CC 4 35*f772f9feSLawrence Stewart.Os 36*f772f9feSLawrence Stewart.Sh NAME 37*f772f9feSLawrence Stewart.Nm mod_cc 38*f772f9feSLawrence Stewart.Nd Modular congestion control 39*f772f9feSLawrence Stewart.Sh DESCRIPTION 40*f772f9feSLawrence StewartThe modular congestion control framework allows the TCP implementation to 41*f772f9feSLawrence Stewartdynamically change the congestion control algorithm used by new and existing 42*f772f9feSLawrence Stewartconnections. 43*f772f9feSLawrence StewartAlgorithms are identified by a unique 44*f772f9feSLawrence Stewart.Xr ascii 7 45*f772f9feSLawrence Stewartname. 46*f772f9feSLawrence StewartAlgorithm modules can be compiled into the kernel or loaded as kernel modules 47*f772f9feSLawrence Stewartusing the 48*f772f9feSLawrence Stewart.Xr kld 4 49*f772f9feSLawrence Stewartfacility. 50*f772f9feSLawrence Stewart.Pp 51*f772f9feSLawrence StewartThe default algorithm is NewReno, and all connections use the default unless 52*f772f9feSLawrence Stewartexplicitly overridden using the TCP_CONGESTION socket option (see 53*f772f9feSLawrence Stewart.Xr tcp 4 54*f772f9feSLawrence Stewartfor details). 55*f772f9feSLawrence StewartThe default can be changed using a 56*f772f9feSLawrence Stewart.Xr sysctl 3 57*f772f9feSLawrence StewartMIB variable detailed in the 58*f772f9feSLawrence Stewart.Sx MIB Variables 59*f772f9feSLawrence Stewartsection below. 60*f772f9feSLawrence Stewart.Sh MIB Variables 61*f772f9feSLawrence StewartThe framework exposes the following variables in the 62*f772f9feSLawrence Stewart.Va net.inet.tcp.cc 63*f772f9feSLawrence Stewartbranch of the 64*f772f9feSLawrence Stewart.Xr sysctl 3 65*f772f9feSLawrence StewartMIB: 66*f772f9feSLawrence Stewart.Bl -tag -width ".Va available" 67*f772f9feSLawrence Stewart.It Va available 68*f772f9feSLawrence StewartRead-only list of currently available congestion control algorithms by name. 69*f772f9feSLawrence Stewart.It Va algorithm 70*f772f9feSLawrence StewartReturns the current default congestion control algorithm when read, and changes 71*f772f9feSLawrence Stewartthe default when set. 72*f772f9feSLawrence StewartWhen attempting to change the default algorithm, this variable should be set to 73*f772f9feSLawrence Stewartone of the names listed by the 74*f772f9feSLawrence Stewart.Va net.inet.tcp.cc.available 75*f772f9feSLawrence StewartMIB variable. 76*f772f9feSLawrence Stewart.El 77*f772f9feSLawrence Stewart.Sh SEE ALSO 78*f772f9feSLawrence Stewart.Xr cc_chd 4 , 79*f772f9feSLawrence Stewart.Xr cc_cubic 4 , 80*f772f9feSLawrence Stewart.Xr cc_hd 4 , 81*f772f9feSLawrence Stewart.Xr cc_htcp 4 , 82*f772f9feSLawrence Stewart.Xr cc_newreno 4 , 83*f772f9feSLawrence Stewart.Xr cc_vegas 4 , 84*f772f9feSLawrence Stewart.Xr tcp 4 , 85*f772f9feSLawrence Stewart.Xr mod_cc 9 86*f772f9feSLawrence Stewart.Sh ACKNOWLEDGEMENTS 87*f772f9feSLawrence StewartDevelopment and testing of this software were made possible in part by grants 88*f772f9feSLawrence Stewartfrom the FreeBSD Foundation and Cisco University Research Program Fund at 89*f772f9feSLawrence StewartCommunity Foundation Silicon Valley. 90*f772f9feSLawrence Stewart.Sh HISTORY 91*f772f9feSLawrence StewartThe 92*f772f9feSLawrence Stewart.Nm 93*f772f9feSLawrence Stewartmodular congestion control framework first appeared in 94*f772f9feSLawrence Stewart.Fx 9.0 . 95*f772f9feSLawrence Stewart.Pp 96*f772f9feSLawrence StewartThe framework was first released in 2007 by James Healy and Lawrence Stewart 97*f772f9feSLawrence Stewartwhilst working on the NewTCP research project at Swinburne University of 98*f772f9feSLawrence StewartTechnology's Centre for Advanced Internet Architectures, Melbourne, Australia, 99*f772f9feSLawrence Stewartwhich was made possible in part by a grant from the Cisco University Research 100*f772f9feSLawrence StewartProgram Fund at Community Foundation Silicon Valley. 101*f772f9feSLawrence StewartMore details are available at: 102*f772f9feSLawrence Stewart.Pp 103*f772f9feSLawrence Stewarthttp://caia.swin.edu.au/urp/newtcp/ 104*f772f9feSLawrence Stewart.Sh AUTHORS 105*f772f9feSLawrence Stewart.An -nosplit 106*f772f9feSLawrence StewartThe 107*f772f9feSLawrence Stewart.Nm 108*f772f9feSLawrence Stewartfacility was written by 109*f772f9feSLawrence Stewart.An Lawrence Stewart Aq lstewart@FreeBSD.org , 110*f772f9feSLawrence Stewart.An James Healy Aq jimmy@deefa.com 111*f772f9feSLawrence Stewartand 112*f772f9feSLawrence Stewart.An David Hayes Aq david.hayes@ieee.org . 113*f772f9feSLawrence Stewart.Pp 114*f772f9feSLawrence StewartThis manual page was written by 115*f772f9feSLawrence Stewart.An David Hayes Aq david.hayes@ieee.org 116*f772f9feSLawrence Stewartand 117*f772f9feSLawrence Stewart.An Lawrence Stewart Aq lstewart@FreeBSD.org . 118