1*5113495bSYour Name /* 2*5113495bSYour Name * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. 3*5113495bSYour Name * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved. 4*5113495bSYour Name * 5*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for 6*5113495bSYour Name * any purpose with or without fee is hereby granted, provided that the 7*5113495bSYour Name * above copyright notice and this permission notice appear in all 8*5113495bSYour Name * copies. 9*5113495bSYour Name * 10*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11*5113495bSYour Name * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12*5113495bSYour Name * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13*5113495bSYour Name * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14*5113495bSYour Name * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15*5113495bSYour Name * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16*5113495bSYour Name * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17*5113495bSYour Name * PERFORMANCE OF THIS SOFTWARE. 18*5113495bSYour Name */ 19*5113495bSYour Name 20*5113495bSYour Name /* 21*5113495bSYour Name * DOC: contains mlme structure definitions 22*5113495bSYour Name */ 23*5113495bSYour Name 24*5113495bSYour Name #ifndef _WLAN_MLME_STRUCT_H_ 25*5113495bSYour Name #define _WLAN_MLME_STRUCT_H_ 26*5113495bSYour Name 27*5113495bSYour Name #include <wlan_cmn.h> 28*5113495bSYour Name #include <reg_services_public_struct.h> 29*5113495bSYour Name #include <wmi_unified_param.h> 30*5113495bSYour Name #include <sir_api.h> 31*5113495bSYour Name #include "wlan_cm_roam_public_struct.h" 32*5113495bSYour Name #include "wlan_mlme_twt_public_struct.h" 33*5113495bSYour Name #include "cfg_mlme_generic.h" 34*5113495bSYour Name #include "host_diag_core_event.h" 35*5113495bSYour Name 36*5113495bSYour Name #define OWE_TRANSITION_OUI_TYPE "\x50\x6f\x9a\x1c" 37*5113495bSYour Name #define OWE_TRANSITION_OUI_SIZE 4 38*5113495bSYour Name 39*5113495bSYour Name /* 40*5113495bSYour Name * EID_VENDOR| IE_LEN | OUI |OUI_TYPE| OWE transition BSSID|SSID_LEN| SSID | 41*5113495bSYour Name * (1) | (1) | (3) | (1) | (6) | (1) |(SSID_LEN)| 42*5113495bSYour Name */ 43*5113495bSYour Name #define OWE_SSID_LEN_OFFSET 12 44*5113495bSYour Name #define OWE_SSID_OFFSET 13 45*5113495bSYour Name 46*5113495bSYour Name #define CFG_PMKID_MODES_OKC (0x1) 47*5113495bSYour Name #define CFG_PMKID_MODES_PMKSA_CACHING (0x2) 48*5113495bSYour Name 49*5113495bSYour Name #define CFG_VHT_BASIC_MCS_SET_STADEF 0xFFFE 50*5113495bSYour Name 51*5113495bSYour Name #define CFG_VHT_RX_MCS_MAP_STAMIN 0 52*5113495bSYour Name #define CFG_VHT_RX_MCS_MAP_STAMAX 0xFFFF 53*5113495bSYour Name #define CFG_VHT_RX_MCS_MAP_STADEF 0xFFFE 54*5113495bSYour Name 55*5113495bSYour Name #define CFG_VHT_TX_MCS_MAP_STAMIN 0 56*5113495bSYour Name #define CFG_VHT_TX_MCS_MAP_STAMAX 0xFFFF 57*5113495bSYour Name #define CFG_VHT_TX_MCS_MAP_STADEF 0xFFFE 58*5113495bSYour Name 59*5113495bSYour Name #define STA_DOT11_MODE_INDX 0 60*5113495bSYour Name #define P2P_DEV_DOT11_MODE_INDX 4 61*5113495bSYour Name #define NAN_DISC_DOT11_MODE_INDX 8 62*5113495bSYour Name #define OCB_DOT11_MODE_INDX 12 63*5113495bSYour Name #define TDLS_DOT11_MODE_INDX 16 64*5113495bSYour Name #define NDI_DOT11_MODE_INDX 20 65*5113495bSYour Name 66*5113495bSYour Name /* Roam debugging related macro defines */ 67*5113495bSYour Name #define MAX_ROAM_DEBUG_BUF_SIZE 250 68*5113495bSYour Name #define MAX_ROAM_EVENTS_SUPPORTED 5 69*5113495bSYour Name #define ROAM_FAILURE_BUF_SIZE 60 70*5113495bSYour Name #define TIME_STRING_LEN 24 71*5113495bSYour Name 72*5113495bSYour Name #define ROAM_CHANNEL_BUF_SIZE 300 73*5113495bSYour Name #define LINE_STR "==============================================================" 74*5113495bSYour Name /* 75*5113495bSYour Name * MLME_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_FW_DEF + 1 is 76*5113495bSYour Name * assumed to be the default fw supported BF antennas, if fw 77*5113495bSYour Name * says it supports 8 antennas in rx ready event and if 78*5113495bSYour Name * gTxBFCsnValue INI value is configured above 3, set 79*5113495bSYour Name * the same to MLME_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED. 80*5113495bSYour Name * Otherwise, fall back and set fw default value[3]. 81*5113495bSYour Name */ 82*5113495bSYour Name #define MLME_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_FW_DEF 3 83*5113495bSYour Name 84*5113495bSYour Name #define CFG_STR_DATA_LEN 17 85*5113495bSYour Name #define CFG_EDCA_DATA_LEN 17 86*5113495bSYour Name #define CFG_MAX_TX_POWER_2_4_LEN 128 87*5113495bSYour Name #define CFG_MAX_TX_POWER_5_LEN 256 88*5113495bSYour Name #define CFG_POWER_USAGE_MAX_LEN 4 89*5113495bSYour Name #define CFG_MAX_STR_LEN 256 90*5113495bSYour Name #define MAX_VENDOR_IES_LEN 1532 91*5113495bSYour Name 92*5113495bSYour Name #define CFG_MAX_PMK_LEN 64 93*5113495bSYour Name 94*5113495bSYour Name #define CFG_VALID_CHANNEL_LIST_STRING_LEN (CFG_VALID_CHANNEL_LIST_LEN * 4) 95*5113495bSYour Name 96*5113495bSYour Name #define DEFAULT_ROAM_TRIGGER_BITMAP 0xFFFFFFFF 97*5113495bSYour Name 98*5113495bSYour Name /* 99*5113495bSYour Name * detect AP off based FW reported last RSSI > roaming Low rssi 100*5113495bSYour Name * and not less than 20db of host cached RSSI 101*5113495bSYour Name */ 102*5113495bSYour Name #define AP_OFF_RSSI_OFFSET 20 103*5113495bSYour Name 104*5113495bSYour Name /* Default beacon interval of 100 ms */ 105*5113495bSYour Name #define CUSTOM_CONC_GO_BI 100 106*5113495bSYour Name 107*5113495bSYour Name #define HECAP_TXRX_MCS_NSS_IDX_80 (0) 108*5113495bSYour Name #define HECAP_TXRX_MCS_NSS_IDX_160 (1) 109*5113495bSYour Name #define HECAP_TXRX_MCS_NSS_IDX_80_80 (2) 110*5113495bSYour Name #define INVALID_MCS_NSS_INDEX 0xff 111*5113495bSYour Name 112*5113495bSYour Name enum diagwlan_status_eventsubtype { 113*5113495bSYour Name DIAG_WLAN_STATUS_CONNECT = 0, 114*5113495bSYour Name DIAG_WLAN_STATUS_DISCONNECT 115*5113495bSYour Name }; 116*5113495bSYour Name 117*5113495bSYour Name enum diagwlan_status_eventreason { 118*5113495bSYour Name DIAG_REASON_UNSPECIFIED = 0, 119*5113495bSYour Name DIAG_REASON_USER_REQUESTED, 120*5113495bSYour Name DIAG_REASON_MIC_ERROR, 121*5113495bSYour Name DIAG_REASON_DISASSOC, 122*5113495bSYour Name DIAG_REASON_DEAUTH, 123*5113495bSYour Name DIAG_REASON_HANDOFF, 124*5113495bSYour Name DIAG_REASON_ROAM_SYNCH_IND, 125*5113495bSYour Name DIAG_REASON_ROAM_SYNCH_CNF, 126*5113495bSYour Name DIAG_REASON_ROAM_HO_FAIL, 127*5113495bSYour Name }; 128*5113495bSYour Name 129*5113495bSYour Name /** 130*5113495bSYour Name * struct mlme_cfg_str - generic structure for all mlme CFG string items 131*5113495bSYour Name * 132*5113495bSYour Name * @max_len: maximum data length allowed 133*5113495bSYour Name * @len: valid no. of elements of the data 134*5113495bSYour Name * @data: uint8_t array to store values 135*5113495bSYour Name */ 136*5113495bSYour Name struct mlme_cfg_str { 137*5113495bSYour Name qdf_size_t max_len; 138*5113495bSYour Name qdf_size_t len; 139*5113495bSYour Name uint8_t data[CFG_STR_DATA_LEN]; 140*5113495bSYour Name }; 141*5113495bSYour Name 142*5113495bSYour Name /** 143*5113495bSYour Name * enum e_edca_type - to index edca params for edca profile 144*5113495bSYour Name * EDCA profile AC unicast/bcast 145*5113495bSYour Name * @edca_ani_acbe_local: ani BE unicast 146*5113495bSYour Name * @edca_ani_acbk_local: ani BK unicast 147*5113495bSYour Name * @edca_ani_acvi_local: ani VI unicast 148*5113495bSYour Name * @edca_ani_acvo_local: ani VO unicast 149*5113495bSYour Name * @edca_ani_acbe_bcast: ani BE bcast 150*5113495bSYour Name * @edca_ani_acbk_bcast: ani BK bcast 151*5113495bSYour Name * @edca_ani_acvi_bcast: ani VI bcast 152*5113495bSYour Name * @edca_ani_acvo_bcast: ani VO bcast 153*5113495bSYour Name * @edca_wme_acbe_local: wme BE unicast 154*5113495bSYour Name * @edca_wme_acbk_local: wme BK unicast 155*5113495bSYour Name * @edca_wme_acvi_local: wme VI unicast 156*5113495bSYour Name * @edca_wme_acvo_local: wme VO unicast 157*5113495bSYour Name * @edca_wme_acbe_bcast: wme BE bcast 158*5113495bSYour Name * @edca_wme_acbk_bcast: wme BK bcast 159*5113495bSYour Name * @edca_wme_acvi_bcast: wme VI bcast 160*5113495bSYour Name * @edca_wme_acvo_bcast: wme VO bcast 161*5113495bSYour Name * @edca_etsi_acbe_local: etsi BE unicast 162*5113495bSYour Name * @edca_etsi_acbk_local: etsi BK unicast 163*5113495bSYour Name * @edca_etsi_acvi_local: etsi VI unicast 164*5113495bSYour Name * @edca_etsi_acvo_local: etsi VO unicast 165*5113495bSYour Name * @edca_etsi_acbe_bcast: etsi BE bcast 166*5113495bSYour Name * @edca_etsi_acbk_bcast: etsi BK bcast 167*5113495bSYour Name * @edca_etsi_acvi_bcast: etsi VI bcast 168*5113495bSYour Name * @edca_etsi_acvo_bcast: etsi VO bcast 169*5113495bSYour Name */ 170*5113495bSYour Name enum e_edca_type { 171*5113495bSYour Name edca_ani_acbe_local, 172*5113495bSYour Name edca_ani_acbk_local, 173*5113495bSYour Name edca_ani_acvi_local, 174*5113495bSYour Name edca_ani_acvo_local, 175*5113495bSYour Name edca_ani_acbe_bcast, 176*5113495bSYour Name edca_ani_acbk_bcast, 177*5113495bSYour Name edca_ani_acvi_bcast, 178*5113495bSYour Name edca_ani_acvo_bcast, 179*5113495bSYour Name edca_wme_acbe_local, 180*5113495bSYour Name edca_wme_acbk_local, 181*5113495bSYour Name edca_wme_acvi_local, 182*5113495bSYour Name edca_wme_acvo_local, 183*5113495bSYour Name edca_wme_acbe_bcast, 184*5113495bSYour Name edca_wme_acbk_bcast, 185*5113495bSYour Name edca_wme_acvi_bcast, 186*5113495bSYour Name edca_wme_acvo_bcast, 187*5113495bSYour Name edca_etsi_acbe_local, 188*5113495bSYour Name edca_etsi_acbk_local, 189*5113495bSYour Name edca_etsi_acvi_local, 190*5113495bSYour Name edca_etsi_acvo_local, 191*5113495bSYour Name edca_etsi_acbe_bcast, 192*5113495bSYour Name edca_etsi_acbk_bcast, 193*5113495bSYour Name edca_etsi_acvi_bcast, 194*5113495bSYour Name edca_etsi_acvo_bcast 195*5113495bSYour Name }; 196*5113495bSYour Name 197*5113495bSYour Name #define CFG_EDCA_PROFILE_ACM_IDX 0 198*5113495bSYour Name #define CFG_EDCA_PROFILE_AIFSN_IDX 1 199*5113495bSYour Name #define CFG_EDCA_PROFILE_CWMINA_IDX 2 200*5113495bSYour Name #define CFG_EDCA_PROFILE_CWMAXA_IDX 4 201*5113495bSYour Name #define CFG_EDCA_PROFILE_TXOPA_IDX 6 202*5113495bSYour Name #define CFG_EDCA_PROFILE_CWMINB_IDX 7 203*5113495bSYour Name #define CFG_EDCA_PROFILE_CWMAXB_IDX 9 204*5113495bSYour Name #define CFG_EDCA_PROFILE_TXOPB_IDX 11 205*5113495bSYour Name #define CFG_EDCA_PROFILE_CWMING_IDX 12 206*5113495bSYour Name #define CFG_EDCA_PROFILE_CWMAXG_IDX 14 207*5113495bSYour Name #define CFG_EDCA_PROFILE_TXOPG_IDX 16 208*5113495bSYour Name 209*5113495bSYour Name /** 210*5113495bSYour Name * struct mlme_edca_ac_vo - cwmin, cwmax and aifs value for edca_ac_vo 211*5113495bSYour Name * 212*5113495bSYour Name * @vo_cwmin: cwmin value for voice 213*5113495bSYour Name * @vo_cwmax: cwmax value for voice 214*5113495bSYour Name * @vo_aifs: aifs value for voice 215*5113495bSYour Name */ 216*5113495bSYour Name struct mlme_edca_ac_vo { 217*5113495bSYour Name uint32_t vo_cwmin; 218*5113495bSYour Name uint32_t vo_cwmax; 219*5113495bSYour Name uint32_t vo_aifs; 220*5113495bSYour Name }; 221*5113495bSYour Name 222*5113495bSYour Name /** 223*5113495bSYour Name * enum mlme_dot11_mode - Dot11 mode of the vdev 224*5113495bSYour Name * @MLME_DOT11_MODE_ALL: vdev supports all dot11 modes 225*5113495bSYour Name * @MLME_DOT11_MODE_ABG: vdev supports just 11A, 11B and 11G modes 226*5113495bSYour Name * @MLME_DOT11_MODE_11A: vdev just supports 11A mode 227*5113495bSYour Name * @MLME_DOT11_MODE_11B: vdev supports 11B mode, and modes above it 228*5113495bSYour Name * @MLME_DOT11_MODE_11G: vdev supports 11G mode, and modes above it 229*5113495bSYour Name * @MLME_DOT11_MODE_11N: vdev supports 11N mode, and modes above it 230*5113495bSYour Name * @MLME_DOT11_MODE_11G_ONLY: vdev just supports 11G mode 231*5113495bSYour Name * @MLME_DOT11_MODE_11N_ONLY: vdev just supports 11N mode 232*5113495bSYour Name * @MLME_DOT11_MODE_11AC: vdev supports 11AC mode, and modes above it 233*5113495bSYour Name * @MLME_DOT11_MODE_11AC_ONLY: vdev just supports 11AC mode 234*5113495bSYour Name * @MLME_DOT11_MODE_11AX: vdev supports 11AX mode, and modes above it 235*5113495bSYour Name * @MLME_DOT11_MODE_11AX_ONLY: vdev just supports 11AX mode 236*5113495bSYour Name * @MLME_DOT11_MODE_11BE: vdev supports 11BE mode, and modes above it 237*5113495bSYour Name * @MLME_DOT11_MODE_11BE_ONLY: vdev just supports 11BE mode 238*5113495bSYour Name */ 239*5113495bSYour Name enum mlme_dot11_mode { 240*5113495bSYour Name MLME_DOT11_MODE_ALL, 241*5113495bSYour Name /* Initial dot11 modes should come first */ 242*5113495bSYour Name MLME_DOT11_MODE_ABG, 243*5113495bSYour Name MLME_DOT11_MODE_11A, 244*5113495bSYour Name MLME_DOT11_MODE_11B, 245*5113495bSYour Name MLME_DOT11_MODE_11G, 246*5113495bSYour Name MLME_DOT11_MODE_11N, 247*5113495bSYour Name MLME_DOT11_MODE_11G_ONLY, 248*5113495bSYour Name MLME_DOT11_MODE_11N_ONLY, 249*5113495bSYour Name MLME_DOT11_MODE_11AC, 250*5113495bSYour Name MLME_DOT11_MODE_11AC_ONLY, 251*5113495bSYour Name MLME_DOT11_MODE_11AX, 252*5113495bSYour Name MLME_DOT11_MODE_11AX_ONLY, 253*5113495bSYour Name MLME_DOT11_MODE_11BE, 254*5113495bSYour Name MLME_DOT11_MODE_11BE_ONLY, 255*5113495bSYour Name }; 256*5113495bSYour Name 257*5113495bSYour Name /** 258*5113495bSYour Name * struct wlan_mlme_dot11_mode - dot11 mode 259*5113495bSYour Name * 260*5113495bSYour Name * @dot11_mode: dot11 mode supported 261*5113495bSYour Name * @vdev_type_dot11_mode: dot11 mode supported by different vdev types 262*5113495bSYour Name */ 263*5113495bSYour Name struct wlan_mlme_dot11_mode { 264*5113495bSYour Name enum mlme_dot11_mode dot11_mode; 265*5113495bSYour Name uint32_t vdev_type_dot11_mode; 266*5113495bSYour Name }; 267*5113495bSYour Name 268*5113495bSYour Name /** 269*5113495bSYour Name * struct mlme_edca_ac_vi - cwmin, cwmax and aifs value for edca_ac_vi 270*5113495bSYour Name * 271*5113495bSYour Name * @vi_cwmin: cwmin value for video 272*5113495bSYour Name * @vi_cwmax: cwmax value for video 273*5113495bSYour Name * @vi_aifs: aifs value for video 274*5113495bSYour Name */ 275*5113495bSYour Name struct mlme_edca_ac_vi { 276*5113495bSYour Name uint32_t vi_cwmin; 277*5113495bSYour Name uint32_t vi_cwmax; 278*5113495bSYour Name uint32_t vi_aifs; 279*5113495bSYour Name }; 280*5113495bSYour Name 281*5113495bSYour Name /** 282*5113495bSYour Name * struct mlme_edca_ac_bk - cwmin, cwmax and aifs value for edca_ac_bk 283*5113495bSYour Name * 284*5113495bSYour Name * @bk_cwmin: cwmin value for background 285*5113495bSYour Name * @bk_cwmax: cwmax value for background 286*5113495bSYour Name * @bk_aifs: aifs value for background 287*5113495bSYour Name */ 288*5113495bSYour Name struct mlme_edca_ac_bk { 289*5113495bSYour Name uint32_t bk_cwmin; 290*5113495bSYour Name uint32_t bk_cwmax; 291*5113495bSYour Name uint32_t bk_aifs; 292*5113495bSYour Name }; 293*5113495bSYour Name 294*5113495bSYour Name /** 295*5113495bSYour Name * struct mlme_edca_ac_be - cwmin, cwmax and aifs value for edca_ac_be 296*5113495bSYour Name * 297*5113495bSYour Name * @be_cwmin: cwmin value for best effort 298*5113495bSYour Name * @be_cwmax: cwmax value for best effort 299*5113495bSYour Name * @be_aifs: aifs value for best effort 300*5113495bSYour Name */ 301*5113495bSYour Name struct mlme_edca_ac_be { 302*5113495bSYour Name uint32_t be_cwmin; 303*5113495bSYour Name uint32_t be_cwmax; 304*5113495bSYour Name uint32_t be_aifs; 305*5113495bSYour Name }; 306*5113495bSYour Name 307*5113495bSYour Name /** 308*5113495bSYour Name * enum mlme_ts_info_ack_policy - TS Info Ack Policy 309*5113495bSYour Name * @TS_INFO_ACK_POLICY_NORMAL_ACK:normal ack 310*5113495bSYour Name * @TS_INFO_ACK_POLICY_HT_IMMEDIATE_BLOCK_ACK: HT immediate block ack 311*5113495bSYour Name */ 312*5113495bSYour Name enum mlme_ts_info_ack_policy { 313*5113495bSYour Name TS_INFO_ACK_POLICY_NORMAL_ACK = 0, 314*5113495bSYour Name TS_INFO_ACK_POLICY_HT_IMMEDIATE_BLOCK_ACK = 1, 315*5113495bSYour Name }; 316*5113495bSYour Name 317*5113495bSYour Name /** 318*5113495bSYour Name * struct wlan_mlme_edca_params - EDCA pramaters related config items 319*5113495bSYour Name * 320*5113495bSYour Name * @ani_acbk_l: EDCA parameters for ANI local access category background 321*5113495bSYour Name * @ani_acbe_l: EDCA parameters for ANI local access category best effort 322*5113495bSYour Name * @ani_acvi_l: EDCA parameters for ANI local access category video 323*5113495bSYour Name * @ani_acvo_l: EDCA parameters for ANI local access category voice 324*5113495bSYour Name * @ani_acbk_b: EDCA parameters for ANI bcast access category background 325*5113495bSYour Name * @ani_acbe_b: EDCA parameters for ANI bcast access category best effort 326*5113495bSYour Name * @ani_acvi_b: EDCA parameters for ANI bcast access category video 327*5113495bSYour Name * @ani_acvo_b: EDCA parameters for ANI bcast access category voice 328*5113495bSYour Name * @wme_acbk_l: EDCA parameters for WME local access category background 329*5113495bSYour Name * @wme_acbe_l: EDCA parameters for WME local access category best effort 330*5113495bSYour Name * @wme_acvi_l: EDCA parameters for WME local access category video 331*5113495bSYour Name * @wme_acvo_l: EDCA parameters for WME local access category voice 332*5113495bSYour Name * @wme_acbk_b: EDCA parameters for WME bcast access category background 333*5113495bSYour Name * @wme_acbe_b: EDCA parameters for WME bcast access category best effort 334*5113495bSYour Name * @wme_acvi_b: EDCA parameters for WME bcast access category video 335*5113495bSYour Name * @wme_acvo_b: EDCA parameters for WME bcast access category voice 336*5113495bSYour Name * @etsi_acbk_l: EDCA parameters for ETSI local access category background 337*5113495bSYour Name * @etsi_acbe_l: EDCA parameters for ETSI local access category best effort 338*5113495bSYour Name * @etsi_acvi_l: EDCA parameters for ETSI local access category video 339*5113495bSYour Name * @etsi_acvo_l: EDCA parameters for ETSI local access category voice 340*5113495bSYour Name * @etsi_acbk_b: EDCA parameters for ETSI bcast access category background 341*5113495bSYour Name * @etsi_acbe_b: EDCA parameters for ETSI bcast access category best effort 342*5113495bSYour Name * @etsi_acvi_b: EDCA parameters for ETSI bcast access category video 343*5113495bSYour Name * @etsi_acvo_b: EDCA parameters for ETSI bcast access category voice 344*5113495bSYour Name * @enable_edca_params: Enable edca parameter 345*5113495bSYour Name * @enable_wmm_txop: Enable WMM TxOp 346*5113495bSYour Name * @edca_ac_vo: value for edca_ac_vo 347*5113495bSYour Name * @edca_ac_vi: value for edca_ac_vi 348*5113495bSYour Name * @edca_ac_bk: value for edca_ac_bk 349*5113495bSYour Name * @edca_ac_be: value for edca_ac_be 350*5113495bSYour Name * @edca_param_type: Edca param type 351*5113495bSYour Name */ 352*5113495bSYour Name struct wlan_mlme_edca_params { 353*5113495bSYour Name struct mlme_cfg_str ani_acbk_l; 354*5113495bSYour Name struct mlme_cfg_str ani_acbe_l; 355*5113495bSYour Name struct mlme_cfg_str ani_acvi_l; 356*5113495bSYour Name struct mlme_cfg_str ani_acvo_l; 357*5113495bSYour Name struct mlme_cfg_str ani_acbk_b; 358*5113495bSYour Name struct mlme_cfg_str ani_acbe_b; 359*5113495bSYour Name struct mlme_cfg_str ani_acvi_b; 360*5113495bSYour Name struct mlme_cfg_str ani_acvo_b; 361*5113495bSYour Name 362*5113495bSYour Name struct mlme_cfg_str wme_acbk_l; 363*5113495bSYour Name struct mlme_cfg_str wme_acbe_l; 364*5113495bSYour Name struct mlme_cfg_str wme_acvi_l; 365*5113495bSYour Name struct mlme_cfg_str wme_acvo_l; 366*5113495bSYour Name struct mlme_cfg_str wme_acbk_b; 367*5113495bSYour Name struct mlme_cfg_str wme_acbe_b; 368*5113495bSYour Name struct mlme_cfg_str wme_acvi_b; 369*5113495bSYour Name struct mlme_cfg_str wme_acvo_b; 370*5113495bSYour Name 371*5113495bSYour Name struct mlme_cfg_str etsi_acbk_l; 372*5113495bSYour Name struct mlme_cfg_str etsi_acbe_l; 373*5113495bSYour Name struct mlme_cfg_str etsi_acvi_l; 374*5113495bSYour Name struct mlme_cfg_str etsi_acvo_l; 375*5113495bSYour Name struct mlme_cfg_str etsi_acbk_b; 376*5113495bSYour Name struct mlme_cfg_str etsi_acbe_b; 377*5113495bSYour Name struct mlme_cfg_str etsi_acvi_b; 378*5113495bSYour Name struct mlme_cfg_str etsi_acvo_b; 379*5113495bSYour Name 380*5113495bSYour Name bool enable_edca_params; 381*5113495bSYour Name bool enable_wmm_txop; 382*5113495bSYour Name struct mlme_edca_ac_vo edca_ac_vo; 383*5113495bSYour Name struct mlme_edca_ac_vi edca_ac_vi; 384*5113495bSYour Name struct mlme_edca_ac_bk edca_ac_bk; 385*5113495bSYour Name struct mlme_edca_ac_be edca_ac_be; 386*5113495bSYour Name 387*5113495bSYour Name enum host_edca_param_type edca_param_type; 388*5113495bSYour Name }; 389*5113495bSYour Name 390*5113495bSYour Name /* To configure EDCA/PIFS param for LL SAP */ 391*5113495bSYour Name #define CFG_EDCA_PARAM_ACM 0 392*5113495bSYour Name #define CFG_EDCA_PARAM_AIFSN 2 393*5113495bSYour Name #define CFG_EDCA_PARAM_ACI 3 394*5113495bSYour Name #define CFG_EDCA_PARAM_CWMIN 2 395*5113495bSYour Name #define CFG_EDCA_PARAM_CWMAX 3 396*5113495bSYour Name #define CFG_EDCA_PARAM_TXOP 47 397*5113495bSYour Name #define CFG_PIFS_PARAM_SAP_OFFSET 0 398*5113495bSYour Name #define CFG_PIFS_PARAM_LEB_OFFSET 1 399*5113495bSYour Name #define CFG_PIFS_PARAM_REB_OFFSET 2 400*5113495bSYour Name 401*5113495bSYour Name #define WLAN_CFG_MFR_NAME_LEN (63) 402*5113495bSYour Name #define WLAN_CFG_MODEL_NUMBER_LEN (31) 403*5113495bSYour Name #define WLAN_CFG_MODEL_NAME_LEN (31) 404*5113495bSYour Name #define WLAN_CFG_MFR_PRODUCT_NAME_LEN (31) 405*5113495bSYour Name #define WLAN_CFG_MFR_PRODUCT_VERSION_LEN (31) 406*5113495bSYour Name 407*5113495bSYour Name #define MLME_NUM_WLM_LATENCY_LEVEL 4 408*5113495bSYour Name #define MLME_RMENABLEDCAP_MAX_LEN 5 409*5113495bSYour Name 410*5113495bSYour Name #ifndef ANI_LITTLE_BIT_ENDIAN 411*5113495bSYour Name /** 412*5113495bSYour Name * struct mlme_ht_capabilities_info - HT Capabilities Info 413*5113495bSYour Name * @l_sig_tx_op_protection: L-SIG TXOP Protection Mechanism support 414*5113495bSYour Name * @stbc_control_frame: STBC Control frame support 415*5113495bSYour Name * @psmp: PSMP Support 416*5113495bSYour Name * @dsss_cck_mode_40_mhz: To indicate use of DSSS/CCK in 40Mhz 417*5113495bSYour Name * @maximal_amsdu_size: Maximum AMSDU Size - 0:3839 octes, 1:7935 octets 418*5113495bSYour Name * @delayed_ba: Support of Delayed Block Ack 419*5113495bSYour Name * @rx_stbc: Rx STBC Support - 0:Not Supported, 1: 1SS, 2: 1,2SS, 3: 1,2,3SS 420*5113495bSYour Name * @tx_stbc: Tx STBC Support 421*5113495bSYour Name * @short_gi_40_mhz: Short GI Support for HT40 422*5113495bSYour Name * @short_gi_20_mhz: Short GI support for HT20 423*5113495bSYour Name * @green_field: Support for HT Greenfield PPDUs 424*5113495bSYour Name * @mimo_power_save: SM Power Save Mode - 0:Static, 1:Dynamic, 3:Disabled, 2:Res 425*5113495bSYour Name * @supported_channel_width_set: Supported Chan Width - 0:20Mhz, 1:20Mhz & 40Mhz 426*5113495bSYour Name * @adv_coding_cap: Rx LDPC support 427*5113495bSYour Name */ 428*5113495bSYour Name struct mlme_ht_capabilities_info { 429*5113495bSYour Name uint16_t l_sig_tx_op_protection:1; 430*5113495bSYour Name uint16_t stbc_control_frame:1; 431*5113495bSYour Name uint16_t psmp:1; 432*5113495bSYour Name uint16_t dsss_cck_mode_40_mhz:1; 433*5113495bSYour Name uint16_t maximal_amsdu_size:1; 434*5113495bSYour Name uint16_t delayed_ba:1; 435*5113495bSYour Name uint16_t rx_stbc:2; 436*5113495bSYour Name uint16_t tx_stbc:1; 437*5113495bSYour Name uint16_t short_gi_40_mhz:1; 438*5113495bSYour Name uint16_t short_gi_20_mhz:1; 439*5113495bSYour Name uint16_t green_field:1; 440*5113495bSYour Name uint16_t mimo_power_save:2; 441*5113495bSYour Name uint16_t supported_channel_width_set:1; 442*5113495bSYour Name uint16_t adv_coding_cap:1; 443*5113495bSYour Name } qdf_packed; 444*5113495bSYour Name #else 445*5113495bSYour Name struct mlme_ht_capabilities_info { 446*5113495bSYour Name uint16_t adv_coding_cap:1; 447*5113495bSYour Name uint16_t supported_channel_width_set:1; 448*5113495bSYour Name uint16_t mimo_power_save:2; 449*5113495bSYour Name uint16_t green_field:1; 450*5113495bSYour Name uint16_t short_gi_20_mhz:1; 451*5113495bSYour Name uint16_t short_gi_40_mhz:1; 452*5113495bSYour Name uint16_t tx_stbc:1; 453*5113495bSYour Name uint16_t rx_stbc:2; 454*5113495bSYour Name uint16_t delayed_ba:1; 455*5113495bSYour Name uint16_t maximal_amsdu_size:1; 456*5113495bSYour Name uint16_t dsss_cck_mode_40_mhz:1; 457*5113495bSYour Name uint16_t psmp:1; 458*5113495bSYour Name uint16_t stbc_control_frame:1; 459*5113495bSYour Name uint16_t l_sig_tx_op_protection:1; 460*5113495bSYour Name } qdf_packed; 461*5113495bSYour Name #endif 462*5113495bSYour Name 463*5113495bSYour Name /** 464*5113495bSYour Name * struct wlan_ht_config - HT capabilities 465*5113495bSYour Name * @ht_caps: ht caps in bitwise 466*5113495bSYour Name * @caps: uint32 caps 467*5113495bSYour Name */ 468*5113495bSYour Name struct wlan_ht_config { 469*5113495bSYour Name union { 470*5113495bSYour Name struct mlme_ht_capabilities_info ht_caps; 471*5113495bSYour Name uint32_t caps; 472*5113495bSYour Name }; 473*5113495bSYour Name }; 474*5113495bSYour Name 475*5113495bSYour Name #ifndef ANI_LITTLE_BIT_ENDIAN 476*5113495bSYour Name /** 477*5113495bSYour Name * struct mlme_ht_param_info - HT AMPDU Parameters Info 478*5113495bSYour Name * @reserved: reserved bits 479*5113495bSYour Name * @mpdu_density: MPDU Density 480*5113495bSYour Name * @max_rx_ampdu_factor: Max Rx AMPDU Factor 481*5113495bSYour Name */ 482*5113495bSYour Name struct mlme_ht_param_info { 483*5113495bSYour Name uint8_t reserved:3; 484*5113495bSYour Name uint8_t mpdu_density:3; 485*5113495bSYour Name uint8_t max_rx_ampdu_factor:2; 486*5113495bSYour Name } qdf_packed; 487*5113495bSYour Name #else 488*5113495bSYour Name struct mlme_ht_param_info { 489*5113495bSYour Name uint8_t max_rx_ampdu_factor:2; 490*5113495bSYour Name uint8_t mpdu_density:3; 491*5113495bSYour Name uint8_t reserved:3; 492*5113495bSYour Name } qdf_packed; 493*5113495bSYour Name #endif 494*5113495bSYour Name 495*5113495bSYour Name #ifndef ANI_LITTLE_BIT_ENDIAN 496*5113495bSYour Name /** 497*5113495bSYour Name * struct mlme_ht_ext_cap_info - Extended HT Capabilities Info 498*5113495bSYour Name * @reserved_2: Reserved Bits 499*5113495bSYour Name * @mcs_feedback: MCS Feedback Capability 500*5113495bSYour Name * @reserved_1: Reserved Bits 501*5113495bSYour Name * @transition_time: Time needed for transition between 20Mhz and 40 Mhz 502*5113495bSYour Name * @pco: PCO (Phased Coexistence Operation) Support 503*5113495bSYour Name */ 504*5113495bSYour Name struct mlme_ht_ext_cap_info { 505*5113495bSYour Name uint16_t reserved_2:6; 506*5113495bSYour Name uint16_t mcs_feedback:2; 507*5113495bSYour Name uint16_t reserved_1:5; 508*5113495bSYour Name uint16_t transition_time:2; 509*5113495bSYour Name uint16_t pco:1; 510*5113495bSYour Name } qdf_packed; 511*5113495bSYour Name #else 512*5113495bSYour Name struct mlme_ht_ext_cap_info { 513*5113495bSYour Name uint16_t pco:1; 514*5113495bSYour Name uint16_t transition_time:2; 515*5113495bSYour Name uint16_t reserved1:5; 516*5113495bSYour Name uint16_t mcs_feedback:2; 517*5113495bSYour Name uint16_t reserved2:6; 518*5113495bSYour Name } qdf_packed; 519*5113495bSYour Name #endif 520*5113495bSYour Name 521*5113495bSYour Name #ifndef ANI_LITTLE_BIT_ENDIAN 522*5113495bSYour Name /** 523*5113495bSYour Name * struct mlme_ht_info_field_1 - Additional HT IE Field1 524*5113495bSYour Name * @service_interval_granularity: Shortest Service Interval 525*5113495bSYour Name * @controlled_access_only: Access Control for assoc requests 526*5113495bSYour Name * @rifs_mode: Reduced Interframe Spacing mode 527*5113495bSYour Name * @recommended_tx_width_set: Recommended Tx Channel Width 528*5113495bSYour Name * @secondary_channel_offset: Secondary Channel Offset 529*5113495bSYour Name */ 530*5113495bSYour Name struct mlme_ht_info_field_1 { 531*5113495bSYour Name uint8_t service_interval_granularity:3; 532*5113495bSYour Name uint8_t controlled_access_only:1; 533*5113495bSYour Name uint8_t rifs_mode:1; 534*5113495bSYour Name uint8_t recommended_tx_width_set:1; 535*5113495bSYour Name uint8_t secondary_channel_offset:2; 536*5113495bSYour Name } qdf_packed; 537*5113495bSYour Name #else 538*5113495bSYour Name struct mlme_ht_info_field_1 { 539*5113495bSYour Name uint8_t secondary_channel_offset:2; 540*5113495bSYour Name uint8_t recommended_tx_width_set:1; 541*5113495bSYour Name uint8_t rifs_mode:1; 542*5113495bSYour Name uint8_t controlled_access_only:1; 543*5113495bSYour Name uint8_t service_interval_granularity:3; 544*5113495bSYour Name } qdf_packed; 545*5113495bSYour Name #endif 546*5113495bSYour Name 547*5113495bSYour Name /* struct mlme_ht_info_field_2 - Additional HT IE Field2 548*5113495bSYour Name * @reserved: reserved bits 549*5113495bSYour Name * @obss_non_ht_sta_present: Protection for non-HT STAs by Overlapping BSS 550*5113495bSYour Name * @transmit_burst_limit: Transmit Burst Limit 551*5113495bSYour Name * @non_gf_devices_present: Non Greenfield devices present 552*5113495bSYour Name * @op_mode: Operation Mode 553*5113495bSYour Name */ 554*5113495bSYour Name #ifndef ANI_LITTLE_BIT_ENDIAN 555*5113495bSYour Name struct mlme_ht_info_field_2 { 556*5113495bSYour Name uint16_t reserved:11; 557*5113495bSYour Name uint16_t obss_non_ht_sta_present:1; 558*5113495bSYour Name uint16_t transmit_burst_limit:1; 559*5113495bSYour Name uint16_t non_gf_devices_present:1; 560*5113495bSYour Name uint16_t op_mode:2; 561*5113495bSYour Name } qdf_packed; 562*5113495bSYour Name #else 563*5113495bSYour Name struct mlme_ht_info_field_2 { 564*5113495bSYour Name uint16_t op_mode:2; 565*5113495bSYour Name uint16_t non_gf_devices_present:1; 566*5113495bSYour Name uint16_t transmit_burst_limit:1; 567*5113495bSYour Name uint16_t obss_non_ht_sta_present:1; 568*5113495bSYour Name uint16_t reserved:11; 569*5113495bSYour Name } qdf_packed; 570*5113495bSYour Name #endif 571*5113495bSYour Name 572*5113495bSYour Name #ifdef WLAN_FEATURE_FILS_SK 573*5113495bSYour Name 574*5113495bSYour Name /** 575*5113495bSYour Name * struct wlan_fils_connection_info - Fils connection parameters 576*5113495bSYour Name * @is_fils_connection: flag to indicate if the connection is done using 577*5113495bSYour Name * authentication algorithm as 4 578*5113495bSYour Name * @keyname_nai: key name network access identifier 579*5113495bSYour Name * @key_nai_length: key name network access identifier length 580*5113495bSYour Name * @erp_sequence_number: FILS ERP sequence number 581*5113495bSYour Name * @r_rk: re-authentication Root Key length 582*5113495bSYour Name * @r_rk_length: reauthentication root keys length 583*5113495bSYour Name * @rik: Re-authentication integrity key 584*5113495bSYour Name * @rik_length: Re-Authentication integrity key length 585*5113495bSYour Name * @realm: Realm name 586*5113495bSYour Name * @realm_len: Realm length 587*5113495bSYour Name * @akm_type: FILS connection akm 588*5113495bSYour Name * @auth_type: FILS Authentication Algorithm 589*5113495bSYour Name * @pmk: Pairwise master key 590*5113495bSYour Name * @pmk_len: Pairwise master key length 591*5113495bSYour Name * @pmkid: Pairwise master key ID 592*5113495bSYour Name * @fils_ft: FILS FT key 593*5113495bSYour Name * @fils_ft_len: Length of FILS FT 594*5113495bSYour Name */ 595*5113495bSYour Name struct wlan_fils_connection_info { 596*5113495bSYour Name bool is_fils_connection; 597*5113495bSYour Name uint8_t keyname_nai[FILS_MAX_KEYNAME_NAI_LENGTH]; 598*5113495bSYour Name uint32_t key_nai_length; 599*5113495bSYour Name uint32_t erp_sequence_number; 600*5113495bSYour Name uint8_t r_rk[WLAN_FILS_MAX_RRK_LENGTH]; 601*5113495bSYour Name uint32_t r_rk_length; 602*5113495bSYour Name uint8_t rik[WLAN_FILS_MAX_RIK_LENGTH]; 603*5113495bSYour Name uint32_t rik_length; 604*5113495bSYour Name uint8_t realm[WLAN_FILS_MAX_REALM_LEN]; 605*5113495bSYour Name uint32_t realm_len; 606*5113495bSYour Name uint8_t akm_type; 607*5113495bSYour Name uint8_t auth_type; 608*5113495bSYour Name uint8_t pmk[MAX_PMK_LEN]; 609*5113495bSYour Name uint8_t pmk_len; 610*5113495bSYour Name uint8_t pmkid[PMKID_LEN]; 611*5113495bSYour Name uint8_t fils_ft[WLAN_FILS_FT_MAX_LEN]; 612*5113495bSYour Name uint8_t fils_ft_len; 613*5113495bSYour Name }; 614*5113495bSYour Name #endif 615*5113495bSYour Name 616*5113495bSYour Name #ifndef ANI_LITTLE_BIT_ENDIAN 617*5113495bSYour Name /** 618*5113495bSYour Name * struct mlme_ht_info_field_3 - Additional HT IE Field3 619*5113495bSYour Name * @reserved: reserved bits 620*5113495bSYour Name * @pco_phase: PCO Phase 621*5113495bSYour Name * @pco_active: PCO state 622*5113495bSYour Name * @lsig_txop_protection_full_support: L-Sig TXOP Protection Full Support 623*5113495bSYour Name * @secondary_beacon: Beacon ID 624*5113495bSYour Name * @dual_cts_protection: Dual CTS protection Required 625*5113495bSYour Name * @basic_stbc_mcs: Basic STBC MCS 626*5113495bSYour Name */ 627*5113495bSYour Name struct mlme_ht_info_field_3 { 628*5113495bSYour Name uint16_t reserved:4; 629*5113495bSYour Name uint16_t pco_phase:1; 630*5113495bSYour Name uint16_t pco_active:1; 631*5113495bSYour Name uint16_t lsig_txop_protection_full_support:1; 632*5113495bSYour Name uint16_t secondary_beacon:1; 633*5113495bSYour Name uint16_t dual_cts_protection:1; 634*5113495bSYour Name uint16_t basic_stbc_mcs:7; 635*5113495bSYour Name } qdf_packed; 636*5113495bSYour Name #else 637*5113495bSYour Name struct mlme_ht_info_field_3 { 638*5113495bSYour Name uint16_t basic_stbc_mcs:7; 639*5113495bSYour Name uint16_t dual_cts_protection:1; 640*5113495bSYour Name uint16_t secondary_beacon:1; 641*5113495bSYour Name uint16_t lsig_txop_protection_full_support:1; 642*5113495bSYour Name uint16_t pco_active:1; 643*5113495bSYour Name uint16_t pco_phase:1; 644*5113495bSYour Name uint16_t reserved:4; 645*5113495bSYour Name } qdf_packed; 646*5113495bSYour Name #endif 647*5113495bSYour Name 648*5113495bSYour Name /** 649*5113495bSYour Name * struct wlan_mlme_ht_caps - HT Capabilities related config items 650*5113495bSYour Name * @ht_cap_info: HT capabilities Info Structure 651*5113495bSYour Name * @ampdu_params: AMPDU parameters 652*5113495bSYour Name * @ext_cap_info: HT EXT capabilities info 653*5113495bSYour Name * @info_field_1: HT Information Subset 1 654*5113495bSYour Name * @info_field_2: HT Information Subset 2 655*5113495bSYour Name * @info_field_3: HT Information Subset 3 656*5113495bSYour Name * @short_preamble: Short Preamble support 657*5113495bSYour Name * @enable_ampdu_ps: Enable AMPDU Power Save 658*5113495bSYour Name * @enable_smps: Enabled SM Power Save 659*5113495bSYour Name * @smps : SM Power Save mode 660*5113495bSYour Name * @max_num_amsdu: Max number of AMSDU 661*5113495bSYour Name * @tx_ldpc_enable: Enable Tx LDPC 662*5113495bSYour Name * @short_slot_time_enabled: Enabled/disable short slot time 663*5113495bSYour Name */ 664*5113495bSYour Name struct wlan_mlme_ht_caps { 665*5113495bSYour Name struct mlme_ht_capabilities_info ht_cap_info; 666*5113495bSYour Name struct mlme_ht_param_info ampdu_params; 667*5113495bSYour Name struct mlme_ht_ext_cap_info ext_cap_info; 668*5113495bSYour Name struct mlme_ht_info_field_1 info_field_1; 669*5113495bSYour Name struct mlme_ht_info_field_2 info_field_2; 670*5113495bSYour Name struct mlme_ht_info_field_3 info_field_3; 671*5113495bSYour Name bool short_preamble; 672*5113495bSYour Name bool enable_ampdu_ps; 673*5113495bSYour Name bool enable_smps; 674*5113495bSYour Name uint8_t smps; 675*5113495bSYour Name uint8_t max_num_amsdu; 676*5113495bSYour Name uint8_t tx_ldpc_enable; 677*5113495bSYour Name bool short_slot_time_enabled; 678*5113495bSYour Name }; 679*5113495bSYour Name 680*5113495bSYour Name #define MLME_CFG_WPS_UUID_MAX_LEN 16 681*5113495bSYour Name /** 682*5113495bSYour Name * struct wlan_mlme_wps_params - All wps based related cfg items 683*5113495bSYour Name * 684*5113495bSYour Name * @enable_wps: to enable wps 685*5113495bSYour Name * @wps_state: current wps state 686*5113495bSYour Name * @wps_version: wps version 687*5113495bSYour Name * @wps_cfg_method: wps config method 688*5113495bSYour Name * @wps_primary_device_category: wps primary device category 689*5113495bSYour Name * @wps_primary_device_oui: primary device OUI 690*5113495bSYour Name * @wps_device_sub_category: device sub category 691*5113495bSYour Name * @wps_device_password_id: password id of device 692*5113495bSYour Name * @wps_uuid: wps uuid to be sent in probe 693*5113495bSYour Name */ 694*5113495bSYour Name struct wlan_mlme_wps_params { 695*5113495bSYour Name uint8_t enable_wps; 696*5113495bSYour Name uint8_t wps_state; 697*5113495bSYour Name uint8_t wps_version; 698*5113495bSYour Name uint32_t wps_cfg_method; 699*5113495bSYour Name uint32_t wps_primary_device_category; 700*5113495bSYour Name uint32_t wps_primary_device_oui; 701*5113495bSYour Name uint16_t wps_device_sub_category; 702*5113495bSYour Name uint32_t wps_device_password_id; 703*5113495bSYour Name struct mlme_cfg_str wps_uuid; 704*5113495bSYour Name }; 705*5113495bSYour Name 706*5113495bSYour Name #define MLME_CFG_LISTEN_INTERVAL 1 707*5113495bSYour Name #define MLME_CFG_BEACON_INTERVAL_DEF 100 708*5113495bSYour Name #define MLME_CFG_TX_MGMT_RATE_DEF 0xFF 709*5113495bSYour Name #define MLME_CFG_TX_MGMT_2G_RATE_DEF 0xFF 710*5113495bSYour Name #define MLME_CFG_TX_MGMT_5G_RATE_DEF 0xFF 711*5113495bSYour Name 712*5113495bSYour Name /** 713*5113495bSYour Name * struct wlan_mlme_cfg_sap - SAP related config items 714*5113495bSYour Name * @cfg_ssid: SSID to be configured 715*5113495bSYour Name * @beacon_interval: beacon interval 716*5113495bSYour Name * @dtim_interval: dtim interval 717*5113495bSYour Name * @listen_interval: listen interval 718*5113495bSYour Name * @sap_11g_policy: Check if 11g support is enabled 719*5113495bSYour Name * @assoc_sta_limit: Limit on number of STA associated to SAP 720*5113495bSYour Name * @enable_lte_coex: Flag for LTE coexistence 721*5113495bSYour Name * @rate_tx_mgmt: mgmt frame tx rate 722*5113495bSYour Name * @rate_tx_mgmt_2g: mgmt frame tx rate for 2G band 723*5113495bSYour Name * @rate_tx_mgmt_5g: mgmt frame tx rate for 5G band 724*5113495bSYour Name * @tele_bcn_wakeup_en: beacon wakeup enable/disable 725*5113495bSYour Name * @tele_bcn_max_li: max listen interval 726*5113495bSYour Name * @sap_get_peer_info: get peer info 727*5113495bSYour Name * @sap_allow_all_chan_param_name: allow all channels 728*5113495bSYour Name * @sap_max_no_peers: Maximum number of peers 729*5113495bSYour Name * @sap_max_offload_peers: Maximum number of peer offloads 730*5113495bSYour Name * @sap_max_offload_reorder_buffs: Maximum offload reorder buffs 731*5113495bSYour Name * @sap_ch_switch_beacon_cnt: Number of beacons to be sent out during CSA 732*5113495bSYour Name * @sap_internal_restart: flag to check if sap restart is in progress 733*5113495bSYour Name * @sap_ch_switch_mode: Channel switch test mode enable/disable 734*5113495bSYour Name * @chan_switch_hostapd_rate_enabled_name: enable/disable skip hostapd rate 735*5113495bSYour Name * @reduced_beacon_interval: reduced beacon interval value 736*5113495bSYour Name * @max_li_modulated_dtim_time: Max modulated DTIM time. 737*5113495bSYour Name * @country_code_priority: Country code priority. 738*5113495bSYour Name * @sap_pref_chan_location: SAP Preferred channel location. 739*5113495bSYour Name * @sap_force_11n_for_11ac: 740*5113495bSYour Name * @go_force_11n_for_11ac: 741*5113495bSYour Name * @ap_random_bssid_enable: 742*5113495bSYour Name * @sap_mcc_chnl_avoid: SAP MCC channel avoidance flag 743*5113495bSYour Name * @sap_11ac_override: Overrirde SAP bandwidth to 11ac 744*5113495bSYour Name * @go_11ac_override: Override GO bandwidth to 11ac 745*5113495bSYour Name * @sap_sae_enabled: enable sae in sap mode 746*5113495bSYour Name * @is_sap_bcast_deauth_enabled: enable bcast deauth for sap 747*5113495bSYour Name * @is_6g_sap_fd_enabled: enable fils discovery on sap 748*5113495bSYour Name * @disable_bcn_prot: disable beacon protection for sap 749*5113495bSYour Name * @sap_ps_with_twt_enable: SAP power save with TWT 750*5113495bSYour Name */ 751*5113495bSYour Name struct wlan_mlme_cfg_sap { 752*5113495bSYour Name uint16_t beacon_interval; 753*5113495bSYour Name uint16_t dtim_interval; 754*5113495bSYour Name uint16_t listen_interval; 755*5113495bSYour Name bool sap_11g_policy; 756*5113495bSYour Name uint8_t assoc_sta_limit; 757*5113495bSYour Name bool enable_lte_coex; 758*5113495bSYour Name uint8_t rate_tx_mgmt; 759*5113495bSYour Name uint8_t rate_tx_mgmt_2g; 760*5113495bSYour Name uint8_t rate_tx_mgmt_5g; 761*5113495bSYour Name bool tele_bcn_wakeup_en; 762*5113495bSYour Name uint8_t tele_bcn_max_li; 763*5113495bSYour Name bool sap_get_peer_info; 764*5113495bSYour Name bool sap_allow_all_chan_param_name; 765*5113495bSYour Name uint8_t sap_max_no_peers; 766*5113495bSYour Name uint8_t sap_max_offload_peers; 767*5113495bSYour Name uint8_t sap_max_offload_reorder_buffs; 768*5113495bSYour Name uint8_t sap_ch_switch_beacon_cnt; 769*5113495bSYour Name bool sap_internal_restart; 770*5113495bSYour Name bool sap_ch_switch_mode; 771*5113495bSYour Name bool chan_switch_hostapd_rate_enabled_name; 772*5113495bSYour Name uint8_t reduced_beacon_interval; 773*5113495bSYour Name uint8_t max_li_modulated_dtim_time; 774*5113495bSYour Name bool country_code_priority; 775*5113495bSYour Name uint8_t sap_pref_chan_location; 776*5113495bSYour Name bool sap_force_11n_for_11ac; 777*5113495bSYour Name bool go_force_11n_for_11ac; 778*5113495bSYour Name bool ap_random_bssid_enable; 779*5113495bSYour Name uint8_t sap_mcc_chnl_avoid; 780*5113495bSYour Name bool sap_11ac_override; 781*5113495bSYour Name bool go_11ac_override; 782*5113495bSYour Name bool sap_sae_enabled; 783*5113495bSYour Name bool is_sap_bcast_deauth_enabled; 784*5113495bSYour Name bool is_6g_sap_fd_enabled; 785*5113495bSYour Name bool disable_bcn_prot; 786*5113495bSYour Name bool sap_ps_with_twt_enable; 787*5113495bSYour Name }; 788*5113495bSYour Name 789*5113495bSYour Name /** 790*5113495bSYour Name * struct wlan_mlme_dfs_cfg - DFS Capabilities related config items 791*5113495bSYour Name * @dfs_master_capable: Is DFS master mode support enabled 792*5113495bSYour Name * @dfs_disable_channel_switch: disable channel switch on radar detection 793*5113495bSYour Name * @dfs_ignore_cac: Disable cac 794*5113495bSYour Name * @dfs_filter_offload: dfs filter offloaad 795*5113495bSYour Name * @dfs_beacon_tx_enhanced: enhance dfs beacon tx 796*5113495bSYour Name * @dfs_prefer_non_dfs: perefer non dfs channel after radar 797*5113495bSYour Name * @dfs_disable_japan_w53: Disable W53 channels 798*5113495bSYour Name * @sap_tx_leakage_threshold: sap tx leakage threshold 799*5113495bSYour Name * @dfs_pri_multiplier: dfs_pri_multiplier for handle missing pulses 800*5113495bSYour Name */ 801*5113495bSYour Name struct wlan_mlme_dfs_cfg { 802*5113495bSYour Name bool dfs_master_capable; 803*5113495bSYour Name bool dfs_disable_channel_switch; 804*5113495bSYour Name bool dfs_ignore_cac; 805*5113495bSYour Name bool dfs_filter_offload; 806*5113495bSYour Name bool dfs_beacon_tx_enhanced; 807*5113495bSYour Name bool dfs_prefer_non_dfs; 808*5113495bSYour Name bool dfs_disable_japan_w53; 809*5113495bSYour Name uint32_t sap_tx_leakage_threshold; 810*5113495bSYour Name uint32_t dfs_pri_multiplier; 811*5113495bSYour Name }; 812*5113495bSYour Name 813*5113495bSYour Name /** 814*5113495bSYour Name * struct wlan_mlme_mbo - Multiband Operation related ini configs 815*5113495bSYour Name * @mbo_candidate_rssi_thres: candidate AP's min rssi to accept it 816*5113495bSYour Name * @mbo_current_rssi_thres: Connected AP's rssi threshold below which 817*5113495bSYour Name * transition is considered 818*5113495bSYour Name * @mbo_current_rssi_mcc_thres: connected AP's RSSI threshold value to prefer 819*5113495bSYour Name * against MCC 820*5113495bSYour Name * @mbo_candidate_rssi_btc_thres: Candidate AP's minimum RSSI threshold to 821*5113495bSYour Name * prefer it even in BT coex. 822*5113495bSYour Name */ 823*5113495bSYour Name struct wlan_mlme_mbo { 824*5113495bSYour Name int8_t mbo_candidate_rssi_thres; 825*5113495bSYour Name int8_t mbo_current_rssi_thres; 826*5113495bSYour Name int8_t mbo_current_rssi_mcc_thres; 827*5113495bSYour Name int8_t mbo_candidate_rssi_btc_thres; 828*5113495bSYour Name }; 829*5113495bSYour Name 830*5113495bSYour Name /** 831*5113495bSYour Name * struct wlan_mlme_powersave - Powersave related ini configs 832*5113495bSYour Name * @is_imps_enabled: flag to enable/disable IMPS 833*5113495bSYour Name * @is_bmps_enabled: flag to enable/disable BMPS 834*5113495bSYour Name * @auto_bmps_timer_val: auto BMPS timer value 835*5113495bSYour Name * @bmps_min_listen_interval: BMPS listen interval minimum value 836*5113495bSYour Name * @bmps_max_listen_interval: BMPS listen interval maximum value 837*5113495bSYour Name * @dtim_selection_diversity: dtim selection diversity value to be sent to fw 838*5113495bSYour Name */ 839*5113495bSYour Name struct wlan_mlme_powersave { 840*5113495bSYour Name bool is_imps_enabled; 841*5113495bSYour Name bool is_bmps_enabled; 842*5113495bSYour Name uint32_t auto_bmps_timer_val; 843*5113495bSYour Name uint32_t bmps_min_listen_interval; 844*5113495bSYour Name uint32_t bmps_max_listen_interval; 845*5113495bSYour Name uint32_t dtim_selection_diversity; 846*5113495bSYour Name }; 847*5113495bSYour Name 848*5113495bSYour Name /** 849*5113495bSYour Name * struct mlme_vht_capabilities_info - MLME VHT config items 850*5113495bSYour Name * @supp_chan_width: Supported Channel Width 851*5113495bSYour Name * @ldpc_coding_cap: LDPC Coding Capability 852*5113495bSYour Name * @short_gi_80mhz: 80MHz Short Guard Interval 853*5113495bSYour Name * @short_gi_160mhz: 160MHz Short Guard Interval 854*5113495bSYour Name * @tx_stbc: Tx STBC cap 855*5113495bSYour Name * @rx_stbc: Rx STBC cap 856*5113495bSYour Name * @su_bformer: SU Beamformer cap 857*5113495bSYour Name * @su_bformee: SU Beamformee cap 858*5113495bSYour Name * @tx_bfee_ant_supp: Tx beamformee anti supp 859*5113495bSYour Name * @num_soundingdim: Number of sounding dimensions 860*5113495bSYour Name * @mu_bformer: MU Beamformer cap 861*5113495bSYour Name * @txop_ps: Tx OPs in power save 862*5113495bSYour Name * @htc_vhtc: htc_vht capability 863*5113495bSYour Name * @link_adap_cap: Link adaptation capability 864*5113495bSYour Name * @rx_antpattern: Rx Antenna Pattern cap 865*5113495bSYour Name * @tx_antpattern: Tx Antenna Pattern cap 866*5113495bSYour Name * @rx_mcs_map: Rx MCS Map 867*5113495bSYour Name * @tx_mcs_map: Tx MCS Map 868*5113495bSYour Name * @rx_supp_data_rate: Rx highest supported data rate 869*5113495bSYour Name * @tx_supp_data_rate: Tx highest supported data rate 870*5113495bSYour Name * @basic_mcs_set: Basic MCS set 871*5113495bSYour Name * @enable_txbf_20mhz: enable tx bf for 20mhz 872*5113495bSYour Name * @channel_width: Channel width capability for 11ac 873*5113495bSYour Name * @rx_mcs: VHT Rx MCS capability for 1x1 mode 874*5113495bSYour Name * @tx_mcs: VHT Tx MCS capability for 1x1 mode 875*5113495bSYour Name * @rx_mcs2x2: VHT Rx MCS capability for 2x2 mode 876*5113495bSYour Name * @tx_mcs2x2: VHT Tx MCS capability for 2x2 mode 877*5113495bSYour Name * @enable_vht20_mcs9: Enables VHT MCS9 in 20M BW operation 878*5113495bSYour Name * @enable2x2: Enables/disables VHT Tx/Rx MCS values for 2x2 879*5113495bSYour Name * @enable_mu_bformee: Enables/disables multi-user (MU) 880*5113495bSYour Name * beam formee capability 881*5113495bSYour Name * @enable_paid: Enables/disables paid 882*5113495bSYour Name * @enable_gid: Enables/disables gid 883*5113495bSYour Name * @b24ghz_band: To control VHT support in 2.4 GHz band 884*5113495bSYour Name * @vendor_24ghz_band: to control VHT support based on vendor 885*5113495bSYour Name * ie in 2.4 GHz band 886*5113495bSYour Name * @ampdu_len_exponent: To handle maximum receive AMPDU ampdu len exponent 887*5113495bSYour Name * @ampdu_len: To handle maximum receive AMPDU ampdu len 888*5113495bSYour Name * @tx_bfee_sap: enable tx bfee SAp 889*5113495bSYour Name * @vendor_vhtie: enable subfee vendor vht ie 890*5113495bSYour Name * @tx_bf_cap: Transmit bf capability 891*5113495bSYour Name * @as_cap: Antenna sharing capability info 892*5113495bSYour Name * @disable_ldpc_with_txbf_ap: Disable ldpc capability 893*5113495bSYour Name * @vht_mcs_10_11_supp: VHT MCS 10 & 11 support 894*5113495bSYour Name * @extended_nss_bw_supp: 895*5113495bSYour Name * @vht_extended_nss_bw_cap: 896*5113495bSYour Name * @max_nsts_total: 897*5113495bSYour Name * @restricted_80p80_bw_supp: 898*5113495bSYour Name */ 899*5113495bSYour Name struct mlme_vht_capabilities_info { 900*5113495bSYour Name uint8_t supp_chan_width; 901*5113495bSYour Name bool ldpc_coding_cap; 902*5113495bSYour Name bool short_gi_80mhz; 903*5113495bSYour Name bool short_gi_160mhz; 904*5113495bSYour Name bool tx_stbc; 905*5113495bSYour Name bool rx_stbc; 906*5113495bSYour Name bool su_bformer; 907*5113495bSYour Name bool su_bformee; 908*5113495bSYour Name uint8_t tx_bfee_ant_supp; 909*5113495bSYour Name uint8_t num_soundingdim; 910*5113495bSYour Name bool mu_bformer; 911*5113495bSYour Name bool txop_ps; 912*5113495bSYour Name bool htc_vhtc; 913*5113495bSYour Name uint8_t link_adap_cap; 914*5113495bSYour Name bool rx_antpattern; 915*5113495bSYour Name bool tx_antpattern; 916*5113495bSYour Name uint32_t rx_mcs_map; 917*5113495bSYour Name uint32_t tx_mcs_map; 918*5113495bSYour Name uint32_t rx_supp_data_rate; 919*5113495bSYour Name uint32_t tx_supp_data_rate; 920*5113495bSYour Name uint32_t basic_mcs_set; 921*5113495bSYour Name bool enable_txbf_20mhz; 922*5113495bSYour Name uint8_t channel_width; 923*5113495bSYour Name uint32_t rx_mcs; 924*5113495bSYour Name uint32_t tx_mcs; 925*5113495bSYour Name uint8_t rx_mcs2x2; 926*5113495bSYour Name uint8_t tx_mcs2x2; 927*5113495bSYour Name bool enable_vht20_mcs9; 928*5113495bSYour Name bool enable2x2; 929*5113495bSYour Name bool enable_mu_bformee; 930*5113495bSYour Name bool enable_paid; 931*5113495bSYour Name bool enable_gid; 932*5113495bSYour Name bool b24ghz_band; 933*5113495bSYour Name bool vendor_24ghz_band; 934*5113495bSYour Name uint8_t ampdu_len_exponent; 935*5113495bSYour Name uint8_t ampdu_len; 936*5113495bSYour Name bool tx_bfee_sap; 937*5113495bSYour Name bool vendor_vhtie; 938*5113495bSYour Name uint8_t tx_bf_cap; 939*5113495bSYour Name uint8_t as_cap; 940*5113495bSYour Name bool disable_ldpc_with_txbf_ap; 941*5113495bSYour Name bool vht_mcs_10_11_supp; 942*5113495bSYour Name uint8_t extended_nss_bw_supp; 943*5113495bSYour Name uint8_t vht_extended_nss_bw_cap; 944*5113495bSYour Name uint8_t max_nsts_total; 945*5113495bSYour Name bool restricted_80p80_bw_supp; 946*5113495bSYour Name }; 947*5113495bSYour Name 948*5113495bSYour Name /** 949*5113495bSYour Name * struct wlan_mlme_vht_caps - VHT Capabilities related config items 950*5113495bSYour Name * @vht_cap_info: VHT capabilities Info Structure 951*5113495bSYour Name */ 952*5113495bSYour Name struct wlan_mlme_vht_caps { 953*5113495bSYour Name struct mlme_vht_capabilities_info vht_cap_info; 954*5113495bSYour Name }; 955*5113495bSYour Name 956*5113495bSYour Name /** 957*5113495bSYour Name * struct wlan_vht_config - VHT capabilities 958*5113495bSYour Name * @max_mpdu_len: MPDU length 959*5113495bSYour Name * @supported_channel_widthset: channel width set 960*5113495bSYour Name * @ldpc_coding: LDPC coding capability 961*5113495bSYour Name * @shortgi80: short GI 80 support 962*5113495bSYour Name * @shortgi160and80plus80: short Gi 160 & 80+80 support 963*5113495bSYour Name * @tx_stbc: Tx STBC cap 964*5113495bSYour Name * @rx_stbc: Rx STBC cap 965*5113495bSYour Name * @su_beam_former: SU beam former cap 966*5113495bSYour Name * @su_beam_formee: SU beam formee cap 967*5113495bSYour Name * @csnof_beamformer_antSup: Antenna support for beamforming 968*5113495bSYour Name * @num_soundingdim: Sound dimensions 969*5113495bSYour Name * @mu_beam_former: MU beam former cap 970*5113495bSYour Name * @mu_beam_formee: MU beam formee cap 971*5113495bSYour Name * @vht_txops: TXOP power save 972*5113495bSYour Name * @htc_vhtcap: HTC VHT capability 973*5113495bSYour Name * @max_ampdu_lenexp: AMPDU length 974*5113495bSYour Name * @vht_link_adapt: VHT link adapatation capable 975*5113495bSYour Name * @rx_antpattern: RX antenna pattern 976*5113495bSYour Name * @tx_antpattern: TX antenna pattern 977*5113495bSYour Name * @extended_nss_bw_supp: 978*5113495bSYour Name * @caps: entire capability bitmap 979*5113495bSYour Name */ 980*5113495bSYour Name struct wlan_vht_config { 981*5113495bSYour Name union { 982*5113495bSYour Name struct { 983*5113495bSYour Name uint32_t max_mpdu_len:2; 984*5113495bSYour Name uint32_t supported_channel_widthset:2; 985*5113495bSYour Name uint32_t ldpc_coding:1; 986*5113495bSYour Name uint32_t shortgi80:1; 987*5113495bSYour Name uint32_t shortgi160and80plus80:1; 988*5113495bSYour Name uint32_t tx_stbc:1; 989*5113495bSYour Name uint32_t rx_stbc:3; 990*5113495bSYour Name uint32_t su_beam_former:1; 991*5113495bSYour Name uint32_t su_beam_formee:1; 992*5113495bSYour Name uint32_t csnof_beamformer_antSup:3; 993*5113495bSYour Name uint32_t num_soundingdim:3; 994*5113495bSYour Name uint32_t mu_beam_former:1; 995*5113495bSYour Name uint32_t mu_beam_formee:1; 996*5113495bSYour Name uint32_t vht_txops:1; 997*5113495bSYour Name uint32_t htc_vhtcap:1; 998*5113495bSYour Name uint32_t max_ampdu_lenexp:3; 999*5113495bSYour Name uint32_t vht_link_adapt:2; 1000*5113495bSYour Name uint32_t rx_antpattern:1; 1001*5113495bSYour Name uint32_t tx_antpattern:1; 1002*5113495bSYour Name uint32_t extended_nss_bw_supp:2; 1003*5113495bSYour Name }; 1004*5113495bSYour Name uint32_t caps; 1005*5113495bSYour Name }; 1006*5113495bSYour Name }; 1007*5113495bSYour Name 1008*5113495bSYour Name /** 1009*5113495bSYour Name * struct wlan_mlme_qos - QOS TX/RX aggregation related CFG items 1010*5113495bSYour Name * @tx_aggregation_size: TX aggr size in number of MPDUs 1011*5113495bSYour Name * @tx_aggregation_size_be: No. of MPDUs for BE queue for TX aggr 1012*5113495bSYour Name * @tx_aggregation_size_bk: No. of MPDUs for BK queue for TX aggr 1013*5113495bSYour Name * @tx_aggregation_size_vi: No. of MPDUs for VI queue for TX aggr 1014*5113495bSYour Name * @tx_aggregation_size_vo: No. of MPDUs for VO queue for TX aggr 1015*5113495bSYour Name * @rx_aggregation_size: No. of MPDUs for RX aggr 1016*5113495bSYour Name * @tx_aggr_sw_retry_threshold_be: aggr sw retry threshold for BE 1017*5113495bSYour Name * @tx_aggr_sw_retry_threshold_bk: aggr sw retry threshold for BK 1018*5113495bSYour Name * @tx_aggr_sw_retry_threshold_vi: aggr sw retry threshold for VI 1019*5113495bSYour Name * @tx_aggr_sw_retry_threshold_vo: aggr sw retry threshold for VO 1020*5113495bSYour Name * @tx_aggr_sw_retry_threshold: aggr sw retry threshold 1021*5113495bSYour Name * @tx_non_aggr_sw_retry_threshold_be: non aggr sw retry threshold for BE 1022*5113495bSYour Name * @tx_non_aggr_sw_retry_threshold_bk: non aggr sw retry threshold for BK 1023*5113495bSYour Name * @tx_non_aggr_sw_retry_threshold_vi: non aggr sw retry threshold for VI 1024*5113495bSYour Name * @tx_non_aggr_sw_retry_threshold_vo: non aggr sw retry threshold for VO 1025*5113495bSYour Name * @tx_non_aggr_sw_retry_threshold: non aggr sw retry threshold 1026*5113495bSYour Name * @sap_max_inactivity_override: Override updating ap_sta_inactivity from 1027*5113495bSYour Name * hostapd.conf 1028*5113495bSYour Name * @sap_uapsd_enabled: Flag to enable/disable UAPSD for SAP 1029*5113495bSYour Name */ 1030*5113495bSYour Name struct wlan_mlme_qos { 1031*5113495bSYour Name uint32_t tx_aggregation_size; 1032*5113495bSYour Name uint32_t tx_aggregation_size_be; 1033*5113495bSYour Name uint32_t tx_aggregation_size_bk; 1034*5113495bSYour Name uint32_t tx_aggregation_size_vi; 1035*5113495bSYour Name uint32_t tx_aggregation_size_vo; 1036*5113495bSYour Name uint32_t rx_aggregation_size; 1037*5113495bSYour Name uint32_t tx_aggr_sw_retry_threshold_be; 1038*5113495bSYour Name uint32_t tx_aggr_sw_retry_threshold_bk; 1039*5113495bSYour Name uint32_t tx_aggr_sw_retry_threshold_vi; 1040*5113495bSYour Name uint32_t tx_aggr_sw_retry_threshold_vo; 1041*5113495bSYour Name uint32_t tx_aggr_sw_retry_threshold; 1042*5113495bSYour Name uint32_t tx_non_aggr_sw_retry_threshold_be; 1043*5113495bSYour Name uint32_t tx_non_aggr_sw_retry_threshold_bk; 1044*5113495bSYour Name uint32_t tx_non_aggr_sw_retry_threshold_vi; 1045*5113495bSYour Name uint32_t tx_non_aggr_sw_retry_threshold_vo; 1046*5113495bSYour Name uint32_t tx_non_aggr_sw_retry_threshold; 1047*5113495bSYour Name bool sap_max_inactivity_override; 1048*5113495bSYour Name bool sap_uapsd_enabled; 1049*5113495bSYour Name }; 1050*5113495bSYour Name 1051*5113495bSYour Name #ifdef WLAN_FEATURE_11AX 1052*5113495bSYour Name #define MLME_HE_PPET_LEN 25 1053*5113495bSYour Name #define WNI_CFG_HE_OPS_BSS_COLOR_MAX 0x3F 1054*5113495bSYour Name 1055*5113495bSYour Name /** 1056*5113495bSYour Name * struct wlan_mlme_he_caps - HE Capabilities related config items 1057*5113495bSYour Name * @dot11_he_cap: 1058*5113495bSYour Name * @he_cap_orig: 1059*5113495bSYour Name * @he_ppet_2g: 1060*5113495bSYour Name * @he_ppet_5g: 1061*5113495bSYour Name * @he_ops_basic_mcs_nss: 1062*5113495bSYour Name * @he_dynamic_fragmentation: 1063*5113495bSYour Name * @enable_ul_mimo: 1064*5113495bSYour Name * @enable_ul_ofdm: 1065*5113495bSYour Name * @he_sta_obsspd: 1066*5113495bSYour Name * @he_mcs_12_13_supp_2g: 1067*5113495bSYour Name * @he_mcs_12_13_supp_5g: 1068*5113495bSYour Name * @disable_sap_mcs_12_13: Bitmap to disable he mcs 12 13 for SAP 1069*5113495bSYour Name */ 1070*5113495bSYour Name struct wlan_mlme_he_caps { 1071*5113495bSYour Name tDot11fIEhe_cap dot11_he_cap; 1072*5113495bSYour Name tDot11fIEhe_cap he_cap_orig; 1073*5113495bSYour Name uint8_t he_ppet_2g[MLME_HE_PPET_LEN]; 1074*5113495bSYour Name uint8_t he_ppet_5g[MLME_HE_PPET_LEN]; 1075*5113495bSYour Name uint32_t he_ops_basic_mcs_nss; 1076*5113495bSYour Name uint8_t he_dynamic_fragmentation; 1077*5113495bSYour Name uint8_t enable_ul_mimo; 1078*5113495bSYour Name uint8_t enable_ul_ofdm; 1079*5113495bSYour Name uint32_t he_sta_obsspd; 1080*5113495bSYour Name uint16_t he_mcs_12_13_supp_2g; 1081*5113495bSYour Name uint16_t he_mcs_12_13_supp_5g; 1082*5113495bSYour Name uint32_t disable_sap_mcs_12_13; 1083*5113495bSYour Name }; 1084*5113495bSYour Name #endif 1085*5113495bSYour Name 1086*5113495bSYour Name #ifdef WLAN_FEATURE_11BE 1087*5113495bSYour Name /** 1088*5113495bSYour Name * struct wlan_mlme_eht_caps - EHT Capabilities related config items 1089*5113495bSYour Name * @dot11_eht_cap: current EHT capabilities 1090*5113495bSYour Name * @eht_cap_orig: original EHT capabilities 1091*5113495bSYour Name */ 1092*5113495bSYour Name struct wlan_mlme_eht_caps { 1093*5113495bSYour Name tDot11fIEeht_cap dot11_eht_cap; 1094*5113495bSYour Name tDot11fIEeht_cap eht_cap_orig; 1095*5113495bSYour Name /* Add members to store INI configuration corresponding to 11be */ 1096*5113495bSYour Name }; 1097*5113495bSYour Name #endif 1098*5113495bSYour Name 1099*5113495bSYour Name /** 1100*5113495bSYour Name * struct wlan_mlme_chain_cfg - Chain info related structure 1101*5113495bSYour Name * @max_tx_chains_2g: max tx chains supported in 2.4ghz band 1102*5113495bSYour Name * @max_rx_chains_2g: max rx chains supported in 2.4ghz band 1103*5113495bSYour Name * @max_tx_chains_5g: max tx chains supported in 5ghz band 1104*5113495bSYour Name * @max_rx_chains_5g: max rx chains supported in 5ghz band 1105*5113495bSYour Name */ 1106*5113495bSYour Name struct wlan_mlme_chain_cfg { 1107*5113495bSYour Name uint8_t max_tx_chains_2g; 1108*5113495bSYour Name uint8_t max_rx_chains_2g; 1109*5113495bSYour Name uint8_t max_tx_chains_5g; 1110*5113495bSYour Name uint8_t max_rx_chains_5g; 1111*5113495bSYour Name }; 1112*5113495bSYour Name 1113*5113495bSYour Name /** 1114*5113495bSYour Name * struct mlme_tgt_caps - mlme related capability coming from target (FW) 1115*5113495bSYour Name * @data_stall_recovery_fw_support: does target supports data stall recovery. 1116*5113495bSYour Name * @bigtk_support: does the target support bigtk capability or not. 1117*5113495bSYour Name * @stop_all_host_scan_support: Target capability that indicates if the target 1118*5113495bSYour Name * supports stop all host scan request type. 1119*5113495bSYour Name * @peer_create_conf_support: Peer create confirmation command support 1120*5113495bSYour Name * @dual_sta_roam_fw_support: Firmware support for dual sta roaming feature 1121*5113495bSYour Name * @ocv_support: FW supports OCV 1122*5113495bSYour Name * 1123*5113495bSYour Name * Add all the mlme-tgt related capabilities here, and the public API would fill 1124*5113495bSYour Name * the related capability in the required mlme cfg structure. 1125*5113495bSYour Name */ 1126*5113495bSYour Name struct mlme_tgt_caps { 1127*5113495bSYour Name bool data_stall_recovery_fw_support; 1128*5113495bSYour Name bool bigtk_support; 1129*5113495bSYour Name bool stop_all_host_scan_support; 1130*5113495bSYour Name bool peer_create_conf_support; 1131*5113495bSYour Name bool dual_sta_roam_fw_support; 1132*5113495bSYour Name bool ocv_support; 1133*5113495bSYour Name }; 1134*5113495bSYour Name 1135*5113495bSYour Name /** 1136*5113495bSYour Name * struct wlan_mlme_rates - RATES related config items 1137*5113495bSYour Name * @cfp_period: cfp period info 1138*5113495bSYour Name * @cfp_max_duration: cfp Max duration info 1139*5113495bSYour Name * @max_htmcs_txdata: max HT mcs info for Tx 1140*5113495bSYour Name * @disable_abg_rate_txdata: disable abg rate info for tx data 1141*5113495bSYour Name * @sap_max_mcs_txdata: sap max mcs info 1142*5113495bSYour Name * @disable_high_ht_mcs_2x2: disable high mcs for 2x2 info 1143*5113495bSYour Name * @supported_11b: supported 11B rates 1144*5113495bSYour Name * @supported_11a: supported 11A rates 1145*5113495bSYour Name * @supported_mcs_set: supported MCS set 1146*5113495bSYour Name * @basic_mcs_set: basic MCS set 1147*5113495bSYour Name * @current_mcs_set: current MCS set 1148*5113495bSYour Name */ 1149*5113495bSYour Name struct wlan_mlme_rates { 1150*5113495bSYour Name uint8_t cfp_period; 1151*5113495bSYour Name uint16_t cfp_max_duration; 1152*5113495bSYour Name uint16_t max_htmcs_txdata; 1153*5113495bSYour Name bool disable_abg_rate_txdata; 1154*5113495bSYour Name uint16_t sap_max_mcs_txdata; 1155*5113495bSYour Name uint8_t disable_high_ht_mcs_2x2; 1156*5113495bSYour Name struct mlme_cfg_str supported_11b; 1157*5113495bSYour Name struct mlme_cfg_str supported_11a; 1158*5113495bSYour Name struct mlme_cfg_str supported_mcs_set; 1159*5113495bSYour Name struct mlme_cfg_str basic_mcs_set; 1160*5113495bSYour Name struct mlme_cfg_str current_mcs_set; 1161*5113495bSYour Name }; 1162*5113495bSYour Name 1163*5113495bSYour Name 1164*5113495bSYour Name /* Flags for gLimProtectionControl that is updated in pe session*/ 1165*5113495bSYour Name #define MLME_FORCE_POLICY_PROTECTION_DISABLE 0 1166*5113495bSYour Name #define MLME_FORCE_POLICY_PROTECTION_CTS 1 1167*5113495bSYour Name #define MLME_FORCE_POLICY_PROTECTION_RTS 2 1168*5113495bSYour Name #define MLME_FORCE_POLICY_PROTECTION_DUAL_CTS 3 1169*5113495bSYour Name #define MLME_FORCE_POLICY_PROTECTION_RTS_ALWAYS 4 1170*5113495bSYour Name #define MLME_FORCE_POLICY_PROTECTION_AUTO 5 1171*5113495bSYour Name 1172*5113495bSYour Name /* protection_enabled bits*/ 1173*5113495bSYour Name #define MLME_PROTECTION_ENABLED_FROM_llA 0 1174*5113495bSYour Name #define MLME_PROTECTION_ENABLED_FROM_llB 1 1175*5113495bSYour Name #define MLME_PROTECTION_ENABLED_FROM_llG 2 1176*5113495bSYour Name #define MLME_PROTECTION_ENABLED_HT_20 3 1177*5113495bSYour Name #define MLME_PROTECTION_ENABLED_NON_GF 4 1178*5113495bSYour Name #define MLME_PROTECTION_ENABLED_LSIG_TXOP 5 1179*5113495bSYour Name #define MLME_PROTECTION_ENABLED_RIFS 6 1180*5113495bSYour Name #define MLME_PROTECTION_ENABLED_OBSS 7 1181*5113495bSYour Name #define MLME_PROTECTION_ENABLED_OLBC_FROM_llA 8 1182*5113495bSYour Name #define MLME_PROTECTION_ENABLED_OLBC_FROM_llB 9 1183*5113495bSYour Name #define MLME_PROTECTION_ENABLED_OLBC_FROM_llG 10 1184*5113495bSYour Name #define MLME_PROTECTION_ENABLED_OLBC_HT20 11 1185*5113495bSYour Name #define MLME_PROTECTION_ENABLED_OLBC_NON_GF 12 1186*5113495bSYour Name #define MLME_PROTECTION_ENABLED_OLBC_LSIG_TXOP 13 1187*5113495bSYour Name #define MLME_PROTECTION_ENABLED_OLBC_RIFS 14 1188*5113495bSYour Name #define MLME_PROTECTION_ENABLED_OLBC_OBSS 15 1189*5113495bSYour Name 1190*5113495bSYour Name /** 1191*5113495bSYour Name * struct wlan_mlme_feature_flag - feature related information 1192*5113495bSYour Name * @accept_short_slot_assoc: enable short slot feature 1193*5113495bSYour Name * @enable_hcf: enable HCF feature 1194*5113495bSYour Name * @enable_rsn: enable RSN for connection 1195*5113495bSYour Name * @enable_short_preamble_11g: enable short preamble for 11g 1196*5113495bSYour Name * @enable_short_slot_time_11g: enable shot slot time for 11g 1197*5113495bSYour Name * @enable_ampdu: enable AMPDU feature 1198*5113495bSYour Name * @enable_mcc: enable MCC feature 1199*5113495bSYour Name * @mcc_rts_cts_prot: RTS-CTS protection in MCC 1200*5113495bSYour Name * @mcc_bcast_prob_rsp: broadcast Probe Response in MCC 1201*5113495bSYour Name * @channel_bonding_mode: channel bonding mode 1202*5113495bSYour Name * @enable_block_ack: enable block ack feature 1203*5113495bSYour Name * @channel_bonding_mode_24ghz: configures Channel Bonding in 24 GHz 1204*5113495bSYour Name * @channel_bonding_mode_5ghz: configures Channel Bonding in 5 GHz 1205*5113495bSYour Name * @update_cw_allowed: to check update chan width allowed or not 1206*5113495bSYour Name */ 1207*5113495bSYour Name struct wlan_mlme_feature_flag { 1208*5113495bSYour Name bool accept_short_slot_assoc; 1209*5113495bSYour Name bool enable_hcf; 1210*5113495bSYour Name bool enable_rsn; 1211*5113495bSYour Name bool enable_short_preamble_11g; 1212*5113495bSYour Name bool enable_short_slot_time_11g; 1213*5113495bSYour Name bool enable_ampdu; 1214*5113495bSYour Name bool enable_mcc; 1215*5113495bSYour Name uint8_t mcc_rts_cts_prot; 1216*5113495bSYour Name uint8_t mcc_bcast_prob_rsp; 1217*5113495bSYour Name uint32_t channel_bonding_mode; 1218*5113495bSYour Name uint32_t enable_block_ack; 1219*5113495bSYour Name uint32_t channel_bonding_mode_24ghz; 1220*5113495bSYour Name uint32_t channel_bonding_mode_5ghz; 1221*5113495bSYour Name bool update_cw_allowed; 1222*5113495bSYour Name }; 1223*5113495bSYour Name 1224*5113495bSYour Name /** 1225*5113495bSYour Name * struct wlan_mlme_sap_protection - SAP erp protection config items 1226*5113495bSYour Name * @ignore_peer_ht_opmode: Ignore the ht opmode of the peer. Dynamic via INI 1227*5113495bSYour Name * @enable_ap_obss_protection: enable/disable AP OBSS protection 1228*5113495bSYour Name * @protection_force_policy: Protection force policy. Static via cfg 1229*5113495bSYour Name * @is_ap_prot_enabled: Enable/disable SAP protection 1230*5113495bSYour Name * @ap_protection_mode: AP protection bitmap 1231*5113495bSYour Name * @protection_enabled: Force enable protection. static via cfg 1232*5113495bSYour Name */ 1233*5113495bSYour Name struct wlan_mlme_sap_protection { 1234*5113495bSYour Name bool ignore_peer_ht_opmode; 1235*5113495bSYour Name bool enable_ap_obss_protection; 1236*5113495bSYour Name uint8_t protection_force_policy; 1237*5113495bSYour Name bool is_ap_prot_enabled; 1238*5113495bSYour Name uint16_t ap_protection_mode; 1239*5113495bSYour Name uint32_t protection_enabled; 1240*5113495bSYour Name }; 1241*5113495bSYour Name 1242*5113495bSYour Name /** 1243*5113495bSYour Name * struct wlan_mlme_chainmask - All chainmask related cfg items 1244*5113495bSYour Name * @txchainmask1x1: To set transmit chainmask 1245*5113495bSYour Name * @rxchainmask1x1: To set rx chainmask 1246*5113495bSYour Name * @tx_chain_mask_cck: Used to enable/disable Cck ChainMask 1247*5113495bSYour Name * @tx_chain_mask_1ss: Enables/disables tx chain Mask1ss 1248*5113495bSYour Name * @num_11b_tx_chains: Number of Tx Chains in 11b mode 1249*5113495bSYour Name * @num_11ag_tx_chains: Number of Tx Chains in 11ag mode 1250*5113495bSYour Name * @tx_chain_mask_2g: Tx chain mask for 2g 1251*5113495bSYour Name * @rx_chain_mask_2g: Tx chain mask for 2g 1252*5113495bSYour Name * @tx_chain_mask_5g: Tx chain mask for 5g 1253*5113495bSYour Name * @rx_chain_mask_5g: Rx chain mask for 5g 1254*5113495bSYour Name * @enable_bt_chain_separation: Enable/Disable BT/WLAN Host chain separation 1255*5113495bSYour Name */ 1256*5113495bSYour Name struct wlan_mlme_chainmask { 1257*5113495bSYour Name uint8_t txchainmask1x1; 1258*5113495bSYour Name uint8_t rxchainmask1x1; 1259*5113495bSYour Name bool tx_chain_mask_cck; 1260*5113495bSYour Name uint8_t tx_chain_mask_1ss; 1261*5113495bSYour Name uint16_t num_11b_tx_chains; 1262*5113495bSYour Name uint16_t num_11ag_tx_chains; 1263*5113495bSYour Name uint8_t tx_chain_mask_2g; 1264*5113495bSYour Name uint8_t rx_chain_mask_2g; 1265*5113495bSYour Name uint8_t tx_chain_mask_5g; 1266*5113495bSYour Name uint8_t rx_chain_mask_5g; 1267*5113495bSYour Name bool enable_bt_chain_separation; 1268*5113495bSYour Name }; 1269*5113495bSYour Name 1270*5113495bSYour Name /** 1271*5113495bSYour Name * enum wlan_mlme_ratemask_type: Type of PHY for ratemask 1272*5113495bSYour Name * @WLAN_MLME_RATEMASK_TYPE_NO_MASK: no ratemask set 1273*5113495bSYour Name * @WLAN_MLME_RATEMASK_TYPE_CCK: CCK/OFDM rate 1274*5113495bSYour Name * @WLAN_MLME_RATEMASK_TYPE_HT: HT rate 1275*5113495bSYour Name * @WLAN_MLME_RATEMASK_TYPE_VHT: VHT rate 1276*5113495bSYour Name * @WLAN_MLME_RATEMASK_TYPE_HE: HE rate 1277*5113495bSYour Name * @WLAN_MLME_RATEMASK_TYPE_MAX: max enumeration 1278*5113495bSYour Name * 1279*5113495bSYour Name * This is used for 'type' values in wlan_mlme_ratemask 1280*5113495bSYour Name */ 1281*5113495bSYour Name enum wlan_mlme_ratemask_type { 1282*5113495bSYour Name WLAN_MLME_RATEMASK_TYPE_NO_MASK = 0, 1283*5113495bSYour Name WLAN_MLME_RATEMASK_TYPE_CCK = 1, 1284*5113495bSYour Name WLAN_MLME_RATEMASK_TYPE_HT = 2, 1285*5113495bSYour Name WLAN_MLME_RATEMASK_TYPE_VHT = 3, 1286*5113495bSYour Name WLAN_MLME_RATEMASK_TYPE_HE = 4, 1287*5113495bSYour Name /* keep this last */ 1288*5113495bSYour Name WLAN_MLME_RATEMASK_TYPE_MAX, 1289*5113495bSYour Name }; 1290*5113495bSYour Name 1291*5113495bSYour Name /** 1292*5113495bSYour Name * struct wlan_mlme_ratemask - ratemask config parameters 1293*5113495bSYour Name * @type: Type of PHY the mask to be applied 1294*5113495bSYour Name * @lower32: Lower 32 bits in the 1st 64-bit value 1295*5113495bSYour Name * @higher32: Higher 32 bits in the 1st 64-bit value 1296*5113495bSYour Name * @lower32_2: Lower 32 bits in the 2nd 64-bit value 1297*5113495bSYour Name * @higher32_2: Higher 32 bits in the 2nd 64-bit value 1298*5113495bSYour Name */ 1299*5113495bSYour Name struct wlan_mlme_ratemask { 1300*5113495bSYour Name enum wlan_mlme_ratemask_type type; 1301*5113495bSYour Name uint32_t lower32; 1302*5113495bSYour Name uint32_t higher32; 1303*5113495bSYour Name uint32_t lower32_2; 1304*5113495bSYour Name uint32_t higher32_2; 1305*5113495bSYour Name }; 1306*5113495bSYour Name 1307*5113495bSYour Name /** 1308*5113495bSYour Name * struct dual_sta_policy - Concurrent STA policy configuration 1309*5113495bSYour Name * @concurrent_sta_policy: Possible values are defined in enum 1310*5113495bSYour Name * qca_wlan_concurrent_sta_policy_config 1311*5113495bSYour Name * @primary_vdev_id: specified iface is the primary STA iface, say 0 means 1312*5113495bSYour Name * vdev 0 is acting as primary interface 1313*5113495bSYour Name */ 1314*5113495bSYour Name struct dual_sta_policy { 1315*5113495bSYour Name uint8_t concurrent_sta_policy; 1316*5113495bSYour Name uint8_t primary_vdev_id; 1317*5113495bSYour Name }; 1318*5113495bSYour Name 1319*5113495bSYour Name /** 1320*5113495bSYour Name * enum mlme_cfg_frame_type - frame type to configure mgmt hw tx retry count 1321*5113495bSYour Name * @CFG_GO_NEGOTIATION_REQ_FRAME_TYPE: p2p go negotiation request fame 1322*5113495bSYour Name * @CFG_P2P_INVITATION_REQ_FRAME_TYPE: p2p invitation request frame 1323*5113495bSYour Name * @CFG_PROVISION_DISCOVERY_REQ_FRAME_TYPE: p2p provision discovery request 1324*5113495bSYour Name * @CFG_FRAME_TYPE_MAX: max enumeration 1325*5113495bSYour Name */ 1326*5113495bSYour Name enum mlme_cfg_frame_type { 1327*5113495bSYour Name CFG_GO_NEGOTIATION_REQ_FRAME_TYPE = 0, 1328*5113495bSYour Name CFG_P2P_INVITATION_REQ_FRAME_TYPE = 1, 1329*5113495bSYour Name CFG_PROVISION_DISCOVERY_REQ_FRAME_TYPE = 2, 1330*5113495bSYour Name CFG_FRAME_TYPE_MAX, 1331*5113495bSYour Name }; 1332*5113495bSYour Name 1333*5113495bSYour Name #define MAX_MGMT_HW_TX_RETRY_COUNT 127 1334*5113495bSYour Name 1335*5113495bSYour Name /** 1336*5113495bSYour Name * struct wlan_user_mcc_quota - User MCC quota configuration 1337*5113495bSYour Name * @op_mode: Mode for which MCC quota needs to be applied 1338*5113495bSYour Name * @quota: User MCC quota value 1339*5113495bSYour Name * @vdev_id: Intended VDEV id for the quota 1340*5113495bSYour Name */ 1341*5113495bSYour Name struct wlan_user_mcc_quota { 1342*5113495bSYour Name enum QDF_OPMODE op_mode; 1343*5113495bSYour Name uint8_t quota; 1344*5113495bSYour Name uint8_t vdev_id; 1345*5113495bSYour Name }; 1346*5113495bSYour Name 1347*5113495bSYour Name /** 1348*5113495bSYour Name * enum wlan_mlme_hw_mode_config_type - HW mode config type replicated from 1349*5113495bSYour Name * wmi_hw_mode_config_type in FW header. 1350*5113495bSYour Name * similar as wmi_host_hw_mode_config_type. 1351*5113495bSYour Name * @WLAN_MLME_HW_MODE_SINGLE: Only one PHY is active. 1352*5113495bSYour Name * @WLAN_MLME_HW_MODE_DBS: Both PHYs are active in different bands, 1353*5113495bSYour Name * one in 2G and another in 5G. 1354*5113495bSYour Name * @WLAN_MLME_HW_MODE_SBS_PASSIVE: Both PHYs are in passive mode (only rx) in 1355*5113495bSYour Name * same band; no tx allowed. 1356*5113495bSYour Name * @WLAN_MLME_HW_MODE_SBS: Both PHYs are active in the same band. 1357*5113495bSYour Name * Support for both PHYs within one band is planned 1358*5113495bSYour Name * for 5G only(as indicated in WMI_MAC_PHY_CAPABILITIES), 1359*5113495bSYour Name * but could be extended to other bands in the future. 1360*5113495bSYour Name * The separation of the band between the two PHYs needs 1361*5113495bSYour Name * to be communicated separately. 1362*5113495bSYour Name * @WLAN_MLME_HW_MODE_DBS_SBS: 3 PHYs, with 2 on the same band doing SBS 1363*5113495bSYour Name * as in WMI_HW_MODE_SBS, and 3rd on the other band 1364*5113495bSYour Name * @WLAN_MLME_HW_MODE_DBS_OR_SBS: Two PHY with one PHY capabale of both 2G and 1365*5113495bSYour Name * 5G. It can support SBS (5G + 5G) OR DBS (5G + 2G). 1366*5113495bSYour Name * @WLAN_MLME_HW_MODE_DBS_2G_5G: Both PHYs are active in different bands. 1367*5113495bSYour Name * PhyA 2G and PhyB 5G 1368*5113495bSYour Name * @WLAN_MLME_HW_MODE_2G_PHYB: Only one phy is active. 2G mode on PhyB. 1369*5113495bSYour Name * @WLAN_MLME_HW_MODE_EMLSR: Both PHYs are active in listen mode in 1x1 1370*5113495bSYour Name * and Tx/Rx trigger on any PHY will switch 1371*5113495bSYour Name * from 1x1 to 2x2 on that Phy 1372*5113495bSYour Name * @WLAN_MLME_HW_MODE_AUX_EMLSR_SINGLE: PHYA0 and AUX are active in listen mode 1373*5113495bSYour Name * in 1x1 and Tx/Rx trigger on any. 1374*5113495bSYour Name * PHY will switch from 1x1 to 2x2 1375*5113495bSYour Name * on that Phy. 1376*5113495bSYour Name * @WLAN_MLME_HW_MODE_AUX_EMLSR_SPLIT: PHYA1 and AUX are active in listen mode 1377*5113495bSYour Name * in 1x1 and Tx/Rx trigger on any. 1378*5113495bSYour Name * PHY will switch from 1x1 to 2x2 1379*5113495bSYour Name * on that Phy. 1380*5113495bSYour Name * @WLAN_MLME_HW_MODE_MAX: Max hw_mode_id. 1381*5113495bSYour Name */ 1382*5113495bSYour Name enum wlan_mlme_hw_mode_config_type { 1383*5113495bSYour Name WLAN_MLME_HW_MODE_SINGLE = 0, 1384*5113495bSYour Name WLAN_MLME_HW_MODE_DBS = 1, 1385*5113495bSYour Name WLAN_MLME_HW_MODE_SBS_PASSIVE = 2, 1386*5113495bSYour Name WLAN_MLME_HW_MODE_SBS = 3, 1387*5113495bSYour Name WLAN_MLME_HW_MODE_DBS_SBS = 4, 1388*5113495bSYour Name WLAN_MLME_HW_MODE_DBS_OR_SBS = 5, 1389*5113495bSYour Name WLAN_MLME_HW_MODE_DBS_2G_5G = 6, 1390*5113495bSYour Name WLAN_MLME_HW_MODE_2G_PHYB = 7, 1391*5113495bSYour Name WLAN_MLME_HW_MODE_EMLSR = 8, 1392*5113495bSYour Name WLAN_MLME_HW_MODE_AUX_EMLSR_SINGLE = 9, 1393*5113495bSYour Name WLAN_MLME_HW_MODE_AUX_EMLSR_SPLIT = 10, 1394*5113495bSYour Name WLAN_MLME_HW_MODE_MAX, 1395*5113495bSYour Name }; 1396*5113495bSYour Name 1397*5113495bSYour Name /** 1398*5113495bSYour Name * enum wlan_mlme_aux_caps_bit - Bit mapping for aux capability 1399*5113495bSYour Name * 1400*5113495bSYour Name * @WLAN_MLME_AUX_MODE_SCAN_BIT: if set, aux scan is supported 1401*5113495bSYour Name * @WLAN_MLME_AUX_MODE_LISTEN_BIT: if set, aux listen is supported 1402*5113495bSYour Name * @WLAN_MLME_AUX_MODE_EMLSR_BIT: if set, aux emlsr is supported 1403*5113495bSYour Name */ 1404*5113495bSYour Name enum wlan_mlme_aux_caps_bit { 1405*5113495bSYour Name WLAN_MLME_AUX_MODE_SCAN_BIT = 0, 1406*5113495bSYour Name WLAN_MLME_AUX_MODE_LISTEN_BIT = 1, 1407*5113495bSYour Name WLAN_MLME_AUX_MODE_EMLSR_BIT = 2, 1408*5113495bSYour Name }; 1409*5113495bSYour Name 1410*5113495bSYour Name /* struct wlan_mlme_aux_dev_caps - wlan mlme aux dev capability 1411*5113495bSYour Name * 1412*5113495bSYour Name * @supported_modes_bitmap: indicate which mode this AUX supports for the 1413*5113495bSYour Name * HW mode defined in hw_mode_id 1414*5113495bSYour Name * @listen_pdev_id_map: indicate which AUX MAC can listen/scan for the HW mode 1415*5113495bSYour Name * described in hw_mode_id 1416*5113495bSYour Name * @emlsr_pdev_id_map: indicate which AUX MAC can perform eMLSR for the HW mode 1417*5113495bSYour Name * described in hw_mode_id. 1418*5113495bSYour Name */ 1419*5113495bSYour Name struct wlan_mlme_aux_dev_caps { 1420*5113495bSYour Name uint32_t supported_modes_bitmap; 1421*5113495bSYour Name uint32_t listen_pdev_id_map; 1422*5113495bSYour Name uint32_t emlsr_pdev_id_map; 1423*5113495bSYour Name }; 1424*5113495bSYour Name 1425*5113495bSYour Name /* struct wlan_mlme_generic - Generic CFG config items 1426*5113495bSYour Name * 1427*5113495bSYour Name * @band_capability: HW Band Capability - Both or 2.4G only or 5G only 1428*5113495bSYour Name * @band: Current Band - Internal variable, initialized to INI and updated later 1429*5113495bSYour Name * @select_5ghz_margin: RSSI margin to select 5Ghz over 2.4 Ghz 1430*5113495bSYour Name * @sub_20_chan_width: Sub 20Mhz Channel Width 1431*5113495bSYour Name * @ito_repeat_count: ITO Repeat Count 1432*5113495bSYour Name * @pmf_sa_query_max_retries: PMF query max retries for SAP 1433*5113495bSYour Name * @pmf_sa_query_retry_interval: PMF query retry interval for SAP 1434*5113495bSYour Name * @dropped_pkt_disconnect_thresh: Threshold for dropped pkts before disconnect 1435*5113495bSYour Name * @rtt_mac_randomization: Enable/Disable RTT MAC randomization 1436*5113495bSYour Name * @rtt3_enabled: RTT3 enable or disable info 1437*5113495bSYour Name * @prevent_link_down: Enable/Disable prevention of link down 1438*5113495bSYour Name * @memory_deep_sleep: Enable/Disable memory deep sleep 1439*5113495bSYour Name * @cck_tx_fir_override: Enable/Disable CCK Tx FIR Override 1440*5113495bSYour Name * @crash_inject: Enable/Disable Crash Inject 1441*5113495bSYour Name * @lpass_support: Enable/Disable LPASS Support 1442*5113495bSYour Name * @self_recovery: Enable/Disable Self Recovery 1443*5113495bSYour Name * @sap_dot11mc: Enable/Disable SAP 802.11mc support 1444*5113495bSYour Name * @fatal_event_trigger: Enable/Disable Fatal Events Trigger 1445*5113495bSYour Name * @optimize_ca_event: Enable/Disable Optimization of CA events 1446*5113495bSYour Name * @fw_timeout_crash: Enable/Disable FW Timeout Crash * 1447*5113495bSYour Name * @debug_packet_log: Debug packet log flags 1448*5113495bSYour Name * @enabled_11h: enable 11h flag 1449*5113495bSYour Name * @enabled_11d: enable 11d flag 1450*5113495bSYour Name * @enable_beacon_reception_stats: enable beacon reception stats 1451*5113495bSYour Name * @data_stall_recovery_fw_support: whether FW supports Data stall recovery. 1452*5113495bSYour Name * @enable_change_channel_bandwidth: enable/disable change channel bw in mission 1453*5113495bSYour Name * mode 1454*5113495bSYour Name * @disable_4way_hs_offload: enable/disable 4 way handshake offload to firmware 1455*5113495bSYour Name * @as_enabled: antenna sharing enabled or not (FW capability) 1456*5113495bSYour Name * @mgmt_retry_max: maximum retries for management frame 1457*5113495bSYour Name * @enable_he_mcs0_for_6ghz_mgmt: HE MCS0 rate for mgmt frames in 6GHz band 1458*5113495bSYour Name * @bmiss_skip_full_scan: Decide if full scan can be skipped in firmware if no 1459*5113495bSYour Name * candidate is found in partial scan based on channel map 1460*5113495bSYour Name * @enable_ring_buffer: Decide to enable/disable ring buffer for bug report 1461*5113495bSYour Name * @enable_peer_unmap_conf_support: Indicate whether to send conf for peer unmap 1462*5113495bSYour Name * @dfs_chan_ageout_time: Set DFS Channel ageout time 1463*5113495bSYour Name * @bigtk_support: Whether BIGTK is supported or not 1464*5113495bSYour Name * @stop_all_host_scan_support: Target capability that indicates if the target 1465*5113495bSYour Name * supports stop all host scan request type. 1466*5113495bSYour Name * @dual_sta_roam_fw_support: Firmware support for dual sta roaming feature 1467*5113495bSYour Name * @sae_connect_retries: sae connect retry bitmask 1468*5113495bSYour Name * @wls_6ghz_capable: wifi location service(WLS) is 6ghz capable 1469*5113495bSYour Name * @enabled_rf_test_mode: Enable/disable the RF test mode config 1470*5113495bSYour Name * @monitor_mode_concurrency: Monitor mode concurrency supported 1471*5113495bSYour Name * @ocv_support: FW supports OCV or not 1472*5113495bSYour Name * @wds_mode: wds mode supported 1473*5113495bSYour Name * @dual_sta_policy_cfg: Dual STA policies configuration 1474*5113495bSYour Name * @tx_retry_multiplier: TX xretry extension parameter 1475*5113495bSYour Name * @mgmt_hw_tx_retry_count: MGMT HW tx retry count for frames 1476*5113495bSYour Name * @std_6ghz_conn_policy: 6GHz standard connection policy 1477*5113495bSYour Name * @disable_vlp_sta_conn_to_sp_ap: Disable VLP STA connection to SP AP 1478*5113495bSYour Name * @eht_mode: EHT mode of operation 1479*5113495bSYour Name * @t2lm_negotiation_support: T2LM negotiation supported enum value 1480*5113495bSYour Name * @enable_emlsr_mode: 11BE eMLSR mode support 1481*5113495bSYour Name * @mld_id: MLD ID of requested BSS within ML probe request frame 1482*5113495bSYour Name * @oem_eht_mlo_crypto_bitmap: Bitmap of APs allowed by OEMs to connect 1483*5113495bSYour Name * in EHT/MLO. 1484*5113495bSYour Name * @safe_mode_enable: safe mode to bypass some strict 6 GHz checks for 1485*5113495bSYour Name * connection, bypass strict power levels 1486*5113495bSYour Name * @sr_enable_modes: modes for which SR(Spatial Reuse) is enabled 1487*5113495bSYour Name * @wlan_mlme_aux0_dev_caps: capability for aux0 1488*5113495bSYour Name * @bt_profile_con: Bluetooth connection profile 1489*5113495bSYour Name */ 1490*5113495bSYour Name struct wlan_mlme_generic { 1491*5113495bSYour Name uint32_t band_capability; 1492*5113495bSYour Name uint32_t band; 1493*5113495bSYour Name uint8_t select_5ghz_margin; 1494*5113495bSYour Name uint8_t sub_20_chan_width; 1495*5113495bSYour Name uint8_t ito_repeat_count; 1496*5113495bSYour Name uint8_t pmf_sa_query_max_retries; 1497*5113495bSYour Name uint16_t pmf_sa_query_retry_interval; 1498*5113495bSYour Name uint16_t dropped_pkt_disconnect_thresh; 1499*5113495bSYour Name bool rtt_mac_randomization; 1500*5113495bSYour Name bool rtt3_enabled; 1501*5113495bSYour Name bool prevent_link_down; 1502*5113495bSYour Name bool memory_deep_sleep; 1503*5113495bSYour Name bool cck_tx_fir_override; 1504*5113495bSYour Name bool crash_inject; 1505*5113495bSYour Name bool lpass_support; 1506*5113495bSYour Name bool self_recovery; 1507*5113495bSYour Name bool sap_dot11mc; 1508*5113495bSYour Name bool fatal_event_trigger; 1509*5113495bSYour Name bool optimize_ca_event; 1510*5113495bSYour Name bool fw_timeout_crash; 1511*5113495bSYour Name uint8_t debug_packet_log; 1512*5113495bSYour Name bool enabled_11h; 1513*5113495bSYour Name bool enabled_11d; 1514*5113495bSYour Name bool enable_deauth_to_disassoc_map; 1515*5113495bSYour Name bool enable_beacon_reception_stats; 1516*5113495bSYour Name bool data_stall_recovery_fw_support; 1517*5113495bSYour Name uint32_t disable_4way_hs_offload; 1518*5113495bSYour Name bool as_enabled; 1519*5113495bSYour Name uint8_t mgmt_retry_max; 1520*5113495bSYour Name bool enable_he_mcs0_for_6ghz_mgmt; 1521*5113495bSYour Name bool bmiss_skip_full_scan; 1522*5113495bSYour Name bool enable_ring_buffer; 1523*5113495bSYour Name bool enable_peer_unmap_conf_support; 1524*5113495bSYour Name uint8_t dfs_chan_ageout_time; 1525*5113495bSYour Name bool bigtk_support; 1526*5113495bSYour Name bool stop_all_host_scan_support; 1527*5113495bSYour Name bool dual_sta_roam_fw_support; 1528*5113495bSYour Name uint32_t sae_connect_retries; 1529*5113495bSYour Name bool wls_6ghz_capable; 1530*5113495bSYour Name bool enabled_rf_test_mode; 1531*5113495bSYour Name enum monitor_mode_concurrency monitor_mode_concurrency; 1532*5113495bSYour Name bool ocv_support; 1533*5113495bSYour Name enum wlan_wds_mode wds_mode; 1534*5113495bSYour Name struct dual_sta_policy dual_sta_policy; 1535*5113495bSYour Name uint32_t tx_retry_multiplier; 1536*5113495bSYour Name uint8_t mgmt_hw_tx_retry_count[CFG_FRAME_TYPE_MAX]; 1537*5113495bSYour Name #ifdef CONFIG_BAND_6GHZ 1538*5113495bSYour Name bool std_6ghz_conn_policy; 1539*5113495bSYour Name bool disable_vlp_sta_conn_to_sp_ap; 1540*5113495bSYour Name #endif 1541*5113495bSYour Name #ifdef WLAN_FEATURE_11BE_MLO 1542*5113495bSYour Name enum wlan_eht_mode eht_mode; 1543*5113495bSYour Name bool enable_emlsr_mode; 1544*5113495bSYour Name enum t2lm_negotiation_support t2lm_negotiation_support; 1545*5113495bSYour Name uint8_t mld_id; 1546*5113495bSYour Name #endif 1547*5113495bSYour Name #ifdef WLAN_FEATURE_11BE 1548*5113495bSYour Name uint32_t oem_eht_mlo_crypto_bitmap; 1549*5113495bSYour Name #endif 1550*5113495bSYour Name #ifdef WLAN_FEATURE_MCC_QUOTA 1551*5113495bSYour Name struct wlan_user_mcc_quota user_mcc_quota; 1552*5113495bSYour Name #endif 1553*5113495bSYour Name bool safe_mode_enable; 1554*5113495bSYour Name #if defined(WLAN_FEATURE_SR) 1555*5113495bSYour Name uint32_t sr_enable_modes; 1556*5113495bSYour Name #endif 1557*5113495bSYour Name struct wlan_mlme_aux_dev_caps 1558*5113495bSYour Name wlan_mlme_aux0_dev_caps[WLAN_MLME_HW_MODE_MAX]; 1559*5113495bSYour Name bool bt_profile_con; 1560*5113495bSYour Name }; 1561*5113495bSYour Name 1562*5113495bSYour Name /** 1563*5113495bSYour Name * struct wlan_mlme_product_details_cfg - product details config items 1564*5113495bSYour Name * @manufacturer_name: manufacture name 1565*5113495bSYour Name * @model_number: model number 1566*5113495bSYour Name * @model_name: model name 1567*5113495bSYour Name * @manufacture_product_name: manufacture product name 1568*5113495bSYour Name * @manufacture_product_version: manufacture product version 1569*5113495bSYour Name */ 1570*5113495bSYour Name struct wlan_mlme_product_details_cfg { 1571*5113495bSYour Name char manufacturer_name[WLAN_CFG_MFR_NAME_LEN + 1]; 1572*5113495bSYour Name char model_number[WLAN_CFG_MODEL_NUMBER_LEN + 1]; 1573*5113495bSYour Name char model_name[WLAN_CFG_MODEL_NAME_LEN + 1]; 1574*5113495bSYour Name char manufacture_product_name[WLAN_CFG_MFR_PRODUCT_NAME_LEN + 1]; 1575*5113495bSYour Name char manufacture_product_version[WLAN_CFG_MFR_PRODUCT_VERSION_LEN + 1]; 1576*5113495bSYour Name }; 1577*5113495bSYour Name 1578*5113495bSYour Name /** 1579*5113495bSYour Name * struct acs_weight - Normalize ACS weight for mentioned channels 1580*5113495bSYour Name * @chan_freq: frequency of the channel 1581*5113495bSYour Name * @normalize_weight: Normalization factor of the frequency 1582*5113495bSYour Name */ 1583*5113495bSYour Name struct acs_weight { 1584*5113495bSYour Name uint32_t chan_freq; 1585*5113495bSYour Name uint8_t normalize_weight; 1586*5113495bSYour Name }; 1587*5113495bSYour Name 1588*5113495bSYour Name /** 1589*5113495bSYour Name * struct acs_weight_range - Normalize ACS weight for mentioned channel range 1590*5113495bSYour Name * @start_freq: frequency of the start channel 1591*5113495bSYour Name * @end_freq: frequency of the end channel 1592*5113495bSYour Name * @normalize_weight: Normalization factor for freq range 1593*5113495bSYour Name */ 1594*5113495bSYour Name struct acs_weight_range { 1595*5113495bSYour Name uint32_t start_freq; 1596*5113495bSYour Name uint32_t end_freq; 1597*5113495bSYour Name uint8_t normalize_weight; 1598*5113495bSYour Name }; 1599*5113495bSYour Name 1600*5113495bSYour Name #define MAX_ACS_WEIGHT_RANGE 10 1601*5113495bSYour Name #define MLME_GET_DFS_CHAN_WEIGHT(np_chan_weight) (np_chan_weight & 0x000000FF) 1602*5113495bSYour Name 1603*5113495bSYour Name /** 1604*5113495bSYour Name * struct wlan_mlme_acs - All acs related cfg items 1605*5113495bSYour Name * @is_acs_with_more_param: to enable acs with more param 1606*5113495bSYour Name * @auto_channel_select_weight: to set acs channel weight 1607*5113495bSYour Name * @is_vendor_acs_support: enable application based channel selection 1608*5113495bSYour Name * @is_acs_support_for_dfs_ltecoex: enable channel for dfs and lte coex 1609*5113495bSYour Name * @is_external_acs_policy: control external policy 1610*5113495bSYour Name * @normalize_weight_chan: Weight factor to be considered in ACS 1611*5113495bSYour Name * @normalize_weight_num_chan: Number of freq items for normalization. 1612*5113495bSYour Name * @normalize_weight_range: Frequency range for weight normalization 1613*5113495bSYour Name * @num_weight_range: num of ranges provided by user 1614*5113495bSYour Name * @force_sap_start: Force SAP start when no channel is found suitable 1615*5113495bSYour Name * by ACS 1616*5113495bSYour Name * @acs_prefer_6ghz_psc: Select 6 GHz PSC channel as priority 1617*5113495bSYour Name * @np_chan_weightage: Weightage to be given to non preferred channels. 1618*5113495bSYour Name */ 1619*5113495bSYour Name struct wlan_mlme_acs { 1620*5113495bSYour Name bool is_acs_with_more_param; 1621*5113495bSYour Name uint32_t auto_channel_select_weight; 1622*5113495bSYour Name bool is_vendor_acs_support; 1623*5113495bSYour Name bool is_acs_support_for_dfs_ltecoex; 1624*5113495bSYour Name bool is_external_acs_policy; 1625*5113495bSYour Name struct acs_weight normalize_weight_chan[NUM_CHANNELS]; 1626*5113495bSYour Name uint16_t normalize_weight_num_chan; 1627*5113495bSYour Name struct acs_weight_range normalize_weight_range[MAX_ACS_WEIGHT_RANGE]; 1628*5113495bSYour Name uint16_t num_weight_range; 1629*5113495bSYour Name bool force_sap_start; 1630*5113495bSYour Name bool acs_prefer_6ghz_psc; 1631*5113495bSYour Name uint32_t np_chan_weightage; 1632*5113495bSYour Name }; 1633*5113495bSYour Name 1634*5113495bSYour Name /** 1635*5113495bSYour Name * struct wlan_mlme_cfg_twt - All twt related cfg items 1636*5113495bSYour Name * @is_twt_enabled: global twt configuration 1637*5113495bSYour Name * @is_bcast_responder_enabled: bcast responder enable/disable 1638*5113495bSYour Name * @is_bcast_requestor_enabled: bcast requestor enable/disable 1639*5113495bSYour Name * @bcast_requestor_tgt_cap: Broadcast requestor target capability 1640*5113495bSYour Name * @bcast_responder_tgt_cap: Broadcast responder target capability 1641*5113495bSYour Name * @bcast_legacy_tgt_cap: Broadcast Target capability. This is the legacy 1642*5113495bSYour Name * capability. 1643*5113495bSYour Name * @is_twt_nudge_tgt_cap_enabled: support for nudge request enable/disable 1644*5113495bSYour Name * @is_all_twt_tgt_cap_enabled: support for all twt enable/disable 1645*5113495bSYour Name * @is_twt_statistics_tgt_cap_enabled: support for twt statistics 1646*5113495bSYour Name * @twt_congestion_timeout: congestion timeout value 1647*5113495bSYour Name * @disable_btwt_usr_cfg: User config param to enable/disable the BTWT support 1648*5113495bSYour Name * @enable_twt_24ghz: Enable/disable host TWT when STA is connected in 1649*5113495bSYour Name * 2.4Ghz 1650*5113495bSYour Name * @disable_twt_info_frame: Enable/disable TWT info frame 1651*5113495bSYour Name * @req_flag: requestor flag enable/disable 1652*5113495bSYour Name * @res_flag: responder flag enable/disable 1653*5113495bSYour Name * @twt_res_svc_cap: responder service capability 1654*5113495bSYour Name */ 1655*5113495bSYour Name struct wlan_mlme_cfg_twt { 1656*5113495bSYour Name bool is_twt_enabled; 1657*5113495bSYour Name bool is_bcast_responder_enabled; 1658*5113495bSYour Name bool is_bcast_requestor_enabled; 1659*5113495bSYour Name bool bcast_requestor_tgt_cap; 1660*5113495bSYour Name bool bcast_responder_tgt_cap; 1661*5113495bSYour Name bool bcast_legacy_tgt_cap; 1662*5113495bSYour Name bool is_twt_nudge_tgt_cap_enabled; 1663*5113495bSYour Name bool is_all_twt_tgt_cap_enabled; 1664*5113495bSYour Name bool is_twt_statistics_tgt_cap_enabled; 1665*5113495bSYour Name uint32_t twt_congestion_timeout; 1666*5113495bSYour Name bool disable_btwt_usr_cfg; 1667*5113495bSYour Name bool enable_twt_24ghz; 1668*5113495bSYour Name bool disable_twt_info_frame; 1669*5113495bSYour Name bool req_flag; 1670*5113495bSYour Name bool res_flag; 1671*5113495bSYour Name bool twt_res_svc_cap; 1672*5113495bSYour Name }; 1673*5113495bSYour Name 1674*5113495bSYour Name /** 1675*5113495bSYour Name * struct wlan_mlme_obss_ht40 - OBSS HT40 config items 1676*5113495bSYour Name * @active_dwelltime: obss active dwelltime 1677*5113495bSYour Name * @passive_dwelltime: obss passive dwelltime 1678*5113495bSYour Name * @width_trigger_interval: obss trigger interval 1679*5113495bSYour Name * @passive_per_channel: obss scan passive total duration per channel 1680*5113495bSYour Name * @active_per_channel: obss scan active total duration per channel 1681*5113495bSYour Name * @width_trans_delay: obss width transition delay 1682*5113495bSYour Name * @scan_activity_threshold: obss scan activity threshold 1683*5113495bSYour Name * @is_override_ht20_40_24g: use channel bonding in 2.4 GHz 1684*5113495bSYour Name * @obss_detection_offload_enabled: Enable OBSS detection offload 1685*5113495bSYour Name * @obss_color_collision_offload_enabled: Enable obss color collision 1686*5113495bSYour Name * @bss_color_collision_det_sta: STA BSS color collision detection offload 1687*5113495bSYour Name * @bss_color_collision_det_tgt_support: STA BSS color collision detection 1688*5113495bSYour Name * target support 1689*5113495bSYour Name */ 1690*5113495bSYour Name struct wlan_mlme_obss_ht40 { 1691*5113495bSYour Name uint32_t active_dwelltime; 1692*5113495bSYour Name uint32_t passive_dwelltime; 1693*5113495bSYour Name uint32_t width_trigger_interval; 1694*5113495bSYour Name uint32_t passive_per_channel; 1695*5113495bSYour Name uint32_t active_per_channel; 1696*5113495bSYour Name uint32_t width_trans_delay; 1697*5113495bSYour Name uint32_t scan_activity_threshold; 1698*5113495bSYour Name bool is_override_ht20_40_24g; 1699*5113495bSYour Name bool obss_detection_offload_enabled; 1700*5113495bSYour Name bool obss_color_collision_offload_enabled; 1701*5113495bSYour Name bool bss_color_collision_det_sta; 1702*5113495bSYour Name bool bss_color_collision_det_tgt_support; 1703*5113495bSYour Name }; 1704*5113495bSYour Name 1705*5113495bSYour Name /** 1706*5113495bSYour Name * struct wlan_mlme_eml_cap - EML capabilities of MLD 1707*5113495bSYour Name * @emlsr_supp: eMLSR Support 1708*5113495bSYour Name * @emlsr_pad_delay: eMLSR Padding Delay 1709*5113495bSYour Name * @emlsr_trans_delay: eMLSR transition delay 1710*5113495bSYour Name * @emlmr_supp: eMLMR Support 1711*5113495bSYour Name * @emlmr_delay: eMLMR Delay 1712*5113495bSYour Name * @trans_timeout: Transition Timeout 1713*5113495bSYour Name * @reserved: Reserved 1714*5113495bSYour Name */ 1715*5113495bSYour Name struct wlan_mlme_eml_cap { 1716*5113495bSYour Name uint16_t emlsr_supp:1, 1717*5113495bSYour Name emlsr_pad_delay:3, 1718*5113495bSYour Name emlsr_trans_delay:3, 1719*5113495bSYour Name emlmr_supp:1, 1720*5113495bSYour Name emlmr_delay:3, 1721*5113495bSYour Name trans_timeout:4, 1722*5113495bSYour Name reserved:1; 1723*5113495bSYour Name }; 1724*5113495bSYour Name 1725*5113495bSYour Name /** 1726*5113495bSYour Name * enum dot11p_mode - The 802.11p mode of operation 1727*5113495bSYour Name * @CFG_11P_DISABLED: 802.11p mode is disabled 1728*5113495bSYour Name * @CFG_11P_STANDALONE: 802.11p-only operation 1729*5113495bSYour Name * @CFG_11P_CONCURRENT: 802.11p and WLAN operate concurrently 1730*5113495bSYour Name */ 1731*5113495bSYour Name enum dot11p_mode { 1732*5113495bSYour Name CFG_11P_DISABLED = 0, 1733*5113495bSYour Name CFG_11P_STANDALONE, 1734*5113495bSYour Name CFG_11P_CONCURRENT, 1735*5113495bSYour Name }; 1736*5113495bSYour Name 1737*5113495bSYour Name #define MAX_VDEV_NSS 2 1738*5113495bSYour Name #define MAX_VDEV_CHAINS 2 1739*5113495bSYour Name 1740*5113495bSYour Name /** 1741*5113495bSYour Name * struct wlan_mlme_nss_chains - MLME vdev config of nss, and chains 1742*5113495bSYour Name * @num_tx_chains: tx chains of vdev config 1743*5113495bSYour Name * @num_rx_chains: rx chains of vdev config 1744*5113495bSYour Name * @tx_nss: tx nss of vdev config 1745*5113495bSYour Name * @rx_nss: rx nss of vdev config 1746*5113495bSYour Name * @num_tx_chains_11b: number of tx chains in 11b mode 1747*5113495bSYour Name * @num_tx_chains_11g: number of tx chains in 11g mode 1748*5113495bSYour Name * @num_tx_chains_11a: number of tx chains in 11a mode 1749*5113495bSYour Name * @disable_rx_mrc: disable 2 rx chains, in rx nss 1 mode 1750*5113495bSYour Name * @disable_tx_mrc: disable 2 tx chains, in tx nss 1 mode 1751*5113495bSYour Name * @enable_dynamic_nss_chains_cfg: enable the dynamic nss chain config to FW 1752*5113495bSYour Name * @restart_sap_on_dyn_nss_chains_cfg: restart SAP on dynamic NSS chains 1753*5113495bSYour Name * update 1754*5113495bSYour Name */ 1755*5113495bSYour Name struct wlan_mlme_nss_chains { 1756*5113495bSYour Name uint32_t num_tx_chains[NSS_CHAINS_BAND_MAX]; 1757*5113495bSYour Name uint32_t num_rx_chains[NSS_CHAINS_BAND_MAX]; 1758*5113495bSYour Name uint32_t tx_nss[NSS_CHAINS_BAND_MAX]; 1759*5113495bSYour Name uint32_t rx_nss[NSS_CHAINS_BAND_MAX]; 1760*5113495bSYour Name uint32_t num_tx_chains_11b; 1761*5113495bSYour Name uint32_t num_tx_chains_11g; 1762*5113495bSYour Name uint32_t num_tx_chains_11a; 1763*5113495bSYour Name bool disable_rx_mrc[NSS_CHAINS_BAND_MAX]; 1764*5113495bSYour Name bool disable_tx_mrc[NSS_CHAINS_BAND_MAX]; 1765*5113495bSYour Name bool enable_dynamic_nss_chains_cfg; 1766*5113495bSYour Name bool restart_sap_on_dyn_nss_chains_cfg; 1767*5113495bSYour Name }; 1768*5113495bSYour Name 1769*5113495bSYour Name /** 1770*5113495bSYour Name * enum station_keepalive_method - available keepalive methods for stations 1771*5113495bSYour Name * @MLME_STA_KEEPALIVE_MIN: ensure KEEPALIVE_NULL or ARP are not values of 0 1772*5113495bSYour Name * @MLME_STA_KEEPALIVE_NULL_DATA: null data packet 1773*5113495bSYour Name * @MLME_STA_KEEPALIVE_GRAT_ARP: gratuitous ARP packet 1774*5113495bSYour Name * @MLME_STA_KEEPALIVE_UNSOLICIT_ARP_RSP: unsolicited ARP response packet 1775*5113495bSYour Name * @MLME_STA_KEEPALIVE_COUNT: number of method options available 1776*5113495bSYour Name */ 1777*5113495bSYour Name enum station_keepalive_method { 1778*5113495bSYour Name MLME_STA_KEEPALIVE_MIN, 1779*5113495bSYour Name MLME_STA_KEEPALIVE_NULL_DATA = 1, 1780*5113495bSYour Name MLME_STA_KEEPALIVE_GRAT_ARP = 2, 1781*5113495bSYour Name MLME_STA_KEEPALIVE_UNSOLICIT_ARP_RSP = 3, 1782*5113495bSYour Name /* keep at the end */ 1783*5113495bSYour Name MLME_STA_KEEPALIVE_COUNT 1784*5113495bSYour Name }; 1785*5113495bSYour Name 1786*5113495bSYour Name /** 1787*5113495bSYour Name * enum station_prefer_bw - Station preferred bandwidth to connect AP 1788*5113495bSYour Name * @STA_PREFER_BW_DEFAULT: Station connects AP with its max bw capability. 1789*5113495bSYour Name * @STA_PREFER_BW_VHT80MHZ: Station connects in VHT 80MHz 2x2 when AP is in 1790*5113495bSYour Name * 160MHz 2x2 1791*5113495bSYour Name * @STA_PREFER_BW_80MHZ: Station connects in 80MHz when AP is in 160MHz 1792*5113495bSYour Name */ 1793*5113495bSYour Name enum station_prefer_bw { 1794*5113495bSYour Name STA_PREFER_BW_DEFAULT, 1795*5113495bSYour Name STA_PREFER_BW_VHT80MHZ, 1796*5113495bSYour Name STA_PREFER_BW_80MHZ 1797*5113495bSYour Name }; 1798*5113495bSYour Name 1799*5113495bSYour Name /** 1800*5113495bSYour Name * struct wlan_mlme_sta_cfg - MLME STA configuration items 1801*5113495bSYour Name * @sta_keep_alive_period: Sends NULL frame to AP period 1802*5113495bSYour Name * @bss_max_idle_period: BSS max idle period 1803*5113495bSYour Name * @tgt_gtx_usr_cfg: Target gtx user config 1804*5113495bSYour Name * @pmkid_modes: Enable PMKID modes 1805*5113495bSYour Name * @wait_cnf_timeout: Wait assoc cnf timeout 1806*5113495bSYour Name * @sta_miracast_mcc_rest_time: STA+MIRACAST(P2P) MCC rest time 1807*5113495bSYour Name * @dot11p_mode: Set 802.11p mode 1808*5113495bSYour Name * @fils_max_chan_guard_time: Set maximum channel guard time 1809*5113495bSYour Name * @current_rssi: Current rssi 1810*5113495bSYour Name * @deauth_retry_cnt: Deauth retry count 1811*5113495bSYour Name * @sta_prefer_80mhz_over_160mhz: Set Sta preference to connect in 80HZ/160HZ 1812*5113495bSYour Name * @ignore_peer_erp_info: Ignore peer information 1813*5113495bSYour Name * @enable_5g_ebt: Set default 5G early beacon termination 1814*5113495bSYour Name * @deauth_before_connection: Send deauth before connection or not 1815*5113495bSYour Name * @enable_go_cts2self_for_sta: Stop NOA and start using cts2self 1816*5113495bSYour Name * @qcn_ie_support: QCN IE support 1817*5113495bSYour Name * @force_rsne_override: Force rsnie override from user 1818*5113495bSYour Name * @single_tid: Set replay counter for all TID 1819*5113495bSYour Name * @allow_tpc_from_ap: Support for AP power constraint 1820*5113495bSYour Name * @sta_keepalive_method: STA keepalive method 1821*5113495bSYour Name * @usr_disabled_roaming: User disable roaming for current connection 1822*5113495bSYour Name * @usr_scan_probe_unicast_ra: User config unicast probe req in scan 1823*5113495bSYour Name * @event_payload: Diagnostic event payload 1824*5113495bSYour Name * @max_li_modulated_dtim_time_ms: Max modulated DTIM time in ms. 1825*5113495bSYour Name * @mlo_same_link_mld_address: Use one of the links same as mld address 1826*5113495bSYour Name * @user_set_link_num: save link num set by vendor command 1827*5113495bSYour Name * @mlo_support_link_num: max number of links that sta mlo supports 1828*5113495bSYour Name * @mlo_support_link_band: band bitmap that sta mlo supports 1829*5113495bSYour Name * @mlo_max_simultaneous_links: number of simultaneous links 1830*5113495bSYour Name * @mlo_prefer_percentage: percentage to boost/reduce mlo scoring 1831*5113495bSYour Name * @mlo_5gl_5gh_mlsr: enable/disable 5GL+5GH MLSR 1832*5113495bSYour Name * @epcs_capability: epcs capability enable or disable flag 1833*5113495bSYour Name * @usr_disable_eht: user disable the eht for STA 1834*5113495bSYour Name * @eht_disable_punct_in_us_lpi: Disable eht puncture in us lpi mode 1835*5113495bSYour Name */ 1836*5113495bSYour Name struct wlan_mlme_sta_cfg { 1837*5113495bSYour Name uint32_t sta_keep_alive_period; 1838*5113495bSYour Name uint32_t bss_max_idle_period; 1839*5113495bSYour Name uint32_t tgt_gtx_usr_cfg; 1840*5113495bSYour Name uint32_t pmkid_modes; 1841*5113495bSYour Name uint32_t wait_cnf_timeout; 1842*5113495bSYour Name uint32_t sta_miracast_mcc_rest_time; 1843*5113495bSYour Name enum dot11p_mode dot11p_mode; 1844*5113495bSYour Name uint8_t fils_max_chan_guard_time; 1845*5113495bSYour Name uint8_t current_rssi; 1846*5113495bSYour Name uint8_t deauth_retry_cnt; 1847*5113495bSYour Name uint8_t sta_prefer_80mhz_over_160mhz; 1848*5113495bSYour Name bool ignore_peer_erp_info; 1849*5113495bSYour Name bool enable_5g_ebt; 1850*5113495bSYour Name bool deauth_before_connection; 1851*5113495bSYour Name bool enable_go_cts2self_for_sta; 1852*5113495bSYour Name bool qcn_ie_support; 1853*5113495bSYour Name bool single_tid; 1854*5113495bSYour Name bool allow_tpc_from_ap; 1855*5113495bSYour Name enum station_keepalive_method sta_keepalive_method; 1856*5113495bSYour Name bool usr_disabled_roaming; 1857*5113495bSYour Name bool usr_scan_probe_unicast_ra; 1858*5113495bSYour Name #ifdef FEATURE_WLAN_DIAG_SUPPORT_CSR 1859*5113495bSYour Name host_event_wlan_status_payload_type event_payload; 1860*5113495bSYour Name #endif 1861*5113495bSYour Name uint16_t max_li_modulated_dtim_time_ms; 1862*5113495bSYour Name #ifdef WLAN_FEATURE_11BE_MLO 1863*5113495bSYour Name bool mlo_same_link_mld_address; 1864*5113495bSYour Name uint8_t user_set_link_num; 1865*5113495bSYour Name uint8_t mlo_support_link_num; 1866*5113495bSYour Name uint8_t mlo_support_link_band; 1867*5113495bSYour Name uint8_t mlo_max_simultaneous_links; 1868*5113495bSYour Name int8_t mlo_prefer_percentage; 1869*5113495bSYour Name bool mlo_5gl_5gh_mlsr; 1870*5113495bSYour Name #endif 1871*5113495bSYour Name #ifdef WLAN_FEATURE_11BE 1872*5113495bSYour Name bool epcs_capability; 1873*5113495bSYour Name bool usr_disable_eht; 1874*5113495bSYour Name bool eht_disable_punct_in_us_lpi; 1875*5113495bSYour Name #endif 1876*5113495bSYour Name }; 1877*5113495bSYour Name 1878*5113495bSYour Name /** 1879*5113495bSYour Name * struct wlan_mlme_stats_cfg - MLME stats configuration items 1880*5113495bSYour Name * @stats_periodic_display_time: time after which stats will be printed 1881*5113495bSYour Name * @stats_link_speed_rssi_high: rssi link speed, high 1882*5113495bSYour Name * @stats_link_speed_rssi_med: medium rssi link speed 1883*5113495bSYour Name * @stats_link_speed_rssi_low: rssi link speed, low 1884*5113495bSYour Name * @stats_report_max_link_speed_rssi: report speed limit 1885*5113495bSYour Name */ 1886*5113495bSYour Name struct wlan_mlme_stats_cfg { 1887*5113495bSYour Name uint32_t stats_periodic_display_time; 1888*5113495bSYour Name int stats_link_speed_rssi_high; 1889*5113495bSYour Name int stats_link_speed_rssi_med; 1890*5113495bSYour Name int stats_link_speed_rssi_low; 1891*5113495bSYour Name uint32_t stats_report_max_link_speed_rssi; 1892*5113495bSYour Name }; 1893*5113495bSYour Name 1894*5113495bSYour Name /** 1895*5113495bSYour Name * enum roaming_dfs_channel_type - Allow dfs channel in roam 1896*5113495bSYour Name * @ROAMING_DFS_CHANNEL_DISABLED: Disallow dfs channel in roam 1897*5113495bSYour Name * @ROAMING_DFS_CHANNEL_ENABLED_NORMAL: Allow dfs channel 1898*5113495bSYour Name * @ROAMING_DFS_CHANNEL_ENABLED_ACTIVE: Allow dfs channel with active scan 1899*5113495bSYour Name */ 1900*5113495bSYour Name enum roaming_dfs_channel_type { 1901*5113495bSYour Name ROAMING_DFS_CHANNEL_DISABLED, 1902*5113495bSYour Name ROAMING_DFS_CHANNEL_ENABLED_NORMAL, 1903*5113495bSYour Name ROAMING_DFS_CHANNEL_ENABLED_ACTIVE, 1904*5113495bSYour Name }; 1905*5113495bSYour Name 1906*5113495bSYour Name /** 1907*5113495bSYour Name * struct bss_load_trigger - parameters related to bss load triggered roam 1908*5113495bSYour Name * @enabled: flag to check if this trigger is enabled/disabled 1909*5113495bSYour Name * @threshold: Bss load threshold value above which roaming should start 1910*5113495bSYour Name * @sample_time: Time duration in milliseconds for which the bss load value 1911*5113495bSYour Name * should be monitored 1912*5113495bSYour Name * @rssi_threshold_6ghz: RSSI threshold of the current connected AP below which 1913*5113495bSYour Name * roam should be triggered if bss load threshold exceeds the configured value. 1914*5113495bSYour Name * This value is applicable only when we are connected in 6GHz band. 1915*5113495bSYour Name * @rssi_threshold_5ghz: RSSI threshold of the current connected AP below which 1916*5113495bSYour Name * roam should be triggered if bss load threshold exceeds the configured value. 1917*5113495bSYour Name * This value is applicable only when we are connected in 5GHz band. 1918*5113495bSYour Name * @rssi_threshold_24ghz: RSSI threshold of the current connected AP below which 1919*5113495bSYour Name * roam should be triggered if bss load threshold exceeds the configured value. 1920*5113495bSYour Name * This value is applicable only when we are connected in 2.4 GHz band. 1921*5113495bSYour Name */ 1922*5113495bSYour Name struct bss_load_trigger { 1923*5113495bSYour Name bool enabled; 1924*5113495bSYour Name uint32_t threshold; 1925*5113495bSYour Name uint32_t sample_time; 1926*5113495bSYour Name uint32_t rssi_threshold_6ghz; 1927*5113495bSYour Name int32_t rssi_threshold_5ghz; 1928*5113495bSYour Name int32_t rssi_threshold_24ghz; 1929*5113495bSYour Name }; 1930*5113495bSYour Name 1931*5113495bSYour Name /* 1932*5113495bSYour Name * AKM suites supported by firmware for roaming 1933*5113495bSYour Name */ 1934*5113495bSYour Name #define AKM_FT_SAE 0 1935*5113495bSYour Name #define AKM_FT_SUITEB_SHA384 1 1936*5113495bSYour Name #define AKM_FT_FILS 2 1937*5113495bSYour Name #define AKM_SAE 3 1938*5113495bSYour Name #define AKM_OWE 4 1939*5113495bSYour Name #define AKM_SUITEB 5 1940*5113495bSYour Name #define AKM_SAE_EXT 6 1941*5113495bSYour Name 1942*5113495bSYour Name #define LFR3_STA_ROAM_DISABLE_BY_P2P BIT(0) 1943*5113495bSYour Name #define LFR3_STA_ROAM_DISABLE_BY_NAN BIT(1) 1944*5113495bSYour Name 1945*5113495bSYour Name /** 1946*5113495bSYour Name * struct fw_scan_channels - Channel details part of VDEV set PCL command 1947*5113495bSYour Name * @num_channels: Number of channels 1948*5113495bSYour Name * @freq: Channel Frequency list 1949*5113495bSYour Name */ 1950*5113495bSYour Name struct fw_scan_channels { 1951*5113495bSYour Name uint8_t num_channels; 1952*5113495bSYour Name uint32_t freq[NUM_CHANNELS]; 1953*5113495bSYour Name }; 1954*5113495bSYour Name 1955*5113495bSYour Name /** 1956*5113495bSYour Name * struct wlan_mlme_lfr_cfg - MLME LMAC fast roaming config 1957*5113495bSYour Name * @mawc_roam_enabled: Enable/Disable MAWC during roaming 1958*5113495bSYour Name * @enable_fast_roam_in_concurrency: Enable LFR roaming on STA during 1959*5113495bSYour Name * concurrency 1960*5113495bSYour Name * @vendor_btm_param: Vendor WTC roam trigger parameters 1961*5113495bSYour Name * @roam_rt_stats: Roam event stats vendor command parameters 1962*5113495bSYour Name * @lfr3_roaming_offload: Enable/disable roam offload feature 1963*5113495bSYour Name * @lfr3_dual_sta_roaming_enabled: Enable/Disable dual sta roaming offload 1964*5113495bSYour Name * feature 1965*5113495bSYour Name * @enable_self_bss_roam: enable roaming to connected BSSID 1966*5113495bSYour Name * @enable_disconnect_roam_offload: enable disassoc/deauth roam scan. 1967*5113495bSYour Name * @enable_idle_roam: flag to enable/disable idle roam in fw 1968*5113495bSYour Name * @idle_roam_rssi_delta: rssi delta of connected ap which is used to 1969*5113495bSYour Name * identify if the AP is idle or in motion 1970*5113495bSYour Name * @idle_roam_inactive_time: Timeout value in seconds, above which the 1971*5113495bSYour Name * connection is idle 1972*5113495bSYour Name * @idle_data_packet_count: data packet count measured during inactive time, 1973*5113495bSYour Name * below which the connection is idle. 1974*5113495bSYour Name * @idle_roam_band: Bands on which idle roam scan is allowed 1975*5113495bSYour Name * @idle_roam_min_rssi: Minimum rssi of connected AP to be considered for 1976*5113495bSYour Name * idle roam trigger. 1977*5113495bSYour Name * @enable_roam_reason_vsie: Enable/disable incluison of roam reason 1978*5113495bSYour Name * vsie in Re(assoc) frame 1979*5113495bSYour Name * @roam_trigger_bitmap: Bitmap of roaming triggers. 1980*5113495bSYour Name * @sta_roam_disable: STA roaming disabled by interfaces 1981*5113495bSYour Name * @roam_info_stats_num: STA roaming information cache number 1982*5113495bSYour Name * @roam_high_rssi_delta: Delta change in high RSSI at which roam scan is 1983*5113495bSYour Name * triggered in 2.4/5 GHz. 1984*5113495bSYour Name * @early_stop_scan_enable: Set early stop scan 1985*5113495bSYour Name * @enable_5g_band_pref: Enable preference for 5G from INI 1986*5113495bSYour Name * @ese_enabled: Enable ESE feature 1987*5113495bSYour Name * @lfr_enabled: Enable fast roaming 1988*5113495bSYour Name * @mawc_enabled: Enable MAWC 1989*5113495bSYour Name * @fast_transition_enabled: Enable fast transition 1990*5113495bSYour Name * @wes_mode_enabled: Enable WES mode 1991*5113495bSYour Name * @mawc_roam_traffic_threshold: Configure traffic threshold 1992*5113495bSYour Name * @mawc_roam_ap_rssi_threshold: Best AP RSSI threshold 1993*5113495bSYour Name * @mawc_roam_rssi_high_adjust: Adjust MAWC roam high RSSI 1994*5113495bSYour Name * @mawc_roam_rssi_low_adjust: Adjust MAWC roam low RSSI 1995*5113495bSYour Name * @roam_rssi_abs_threshold: The min RSSI of the candidate AP 1996*5113495bSYour Name * @rssi_threshold_offset_5g: Lookup threshold offset for 5G band 1997*5113495bSYour Name * @early_stop_scan_min_threshold: Set early stop scan min 1998*5113495bSYour Name * @early_stop_scan_max_threshold: Set early stop scan max 1999*5113495bSYour Name * @roam_dense_traffic_threshold: Dense traffic threshold 2000*5113495bSYour Name * @roam_dense_rssi_thre_offset: Sets dense roam RSSI threshold diff 2001*5113495bSYour Name * @roam_dense_min_aps: Sets minimum number of AP for dense roam 2002*5113495bSYour Name * @roam_bg_scan_bad_rssi_threshold:RSSI threshold for background roam 2003*5113495bSYour Name * @roam_bg_scan_client_bitmap: Bitmap used to identify the scan clients 2004*5113495bSYour Name * @roam_bg_scan_bad_rssi_offset_2g:RSSI threshold offset for 2G to 5G roam 2005*5113495bSYour Name * @roam_data_rssi_threshold_triggers: triggers of bad data RSSI threshold to 2006*5113495bSYour Name * roam 2007*5113495bSYour Name * @roam_data_rssi_threshold: Bad data RSSI threshold to roam 2008*5113495bSYour Name * @rx_data_inactivity_time: Rx duration to check data RSSI 2009*5113495bSYour Name * @adaptive_roamscan_dwell_mode: Sets dwell time adaptive mode 2010*5113495bSYour Name * @per_roam_enable: To enabled/disable PER based roaming in FW 2011*5113495bSYour Name * @per_roam_config_high_rate_th: Rate at which PER based roam will stop 2012*5113495bSYour Name * @per_roam_config_low_rate_th: Rate at which PER based roam will start 2013*5113495bSYour Name * @per_roam_config_rate_th_percent:Percentage at which FW will issue roam scan 2014*5113495bSYour Name * @per_roam_rest_time: FW will wait once it issues a roam scan. 2015*5113495bSYour Name * @per_roam_monitor_time: Min time to be considered as valid scenario 2016*5113495bSYour Name * @per_roam_min_candidate_rssi: Min roamable AP RSSI for candidate selection 2017*5113495bSYour Name * @lfr3_disallow_duration: Disallow duration before roaming 2018*5113495bSYour Name * @lfr3_rssi_channel_penalization: RSSI penalization 2019*5113495bSYour Name * @lfr3_num_disallowed_aps: Max number of AP's to maintain in LCA list 2020*5113495bSYour Name * @rssi_boost_threshold_5g: Boost threshold above which 5 GHz is favored 2021*5113495bSYour Name * @rssi_boost_factor_5g: Factor by which 5GHz RSSI is boosted 2022*5113495bSYour Name * @max_rssi_boost_5g: Maximum boost that can be applied to 5G RSSI 2023*5113495bSYour Name * @rssi_penalize_threshold_5g: Penalize thres above which 5G isn't favored 2024*5113495bSYour Name * @rssi_penalize_factor_5g: Factor by which 5GHz RSSI is penalizeed 2025*5113495bSYour Name * @max_rssi_penalize_5g: Max penalty that can be applied to 5G RSSI 2026*5113495bSYour Name * @max_num_pre_auth: Configure max number of pre-auth 2027*5113495bSYour Name * @roam_preauth_retry_count: Configure the max number of preauth retry 2028*5113495bSYour Name * @roam_preauth_no_ack_timeout: Configure the no ack timeout period 2029*5113495bSYour Name * @roam_rssi_diff: Enable roam based on rssi 2030*5113495bSYour Name * @roam_rssi_diff_6ghz: RSSI diff value to be used for roaming to 6 GHz AP. 2031*5113495bSYour Name * @bg_rssi_threshold: Background RSSI threshold 2032*5113495bSYour Name * @roam_scan_offload_enabled: Enable Roam Scan Offload 2033*5113495bSYour Name * @neighbor_scan_timer_period: Neighbor scan timer period 2034*5113495bSYour Name * @neighbor_scan_min_timer_period: Min neighbor scan timer period 2035*5113495bSYour Name * @neighbor_lookup_rssi_threshold: Neighbor lookup rssi threshold 2036*5113495bSYour Name * @opportunistic_scan_threshold_diff: Set oppurtunistic threshold diff 2037*5113495bSYour Name * @roam_rescan_rssi_diff: Sets RSSI for Scan trigger in firmware 2038*5113495bSYour Name * @neighbor_scan_min_chan_time: Neighbor scan channel min time 2039*5113495bSYour Name * @neighbor_scan_max_chan_time: Neighbor scan channel max time 2040*5113495bSYour Name * @passive_max_channel_time: Passive scan channel max time 2041*5113495bSYour Name * @neighbor_scan_results_refresh_period: Neighbor scan refresh period 2042*5113495bSYour Name * @empty_scan_refresh_period: Empty scan refresh period 2043*5113495bSYour Name * @roam_bmiss_first_bcnt: First beacon miss count 2044*5113495bSYour Name * @roam_bmiss_final_bcnt: Final beacon miss count 2045*5113495bSYour Name * @roam_beacon_rssi_weight: Beacon miss weight 2046*5113495bSYour Name * @roaming_dfs_channel: Allow dfs channel in roam 2047*5113495bSYour Name * @roam_scan_hi_rssi_maxcount: 5GHz maximum scan count 2048*5113495bSYour Name * @roam_scan_hi_rssi_delta: RSSI Delta for scan trigger 2049*5113495bSYour Name * @roam_scan_hi_rssi_delay: Minimum delay between 5GHz scans 2050*5113495bSYour Name * @roam_scan_hi_rssi_ub: Upper bound after which 5GHz scan 2051*5113495bSYour Name * @roam_prefer_5ghz: Prefer roaming to 5GHz Bss 2052*5113495bSYour Name * @roam_intra_band: Prefer roaming within Band 2053*5113495bSYour Name * @enable_adaptive_11r: Flag to check if adaptive 11r ini is enabled 2054*5113495bSYour Name * @tgt_adaptive_11r_cap: Flag to check if target supports adaptive 11r 2055*5113495bSYour Name * @enable_ft_im_roaming: Flag to enable/disable FT-IM roaming 2056*5113495bSYour Name * @roam_scan_home_away_time: The home away time to firmware 2057*5113495bSYour Name * @roam_scan_n_probes: The number of probes to be sent for firmware roaming 2058*5113495bSYour Name * @delay_before_vdev_stop: Wait time for tx complete before vdev stop 2059*5113495bSYour Name * @neighbor_scan_channel_list: Neighbor scan channel list 2060*5113495bSYour Name * @neighbor_scan_channel_list_num: Neighbor scan channel list number 2061*5113495bSYour Name * @enable_lfr_subnet_detection: Enable LFR3 subnet detection 2062*5113495bSYour Name * @ho_delay_for_rx: Delay hand-off by this duration to receive 2063*5113495bSYour Name * @min_delay_btw_roam_scans: Min duration 2064*5113495bSYour Name * @roam_trigger_reason_bitmask: Contains roam_trigger_reasons 2065*5113495bSYour Name * @enable_ftopen: Enable/disable FT open feature 2066*5113495bSYour Name * @roam_force_rssi_trigger: Force RSSI trigger or not 2067*5113495bSYour Name * @bss_load_trig: configuration of BSS load roam trigger 2068*5113495bSYour Name * @roaming_scan_policy: Config roaming scan policy in fw 2069*5113495bSYour Name * @roam_scan_inactivity_time: Device inactivity monitoring time in 2070*5113495bSYour Name * milliseconds for which the device is considered to be inactive. 2071*5113495bSYour Name * @roam_inactive_data_packet_count: Maximum allowed data packets count 2072*5113495bSYour Name * during roam_scan_inactivity_time. 2073*5113495bSYour Name * @fw_akm_bitmap: Supported Akm suites of firmware 2074*5113495bSYour Name * @roam_full_scan_period: Idle period in seconds between two successive 2075*5113495bSYour Name * full channel roam scans 2076*5113495bSYour Name * @saved_freq_list: Valid channel list 2077*5113495bSYour Name * @sae_single_pmk_feature_enabled: Contains value of ini 2078*5113495bSYour Name * sae_single_pmk_feature_enabled 2079*5113495bSYour Name * @rso_user_config: RSO user config 2080*5113495bSYour Name * @enable_ft_over_ds: Enable FT over DS 2081*5113495bSYour Name * @beaconloss_timeout_onwakeup: time in sec to configure FW BMISS event 2082*5113495bSYour Name * during wakeup. 2083*5113495bSYour Name * @beaconloss_timeout_onsleep: time in sec to configure FW BMISS event 2084*5113495bSYour Name * during sleep. 2085*5113495bSYour Name * @roam_ho_delay_config: Roam HO delay value 2086*5113495bSYour Name * @exclude_rm_partial_scan_freq: Exclude the channels in roam full scan that 2087*5113495bSYour Name * are already scanned as part of partial scan. 2088*5113495bSYour Name * @roam_full_scan_6ghz_on_disc: Include the 6 GHz channels in roam full scan 2089*5113495bSYour Name * only on prior discovery of any 6 GHz support in the environment. 2090*5113495bSYour Name * @disconnect_on_nud_roam_invoke_fail: indicate whether disconnect ap when 2091*5113495bSYour Name * roam invoke fail on nud. 2092*5113495bSYour Name * @hs20_btm_offload_disable: indicate whether btm offload is enable/disable 2093*5113495bSYour Name * for Hotspot 2.0 2094*5113495bSYour Name */ 2095*5113495bSYour Name struct wlan_mlme_lfr_cfg { 2096*5113495bSYour Name bool mawc_roam_enabled; 2097*5113495bSYour Name bool enable_fast_roam_in_concurrency; 2098*5113495bSYour Name #ifdef WLAN_FEATURE_ROAM_OFFLOAD 2099*5113495bSYour Name struct wlan_cm_roam_vendor_btm_params vendor_btm_param; 2100*5113495bSYour Name struct wlan_cm_roam_rt_stats roam_rt_stats; 2101*5113495bSYour Name bool lfr3_roaming_offload; 2102*5113495bSYour Name bool lfr3_dual_sta_roaming_enabled; 2103*5113495bSYour Name bool enable_self_bss_roam; 2104*5113495bSYour Name bool enable_disconnect_roam_offload; 2105*5113495bSYour Name bool enable_idle_roam; 2106*5113495bSYour Name uint32_t idle_roam_rssi_delta; 2107*5113495bSYour Name uint32_t idle_roam_inactive_time; 2108*5113495bSYour Name uint32_t idle_data_packet_count; 2109*5113495bSYour Name uint32_t idle_roam_band; 2110*5113495bSYour Name int32_t idle_roam_min_rssi; 2111*5113495bSYour Name bool enable_roam_reason_vsie; 2112*5113495bSYour Name uint32_t roam_trigger_bitmap; 2113*5113495bSYour Name uint32_t sta_roam_disable; 2114*5113495bSYour Name uint32_t roam_info_stats_num; 2115*5113495bSYour Name uint8_t roam_high_rssi_delta; 2116*5113495bSYour Name #endif 2117*5113495bSYour Name bool early_stop_scan_enable; 2118*5113495bSYour Name bool enable_5g_band_pref; 2119*5113495bSYour Name #ifdef FEATURE_WLAN_ESE 2120*5113495bSYour Name bool ese_enabled; 2121*5113495bSYour Name #endif 2122*5113495bSYour Name bool lfr_enabled; 2123*5113495bSYour Name bool mawc_enabled; 2124*5113495bSYour Name bool fast_transition_enabled; 2125*5113495bSYour Name bool wes_mode_enabled; 2126*5113495bSYour Name uint32_t mawc_roam_traffic_threshold; 2127*5113495bSYour Name uint32_t mawc_roam_ap_rssi_threshold; 2128*5113495bSYour Name uint8_t mawc_roam_rssi_high_adjust; 2129*5113495bSYour Name uint8_t mawc_roam_rssi_low_adjust; 2130*5113495bSYour Name uint32_t roam_rssi_abs_threshold; 2131*5113495bSYour Name uint8_t rssi_threshold_offset_5g; 2132*5113495bSYour Name int8_t early_stop_scan_min_threshold; 2133*5113495bSYour Name int8_t early_stop_scan_max_threshold; 2134*5113495bSYour Name uint32_t roam_dense_traffic_threshold; 2135*5113495bSYour Name uint32_t roam_dense_rssi_thre_offset; 2136*5113495bSYour Name uint32_t roam_dense_min_aps; 2137*5113495bSYour Name uint32_t roam_bg_scan_bad_rssi_threshold; 2138*5113495bSYour Name uint32_t roam_bg_scan_client_bitmap; 2139*5113495bSYour Name uint32_t roam_bg_scan_bad_rssi_offset_2g; 2140*5113495bSYour Name uint32_t roam_data_rssi_threshold_triggers; 2141*5113495bSYour Name int32_t roam_data_rssi_threshold; 2142*5113495bSYour Name uint32_t rx_data_inactivity_time; 2143*5113495bSYour Name uint32_t adaptive_roamscan_dwell_mode; 2144*5113495bSYour Name uint32_t per_roam_enable; 2145*5113495bSYour Name uint32_t per_roam_config_high_rate_th; 2146*5113495bSYour Name uint32_t per_roam_config_low_rate_th; 2147*5113495bSYour Name uint32_t per_roam_config_rate_th_percent; 2148*5113495bSYour Name uint32_t per_roam_rest_time; 2149*5113495bSYour Name uint32_t per_roam_monitor_time; 2150*5113495bSYour Name uint32_t per_roam_min_candidate_rssi; 2151*5113495bSYour Name uint32_t lfr3_disallow_duration; 2152*5113495bSYour Name uint32_t lfr3_rssi_channel_penalization; 2153*5113495bSYour Name uint32_t lfr3_num_disallowed_aps; 2154*5113495bSYour Name uint32_t rssi_boost_threshold_5g; 2155*5113495bSYour Name uint32_t rssi_boost_factor_5g; 2156*5113495bSYour Name uint32_t max_rssi_boost_5g; 2157*5113495bSYour Name uint32_t rssi_penalize_threshold_5g; 2158*5113495bSYour Name uint32_t rssi_penalize_factor_5g; 2159*5113495bSYour Name uint32_t max_rssi_penalize_5g; 2160*5113495bSYour Name uint32_t max_num_pre_auth; 2161*5113495bSYour Name uint32_t roam_preauth_retry_count; 2162*5113495bSYour Name uint32_t roam_preauth_no_ack_timeout; 2163*5113495bSYour Name uint8_t roam_rssi_diff; 2164*5113495bSYour Name uint8_t roam_rssi_diff_6ghz; 2165*5113495bSYour Name uint8_t bg_rssi_threshold; 2166*5113495bSYour Name bool roam_scan_offload_enabled; 2167*5113495bSYour Name uint32_t neighbor_scan_timer_period; 2168*5113495bSYour Name uint32_t neighbor_scan_min_timer_period; 2169*5113495bSYour Name uint32_t neighbor_lookup_rssi_threshold; 2170*5113495bSYour Name uint32_t opportunistic_scan_threshold_diff; 2171*5113495bSYour Name uint32_t roam_rescan_rssi_diff; 2172*5113495bSYour Name uint16_t neighbor_scan_min_chan_time; 2173*5113495bSYour Name uint16_t neighbor_scan_max_chan_time; 2174*5113495bSYour Name uint32_t passive_max_channel_time; 2175*5113495bSYour Name uint32_t neighbor_scan_results_refresh_period; 2176*5113495bSYour Name uint32_t empty_scan_refresh_period; 2177*5113495bSYour Name uint8_t roam_bmiss_first_bcnt; 2178*5113495bSYour Name uint8_t roam_bmiss_final_bcnt; 2179*5113495bSYour Name enum roaming_dfs_channel_type roaming_dfs_channel; 2180*5113495bSYour Name uint32_t roam_scan_hi_rssi_maxcount; 2181*5113495bSYour Name uint32_t roam_scan_hi_rssi_delta; 2182*5113495bSYour Name uint32_t roam_scan_hi_rssi_delay; 2183*5113495bSYour Name uint32_t roam_scan_hi_rssi_ub; 2184*5113495bSYour Name bool roam_prefer_5ghz; 2185*5113495bSYour Name bool roam_intra_band; 2186*5113495bSYour Name #ifdef WLAN_ADAPTIVE_11R 2187*5113495bSYour Name bool enable_adaptive_11r; 2188*5113495bSYour Name bool tgt_adaptive_11r_cap; 2189*5113495bSYour Name #endif 2190*5113495bSYour Name bool enable_ft_im_roaming; 2191*5113495bSYour Name uint16_t roam_scan_home_away_time; 2192*5113495bSYour Name uint32_t roam_scan_n_probes; 2193*5113495bSYour Name uint8_t delay_before_vdev_stop; 2194*5113495bSYour Name uint8_t neighbor_scan_channel_list[CFG_VALID_CHANNEL_LIST_LEN]; 2195*5113495bSYour Name uint8_t neighbor_scan_channel_list_num; 2196*5113495bSYour Name #ifdef FEATURE_LFR_SUBNET_DETECTION 2197*5113495bSYour Name bool enable_lfr_subnet_detection; 2198*5113495bSYour Name #endif 2199*5113495bSYour Name uint8_t ho_delay_for_rx; 2200*5113495bSYour Name uint8_t min_delay_btw_roam_scans; 2201*5113495bSYour Name uint32_t roam_trigger_reason_bitmask; 2202*5113495bSYour Name bool enable_ftopen; 2203*5113495bSYour Name bool roam_force_rssi_trigger; 2204*5113495bSYour Name struct bss_load_trigger bss_load_trig; 2205*5113495bSYour Name bool roaming_scan_policy; 2206*5113495bSYour Name uint32_t roam_scan_inactivity_time; 2207*5113495bSYour Name uint32_t roam_inactive_data_packet_count; 2208*5113495bSYour Name uint32_t fw_akm_bitmap; 2209*5113495bSYour Name uint32_t roam_full_scan_period; 2210*5113495bSYour Name struct fw_scan_channels saved_freq_list; 2211*5113495bSYour Name #if defined(WLAN_SAE_SINGLE_PMK) && defined(WLAN_FEATURE_ROAM_OFFLOAD) 2212*5113495bSYour Name bool sae_single_pmk_feature_enabled; 2213*5113495bSYour Name #endif 2214*5113495bSYour Name struct rso_config_params rso_user_config; 2215*5113495bSYour Name bool enable_ft_over_ds; 2216*5113495bSYour Name uint8_t beaconloss_timeout_onwakeup; 2217*5113495bSYour Name uint8_t beaconloss_timeout_onsleep; 2218*5113495bSYour Name uint16_t roam_ho_delay_config; 2219*5113495bSYour Name uint8_t exclude_rm_partial_scan_freq; 2220*5113495bSYour Name uint8_t roam_full_scan_6ghz_on_disc; 2221*5113495bSYour Name bool disconnect_on_nud_roam_invoke_fail; 2222*5113495bSYour Name bool hs20_btm_offload_disable; 2223*5113495bSYour Name }; 2224*5113495bSYour Name 2225*5113495bSYour Name /** 2226*5113495bSYour Name * struct wlan_mlme_wmm_config - WMM configuration 2227*5113495bSYour Name * @wmm_mode: Enable WMM feature 2228*5113495bSYour Name * @b80211e_is_enabled: Enable 802.11e feature 2229*5113495bSYour Name * @uapsd_mask: what ACs to setup U-APSD for at assoc 2230*5113495bSYour Name */ 2231*5113495bSYour Name struct wlan_mlme_wmm_config { 2232*5113495bSYour Name uint8_t wmm_mode; 2233*5113495bSYour Name bool b80211e_is_enabled; 2234*5113495bSYour Name uint8_t uapsd_mask; 2235*5113495bSYour Name }; 2236*5113495bSYour Name 2237*5113495bSYour Name /** 2238*5113495bSYour Name * struct wlan_mlme_wmm_tspec_element - Default TSPEC parameters 2239*5113495bSYour Name * from the wmm spec 2240*5113495bSYour Name * @inactivity_intv: inactivity_interval as per wmm spec 2241*5113495bSYour Name * @burst_size_def: TS burst size 2242*5113495bSYour Name * @ts_ack_policy: TS Info ACK policy 2243*5113495bSYour Name * @ts_acm_is_off: ACM is off for AC 2244*5113495bSYour Name */ 2245*5113495bSYour Name struct wlan_mlme_wmm_tspec_element { 2246*5113495bSYour Name #ifdef FEATURE_WLAN_ESE 2247*5113495bSYour Name uint32_t inactivity_intv; 2248*5113495bSYour Name #endif 2249*5113495bSYour Name bool burst_size_def; 2250*5113495bSYour Name enum mlme_ts_info_ack_policy ts_ack_policy; 2251*5113495bSYour Name bool ts_acm_is_off; 2252*5113495bSYour Name }; 2253*5113495bSYour Name 2254*5113495bSYour Name /** 2255*5113495bSYour Name * struct wlan_mlme_wmm_ac_vo - Default TSPEC parameters 2256*5113495bSYour Name * for AC_VO 2257*5113495bSYour Name * @dir_ac_vo: TSPEC direction for VO 2258*5113495bSYour Name * @nom_msdu_size_ac_vo: normal MSDU size for VO 2259*5113495bSYour Name * @mean_data_rate_ac_vo: mean data rate for VO 2260*5113495bSYour Name * @min_phy_rate_ac_vo: min PHY rate for VO 2261*5113495bSYour Name * @sba_ac_vo: surplus bandwidth allowance for VO 2262*5113495bSYour Name * @uapsd_vo_srv_intv: Uapsd service interval for voice 2263*5113495bSYour Name * @uapsd_vo_sus_intv: Uapsd suspension interval for voice 2264*5113495bSYour Name */ 2265*5113495bSYour Name struct wlan_mlme_wmm_ac_vo { 2266*5113495bSYour Name uint8_t dir_ac_vo; 2267*5113495bSYour Name uint16_t nom_msdu_size_ac_vo; 2268*5113495bSYour Name uint32_t mean_data_rate_ac_vo; 2269*5113495bSYour Name uint32_t min_phy_rate_ac_vo; 2270*5113495bSYour Name uint16_t sba_ac_vo; 2271*5113495bSYour Name uint32_t uapsd_vo_srv_intv; 2272*5113495bSYour Name uint32_t uapsd_vo_sus_intv; 2273*5113495bSYour Name }; 2274*5113495bSYour Name 2275*5113495bSYour Name /** 2276*5113495bSYour Name * struct wlan_mlme_wmm_ac_vi - Default TSPEC parameters 2277*5113495bSYour Name * for AC_VI 2278*5113495bSYour Name * @dir_ac_vi: TSPEC direction for VI 2279*5113495bSYour Name * @nom_msdu_size_ac_vi: normal MSDU size for VI 2280*5113495bSYour Name * @mean_data_rate_ac_vi: mean data rate for VI 2281*5113495bSYour Name * @min_phy_rate_ac_vi: min PHY rate for VI 2282*5113495bSYour Name * @sba_ac_vi: surplus bandwidth allowance for VI 2283*5113495bSYour Name * @uapsd_vi_srv_intv: Uapsd service interval for VI 2284*5113495bSYour Name * @uapsd_vi_sus_intv: Uapsd suspension interval for VI 2285*5113495bSYour Name */ 2286*5113495bSYour Name struct wlan_mlme_wmm_ac_vi { 2287*5113495bSYour Name uint8_t dir_ac_vi; 2288*5113495bSYour Name uint16_t nom_msdu_size_ac_vi; 2289*5113495bSYour Name uint32_t mean_data_rate_ac_vi; 2290*5113495bSYour Name uint32_t min_phy_rate_ac_vi; 2291*5113495bSYour Name uint16_t sba_ac_vi; 2292*5113495bSYour Name uint32_t uapsd_vi_srv_intv; 2293*5113495bSYour Name uint32_t uapsd_vi_sus_intv; 2294*5113495bSYour Name }; 2295*5113495bSYour Name 2296*5113495bSYour Name /** 2297*5113495bSYour Name * struct wlan_mlme_wmm_ac_be - Default TSPEC parameters 2298*5113495bSYour Name * for AC_BE 2299*5113495bSYour Name * @dir_ac_be: TSPEC direction for BE 2300*5113495bSYour Name * @nom_msdu_size_ac_be: normal MSDU size for BE 2301*5113495bSYour Name * @mean_data_rate_ac_be: mean data rate for BE 2302*5113495bSYour Name * @min_phy_rate_ac_be: min PHY rate for BE 2303*5113495bSYour Name * @sba_ac_be: surplus bandwidth allowance for BE 2304*5113495bSYour Name * @uapsd_be_srv_intv: Uapsd service interval for BE 2305*5113495bSYour Name * @uapsd_be_sus_intv: Uapsd suspension interval for BE 2306*5113495bSYour Name */ 2307*5113495bSYour Name struct wlan_mlme_wmm_ac_be { 2308*5113495bSYour Name uint8_t dir_ac_be; 2309*5113495bSYour Name uint16_t nom_msdu_size_ac_be; 2310*5113495bSYour Name uint32_t mean_data_rate_ac_be; 2311*5113495bSYour Name uint32_t min_phy_rate_ac_be; 2312*5113495bSYour Name uint16_t sba_ac_be; 2313*5113495bSYour Name uint32_t uapsd_be_srv_intv; 2314*5113495bSYour Name uint32_t uapsd_be_sus_intv; 2315*5113495bSYour Name 2316*5113495bSYour Name }; 2317*5113495bSYour Name 2318*5113495bSYour Name /** 2319*5113495bSYour Name * struct wlan_mlme_wmm_ac_bk - Default TSPEC parameters 2320*5113495bSYour Name * for AC_BK 2321*5113495bSYour Name * @dir_ac_bk: TSPEC direction for BK 2322*5113495bSYour Name * @nom_msdu_size_ac_bk: normal MSDU size for BK 2323*5113495bSYour Name * @mean_data_rate_ac_bk: mean data rate for BK 2324*5113495bSYour Name * @min_phy_rate_ac_bk: min PHY rate for BK 2325*5113495bSYour Name * @sba_ac_bk: surplus bandwidth allowance for BK 2326*5113495bSYour Name * @uapsd_bk_srv_intv: Uapsd service interval for BK 2327*5113495bSYour Name * @uapsd_bk_sus_intv: Uapsd suspension interval for BK 2328*5113495bSYour Name */ 2329*5113495bSYour Name struct wlan_mlme_wmm_ac_bk { 2330*5113495bSYour Name uint8_t dir_ac_bk; 2331*5113495bSYour Name uint16_t nom_msdu_size_ac_bk; 2332*5113495bSYour Name uint32_t mean_data_rate_ac_bk; 2333*5113495bSYour Name uint32_t min_phy_rate_ac_bk; 2334*5113495bSYour Name uint16_t sba_ac_bk; 2335*5113495bSYour Name uint32_t uapsd_bk_srv_intv; 2336*5113495bSYour Name uint32_t uapsd_bk_sus_intv; 2337*5113495bSYour Name }; 2338*5113495bSYour Name 2339*5113495bSYour Name /** 2340*5113495bSYour Name * struct wlan_mlme_wmm_params - WMM CFG Items 2341*5113495bSYour Name * @qos_enabled: AP is enabled with 11E 2342*5113495bSYour Name * @wme_enabled: AP is enabled with WMM 2343*5113495bSYour Name * @max_sp_length: Maximum SP Length 2344*5113495bSYour Name * @wsm_enabled: AP is enabled with WSM 2345*5113495bSYour Name * @edca_profile: WMM Edca profile 2346*5113495bSYour Name * @wmm_config: WMM configuration 2347*5113495bSYour Name * @wmm_tspec_element: Default TSPEC parameters 2348*5113495bSYour Name * @ac_vo: Default TSPEC parameters for AC_VO 2349*5113495bSYour Name * @ac_vi: Default TSPEC parameters for AC_VI 2350*5113495bSYour Name * @ac_be: Default TSPEC parameters for AC_BE 2351*5113495bSYour Name * @ac_bk: Default TSPEC parameters for AC_BK 2352*5113495bSYour Name * @delayed_trigger_frm_int: delay int(in ms) of UAPSD auto trigger 2353*5113495bSYour Name */ 2354*5113495bSYour Name struct wlan_mlme_wmm_params { 2355*5113495bSYour Name bool qos_enabled; 2356*5113495bSYour Name bool wme_enabled; 2357*5113495bSYour Name uint8_t max_sp_length; 2358*5113495bSYour Name bool wsm_enabled; 2359*5113495bSYour Name uint32_t edca_profile; 2360*5113495bSYour Name struct wlan_mlme_wmm_config wmm_config; 2361*5113495bSYour Name struct wlan_mlme_wmm_tspec_element wmm_tspec_element; 2362*5113495bSYour Name struct wlan_mlme_wmm_ac_vo ac_vo; 2363*5113495bSYour Name struct wlan_mlme_wmm_ac_vi ac_vi; 2364*5113495bSYour Name struct wlan_mlme_wmm_ac_be ac_be; 2365*5113495bSYour Name struct wlan_mlme_wmm_ac_bk ac_bk; 2366*5113495bSYour Name uint32_t delayed_trigger_frm_int; 2367*5113495bSYour Name }; 2368*5113495bSYour Name 2369*5113495bSYour Name /** 2370*5113495bSYour Name * struct wlan_mlme_weight_config - weight params to 2371*5113495bSYour Name * calculate best candidate 2372*5113495bSYour Name * @rssi_weightage: RSSI weightage 2373*5113495bSYour Name * @ht_caps_weightage: HT caps weightage 2374*5113495bSYour Name * @vht_caps_weightage: VHT caps weightage 2375*5113495bSYour Name * @he_caps_weightage: HE caps weightage 2376*5113495bSYour Name * @chan_width_weightage: Channel width weightage 2377*5113495bSYour Name * @chan_band_weightage: Channel band weightage 2378*5113495bSYour Name * @nss_weightage: NSS weightage 2379*5113495bSYour Name * @beamforming_cap_weightage: Beamforming caps weightage 2380*5113495bSYour Name * @pcl_weightage: PCL weightage 2381*5113495bSYour Name * @channel_congestion_weightage: channel congestion weightage 2382*5113495bSYour Name * @oce_wan_weightage: OCE WAN metrics weightage 2383*5113495bSYour Name * @oce_ap_tx_pwr_weightage: weightage based on ap tx power 2384*5113495bSYour Name * @oce_subnet_id_weightage: weightage based on subnet id 2385*5113495bSYour Name * @sae_pk_ap_weightage:SAE-PK AP weightage 2386*5113495bSYour Name */ 2387*5113495bSYour Name struct wlan_mlme_weight_config { 2388*5113495bSYour Name uint8_t rssi_weightage; 2389*5113495bSYour Name uint8_t ht_caps_weightage; 2390*5113495bSYour Name uint8_t vht_caps_weightage; 2391*5113495bSYour Name uint8_t he_caps_weightage; 2392*5113495bSYour Name uint8_t chan_width_weightage; 2393*5113495bSYour Name uint8_t chan_band_weightage; 2394*5113495bSYour Name uint8_t nss_weightage; 2395*5113495bSYour Name uint8_t beamforming_cap_weightage; 2396*5113495bSYour Name uint8_t pcl_weightage; 2397*5113495bSYour Name uint8_t channel_congestion_weightage; 2398*5113495bSYour Name uint8_t oce_wan_weightage; 2399*5113495bSYour Name uint8_t oce_ap_tx_pwr_weightage; 2400*5113495bSYour Name uint8_t oce_subnet_id_weightage; 2401*5113495bSYour Name uint8_t sae_pk_ap_weightage; 2402*5113495bSYour Name }; 2403*5113495bSYour Name 2404*5113495bSYour Name /** 2405*5113495bSYour Name * struct wlan_mlme_rssi_cfg_score - RSSI params to 2406*5113495bSYour Name * calculate best candidate 2407*5113495bSYour Name * @best_rssi_threshold: Best RSSI threshold 2408*5113495bSYour Name * @good_rssi_threshold: Good RSSI threshold 2409*5113495bSYour Name * @bad_rssi_threshold: Bad RSSI threshold 2410*5113495bSYour Name * @good_rssi_pcnt: Good RSSI Percentage 2411*5113495bSYour Name * @bad_rssi_pcnt: Bad RSSI Percentage 2412*5113495bSYour Name * @good_rssi_bucket_size: Good RSSI Bucket Size 2413*5113495bSYour Name * @bad_rssi_bucket_size: Bad RSSI Bucket Size 2414*5113495bSYour Name * @rssi_pref_5g_rssi_thresh: Preferred 5G RSSI threshold 2415*5113495bSYour Name */ 2416*5113495bSYour Name struct wlan_mlme_rssi_cfg_score { 2417*5113495bSYour Name uint32_t best_rssi_threshold; 2418*5113495bSYour Name uint32_t good_rssi_threshold; 2419*5113495bSYour Name uint32_t bad_rssi_threshold; 2420*5113495bSYour Name uint32_t good_rssi_pcnt; 2421*5113495bSYour Name uint32_t bad_rssi_pcnt; 2422*5113495bSYour Name uint32_t good_rssi_bucket_size; 2423*5113495bSYour Name uint32_t bad_rssi_bucket_size; 2424*5113495bSYour Name uint32_t rssi_pref_5g_rssi_thresh; 2425*5113495bSYour Name }; 2426*5113495bSYour Name 2427*5113495bSYour Name /** 2428*5113495bSYour Name * struct wlan_mlme_roam_scoring_cfg - MLME roam related scoring config 2429*5113495bSYour Name * @enable_scoring_for_roam: Enable/disable BSS Scoring for Roaming 2430*5113495bSYour Name * @roam_trigger_bitmap: bitmap for various roam triggers 2431*5113495bSYour Name * @roam_score_delta: percentage delta in roam score 2432*5113495bSYour Name * @apsd_enabled: Enable automatic power save delivery 2433*5113495bSYour Name * @min_roam_score_delta: Minimum difference between connected AP's and 2434*5113495bSYour Name * candidate AP's roam score to start roaming. 2435*5113495bSYour Name */ 2436*5113495bSYour Name struct wlan_mlme_roam_scoring_cfg { 2437*5113495bSYour Name bool enable_scoring_for_roam; 2438*5113495bSYour Name uint32_t roam_trigger_bitmap; 2439*5113495bSYour Name uint32_t roam_score_delta; 2440*5113495bSYour Name bool apsd_enabled; 2441*5113495bSYour Name uint32_t min_roam_score_delta; 2442*5113495bSYour Name }; 2443*5113495bSYour Name 2444*5113495bSYour Name /* struct wlan_mlme_threshold - Threshold related config items 2445*5113495bSYour Name * @rts_threshold: set rts threshold 2446*5113495bSYour Name * @frag_threshold: set fragmentation threshold 2447*5113495bSYour Name */ 2448*5113495bSYour Name struct wlan_mlme_threshold { 2449*5113495bSYour Name uint32_t rts_threshold; 2450*5113495bSYour Name uint32_t frag_threshold; 2451*5113495bSYour Name }; 2452*5113495bSYour Name 2453*5113495bSYour Name /* struct mlme_max_tx_power_24 - power related items 2454*5113495bSYour Name * @max_len: max length of string 2455*5113495bSYour Name * @len: actual len of string 2456*5113495bSYour Name * @data: Data in string format 2457*5113495bSYour Name */ 2458*5113495bSYour Name struct mlme_max_tx_power_24 { 2459*5113495bSYour Name qdf_size_t max_len; 2460*5113495bSYour Name qdf_size_t len; 2461*5113495bSYour Name uint8_t data[CFG_MAX_TX_POWER_2_4_LEN]; 2462*5113495bSYour Name }; 2463*5113495bSYour Name 2464*5113495bSYour Name /* struct mlme_max_tx_power_5 - power related items 2465*5113495bSYour Name * @max_len: max length of string 2466*5113495bSYour Name * @len: actual len of string 2467*5113495bSYour Name * @data: Data in string format 2468*5113495bSYour Name */ 2469*5113495bSYour Name struct mlme_max_tx_power_5 { 2470*5113495bSYour Name qdf_size_t max_len; 2471*5113495bSYour Name qdf_size_t len; 2472*5113495bSYour Name uint8_t data[CFG_MAX_TX_POWER_5_LEN]; 2473*5113495bSYour Name }; 2474*5113495bSYour Name 2475*5113495bSYour Name /* struct mlme_power_usage - power related items 2476*5113495bSYour Name * @max_len: max length of string 2477*5113495bSYour Name * @len: actual len of string 2478*5113495bSYour Name * @data: Data in string format 2479*5113495bSYour Name */ 2480*5113495bSYour Name struct mlme_power_usage { 2481*5113495bSYour Name qdf_size_t max_len; 2482*5113495bSYour Name qdf_size_t len; 2483*5113495bSYour Name char data[CFG_POWER_USAGE_MAX_LEN]; 2484*5113495bSYour Name }; 2485*5113495bSYour Name 2486*5113495bSYour Name /** 2487*5113495bSYour Name * struct wlan_mlme_power - power related config items 2488*5113495bSYour Name * @max_tx_power_24: max power Tx for 2.4 ghz, this is based on frequencies 2489*5113495bSYour Name * @max_tx_power_5: max power Tx for 5 ghz, this is based on frequencies 2490*5113495bSYour Name * @max_tx_power_24_chan: max power Tx for 2.4 ghz, this is based on channel 2491*5113495bSYour Name * numbers, this is added to parse the ini values to maintain the backward 2492*5113495bSYour Name * compatibility, these channel numbers are converted to frequencies and copied 2493*5113495bSYour Name * to max_tx_power_24 structure, once this conversion is done this structure 2494*5113495bSYour Name * should not be used. 2495*5113495bSYour Name * @max_tx_power_5_chan: max power Tx for 5 ghz, this is based on channel 2496*5113495bSYour Name * numbers, this is added to parse the ini values to maintain the backward 2497*5113495bSYour Name * compatibility, these channel numbers are converted to frequencies and copied 2498*5113495bSYour Name * to max_tx_power_24 structure, once this conversion is done this structure 2499*5113495bSYour Name * should not be used. 2500*5113495bSYour Name * @power_usage: power usage mode, min, max, mod 2501*5113495bSYour Name * @tx_power_2g: limit tx power in 2.4 ghz 2502*5113495bSYour Name * @tx_power_5g: limit tx power in 5 ghz 2503*5113495bSYour Name * @current_tx_power_level: current tx power level 2504*5113495bSYour Name * @local_power_constraint: local power constraint 2505*5113495bSYour Name * @skip_tpe: option to not consider TPE values in 2.4G/5G bands 2506*5113495bSYour Name */ 2507*5113495bSYour Name struct wlan_mlme_power { 2508*5113495bSYour Name struct mlme_max_tx_power_24 max_tx_power_24; 2509*5113495bSYour Name struct mlme_max_tx_power_5 max_tx_power_5; 2510*5113495bSYour Name struct mlme_max_tx_power_24 max_tx_power_24_chan; 2511*5113495bSYour Name struct mlme_max_tx_power_5 max_tx_power_5_chan; 2512*5113495bSYour Name struct mlme_power_usage power_usage; 2513*5113495bSYour Name uint8_t tx_power_2g; 2514*5113495bSYour Name uint8_t tx_power_5g; 2515*5113495bSYour Name uint8_t current_tx_power_level; 2516*5113495bSYour Name uint8_t local_power_constraint; 2517*5113495bSYour Name bool skip_tpe; 2518*5113495bSYour Name }; 2519*5113495bSYour Name 2520*5113495bSYour Name /** 2521*5113495bSYour Name * struct wlan_mlme_timeout - mlme timeout related config items 2522*5113495bSYour Name * @join_failure_timeout: join failure timeout (can be changed in connect req) 2523*5113495bSYour Name * @probe_req_retry_timeout: Probe req retry timeout during join time 2524*5113495bSYour Name * @join_failure_timeout_ori: original value of above join timeout 2525*5113495bSYour Name * @auth_failure_timeout: authenticate failure timeout 2526*5113495bSYour Name * @auth_rsp_timeout: authenticate response timeout 2527*5113495bSYour Name * @assoc_failure_timeout: assoc failure timeout 2528*5113495bSYour Name * @reassoc_failure_timeout: re-assoc failure timeout 2529*5113495bSYour Name * @olbc_detect_timeout: OLBC detect timeout 2530*5113495bSYour Name * @addts_rsp_timeout: ADDTS rsp timeout value 2531*5113495bSYour Name * @heart_beat_threshold: Heart beat threshold 2532*5113495bSYour Name * @ap_keep_alive_timeout: AP keep alive timeout value 2533*5113495bSYour Name * @ap_link_monitor_timeout: AP link monitor timeout value 2534*5113495bSYour Name * @wmi_wq_watchdog_timeout: timeout period for wmi watchdog bite 2535*5113495bSYour Name * @sae_auth_failure_timeout: SAE authentication failure timeout 2536*5113495bSYour Name */ 2537*5113495bSYour Name struct wlan_mlme_timeout { 2538*5113495bSYour Name uint32_t join_failure_timeout; 2539*5113495bSYour Name uint32_t probe_req_retry_timeout; 2540*5113495bSYour Name uint32_t join_failure_timeout_ori; 2541*5113495bSYour Name uint32_t auth_failure_timeout; 2542*5113495bSYour Name uint32_t auth_rsp_timeout; 2543*5113495bSYour Name uint32_t assoc_failure_timeout; 2544*5113495bSYour Name uint32_t reassoc_failure_timeout; 2545*5113495bSYour Name uint32_t olbc_detect_timeout; 2546*5113495bSYour Name uint32_t addts_rsp_timeout; 2547*5113495bSYour Name uint32_t heart_beat_threshold; 2548*5113495bSYour Name uint32_t ap_keep_alive_timeout; 2549*5113495bSYour Name uint32_t ap_link_monitor_timeout; 2550*5113495bSYour Name uint32_t wmi_wq_watchdog_timeout; 2551*5113495bSYour Name uint32_t sae_auth_failure_timeout; 2552*5113495bSYour Name }; 2553*5113495bSYour Name 2554*5113495bSYour Name /** 2555*5113495bSYour Name * struct wlan_mlme_oce - OCE related config items 2556*5113495bSYour Name * @enable_bcast_probe_rsp: enable broadcast probe response 2557*5113495bSYour Name * @oce_sta_enabled: enable/disable oce feature for sta 2558*5113495bSYour Name * @oce_sap_enabled: enable/disable oce feature for sap 2559*5113495bSYour Name * @fils_enabled: enable/disable fils support 2560*5113495bSYour Name * @feature_bitmap: oce feature bitmap 2561*5113495bSYour Name * 2562*5113495bSYour Name */ 2563*5113495bSYour Name struct wlan_mlme_oce { 2564*5113495bSYour Name bool enable_bcast_probe_rsp; 2565*5113495bSYour Name bool oce_sta_enabled; 2566*5113495bSYour Name bool oce_sap_enabled; 2567*5113495bSYour Name bool fils_enabled; 2568*5113495bSYour Name uint8_t feature_bitmap; 2569*5113495bSYour Name }; 2570*5113495bSYour Name 2571*5113495bSYour Name /** 2572*5113495bSYour Name * enum wep_key_id - values passed to get/set wep default keys 2573*5113495bSYour Name * @MLME_WEP_DEFAULT_KEY_1: wep default key 1 2574*5113495bSYour Name * @MLME_WEP_DEFAULT_KEY_2: wep default key 2 2575*5113495bSYour Name * @MLME_WEP_DEFAULT_KEY_3: wep default key 3 2576*5113495bSYour Name * @MLME_WEP_DEFAULT_KEY_4: wep default key 4 2577*5113495bSYour Name */ 2578*5113495bSYour Name enum wep_key_id { 2579*5113495bSYour Name MLME_WEP_DEFAULT_KEY_1 = 0, 2580*5113495bSYour Name MLME_WEP_DEFAULT_KEY_2, 2581*5113495bSYour Name MLME_WEP_DEFAULT_KEY_3, 2582*5113495bSYour Name MLME_WEP_DEFAULT_KEY_4 2583*5113495bSYour Name }; 2584*5113495bSYour Name 2585*5113495bSYour Name /** 2586*5113495bSYour Name * struct wlan_mlme_wep_cfg - WEP related configs 2587*5113495bSYour Name * @is_privacy_enabled: Flag to check if encryption is enabled 2588*5113495bSYour Name * @is_shared_key_auth: Flag to check if the auth type is shared key 2589*5113495bSYour Name * @is_auth_open_system: Flag to check if the auth type is open 2590*5113495bSYour Name * @auth_type: Authentication type value 2591*5113495bSYour Name * @wep_default_key_id: Default WEP key id 2592*5113495bSYour Name */ 2593*5113495bSYour Name struct wlan_mlme_wep_cfg { 2594*5113495bSYour Name bool is_privacy_enabled; 2595*5113495bSYour Name bool is_shared_key_auth; 2596*5113495bSYour Name bool is_auth_open_system; 2597*5113495bSYour Name uint8_t auth_type; 2598*5113495bSYour Name uint8_t wep_default_key_id; 2599*5113495bSYour Name }; 2600*5113495bSYour Name 2601*5113495bSYour Name /** 2602*5113495bSYour Name * struct wlan_mlme_wifi_pos_cfg - WIFI POS configs 2603*5113495bSYour Name * @fine_time_meas_cap: fine timing measurement capability information 2604*5113495bSYour Name * @oem_6g_support_disable: oem is 6Ghz disabled if set 2605*5113495bSYour Name */ 2606*5113495bSYour Name struct wlan_mlme_wifi_pos_cfg { 2607*5113495bSYour Name uint32_t fine_time_meas_cap; 2608*5113495bSYour Name bool oem_6g_support_disable; 2609*5113495bSYour Name }; 2610*5113495bSYour Name 2611*5113495bSYour Name #define MLME_SET_BIT(value, bit_offset) ((value) |= (1 << (bit_offset))) 2612*5113495bSYour Name #define MLME_CLEAR_BIT(value, bit_offset) ((value) &= ~(1 << (bit_offset))) 2613*5113495bSYour Name 2614*5113495bSYour Name /* Mask to check if BTM offload is enabled/disabled*/ 2615*5113495bSYour Name #define BTM_OFFLOAD_ENABLED_MASK 0x01 2616*5113495bSYour Name 2617*5113495bSYour Name #define BTM_OFFLOAD_CONFIG_BIT_0 0 2618*5113495bSYour Name #define BTM_OFFLOAD_CONFIG_BIT_8 8 2619*5113495bSYour Name #define BTM_OFFLOAD_CONFIG_BIT_7 7 2620*5113495bSYour Name 2621*5113495bSYour Name /** 2622*5113495bSYour Name * struct wlan_mlme_btm - BTM related configs 2623*5113495bSYour Name * @prefer_btm_query: flag to prefer btm query over 11k 2624*5113495bSYour Name * @abridge_flag: set this flag to enable firmware to sort candidates based on 2625*5113495bSYour Name * roam score rather than selecting preferred APs. 2626*5113495bSYour Name * @btm_offload_config: configure btm offload 2627*5113495bSYour Name * @btm_solicited_timeout: configure timeout value for waiting BTM request 2628*5113495bSYour Name * @btm_max_attempt_cnt: configure maximum attempt for sending BTM query to ESS 2629*5113495bSYour Name * @btm_sticky_time: configure Stick time after roaming to new AP by BTM 2630*5113495bSYour Name * @rct_validity_timer: Timeout values for roam cache table entries 2631*5113495bSYour Name * @disassoc_timer_threshold: Disassociation timeout till which roam scan need 2632*5113495bSYour Name * not be triggered 2633*5113495bSYour Name * @btm_query_bitmask: Bitmask to send BTM query with candidate list on 2634*5113495bSYour Name * various roam 2635*5113495bSYour Name * @btm_trig_min_candidate_score: Minimum score to consider the AP as candidate 2636*5113495bSYour Name * when the roam trigger is BTM. 2637*5113495bSYour Name */ 2638*5113495bSYour Name struct wlan_mlme_btm { 2639*5113495bSYour Name bool prefer_btm_query; 2640*5113495bSYour Name bool abridge_flag; 2641*5113495bSYour Name uint32_t btm_offload_config; 2642*5113495bSYour Name uint32_t btm_solicited_timeout; 2643*5113495bSYour Name uint32_t btm_max_attempt_cnt; 2644*5113495bSYour Name uint32_t btm_sticky_time; 2645*5113495bSYour Name uint32_t rct_validity_timer; 2646*5113495bSYour Name uint32_t disassoc_timer_threshold; 2647*5113495bSYour Name uint32_t btm_query_bitmask; 2648*5113495bSYour Name uint32_t btm_trig_min_candidate_score; 2649*5113495bSYour Name }; 2650*5113495bSYour Name 2651*5113495bSYour Name /** 2652*5113495bSYour Name * struct wlan_mlme_fe_wlm - WLM related configs 2653*5113495bSYour Name * @latency_enable: Flag to check if latency is enabled 2654*5113495bSYour Name * @latency_reset: Flag to check if latency reset is enabled 2655*5113495bSYour Name * @latency_level: WLM latency level 2656*5113495bSYour Name * @latency_flags: WLM latency flags setting 2657*5113495bSYour Name * @latency_host_flags: WLM latency host flags setting 2658*5113495bSYour Name * @multi_client_ll_support: To check whether host support multi client feature 2659*5113495bSYour Name */ 2660*5113495bSYour Name struct wlan_mlme_fe_wlm { 2661*5113495bSYour Name bool latency_enable; 2662*5113495bSYour Name bool latency_reset; 2663*5113495bSYour Name uint8_t latency_level; 2664*5113495bSYour Name uint32_t latency_flags[MLME_NUM_WLM_LATENCY_LEVEL]; 2665*5113495bSYour Name uint32_t latency_host_flags[MLME_NUM_WLM_LATENCY_LEVEL]; 2666*5113495bSYour Name #ifdef MULTI_CLIENT_LL_SUPPORT 2667*5113495bSYour Name bool multi_client_ll_support; 2668*5113495bSYour Name #endif 2669*5113495bSYour Name }; 2670*5113495bSYour Name 2671*5113495bSYour Name /** 2672*5113495bSYour Name * struct wlan_mlme_fe_rrm - RRM related configs 2673*5113495bSYour Name * @rrm_enabled: Flag to check if RRM is enabled for STA 2674*5113495bSYour Name * @sap_rrm_enabled: Flag to check if RRM is enabled for SAP 2675*5113495bSYour Name * @rrm_rand_interval: RRM randomization interval 2676*5113495bSYour Name * @rm_capability: RM enabled capabilities IE 2677*5113495bSYour Name */ 2678*5113495bSYour Name struct wlan_mlme_fe_rrm { 2679*5113495bSYour Name bool rrm_enabled; 2680*5113495bSYour Name bool sap_rrm_enabled; 2681*5113495bSYour Name uint8_t rrm_rand_interval; 2682*5113495bSYour Name uint8_t rm_capability[MLME_RMENABLEDCAP_MAX_LEN]; 2683*5113495bSYour Name }; 2684*5113495bSYour Name 2685*5113495bSYour Name #ifdef MWS_COEX 2686*5113495bSYour Name /** 2687*5113495bSYour Name * struct wlan_mlme_mwc - MWC related configs 2688*5113495bSYour Name * @mws_coex_4g_quick_tdm: bitmap to set mws-coex 5g-nr power limit 2689*5113495bSYour Name * @mws_coex_5g_nr_pwr_limit: bitmap to set mws-coex 5g-nr power limit 2690*5113495bSYour Name * @mws_coex_pcc_channel_avoid_delay: PCC avoidance delay in seconds 2691*5113495bSYour Name * @mws_coex_scc_channel_avoid_delay: SCC avoidance delay in seconds 2692*5113495bSYour Name **/ 2693*5113495bSYour Name struct wlan_mlme_mwc { 2694*5113495bSYour Name uint32_t mws_coex_4g_quick_tdm; 2695*5113495bSYour Name uint32_t mws_coex_5g_nr_pwr_limit; 2696*5113495bSYour Name uint32_t mws_coex_pcc_channel_avoid_delay; 2697*5113495bSYour Name uint32_t mws_coex_scc_channel_avoid_delay; 2698*5113495bSYour Name }; 2699*5113495bSYour Name #else 2700*5113495bSYour Name struct wlan_mlme_mwc { 2701*5113495bSYour Name }; 2702*5113495bSYour Name #endif 2703*5113495bSYour Name 2704*5113495bSYour Name /** 2705*5113495bSYour Name * enum mlme_reg_srd_master_modes - Bitmap of SRD master modes supported 2706*5113495bSYour Name * @MLME_SRD_MASTER_MODE_SAP: SRD master mode for SAP 2707*5113495bSYour Name * @MLME_SRD_MASTER_MODE_P2P_GO: SRD master mode for P2P-GO 2708*5113495bSYour Name * @MLME_SRD_MASTER_MODE_NAN: SRD master mode for NAN 2709*5113495bSYour Name */ 2710*5113495bSYour Name enum mlme_reg_srd_master_modes { 2711*5113495bSYour Name MLME_SRD_MASTER_MODE_SAP = 1, 2712*5113495bSYour Name MLME_SRD_MASTER_MODE_P2P_GO = 2, 2713*5113495bSYour Name MLME_SRD_MASTER_MODE_NAN = 4, 2714*5113495bSYour Name }; 2715*5113495bSYour Name 2716*5113495bSYour Name /** 2717*5113495bSYour Name * struct wlan_mlme_reg - REG related configs 2718*5113495bSYour Name * @self_gen_frm_pwr: self-generated frame power in tx chain mask 2719*5113495bSYour Name * for CCK rates 2720*5113495bSYour Name * @etsi_srd_chan_in_master_mode: etsi srd chan in master mode 2721*5113495bSYour Name * @fcc_5dot9_ghz_chan_in_master_mode: fcc 5.9 GHz chan in master mode 2722*5113495bSYour Name * @restart_beaconing_on_ch_avoid: restart beaconing on ch avoid 2723*5113495bSYour Name * @indoor_channel_support: indoor channel support 2724*5113495bSYour Name * @scan_11d_interval: scan 11d interval 2725*5113495bSYour Name * @valid_channel_freq_list: array for valid channel list 2726*5113495bSYour Name * @valid_channel_list_num: valid channel list number 2727*5113495bSYour Name * @enable_11d_in_world_mode: Whether to enable 11d scan in world mode or not 2728*5113495bSYour Name * @avoid_acs_freq_list: List of the frequencies which need to be avoided 2729*5113495bSYour Name * during acs 2730*5113495bSYour Name * @avoid_acs_freq_list_num: Number of the frequencies to be avoided during acs 2731*5113495bSYour Name * @ignore_fw_reg_offload_ind: Ignore fw regulatory offload indication 2732*5113495bSYour Name * @enable_pending_chan_list_req: enables/disables scan channel 2733*5113495bSYour Name * list command to FW till the current scan is complete. 2734*5113495bSYour Name * @retain_nol_across_regdmn_update: Retain the NOL list across the regdomain. 2735*5113495bSYour Name * @enable_nan_on_indoor_channels: Enable nan on Indoor channels 2736*5113495bSYour Name * @enable_6ghz_sp_pwrmode_supp: Enable 6 GHz SP mode support 2737*5113495bSYour Name * @afc_disable_timer_check: Disable AFC timer check 2738*5113495bSYour Name * @afc_disable_request_id_check: Disable AFC request id check 2739*5113495bSYour Name * @is_afc_reg_noaction: Whether no action to AFC power event 2740*5113495bSYour Name * @coex_unsafe_chan_nb_user_prefer: Honor coex unsafe freq event from firmware 2741*5113495bSYour Name * or not 2742*5113495bSYour Name * @coex_unsafe_chan_reg_disable: To disable reg channels for received coex 2743*5113495bSYour Name * unsafe channels list 2744*5113495bSYour Name */ 2745*5113495bSYour Name struct wlan_mlme_reg { 2746*5113495bSYour Name uint32_t self_gen_frm_pwr; 2747*5113495bSYour Name uint8_t etsi_srd_chan_in_master_mode; 2748*5113495bSYour Name bool fcc_5dot9_ghz_chan_in_master_mode; 2749*5113495bSYour Name enum restart_beaconing_on_ch_avoid_rule 2750*5113495bSYour Name restart_beaconing_on_ch_avoid; 2751*5113495bSYour Name bool indoor_channel_support; 2752*5113495bSYour Name uint32_t scan_11d_interval; 2753*5113495bSYour Name uint32_t valid_channel_freq_list[CFG_VALID_CHANNEL_LIST_LEN]; 2754*5113495bSYour Name uint32_t valid_channel_list_num; 2755*5113495bSYour Name bool enable_11d_in_world_mode; 2756*5113495bSYour Name #ifdef SAP_AVOID_ACS_FREQ_LIST 2757*5113495bSYour Name uint16_t avoid_acs_freq_list[CFG_VALID_CHANNEL_LIST_LEN]; 2758*5113495bSYour Name uint8_t avoid_acs_freq_list_num; 2759*5113495bSYour Name #endif 2760*5113495bSYour Name bool ignore_fw_reg_offload_ind; 2761*5113495bSYour Name bool enable_pending_chan_list_req; 2762*5113495bSYour Name bool retain_nol_across_regdmn_update; 2763*5113495bSYour Name bool enable_nan_on_indoor_channels; 2764*5113495bSYour Name #if defined(CONFIG_AFC_SUPPORT) && defined(CONFIG_BAND_6GHZ) 2765*5113495bSYour Name bool enable_6ghz_sp_pwrmode_supp; 2766*5113495bSYour Name bool afc_disable_timer_check; 2767*5113495bSYour Name bool afc_disable_request_id_check; 2768*5113495bSYour Name bool is_afc_reg_noaction; 2769*5113495bSYour Name #endif 2770*5113495bSYour Name #ifdef FEATURE_WLAN_CH_AVOID_EXT 2771*5113495bSYour Name uint32_t coex_unsafe_chan_nb_user_prefer; 2772*5113495bSYour Name bool coex_unsafe_chan_reg_disable; 2773*5113495bSYour Name #endif 2774*5113495bSYour Name }; 2775*5113495bSYour Name 2776*5113495bSYour Name #define IOT_AGGR_INFO_MAX_NUM 32 2777*5113495bSYour Name 2778*5113495bSYour Name /** 2779*5113495bSYour Name * struct wlan_iot_aggr - IOT related AGGR rule 2780*5113495bSYour Name * 2781*5113495bSYour Name * @oui: OUI for the rule 2782*5113495bSYour Name * @oui_len: length of the OUI 2783*5113495bSYour Name * @ampdu_sz: max aggregation size in no. of MPDUs 2784*5113495bSYour Name * @amsdu_sz: max aggregation size in no. of MSDUs 2785*5113495bSYour Name */ 2786*5113495bSYour Name struct wlan_iot_aggr { 2787*5113495bSYour Name uint8_t oui[OUI_LENGTH]; 2788*5113495bSYour Name uint32_t oui_len; 2789*5113495bSYour Name uint32_t ampdu_sz; 2790*5113495bSYour Name uint32_t amsdu_sz; 2791*5113495bSYour Name }; 2792*5113495bSYour Name 2793*5113495bSYour Name /** 2794*5113495bSYour Name * struct wlan_mlme_iot - IOT related CFG Items 2795*5113495bSYour Name * 2796*5113495bSYour Name * @aggr: aggr rules 2797*5113495bSYour Name * @aggr_num: number of the configured aggr rules 2798*5113495bSYour Name */ 2799*5113495bSYour Name struct wlan_mlme_iot { 2800*5113495bSYour Name struct wlan_iot_aggr aggr[IOT_AGGR_INFO_MAX_NUM]; 2801*5113495bSYour Name uint32_t aggr_num; 2802*5113495bSYour Name }; 2803*5113495bSYour Name 2804*5113495bSYour Name /** 2805*5113495bSYour Name * struct wlan_mlme_cfg - MLME config items 2806*5113495bSYour Name * @chainmask_cfg: VHT chainmask related cfg items 2807*5113495bSYour Name * @edca_params: edca related CFG items 2808*5113495bSYour Name * @gen: Generic CFG items 2809*5113495bSYour Name * @ht_caps: HT related CFG Items 2810*5113495bSYour Name * @he_caps: HE related cfg items 2811*5113495bSYour Name * @eht_caps: EHT related cfg items 2812*5113495bSYour Name * @lfr: LFR related CFG Items 2813*5113495bSYour Name * @ibss: IBSS related CFG items 2814*5113495bSYour Name * @obss_ht40:obss ht40 CFG Items 2815*5113495bSYour Name * @mbo_cfg: Multiband Operation related CFG items 2816*5113495bSYour Name * @vht_caps: VHT related CFG Items 2817*5113495bSYour Name * @qos_mlme_params: QOS CFG Items 2818*5113495bSYour Name * @rates: Rates related cfg items 2819*5113495bSYour Name * @product_details: product details related CFG Items 2820*5113495bSYour Name * @dfs_cfg: DFS related CFG Items 2821*5113495bSYour Name * @sap_protection_cfg: SAP erp protection related CFG items 2822*5113495bSYour Name * @sap_cfg: sap CFG items 2823*5113495bSYour Name * @nss_chains_ini_cfg: Per vdev nss, chains related CFG items 2824*5113495bSYour Name * @sta: sta CFG Items 2825*5113495bSYour Name * @stats: stats CFG Items 2826*5113495bSYour Name * @roam_scoring: BSS Scoring related CFG Items 2827*5113495bSYour Name * @oce: OCE related CFG items 2828*5113495bSYour Name * @threshold: threshold related cfg items 2829*5113495bSYour Name * @timeouts: mlme timeout related CFG items 2830*5113495bSYour Name * @twt_cfg: TWT CFG Items 2831*5113495bSYour Name * @power: power related items 2832*5113495bSYour Name * @acs: ACS related CFG items 2833*5113495bSYour Name * @feature_flags: Feature flag config items 2834*5113495bSYour Name * @ps_params: Powersave related ini configs 2835*5113495bSYour Name * @wep_params: WEP related config items 2836*5113495bSYour Name * @wifi_pos_cfg: WIFI POS config 2837*5113495bSYour Name * @wmm_params: WMM related CFG & INI Items 2838*5113495bSYour Name * @wps_params: WPS related CFG itmes 2839*5113495bSYour Name * @btm: BTM related CFG itmes 2840*5113495bSYour Name * @wlm_config: WLM related CFG items 2841*5113495bSYour Name * @rrm_config: RRM related CFG items 2842*5113495bSYour Name * @mwc: MWC related CFG items 2843*5113495bSYour Name * @dot11_mode: dot11 mode supported 2844*5113495bSYour Name * @reg: REG related CFG itmes 2845*5113495bSYour Name * @trig_score_delta: Roam score delta value for various roam triggers 2846*5113495bSYour Name * @trig_min_rssi: Expected minimum RSSI value of candidate AP for 2847*5113495bSYour Name * various roam triggers 2848*5113495bSYour Name * @ratemask_cfg: ratemask configuration 2849*5113495bSYour Name * @iot: IOT related CFG items 2850*5113495bSYour Name * @connection_roaming_ini_flag: To indicate whether connection_roaming related 2851*5113495bSYour Name * ini file is present or not. 2852*5113495bSYour Name * @eml_cap: EML capability subfield present in ML IE common info 2853*5113495bSYour Name * @dynamic_nss_chains_support : intersection of host and fw capability of 2854*5113495bSYour Name * dynamic NSS chain support 2855*5113495bSYour Name */ 2856*5113495bSYour Name struct wlan_mlme_cfg { 2857*5113495bSYour Name struct wlan_mlme_chainmask chainmask_cfg; 2858*5113495bSYour Name struct wlan_mlme_edca_params edca_params; 2859*5113495bSYour Name struct wlan_mlme_generic gen; 2860*5113495bSYour Name struct wlan_mlme_ht_caps ht_caps; 2861*5113495bSYour Name #ifdef WLAN_FEATURE_11AX 2862*5113495bSYour Name struct wlan_mlme_he_caps he_caps; 2863*5113495bSYour Name #endif 2864*5113495bSYour Name #ifdef WLAN_FEATURE_11BE 2865*5113495bSYour Name struct wlan_mlme_eht_caps eht_caps; 2866*5113495bSYour Name #endif 2867*5113495bSYour Name struct wlan_mlme_lfr_cfg lfr; 2868*5113495bSYour Name struct wlan_mlme_obss_ht40 obss_ht40; 2869*5113495bSYour Name struct wlan_mlme_mbo mbo_cfg; 2870*5113495bSYour Name struct wlan_mlme_vht_caps vht_caps; 2871*5113495bSYour Name struct wlan_mlme_qos qos_mlme_params; 2872*5113495bSYour Name struct wlan_mlme_rates rates; 2873*5113495bSYour Name struct wlan_mlme_product_details_cfg product_details; 2874*5113495bSYour Name struct wlan_mlme_dfs_cfg dfs_cfg; 2875*5113495bSYour Name struct wlan_mlme_sap_protection sap_protection_cfg; 2876*5113495bSYour Name struct wlan_mlme_cfg_sap sap_cfg; 2877*5113495bSYour Name struct wlan_mlme_nss_chains nss_chains_ini_cfg; 2878*5113495bSYour Name struct wlan_mlme_sta_cfg sta; 2879*5113495bSYour Name struct wlan_mlme_stats_cfg stats; 2880*5113495bSYour Name struct wlan_mlme_roam_scoring_cfg roam_scoring; 2881*5113495bSYour Name struct wlan_mlme_oce oce; 2882*5113495bSYour Name struct wlan_mlme_threshold threshold; 2883*5113495bSYour Name struct wlan_mlme_timeout timeouts; 2884*5113495bSYour Name struct wlan_mlme_cfg_twt twt_cfg; 2885*5113495bSYour Name struct wlan_mlme_power power; 2886*5113495bSYour Name struct wlan_mlme_acs acs; 2887*5113495bSYour Name struct wlan_mlme_feature_flag feature_flags; 2888*5113495bSYour Name struct wlan_mlme_powersave ps_params; 2889*5113495bSYour Name struct wlan_mlme_wep_cfg wep_params; 2890*5113495bSYour Name struct wlan_mlme_wifi_pos_cfg wifi_pos_cfg; 2891*5113495bSYour Name struct wlan_mlme_wmm_params wmm_params; 2892*5113495bSYour Name struct wlan_mlme_wps_params wps_params; 2893*5113495bSYour Name struct wlan_mlme_btm btm; 2894*5113495bSYour Name struct wlan_mlme_fe_wlm wlm_config; 2895*5113495bSYour Name struct wlan_mlme_fe_rrm rrm_config; 2896*5113495bSYour Name struct wlan_mlme_mwc mwc; 2897*5113495bSYour Name struct wlan_mlme_dot11_mode dot11_mode; 2898*5113495bSYour Name struct wlan_mlme_reg reg; 2899*5113495bSYour Name struct roam_trigger_score_delta trig_score_delta[NUM_OF_ROAM_TRIGGERS]; 2900*5113495bSYour Name struct roam_trigger_min_rssi trig_min_rssi[NUM_OF_ROAM_MIN_RSSI]; 2901*5113495bSYour Name struct wlan_mlme_ratemask ratemask_cfg; 2902*5113495bSYour Name struct wlan_mlme_iot iot; 2903*5113495bSYour Name bool connection_roaming_ini_flag; 2904*5113495bSYour Name struct wlan_mlme_eml_cap eml_cap; 2905*5113495bSYour Name bool dynamic_nss_chains_support; 2906*5113495bSYour Name }; 2907*5113495bSYour Name 2908*5113495bSYour Name /** 2909*5113495bSYour Name * struct mlme_pmk_info - SAE Roaming using single pmk info 2910*5113495bSYour Name * @pmk: pmk 2911*5113495bSYour Name * @pmk_len: pmk length 2912*5113495bSYour Name * @spmk_timeout_period: Time to generate new SPMK in seconds. 2913*5113495bSYour Name * @spmk_timestamp: System timestamp at which the Single PMK entry was added. 2914*5113495bSYour Name */ 2915*5113495bSYour Name struct mlme_pmk_info { 2916*5113495bSYour Name uint8_t pmk[CFG_MAX_PMK_LEN]; 2917*5113495bSYour Name uint8_t pmk_len; 2918*5113495bSYour Name uint16_t spmk_timeout_period; 2919*5113495bSYour Name qdf_time_t spmk_timestamp; 2920*5113495bSYour Name }; 2921*5113495bSYour Name 2922*5113495bSYour Name /** 2923*5113495bSYour Name * struct wlan_mlme_sae_single_pmk - SAE Roaming using single pmk configuration 2924*5113495bSYour Name * structure 2925*5113495bSYour Name * @sae_single_pmk_ap: Current connected AP has VSIE or not 2926*5113495bSYour Name * @pmk_info: pmk information 2927*5113495bSYour Name */ 2928*5113495bSYour Name struct wlan_mlme_sae_single_pmk { 2929*5113495bSYour Name bool sae_single_pmk_ap; 2930*5113495bSYour Name struct mlme_pmk_info pmk_info; 2931*5113495bSYour Name }; 2932*5113495bSYour Name 2933*5113495bSYour Name #define ROAM_FRAME_INFO_FRAME_TYPE_EXT 3 2934*5113495bSYour Name /** 2935*5113495bSYour Name * struct mlme_roam_debug_info - Roam debug information storage structure. 2936*5113495bSYour Name * @trigger: Roam trigger related data 2937*5113495bSYour Name * @scan: Roam scan related data structure. 2938*5113495bSYour Name * @result: Roam result parameters. 2939*5113495bSYour Name * @data_11kv: Neighbor report/BTM parameters. 2940*5113495bSYour Name * @btm_rsp: BTM response information 2941*5113495bSYour Name * @roam_init_info: Roam initial info 2942*5113495bSYour Name * @roam_msg_info: roam related message information 2943*5113495bSYour Name * @frame_info: Information related to mgmt/eapol frames exchanged 2944*5113495bSYour Name * during roaming. 2945*5113495bSYour Name */ 2946*5113495bSYour Name struct mlme_roam_debug_info { 2947*5113495bSYour Name struct wmi_roam_trigger_info trigger; 2948*5113495bSYour Name struct wmi_roam_scan_data scan; 2949*5113495bSYour Name struct wmi_roam_result result; 2950*5113495bSYour Name struct wmi_neighbor_report_data data_11kv; 2951*5113495bSYour Name struct roam_btm_response_data btm_rsp; 2952*5113495bSYour Name struct roam_initial_data roam_init_info; 2953*5113495bSYour Name struct roam_msg_info roam_msg_info; 2954*5113495bSYour Name struct roam_frame_info frame_info[WLAN_ROAM_MAX_FRAME_INFO]; 2955*5113495bSYour Name }; 2956*5113495bSYour Name 2957*5113495bSYour Name /** 2958*5113495bSYour Name * struct wlan_change_bi - Message struct to update beacon interval 2959*5113495bSYour Name * @message_type: type of message 2960*5113495bSYour Name * @length: length of message 2961*5113495bSYour Name * @beacon_interval: beacon interval to update to (seconds) 2962*5113495bSYour Name * @bssid: BSSID of vdev 2963*5113495bSYour Name * @session_id: session ID of vdev 2964*5113495bSYour Name */ 2965*5113495bSYour Name struct wlan_change_bi { 2966*5113495bSYour Name uint16_t message_type; 2967*5113495bSYour Name uint16_t length; 2968*5113495bSYour Name uint16_t beacon_interval; 2969*5113495bSYour Name struct qdf_mac_addr bssid; 2970*5113495bSYour Name uint8_t session_id; 2971*5113495bSYour Name }; 2972*5113495bSYour Name 2973*5113495bSYour Name #ifdef FEATURE_SET 2974*5113495bSYour Name /** 2975*5113495bSYour Name * enum wlan_mlme_iface_combinations - Iface combinations 2976*5113495bSYour Name * @MLME_IFACE_STA_P2P_SUPPORT: STA + P2P concurrency bit 2977*5113495bSYour Name * @MLME_IFACE_STA_SAP_SUPPORT: STA + SAP concurrency bit 2978*5113495bSYour Name * @MLME_IFACE_STA_NAN_SUPPORT: STA + NAN concurrency bit 2979*5113495bSYour Name * @MLME_IFACE_STA_TDLS_SUPPORT: STA + TDLS concurrency bit 2980*5113495bSYour Name * @MLME_IFACE_STA_DUAL_P2P_SUPPORT: STA + P2P + P2P concurrency bit 2981*5113495bSYour Name * @MLME_IFACE_STA_SAP_P2P_SUPPORT: STA + SAP + P2P concurrency bit 2982*5113495bSYour Name * @MLME_IFACE_STA_SAP_NAN_SUPPORT: STA + SAP + NAN concurrency bit 2983*5113495bSYour Name * @MLME_IFACE_STA_P2P_NAN_SUPPORT: STA + P2P + NAN concurrency bit 2984*5113495bSYour Name * @MLME_IFACE_STA_P2P_TDLS_SUPPORT: STA + P2P + TDLS concurrency bit 2985*5113495bSYour Name * @MLME_IFACE_STA_SAP_TDLS_SUPPORT: STA + SAP + TDLS concurrency bit 2986*5113495bSYour Name * @MLME_IFACE_STA_NAN_TDLS_SUPPORT: STA + NAN + TDLS concurrency bit 2987*5113495bSYour Name * @MLME_IFACE_STA_SAP_P2P_TDLS_SUPPORT: STA + SAP + P2P + TDLS concurrency bit 2988*5113495bSYour Name * @MLME_IFACE_STA_SAP_NAN_TDLS_SUPPORT: STA + SAP + NAN + TDLS concurrency bit 2989*5113495bSYour Name * @MLME_IFACE_STA_P2P_P2P_TDLS_SUPPORT: STA + P2P + P2P + TDLS concurrency bit 2990*5113495bSYour Name * @MLME_IFACE_STA_P2P_NAN_TDLS_SUPPORT: STA + P2P + NAN + TDLS concurrency bit 2991*5113495bSYour Name */ 2992*5113495bSYour Name enum wlan_mlme_iface_combinations { 2993*5113495bSYour Name MLME_IFACE_STA_P2P_SUPPORT = 0x1, 2994*5113495bSYour Name MLME_IFACE_STA_SAP_SUPPORT = 0x2, 2995*5113495bSYour Name MLME_IFACE_STA_NAN_SUPPORT = 0x4, 2996*5113495bSYour Name MLME_IFACE_STA_TDLS_SUPPORT = 0x8, 2997*5113495bSYour Name MLME_IFACE_STA_DUAL_P2P_SUPPORT = 0x10, 2998*5113495bSYour Name MLME_IFACE_STA_SAP_P2P_SUPPORT = 0x20, 2999*5113495bSYour Name MLME_IFACE_STA_SAP_NAN_SUPPORT = 0x40, 3000*5113495bSYour Name MLME_IFACE_STA_P2P_NAN_SUPPORT = 0x80, 3001*5113495bSYour Name MLME_IFACE_STA_P2P_TDLS_SUPPORT = 0x100, 3002*5113495bSYour Name MLME_IFACE_STA_SAP_TDLS_SUPPORT = 0x200, 3003*5113495bSYour Name MLME_IFACE_STA_NAN_TDLS_SUPPORT = 0x400, 3004*5113495bSYour Name MLME_IFACE_STA_SAP_P2P_TDLS_SUPPORT = 0x800, 3005*5113495bSYour Name MLME_IFACE_STA_SAP_NAN_TDLS_SUPPORT = 0x1000, 3006*5113495bSYour Name MLME_IFACE_STA_P2P_P2P_TDLS_SUPPORT = 0x2000, 3007*5113495bSYour Name MLME_IFACE_STA_P2P_NAN_TDLS_SUPPORT = 0x4000, 3008*5113495bSYour Name }; 3009*5113495bSYour Name 3010*5113495bSYour Name /** 3011*5113495bSYour Name * struct wlan_mlme_features - Mlme feature set structure 3012*5113495bSYour Name * @enable_wifi_optimizer: indicates wifi optimizer is enabled or disabled 3013*5113495bSYour Name * @sap_max_num_clients: maximum number of SoftAP clients 3014*5113495bSYour Name * @roaming_high_cu_roam_trigger: Roaming high CPU trigger enabled or disabled 3015*5113495bSYour Name * @roaming_emergency_trigger: Roaming emergency trigger enabled or disabled 3016*5113495bSYour Name * @roaming_btm_trihgger: Roaming btm trigger enabled or disabled 3017*5113495bSYour Name * @roaming_idle_trigger: Roaming idle trigger enabled or disabled 3018*5113495bSYour Name * @roaming_wtc_trigger: Roaming wtc trigger enabled or disabled 3019*5113495bSYour Name * @roaming_btcoex_trigger: Roaming btcoex trigger enabled or disabled 3020*5113495bSYour Name * @roaming_btw_wpa_wpa2: Roaming btw wpa wpa2 enabled or disabled 3021*5113495bSYour Name * @roaming_manage_chan_list_api: Roaming manage chan list api enabled or 3022*5113495bSYour Name * disabled 3023*5113495bSYour Name * @roaming_adaptive_11r: Roaming adaptive 11r enabled or disabled 3024*5113495bSYour Name * @roaming_ctrl_api_get_set: Roaming ctrl api get set enabled or disabled 3025*5113495bSYour Name * @roaming_ctrl_api_reassoc: Roaming ctrl api reassoc enabled or disabled 3026*5113495bSYour Name * @roaming_ctrl_get_cu: Roaming ctrl get cu enabled or disabled 3027*5113495bSYour Name * @vendor_req_1_version: Vendor requirement version 1 3028*5113495bSYour Name * @vendor_req_2_version: Vendor requirement version 2 3029*5113495bSYour Name * @enable2x2: Enable 2x2 3030*5113495bSYour Name * @iface_combinations: iface combination bitmask 3031*5113495bSYour Name */ 3032*5113495bSYour Name struct wlan_mlme_features { 3033*5113495bSYour Name bool enable_wifi_optimizer; 3034*5113495bSYour Name uint8_t sap_max_num_clients; 3035*5113495bSYour Name bool roaming_high_cu_roam_trigger; 3036*5113495bSYour Name bool roaming_emergency_trigger; 3037*5113495bSYour Name bool roaming_btm_trihgger; 3038*5113495bSYour Name bool roaming_idle_trigger; 3039*5113495bSYour Name bool roaming_wtc_trigger; 3040*5113495bSYour Name bool roaming_btcoex_trigger; 3041*5113495bSYour Name bool roaming_btw_wpa_wpa2; 3042*5113495bSYour Name bool roaming_manage_chan_list_api; 3043*5113495bSYour Name bool roaming_adaptive_11r; 3044*5113495bSYour Name bool roaming_ctrl_api_get_set; 3045*5113495bSYour Name bool roaming_ctrl_api_reassoc; 3046*5113495bSYour Name bool roaming_ctrl_get_cu; 3047*5113495bSYour Name WMI_HOST_VENDOR1_REQ1_VERSION vendor_req_1_version; 3048*5113495bSYour Name WMI_HOST_VENDOR1_REQ2_VERSION vendor_req_2_version; 3049*5113495bSYour Name bool enable2x2; 3050*5113495bSYour Name uint32_t iface_combinations; 3051*5113495bSYour Name }; 3052*5113495bSYour Name #endif 3053*5113495bSYour Name 3054*5113495bSYour Name /** 3055*5113495bSYour Name * enum host_concurrent_ap_policy - Host concurrent AP policy value 3056*5113495bSYour Name * @HOST_CONCURRENT_AP_POLICY_UNSPECIFIED: Unspecified concurrent policy value 3057*5113495bSYour Name * @HOST_CONCURRENT_AP_POLICY_GAMING_AUDIO: Gaming audio concurrent policy value 3058*5113495bSYour Name * @HOST_CONCURRENT_AP_POLICY_LOSSLESS_AUDIO_STREAMING: Lossless audio 3059*5113495bSYour Name * concurrent streaming policy value 3060*5113495bSYour Name * @HOST_CONCURRENT_AP_POLICY_XR: Concurrent policy to meet AR/VR requirements. 3061*5113495bSYour Name */ 3062*5113495bSYour Name enum host_concurrent_ap_policy { 3063*5113495bSYour Name HOST_CONCURRENT_AP_POLICY_UNSPECIFIED = 0, 3064*5113495bSYour Name HOST_CONCURRENT_AP_POLICY_GAMING_AUDIO = 1, 3065*5113495bSYour Name HOST_CONCURRENT_AP_POLICY_LOSSLESS_AUDIO_STREAMING = 2, 3066*5113495bSYour Name HOST_CONCURRENT_AP_POLICY_XR = 3 3067*5113495bSYour Name }; 3068*5113495bSYour Name 3069*5113495bSYour Name /** 3070*5113495bSYour Name * enum ll_ap_type - low latency AP type 3071*5113495bSYour Name * @LL_AP_TYPE_HT: low latency AP type high throughput 3072*5113495bSYour Name * @LL_AP_TYPE_LT: low latency AP type low latency 3073*5113495bSYour Name * @LL_AP_TYPE_ANY: low latency AP type any 3074*5113495bSYour Name */ 3075*5113495bSYour Name enum ll_ap_type { 3076*5113495bSYour Name LL_AP_TYPE_HT = 0, 3077*5113495bSYour Name LL_AP_TYPE_LT = 1, 3078*5113495bSYour Name LL_AP_TYPE_ANY = 2, 3079*5113495bSYour Name }; 3080*5113495bSYour Name 3081*5113495bSYour Name /** 3082*5113495bSYour Name * struct sap_ch_info - Structure holding all the information required to make 3083*5113495bSYour Name * a decision for the best operating channel based on dfs formula. 3084*5113495bSYour Name * @chan_freq: Channel frequency found in scanresult 3085*5113495bSYour Name * @bss_count: Bss found in scanresult for this channel 3086*5113495bSYour Name * @rssi_agr: Max value of rssi among all BSS(es) from scan result 3087*5113495bSYour Name * for this channel. 3088*5113495bSYour Name * @weight: Weightage of this channel 3089*5113495bSYour Name * @weight_copy: copy of the original weight 3090*5113495bSYour Name * @valid: Is this a valid center frequency for regulatory domain 3091*5113495bSYour Name * @weight_calc_done: Weight calculation done for this channel 3092*5113495bSYour Name */ 3093*5113495bSYour Name struct sap_ch_info { 3094*5113495bSYour Name uint32_t chan_freq; 3095*5113495bSYour Name uint16_t bss_count; 3096*5113495bSYour Name int32_t rssi_agr; 3097*5113495bSYour Name uint32_t weight; 3098*5113495bSYour Name uint32_t weight_copy; 3099*5113495bSYour Name bool valid; 3100*5113495bSYour Name bool weight_calc_done; 3101*5113495bSYour Name }; 3102*5113495bSYour Name 3103*5113495bSYour Name /** 3104*5113495bSYour Name * struct sap_sel_ch_info - Wrapper of sap_ch_info structure. 3105*5113495bSYour Name * @ch_info: Ptr to the channel information. 3106*5113495bSYour Name * @num_ch: Total num of channels. 3107*5113495bSYour Name */ 3108*5113495bSYour Name struct sap_sel_ch_info { 3109*5113495bSYour Name struct sap_ch_info *ch_info; 3110*5113495bSYour Name uint8_t num_ch; 3111*5113495bSYour Name }; 3112*5113495bSYour Name 3113*5113495bSYour Name /** 3114*5113495bSYour Name * enum mlme_peer_oper_mode_ind - Peer mode indication type 3115*5113495bSYour Name * @mlme_peer_ind_smps: spatial multiplexing power save 3116*5113495bSYour Name * @mlme_peer_ind_omn: Operating mode notification 3117*5113495bSYour Name * @mlme_peer_ind_omi: Operating mode indication 3118*5113495bSYour Name */ 3119*5113495bSYour Name enum mlme_peer_oper_mode_ind { 3120*5113495bSYour Name mlme_peer_ind_smps, 3121*5113495bSYour Name mlme_peer_ind_omn, 3122*5113495bSYour Name mlme_peer_ind_omi, 3123*5113495bSYour Name }; 3124*5113495bSYour Name 3125*5113495bSYour Name /** 3126*5113495bSYour Name * struct peer_oper_mode_event - structure for peer oper mode indication data 3127*5113495bSYour Name * @peer_mac_address: mac address of peer 3128*5113495bSYour Name * @ind_type: indication type of type @enum mlme_peer_oper_mode_ind 3129*5113495bSYour Name * @new_rxnss: New Rx NSS 3130*5113495bSYour Name * @new_bw: New bandwidth 3131*5113495bSYour Name * @new_txnss: New Tx NSS, valid only for mlme_peer_ind_omi 3132*5113495bSYour Name * @new_disablemu: Disabled MU mode, valid only for mlme_peer_ind_omi 3133*5113495bSYour Name */ 3134*5113495bSYour Name struct peer_oper_mode_event { 3135*5113495bSYour Name struct qdf_mac_addr peer_mac_address; 3136*5113495bSYour Name uint32_t ind_type; 3137*5113495bSYour Name uint32_t new_rxnss; 3138*5113495bSYour Name uint32_t new_bw; 3139*5113495bSYour Name uint32_t new_txnss; 3140*5113495bSYour Name uint32_t new_disablemu; 3141*5113495bSYour Name }; 3142*5113495bSYour Name #endif 3143