vswitchd: Fix logged warnings for new internal ports.
authorBen Pfaff <blp@nicira.com>
Thu, 6 Aug 2009 17:33:26 +0000 (10:33 -0700)
committerBen Pfaff <blp@nicira.com>
Thu, 6 Aug 2009 17:33:26 +0000 (10:33 -0700)
Justin reported that adding an internal port to a bridge caused
ovs-vswitchd to log a pair of warnings.  This commit suppresses those
warnings, which were harmless.

vswitchd/bridge.c

index a4a723ad5a0fd67b14890613a9fa36748e727ce8..0d2ca89aaa51f51f83259174482e3a45c88ad14f 100644 (file)
@@ -3009,8 +3009,17 @@ iface_create(struct port *port, const char *name)
     iface->tag = tag_create_random();
     iface->delay_expires = LLONG_MAX;
 
-    netdev_nodev_get_etheraddr(name, iface->mac);
-    netdev_nodev_get_carrier(name, &iface->enabled);
+    if (!cfg_get_bool(0, "iface.%s.internal", iface->name)) {
+        netdev_nodev_get_etheraddr(name, iface->mac);
+        netdev_nodev_get_carrier(name, &iface->enabled);
+    } else {
+        /* Internal interfaces are created later by the call to dpif_port_add()
+         * in bridge_reconfigure().  Until then, we can't obtain any
+         * information about them.  (There's no real value in doing so, anyway,
+         * because the 'mac' and 'enabled' values are only used for interfaces
+         * that are bond slaves, and it doesn't normally make sense to bond an
+         * internal interface.) */
+    }
 
     if (port->n_ifaces >= port->allocated_ifaces) {
         port->ifaces = x2nrealloc(port->ifaces, &port->allocated_ifaces,