summaryrefslogtreecommitdiff
path: root/lib/netdev-linux.c
diff options
context:
space:
mode:
authorEthan Jackson <ethan@nicira.com>2011-10-14 12:49:57 -0700
committerEthan Jackson <ethan@nicira.com>2011-10-17 15:03:03 -0700
commit65c3058c22803c7e8d8fd0bfbb84fe27456fb137 (patch)
tree88dd05f5dc01a6a554c2d940c007e21d2eb2bfca /lib/netdev-linux.c
parent3a1831242856a975d57c875b8f8987b819e8dd39 (diff)
downloadopenvswitch-65c3058c22803c7e8d8fd0bfbb84fe27456fb137.tar.gz
vswitchd: New column "link_resets".
An interface's 'link_resets' column represents the number of times Open vSwitch has observed its link_state change.
Diffstat (limited to 'lib/netdev-linux.c')
-rw-r--r--lib/netdev-linux.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
index fb46561b7..8329f2264 100644
--- a/lib/netdev-linux.c
+++ b/lib/netdev-linux.c
@@ -366,6 +366,7 @@ struct netdev_dev_linux {
struct in6_addr in6;
int mtu;
bool carrier;
+ long long int carrier_resets;
uint32_t kbits_rate; /* Policing data. */
uint32_t kbits_burst;
bool have_vport_stats;
@@ -505,6 +506,7 @@ netdev_linux_cache_cb(const struct rtnetlink_link_change *change,
if (dev->carrier != change->running) {
dev->carrier = change->running;
+ dev->carrier_resets++;
}
netdev_dev_linux_changed(dev);
@@ -524,6 +526,7 @@ netdev_linux_cache_cb(const struct rtnetlink_link_change *change,
get_carrier_via_sysfs(node->name, &carrier);
if (dev->carrier != carrier) {
dev->carrier = carrier;
+ dev->carrier_resets++;
}
netdev_dev_linux_changed(dev);
@@ -1041,6 +1044,12 @@ netdev_linux_get_carrier(const struct netdev *netdev_, bool *carrier)
return 0;
}
+static long long int
+netdev_linux_get_carrier_resets(const struct netdev *netdev)
+{
+ return netdev_dev_linux_cast(netdev_get_dev(netdev))->carrier_resets;
+}
+
static int
netdev_linux_do_miimon(const char *name, int cmd, const char *cmd_name,
struct mii_ioctl_data *data)
@@ -2315,6 +2324,7 @@ netdev_linux_change_seq(const struct netdev *netdev)
netdev_linux_set_mtu, \
netdev_linux_get_ifindex, \
netdev_linux_get_carrier, \
+ netdev_linux_get_carrier_resets, \
netdev_linux_set_miimon_interval, \
GET_STATS, \
SET_STATS, \