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;
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;
.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,