1*03f9172cSAndroid Build Coastguard Worker /* 2*03f9172cSAndroid Build Coastguard Worker * hostapd / Radio Measurement (RRM) 3*03f9172cSAndroid Build Coastguard Worker * Copyright(c) 2013 - 2016 Intel Mobile Communications GmbH. 4*03f9172cSAndroid Build Coastguard Worker * Copyright(c) 2011 - 2016 Intel Corporation. All rights reserved. 5*03f9172cSAndroid Build Coastguard Worker * 6*03f9172cSAndroid Build Coastguard Worker * This software may be distributed under the terms of the BSD license. 7*03f9172cSAndroid Build Coastguard Worker * See README for more details. 8*03f9172cSAndroid Build Coastguard Worker */ 9*03f9172cSAndroid Build Coastguard Worker 10*03f9172cSAndroid Build Coastguard Worker #ifndef RRM_H 11*03f9172cSAndroid Build Coastguard Worker #define RRM_H 12*03f9172cSAndroid Build Coastguard Worker 13*03f9172cSAndroid Build Coastguard Worker /* 14*03f9172cSAndroid Build Coastguard Worker * Max measure request length is 255, -6 of the body we have 249 for the 15*03f9172cSAndroid Build Coastguard Worker * neighbor report elements. Each neighbor report element is at least 2 + 13 16*03f9172cSAndroid Build Coastguard Worker * bytes, so we can't have more than 16 responders in the request. 17*03f9172cSAndroid Build Coastguard Worker */ 18*03f9172cSAndroid Build Coastguard Worker #define RRM_RANGE_REQ_MAX_RESPONDERS 16 19*03f9172cSAndroid Build Coastguard Worker 20*03f9172cSAndroid Build Coastguard Worker void hostapd_handle_radio_measurement(struct hostapd_data *hapd, 21*03f9172cSAndroid Build Coastguard Worker const u8 *buf, size_t len); 22*03f9172cSAndroid Build Coastguard Worker int hostapd_send_lci_req(struct hostapd_data *hapd, const u8 *addr); 23*03f9172cSAndroid Build Coastguard Worker int hostapd_send_range_req(struct hostapd_data *hapd, const u8 *addr, 24*03f9172cSAndroid Build Coastguard Worker u16 random_interval, u8 min_ap, 25*03f9172cSAndroid Build Coastguard Worker const u8 *responders, unsigned int n_responders); 26*03f9172cSAndroid Build Coastguard Worker void hostapd_clean_rrm(struct hostapd_data *hapd); 27*03f9172cSAndroid Build Coastguard Worker int hostapd_send_beacon_req(struct hostapd_data *hapd, const u8 *addr, 28*03f9172cSAndroid Build Coastguard Worker u8 req_mode, const struct wpabuf *req); 29*03f9172cSAndroid Build Coastguard Worker void hostapd_rrm_beacon_req_tx_status(struct hostapd_data *hapd, 30*03f9172cSAndroid Build Coastguard Worker const struct ieee80211_mgmt *mgmt, 31*03f9172cSAndroid Build Coastguard Worker size_t len, int ok); 32*03f9172cSAndroid Build Coastguard Worker int hostapd_send_link_measurement_req(struct hostapd_data *hapd, 33*03f9172cSAndroid Build Coastguard Worker const u8 *addr); 34*03f9172cSAndroid Build Coastguard Worker 35*03f9172cSAndroid Build Coastguard Worker #endif /* RRM_H */ 36