git: 0787b1f5b8bd - main - ixgbe: supply PF transmit contexts under SR-IOV

Kevin Bowling <[email protected]> Mon, 03 Aug 2026 12:44:57 +0000
Newsgroups gmane.os.freebsd.devel.cvs.src
Message-ID <6a708d49.2296d.382ea052__20995.5229702004$1785761114$gmane$org@gitrepo.freebsd.org>
The branch main has been updated by kbowling:

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

commit 0787b1f5b8bdfcaed97eeee7bfbd7f14ac162b0d
Author:     Kevin Bowling <[email protected]>
AuthorDate: 2026-08-01 12:41:22 +0000
Commit:     Kevin Bowling <[email protected]>
CommitDate: 2026-08-03 12:44:47 +0000

    ixgbe: supply PF transmit contexts under SR-IOV
    
    X550-family malicious-driver detection validates the transmit
    context selected by a data descriptor with Check Context set.  ixgbe
    sets that bit on every transmit data descriptor, but ordinary PF
    packets without a VLAN or checksum offload do not create a context
    descriptor.  The empty context then reports an invalid MAC-header
    length and blocks the PF queue as soon as MDD is enabled.
    
    Create the existing context descriptor for every PF packet while
    SR-IOV is active.  This supplies the required MAC-header length and
    keeps MDD from mistaking normal PF traffic for a malicious-driver
    event.
    
    MFC after:      1 week
---
 sys/dev/ixgbe/ix_txrx.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sys/dev/ixgbe/ix_txrx.c b/sys/dev/ixgbe/ix_txrx.c
index 76c718e2c252..3dda3270a2de 100644
--- a/sys/dev/ixgbe/ix_txrx.c
+++ b/sys/dev/ixgbe/ix_txrx.c
@@ -197,6 +197,7 @@ ixgbe_isc_txd_encap(void *arg, if_pkt_info_t pi)
 	TXD = (struct ixgbe_adv_tx_context_desc *) &txr->tx_base[first];
 	if ((pi->ipi_csum_flags & CSUM_OFFLOAD) ||
 	    (sc->feat_en & IXGBE_FEATURE_NEEDS_CTXD) ||
+	    (sc->feat_en & IXGBE_FEATURE_SRIOV) ||
 	    pi->ipi_vtag) {
 		/*********************************************
 		 * Set up the appropriate offload context