ethtool: Support for configurable RSS hash function
This patch extends the set/get_rxfh ethtool-options for getting or setting the RSS hash function. It modifies drivers implementation of set/get_rxfh accordingly. This change also delegates the responsibility of checking whether a modification to a certain RX flow hash parameter is supported to the driver implementation of set_rxfh. User-kernel API is done through the new hfunc bitmask field in the ethtool_rxfh struct. A bit set in the hfunc field is corresponding to an index in the new string-set ETH_SS_RSS_HASH_FUNCS. Got approval from most of the relevant driver maintainers that their driver is using Toeplitz, and for the few that didn't answered, also assumed it is Toeplitz. Cc: Tom Lendacky <thomas.lendacky@amd.com> Cc: Ariel Elior <ariel.elior@qlogic.com> Cc: Prashant Sreedharan <prashant@broadcom.com> Cc: Michael Chan <mchan@broadcom.com> Cc: Hariprasad S <hariprasad@chelsio.com> Cc: Sathya Perla <sathya.perla@emulex.com> Cc: Subbu Seetharaman <subbu.seetharaman@emulex.com> Cc: Ajit Khaparde <ajit.khaparde@emulex.com> Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Cc: Jesse Brandeburg <jesse.brandeburg@intel.com> Cc: Bruce Allan <bruce.w.allan@intel.com> Cc: Carolyn Wyborny <carolyn.wyborny@intel.com> Cc: Don Skidmore <donald.c.skidmore@intel.com> Cc: Greg Rose <gregory.v.rose@intel.com> Cc: Matthew Vick <matthew.vick@intel.com> Cc: John Ronciak <john.ronciak@intel.com> Cc: Mitch Williams <mitch.a.williams@intel.com> Cc: Amir Vadai <amirv@mellanox.com> Cc: Solarflare linux maintainers <linux-net-drivers@solarflare.com> Cc: Shradha Shah <sshah@solarflare.com> Cc: Shreyas Bhatewara <sbhatewara@vmware.com> Cc: "VMware, Inc." <pv-drivers@vmware.com> Cc: Ben Hutchings <ben@decadent.org.uk> Signed-off-by:Eyal Perry <eyalpe@mellanox.com> Signed-off-by:
Amir Vadai <amirv@mellanox.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
Showing
- drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c 9 additions, 2 deletionsdrivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
- drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c 18 additions, 2 deletionsdrivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c
- drivers/net/ethernet/broadcom/tg3.c 18 additions, 2 deletionsdrivers/net/ethernet/broadcom/tg3.c
- drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c 16 additions, 2 deletionsdrivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
- drivers/net/ethernet/emulex/benet/be_ethtool.c 10 additions, 2 deletionsdrivers/net/ethernet/emulex/benet/be_ethtool.c
- drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c 10 additions, 2 deletionsdrivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
- drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c 15 additions, 2 deletionsdrivers/net/ethernet/intel/i40evf/i40evf_ethtool.c
- drivers/net/ethernet/intel/igb/igb_ethtool.c 14 additions, 2 deletionsdrivers/net/ethernet/intel/igb/igb_ethtool.c
- drivers/net/ethernet/mellanox/mlx4/en_ethtool.c 11 additions, 2 deletionsdrivers/net/ethernet/mellanox/mlx4/en_ethtool.c
- drivers/net/ethernet/sfc/ethtool.c 14 additions, 4 deletionsdrivers/net/ethernet/sfc/ethtool.c
- drivers/net/vmxnet3/vmxnet3_ethtool.c 13 additions, 2 deletionsdrivers/net/vmxnet3/vmxnet3_ethtool.c
- include/linux/ethtool.h 30 additions, 12 deletionsinclude/linux/ethtool.h
- include/uapi/linux/ethtool.h 8 additions, 2 deletionsinclude/uapi/linux/ethtool.h
- net/core/ethtool.c 37 additions, 32 deletionsnet/core/ethtool.c
Loading
Please register or sign in to comment