svn commit: r301490 - head/sys/dev/sfxge

Andrew Rybchenko arybchik at FreeBSD.org
Mon Jun 6 09:05:07 UTC 2016


Author: arybchik
Date: Mon Jun  6 09:05:06 2016
New Revision: 301490
URL: https://svnweb.freebsd.org/changeset/base/301490

Log:
  sfxge(4): get RSS key to be programmed into NIC from the kernel
  
  Submitted by:   Ivan Malov <Ivan.Malov at oktetlabs.ru>
  Reviewed by:    gnn
  Sponsored by:   Solarflare Communications, Inc.
  Differential Revision:  https://reviews.freebsd.org/D6719

Modified:
  head/sys/dev/sfxge/sfxge_rx.c

Modified: head/sys/dev/sfxge/sfxge_rx.c
==============================================================================
--- head/sys/dev/sfxge/sfxge_rx.c	Mon Jun  6 09:04:20 2016	(r301489)
+++ head/sys/dev/sfxge/sfxge_rx.c	Mon Jun  6 09:05:06 2016	(r301490)
@@ -34,6 +34,8 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
+#include "opt_rss.h"
+
 #include <sys/param.h>
 #include <sys/malloc.h>
 #include <sys/mbuf.h>
@@ -55,6 +57,10 @@ __FBSDID("$FreeBSD$");
 
 #include <machine/in_cksum.h>
 
+#ifdef RSS
+#include <net/rss_config.h>
+#endif
+
 #include "common/efx.h"
 
 
@@ -160,6 +166,9 @@ sfxge_rx_qflush_failed(struct sfxge_rxq 
 	rxq->flush_state = SFXGE_FLUSH_FAILED;
 }
 
+#ifdef RSS
+static uint8_t toep_key[RSS_KEYSIZE];
+#else
 static uint8_t toep_key[] = {
 	0x6d, 0x5a, 0x56, 0xda, 0x25, 0x5b, 0x0e, 0xc2,
 	0x41, 0x67, 0x25, 0x3d, 0x43, 0xa3, 0x8f, 0xb0,
@@ -167,6 +176,7 @@ static uint8_t toep_key[] = {
 	0x77, 0xcb, 0x2d, 0xa3, 0x80, 0x30, 0xf2, 0x0c,
 	0x6a, 0x42, 0xb7, 0x3b, 0xbe, 0xac, 0x01, 0xfa
 };
+#endif
 
 static void
 sfxge_rx_post_refill(void *arg)
@@ -1127,6 +1137,9 @@ sfxge_rx_start(struct sfxge_softc *sc)
 	    (1 << EFX_RX_HASH_IPV4) | (1 << EFX_RX_HASH_TCPIPV4) |
 	    (1 << EFX_RX_HASH_IPV6) | (1 << EFX_RX_HASH_TCPIPV6), B_TRUE);
 
+#ifdef RSS
+	rss_getkey(toep_key);
+#endif
 	if ((rc = efx_rx_scale_key_set(sc->enp, toep_key,
 				       sizeof(toep_key))) != 0)
 		goto fail;


More information about the svn-src-head mailing list