]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
nl80211: Check if driver supports OCE specific features
authorAshwini Patil <c_apati@qti.qualcomm.com>
Mon, 10 Jul 2017 09:33:01 +0000 (15:03 +0530)
committerJouni Malinen <j@w1.fi>
Fri, 14 Jul 2017 18:13:22 +0000 (21:13 +0300)
Check if device supports OCE STA/STA-CFON/AP specific mandatory
features. This commit includes checking based on the QCA vendor
attributes.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
src/drivers/driver.h
src/drivers/driver_nl80211_capa.c

index 9b9c73166b84d775c6c7ea6fbb8d49fa914bb5c1..c35d1f79fa2c86858fd7519791e60ffe56d8e15d 100644 (file)
@@ -1582,6 +1582,17 @@ struct wpa_driver_capa {
 #define WPA_DRIVER_FLAGS_HE_CAPABILITIES       0x0002000000000000ULL
 /** Driver supports FILS shared key offload */
 #define WPA_DRIVER_FLAGS_FILS_SK_OFFLOAD       0x0004000000000000ULL
+/** Driver supports all OCE STA specific mandatory features */
+#define WPA_DRIVER_FLAGS_OCE_STA               0x0008000000000000ULL
+/** Driver supports all OCE AP specific mandatory features */
+#define WPA_DRIVER_FLAGS_OCE_AP                        0x0010000000000000ULL
+/**
+ * Driver supports all OCE STA-CFON specific mandatory features only.
+ * If a driver sets this bit but not the %WPA_DRIVER_FLAGS_OCE_AP, the
+ * userspace shall assume that this driver may not support all OCE AP
+ * functionality but can support only OCE STA-CFON functionality.
+ */
+#define WPA_DRIVER_FLAGS_OCE_STA_CFON          0x0020000000000000ULL
        u64 flags;
 
 #define FULL_AP_CLIENT_STATE_SUPP(drv_flags) \
index 7a4df1a0041b846c9ed00d449ed844e3ecee4eb8..f11a1d70e6e17f3748078b185a0805d981d5dad1 100644 (file)
@@ -1114,6 +1114,12 @@ static void qca_nl80211_get_features(struct wpa_driver_nl80211_data *drv)
                drv->capa.flags |= WPA_DRIVER_FLAGS_OFFCHANNEL_SIMULTANEOUS;
        if (check_feature(QCA_WLAN_VENDOR_FEATURE_P2P_LISTEN_OFFLOAD, &info))
                drv->capa.flags |= WPA_DRIVER_FLAGS_P2P_LISTEN_OFFLOAD;
+       if (check_feature(QCA_WLAN_VENDOR_FEATURE_OCE_STA, &info))
+               drv->capa.flags |= WPA_DRIVER_FLAGS_OCE_STA;
+       if (check_feature(QCA_WLAN_VENDOR_FEATURE_OCE_AP, &info))
+               drv->capa.flags |= WPA_DRIVER_FLAGS_OCE_AP;
+       if (check_feature(QCA_WLAN_VENDOR_FEATURE_OCE_STA_CFON, &info))
+               drv->capa.flags |= WPA_DRIVER_FLAGS_OCE_STA_CFON;
        os_free(info.flags);
 }