[ovs-dev] [PATCH 1/2] bonding: Compare ports, not interfaces, for loop checks.

Jesse Gross jesse at nicira.com
Thu Oct 8 19:40:42 UTC 2009


In order to avoid loops we check that the input and output ports
are not equal.  When selecting mirror outputs for RSPAN we were
checking interfaces instead of ports.  This lead to loops when
using RSPAN with bonded ports.

Bug #2118
---
 vswitchd/bridge.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
index f32d2ba..4ad7e9b 100644
--- a/vswitchd/bridge.c
+++ b/vswitchd/bridge.c
@@ -1721,8 +1721,7 @@ compose_dsts(const struct bridge *br, const flow_t *flow, uint16_t vlan,
                         if (dst_is_duplicate(dsts, dst - dsts, dst)) {
                             continue;
                         }
-                        if (dst->dp_ifidx == flow->in_port
-                            && dst->vlan == vlan) {
+                        if (port == in_port && dst->vlan == vlan) {
                             /* Don't send out input port on same VLAN. */
                             continue;
                         }
-- 
1.6.0.4





More information about the dev mailing list