git: aa8ffe6fbac7 - stable/14 - e1000: report UDP RSS hash type on igb/em

Olivier Cochard <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.src
Message-ID <6a71b6b9.422ba.77362b11__43095.2652286337$1785837260$gmane$org@gitrepo.freebsd.org>
The branch stable/14 has been updated by olivier:

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

commit aa8ffe6fbac70cccb7bb7519b4f98b7e13af25ee
Author:     Olivier Cochard <[email protected]>
AuthorDate: 2026-07-28 19:13:53 +0000
Commit:     Olivier Cochard <[email protected]>
CommitDate: 2026-08-04 09:51:25 +0000

    e1000: report UDP RSS hash type on igb/em
    
    {em,igb}_determine_rsstype() mapped only the TCP and bare-IP RSS descriptor
    types; the UDP types returned M_HASHTYPE_NONE.
    The hardware does hash UDP, but with a NONE hashtype iflib skips its
    flowid-based TX queue spread, so all forwarded UDP egressed on a single queue
    and serialized transmit on one core.
    
    Add the three UDP cases (IPV4_UDP, IPV6_UDP, IPV6_UDP_EX) so egress spreads
    across all TX queues.
    
    Reviewed by:    kbowling, gallatin
    Approved by:    kbowling
    MFC after:      1 week
    MFC to:         stable/14, stable/15
    Sponsored by:   Netflix
    Differential Revision:  https://reviews.freebsd.org/D58513
    
    (cherry picked from commit 285c749f575ed7f9e60555037f23ac673084c62a)
---
 sys/dev/e1000/em_txrx.c  | 6 ++++++
 sys/dev/e1000/igb_txrx.c | 6 ++++++
 2 files changed, 12 insertions(+)

diff --git a/sys/dev/e1000/em_txrx.c b/sys/dev/e1000/em_txrx.c
index 126364b00734..754f1a139065 100644
--- a/sys/dev/e1000/em_txrx.c
+++ b/sys/dev/e1000/em_txrx.c
@@ -858,6 +858,12 @@ em_determine_rsstype(uint32_t pkt_info)
 		return M_HASHTYPE_RSS_IPV6;
 	case E1000_RXDADV_RSSTYPE_IPV6_TCP_EX:
 		return M_HASHTYPE_RSS_TCP_IPV6_EX;
+	case E1000_RXDADV_RSSTYPE_IPV4_UDP:
+		return M_HASHTYPE_RSS_UDP_IPV4;
+	case E1000_RXDADV_RSSTYPE_IPV6_UDP:
+		return M_HASHTYPE_RSS_UDP_IPV6;
+	case E1000_RXDADV_RSSTYPE_IPV6_UDP_EX:
+		return M_HASHTYPE_RSS_UDP_IPV6_EX;
 	default:
 		return M_HASHTYPE_OPAQUE;
 	}
diff --git a/sys/dev/e1000/igb_txrx.c b/sys/dev/e1000/igb_txrx.c
index c34bf3874e02..6f13348bdb3e 100644
--- a/sys/dev/e1000/igb_txrx.c
+++ b/sys/dev/e1000/igb_txrx.c
@@ -593,6 +593,12 @@ igb_determine_rsstype(uint16_t pkt_info)
 		return M_HASHTYPE_RSS_IPV6;
 	case E1000_RXDADV_RSSTYPE_IPV6_TCP_EX:
 		return M_HASHTYPE_RSS_TCP_IPV6_EX;
+	case E1000_RXDADV_RSSTYPE_IPV4_UDP:
+		return M_HASHTYPE_RSS_UDP_IPV4;
+	case E1000_RXDADV_RSSTYPE_IPV6_UDP:
+		return M_HASHTYPE_RSS_UDP_IPV6;
+	case E1000_RXDADV_RSSTYPE_IPV6_UDP_EX:
+		return M_HASHTYPE_RSS_UDP_IPV6_EX;
 	default:
 		return M_HASHTYPE_OPAQUE;
 	}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.