AR8216: don't display MIB counters if all are empty

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
This commit is contained in:
John Crispin 2016-03-04 08:33:22 +00:00
parent f07a57c0e8
commit 76e1efc042

View file

@ -1329,6 +1329,7 @@ ar8xxx_sw_get_port_mib(struct switch_dev *dev,
int ret; int ret;
char *buf = priv->buf; char *buf = priv->buf;
int i, len = 0; int i, len = 0;
bool mib_stats_empty = true;
if (!ar8xxx_has_mib_counters(priv)) if (!ar8xxx_has_mib_counters(priv))
return -EOPNOTSUPP; return -EOPNOTSUPP;
@ -1349,11 +1350,17 @@ ar8xxx_sw_get_port_mib(struct switch_dev *dev,
port); port);
mib_stats = &priv->mib_stats[port * chip->num_mibs]; 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, len += snprintf(buf + len, sizeof(priv->buf) - len,
"%-12s: %llu\n", "%-12s: %llu\n",
chip->mib_decs[i].name, chip->mib_decs[i].name,
mib_stats[i]); 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->value.s = buf;
val->len = len; val->len = len;