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:
parent
a8aea84981
commit
0deca83ff1
@ -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.
|
||||||
|
@ -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 {
|
||||||
|
@ -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))
|
||||||
|
Loading…
Reference in New Issue
Block a user