Subject: Re: Query on new ethtool RSS hashing options

From: Andrew Lunn <[email-masked]>
Date: Sat, 6 Mar 2021 01:17:37 +0100

On Fri, Mar 05, 2021 at 03:07:02PM -0800, Jakub Kicinski wrote:
> On Fri, 5 Mar 2021 16:15:51 +0530 Sunil Kovvuri wrote:
> > Hi,
> > 
> > We have a requirement where in we want RSS hashing to be done on packet fields
> > which are not currently supported by the ethtool.
> > 
> > Current options:
> > ehtool -n <dev> rx-flow-hash
> > tcp4|udp4|ah4|esp4|sctp4|tcp6|udp6|ah6|esp6|sctp6 m|v|t|s|d|f|n|r
> > 
> > Specifically our requirement is to calculate hash with DSA tag (which
> > is inserted by switch) plus the TCP/UDP 4-tuple as input.
> 
> Can you share the format of the DSA tag? Is there a driver for it
> upstream? Do we need to represent it in union ethtool_flow_union?

Sorry, i missed the original question, there was no hint in the
subject line that DSA was involved.

Why do you want to include DSA tag in the hash? What normally happens
with DSA tag drivers is we detect the frame has been received from a
switch, and modify where the core flow dissect code looks in the frame
to skip over the DSA header and parse the IP header etc as normal.

Take a look at net/core/flow_dissect.c:__skb_flow_dissect()

This fits with the core ideas of the network stack and offloads. Hide
the fact an offload is being used, it should just look like a normal
interface.

	Andrew