> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf Of > Marcin Szycik > Sent: Thursday, May 21, 2026 4:50 AM > To: [email protected] > Cc: [email protected]; Penigalapati, Sandeep > <[email protected]>; S, Ananth <[email protected]>; > [email protected]; Marcin Szycik <[email protected]>; > Cao, Chinh > T <[email protected]>; Nguyen, Anthony L <[email protected]>; > Loktionov, Aleksandr <[email protected]> > Subject: [Intel-wired-lan] [PATCH iwl-next v4 03/10] 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]> > --- > 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 | 1 + > 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 | 6 +- > 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 | 68 ++- > drivers/net/ethernet/intel/ice/ice_fdir.c | 14 +- > drivers/net/ethernet/intel/ice/ice_main.c | 17 +- > 12 files changed, 835 insertions(+), 17 deletions(-)
Tested-by: Alexander Nowlin <[email protected]>
