opnsense-src/sys/netinet/tcp_stacks
Randall Stewart 62ce18fc9a tcp: Rack rwnd collapse.
Currently when the peer collapses its rwnd, we mark packets to be retransmitted
and use the must_retran flags like we do when a PMTU collapses to retransmit the
collapsed packets. However this causes a problem with some middle boxes that
play with the rwnd to control flow. As soon as the rwnd increases we start resending
which may be not even a rtt.. and in fact the peer may have gotten the packets. Which
means we gratuitously retransmit packets we should not.

The fix here is to make sure that a rack time has passed before retransmitting the packets.
This makes sure that the rwnd collapse was real and the packets do need retransmission.

Reviewed by: tuexen
Sponsored by: Netflix Inc
Differential Revision: https://reviews.freebsd.org/D35166
2022-08-23 09:17:05 -04:00
..
bbr.c Fix unused variable warning in tcp_stacks's bbr.c 2022-08-14 21:27:34 +02:00
rack.c tcp: Rack rwnd collapse. 2022-08-23 09:17:05 -04:00
rack_bbr_common.c tcp/rack: plug a set-but-not-used var 2022-04-19 09:33:35 +00:00
rack_bbr_common.h tcp: Rack ack war with a mis-behaving firewall or nat with resets. 2021-11-17 09:45:51 -05:00
sack_filter.c Remove all trailing white space from the BBR/Rack fold. Bits 2020-02-12 12:40:06 +00:00
sack_filter.h This commit adds BBR (Bottleneck Bandwidth and RTT) congestion control. This 2019-09-24 18:18:11 +00:00
tcp_bbr.h tcp: remove delayed drop KPI 2021-12-26 08:48:24 -08:00
tcp_rack.h tcp: Rack rwnd collapse. 2022-08-23 09:17:05 -04:00