diff options
author | Rajkumar Manoharan <rmanohar@qca.qualcomm.com> | 2011-09-25 05:23:31 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-09-27 14:34:10 -0400 |
commit | aad14ceb45f5ff12da2ab5b37a596e6f81566515 (patch) | |
tree | 898380834d260961219b687e377b60c41f5f16e9 /net/mac80211/util.c | |
parent | e9f935e3e8dc0bddd0df6d148165d95925422502 (diff) |
mac80211: Send the management frame at requested rate
Whenever the scan request or tx_mgmt is requesting not to
use CCK rate for managemet frames through
NL80211_ATTR_TX_NO_CCK_RATE attribute, then mac80211 should
select appropriate least non-CCK rate. This could help to
send P2P probes and P2P action frames at non 11b rates
without diabling 11b rates globally.
Cc: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/util.c')
-rw-r--r-- | net/mac80211/util.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/net/mac80211/util.c b/net/mac80211/util.c index 4b1466d5b6a..ead345db712 100644 --- a/net/mac80211/util.c +++ b/net/mac80211/util.c | |||
@@ -899,14 +899,18 @@ struct sk_buff *ieee80211_build_probe_req(struct ieee80211_sub_if_data *sdata, | |||
899 | void ieee80211_send_probe_req(struct ieee80211_sub_if_data *sdata, u8 *dst, | 899 | void ieee80211_send_probe_req(struct ieee80211_sub_if_data *sdata, u8 *dst, |
900 | const u8 *ssid, size_t ssid_len, | 900 | const u8 *ssid, size_t ssid_len, |
901 | const u8 *ie, size_t ie_len, | 901 | const u8 *ie, size_t ie_len, |
902 | u32 ratemask, bool directed) | 902 | u32 ratemask, bool directed, bool no_cck) |
903 | { | 903 | { |
904 | struct sk_buff *skb; | 904 | struct sk_buff *skb; |
905 | 905 | ||
906 | skb = ieee80211_build_probe_req(sdata, dst, ratemask, ssid, ssid_len, | 906 | skb = ieee80211_build_probe_req(sdata, dst, ratemask, ssid, ssid_len, |
907 | ie, ie_len, directed); | 907 | ie, ie_len, directed); |
908 | if (skb) | 908 | if (skb) { |
909 | if (no_cck) | ||
910 | IEEE80211_SKB_CB(skb)->flags |= | ||
911 | IEEE80211_TX_CTL_NO_CCK_RATE; | ||
909 | ieee80211_tx_skb(sdata, skb); | 912 | ieee80211_tx_skb(sdata, skb); |
913 | } | ||
910 | } | 914 | } |
911 | 915 | ||
912 | u32 ieee80211_sta_get_rates(struct ieee80211_local *local, | 916 | u32 ieee80211_sta_get_rates(struct ieee80211_local *local, |