Message ID | 20241001200517.2756803-1-ncardwell.sw@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | tcp: 3 fixes for retrans_stamp and undo logic | expand |
Hello: This series was applied to netdev/net.git (main) by Jakub Kicinski <kuba@kernel.org>: On Tue, 1 Oct 2024 20:05:14 +0000 you wrote: > From: Neal Cardwell <ncardwell@google.com> > > Geumhwan Yu <geumhwan.yu@samsung.com> recently reported and diagnosed a > regression in TCP loss recovery undo logic in the case where a TCP > connection enters fast recovery, is unable to retransmit anything due to > TSQ, and then receives an ACK allowing forward progress. The sender should > be able to undo the spurious loss recovery in this case, but was not doing > so. The first patch fixes this regression. > > [...] Here is the summary with links: - [net,1/3] tcp: fix to allow timestamp undo if no retransmits were sent https://git.kernel.org/netdev/net/c/e37ab7373696 - [net,2/3] tcp: fix tcp_enter_recovery() to zero retrans_stamp when it's safe https://git.kernel.org/netdev/net/c/b41b4cbd9655 - [net,3/3] tcp: fix TFO SYN_RECV to not zero retrans_stamp with retransmits out https://git.kernel.org/netdev/net/c/27c80efcc204 You are awesome, thank you!
From: Neal Cardwell <ncardwell@google.com> Geumhwan Yu <geumhwan.yu@samsung.com> recently reported and diagnosed a regression in TCP loss recovery undo logic in the case where a TCP connection enters fast recovery, is unable to retransmit anything due to TSQ, and then receives an ACK allowing forward progress. The sender should be able to undo the spurious loss recovery in this case, but was not doing so. The first patch fixes this regression. Running our suite of packetdrill tests with the first fix, the tests highlighted two other small bugs in the way retrans_stamp is updated in some rare corner cases. The second two patches fix those other two small bugs. Thanks to Geumhwan Yu for the bug report! Neal Cardwell (3): tcp: fix to allow timestamp undo if no retransmits were sent tcp: fix tcp_enter_recovery() to zero retrans_stamp when it's safe tcp: fix TFO SYN_RECV to not zero retrans_stamp with retransmits out net/ipv4/tcp_input.c | 42 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-)