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*5547f9fbSKevin Lo.Dd December 26, 2014 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 52f772f9feSLawrence Stewartexplicitly overridden using the TCP_CONGESTION socket option (see 53f772f9feSLawrence Stewart.Xr tcp 4 54f772f9feSLawrence Stewartfor details). 55f772f9feSLawrence StewartThe default can be changed using a 56f772f9feSLawrence Stewart.Xr sysctl 3 57f772f9feSLawrence StewartMIB variable detailed in the 58f772f9feSLawrence Stewart.Sx MIB Variables 59f772f9feSLawrence Stewartsection below. 60f772f9feSLawrence Stewart.Sh MIB Variables 61f772f9feSLawrence StewartThe framework exposes the following variables in the 62f772f9feSLawrence Stewart.Va net.inet.tcp.cc 63f772f9feSLawrence Stewartbranch of the 64f772f9feSLawrence Stewart.Xr sysctl 3 65f772f9feSLawrence StewartMIB: 66f772f9feSLawrence Stewart.Bl -tag -width ".Va available" 67f772f9feSLawrence Stewart.It Va available 68f772f9feSLawrence StewartRead-only list of currently available congestion control algorithms by name. 69f772f9feSLawrence Stewart.It Va algorithm 70f772f9feSLawrence StewartReturns the current default congestion control algorithm when read, and changes 71f772f9feSLawrence Stewartthe default when set. 72f772f9feSLawrence StewartWhen attempting to change the default algorithm, this variable should be set to 73f772f9feSLawrence Stewartone of the names listed by the 74f772f9feSLawrence Stewart.Va net.inet.tcp.cc.available 75f772f9feSLawrence StewartMIB variable. 76f772f9feSLawrence Stewart.El 77f772f9feSLawrence Stewart.Sh SEE ALSO 78*5547f9fbSKevin Lo.Xr cc_cdg 4 , 79f772f9feSLawrence Stewart.Xr cc_chd 4 , 80f772f9feSLawrence Stewart.Xr cc_cubic 4 , 81f772f9feSLawrence Stewart.Xr cc_hd 4 , 82f772f9feSLawrence Stewart.Xr cc_htcp 4 , 83f772f9feSLawrence Stewart.Xr cc_newreno 4 , 84f772f9feSLawrence Stewart.Xr cc_vegas 4 , 85f772f9feSLawrence Stewart.Xr tcp 4 , 86f772f9feSLawrence Stewart.Xr mod_cc 9 87f772f9feSLawrence Stewart.Sh ACKNOWLEDGEMENTS 88f772f9feSLawrence StewartDevelopment and testing of this software were made possible in part by grants 89f772f9feSLawrence Stewartfrom the FreeBSD Foundation and Cisco University Research Program Fund at 90f772f9feSLawrence StewartCommunity Foundation Silicon Valley. 91f772f9feSLawrence Stewart.Sh HISTORY 92f772f9feSLawrence StewartThe 93f772f9feSLawrence Stewart.Nm 94f772f9feSLawrence Stewartmodular congestion control framework first appeared in 95f772f9feSLawrence Stewart.Fx 9.0 . 96f772f9feSLawrence Stewart.Pp 97f772f9feSLawrence StewartThe framework was first released in 2007 by James Healy and Lawrence Stewart 98f772f9feSLawrence Stewartwhilst working on the NewTCP research project at Swinburne University of 99f772f9feSLawrence StewartTechnology's Centre for Advanced Internet Architectures, Melbourne, Australia, 100f772f9feSLawrence Stewartwhich was made possible in part by a grant from the Cisco University Research 101f772f9feSLawrence StewartProgram Fund at Community Foundation Silicon Valley. 102f772f9feSLawrence StewartMore details are available at: 103f772f9feSLawrence Stewart.Pp 104f772f9feSLawrence Stewarthttp://caia.swin.edu.au/urp/newtcp/ 105f772f9feSLawrence Stewart.Sh AUTHORS 106f772f9feSLawrence Stewart.An -nosplit 107f772f9feSLawrence StewartThe 108f772f9feSLawrence Stewart.Nm 109f772f9feSLawrence Stewartfacility was written by 1106c899950SBaptiste Daroussin.An Lawrence Stewart Aq Mt lstewart@FreeBSD.org , 1116c899950SBaptiste Daroussin.An James Healy Aq Mt jimmy@deefa.com 112f772f9feSLawrence Stewartand 1136c899950SBaptiste Daroussin.An David Hayes Aq Mt david.hayes@ieee.org . 114f772f9feSLawrence Stewart.Pp 115f772f9feSLawrence StewartThis manual page was written by 1166c899950SBaptiste Daroussin.An David Hayes Aq Mt david.hayes@ieee.org 117f772f9feSLawrence Stewartand 1186c899950SBaptiste Daroussin.An Lawrence Stewart Aq Mt lstewart@FreeBSD.org . 119