1234567891011121314151617181920212223242526272829303132333435 |
- From: Jouni Malinen <jouni@qca.qualcomm.com>
- Date: Tue, 1 Mar 2016 00:29:00 +0200
- Subject: [PATCH] mac80211: Fix Public Action frame RX in AP mode
- Public Action frames use special rules for how the BSSID field (Address
- 3) is set. A wildcard BSSID is used in cases where the transmitter and
- recipient are not members of the same BSS. As such, we need to accept
- Public Action frames with wildcard BSSID.
- Commit db8e17324553 ("mac80211: ignore frames between TDLS peers when
- operating as AP") added a rule that drops Action frames to TDLS-peers
- based on an Action frame having different DA (Address 1) and BSSID
- (Address 3) values. This is not correct since it misses the possibility
- of BSSID being a wildcard BSSID in which case the Address 1 would not
- necessarily match.
- Fix this by allowing mac80211 to accept wildcard BSSID in an Action
- frame when in AP mode.
- Fixes: db8e17324553 ("mac80211: ignore frames between TDLS peers when operating as AP")
- Cc: stable@vger.kernel.org
- Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
- Signed-off-by: Johannes Berg <johannes.berg@intel.com>
- ---
- --- a/net/mac80211/rx.c
- +++ b/net/mac80211/rx.c
- @@ -3374,6 +3374,7 @@ static bool ieee80211_accept_frame(struc
- return false;
- /* ignore action frames to TDLS-peers */
- if (ieee80211_is_action(hdr->frame_control) &&
- + !is_broadcast_ether_addr(bssid) &&
- !ether_addr_equal(bssid, hdr->addr1))
- return false;
- }
|