00001
00016 #ifndef WPA_SUPPLICANT_H
00017 #define WPA_SUPPLICANT_H
00018
00019
00020
00021
00022 struct wpa_supplicant;
00023
00027 typedef enum wpa_event_type {
00041 EVENT_ASSOC,
00042
00051 EVENT_DISASSOC,
00052
00063 EVENT_MICHAEL_MIC_FAILURE,
00064
00079 EVENT_SCAN_RESULTS,
00080
00093 EVENT_ASSOCINFO,
00094
00105 EVENT_INTERFACE_STATUS,
00106
00132 EVENT_PMKID_CANDIDATE,
00133
00144 EVENT_STKSTART
00145 } wpa_event_type;
00146
00147
00151 union wpa_event_data {
00161 struct assoc_info {
00174 u8 *req_ies;
00175
00180 size_t req_ies_len;
00181
00194 u8 *resp_ies;
00195
00200 size_t resp_ies_len;
00201
00219 u8 *beacon_ies;
00220
00224 size_t beacon_ies_len;
00225 } assoc_info;
00226
00231 struct michael_mic_failure {
00232 int unicast;
00233 } michael_mic_failure;
00234
00239 struct interface_status {
00240 char ifname[100];
00241 enum {
00242 EVENT_INTERFACE_ADDED, EVENT_INTERFACE_REMOVED
00243 } ievent;
00244 } interface_status;
00245
00250 struct pmkid_candidate {
00252 u8 bssid[ETH_ALEN];
00254 int index;
00256 int preauth;
00257 } pmkid_candidate;
00258
00263 struct stkstart {
00264 u8 peer[ETH_ALEN];
00265 } stkstart;
00266 };
00267
00279 void wpa_supplicant_event(struct wpa_supplicant *wpa_s, wpa_event_type event,
00280 union wpa_event_data *data);
00281
00292 void wpa_supplicant_rx_eapol(void *ctx, const u8 *src_addr,
00293 const u8 *buf, size_t len);
00294
00295 #endif
00296