With this patch, instead of updating an interface's link_state once
every 5 seconds, it's updated immediately when changed.  To avoid
stressing the database, these updates are rate limited to once per
second.
---
 vswitchd/bridge.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
index 3eace69..c99f12f 100644
--- a/vswitchd/bridge.c
+++ b/vswitchd/bridge.c
@@ -1267,11 +1267,6 @@ iface_refresh_status(struct iface *iface)
         ovsrec_interface_set_link_speed(iface->cfg, NULL, 0);
     }
 
-    ovsrec_interface_set_link_state(iface->cfg,
-                                    (netdev_get_carrier(iface->netdev)
-                                     ? "up"
-                                     : "down"));
-
     error = netdev_get_mtu(iface->netdev, &mtu);
     if (!error) {
         mtu_64 = mtu;
@@ -1571,6 +1566,7 @@ bridge_run(void)
             struct iface *iface;
 
             HMAP_FOR_EACH (iface, name_node, &br->iface_by_name) {
+                char *link_state;
                 int current;
 
                 if (iface_is_synthetic(iface)) {
@@ -1585,6 +1581,9 @@ bridge_run(void)
                 } else {
                     ovsrec_interface_set_lacp_current(iface->cfg, NULL, 0);
                 }
+
+                link_state = netdev_get_carrier(iface->netdev) ? "up" : "down";
+                ovsrec_interface_set_link_state(iface->cfg, link_state);
             }
         }
 
-- 
1.7.6.1

_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to