ipaddress: print OPERSTATEs and NO-CARRIER
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
diff --git a/networking/libiproute/ipaddress.c b/networking/libiproute/ipaddress.c
index daea9dd..3f360f4 100644
--- a/networking/libiproute/ipaddress.c
+++ b/networking/libiproute/ipaddress.c
@@ -54,6 +54,8 @@
"MULTICAST\0""NOARP\0""UP\0""LOWER_UP\0";
bb_putchar('<');
+ if (flags & IFF_UP && !(flags & IFF_RUNNING))
+ printf("NO-CARRIER,");
flags &= ~IFF_RUNNING;
#if 0
_PF(ALLMULTI);
@@ -162,6 +164,13 @@
printf("master %s ", ll_idx_n2a(*(int*)RTA_DATA(tb[IFLA_MASTER]), b1));
}
#endif
+ if (tb[IFLA_OPERSTATE]) {
+ static const char operstate_labels[] ALIGN1 =
+ "UNKNOWN\0""NOTPRESENT\0""DOWN\0""LOWERLAYERDOWN\0"
+ "TESTING\0""DORMANT\0""UP\0";
+ printf("state %s ", nth_string(operstate_labels,
+ *(__u8 *)RTA_DATA(tb[IFLA_OPERSTATE])));
+ }
if (G_filter.showqueue)
print_queuelen((char*)RTA_DATA(tb[IFLA_IFNAME]));