net: ena: Change RSS related macros and variables names

The formal name changes to "ENA_ADMIN_RSS_INDIRECTION_TABLE_CONFIG".
Indirection is the ability to reference "something" using "something else"
instead of the value itself.
Indirection table, as the name implies, is the ability to reference
CPU/Queue value using hash-to-CPU table instead of CPU/Queue itself.

This patch renames the variable keys_num, which describes the number of
words in the RSS hash key, to key_parts which makes its purpose clearer
in RSS context.

Signed-off-by: Amit Bernstein <amitbern@amazon.com>
Signed-off-by: Shay Agroskin <shayagr@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Shay Agroskin 2020-09-21 11:37:40 +03:00 committed by David S. Miller
parent a8aea84981
commit 0deca83ff1
3 changed files with 16 additions and 15 deletions

View File

@ -274,7 +274,7 @@ RSS
inputs for hash functions. inputs for hash functions.
- The driver configures RSS settings using the AQ SetFeature command - The driver configures RSS settings using the AQ SetFeature command
(ENA_ADMIN_RSS_HASH_FUNCTION, ENA_ADMIN_RSS_HASH_INPUT and (ENA_ADMIN_RSS_HASH_FUNCTION, ENA_ADMIN_RSS_HASH_INPUT and
ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG properties). ENA_ADMIN_RSS_INDIRECTION_TABLE_CONFIG properties).
- If the NETIF_F_RXHASH flag is set, the 32-bit result of the hash - If the NETIF_F_RXHASH flag is set, the 32-bit result of the hash
function delivered in the Rx CQ descriptor is set in the received function delivered in the Rx CQ descriptor is set in the received
SKB. SKB.

View File

