[PATCH v6 00/27] Cleanups for ixgbe, i40e, iavf, and ice PMD's

Anatoly Burakov
2026-02-19T16:23:21Z

This patchset is an assortment of cleanups for ixgbe, i40e, iavf, and ice PMD.

IXGBE:

- Remove unnecessary macros and #ifdef's
- Disentangle unrelated flow API code paths

I40E:

- Get rid of global variables and unnecessary allocations
- Reduce code duplication around default RSS keys
- Use more appropriate integer types and definitions

IAVF:

- Remove dead code
- Remove unnecessary allocations
- Separate RSS uninit from hash flow parser uninit

ICE:

- Remove unnecessary allocations

This is done in preparation for further rework.

Note that this patchset depends on driver bug fix patchset [1] (already integrated into next-net-intel).

[1] https://patches.dpdk.org/project/dpdk/list/?series=37350

v1 -> v2:
- Added more cleanups around rte_malloc usage

v2 -> v3:
- Reworded some commit messages
- Added a new patch for ICE
- Rebased on latest bug fix patches

v3 -> v4:
- Rebased on latest bugfix patchset

v4 -> v5:
- Adjusted typing for queue size
- Fixed missing zero initializations for stack allocations

v5 -> v6:
- Addressed feedback for v3, v4, and v5
- Changed more allocations to be stack based
- Reworked queue and IRQ map related i40e patches for better logic

Anatoly Burakov (27):
net/ixgbe: remove MAC type check macros
net/ixgbe: remove security-related ifdefery
net/ixgbe: split security and ntuple filters
net/i40e: get rid of global filter variables
net/i40e: make default RSS key global
net/i40e: use unsigned types for queue comparisons
net/i40e: use proper flex len define
net/i40e: remove global pattern variable
net/i40e: avoid rte malloc in tunnel set
net/i40e: avoid rte malloc in RSS RETA operations
net/i40e: avoid rte malloc in MAC/VLAN filtering
net/i40e: avoid rte malloc in VF resource queries
net/i40e: avoid rte malloc in adminq operations
net/i40e: avoid rte malloc in DDP package handling
net/i40e: avoid rte malloc in DDP ptype handling
net/iavf: remove remnants of pipeline mode
net/iavf: decouple hash uninit from parser uninit
net/iavf: avoid rte malloc in VF mailbox for IPsec
net/iavf: avoid rte malloc in RSS configuration
net/iavf: avoid rte malloc in MAC address operations
net/iavf: avoid rte malloc in IPsec operations
net/iavf: avoid rte malloc in queue operations
net/iavf: avoid rte malloc in irq map config
net/ice: avoid rte malloc in RSS RETA operations
net/ice: avoid rte malloc in MAC address operations
net/ice: avoid rte malloc in raw pattern parsing
net/ice: avoid rte malloc in flow pattern match

drivers/net/intel/i40e/i40e_ethdev.c | 370 +++++++----------
drivers/net/intel/i40e/i40e_ethdev.h | 26 +-
drivers/net/intel/i40e/i40e_flow.c | 147 ++++---
drivers/net/intel/i40e/i40e_hash.c | 27 +-
drivers/net/intel/i40e/i40e_hash.h | 3 +
drivers/net/intel/i40e/i40e_pf.c | 26 +-
drivers/net/intel/i40e/rte_pmd_i40e.c | 60 +--
drivers/net/intel/iavf/iavf.h | 7 +-
drivers/net/intel/iavf/iavf_ethdev.c | 37 +-
drivers/net/intel/iavf/iavf_fdir.c | 1 -
drivers/net/intel/iavf/iavf_fsub.c | 1 -
drivers/net/intel/iavf/iavf_generic_flow.h | 15 -
drivers/net/intel/iavf/iavf_hash.c | 13 +-
drivers/net/intel/iavf/iavf_ipsec_crypto.c | 283 +++++--------
drivers/net/intel/iavf/iavf_vchnl.c | 412 ++++++++++---------
drivers/net/intel/ice/ice_acl_filter.c | 3 +-
drivers/net/intel/ice/ice_dcf_ethdev.c | 26 +-
drivers/net/intel/ice/ice_ethdev.c | 29 +-
drivers/net/intel/ice/ice_fdir_filter.c | 19 +-
drivers/net/intel/ice/ice_generic_flow.c | 15 +-
drivers/net/intel/ice/ice_hash.c | 13 +-
drivers/net/intel/ice/ice_switch_filter.c | 5 +-
drivers/net/intel/ixgbe/ixgbe_ethdev.c | 8 -
drivers/net/intel/ixgbe/ixgbe_ethdev.h | 16 -
drivers/net/intel/ixgbe/ixgbe_flow.c | 228 ++++++----
drivers/net/intel/ixgbe/ixgbe_rxtx.c | 26 --
drivers/net/intel/ixgbe/ixgbe_rxtx.h | 2 -
drivers/net/intel/ixgbe/ixgbe_rxtx_vec_sse.c | 6 -
28 files changed, 783 insertions(+), 1041 deletions(-)

--
2.47.3