mac80211: fix broadcast frame handling for 4-addr AP VLANs
authorFelix Fietkau <nbd@openwrt.org>
Wed, 11 Nov 2009 12:17:36 +0000 (13:17 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 13 Nov 2009 22:43:59 +0000 (17:43 -0500)
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>
net/mac80211/rx.c

index 006cf89df70bfa7f725f03a8cff93e64b4187be0..6bce97ee25347a21204e208aaeeb78770d4a2b94 100644 (file)
@@ -1236,7 +1236,7 @@ ieee80211_deliver_skb(struct ieee80211_rx_data *rx)
        if ((sdata->vif.type == NL80211_IFTYPE_AP ||
             sdata->vif.type == NL80211_IFTYPE_AP_VLAN) &&
            !(sdata->flags & IEEE80211_SDATA_DONT_BRIDGE_PACKETS) &&
-           (rx->flags & IEEE80211_RX_RA_MATCH)) {
+           (rx->flags & IEEE80211_RX_RA_MATCH) && !rx->sdata->use_4addr) {
                if (is_multicast_ether_addr(ehdr->h_dest)) {
                        /*
                         * send multicast frames both to higher layers in