mac80211: as a 4-addr station, do not receive packets for other stations
Since 4-addr frames completely override the source address which will make it into the converted 802.3 frames, receiving frames for other 4-addr stations will confuse the bridging code. To be able to handle traffic for all connected devices, the bridge code will automatically turn on promiscuous mode, which triggers this problem. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Reported-by: Steve Brown <sbrown@cortland.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
180205bdb2
commit
4f3123366f
@ -2646,7 +2646,8 @@ static int prepare_for_handlers(struct ieee80211_rx_data *rx,
|
||||
return 0;
|
||||
if (!multicast &&
|
||||
compare_ether_addr(sdata->vif.addr, hdr->addr1) != 0) {
|
||||
if (!(sdata->dev->flags & IFF_PROMISC))
|
||||
if (!(sdata->dev->flags & IFF_PROMISC) ||
|
||||
sdata->u.mgd.use_4addr)
|
||||
return 0;
|
||||
status->rx_flags &= ~IEEE80211_RX_RA_MATCH;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user