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 1244c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidtstruct measurement_pilot { 1344c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 measurement_pilot; 14f940fbdc849eba19de7b63a74ced85e550bf4572Dmitry Shmidt u8 subelem_len; 15f940fbdc849eba19de7b63a74ced85e550bf4572Dmitry Shmidt u8 subelems[255]; 1644c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt}; 1744c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt 1844c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidtstruct multiple_bssid { 1944c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 max_bssid_indicator; 20f940fbdc849eba19de7b63a74ced85e550bf4572Dmitry Shmidt u8 subelem_len; 21f940fbdc849eba19de7b63a74ced85e550bf4572Dmitry Shmidt u8 subelems[255]; 2244c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt}; 2344c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt 2444c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidtstruct neighbor_report { 2544c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 bssid[ETH_ALEN]; 26fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt u32 bssid_info; 2744c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 regulatory_class; 2844c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 channel_number; 2944c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 phy_type; 30fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt u8 preference; /* valid if preference_present=1 */ 31fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt u16 tsf_offset; /* valid if tsf_present=1 */ 32fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt u16 beacon_int; /* valid if tsf_present=1 */ 33fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt char country[2]; /* valid if country_present=1 */ 34fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt u8 rm_capab[5]; /* valid if rm_capab_present=1 */ 35fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt u16 bearing; /* valid if bearing_present=1 */ 36fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt u16 rel_height; /* valid if bearing_present=1 */ 37fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt u32 distance; /* valid if bearing_present=1 */ 38fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt u64 bss_term_tsf; /* valid if bss_term_present=1 */ 39fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt u16 bss_term_dur; /* valid if bss_term_present=1 */ 40fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt unsigned int preference_present:1; 41fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt unsigned int tsf_present:1; 42fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt unsigned int country_present:1; 43fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt unsigned int rm_capab_present:1; 44fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt unsigned int bearing_present:1; 45fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt unsigned int bss_term_present:1; 4644c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt struct measurement_pilot *meas_pilot; 4744c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt struct multiple_bssid *mul_bssid; 48fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt int freq; 4944c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt}; 5044c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt 5144c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt 5261d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidtint ieee802_11_send_wnmsleep_req(struct wpa_supplicant *wpa_s, 53a54fa5fb807eaeff45464139b5a7759f060cec68Dmitry Shmidt u8 action, u16 intval, struct wpabuf *tfs_req); 5461d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt 5561d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidtvoid ieee802_11_rx_wnm_action(struct wpa_supplicant *wpa_s, 56fb79edc9df1f20461e90e478363d207348213d35Dmitry Shmidt const struct ieee80211_mgmt *mgmt, size_t len); 5761d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt 5844c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidtint wnm_send_bss_transition_mgmt_query(struct wpa_supplicant *wpa_s, 5944c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt u8 query_reason); 6044c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidtvoid wnm_deallocate_memory(struct wpa_supplicant *wpa_s); 6144c957860ca714a86357591f39aff0bfa904c743Dmitry Shmidt 62fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt 63fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt#ifdef CONFIG_WNM 64fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt 65fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidtint wnm_scan_process(struct wpa_supplicant *wpa_s, int reply_on_fail); 66fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt 67fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt#else /* CONFIG_WNM */ 68fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt 69fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidtstatic inline int wnm_scan_process(struct wpa_supplicant *wpa_s, 70fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt int reply_on_fail) 71fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt{ 72fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt return 0; 73fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt} 74fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt 75fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt#endif /* CONFIG_WNM */ 76fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt 7761d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt#endif /* WNM_STA_H */ 78