> -----Original Message-----
> From: Takeru Hayasaka <[email protected]> 
> Sent: 20 September 2026 12:51
> To: [email protected]
> Cc: Nguyen, Anthony L <[email protected]>; Kitszel, Przemyslaw 
> <[email protected]>; [email protected]; 
> [email protected]; Nowlin, Alexander 
> <[email protected]>; Takeru > Hayasaka <[email protected]>
> Subject: [PATCH iwl-net v2] ice: fix empty PTYPE set for GTP RSS profiles
>
> Configuring RSS for GTP flows via ethtool, e.g.
>
> ethtool -N <if> rx-flow-hash gtpu4 sde
>
> is accepted but has no effect: the hash of GTP-U packets does not include the 
> TEID, so all traffic between a given SGW/PGW pair lands on a single Rx queue. 
> The GTP RSS configurations the driver installs by default at VSI init are 
> affected the same way.
>
> ice_flow_set_rss_seg_info() does not set IPV_OTHER on GTP segments, and such 
> a segment carries no L4 header bit either. ice_flow_proc_seg_hdrs() therefore 
> takes the "no L4" branch and ANDs the PTYPE set with 
> ice_ptypes_ipv4_ofos_no_l4, or ice_ptypes_ipv4_il_no_l4 for the inner 
> segment. Neither holds a GTP PTYPE, so ANDing with ice_ptypes_gtpu leaves the 
> set empty: the profile matches no packet at all and the configured TEID field 
> never enters the hash.
>
> Set IPV_OTHER on GTP segments so that the tunnel-inclusive PTYPE sets are 
> selected instead, which do contain the GTP PTYPEs. Skip segments that carry 
> an L4 header bit, because the VF path strips IPV_OTHER from those on purpose.
>
> Verified on E810 (kernel 7.2-rc2, COMMS DDP 1.3.63.0) by reading the RSS hash 
> from the Rx descriptor: GTP-U traffic varying only the TEID goes from one 
> constant hash on a single Rx queue to 4096 distinct hashes across all Rx 
> queues. The same holds for inner IPv6 (gtpu6) and for a PDU session container 
> extension header (gtpu4e); plain UDP flows are unaffected.
>
> Signed-off-by: Takeru Hayasaka <[email protected]>
> ---
> v2:
> - Ignore IPV_OTHER in ice_get_rss_cfg() so "ethtool -n" reports the
> GTP fields again (reported by Intel validation)
> - Do not set IPV_OTHER on GTP segments that carry an L4 header bit
> v1: 
> https://lore.kernel.org/intel-wired-lan/[email protected]/
>
> drivers/net/ethernet/intel/ice/ice_flow.c | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>

Tested-by: Singh, Ayush1X < [email protected] > (A Contingent worker at 
Intel)

Reply via email to