diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-02-10 21:25:47 +0100 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-02-13 13:45:36 -0500 |
commit | 8abd3f9bc476b5b7f6de1b6fb576b87ba338f7fd (patch) | |
tree | 1b830fde0f97686721a3843375453e03e4555c37 /net/mac80211/rx.c | |
parent | b8695a8fe6d89140f8d17668e99ebd39358d7c0b (diff) |
mac80211: restrict aggregation to supported interface modes
We can only support aggregation on AP/STA right now. HT isn't defined
for IBSS, WDS or MESH. In the WDS/MESH cases it's not clear what to
put into the IBSS field, and we don't handle that in the code at all.
Also fix the code to handle VLAN correctly.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r-- | net/mac80211/rx.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index f34cc66d3f4b..1327d424bf31 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c @@ -1768,6 +1768,17 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx) switch (mgmt->u.action.category) { case WLAN_CATEGORY_BACK: + /* + * The aggregation code is not prepared to handle + * anything but STA/AP due to the BSSID handling; + * IBSS could work in the code but isn't supported + * by drivers or the standard. + */ + if (sdata->vif.type != NL80211_IFTYPE_STATION && + sdata->vif.type != NL80211_IFTYPE_AP_VLAN && + sdata->vif.type != NL80211_IFTYPE_AP) + return RX_DROP_MONITOR; + switch (mgmt->u.action.u.addba_req.action_code) { case WLAN_ACTION_ADDBA_REQ: if (len < (IEEE80211_MIN_ACTION_SIZE + |