From nobody Sat Nov 22 14:31:05 2025 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 4dDDzG4XK4z6HDkm for ; Sat, 22 Nov 2025 14:31:06 +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" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dDDzF6Mkxz414F for ; Sat, 22 Nov 2025 14:31:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1763821865; 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=8/E/exknoX3utXZUz8EUz6v9pUyvmDUy52Xvx+Tl25I=; b=josfXbaqcfK5ARS5rAQpJvCD139iYCsP509bqzqY+4A6XdOegU6/gIn6oIOnvaIhZGC3dc bjRpvlpvmoahe+MHD059HdH/4xtd19iVGsdeebg6Vz6/gsR5WKKE03lznPqd4MVu8VjeMf KruLw+iHW8EvI8minDrPPRCUVWvOdU9JQphJzmrKf5ra5zzApiGn/Bayij75Uopf928I3e 2FZA3bfFW0sTJcw+YAtnTxktXcmyba2I31jW2R0+c3uUBnjQ1DEAwtRYSDXpimqfy4glcs cNijPqhpu9RA1puvrXGOxNQyiErrEBgY6vHM8moVltogBFIF38yzYABftwapbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1763821865; 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=8/E/exknoX3utXZUz8EUz6v9pUyvmDUy52Xvx+Tl25I=; b=dDkfAAjIgpc1cWbURHUG+mAc51JR0XKpRADb3D5AkbtoKhJXjhm6kSUv8Ccbi67AKAMSn5 x6i1IN3X657QMYIkfRPtaZjgW3vsYHozSQHNUH7zqdS6RiVcU5h+RFhsP4MGnRuX+D+PYN amNfIR5u3ignY8UHt9PV66O6DvkuuAL4t+IAgfvmKyKehhyqb7j+Fsnj2bsKf50EghQmMB CEr6koaltgzFTkbQmAWFdS3NzvO9tCXFCqhenxysXrl98Ya9V4aHnGKnsEVY850LjaUsPW h8/7rhuyGcVtkkYfIyLTLn3GVpSIKbntbF+ssT5RbEa0sF3nQLp8n3Zm8kzAaw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1763821865; a=rsa-sha256; cv=none; b=ffmTP5VN8hkBAczdgN3d+8op+DDcwkg1w5Fk53Wm879eY0dcSOdJEUYr9o5eBXWdLIwbR2 dxoxEkRKEcxb84IK5lPqPl9ZC2JnvoxQlcZBPapSibXPdzHzG0JwmFq3NMdOg5e5uOcIAZ e4OTYcw7i4jmqcaWVMxmuqvq86oDzGCjPydRMtUCDQOxM0VoHfbnV3WMDOurKrTxYuI8ub aeQ+UNKSk/IFYXfFATA6JarrDT8lNxbE/lfUyEkVDDYO4UojMolep4XTMpeo8V4KBsXpH9 C+dDJOhMappJRyZPZrurM0xf5sAXrZILcWj7F22uBv3KILJBw1BPGU3CaT0Z8w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4dDDzF5fC3z12J0 for ; Sat, 22 Nov 2025 14:31:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2e6e9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 22 Nov 2025 14:31:05 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Andrew Gallatin Subject: git: dd0e6bb996dc - main - tcp: Enable symmetric hashing by setting hash on outgoing conns 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: gallatin X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: dd0e6bb996dc46e1d91f3d9aef87979716479465 Auto-Submitted: auto-generated Date: Sat, 22 Nov 2025 14:31:05 +0000 Message-Id: <6921c929.2e6e9.3918242d@gitrepo.freebsd.org> The branch main has been updated by gallatin: URL: https://cgit.FreeBSD.org/src/commit/?id=dd0e6bb996dc46e1d91f3d9aef87979716479465 commit dd0e6bb996dc46e1d91f3d9aef87979716479465 Author: Andrew Gallatin AuthorDate: 2025-11-22 14:29:35 +0000 Commit: Andrew Gallatin CommitDate: 2025-11-22 14:29:35 +0000 tcp: Enable symmetric hashing by setting hash on outgoing conns Now that we can trust NICs to supply an identical hash result to software, we can setup the inpcb hash on outgoing connections. This gives us symmetric hashing, meaning packets should enter and leave on the same NIC queue. Differential Revision: https://reviews.freebsd.org/D53104 Reviewed by: adrian, cc, kbowling, tuexen, zlei Sponsored by: Netflix --- sys/netinet/tcp_usrreq.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sys/netinet/tcp_usrreq.c b/sys/netinet/tcp_usrreq.c index 4d1a6455d09e..aeb28cd6a144 100644 --- a/sys/netinet/tcp_usrreq.c +++ b/sys/netinet/tcp_usrreq.c @@ -75,6 +75,7 @@ #include #include #include +#include #include #include #include @@ -82,6 +83,7 @@ #ifdef INET6 #include #include +#include #include #include #endif @@ -1487,6 +1489,10 @@ tcp_connect(struct tcpcb *tp, struct sockaddr_in *sin, struct thread *td) if (error != 0) return (error); + /* set the hash on the connection */ + rss_proto_software_hash_v4(inp->inp_faddr, inp->inp_laddr, + inp->inp_fport, inp->inp_lport, IPPROTO_TCP, + &inp->inp_flowid, &inp->inp_flowtype); /* * Compute window scaling to request: * Scale to fit into sweet spot. See tcp_syncache.c. @@ -1532,6 +1538,10 @@ tcp6_connect(struct tcpcb *tp, struct sockaddr_in6 *sin6, struct thread *td) if (error != 0) return (error); + /* set the hash on the connection */ + rss_proto_software_hash_v6(&inp->in6p_faddr, + &inp->in6p_laddr, inp->inp_fport, inp->inp_lport, IPPROTO_TCP, + &inp->inp_flowid, &inp->inp_flowtype); /* Compute window scaling to request. */ while (tp->request_r_scale < TCP_MAX_WINSHIFT && (TCP_MAXWIN << tp->request_r_scale) < sb_max)