From: Jesse Gross Date: Thu, 8 Oct 2009 19:20:10 +0000 (-0700) Subject: bonding: Compare ports, not interfaces, for loop checks. X-Git-Tag: v0.90.7~48 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=97b7b2f410e487f59ae3690213cfc8de0c8b88fb;p=sliver-openvswitch.git bonding: Compare ports, not interfaces, for loop checks. 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 --- diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c index f32d2baff..4ad7e9bb7 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; }