> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf Of 
> Marcin Szycik
> Sent: 02 July 2026 16:00
> To: [email protected]
> Cc: [email protected]; Penigalapati, Sandeep 
> <[email protected]>; S, Ananth <[email protected]>; 
> [email protected]; Nguyen, Anthony L <[email protected]>; 
> Marcin Szycik <[email protected]>; Cao, Chinh T 
> <[email protected]>; Loktionov, Aleksandr <[email protected]>
> Subject: [Intel-wired-lan] [PATCH iwl-next v5 04/12] ice: initialize ACL 
> scenario
>
> From: Real Valiquette <[email protected]>
>
> Complete initialization of the ACL table by programming the table with an 
> initial scenario. The scenario stores the data for the filtering rules.
> Adjust reporting of ntuple filters to include ACL filters.
>
> Co-developed-by: Chinh Cao <[email protected]>
> Signed-off-by: Chinh Cao <[email protected]>
> Signed-off-by: Real Valiquette <[email protected]>
> Co-developed-by: Tony Nguyen <[email protected]>
> Signed-off-by: Tony Nguyen <[email protected]>
> Reviewed-by: Aleksandr Loktionov <[email protected]>
> Signed-off-by: Marcin Szycik <[email protected]>
> ---
> v5:
> * Make ice_acl_rem_flows() non-static. Remove its call from
>   ice_vsi_manage_fdir(), instead call it from ice_deinit_acl()
> * ice_fdir_del_all_fltrs(), ice_fdir_replay_fltrs(): skip ACL filters
> v4:
> * Introduce struct ice_acl_hw_prof in place of using struct
>   ice_fd_hw_prof for ACL. It didn't make very much sense, because most
>   members were actually unsed, in addition to it being very confusing.
> * Now, ice_fdir_rem_flow() won't be able to remove ACL profiles (because
>   ice_fdir_get_hw_prof() no longer returns them, as it should logically
>   be). Instead, create a new function: ice_acl_rem_flows(). It's simpler
>   than the previously used ice_fdir_rem_flow(), because it doesn't need
>   to iterate over any arrays. It also doesn't need to call some
>   functions - it should all be handled by ice_acl_rem_flow()
> v3:
> * ice_acl_create_scen(): add check against max match width
>   (ICE_ACL_MAX_WIDTH_BYTES)
> * ice_acl_alloc_partition(): change `row` type to int, throw errors if
>   subtractions underflows
> * ice_acl_destroy_scen(): add a call to ice_acl_commit_partition() to
>   clear availability bits. We don't actually destroy scenarios outside
>   of driver deinit, so this doesn't currently matter, but should be done
>   to futureproof the code
> * ice_fdir_update_cntrs(): remove `flow` and `acl_fltr` args, pass the
>   whole fltr and read those values from it. This prevents passing
>   literal value as acl_fltr, ensuring the correct counter will be
>   modified (previously there were some hardcoded calls)
> v2:
> * Add unroll in ice_init_acl() in case of ice_acl_create_scen() failure
> ---
> drivers/net/ethernet/intel/ice/ice.h          |   2 +
> drivers/net/ethernet/intel/ice/ice_acl.h      |   8 +
> .../net/ethernet/intel/ice/ice_adminq_cmd.h   |  31 +
> drivers/net/ethernet/intel/ice/ice_fdir.h     |   2 +
> drivers/net/ethernet/intel/ice/ice_flow.h     |   7 +
> drivers/net/ethernet/intel/ice/ice_type.h     |   7 +
> drivers/net/ethernet/intel/ice/ice_acl.c      | 116 ++++
> drivers/net/ethernet/intel/ice/ice_acl_ctrl.c | 573 ++++++++++++++++++
> drivers/net/ethernet/intel/ice/ice_ethtool.c  |   4 +-
> .../ethernet/intel/ice/ice_ethtool_ntuple.c   |  86 ++-
> drivers/net/ethernet/intel/ice/ice_main.c     |  20 +-
> 11 files changed, 841 insertions(+), 15 deletions(-)
>

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

Reply via email to