From 24bd4e0be56ef0371a71f4749808a44b3aeffe16 Mon Sep 17 00:00:00 2001 From: Bob Copeland Date: Mon, 1 Sep 2014 00:23:23 -0400 Subject: [PATCH] nl80211: Add driver flag to indicate mesh support Convert the driver flags variable to u64 since there was no room for more flags. Signed-off-by: Javier Lopez Signed-off-by: Javier Cardona Signed-off-by: Jason Mobarak Signed-off-by: Bob Copeland --- src/drivers/driver.h | 4 +++- src/drivers/driver_nl80211.c | 7 +++++-- src/drivers/driver_wext.c | 5 +++-- wpa_supplicant/wpa_supplicant_i.h | 2 +- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/drivers/driver.h b/src/drivers/driver.h index 36f6f69ce..2a4adf4f8 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -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; diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index fe1dc7f27..e055bebe1 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -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, diff --git a/src/drivers/driver_wext.c b/src/drivers/driver_wext.c index 1b3a757b1..50aa52081 100644 --- a/src/drivers/driver_wext.c +++ b/src/drivers/driver_wext.c @@ -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"); diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h index f968c96c5..a3c0ae1ee 100644 --- a/wpa_supplicant/wpa_supplicant_i.h +++ b/wpa_supplicant/wpa_supplicant_i.h @@ -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; /*