From: Andrew Evans Date: Tue, 28 Jun 2011 20:17:54 +0000 (-0700) Subject: bridge: Populate interface status/statistics as soon as a port is added. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1101a0b4708d87505d80c4641c4adadd5c6ece36;p=openvswitch bridge: Populate interface status/statistics as soon as a port is added. Currently there's a lag of up to five seconds before the status and statistics columns in the Interface table are populated when a port is first added to a bridge. This may confuse systems that expect those columns to be populated right away. Bug #6145. --- diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c index d0a5764d..93544032 100644 --- a/vswitchd/bridge.c +++ b/vswitchd/bridge.c @@ -195,7 +195,9 @@ static void iface_set_mac(struct iface *); static void iface_set_ofport(const struct ovsrec_interface *, int64_t ofport); static void iface_configure_qos(struct iface *, const struct ovsrec_qos *); static void iface_configure_cfm(struct iface *); -static bool iface_refresh_cfm_stats(struct iface *iface); +static bool iface_refresh_cfm_stats(struct iface *); +static void iface_refresh_stats(struct iface *); +static void iface_refresh_status(struct iface *); static bool iface_get_carrier(const struct iface *); static bool iface_is_synthetic(const struct iface *); @@ -866,6 +868,12 @@ bridge_add_ofproto_ports(struct bridge *br) iface->name, strerror(error)); } + /* Populate stats columns in new Interface rows. */ + if (!iface->cfg->mtu) { + iface_refresh_stats(iface); + iface_refresh_status(iface); + } + /* Add the port, if necessary. */ if (iface->netdev && iface->ofp_port < 0) { uint16_t ofp_port;