aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/mac80211.h
diff options
context:
space:
mode:
authorJouni Malinen <jouni.malinen@atheros.com>2009-12-29 05:59:19 -0500
committerJohn W. Linville <linville@tuxdriver.com>2010-01-12 13:50:09 -0500
commite00cfce0cb2a397859607bf515c6de9ce064b64a (patch)
tree038d87e7d90a5bcdd8f689a563221eab883b0546 /include/net/mac80211.h
parent3dc1de0bf23816ed557ac8addf680cd5ee57e805 (diff)
mac80211: Select lowest rate based on basic rate set in AP mode
If the basic rate set is configured to not include the lowest rate (e.g., basic rate set = 6, 12, 24 Mbps in IEEE 802.11g mode), the AP should not send out broadcast frames at 1 Mbps. This type of configuration can be used to optimize channel usage in cases where there is no need for backwards compatibility with IEEE 802.11b-only devices. In AP mode, mac80211 was unconditionally using the lowest rate for Beacon frames and similarly, with all rate control algorithms that use rate_control_send_low(), the lowest rate ended up being used for all broadcast frames (and all unicast frames that are sent before association). Change this to take into account the basic rate configuration in AP mode, i.e., use the lowest rate in the basic rate set instead of the lowest supported rate when selecting the rate. Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r--include/net/mac80211.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index ad4b70034e77..39c516c352be 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2299,6 +2299,7 @@ enum rate_control_changed {
2299 * @max_rate_idx: user-requested maximum rate (not MCS for now) 2299 * @max_rate_idx: user-requested maximum rate (not MCS for now)
2300 * @skb: the skb that will be transmitted, the control information in it needs 2300 * @skb: the skb that will be transmitted, the control information in it needs
2301 * to be filled in 2301 * to be filled in
2302 * @ap: whether this frame is sent out in AP mode
2302 */ 2303 */
2303struct ieee80211_tx_rate_control { 2304struct ieee80211_tx_rate_control {
2304 struct ieee80211_hw *hw; 2305 struct ieee80211_hw *hw;
@@ -2308,6 +2309,7 @@ struct ieee80211_tx_rate_control {
2308 struct ieee80211_tx_rate reported_rate; 2309 struct ieee80211_tx_rate reported_rate;
2309 bool rts, short_preamble; 2310 bool rts, short_preamble;
2310 u8 max_rate_idx; 2311 u8 max_rate_idx;
2312 bool ap;
2311}; 2313};
2312 2314
2313struct rate_control_ops { 2315struct rate_control_ops {