bridge: Open internal ports with the correct type.
[openvswitch] / vswitchd / bridge.c
index 8f544a99079f21cedcced0732897c24d887a5185..dbce59a32d50177a6cc6f58d8b2fdc96ea498351 100644 (file)
@@ -2797,7 +2797,7 @@ bridge_configure_remotes(struct bridge *br,
         n_ocs++;
     }
 
-    ofproto_set_controllers(br->ofproto, ocs, n_ocs);
+    ofproto_set_controllers(br->ofproto, ocs, n_ocs, 0);
     free(ocs[0].target); /* From bridge_ofproto_controller_for_mgmt(). */
     free(ocs);
 
@@ -3141,14 +3141,18 @@ static const char *
 iface_get_type(const struct ovsrec_interface *iface,
                const struct ovsrec_bridge *br)
 {
-    /* The local port always has type "internal" unless the bridge is of
-     * type "dummy".  Other ports take their type from the database and
-     * default to "system" if none is specified. */
+    const char *type;
+
+    /* The local port always has type "internal".  Other ports take
+     * their type from the database and default to "system" if none is
+     * specified. */
     if (!strcmp(iface->name, br->name)) {
-        return !strcmp(br->datapath_type, "dummy") ? "dummy" : "internal";
+        type = "internal";
     } else {
-        return iface->type[0] ? iface->type : "system";
+        type = iface->type[0] ? iface->type : "system";
     }
+
+    return ofproto_port_open_type(br->datapath_type, type);
 }
 
 static void