Home
last modified time | relevance | path

Searched refs:rxfh (Results 1 – 25 of 55) sorted by relevance

123

/linux-6.15/net/ethtool/
H A Dioctl.c1122 &rxfh.indir_size, sizeof(rxfh.indir_size))) in ethtool_get_rxfh_indir()
1132 rxfh.indir = kcalloc(rxfh.indir_size, sizeof(rxfh.indir[0]), GFP_USER); in ethtool_get_rxfh_indir()
1141 rxfh.indir, rxfh.indir_size * sizeof(*rxfh.indir))) in ethtool_get_rxfh_indir()
1237 if (copy_from_user(&rxfh, useraddr, sizeof(rxfh))) in ethtool_get_rxfh()
1243 if (rxfh.rsvd8[0] || rxfh.rsvd8[1] || rxfh.rsvd32) in ethtool_get_rxfh()
1252 if (copy_to_user(useraddr, &rxfh, sizeof(rxfh))) in ethtool_get_rxfh()
1380 if (copy_from_user(&rxfh, useraddr, sizeof(rxfh))) in ethtool_set_rxfh()
1384 if (rxfh.rsvd8[0] || rxfh.rsvd8[1] || rxfh.rsvd32) in ethtool_set_rxfh()
1391 if (rxfh.input_xfrm && rxfh.input_xfrm != RXH_XFRM_SYM_XOR && in ethtool_set_rxfh()
1403 (rxfh.key_size && rxfh.key_size != dev_key_size)) in ethtool_set_rxfh()
[all …]
H A Drss.c56 struct ethtool_rxfh_param rxfh = {}; in rss_prepare_get() local
88 rxfh.indir_size = data->indir_size; in rss_prepare_get()
89 rxfh.indir = data->indir_table; in rss_prepare_get()
90 rxfh.key_size = data->hkey_size; in rss_prepare_get()
91 rxfh.key = data->hkey; in rss_prepare_get()
93 ret = ops->get_rxfh(dev, &rxfh); in rss_prepare_get()
97 data->hfunc = rxfh.hfunc; in rss_prepare_get()
98 data->input_xfrm = rxfh.input_xfrm; in rss_prepare_get()
/linux-6.15/drivers/net/ethernet/microsoft/mana/
H A Dmana_ethtool.c235 struct ethtool_rxfh_param *rxfh) in mana_get_rxfh() argument
242 if (rxfh->indir) { in mana_get_rxfh()
244 rxfh->indir[i] = apc->indir_table[i]; in mana_get_rxfh()
247 if (rxfh->key) in mana_get_rxfh()
254 struct ethtool_rxfh_param *rxfh, in mana_set_rxfh() argument
266 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in mana_set_rxfh()
267 rxfh->hfunc != ETH_RSS_HASH_TOP) in mana_set_rxfh()
274 if (rxfh->indir) { in mana_set_rxfh()
276 if (rxfh->indir[i] >= apc->num_queues) { in mana_set_rxfh()
284 apc->indir_table[i] = rxfh->indir[i]; in mana_set_rxfh()
[all …]
/linux-6.15/drivers/net/ethernet/google/gve/
H A Dgve_ethtool.c864 struct ethtool_rxfh_param *rxfh) in gve_get_rss_config_cache() argument
868 rxfh->hfunc = ETH_RSS_HASH_TOP; in gve_get_rss_config_cache()
870 if (rxfh->key) { in gve_get_rss_config_cache()
871 rxfh->key_size = priv->rss_key_size; in gve_get_rss_config_cache()
875 if (rxfh->indir) { in gve_get_rss_config_cache()
876 rxfh->indir_size = priv->rss_lut_size; in gve_get_rss_config_cache()
890 gve_get_rss_config_cache(priv, rxfh); in gve_get_rxfh()
898 struct ethtool_rxfh_param *rxfh) in gve_set_rss_config_cache() argument
902 if (rxfh->key) in gve_set_rss_config_cache()
905 if (rxfh->indir) in gve_set_rss_config_cache()
[all …]
H A Dgve_adminq.c1302 switch (rxfh->hfunc) { in gve_adminq_configure_rss()
1312 if (rxfh->indir) { in gve_adminq_configure_rss()
1316 hash_lut_to_config = rxfh->indir; in gve_adminq_configure_rss()
1332 if (rxfh->key) { in gve_adminq_configure_rss()
1338 hash_key_to_config = rxfh->key; in gve_adminq_configure_rss()
1467 struct ethtool_rxfh_param *rxfh) in gve_adminq_process_rss_query() argument
1484 rxfh->hfunc = descriptor->hash_alg; in gve_adminq_process_rss_query()
1487 if (rxfh->key) { in gve_adminq_process_rss_query()
1488 rxfh->key_size = priv->rss_key_size; in gve_adminq_process_rss_query()
1494 if (rxfh->indir) { in gve_adminq_process_rss_query()
[all …]
/linux-6.15/drivers/net/ethernet/sfc/
H A Dethtool_common.h48 struct ethtool_rxfh_param *rxfh);
50 struct ethtool_rxfh_param *rxfh,
54 const struct ethtool_rxfh_param *rxfh,
58 const struct ethtool_rxfh_param *rxfh,
H A Dethtool_common.c1160 struct ethtool_rxfh_param *rxfh) in efx_ethtool_get_rxfh() argument
1172 rxfh->hfunc = ETH_RSS_HASH_TOP; in efx_ethtool_get_rxfh()
1173 if (rxfh->indir) in efx_ethtool_get_rxfh()
1176 if (rxfh->key) in efx_ethtool_get_rxfh()
1189 const u32 *indir = rxfh->indir; in efx_ethtool_modify_rxfh_context()
1190 const u8 *key = rxfh->key; in efx_ethtool_modify_rxfh_context()
1232 if (!rxfh->indir) in efx_ethtool_create_rxfh_context()
1234 if (!rxfh->key) in efx_ethtool_create_rxfh_context()
1264 struct ethtool_rxfh_param *rxfh, in efx_ethtool_set_rxfh() argument
1268 u32 *indir = rxfh->indir; in efx_ethtool_set_rxfh()
[all …]
/linux-6.15/drivers/net/ethernet/amd/xgbe/
H A Dxgbe-ethtool.c527 struct ethtool_rxfh_param *rxfh) in xgbe_get_rxfh() argument
532 if (rxfh->indir) { in xgbe_get_rxfh()
534 rxfh->indir[i] = XGMAC_GET_BITS(pdata->rss_table[i], in xgbe_get_rxfh()
538 if (rxfh->key) in xgbe_get_rxfh()
541 rxfh->hfunc = ETH_RSS_HASH_TOP; in xgbe_get_rxfh()
547 struct ethtool_rxfh_param *rxfh, in xgbe_set_rxfh() argument
554 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in xgbe_set_rxfh()
555 rxfh->hfunc != ETH_RSS_HASH_TOP) { in xgbe_set_rxfh()
560 if (rxfh->indir) { in xgbe_set_rxfh()
566 if (rxfh->key) { in xgbe_set_rxfh()
[all …]
/linux-6.15/drivers/net/ethernet/fungible/funeth/
H A Dfuneth_ethtool.c981 struct ethtool_rxfh_param *rxfh) in fun_get_rxfh() argument
988 if (rxfh->indir) in fun_get_rxfh()
989 memcpy(rxfh->indir, fp->indir_table, in fun_get_rxfh()
992 if (rxfh->key) in fun_get_rxfh()
1002 struct ethtool_rxfh_param *rxfh, in fun_set_rxfh() argument
1006 const u32 *rss_indir = rxfh->indir ? rxfh->indir : fp->indir_table; in fun_set_rxfh()
1007 const u8 *rss_key = rxfh->key ? rxfh->key : fp->rss_key; in fun_set_rxfh()
1017 else if (rxfh->hfunc == ETH_RSS_HASH_TOP) in fun_set_rxfh()
1034 if (rxfh->key) in fun_set_rxfh()
1036 if (rxfh->indir) in fun_set_rxfh()
[all …]
/linux-6.15/drivers/net/ethernet/meta/fbnic/
H A Dfbnic_ethtool.c1113 rxfh->hfunc = ETH_RSS_HASH_TOP; in fbnic_get_rxfh()
1115 if (rxfh->key) { in fbnic_get_rxfh()
1119 rxfh->key[i] = rss_key >> 24; in fbnic_get_rxfh()
1123 if (rxfh->indir) { in fbnic_get_rxfh()
1155 rxfh->hfunc != ETH_RSS_HASH_TOP) in fbnic_set_rxfh()
1158 if (rxfh->key) { in fbnic_set_rxfh()
1163 rss_key |= (u32)(rxfh->key[i]) << 24; in fbnic_set_rxfh()
1176 if (rxfh->indir) in fbnic_set_rxfh()
1192 const u32 *indir = rxfh->indir; in fbnic_modify_rxfh_context()
1213 if (rxfh->hfunc && rxfh->hfunc != ETH_RSS_HASH_TOP) { in fbnic_create_rxfh_context()
[all …]
/linux-6.15/drivers/net/ethernet/microchip/
H A Dlan743x_ethtool.c941 if (rxfh->indir) { in lan743x_ethtool_get_rxfh()
950 rxfh->indir[byte_index + 0] = in lan743x_ethtool_get_rxfh()
952 rxfh->indir[byte_index + 1] = in lan743x_ethtool_get_rxfh()
954 rxfh->indir[byte_index + 2] = in lan743x_ethtool_get_rxfh()
960 if (rxfh->key) { in lan743x_ethtool_get_rxfh()
970 rxfh->key[byte_index + 0] = in lan743x_ethtool_get_rxfh()
972 rxfh->key[byte_index + 1] = in lan743x_ethtool_get_rxfh()
974 rxfh->key[byte_index + 2] = in lan743x_ethtool_get_rxfh()
976 rxfh->key[byte_index + 3] = in lan743x_ethtool_get_rxfh()
989 u32 *indir = rxfh->indir; in lan743x_ethtool_set_rxfh()
[all …]
/linux-6.15/drivers/net/ethernet/aquantia/atlantic/
H A Daq_ethtool.c446 struct ethtool_rxfh_param *rxfh) in aq_ethtool_get_rss() argument
454 rxfh->hfunc = ETH_RSS_HASH_TOP; /* Toeplitz */ in aq_ethtool_get_rss()
455 if (rxfh->indir) { in aq_ethtool_get_rss()
459 if (rxfh->key) in aq_ethtool_get_rss()
460 memcpy(rxfh->key, cfg->aq_rss.hash_secret_key, in aq_ethtool_get_rss()
467 struct ethtool_rxfh_param *rxfh, in aq_ethtool_set_rss() argument
480 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in aq_ethtool_set_rss()
481 rxfh->hfunc != ETH_RSS_HASH_TOP) in aq_ethtool_set_rss()
484 if (rxfh->indir) in aq_ethtool_set_rss()
489 if (rxfh->key) { in aq_ethtool_set_rss()
[all …]
/linux-6.15/drivers/net/ethernet/cisco/enic/
H A Denic_ethtool.c617 struct ethtool_rxfh_param *rxfh) in enic_get_rxfh() argument
621 if (rxfh->key) in enic_get_rxfh()
622 memcpy(rxfh->key, enic->rss_key, ENIC_RSS_LEN); in enic_get_rxfh()
624 rxfh->hfunc = ETH_RSS_HASH_TOP; in enic_get_rxfh()
630 struct ethtool_rxfh_param *rxfh, in enic_set_rxfh() argument
635 if (rxfh->indir || in enic_set_rxfh()
636 (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in enic_set_rxfh()
637 rxfh->hfunc != ETH_RSS_HASH_TOP)) in enic_set_rxfh()
640 if (rxfh->key) in enic_set_rxfh()
641 memcpy(enic->rss_key, rxfh->key, ENIC_RSS_LEN); in enic_set_rxfh()
/linux-6.15/drivers/net/ethernet/marvell/octeontx2/nic/
H A Dotx2_ethtool.c842 if (rxfh->rss_context) in otx2_set_rxfh()
843 rss_context = rxfh->rss_context; in otx2_set_rxfh()
856 if (rxfh->key) { in otx2_set_rxfh()
860 if (rxfh->rss_delete) in otx2_set_rxfh()
865 rxfh->rss_context = rss_context; in otx2_set_rxfh()
869 if (rxfh->indir) { in otx2_set_rxfh()
887 u32 *indir = rxfh->indir; in otx2_get_rxfh()
892 rxfh->hfunc = ETH_RSS_HASH_TOP; in otx2_get_rxfh()
893 if (rxfh->rss_context) in otx2_get_rxfh()
894 rss_context = rxfh->rss_context; in otx2_get_rxfh()
[all …]
/linux-6.15/drivers/net/ethernet/intel/idpf/
H A Didpf_ethtool.c83 struct ethtool_rxfh_param *rxfh) in idpf_get_rxfh() argument
104 rxfh->hfunc = ETH_RSS_HASH_TOP; in idpf_get_rxfh()
106 if (rxfh->key) in idpf_get_rxfh()
109 if (rxfh->indir) { in idpf_get_rxfh()
111 rxfh->indir[i] = rss_data->rss_lut[i]; in idpf_get_rxfh()
130 struct ethtool_rxfh_param *rxfh, in idpf_set_rxfh() argument
154 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in idpf_set_rxfh()
155 rxfh->hfunc != ETH_RSS_HASH_TOP) { in idpf_set_rxfh()
160 if (rxfh->key) in idpf_set_rxfh()
163 if (rxfh->indir) { in idpf_set_rxfh()
[all …]
/linux-6.15/drivers/net/ethernet/cavium/thunder/
H A Dnicvf_ethtool.c657 struct ethtool_rxfh_param *rxfh) in nicvf_get_rxfh() argument
663 if (rxfh->indir) { in nicvf_get_rxfh()
665 rxfh->indir[idx] = rss->ind_tbl[idx]; in nicvf_get_rxfh()
668 if (rxfh->key) in nicvf_get_rxfh()
671 rxfh->hfunc = ETH_RSS_HASH_TOP; in nicvf_get_rxfh()
677 struct ethtool_rxfh_param *rxfh, in nicvf_set_rxfh() argument
684 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in nicvf_set_rxfh()
685 rxfh->hfunc != ETH_RSS_HASH_TOP) in nicvf_set_rxfh()
694 if (rxfh->indir) { in nicvf_set_rxfh()
696 rss->ind_tbl[idx] = rxfh->indir[idx]; in nicvf_set_rxfh()
[all …]
/linux-6.15/drivers/net/ethernet/intel/ixgbevf/
H A Dethtool.c901 struct ethtool_rxfh_param *rxfh) in ixgbevf_get_rxfh() argument
906 rxfh->hfunc = ETH_RSS_HASH_TOP; in ixgbevf_get_rxfh()
909 if (rxfh->key) in ixgbevf_get_rxfh()
910 memcpy(rxfh->key, adapter->rss_key, in ixgbevf_get_rxfh()
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()
932 if (!err && rxfh->key) in ixgbevf_get_rxfh()
[all …]
/linux-6.15/drivers/net/ethernet/intel/iavf/
H A Diavf_ethtool.c1740 struct ethtool_rxfh_param *rxfh) in iavf_get_rxfh() argument
1745 rxfh->hfunc = ETH_RSS_HASH_TOP; in iavf_get_rxfh()
1747 rxfh->input_xfrm |= RXH_XFRM_SYM_XOR; in iavf_get_rxfh()
1749 if (rxfh->key) in iavf_get_rxfh()
1752 if (rxfh->indir) in iavf_get_rxfh()
1755 rxfh->indir[i] = (u32)adapter->rss_lut[i]; in iavf_get_rxfh()
1770 struct ethtool_rxfh_param *rxfh, in iavf_set_rxfh() argument
1778 rxfh->hfunc != ETH_RSS_HASH_TOP) in iavf_set_rxfh()
1793 if (!rxfh->key && !rxfh->indir) in iavf_set_rxfh()
1796 if (rxfh->key) in iavf_set_rxfh()
[all …]
/linux-6.15/drivers/net/ethernet/sfc/siena/
H A Dethtool_common.h45 struct ethtool_rxfh_param *rxfh);
47 struct ethtool_rxfh_param *rxfh,
H A Dethtool_common.c1149 struct ethtool_rxfh_param *rxfh) in efx_siena_ethtool_get_rxfh() argument
1158 rxfh->hfunc = ETH_RSS_HASH_TOP; in efx_siena_ethtool_get_rxfh()
1159 if (rxfh->indir) in efx_siena_ethtool_get_rxfh()
1160 memcpy(rxfh->indir, efx->rss_context.rx_indir_table, in efx_siena_ethtool_get_rxfh()
1162 if (rxfh->key) in efx_siena_ethtool_get_rxfh()
1163 memcpy(rxfh->key, efx->rss_context.rx_hash_key, in efx_siena_ethtool_get_rxfh()
1169 struct ethtool_rxfh_param *rxfh, in efx_siena_ethtool_set_rxfh() argument
1173 u32 *indir = rxfh->indir; in efx_siena_ethtool_set_rxfh()
1174 u8 *key = rxfh->key; in efx_siena_ethtool_set_rxfh()
1177 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in efx_siena_ethtool_set_rxfh()
[all …]
/linux-6.15/drivers/net/ethernet/amazon/ena/
H A Dena_ethtool.c924 struct ethtool_rxfh_param *rxfh) in ena_get_rxfh() argument
931 rc = ena_indirection_table_get(adapter, rxfh->indir); in ena_get_rxfh()
946 rc = ena_com_get_hash_key(adapter->ena_dev, rxfh->key); in ena_get_rxfh()
963 rxfh->hfunc = func; in ena_get_rxfh()
969 struct ethtool_rxfh_param *rxfh, in ena_set_rxfh() argument
977 if (rxfh->indir) { in ena_set_rxfh()
978 rc = ena_indirection_table_set(adapter, rxfh->indir); in ena_set_rxfh()
983 switch (rxfh->hfunc) { in ena_set_rxfh()
995 rxfh->hfunc); in ena_set_rxfh()
999 if (rxfh->key || func) { in ena_set_rxfh()
[all …]
/linux-6.15/drivers/net/ethernet/stmicro/stmmac/
H A Dstmmac_ethtool.c1110 struct ethtool_rxfh_param *rxfh) in stmmac_get_rxfh() argument
1115 if (rxfh->indir) { in stmmac_get_rxfh()
1117 rxfh->indir[i] = priv->rss.table[i]; in stmmac_get_rxfh()
1120 if (rxfh->key) in stmmac_get_rxfh()
1122 rxfh->hfunc = ETH_RSS_HASH_TOP; in stmmac_get_rxfh()
1128 struct ethtool_rxfh_param *rxfh, in stmmac_set_rxfh() argument
1134 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in stmmac_set_rxfh()
1135 rxfh->hfunc != ETH_RSS_HASH_TOP) in stmmac_set_rxfh()
1138 if (rxfh->indir) { in stmmac_set_rxfh()
1140 priv->rss.table[i] = rxfh->indir[i]; in stmmac_set_rxfh()
[all …]
/linux-6.15/drivers/net/ethernet/intel/fm10k/
H A Dfm10k_ethtool.c1061 struct ethtool_rxfh_param *rxfh) in fm10k_get_rssh() argument
1064 u8 *key = rxfh->key; in fm10k_get_rssh()
1067 rxfh->hfunc = ETH_RSS_HASH_TOP; in fm10k_get_rssh()
1069 err = fm10k_get_reta(netdev, rxfh->indir); in fm10k_get_rssh()
1080 struct ethtool_rxfh_param *rxfh, in fm10k_set_rssh() argument
1088 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in fm10k_set_rssh()
1089 rxfh->hfunc != ETH_RSS_HASH_TOP) in fm10k_set_rssh()
1092 err = fm10k_set_reta(netdev, rxfh->indir); in fm10k_set_rssh()
1093 if (err || !rxfh->key) in fm10k_set_rssh()
1096 for (i = 0; i < FM10K_RSSRK_SIZE; i++, rxfh->key += 4) { in fm10k_set_rssh()
[all …]
/linux-6.15/drivers/net/ethernet/hisilicon/hns/
H A Dhns_ethtool.c1188 hns_get_rss(struct net_device *netdev, struct ethtool_rxfh_param *rxfh) in hns_get_rss() argument
1201 if (!rxfh->indir) in hns_get_rss()
1205 rxfh->indir, rxfh->key, &rxfh->hfunc); in hns_get_rss()
1209 hns_set_rss(struct net_device *netdev, struct ethtool_rxfh_param *rxfh, in hns_set_rss() argument
1223 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in hns_set_rss()
1224 rxfh->hfunc != ETH_RSS_HASH_TOP) { in hns_set_rss()
1230 rxfh->indir, rxfh->key, rxfh->hfunc); in hns_set_rss()
/linux-6.15/drivers/net/ethernet/pensando/ionic/
H A Dionic_ethtool.c878 struct ethtool_rxfh_param *rxfh) in ionic_get_rxfh() argument
883 if (rxfh->indir) { in ionic_get_rxfh()
886 rxfh->indir[i] = lif->rss_ind_tbl[i]; in ionic_get_rxfh()
889 if (rxfh->key) in ionic_get_rxfh()
890 memcpy(rxfh->key, lif->rss_hash_key, IONIC_RSS_HASH_KEY_SIZE); in ionic_get_rxfh()
892 rxfh->hfunc = ETH_RSS_HASH_TOP; in ionic_get_rxfh()
898 struct ethtool_rxfh_param *rxfh, in ionic_set_rxfh() argument
903 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in ionic_set_rxfh()
904 rxfh->hfunc != ETH_RSS_HASH_TOP) in ionic_set_rxfh()
908 rxfh->key, rxfh->indir); in ionic_set_rxfh()

123