aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Gallatin <gallatin@FreeBSD.org>2026-01-05 17:02:23 +0000
committerAndrew Gallatin <gallatin@FreeBSD.org>2026-01-05 19:10:17 +0000
commitac1cd655f647cfd8e8d8c08da00f41abfce212a1 (patch)
treec674851f7d0980dd969985c0ac0fb8e70c54b573
parent1ecac45cfc5f0886907c34ec0da2c1b32618665d (diff)
-rw-r--r--sys/dev/ixl/ixl_txrx.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/dev/ixl/ixl_txrx.c b/sys/dev/ixl/ixl_txrx.c
index f971a3073265..04b8279bdc59 100644
--- a/sys/dev/ixl/ixl_txrx.c
+++ b/sys/dev/ixl/ixl_txrx.c
@@ -661,7 +661,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;
@@ -717,8 +717,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;