On Mon, Apr 27, 2026 at 08:01:08AM +0530, Shaiq Wani wrote: > 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 > Series applied to dpdk-next-net-intel. Thanks, /Bruce

