Home
last modified time | relevance | path

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

12

/linux/net/ethtool/
H A Drss.c155 struct ethtool_rxfh_param rxfh = {}; in rss_prepare_get() local
167 rxfh.indir_size = data->indir_size; in rss_prepare_get()
168 rxfh.indir = data->indir_table; in rss_prepare_get()
169 rxfh.key_size = data->hkey_size; in rss_prepare_get()
170 rxfh.key = data->hkey; in rss_prepare_get()
172 ret = ops->get_rxfh(dev, &rxfh); in rss_prepare_get()
178 data->hfunc = rxfh.hfunc; in rss_prepare_get()
179 data->input_xfrm = rxfh.input_xfrm; in rss_prepare_get()
619 struct rss_reply_data *data, struct ethtool_rxfh_param *rxfh, in rss_set_prep_indir() argument
645 if (rxfh->rss_context) { in rss_set_prep_indir()
[all …]
H A Dcommon.h50 int ethtool_rxfh_config_is_sym(u64 rxfh);
/linux/drivers/net/ethernet/google/gve/
H A Dgve_ethtool.c894 struct ethtool_rxfh_param *rxfh) in gve_get_rss_config_cache() argument
898 rxfh->hfunc = ETH_RSS_HASH_TOP; in gve_get_rss_config_cache()
900 if (rxfh->key) { in gve_get_rss_config_cache()
901 rxfh->key_size = priv->rss_key_size; in gve_get_rss_config_cache()
902 memcpy(rxfh->key, rss_config->hash_key, priv->rss_key_size); in gve_get_rss_config_cache()
905 if (rxfh->indir) { in gve_get_rss_config_cache()
906 rxfh->indir_size = priv->rss_lut_size; 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()
912 static int gve_get_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh) in gve_get_rxfh() argument
[all …]
H A Dgve_adminq.c1331 int gve_adminq_configure_rss(struct gve_priv *priv, struct ethtool_rxfh_param *rxfh) in gve_adminq_configure_rss() argument
1343 switch (rxfh->hfunc) { in gve_adminq_configure_rss()
1353 if (rxfh->indir) { in gve_adminq_configure_rss()
1354 if (rxfh->indir_size != priv->rss_lut_size) in gve_adminq_configure_rss()
1357 hash_lut_to_config = rxfh->indir; in gve_adminq_configure_rss()
1373 if (rxfh->key) { in gve_adminq_configure_rss()
1374 if (rxfh->key_size != priv->rss_key_size) { in gve_adminq_configure_rss()
1379 hash_key_to_config = rxfh->key; in gve_adminq_configure_rss()
1508 struct ethtool_rxfh_param *rxfh) in gve_adminq_process_rss_query() argument
1517 hash_lut_length = priv->rss_lut_size * sizeof(*rxfh->indir); in gve_adminq_process_rss_query()
[all …]
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/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/microsoft/mana/
H A Dmana_ethtool.c350 struct ethtool_rxfh_param *rxfh) in mana_get_rxfh() argument
355 rxfh->hfunc = ETH_RSS_HASH_TOP; /* Toeplitz */ in mana_get_rxfh()
357 if (rxfh->indir) { in mana_get_rxfh()
359 rxfh->indir[i] = apc->indir_table[i]; in mana_get_rxfh()
362 if (rxfh->key) in mana_get_rxfh()
363 memcpy(rxfh->key, apc->hashkey, MANA_HASH_KEY_SIZE); in mana_get_rxfh()
369 struct ethtool_rxfh_param *rxfh, in mana_set_rxfh() argument
381 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in mana_set_rxfh()
382 rxfh->hfunc != ETH_RSS_HASH_TOP) in mana_set_rxfh()
389 if (rxfh->indir) { in mana_set_rxfh()
[all …]
/linux/drivers/net/ethernet/wangxun/libwx/
H A Dwx_ethtool.c594 struct ethtool_rxfh_param *rxfh) in wx_get_rxfh() argument
598 rxfh->hfunc = ETH_RSS_HASH_TOP; in wx_get_rxfh()
600 if (rxfh->indir) in wx_get_rxfh()
601 wx_get_reta(wx, rxfh->indir); in wx_get_rxfh()
603 if (rxfh->key) in wx_get_rxfh()
604 memcpy(rxfh->key, wx->rss_key, WX_RSS_KEY_SIZE); in wx_get_rxfh()
611 struct ethtool_rxfh_param *rxfh, in wx_set_rxfh() argument
617 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in wx_set_rxfh()
618 rxfh->hfunc != ETH_RSS_HASH_TOP) in wx_set_rxfh()
623 if (rxfh->indir) { in wx_set_rxfh()
[all …]
/linux/drivers/net/ethernet/mellanox/mlx5/core/
H A Den_ethtool.c1508 static int mlx5e_get_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh) in mlx5e_get_rxfh() argument
1514 mlx5e_rx_res_rss_get_rxfh(priv->rx_res, 0, rxfh->indir, rxfh->key, in mlx5e_get_rxfh()
1515 &rxfh->hfunc, &symmetric); in mlx5e_get_rxfh()
1519 rxfh->input_xfrm = RXH_XFRM_SYM_OR_XOR; in mlx5e_get_rxfh()
1525 struct ethtool_rxfh_param *rxfh, in mlx5e_set_rxfh() argument
1528 bool symmetric = rxfh->input_xfrm == RXH_XFRM_SYM_OR_XOR; in mlx5e_set_rxfh()
1530 u8 hfunc = rxfh->hfunc; in mlx5e_set_rxfh()
1535 err = mlx5e_rx_res_rss_set_rxfh(priv->rx_res, rxfh->rss_context, in mlx5e_set_rxfh()
1536 rxfh->indir, rxfh->key, in mlx5e_set_rxfh()
1538 rxfh->input_xfrm == RXH_XFRM_NO_CHANGE ? NULL : &symmetric); in mlx5e_set_rxfh()
[all …]
/linux/drivers/net/ethernet/intel/iavf/
H A Diavf_ethtool.c1786 struct ethtool_rxfh_param *rxfh) in iavf_get_rxfh() argument
1791 rxfh->hfunc = ETH_RSS_HASH_TOP; in iavf_get_rxfh()
1793 rxfh->input_xfrm |= RXH_XFRM_SYM_XOR; in iavf_get_rxfh()
1795 if (rxfh->key) in iavf_get_rxfh()
1796 memcpy(rxfh->key, adapter->rss_key, adapter->rss_key_size); in iavf_get_rxfh()
1798 if (rxfh->indir) in iavf_get_rxfh()
1801 rxfh->indir[i] = (u32)adapter->rss_lut[i]; in iavf_get_rxfh()
1816 struct ethtool_rxfh_param *rxfh, in iavf_set_rxfh() argument
1823 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in iavf_set_rxfh()
1824 rxfh->hfunc != ETH_RSS_HASH_TOP) in iavf_set_rxfh()
[all …]
/linux/drivers/net/ethernet/stmicro/stmmac/
H A Dstmmac_ethtool.c941 struct ethtool_rxfh_param *rxfh) in stmmac_get_rxfh() argument
946 if (rxfh->indir) { in stmmac_get_rxfh()
948 rxfh->indir[i] = priv->rss.table[i]; in stmmac_get_rxfh()
951 if (rxfh->key) in stmmac_get_rxfh()
952 memcpy(rxfh->key, priv->rss.key, sizeof(priv->rss.key)); in stmmac_get_rxfh()
953 rxfh->hfunc = ETH_RSS_HASH_TOP; in stmmac_get_rxfh()
959 struct ethtool_rxfh_param *rxfh, in stmmac_set_rxfh() argument
965 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in stmmac_set_rxfh()
966 rxfh->hfunc != ETH_RSS_HASH_TOP) in stmmac_set_rxfh()
969 if (rxfh->indir) { in stmmac_set_rxfh()
[all …]
/linux/drivers/net/ethernet/meta/fbnic/
H A Dfbnic_ethtool.c1315 fbnic_get_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh) in fbnic_get_rxfh() argument
1320 rxfh->hfunc = ETH_RSS_HASH_TOP; in fbnic_get_rxfh()
1322 if (rxfh->key) { in fbnic_get_rxfh()
1326 rxfh->key[i] = rss_key >> 24; in fbnic_get_rxfh()
1330 if (rxfh->indir) { in fbnic_get_rxfh()
1332 rxfh->indir[i] = fbn->indir_tbl[0][i]; in fbnic_get_rxfh()
1355 fbnic_set_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh, in fbnic_set_rxfh() argument
1361 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in fbnic_set_rxfh()
1362 rxfh->hfunc != ETH_RSS_HASH_TOP) in fbnic_set_rxfh()
1365 if (rxfh->key) { in fbnic_set_rxfh()
[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.c409 struct ethtool_rxfh_param *rxfh) in idpf_get_rxfh() argument
432 rxfh->hfunc = ETH_RSS_HASH_TOP; in idpf_get_rxfh()
434 if (rxfh->key) in idpf_get_rxfh()
435 memcpy(rxfh->key, rss_data->rss_key, rss_data->rss_key_size); in idpf_get_rxfh()
437 if (rxfh->indir) { in idpf_get_rxfh()
439 rxfh->indir[i] = rxhash_ena ? rss_data->rss_lut[i] : 0; in idpf_get_rxfh()
458 struct ethtool_rxfh_param *rxfh, in idpf_set_rxfh() argument
480 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in idpf_set_rxfh()
481 rxfh->hfunc != ETH_RSS_HASH_TOP) { in idpf_set_rxfh()
486 if (rxfh->key) in idpf_set_rxfh()
[all …]
/linux/drivers/net/ethernet/huawei/hinic/
H A Dhinic_ethtool.c1091 struct ethtool_rxfh_param *rxfh) in hinic_get_rxfh() argument
1106 rxfh->hfunc = hash_engine_type ? ETH_RSS_HASH_TOP : ETH_RSS_HASH_XOR; in hinic_get_rxfh()
1108 if (rxfh->indir) { in hinic_get_rxfh()
1111 rxfh->indir); in hinic_get_rxfh()
1116 if (rxfh->key) in hinic_get_rxfh()
1119 rxfh->key); in hinic_get_rxfh()
1125 struct ethtool_rxfh_param *rxfh, in hinic_set_rxfh() argument
1134 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE) { in hinic_set_rxfh()
1135 if (rxfh->hfunc != ETH_RSS_HASH_TOP && in hinic_set_rxfh()
1136 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/ethernet/intel/igc/
H A Digc_ethtool.c1516 struct ethtool_rxfh_param *rxfh) in igc_ethtool_get_rxfh() argument
1521 rxfh->hfunc = ETH_RSS_HASH_TOP; in igc_ethtool_get_rxfh()
1523 if (rxfh->indir) in igc_ethtool_get_rxfh()
1525 rxfh->indir[i] = adapter->rss_indir_tbl[i]; in igc_ethtool_get_rxfh()
1527 if (rxfh->key) in igc_ethtool_get_rxfh()
1528 memcpy(rxfh->key, adapter->rss_key, sizeof(adapter->rss_key)); in igc_ethtool_get_rxfh()
1534 struct ethtool_rxfh_param *rxfh, in igc_ethtool_set_rxfh() argument
1542 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in igc_ethtool_set_rxfh()
1543 rxfh->hfunc != ETH_RSS_HASH_TOP) in igc_ethtool_set_rxfh()
1546 if (rxfh->indir) { in igc_ethtool_set_rxfh()
[all …]
/linux/drivers/net/ethernet/hisilicon/hns3/
H A Dhns3_ethtool.c940 struct ethtool_rxfh_param *rxfh) in hns3_get_rss() argument
947 return h->ae_algo->ops->get_rss(h, rxfh->indir, rxfh->key, in hns3_get_rss()
948 &rxfh->hfunc); in hns3_get_rss()
952 struct ethtool_rxfh_param *rxfh, in hns3_set_rss() argument
962 rxfh->hfunc != ETH_RSS_HASH_TOP) || in hns3_set_rss()
963 (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in hns3_set_rss()
964 rxfh->hfunc != ETH_RSS_HASH_TOP && in hns3_set_rss()
965 rxfh->hfunc != ETH_RSS_HASH_XOR)) { in hns3_set_rss()
970 if (!rxfh->indir) { in hns3_set_rss()
976 return h->ae_algo->ops->set_rss(h, rxfh->indir, rxfh->key, in hns3_set_rss()
[all …]
/linux/drivers/net/ethernet/broadcom/bnxt/
H A Dbnxt_ethtool.c1880 struct ethtool_rxfh_param *rxfh) in bnxt_get_rxfh() argument
1888 rxfh->hfunc = ETH_RSS_HASH_TOP; in bnxt_get_rxfh()
1894 if (rxfh->rss_context) { in bnxt_get_rxfh()
1897 ctx = xa_load(&bp->dev->ethtool->rss_ctx, rxfh->rss_context); in bnxt_get_rxfh()
1905 if (rxfh->indir && indir_tbl) { in bnxt_get_rxfh()
1908 rxfh->indir[i] = indir_tbl[i]; in bnxt_get_rxfh()
1911 if (rxfh->key && vnic->rss_hash_key) in bnxt_get_rxfh()
1912 memcpy(rxfh->key, vnic->rss_hash_key, HW_HASH_KEY_SIZE); in bnxt_get_rxfh()
1919 const struct ethtool_rxfh_param *rxfh) in bnxt_modify_rss() argument
1921 if (rxfh->key) { in bnxt_modify_rss()
[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/intel/igb/
H A Digb_ethtool.c3294 struct ethtool_rxfh_param *rxfh) in igb_get_rxfh() argument
3299 rxfh->hfunc = ETH_RSS_HASH_TOP; in igb_get_rxfh()
3300 if (rxfh->indir) in igb_get_rxfh()
3302 rxfh->indir[i] = adapter->rss_indir_tbl[i]; in igb_get_rxfh()
3304 if (rxfh->key) in igb_get_rxfh()
3305 memcpy(rxfh->key, adapter->rss_key, sizeof(adapter->rss_key)); in igb_get_rxfh()
3351 struct ethtool_rxfh_param *rxfh, in igb_set_rxfh() argument
3360 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in igb_set_rxfh()
3361 rxfh->hfunc != ETH_RSS_HASH_TOP) in igb_set_rxfh()
3364 if (rxfh->indir) { in igb_set_rxfh()
[all …]
/linux/drivers/net/ethernet/intel/ice/
H A Dice_ethtool.c3627 ice_get_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh) in ice_get_rxfh() argument
3644 rxfh->hfunc = ETH_RSS_HASH_TOP; in ice_get_rxfh()
3646 rxfh->input_xfrm |= RXH_XFRM_SYM_XOR; in ice_get_rxfh()
3648 if (!rxfh->indir) in ice_get_rxfh()
3655 err = ice_get_rss(vsi, rxfh->key, lut, vsi->rss_table_size); in ice_get_rxfh()
3661 rxfh->indir[i] = offset + lut[i] % qcount; in ice_get_rxfh()
3666 rxfh->indir[i] = lut[i]; in ice_get_rxfh()
3683 ice_set_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh, in ice_set_rxfh() argument
3694 if (rxfh->hfunc != ETH_RSS_HASH_NO_CHANGE && in ice_set_rxfh()
3695 rxfh->hfunc != ETH_RSS_HASH_TOP) in ice_set_rxfh()
[all …]

12