1 /* 2 * IEEE 802.11v WNM related functions and structures 3 * Copyright (c) 2011-2012, Qualcomm Atheros, Inc. 4 * 5 * This software may be distributed under the terms of the BSD license. 6 * See README for more details. 7 */ 8 9 #ifndef WNM_STA_H 10 #define WNM_STA_H 11 12 struct tsf_info { 13 u8 present; 14 u8 tsf_offset[2]; 15 u8 beacon_interval[2]; 16 }; 17 18 struct condensed_country_string { 19 u8 present; 20 u8 country_string[2]; 21 }; 22 23 struct bss_transition_candidate { 24 u8 present; 25 u8 preference; 26 }; 27 28 struct bss_termination_duration { 29 u8 present; 30 u8 duration[12]; 31 }; 32 33 struct bearing { 34 u8 present; 35 u8 bearing[8]; 36 }; 37 38 struct measurement_pilot { 39 u8 present; 40 u8 measurement_pilot; 41 u8 num_vendor_specific; 42 u8 vendor_specific[255]; 43 }; 44 45 struct rrm_enabled_capabilities { 46 u8 present; 47 u8 capabilities[4]; 48 }; 49 50 struct multiple_bssid { 51 u8 present; 52 u8 max_bssid_indicator; 53 u8 num_vendor_specific; 54 u8 vendor_specific[255]; 55 }; 56 57 struct neighbor_report { 58 u8 bssid[ETH_ALEN]; 59 u8 bssid_information[4]; 60 u8 regulatory_class; 61 u8 channel_number; 62 u8 phy_type; 63 struct tsf_info *tsf_info; 64 struct condensed_country_string *con_coun_str; 65 struct bss_transition_candidate *bss_tran_can; 66 struct bss_termination_duration *bss_term_dur; 67 struct bearing *bearing; 68 struct measurement_pilot *meas_pilot; 69 struct rrm_enabled_capabilities *rrm_cap; 70 struct multiple_bssid *mul_bssid; 71 }; 72 73 74 int ieee802_11_send_wnmsleep_req(struct wpa_supplicant *wpa_s, 75 u8 action, u16 intval, struct wpabuf *tfs_req); 76 77 void ieee802_11_rx_wnm_action(struct wpa_supplicant *wpa_s, 78 const struct ieee80211_mgmt *mgmt, size_t len); 79 80 void wnm_scan_response(struct wpa_supplicant *wpa_s, 81 struct wpa_scan_results *scan_res); 82 83 int wnm_send_bss_transition_mgmt_query(struct wpa_supplicant *wpa_s, 84 u8 query_reason); 85 void wnm_deallocate_memory(struct wpa_supplicant *wpa_s); 86 87 #endif /* WNM_STA_H */ 88