From nobody Tue Mar 31 15:59:07 2026 X-Original-To: dev-commits-src-branches@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 4flXqJ2ZRSz6WFLs for ; Tue, 31 Mar 2026 15:59:08 +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 4flXqH6lgzz3h2W for ; Tue, 31 Mar 2026 15:59:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1774972748; 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=KcFbbySV2eI7KOIJCQrwFG8b0DkMP+qx+ibmG1hEeO0=; b=YkTSUnOqMl83kewMoBU5+8zdpZxAI2h4b9/XCpnqES/1ohFnzc+pyao8BdxY/5dZfqttOB zzao9LPDbsmXdzQ2XU8AjC1ZFH/8Umb4t1yteLCnp5+nzVSqH5q646wGEj6G/xHxRmLrfx n2ke5IXSgRoBlAGo/gUDTXsFMQUT+9YgFC5TEoLdIUp4ENu60PIa5pNtqNowdlXqVZsEF1 NWWXv05NooVdqb2wiA0GoMUZHzA8UAVFSsxyJSMSSf+PsSDVr6D+2LDquyUj1q5LnqXZJu tiwOY79BpIDvfryGMepHIveEB0nt0FqIZet4jsCrexhkqoCTzw/rPhKhof55OQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1774972748; a=rsa-sha256; cv=none; b=h6ONTGsV4fmkQJ1EVURELg4YjN2mKgji1+IabTfwbIs04AYgHhft8mGPmoTDnIDVTDYF6W ArYKS9axUE1xOC/42uHpC5Tx74gfk7NxgYJPoBU3E6vQ2yb01w8zuiLGKVkAoOzTXmsj2/ RyhVvaaMPCcomD0nwqAI4N1r5OE7Txe+tYg40kjiOzwWTWr20QX9GY7Esz0sNqWPHE3mS/ W/p+Ho4sZoAVjZH7bVL98sxRQ3NBrgAF5qR0UhHrvHBQkOFR41VipSOJI4G6DVgMh4cTqX Mq1xQMcuQ+uXu1vvRRJH0V2tgDIa3RCR9RhM7JHsQVxl+QTByBI4yqSa4I5vVg== 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=1774972748; 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=KcFbbySV2eI7KOIJCQrwFG8b0DkMP+qx+ibmG1hEeO0=; b=HS+d/HMbUE+RUBVZKSotoqDSRVgNRJqhb4LuCSVucirusU3ovx8bkf2SSNe2F7voDdENnm /mppEIQ/DgPq8qTOjwzB83tujjkkKuUIZWsmtJUFXrkwfoz158pdXDDNe2gylOTOlkqnwz gWjxOMcRgTtRROffYxlCAux+1xiY54sP93HJIFYIKVCuf9dxcFjWnqFI/fnnMMH30f9uOO /19elXomgWk6MyL8AiZo++57OWTkh/T6hOWhgBGQWuFbO/FDt0n2rJh7A9x++lfm61Jrjm cfvvQQBDtSfRPhWVLiy7NCDZ8VywuSTVWhRQGlFSJHPe48yPmUVAdfXOgVKNxg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4flXqH67bRzcQf for ; Tue, 31 Mar 2026 15:59:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3a212 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 31 Mar 2026 15:59:07 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: a426ae1e411e - stable/15 - divert: Use a better source identifier for netisr_queue_src() calls List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: a426ae1e411ee315682964dc1a423eb023f7341d Auto-Submitted: auto-generated Date: Tue, 31 Mar 2026 15:59:07 +0000 Message-Id: <69cbef4b.3a212.79070f1e@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=a426ae1e411ee315682964dc1a423eb023f7341d commit a426ae1e411ee315682964dc1a423eb023f7341d Author: Mark Johnston AuthorDate: 2026-02-26 20:25:35 +0000 Commit: Mark Johnston CommitDate: 2026-03-31 15:57:29 +0000 divert: Use a better source identifier for netisr_queue_src() calls These opaque IDs are used by netisr to distribute work among threads. The mapping function is simply SourceID % numthreads, so using socket addresses as source IDs isn't going to distribute packets well due to alignment. Use the divert socket's generation number instead, as that suits this purpose much better. Reviewed by: zlei, glebius MFC after: 1 week Sponsored by: OPNsense Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D55537 (cherry picked from commit 5547a7bb39accd8f151b53e90b41d13b55f84c95) --- sys/netinet/ip_divert.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/netinet/ip_divert.c b/sys/netinet/ip_divert.c index f98a599e7554..75371c7dacb3 100644 --- a/sys/netinet/ip_divert.c +++ b/sys/netinet/ip_divert.c @@ -503,8 +503,10 @@ static int div_output_inbound(int family, struct socket *so, struct mbuf *m, struct sockaddr_in *sin) { + struct divcb *dcb; struct ifaddr *ifa; + dcb = so->so_pcb; if (m->m_pkthdr.rcvif == NULL) { /* * No luck with the name, check by IP address. @@ -541,14 +543,14 @@ div_output_inbound(int family, struct socket *so, struct mbuf *m, m->m_flags |= M_MCAST; else if (in_ifnet_broadcast(ip->ip_dst, m->m_pkthdr.rcvif)) m->m_flags |= M_BCAST; - netisr_queue_src(NETISR_IP, (uintptr_t)so, m); + netisr_queue_src(NETISR_IP, (uintptr_t)dcb->dcb_gencnt, m); DIVSTAT_INC(inbound); break; } #endif #ifdef INET6 case AF_INET6: - netisr_queue_src(NETISR_IPV6, (uintptr_t)so, m); + netisr_queue_src(NETISR_IPV6, (uintptr_t)dcb->dcb_gencnt, m); DIVSTAT_INC(inbound); break; #endif