> -----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)
