diff options
Diffstat (limited to 'static/freebsd/man4/cc_newreno.4 3.html')
| -rw-r--r-- | static/freebsd/man4/cc_newreno.4 3.html | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/static/freebsd/man4/cc_newreno.4 3.html b/static/freebsd/man4/cc_newreno.4 3.html new file mode 100644 index 00000000..3328b3c4 --- /dev/null +++ b/static/freebsd/man4/cc_newreno.4 3.html @@ -0,0 +1,140 @@ +<table class="head"> + <tr> + <td class="head-ltitle">CC_NEWRENO(4)</td> + <td class="head-vol">Device Drivers Manual</td> + <td class="head-rtitle">CC_NEWRENO(4)</td> + </tr> +</table> +<div class="manual-text"> +<section class="Sh"> +<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1> +<p class="Pp"><code class="Nm">cc_newreno</code> — + <span class="Nd">NewReno Congestion Control Algorithm</span></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> +<p class="Pp"><code class="In">#include + <<a class="In">netinet/cc/cc_newreno.h</a>></code></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> +<p class="Pp">Details about the algorithm can be found in RFC5681.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="Socket_Options"><a class="permalink" href="#Socket_Options">Socket + Options</a></h1> +<p class="Pp">The <code class="Nm">cc_newreno</code> module supports a number of + socket options under TCP_CCALGOOPT (refer to <a class="Xr">tcp(4)</a> and + <a class="Xr">mod_cc(9)</a> for details) which can be set with + <a class="Xr">setsockopt(2)</a> and tested with + <a class="Xr">getsockopt(2)</a>. The <code class="Nm">cc_newreno</code> + socket options use this structure defined in + <sys/netinet/cc/cc_newreno.h>:</p> +<div class="Bd Pp Li"> +<pre>struct cc_newreno_opts { + int name; + uint32_t val; +}</pre> +</div> +<dl class="Bl-tag"> + <dt id="CC_NEWRENO_BETA"><var class="Va">CC_NEWRENO_BETA</var></dt> + <dd>Multiplicative window decrease factor, specified as a percentage, applied + to the congestion window in response to a congestion signal per: cwnd = + (cwnd * CC_NEWRENO_BETA) / 100. Default is 50.</dd> + <dt id="CC_NEWRENO_BETA_ECN"><var class="Va">CC_NEWRENO_BETA_ECN</var></dt> + <dd>Multiplicative window decrease factor, specified as a percentage, applied + to the congestion window in response to an ECN congestion signal when + <var class="Va">net.inet.tcp.cc.abe=1</var> per: cwnd = (cwnd * + CC_NEWRENO_BETA_ECN) / 100. Default is 80. + <p class="Pp">Note that currently the only way to enable hystart++ is to + enable it via socket option. When enabling it a value of 1 will enable + precise internet-draft (version 4) behavior (subject to any MIB variable + settings), other setting (2 and 3) are experimental.</p> + </dd> +</dl> +<p class="Pp">Note that hystart++ requires the TCP stack be able to call to the + congestion controller with both the <var class="Va">newround</var> function + as well as the <var class="Va">rttsample</var> function. Currently the only + TCP stacks that provide this feedback to the congestion controller is + rack.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="MIB_Variables"><a class="permalink" href="#MIB_Variables">MIB + Variables</a></h1> +<p class="Pp">The algorithm exposes these variables in the + <var class="Va">net.inet.tcp.cc.newreno</var> branch of the + <a class="Xr">sysctl(3)</a> MIB:</p> +<dl class="Bl-tag"> + <dt id="beta"><var class="Va">beta</var></dt> + <dd>Multiplicative window decrease factor, specified as a percentage, applied + to the congestion window in response to a congestion signal per: cwnd = + (cwnd * beta) / 100. Default is 50.</dd> + <dt id="beta_ecn"><var class="Va">beta_ecn</var></dt> + <dd>Multiplicative window decrease factor, specified as a percentage, applied + to the congestion window in response to an ECN congestion signal when + <var class="Va">net.inet.tcp.cc.abe=1</var> per: cwnd = (cwnd * beta_ecn) + / 100. Default is 80.</dd> +</dl> +</section> +<section class="Sh"> +<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE + ALSO</a></h1> +<p class="Pp"><a class="Xr">cc_cdg(4)</a>, <a class="Xr">cc_chd(4)</a>, + <a class="Xr">cc_cubic(4)</a>, <a class="Xr">cc_dctcp(4)</a>, + <a class="Xr">cc_hd(4)</a>, <a class="Xr">cc_htcp(4)</a>, + <a class="Xr">cc_vegas(4)</a>, <a class="Xr">mod_cc(4)</a>, + <a class="Xr">tcp(4)</a>, <a class="Xr">mod_cc(9)</a></p> +<p class="Pp"><cite class="Rs"><span class="RsA">Mark Allman</span>, + <span class="RsA">Vern Paxson</span>, and <span class="RsA">Ethan + Blanton</span>, <span class="RsT">TCP Congestion Control</span>, + <span class="RsO">RFC 5681</span>.</cite></p> +<p class="Pp"><cite class="Rs"><span class="RsA">Naeem Khademi</span>, + <span class="RsA">Michael Welzl</span>, <span class="RsA">Grenville + Armitage</span>, and <span class="RsA">Gorry Fairhurst</span>, + <span class="RsT">TCP Alternative Backoff with ECN (ABE)</span>, + <span class="RsO">RFC 8511</span>.</cite></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="ACKNOWLEDGEMENTS"><a class="permalink" href="#ACKNOWLEDGEMENTS">ACKNOWLEDGEMENTS</a></h1> +<p class="Pp">Development and testing of this software were made possible in + part by grants from the FreeBSD Foundation and Cisco University Research + Program Fund at Community Foundation Silicon Valley.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1> +<p class="Pp">The <code class="Nm">cc_newreno</code> congestion control + algorithm first appeared in its modular form in <span class="Ux">FreeBSD + 9.0</span>.</p> +<p class="Pp">This was the default congestion control algorithm in FreeBSD + before version <span class="Ux">FreeBSD 14.0</span>, after which + <a class="Xr">cc_cubic(4)</a> replaced it.</p> +<p class="Pp">The module 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:</p> +<p class="Pp">http://caia.swin.edu.au/urp/newtcp/</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1> +<p class="Pp">The <code class="Nm">cc_newreno</code> congestion control module + was written by <span class="An">James Healy</span> + <<a class="Mt" href="mailto:jimmy@deefa.com">jimmy@deefa.com</a>>, + <span class="An">Lawrence Stewart</span> + <<a class="Mt" href="mailto:lstewart@FreeBSD.org">lstewart@FreeBSD.org</a>> + and <span class="An">David Hayes</span> + <<a class="Mt" href="mailto:david.hayes@ieee.org">david.hayes@ieee.org</a>>.</p> +<p class="Pp">Support for TCP ABE was added by <span class="An">Tom Jones</span> + <<a class="Mt" href="mailto:tj@enoti.me">tj@enoti.me</a>>.</p> +<p class="Pp">This manual page was written by <span class="An">Lawrence + Stewart</span> + <<a class="Mt" href="mailto:lstewart@FreeBSD.org">lstewart@FreeBSD.org</a>>.</p> +</section> +</div> +<table class="foot"> + <tr> + <td class="foot-date">February 4, 2023</td> + <td class="foot-os">FreeBSD 15.0</td> + </tr> +</table> |
