[PATCH 0/7] net/ice: L2TPv2 flow rule fixes

Shaiq Wani shaiq.wani at intel.com
Mon Apr 27 04:31:08 CEST 2026


The original L2TPv2 flow support (733640dae75e) mapped every PPP tunnel
variant to a single generic PTYPE and programmed both segments with
identical headers. This caused several interrelated problems:
cross-protocol matches, silent inner-field drops, rule deletion
failures, and unintended side-effects on GTP-U flows.

This series addresses each issue:

  1/7  Use the 30 granular HW PTYPEs (396-425) defined by the DDP
       package instead of the generic ICE_MAC_IPV4_L2TPV2, and
       extend the training-packet switch to cover the new flow types.

  2/7  Add the 8 missing tunnel inset-to-flow-field mappings so
       inner IP/L4 fields are no longer silently dropped during
       field parsing.

  3/7  Pass a segment index to ice_fdir_input_set_hdrs() and expand
       each L2TPv2/PPP ptype into its own case with distinct outer
       and inner header sets. Also always program inner-segment
       headers for tunnel profiles, even when no inner fields are
       extracted, so ptype-only narrowing works.

  4/7  Fix deletion of bare L2TPv2 rules (no PPP) by switching to a
       single-segment profile, and normalize the L2TPv2 flags in the
       SW hash key to prevent lookup mismatches.

  5/7  Stop L2TPv2 tunnel detection from overwriting the GTP-U
       tunnel profile, which caused GTP-U flow rules to fail.

  6/7  Invalidate stale HW profiles when the L2TPv2 subtype changes
       between rule creations.

  7/7  Pin the outer Ethertype (0x0800 / 0x86DD) in L2TPv2 rules
       so IPv4 and IPv6 flows are not cross-matched.

Shaiq Wani (7):
  net/ice: use granular PTYPEs for L2TPv2 PPP
  net/ice: add tunnel inset bits to flow input set map
  net/ice: fix L2TPv2 inner segment header setup
  net/ice: fix bare L2TPv2 flow rule deletion
  net/ice: fix GTP-U failure due to wrong tunnel profile
  net/ice: fix stale profile after L2TPv2 subtype change
  net/ice: pin outer Ethertype for L2TPv2 flow rules

 drivers/net/intel/ice/base/ice_fdir.c    |  12 ++
 drivers/net/intel/ice/ice_fdir_filter.c  | 215 +++++++++++++++++++++--
 drivers/net/intel/ice/ice_generic_flow.c |  28 +--
 3 files changed, 223 insertions(+), 32 deletions(-)

-- 
2.43.0



More information about the dev mailing list