]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
nl80211: Populate RRM flags in nl80211 driver
authorAssaf Krauss <assaf.krauss@intel.com>
Wed, 5 Nov 2014 08:42:46 +0000 (03:42 -0500)
committerJouni Malinen <j@w1.fi>
Sat, 22 Nov 2014 19:06:32 +0000 (21:06 +0200)
Set the RRM capability flags, based on the capabilities reported
by the underlying driver.

In addition, upon connection, notify the underlying driver regarding
RRM support.

Signed-off-by: Assaf Krauss <assaf.krauss@intel.com>
src/drivers/driver_nl80211.c
src/drivers/driver_nl80211_capa.c

index fdb1ec2265ce6b470f2c965b2974c1c4df05994e..a37710e0d36b61dca3e585047146cc9301a8c23f 100644 (file)
@@ -5291,6 +5291,15 @@ static int nl80211_connect_common(struct wpa_driver_nl80211_data *drv,
        if (params->mgmt_frame_protection == MGMT_FRAME_PROTECTION_REQUIRED)
                NLA_PUT_U32(msg, NL80211_ATTR_USE_MFP, NL80211_MFP_REQUIRED);
 
+       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))
+                       goto nla_put_failure;
+               NLA_PUT_FLAG(msg, NL80211_ATTR_USE_RRM);
+       }
+
        if (params->disable_ht)
                NLA_PUT_FLAG(msg, NL80211_ATTR_DISABLE_HT);
 
index 9f29dd286ab1adfeb1d527e6bd0804796b2004e1..9ee49e16d870e376f3fd6678b8f681b738e92eb9 100644 (file)
@@ -368,6 +368,18 @@ static void wiphy_info_feature_flags(struct wiphy_info_data *info,
 
        if (flags & NL80211_FEATURE_SUPPORTS_WMM_ADMISSION)
                info->wmm_ac_supported = 1;
+
+       if (flags & NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES)
+               capa->rrm_flags |= WPA_DRIVER_FLAGS_DS_PARAM_SET_IE_IN_PROBES;
+
+       if (flags & NL80211_FEATURE_WFA_TPC_IE_IN_PROBES)
+               capa->rrm_flags |= WPA_DRIVER_FLAGS_WFA_TPC_IE_IN_PROBES;
+
+       if (flags & NL80211_FEATURE_QUIET)
+               capa->rrm_flags |= WPA_DRIVER_FLAGS_QUIET;
+
+       if (flags & NL80211_FEATURE_TX_POWER_INSERTION)
+               capa->rrm_flags |= WPA_DRIVER_FLAGS_TX_POWER_INSERTION;
 }