mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-02 08:42:48 +00:00
if_ixv: disable RSS configuration on 82599 and X540 VFs
It is reported that those VFs share their RSS configuration with PF and, thus, they cannot be configured independently. Also: - add missing opt_rss.h to if_ixv.c, otherwise RSS kernel option could not be seen - do not enable IXGBE_FEATURE_RSS on the older VFs - set flowid / hash type to M_HASHTYPE_NONE or M_HASHTYPE_OPAQUE_HASH (based on what the hardware reports) if IXGBE_FEATURE_RSS is not set Reviewed by: nobody MFC after: 4 weeks Sponsored by: Panzura Differential Revision: https://reviews.freebsd.org/D21705
This commit is contained in:
parent
6b4e5d6b72
commit
236204ee0f
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=354349
@ -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 @@ ixv_initialize_receive_units(if_ctx_t ctx)
|
||||
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 @@ ixv_init_device_features(struct adapter *adapter)
|
||||
{
|
||||
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 @@ ixv_init_device_features(struct adapter *adapter)
|
||||
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;
|
||||
|
@ -464,6 +464,12 @@ ixgbe_isc_rxd_pkt_get(void *arg, if_rxd_info_t ri)
|
||||
|
||||
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)
|
||||
|
Loading…
Reference in New Issue
Block a user