diff options
author | Felix Fietkau <nbd@openwrt.org> | 2009-11-11 07:17:36 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-11-13 17:43:59 -0500 |
commit | f501dba4c4c5bda1b64c941997ab7ece1d503945 (patch) | |
tree | 2fa9595db31173990bdc8e48685434913bd105bd | |
parent | 61fa713c751683da915fa0c1aa502be85822c357 (diff) |
mac80211: fix broadcast frame handling for 4-addr AP VLANs
Without this patch, broadcast frames from the station behind a
4-addr AP VLAN would be reflected back to the source.
Fix this by checking the 4-addr flag before bridging multicast
frames in the cell.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | net/mac80211/rx.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 006cf89df70b..6bce97ee2534 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -1236,7 +1236,7 @@ ieee80211_deliver_skb(struct ieee80211_rx_data *rx) | |||
1236 | if ((sdata->vif.type == NL80211_IFTYPE_AP || | 1236 | if ((sdata->vif.type == NL80211_IFTYPE_AP || |
1237 | sdata->vif.type == NL80211_IFTYPE_AP_VLAN) && | 1237 | sdata->vif.type == NL80211_IFTYPE_AP_VLAN) && |
1238 | !(sdata->flags & IEEE80211_SDATA_DONT_BRIDGE_PACKETS) && | 1238 | !(sdata->flags & IEEE80211_SDATA_DONT_BRIDGE_PACKETS) && |
1239 | (rx->flags & IEEE80211_RX_RA_MATCH)) { | 1239 | (rx->flags & IEEE80211_RX_RA_MATCH) && !rx->sdata->use_4addr) { |
1240 | if (is_multicast_ether_addr(ehdr->h_dest)) { | 1240 | if (is_multicast_ether_addr(ehdr->h_dest)) { |
1241 | /* | 1241 | /* |
1242 | * send multicast frames both to higher layers in | 1242 | * send multicast frames both to higher layers in |