summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authordavid decotigny2014-03-29 17:48:35 +0100
committerDavid S. Miller2014-03-31 22:24:52 +0200
commit2d3b479df41a10e2f41f9259fcba775bd34de6e4 (patch)
tree517291066c35188a41b005e81904e69865643e76 /include
parentipv6: tcp_ipv6 policy route issue (diff)
downloadkernel-qcow2-linux-2d3b479df41a10e2f41f9259fcba775bd34de6e4.tar.gz
kernel-qcow2-linux-2d3b479df41a10e2f41f9259fcba775bd34de6e4.tar.xz
kernel-qcow2-linux-2d3b479df41a10e2f41f9259fcba775bd34de6e4.zip
net-sysfs: expose number of carrier on/off changes
This allows to monitor carrier on/off transitions and detect link flapping issues: - new /sys/class/net/X/carrier_changes - new rtnetlink IFLA_CARRIER_CHANGES (getlink) Tested: - grep . /sys/class/net/*/carrier_changes + ip link set dev X down/up + plug/unplug cable - updated iproute2: prints IFLA_CARRIER_CHANGES - iproute2 20121211-2 (debian): unchanged behavior Signed-off-by: David Decotigny <decot@googlers.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/linux/netdevice.h3
-rw-r--r--include/uapi/linux/if_link.h1
2 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 34cae3ee74f1..45537ed7a5b3 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1308,6 +1308,9 @@ struct net_device {
atomic_long_t rx_dropped;
atomic_long_t tx_dropped;
+ /* Stats to monitor carrier on<->off transitions */
+ atomic_t carrier_changes;
+
#ifdef CONFIG_WIRELESS_EXT
/* List of functions to handle Wireless Extensions (instead of ioctl).
* See <net/iw_handler.h> for details. Jean II */
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
index 16410b6e7819..9a7f7ace6649 100644
--- a/include/uapi/linux/if_link.h
+++ b/include/uapi/linux/if_link.h
@@ -144,6 +144,7 @@ enum {
IFLA_NUM_RX_QUEUES,
IFLA_CARRIER,
IFLA_PHYS_PORT_ID,
+ IFLA_CARRIER_CHANGES,
__IFLA_MAX
};