Page MenuHomeFreeBSD

D21705.diff
No OneTemporary

D21705.diff

Index: head/sys/dev/ixgbe/if_ixv.c
===================================================================
--- head/sys/dev/ixgbe/if_ixv.c
+++ head/sys/dev/ixgbe/if_ixv.c
@@ -35,6 +35,7 @@
#include "opt_inet.h"
#include "opt_inet6.h"
+#include "opt_rss.h"
#include "ixgbe.h"
#include "ifdi_if.h"
@@ -1454,7 +1455,12 @@
scctx->isc_nrxd[0] - 1);
}
- ixv_initialize_rss_mapping(adapter);
+ /*
+ * Do not touch RSS and RETA settings for older hardware
+ * as those are shared among PF and all VF.
+ */
+ if (adapter->hw.mac.type >= ixgbe_mac_X550_vf)
+ ixv_initialize_rss_mapping(adapter);
} /* ixv_initialize_receive_units */
/************************************************************************
@@ -1889,7 +1895,6 @@
{
adapter->feat_cap = IXGBE_FEATURE_NETMAP
| IXGBE_FEATURE_VF
- | IXGBE_FEATURE_RSS
| IXGBE_FEATURE_LEGACY_TX;
/* A tad short on feature flags for VFs, atm. */
@@ -1902,6 +1907,7 @@
case ixgbe_mac_X550EM_x_vf:
case ixgbe_mac_X550EM_a_vf:
adapter->feat_cap |= IXGBE_FEATURE_NEEDS_CTXD;
+ adapter->feat_cap |= IXGBE_FEATURE_RSS;
break;
default:
break;
Index: head/sys/dev/ixgbe/ix_txrx.c
===================================================================
--- head/sys/dev/ixgbe/ix_txrx.c
+++ head/sys/dev/ixgbe/ix_txrx.c
@@ -464,6 +464,12 @@
ri->iri_flowid = le32toh(rxd->wb.lower.hi_dword.rss);
ri->iri_rsstype = ixgbe_determine_rsstype(pkt_info);
+ if ((adapter->feat_en & IXGBE_FEATURE_RSS) == 0) {
+ if (ri->iri_rsstype == M_HASHTYPE_OPAQUE)
+ ri->iri_rsstype = M_HASHTYPE_NONE;
+ else
+ ri->iri_rsstype = M_HASHTYPE_OPAQUE_HASH;
+ }
ri->iri_vtag = vtag;
ri->iri_nfrags = i;
if (vtag)

File Metadata

Mime Type
text/plain
Expires
Sat, Jan 25, 8:31 PM (19 h, 12 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16162282
Default Alt Text
D21705.diff (1 KB)

Event Timeline