xref: /freebsd/share/man/man4/mod_cc.4 (revision f772f9fe4344885f32ae56713353c065fc3e2f5d)
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