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) {
|
switch (sdata->vif.type) {
|
||||||
case NL80211_IFTYPE_STATION:
|
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) {
|
if (sta->sta.tdls) {
|
||||||
fastrx.da_offs = offsetof(struct ieee80211_hdr, addr1);
|
fastrx.da_offs = offsetof(struct ieee80211_hdr, addr1);
|
||||||
fastrx.sa_offs = offsetof(struct ieee80211_hdr, addr2);
|
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);
|
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)
|
if (!sdata->u.mgd.powersave)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue