AR8216: don't display MIB counters if all are empty
authorJohn Crispin <john@openwrt.org>
Fri, 4 Mar 2016 08:33:22 +0000 (08:33 +0000)
committerJohn Crispin <john@openwrt.org>
Fri, 4 Mar 2016 08:33:22 +0000 (08:33 +0000)
For unused switch ports all MIB values are zero. Displaying ~40 empty
MIB counters is just confusing and makes it hard to read the output of
swconfig dev <dev> show.
Therefore, if all MIB counters for a port are zero, just display
an info that the MIB counters are empty.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
SVN-Revision: 48910

target/linux/generic/files/drivers/net/phy/ar8216.c

index 75db1f120b6e3ee52cb45d054a3eca48cb8cd900..daa59083e3e41701b2fffeb200e5a43e748ef39c 100644 (file)
@@ -1329,6 +1329,7 @@ ar8xxx_sw_get_port_mib(struct switch_dev *dev,
        int ret;
        char *buf = priv->buf;
        int i, len = 0;
+       bool mib_stats_empty = true;
 
        if (!ar8xxx_has_mib_counters(priv))
                return -EOPNOTSUPP;
@@ -1349,11 +1350,17 @@ ar8xxx_sw_get_port_mib(struct switch_dev *dev,
                        port);
 
        mib_stats = &priv->mib_stats[port * chip->num_mibs];
-       for (i = 0; i < chip->num_mibs; i++)
+       for (i = 0; i < chip->num_mibs; i++) {
                len += snprintf(buf + len, sizeof(priv->buf) - len,
                                "%-12s: %llu\n",
                                chip->mib_decs[i].name,
                                mib_stats[i]);
+               if (mib_stats_empty && mib_stats[i])
+                       mib_stats_empty = false;
+       }
+
+       if (mib_stats_empty)
+               len = snprintf(buf, sizeof(priv->buf), "No MIB data");
 
        val->value.s = buf;
        val->len = len;