From 5a77dc88164bd5aaace88fb4cfbf854b95efe181 Mon Sep 17 00:00:00 2001 From: Michael Tuexen Date: Thu, 1 May 2025 18:11:03 +0200 Subject: [PATCH] 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 Reviewed by: cc, Peter Lei Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D49922 (cherry picked from commit 934caaec3afc43638c2a1da8fbe3b672566db4fe) --- 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 cd60eeec780..e2e8fec1586 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -2774,9 +2774,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;