From nobody Mon Dec 15 17:09:45 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 4dVRPj5fXpz6L2jC for ; Mon, 15 Dec 2025 17:09:45 +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 4dVRPj47Xsz453D for ; Mon, 15 Dec 2025 17:09:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1765818585; 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=xU1mV46WT7JlGrjd4hHvfkd9jLHfOheawH4AA+Cibec=; b=M3K6CA/+cxzGyOKQsKwrUlpLa/Diox5zQ9CzwCru7yESuXOPyxM+J+SXzOdKE1vJa3wxf+ XKCE5U0RlX0b4633wdoyQ766PNy3qc6nzLNTe7QAbJP/wSwSsvsP1xbAK7L8MxJyCWg7x6 oecJw3/q44miZRLTpbAqCUV2PnzWS6tdidHqxibhmj6iW4T5TnpFwHyf11QPSuqzRAzywL VP5XmdMEk2TSa1lux8Vj+FiSMp5OG6ap61wfhC85LjjtHQHs7OOsbqCjxSSZaukCNeaiiX V8YJVHLmItw3ZKd/QJQCVh/xrMDMMBjMMoMKjl7TbPbRknvNjPxPRes2Lb7uCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1765818585; 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=xU1mV46WT7JlGrjd4hHvfkd9jLHfOheawH4AA+Cibec=; b=nU3HO9AvhxqbmWFHLpuUDTfYHeWgYBv5jdmU3fJiGNxPHWJk3fb29AqAZwBAbv0ir9JOx5 2ctvd4rie0POVG4Clv3tjXTFRF44hOH30MDGvvl4iIhNivCREYKi8DbT+pIcpCnG5/vsKa +wyZfpffPvdhJiSKmlA7HCPkzpk95n6/jXFntOvhfJXSrh2AgsCoKQtoY2N00eqwMVzn7K mj5JENpTh53UML0qt1eWq0bNbT9x+F5plGWBDpWEYOUbpE3EugaVeWmyvyGE/s6M0HA0x4 ULL5GLwMDL/JH/+04GIWBd8MBWwzekCAwDfNCF40Eiuv/CBOr1z6TXj409g/uA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1765818585; a=rsa-sha256; cv=none; b=TQYjqatcsc7ydj81za7Y5GY3Yhizwk/BKiCBN0PfPZcrwu2yuR+AV8tN1Lw2PYR0Tt8PLf TP2kRCiMXgvVCCWgZAYdOaoEm7ywGRzgYhTrUr5+yy0Rbq4jzM2gi9TUCseUhuBQ7ApfA2 olTd0DBun/KV7cWrrG3x8CITwC5IS9f57kX4MlOZkFc8yPRzRDaqnHmS4lI23ZVb21lfye QYUlfQ1K4vAVjT+COxbqPyZJAtgV6kLBYU3PLcen3sWA9q/xbfnHtr/gL5ZUK5dRgvowvz sczLELAE/ZXzesf1dHwEh4ILV9lYC9+Zs6M4ihf17cFmNfky7J13IrUpOw0lCA== 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 4dVRPj3WbBzCvf for ; Mon, 15 Dec 2025 17:09:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id de33 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 15 Dec 2025 17:09:45 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Andrew Gallatin Subject: git: 7ff3b13f12d9 - main - lacp: Sort port map by interface index 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: 7ff3b13f12d97b7f67f09ecb9141e6dbaa1ad007 Auto-Submitted: auto-generated Date: Mon, 15 Dec 2025 17:09:45 +0000 Message-Id: <694040d9.de33.6e6bda5c@gitrepo.freebsd.org> The branch main has been updated by gallatin: URL: https://cgit.FreeBSD.org/src/commit/?id=7ff3b13f12d97b7f67f09ecb9141e6dbaa1ad007 commit 7ff3b13f12d97b7f67f09ecb9141e6dbaa1ad007 Author: Andrew Gallatin AuthorDate: 2025-12-15 16:52:48 +0000 Commit: Andrew Gallatin CommitDate: 2025-12-15 17:08:59 +0000 lacp: Sort port map by interface index This makes it easier to reason about system topology, and to potentially map applications to NIC queues by (ab)using the mbuf flowid to select egress NIC and queue in a predictable fashion. Differential Revision: https://reviews.freebsd.org/D54053 Reviewed by: glebius, kbowling Sponsored by: Netflix --- sys/net/ieee8023ad_lacp.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/sys/net/ieee8023ad_lacp.c b/sys/net/ieee8023ad_lacp.c index 77b5a5d53a67..281d16bc6c05 100644 --- a/sys/net/ieee8023ad_lacp.c +++ b/sys/net/ieee8023ad_lacp.c @@ -1036,6 +1036,18 @@ lacp_select_active_aggregator(struct lacp_softc *lsc) } } +static int +lacp_pm_compare(const void *p1, const void *p2) +{ + struct lacp_port *const *a = p1; + struct lacp_port *const *b = p2; + int left, right; + + left = (*a)->lp_ifp->if_index; + right = (*b)->lp_ifp->if_index; + return ((left > right) - (left < right)); +} + /* * Updated the inactive portmap array with the new list of ports and * make it live. @@ -1079,12 +1091,24 @@ lacp_update_portmap(struct lacp_softc *lsc) #ifdef NUMA for (i = 0; i < MAXMEMDOM; i++) { - if (p->pm_numa[i].count != 0) + if (p->pm_numa[i].count != 0) { p->pm_num_dom++; + if (p->pm_numa[i].count > 1) { + qsort(&p->pm_numa[i].map[0], + p->pm_numa[i].count, + sizeof(p->pm_numa[i].map[0]), + lacp_pm_compare); + } + } } #endif speed = lacp_aggregator_bandwidth(la); } + + if (p->pm_count > 1) { + qsort(&p->pm_map[0], p->pm_count, + sizeof(p->pm_map[0]), lacp_pm_compare); + } sc->sc_ifp->if_baudrate = speed; EVENTHANDLER_INVOKE(ifnet_event, sc->sc_ifp, IFNET_EVENT_UPDATE_BAUDRATE);