git: 4a328b804996 - stable/14 - tcp: fix reverting of spurious timeouts (RTO)

From: Richard Scheffenegger <rscheff_at_FreeBSD.org>
Date: Mon, 24 Mar 2025 05:57:04 UTC
The branch stable/14 has been updated by rscheff:

URL: https://cgit.FreeBSD.org/src/commit/?id=4a328b8049962976d13b8fb9abe2d9a488f2a894

commit 4a328b8049962976d13b8fb9abe2d9a488f2a894
Author:     Richard Scheffenegger <rscheff@FreeBSD.org>
AuthorDate: 2025-03-21 04:23:30 +0000
Commit:     Richard Scheffenegger <rscheff@FreeBSD.org>
CommitDate: 2025-03-24 05:35:43 +0000

    tcp: fix reverting of spurious timeouts (RTO)
    
    One variable that became critical to correctly calculate
    the cwnd during limited transmit was not properly reverted
    on detection of spurious timeouts.
    
    PR:                     282605
    Reviewed By:            cc, tuexen, #transport
    MFC after:              3 days
    Sponsored by:           NetApp, Inc.
    Differential Revision:  https://reviews.freebsd.org/D48652
    
    (cherry picked from commit 6f6c07813b38ab04d8b1b2bb87c0291dbae25a25)
---
 sys/netinet/tcp_input.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
index fe67710fadd6..c868ba648bd7 100644
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -472,6 +472,7 @@ cc_cong_signal(struct tcpcb *tp, struct tcphdr *th, uint32_t type)
 			ENTER_CONGRECOVERY(tp->t_flags);
 		tp->snd_nxt = tp->snd_max;
 		tp->t_flags &= ~TF_PREVVALID;
+		tp->t_rxtshift = 0;
 		tp->t_badrxtwin = 0;
 		break;
 	}