MOD_CC(4)
π MOD_CC(4) β modular congestion control, bestie edition π
okay so this is from the Kernel Interfaces Manual, and it's literally about mod_cc β the modular congestion control framework. sit down, grab a boba, we're doing this π§β¨
πΈ NAME πΈ
mod_cc β modular congestion control π
β¨ DESCRIPTION β¨
okay so picture this: the modular congestion control framework lets the TCP implementation dynamically swap out the congestion control algorithm that new and existing connections are using. not just new ones. existing ones too. the way that it justβ¦ changes mid-connection? iconic behavior fr π
every algorithm gets its own unique ascii(7) name, so like, that's its whole identity. and algorithm modules can either be compiled straight into the kernel or loaded as kernel modules using the kld(4) facility. your choice, no pressure π¦
the default algorithm is NewReno, and every connection rides with the default unless you explicitly override it with the TCP_CONGESTION socket option (peep tcp(4) for the deets). want to change the default itself? that's a sysctl(3) MIB variable situation, and we get into it down in the "MIB Variables" section β¬οΈ
also! algorithm-specific parameters can be set or queried using the TCP_CCALGOOPT socket option (again, tcp(4), go look). but heads up β callers must pass a pointer to algorithm-specific data, and they must specify its size. no skipping that part π
π MIB Variables π
the framework exposes these variables in the net.inet.tcp.cc branch of the sysctl(3) MIB:
availableβ a read-only list of all the congestion control algorithms that are currently available, by name. it's giving menu. it's giving "what's in stock today" β¨algorithmβ read it and it hands you the current default congestion control algorithm. set it and it changes that default. but bestie, when you're trying to change the default, this variable should be set to one of the names listed by thenet.inet.tcp.cc.availableMIB variable. like, don't just make one up, she's picky πabeβ enables support for RFC 8511, which alters the window decrease factor applied to the congestion window in response to an ECN congestion signal. ngl you gotta go read the individual congestion control man pages to figure out whether they actually implement ABE support, plus all the configuration details. we're not doing that homework for you πabe_frlossreduceβ if this is non-zero, apply standard beta instead of ABE-beta during ECN-signalled congestion recovery episodes if loss also needs to be repaired. yes, both things at once. the drama π₯
π SEE ALSO π
cc_cdg(4), cc_chd(4), cc_cubic(4), cc_dctcp(4), cc_hd(4), cc_htcp(4), cc_newreno(4), cc_vegas(4), tcp(4), mod_cc(9)
π«Ά ACKNOWLEDGEMENTS π«Ά
development and testing of this software were made possible in part by grants from the FreeBSD Foundation and the Cisco University Research Program Fund at Community Foundation Silicon Valley. funding queens, we love to see it π
π HISTORY π
the mod_cc modular congestion control framework first appeared in FreeBSD 9.0. periodt.
the framework was first released in 2007 by James Healy and Lawrence Stewart whilst working on the NewTCP research project at Swinburne University of Technology's Centre for Advanced Internet Architectures, Melbourne, Australia β which was made possible in part by a grant from the Cisco University Research Program Fund at Community Foundation Silicon Valley. more details are available at:
http://caia.swin.edu.au/urp/newtcp/
β AUTHORS β
the mod_cc facility was written by:
- Lawrence Stewart
<lstewart@FreeBSD.org> - James Healy
<jimmy@deefa.com> - David Hayes
<david.hayes@ieee.org>
this manual page was written by David Hayes <david.hayes@ieee.org> and Lawrence Stewart <lstewart@FreeBSD.org>.
and that's the whole page bestie, no cap πβ¨
sooo this one ships with the Debian packaging, dated August 6, 2019, for MOD_CC(4) β mwah, go forth and congestion-control responsibly ππ¦πΈ
π¦ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- Copyright (c) 2010-2011 The FreeBSD Foundation
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms