nl80211: Add driver flag to indicate mesh support
authorBob Copeland <me@bobcopeland.com>
Mon, 1 Sep 2014 04:23:23 +0000 (00:23 -0400)
committerJouni Malinen <j@w1.fi>
Sun, 19 Oct 2014 09:58:13 +0000 (12:58 +0300)
Convert the driver flags variable to u64 since there was no room for
more flags.

Signed-off-by: Javier Lopez <jlopex@gmail.com>
Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: Jason Mobarak <x@jason.mobarak.name>
Signed-off-by: Bob Copeland <me@bobcopeland.com>
src/drivers/driver.h
src/drivers/driver_nl80211.c
src/drivers/driver_wext.c
wpa_supplicant/wpa_supplicant_i.h

index 36f6f69..2a4adf4 100644 (file)
@@ -1020,7 +1020,9 @@ struct wpa_driver_capa {
 #define WPA_DRIVER_FLAGS_QOS_MAPPING                   0x40000000
 /* Driver supports CSA in AP mode */
 #define WPA_DRIVER_FLAGS_AP_CSA                                0x80000000
-       unsigned int flags;
+/* Driver supports mesh */
+#define WPA_DRIVER_FLAGS_MESH                  0x0000000100000000ULL
+       u64 flags;
 
        int max_scan_ssids;
        int max_sched_scan_ssids;
index fe1dc7f..e055beb 100644 (file)
@@ -3541,6 +3541,9 @@ static void wiphy_info_supported_iftypes(struct wiphy_info_data *info,
                case NL80211_IFTYPE_AP:
                        info->capa->flags |= WPA_DRIVER_FLAGS_AP;
                        break;
+               case NL80211_IFTYPE_MESH_POINT:
+                       info->capa->flags |= WPA_DRIVER_FLAGS_MESH;
+                       break;
                case NL80211_IFTYPE_ADHOC:
                        info->capa->flags |= WPA_DRIVER_FLAGS_IBSS;
                        break;
@@ -12163,7 +12166,7 @@ static int wpa_driver_nl80211_status(void *priv, char *buf, size_t buflen)
                                  "capa.key_mgmt=0x%x\n"
                                  "capa.enc=0x%x\n"
                                  "capa.auth=0x%x\n"
-                                 "capa.flags=0x%x\n"
+                                 "capa.flags=0x%llx\n"
                                  "capa.max_scan_ssids=%d\n"
                                  "capa.max_sched_scan_ssids=%d\n"
                                  "capa.sched_scan_supported=%d\n"
@@ -12176,7 +12179,7 @@ static int wpa_driver_nl80211_status(void *priv, char *buf, size_t buflen)
                                  drv->capa.key_mgmt,
                                  drv->capa.enc,
                                  drv->capa.auth,
-                                 drv->capa.flags,
+                                 (unsigned long long) drv->capa.flags,
                                  drv->capa.max_scan_ssids,
                                  drv->capa.max_sched_scan_ssids,
                                  drv->capa.sched_scan_supported,
index 1b3a757..50aa520 100644 (file)
@@ -1568,8 +1568,9 @@ static int wpa_driver_wext_get_range(void *priv)
                drv->capa.max_scan_ssids = 1;
 
                wpa_printf(MSG_DEBUG, "  capabilities: key_mgmt 0x%x enc 0x%x "
-                          "flags 0x%x",
-                          drv->capa.key_mgmt, drv->capa.enc, drv->capa.flags);
+                          "flags 0x%llx",
+                          drv->capa.key_mgmt, drv->capa.enc,
+                          (unsigned long long) drv->capa.flags);
        } else {
                wpa_printf(MSG_DEBUG, "SIOCGIWRANGE: too old (short) data - "
                           "assuming WPA is not supported");
index f968c96..a3c0ae1 100644 (file)
@@ -571,7 +571,7 @@ struct wpa_supplicant {
        int scan_id[MAX_SCAN_ID];
        unsigned int scan_id_count;
 
-       unsigned int drv_flags;
+       u64 drv_flags;
        unsigned int drv_enc;
 
        /*