1 /** @file mlan_11v.h 2 * 3 * @brief Interface for the BTM module implemented in mlan_11v.c 4 * 5 * Driver interface functions and type declarations for the process BTM frame 6 * module implemented in mlan_11v.c. 7 * 8 * Copyright 2022-2024 NXP 9 * 10 * SPDX-License-Identifier: BSD-3-Clause 11 * 12 */ 13 14 /******************************************************** 15 Change log: 16 08/11/2022: initial version 17 ********************************************************/ 18 19 #ifndef _MLAN_11V_H_ 20 #define _MLAN_11V_H_ 21 22 #if CONFIG_11V 23 24 #define WLAN_WNM_MAX_NEIGHBOR_REPORT 6 25 #define MGMT_WNM_NEIGHBOR_BSS_TRANSITION_CANDIDATE 3 26 27 struct wnm_neighbor_report 28 { 29 t_u8 bssid[MLAN_MAC_ADDR_LENGTH]; 30 t_u32 bssid_info; 31 t_u8 reg_class; 32 t_u8 channel; 33 t_u8 PhyType; 34 t_u8 prefer; 35 t_u8 prefer_select; 36 }; 37 38 /* IEEE Std 802.11-2016 - Table 9-357 BTM status code definitions */ 39 enum wnm_btm_status_code 40 { 41 WNM_BTM_ACCEPT = 0, 42 WNM_BTM_REJECT_UNSPECIFIED = 1, 43 WNM_BTM_REJECT_INSUFFICIENT_BEACON_PROBE_RESP = 2, 44 WNM_BTM_REJECT_INSUFFICIENT_AVAILABLE_CAPABITY = 3, 45 WNM_BTM_REJECT_TERMINATION_UNDESIRED = 4, 46 WNM_BTM_REJECT_TERMINATION_DELAY_REQUEST = 5, 47 WNM_BTM_REJECT_STA_CANDIDATE_LIST_PROVIDED = 6, 48 WNM_BTM_REJECT_NO_SUITABLE_CANDIDATES = 7, 49 WNM_BTM_REJECT_LEAVING_ESS = 8 50 }; 51 52 /** process rx action frame */ 53 void wlan_process_mgmt_wnm_btm_req(t_u8 *pos, t_u8 *end, t_u8 *src_addr, t_u8 *dest_addr, bool protect); 54 55 /* send mgmt bss transition query frame */ 56 int wlan_send_mgmt_bss_trans_query(mlan_private *pmpriv, t_u8 query_reason); 57 58 /* send mgmt bss transition mgmt response */ 59 void wlan_send_mgmt_wnm_btm_resp(t_u8 dialog_token, 60 enum wnm_btm_status_code status, 61 t_u8 *dst_addr, 62 t_u8 *src_addr, 63 t_u8 *target_bssid, 64 t_u8 *tag_nr, 65 t_u8 tag_len, 66 bool protect); 67 #endif /* CONFIG_11V */ 68 69 #endif /* !_MLAN_11V_H_ */ 70