vmxnet3: use static RSS key
authorStephen Hemminger <stephen@networkplumber.org>
Tue, 15 Jan 2013 07:28:34 +0000 (07:28 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 16 Jan 2013 19:40:52 +0000 (14:40 -0500)
Rather than generating a different RSS key on each boot, just use
a predetermined value that will map same flow to same value on
every device for more predictable testing. This is already done
on most hardware drivers.

Initial key value just some arbitrary bits extracted once
from /dev/random.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vmxnet3/vmxnet3_drv.c

index 45c39cc..9777dc6 100644 (file)
@@ -2157,6 +2157,14 @@ vmxnet3_setup_driver_shared(struct vmxnet3_adapter *adapter)
 
        if (adapter->rss) {
                struct UPT1_RSSConf *rssConf = adapter->rss_conf;
+               static const uint8_t rss_key[UPT1_RSS_MAX_KEY_SIZE] = {
+                       0x3b, 0x56, 0xd1, 0x56, 0x13, 0x4a, 0xe7, 0xac,
+                       0xe8, 0x79, 0x09, 0x75, 0xe8, 0x65, 0x79, 0x28,
+                       0x35, 0x12, 0xb9, 0x56, 0x7c, 0x76, 0x4b, 0x70,
+                       0xd8, 0x56, 0xa3, 0x18, 0x9b, 0x0a, 0xee, 0xf3,
+                       0x96, 0xa6, 0x9f, 0x8f, 0x9e, 0x8c, 0x90, 0xc9,
+               };
+
                devRead->misc.uptFeatures |= UPT1_F_RSS;
                devRead->misc.numRxQueues = adapter->num_rx_queues;
                rssConf->hashType = UPT1_RSS_HASH_TYPE_TCP_IPV4 |
@@ -2166,7 +2174,8 @@ vmxnet3_setup_driver_shared(struct vmxnet3_adapter *adapter)
                rssConf->hashFunc = UPT1_RSS_HASH_FUNC_TOEPLITZ;
                rssConf->hashKeySize = UPT1_RSS_MAX_KEY_SIZE;
                rssConf->indTableSize = VMXNET3_RSS_IND_TABLE_SIZE;
-               get_random_bytes(&rssConf->hashKey[0], rssConf->hashKeySize);
+               memcpy(rssConf->hashKey, rss_key, sizeof(rss_key));
+
                for (i = 0; i < rssConf->indTableSize; i++)
                        rssConf->indTable[i] = ethtool_rxfh_indir_default(
                                i, adapter->num_rx_queues);