|
|
|
@ -1651,6 +1651,7 @@ enum wpa_event_type {
|
|
|
|
|
* sending either of these frames to the current AP. If the driver
|
|
|
|
|
* supports separate deauthentication event, EVENT_DISASSOC should only
|
|
|
|
|
* be used for disassociation and EVENT_DEAUTH for deauthentication.
|
|
|
|
|
* In AP mode, union wpa_event_data::disassoc_info is required.
|
|
|
|
|
*/
|
|
|
|
|
EVENT_DISASSOC,
|
|
|
|
|
|
|
|
|
@ -1778,6 +1779,7 @@ enum wpa_event_type {
|
|
|
|
|
* This event should be called when authentication is lost either due
|
|
|
|
|
* to receiving deauthenticate frame from the AP or when sending that
|
|
|
|
|
* frame to the current AP.
|
|
|
|
|
* In AP mode, union wpa_event_data::deauth_info is required.
|
|
|
|
|
*/
|
|
|
|
|
EVENT_DEAUTH,
|
|
|
|
|
|
|
|
|
@ -1920,7 +1922,7 @@ union wpa_event_data {
|
|
|
|
|
* This should start with the first IE (fixed fields before IEs
|
|
|
|
|
* are not included).
|
|
|
|
|
*/
|
|
|
|
|
u8 *req_ies;
|
|
|
|
|
const u8 *req_ies;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* req_ies_len - Length of req_ies in bytes
|
|
|
|
@ -1938,7 +1940,7 @@ union wpa_event_data {
|
|
|
|
|
* This should start with the first IE (fixed fields before IEs
|
|
|
|
|
* are not included).
|
|
|
|
|
*/
|
|
|
|
|
u8 *resp_ies;
|
|
|
|
|
const u8 *resp_ies;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* resp_ies_len - Length of resp_ies in bytes
|
|
|
|
@ -1961,7 +1963,7 @@ union wpa_event_data {
|
|
|
|
|
* This should start with the first IE (fixed fields before IEs
|
|
|
|
|
* are not included).
|
|
|
|
|
*/
|
|
|
|
|
u8 *beacon_ies;
|
|
|
|
|
const u8 *beacon_ies;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* beacon_ies_len - Length of beacon_ies */
|
|
|
|
@ -1971,8 +1973,33 @@ union wpa_event_data {
|
|
|
|
|
* freq - Frequency of the operational channel in MHz
|
|
|
|
|
*/
|
|
|
|
|
unsigned int freq;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* addr - Station address (for AP mode)
|
|
|
|
|
*/
|
|
|
|
|
const u8 *addr;
|
|
|
|
|
} assoc_info;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* struct disassoc_info - Data for EVENT_DISASSOC events
|
|
|
|
|
*/
|
|
|
|
|
struct disassoc_info {
|
|
|
|
|
/**
|
|
|
|
|
* addr - Station address (for AP mode)
|
|
|
|
|
*/
|
|
|
|
|
const u8 *addr;
|
|
|
|
|
} disassoc_info;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* struct deauth_info - Data for EVENT_DEAUTH events
|
|
|
|
|
*/
|
|
|
|
|
struct deauth_info {
|
|
|
|
|
/**
|
|
|
|
|
* addr - Station address (for AP mode)
|
|
|
|
|
*/
|
|
|
|
|
const u8 *addr;
|
|
|
|
|
} deauth_info;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* struct michael_mic_failure - Data for EVENT_MICHAEL_MIC_FAILURE
|
|
|
|
|
*/
|
|
|
|
@ -2253,10 +2280,29 @@ int wpa_scan_get_max_rate(const struct wpa_scan_res *res);
|
|
|
|
|
void wpa_scan_results_free(struct wpa_scan_results *res);
|
|
|
|
|
void wpa_scan_sort_results(struct wpa_scan_results *res);
|
|
|
|
|
|
|
|
|
|
/* hostapd functions for driver wrappers */
|
|
|
|
|
|
|
|
|
|
int hostapd_notif_assoc(struct hostapd_data *hapd, const u8 *addr,
|
|
|
|
|
const u8 *ie, size_t ielen);
|
|
|
|
|
void hostapd_notif_disassoc(struct hostapd_data *hapd, const u8 *addr);
|
|
|
|
|
/*
|
|
|
|
|
* The following inline functions are provided for convenience to simplify
|
|
|
|
|
* event indication for some of the common events.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
static inline void drv_event_assoc(void *ctx, const u8 *addr, const u8 *ie,
|
|
|
|
|
size_t ielen)
|
|
|
|
|
{
|
|
|
|
|
union wpa_event_data event;
|
|
|
|
|
os_memset(&event, 0, sizeof(event));
|
|
|
|
|
event.assoc_info.req_ies = ie;
|
|
|
|
|
event.assoc_info.req_ies_len = ielen;
|
|
|
|
|
event.assoc_info.addr = addr;
|
|
|
|
|
wpa_supplicant_event(ctx, EVENT_ASSOC, &event);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static inline void drv_event_disassoc(void *ctx, const u8 *addr)
|
|
|
|
|
{
|
|
|
|
|
union wpa_event_data event;
|
|
|
|
|
os_memset(&event, 0, sizeof(event));
|
|
|
|
|
event.disassoc_info.addr = addr;
|
|
|
|
|
wpa_supplicant_event(ctx, EVENT_DISASSOC, &event);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif /* DRIVER_H */
|
|
|
|
|