/linux-master/net/ethtool/ |
H A D | rss.c | 52 struct ethtool_rxfh_param rxfh = {}; local 90 rxfh.indir_size = data->indir_size; 91 rxfh.indir = data->indir_table; 92 rxfh.key_size = data->hkey_size; 93 rxfh.key = data->hkey; 94 rxfh.rss_context = request->rss_context; 96 ret = ops->get_rxfh(dev, &rxfh); 100 data->hfunc = rxfh.hfunc; 101 data->input_xfrm = rxfh.input_xfrm;
|
H A D | ioctl.c | 989 struct ethtool_rxfh_param rxfh = {}; local 991 rc = ops->get_rxfh(dev, &rxfh); 999 if ((rxfh.input_xfrm & RXH_XFRM_SYM_XOR) && 1085 struct ethtool_rxfh_param rxfh = {}; local 1092 rxfh.indir_size = dev->ethtool_ops->get_rxfh_indir_size(dev); 1093 if (rxfh.indir_size == 0) 1102 &rxfh.indir_size, sizeof(rxfh.indir_size))) 1109 if (user_size < rxfh.indir_size) 1112 rxfh 1202 struct ethtool_rxfh rxfh; local 1283 struct ethtool_rxfh rxfh; local [all...] |
/linux-master/drivers/net/ethernet/sfc/siena/ |
H A D | ethtool_common.h | 45 struct ethtool_rxfh_param *rxfh); 47 struct ethtool_rxfh_param *rxfh,
|
H A D | ethtool_common.c | 1168 struct ethtool_rxfh_param *rxfh) 1178 ctx = efx_siena_find_rss_context_entry(efx, rxfh->rss_context); 1187 rxfh->hfunc = ETH_RSS_HASH_TOP; 1188 if (rxfh->indir) 1189 memcpy(rxfh->indir, ctx->rx_indir_table, 1191 if (rxfh->key) 1192 memcpy(rxfh->key, ctx->rx_hash_key, 1200 struct ethtool_rxfh_param *rxfh) 1205 if (rxfh->rss_context) 1206 return efx_siena_ethtool_get_rxfh_context(net_dev, rxfh); 1167 efx_siena_ethtool_get_rxfh_context(struct net_device *net_dev, struct ethtool_rxfh_param *rxfh) argument 1199 efx_siena_ethtool_get_rxfh(struct net_device *net_dev, struct ethtool_rxfh_param *rxfh) argument 1222 efx_siena_ethtool_set_rxfh_context(struct net_device *net_dev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument 1286 efx_siena_ethtool_set_rxfh(struct net_device *net_dev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument [all...] |
/linux-master/drivers/net/ethernet/microsoft/mana/ |
H A D | mana_ethtool.c | 252 struct ethtool_rxfh_param *rxfh) 257 rxfh->hfunc = ETH_RSS_HASH_TOP; /* Toeplitz */ 259 if (rxfh->indir) { 261 rxfh->indir[i] = apc->indir_table[i]; 264 if (rxfh->key) 265 memcpy(rxfh->key, apc->hashkey, MANA_HASH_KEY_SIZE); 271 struct ethtool_rxfh_param *rxfh, 283 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && 284 rxfh->hfunc != ETH_RSS_HASH_TOP) 287 if (rxfh 251 mana_get_rxfh(struct net_device *ndev, struct ethtool_rxfh_param *rxfh) argument 270 mana_set_rxfh(struct net_device *ndev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument [all...] |
/linux-master/drivers/net/ethernet/sfc/ |
H A D | ethtool_common.h | 48 struct ethtool_rxfh_param *rxfh); 50 struct ethtool_rxfh_param *rxfh,
|
H A D | ethtool_common.c | 1167 struct ethtool_rxfh_param *rxfh) 1177 ctx = efx_find_rss_context_entry(efx, rxfh->rss_context); 1186 rxfh->hfunc = ETH_RSS_HASH_TOP; 1187 if (rxfh->indir) 1188 memcpy(rxfh->indir, ctx->rx_indir_table, 1190 if (rxfh->key) 1191 memcpy(rxfh->key, ctx->rx_hash_key, 1199 struct ethtool_rxfh_param *rxfh) 1204 if (rxfh->rss_context) 1205 return efx_ethtool_get_rxfh_context(net_dev, rxfh); 1166 efx_ethtool_get_rxfh_context(struct net_device *net_dev, struct ethtool_rxfh_param *rxfh) argument 1198 efx_ethtool_get_rxfh(struct net_device *net_dev, struct ethtool_rxfh_param *rxfh) argument 1221 efx_ethtool_set_rxfh_context(struct net_device *net_dev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument 1285 efx_ethtool_set_rxfh(struct net_device *net_dev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument [all...] |
/linux-master/drivers/net/ethernet/cisco/enic/ |
H A D | enic_ethtool.c | 572 struct ethtool_rxfh_param *rxfh) 576 if (rxfh->key) 577 memcpy(rxfh->key, enic->rss_key, ENIC_RSS_LEN); 579 rxfh->hfunc = ETH_RSS_HASH_TOP; 585 struct ethtool_rxfh_param *rxfh, 590 if (rxfh->indir || 591 (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && 592 rxfh->hfunc != ETH_RSS_HASH_TOP)) 595 if (rxfh->key) 596 memcpy(enic->rss_key, rxfh 571 enic_get_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh) argument 584 enic_set_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument [all...] |
/linux-master/drivers/net/ethernet/fungible/funeth/ |
H A D | funeth_ethtool.c | 981 struct ethtool_rxfh_param *rxfh) 988 if (rxfh->indir) 989 memcpy(rxfh->indir, fp->indir_table, 992 if (rxfh->key) 993 memcpy(rxfh->key, fp->rss_key, sizeof(fp->rss_key)); 995 rxfh->hfunc = fp->hash_algo == FUN_ETH_RSS_ALG_TOEPLITZ ? 1002 struct ethtool_rxfh_param *rxfh, 1006 const u32 *rss_indir = rxfh->indir ? rxfh->indir : fp->indir_table; 1007 const u8 *rss_key = rxfh 980 fun_get_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh) argument 1001 fun_set_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument [all...] |
/linux-master/drivers/net/ethernet/marvell/octeontx2/nic/ |
H A D | otx2_ethtool.c | 839 struct ethtool_rxfh_param *rxfh, 848 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && 849 rxfh->hfunc != ETH_RSS_HASH_TOP) 852 if (rxfh->rss_context) 853 rss_context = rxfh->rss_context; 866 if (rxfh->key) { 867 memcpy(rss->key, rxfh->key, sizeof(rss->key)); 870 if (rxfh->rss_delete) 875 rxfh->rss_context = rss_context; 879 if (rxfh 838 otx2_set_rxfh(struct net_device *dev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument 890 otx2_get_rxfh(struct net_device *dev, struct ethtool_rxfh_param *rxfh) argument [all...] |
/linux-master/drivers/net/ethernet/microchip/ |
H A D | lan743x_ethtool.c | 937 struct ethtool_rxfh_param *rxfh) 941 if (rxfh->indir) { 950 rxfh->indir[byte_index + 0] = 952 rxfh->indir[byte_index + 1] = 954 rxfh->indir[byte_index + 2] = 956 rxfh->indir[byte_index + 3] = 960 if (rxfh->key) { 970 rxfh->key[byte_index + 0] = 972 rxfh->key[byte_index + 1] = 974 rxfh 936 lan743x_ethtool_get_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh) argument 984 lan743x_ethtool_set_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument [all...] |
/linux-master/drivers/net/ethernet/cavium/thunder/ |
H A D | nicvf_ethtool.c | 657 struct ethtool_rxfh_param *rxfh) 663 if (rxfh->indir) { 665 rxfh->indir[idx] = rss->ind_tbl[idx]; 668 if (rxfh->key) 669 memcpy(rxfh->key, rss->key, RSS_HASH_KEY_SIZE * sizeof(u64)); 671 rxfh->hfunc = ETH_RSS_HASH_TOP; 677 struct ethtool_rxfh_param *rxfh, 684 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && 685 rxfh->hfunc != ETH_RSS_HASH_TOP) 694 if (rxfh 656 nicvf_get_rxfh(struct net_device *dev, struct ethtool_rxfh_param *rxfh) argument 676 nicvf_set_rxfh(struct net_device *dev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument [all...] |
/linux-master/drivers/net/ethernet/intel/idpf/ |
H A D | idpf_ethtool.c | 78 * @rxfh: pointer to param struct (indir, key, hfunc) 83 struct ethtool_rxfh_param *rxfh) 104 rxfh->hfunc = ETH_RSS_HASH_TOP; 106 if (rxfh->key) 107 memcpy(rxfh->key, rss_data->rss_key, rss_data->rss_key_size); 109 if (rxfh->indir) { 111 rxfh->indir[i] = rss_data->rss_lut[i]; 123 * @rxfh: pointer to param struct (indir, key, hfunc) 130 struct ethtool_rxfh_param *rxfh, 154 if (rxfh 82 idpf_get_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh) argument 129 idpf_set_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument [all...] |
/linux-master/drivers/net/ethernet/amd/xgbe/ |
H A D | xgbe-ethtool.c | 531 struct ethtool_rxfh_param *rxfh) 536 if (rxfh->indir) { 538 rxfh->indir[i] = XGMAC_GET_BITS(pdata->rss_table[i], 542 if (rxfh->key) 543 memcpy(rxfh->key, pdata->rss_key, sizeof(pdata->rss_key)); 545 rxfh->hfunc = ETH_RSS_HASH_TOP; 551 struct ethtool_rxfh_param *rxfh, 558 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && 559 rxfh->hfunc != ETH_RSS_HASH_TOP) { 564 if (rxfh 530 xgbe_get_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh) argument 550 xgbe_set_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument [all...] |
/linux-master/drivers/net/ethernet/aquantia/atlantic/ |
H A D | aq_ethtool.c | 452 struct ethtool_rxfh_param *rxfh) 460 rxfh->hfunc = ETH_RSS_HASH_TOP; /* Toeplitz */ 461 if (rxfh->indir) { 463 rxfh->indir[i] = cfg->aq_rss.indirection_table[i]; 465 if (rxfh->key) 466 memcpy(rxfh->key, cfg->aq_rss.hash_secret_key, 473 struct ethtool_rxfh_param *rxfh, 486 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && 487 rxfh->hfunc != ETH_RSS_HASH_TOP) 490 if (rxfh 451 aq_ethtool_get_rss(struct net_device *ndev, struct ethtool_rxfh_param *rxfh) argument 472 aq_ethtool_set_rss(struct net_device *netdev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument [all...] |
/linux-master/drivers/net/ethernet/intel/ixgbevf/ |
H A D | ethtool.c | 901 struct ethtool_rxfh_param *rxfh) 906 rxfh->hfunc = ETH_RSS_HASH_TOP; 909 if (rxfh->key) 910 memcpy(rxfh->key, adapter->rss_key, 913 if (rxfh->indir) { 917 rxfh->indir[i] = adapter->rss_indir_tbl[i]; 923 if (!rxfh->indir && !rxfh->key) 927 if (rxfh->indir) 929 rxfh 900 ixgbevf_get_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh) argument [all...] |
/linux-master/drivers/net/ethernet/amazon/ena/ |
H A D | ena_ethtool.c | 804 struct ethtool_rxfh_param *rxfh) 811 rc = ena_indirection_table_get(adapter, rxfh->indir); 826 rc = ena_com_get_hash_key(adapter->ena_dev, rxfh->key); 843 rxfh->hfunc = func; 849 struct ethtool_rxfh_param *rxfh, 857 if (rxfh->indir) { 858 rc = ena_indirection_table_set(adapter, rxfh->indir); 863 switch (rxfh->hfunc) { 875 rxfh->hfunc); 879 if (rxfh 803 ena_get_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh) argument 848 ena_set_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument [all...] |
/linux-master/drivers/net/ethernet/intel/iavf/ |
H A D | iavf_ethtool.c | 1914 * @rxfh: pointer to param struct (indir, key, hfunc) 1919 struct ethtool_rxfh_param *rxfh) 1924 rxfh->hfunc = ETH_RSS_HASH_TOP; 1926 rxfh->input_xfrm |= RXH_XFRM_SYM_XOR; 1928 if (rxfh->key) 1929 memcpy(rxfh->key, adapter->rss_key, adapter->rss_key_size); 1931 if (rxfh->indir) 1934 rxfh->indir[i] = (u32)adapter->rss_lut[i]; 1942 * @rxfh: pointer to param struct (indir, key, hfunc) 1949 struct ethtool_rxfh_param *rxfh, 1918 iavf_get_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh) argument 1948 iavf_set_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument [all...] |
/linux-master/drivers/net/ethernet/stmicro/stmmac/ |
H A D | stmmac_ethtool.c | 1137 struct ethtool_rxfh_param *rxfh) 1142 if (rxfh->indir) { 1144 rxfh->indir[i] = priv->rss.table[i]; 1147 if (rxfh->key) 1148 memcpy(rxfh->key, priv->rss.key, sizeof(priv->rss.key)); 1149 rxfh->hfunc = ETH_RSS_HASH_TOP; 1155 struct ethtool_rxfh_param *rxfh, 1161 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && 1162 rxfh->hfunc != ETH_RSS_HASH_TOP) 1165 if (rxfh 1136 stmmac_get_rxfh(struct net_device *dev, struct ethtool_rxfh_param *rxfh) argument 1154 stmmac_set_rxfh(struct net_device *dev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument [all...] |
/linux-master/drivers/net/ethernet/emulex/benet/ |
H A D | be_ethtool.c | 1275 struct ethtool_rxfh_param *rxfh) 1281 if (rxfh->indir) { 1283 rxfh->indir[i] = rss->rss_queue[i]; 1286 if (rxfh->key) 1287 memcpy(rxfh->key, rss->rss_hkey, RSS_HASH_KEY_LEN); 1289 rxfh->hfunc = ETH_RSS_HASH_TOP; 1295 struct ethtool_rxfh_param *rxfh, 1300 u8 *hkey = rxfh->key; 1304 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && 1305 rxfh 1274 be_get_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh) argument 1294 be_set_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument [all...] |
/linux-master/drivers/net/ethernet/freescale/enetc/ |
H A D | enetc_ethtool.c | 694 struct ethtool_rxfh_param *rxfh) 701 rxfh->hfunc = ETH_RSS_HASH_TOP; 704 if (rxfh->key && hw->port) 706 ((u32 *)rxfh->key)[i] = enetc_port_rd(hw, 710 if (rxfh->indir) 711 err = enetc_get_rss_table(priv->si, rxfh->indir, 727 struct ethtool_rxfh_param *rxfh, 735 if (rxfh->key && hw->port) 736 enetc_set_rss_key(hw, rxfh->key); 739 if (rxfh 693 enetc_get_rxfh(struct net_device *ndev, struct ethtool_rxfh_param *rxfh) argument 726 enetc_set_rxfh(struct net_device *ndev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument [all...] |
/linux-master/drivers/net/ethernet/hisilicon/hns/ |
H A D | hns_ethtool.c | 1189 hns_get_rss(struct net_device *netdev, struct ethtool_rxfh_param *rxfh) argument 1202 if (!rxfh->indir) 1206 rxfh->indir, rxfh->key, &rxfh->hfunc); 1210 hns_set_rss(struct net_device *netdev, struct ethtool_rxfh_param *rxfh, argument 1224 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && 1225 rxfh->hfunc != ETH_RSS_HASH_TOP) { 1231 rxfh->indir, rxfh [all...] |
/linux-master/drivers/net/ethernet/intel/fm10k/ |
H A D | fm10k_ethtool.c | 1061 struct ethtool_rxfh_param *rxfh) 1064 u8 *key = rxfh->key; 1067 rxfh->hfunc = ETH_RSS_HASH_TOP; 1069 err = fm10k_get_reta(netdev, rxfh->indir); 1080 struct ethtool_rxfh_param *rxfh, 1088 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && 1089 rxfh->hfunc != ETH_RSS_HASH_TOP) 1092 err = fm10k_set_reta(netdev, rxfh->indir); 1093 if (err || !rxfh->key) 1096 for (i = 0; i < FM10K_RSSRK_SIZE; i++, rxfh 1060 fm10k_get_rssh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh) argument 1079 fm10k_set_rssh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument [all...] |
/linux-master/drivers/net/ethernet/pensando/ionic/ |
H A D | ionic_ethtool.c | 837 struct ethtool_rxfh_param *rxfh) 842 if (rxfh->indir) { 845 rxfh->indir[i] = lif->rss_ind_tbl[i]; 848 if (rxfh->key) 849 memcpy(rxfh->key, lif->rss_hash_key, IONIC_RSS_HASH_KEY_SIZE); 851 rxfh->hfunc = ETH_RSS_HASH_TOP; 857 struct ethtool_rxfh_param *rxfh, 862 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && 863 rxfh->hfunc != ETH_RSS_HASH_TOP) 867 rxfh 836 ionic_get_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh) argument 856 ionic_set_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument [all...] |
/linux-master/drivers/net/ethernet/sfc/falcon/ |
H A D | ethtool.c | 1261 struct ethtool_rxfh_param *rxfh) 1265 rxfh->hfunc = ETH_RSS_HASH_TOP; 1266 if (rxfh->indir) 1267 memcpy(rxfh->indir, efx->rx_indir_table, 1273 struct ethtool_rxfh_param *rxfh, 1279 if (rxfh->key || 1280 (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && 1281 rxfh->hfunc != ETH_RSS_HASH_TOP)) 1283 if (!rxfh->indir) 1286 return efx->type->rx_push_rss_config(efx, true, rxfh 1260 ef4_ethtool_get_rxfh(struct net_device *net_dev, struct ethtool_rxfh_param *rxfh) argument 1272 ef4_ethtool_set_rxfh(struct net_device *net_dev, struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) argument [all...] |