svn commit: r280706 - head/sys/dev/cxgbe

Navdeep Parhar np at FreeBSD.org
Thu Mar 26 18:45:52 UTC 2015


Author: np
Date: Thu Mar 26 18:45:51 2015
New Revision: 280706
URL: https://svnweb.freebsd.org/changeset/base/280706

Log:
  cxgbe(4): provide the exact RSS hash type instead of a catch-all value
  to the upper layers.

Modified:
  head/sys/dev/cxgbe/t4_sge.c

Modified: head/sys/dev/cxgbe/t4_sge.c
==============================================================================
--- head/sys/dev/cxgbe/t4_sge.c	Thu Mar 26 18:44:59 2015	(r280705)
+++ head/sys/dev/cxgbe/t4_sge.c	Thu Mar 26 18:45:51 2015	(r280706)
@@ -1736,6 +1736,12 @@ t4_eth_rx(struct sge_iq *iq, const struc
 #if defined(INET) || defined(INET6)
 	struct lro_ctrl *lro = &rxq->lro;
 #endif
+	static const int sw_hashtype[4][2] = {
+		{M_HASHTYPE_NONE, M_HASHTYPE_NONE},
+		{M_HASHTYPE_RSS_IPV4, M_HASHTYPE_RSS_IPV6},
+		{M_HASHTYPE_RSS_TCP_IPV4, M_HASHTYPE_RSS_TCP_IPV6},
+		{M_HASHTYPE_RSS_UDP_IPV4, M_HASHTYPE_RSS_UDP_IPV6},
+	};
 
 	KASSERT(m0 != NULL, ("%s: no payload with opcode %02x", __func__,
 	    rss->opcode));
@@ -1745,7 +1751,7 @@ t4_eth_rx(struct sge_iq *iq, const struc
 	m0->m_data += fl_pktshift;
 
 	m0->m_pkthdr.rcvif = ifp;
-	M_HASHTYPE_SET(m0, M_HASHTYPE_OPAQUE);
+	M_HASHTYPE_SET(m0, sw_hashtype[rss->hash_type][rss->ipv6]);
 	m0->m_pkthdr.flowid = be32toh(rss->hash_val);
 
 	if (cpl->csum_calc && !cpl->err_vec) {


More information about the svn-src-head mailing list