| /linux/drivers/net/ethernet/mellanox/mlx5/core/en/ |
| H A D | rss.c | 165 rss->hash.hfunc = ETH_RSS_HASH_TOP; in mlx5e_rss_params_init() 504 err = mlx5e_rqt_redirect_indir(&rss->rqt, rqns, vhca_ids, num_rqns, rss->hash.hfunc, in mlx5e_rss_apply() 579 void mlx5e_rss_get_rxfh(struct mlx5e_rss *rss, u32 *indir, u8 *key, u8 *hfunc, in mlx5e_rss_get_rxfh() argument 590 if (hfunc) in mlx5e_rss_get_rxfh() 591 *hfunc = rss->hash.hfunc; in mlx5e_rss_get_rxfh() 598 const u8 *key, const u8 *hfunc, const bool *symmetric, in mlx5e_rss_set_rxfh() argument 610 if (hfunc && *hfunc != rss->hash.hfunc) { in mlx5e_rss_set_rxfh() 611 switch (*hfunc) { in mlx5e_rss_set_rxfh() 621 rss->hash.hfunc = *hfunc; in mlx5e_rss_set_rxfh() 625 if (rss->hash.hfunc == ETH_RSS_HASH_TOP) in mlx5e_rss_set_rxfh()
|
| H A D | rqt.c | 113 u8 hfunc, struct mlx5e_rss_params_indir *indir) in mlx5e_calc_indir_rqns() argument 120 if (hfunc == ETH_RSS_HASH_XOR) in mlx5e_calc_indir_rqns() 140 u8 hfunc, struct mlx5e_rss_params_indir *indir) in mlx5e_rqt_init_indir() argument 158 err = mlx5e_calc_indir_rqns(rss_rqns, rqns, rss_vhca_ids, vhca_ids, num_rqns, hfunc, indir); in mlx5e_rqt_init_indir() 232 u8 hfunc, struct mlx5e_rss_params_indir *indir) in mlx5e_rqt_redirect_indir() argument 256 err = mlx5e_calc_indir_rqns(rss_rqns, rqns, rss_vhca_ids, vhca_ids, num_rqns, hfunc, indir); in mlx5e_rqt_redirect_indir()
|
| H A D | tir.c | 99 static int mlx5e_hfunc_to_hw(u8 hfunc) in mlx5e_hfunc_to_hw() argument 101 switch (hfunc) { in mlx5e_hfunc_to_hw() 122 MLX5_SET(tirc, tirc, rx_hash_fn, mlx5e_hfunc_to_hw(rss_hash->hfunc)); in mlx5e_tir_builder_build_rss() 123 if (rss_hash->hfunc == ETH_RSS_HASH_TOP) { in mlx5e_tir_builder_build_rss()
|
| H A D | rqt.h | 32 u8 hfunc, struct mlx5e_rss_params_indir *indir); 45 u8 hfunc, struct mlx5e_rss_params_indir *indir);
|
| H A D | rx_res.c | 220 u32 *indir, u8 *key, u8 *hfunc, bool *symmetric) in mlx5e_rx_res_rss_get_rxfh() argument 229 mlx5e_rss_get_rxfh(rss, indir, key, hfunc, symmetric); in mlx5e_rx_res_rss_get_rxfh() 233 const u32 *indir, const u8 *key, const u8 *hfunc, in mlx5e_rx_res_rss_set_rxfh() argument 246 return mlx5e_rss_set_rxfh(rss, indir, key, hfunc, symmetric, in mlx5e_rx_res_rss_set_rxfh()
|
| /linux/drivers/net/ethernet/hisilicon/hns3/hns3_common/ |
| H A D | hclge_comm_rss.c | 122 const u8 hfunc) in hclge_comm_set_rss_hash_key() argument 127 ret = hclge_comm_parse_rss_hfunc(rss_cfg, hfunc, &hash_algo); in hclge_comm_set_rss_hash_key() 201 const u8 hfunc, u8 *hash_algo) in hclge_comm_parse_rss_hfunc() argument 203 switch (hfunc) { in hclge_comm_parse_rss_hfunc() 347 u8 *hfunc) in hclge_comm_get_rss_hash_info() argument 350 if (hfunc) { in hclge_comm_get_rss_hash_info() 353 *hfunc = ETH_RSS_HASH_TOP; in hclge_comm_get_rss_hash_info() 356 *hfunc = ETH_RSS_HASH_XOR; in hclge_comm_get_rss_hash_info() 359 *hfunc = ETH_RSS_HASH_UNKNOWN; in hclge_comm_get_rss_hash_info() 383 int hclge_comm_set_rss_algo_key(struct hclge_comm_hw *hw, const u8 hfunc, in hclge_comm_set_rss_algo_key() argument [all …]
|
| H A D | hclge_comm_rss.h | 103 const u8 hfunc, u8 *hash_algo); 105 u8 *hfunc); 108 int hclge_comm_set_rss_algo_key(struct hclge_comm_hw *hw, const u8 hfunc, 128 const u8 hfunc);
|
| /linux/net/ethtool/ |
| H A D | rss.c | 19 u32 hfunc; member 174 data->hfunc = rxfh.hfunc; in rss_prepare_get() 192 data->hfunc = ctx->hfunc; in __rss_prepare_ctx() 312 ((data->hfunc && in rss_fill_reply() 313 nla_put_u32(skb, ETHTOOL_A_RSS_HFUNC, data->hfunc)) || in rss_fill_reply() 818 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE) in rss_set_ctx_update() 819 ctx->hfunc = rxfh->hfunc; in rss_set_ctx_update() 852 rxfh.hfunc = data.hfunc; in ethnl_rss_set() 853 ethnl_update_u8(&rxfh.hfunc, tb[ETHTOOL_A_RSS_HFUNC], &mod); in ethnl_rss_set() 854 if (rxfh.hfunc == data.hfunc) in ethnl_rss_set() [all …]
|
| H A D | ioctl.c | 1398 rxfh_dev.hfunc = ETH_RSS_HASH_NO_CHANGE; in ethtool_set_rxfh_indir() 1489 rxfh_dev.hfunc = ctx->hfunc; in ethtool_get_rxfh() 1499 if (copy_to_user(useraddr + offsetof(struct ethtool_rxfh, hfunc), in ethtool_get_rxfh() 1500 &rxfh_dev.hfunc, sizeof(rxfh.hfunc))) { in ethtool_get_rxfh() 1580 rxfh.key_size == 0 && rxfh.hfunc == ETH_RSS_HASH_NO_CHANGE && in ethtool_set_rxfh() 1589 (rxfh.hfunc && rxfh.hfunc != ETH_RSS_HASH_NO_CHANGE) || in ethtool_set_rxfh() 1685 rxfh_dev.hfunc = rxfh.hfunc; in ethtool_set_rxfh() 1745 if (rxfh_dev.hfunc != ETH_RSS_HASH_NO_CHANGE) in ethtool_set_rxfh() 1746 ctx->hfunc = rxfh_dev.hfunc; in ethtool_set_rxfh()
|
| /linux/drivers/net/ethernet/marvell/octeontx2/nic/ |
| H A D | otx2_ethtool.c | 826 if (rxfh->hfunc && rxfh->hfunc != ETH_RSS_HASH_TOP) in otx2_create_rxfh() 828 ctx->hfunc = ETH_RSS_HASH_TOP; in otx2_create_rxfh() 853 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in otx2_modify_rxfh() 854 rxfh->hfunc != ETH_RSS_HASH_TOP) in otx2_modify_rxfh() 893 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in otx2_set_rxfh() 894 rxfh->hfunc != ETH_RSS_HASH_TOP) in otx2_set_rxfh() 929 rxfh->hfunc = ETH_RSS_HASH_TOP; in otx2_get_rxfh()
|
| /linux/drivers/net/ethernet/intel/iavf/ |
| H A D | iavf_ethtool.c | 1509 symm = !!(adapter->hfunc == VIRTCHNL_RSS_ALG_TOEPLITZ_SYMMETRIC); in iavf_set_rxfh_fields() 1789 rxfh->hfunc = ETH_RSS_HASH_TOP; in iavf_get_rxfh() 1790 if (adapter->hfunc == VIRTCHNL_RSS_ALG_TOEPLITZ_SYMMETRIC) in iavf_get_rxfh() 1821 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in iavf_set_rxfh() 1822 rxfh->hfunc != ETH_RSS_HASH_TOP) in iavf_set_rxfh() 1826 adapter->hfunc != VIRTCHNL_RSS_ALG_TOEPLITZ_SYMMETRIC) { in iavf_set_rxfh() 1829 adapter->hfunc = VIRTCHNL_RSS_ALG_TOEPLITZ_SYMMETRIC; in iavf_set_rxfh() 1832 adapter->hfunc != VIRTCHNL_RSS_ALG_TOEPLITZ_ASYMMETRIC) { in iavf_set_rxfh() 1833 adapter->hfunc = VIRTCHNL_RSS_ALG_TOEPLITZ_ASYMMETRIC; in iavf_set_rxfh()
|
| H A D | iavf_virtchnl.c | 1275 vrh->rss_algorithm = adapter->hfunc; in iavf_set_rss_hfunc() 2551 if (adapter->hfunc == in iavf_virtchnl_completion() 2553 adapter->hfunc = in iavf_virtchnl_completion() 2556 adapter->hfunc = in iavf_virtchnl_completion()
|
| H A D | iavf.h | 455 enum virtchnl_rss_algorithm hfunc; member
|
| /linux/drivers/net/ethernet/sfc/ |
| H A D | ethtool_common.c | 1176 rxfh->hfunc = ETH_RSS_HASH_TOP; in efx_ethtool_get_rxfh() 1202 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in efx_ethtool_modify_rxfh_context() 1203 rxfh->hfunc != ETH_RSS_HASH_TOP) { in efx_ethtool_modify_rxfh_context() 1241 if (rxfh->hfunc == ETH_RSS_HASH_NO_CHANGE) in efx_ethtool_create_rxfh_context() 1242 ctx->hfunc = ETH_RSS_HASH_TOP; in efx_ethtool_create_rxfh_context() 1276 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in efx_ethtool_set_rxfh() 1277 rxfh->hfunc != ETH_RSS_HASH_TOP) in efx_ethtool_set_rxfh()
|
| /linux/drivers/net/ethernet/hisilicon/hns/ |
| H A D | hns_ae_adapt.c | 881 u8 *hfunc) in hns_ae_get_rss() argument 886 if (hfunc) in hns_ae_get_rss() 887 *hfunc = ETH_RSS_HASH_TOP; in hns_ae_get_rss() 902 const u8 *key, const u8 hfunc) in hns_ae_set_rss() argument
|
| /linux/drivers/net/ethernet/mellanox/mlx4/ |
| H A D | en_ethtool.c | 1220 static int mlx4_en_check_rxfh_func(struct net_device *dev, u8 hfunc) in mlx4_en_check_rxfh_func() argument 1225 if (hfunc == ETH_RSS_HASH_TOP) { in mlx4_en_check_rxfh_func() 1231 } else if (hfunc == ETH_RSS_HASH_XOR) { in mlx4_en_check_rxfh_func() 1259 rxfh->hfunc = priv->rss_hash_fn; in mlx4_en_get_rxfh() 1295 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE) { in mlx4_en_set_rxfh() 1296 err = mlx4_en_check_rxfh_func(dev, rxfh->hfunc); in mlx4_en_set_rxfh() 1311 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE) in mlx4_en_set_rxfh() 1312 priv->rss_hash_fn = rxfh->hfunc; in mlx4_en_set_rxfh()
|
| /linux/drivers/net/ethernet/huawei/hinic/ |
| H A D | hinic_ethtool.c | 1127 rxfh->hfunc = hash_engine_type ? ETH_RSS_HASH_TOP : ETH_RSS_HASH_XOR; in hinic_get_rxfh() 1155 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE) { in hinic_set_rxfh() 1156 if (rxfh->hfunc != ETH_RSS_HASH_TOP && in hinic_set_rxfh() 1157 rxfh->hfunc != ETH_RSS_HASH_XOR) in hinic_set_rxfh() 1160 nic_dev->rss_hash_engine = (rxfh->hfunc == ETH_RSS_HASH_XOR) ? in hinic_set_rxfh()
|
| /linux/drivers/net/ethernet/meta/fbnic/ |
| H A D | fbnic_ethtool.c | 1300 rxfh->hfunc = ETH_RSS_HASH_TOP; in fbnic_get_rxfh() 1341 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in fbnic_set_rxfh() 1342 rxfh->hfunc != ETH_RSS_HASH_TOP) in fbnic_set_rxfh() 1454 if (rxfh->hfunc && rxfh->hfunc != ETH_RSS_HASH_TOP) { in fbnic_create_rxfh_context() 1458 ctx->hfunc = ETH_RSS_HASH_TOP; in fbnic_create_rxfh_context()
|
| /linux/drivers/net/ethernet/hisilicon/hns3/ |
| H A D | hns3_ethtool.c | 949 &rxfh->hfunc); in hns3_get_rss() 963 rxfh->hfunc != ETH_RSS_HASH_TOP) || in hns3_set_rss() 964 (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in hns3_set_rss() 965 rxfh->hfunc != ETH_RSS_HASH_TOP && in hns3_set_rss() 966 rxfh->hfunc != ETH_RSS_HASH_XOR)) { in hns3_set_rss() 978 rxfh->hfunc); in hns3_set_rss()
|
| /linux/drivers/net/ethernet/sfc/siena/ |
| H A D | ethtool_common.c | 1164 rxfh->hfunc = ETH_RSS_HASH_TOP; in efx_siena_ethtool_get_rxfh() 1183 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in efx_siena_ethtool_set_rxfh() 1184 rxfh->hfunc != ETH_RSS_HASH_TOP) in efx_siena_ethtool_set_rxfh()
|
| /linux/drivers/net/ethernet/sfc/falcon/ |
| H A D | ethtool.c | 1270 rxfh->hfunc = ETH_RSS_HASH_TOP; in ef4_ethtool_get_rxfh() 1285 (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in ef4_ethtool_set_rxfh() 1286 rxfh->hfunc != ETH_RSS_HASH_TOP)) in ef4_ethtool_set_rxfh()
|
| /linux/drivers/net/ethernet/netronome/nfp/ |
| H A D | nfp_net_ethtool.c | 1815 rxfh->hfunc = nn->rss_hfunc; in nfp_net_get_rxfh() 1816 if (rxfh->hfunc >= 1 << ETH_RSS_HASH_FUNCS_COUNT) in nfp_net_get_rxfh() 1817 rxfh->hfunc = ETH_RSS_HASH_UNKNOWN; in nfp_net_get_rxfh() 1830 !(rxfh->hfunc == ETH_RSS_HASH_NO_CHANGE || in nfp_net_set_rxfh() 1831 rxfh->hfunc == nn->rss_hfunc)) in nfp_net_set_rxfh()
|
| /linux/drivers/net/ethernet/intel/ice/virt/ |
| H A D | rss.c | 1783 u8 hfunc = ICE_AQ_VSI_Q_OPT_RSS_HASH_TPLZ; in ice_vc_config_rss_hfunc() local 1808 hfunc = ICE_AQ_VSI_Q_OPT_RSS_HASH_SYM_TPLZ; in ice_vc_config_rss_hfunc() 1810 if (ice_set_rss_hfunc(vsi, hfunc)) in ice_vc_config_rss_hfunc()
|
| /linux/drivers/net/ethernet/intel/idpf/ |
| H A D | idpf_ethtool.c | 440 rxfh->hfunc = ETH_RSS_HASH_TOP; in idpf_get_rxfh() 488 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in idpf_set_rxfh() 489 rxfh->hfunc != ETH_RSS_HASH_TOP) { in idpf_set_rxfh()
|
| /linux/drivers/net/ethernet/hisilicon/hns3/hns3vf/ |
| H A D | hclgevf_main.c | 559 u8 *hfunc) in hclgevf_get_rss() argument 566 hclge_comm_get_rss_hash_info(rss_cfg, key, hfunc); in hclgevf_get_rss() 568 if (hfunc) in hclgevf_get_rss() 569 *hfunc = ETH_RSS_HASH_TOP; in hclgevf_get_rss() 586 const u8 *key, const u8 hfunc) in hclgevf_set_rss() argument 594 hfunc); in hclgevf_set_rss()
|