mesh: Implement mesh scanning

When mesh is configured in, include the wildcard mesh id so that mesh
networks are returned.

Signed-off-by: Javier Lopez <jlopex@gmail.com>
Signed-off-by: Jason Abele <jason.abele@gmail.com>
This commit is contained in:
Jason Abele 2014-09-01 00:23:32 -04:00 committed by Jouni Malinen
parent d73b3f2ea0
commit fbca4c893d
3 changed files with 23 additions and 0 deletions

View file

@ -257,6 +257,19 @@ void wpa_mesh_notify_peer(struct wpa_supplicant *wpa_s, const u8 *addr,
} }
void wpa_supplicant_mesh_add_scan_ie(struct wpa_supplicant *wpa_s,
struct wpabuf **extra_ie)
{
/* EID + 0-length (wildcard) mesh-id */
size_t ielen = 2;
if (wpabuf_resize(extra_ie, ielen) == 0) {
wpabuf_put_u8(*extra_ie, WLAN_EID_MESH_ID);
wpabuf_put_u8(*extra_ie, 0);
}
}
int wpa_supplicant_join_mesh(struct wpa_supplicant *wpa_s, int wpa_supplicant_join_mesh(struct wpa_supplicant *wpa_s,
struct wpa_ssid *ssid) struct wpa_ssid *ssid)
{ {

View file

@ -19,6 +19,8 @@ void wpa_supplicant_mesh_iface_deinit(struct wpa_supplicant *wpa_s,
void wpa_mesh_notify_peer(struct wpa_supplicant *wpa_s, const u8 *addr, void wpa_mesh_notify_peer(struct wpa_supplicant *wpa_s, const u8 *addr,
const u8 *ies, size_t ie_len); const u8 *ies, size_t ie_len);
void wpa_supplicant_mesh_add_scan_ie(struct wpa_supplicant *wpa_s,
struct wpabuf **extra_ie);
#else /* CONFIG_MESH */ #else /* CONFIG_MESH */
@ -28,6 +30,11 @@ static inline void wpa_mesh_notify_peer(struct wpa_supplicant *wpa_s,
{ {
} }
static inline void wpa_supplicant_mesh_add_scan_ie(struct wpa_supplicant *wpa_s,
struct wpabuf **extra_ie)
{
}
#endif /* CONFIG_MESH */ #endif /* CONFIG_MESH */
#endif /* MESH_H */ #endif /* MESH_H */

View file

@ -22,6 +22,7 @@
#include "notify.h" #include "notify.h"
#include "bss.h" #include "bss.h"
#include "scan.h" #include "scan.h"
#include "mesh.h"
static void wpa_supplicant_gen_assoc_event(struct wpa_supplicant *wpa_s) static void wpa_supplicant_gen_assoc_event(struct wpa_supplicant *wpa_s)
@ -460,6 +461,8 @@ static struct wpabuf * wpa_supplicant_extra_ies(struct wpa_supplicant *wpa_s)
} }
#endif /* CONFIG_P2P */ #endif /* CONFIG_P2P */
wpa_supplicant_mesh_add_scan_ie(wpa_s, &extra_ie);
#endif /* CONFIG_WPS */ #endif /* CONFIG_WPS */
#ifdef CONFIG_HS20 #ifdef CONFIG_HS20