Commit d51626df authored by Johannes Berg's avatar Johannes Berg Committed by John W. Linville

nl80211: export HT capabilities

This exports the local HT capabilities in nl80211.
Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 94778280
...@@ -452,17 +452,29 @@ enum nl80211_mpath_info { ...@@ -452,17 +452,29 @@ enum nl80211_mpath_info {
* an array of nested frequency attributes * an array of nested frequency attributes
* @NL80211_BAND_ATTR_RATES: supported bitrates in this band, * @NL80211_BAND_ATTR_RATES: supported bitrates in this band,
* an array of nested bitrate attributes * an array of nested bitrate attributes
* @NL80211_BAND_ATTR_HT_MCS_SET: 16-byte attribute containing the MCS set as
* defined in 802.11n
* @NL80211_BAND_ATTR_HT_CAPA: HT capabilities, as in the HT information IE
* @NL80211_BAND_ATTR_HT_AMPDU_FACTOR: A-MPDU factor, as in 11n
* @NL80211_BAND_ATTR_HT_AMPDU_DENSITY: A-MPDU density, as in 11n
*/ */
enum nl80211_band_attr { enum nl80211_band_attr {
__NL80211_BAND_ATTR_INVALID, __NL80211_BAND_ATTR_INVALID,
NL80211_BAND_ATTR_FREQS, NL80211_BAND_ATTR_FREQS,
NL80211_BAND_ATTR_RATES, NL80211_BAND_ATTR_RATES,
NL80211_BAND_ATTR_HT_MCS_SET,
NL80211_BAND_ATTR_HT_CAPA,
NL80211_BAND_ATTR_HT_AMPDU_FACTOR,
NL80211_BAND_ATTR_HT_AMPDU_DENSITY,
/* keep last */ /* keep last */
__NL80211_BAND_ATTR_AFTER_LAST, __NL80211_BAND_ATTR_AFTER_LAST,
NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1 NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1
}; };
#define NL80211_BAND_ATTR_HT_CAPA NL80211_BAND_ATTR_HT_CAPA
/** /**
* enum nl80211_frequency_attr - frequency attributes * enum nl80211_frequency_attr - frequency attributes
* @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz
......
...@@ -157,6 +157,19 @@ static int nl80211_send_wiphy(struct sk_buff *msg, u32 pid, u32 seq, int flags, ...@@ -157,6 +157,19 @@ static int nl80211_send_wiphy(struct sk_buff *msg, u32 pid, u32 seq, int flags,
if (!nl_band) if (!nl_band)
goto nla_put_failure; goto nla_put_failure;
/* add HT info */
if (dev->wiphy.bands[band]->ht_cap.ht_supported) {
NLA_PUT(msg, NL80211_BAND_ATTR_HT_MCS_SET,
sizeof(dev->wiphy.bands[band]->ht_cap.mcs),
&dev->wiphy.bands[band]->ht_cap.mcs);
NLA_PUT_U16(msg, NL80211_BAND_ATTR_HT_CAPA,
dev->wiphy.bands[band]->ht_cap.cap);
NLA_PUT_U8(msg, NL80211_BAND_ATTR_HT_AMPDU_FACTOR,
dev->wiphy.bands[band]->ht_cap.ampdu_factor);
NLA_PUT_U8(msg, NL80211_BAND_ATTR_HT_AMPDU_DENSITY,
dev->wiphy.bands[band]->ht_cap.ampdu_density);
}
/* add frequencies */ /* add frequencies */
nl_freqs = nla_nest_start(msg, NL80211_BAND_ATTR_FREQS); nl_freqs = nla_nest_start(msg, NL80211_BAND_ATTR_FREQS);
if (!nl_freqs) if (!nl_freqs)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment