net: ethtool: extend RXNFC API to support RSS spreading of filter matches
We use a two-step process to configure a filter with RSS spreading. First, the RSS context is allocated and configured using ETHTOOL_SRSSH; this returns an identifier (rss_context) which can then be passed to subsequent invocations of ETHTOOL_SRXCLSRLINS to specify that the offset from the RSS indirection table lookup should be added to the queue number (ring_cookie) when delivering the packet. Drivers for devices which can only use the indirection table entry directly (not add it to a base queue number) should reject rule insertions combining RSS with a nonzero ring_cookie. Signed-off-by: Edward Cree <ecree@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
571e6776ad
commit
84a1d9c482
@@ -371,6 +371,11 @@ struct ethtool_ops {
|
||||
u8 *hfunc);
|
||||
int (*set_rxfh)(struct net_device *, const u32 *indir,
|
||||
const u8 *key, const u8 hfunc);
|
||||
int (*get_rxfh_context)(struct net_device *, u32 *indir, u8 *key,
|
||||
u8 *hfunc, u32 rss_context);
|
||||
int (*set_rxfh_context)(struct net_device *, const u32 *indir,
|
||||
const u8 *key, const u8 hfunc,
|
||||
u32 *rss_context, bool delete);
|
||||
void (*get_channels)(struct net_device *, struct ethtool_channels *);
|
||||
int (*set_channels)(struct net_device *, struct ethtool_channels *);
|
||||
int (*get_dump_flag)(struct net_device *, struct ethtool_dump *);
|
||||
|
Reference in New Issue
Block a user