Auke Kok wrote:
Signed-off-by: Auke Kok <[EMAIL PROTECTED]>
---
include/linux/ethtool.h | 8 +++++++
include/linux/netdevice.h | 1 +
net/core/ethtool.c | 53 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 62 insertions(+), 0 deletions(-)
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index 23ccea8..a97248e 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -272,6 +272,8 @@ u32 ethtool_op_get_tso(struct net_device *dev);
int ethtool_op_set_tso(struct net_device *dev, u32 data);
u32 ethtool_op_get_ufo(struct net_device *dev);
int ethtool_op_set_ufo(struct net_device *dev, u32 data);
+u32 ethtool_op_get_lro(struct net_device *dev);
+int ethtool_op_set_lro(struct net_device *dev, u32 data);
I'm thinking we don't need to keep adding two function pointers for each
boolean choice.
I propose adding two operations:
get-flags: return 32-bit (even on 64-bit platforms) flags bitmap
set-flags: set 32-bit flags bitmap
The 32 bits shall be divided as follows:
bits 0-23: ETHTOOL_FLAG_xxx defined in linux/ethtool.h
bits 24-31: driver-specific boolean flags
The driver-specific flags are first enumerated by userland via an
ETHTOOL_GSTRINGS call, using new string set ETH_SS_FLAGS. The first
string returned names the first driver-private flag (bit 24). This also
indicates that driver-private bit 24 is a valid flag for this driver and
network interface.
The overall goal is to replace get-LRO/set-LRO operations with the
setting/clearing of ETH_FLAG_LRO, and as well, provide a more-scalable
ethtool interface.
I'll code this up, along with the associated generic helpers
(net/core/ethtool.c), if there are no objections.
Jeff
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html