Created attachment 184306 [details] Patch This patch adds support Alternative Backoff ECN for TCP with the New Reno congestion control module. TCP ABE is described in https://tools.ietf.org/html/draft-khademi-tcpm-alternativebackoff-ecn-01 ABE updates the TCP sender-side reaction to congestion notification received via Explicit Congestion Notifiction (ECN) marks. From the Abstract in the draft: The updated method reduces FlightSize in Congestion Avoidance by a smaller amount than the TCP reaction to loss. The intention is to achieve good throughput when the queue at the bottleneck is smaller than the bandwidth-delay-product of the connection. This is more likely when an Active Queue Management (AQM) mechanism has used ECN to CE-mark a packet, than when a packet was lost. This patch adds 3 new sysctl values, one to control the use of ABE and two new cc controls under net.inet.tcp.cc.newreno to control the loss and ecn response factors. These controls are intended to aid future experimentation and research in this area. net.inet.tcp.abe: Toggles whether a transport uses the new abe conditions. Currently only implemented for New Reno. net.inet.tcp.cc.newreno.beta_ecn: The factor used to change FlightSize in response to an ecn mark, defaults to 0.8 as described in the draft. net.inet.tcp.cc.newreno.beta_loss: The factor used to change FlightSize in response to a loss event, defaults to 0.5 as described in the draft. This patch is a port of the same functionality implemented by Naeem Khademi and is available here: http://heim.ifi.uio.no/~naeemk/research/ABE/diff-0d38090e881d-newrenoVB-7jan15.txt
Created attachment 184319 [details] Patch updated with Copyright for Grenville Armitage
Please open a code review for this work at reviews.freebsd.org with "transport" and "lstewart" listed as reviewers.
This was handled in review D11616 and committed in base r331214. Therefore closing it.