[newlib-cygwin] This commit adds BBR (Bottleneck Bandwidth and RTT) congestion control.

Sebastian Huber sh@sourceware.org
Mon Jul 11 11:50:33 GMT 2022


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=878b65b3b61050b7b380e677246424c9e9feb703

commit 878b65b3b61050b7b380e677246424c9e9feb703
Author: Randall Stewart <rrs@FreeBSD.org>
Date:   Tue Sep 24 18:18:11 2019 +0000

    This commit adds BBR (Bottleneck Bandwidth and RTT) congestion control.
    
    This is a completely separate TCP stack (tcp_bbr.ko) that will be built only if
    you add the make options WITH_EXTRA_TCP_STACKS=1 and also include the option
    TCPHPTS.  You can also include the RATELIMIT option if you have a NIC interface
    that supports hardware pacing, BBR understands how to use such a feature.
    
    Note that this commit also adds in a general purpose time-filter which
    allows you to have a min-filter or max-filter. A filter allows you to
    have a low (or high) value for some period of time and degrade slowly
    to another value has time passes. You can find out the details of
    BBR by looking at the original paper at:
    
    https://queue.acm.org/detail.cfm?id=3022184
    
    or consult many other web resources you can find on the web
    referenced by "BBR congestion control". It should be noted that
    BBRv1 (which this is) does tend to unfairness in cases of small
    buffered paths, and it will usually get less bandwidth in the case
    of large BDP paths(when competing with new-reno or cubic flows). BBR
    is still an active research area and we do plan on  implementing V2
    of BBR to see if it is an improvement over V1.
    
    Sponsored by:   Netflix Inc.
    Differential Revision:  https://reviews.freebsd.org/D21582

Diff:
---
 newlib/libc/sys/rtems/include/netinet/tcp.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/newlib/libc/sys/rtems/include/netinet/tcp.h b/newlib/libc/sys/rtems/include/netinet/tcp.h
index 508d4b5fb..37ba3bb55 100644
--- a/newlib/libc/sys/rtems/include/netinet/tcp.h
+++ b/newlib/libc/sys/rtems/include/netinet/tcp.h
@@ -239,6 +239,7 @@ struct tcphdr {
 #define TCP_BBR_ACK_COMP_ALG   1096 	/* Not used */
 #define TCP_BBR_TMR_PACE_OH    1096	/* Recycled in 4.2 */
 #define TCP_BBR_EXTRA_GAIN     1097
+#define TCP_RACK_DO_DETECTION  1097	/* Recycle of extra gain for rack, attack detection */
 #define TCP_BBR_RACK_RTT_USE   1098	/* what RTT should we use 0, 1, or 2? */
 #define TCP_BBR_RETRAN_WTSO    1099
 #define TCP_DATA_AFTER_CLOSE   1100


More information about the Newlib-cvs mailing list