From nobody Tue Feb 24 16:49:11 2026 X-Original-To: dev-commits-src-main@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 4fL3bC6V6Hz6SWPP for ; Tue, 24 Feb 2026 16:49:11 +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 4fL3bC5pyXz3HvH for ; Tue, 24 Feb 2026 16:49:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771951751; 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=Idvim92668x2xEzo8DKznYWmf1QznQG0WuHF//dWvejYNPlrA9hP+VbV907q722FtPiW8P fHXbZzwgRYon+i7BSh/Pop0+d3f/uuVs4fekpcw7yKHlsLwq0aI610jbeCxV5Qqk5VMprW SIE3LnXoI9qFALq1d+59Qx7noAXWo7qdqVoEr2PtrJLs9IqafPgFoPmSvBpAS9ChWe6j31 3BEFTd3mEUeNIRm5acg7i0+kHJV8jz8neapYMlJKgxGtdUIK48wkVhNENXBMwT6ib7TQ1D EAfrm75nVdsUb2vPPyT1oBGlAMt0739PL7uSbKgp8HpSsz62apDygUuxr9MeJA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771951751; a=rsa-sha256; cv=none; b=VF6250kfE0xs7SQHB3TVdzoOI1gohmhyRo8Hz6Vmmlx8sDnMIO1AgT5RvvoagfekLDlx4v Aut/qLBElvuNKTq/D1mLvfNUdo7hCQUsvQ1GDsxLb71hZZ566C/Ljls9ijScvi9M+fl0Py f8K3QKQrKtVwIM9jgwZoOE626T/a/TppkrZTDauyQfMztiZy6pqFE+9wMDwuwq15j0UHnk 5FW43UHtPJqfxaxAKiVBkOErJocskZVmMTLPvC7QT/ypUxxRLQWV4b9lOX/+JCS93EzxRN oVqRSsJHrDUJAan0K+TW8tZqAfivMi5+OiD8DMjzBAUN8dsnmcqxxbnNiP2lng== 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=1771951751; 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=r95MZLwAC8GhQeqtkMhJP0kw1kF5kCV0hHcrJNnIJJH2Jr5jwnnDEWKHM964jTZk2bkqLf PFn2iPDFpOmF0vaFwCs7XkDfewixuVkfpiop4wmwUgNo56NhVJ3iZWwxd2e7zj+3Jhe1mI gK93dZmORs1WO443NQQkiEthNkG8EL1TJUUpt5jNegZFxkRTDk3I5l8DgbzKDcE6Jg44Uy 6tLRmobq5IuCaPdaKBLy52Xb1/ZFaduAbi+0RIHWQiSb4HNecH748okTouslZ0AOFZfhKI El8CvpJEwShWhIjwA2uaXWoErddo/j7PGTEUB3zI++DA64D1sLmL0zxKrzbALg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL3bC5F30z7wY for ; Tue, 24 Feb 2026 16:49:11 +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 the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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) &&