ethtool: Add n-tuple string length to drvinfo and return it
Peter Waskiewicz [Fri, 26 Feb 2010 01:54:20 +0000 (01:54 +0000)]
The drvinfo struct should include the number of strings that
get_rx_ntuple will return.  It will be variable if an underlying
driver implements its own get_rx_ntuple routine, so userspace
needs to know how much data is coming.

Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

include/linux/ethtool.h
net/core/ethtool.c

index cca1c3d..f7992a2 100644 (file)
@@ -63,6 +63,7 @@ struct ethtool_drvinfo {
        char    reserved2[12];
        __u32   n_priv_flags;   /* number of flags valid in ETHTOOL_GPFLAGS */
        __u32   n_stats;        /* number of u64's from ETHTOOL_GSTATS */
+       __u32   n_ntuples;      /* number of n-tuple filters from GSTRINGS */
        __u32   testinfo_len;
        __u32   eedump_len;     /* Size of data from ETHTOOL_GEEPROM (bytes) */
        __u32   regdump_len;    /* Size of data from ETHTOOL_GREGS (bytes) */
index 31b1edd..1c94f48 100644 (file)
@@ -224,6 +224,9 @@ static noinline int ethtool_get_drvinfo(struct net_device *dev, void __user *use
                rc = ops->get_sset_count(dev, ETH_SS_PRIV_FLAGS);
                if (rc >= 0)
                        info.n_priv_flags = rc;
+               rc = ops->get_sset_count(dev, ETH_SS_NTUPLE_FILTERS);
+               if (rc >= 0)
+                       info.n_ntuples = rc;
        }
        if (ops->get_regs_len)
                info.regdump_len = ops->get_regs_len(dev);