]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
nl80211: Add support for global RRM flag
authorBeni Lev <beni.lev@intel.com>
Wed, 6 Apr 2016 16:42:16 +0000 (19:42 +0300)
committerJouni Malinen <j@w1.fi>
Sun, 17 Apr 2016 09:41:44 +0000 (12:41 +0300)
Set the global RRM flag if global RRM is supported by the device. Also,
allow RRM in (Re)Association Request frame if the global RRM flag is
set.

Signed-off-by: Beni Lev <beni.lev@intel.com>
src/drivers/driver_nl80211.c
src/drivers/driver_nl80211_capa.c

index 72d3bea08dd1f3a18429db8bacc8cf3fbd738086..0dab4bdb86acdc1e4761cbb7ff0d95c2ea6edfa3 100644 (file)
@@ -4833,9 +4833,10 @@ static int nl80211_connect_common(struct wpa_driver_nl80211_data *drv,
 
        if (params->rrm_used) {
                u32 drv_rrm_flags = drv->capa.rrm_flags;
-               if (!(drv_rrm_flags &
-                     WPA_DRIVER_FLAGS_DS_PARAM_SET_IE_IN_PROBES) ||
-                   !(drv_rrm_flags & WPA_DRIVER_FLAGS_QUIET) ||
+               if ((!((drv_rrm_flags &
+                       WPA_DRIVER_FLAGS_DS_PARAM_SET_IE_IN_PROBES) &&
+                      (drv_rrm_flags & WPA_DRIVER_FLAGS_QUIET)) &&
+                    !(drv_rrm_flags & WPA_DRIVER_FLAGS_SUPPORT_RRM)) ||
                    nla_put_flag(msg, NL80211_ATTR_USE_RRM))
                        return -1;
        }
index 14a93a057fb25157169160f0ab2b1e31cf2a322d..fc0f95a7554c60e8405c70fce71981fe96788655 100644 (file)
@@ -352,13 +352,20 @@ static void wiphy_info_ext_feature_flags(struct wiphy_info_data *info,
                                         struct nlattr *tb)
 {
        struct wpa_driver_capa *capa = info->capa;
+       u8 *ext_features;
+       int len;
 
        if (tb == NULL)
                return;
 
-       if (ext_feature_isset(nla_data(tb), nla_len(tb),
-                             NL80211_EXT_FEATURE_VHT_IBSS))
+       ext_features = nla_data(tb);
+       len = nla_len(tb);
+
+       if (ext_feature_isset(ext_features, len, NL80211_EXT_FEATURE_VHT_IBSS))
                capa->flags |= WPA_DRIVER_FLAGS_VHT_IBSS;
+
+       if (ext_feature_isset(ext_features, len, NL80211_EXT_FEATURE_RRM))
+               capa->rrm_flags |= WPA_DRIVER_FLAGS_SUPPORT_RRM;
 }