Provided by: freebsd-manpages_12.2-1_all bug

NAME

     cc_newreno — NewReno Congestion Control Algorithm

SYNOPSIS

     #include <netinet/cc/cc_newreno.h>

DESCRIPTION

     The NewReno congestion control algorithm is the default for TCP.  Details about the
     algorithm can be found in RFC5681.

Socket Options

     The cc_newreno module supports a number of socket options under TCP_CCALGOOPT (refer to
     tcp(4) and moc_cc(9) for details) which can be set with setsockopt(2) and tested with
     getsockopt(2).  The cc_newreno socket options use this structure defined in
     <sys/netinet/cc/cc_newreno.h>:

     struct cc_newreno_opts {
             int name;
             uint32_t val;
     }

     CC_NEWRENO_BETA      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.

     CC_NEWRENO_BETA_ECN  Multiplicative window decrease factor, specified as a percentage,
                          applied to the congestion window in response to an ECN congestion
                          signal when net.inet.tcp.cc.abe=1 per: cwnd = (cwnd *
                          CC_NEWRENO_BETA_ECN) / 100.  Default is 80.

MIB Variables

     The algorithm exposes these variables in the net.inet.tcp.cc.newreno branch of the sysctl(3)
     MIB:

     beta      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.

     beta_ecn  Multiplicative window decrease factor, specified as a percentage, applied to the
               congestion window in response to an ECN congestion signal when
               net.inet.tcp.cc.abe=1 per: cwnd = (cwnd * beta_ecn) / 100.  Default is 80.

SEE ALSO

     cc_chd(4), cc_cubic(4), cc_hd(4), cc_htcp(4), cc_vegas(4), mod_cc(4), tcp(4), mod_cc(9)

     Mark Allman, Vern Paxson, and Ethan Blanton, TCP Congestion Control, RFC 5681.

     Naeem Khademi, Michael Welzl, Grenville Armitage, and Gorry Fairhurst, TCP Alternative
     Backoff with ECN (ABE), RFC 8511.

ACKNOWLEDGEMENTS

     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.

HISTORY

     The cc_newreno congestion control algorithm first appeared in its modular form in
     FreeBSD 9.0.

     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:

     http://caia.swin.edu.au/urp/newtcp/

AUTHORS

     The cc_newreno congestion control module was written by James Healy <jimmy@deefa.com>,
     Lawrence Stewart <lstewart@FreeBSD.org> and David Hayes <david.hayes@ieee.org>.

     Support for TCP ABE was added by Tom Jones <tj@enoti.me>.

     This manual page was written by Lawrence Stewart <lstewart@FreeBSD.org>.