bridge: Open internal ports with the correct type.
authorJustin Pettit <jpettit@nicira.com>
Wed, 14 Nov 2012 23:49:47 +0000 (15:49 -0800)
committerJustin Pettit <jpettit@nicira.com>
Fri, 16 Nov 2012 20:35:55 +0000 (12:35 -0800)
Use the new ofproto function that returns how a port should be opened
based on the datapath type.  This fixes a problem with internal ports
being attached to userspace datapaths.

Signed-off-by: Justin Pettit <jpettit@nicira.com>
vswitchd/bridge.c

index 9fe77504695e3493d484a6bfa7c7446fd219d39c..dbce59a32d50177a6cc6f58d8b2fdc96ea498351 100644 (file)
@@ -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