Some RSS issues discovered by Adrian, missing header, variable

names fat fingered, incorrect hash config setup. Thanks :)

MFC after: 1 week
This commit is contained in:
Jack F Vogel 2015-01-16 19:11:58 +00:00
parent b15dc00338
commit dcd7b3b269
3 changed files with 19 additions and 7 deletions

View File

@ -38,6 +38,10 @@
#include "ixl.h"
#include "ixl_pf.h"
#ifdef RSS
#include <net/rss_config.h>
#endif
/*********************************************************************
* Driver version
*********************************************************************/
@ -3249,7 +3253,7 @@ static void ixl_config_rss(struct ixl_vsi *vsi)
* num_queues.)
*/
que_id = rss_get_indirection_to_bucket(i);
que_id = que_id % adapter->num_queues;
que_id = que_id % vsi->num_queues;
#else
que_id = j;
#endif

View File

@ -38,10 +38,14 @@
#include "ixl.h"
#include "ixlv.h"
#ifdef RSS
#include <net/rss_config.h>
#endif
/*********************************************************************
* Driver version
*********************************************************************/
char ixlv_driver_version[] = "1.2.0";
char ixlv_driver_version[] = "1.2.1";
/*********************************************************************
* PCI Device ID Table
@ -2596,12 +2600,12 @@ ixlv_config_rss(struct ixlv_sc *sc)
set_hena |= ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV4_UDP);
if (rss_hash_config & RSS_HASHTYPE_RSS_IPV6)
set_hena |= ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV6_OTHER);
if (rss_hash_config & RSS_HASHTYPE_RSS_IPV6_EX)
set_hena |= ((u64)1 << I40E_FILTER_PCTYPE_FRAG_IPV6);
if (rss_hash_config & RSS_HASHTYPE_RSS_TCP_IPV6)
set_hena |= ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV6_TCP);
if (rss_hash_config & RSS_HASHTYPE_RSS_UDP_IPV6)
set_hena |= ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV6_UDP);
if (rss_hash_config & RSS_HASHTYPE_RSS_UDP_IPV6_EX)
set_hena |= IXGBE_MRQC_RSS_FIELD_IPV6_EX_UDP;
#else
set_hena =
((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV4_UDP) |
@ -2633,7 +2637,7 @@ ixlv_config_rss(struct ixlv_sc *sc)
* num_queues.)
*/
que_id = rss_get_indirection_to_bucket(i);
que_id = que_id % adapter->num_queues;
que_id = que_id % vsi->num_queues;
#else
que_id = j;
#endif

View File

@ -43,6 +43,10 @@
#include "opt_rss.h"
#include "ixl.h"
#ifdef RSS
#include <net/rss_config.h>
#endif
/* Local Prototypes */
static void ixl_rx_checksum(struct mbuf *, u32, u32, u8);
static void ixl_refresh_mbufs(struct ixl_queue *, int);
@ -1367,7 +1371,7 @@ ixl_rx_discard(struct rx_ring *rxr, int i)
#ifdef RSS
/*
** i40e_ptype_to_hash: parse the packet type
** ixl_ptype_to_hash: parse the packet type
** to determine the appropriate hash.
*/
static inline int
@ -1376,7 +1380,7 @@ ixl_ptype_to_hash(u8 ptype)
struct i40e_rx_ptype_decoded decoded;
u8 ex = 0
decode = decode_rx_desc_ptype(ptype);
decoded = decode_rx_desc_ptype(ptype);
ex = decoded.outer_frag;
if (!decoded.known)