ethtool: Support for configurable RSS hash key
This ethtool patch primarily copies the ioctl command data structures from/to the User space and invokes the driver hook. Signed-off-by: Venkat Duvvuru <VenkatKumar.Duvvuru@Emulex.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
862aa49164
commit
3de0b59239
3 changed files with 253 additions and 15 deletions
|
|
@ -154,13 +154,23 @@ static inline u32 ethtool_rxfh_indir_default(u32 index, u32 n_rx_rings)
|
|||
* @reset: Reset (part of) the device, as specified by a bitmask of
|
||||
* flags from &enum ethtool_reset_flags. Returns a negative
|
||||
* error code or zero.
|
||||
* @get_rxfh_key_size: Get the size of the RX flow hash key.
|
||||
* Returns zero if not supported for this specific device.
|
||||
* @get_rxfh_indir_size: Get the size of the RX flow hash indirection table.
|
||||
* Returns zero if not supported for this specific device.
|
||||
* @get_rxfh_indir: Get the contents of the RX flow hash indirection table.
|
||||
* Will not be called if @get_rxfh_indir_size returns zero.
|
||||
* @get_rxfh: Get the contents of the RX flow hash indirection table and hash
|
||||
* key.
|
||||
* Will not be called if @get_rxfh_indir_size and @get_rxfh_key_size
|
||||
* returns zero.
|
||||
* Returns a negative error code or zero.
|
||||
* @set_rxfh_indir: Set the contents of the RX flow hash indirection table.
|
||||
* Will not be called if @get_rxfh_indir_size returns zero.
|
||||
* @set_rxfh: Set the contents of the RX flow hash indirection table and
|
||||
* hash key.
|
||||
* Will not be called if @get_rxfh_indir_size and @get_rxfh_key_size
|
||||
* returns zero.
|
||||
* Returns a negative error code or zero.
|
||||
* @get_channels: Get number of channels.
|
||||
* @set_channels: Set number of channels. Returns a negative error code or
|
||||
|
|
@ -232,7 +242,10 @@ struct ethtool_ops {
|
|||
int (*set_rxnfc)(struct net_device *, struct ethtool_rxnfc *);
|
||||
int (*flash_device)(struct net_device *, struct ethtool_flash *);
|
||||
int (*reset)(struct net_device *, u32 *);
|
||||
u32 (*get_rxfh_key_size)(struct net_device *);
|
||||
u32 (*get_rxfh_indir_size)(struct net_device *);
|
||||
int (*get_rxfh)(struct net_device *, u32 *, u8 *);
|
||||
int (*set_rxfh)(struct net_device *, u32 *, u8 *);
|
||||
int (*get_rxfh_indir)(struct net_device *, u32 *);
|
||||
int (*set_rxfh_indir)(struct net_device *, const u32 *);
|
||||
void (*get_channels)(struct net_device *, struct ethtool_channels *);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue