From: Pravin B Shelar Date: Fri, 23 Mar 2012 21:14:24 +0000 (-0700) Subject: vswitchd: Do not refresh existing iface on new device addition. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c1f15723c03d1ed734ed1c2d2ac85e6c8b055206;p=openvswitch vswitchd: Do not refresh existing iface on new device addition. There is no need to refresh status and stats for existing devices if iface mtu is missing in ovs-db as missing MTU could just mean error in last MTU read for that device. So we can refresh stats for devices which are just created. Signed-off-by: Pravin B Shelar --- diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c index 7e249372..2ea146cf 100644 --- a/vswitchd/bridge.c +++ b/vswitchd/bridge.c @@ -75,6 +75,7 @@ struct iface { struct netdev *netdev; /* Network device. */ const char *type; /* Usually same as cfg->type. */ const struct ovsrec_interface *cfg; + bool need_refresh; /* Refresh iface after create. */ }; struct mirror { @@ -1189,9 +1190,10 @@ bridge_add_ofproto_ports(struct bridge *br) } /* Populate stats columns in new Interface rows. */ - if (iface->netdev && !iface->cfg->mtu) { + if (iface->netdev && iface->need_refresh) { iface_refresh_stats(iface); iface_refresh_status(iface); + iface->need_refresh = false; } /* Delete the iface if we failed. */ @@ -2929,6 +2931,7 @@ iface_create(struct port *port, const struct ovsrec_interface *if_cfg) iface->tag = tag_create_random(); iface->netdev = NULL; iface->cfg = if_cfg; + iface->need_refresh = true; hmap_insert(&br->iface_by_name, &iface->name_node, hash_string(name, 0));