git: 976aa65e3ea4 - releng/14.3 - tcp: improve KASSERT in limited retransmit

From: Michael Tuexen <tuexen_at_FreeBSD.org>
Date: Tue, 06 May 2025 21:58:20 UTC
The branch releng/14.3 has been updated by tuexen:

URL: https://cgit.FreeBSD.org/src/commit/?id=976aa65e3ea48f8864149dcbfc6f912a7ca2b67a

commit 976aa65e3ea48f8864149dcbfc6f912a7ca2b67a
Author:     Michael Tuexen <tuexen@FreeBSD.org>
AuthorDate: 2025-05-01 16:11:03 +0000
Commit:     Michael Tuexen <tuexen@FreeBSD.org>
CommitDate: 2025-05-06 19:18:24 +0000

    tcp: improve KASSERT in limited retransmit
    
    When doing a limited retransmit, allow up to 2 * MSS - 1 if the
    Nagle algorithm has been disabled.
    
    PR:                     282605
    Approved by:            re (cperciva)
    Reviewed by:            cc, Peter Lei
    Sponsored by:           Netflix, Inc.
    Differential Revision:  https://reviews.freebsd.org/D49922
    
    (cherry picked from commit 934caaec3afc43638c2a1da8fbe3b672566db4fe)
    (cherry picked from commit 0906658c3409996b26518e67df48c01052ef934c)
---
 sys/netinet/tcp_input.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
index bd491a116fff..b4c77c303df7 100644
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -2794,9 +2794,11 @@ enter_recovery:
 						KASSERT((tp->t_dupacks == 2 &&
 						    tp->snd_limited == 0) ||
 						   (sent == maxseg + 1 &&
-						    tp->t_flags & TF_SENTFIN),
-						    ("%s: sent too much",
-						    __func__));
+						    tp->t_flags & TF_SENTFIN) ||
+						   (sent < 2 * maxseg &&
+						    tp->t_flags & TF_NODELAY),
+						    ("%s: sent too much: %u>%u",
+						    __func__, sent, maxseg));
 						tp->snd_limited = 2;
 					} else if (sent > 0)
 						++tp->snd_limited;