Re: [PATCH v3 net 2/9] bridge: Fix the way to insert new local fdb entries in br_fdb_changeaddr
From: Toshiaki Makita <hidden>
Date: 2014-02-08 02:43:54
On Fri, 2014-02-07 at 09:31 -0700, Stephen Hemminger wrote:
On Fri, 7 Feb 2014 16:48:19 +0900 Toshiaki Makita [off-list ref] wrote:quoted
Since commit bc9a25d21ef8 ("bridge: Add vlan support for local fdb entries"), br_fdb_changeaddr() has inserted a new local fdb entry only if it can find old one. But if we have two ports where they have the same address or user has deleted a local entry, there will be no entry for one of the ports. Example of problematic case: ip link set eth0 address aa:bb:cc:dd:ee:ff ip link set eth1 address aa:bb:cc:dd:ee:ff brctl addif br0 eth0 brctl addif br0 eth1 # eth1 will not have a local entry due to dup.I think the second addif should fail, it doesn't seem valid to have two interfaces on same bridge with same address. Most hardware switches would disable the port in that case.
Thank you for your comment, but I don't think so for several reasons. - From other network elements on the same network, bridge ports don't appear to have a mac address, but the bridge appears to have several mac addresses that can reach to the bridge. The duplicated address is simply seen as one of those addresses. I don't think it is a problem. - This operation (add a port that has duplicated address) has allowed for several years, and it is obviously intended, as commented in fdb_insert(). 417 /* it is okay to have multiple ports with same 418 * address, just use the first one. 419 */ - Hardware switches usually have one mac address per one switch. Their ports don't have mac addresses. It is not reasonable to compare hardware switches. Thanks, Toshiaki Makita