> -----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)
