Home
last modified time | relevance | path

Searched refs:indir (Results 1 – 25 of 49) sorted by relevance

12

/linux/drivers/net/ethernet/mellanox/mlx5/core/en/
H A Drss.c73 struct mlx5e_rss_params_indir indir;
91 return rss->indir.table; in mlx5e_rss_params_indir_modify_actual_size()
96 rss->indir.actual_table_size = size; in mlx5e_rss_params_indir_init()
104 u32 old_size = rss->indir.actual_table_size; in mlx5e_rss_params_indir_init()
108 rss->indir.table[i] = rss->indir.table[i % old_size]; in mlx5e_rss_params_indir_cleanup()
114 ethtool_rxfh_indir_resize(netdev, rss->indir.table, in mlx5e_rss_copy()
115 rss->indir.actual_table_size, new_size); in mlx5e_rss_copy()
118 int mlx5e_rss_params_indir_init(struct mlx5e_rss_params_indir *indir, in mlx5e_rss_copy()
121 indir in mlx5e_rss_copy()
72 struct mlx5e_rss_params_indir indir; global() member
93 mlx5e_rss_params_indir_init(struct mlx5e_rss_params_indir * indir,u32 actual_table_size,u32 max_table_size) mlx5e_rss_params_indir_init() argument
106 mlx5e_rss_params_indir_cleanup(struct mlx5e_rss_params_indir * indir) mlx5e_rss_params_indir_cleanup() argument
579 mlx5e_rss_get_rxfh(struct mlx5e_rss * rss,u32 * indir,u8 * key,u8 * hfunc,bool * symmetric) mlx5e_rss_get_rxfh() argument
597 mlx5e_rss_set_rxfh(struct mlx5e_rss * rss,const u32 * indir,const u8 * key,const u8 * hfunc,const bool * symmetric,u32 * rqns,u32 * vhca_ids,unsigned int num_rqns) mlx5e_rss_set_rxfh() argument
[all...]
H A Drqt.c49 void mlx5e_rss_params_indir_init_uniform(struct mlx5e_rss_params_indir *indir, in fill_rqn_list()
54 for (i = 0; i < indir->actual_table_size; i++) in fill_rqn_list()
55 indir->table[i] = i % num_channels; in fill_rqn_list()
128 u8 hfunc, struct mlx5e_rss_params_indir *indir) in mlx5e_calc_indir_rqns()
132 for (i = 0; i < indir->actual_table_size; i++) { in mlx5e_calc_indir_rqns()
136 ix = mlx5e_bits_invert(ix, ilog2(indir->actual_table_size)); in mlx5e_calc_indir_rqns()
138 ix = indir->table[ix]; in mlx5e_rqt_init_indir()
142 * ethtool: indir table refers to non-existent RQs. in mlx5e_rqt_init_indir()
155 u8 hfunc, struct mlx5e_rss_params_indir *indir) in mlx5e_rqt_init_indir()
160 rss_rqns = kvmalloc_array(indir in mlx5e_rqt_init_indir()
34 mlx5e_rss_params_indir_init_uniform(struct mlx5e_rss_params_indir * indir,unsigned int num_channels) mlx5e_rss_params_indir_init_uniform() argument
113 mlx5e_calc_indir_rqns(u32 * rss_rqns,u32 * rqns,u32 * rss_vhca_ids,u32 * vhca_ids,unsigned int num_rqns,u8 hfunc,struct mlx5e_rss_params_indir * indir) mlx5e_calc_indir_rqns() argument
140 mlx5e_rqt_init_indir(struct mlx5e_rqt * rqt,struct mlx5_core_dev * mdev,u32 * rqns,u32 * vhca_ids,unsigned int num_rqns,u8 hfunc,struct mlx5e_rss_params_indir * indir) mlx5e_rqt_init_indir() argument
232 mlx5e_rqt_redirect_indir(struct mlx5e_rqt * rqt,u32 * rqns,u32 * vhca_ids,unsigned int num_rqns,u8 hfunc,struct mlx5e_rss_params_indir * indir) mlx5e_rqt_redirect_indir() argument
[all...]
H A Drqt.h20 void mlx5e_rss_params_indir_init_uniform(struct mlx5e_rss_params_indir *indir,
33 u8 hfunc, struct mlx5e_rss_params_indir *indir);
45 u8 hfunc, struct mlx5e_rss_params_indir *indir);
H A Drx_res.c238 u32 *indir, u8 *key, u8 *hfunc, bool *symmetric) in mlx5e_rx_res_rss_set_rxfh()
247 mlx5e_rss_get_rxfh(rss, indir, key, hfunc, symmetric); in mlx5e_rx_res_rss_set_rxfh()
251 const u32 *indir, const u8 *key, const u8 *hfunc, in mlx5e_rx_res_rss_get_hash_fields()
264 return mlx5e_rss_set_rxfh(rss, indir, key, hfunc, symmetric,
220 mlx5e_rx_res_rss_get_rxfh(struct mlx5e_rx_res * res,u32 rss_idx,u32 * indir,u8 * key,u8 * hfunc,bool * symmetric) mlx5e_rx_res_rss_get_rxfh() argument
233 mlx5e_rx_res_rss_set_rxfh(struct mlx5e_rx_res * res,u32 rss_idx,const u32 * indir,const u8 * key,const u8 * hfunc,const bool * symmetric) mlx5e_rx_res_rss_set_rxfh() argument
/linux/drivers/net/ethernet/mellanox/mlx5/core/esw/
H A Dindir_table.c49 struct mlx5_esw_indir_table *indir = kvzalloc_obj(*indir); 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()
60 mlx5_esw_indir_table_destroy(struct mlx5_esw_indir_table *indir) in mlx5_esw_indir_table_destroy() argument
62 mutex_destroy(&indir->lock); in mlx5_esw_indir_table_destroy()
63 kvfree(indir); in mlx5_esw_indir_table_destroy()
293 hash_add(esw->fdb_table.offloads.indir->table, &e->hlist, in mlx5_esw_indir_table_entry_create()
316 hash_for_each_possible(esw->fdb_table.offloads.indir->table, e, hlist, key) in mlx5_esw_indir_table_entry_lookup()
[all …]
H A Dindir_table.h12 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
/linux/net/ethtool/
H A Drss.c168 rxfh.indir = data->indir_table; in rss_prepare_get()
653 "size (%d) mismatch with device indir table (%d)", in rss_set_prep_indir()
659 alloc_size = array_size(data->indir_size, sizeof(rxfh->indir[0])); in rss_set_prep_indir()
660 rxfh->indir = kzalloc(alloc_size, GFP_KERNEL); in rss_set_prep_indir()
661 if (!rxfh->indir) in rss_set_prep_indir()
664 nla_memcpy(rxfh->indir, tb[ETHTOOL_A_RSS_INDIR], alloc_size); in rss_set_prep_indir()
666 if (rxfh->indir[i] < num_rx_rings) in rss_set_prep_indir()
671 i, rxfh->indir[i]); in rss_set_prep_indir()
679 rxfh->indir[i] = rxfh->indir[ in rss_set_prep_indir()
[all...]
/linux/drivers/net/ethernet/sfc/
H A Dethtool_common.c1177 if (rxfh->indir) in efx_ethtool_get_rxfh()
1178 memcpy(rxfh->indir, efx->rss_context.rx_indir_table, in efx_ethtool_get_rxfh()
1193 const u32 *indir = rxfh->indir; in efx_ethtool_modify_rxfh_context() local
1212 if (!indir) in efx_ethtool_modify_rxfh_context()
1213 indir = ethtool_rxfh_context_indir(ctx); in efx_ethtool_modify_rxfh_context()
1215 return efx->type->rx_push_rss_context_config(efx, priv, indir, key, in efx_ethtool_modify_rxfh_context()
1236 if (!rxfh->indir) in efx_ethtool_create_rxfh_context()
1272 u32 *indir = rxfh->indir; in efx_ethtool_set_rxfh() local
1284 if (!indir && !key) in efx_ethtool_set_rxfh()
1289 if (!indir) in efx_ethtool_set_rxfh()
[all …]
H A Drx_common.h89 void efx_set_default_rx_indir_table(struct efx_nic *efx, u32 *indir);
/linux/tools/testing/selftests/drivers/net/hw/
H A Dtoeplitz.c546 if (rsp->_count.indir > RSS_MAX_INDIR) in read_rss_dev_info_ynl()
548 rsp->_count.indir, RSS_MAX_INDIR); in read_rss_dev_info_ynl()
551 if (rsp->_count.indir) { in read_rss_dev_info_ynl()
552 memcpy(rss_indir_tbl, rsp->indir, in read_rss_dev_info_ynl()
553 rsp->_count.indir * sizeof(rss_indir_tbl[0])); in read_rss_dev_info_ynl()
554 rss_indir_tbl_size = rsp->_count.indir; in read_rss_dev_info_ynl()
/linux/drivers/net/ethernet/hisilicon/hns3/hns3_common/
H A Dhclge_comm_rss.c277 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()
H A Dhclge_comm_rss.h107 u32 *indir, u16 rss_ind_tbl_size);
118 struct hclge_comm_hw *hw, const u16 *indir);
/linux/drivers/net/ethernet/hisilicon/hns/
H A Dhns_ae_adapt.c880 static int hns_ae_get_rss(struct hnae_handle *handle, u32 *indir, u8 *key, in hns_ae_get_rss() argument
894 if (indir) in hns_ae_get_rss()
895 memcpy(indir, ppe_cb->rss_indir_table, in hns_ae_get_rss()
896 HNS_PPEV2_RSS_IND_TBL_SIZE * sizeof(*indir)); in hns_ae_get_rss()
901 static int hns_ae_set_rss(struct hnae_handle *handle, const u32 *indir, in hns_ae_set_rss() argument
912 if (indir) { in hns_ae_set_rss()
914 memcpy(ppe_cb->rss_indir_table, indir, in hns_ae_set_rss()
915 HNS_PPEV2_RSS_IND_TBL_SIZE * sizeof(*indir)); in hns_ae_set_rss()
/linux/drivers/net/ethernet/marvell/octeontx2/nic/
H A Dotx2_ethtool.c835 ind_tbl = rxfh->indir; in otx2_create_rxfh()
862 if (rxfh->indir) in otx2_modify_rxfh()
863 otx2_set_rss_table(pfvf, rxfh->rss_context, rxfh->indir); in otx2_modify_rxfh()
909 if (rxfh->indir) { in otx2_set_rxfh()
911 rss->ind_tbl[idx] = rxfh->indir[idx]; in otx2_set_rxfh()
924 u32 *indir = rxfh->indir; in otx2_get_rxfh() local
930 if (!indir) in otx2_get_rxfh()
936 indir[idx] = ethtool_rxfh_indir_default(idx, rx_queues); in otx2_get_rxfh()
944 indir[idx] = rss->ind_tbl[idx]; in otx2_get_rxfh()
/linux/drivers/net/ethernet/marvell/mvpp2/
H A Dmvpp2_cls.c1488 mvpp22_rxfh_indir(port, table->indir[i])); in mvpp22_rss_fill_table()
1587 const u32 *indir) in mvpp22_port_rss_ctx_indir_set() argument
1596 memcpy(rss_table->indir, indir, in mvpp22_port_rss_ctx_indir_set()
1597 MVPP22_RSS_TABLE_ENTRIES * sizeof(rss_table->indir[0])); in mvpp22_port_rss_ctx_indir_set()
1605 u32 *indir) in mvpp22_port_rss_ctx_indir_get() argument
1614 memcpy(indir, rss_table->indir, in mvpp22_port_rss_ctx_indir_get()
1615 MVPP22_RSS_TABLE_ENTRIES * sizeof(rss_table->indir[0])); in mvpp22_port_rss_ctx_indir_get()
1726 table->indir[i] = ethtool_rxfh_indir_default(i, port->nrxqs); in mvpp22_port_rss_init()
H A Dmvpp2_cls.h271 const u32 *indir);
273 u32 *indir);
/linux/drivers/net/ethernet/sfc/siena/
H A Dethtool_common.c1165 if (rxfh->indir) in efx_siena_ethtool_get_rxfh()
1166 memcpy(rxfh->indir, efx->rss_context.rx_indir_table, in efx_siena_ethtool_get_rxfh()
1179 u32 *indir = rxfh->indir; in efx_siena_ethtool_set_rxfh() local
1187 if (!indir && !key) in efx_siena_ethtool_set_rxfh()
1192 if (!indir) in efx_siena_ethtool_set_rxfh()
1193 indir = efx->rss_context.rx_indir_table; in efx_siena_ethtool_set_rxfh()
1195 return efx->type->rx_push_rss_config(efx, true, indir, key); in efx_siena_ethtool_set_rxfh()
/linux/drivers/net/ethernet/google/gve/
H A Dgve_ethtool.c905 if (rxfh->indir) { in gve_get_rss_config_cache()
907 memcpy(rxfh->indir, rss_config->hash_lut, in gve_get_rss_config_cache()
908 priv->rss_lut_size * sizeof(*rxfh->indir)); in gve_get_rss_config_cache()
935 if (rxfh->indir) in gve_set_rss_config_cache()
936 memcpy(rss_config->hash_lut, rxfh->indir, in gve_set_rss_config_cache()
937 priv->rss_lut_size * sizeof(*rxfh->indir)); in gve_set_rss_config_cache()
/linux/drivers/net/ethernet/huawei/hinic/
H A Dhinic_ethtool.c1061 const u32 *indir, const u8 *key) in __set_rss_rxfh() argument
1066 if (indir) { in __set_rss_rxfh()
1075 memcpy(nic_dev->rss_indir_user, indir, in __set_rss_rxfh()
1079 nic_dev->rss_tmpl_idx, indir); in __set_rss_rxfh()
1129 if (rxfh->indir) { in hinic_get_rxfh()
1132 rxfh->indir); in hinic_get_rxfh()
1170 err = __set_rss_rxfh(netdev, rxfh->indir, rxfh->key); in hinic_set_rxfh()
/linux/drivers/net/ethernet/intel/iavf/
H A Diavf_ethtool.c1798 if (rxfh->indir) in iavf_get_rxfh()
1801 rxfh->indir[i] = (u32)adapter->rss_lut[i]; in iavf_get_rxfh()
1839 if (!rxfh->key && !rxfh->indir) in iavf_set_rxfh()
1845 if (rxfh->indir) { in iavf_set_rxfh()
1848 adapter->rss_lut[i] = (u8)(rxfh->indir[i]); in iavf_set_rxfh()
/linux/drivers/net/ethernet/sfc/falcon/
H A Dethtool.c1271 if (rxfh->indir) in ef4_ethtool_get_rxfh()
1272 memcpy(rxfh->indir, efx->rx_indir_table, in ef4_ethtool_get_rxfh()
1288 if (!rxfh->indir) in ef4_ethtool_set_rxfh()
1291 return efx->type->rx_push_rss_config(efx, true, rxfh->indir); in ef4_ethtool_set_rxfh()
/linux/drivers/net/ethernet/mellanox/mlx4/
H A Den_ethtool.c1253 if (!rxfh->indir) in mlx4_en_get_rxfh()
1255 rxfh->indir[i] = i % rss_rings; in mlx4_en_get_rxfh()
1279 if (!rxfh->indir) in mlx4_en_set_rxfh()
1281 if (i > 0 && !rxfh->indir[i] && !rss_rings) in mlx4_en_set_rxfh()
1284 if (rxfh->indir[i] != (i % (rss_rings ?: n))) in mlx4_en_set_rxfh()
1307 if (rxfh->indir) in mlx4_en_set_rxfh()
/linux/drivers/net/ethernet/intel/idpf/
H A Didpf_ethtool.c445 if (rxfh->indir) { in idpf_get_rxfh()
447 rxfh->indir[i] = rxhash_ena ? rss_data->rss_lut[i] : 0; in idpf_get_rxfh()
497 if (rxfh->indir) { in idpf_set_rxfh()
499 rss_data->rss_lut[lut] = rxfh->indir[lut]; in idpf_set_rxfh()
/linux/drivers/net/hyperv/
H A Dnetvsc_drv.c1723 if (rxfh->indir) { in netvsc_get_rxfh()
1725 rxfh->indir[i] = ndc->rx_table[i]; in netvsc_get_rxfh()
1755 if (rxfh->indir) { in netvsc_set_rxfh()
1757 if (rxfh->indir[i] >= ndev->num_chn) in netvsc_set_rxfh()
1761 ndc->rx_table[i] = rxfh->indir[i]; in netvsc_set_rxfh()
1765 if (!rxfh->indir) in netvsc_set_rxfh()
/linux/drivers/net/ethernet/intel/igc/
H A Digc_ethtool.c1497 if (!rxfh->indir) in igc_ethtool_get_rxfh()
1500 rxfh->indir[i] = adapter->rss_indir_tbl[i]; in igc_ethtool_get_rxfh()
1518 if (!rxfh->indir) in igc_ethtool_set_rxfh()
1525 if (rxfh->indir[i] >= num_queues) in igc_ethtool_set_rxfh()
1529 adapter->rss_indir_tbl[i] = rxfh->indir[i]; in igc_ethtool_set_rxfh()

12