mirror of
https://github.com/nxp-imx/mwifiex.git
synced 2024-11-15 03:25:35 +00:00
e057e875ba
New Additions/Removals/Improvements: ------------------------------------ 1. WSW-18868: Improve FW download time after suspend/resume cycle 2. WSFD-484: WIFI 6E support 3. WSW-17954: Enable turbo mode command for mlanutl 4. WSW-19363: Add debug prints to WLAN driver regarding WPA_supplicant 5. WSW-19307: Support robust btc related commands [0x00e0] in mlanutl 6. WSW-16429: Disabling of WEP/TKIP on all V16 devices 7. Use CFG80211_VERSION_CODE to control cfg80211 related code 8. Enabled these new commands for mlanutl: min_ba_threshold, stop_su and ed_mac_ctrl_v3 9. WSFD-386: FW and VHAL Implementation for WOWLAN by adding code for MDNS wakeup Driver Bug Fixes: ----------------- 1. WSW-18708: Setting domain info fails for W8801 Murata M.2 Module (2DS) 2. WSW-18541: Debug logs not seen if drvdbg is part of wifi_mod_para.conf 3. WSW-19136: Command 0x107 timeout is seen radomly during connect-disconnect test 4. WSW-18865: VHT80 TCP-tx throughput only run about 170Mbps, both STA and MMH mode 5. WSW-17923: 4K Video Stoppage Issue, Wi-Fi throughput drops to lower than 20Mbps without recovery 6. WSW-17925: NO_IR flags are not cleared for ch 12,13 and 14 if country is changed to JP in runtime 7. WCSWREL-251: There is "mlan0: Failed to initialize driver interface" during stress load/unload testing 8. WSW-18431: UAP beacon (in 1x1 mode) not reporting correct values for tx_highest_rate and rx_highest_rate in VhtCap IE 9. WSW-18116: TCP Keep alive packets are not seen after starting cloud keep alive 10. WSW-18690: STAUT is advertising support of MCS-0 to 9 only in HE-IE in Probe Request 11. WCSWREL-266: Fix L5.16 build errors and warnings Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
205 lines
7.5 KiB
C
205 lines
7.5 KiB
C
/** @file mlan_11h.h
|
|
*
|
|
* @brief This header file contains data structures and
|
|
* function declarations of 802.11h
|
|
*
|
|
*
|
|
* Copyright 2008-2021 NXP
|
|
*
|
|
* This software file (the File) is distributed by NXP
|
|
* under the terms of the GNU General Public License Version 2, June 1991
|
|
* (the License). You may use, redistribute and/or modify the File in
|
|
* accordance with the terms and conditions of the License, a copy of which
|
|
* is available by writing to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the
|
|
* worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
|
|
*
|
|
* THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
|
|
* ARE EXPRESSLY DISCLAIMED. The License provides additional details about
|
|
* this warranty disclaimer.
|
|
*
|
|
*/
|
|
|
|
/*************************************************************
|
|
Change Log:
|
|
03/26/2009: initial creation
|
|
*************************************************************/
|
|
|
|
#ifndef _MLAN_11H_
|
|
#define _MLAN_11H_
|
|
|
|
/** 11H OID bitmasks */
|
|
#define ENABLE_11H_MASK MBIT(0)
|
|
#define MASTER_RADAR_DET_MASK MBIT(1)
|
|
#define SLAVE_RADAR_DET_MASK MBIT(2)
|
|
|
|
/** DFS Master Radar Detect global enable */
|
|
#define DFS_MASTER_RADAR_DETECT_EN (MTRUE)
|
|
/** DFS Slave Radar Detect global enable */
|
|
#define DFS_SLAVE_RADAR_DETECT_EN (MFALSE)
|
|
|
|
#define CHANNEL_OFFSET_MASK 0x30
|
|
#define CHANNEL_BANDWIDTH_MASK 0x0C
|
|
|
|
/**
|
|
* 11H APIs
|
|
*/
|
|
|
|
/* Is master radar detection enabled in firmware? */
|
|
extern t_bool wlan_11h_is_master_radar_det_active(mlan_private *priv);
|
|
|
|
/** Configure master radar detection.
|
|
* Need call wlan_11h_check_update_radar_det_state() after.
|
|
*/
|
|
extern mlan_status wlan_11h_config_master_radar_det(mlan_private *priv,
|
|
t_bool enable);
|
|
|
|
/** Configure slave radar detection.
|
|
* Need call wlan_11h_check_update_radar_det_state() after.
|
|
*/
|
|
extern mlan_status wlan_11h_config_slave_radar_det(mlan_private *priv,
|
|
t_bool enable);
|
|
|
|
/** Checks all interfaces and updates radar detect flags if necessary */
|
|
extern mlan_status wlan_11h_check_update_radar_det_state(mlan_private *pmpriv);
|
|
|
|
/** Return 1 if 11h is active in the firmware, 0 if it is inactive */
|
|
extern t_bool wlan_11h_is_active(mlan_private *priv);
|
|
|
|
/** Enable the tx interface and record the new transmit state */
|
|
extern void wlan_11h_tx_enable(mlan_private *priv);
|
|
|
|
/** Disable the tx interface and record the new transmit state */
|
|
extern void wlan_11h_tx_disable(mlan_private *priv);
|
|
|
|
/** Activate 11h extensions in the firmware */
|
|
extern mlan_status wlan_11h_activate(mlan_private *priv, t_void *pioctl_buf,
|
|
t_bool flag);
|
|
|
|
/** Initialize the 11h device structure */
|
|
extern void wlan_11h_init(mlan_adapter *pmadapter);
|
|
|
|
/** Cleanup for the 11h device structure */
|
|
extern void wlan_11h_cleanup(mlan_adapter *pmadapter);
|
|
|
|
/** Initialize the 11h interface structure */
|
|
extern void wlan_11h_priv_init(mlan_private *pmpriv);
|
|
|
|
/** Get an initial random channel to start an adhoc network on */
|
|
extern t_u8 wlan_11h_get_adhoc_start_channel(mlan_private *priv);
|
|
|
|
/** Get channel that has been closed via Channel Switch Announcement */
|
|
extern t_u8 wlan_11h_get_csa_closed_channel(mlan_private *priv);
|
|
|
|
/** Check if radar detection is required on the specified channel */
|
|
extern t_bool wlan_11h_radar_detect_required(mlan_private *priv, t_u8 channel);
|
|
|
|
/** Perform a standard availibility check on the specified channel */
|
|
extern t_s32 wlan_11h_issue_radar_detect(mlan_private *priv,
|
|
pmlan_ioctl_req pioctl_req,
|
|
t_u8 channel, Band_Config_t bandcfg);
|
|
|
|
/** Check previously issued radar report for a channel */
|
|
extern mlan_status wlan_11h_check_chan_report(mlan_private *priv, t_u8 chan);
|
|
|
|
/** Add any 11h TLVs necessary to complete an adhoc start command */
|
|
extern t_s32 wlan_11h_process_start(mlan_private *priv, t_u8 **ppbuffer,
|
|
IEEEtypes_CapInfo_t *pcap_info,
|
|
t_u32 channel,
|
|
wlan_11h_bss_info_t *p11h_bss_info);
|
|
|
|
/** Add any 11h TLVs necessary to complete a join command (adhoc or infra) */
|
|
extern t_s32 wlan_11h_process_join(mlan_private *priv, t_u8 **ppbuffer,
|
|
IEEEtypes_CapInfo_t *pcap_info, t_u16 band,
|
|
t_u32 channel,
|
|
wlan_11h_bss_info_t *p11h_bss_info);
|
|
|
|
/** Complete the firmware command preparation for an 11h command function */
|
|
extern mlan_status wlan_11h_cmd_process(mlan_private *priv,
|
|
HostCmd_DS_COMMAND *pcmd_ptr,
|
|
const t_void *pinfo_buf);
|
|
|
|
/** Process the response of an 11h firmware command */
|
|
extern mlan_status wlan_11h_cmdresp_process(mlan_private *priv,
|
|
const HostCmd_DS_COMMAND *resp);
|
|
|
|
/** Receive IEs from scan processing and record any needed info for 11h */
|
|
extern mlan_status wlan_11h_process_bss_elem(mlan_adapter *pmadapter,
|
|
wlan_11h_bss_info_t *p11h_bss_info,
|
|
const t_u8 *pelement);
|
|
|
|
/** Handler for EVENT_CHANNEL_SWITCH_ANN */
|
|
extern mlan_status wlan_11h_handle_event_chanswann(mlan_private *priv);
|
|
|
|
/** Handler for EVENT_CHANNEL_REPORT_RDY */
|
|
extern mlan_status wlan_11h_handle_event_chanrpt_ready(mlan_private *priv,
|
|
mlan_event *pevent,
|
|
t_u8 *radar_chan);
|
|
|
|
/** Debug output for EVENT_RADAR_DETECTED */
|
|
mlan_status wlan_11h_print_event_radar_detected(mlan_private *priv,
|
|
mlan_event *pevent,
|
|
t_u8 *radar_chan);
|
|
|
|
t_s32 wlan_11h_cancel_radar_detect(mlan_private *priv);
|
|
/** Handler for DFS_TESTING IOCTL */
|
|
extern mlan_status wlan_11h_ioctl_dfs_testing(pmlan_adapter pmadapter,
|
|
pmlan_ioctl_req pioctl_req);
|
|
extern mlan_status wlan_11h_ioctl_channel_nop_info(pmlan_adapter pmadapter,
|
|
pmlan_ioctl_req pioctl_req);
|
|
|
|
extern mlan_status wlan_11h_ioctl_dfs_chan_report(mlan_private *priv,
|
|
pmlan_ioctl_req pioctl_req);
|
|
extern mlan_status wlan_11h_ioctl_chan_switch_count(pmlan_adapter pmadapter,
|
|
pmlan_ioctl_req pioctl_req);
|
|
|
|
/** get/set channel dfs state */
|
|
mlan_status wlan_11h_ioctl_chan_dfs_state(pmlan_adapter pmadapter,
|
|
pmlan_ioctl_req pioctl_req);
|
|
|
|
/** get/set dfs w53 cfg */
|
|
mlan_status wlan_11h_ioctl_dfs_w53_cfg(pmlan_adapter pmadapter,
|
|
pmlan_ioctl_req pioctl_req);
|
|
|
|
/** Check if channel is under a NOP duration (should not be used) */
|
|
extern t_bool wlan_11h_is_channel_under_nop(mlan_adapter *pmadapter,
|
|
t_u8 channel);
|
|
|
|
/** Check if RADAR_DETECTED handling is blocking data tx */
|
|
extern t_bool wlan_11h_radar_detected_tx_blocked(mlan_adapter *pmadapter);
|
|
|
|
/** Callback for RADAR_DETECTED (for UAP cmdresp) */
|
|
extern mlan_status wlan_11h_radar_detected_callback(t_void *priv);
|
|
/** set dfs check channel */
|
|
void wlan_11h_set_dfs_check_chan(mlan_private *priv, t_u8 chan);
|
|
|
|
#ifdef UAP_SUPPORT
|
|
/** BW_change event Handler for dfs_repeater */
|
|
void wlan_dfs_rep_bw_change(mlan_adapter *pmadapter);
|
|
|
|
/** disconnect event Handler for dfs_repeater */
|
|
void wlan_dfs_rep_disconnect(mlan_adapter *pmadapter);
|
|
#endif
|
|
|
|
/** Handler for RADAR_DETECTED */
|
|
extern mlan_status wlan_11h_radar_detected_handling(mlan_adapter *pmadapter,
|
|
mlan_private *priv);
|
|
|
|
mlan_status wlan_11h_remove_custom_ie(mlan_adapter *pmadapter,
|
|
mlan_private *pmpriv);
|
|
|
|
/** DFS Event pre-processing */
|
|
extern mlan_status wlan_11h_dfs_event_preprocessing(mlan_adapter *pmadapter);
|
|
|
|
/** DFS switch to non-DFS channel */
|
|
extern mlan_status wlan_11h_switch_non_dfs_chan(mlan_private *priv, t_u8 *chan);
|
|
|
|
extern void wlan_11h_update_bandcfg(mlan_private *pmpriv,
|
|
Band_Config_t *uap_band_cfg,
|
|
t_u8 new_channel);
|
|
|
|
/** function checks if interface is active. **/
|
|
extern t_bool wlan_is_intf_active(mlan_private *pmpriv);
|
|
|
|
#endif /*_MLAN_11H_ */
|