diff options
author | Stephen Hemminger <stephen@networkplumber.org> | 2013-01-15 02:28:34 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-01-16 14:40:52 -0500 |
commit | 66d3591036097a30d22d8c622e332797bc5070d7 (patch) | |
tree | ab86ae97c02e20c592097dd144ea44da06b78acc /drivers/net/vmxnet3 | |
parent | 4db37a78561c4f6ff54176257b3098f3d4357759 (diff) |
vmxnet3: use static RSS key
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>
Diffstat (limited to 'drivers/net/vmxnet3')
-rw-r--r-- | drivers/net/vmxnet3/vmxnet3_drv.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c index 45c39cc4da47..9777dc62c536 100644 --- a/drivers/net/vmxnet3/vmxnet3_drv.c +++ b/drivers/net/vmxnet3/vmxnet3_drv.c | |||
@@ -2157,6 +2157,14 @@ vmxnet3_setup_driver_shared(struct vmxnet3_adapter *adapter) | |||
2157 | 2157 | ||
2158 | if (adapter->rss) { | 2158 | if (adapter->rss) { |
2159 | struct UPT1_RSSConf *rssConf = adapter->rss_conf; | 2159 | struct UPT1_RSSConf *rssConf = adapter->rss_conf; |
2160 | static const uint8_t rss_key[UPT1_RSS_MAX_KEY_SIZE] = { | ||
2161 | 0x3b, 0x56, 0xd1, 0x56, 0x13, 0x4a, 0xe7, 0xac, | ||
2162 | 0xe8, 0x79, 0x09, 0x75, 0xe8, 0x65, 0x79, 0x28, | ||
2163 | 0x35, 0x12, 0xb9, 0x56, 0x7c, 0x76, 0x4b, 0x70, | ||
2164 | 0xd8, 0x56, 0xa3, 0x18, 0x9b, 0x0a, 0xee, 0xf3, | ||
2165 | 0x96, 0xa6, 0x9f, 0x8f, 0x9e, 0x8c, 0x90, 0xc9, | ||
2166 | }; | ||
2167 | |||
2160 | devRead->misc.uptFeatures |= UPT1_F_RSS; | 2168 | devRead->misc.uptFeatures |= UPT1_F_RSS; |
2161 | devRead->misc.numRxQueues = adapter->num_rx_queues; | 2169 | devRead->misc.numRxQueues = adapter->num_rx_queues; |
2162 | rssConf->hashType = UPT1_RSS_HASH_TYPE_TCP_IPV4 | | 2170 | rssConf->hashType = UPT1_RSS_HASH_TYPE_TCP_IPV4 | |
@@ -2166,7 +2174,8 @@ vmxnet3_setup_driver_shared(struct vmxnet3_adapter *adapter) | |||
2166 | rssConf->hashFunc = UPT1_RSS_HASH_FUNC_TOEPLITZ; | 2174 | rssConf->hashFunc = UPT1_RSS_HASH_FUNC_TOEPLITZ; |
2167 | rssConf->hashKeySize = UPT1_RSS_MAX_KEY_SIZE; | 2175 | rssConf->hashKeySize = UPT1_RSS_MAX_KEY_SIZE; |
2168 | rssConf->indTableSize = VMXNET3_RSS_IND_TABLE_SIZE; | 2176 | rssConf->indTableSize = VMXNET3_RSS_IND_TABLE_SIZE; |
2169 | get_random_bytes(&rssConf->hashKey[0], rssConf->hashKeySize); | 2177 | memcpy(rssConf->hashKey, rss_key, sizeof(rss_key)); |
2178 | |||
2170 | for (i = 0; i < rssConf->indTableSize; i++) | 2179 | for (i = 0; i < rssConf->indTableSize; i++) |
2171 | rssConf->indTable[i] = ethtool_rxfh_indir_default( | 2180 | rssConf->indTable[i] = ethtool_rxfh_indir_default( |
2172 | i, adapter->num_rx_queues); | 2181 | i, adapter->num_rx_queues); |