When the MAC address of a bridge interface is changed, it cannot communicate with others. Because Whether or not a packet should be transferred to bridge interface depends on whether or not dst of a packet is in fdb and is_local=y. If we change MAC address of a bridge interface, it isn't in fdb. This patch adds an condition that dst of a packet matches MAC address of a bridge interface to the conventional condition. Signed-off-by: Koki Sanagi <sanagi.koki@xxxxxxxxxxxxxx> --- net/bridge/br_input.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c index 5a31731..4e5c862 100644 --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c @@ -94,7 +94,8 @@ int br_handle_frame_finish(struct sk_buff *skb) skb2 = skb; br->dev->stats.multicast++; - } else if ((dst = __br_fdb_get(br, dest)) && dst->is_local) { + } else if ((dst = __br_fdb_get(br, dest) && dst->is_local) || + !compare_ether_addr(p->br->dev->dev_addr, dest)) { skb2 = skb; /* Do not forward the packet since it's local. */ skb = NULL; _______________________________________________ Bridge mailing list Bridge@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/bridge