aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Hemminger <stephen@networkplumber.org>2013-01-15 02:28:34 -0500
committerDavid S. Miller <davem@davemloft.net>2013-01-16 14:40:52 -0500
commit66d3591036097a30d22d8c622e332797bc5070d7 (patch)
treeab86ae97c02e20c592097dd144ea44da06b78acc
parent4db37a78561c4f6ff54176257b3098f3d4357759 (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>
-rw-r--r--drivers/net/vmxnet3/vmxnet3_drv.c11
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);