wnm_sta.h revision 44c957860ca714a86357591f39aff0bfa904c743
161d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt/* 261d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt * IEEE 802.11v WNM related functions and structures 361d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt * Copyright (c) 2011-2012, Qualcomm Atheros, Inc. 461d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt * 561d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt * This software may be distributed under the terms of the BSD license. 661d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt * See README for more details. 761d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt */ 861d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt 961d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt#ifndef WNM_STA_H 1061d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt#define WNM_STA_H 1161d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt 1261d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidtstruct rx_action; 1361d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidtstruct wpa_supplicant; 1461d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt 1544c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidtstruct tsf_info { 1644c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 present; 1744c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 tsf_offset[2]; 1844c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 beacon_interval[2]; 1944c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt}; 2044c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt 2144c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidtstruct condensed_country_string { 2244c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 present; 2344c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 country_string[2]; 2444c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt}; 2544c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt 2644c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidtstruct bss_transition_candidate { 2744c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 present; 2844c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 preference; 2944c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt}; 3044c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt 3144c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidtstruct bss_termination_duration { 3244c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 present; 3344c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 duration[12]; 3444c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt}; 3544c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt 3644c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidtstruct bearing { 3744c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 present; 3844c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 bearing[8]; 3944c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt}; 4044c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt 4144c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidtstruct measurement_pilot { 4244c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 present; 4344c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 measurement_pilot; 4444c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 num_vendor_specific; 4544c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 vendor_specific[255]; 4644c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt}; 4744c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt 4844c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidtstruct rrm_enabled_capabilities { 4944c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 present; 5044c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 capabilities[4]; 5144c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt}; 5244c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt 5344c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidtstruct multiple_bssid { 5444c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 present; 5544c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 max_bssid_indicator; 5644c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 num_vendor_specific; 5744c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 vendor_specific[255]; 5844c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt}; 5944c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt 6044c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidtstruct neighbor_report { 6144c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 bssid[ETH_ALEN]; 6244c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 bssid_information[4]; 6344c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 regulatory_class; 6444c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 channel_number; 6544c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 phy_type; 6644c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt struct tsf_info *tsf_info; 6744c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt struct condensed_country_string *con_coun_str; 6844c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt struct bss_transition_candidate *bss_tran_can; 6944c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt struct bss_termination_duration *bss_term_dur; 7044c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt struct bearing *bearing; 7144c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt struct measurement_pilot *meas_pilot; 7244c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt struct rrm_enabled_capabilities *rrm_cap; 7344c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt struct multiple_bssid *mul_bssid; 7444c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt}; 7544c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt 7644c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt 7761d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidtint ieee802_11_send_wnmsleep_req(struct wpa_supplicant *wpa_s, 78a54fa5fb807eaeff45464139b5a7759f060cec68Dmitry Shmidt u8 action, u16 intval, struct wpabuf *tfs_req); 7961d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt 8061d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidtvoid ieee802_11_rx_wnm_action(struct wpa_supplicant *wpa_s, 8161d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt struct rx_action *action); 8261d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt 8344c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidtvoid wnm_scan_response(struct wpa_supplicant *wpa_s, 8444c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt struct wpa_scan_results *scan_res); 8544c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt 8644c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidtint wnm_send_bss_transition_mgmt_query(struct wpa_supplicant *wpa_s, 8744c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 query_reason); 8844c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidtvoid wnm_deallocate_memory(struct wpa_supplicant *wpa_s); 8944c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt 9061d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt#endif /* WNM_STA_H */ 91