[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