[ovs-dev] [xlate v1 14/18] bond: Handle unknown slaves in bond_check_admissibility().
Ethan Jackson
ethan at nicira.com
Tue Jun 25 01:59:28 UTC 2013
In future patches, ofproto-dpif-xlate may be temporarily out of
sync with ofproto-dpif and pass a non-bonded ofport into
bond_check_admissibility(). This patch handles that edge case
gracefully.
Signed-off-by: Ethan Jackson <ethan at nicira.com>
---
lib/bond.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lib/bond.c b/lib/bond.c
index 1136315..198db0f 100644
--- a/lib/bond.c
+++ b/lib/bond.c
@@ -557,6 +557,10 @@ bond_check_admissibility(struct bond *bond, const void *slave_,
{
struct bond_slave *slave = bond_slave_lookup(bond, slave_);
+ if (!slave) {
+ return BV_DROP;
+ }
+
/* LACP bonds have very loose admissibility restrictions because we can
* assume the remote switch is aware of the bond and will "do the right
* thing". However, as a precaution we drop packets on disabled slaves
@@ -574,7 +578,7 @@ bond_check_admissibility(struct bond *bond, const void *slave_,
/* Drop all multicast packets on inactive slaves. */
if (eth_addr_is_multicast(eth_dst)) {
*tags |= bond_get_active_slave_tag(bond);
- if (bond->active_slave != bond_slave_lookup(bond, slave_)) {
+ if (bond->active_slave != slave) {
return BV_DROP;
}
}
--
1.7.9.5
More information about the dev
mailing list