> -----Original Message----- > From: Keller, Jacob E <jacob.e.kel...@intel.com> > Sent: Wednesday, April 30, 2025 7:12 PM > To: netdev <net...@vger.kernel.org>; Nguyen, Anthony L > <anthony.l.ngu...@intel.com>; Intel Wired LAN <intel-wired- > l...@lists.osuosl.org> > Cc: Keller, Jacob E <jacob.e.kel...@intel.com>; Loktionov, Aleksandr > <aleksandr.loktio...@intel.com>; Kitszel, Przemyslaw > <przemyslaw.kits...@intel.com> > Subject: [PATCH iwl-next 0/2] net: intel: cleanup RSS hash configuration bits > > The virtchnl API does not define the RSS Hash configuration bits directly in > virtchnl.h, but instead implicitly relies on the hardware definitions for X710 > and X722 in the i40e driver. > > This results in duplicating the same bit definitions across 3 drivers. The > actual > virtchnl.h header makes no mention of this, and its very unclear what the bits > mean without deep knowledge of the way RSS configuration works over > virtchnl. > > In addition, the use of the term 'hena' is confusing. It comes from the > I40E_PFQF_HENA registers, indicating which hash types are enabled. > > Rename the 'hena' fields and related functions to use 'hashcfg' as a shorthand > for hash configuration. > > We could define the enumeration of packet types in virtchnl.h. Indeed, this is > what the out-of-tree releases of virtchnl.h do. However, this is somewhat > confusing for i40e. The X710 and X722 hardware use these bits directly with > PF hardware registers. It looks confusing to use "VIRTCHNL_*" > names for such access. > > Instead, we move these definitions to libie as part of new pctype.h header > file. > This allows us to remove all duplicate definitions and have a single place for > Linux to define the bit meanings. The virtchnl.h header can point to this > enumeration to clarify where the values are defined. > > Signed-off-by: Jacob Keller <jacob.e.kel...@intel.com> Reviewed-by: Aleksandr Loktionov <aleksandr.loktio...@intel.com>
> --- > Jacob Keller (2): > net: intel: rename 'hena' to 'hashcfg' for clarity > net: intel: move RSS packet classifier types to libie > > drivers/net/ethernet/intel/i40e/i40e_txrx.h | 43 ++++++------ > drivers/net/ethernet/intel/i40e/i40e_type.h | 32 --------- > drivers/net/ethernet/intel/iavf/iavf.h | 10 +-- > drivers/net/ethernet/intel/iavf/iavf_txrx.h | 40 ++++++----- > drivers/net/ethernet/intel/iavf/iavf_type.h | 32 --------- > drivers/net/ethernet/intel/ice/ice_flow.h | 68 ++++++------------ > drivers/net/ethernet/intel/ice/ice_virtchnl.h | 4 +- > include/linux/avf/virtchnl.h | 23 +++--- > include/linux/net/intel/libie/pctype.h | 44 ++++++++++++ > drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 81 +++++++++++---------- > - > drivers/net/ethernet/intel/i40e/i40e_main.c | 25 +++---- > drivers/net/ethernet/intel/i40e/i40e_txrx.c | 25 +++---- > drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 46 ++++++------ > drivers/net/ethernet/intel/iavf/iavf_main.c | 17 ++--- > drivers/net/ethernet/intel/iavf/iavf_virtchnl.c | 33 ++++----- > drivers/net/ethernet/intel/ice/ice_flow.c | 45 ++++++------ > drivers/net/ethernet/intel/ice/ice_lib.c | 2 +- > drivers/net/ethernet/intel/ice/ice_virtchnl.c | 44 ++++++------ > .../ethernet/intel/ice/ice_virtchnl_allowlist.c | 2 +- > 19 files changed, 289 insertions(+), 327 deletions(-) > --- > base-commit: deeed351e982ac4d521598375b34b071304533b0 > change-id: 20250423-jk-hash-ena-refactor-9ac1e2b83a5e > > Best regards, > -- > Jacob Keller <jacob.e.kel...@intel.com>