From nobody Thu Oct 29 06:57:11 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 4jFZm7598mz6xwDD for ; Thu, 29 Oct 2026 06:57: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) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4jFZm73lz7z4Hs0 for ; Thu, 29 Oct 2026 06:57:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793257031; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JnnqKYyb84Z90PkVSVdJxyyyWgnqF0WzpJKUixbyGJk=; b=qL5bVxzI6GKWOQt0eKhsK4w1ggQgy9AkH/ELjssnWo9DxZpXcRyZ91iSbyRJUsSrhnau1u 5UaHD0Lj5iBlpHCUufuRhSeNG1JrDMThB0IIvjss8g8Uv7Mr9p9n/n4bgPzN4b0UyIi4AT 3GeuS/urpYNbhNTp6V02QlDI8BxKNCixIBgKc4Jyo6ornprmxmbcYkGOzMldY2kdBpoStB bGN7p73dQumokP/lpquWKHabR0ZYFhvVfTx3PDsBdYxqUN55rFNcUGav7reLbfIgimx6Gb O/ptSuzj4jiZt/58M2lAE/gg5eeI/b93LdCrS3+PGLEFznhHtMNngDrjmLFTFg== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1793257031; b=icIBf5lXsUtnNIgpwXCxO5jC1E8lQXKInWEwc8zIuh4rdBgsMfsMvPXFXosZnGCevgKf0P EVAVfuPfrixmJEkKsIEZNjWSWcyvNoo16QNfKXgsrXbFpjXWAWZzrczcY8mF3Ix/qmtYZc OAiCJy5whHHi16LupM5HCC+Ov+1+fNEzGNnXVVLGS+GZkeceZXo3gJoDjZmCz7iFXG/jgz viEMc9UZbP2FES0Z/jFR8v6UYqJ+M1uw916VpNQNtbv9I88gf0ZhzgkaujJAQqWPeBcDli eVMfq+JzZDdWMXK1pIcN0yCBzJAJkgUFOiSZ/6e9e3YXptuvF7xQwOZ4R8n0Jw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1793257031; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JnnqKYyb84Z90PkVSVdJxyyyWgnqF0WzpJKUixbyGJk=; b=adv7Fexo2+M1k/p/jGG2QKLsJ9Tr+KiLCbLHUdRtMGNAxMCe3wbSvTYRyIRDQkuU0h2Kls 6AYoXeSamMPyW/tn66gVqUwsxak30yjSbBH3izenTeNe58gvhW8LJacc+Kl+PAad1takA7 +e7/1gMIKmQ5wwCCOYaR57MmhrsCUvTLx2UcDkLUoJrs3vAewizDxj1n1ptUeR7KqC6Dq4 D1e+wbJdj8C4BM/atQL+y9CCEjsR7O3AD1MnoVkTiKNbF0TJB+NaFS+0zMi8k/zf2tFgIA KuhUNdXDGwDFcX45hjiaLnq39wvCQHIxdQw4SsORH4MhxZNFocLLuIrNFU7oWQ== 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 4jFZm73PLxzRk6 for ; Thu, 29 Oct 2026 06:57:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3e462 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 29 Oct 2026 06:57:11 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Andrew Gallatin From: Kevin Bowling Subject: git: 215fbb3974ab - stable/15 - ixl: verify flowid is valid before setting rsstype & flowid List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: Commits to the stable branches of the FreeBSD src repository List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 215fbb3974ab218d943a973aef0c93cdc19f7e10 Auto-Submitted: auto-generated Date: Thu, 29 Oct 2026 06:57:11 +0000 Message-Id: <6ae2ee47.3e462.16d03094@gitrepo.freebsd.org> The branch stable/15 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=215fbb3974ab218d943a973aef0c93cdc19f7e10 commit 215fbb3974ab218d943a973aef0c93cdc19f7e10 Author: Andrew Gallatin AuthorDate: 2026-01-05 17:02:23 +0000 Commit: Kevin Bowling CommitDate: 2026-10-29 06:54:44 +0000 ixl: verify flowid is valid before setting rsstype & flowid According to section 8.3.2.2.1 of the XL710 datasheet, FLTSTAT indicates if RSS hashing was used (or flow director or nothing) to arrive at the flowid it is reporting. We need to check this before reporting the flowid and setting the rss type. Not checking this allows invalid flowids (0s) to be reported for some TCP traffic (it seems to mostly impact incoming connections). This leads to the inp flowid being 0, and egress traffic being unbalanced (going to tx queue 0, and NIC 0 of an lacp bundle). Differential Revision: https://reviews.freebsd.org/D54442 Reviewed by: adrian, kbowling Sponsored by: Netflix (cherry picked from commit ac1cd655f647cfd8e8d8c08da00f41abfce212a1) --- sys/dev/ixl/ixl_txrx.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/sys/dev/ixl/ixl_txrx.c b/sys/dev/ixl/ixl_txrx.c index d015a93b5360..7ce1c24c814a 100644 --- a/sys/dev/ixl/ixl_txrx.c +++ b/sys/dev/ixl/ixl_txrx.c @@ -648,7 +648,7 @@ ixl_isc_rxd_pkt_get(void *arg, if_rxd_info_t ri) struct ixl_rx_queue *que = &vsi->rx_queues[ri->iri_qsidx]; struct rx_ring *rxr = &que->rxr; union i40e_rx_desc *cur; - u32 status, error; + u32 status, error, fltstat; u16 plen; u64 qword; u8 ptype; @@ -704,8 +704,12 @@ ixl_isc_rxd_pkt_get(void *arg, if_rxd_info_t ri) if ((scctx->isc_capenable & IFCAP_RXCSUM) != 0) rxr->csum_errs += ixl_rx_checksum(ri, status, error, ptype); - ri->iri_flowid = le32toh(cur->wb.qword0.hi_dword.rss); - ri->iri_rsstype = ixl_ptype_to_hash(ptype); + fltstat = (status >> I40E_RX_DESC_STATUS_FLTSTAT_SHIFT); + if ((fltstat & I40E_RX_DESC_FLTSTAT_RSS_HASH) == + I40E_RX_DESC_FLTSTAT_RSS_HASH) { + ri->iri_flowid = le32toh(cur->wb.qword0.hi_dword.rss); + ri->iri_rsstype = ixl_ptype_to_hash(ptype); + } if (status & (1 << I40E_RX_DESC_STATUS_L2TAG1P_SHIFT)) { ri->iri_vtag = le16toh(cur->wb.qword0.lo_dword.l2tag1); ri->iri_flags |= M_VLANTAG;