bridge: notify applications if address of bridge device changes
The mac address of the bridge device may be changed when a new interface is added to the bridge. If this happens, then the bridge needs to call the network notifiers to tickle any other systems that care. Since bridge can be a module, this also means exporting the notifier function. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
8628bd8af7
commit
edf947f100
@@ -204,7 +204,7 @@ void br_stp_change_bridge_id(struct net_bridge *br, const unsigned char *addr)
|
||||
static const unsigned short br_mac_zero_aligned[ETH_ALEN >> 1];
|
||||
|
||||
/* called under bridge lock */
|
||||
void br_stp_recalculate_bridge_id(struct net_bridge *br)
|
||||
bool br_stp_recalculate_bridge_id(struct net_bridge *br)
|
||||
{
|
||||
const unsigned char *br_mac_zero =
|
||||
(const unsigned char *)br_mac_zero_aligned;
|
||||
@@ -222,8 +222,11 @@ void br_stp_recalculate_bridge_id(struct net_bridge *br)
|
||||
|
||||
}
|
||||
|
||||
if (compare_ether_addr(br->bridge_id.addr, addr))
|
||||
br_stp_change_bridge_id(br, addr);
|
||||
if (compare_ether_addr(br->bridge_id.addr, addr) == 0)
|
||||
return false; /* no change */
|
||||
|
||||
br_stp_change_bridge_id(br, addr);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* called under bridge lock */
|
||||
|
Reference in New Issue
Block a user