diff options
author | davem <davem> | 2002-01-17 00:57:07 +0000 |
---|---|---|
committer | davem <davem> | 2002-01-17 00:57:07 +0000 |
commit | 5bf0309971dd6a105c4e57392c2b03d0a8cd3a0a (patch) | |
tree | a29fc3fd7c7fbb28f361294732ca915b7846a840 | |
parent | 4dd458db8fe96cf9c4de7127d121fc4881b52249 (diff) | |
download | netdev-vger-cvs-5bf0309971dd6a105c4e57392c2b03d0a8cd3a0a.tar.gz |
Same MAC on multiple interfaces is legal.
From Lennert Buytenhek.
-rw-r--r-- | net/bridge/br_fdb.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c index 83f714f1c..ab9d39beb 100644 --- a/net/bridge/br_fdb.c +++ b/net/bridge/br_fdb.c @@ -5,7 +5,7 @@ * Authors: * Lennert Buytenhek <buytenh@gnu.org> * - * $Id: br_fdb.c,v 1.5 2000-11-08 05:16:40 davem Exp $ + * $Id: br_fdb.c,v 1.6 2002-01-17 00:57:07 davem Exp $ * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -292,7 +292,8 @@ void br_fdb_insert(struct net_bridge *br, write_lock_bh(&br->hash_lock); fdb = br->hash[hash]; while (fdb != NULL) { - if (!memcmp(fdb->addr.addr, addr, ETH_ALEN)) { + if (!fdb->is_local && + !memcmp(fdb->addr.addr, addr, ETH_ALEN)) { __fdb_possibly_replace(fdb, source, is_local); write_unlock_bh(&br->hash_lock); return; |