[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