From nobody Tue Feb 24 16:49:11 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fL3bK25Rsz6SWGS for ; Tue, 24 Feb 2026 16:49:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL3bJ6yF2z3JDg for ; Tue, 24 Feb 2026 16:49:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771951757; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YO+rZhagu5meueQLP2TkCkm+ikWeK0pH7ZDGFOvXyAY=; b=Os65hfQfFksGpWXd3nwKTBLLM2lCNuYry0kFBKBdCb9n9+WHir9AoPj7kFbs8rpom0zg3v jG2w4Hp836nQg9d3cBxdPdci7ASzYg4Gzfqi8XrPDnimiggnxHzTfxXvH0eGI3Ivrjdwa1 GFZ418eoh64I0rLIsBm3x5f7H9cOdmQelgDpQMSp27pZqUxXCk4Kah9jfWnJ5YCP/wYACM h+Mn7t+8SaeBIlSK+oGFReAdvkFV/xdhO8IAm2rdR7CWOXREyAF9fKvUk572KbkWbrcf2d D53htkMtciLWJ0QMcwZtwzu7O2BeScq8gaNDHvOuiWCc0q70CqMEAgkNvxyU4w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771951757; a=rsa-sha256; cv=none; b=Phkv6xZg0m8lYgV8K93vS+HUEAYimXHbcVDyMOsv0gAgAr1pWDhM7Kya57XFt9jEjIo35F Yg7/X9m+6jKdwpAKNf7K0sZ7S1CR0Kh71HG7oJFxmnwSSp0ocY516bR3Zvtl3OV2KiWR9K X0FYc+nL3LZFUbiGYO5z2+TJugocKlHpQ0xthAa2qLbzFKMgXJ+5jRQoZx4RbvdIMQ1ArW MoKkvEFCqLTOqmHn5aO6kVq/dJcag2Uz32AtEtUUD3IvEgQt2lvY6cmQAdR72zeZwpewV7 zsLiXkfTTv8bKrahIHmYw8lwSNsSaRMSoDpnX2BVNTCZRR+BS6TTSVoNjrWWdQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771951757; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YO+rZhagu5meueQLP2TkCkm+ikWeK0pH7ZDGFOvXyAY=; b=is+d+96roLw6z2QHidFhCsci2WQjBuwSlHFieIaiM83WIWfOeKrmC8l8O9N4Pl/soyKn4B awhg1i2c+i5bQbJixlSyFL4/H/YqDqGpC9vbjeYqK2gYXTDfzNOS6kggMG8bcZLJ2O/BBo mfS2iPgWWpSBlxEWliRpUIHsGw30zQP5ldVvI8g6SRuIVmr0K1SqLZlyk4iuL6jR8YP7QA ZGACHlpkCwXoJs9Oohxo93U6Be+slaXmw7vn3T8h0bv8U64bfRAL9mGgFVRQGg4skBVfNf qhtjAh4eCBw8Y0LEyjPGRFdJR0S3RB+HktNNN6+W3deeEIxjEqHREa2TjfodwA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL3bJ6Rvrz8Cv for ; Tue, 24 Feb 2026 16:49:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 34343 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:49:11 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Randall Stewart Subject: git: 9063968e8e39 - main - Mitigate a case where TCP rack can send an extra ack. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rrs X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9063968e8e394b8062a855592e12607b143c1b0f Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:49:11 +0000 Message-Id: <699dd687.34343.32dd11f9@gitrepo.freebsd.org> The branch main has been updated by rrs: URL: https://cgit.FreeBSD.org/src/commit/?id=9063968e8e394b8062a855592e12607b143c1b0f commit 9063968e8e394b8062a855592e12607b143c1b0f Author: Randall Stewart AuthorDate: 2026-02-24 16:47:36 +0000 Commit: Randall Stewart CommitDate: 2026-02-24 16:47:36 +0000 Mitigate a case where TCP rack can send an extra ack. Rack will in theory send an extra rate limited ack when we get to a closing state (sending a FIN) so that if we have only 1 packet outstanding we might encourage the connection to close out. However it does this always which is not always wise. Change it so that it only does that if its been more than an srtt since we have had some activity i.e. a send or a receive of a packet. Reviewed by:tuexen, rscheff Differential Revision: --- sys/netinet/tcp_stacks/rack.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/sys/netinet/tcp_stacks/rack.c b/sys/netinet/tcp_stacks/rack.c index f55abbf919b7..42c6757b4b2a 100644 --- a/sys/netinet/tcp_stacks/rack.c +++ b/sys/netinet/tcp_stacks/rack.c @@ -20742,8 +20742,17 @@ just_return_nolock: * The idea behind that is instead of having to have * the peer wait for the delayed-ack timer to run off * we send an ack that makes the peer send us an ack. + * + * Note we do not send anything if its been less than + * a srtt. */ - rack_send_ack_challange(rack); + uint64_t tmark; + + tmark = tcp_get_u64_usecs(&tv); + if ((tmark > rack->r_ctl.lt_timemark) && + (((tmark - rack->r_ctl.lt_timemark) / 1000) > tp->t_srtt)) { + rack_send_ack_challange(rack); + } } if (tot_len_this_send > 0) { rack->r_ctl.fsb.recwin = recwin; @@ -21143,7 +21152,7 @@ send: to.to_tsecr = tp->ts_recent; to.to_flags |= TOF_TS; if ((len == 0) && - (TCPS_HAVEESTABLISHED(tp->t_state)) && + (tp->t_state == TCPS_ESTABLISHED) && ((ms_cts - rack->r_ctl.last_rcv_tstmp_for_rtt) > RCV_PATH_RTT_MS) && (tp->snd_una == tp->snd_max) && (flags & TH_ACK) &&