Optimize the process of creating a recipe in the switch block by removing duplicate switch ID words and changing how result indexes are fitted into recipes. In many cases this can decrease the number of recipes required to add a certain set of rules, potentially allowing a more varied set of rules to be created. Total rule count will also increase, since less words will be left unused/wasted. There are only 64 rules available in total, so every one counts.
After this modification, many fields and some structs became unused or were simplified, resulting in overall simpler implementation. Marcin Szycik (4): ice: Remove unused struct ice_prot_lkup_ext members ice: Optimize switch recipe creation ice: Remove unused members from switch API ice: Add tracepoint for adding and removing switch rules Michal Swiatkowski (3): ice: Remove reading all recipes before adding a new one ice: Simplify bitmap setting in adding recipe ice: remove unused recipe bookkeeping data drivers/net/ethernet/intel/ice/ice_common.c | 11 +- .../ethernet/intel/ice/ice_protocol_type.h | 43 +- drivers/net/ethernet/intel/ice/ice_switch.c | 674 ++++++------------ drivers/net/ethernet/intel/ice/ice_switch.h | 20 +- drivers/net/ethernet/intel/ice/ice_trace.h | 18 + drivers/net/ethernet/intel/ice/ice_type.h | 2 + 6 files changed, 272 insertions(+), 496 deletions(-) --- v2: * Nicify checking sizeof struct field * Add a tracepoint for tracking recipe/rule utilization (patch 7) v1: [1] [1] https://lore.kernel.org/intel-wired-lan/20240618141157.1881093-1-marcin.szy...@linux.intel.com/T/#t -- 2.45.0