> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf Of Jacob 
> Keller
> Sent: 06 May 2025 01:44
> To: Intel Wired LAN <[email protected]>; Nguyen, Anthony L 
> <[email protected]>; netdev <[email protected]>
> Cc: Keller, Jacob E <[email protected]>; Kitszel, Przemyslaw 
> <[email protected]>; Simon Horman <[email protected]>; Loktionov, 
> Aleksandr <[email protected]>
> Subject: [Intel-wired-lan] [PATCH iwl-next v2 2/2] net: intel: move RSS 
> packet classifier types to libie
>
> The Intel i40e, iavf, and ice drivers all include a definition of the packet 
> classifier filter types used to program RSS hash enable bits. For i40e, these 
> bits are used for both the PF and VF to configure the PFQF_HENA and VFQF_HENA 
> registers.
>
> For ice and iAVF, these bits are used to communicate the desired hash enable 
> filter over virtchnl via its struct virtchnl_rss_hashena. The virtchnl.h 
> header makes no mention of where the bit definitions reside.
>
> Maintaining a separate copy of these bits across three drivers is cumbersome. 
> Move the definition to libie as a new pctype.h header file.
> Each driver can include this, and drop its own definition.
>
> The ice implementation also defined a ICE_AVF_FLOW_FIELD_INVALID, intending 
> to use this to indicate when there were no hash enable bits set. This is 
> confusing, since the enumeration is using bit positions. A value of 0
*should* indicate the first bit. Instead, rewrite the code that uses 
ICE_AVF_FLOW_FIELD_INVALID to just check if the avf_hash is zero. From context 
this should be clear that we're checking if none of the bits are set.
>
> The values are kept as bit positions instead of encoding the BIT_ULL directly 
> into their value. While most users will simply use BIT_ULL immediately, i40e 
> uses the macros both with BIT_ULL and test_bit/set_bit calls.
>
> Reviewed-by: Przemek Kitszel <[email protected]>
> Reviewed-by: Simon Horman <[email protected]>
> Reviewed-by: Aleksandr Loktionov <[email protected]>
> Signed-off-by: Jacob Keller <[email protected]>
> ---
> drivers/net/ethernet/intel/i40e/i40e_txrx.h    | 35 +++++------
> drivers/net/ethernet/intel/i40e/i40e_type.h    | 32 ----------
> drivers/net/ethernet/intel/iavf/iavf_txrx.h    | 36 ++++++------
> drivers/net/ethernet/intel/iavf/iavf_type.h    | 32 ----------
> drivers/net/ethernet/intel/ice/ice_flow.h      | 64 ++++++--------------
> include/linux/avf/virtchnl.h                   |  1 +
> include/linux/net/intel/libie/pctype.h         | 41 +++++++++++++
> drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 81 +++++++++++++-------------
> drivers/net/ethernet/intel/i40e/i40e_main.c    | 23 ++++----
> drivers/net/ethernet/intel/i40e/i40e_txrx.c    | 25 ++++----
> drivers/net/ethernet/intel/ice/ice_flow.c      | 45 +++++++-------
> 11 files changed, 185 insertions(+), 230 deletions(-)
>

Tested-by: Rinitha S <[email protected]> (A Contingent worker at Intel)

Reply via email to