[PATCH] nl80211: handle NL80211_ATTR_EXT_FEATURES attribut
Janusz Dziedzic
janusz.dziedzic
Tue Mar 10 00:44:59 PDT 2015
Handle NL80211_ATTR_EXT_FEATURES attribut and
NL80211_EXT_FEATURE_VHT_IBSS.
Signed-off-by: Janusz Dziedzic <janusz.dziedzic at tieto.com>
---
src/drivers/driver_nl80211_capa.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/src/drivers/driver_nl80211_capa.c b/src/drivers/driver_nl80211_capa.c
index e0d1d23..a976026 100644
--- a/src/drivers/driver_nl80211_capa.c
+++ b/src/drivers/driver_nl80211_capa.c
@@ -334,6 +334,30 @@ static void wiphy_info_tdls(struct wpa_driver_capa *capa, struct nlattr *tdls,
}
}
+static int ext_feature_isset(u8 *ext_features,
+ int ext_features_len,
+ enum nl80211_ext_feature_index ftidx)
+{
+ u8 ft_byte;
+
+ if (ftidx / 8 >= ext_features_len)
+ return 0;
+
+ ft_byte = ext_features[ftidx / 8];
+ return (ft_byte & BIT(ftidx % 8)) != 0;
+}
+
+static void wiphy_info_ext_feature_flags(struct wiphy_info_data *info,
+ struct nlattr *tb)
+{
+ struct wpa_driver_capa *capa = info->capa;
+
+ if (tb == NULL)
+ return;
+
+ if (ext_feature_isset(nla_data(tb), nla_len(tb), NL80211_EXT_FEATURE_VHT_IBSS))
+ capa->flags |= WPA_DRIVER_FLAGS_VHT_IBSS;
+}
static void wiphy_info_feature_flags(struct wiphy_info_data *info,
struct nlattr *tb)
@@ -509,6 +533,7 @@ static int wiphy_info_handler(struct nl_msg *msg, void *arg)
info->device_ap_sme = 1;
wiphy_info_feature_flags(info, tb[NL80211_ATTR_FEATURE_FLAGS]);
+ wiphy_info_ext_feature_flags(info, tb[NL80211_ATTR_EXT_FEATURES]);
wiphy_info_probe_resp_offload(capa,
tb[NL80211_ATTR_PROBE_RESP_OFFLOAD]);
--
1.9.1
More information about the Hostap
mailing list