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