svn commit: r277262 - head/sys/dev/ixl

Jack F Vogel jfv at FreeBSD.org
Fri Jan 16 19:12:00 UTC 2015


Author: jfv
Date: Fri Jan 16 19:11:58 2015
New Revision: 277262
URL: https://svnweb.freebsd.org/changeset/base/277262

Log:
  Some RSS issues discovered by Adrian, missing header, variable
  names fat fingered, incorrect hash config setup. Thanks :)
  
  MFC after: 1 week

Modified:
  head/sys/dev/ixl/if_ixl.c
  head/sys/dev/ixl/if_ixlv.c
  head/sys/dev/ixl/ixl_txrx.c

Modified: head/sys/dev/ixl/if_ixl.c
==============================================================================
--- head/sys/dev/ixl/if_ixl.c	Fri Jan 16 19:07:13 2015	(r277261)
+++ head/sys/dev/ixl/if_ixl.c	Fri Jan 16 19:11:58 2015	(r277262)
@@ -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_vs
 		 * 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

Modified: head/sys/dev/ixl/if_ixlv.c
==============================================================================
--- head/sys/dev/ixl/if_ixlv.c	Fri Jan 16 19:07:13 2015	(r277261)
+++ head/sys/dev/ixl/if_ixlv.c	Fri Jan 16 19:11:58 2015	(r277262)
@@ -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

Modified: head/sys/dev/ixl/ixl_txrx.c
==============================================================================
--- head/sys/dev/ixl/ixl_txrx.c	Fri Jan 16 19:07:13 2015	(r277261)
+++ head/sys/dev/ixl/ixl_txrx.c	Fri Jan 16 19:11:58 2015	(r277262)
@@ -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 
 
 #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)


More information about the svn-src-head mailing list