提交 9251a473 编写于 作者: F Felix Fietkau 提交者: Johannes Berg

mac80211: support station 4-addr mode fast-rx

Signed-off-by: NFelix Fietkau <nbd@nbd.name>
Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
上级 1d870162
...@@ -3747,10 +3747,6 @@ void ieee80211_check_fast_rx(struct sta_info *sta) ...@@ -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) ...@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册