Home
last modified time | relevance | path

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

/linux/drivers/net/ethernet/sfc/
H A Dethtool_common.c1164 struct ethtool_rxfh_param *rxfh) in efx_ethtool_get_rxfh() argument
1169 if (rxfh->rss_context) /* core should never call us for these */ in efx_ethtool_get_rxfh()
1176 rxfh->hfunc = ETH_RSS_HASH_TOP; in efx_ethtool_get_rxfh()
1177 if (rxfh->indir) in efx_ethtool_get_rxfh()
1178 memcpy(rxfh->indir, efx->rss_context.rx_indir_table, in efx_ethtool_get_rxfh()
1180 if (rxfh->key) in efx_ethtool_get_rxfh()
1181 memcpy(rxfh->key, efx->rss_context.rx_hash_key, in efx_ethtool_get_rxfh()
1188 const struct ethtool_rxfh_param *rxfh, in efx_ethtool_modify_rxfh_context() argument
1193 const u32 *indir = rxfh->indir; in efx_ethtool_modify_rxfh_context()
1194 const u8 *key = rxfh->key; in efx_ethtool_modify_rxfh_context()
[all …]
/linux/drivers/net/ethernet/marvell/octeontx2/nic/
H A Dotx2_ethtool.c814 const struct ethtool_rxfh_param *rxfh, in otx2_create_rxfh() argument
826 if (rxfh->hfunc && rxfh->hfunc != ETH_RSS_HASH_TOP) in otx2_create_rxfh()
835 ind_tbl = rxfh->indir; in otx2_create_rxfh()
842 otx2_set_rss_table(pfvf, rxfh->rss_context, ind_tbl); in otx2_create_rxfh()
848 const struct ethtool_rxfh_param *rxfh, in otx2_modify_rxfh() argument
853 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in otx2_modify_rxfh()
854 rxfh->hfunc != ETH_RSS_HASH_TOP) in otx2_modify_rxfh()
862 if (rxfh->indir) in otx2_modify_rxfh()
863 otx2_set_rss_table(pfvf, rxfh->rss_context, rxfh->indir); in otx2_modify_rxfh()
886 struct ethtool_rxfh_param *rxfh, in otx2_set_rxfh() argument
[all …]
/linux/drivers/net/ethernet/sfc/siena/
H A Dethtool_common.c1155 struct ethtool_rxfh_param *rxfh) in efx_siena_ethtool_get_rxfh() argument
1164 rxfh->hfunc = ETH_RSS_HASH_TOP; in efx_siena_ethtool_get_rxfh()
1165 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()
1168 if (rxfh->key) in efx_siena_ethtool_get_rxfh()
1169 memcpy(rxfh->key, efx->rss_context.rx_hash_key, in efx_siena_ethtool_get_rxfh()
1175 struct ethtool_rxfh_param *rxfh, in efx_siena_ethtool_set_rxfh() argument
1179 u32 *indir = rxfh->indir; in efx_siena_ethtool_set_rxfh()
1180 u8 *key = rxfh->key; in efx_siena_ethtool_set_rxfh()
1183 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in efx_siena_ethtool_set_rxfh()
[all …]
/linux/drivers/net/ethernet/intel/idpf/
H A Didpf_ethtool.c417 struct ethtool_rxfh_param *rxfh) in idpf_get_rxfh() argument
440 rxfh->hfunc = ETH_RSS_HASH_TOP; in idpf_get_rxfh()
442 if (rxfh->key) in idpf_get_rxfh()
443 memcpy(rxfh->key, rss_data->rss_key, rss_data->rss_key_size); in idpf_get_rxfh()
445 if (rxfh->indir) { in idpf_get_rxfh()
447 rxfh->indir[i] = rxhash_ena ? rss_data->rss_lut[i] : 0; in idpf_get_rxfh()
466 struct ethtool_rxfh_param *rxfh, in idpf_set_rxfh() argument
488 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in idpf_set_rxfh()
489 rxfh->hfunc != ETH_RSS_HASH_TOP) { in idpf_set_rxfh()
494 if (rxfh->key) in idpf_set_rxfh()
[all …]
/linux/drivers/net/ethernet/huawei/hinic/
H A Dhinic_ethtool.c1112 struct ethtool_rxfh_param *rxfh) in hinic_get_rxfh() argument
1127 rxfh->hfunc = hash_engine_type ? ETH_RSS_HASH_TOP : ETH_RSS_HASH_XOR; in hinic_get_rxfh()
1129 if (rxfh->indir) { in hinic_get_rxfh()
1132 rxfh->indir); in hinic_get_rxfh()
1137 if (rxfh->key) in hinic_get_rxfh()
1140 rxfh->key); in hinic_get_rxfh()
1146 struct ethtool_rxfh_param *rxfh, in hinic_set_rxfh() argument
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()
[all …]
/linux/drivers/net/ethernet/mellanox/mlx4/
H A Den_ethtool.c1243 struct ethtool_rxfh_param *rxfh) in mlx4_en_get_rxfh() argument
1253 if (!rxfh->indir) in mlx4_en_get_rxfh()
1255 rxfh->indir[i] = i % rss_rings; in mlx4_en_get_rxfh()
1257 if (rxfh->key) in mlx4_en_get_rxfh()
1258 memcpy(rxfh->key, priv->rss_key, MLX4_EN_RSS_KEY_SIZE); in mlx4_en_get_rxfh()
1259 rxfh->hfunc = priv->rss_hash_fn; in mlx4_en_get_rxfh()
1264 struct ethtool_rxfh_param *rxfh, in mlx4_en_set_rxfh() argument
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()
[all …]
/linux/drivers/net/ethernet/sfc/falcon/
H A Dethtool.c1266 struct ethtool_rxfh_param *rxfh) in ef4_ethtool_get_rxfh() argument
1270 rxfh->hfunc = ETH_RSS_HASH_TOP; in ef4_ethtool_get_rxfh()
1271 if (rxfh->indir) in ef4_ethtool_get_rxfh()
1272 memcpy(rxfh->indir, efx->rx_indir_table, in ef4_ethtool_get_rxfh()
1278 struct ethtool_rxfh_param *rxfh, in ef4_ethtool_set_rxfh() argument
1284 if (rxfh->key || in ef4_ethtool_set_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()
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/freescale/enetc/
H A Denetc_ethtool.c972 struct ethtool_rxfh_param *rxfh) in enetc_get_rxfh() argument
979 rxfh->hfunc = ETH_RSS_HASH_TOP; in enetc_get_rxfh()
982 if (rxfh->key && enetc_si_is_pf(si)) in enetc_get_rxfh()
983 enetc_get_rss_key(si, rxfh->key); in enetc_get_rxfh()
986 if (rxfh->indir) in enetc_get_rxfh()
987 err = si->ops->get_rss_table(si, rxfh->indir, si->num_rss); in enetc_get_rxfh()
1004 struct ethtool_rxfh_param *rxfh, in enetc_set_rxfh() argument
1011 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in enetc_set_rxfh()
1012 rxfh->hfunc != ETH_RSS_HASH_TOP) in enetc_set_rxfh()
1016 if (rxfh->key) { in enetc_set_rxfh()
[all …]
/linux/drivers/net/ethernet/netronome/nfp/
H A Dnfp_net_ethtool.c1801 struct ethtool_rxfh_param *rxfh) in nfp_net_get_rxfh() argument
1809 if (rxfh->indir) in nfp_net_get_rxfh()
1811 rxfh->indir[i] = nn->rss_itbl[i]; in nfp_net_get_rxfh()
1812 if (rxfh->key) in nfp_net_get_rxfh()
1813 memcpy(rxfh->key, nn->rss_key, nfp_net_rss_key_sz(nn)); in nfp_net_get_rxfh()
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()
1823 struct ethtool_rxfh_param *rxfh, in nfp_net_set_rxfh() argument
1830 !(rxfh->hfunc == ETH_RSS_HASH_NO_CHANGE || in nfp_net_set_rxfh()
[all …]
/linux/drivers/net/hyperv/
H A Dnetvsc_drv.c1710 struct ethtool_rxfh_param *rxfh) in netvsc_get_rxfh() argument
1720 rxfh->hfunc = ETH_RSS_HASH_TOP; /* Toeplitz */ in netvsc_get_rxfh()
1723 if (rxfh->indir) { in netvsc_get_rxfh()
1725 rxfh->indir[i] = ndc->rx_table[i]; in netvsc_get_rxfh()
1728 if (rxfh->key) in netvsc_get_rxfh()
1729 memcpy(rxfh->key, rndis_dev->rss_key, NETVSC_HASH_KEYLEN); in netvsc_get_rxfh()
1735 struct ethtool_rxfh_param *rxfh, in netvsc_set_rxfh() argument
1741 u8 *key = rxfh->key; in netvsc_set_rxfh()
1747 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in netvsc_set_rxfh()
1748 rxfh->hfunc != ETH_RSS_HASH_TOP) in netvsc_set_rxfh()
[all …]
/linux/drivers/net/ethernet/intel/igc/
H A Digc_ethtool.c1491 struct ethtool_rxfh_param *rxfh) in igc_ethtool_get_rxfh() argument
1496 rxfh->hfunc = ETH_RSS_HASH_TOP; in igc_ethtool_get_rxfh()
1497 if (!rxfh->indir) in igc_ethtool_get_rxfh()
1500 rxfh->indir[i] = adapter->rss_indir_tbl[i]; in igc_ethtool_get_rxfh()
1506 struct ethtool_rxfh_param *rxfh, in igc_ethtool_set_rxfh() argument
1514 if (rxfh->key || in igc_ethtool_set_rxfh()
1515 (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in igc_ethtool_set_rxfh()
1516 rxfh->hfunc != ETH_RSS_HASH_TOP)) in igc_ethtool_set_rxfh()
1518 if (!rxfh->indir) in igc_ethtool_set_rxfh()
1525 if (rxfh->indir[i] >= num_queues) in igc_ethtool_set_rxfh()
[all …]
/linux/drivers/net/ethernet/chelsio/cxgb4/
H A Dcxgb4_ethtool.c1587 struct ethtool_rxfh_param *rxfh) in get_rss_table() argument
1592 rxfh->hfunc = ETH_RSS_HASH_TOP; in get_rss_table()
1593 if (!rxfh->indir) in get_rss_table()
1596 rxfh->indir[n] = pi->rss[n]; in get_rss_table()
1601 struct ethtool_rxfh_param *rxfh, in set_rss_table() argument
1610 if (rxfh->key || in set_rss_table()
1611 (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in set_rss_table()
1612 rxfh->hfunc != ETH_RSS_HASH_TOP)) in set_rss_table()
1614 if (!rxfh->indir) in set_rss_table()
1620 pi->rss[i] = rxfh->indir[i]; in set_rss_table()
/linux/drivers/net/ethernet/google/gve/
H A Dgve_adminq.h651 int gve_adminq_configure_rss(struct gve_priv *priv, struct ethtool_rxfh_param *rxfh);
652 int gve_adminq_query_rss_config(struct gve_priv *priv, struct ethtool_rxfh_param *rxfh);
/linux/drivers/net/ethernet/intel/igb/
H A Digb_ethtool.c3273 struct ethtool_rxfh_param *rxfh) in igb_get_rxfh() argument
3278 rxfh->hfunc = ETH_RSS_HASH_TOP; in igb_get_rxfh()
3279 if (!rxfh->indir) in igb_get_rxfh()
3282 rxfh->indir[i] = adapter->rss_indir_tbl[i]; in igb_get_rxfh()
3323 struct ethtool_rxfh_param *rxfh, in igb_set_rxfh() argument
3332 if (rxfh->key || in igb_set_rxfh()
3333 (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in igb_set_rxfh()
3334 rxfh->hfunc != ETH_RSS_HASH_TOP)) in igb_set_rxfh()
3336 if (!rxfh->indir) in igb_set_rxfh()
3353 if (rxfh->indir[i] >= num_queues) in igb_set_rxfh()
[all …]
/linux/drivers/net/ethernet/broadcom/
H A Dtg3.c12745 static int tg3_get_rxfh(struct net_device *dev, struct ethtool_rxfh_param *rxfh) in tg3_get_rxfh() argument
12750 rxfh->hfunc = ETH_RSS_HASH_TOP; in tg3_get_rxfh()
12751 if (!rxfh->indir) in tg3_get_rxfh()
12755 rxfh->indir[i] = tp->rss_ind_tbl[i]; in tg3_get_rxfh()
12760 static int tg3_set_rxfh(struct net_device *dev, struct ethtool_rxfh_param *rxfh, in tg3_set_rxfh() argument
12769 if (rxfh->key || in tg3_set_rxfh()
12770 (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in tg3_set_rxfh()
12771 rxfh->hfunc != ETH_RSS_HASH_TOP)) in tg3_set_rxfh()
12774 if (!rxfh->indir) in tg3_set_rxfh()
12778 tp->rss_ind_tbl[i] = rxfh->indir[i]; in tg3_set_rxfh()