2020-12-05 11:42:54 +00:00
|
|
|
/** @file moal_uap.h
|
|
|
|
*
|
2022-08-31 02:00:56 +00:00
|
|
|
* @brief This file contains uap driver specific defines etc.
|
2020-12-05 11:42:54 +00:00
|
|
|
*
|
|
|
|
*
|
2022-08-31 02:00:56 +00:00
|
|
|
* Copyright 2008-2022 NXP
|
2020-12-05 11:42:54 +00:00
|
|
|
*
|
2022-08-31 02:00:56 +00:00
|
|
|
* 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.
|
2020-12-05 11:42:54 +00:00
|
|
|
*
|
2022-08-31 02:00:56 +00:00
|
|
|
* 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.
|
2020-12-05 11:42:54 +00:00
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
/********************************************************
|
|
|
|
Change log:
|
|
|
|
02/02/2009: initial version
|
|
|
|
********************************************************/
|
|
|
|
|
|
|
|
#ifndef _MOAL_UAP_H
|
|
|
|
#define _MOAL_UAP_H
|
|
|
|
|
|
|
|
/** Maximum buffer length for WOAL_UAP_SET_GET_256_CHAR */
|
|
|
|
#define MAX_BUF_LEN 256
|
|
|
|
|
|
|
|
/** Private command ID to send ioctl */
|
|
|
|
#define UAP_IOCTL_CMD (SIOCDEVPRIVATE + 2)
|
|
|
|
/** Updating ADDBA variables */
|
|
|
|
#define UAP_ADDBA_PARA 0
|
|
|
|
/** Updating priority table for AMPDU/AMSDU */
|
|
|
|
#define UAP_AGGR_PRIOTBL 1
|
|
|
|
/** Updating addbareject table */
|
|
|
|
|
|
|
|
#define UAP_ADDBA_REJECT 2
|
|
|
|
/** Get FW INFO */
|
|
|
|
#define UAP_FW_INFO 4
|
|
|
|
/** Updating Deep sleep variables */
|
|
|
|
#define UAP_DEEP_SLEEP 3
|
|
|
|
/** Tx data pause subcommand */
|
|
|
|
#define UAP_TX_DATA_PAUSE 5
|
|
|
|
#ifdef SDIO
|
|
|
|
/** sdcmd52 read write subcommand */
|
|
|
|
#define UAP_SDCMD52_RW 6
|
|
|
|
#endif
|
|
|
|
/** snmp mib subcommand */
|
|
|
|
#define UAP_SNMP_MIB 7
|
|
|
|
/** domain info subcommand */
|
|
|
|
#define UAP_DOMAIN_INFO 8
|
|
|
|
/** TX beamforming configuration */
|
|
|
|
#define UAP_TX_BF_CFG 9
|
|
|
|
/** dfs testing subcommand */
|
|
|
|
#define UAP_DFS_TESTING 10
|
|
|
|
/** sub command ID to set/get Host Sleep configuration */
|
|
|
|
#define UAP_HS_CFG 11
|
|
|
|
/** sub command ID to set/get Host Sleep Parameters */
|
|
|
|
#define UAP_HS_SET_PARA 12
|
|
|
|
|
|
|
|
/** Management Frame Control Mask */
|
|
|
|
#define UAP_MGMT_FRAME_CONTROL 13
|
|
|
|
|
|
|
|
#define UAP_TX_RATE_CFG 14
|
|
|
|
|
|
|
|
/** Subcommand ID to set/get antenna configuration */
|
|
|
|
#define UAP_ANTENNA_CFG 15
|
|
|
|
|
|
|
|
#define UAP_DFS_REPEATER_MODE 16
|
|
|
|
|
|
|
|
#define UAP_CAC_TIMER_STATUS 17
|
|
|
|
|
|
|
|
/** Skip CAC */
|
|
|
|
#define UAP_SKIP_CAC 18
|
|
|
|
|
|
|
|
#define UAP_HT_TX_CFG 19
|
|
|
|
|
|
|
|
#define UAP_VHT_CFG 20
|
|
|
|
|
|
|
|
#define UAP_HT_STREAM_CFG 21
|
|
|
|
|
|
|
|
#define UAP_OPERATION_CTRL 22
|
|
|
|
|
|
|
|
#define UAP_CHAN_SWITCH_COUNT_CFG 23
|
|
|
|
#define UAP_BAND_STEER 24
|
|
|
|
|
|
|
|
#define UAP_BEACON_STUCK_DETECT 25
|
|
|
|
|
|
|
|
/** Private command ID to Power Mode */
|
|
|
|
#define UAP_POWER_MODE (SIOCDEVPRIVATE + 3)
|
|
|
|
|
|
|
|
/** Private command id to start/stop/reset bss */
|
|
|
|
#define UAP_BSS_CTRL (SIOCDEVPRIVATE + 4)
|
|
|
|
/** BSS START */
|
|
|
|
#define UAP_BSS_START 0
|
|
|
|
/** BSS STOP */
|
|
|
|
#define UAP_BSS_STOP 1
|
|
|
|
/** BSS RESET */
|
|
|
|
#define UAP_BSS_RESET 2
|
|
|
|
|
|
|
|
/** wapi_msg */
|
|
|
|
typedef struct _wapi_msg {
|
|
|
|
/** message type */
|
|
|
|
t_u16 msg_type;
|
|
|
|
/** message len */
|
|
|
|
t_u16 msg_len;
|
|
|
|
/** message */
|
|
|
|
t_u8 msg[96];
|
|
|
|
} wapi_msg;
|
|
|
|
|
|
|
|
/* wapi key msg */
|
|
|
|
typedef struct _wapi_key_msg {
|
|
|
|
/** mac address */
|
|
|
|
t_u8 mac_addr[MLAN_MAC_ADDR_LENGTH];
|
|
|
|
/** pad */
|
|
|
|
t_u8 pad;
|
|
|
|
/** key id */
|
|
|
|
t_u8 key_id;
|
|
|
|
/** key */
|
|
|
|
t_u8 key[32];
|
|
|
|
} wapi_key_msg;
|
|
|
|
|
|
|
|
/** Private command ID to set wapi info */
|
|
|
|
#define UAP_WAPI_MSG (SIOCDEVPRIVATE + 10)
|
|
|
|
/** set wapi flag */
|
|
|
|
#define P80211_PACKET_WAPIFLAG 0x0001
|
|
|
|
/** set wapi key */
|
|
|
|
#define P80211_PACKET_SETKEY 0x0003
|
|
|
|
/** wapi mode psk */
|
|
|
|
#define WAPI_MODE_PSK 0x04
|
|
|
|
/** wapi mode certificate */
|
|
|
|
#define WAPI_MODE_CERT 0x08
|
|
|
|
|
|
|
|
typedef struct _tx_rate_cfg_t {
|
|
|
|
/** sub command */
|
|
|
|
int subcmd;
|
|
|
|
/** Action */
|
|
|
|
int action;
|
|
|
|
/** Rate format */
|
|
|
|
int rate_format;
|
|
|
|
/** Rate configured */
|
|
|
|
int rate;
|
|
|
|
/** nss */
|
|
|
|
int nss;
|
|
|
|
/** user_data_cnt */
|
|
|
|
int user_data_cnt;
|
|
|
|
/** Rate bitmap */
|
|
|
|
t_u16 bitmap_rates[MAX_BITMAP_RATES_SIZE];
|
|
|
|
/** Rate Setting */
|
|
|
|
t_u16 rate_setting;
|
|
|
|
} tx_rate_cfg_t;
|
|
|
|
|
|
|
|
/** ant_cfg structure */
|
|
|
|
typedef struct _ant_cfg_t {
|
|
|
|
/** Subcommand */
|
|
|
|
int subcmd;
|
|
|
|
/** Action */
|
|
|
|
int action;
|
|
|
|
/** TX mode configured */
|
|
|
|
int tx_mode;
|
|
|
|
/** RX mode configured */
|
|
|
|
int rx_mode;
|
|
|
|
} ant_cfg_t;
|
|
|
|
|
|
|
|
/** htstream_cfg structure */
|
|
|
|
typedef struct _htstream_cfg_t {
|
|
|
|
/** Subcommand */
|
|
|
|
int subcmd;
|
|
|
|
/** Action */
|
|
|
|
int action;
|
|
|
|
/** HT stream configuration */
|
|
|
|
t_u32 stream_cfg;
|
|
|
|
} htstream_cfg_t;
|
|
|
|
|
|
|
|
/* dfs repeater mode */
|
|
|
|
typedef struct _dfs_repeater_mode {
|
|
|
|
/** subcmd */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** set/get */
|
|
|
|
t_u32 action;
|
|
|
|
/** mode */
|
|
|
|
t_u32 mode;
|
|
|
|
} dfs_repeater_mode;
|
|
|
|
|
|
|
|
/* */
|
|
|
|
typedef struct _cac_timer_status {
|
|
|
|
/** subcmd */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** set/get */
|
|
|
|
t_u32 action;
|
|
|
|
/** mode */
|
|
|
|
t_u32 mode;
|
|
|
|
} cac_timer_status;
|
|
|
|
|
|
|
|
/** skip_cac parameters */
|
|
|
|
typedef struct _skip_cac_para {
|
|
|
|
/** subcmd */
|
|
|
|
t_u32 subcmd;
|
2022-04-19 06:46:37 +00:00
|
|
|
/** Set */
|
2020-12-05 11:42:54 +00:00
|
|
|
t_u32 action;
|
2022-04-19 06:46:37 +00:00
|
|
|
/** enable/disable skip cac*/
|
2020-12-05 11:42:54 +00:00
|
|
|
t_u16 skip_cac;
|
2022-04-19 06:46:37 +00:00
|
|
|
/** channel */
|
|
|
|
t_u8 channel;
|
2022-10-10 03:14:56 +00:00
|
|
|
/** bandwidth */
|
|
|
|
t_u8 bw;
|
2020-12-05 11:42:54 +00:00
|
|
|
} skip_cac_para;
|
|
|
|
|
|
|
|
/** radio control command */
|
|
|
|
#define UAP_RADIO_CTL (SIOCDEVPRIVATE + 5)
|
|
|
|
|
|
|
|
/** Private command ID to BSS config */
|
|
|
|
#define UAP_BSS_CONFIG (SIOCDEVPRIVATE + 6)
|
|
|
|
|
|
|
|
/** deauth station */
|
|
|
|
#define UAP_STA_DEAUTH (SIOCDEVPRIVATE + 7)
|
|
|
|
|
|
|
|
/** enable UAP report mic error */
|
|
|
|
#define UAP_REPORT_MIC_ERR (SIOCDEVPRIVATE + 8)
|
|
|
|
/** uap set key */
|
|
|
|
#define UAP_SET_KEY (SIOCDEVPRIVATE + 9)
|
|
|
|
/** encrypt key */
|
|
|
|
typedef struct _encrypt_key {
|
|
|
|
/** Key index */
|
|
|
|
t_u32 key_index;
|
|
|
|
/** Key length */
|
|
|
|
t_u32 key_len;
|
|
|
|
/** Key */
|
|
|
|
t_u8 key_material[MLAN_MAX_KEY_LENGTH];
|
|
|
|
/** mac address */
|
|
|
|
t_u8 mac_addr[MLAN_MAC_ADDR_LENGTH];
|
|
|
|
} encrypt_key;
|
|
|
|
|
|
|
|
/** pkt_header */
|
|
|
|
typedef struct _pkt_header {
|
|
|
|
/** pkt_len */
|
|
|
|
u32 pkt_len;
|
|
|
|
/** pkt_type */
|
|
|
|
u32 TxPktType;
|
|
|
|
/** tx control */
|
|
|
|
u32 TxControl;
|
|
|
|
} pkt_header;
|
|
|
|
/** uap get station list */
|
|
|
|
#define UAP_GET_STA_LIST (SIOCDEVPRIVATE + 11)
|
|
|
|
/** Packet inject command ioctl number */
|
|
|
|
#define UAPHOSTPKTINJECT WOAL_MGMT_FRAME_TX_IOCTL
|
|
|
|
|
|
|
|
/** Private command ID to set/get custom IE buffer */
|
|
|
|
#define UAP_CUSTOM_IE (SIOCDEVPRIVATE + 13)
|
|
|
|
|
|
|
|
/** HS WAKE UP event id */
|
|
|
|
#define UAP_EVENT_ID_HS_WAKEUP 0x80000001
|
|
|
|
/** HS_ACTIVATED event id */
|
|
|
|
#define UAP_EVENT_ID_DRV_HS_ACTIVATED 0x80000002
|
|
|
|
/** HS DEACTIVATED event id */
|
|
|
|
#define UAP_EVENT_ID_DRV_HS_DEACTIVATED 0x80000003
|
|
|
|
|
|
|
|
/** Host sleep flag set */
|
|
|
|
#define HS_CFG_FLAG_GET 0
|
|
|
|
/** Host sleep flag get */
|
|
|
|
#define HS_CFG_FLAG_SET 1
|
|
|
|
/** Host sleep flag for condition */
|
|
|
|
#define HS_CFG_FLAG_CONDITION 2
|
|
|
|
/** Host sleep flag for GPIO */
|
|
|
|
#define HS_CFG_FLAG_GPIO 4
|
|
|
|
/** Host sleep flag for Gap */
|
|
|
|
#define HS_CFG_FLAG_GAP 8
|
|
|
|
/** Host sleep flag for all */
|
|
|
|
#define HS_CFG_FLAG_ALL 0x0f
|
|
|
|
/** Host sleep mask to get condition */
|
|
|
|
#define HS_CFG_CONDITION_MASK 0x0f
|
|
|
|
|
|
|
|
/** ds_hs_cfg */
|
|
|
|
typedef struct _ds_hs_cfg {
|
|
|
|
/** subcmd */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** Bit0: 0 - Get, 1 Set
|
|
|
|
* Bit1: 1 - conditions is valid
|
|
|
|
* Bit2: 2 - gpio is valid
|
|
|
|
* Bit3: 3 - gap is valid
|
|
|
|
*/
|
|
|
|
t_u32 flags;
|
|
|
|
/** Host sleep config condition */
|
|
|
|
/** Bit0: non-unicast data
|
|
|
|
* Bit1: unicast data
|
|
|
|
* Bit2: mac events
|
|
|
|
* Bit3: magic packet
|
|
|
|
*/
|
|
|
|
t_u32 conditions;
|
|
|
|
/** GPIO */
|
|
|
|
t_u32 gpio;
|
|
|
|
/** Gap in milliseconds */
|
|
|
|
t_u32 gap;
|
|
|
|
} ds_hs_cfg;
|
|
|
|
|
|
|
|
/** Private command ID to get BSS type */
|
|
|
|
#define UAP_GET_BSS_TYPE (SIOCDEVPRIVATE + 15)
|
|
|
|
|
|
|
|
/** addba_param */
|
2021-04-01 03:15:14 +00:00
|
|
|
typedef struct _uap_addba_param {
|
2020-12-05 11:42:54 +00:00
|
|
|
/** subcmd */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** Set/Get */
|
|
|
|
t_u32 action;
|
|
|
|
/** block ack timeout for ADDBA request */
|
|
|
|
t_u32 timeout;
|
|
|
|
/** Buffer size for ADDBA request */
|
|
|
|
t_u32 txwinsize;
|
|
|
|
/** Buffer size for ADDBA response */
|
|
|
|
t_u32 rxwinsize;
|
|
|
|
/** amsdu for ADDBA request */
|
|
|
|
t_u8 txamsdu;
|
|
|
|
/** amsdu for ADDBA response */
|
|
|
|
t_u8 rxamsdu;
|
2021-04-01 03:15:14 +00:00
|
|
|
} uap_addba_param;
|
2020-12-05 11:42:54 +00:00
|
|
|
|
|
|
|
/** aggr_prio_tbl */
|
2021-04-01 03:15:14 +00:00
|
|
|
typedef struct _uap_aggr_prio_tbl {
|
2020-12-05 11:42:54 +00:00
|
|
|
/** subcmd */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** Set/Get */
|
|
|
|
t_u32 action;
|
|
|
|
/** ampdu priority table */
|
|
|
|
t_u8 ampdu[MAX_NUM_TID];
|
|
|
|
/** amsdu priority table */
|
|
|
|
t_u8 amsdu[MAX_NUM_TID];
|
2021-04-01 03:15:14 +00:00
|
|
|
} uap_aggr_prio_tbl;
|
2020-12-05 11:42:54 +00:00
|
|
|
|
|
|
|
/** addba_reject parameters */
|
|
|
|
typedef struct _addba_reject_para {
|
|
|
|
/** subcmd */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** Set/Get */
|
|
|
|
t_u32 action;
|
|
|
|
/** BA Reject paramters */
|
|
|
|
t_u8 addba_reject[MAX_NUM_TID];
|
|
|
|
} addba_reject_para;
|
|
|
|
|
|
|
|
/** fw_info */
|
2021-04-01 03:15:14 +00:00
|
|
|
typedef struct _uap_fw_info {
|
2020-12-05 11:42:54 +00:00
|
|
|
/** subcmd */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** Get */
|
|
|
|
t_u32 action;
|
|
|
|
/** Firmware release number */
|
|
|
|
t_u32 fw_release_number;
|
|
|
|
/** Device support for MIMO abstraction of MCSs */
|
|
|
|
t_u8 hw_dev_mcs_support;
|
|
|
|
/** fw_bands*/
|
|
|
|
t_u8 fw_bands;
|
|
|
|
/** Region Code */
|
|
|
|
t_u16 region_code;
|
|
|
|
/** 802.11n device capabilities */
|
|
|
|
t_u32 hw_dot_11n_dev_cap;
|
2021-04-01 03:15:14 +00:00
|
|
|
} uap_fw_info;
|
2020-12-05 11:42:54 +00:00
|
|
|
|
|
|
|
typedef struct _ht_tx_cfg_para_hdr {
|
|
|
|
/** Sub command */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** Action: Set/Get */
|
|
|
|
t_u32 action;
|
|
|
|
} ht_tx_cfg_para_hdr;
|
|
|
|
|
|
|
|
typedef struct _tx_bf_cfg_para_hdr {
|
|
|
|
/** Sub command */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** Action: Set/Get */
|
|
|
|
t_u32 action;
|
|
|
|
} tx_bf_cfg_para_hdr;
|
|
|
|
|
|
|
|
typedef struct _vht_cfg_para_hdr {
|
|
|
|
/** Sub command */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** Action: Set/Get */
|
|
|
|
t_u32 action;
|
|
|
|
} vht_cfg_para_hdr;
|
|
|
|
|
|
|
|
typedef struct _uap_oper_para_hdr {
|
|
|
|
/** Sub command */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** Action: Set/Get */
|
|
|
|
t_u32 action;
|
|
|
|
} uap_oper_para_hdr;
|
|
|
|
|
|
|
|
#ifdef SDIO
|
|
|
|
/** sdcmd52rw parameters */
|
|
|
|
typedef struct _sdcmd52_para {
|
|
|
|
/** subcmd */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** Write /Read */
|
|
|
|
t_u32 action;
|
|
|
|
/** Command 52 paramters */
|
|
|
|
t_u8 cmd52_params[3];
|
|
|
|
} sdcmd52_para;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/** deep_sleep parameters */
|
|
|
|
typedef struct _deep_sleep_para {
|
|
|
|
/** subcmd */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** Set/Get */
|
|
|
|
t_u32 action;
|
|
|
|
/** enable/disable deepsleep*/
|
|
|
|
t_u16 deep_sleep;
|
|
|
|
/** idle_time */
|
|
|
|
t_u16 idle_time;
|
|
|
|
} deep_sleep_para;
|
|
|
|
|
|
|
|
/** band_steering parameters */
|
|
|
|
typedef struct _band_steer_para {
|
|
|
|
/** subcmd */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** Set/Get */
|
|
|
|
t_u8 action;
|
|
|
|
/** enable/disable band steering*/
|
|
|
|
t_u8 state;
|
|
|
|
/** Probe Response will be blocked to 2G channel for first
|
|
|
|
* block_2g_prb_req probe requests*/
|
|
|
|
t_u8 block_2g_prb_req;
|
|
|
|
/** When band steering is enabled, limit the btm request sent to STA at
|
|
|
|
* <max_btm_req_allowed>*/
|
|
|
|
t_u8 max_btm_req_allowed;
|
|
|
|
|
|
|
|
} band_steer_para;
|
|
|
|
|
|
|
|
/** beacon stuck detect mechanism parameters */
|
|
|
|
typedef struct _beacon_stuck_detect_para {
|
|
|
|
/** subcmd */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** Set/Get */
|
|
|
|
t_u8 action;
|
|
|
|
/** No of beacon interval after which firmware will check if beacon Tx
|
|
|
|
* is going fine */
|
|
|
|
t_u8 beacon_stuck_detect_count;
|
|
|
|
/** Upon performing MAC reset, no of beacon interval after which
|
|
|
|
* firmware will check if recovery was successful */
|
|
|
|
t_u8 recovery_confirm_count;
|
|
|
|
} beacon_stuck_detect_para;
|
|
|
|
|
|
|
|
/** tx_data_pause parameters */
|
|
|
|
typedef struct _tx_data_pause_para {
|
|
|
|
/** subcmd */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** Set/Get */
|
|
|
|
t_u32 action;
|
|
|
|
/** enable/disable Tx data pause*/
|
|
|
|
t_u16 txpause;
|
|
|
|
/** Max number of TX buffer allowed for all PS client*/
|
|
|
|
t_u16 txbufcnt;
|
|
|
|
} tx_data_pause_para;
|
|
|
|
|
|
|
|
/** mgmt_frame_ctrl */
|
|
|
|
typedef struct _mgmt_frame_ctrl {
|
|
|
|
/** subcmd */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** Set/Get */
|
|
|
|
t_u32 action;
|
|
|
|
/** mask */
|
|
|
|
t_u32 mask;
|
|
|
|
} mgmt_frame_ctrl;
|
|
|
|
|
|
|
|
typedef struct _snmp_mib_para {
|
|
|
|
/** subcmd */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** Set/Get */
|
|
|
|
t_u32 action;
|
|
|
|
/** oid to set/get */
|
|
|
|
t_u16 oid;
|
|
|
|
/** length of oid value */
|
|
|
|
t_u16 oid_val_len;
|
|
|
|
/** oid value to set/get */
|
|
|
|
t_u8 oid_value[];
|
|
|
|
} snmp_mib_para;
|
|
|
|
|
|
|
|
/** Max length for oid_value field */
|
|
|
|
#define MAX_SNMP_VALUE_SIZE 128
|
|
|
|
|
|
|
|
/** Oid for 802.11D enable/disable */
|
|
|
|
#define OID_80211D_ENABLE 0x0009
|
|
|
|
/** Oid for 802.11H enable/disable */
|
|
|
|
#define OID_80211H_ENABLE 0x000a
|
|
|
|
|
2022-04-19 06:46:37 +00:00
|
|
|
int woal_uap_11h_ctrl(moal_private *priv, t_u32 enable);
|
|
|
|
|
2020-12-05 11:42:54 +00:00
|
|
|
/** dfs_testing parameters */
|
|
|
|
typedef struct _dfs_testing_param {
|
|
|
|
/** subcmd */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** Set/Get */
|
|
|
|
t_u32 action;
|
|
|
|
/** user CAC period (msec) */
|
|
|
|
t_u32 usr_cac_period;
|
|
|
|
/** user NOP period (sec) */
|
|
|
|
t_u16 usr_nop_period;
|
|
|
|
/** don't change channel on radar */
|
|
|
|
t_u8 no_chan_change;
|
|
|
|
/** fixed channel to change to on radar */
|
|
|
|
t_u8 fixed_new_chan;
|
|
|
|
/** CAC restart */
|
|
|
|
t_u8 cac_restart;
|
|
|
|
} dfs_testing_para;
|
|
|
|
|
|
|
|
/** Channel switch count config */
|
|
|
|
typedef struct _cscount_cfg_t {
|
|
|
|
/** subcmd */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** Set/Get */
|
|
|
|
t_u32 action;
|
|
|
|
/** user channel switch count */
|
|
|
|
t_u8 cs_count;
|
|
|
|
} cscount_cfg_t;
|
|
|
|
|
|
|
|
/** domain_info parameters */
|
|
|
|
typedef struct _domain_info_param {
|
|
|
|
/** subcmd */
|
|
|
|
t_u32 subcmd;
|
|
|
|
/** Set/Get */
|
|
|
|
t_u32 action;
|
|
|
|
/** domain_param TLV (incl. header) */
|
|
|
|
t_u8 tlv[];
|
|
|
|
} domain_info_para;
|
|
|
|
|
|
|
|
/** DOMAIN_INFO param sizes */
|
|
|
|
#define TLV_HEADER_LEN (2 + 2)
|
|
|
|
#define SUB_BAND_LEN 3
|
|
|
|
#define MAX_SUB_BANDS 40
|
|
|
|
|
|
|
|
/** MAX domain TLV length */
|
|
|
|
#define MAX_DOMAIN_TLV_LEN \
|
|
|
|
(TLV_HEADER_LEN + COUNTRY_CODE_LEN + (SUB_BAND_LEN * MAX_SUB_BANDS))
|
|
|
|
|
2022-10-10 03:14:56 +00:00
|
|
|
/** DOMAIN_INFO param size of dfs_region */
|
|
|
|
#define DFS_REGION_LEN 1
|
|
|
|
/** MAX reg domain TLV length*/
|
|
|
|
#define MAX_REG_DOMAIN_TLV_LEN (TLV_HEADER_LEN + DFS_REGION_LEN)
|
|
|
|
|
2022-04-19 06:46:37 +00:00
|
|
|
/** Get/Set channel DFS state */
|
|
|
|
int woal_11h_chan_dfs_state(moal_private *priv, t_u8 action,
|
|
|
|
mlan_ds_11h_chan_dfs_state *ch_dfs_state);
|
2022-10-10 03:14:56 +00:00
|
|
|
#ifdef UAP_CFG80211
|
|
|
|
#if CFG80211_VERSION_CODE >= KERNEL_VERSION(3, 14, 0)
|
|
|
|
void woal_update_channels_dfs_state(moal_private *priv, t_u8 channel,
|
|
|
|
t_u8 bandwidth, t_u8 dfs_state);
|
|
|
|
#endif
|
|
|
|
#endif
|
2022-04-19 06:46:37 +00:00
|
|
|
|
2022-10-10 03:14:56 +00:00
|
|
|
mlan_status woal_set_get_uap_power_mode(moal_private *priv, t_u32 action,
|
|
|
|
mlan_ds_ps_mgmt *ps_mgmt);
|
2020-12-05 11:42:54 +00:00
|
|
|
void woal_uap_set_multicast_list(struct net_device *dev);
|
2021-10-09 02:29:40 +00:00
|
|
|
|
2021-09-17 12:02:35 +00:00
|
|
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)
|
2021-10-09 02:29:40 +00:00
|
|
|
int woal_uap_do_ioctl(struct net_device *dev, struct ifreq *req,
|
|
|
|
void __user *data, int cmd);
|
2021-09-17 12:02:35 +00:00
|
|
|
#else
|
2020-12-05 11:42:54 +00:00
|
|
|
int woal_uap_do_ioctl(struct net_device *dev, struct ifreq *req, int cmd);
|
2021-09-17 12:02:35 +00:00
|
|
|
#endif
|
2021-10-09 02:29:40 +00:00
|
|
|
|
2020-12-05 11:42:54 +00:00
|
|
|
int woal_uap_bss_ctrl(moal_private *priv, t_u8 wait_option, int data);
|
2022-10-10 03:14:56 +00:00
|
|
|
|
2020-12-05 11:42:54 +00:00
|
|
|
int woal_uap_get_channel_nop_info(moal_private *priv, t_u8 wait_option,
|
|
|
|
pmlan_ds_11h_chan_nop_info ch_info);
|
2022-10-10 03:14:56 +00:00
|
|
|
|
2020-12-05 11:42:54 +00:00
|
|
|
mlan_status woal_set_get_ap_channel(moal_private *priv, t_u16 action,
|
|
|
|
t_u8 wait_option,
|
2021-04-01 03:15:14 +00:00
|
|
|
chan_band_info *uap_channel);
|
2020-12-05 11:42:54 +00:00
|
|
|
#ifdef CONFIG_PROC_FS
|
|
|
|
void woal_uap_get_version(moal_private *priv, char *version, int max_len);
|
|
|
|
#endif
|
|
|
|
mlan_status woal_uap_get_stats(moal_private *priv, t_u8 wait_option,
|
|
|
|
pmlan_ds_uap_stats ustats);
|
|
|
|
#if defined(UAP_WEXT) || defined(UAP_CFG80211)
|
|
|
|
extern struct iw_handler_def woal_uap_handler_def;
|
|
|
|
struct iw_statistics *woal_get_uap_wireless_stats(struct net_device *dev);
|
|
|
|
/** IOCTL function for wireless private IOCTLs */
|
|
|
|
int woal_uap_do_priv_ioctl(struct net_device *dev, struct ifreq *req, int cmd);
|
|
|
|
#endif
|
|
|
|
/** Set invalid data for each member of mlan_uap_bss_param */
|
|
|
|
void woal_set_sys_config_invalid_data(pmlan_uap_bss_param config);
|
|
|
|
/** Set/Get system configuration parameters */
|
|
|
|
mlan_status woal_set_get_sys_config(moal_private *priv, t_u16 action,
|
|
|
|
t_u8 wait_option,
|
|
|
|
mlan_uap_bss_param *sys_cfg);
|
|
|
|
/** Set get AP wmm parameter */
|
|
|
|
mlan_status woal_set_get_ap_wmm_para(moal_private *priv, t_u16 action,
|
|
|
|
wmm_parameter_t *ap_wmm_para);
|
|
|
|
int woal_uap_set_ap_cfg(moal_private *priv, t_u8 *data, int len);
|
2021-10-09 02:29:40 +00:00
|
|
|
|
2020-12-05 11:42:54 +00:00
|
|
|
int woal_uap_set_11ac_status(moal_private *priv, t_u8 action, t_u8 vht20_40,
|
|
|
|
IEEEtypes_VHTCap_t *vhtcap_ie);
|
2022-12-20 07:45:49 +00:00
|
|
|
int woal_11ax_cfg(moal_private *priv, t_u8 action, mlan_ds_11ax_he_cfg *he_cfg,
|
|
|
|
t_u8 wait_option);
|
2020-12-05 11:42:54 +00:00
|
|
|
int woal_uap_set_11ax_status(moal_private *priv, t_u8 action, t_u8 band,
|
|
|
|
IEEEtypes_HECap_t *hecap_ie);
|
|
|
|
int woal_set_uap_ht_tx_cfg(moal_private *priv, Band_Config_t bandcfg,
|
|
|
|
t_u16 ht_cap, t_u8 en);
|
|
|
|
mlan_status woal_uap_set_11n_status(moal_private *priv,
|
|
|
|
mlan_uap_bss_param *sys_cfg, t_u8 action);
|
|
|
|
#ifdef UAP_WEXT
|
|
|
|
void woal_ioctl_get_uap_info_resp(moal_private *priv, pmlan_ds_get_info info);
|
|
|
|
int woal_set_get_custom_ie(moal_private *priv, t_u16 mask, t_u8 *ie,
|
|
|
|
int ie_len);
|
|
|
|
#endif /* UAP_WEXT */
|
|
|
|
|
|
|
|
#endif /* _MOAL_UAP_H */
|