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 <[email protected]>
---
 target/linux/generic/files/drivers/net/phy/ar8216.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c 
b/target/linux/generic/files/drivers/net/phy/ar8216.c
index 75db1f1..daa5908 100644
--- a/target/linux/generic/files/drivers/net/phy/ar8216.c
+++ b/target/linux/generic/files/drivers/net/phy/ar8216.c
@@ -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;
-- 
2.4.6
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to