summaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2018-02-23 10:06:04 +0100
committerJohannes Berg <johannes.berg@intel.com>2018-02-27 11:05:51 +0100
commit59cae5b9d6d39db2804ed5f0330eb5507d40c34c (patch)
treec7b239f231b39f1ca74c00b57e27c65526470c85 /net/mac80211
parentf74290fdb363665538743d14c4f00aeacdb68d87 (diff)
downloadlinux-stable-59cae5b9d6d39db2804ed5f0330eb5507d40c34c.tar.gz
linux-stable-59cae5b9d6d39db2804ed5f0330eb5507d40c34c.tar.bz2
linux-stable-59cae5b9d6d39db2804ed5f0330eb5507d40c34c.zip
mac80211: support AP 4-addr mode fast-rx
Signed-off-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/rx.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 3dc162ddc3a6..89dcf9f762ce 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -3783,6 +3783,15 @@ void ieee80211_check_fast_rx(struct sta_info *sta)
!(sdata->flags & IEEE80211_SDATA_DONT_BRIDGE_PACKETS) &&
(sdata->vif.type != NL80211_IFTYPE_AP_VLAN ||
!sdata->u.vlan.sta);
+
+ if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
+ sdata->u.vlan.sta) {
+ fastrx.expected_ds_bits |=
+ cpu_to_le16(IEEE80211_FCTL_FROMDS);
+ fastrx.sa_offs = offsetof(struct ieee80211_hdr, addr4);
+ fastrx.internal_forward = 0;
+ }
+
break;
default:
goto clear;