From: Ben Pfaff <blp@nicira.com>
Date: Mon, 12 Dec 2011 22:44:23 +0000 (-0800)
Subject: bridge: Enable support for access and native VLAN ports on bonds.
X-Git-Tag: sliver-openvswitch-0.1-1~563
X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=acaf14866175dc0a301d11cb78f955a3dd8e4cdc;p=sliver-openvswitch.git

bridge: Enable support for access and native VLAN ports on bonds.

Since Open vSwitch's inception we've disabled the use of bonds as access
ports, for no particularly good reason.  This also unintentionally
prevented bonds from being used as native VLAN ports.

This commit removes the code that prevented using bonds these ways

Reported-and-tested-by: "Michael A. Collins" <mike.a.collins@ark-net.org>
Signed-off-by: Ben Pfaff <blp@nicira.com>
---

diff --git a/AUTHORS b/AUTHORS
index 9e0ac2278..8af74e486 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -93,6 +93,7 @@ John Galgay             john@galgay.net
 Koichi Yagishita        yagishita.koichi@jrc.co.jp
 Krishna Miriyala        krishna@nicira.com
 Luiz Henrique Ozaki     luiz.ozaki@gmail.com
+Michael A. Collins      mike.a.collins@ark-net.org
 Michael Hu              mhu@nicira.com
 Michael Mao             mmao@nicira.com
 Mike Bursell            mike.bursell@citrix.com
diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
index adf01f7fe..de773f61e 100644
--- a/vswitchd/bridge.c
+++ b/vswitchd/bridge.c
@@ -539,17 +539,8 @@ port_configure(struct port *port)
 
     /* Get VLAN tag. */
     s.vlan = -1;
-    if (cfg->tag) {
-        if (list_is_short(&port->ifaces)) {
-            if (*cfg->tag >= 0 && *cfg->tag <= 4095) {
-                s.vlan = *cfg->tag;
-            }
-        } else {
-            /* It's possible that bonded, VLAN-tagged ports make sense.  Maybe
-             * they even work as-is.  But they have not been tested. */
-            VLOG_WARN("port %s: VLAN tags not supported on bonded ports",
-                      port->name);
-        }
+    if (cfg->tag && *cfg->tag >= 0 && *cfg->tag <= 4095) {
+        s.vlan = *cfg->tag;
     }
 
     /* Get VLAN trunks. */