myri10ge: support new firmware counters
Brice Goglin [Mon, 7 May 2007 21:49:25 +0000 (23:49 +0200)]
Add dropped_pause, dropped_bad_phy, dropped_bad_crc32,
dropped_unicast_filtered to the set of ethtool counters.

Signed-off-by: Brice Goglin <brice@myri.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

drivers/net/myri10ge/myri10ge.c
drivers/net/myri10ge/myri10ge_mcp.h

index 16e3c43..b48b988 100644 (file)
@@ -1355,7 +1355,9 @@ static const char myri10ge_gstrings_stats[][ETH_GSTRING_LEN] = {
        "tx_req", "tx_done", "rx_small_cnt", "rx_big_cnt",
        "wake_queue", "stop_queue", "watchdog_resets", "tx_linearized",
        "link_changes", "link_up", "dropped_link_overflow",
-       "dropped_link_error_or_filtered", "dropped_multicast_filtered",
+       "dropped_link_error_or_filtered",
+       "dropped_pause", "dropped_bad_phy", "dropped_bad_crc32",
+       "dropped_unicast_filtered", "dropped_multicast_filtered",
        "dropped_runt", "dropped_overrun", "dropped_no_small_buffer",
        "dropped_no_big_buffer"
 };
@@ -1412,6 +1414,11 @@ myri10ge_get_ethtool_stats(struct net_device *netdev,
        data[i++] = (unsigned int)ntohl(mgp->fw_stats->dropped_link_overflow);
        data[i++] =
            (unsigned int)ntohl(mgp->fw_stats->dropped_link_error_or_filtered);
+       data[i++] = (unsigned int)ntohl(mgp->fw_stats->dropped_pause);
+       data[i++] = (unsigned int)ntohl(mgp->fw_stats->dropped_bad_phy);
+       data[i++] = (unsigned int)ntohl(mgp->fw_stats->dropped_bad_crc32);
+       data[i++] =
+           (unsigned int)ntohl(mgp->fw_stats->dropped_unicast_filtered);
        data[i++] =
            (unsigned int)ntohl(mgp->fw_stats->dropped_multicast_filtered);
        data[i++] = (unsigned int)ntohl(mgp->fw_stats->dropped_runt);
index 29463b3..ee6261d 100644 (file)
@@ -219,7 +219,11 @@ enum myri10ge_mcp_cmd_status {
 
 struct mcp_irq_data {
        /* add new counters at the beginning */
-       __be32 future_use[5];
+       __be32 future_use[1];
+       __be32 dropped_pause;
+       __be32 dropped_unicast_filtered;
+       __be32 dropped_bad_crc32;
+       __be32 dropped_bad_phy;
        __be32 dropped_multicast_filtered;
        /* 40 Bytes */
        __be32 send_done_count;