| /drivers/net/ethernet/mellanox/mlx5/core/en/ |
| A D | rss.c | 98 if (!indir->table) in mlx5e_rss_params_indir_init() 116 if (to->indir.actual_table_size != from->indir.actual_table_size || in mlx5e_rss_copy() 117 to->indir.max_table_size != from->indir.max_table_size) { in mlx5e_rss_copy() 120 from->indir.actual_table_size, from->indir.max_table_size, in mlx5e_rss_copy() 121 to->indir.actual_table_size, to->indir.max_table_size); in mlx5e_rss_copy() 128 memcpy(to->indir.table, from->indir.table, in mlx5e_rss_copy() 129 from->indir.actual_table_size * sizeof(*from->indir.table)); in mlx5e_rss_copy() 573 if (indir) in mlx5e_rss_get_rxfh() 574 memcpy(indir, rss->indir.table, in mlx5e_rss_get_rxfh() 622 if (indir) { in mlx5e_rss_set_rxfh() [all …]
|
| A D | rqt.c | 34 void mlx5e_rss_params_indir_init_uniform(struct mlx5e_rss_params_indir *indir, in mlx5e_rss_params_indir_init_uniform() argument 39 for (i = 0; i < indir->actual_table_size; i++) in mlx5e_rss_params_indir_init_uniform() 40 indir->table[i] = i % num_channels; in mlx5e_rss_params_indir_init_uniform() 113 u8 hfunc, struct mlx5e_rss_params_indir *indir) in mlx5e_calc_indir_rqns() argument 117 for (i = 0; i < indir->actual_table_size; i++) { in mlx5e_calc_indir_rqns() 121 ix = mlx5e_bits_invert(ix, ilog2(indir->actual_table_size)); in mlx5e_calc_indir_rqns() 123 ix = indir->table[ix]; in mlx5e_calc_indir_rqns() 140 u8 hfunc, struct mlx5e_rss_params_indir *indir) in mlx5e_rqt_init_indir() argument 163 indir->actual_table_size); in mlx5e_rqt_init_indir() 232 u8 hfunc, struct mlx5e_rss_params_indir *indir) in mlx5e_rqt_redirect_indir() argument [all …]
|
| A D | rss.h | 21 int mlx5e_rss_params_indir_init(struct mlx5e_rss_params_indir *indir, struct mlx5_core_dev *mdev, 23 void mlx5e_rss_params_indir_cleanup(struct mlx5e_rss_params_indir *indir); 50 void mlx5e_rss_get_rxfh(struct mlx5e_rss *rss, u32 *indir, u8 *key, u8 *hfunc, 52 int mlx5e_rss_set_rxfh(struct mlx5e_rss *rss, const u32 *indir,
|
| A D | rqt.h | 19 void mlx5e_rss_params_indir_init_uniform(struct mlx5e_rss_params_indir *indir, 32 u8 hfunc, struct mlx5e_rss_params_indir *indir); 45 u8 hfunc, struct mlx5e_rss_params_indir *indir);
|
| A D | rx_res.h | 52 u32 *indir, u8 *key, u8 *hfunc, 55 const u32 *indir, const u8 *key, const u8 *hfunc,
|
| A D | rx_res.c | 191 u32 *indir, u8 *key, u8 *hfunc, bool *symmetric) in mlx5e_rx_res_rss_get_rxfh() argument 200 mlx5e_rss_get_rxfh(rss, indir, key, hfunc, symmetric); in mlx5e_rx_res_rss_get_rxfh() 204 const u32 *indir, const u8 *key, const u8 *hfunc, in mlx5e_rx_res_rss_set_rxfh() argument 217 return mlx5e_rss_set_rxfh(rss, indir, key, hfunc, symmetric, in mlx5e_rx_res_rss_set_rxfh()
|
| /drivers/net/ethernet/mellanox/mlx5/core/esw/ |
| A D | indir_table.c | 49 struct mlx5_esw_indir_table *indir = kvzalloc(sizeof(*indir), GFP_KERNEL); in mlx5_esw_indir_table_init() local 51 if (!indir) in mlx5_esw_indir_table_init() 54 mutex_init(&indir->lock); in mlx5_esw_indir_table_init() 55 hash_init(indir->table); in mlx5_esw_indir_table_init() 56 return indir; in mlx5_esw_indir_table_init() 62 mutex_destroy(&indir->lock); in mlx5_esw_indir_table_destroy() 63 kvfree(indir); in mlx5_esw_indir_table_destroy() 330 mutex_lock(&esw->fdb_table.offloads.indir->lock); in mlx5_esw_indir_table_get() 348 mutex_unlock(&esw->fdb_table.offloads.indir->lock); in mlx5_esw_indir_table_get() 352 mutex_unlock(&esw->fdb_table.offloads.indir->lock); in mlx5_esw_indir_table_get() [all …]
|
| A D | indir_table.h | 12 mlx5_esw_indir_table_destroy(struct mlx5_esw_indir_table *indir); 38 mlx5_esw_indir_table_destroy(struct mlx5_esw_indir_table *indir) in mlx5_esw_indir_table_destroy() argument
|
| /drivers/net/ethernet/intel/fm10k/ |
| A D | fm10k_ethtool.c | 976 if (indir) in fm10k_write_reta() 977 n = indir[4 * i + j]; in fm10k_write_reta() 1003 if (!indir) in fm10k_get_reta() 1009 indir[0] = (reta << 24) >> 24; in fm10k_get_reta() 1010 indir[1] = (reta << 16) >> 24; in fm10k_get_reta() 1011 indir[2] = (reta << 8) >> 24; in fm10k_get_reta() 1012 indir[3] = (reta) >> 24; in fm10k_get_reta() 1024 if (!indir) in fm10k_set_reta() 1030 if (indir[i] < rss_i) in fm10k_set_reta() 1035 fm10k_write_reta(interface, indir); in fm10k_set_reta() [all …]
|
| /drivers/net/ethernet/sfc/ |
| A D | ethtool_common.c | 1174 if (rxfh->indir) in efx_ethtool_get_rxfh() 1175 memcpy(rxfh->indir, efx->rss_context.rx_indir_table, in efx_ethtool_get_rxfh() 1190 const u32 *indir = rxfh->indir; in efx_ethtool_modify_rxfh_context() local 1209 if (!indir) in efx_ethtool_modify_rxfh_context() 1210 indir = ethtool_rxfh_context_indir(ctx); in efx_ethtool_modify_rxfh_context() 1233 if (!rxfh->indir) in efx_ethtool_create_rxfh_context() 1269 u32 *indir = rxfh->indir; in efx_ethtool_set_rxfh() local 1281 if (!indir && !key) in efx_ethtool_set_rxfh() 1286 if (!indir) in efx_ethtool_set_rxfh() 1287 indir = efx->rss_context.rx_indir_table; in efx_ethtool_set_rxfh() [all …]
|
| /drivers/net/ethernet/microchip/ |
| A D | lan743x_ethtool.c | 961 if (rxfh->indir) { in lan743x_ethtool_get_rxfh() 970 rxfh->indir[byte_index + 0] = in lan743x_ethtool_get_rxfh() 972 rxfh->indir[byte_index + 1] = in lan743x_ethtool_get_rxfh() 974 rxfh->indir[byte_index + 2] = in lan743x_ethtool_get_rxfh() 976 rxfh->indir[byte_index + 3] = in lan743x_ethtool_get_rxfh() 1009 u32 *indir = rxfh->indir; in lan743x_ethtool_set_rxfh() local 1016 if (indir) { in lan743x_ethtool_set_rxfh() 1024 (((indir[byte_index + 0] & 0x000000FF) << 0) | in lan743x_ethtool_set_rxfh() 1025 ((indir[byte_index + 1] & 0x000000FF) << 8) | in lan743x_ethtool_set_rxfh() 1026 ((indir[byte_index + 2] & 0x000000FF) << 16) | in lan743x_ethtool_set_rxfh() [all …]
|
| /drivers/net/ethernet/amazon/ena/ |
| A D | ena_ethtool.c | 872 const u32 *indir) in ena_indirection_table_set() argument 880 ENA_IO_RXQ_IDX(indir[i])); in ena_indirection_table_set() 897 static int ena_indirection_table_get(struct ena_adapter *adapter, u32 *indir) in ena_indirection_table_get() argument 902 if (!indir) in ena_indirection_table_get() 905 rc = ena_com_indirect_table_get(ena_dev, indir); in ena_indirection_table_get() 914 indir[i] = ENA_IO_RXQ_IDX_TO_COMBINED_IDX(indir[i]); in ena_indirection_table_get() 927 rc = ena_indirection_table_get(adapter, rxfh->indir); in ena_get_rxfh() 973 if (rxfh->indir) { in ena_set_rxfh() 974 rc = ena_indirection_table_set(adapter, rxfh->indir); in ena_set_rxfh()
|
| /drivers/net/ethernet/meta/fbnic/ |
| A D | fbnic_ethtool.c | 1232 if (rxfh->indir) { in fbnic_get_rxfh() 1234 rxfh->indir[i] = fbn->indir_tbl[0][i]; in fbnic_get_rxfh() 1246 if (fbn->indir_tbl[idx][i] == indir[i]) in fbnic_set_indir() 1249 fbn->indir_tbl[idx][i] = indir[i]; in fbnic_set_indir() 1285 if (rxfh->indir) in fbnic_set_rxfh() 1286 changes += fbnic_set_indir(fbn, 0, rxfh->indir); in fbnic_set_rxfh() 1355 const u32 *indir = rxfh->indir; in fbnic_modify_rxfh_context() local 1358 if (!indir) in fbnic_modify_rxfh_context() 1359 indir = ethtool_rxfh_context_indir(ctx); in fbnic_modify_rxfh_context() 1382 if (!rxfh->indir) { in fbnic_create_rxfh_context() [all …]
|
| /drivers/net/dsa/ |
| A D | bcm_sf2.h | 152 u32 indir, dir; \ 155 indir = reg_readl(priv, REG_DIR_DATA_READ); \ 157 return (u64)indir << 32 | dir; \
|
| /drivers/net/ethernet/hisilicon/hns3/hns3_common/ |
| A D | hclge_comm_rss.c | 277 struct hclge_comm_hw *hw, const u16 *indir) in hclge_comm_set_rss_indir_table() argument 301 qid = indir[i * HCLGE_COMM_RSS_CFG_TBL_SIZE + j]; in hclge_comm_set_rss_indir_table() 371 u32 *indir, u16 rss_ind_tbl_size) in hclge_comm_get_rss_indir_tbl() argument 375 if (!indir) in hclge_comm_get_rss_indir_tbl() 379 indir[i] = rss_cfg->rss_indirection_tbl[i]; in hclge_comm_get_rss_indir_tbl()
|
| A D | hclge_comm_rss.h | 107 u32 *indir, u16 rss_ind_tbl_size); 118 struct hclge_comm_hw *hw, const u16 *indir);
|
| /drivers/net/ethernet/hisilicon/hns/ |
| A D | hns_ae_adapt.c | 881 static int hns_ae_get_rss(struct hnae_handle *handle, u32 *indir, u8 *key, in hns_ae_get_rss() argument 895 if (indir) in hns_ae_get_rss() 896 memcpy(indir, ppe_cb->rss_indir_table, in hns_ae_get_rss() 897 HNS_PPEV2_RSS_IND_TBL_SIZE * sizeof(*indir)); in hns_ae_get_rss() 902 static int hns_ae_set_rss(struct hnae_handle *handle, const u32 *indir, in hns_ae_set_rss() argument 913 if (indir) { in hns_ae_set_rss() 915 memcpy(ppe_cb->rss_indir_table, indir, in hns_ae_set_rss() 916 HNS_PPEV2_RSS_IND_TBL_SIZE * sizeof(*indir)); in hns_ae_set_rss()
|
| /drivers/net/ethernet/microsoft/mana/ |
| A D | mana_ethtool.c | 310 if (rxfh->indir) { in mana_get_rxfh() 312 rxfh->indir[i] = apc->indir_table[i]; in mana_get_rxfh() 342 if (rxfh->indir) { in mana_set_rxfh() 344 if (rxfh->indir[i] >= apc->num_queues) { in mana_set_rxfh() 352 apc->indir_table[i] = rxfh->indir[i]; in mana_set_rxfh()
|
| /drivers/net/ethernet/marvell/octeontx2/nic/ |
| A D | otx2_ethtool.c | 822 ind_tbl = rxfh->indir; in otx2_create_rxfh() 849 if (rxfh->indir) in otx2_modify_rxfh() 850 otx2_set_rss_table(pfvf, rxfh->rss_context, rxfh->indir); in otx2_modify_rxfh() 896 if (rxfh->indir) { in otx2_set_rxfh() 898 rss->ind_tbl[idx] = rxfh->indir[idx]; in otx2_set_rxfh() 911 u32 *indir = rxfh->indir; in otx2_get_rxfh() local 917 if (!indir) in otx2_get_rxfh() 923 indir[idx] = ethtool_rxfh_indir_default(idx, rx_queues); in otx2_get_rxfh() 931 indir[idx] = rss->ind_tbl[idx]; in otx2_get_rxfh()
|
| /drivers/net/ethernet/marvell/mvpp2/ |
| A D | mvpp2_cls.c | 1488 mvpp22_rxfh_indir(port, table->indir[i])); in mvpp22_rss_fill_table() 1588 const u32 *indir) in mvpp22_port_rss_ctx_indir_set() argument 1597 memcpy(rss_table->indir, indir, in mvpp22_port_rss_ctx_indir_set() 1598 MVPP22_RSS_TABLE_ENTRIES * sizeof(rss_table->indir[0])); in mvpp22_port_rss_ctx_indir_set() 1606 u32 *indir) in mvpp22_port_rss_ctx_indir_get() argument 1615 memcpy(indir, rss_table->indir, in mvpp22_port_rss_ctx_indir_get() 1616 MVPP22_RSS_TABLE_ENTRIES * sizeof(rss_table->indir[0])); in mvpp22_port_rss_ctx_indir_get() 1727 table->indir[i] = ethtool_rxfh_indir_default(i, port->nrxqs); in mvpp22_port_rss_init()
|
| A D | mvpp2_cls.h | 271 const u32 *indir); 273 u32 *indir);
|
| /drivers/net/ethernet/sfc/siena/ |
| A D | ethtool_common.c | 1162 if (rxfh->indir) in efx_siena_ethtool_get_rxfh() 1163 memcpy(rxfh->indir, efx->rss_context.rx_indir_table, in efx_siena_ethtool_get_rxfh() 1176 u32 *indir = rxfh->indir; in efx_siena_ethtool_set_rxfh() local 1184 if (!indir && !key) in efx_siena_ethtool_set_rxfh() 1189 if (!indir) in efx_siena_ethtool_set_rxfh() 1190 indir = efx->rss_context.rx_indir_table; in efx_siena_ethtool_set_rxfh() 1192 return efx->type->rx_push_rss_config(efx, true, indir, key); in efx_siena_ethtool_set_rxfh()
|
| /drivers/net/ethernet/google/gve/ |
| A D | gve_ethtool.c | 870 if (rxfh->indir) { in gve_get_rss_config_cache() 872 memcpy(rxfh->indir, rss_config->hash_lut, in gve_get_rss_config_cache() 873 priv->rss_lut_size * sizeof(*rxfh->indir)); in gve_get_rss_config_cache() 900 if (rxfh->indir) in gve_set_rss_config_cache() 901 memcpy(rss_config->hash_lut, rxfh->indir, in gve_set_rss_config_cache() 902 priv->rss_lut_size * sizeof(*rxfh->indir)); in gve_set_rss_config_cache()
|
| /drivers/net/ethernet/fungible/funeth/ |
| A D | funeth_ethtool.c | 988 if (rxfh->indir) in fun_get_rxfh() 989 memcpy(rxfh->indir, fp->indir_table, in fun_get_rxfh() 1006 const u32 *rss_indir = rxfh->indir ? rxfh->indir : fp->indir_table; in fun_set_rxfh() 1036 if (rxfh->indir) in fun_set_rxfh() 1037 memcpy(fp->indir_table, rxfh->indir, in fun_set_rxfh()
|
| /drivers/net/ethernet/intel/ixgbevf/ |
| A D | ethtool.c | 913 if (rxfh->indir) { in ixgbevf_get_rxfh() 917 rxfh->indir[i] = adapter->rss_indir_tbl[i]; in ixgbevf_get_rxfh() 923 if (!rxfh->indir && !rxfh->key) in ixgbevf_get_rxfh() 927 if (rxfh->indir) in ixgbevf_get_rxfh() 929 rxfh->indir, in ixgbevf_get_rxfh()
|