xref: /wlan-driver/qca-wifi-host-cmn/umac/cmn_services/inc/wlan_cmn.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
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