diff options
author | Thomas Pedersen <thomas@cozybit.com> | 2011-10-26 17:47:29 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-11-08 15:55:27 -0500 |
commit | ae2772b313b98a14f69b5bc67135c9fee48771be (patch) | |
tree | b219dba159c95c5de70c0c84e7aec3f23a70b108 /net/mac80211 | |
parent | 739522baa1d6804a3ff33e8c135db0e6b2165f75 (diff) |
mac80211: allow frame aggregation for mesh
Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: Ashok Nagarajan <anagar6@uic.edu>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/agg-rx.c | 3 | ||||
-rw-r--r-- | net/mac80211/agg-tx.c | 10 | ||||
-rw-r--r-- | net/mac80211/ht.c | 3 | ||||
-rw-r--r-- | net/mac80211/rx.c | 7 |
4 files changed, 8 insertions, 15 deletions
diff --git a/net/mac80211/agg-rx.c b/net/mac80211/agg-rx.c index 97f33588b65f..f9ec0d97e349 100644 --- a/net/mac80211/agg-rx.c +++ b/net/mac80211/agg-rx.c | |||
@@ -176,7 +176,8 @@ static void ieee80211_send_addba_resp(struct ieee80211_sub_if_data *sdata, u8 *d | |||
176 | memcpy(mgmt->da, da, ETH_ALEN); | 176 | memcpy(mgmt->da, da, ETH_ALEN); |
177 | memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); | 177 | memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); |
178 | if (sdata->vif.type == NL80211_IFTYPE_AP || | 178 | if (sdata->vif.type == NL80211_IFTYPE_AP || |
179 | sdata->vif.type == NL80211_IFTYPE_AP_VLAN) | 179 | sdata->vif.type == NL80211_IFTYPE_AP_VLAN || |
180 | sdata->vif.type == NL80211_IFTYPE_MESH_POINT) | ||
180 | memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); | 181 | memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); |
181 | else if (sdata->vif.type == NL80211_IFTYPE_STATION) | 182 | else if (sdata->vif.type == NL80211_IFTYPE_STATION) |
182 | memcpy(mgmt->bssid, sdata->u.mgd.bssid, ETH_ALEN); | 183 | memcpy(mgmt->bssid, sdata->u.mgd.bssid, ETH_ALEN); |
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c index 2ac033989e01..fefc7e506754 100644 --- a/net/mac80211/agg-tx.c +++ b/net/mac80211/agg-tx.c | |||
@@ -77,7 +77,8 @@ static void ieee80211_send_addba_request(struct ieee80211_sub_if_data *sdata, | |||
77 | memcpy(mgmt->da, da, ETH_ALEN); | 77 | memcpy(mgmt->da, da, ETH_ALEN); |
78 | memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); | 78 | memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); |
79 | if (sdata->vif.type == NL80211_IFTYPE_AP || | 79 | if (sdata->vif.type == NL80211_IFTYPE_AP || |
80 | sdata->vif.type == NL80211_IFTYPE_AP_VLAN) | 80 | sdata->vif.type == NL80211_IFTYPE_AP_VLAN || |
81 | sdata->vif.type == NL80211_IFTYPE_MESH_POINT) | ||
81 | memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); | 82 | memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); |
82 | else if (sdata->vif.type == NL80211_IFTYPE_STATION) | 83 | else if (sdata->vif.type == NL80211_IFTYPE_STATION) |
83 | memcpy(mgmt->bssid, sdata->u.mgd.bssid, ETH_ALEN); | 84 | memcpy(mgmt->bssid, sdata->u.mgd.bssid, ETH_ALEN); |
@@ -371,13 +372,8 @@ int ieee80211_start_tx_ba_session(struct ieee80211_sta *pubsta, u16 tid, | |||
371 | pubsta->addr, tid); | 372 | pubsta->addr, tid); |
372 | #endif /* CONFIG_MAC80211_HT_DEBUG */ | 373 | #endif /* CONFIG_MAC80211_HT_DEBUG */ |
373 | 374 | ||
374 | /* | ||
375 | * The aggregation code is not prepared to handle | ||
376 | * anything but STA/AP due to the BSSID handling. | ||
377 | * IBSS could work in the code but isn't supported | ||
378 | * by drivers or the standard. | ||
379 | */ | ||
380 | if (sdata->vif.type != NL80211_IFTYPE_STATION && | 375 | if (sdata->vif.type != NL80211_IFTYPE_STATION && |
376 | sdata->vif.type != NL80211_IFTYPE_MESH_POINT && | ||
381 | sdata->vif.type != NL80211_IFTYPE_AP_VLAN && | 377 | sdata->vif.type != NL80211_IFTYPE_AP_VLAN && |
382 | sdata->vif.type != NL80211_IFTYPE_AP) | 378 | sdata->vif.type != NL80211_IFTYPE_AP) |
383 | return -EINVAL; | 379 | return -EINVAL; |
diff --git a/net/mac80211/ht.c b/net/mac80211/ht.c index f80a35c0d000..988c7ec0898c 100644 --- a/net/mac80211/ht.c +++ b/net/mac80211/ht.c | |||
@@ -195,7 +195,8 @@ void ieee80211_send_delba(struct ieee80211_sub_if_data *sdata, | |||
195 | memcpy(mgmt->da, da, ETH_ALEN); | 195 | memcpy(mgmt->da, da, ETH_ALEN); |
196 | memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); | 196 | memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); |
197 | if (sdata->vif.type == NL80211_IFTYPE_AP || | 197 | if (sdata->vif.type == NL80211_IFTYPE_AP || |
198 | sdata->vif.type == NL80211_IFTYPE_AP_VLAN) | 198 | sdata->vif.type == NL80211_IFTYPE_AP_VLAN || |
199 | sdata->vif.type == NL80211_IFTYPE_MESH_POINT) | ||
199 | memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); | 200 | memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); |
200 | else if (sdata->vif.type == NL80211_IFTYPE_STATION) | 201 | else if (sdata->vif.type == NL80211_IFTYPE_STATION) |
201 | memcpy(mgmt->bssid, sdata->u.mgd.bssid, ETH_ALEN); | 202 | memcpy(mgmt->bssid, sdata->u.mgd.bssid, ETH_ALEN); |
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index c74e542a26b0..3173dcfc2136 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -2203,13 +2203,8 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx) | |||
2203 | 2203 | ||
2204 | switch (mgmt->u.action.category) { | 2204 | switch (mgmt->u.action.category) { |
2205 | case WLAN_CATEGORY_BACK: | 2205 | case WLAN_CATEGORY_BACK: |
2206 | /* | ||
2207 | * The aggregation code is not prepared to handle | ||
2208 | * anything but STA/AP due to the BSSID handling; | ||
2209 | * IBSS could work in the code but isn't supported | ||
2210 | * by drivers or the standard. | ||
2211 | */ | ||
2212 | if (sdata->vif.type != NL80211_IFTYPE_STATION && | 2206 | if (sdata->vif.type != NL80211_IFTYPE_STATION && |
2207 | sdata->vif.type != NL80211_IFTYPE_MESH_POINT && | ||
2213 | sdata->vif.type != NL80211_IFTYPE_AP_VLAN && | 2208 | sdata->vif.type != NL80211_IFTYPE_AP_VLAN && |
2214 | sdata->vif.type != NL80211_IFTYPE_AP) | 2209 | sdata->vif.type != NL80211_IFTYPE_AP) |
2215 | break; | 2210 | break; |