aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/338-mac80211-Fix-Public-Action-frame-RX-in-AP-mode.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2016-03-02 14:57:49 +0000
committerFelix Fietkau <nbd@openwrt.org>2016-03-02 14:57:49 +0000
commit197d34388bad921867276218ff33fee0de1c6e6c (patch)
treed5ae61876759730929573825b6094f7f663a1806 /package/kernel/mac80211/patches/338-mac80211-Fix-Public-Action-frame-RX-in-AP-mode.patch
parent7a4bf5434d3919fafb15cc8a55789e38998b6462 (diff)
downloadupstream-197d34388bad921867276218ff33fee0de1c6e6c.tar.gz
upstream-197d34388bad921867276218ff33fee0de1c6e6c.tar.bz2
upstream-197d34388bad921867276218ff33fee0de1c6e6c.zip
mac80211: add a number of pending fixes
Signed-off-by: Felix Fietkau <nbd@openwrt.org> Backport of r48883 git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@48884 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/kernel/mac80211/patches/338-mac80211-Fix-Public-Action-frame-RX-in-AP-mode.patch')
-rw-r--r--package/kernel/mac80211/patches/338-mac80211-Fix-Public-Action-frame-RX-in-AP-mode.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/338-mac80211-Fix-Public-Action-frame-RX-in-AP-mode.patch b/package/kernel/mac80211/patches/338-mac80211-Fix-Public-Action-frame-RX-in-AP-mode.patch
new file mode 100644
index 0000000000..56cd94aa15
--- /dev/null
+++ b/package/kernel/mac80211/patches/338-mac80211-Fix-Public-Action-frame-RX-in-AP-mode.patch
@@ -0,0 +1,35 @@
+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;
+ }