1*5113495bSYour Name /* 2*5113495bSYour Name * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved. 3*5113495bSYour Name * Copyright (c) 2021-2023 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 * DOC: This file provides the common definitions for object manager 21*5113495bSYour Name */ 22*5113495bSYour Name 23*5113495bSYour Name #ifndef _WLAN_CMN_H_ 24*5113495bSYour Name #define _WLAN_CMN_H_ 25*5113495bSYour Name 26*5113495bSYour Name #include <qdf_types.h> 27*5113495bSYour Name 28*5113495bSYour Name /* Max no of UMAC components */ 29*5113495bSYour Name #define WLAN_UMAC_MAX_COMPONENTS WLAN_UMAC_COMP_ID_MAX 30*5113495bSYour Name 31*5113495bSYour Name /* Max no. of radios, a pSoc/Device can support */ 32*5113495bSYour Name #ifdef WLAN_MAX_PDEVS 33*5113495bSYour Name #define WLAN_UMAC_MAX_PDEVS WLAN_MAX_PDEVS 34*5113495bSYour Name #else 35*5113495bSYour Name #define WLAN_UMAC_MAX_PDEVS 3 36*5113495bSYour Name #endif 37*5113495bSYour Name 38*5113495bSYour Name /* Max no. of VDEV per PSOC */ 39*5113495bSYour Name #ifdef WLAN_PSOC_MAX_VDEVS 40*5113495bSYour Name #define WLAN_UMAC_PSOC_MAX_VDEVS WLAN_PSOC_MAX_VDEVS 41*5113495bSYour Name #else 42*5113495bSYour Name #define WLAN_UMAC_PSOC_MAX_VDEVS 51 43*5113495bSYour Name #endif 44*5113495bSYour Name 45*5113495bSYour Name /* Max no. of VDEVs, a PDEV can support */ 46*5113495bSYour Name #ifdef WLAN_PDEV_MAX_VDEVS 47*5113495bSYour Name #define WLAN_UMAC_PDEV_MAX_VDEVS WLAN_PDEV_MAX_VDEVS 48*5113495bSYour Name #else 49*5113495bSYour Name #define WLAN_UMAC_PDEV_MAX_VDEVS 17 50*5113495bSYour Name #endif 51*5113495bSYour Name 52*5113495bSYour Name /* Max no. of Peers, a device can support */ 53*5113495bSYour Name #define WLAN_UMAC_PSOC_MAX_PEERS (1536 + WLAN_UMAC_PSOC_MAX_VDEVS) 54*5113495bSYour Name 55*5113495bSYour Name /* Max no. of Temporary Peers, a pdev can support */ 56*5113495bSYour Name #define WLAN_MAX_PDEV_TEMP_PEERS 128 57*5113495bSYour Name 58*5113495bSYour Name /* Max no. of Temporary Peers, a psoc can support */ 59*5113495bSYour Name #define WLAN_MAX_PSOC_TEMP_PEERS \ 60*5113495bSYour Name (WLAN_MAX_PDEV_TEMP_PEERS * WLAN_UMAC_MAX_PDEVS) 61*5113495bSYour Name 62*5113495bSYour Name /* Max length of a SSID */ 63*5113495bSYour Name #define WLAN_SSID_MAX_LEN 32 64*5113495bSYour Name 65*5113495bSYour Name #define WLAN_CACHE_ID_LEN 2 66*5113495bSYour Name 67*5113495bSYour Name /* Max sequence number */ 68*5113495bSYour Name #define WLAN_MAX_SEQ_NUM 4096 69*5113495bSYour Name 70*5113495bSYour Name /* Max no. of peers for STA vap */ 71*5113495bSYour Name #define WLAN_UMAC_MAX_STA_PEERS 2 72*5113495bSYour Name 73*5113495bSYour Name /* Max vdev_id */ 74*5113495bSYour Name #define WLAN_UMAC_VDEV_ID_MAX 0xFF 75*5113495bSYour Name 76*5113495bSYour Name /* Number of AID values to be reserved for 11az TBR RSTA ranging*/ 77*5113495bSYour Name #define WLAN_RTT_11AZ_NUM_RSID 16 78*5113495bSYour Name 79*5113495bSYour Name /* MAX AID */ 80*5113495bSYour Name /* Reserving AID value 1992-2007 from AID pool for 11az TBR RSTA ranging. */ 81*5113495bSYour Name #define WLAN_UMAC_MAX_AID (2008 - WLAN_RTT_11AZ_NUM_RSID - 1) 82*5113495bSYour Name 83*5113495bSYour Name /* Invalid pdev_id */ 84*5113495bSYour Name #define WLAN_INVALID_PDEV_ID 0xFFFFFFFF 85*5113495bSYour Name 86*5113495bSYour Name /* Invalid free descriptor count */ 87*5113495bSYour Name #define WLAN_INVALID_MGMT_DESC_COUNT 0xFFFFFFFF 88*5113495bSYour Name 89*5113495bSYour Name /* Max fw report pdev id */ 90*5113495bSYour Name #define WLAN_UMAC_MAX_RP_PID 2 91*5113495bSYour Name 92*5113495bSYour Name /* 802.11 cap info */ 93*5113495bSYour Name #define WLAN_CAPINFO_ESS 0x0001 94*5113495bSYour Name #define WLAN_CAPINFO_IBSS 0x0002 95*5113495bSYour Name #define WLAN_CAPINFO_CF_POLLABLE 0x0004 96*5113495bSYour Name #define WLAN_CAPINFO_CF_POLLREQ 0x0008 97*5113495bSYour Name #define WLAN_CAPINFO_PRIVACY 0x0010 98*5113495bSYour Name #define WLAN_CAPINFO_SHORT_PREAMBLE 0x0020 99*5113495bSYour Name #define WLAN_CAPINFO_PBCC 0x0040 100*5113495bSYour Name #define WLAN_CAPINFO_CHNL_AGILITY 0x0080 101*5113495bSYour Name #define WLAN_CAPINFO_SPECTRUM_MGMT 0x0100 102*5113495bSYour Name #define WLAN_CAPINFO_QOS 0x0200 103*5113495bSYour Name #define WLAN_CAPINFO_SHORT_SLOTTIME 0x0400 104*5113495bSYour Name #define WLAN_CAPINFO_APSD 0x0800 105*5113495bSYour Name #define WLAN_CAPINFO_RADIOMEAS 0x1000 106*5113495bSYour Name #define WLAN_CAPINFO_DSSSOFDM 0x2000 107*5113495bSYour Name 108*5113495bSYour Name /* Allowed time to wait for Object creation */ 109*5113495bSYour Name #define WLAN_VDEV_CREATE_TIMEOUT_CNT 300 110*5113495bSYour Name /* 25 msec */ 111*5113495bSYour Name #define WLAN_VDEV_CREATE_TIMEOUT 25 112*5113495bSYour Name 113*5113495bSYour Name #define WLAN_PDEV_CREATE_TIMEOUT_CNT 300 114*5113495bSYour Name /* 25 msec */ 115*5113495bSYour Name #define WLAN_PDEV_CREATE_TIMEOUT 25 116*5113495bSYour Name 117*5113495bSYour Name #define WLAN_PSOC_CREATE_TIMEOUT_CNT 300 118*5113495bSYour Name /* 25 msec */ 119*5113495bSYour Name #define WLAN_PSOC_CREATE_TIMEOUT 25 120*5113495bSYour Name #define WLAN_24_GHZ_BASE_FREQ (2407) 121*5113495bSYour Name #define WLAN_5_GHZ_BASE_FREQ (5000) 122*5113495bSYour Name #define WLAN_24_GHZ_CHANNEL_6 (6) 123*5113495bSYour Name #define WLAN_24_GHZ_CHANNEL_14 (14) 124*5113495bSYour Name #define WLAN_24_GHZ_CHANNEL_15 (15) 125*5113495bSYour Name #define WLAN_24_GHZ_CHANNEL_27 (27) 126*5113495bSYour Name #define WLAN_5_GHZ_CHANNEL_170 (170) 127*5113495bSYour Name #define WLAN_CHAN_SPACING_5MHZ (5) 128*5113495bSYour Name #define WLAN_CHAN_SPACING_20MHZ (20) 129*5113495bSYour Name #define WLAN_CHAN_14_FREQ (2484) 130*5113495bSYour Name #define WLAN_CHAN_15_FREQ (2512) 131*5113495bSYour Name #define WLAN_CHAN_170_FREQ (5852) 132*5113495bSYour Name 133*5113495bSYour Name #define WLAN_MAC_EID_VENDOR 221 134*5113495bSYour Name #define WLAN_MAC_EID_EXT 255 135*5113495bSYour Name 136*5113495bSYour Name /* VHT capability flags */ 137*5113495bSYour Name /* B0-B1 Maximum MPDU Length */ 138*5113495bSYour Name /* A-MSDU Length 3839 octets */ 139*5113495bSYour Name #define WLAN_VHTCAP_MAX_MPDU_LEN_3839 0x00000000 140*5113495bSYour Name /* A-MSDU Length 7991 octets */ 141*5113495bSYour Name #define WLAN_VHTCAP_MAX_MPDU_LEN_7935 0x00000001 142*5113495bSYour Name /* A-MSDU Length 11454 octets */ 143*5113495bSYour Name #define WLAN_VHTCAP_MAX_MPDU_LEN_11454 0x00000002 144*5113495bSYour Name 145*5113495bSYour Name /* B2-B3 Supported Channel Width */ 146*5113495bSYour Name /* Does not support 160 or 80+80 */ 147*5113495bSYour Name #define WLAN_VHTCAP_SUP_CHAN_WIDTH_80 0x00000000 148*5113495bSYour Name /* Supports 160 */ 149*5113495bSYour Name #define WLAN_VHTCAP_SUP_CHAN_WIDTH_160 0x00000004 150*5113495bSYour Name /* Support both 160 or 80+80 */ 151*5113495bSYour Name #define WLAN_VHTCAP_SUP_CHAN_WIDTH_80_160 0x00000008 152*5113495bSYour Name /* B2-B3 */ 153*5113495bSYour Name #define WLAN_VHTCAP_SUP_CHAN_WIDTH_S 2 154*5113495bSYour Name #define WLAN_VHTCAP_SUP_CHAN_WIDTH_MASK 0x0000000C 155*5113495bSYour Name /* B4 RX LDPC */ 156*5113495bSYour Name #define WLAN_VHTCAP_RX_LDPC 0x00000010 157*5113495bSYour Name /* B5 Short GI for 80MHz */ 158*5113495bSYour Name #define WLAN_VHTCAP_SHORTGI_80 0x00000020 159*5113495bSYour Name /* B6 Short GI for 160 and 80+80 MHz */ 160*5113495bSYour Name #define WLAN_VHTCAP_SHORTGI_160 0x00000040 161*5113495bSYour Name /* B7 Tx STBC */ 162*5113495bSYour Name #define WLAN_VHTCAP_TX_STBC 0x00000080 163*5113495bSYour Name #define WLAN_VHTCAP_TX_STBC_S 7 164*5113495bSYour Name /* B8-B10 Rx STBC */ 165*5113495bSYour Name #define WLAN_VHTCAP_RX_STBC 0x00000700 166*5113495bSYour Name #define WLAN_VHTCAP_RX_STBC_S 8 167*5113495bSYour Name /* B11 SU Beam former capable */ 168*5113495bSYour Name #define WLAN_VHTCAP_SU_BFORMER 0x00000800 169*5113495bSYour Name #define WLAN_VHTCAP_SU_BFORMER_S 11 170*5113495bSYour Name /* B12 SU Beam formee capable */ 171*5113495bSYour Name #define WLAN_VHTCAP_SU_BFORMEE 0x00001000 172*5113495bSYour Name #define WLAN_VHTCAP_SU_BFORMEE_S 12 173*5113495bSYour Name 174*5113495bSYour Name /* B13-B15 Compressed steering number of beacomformer Antennas supported */ 175*5113495bSYour Name #define WLAN_VHTCAP_BF_MAX_ANT 0x0000E000 176*5113495bSYour Name #define WLAN_VHTCAP_BF_MAX_ANT_S 13 177*5113495bSYour Name /* B13-B15 Beamformee STS Capability */ 178*5113495bSYour Name #define WLAN_VHTCAP_STS_CAP_S 13 179*5113495bSYour Name #define WLAN_VHTCAP_STS_CAP_M 0x7 180*5113495bSYour Name 181*5113495bSYour Name /* B16-B18 Sounding Dimensions */ 182*5113495bSYour Name #define WLAN_VHTCAP_SOUND_DIM 0x00070000 183*5113495bSYour Name #define WLAN_VHTCAP_SOUND_DIM_S 16 184*5113495bSYour Name /* B19 MU Beam Former */ 185*5113495bSYour Name #define WLAN_VHTCAP_MU_BFORMER 0x00080000 186*5113495bSYour Name #define WLAN_VHTCAP_MU_BFORMER_S 19 187*5113495bSYour Name /* B20 MU Beam Formee */ 188*5113495bSYour Name #define WLAN_VHTCAP_MU_BFORMEE 0x00100000 189*5113495bSYour Name #define WLAN_VHTCAP_MU_BFORMEE_S 20 190*5113495bSYour Name /* B21 VHT TXOP PS */ 191*5113495bSYour Name #define WLAN_VHTCAP_TXOP_PS 0x00200000 192*5113495bSYour Name /* B22 +HTC-VHT capable */ 193*5113495bSYour Name #define WLAN_VHTCAP_PLUS_HTC_VHT 0x00400000 194*5113495bSYour Name 195*5113495bSYour Name #define WLAN_VHTCAP_MAX_AMPDU_LEN_FACTOR 13 196*5113495bSYour Name /* B23-B25 maximum AMPDU Length Exponent */ 197*5113495bSYour Name #define WLAN_VHTCAP_MAX_AMPDU_LEN_EXP 0x03800000 198*5113495bSYour Name #define WLAN_VHTCAP_MAX_AMPDU_LEN_EXP_S 23 199*5113495bSYour Name /* B26-B27 VHT Link Adaptation capable */ 200*5113495bSYour Name #define WLAN_VHTCAP_LINK_ADAPT 0x0C000000 201*5113495bSYour Name /* Rx Antenna Pattern Consistency Supported */ 202*5113495bSYour Name #define WLAN_VHTCAP_RX_ANTENNA_PATTERN 0x10000000 203*5113495bSYour Name /* Tx Antenna Pattern Consistency Supported */ 204*5113495bSYour Name #define WLAN_VHTCAP_TX_ANTENNA_PATTERN 0x20000000 205*5113495bSYour Name /* B30-B31 Extended NSS Bandwidth Support */ 206*5113495bSYour Name #define WLAN_VHTCAP_NO_EXT_NSS_BW_SUPPORT 0x00000000 207*5113495bSYour Name /* B30-B31 Extended NSS Bandwidth Support */ 208*5113495bSYour Name #define WLAN_VHTCAP_EXT_NSS_BW_SUPPORT_1 0x40000000 209*5113495bSYour Name /* B30-B31 Extended NSS Bandwidth Support */ 210*5113495bSYour Name #define WLAN_VHTCAP_EXT_NSS_BW_SUPPORT_2 0x80000000 211*5113495bSYour Name /* B30-B31 Extended NSS Bandwidth Support */ 212*5113495bSYour Name #define WLAN_VHTCAP_EXT_NSS_BW_SUPPORT_3 0xC0000000 213*5113495bSYour Name #define WLAN_VHTCAP_EXT_NSS_BW_SUPPORT_S 30 214*5113495bSYour Name #define WLAN_VHTCAP_EXT_NSS_BW_SUPPORT_MASK 0xC0000000 215*5113495bSYour Name 216*5113495bSYour Name #define WLAN_VHTCAP_EXT_NSS_MASK (WLAN_VHTCAP_SUP_CHAN_WIDTH_MASK |\ 217*5113495bSYour Name WLAN_VHTCAP_EXT_NSS_BW_SUPPORT_MASK) 218*5113495bSYour Name /* VHTCAP combinations of "supported channel width" and "ext nss support" 219*5113495bSYour Name * which determine the NSS value supported by STA for <=80 MHz, 160 MHz 220*5113495bSYour Name * and 80+80 MHz. The macros to be read as combination of 221*5113495bSYour Name * "supported channel width" and "ext nss support" followed by NSS for 80MHz, 222*5113495bSYour Name * 160MHz and 80+80MHz defined as a function of Max VHT NSS supported. 223*5113495bSYour Name * Ex: WLAN_EXTNSS_MAP_01_80F1_160FDOT5_80P80NONE - To be reas as 224*5113495bSYour Name * supported channel width = 0 225*5113495bSYour Name * ext nss support = 1 226*5113495bSYour Name * NSS value for <=80MHz = max_vht_nss * 1 227*5113495bSYour Name * NSS value for 160MHz = max_vht_nss * (.5) 228*5113495bSYour Name * NSS value for 80+80MHz = not supported 229*5113495bSYour Name */ 230*5113495bSYour Name #define WLAN_EXTNSS_MAP_00_80F1_160NONE_80P80NONE \ 231*5113495bSYour Name (WLAN_VHTCAP_SUP_CHAN_WIDTH_80 | WLAN_VHTCAP_NO_EXT_NSS_BW_SUPPORT) 232*5113495bSYour Name #define WLAN_EXTNSS_MAP_01_80F1_160FDOT5_80P80NONE \ 233*5113495bSYour Name (WLAN_VHTCAP_SUP_CHAN_WIDTH_80 | WLAN_VHTCAP_EXT_NSS_BW_SUPPORT_1) 234*5113495bSYour Name #define WLAN_EXTNSS_MAP_02_80F1_160FDOT5_80P80FDOT5 \ 235*5113495bSYour Name (WLAN_VHTCAP_SUP_CHAN_WIDTH_80 | WLAN_VHTCAP_EXT_NSS_BW_SUPPORT_2) 236*5113495bSYour Name #define WLAN_EXTNSS_MAP_03_80F1_160FDOT75_80P80FDOT75 \ 237*5113495bSYour Name (WLAN_VHTCAP_SUP_CHAN_WIDTH_80 | WLAN_VHTCAP_EXT_NSS_BW_SUPPORT_3) 238*5113495bSYour Name #define WLAN_EXTNSS_MAP_10_80F1_160F1_80P80NONE \ 239*5113495bSYour Name (WLAN_VHTCAP_SUP_CHAN_WIDTH_160 | WLAN_VHTCAP_NO_EXT_NSS_BW_SUPPORT) 240*5113495bSYour Name #define WLAN_EXTNSS_MAP_11_80F1_160F1_80P80FDOT5 \ 241*5113495bSYour Name (WLAN_VHTCAP_SUP_CHAN_WIDTH_160 | WLAN_VHTCAP_EXT_NSS_BW_SUPPORT_1) 242*5113495bSYour Name #define WLAN_EXTNSS_MAP_12_80F1_160F1_80P80FDOT75 \ 243*5113495bSYour Name (WLAN_VHTCAP_SUP_CHAN_WIDTH_160 | WLAN_VHTCAP_EXT_NSS_BW_SUPPORT_2) 244*5113495bSYour Name #define WLAN_EXTNSS_MAP_13_80F2_160F2_80P80F1 \ 245*5113495bSYour Name (WLAN_VHTCAP_SUP_CHAN_WIDTH_160 | WLAN_VHTCAP_EXT_NSS_BW_SUPPORT_3) 246*5113495bSYour Name #define WLAN_EXTNSS_MAP_20_80F1_160F1_80P80F1 \ 247*5113495bSYour Name (WLAN_VHTCAP_SUP_CHAN_WIDTH_80_160 | WLAN_VHTCAP_NO_EXT_NSS_BW_SUPPORT) 248*5113495bSYour Name #define WLAN_EXTNSS_MAP_23_80F2_160F1_80P80F1 \ 249*5113495bSYour Name (WLAN_VHTCAP_SUP_CHAN_WIDTH_80_160 | WLAN_VHTCAP_EXT_NSS_BW_SUPPORT_3) 250*5113495bSYour Name 251*5113495bSYour Name 252*5113495bSYour Name /** 253*5113495bSYour Name * enum wlan_umac_comp_id - UMAC component id 254*5113495bSYour Name * @WLAN_UMAC_COMP_MLME: MLME 255*5113495bSYour Name * @WLAN_UMAC_COMP_MGMT_TXRX: MGMT Tx/Rx 256*5113495bSYour Name * @WLAN_UMAC_COMP_SERIALIZATION: Serialization 257*5113495bSYour Name * @WLAN_UMAC_COMP_SCAN: SCAN - as scan module uses services provided by 258*5113495bSYour Name * MLME, MGMT_TXRX and SERIALIZATION, SCAN module 259*5113495bSYour Name * must be initializes after above modules. 260*5113495bSYour Name * @WLAN_UMAC_COMP_PMO: PMO component 261*5113495bSYour Name * @WLAN_UMAC_COMP_P2P: P2P 262*5113495bSYour Name * @WLAN_UMAC_COMP_POLICY_MGR: Policy Manager 263*5113495bSYour Name * @WLAN_UMAC_COMP_CONFIG: Configuration 264*5113495bSYour Name * @WLAN_TARGET_IF_COMP_DIRECT_BUF_RX: Direct Buffer RX 265*5113495bSYour Name * @WLAN_UMAC_COMP_WIFI_POS: WIFI Positioning 266*5113495bSYour Name * @WLAN_UMAC_COMP_TDLS: TDLS 267*5113495bSYour Name * @WLAN_UMAC_COMP_ATF: Airtime Fairness 268*5113495bSYour Name * @WLAN_UMAC_COMP_SA_API: Smart Antenna API 269*5113495bSYour Name * @WLAN_UMAC_COMP_REGULATORY: REGULATORY 270*5113495bSYour Name * @WLAN_UMAC_COMP_CRYPTO: CRYPTO 271*5113495bSYour Name * @WLAN_UMAC_COMP_NAN: Neighbor Aware Networking 272*5113495bSYour Name * @WLAN_UMAC_COMP_DFS: DFS 273*5113495bSYour Name * @WLAN_UMAC_COMP_SPECTRAL: Spectral 274*5113495bSYour Name * @WLAN_UMAC_COMP_OFFCHAN_TXRX: Offchan TxRx 275*5113495bSYour Name * @WLAN_UMAC_COMP_SON: SON 276*5113495bSYour Name * @WLAN_UMAC_COMP_SPECTRAL: Spectral 277*5113495bSYour Name * @WLAN_UMAC_COMP_SPLITMAC: SplitMAC 278*5113495bSYour Name * @WLAN_UMAC_COMP_DISA: DISA encryption test 279*5113495bSYour Name * @WLAN_UMAC_COMP_GREEN_AP: Green AP 280*5113495bSYour Name * @WLAN_UMAC_COMP_FTM: FTM component 281*5113495bSYour Name * @WLAN_UMAC_COMP_FD: FILS Discovery 282*5113495bSYour Name * @WLAN_UMAC_COMP_OCB: OCB 283*5113495bSYour Name * @WLAN_UMAC_COMP_IPA: IPA 284*5113495bSYour Name * @WLAN_UMAC_COMP_CP_STATS: Control Plane Statistics 285*5113495bSYour Name * @WLAN_UMAC_COMP_ACTION_OUI: ACTION OUI 286*5113495bSYour Name * @WLAN_UMAC_COMP_FWOL: FW Offload 287*5113495bSYour Name * @WLAN_UMAC_COMP_CFR: CFR component 288*5113495bSYour Name * @WLAN_UMAC_COMP_INTEROP_ISSUES_AP: interop issues ap component 289*5113495bSYour Name * @WLAN_UMAC_COMP_DENYLIST_MGR: Denylist mgr component 290*5113495bSYour Name * @WLAN_UMAC_COMP_COEX: Coex config component 291*5113495bSYour Name * @WLAN_UMAC_COMP_FTM_TIME_SYNC: WLAN FTM TIMESYNC 292*5113495bSYour Name * @WLAN_UMAC_COMP_PKT_CAPTURE: Packet capture component 293*5113495bSYour Name * @WLAN_UMAC_COMP_DCS: DCS 294*5113495bSYour Name * @WLAN_IOT_SIM_COMP: IOT Simulation component 295*5113495bSYour Name * @WLAN_UMAC_COMP_IF_MGR: Interface manager component 296*5113495bSYour Name * @WLAN_UMAC_COMP_GPIO: GPIO Configuration 297*5113495bSYour Name * @WLAN_UMAC_COMP_MLO_MGR: MLO manager 298*5113495bSYour Name * @WLAN_UMAC_COMP_REPEATER: Repeater component 299*5113495bSYour Name * @WLAN_UMAC_COMP_MBSS: MBSS Framework 300*5113495bSYour Name * @WLAN_UMAC_COMP_WIFI_RADAR: WIFI RADAR component 301*5113495bSYour Name * @WLAN_UMAC_COMP_TWT: Target Wake Time (TWT) Component 302*5113495bSYour Name * @WLAN_UMAC_COMP_PRE_CAC: PRE CAC component 303*5113495bSYour Name * @WLAN_COMP_DP: DP component 304*5113495bSYour Name * @WLAN_COMP_TELEMETRY_AGENT: Telemetry Agent component 305*5113495bSYour Name * @WLAN_UMAC_COMP_COAP: Constrained Application Protocol component 306*5113495bSYour Name * @WLAN_UMAC_COMP_QMI: QMI component 307*5113495bSYour Name * @WLAN_UMAC_COMP_AFC: AFC component 308*5113495bSYour Name * @WLAN_UMAC_COMP_SAWF: SAWF component 309*5113495bSYour Name * @WLAN_UMAC_COMP_LL_SAP: LL SAP component 310*5113495bSYour Name * @WLAN_UMAC_COMP_ID_MAX: Maximum components in UMAC 311*5113495bSYour Name * 312*5113495bSYour Name * This id is static. 313*5113495bSYour Name * On Adding new component, new id has to be assigned 314*5113495bSYour Name */ 315*5113495bSYour Name enum wlan_umac_comp_id { 316*5113495bSYour Name WLAN_UMAC_COMP_MLME = 0, 317*5113495bSYour Name WLAN_UMAC_COMP_MGMT_TXRX = 1, 318*5113495bSYour Name WLAN_UMAC_COMP_SERIALIZATION = 2, 319*5113495bSYour Name WLAN_UMAC_COMP_SCAN = 3, 320*5113495bSYour Name WLAN_UMAC_COMP_PMO = 4, 321*5113495bSYour Name WLAN_UMAC_COMP_P2P = 5, 322*5113495bSYour Name WLAN_UMAC_COMP_POLICY_MGR = 6, 323*5113495bSYour Name WLAN_UMAC_COMP_CONFIG = 7, 324*5113495bSYour Name WLAN_TARGET_IF_COMP_DIRECT_BUF_RX = 8, 325*5113495bSYour Name WLAN_UMAC_COMP_WIFI_POS = 9, 326*5113495bSYour Name WLAN_UMAC_COMP_TDLS = 10, 327*5113495bSYour Name WLAN_UMAC_COMP_ATF = 11, 328*5113495bSYour Name WLAN_UMAC_COMP_SA_API = 12, 329*5113495bSYour Name WLAN_UMAC_COMP_REGULATORY = 13, 330*5113495bSYour Name WLAN_UMAC_COMP_CRYPTO = 14, 331*5113495bSYour Name WLAN_UMAC_COMP_NAN = 15, 332*5113495bSYour Name WLAN_UMAC_COMP_DFS = 16, 333*5113495bSYour Name WLAN_UMAC_COMP_OFFCHAN_TXRX = 17, 334*5113495bSYour Name WLAN_UMAC_COMP_SON = 18, 335*5113495bSYour Name WLAN_UMAC_COMP_SPECTRAL = 19, 336*5113495bSYour Name WLAN_UMAC_COMP_SPLITMAC = 20, 337*5113495bSYour Name WLAN_UMAC_COMP_DISA = 21, 338*5113495bSYour Name WLAN_UMAC_COMP_GREEN_AP = 22, 339*5113495bSYour Name WLAN_UMAC_COMP_FTM = 23, 340*5113495bSYour Name WLAN_UMAC_COMP_FD = 24, 341*5113495bSYour Name WLAN_UMAC_COMP_OCB = 25, 342*5113495bSYour Name WLAN_UMAC_COMP_IPA = 26, 343*5113495bSYour Name WLAN_UMAC_COMP_CP_STATS = 27, 344*5113495bSYour Name WLAN_UMAC_COMP_ACTION_OUI = 28, 345*5113495bSYour Name WLAN_UMAC_COMP_FWOL = 29, 346*5113495bSYour Name WLAN_UMAC_COMP_CFR = 30, 347*5113495bSYour Name WLAN_UMAC_COMP_INTEROP_ISSUES_AP = 31, 348*5113495bSYour Name WLAN_UMAC_COMP_DENYLIST_MGR = 32, 349*5113495bSYour Name WLAN_UMAC_COMP_COEX = 33, 350*5113495bSYour Name WLAN_UMAC_COMP_FTM_TIME_SYNC = 34, 351*5113495bSYour Name WLAN_UMAC_COMP_PKT_CAPTURE = 35, 352*5113495bSYour Name WLAN_UMAC_COMP_DCS = 36, 353*5113495bSYour Name WLAN_IOT_SIM_COMP = 37, 354*5113495bSYour Name WLAN_UMAC_COMP_IF_MGR = 38, 355*5113495bSYour Name WLAN_UMAC_COMP_GPIO = 39, 356*5113495bSYour Name WLAN_UMAC_COMP_MLO_MGR = 40, 357*5113495bSYour Name WLAN_UMAC_COMP_REPEATER = 41, 358*5113495bSYour Name WLAN_UMAC_COMP_MBSS = 42, 359*5113495bSYour Name WLAN_UMAC_COMP_WIFI_RADAR = 43, 360*5113495bSYour Name WLAN_UMAC_COMP_TWT = 44, 361*5113495bSYour Name WLAN_UMAC_COMP_PRE_CAC = 45, 362*5113495bSYour Name WLAN_COMP_DP = 46, 363*5113495bSYour Name WLAN_COMP_TELEMETRY_AGENT = 47, 364*5113495bSYour Name WLAN_UMAC_COMP_COAP = 48, 365*5113495bSYour Name WLAN_UMAC_COMP_QMI = 49, 366*5113495bSYour Name WLAN_UMAC_COMP_AFC = 50, 367*5113495bSYour Name WLAN_UMAC_COMP_SAWF = 51, 368*5113495bSYour Name WLAN_UMAC_COMP_LL_SAP = 52, 369*5113495bSYour Name WLAN_UMAC_COMP_ID_MAX, 370*5113495bSYour Name }; 371*5113495bSYour Name 372*5113495bSYour Name /** 373*5113495bSYour Name * enum WLAN_DEV_TYPE - for DA or OL architecture types 374*5113495bSYour Name * @WLAN_DEV_DA: Direct attach 375*5113495bSYour Name * @WLAN_DEV_OL: Partial offload 376*5113495bSYour Name * @WLAN_DEV_INVALID: Invalid dev type 377*5113495bSYour Name */ 378*5113495bSYour Name typedef enum { 379*5113495bSYour Name WLAN_DEV_DA = 0, 380*5113495bSYour Name WLAN_DEV_OL = 1, 381*5113495bSYour Name WLAN_DEV_INVALID = 3, 382*5113495bSYour Name } WLAN_DEV_TYPE; 383*5113495bSYour Name 384*5113495bSYour Name /** 385*5113495bSYour Name * enum wlan_phymode - phy mode 386*5113495bSYour Name * @WLAN_PHYMODE_AUTO: autoselect 387*5113495bSYour Name * @WLAN_PHYMODE_11A: 5GHz, OFDM 388*5113495bSYour Name * @WLAN_PHYMODE_11B: 2GHz, CCK 389*5113495bSYour Name * @WLAN_PHYMODE_11G: 2GHz, OFDM 390*5113495bSYour Name * @WLAN_PHYMODE_11G_ONLY: 2GHz only 391*5113495bSYour Name * @WLAN_PHYMODE_11NA_HT20: 5Ghz, HT20 392*5113495bSYour Name * @WLAN_PHYMODE_11NG_HT20: 2Ghz, HT20 393*5113495bSYour Name * @WLAN_PHYMODE_11NA_HT40: 5Ghz, Auto HT40 394*5113495bSYour Name * @WLAN_PHYMODE_11NG_HT40PLUS: 2Ghz, HT40 (ext ch +1) 395*5113495bSYour Name * @WLAN_PHYMODE_11NG_HT40MINUS: 2Ghz, HT40 (ext ch -1) 396*5113495bSYour Name * @WLAN_PHYMODE_11NG_HT40: 2Ghz, Auto HT40 397*5113495bSYour Name * @WLAN_PHYMODE_11AC_VHT20: 5Ghz, VHT20 398*5113495bSYour Name * @WLAN_PHYMODE_11AC_VHT20_2G: 2Ghz, VHT20 399*5113495bSYour Name * @WLAN_PHYMODE_11AC_VHT40: 5Ghz, VHT40 400*5113495bSYour Name * @WLAN_PHYMODE_11AC_VHT40PLUS_2G: 2Ghz, VHT40 (ext ch +1) 401*5113495bSYour Name * @WLAN_PHYMODE_11AC_VHT40MINUS_2G: 2Ghz, VHT40 (ext ch -1) 402*5113495bSYour Name * @WLAN_PHYMODE_11AC_VHT40_2G: 2Ghz, VHT40 403*5113495bSYour Name * @WLAN_PHYMODE_11AC_VHT80: 5Ghz, VHT80 404*5113495bSYour Name * @WLAN_PHYMODE_11AC_VHT80_2G: 2Ghz, VHT80 405*5113495bSYour Name * @WLAN_PHYMODE_11AC_VHT160: 5Ghz, VHT160 406*5113495bSYour Name * @WLAN_PHYMODE_11AC_VHT80_80: 5Ghz, VHT80_80 407*5113495bSYour Name * @WLAN_PHYMODE_11AXA_HE20: 5GHz, HE20 408*5113495bSYour Name * @WLAN_PHYMODE_11AXG_HE20: 2GHz, HE20 409*5113495bSYour Name * @WLAN_PHYMODE_11AXA_HE40: 5GHz, HE40 410*5113495bSYour Name * @WLAN_PHYMODE_11AXG_HE40PLUS: 2GHz, HE40 (ext ch +1) 411*5113495bSYour Name * @WLAN_PHYMODE_11AXG_HE40MINUS:2GHz, HE40 (ext ch -1) 412*5113495bSYour Name * @WLAN_PHYMODE_11AXG_HE40: 2GHz, HE40 413*5113495bSYour Name * @WLAN_PHYMODE_11AXA_HE80: 5GHz, HE80 414*5113495bSYour Name * @WLAN_PHYMODE_11AXG_HE80: 2GHz, HE80 415*5113495bSYour Name * @WLAN_PHYMODE_11AXA_HE160: 5GHz, HE160 416*5113495bSYour Name * @WLAN_PHYMODE_11AXA_HE80_80: 5GHz, HE80_80 417*5113495bSYour Name * @WLAN_PHYMODE_11BEA_EHT20: 5GHz, EHT20 418*5113495bSYour Name * @WLAN_PHYMODE_11BEG_EHT20: 2GHz, EHT20 419*5113495bSYour Name * @WLAN_PHYMODE_11BEA_EHT40: 5GHz, EHT40 420*5113495bSYour Name * @WLAN_PHYMODE_11BEG_EHT40PLUS: 2GHz, EHT40 (ext ch +1) 421*5113495bSYour Name * @WLAN_PHYMODE_11BEG_EHT40MINUS:2GHz, EHT40 (ext ch -1) 422*5113495bSYour Name * @WLAN_PHYMODE_11BEG_EHT40: 2GHz, EHT40 423*5113495bSYour Name * @WLAN_PHYMODE_11BEA_EHT80: 5GHz, EHT80 424*5113495bSYour Name * @WLAN_PHYMODE_11BEG_EHT80: 2GHz, EHT80 425*5113495bSYour Name * @WLAN_PHYMODE_11BEA_EHT160: 5GHz, EHT160 426*5113495bSYour Name * @WLAN_PHYMODE_11BEA_EHT320: 5GHz, EHT320 427*5113495bSYour Name * @WLAN_PHYMODE_MAX: Max phymode 428*5113495bSYour Name */ 429*5113495bSYour Name enum wlan_phymode { 430*5113495bSYour Name WLAN_PHYMODE_AUTO = 0, 431*5113495bSYour Name WLAN_PHYMODE_11A = 1, 432*5113495bSYour Name WLAN_PHYMODE_11B = 2, 433*5113495bSYour Name WLAN_PHYMODE_11G = 3, 434*5113495bSYour Name WLAN_PHYMODE_11G_ONLY = 4, 435*5113495bSYour Name WLAN_PHYMODE_11NA_HT20 = 5, 436*5113495bSYour Name WLAN_PHYMODE_11NG_HT20 = 6, 437*5113495bSYour Name WLAN_PHYMODE_11NA_HT40 = 7, 438*5113495bSYour Name WLAN_PHYMODE_11NG_HT40PLUS = 8, 439*5113495bSYour Name WLAN_PHYMODE_11NG_HT40MINUS = 9, 440*5113495bSYour Name WLAN_PHYMODE_11NG_HT40 = 10, 441*5113495bSYour Name WLAN_PHYMODE_11AC_VHT20 = 11, 442*5113495bSYour Name WLAN_PHYMODE_11AC_VHT20_2G = 12, 443*5113495bSYour Name WLAN_PHYMODE_11AC_VHT40 = 13, 444*5113495bSYour Name WLAN_PHYMODE_11AC_VHT40PLUS_2G = 14, 445*5113495bSYour Name WLAN_PHYMODE_11AC_VHT40MINUS_2G = 15, 446*5113495bSYour Name WLAN_PHYMODE_11AC_VHT40_2G = 16, 447*5113495bSYour Name WLAN_PHYMODE_11AC_VHT80 = 17, 448*5113495bSYour Name WLAN_PHYMODE_11AC_VHT80_2G = 18, 449*5113495bSYour Name WLAN_PHYMODE_11AC_VHT160 = 19, 450*5113495bSYour Name WLAN_PHYMODE_11AC_VHT80_80 = 20, 451*5113495bSYour Name WLAN_PHYMODE_11AXA_HE20 = 21, 452*5113495bSYour Name WLAN_PHYMODE_11AXG_HE20 = 22, 453*5113495bSYour Name WLAN_PHYMODE_11AXA_HE40 = 23, 454*5113495bSYour Name WLAN_PHYMODE_11AXG_HE40PLUS = 24, 455*5113495bSYour Name WLAN_PHYMODE_11AXG_HE40MINUS = 25, 456*5113495bSYour Name WLAN_PHYMODE_11AXG_HE40 = 26, 457*5113495bSYour Name WLAN_PHYMODE_11AXA_HE80 = 27, 458*5113495bSYour Name WLAN_PHYMODE_11AXG_HE80 = 28, 459*5113495bSYour Name WLAN_PHYMODE_11AXA_HE160 = 29, 460*5113495bSYour Name WLAN_PHYMODE_11AXA_HE80_80 = 30, 461*5113495bSYour Name #ifdef WLAN_FEATURE_11BE 462*5113495bSYour Name WLAN_PHYMODE_11BEA_EHT20 = 31, 463*5113495bSYour Name WLAN_PHYMODE_11BEG_EHT20 = 32, 464*5113495bSYour Name WLAN_PHYMODE_11BEA_EHT40 = 33, 465*5113495bSYour Name WLAN_PHYMODE_11BEG_EHT40PLUS = 34, 466*5113495bSYour Name WLAN_PHYMODE_11BEG_EHT40MINUS = 35, 467*5113495bSYour Name WLAN_PHYMODE_11BEG_EHT40 = 36, 468*5113495bSYour Name WLAN_PHYMODE_11BEA_EHT80 = 37, 469*5113495bSYour Name WLAN_PHYMODE_11BEG_EHT80 = 38, 470*5113495bSYour Name WLAN_PHYMODE_11BEA_EHT160 = 39, 471*5113495bSYour Name WLAN_PHYMODE_11BEA_EHT320 = 40, 472*5113495bSYour Name #endif 473*5113495bSYour Name WLAN_PHYMODE_MAX 474*5113495bSYour Name }; 475*5113495bSYour Name 476*5113495bSYour Name #ifdef WLAN_FEATURE_11BE 477*5113495bSYour Name #define IS_WLAN_PHYMODE_320MHZ(_mode) ({typeof(_mode) mode = (_mode); \ 478*5113495bSYour Name ((mode) == WLAN_PHYMODE_11BEA_EHT320); }) 479*5113495bSYour Name 480*5113495bSYour Name #define IS_WLAN_PHYMODE_160MHZ(_mode) ({typeof(_mode) mode = (_mode); \ 481*5113495bSYour Name ((mode) == WLAN_PHYMODE_11BEA_EHT160) || \ 482*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT80_80) || \ 483*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT160) || \ 484*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXA_HE80_80) || \ 485*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXA_HE160); }) 486*5113495bSYour Name 487*5113495bSYour Name #define IS_WLAN_PHYMODE_80MHZ(_mode) ({typeof(_mode) mode = (_mode); \ 488*5113495bSYour Name ((mode) == WLAN_PHYMODE_11BEA_EHT80) || \ 489*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT80) || \ 490*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT80_2G) || \ 491*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXA_HE80) || \ 492*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXG_HE80); }) 493*5113495bSYour Name 494*5113495bSYour Name #define IS_WLAN_PHYMODE_40MHZ(_mode) ({typeof(_mode) mode = (_mode); \ 495*5113495bSYour Name ((mode) == WLAN_PHYMODE_11NG_HT40) || \ 496*5113495bSYour Name ((mode) == WLAN_PHYMODE_11NG_HT40PLUS) || \ 497*5113495bSYour Name ((mode) == WLAN_PHYMODE_11NG_HT40MINUS) || \ 498*5113495bSYour Name ((mode) == WLAN_PHYMODE_11NA_HT40) || \ 499*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT40) || \ 500*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT40_2G) || \ 501*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT40PLUS_2G) || \ 502*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT40MINUS_2G) || \ 503*5113495bSYour Name ((mode) == WLAN_PHYMODE_11BEA_EHT40) || \ 504*5113495bSYour Name ((mode) == WLAN_PHYMODE_11BEG_EHT40) || \ 505*5113495bSYour Name ((mode) == WLAN_PHYMODE_11BEG_EHT40PLUS) || \ 506*5113495bSYour Name ((mode) == WLAN_PHYMODE_11BEG_EHT40MINUS) || \ 507*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXA_HE40) || \ 508*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXG_HE40) || \ 509*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXG_HE40PLUS) || \ 510*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXG_HE40MINUS); }) 511*5113495bSYour Name 512*5113495bSYour Name #define IS_WLAN_PHYMODE_EHT(_mode) ({typeof(_mode) mode = (_mode); \ 513*5113495bSYour Name ((mode) == WLAN_PHYMODE_11BEA_EHT20) || \ 514*5113495bSYour Name ((mode) == WLAN_PHYMODE_11BEG_EHT20) || \ 515*5113495bSYour Name ((mode) == WLAN_PHYMODE_11BEA_EHT40) || \ 516*5113495bSYour Name ((mode) == WLAN_PHYMODE_11BEG_EHT40) || \ 517*5113495bSYour Name ((mode) == WLAN_PHYMODE_11BEG_EHT40PLUS) || \ 518*5113495bSYour Name ((mode) == WLAN_PHYMODE_11BEG_EHT40MINUS) || \ 519*5113495bSYour Name ((mode) == WLAN_PHYMODE_11BEA_EHT80) || \ 520*5113495bSYour Name ((mode) == WLAN_PHYMODE_11BEG_EHT80) || \ 521*5113495bSYour Name ((mode) == WLAN_PHYMODE_11BEA_EHT160) || \ 522*5113495bSYour Name ((mode) == WLAN_PHYMODE_11BEA_EHT320); }) 523*5113495bSYour Name 524*5113495bSYour Name #else 525*5113495bSYour Name #define IS_WLAN_PHYMODE_320MHZ(_mode) 0 526*5113495bSYour Name 527*5113495bSYour Name #define IS_WLAN_PHYMODE_160MHZ(_mode) ({typeof(_mode) mode = (_mode); \ 528*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT80_80) || \ 529*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT160) || \ 530*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXA_HE80_80) || \ 531*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXA_HE160); }) 532*5113495bSYour Name 533*5113495bSYour Name #define IS_WLAN_PHYMODE_80MHZ(_mode) ({typeof(_mode) mode = (_mode); \ 534*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT80) || \ 535*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT80_2G) || \ 536*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXA_HE80) || \ 537*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXG_HE80); }) 538*5113495bSYour Name 539*5113495bSYour Name #define IS_WLAN_PHYMODE_40MHZ(_mode) ({typeof(_mode) mode = (_mode); \ 540*5113495bSYour Name ((mode) == WLAN_PHYMODE_11NG_HT40) || \ 541*5113495bSYour Name ((mode) == WLAN_PHYMODE_11NG_HT40PLUS) || \ 542*5113495bSYour Name ((mode) == WLAN_PHYMODE_11NG_HT40MINUS) || \ 543*5113495bSYour Name ((mode) == WLAN_PHYMODE_11NA_HT40) || \ 544*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT40) || \ 545*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT40_2G) || \ 546*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT40PLUS_2G) || \ 547*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT40MINUS_2G) || \ 548*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXA_HE40) || \ 549*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXG_HE40) || \ 550*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXG_HE40PLUS) || \ 551*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXG_HE40MINUS); }) 552*5113495bSYour Name 553*5113495bSYour Name #define IS_WLAN_PHYMODE_EHT(_mode) 0 554*5113495bSYour Name #endif 555*5113495bSYour Name 556*5113495bSYour Name #define IS_WLAN_PHYMODE_HT(_mode) ({typeof(_mode) mode = (_mode); \ 557*5113495bSYour Name ((mode) == WLAN_PHYMODE_11NA_HT20) || \ 558*5113495bSYour Name ((mode) == WLAN_PHYMODE_11NG_HT20) || \ 559*5113495bSYour Name ((mode) == WLAN_PHYMODE_11NA_HT40) || \ 560*5113495bSYour Name ((mode) == WLAN_PHYMODE_11NG_HT40PLUS) || \ 561*5113495bSYour Name ((mode) == WLAN_PHYMODE_11NG_HT40MINUS) || \ 562*5113495bSYour Name ((mode) == WLAN_PHYMODE_11NG_HT40); }) 563*5113495bSYour Name 564*5113495bSYour Name #define IS_WLAN_PHYMODE_VHT(_mode) ({typeof(_mode) mode = (_mode); \ 565*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT20) || \ 566*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT20_2G) || \ 567*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT40) || \ 568*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT40PLUS_2G) || \ 569*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT40MINUS_2G) || \ 570*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT40_2G) || \ 571*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT80) || \ 572*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT80_2G) || \ 573*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT160) || \ 574*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AC_VHT80_80); }) 575*5113495bSYour Name 576*5113495bSYour Name #define IS_WLAN_PHYMODE_HE(_mode) ({typeof(_mode) mode = (_mode); \ 577*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXA_HE20) || \ 578*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXG_HE20) || \ 579*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXA_HE40) || \ 580*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXG_HE40) || \ 581*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXG_HE40PLUS) || \ 582*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXG_HE40MINUS) || \ 583*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXA_HE80) || \ 584*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXG_HE80) || \ 585*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXA_HE160) || \ 586*5113495bSYour Name ((mode) == WLAN_PHYMODE_11AXA_HE80_80); }) 587*5113495bSYour Name 588*5113495bSYour Name /** 589*5113495bSYour Name * enum phy_ch_width - channel width 590*5113495bSYour Name * @CH_WIDTH_20MHZ: 20 MHz width 591*5113495bSYour Name * @CH_WIDTH_40MHZ: 40 MHz width 592*5113495bSYour Name * @CH_WIDTH_80MHZ: 80 MHz width 593*5113495bSYour Name * @CH_WIDTH_160MHZ: 160 MHz width 594*5113495bSYour Name * @CH_WIDTH_80P80MHZ: 80+80 MHz width 595*5113495bSYour Name * @CH_WIDTH_5MHZ: 5 MHz width 596*5113495bSYour Name * @CH_WIDTH_10MHZ: 10 MHz width 597*5113495bSYour Name * @CH_WIDTH_320MHZ: 320 MHz width 598*5113495bSYour Name * @CH_WIDTH_INVALID: invalid width 599*5113495bSYour Name * @CH_WIDTH_MAX: max possible width 600*5113495bSYour Name */ 601*5113495bSYour Name enum phy_ch_width { 602*5113495bSYour Name CH_WIDTH_20MHZ = 0, 603*5113495bSYour Name CH_WIDTH_40MHZ, 604*5113495bSYour Name CH_WIDTH_80MHZ, 605*5113495bSYour Name CH_WIDTH_160MHZ, 606*5113495bSYour Name CH_WIDTH_80P80MHZ, 607*5113495bSYour Name CH_WIDTH_5MHZ, 608*5113495bSYour Name CH_WIDTH_10MHZ, 609*5113495bSYour Name CH_WIDTH_320MHZ, 610*5113495bSYour Name CH_WIDTH_INVALID, 611*5113495bSYour Name CH_WIDTH_MAX 612*5113495bSYour Name }; 613*5113495bSYour Name 614*5113495bSYour Name /** 615*5113495bSYour Name * enum wifi_traffic_ac - access category type 616*5113495bSYour Name * @WIFI_AC_VO: Voice AC 617*5113495bSYour Name * @WIFI_AC_VI: Video AC 618*5113495bSYour Name * @WIFI_AC_BE: Best effort AC 619*5113495bSYour Name * @WIFI_AC_BK: Background AC 620*5113495bSYour Name * @WIFI_AC_MAX: MAX access category 621*5113495bSYour Name */ 622*5113495bSYour Name enum wifi_traffic_ac { 623*5113495bSYour Name WIFI_AC_VO = 0, 624*5113495bSYour Name WIFI_AC_VI = 1, 625*5113495bSYour Name WIFI_AC_BE = 2, 626*5113495bSYour Name WIFI_AC_BK = 3, 627*5113495bSYour Name WIFI_AC_MAX = 4, 628*5113495bSYour Name }; 629*5113495bSYour Name 630*5113495bSYour Name /** 631*5113495bSYour Name * enum wlan_peer_type - peer type 632*5113495bSYour Name * @WLAN_PEER_SELF: for AP mode, SELF PEER or AP PEER are same 633*5113495bSYour Name * @WLAN_PEER_AP: BSS peer for STA mode, Self peer for AP mode 634*5113495bSYour Name * @WLAN_PEER_P2P_GO: BSS peer for P2P CLI mode, Self peer for P2P GO mode 635*5113495bSYour Name * @WLAN_PEER_STA: Self Peer for STA mode, STA peer for AP mode 636*5113495bSYour Name * @WLAN_PEER_P2P_CLI: Self peer for P2P CLI mode, P2P CLI peer for P2P GO mode 637*5113495bSYour Name * @WLAN_PEER_TDLS: TDLS Peer 638*5113495bSYour Name * @WLAN_PEER_NAWDS: NAWDS Peer 639*5113495bSYour Name * @WLAN_PEER_STA_TEMP: STA Peer Temp (its host only node) 640*5113495bSYour Name * @WLAN_PEER_IBSS: IBSS Peer 641*5113495bSYour Name * @WLAN_PEER_NDP: NDP Peer 642*5113495bSYour Name * @WLAN_PEER_MLO_TEMP: MLO Peer Temp (host only node) 643*5113495bSYour Name * @WLAN_PEER_RTT_PASN: Ranging PASN peer 644*5113495bSYour Name * @WLAN_PEER_MLO_BRIDGE: MLO Bridge peer 645*5113495bSYour Name */ 646*5113495bSYour Name enum wlan_peer_type { 647*5113495bSYour Name WLAN_PEER_SELF = 1, 648*5113495bSYour Name WLAN_PEER_AP = 2, 649*5113495bSYour Name WLAN_PEER_P2P_GO = 3, 650*5113495bSYour Name WLAN_PEER_STA = 4, 651*5113495bSYour Name WLAN_PEER_P2P_CLI = 5, 652*5113495bSYour Name WLAN_PEER_TDLS = 6, 653*5113495bSYour Name WLAN_PEER_NAWDS = 7, 654*5113495bSYour Name WLAN_PEER_STA_TEMP = 8, 655*5113495bSYour Name WLAN_PEER_IBSS = 9, 656*5113495bSYour Name WLAN_PEER_NDP = 10, 657*5113495bSYour Name WLAN_PEER_MLO_TEMP = 11, 658*5113495bSYour Name WLAN_PEER_RTT_PASN = 12, 659*5113495bSYour Name WLAN_PEER_MLO_BRIDGE = 13, 660*5113495bSYour Name }; 661*5113495bSYour Name 662*5113495bSYour Name /** 663*5113495bSYour Name * enum wlan_band - specifies operating channel band 664*5113495bSYour Name * @WLAN_BAND_ALL: Any band 665*5113495bSYour Name * @WLAN_BAND_2_4_GHZ: 2.4 GHz band 666*5113495bSYour Name * @WLAN_BAND_5_GHZ: 5 GHz band 667*5113495bSYour Name * @WLAN_BAND_4_9_GHZ: 4.9 GHz band 668*5113495bSYour Name * @WLAN_BAND_NUM_MAX: Max num band 669*5113495bSYour Name */ 670*5113495bSYour Name enum wlan_band { 671*5113495bSYour Name WLAN_BAND_ALL, 672*5113495bSYour Name WLAN_BAND_2_4_GHZ, 673*5113495bSYour Name WLAN_BAND_5_GHZ, 674*5113495bSYour Name WLAN_BAND_4_9_GHZ, 675*5113495bSYour Name WLAN_BAND_NUM_MAX, 676*5113495bSYour Name }; 677*5113495bSYour Name 678*5113495bSYour Name /** 679*5113495bSYour Name * enum wlan_bss_type - type of network 680*5113495bSYour Name * @WLAN_TYPE_ANY: Default value 681*5113495bSYour Name * @WLAN_TYPE_BSS: Type BSS 682*5113495bSYour Name * @WLAN_TYPE_IBSS: Type IBSS 683*5113495bSYour Name */ 684*5113495bSYour Name enum wlan_bss_type { 685*5113495bSYour Name WLAN_TYPE_ANY, 686*5113495bSYour Name WLAN_TYPE_BSS, 687*5113495bSYour Name WLAN_TYPE_IBSS, 688*5113495bSYour Name }; 689*5113495bSYour Name 690*5113495bSYour Name /** 691*5113495bSYour Name * enum wlan_pmf_cap - pmf capability 692*5113495bSYour Name * @WLAN_PMF_DISABLED: PMF is disabled 693*5113495bSYour Name * @WLAN_PMF_CAPABLE: PMF is supported 694*5113495bSYour Name * @WLAN_PMF_REQUIRED: PMF is mandatory 695*5113495bSYour Name */ 696*5113495bSYour Name enum wlan_pmf_cap { 697*5113495bSYour Name WLAN_PMF_DISABLED, 698*5113495bSYour Name WLAN_PMF_CAPABLE, 699*5113495bSYour Name WLAN_PMF_REQUIRED, 700*5113495bSYour Name }; 701*5113495bSYour Name 702*5113495bSYour Name /** 703*5113495bSYour Name * struct wlan_ssid - SSID info 704*5113495bSYour Name * @length: ssid length of bss excluding null 705*5113495bSYour Name * @ssid: ssid character array potentially non null terminated 706*5113495bSYour Name */ 707*5113495bSYour Name struct wlan_ssid { 708*5113495bSYour Name uint8_t length; 709*5113495bSYour Name uint8_t ssid[WLAN_SSID_MAX_LEN]; 710*5113495bSYour Name }; 711*5113495bSYour Name 712*5113495bSYour Name /* Util API to copy the MAC address */ 713*5113495bSYour Name #define WLAN_ADDR_COPY(dst, src) qdf_mem_copy(dst, src, QDF_MAC_ADDR_SIZE) 714*5113495bSYour Name /* Util API to compare the MAC address */ 715*5113495bSYour Name #define WLAN_ADDR_EQ(a1, a2) qdf_mem_cmp(a1, a2, QDF_MAC_ADDR_SIZE) 716*5113495bSYour Name 717*5113495bSYour Name #define PSOC_SERVICE_BM_SIZE ((128 + sizeof(uint32_t) - 1) / sizeof(uint32_t)) 718*5113495bSYour Name #define PSOC_HOST_MAX_NUM_SS (8) 719*5113495bSYour Name #define PSOC_HOST_MAX_PHY_SIZE (3) 720*5113495bSYour Name #define PSOC_HOST_MAX_MAC_SIZE (2) 721*5113495bSYour Name #define PSOC_MAX_HW_MODE (4) 722*5113495bSYour Name #define PSOC_MAX_MAC_PHY_CAP (8) 723*5113495bSYour Name #define PSOC_MAX_PHY_REG_CAP (3) 724*5113495bSYour Name #define PSOC_MAX_CHAINMASK_TABLES (5) 725*5113495bSYour Name 726*5113495bSYour Name #ifdef WLAN_RCC_ENHANCED_AOA_SUPPORT 727*5113495bSYour Name #define PSOC_MAX_NUM_AGC_GAIN_TBLS 8 728*5113495bSYour Name #endif 729*5113495bSYour Name 730*5113495bSYour Name #ifdef WLAN_FEATURE_11BE 731*5113495bSYour Name #define PSOC_HOST_MAX_EHT_MAC_SIZE 1 732*5113495bSYour Name #define PSOC_HOST_MAX_EHT_PHY_SIZE 3 733*5113495bSYour Name #define PSOC_HOST_EHT_MCS_NSS_MAP_2G_SIZE 2 734*5113495bSYour Name #define PSOC_HOST_EHT_MCS_NSS_MAP_5G_SIZE 4 735*5113495bSYour Name #endif 736*5113495bSYour Name 737*5113495bSYour Name /** 738*5113495bSYour Name * enum host_edca_param_type - Host edca param type 739*5113495bSYour Name * @HOST_EDCA_PARAM_TYPE_AGGRESSIVE: Aggressive type 740*5113495bSYour Name * @HOST_EDCA_PARAM_TYPE_PIFS: Pifs type 741*5113495bSYour Name */ 742*5113495bSYour Name enum host_edca_param_type { 743*5113495bSYour Name HOST_EDCA_PARAM_TYPE_AGGRESSIVE = 0, 744*5113495bSYour Name HOST_EDCA_PARAM_TYPE_PIFS = 1, 745*5113495bSYour Name }; 746*5113495bSYour Name 747*5113495bSYour Name #endif /* _WLAN_OBJMGR_CMN_H_*/ 748