X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fiwinfo.git;a=blobdiff_plain;f=iwinfo_wl.c;h=c7517ecea661b6f753700288917d17c4f8ac7093;hp=57e4acf00292b4e534886f3b4a511619a5485143;hb=fb749bf51a7855ee955fc221acdc51b94231db2b;hpb=9853abe33a8089ba780d6281620da7bf5144fdcf diff --git a/iwinfo_wl.c b/iwinfo_wl.c index 57e4acf..c7517ec 100644 --- a/iwinfo_wl.c +++ b/iwinfo_wl.c @@ -601,6 +601,8 @@ static int wl_get_hwmodelist(const char *ifname, int *buf) case WLC_PHY_TYPE_B: *buf = IWINFO_80211_B; break; + case WLC_PHY_TYPE_AC: + *buf |= IWINFO_80211_AC; case WLC_PHY_TYPE_HT: case WLC_PHY_TYPE_N: *buf |= IWINFO_80211_N; @@ -628,6 +630,29 @@ static int wl_get_hwmodelist(const char *ifname, int *buf) return -1; } +static int wl_get_htmodelist(const char *ifname, int *buf) +{ + int modes; + + if (!wl_get_hwmodelist(ifname, &modes)) + { + *buf = 0; + + /* FIXME: determine real capabilities */ + + if (modes & IWINFO_80211_N) + *buf |= IWINFO_HTMODE_HT20 | IWINFO_HTMODE_HT40; + + if (modes & IWINFO_80211_AC) + *buf |= IWINFO_HTMODE_VHT20 | IWINFO_HTMODE_VHT40 | + IWINFO_HTMODE_VHT80; + + return 0; + } + + return -1; +} + static int wl_get_mbssid_support(const char *ifname, int *buf) { wlc_rev_info_t revinfo; @@ -713,6 +738,7 @@ const struct iwinfo_ops wl_ops = { .quality_max = wl_get_quality_max, .mbssid_support = wl_get_mbssid_support, .hwmodelist = wl_get_hwmodelist, + .htmodelist = wl_get_htmodelist, .mode = wl_get_mode, .ssid = wl_get_ssid, .bssid = wl_get_bssid,