[Intel-wired-lan] [PATCH iwl-net] ice: change q_index variable type to s16 to store -1 value

Pucha, HimasekharX Reddy himasekharx.reddy.pucha at intel.com
Mon Nov 4 04:58:33 UTC 2024


> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces at osuosl.org> On Behalf Of Mateusz Polchlopek
> Sent: 28 October 2024 22:29
> To: intel-wired-lan at lists.osuosl.org
> Cc: Ertman, David M <david.m.ertman at intel.com>; netdev at vger.kernel.org; Polchlopek, Mateusz <mateusz.polchlopek at intel.com>; Kitszel, Przemyslaw <przemyslaw.kitszel at intel.com>
> Subject: [Intel-wired-lan] [PATCH iwl-net] ice: change q_index variable type to s16 to store -1 value
>
> Fix Flow Director not allowing to re-map traffic to 0th queue when action is configured to drop (and vice versa).
>
> The current implementation of ethtool callback in the ice driver forbids change Flow Director action from 0 to -1 and from -1 to 0 with an error,
> e.g:
>
> # ethtool -U eth2 flow-type tcp4 src-ip 1.1.1.1 loc 1 action 0  # ethtool -U eth2 flow-type tcp4 src-ip 1.1.1.1 loc 1 action -1
>  rmgr: Cannot insert RX class rule: Invalid argument
>
> We set the value of `u16 q_index = 0` at the beginning of the function ice_set_fdir_input_set(). In case of "drop traffic" action (which is equal to -1 in ethtool) we store the 0 value. Later, when want to change traffic rule to redirect to queue with index 0 it returns an error caused by duplicate found.
>
> Fix this behaviour by change of the type of field `q_index` from u16 to s16 in `struct ice_fdir_fltr`. This allows to store -1 in the field in case of "drop traffic" action. What is more, change the variable type > in the function ice_set_fdir_input_set() and assign at the beginning the new `#define ICE_FDIR_NO_QUEUE_IDX` which is -1. Later, if the action is set to another value (point specific queue index) the variable value is overwritten in the function.
>
> Fixes: cac2a27cd9ab ("ice: Support IPv4 Flow Director filters")
> Reviewed-by: Przemek Kitszel <przemyslaw.kitszel at intel.com>
> Signed-off-by: Mateusz Polchlopek <mateusz.polchlopek at intel.com>
> ---
>  drivers/net/ethernet/intel/ice/ice_ethtool_fdir.c | 3 ++-
>  drivers/net/ethernet/intel/ice/ice_fdir.h         | 4 +++-
>  2 files changed, 5 insertions(+), 2 deletions(-)
>

Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha at intel.com> (A Contingent worker at Intel)



More information about the Intel-wired-lan mailing list