mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-10-31 21:06:18 +01:00
axgbe: Use the common RSS key without options RSS
Fetch the common key in the PCI iflib frontend regardless of options RSS and make the key API declaration available in both configurations. Retain the existing hash-field selection and queue-placement branches. The independent ARM frontend is unchanged. Reviewed by: gallatin MFC after: 2 weeks Sponsored by: BBOX.io Differential Revision: https://reviews.freebsd.org/D59794
This commit is contained in:
1 parent
772994d774
commit
e94de94f8d
1 file changed
+6
-4
@@ -59,8 +59,8 @@
|
||||
#include "opt_inet6.h"
|
||||
#include "opt_rss.h"
|
||||
|
||||
#ifdef RSS
|
||||
#include <net/rss_config.h>
|
||||
#ifdef RSS
|
||||
#include <netinet/in_rss.h>
|
||||
#endif
|
||||
|
||||
@@ -723,13 +723,17 @@ axgbe_initialize_rss_mapping(struct xgbe_prv_data *pdata)
|
||||
{
|
||||
int i;
|
||||
|
||||
/* Get RSS key */
|
||||
#ifdef RSS
|
||||
int qid;
|
||||
uint32_t rss_hash_config = 0;
|
||||
#endif
|
||||
|
||||
/* Get RSS key independently of software RSS queue placement. */
|
||||
_Static_assert(sizeof(pdata->rss_key) == RSS_KEYSIZE,
|
||||
"RSS key size mismatch");
|
||||
rss_getkey((uint8_t *)&pdata->rss_key);
|
||||
|
||||
#ifdef RSS
|
||||
rss_hash_config = rss_gethashconfig();
|
||||
|
||||
if (rss_hash_config & RSS_HASHTYPE_RSS_IPV4)
|
||||
@@ -739,8 +743,6 @@ axgbe_initialize_rss_mapping(struct xgbe_prv_data *pdata)
|
||||
if (rss_hash_config & RSS_HASHTYPE_RSS_UDP_IPV4)
|
||||
XGMAC_SET_BITS(pdata->rss_options, MAC_RSSCR, UDP4TE, 1);
|
||||
#else
|
||||
arc4rand(&pdata->rss_key, ARRAY_SIZE(pdata->rss_key), 0);
|
||||
|
||||
XGMAC_SET_BITS(pdata->rss_options, MAC_RSSCR, IP2TE, 1);
|
||||
XGMAC_SET_BITS(pdata->rss_options, MAC_RSSCR, TCP4TE, 1);
|
||||
XGMAC_SET_BITS(pdata->rss_options, MAC_RSSCR, UDP4TE, 1);
|
||||
|
||||
Reference in new issue
Block a user