@ -5,6 +5,7 @@
#ifndef _ENA_ADMIN_H_ #ifndef _ENA_ADMIN_H_
#define _ENA_ADMIN_H_ #define _ENA_ADMIN_H_
#define ENA_ADMIN_RSS_KEY_PARTS 10
enum ena_admin_aq_opcode { enum ena_admin_aq_opcode {
ENA_ADMIN_CREATE_SQ = 1, ENA_ADMIN_CREATE_SQ = 1,
@ -37,7 +38,7 @@ enum ena_admin_aq_feature_id {
ENA_ADMIN_MAX_QUEUES_EXT = 7, ENA_ADMIN_MAX_QUEUES_EXT = 7,
ENA_ADMIN_RSS_HASH_FUNCTION = 10, ENA_ADMIN_RSS_HASH_FUNCTION = 10,
ENA_ADMIN_STATELESS_OFFLOAD_CONFIG = 11, ENA_ADMIN_STATELESS_OFFLOAD_CONFIG = 11,
ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG = 12, ENA_ADMIN_RSS_INDIRECTION_TABLE_CONFIG = 12,
ENA_ADMIN_MTU = 14, ENA_ADMIN_MTU = 14,
ENA_ADMIN_RSS_HASH_INPUT = 18, ENA_ADMIN_RSS_HASH_INPUT = 18,
ENA_ADMIN_INTERRUPT_MODERATION = 20, ENA_ADMIN_INTERRUPT_MODERATION = 20,
@ -716,11 +717,11 @@ enum ena_admin_hash_functions {
}; };
struct ena_admin_feature_rss_flow_hash_control { struct ena_admin_feature_rss_flow_hash_control {
u32 keys_num; u32 key_parts;
u32 reserved; u32 reserved;
u32 key[10]; u32 key[ENA_ADMIN_RSS_KEY_PARTS];
}; };
struct ena_admin_feature_rss_flow_hash_function { struct ena_admin_feature_rss_flow_hash_function {

View File

@ -1055,11 +1055,10 @@ static void ena_com_hash_key_fill_default_key(struct ena_com_dev *ena_dev)
(ena_dev->rss).hash_key; (ena_dev->rss).hash_key;
netdev_rss_key_fill(&hash_key->key, sizeof(hash_key->key)); netdev_rss_key_fill(&hash_key->key, sizeof(hash_key->key));
/* The key is stored in the device in u32 array /* The key buffer is stored in the device in an array of
* as well as the API requires the key to be passed in this * uint32 elements.
* format. Thus the size of our array should be divided by 4
*/ */
hash_key->keys_num = sizeof(hash_key->key) / sizeof(u32); hash_key->key_parts = ENA_ADMIN_RSS_KEY_PARTS;
} }
static int ena_com_hash_key_allocate(struct ena_com_dev *ena_dev) static int ena_com_hash_key_allocate(struct ena_com_dev *ena_dev)
@ -1123,7 +1122,7 @@ static int ena_com_indirect_table_allocate(struct ena_com_dev *ena_dev,
int ret; int ret;
ret = ena_com_get_feature(ena_dev, &get_resp, ret = ena_com_get_feature(ena_dev, &get_resp,
ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG, 0); ENA_ADMIN_RSS_INDIRECTION_TABLE_CONFIG, 0);
if (unlikely(ret)) if (unlikely(ret))
return ret; return ret;
@ -2335,7 +2334,7 @@ int ena_com_fill_hash_function(struct ena_com_dev *ena_dev,
} }
memcpy(hash_key->key, key, key_len); memcpy(hash_key->key, key, key_len);
rss->hash_init_val = init_val; rss->hash_init_val = init_val;
hash_key->keys_num = key_len >> 2; hash_key->key_parts = key_len / sizeof(hash_key->key[0]);
} }
break; break;
case ENA_ADMIN_CRC32: case ENA_ADMIN_CRC32:
@ -2390,7 +2389,8 @@ int ena_com_get_hash_key(struct ena_com_dev *ena_dev, u8 *key)
ena_dev->rss.hash_key; ena_dev->rss.hash_key;
if (key) if (key)
memcpy(key, hash_key->key, (size_t)(hash_key->keys_num) << 2); memcpy(key, hash_key->key,
(size_t)(hash_key->key_parts) * sizeof(hash_key->key[0]));
return 0; return 0;
} }
@ -2585,9 +2585,9 @@ int ena_com_indirect_table_set(struct ena_com_dev *ena_dev)
int ret; int ret;
if (!ena_com_check_supported_feature_id( if (!ena_com_check_supported_feature_id(
ena_dev, ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG)) { ena_dev, ENA_ADMIN_RSS_INDIRECTION_TABLE_CONFIG)) {
pr_debug("Feature %d isn't supported\n", pr_debug("Feature %d isn't supported\n",
ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG); ENA_ADMIN_RSS_INDIRECTION_TABLE_CONFIG);
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
@ -2602,7 +2602,7 @@ int ena_com_indirect_table_set(struct ena_com_dev *ena_dev)
cmd.aq_common_descriptor.opcode = ENA_ADMIN_SET_FEATURE; cmd.aq_common_descriptor.opcode = ENA_ADMIN_SET_FEATURE;
cmd.aq_common_descriptor.flags = cmd.aq_common_descriptor.flags =
ENA_ADMIN_AQ_COMMON_DESC_CTRL_DATA_INDIRECT_MASK; ENA_ADMIN_AQ_COMMON_DESC_CTRL_DATA_INDIRECT_MASK;
cmd.feat_common.feature_id = ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG; cmd.feat_common.feature_id = ENA_ADMIN_RSS_INDIRECTION_TABLE_CONFIG;
cmd.u.ind_table.size = rss->tbl_log_size; cmd.u.ind_table.size = rss->tbl_log_size;
cmd.u.ind_table.inline_index = 0xFFFFFFFF; cmd.u.ind_table.inline_index = 0xFFFFFFFF;
@ -2640,7 +2640,7 @@ int ena_com_indirect_table_get(struct ena_com_dev *ena_dev, u32 *ind_tbl)
sizeof(struct ena_admin_rss_ind_table_entry); sizeof(struct ena_admin_rss_ind_table_entry);
rc = ena_com_get_feature_ex(ena_dev, &get_resp, rc = ena_com_get_feature_ex(ena_dev, &get_resp,
ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG, ENA_ADMIN_RSS_INDIRECTION_TABLE_CONFIG,
rss->rss_ind_tbl_dma_addr, rss->rss_ind_tbl_dma_addr,
tbl_size, 0); tbl_size, 0);
if (unlikely(rc)) if (unlikely(rc))