mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-27 18:32:54 +00:00
wpa_supplicant: Add initial roaming support
This commit adds different features from 802.11k and 802.11v specifications to make the device ready for network assisted roaming. It also adds initial framework for device to detect whether it needs to move to a better AP. Followings are added as part of this. 1. Support for sending neighbor report request and provide the report back to the APP. 2. Support for beacon measurement report. 3. Support for link measurement report. 4. Support for sending bss transition management query frame (triggered by the APP). 5. Support for bss transition management request and move to the candidate based on that. 6. Sending the bss transition management response.
This commit is contained in:
42
components/wpa_supplicant/src/common/ieee802_11_common.h
Normal file
42
components/wpa_supplicant/src/common/ieee802_11_common.h
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* IEEE 802.11 Common routines
|
||||
* Copyright (c) 2002-2019, Jouni Malinen <j@w1.fi>
|
||||
*
|
||||
* This software may be distributed under the terms of the BSD license.
|
||||
* See README for more details.
|
||||
*/
|
||||
|
||||
#ifndef IEEE802_11_COMMON_H
|
||||
#define IEEE802_11_COMMON_H
|
||||
|
||||
#include "defs.h"
|
||||
#include "ieee802_11_defs.h"
|
||||
|
||||
struct element {
|
||||
u8 id;
|
||||
u8 datalen;
|
||||
u8 data[];
|
||||
} STRUCT_PACKED;
|
||||
|
||||
/* element iteration helpers */
|
||||
#define for_each_element(_elem, _data, _datalen) \
|
||||
for (_elem = (const struct element *) (_data); \
|
||||
(const u8 *) (_data) + (_datalen) - (const u8 *) _elem >= \
|
||||
(int) sizeof(*_elem) && \
|
||||
(const u8 *) (_data) + (_datalen) - (const u8 *) _elem >= \
|
||||
(int) sizeof(*_elem) + _elem->datalen; \
|
||||
_elem = (const struct element *) (_elem->data + _elem->datalen))
|
||||
|
||||
#define for_each_element_id(element, _id, data, datalen) \
|
||||
for_each_element(element, data, datalen) \
|
||||
if (element->id == (_id))
|
||||
|
||||
struct wpa_supplicant;
|
||||
|
||||
int ieee802_11_parse_candidate_list(const char *pos, u8 *nei_rep,
|
||||
size_t nei_rep_len);
|
||||
const u8 * get_ie(const u8 *ies, size_t len, u8 eid);
|
||||
int ieee802_11_parse_elems(struct wpa_supplicant *wpa_s, const u8 *start, size_t len);
|
||||
int ieee802_11_ext_capab(const u8 *ie, unsigned int capab);
|
||||
u8 get_operating_class(u8 chan, int sec_channel);
|
||||
#endif /* IEEE802_11_COMMON_H */
|
Reference in New Issue
Block a user