Message ID | 6c78808eaf4b31f98c9de9bef6f29397c67cf09e.1396455409.git.decot@googlers.com |
---|---|
State | Superseded, archived |
Delegated to: | stephen hemminger |
Headers | show |
On Wed, 2 Apr 2014 09:19:00 -0700 David Decotigny <decot@googlers.com> wrote: > This patch allows to display the current counter of carrier on<->off > transitions (IFLA_CARRIER_CHANGES, see kernel commit "expose number of > carrier on/off changes"): > > ip -s -s link show dev eth0 > ... > 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 etc. > link/ether ............ brd ff:ff:ff:ff:ff:ff > RX: bytes packets errors dropped overrun mcast > 134705 758 0 0 0 0 > RX errors: length crc frame fifo missed > 0 0 0 0 0 > TX: bytes packets errors dropped carrier collsns > 77374 731 0 0 0 0 > TX errors: aborted fifo window heartbeat > 0 0 0 0 > link: carrier_changes 4 > I wonder if putting it under TX errors would make sense. This is where Juniper classifies the error, and it would also fit on same line, avoiding adding more clutter. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 etc. link/ether ............ brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 134705 758 0 0 0 0 RX errors: length crc frame fifo missed 0 0 0 0 0 TX: bytes packets errors dropped carrier collsns 77374 731 0 0 0 0 TX errors: aborted fifo window heartbeat transition 0 0 0 0 4 The risk is break some screen scraping script, but that doesn't seem to be that big an issue for adding one column. The columns also need some re-aligning here but that is different correctness issue. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/include/linux/if_link.h b/include/linux/if_link.h index f08505c..84fca1e 100644 --- a/include/linux/if_link.h +++ b/include/linux/if_link.h @@ -144,6 +144,7 @@ enum { IFLA_NUM_RX_QUEUES, IFLA_CARRIER, IFLA_PHYS_PORT_ID, + IFLA_CARRIER_CHANGES, __IFLA_MAX }; diff --git a/ip/ipaddress.c b/ip/ipaddress.c index 14d1720..78b80ee 100644 --- a/ip/ipaddress.c +++ b/ip/ipaddress.c @@ -527,6 +527,11 @@ int print_linkinfo(const struct sockaddr_nl *who, print_link_stats(fp, RTA_DATA(tb[IFLA_STATS])); } + if (do_link && (show_stats > 1) && tb[IFLA_CARRIER_CHANGES]) { + fprintf(fp, "%s link: carrier_changes %u", _SL_, + *(int*)RTA_DATA(tb[IFLA_CARRIER_CHANGES])); + } + if (do_link && tb[IFLA_VFINFO_LIST] && tb[IFLA_NUM_VF]) { struct rtattr *i, *vflist = tb[IFLA_VFINFO_LIST]; int rem = RTA_PAYLOAD(vflist);
This patch allows to display the current counter of carrier on<->off transitions (IFLA_CARRIER_CHANGES, see kernel commit "expose number of carrier on/off changes"): ip -s -s link show dev eth0 ... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 etc. link/ether ............ brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 134705 758 0 0 0 0 RX errors: length crc frame fifo missed 0 0 0 0 0 TX: bytes packets errors dropped carrier collsns 77374 731 0 0 0 0 TX errors: aborted fifo window heartbeat 0 0 0 0 link: carrier_changes 4 Tested: - kernel with patch "net-sysfs: expose number of carrier on/off changes": see above - kernel wthout the patch: line "link:" not displayed (as expected) Signed-off-by: David Decotigny <decot@googlers.com> --- include/linux/if_link.h | 1 + ip/ipaddress.c | 5 +++++ 2 files changed, 6 insertions(+)