iwinfo: add 802.11ac hwmode support
In case of .11ac device the hwmode was not properly displayed. This patch fixes it. Signed-off-by: Marek Kwaczynski <marek.kwaczynski@tieto.com> Signed-off-by: Bartosz Markowski <bartosz.markowski@tieto.com> SVN-Revision: 40953
This commit is contained in:
parent
8139ba35af
commit
f3aa8a8cf4
@ -27,6 +27,7 @@
|
||||
#define IWINFO_80211_B (1 << 1)
|
||||
#define IWINFO_80211_G (1 << 2)
|
||||
#define IWINFO_80211_N (1 << 3)
|
||||
#define IWINFO_80211_AC (1 << 4)
|
||||
|
||||
#define IWINFO_CIPHER_NONE (1 << 0)
|
||||
#define IWINFO_CIPHER_WEP40 (1 << 1)
|
||||
|
@ -268,11 +268,12 @@ static char * format_hwmodes(int modes)
|
||||
if (modes <= 0)
|
||||
snprintf(buf, sizeof(buf), "unknown");
|
||||
else
|
||||
snprintf(buf, sizeof(buf), "802.11%s%s%s%s",
|
||||
snprintf(buf, sizeof(buf), "802.11%s%s%s%s%s",
|
||||
(modes & IWINFO_80211_A) ? "a" : "",
|
||||
(modes & IWINFO_80211_B) ? "b" : "",
|
||||
(modes & IWINFO_80211_G) ? "g" : "",
|
||||
(modes & IWINFO_80211_N) ? "n" : "");
|
||||
(modes & IWINFO_80211_N) ? "n" : "",
|
||||
(modes & IWINFO_80211_AC) ? "ac" : "");
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
@ -2159,6 +2159,7 @@ static int nl80211_get_hwmodelist_cb(struct nl_msg *msg, void *arg)
|
||||
int *modes = arg;
|
||||
int bands_remain, freqs_remain;
|
||||
uint16_t caps = 0;
|
||||
uint32_t vht_caps = 0;
|
||||
struct nlattr **attr = nl80211_parse(msg);
|
||||
struct nlattr *bands[NL80211_BAND_ATTR_MAX + 1];
|
||||
struct nlattr *freqs[NL80211_FREQUENCY_ATTR_MAX + 1];
|
||||
@ -2180,6 +2181,13 @@ static int nl80211_get_hwmodelist_cb(struct nl_msg *msg, void *arg)
|
||||
if (caps > 0)
|
||||
*modes |= IWINFO_80211_N;
|
||||
|
||||
if (bands[NL80211_BAND_ATTR_VHT_CAPA])
|
||||
vht_caps = nla_get_u32(bands[NL80211_BAND_ATTR_VHT_CAPA]);
|
||||
|
||||
/* Treat any nonzero capability as 11ac */
|
||||
if (vht_caps > 0)
|
||||
*modes |= IWINFO_80211_AC;
|
||||
|
||||
nla_for_each_nested(freq, bands[NL80211_BAND_ATTR_FREQS],
|
||||
freqs_remain)
|
||||
{
|
||||
@ -2194,7 +2202,7 @@ static int nl80211_get_hwmodelist_cb(struct nl_msg *msg, void *arg)
|
||||
*modes |= IWINFO_80211_B;
|
||||
*modes |= IWINFO_80211_G;
|
||||
}
|
||||
else
|
||||
else if (!(*modes & IWINFO_80211_AC))
|
||||
{
|
||||
*modes |= IWINFO_80211_A;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user