nl80211: Add support for global RRM flag

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>
This commit is contained in:
Beni Lev 2016-04-06 19:42:16 +03:00 committed by Jouni Malinen
parent a7f0bb7000
commit b5d172e578
2 changed files with 13 additions and 5 deletions

View 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;
}

View 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;
}