mac80211: support station 4-addr mode fast-rx
Signed-off-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
1d87016241
commit
9251a4736e
|
@ -3747,10 +3747,6 @@ void ieee80211_check_fast_rx(struct sta_info *sta)
|
|||
|
||||
switch (sdata->vif.type) {
|
||||
case NL80211_IFTYPE_STATION:
|
||||
/* 4-addr is harder to deal with, later maybe */
|
||||
if (sdata->u.mgd.use_4addr)
|
||||
goto clear;
|
||||
|
||||
if (sta->sta.tdls) {
|
||||
fastrx.da_offs = offsetof(struct ieee80211_hdr, addr1);
|
||||
fastrx.sa_offs = offsetof(struct ieee80211_hdr, addr2);
|
||||
|
@ -3763,6 +3759,13 @@ void ieee80211_check_fast_rx(struct sta_info *sta)
|
|||
cpu_to_le16(IEEE80211_FCTL_FROMDS);
|
||||
}
|
||||
|
||||
if (sdata->u.mgd.use_4addr && !sta->sta.tdls) {
|
||||
fastrx.expected_ds_bits |=
|
||||
cpu_to_le16(IEEE80211_FCTL_TODS);
|
||||
fastrx.da_offs = offsetof(struct ieee80211_hdr, addr3);
|
||||
fastrx.sa_offs = offsetof(struct ieee80211_hdr, addr4);
|
||||
}
|
||||
|
||||
if (!sdata->u.mgd.powersave)
|
||||
break;
|
||||
|
||||
|
|
Loading…
Reference in New Issue