diff options
author | Ethan Jackson <ethan@nicira.com> | 2011-10-14 12:49:57 -0700 |
---|---|---|
committer | Ethan Jackson <ethan@nicira.com> | 2011-10-17 15:03:03 -0700 |
commit | 65c3058c22803c7e8d8fd0bfbb84fe27456fb137 (patch) | |
tree | 88dd05f5dc01a6a554c2d940c007e21d2eb2bfca /lib/netdev-linux.c | |
parent | 3a1831242856a975d57c875b8f8987b819e8dd39 (diff) | |
download | openvswitch-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.c | 10 |
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, \ |