netdev: ethtool RXHASH flag
This adds ethtool and device feature flag to allow control of receive hashing offload. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Acked-by: Jeff Garzik <jgarzik@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
757b77e2b2
commit
b00fabb402
|
@ -310,6 +310,7 @@ struct ethtool_perm_addr {
|
|||
enum ethtool_flags {
|
||||
ETH_FLAG_LRO = (1 << 15), /* LRO is enabled */
|
||||
ETH_FLAG_NTUPLE = (1 << 27), /* N-tuple filters enabled */
|
||||
ETH_FLAG_RXHASH = (1 << 28),
|
||||
};
|
||||
|
||||
/* The following structures are for supporting RX network flow
|
||||
|
|
|
@ -785,6 +785,7 @@ struct net_device {
|
|||
#define NETIF_F_SCTP_CSUM (1 << 25) /* SCTP checksum offload */
|
||||
#define NETIF_F_FCOE_MTU (1 << 26) /* Supports max FCoE MTU, 2158 bytes*/
|
||||
#define NETIF_F_NTUPLE (1 << 27) /* N-tuple filters supported */
|
||||
#define NETIF_F_RXHASH (1 << 28) /* Receive hashing offload */
|
||||
|
||||
/* Segmentation offload features */
|
||||
#define NETIF_F_GSO_SHIFT 16
|
||||
|
|
|
@ -121,7 +121,7 @@ int ethtool_op_set_ufo(struct net_device *dev, u32 data)
|
|||
* NETIF_F_xxx values in include/linux/netdevice.h
|
||||
*/
|
||||
static const u32 flags_dup_features =
|
||||
(ETH_FLAG_LRO | ETH_FLAG_NTUPLE);
|
||||
(ETH_FLAG_LRO | ETH_FLAG_NTUPLE | ETH_FLAG_RXHASH);
|
||||
|
||||
u32 ethtool_op_get_flags(struct net_device *dev)
|
||||
{
|
||||
|
@ -152,6 +152,11 @@ int ethtool_op_set_flags(struct net_device *dev, u32 data)
|
|||
features &= ~NETIF_F_NTUPLE;
|
||||
}
|
||||
|
||||
if (data & ETH_FLAG_RXHASH)
|
||||
features |= NETIF_F_RXHASH;
|
||||
else
|
||||
features &= ~NETIF_F_RXHASH;
|
||||
|
||||
dev->features = features;
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue