Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 08 Aug 2026 11:59:21 +0000
From:      Kevin Bowling <kbowling@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: c017bceda48c - main - ixgbe: Reject Flow Director with SR-IOV
Message-ID:  <6a771a19.35fca.7d9e8972@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=c017bceda48c766780ab1d2239b296242fcf9cf2

commit c017bceda48c766780ab1d2239b296242fcf9cf2
Author:     Kevin Bowling <kbowling@FreeBSD.org>
AuthorDate: 2026-08-08 11:11:09 +0000
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2026-08-08 11:59:13 +0000

    ixgbe: Reject Flow Director with SR-IOV
    
    The iflib Flow Director path does not assign filters using the
    absolute queue and pool identifiers required by SR-IOV.  Reject the
    combination during preflight validation rather than allowing an
    unsupported configuration to alter the PF receive path.
    
    The loader tunable is fixed before VFs can be created, so validation
    also prevents the reverse ordering of this combination.
    
    MFC after:      2 weeks
---
 share/man/man4/ix.4      | 3 ++-
 sys/dev/ixgbe/if_sriov.c | 5 +++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/share/man/man4/ix.4 b/share/man/man4/ix.4
index 822a8040caf4..33b723c0fcd2 100644
--- a/share/man/man4/ix.4
+++ b/share/man/man4/ix.4
@@ -29,7 +29,7 @@
 .\"
 .\" * Other names and brands may be claimed as the property of others.
 .\"
-.Dd August 7, 2026
+.Dd August 8, 2026
 .Dt IX 4
 .Os
 .Sh NAME
@@ -168,6 +168,7 @@ Enable Flow Director.
 Flow Director directs Ethernet packets to the core where the
 packet consuming process, application, container,
 or microservice is running.
+SR-IOV configuration is rejected when Flow Director is enabled.
 .It Va hw.ix.enable_rss
 Enable Receive-Side Scaling (RSS).
 When RSS is enabled, all of the receive data processing for
diff --git a/sys/dev/ixgbe/if_sriov.c b/sys/dev/ixgbe/if_sriov.c
index ff873d4652f8..4e98b2b5de0c 100644
--- a/sys/dev/ixgbe/if_sriov.c
+++ b/sys/dev/ixgbe/if_sriov.c
@@ -1698,6 +1698,11 @@ ixgbe_iov_validate(struct ixgbe_softc *sc, u16 num_vfs)
 	if (sc->vfs != NULL || sc->vf_mac_filters != NULL ||
 	    (sc->feat_en & IXGBE_FEATURE_SRIOV))
 		return (EBUSY);
+	if (sc->feat_en & IXGBE_FEATURE_FDIR) {
+		device_printf(sc->dev,
+		    "Flow Director is not supported with SR-IOV\n");
+		return (ENOTSUP);
+	}
 	if (sc->intr_type != IFLIB_INTR_MSIX) {
 		device_printf(sc->dev, "SR-IOV requires MSI-X\n");
 		return (ENOTSUP);


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a771a19.35fca.7d9e8972>