xref: /freebsd/share/man/man4/cc_newreno.4 (revision 370efe5ac85e97e32cfe78d25183c6f605b4d3e5)
129f269dcSLawrence Stewart.\"
229f269dcSLawrence Stewart.\" Copyright (c) 2009 Lawrence Stewart <lstewart@FreeBSD.org>
329f269dcSLawrence Stewart.\" Copyright (c) 2011 The FreeBSD Foundation
429f269dcSLawrence Stewart.\" All rights reserved.
529f269dcSLawrence Stewart.\"
629f269dcSLawrence Stewart.\" Portions of this documentation were written at the Centre for Advanced
7891b8ed4SLawrence Stewart.\" Internet Architectures, Swinburne University of Technology, Melbourne,
8891b8ed4SLawrence Stewart.\" Australia by Lawrence Stewart under sponsorship from the FreeBSD Foundation.
929f269dcSLawrence Stewart.\"
1029f269dcSLawrence Stewart.\" Redistribution and use in source and binary forms, with or without
1129f269dcSLawrence Stewart.\" modification, are permitted provided that the following conditions
1229f269dcSLawrence Stewart.\" are met:
1329f269dcSLawrence Stewart.\" 1. Redistributions of source code must retain the above copyright
1429f269dcSLawrence Stewart.\"    notice, this list of conditions and the following disclaimer.
1529f269dcSLawrence Stewart.\" 2. Redistributions in binary form must reproduce the above copyright
1629f269dcSLawrence Stewart.\"    notice, this list of conditions and the following disclaimer in the
1729f269dcSLawrence Stewart.\"    documentation and/or other materials provided with the distribution.
1829f269dcSLawrence Stewart.\"
1929f269dcSLawrence Stewart.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
2029f269dcSLawrence Stewart.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2129f269dcSLawrence Stewart.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2229f269dcSLawrence Stewart.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
2329f269dcSLawrence Stewart.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2429f269dcSLawrence Stewart.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2529f269dcSLawrence Stewart.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2629f269dcSLawrence Stewart.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2729f269dcSLawrence Stewart.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2829f269dcSLawrence Stewart.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2929f269dcSLawrence Stewart.\" SUCH DAMAGE.
3029f269dcSLawrence Stewart.\"
3129f269dcSLawrence Stewart.\" $FreeBSD$
3229f269dcSLawrence Stewart.\"
33*370efe5aSLawrence Stewart.Dd March 19, 2018
3429f269dcSLawrence Stewart.Dt CC_NEWRENO 4
3529f269dcSLawrence Stewart.Os
3629f269dcSLawrence Stewart.Sh NAME
3729f269dcSLawrence Stewart.Nm cc_newreno
3829f269dcSLawrence Stewart.Nd NewReno Congestion Control Algorithm
39*370efe5aSLawrence Stewart.Sh SYNOPSIS
40*370efe5aSLawrence Stewart.In netinet/cc/cc_newreno.h
4129f269dcSLawrence Stewart.Sh DESCRIPTION
4229f269dcSLawrence StewartThe NewReno congestion control algorithm is the default for TCP.
4329f269dcSLawrence StewartDetails about the algorithm can be found in RFC5681.
44*370efe5aSLawrence Stewart.Sh Socket Options
45*370efe5aSLawrence StewartThe
46*370efe5aSLawrence Stewart.Nm
47*370efe5aSLawrence Stewartmodule supports a number of socket options under TCP_CCALGOOPT (refer to
48*370efe5aSLawrence Stewart.Xr tcp 4
49*370efe5aSLawrence Stewartand
50*370efe5aSLawrence Stewart.Xr moc_cc 9 for details)
51*370efe5aSLawrence Stewartwhich can
52*370efe5aSLawrence Stewartbe set with
53*370efe5aSLawrence Stewart.Xr setsockopt 2
54*370efe5aSLawrence Stewartand tested with
55*370efe5aSLawrence Stewart.Xr getsockopt 2 .
56*370efe5aSLawrence StewartThe
57*370efe5aSLawrence Stewart.Nm
58*370efe5aSLawrence Stewartsocket options use this structure defined in
59*370efe5aSLawrence Stewart<sys/netinet/cc/cc_newreno.h>:
60*370efe5aSLawrence Stewart.Bd -literal
61*370efe5aSLawrence Stewartstruct cc_newreno_opts {
62*370efe5aSLawrence Stewart	int name;
63*370efe5aSLawrence Stewart	uint32_t val;
64*370efe5aSLawrence Stewart}
65*370efe5aSLawrence Stewart.Ed
66*370efe5aSLawrence Stewart.Bl -tag -width ".Va CC_NEWRENO_BETA_ECN"
67*370efe5aSLawrence Stewart.It Va CC_NEWRENO_BETA
68*370efe5aSLawrence StewartMultiplicative window decrease factor, specified as a percentage, applied to
69*370efe5aSLawrence Stewartthe congestion window in response to a congestion signal per: cwnd = (cwnd *
70*370efe5aSLawrence StewartCC_NEWRENO_BETA) / 100.
71*370efe5aSLawrence StewartDefault is 50.
72*370efe5aSLawrence Stewart.It Va CC_NEWRENO_BETA_ECN
73*370efe5aSLawrence StewartMultiplicative window decrease factor, specified as a percentage, applied to
74*370efe5aSLawrence Stewartthe congestion window in response to an ECN congestion signal when
75*370efe5aSLawrence Stewart.Va net.inet.tcp.cc.abe=1
76*370efe5aSLawrence Stewartper: cwnd = (cwnd * CC_NEWRENO_BETA_ECN) / 100.
77*370efe5aSLawrence StewartDefault is 80.
7829f269dcSLawrence Stewart.Sh MIB Variables
79*370efe5aSLawrence StewartThe algorithm exposes these variables in the
80*370efe5aSLawrence Stewart.Va net.inet.tcp.cc.newreno
81*370efe5aSLawrence Stewartbranch of the
82*370efe5aSLawrence Stewart.Xr sysctl 3
83*370efe5aSLawrence StewartMIB:
84*370efe5aSLawrence Stewart.Bl -tag -width ".Va beta_ecn"
85*370efe5aSLawrence Stewart.It Va beta
86*370efe5aSLawrence StewartMultiplicative window decrease factor, specified as a percentage, applied to
87*370efe5aSLawrence Stewartthe congestion window in response to a congestion signal per: cwnd = (cwnd *
88*370efe5aSLawrence Stewartbeta) / 100.
89*370efe5aSLawrence StewartDefault is 50.
90*370efe5aSLawrence Stewart.It Va beta_ecn
91*370efe5aSLawrence StewartMultiplicative window decrease factor, specified as a percentage, applied to
92*370efe5aSLawrence Stewartthe congestion window in response to an ECN congestion signal when
93*370efe5aSLawrence Stewart.Va net.inet.tcp.cc.abe=1
94*370efe5aSLawrence Stewartper: cwnd = (cwnd * beta_ecn) / 100.
95*370efe5aSLawrence StewartDefault is 80.
9629f269dcSLawrence Stewart.Sh SEE ALSO
9729f269dcSLawrence Stewart.Xr cc_chd 4 ,
9829f269dcSLawrence Stewart.Xr cc_cubic 4 ,
9929f269dcSLawrence Stewart.Xr cc_hd 4 ,
10029f269dcSLawrence Stewart.Xr cc_htcp 4 ,
10129f269dcSLawrence Stewart.Xr cc_vegas 4 ,
102f772f9feSLawrence Stewart.Xr mod_cc 4 ,
10329f269dcSLawrence Stewart.Xr tcp 4 ,
104f772f9feSLawrence Stewart.Xr mod_cc 9
105*370efe5aSLawrence Stewart.Rs
106*370efe5aSLawrence Stewart.%A "Mark Allman"
107*370efe5aSLawrence Stewart.%A "Vern Paxson"
108*370efe5aSLawrence Stewart.%A "Ethan Blanton"
109*370efe5aSLawrence Stewart.%T "TCP Congestion Control"
110*370efe5aSLawrence Stewart.%O "RFC 5681"
111*370efe5aSLawrence Stewart.Re
112*370efe5aSLawrence Stewart.Rs
113*370efe5aSLawrence Stewart.%A "Naeem Khademi"
114*370efe5aSLawrence Stewart.%A "Michael Welzl"
115*370efe5aSLawrence Stewart.%A "Grenville Armitage"
116*370efe5aSLawrence Stewart.%A "Gorry Fairhurst"
117*370efe5aSLawrence Stewart.%T "TCP Alternative Backoff with ECN (ABE)"
118*370efe5aSLawrence Stewart.%R "internet draft"
119*370efe5aSLawrence Stewart.%D "February 2018"
120*370efe5aSLawrence Stewart.%N "draft-ietf-tcpm-alternativebackoff-ecn"
121*370efe5aSLawrence Stewart.%O "work in progress"
122*370efe5aSLawrence Stewart.Re
12329f269dcSLawrence Stewart.Sh ACKNOWLEDGEMENTS
12429f269dcSLawrence StewartDevelopment and testing of this software were made possible in part by grants
12529f269dcSLawrence Stewartfrom the FreeBSD Foundation and Cisco University Research Program Fund at
12629f269dcSLawrence StewartCommunity Foundation Silicon Valley.
12729f269dcSLawrence Stewart.Sh HISTORY
12829f269dcSLawrence StewartThe
12929f269dcSLawrence Stewart.Nm
13029f269dcSLawrence Stewartcongestion control algorithm first appeared in its modular form in
13129f269dcSLawrence Stewart.Fx 9.0 .
13229f269dcSLawrence Stewart.Pp
13329f269dcSLawrence StewartThe module was first released in 2007 by James Healy and Lawrence Stewart whilst
134891b8ed4SLawrence Stewartworking on the NewTCP research project at Swinburne University of Technology's
135891b8ed4SLawrence StewartCentre for Advanced Internet Architectures, Melbourne, Australia, which was made
136891b8ed4SLawrence Stewartpossible in part by a grant from the Cisco University Research Program Fund at
137891b8ed4SLawrence StewartCommunity Foundation Silicon Valley.
13829f269dcSLawrence StewartMore details are available at:
13929f269dcSLawrence Stewart.Pp
14029f269dcSLawrence Stewarthttp://caia.swin.edu.au/urp/newtcp/
14129f269dcSLawrence Stewart.Sh AUTHORS
14229f269dcSLawrence Stewart.An -nosplit
14329f269dcSLawrence StewartThe
14429f269dcSLawrence Stewart.Nm
14529f269dcSLawrence Stewartcongestion control module was written by
1466c899950SBaptiste Daroussin.An James Healy Aq Mt jimmy@deefa.com ,
1476c899950SBaptiste Daroussin.An Lawrence Stewart Aq Mt lstewart@FreeBSD.org
14829f269dcSLawrence Stewartand
1496c899950SBaptiste Daroussin.An David Hayes Aq Mt david.hayes@ieee.org .
15029f269dcSLawrence Stewart.Pp
151*370efe5aSLawrence StewartSupport for TCP ABE was added by
152*370efe5aSLawrence Stewart.An Tom Jones Aq Mt tj@enoti.me .
153*370efe5aSLawrence Stewart.Pp
15429f269dcSLawrence StewartThis manual page was written by
1556c899950SBaptiste Daroussin.An Lawrence Stewart Aq Mt lstewart@FreeBSD.org .
156