xref: /wlan-driver/qcacld-3.0/core/mac/inc/ani_global.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2012-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 #ifndef _ANIGLOBAL_H
21*5113495bSYour Name #define _ANIGLOBAL_H
22*5113495bSYour Name 
23*5113495bSYour Name #include "qdf_types.h"
24*5113495bSYour Name #include "sir_common.h"
25*5113495bSYour Name #include "ani_system_defs.h"
26*5113495bSYour Name #include "sys_def.h"
27*5113495bSYour Name #include "dph_global.h"
28*5113495bSYour Name #include "lim_global.h"
29*5113495bSYour Name #include "sch_global.h"
30*5113495bSYour Name #include "sys_global.h"
31*5113495bSYour Name #include "sir_api.h"
32*5113495bSYour Name 
33*5113495bSYour Name #include "csr_api.h"
34*5113495bSYour Name #include "csr_support.h"
35*5113495bSYour Name #include "sme_internal.h"
36*5113495bSYour Name #include "sap_api.h"
37*5113495bSYour Name #include "csr_internal.h"
38*5113495bSYour Name 
39*5113495bSYour Name #include "sme_rrm_internal.h"
40*5113495bSYour Name #include "rrm_global.h"
41*5113495bSYour Name 
42*5113495bSYour Name #include <lim_ft_defs.h>
43*5113495bSYour Name #include "wlan_objmgr_psoc_obj.h"
44*5113495bSYour Name #include "wlan_mlme_public_struct.h"
45*5113495bSYour Name 
46*5113495bSYour Name /**
47*5113495bSYour Name  * MAC_CONTEXT() - Convert an opaque mac handle into a mac context
48*5113495bSYour Name  * @handle: MAC handle to be converted
49*5113495bSYour Name  *
50*5113495bSYour Name  * Given an opaque mac handle this function will return the mac
51*5113495bSYour Name  * context that is associated with that handle.
52*5113495bSYour Name  *
53*5113495bSYour Name  * This is the inverse function of MAC_HANDLE()
54*5113495bSYour Name  *
55*5113495bSYour Name  * Return: mac context for @handle
56*5113495bSYour Name  */
MAC_CONTEXT(mac_handle_t handle)57*5113495bSYour Name static inline struct mac_context *MAC_CONTEXT(mac_handle_t handle)
58*5113495bSYour Name {
59*5113495bSYour Name 	return (struct mac_context *)handle;
60*5113495bSYour Name }
61*5113495bSYour Name 
62*5113495bSYour Name /**
63*5113495bSYour Name  * MAC_HANDLE() - Convert a mac context into an opaque mac handle
64*5113495bSYour Name  * @mac: MAC context to be converted
65*5113495bSYour Name  *
66*5113495bSYour Name  * Given a mac context this function will return the opaque mac handle
67*5113495bSYour Name  * that is associated with that handle.
68*5113495bSYour Name  *
69*5113495bSYour Name  * This is the inverse function of MAC_CONTEXT()
70*5113495bSYour Name  *
71*5113495bSYour Name  * Return: opaque handle for @mac
72*5113495bSYour Name  */
MAC_HANDLE(struct mac_context * mac)73*5113495bSYour Name static inline mac_handle_t MAC_HANDLE(struct mac_context *mac)
74*5113495bSYour Name {
75*5113495bSYour Name 	return (mac_handle_t)mac;
76*5113495bSYour Name }
77*5113495bSYour Name 
78*5113495bSYour Name #define ANI_DRIVER_TYPE(mac)     (((struct mac_context *)(mac))->gDriverType)
79*5113495bSYour Name 
80*5113495bSYour Name /* ------------------------------------------------------------------- */
81*5113495bSYour Name /* Bss Qos Caps bit map definition */
82*5113495bSYour Name #define LIM_BSS_CAPS_OFFSET_HCF 0
83*5113495bSYour Name #define LIM_BSS_CAPS_OFFSET_WME 1
84*5113495bSYour Name #define LIM_BSS_CAPS_OFFSET_WSM 2
85*5113495bSYour Name 
86*5113495bSYour Name #define LIM_BSS_CAPS_HCF (1 << LIM_BSS_CAPS_OFFSET_HCF)
87*5113495bSYour Name #define LIM_BSS_CAPS_WME (1 << LIM_BSS_CAPS_OFFSET_WME)
88*5113495bSYour Name #define LIM_BSS_CAPS_WSM (1 << LIM_BSS_CAPS_OFFSET_WSM)
89*5113495bSYour Name 
90*5113495bSYour Name /* cap should be one of HCF/WME/WSM */
91*5113495bSYour Name #define LIM_BSS_CAPS_GET(cap, val) (((val) & (LIM_BSS_CAPS_ ## cap)) >> LIM_BSS_CAPS_OFFSET_ ## cap)
92*5113495bSYour Name #define LIM_BSS_CAPS_SET(cap, val) ((val) |= (LIM_BSS_CAPS_ ## cap))
93*5113495bSYour Name #define LIM_BSS_CAPS_CLR(cap, val) ((val) &= (~(LIM_BSS_CAPS_ ## cap)))
94*5113495bSYour Name 
95*5113495bSYour Name #define SPACE_ASCII_VALUE  32
96*5113495bSYour Name 
97*5113495bSYour Name #define WLAN_HOST_SEQ_NUM_MIN                           2048
98*5113495bSYour Name #define WLAN_HOST_SEQ_NUM_MAX                           4095
99*5113495bSYour Name #define LOW_SEQ_NUM_MASK                                0x000F
100*5113495bSYour Name #define HIGH_SEQ_NUM_MASK                               0x0FF0
101*5113495bSYour Name #define HIGH_SEQ_NUM_OFFSET                             4
102*5113495bSYour Name #define DEF_HE_AUTO_SGI_LTF                             0x0F07
103*5113495bSYour Name 
104*5113495bSYour Name #define PMF_WEP_DISABLE 2
105*5113495bSYour Name #define PMF_INCORRECT_KEY 1
106*5113495bSYour Name #define PMF_CORRECT_KEY 0
107*5113495bSYour Name 
108*5113495bSYour Name /**
109*5113495bSYour Name  * enum log_event_type - Type of event initiating bug report
110*5113495bSYour Name  * @WLAN_LOG_TYPE_NON_FATAL: Non fatal event
111*5113495bSYour Name  * @WLAN_LOG_TYPE_FATAL: Fatal event
112*5113495bSYour Name  *
113*5113495bSYour Name  * Enum indicating the type of event that is initiating the bug report
114*5113495bSYour Name  */
115*5113495bSYour Name enum log_event_type {
116*5113495bSYour Name 	WLAN_LOG_TYPE_NON_FATAL,
117*5113495bSYour Name 	WLAN_LOG_TYPE_FATAL,
118*5113495bSYour Name };
119*5113495bSYour Name 
120*5113495bSYour Name /**
121*5113495bSYour Name  * enum log_event_indicator - Module triggering bug report
122*5113495bSYour Name  * @WLAN_LOG_INDICATOR_UNUSED: Unused
123*5113495bSYour Name  * @WLAN_LOG_INDICATOR_FRAMEWORK: Framework triggers bug report
124*5113495bSYour Name  * @WLAN_LOG_INDICATOR_HOST_DRIVER: Host driver triggers bug report
125*5113495bSYour Name  * @WLAN_LOG_INDICATOR_FIRMWARE: FW initiates bug report
126*5113495bSYour Name  * @WLAN_LOG_INDICATOR_HOST_ONLY: Host triggers fatal event bug report
127*5113495bSYour Name  *
128*5113495bSYour Name  * Enum indicating the module that triggered the bug report
129*5113495bSYour Name  */
130*5113495bSYour Name enum log_event_indicator {
131*5113495bSYour Name 	WLAN_LOG_INDICATOR_UNUSED,
132*5113495bSYour Name 	WLAN_LOG_INDICATOR_FRAMEWORK,
133*5113495bSYour Name 	WLAN_LOG_INDICATOR_HOST_DRIVER,
134*5113495bSYour Name 	WLAN_LOG_INDICATOR_FIRMWARE,
135*5113495bSYour Name 	WLAN_LOG_INDICATOR_HOST_ONLY,
136*5113495bSYour Name };
137*5113495bSYour Name 
138*5113495bSYour Name /**
139*5113495bSYour Name  * enum log_event_host_reason_code - Reason code for bug report
140*5113495bSYour Name  * @WLAN_LOG_REASON_CODE_UNUSED: Unused
141*5113495bSYour Name  * @WLAN_LOG_REASON_ROAM_FAIL: Driver initiated roam has failed
142*5113495bSYour Name  * @WLAN_LOG_REASON_DATA_STALL: Unable to send/receive data due to low resource
143*5113495bSYour Name  * scenario for a prolonged period
144*5113495bSYour Name  * @WLAN_LOG_REASON_SME_COMMAND_STUCK: SME command is stuck in SME active queue
145*5113495bSYour Name  * @WLAN_LOG_REASON_QUEUE_FULL: Defer queue becomes full for a prolonged period
146*5113495bSYour Name  * @WLAN_LOG_REASON_POWER_COLLAPSE_FAIL: Unable to allow apps power collapse
147*5113495bSYour Name  * for a prolonged period
148*5113495bSYour Name  * @WLAN_LOG_REASON_MALLOC_FAIL: Memory allocation Fails
149*5113495bSYour Name  * @WLAN_LOG_REASON_VOS_MSG_UNDER_RUN: VOS Core runs out of message wrapper
150*5113495bSYour Name  * @WLAN_LOG_REASON_HDD_TIME_OUT: Wait for event Timeout in HDD layer
151*5113495bSYour Name    @WLAN_LOG_REASON_SME_OUT_OF_CMD_BUFL sme out of cmd buffer
152*5113495bSYour Name  * @WLAN_LOG_REASON_NO_SCAN_RESULTS: no scan results to report from HDD
153*5113495bSYour Name  * This enum contains the different reason codes for bug report
154*5113495bSYour Name  * @WLAN_LOG_REASON_SCAN_NOT_ALLOWED: scan not allowed due to connection states
155*5113495bSYour Name  * @WLAN_LOG_REASON_HB_FAILURE: station triggered heart beat failure with AP
156*5113495bSYour Name  * @WLAN_LOG_REASON_ROAM_HO_FAILURE: Handover failed during LFR3 roaming
157*5113495bSYour Name  * @WLAN_LOG_REASON_DISCONNECT: Disconnect because of some failure
158*5113495bSYour Name  * @WLAN_LOG_REASON_VDEV_DELETE_RSP_TIMED_OUT: vdev delete rsp time out
159*5113495bSYour Name  */
160*5113495bSYour Name enum log_event_host_reason_code {
161*5113495bSYour Name 	WLAN_LOG_REASON_CODE_UNUSED,
162*5113495bSYour Name 	WLAN_LOG_REASON_ROAM_FAIL,
163*5113495bSYour Name 	WLAN_LOG_REASON_DATA_STALL,
164*5113495bSYour Name 	WLAN_LOG_REASON_SME_COMMAND_STUCK,
165*5113495bSYour Name 	WLAN_LOG_REASON_QUEUE_FULL,
166*5113495bSYour Name 	WLAN_LOG_REASON_POWER_COLLAPSE_FAIL,
167*5113495bSYour Name 	WLAN_LOG_REASON_MALLOC_FAIL,
168*5113495bSYour Name 	WLAN_LOG_REASON_VOS_MSG_UNDER_RUN,
169*5113495bSYour Name 	WLAN_LOG_REASON_HDD_TIME_OUT,
170*5113495bSYour Name 	WLAN_LOG_REASON_SME_OUT_OF_CMD_BUF,
171*5113495bSYour Name 	WLAN_LOG_REASON_NO_SCAN_RESULTS,
172*5113495bSYour Name 	WLAN_LOG_REASON_SCAN_NOT_ALLOWED,
173*5113495bSYour Name 	WLAN_LOG_REASON_HB_FAILURE,
174*5113495bSYour Name 	WLAN_LOG_REASON_ROAM_HO_FAILURE,
175*5113495bSYour Name 	WLAN_LOG_REASON_DISCONNECT,
176*5113495bSYour Name 	WLAN_LOG_REASON_VDEV_DELETE_RSP_TIMED_OUT
177*5113495bSYour Name };
178*5113495bSYour Name 
179*5113495bSYour Name 
180*5113495bSYour Name /**
181*5113495bSYour Name  * enum userspace_log_level - Log level at userspace
182*5113495bSYour Name  * @LOG_LEVEL_NO_COLLECTION: verbose_level 0 corresponds to no collection
183*5113495bSYour Name  * @LOG_LEVEL_NORMAL_COLLECT: verbose_level 1 correspond to normal log level,
184*5113495bSYour Name  * with minimal user impact. this is the default value
185*5113495bSYour Name  * @LOG_LEVEL_ISSUE_REPRO: verbose_level 2 are enabled when user is lazily
186*5113495bSYour Name  * trying to reproduce a problem, wifi performances and power can be impacted
187*5113495bSYour Name  * but device should not otherwise be significantly impacted
188*5113495bSYour Name  * @LOG_LEVEL_ACTIVE: verbose_level 3+ are used when trying to
189*5113495bSYour Name  * actively debug a problem
190*5113495bSYour Name  *
191*5113495bSYour Name  * Various log levels defined in the userspace for logging applications
192*5113495bSYour Name  */
193*5113495bSYour Name enum userspace_log_level {
194*5113495bSYour Name 	LOG_LEVEL_NO_COLLECTION,
195*5113495bSYour Name 	LOG_LEVEL_NORMAL_COLLECT,
196*5113495bSYour Name 	LOG_LEVEL_ISSUE_REPRO,
197*5113495bSYour Name 	LOG_LEVEL_ACTIVE,
198*5113495bSYour Name };
199*5113495bSYour Name 
200*5113495bSYour Name /**
201*5113495bSYour Name  * enum wifi_driver_log_level - Log level defined in the driver for logging
202*5113495bSYour Name  * @WLAN_LOG_LEVEL_OFF: No logging
203*5113495bSYour Name  * @WLAN_LOG_LEVEL_NORMAL: Default logging
204*5113495bSYour Name  * @WLAN_LOG_LEVEL_REPRO: Normal debug level
205*5113495bSYour Name  * @WLAN_LOG_LEVEL_ACTIVE: Active debug level
206*5113495bSYour Name  *
207*5113495bSYour Name  * Log levels defined for logging by the wifi driver
208*5113495bSYour Name  */
209*5113495bSYour Name enum wifi_driver_log_level {
210*5113495bSYour Name 	WLAN_LOG_LEVEL_OFF,
211*5113495bSYour Name 	WLAN_LOG_LEVEL_NORMAL,
212*5113495bSYour Name 	WLAN_LOG_LEVEL_REPRO,
213*5113495bSYour Name 	WLAN_LOG_LEVEL_ACTIVE,
214*5113495bSYour Name };
215*5113495bSYour Name 
216*5113495bSYour Name /**
217*5113495bSYour Name  * enum wifi_logging_ring_id - Ring id of logging entities
218*5113495bSYour Name  * @RING_ID_WAKELOCK:         Power events ring id
219*5113495bSYour Name  * @RING_ID_CONNECTIVITY:     Connectivity event ring id
220*5113495bSYour Name  * @RING_ID_PER_PACKET_STATS: Per packet statistic ring id
221*5113495bSYour Name  * @RING_ID_DRIVER_DEBUG:     Driver debug messages ring id
222*5113495bSYour Name  * @RING_ID_FIRMWARE_DEBUG:   Firmware debug messages ring id
223*5113495bSYour Name  *
224*5113495bSYour Name  * This enum has the ring id values of logging rings
225*5113495bSYour Name  */
226*5113495bSYour Name enum wifi_logging_ring_id {
227*5113495bSYour Name 	RING_ID_WAKELOCK,
228*5113495bSYour Name 	RING_ID_CONNECTIVITY,
229*5113495bSYour Name 	RING_ID_PER_PACKET_STATS,
230*5113495bSYour Name 	RING_ID_DRIVER_DEBUG,
231*5113495bSYour Name 	RING_ID_FIRMWARE_DEBUG,
232*5113495bSYour Name };
233*5113495bSYour Name 
234*5113495bSYour Name /* ------------------------------------------------------------------- */
235*5113495bSYour Name /* Change channel generic scheme */
236*5113495bSYour Name typedef void (*CHANGE_CHANNEL_CALLBACK)(struct mac_context *mac, QDF_STATUS status,
237*5113495bSYour Name 					uint32_t *data,
238*5113495bSYour Name 					struct pe_session *pe_session);
239*5113495bSYour Name 
240*5113495bSYour Name typedef struct sDialogueToken {
241*5113495bSYour Name 	/* bytes 0-3 */
242*5113495bSYour Name 	uint16_t assocId;
243*5113495bSYour Name 	uint8_t token;
244*5113495bSYour Name 	uint8_t rsvd1;
245*5113495bSYour Name 	/* Bytes 4-7 */
246*5113495bSYour Name 	uint16_t tid;
247*5113495bSYour Name 	uint8_t rsvd2[2];
248*5113495bSYour Name 
249*5113495bSYour Name 	struct sDialogueToken *next;
250*5113495bSYour Name } tDialogueToken, *tpDialogueToken;
251*5113495bSYour Name 
252*5113495bSYour Name typedef struct sLimTimers {
253*5113495bSYour Name 	/* TIMERS IN LIM ARE NOT SUPPOSED TO BE ZEROED OUT DURING RESET. */
254*5113495bSYour Name 	/* DURING lim_initialize DONOT ZERO THEM OUT. */
255*5113495bSYour Name 
256*5113495bSYour Name /* STA SPECIFIC TIMERS */
257*5113495bSYour Name 
258*5113495bSYour Name 	TX_TIMER gLimPreAuthClnupTimer;
259*5113495bSYour Name 
260*5113495bSYour Name 	/* Association related timers */
261*5113495bSYour Name 	TX_TIMER gLimAssocFailureTimer;
262*5113495bSYour Name 	TX_TIMER gLimReassocFailureTimer;
263*5113495bSYour Name 
264*5113495bSYour Name 	/* Authentication related timers */
265*5113495bSYour Name 	TX_TIMER gLimAuthFailureTimer;
266*5113495bSYour Name 
267*5113495bSYour Name 	/* Join Failure timeout on STA */
268*5113495bSYour Name 	TX_TIMER gLimJoinFailureTimer;
269*5113495bSYour Name 
270*5113495bSYour Name 	/* CNF_WAIT timer */
271*5113495bSYour Name 	TX_TIMER *gpLimCnfWaitTimer;
272*5113495bSYour Name 
273*5113495bSYour Name 	TX_TIMER gLimAddtsRspTimer;     /* max wait for a response */
274*5113495bSYour Name 
275*5113495bSYour Name 	/* Update OLBC Cache Timer */
276*5113495bSYour Name 	TX_TIMER gLimUpdateOlbcCacheTimer;
277*5113495bSYour Name 
278*5113495bSYour Name 	TX_TIMER gLimFTPreAuthRspTimer;
279*5113495bSYour Name 
280*5113495bSYour Name 	TX_TIMER gLimPeriodicJoinProbeReqTimer;
281*5113495bSYour Name 	TX_TIMER gLimDisassocAckTimer;
282*5113495bSYour Name 	TX_TIMER gLimDeauthAckTimer;
283*5113495bSYour Name 	TX_TIMER g_lim_periodic_auth_retry_timer;
284*5113495bSYour Name 
285*5113495bSYour Name 	/* SAE authentication related timer */
286*5113495bSYour Name 	TX_TIMER sae_auth_timer;
287*5113495bSYour Name 
288*5113495bSYour Name 	/* RRM sta stats response related timer */
289*5113495bSYour Name 	TX_TIMER rrm_sta_stats_resp_timer;
290*5113495bSYour Name /* ********************TIMER SECTION ENDS************************************************** */
291*5113495bSYour Name /* ALL THE FIELDS BELOW THIS CAN BE ZEROED OUT in lim_initialize */
292*5113495bSYour Name /* **************************************************************************************** */
293*5113495bSYour Name 
294*5113495bSYour Name } tLimTimers;
295*5113495bSYour Name 
296*5113495bSYour Name typedef struct {
297*5113495bSYour Name 	void *pMlmDisassocReq;
298*5113495bSYour Name 	void *pMlmDeauthReq;
299*5113495bSYour Name } tLimDisassocDeauthCnfReq;
300*5113495bSYour Name 
301*5113495bSYour Name struct lim_context {
302*5113495bSYour Name 	/* ////////////////////////////////////     TIMER RELATED START /////////////////////////////////////////// */
303*5113495bSYour Name 
304*5113495bSYour Name 	tLimTimers lim_timers;
305*5113495bSYour Name 	/* / Flag to track if LIM timers are created or not */
306*5113495bSYour Name 	uint32_t gLimTimersCreated;
307*5113495bSYour Name 
308*5113495bSYour Name 	/* ////////////////////////////////////     TIMER RELATED END /////////////////////////////////////////// */
309*5113495bSYour Name 
310*5113495bSYour Name 	uint8_t gLimCurrentBssUapsd;
311*5113495bSYour Name 	/* ////////////////////////////////////////     BSS RELATED END /////////////////////////////////////////// */
312*5113495bSYour Name 
313*5113495bSYour Name 	/* ////////////////////////////////////////     STATS/COUNTER RELATED START /////////////////////////////////////////// */
314*5113495bSYour Name 
315*5113495bSYour Name 	uint16_t maxStation;
316*5113495bSYour Name 	uint16_t maxBssId;
317*5113495bSYour Name 
318*5113495bSYour Name 	/* / Variable to keep track of number of currently associated STAs */
319*5113495bSYour Name 	uint16_t gLimNumOfAniSTAs;      /* count of ANI peers */
320*5113495bSYour Name 
321*5113495bSYour Name 	tSirMacAddr gLimHeartBeatApMac[2];
322*5113495bSYour Name 	uint8_t gLimHeartBeatApMacIndex;
323*5113495bSYour Name 
324*5113495bSYour Name 	/* ////////////////////////////////////////     STATS/COUNTER RELATED END /////////////////////////////////////////// */
325*5113495bSYour Name 
326*5113495bSYour Name 	/* ////////////////////////////////////////     STATES RELATED START /////////////////////////////////////////// */
327*5113495bSYour Name 	/* Counts Heartbeat failures */
328*5113495bSYour Name 	uint8_t gLimHBfailureCntInLinkEstState;
329*5113495bSYour Name 	uint8_t gLimProbeFailureAfterHBfailedCnt;
330*5113495bSYour Name 	uint8_t gLimHBfailureCntInOtherStates;
331*5113495bSYour Name 
332*5113495bSYour Name 	/**
333*5113495bSYour Name 	 * This variable indicates whether LIM module need to
334*5113495bSYour Name 	 * send response to host. Used to identify whether a request
335*5113495bSYour Name 	 * is generated internally within LIM module or by host
336*5113495bSYour Name 	 */
337*5113495bSYour Name 	uint8_t gLimRspReqd;
338*5113495bSYour Name 
339*5113495bSYour Name 	/* / Previous SME State */
340*5113495bSYour Name 	tLimSmeStates gLimPrevSmeState;
341*5113495bSYour Name 
342*5113495bSYour Name 	/* / MLM State visible across all Sirius modules */
343*5113495bSYour Name 	tLimMlmStates gLimMlmState;
344*5113495bSYour Name 
345*5113495bSYour Name 	/* / Previous MLM State */
346*5113495bSYour Name 	tLimMlmStates gLimPrevMlmState;
347*5113495bSYour Name 
348*5113495bSYour Name 	/* Can be set to invalid channel. If it is invalid, HAL */
349*5113495bSYour Name 	/* should move to previous valid channel or stay in the */
350*5113495bSYour Name 	/* current channel. CB state goes along with channel to resume to */
351*5113495bSYour Name 	uint16_t gResumeChannel;
352*5113495bSYour Name 	ePhyChanBondState gResumePhyCbState;
353*5113495bSYour Name 
354*5113495bSYour Name 	/* Change channel generic scheme */
355*5113495bSYour Name 	CHANGE_CHANNEL_CALLBACK gpchangeChannelCallback;
356*5113495bSYour Name 	uint32_t *gpchangeChannelData;
357*5113495bSYour Name 
358*5113495bSYour Name 	/* / SME State visible across all Sirius modules */
359*5113495bSYour Name 	tLimSmeStates gLimSmeState;
360*5113495bSYour Name 	/* / This indicates whether we're an AP, STA in BSS/IBSS */
361*5113495bSYour Name 	tLimSystemRole gLimSystemRole;
362*5113495bSYour Name 
363*5113495bSYour Name 	/* Number of STAs that do not support short preamble */
364*5113495bSYour Name 	tLimNoShortParams gLimNoShortParams;
365*5113495bSYour Name 
366*5113495bSYour Name 	/* Number of STAs that do not support short slot time */
367*5113495bSYour Name 	tLimNoShortSlotParams gLimNoShortSlotParams;
368*5113495bSYour Name 
369*5113495bSYour Name 	/* */
370*5113495bSYour Name 	/* ---------------- DPH ----------------------- */
371*5113495bSYour Name 	uint32_t gLimPhyMode;
372*5113495bSYour Name 
373*5113495bSYour Name 	/* ---------------- DPH ----------------------- */
374*5113495bSYour Name 
375*5113495bSYour Name 	/* ////////////////////////////////////////     STATES RELATED END /////////////////////////////////////////// */
376*5113495bSYour Name 
377*5113495bSYour Name 	/* ////////////////////////////////////////     MISC RELATED START /////////////////////////////////////////// */
378*5113495bSYour Name 
379*5113495bSYour Name 	/* Deferred Queue Parameters */
380*5113495bSYour Name 	tLimDeferredMsgQParams gLimDeferredMsgQ;
381*5113495bSYour Name 
382*5113495bSYour Name 	/* addts request if any - only one can be outstanding at any time */
383*5113495bSYour Name 	tSirAddtsReq gLimAddtsReq;
384*5113495bSYour Name 	uint8_t gLimAddtsSent;
385*5113495bSYour Name 	uint8_t gLimAddtsRspTimerCount;
386*5113495bSYour Name 
387*5113495bSYour Name 	/* protection related config cache */
388*5113495bSYour Name 	tCfgProtection cfgProtection;
389*5113495bSYour Name 
390*5113495bSYour Name 	uint8_t gLimProtectionControl;
391*5113495bSYour Name 	/* This flag will remain to be set except while LIM is waiting for specific response messages */
392*5113495bSYour Name 	/* from HAL. e.g when LIM issues ADD_STA req it will clear this flag and when it will receive */
393*5113495bSYour Name 	/* the response the flag will be set. */
394*5113495bSYour Name 	uint8_t gLimProcessDefdMsgs;
395*5113495bSYour Name 
396*5113495bSYour Name 	/* UAPSD flag used on AP */
397*5113495bSYour Name 	uint8_t gUapsdEnable;
398*5113495bSYour Name 
399*5113495bSYour Name 	/* Used on STA for AC downgrade. This is a dynamic mask
400*5113495bSYour Name 	 * setting which keep tracks of ACs being admitted.
401*5113495bSYour Name 	 * If bit is set to 0: That particular AC is not admitted
402*5113495bSYour Name 	 * If bit is set to 1: That particular AC is admitted
403*5113495bSYour Name 	 */
404*5113495bSYour Name 	uint8_t gAcAdmitMask[SIR_MAC_DIRECTION_DIRECT];
405*5113495bSYour Name 
406*5113495bSYour Name 	/* dialogue token List head/tail for Action frames request sent. */
407*5113495bSYour Name 	tpDialogueToken pDialogueTokenHead;
408*5113495bSYour Name 	tpDialogueToken pDialogueTokenTail;
409*5113495bSYour Name 
410*5113495bSYour Name 	tLimTspecInfo tspecInfo[LIM_NUM_TSPEC_MAX];
411*5113495bSYour Name 
412*5113495bSYour Name 	/* admission control policy information */
413*5113495bSYour Name 	tLimAdmitPolicyInfo admitPolicyInfo;
414*5113495bSYour Name #ifdef FEATURE_WLAN_TDLS
415*5113495bSYour Name 	uint8_t gLimTDLSBufStaEnabled;
416*5113495bSYour Name 	uint8_t gLimTDLSUapsdMask;
417*5113495bSYour Name 	uint8_t gLimTDLSOffChannelEnabled;
418*5113495bSYour Name 	uint8_t gLimTDLSWmmMode;
419*5113495bSYour Name #endif
420*5113495bSYour Name 	/* ////////////////////////////////////////     MISC RELATED END /////////////////////////////////////////// */
421*5113495bSYour Name 
422*5113495bSYour Name 	/* ASSOC RELATED START */
423*5113495bSYour Name 
424*5113495bSYour Name 	/* Place holder for current authentication request */
425*5113495bSYour Name 	/* being handled */
426*5113495bSYour Name 	tLimMlmAuthReq *gpLimMlmAuthReq;
427*5113495bSYour Name 
428*5113495bSYour Name 	/* Reason code to determine the channel change context while sending */
429*5113495bSYour Name 	/* WMA_CHNL_SWITCH_REQ message to HAL */
430*5113495bSYour Name 	uint32_t channelChangeReasonCode;
431*5113495bSYour Name 
432*5113495bSYour Name 	/* / MAC level Pre-authentication related globals */
433*5113495bSYour Name 	tSirMacChanNum gLimPreAuthChannelNumber;
434*5113495bSYour Name 	tAniAuthType gLimPreAuthType;
435*5113495bSYour Name 	tSirMacAddr gLimPreAuthPeerAddr;
436*5113495bSYour Name 	uint32_t gLimNumPreAuthContexts;
437*5113495bSYour Name 	tLimPreAuthTable gLimPreAuthTimerTable;
438*5113495bSYour Name 
439*5113495bSYour Name 	/* Place holder for Pre-authentication node list */
440*5113495bSYour Name 	struct tLimPreAuthNode *pLimPreAuthList;
441*5113495bSYour Name 
442*5113495bSYour Name 	/* Assoc or ReAssoc Response Data/Frame */
443*5113495bSYour Name 	void *gLimAssocResponseData;
444*5113495bSYour Name 
445*5113495bSYour Name 	/* One cache for each overlap and associated case. */
446*5113495bSYour Name 	tCacheParams protStaOverlapCache[LIM_PROT_STA_OVERLAP_CACHE_SIZE];
447*5113495bSYour Name 	tCacheParams protStaCache[LIM_PROT_STA_CACHE_SIZE];
448*5113495bSYour Name 
449*5113495bSYour Name 	/* Peer RSSI value */
450*5113495bSYour Name 	int8_t bss_rssi;
451*5113495bSYour Name 
452*5113495bSYour Name 	/* ASSOC RELATED END */
453*5113495bSYour Name 
454*5113495bSYour Name 	/* //////////////////////////////  HT RELATED           ////////////////////////////////////////// */
455*5113495bSYour Name 	/* */
456*5113495bSYour Name 	/* The following global LIM variables maintain/manage */
457*5113495bSYour Name 	/* the runtime configurations related to 802.11n */
458*5113495bSYour Name 
459*5113495bSYour Name 	/* 802.11n Station detected HT capability in Beacon Frame */
460*5113495bSYour Name 	uint8_t htCapabilityPresentInBeacon;
461*5113495bSYour Name 
462*5113495bSYour Name 	/* 802.11 HT capability: Enabled or Disabled */
463*5113495bSYour Name 	uint8_t htCapability;
464*5113495bSYour Name 
465*5113495bSYour Name 	uint8_t gHTGreenfield;
466*5113495bSYour Name 
467*5113495bSYour Name 	uint8_t gHTShortGI40Mhz;
468*5113495bSYour Name 	uint8_t gHTShortGI20Mhz;
469*5113495bSYour Name 
470*5113495bSYour Name 	/* Set to 0 for 3839 octets */
471*5113495bSYour Name 	/* Set to 1 for 7935 octets */
472*5113495bSYour Name 	uint8_t gHTMaxAmsduLength;
473*5113495bSYour Name 
474*5113495bSYour Name 	/* DSSS/CCK at 40 MHz: Enabled 1 or Disabled */
475*5113495bSYour Name 	uint8_t gHTDsssCckRate40MHzSupport;
476*5113495bSYour Name 
477*5113495bSYour Name 	/* PSMP Support: Enabled 1 or Disabled 0 */
478*5113495bSYour Name 	uint8_t gHTPSMPSupport;
479*5113495bSYour Name 
480*5113495bSYour Name 	/* L-SIG TXOP Protection used only if peer support available */
481*5113495bSYour Name 	uint8_t gHTLsigTXOPProtection;
482*5113495bSYour Name 
483*5113495bSYour Name 	/* MIMO Power Save */
484*5113495bSYour Name 	tSirMacHTMIMOPowerSaveState gHTMIMOPSState;
485*5113495bSYour Name 
486*5113495bSYour Name 	/* */
487*5113495bSYour Name 	/* A-MPDU Density */
488*5113495bSYour Name 	/* 000 - No restriction */
489*5113495bSYour Name 	/* 001 - 1/8 usec */
490*5113495bSYour Name 	/* 010 - 1/4 usec */
491*5113495bSYour Name 	/* 011 - 1/2 usec */
492*5113495bSYour Name 	/* 100 - 1 usec */
493*5113495bSYour Name 	/* 101 - 2 usec */
494*5113495bSYour Name 	/* 110 - 4 usec */
495*5113495bSYour Name 	/* 111 - 8 usec */
496*5113495bSYour Name 	/* */
497*5113495bSYour Name 	uint8_t gHTAMpduDensity;
498*5113495bSYour Name 
499*5113495bSYour Name 	bool gMaxAmsduSizeEnabled;
500*5113495bSYour Name 	/* Maximum Tx/Rx A-MPDU factor */
501*5113495bSYour Name 	uint8_t gHTMaxRxAMpduFactor;
502*5113495bSYour Name 
503*5113495bSYour Name 	/* */
504*5113495bSYour Name 	/* Scheduled PSMP related - Service Interval Granularity */
505*5113495bSYour Name 	/* 000 - 5 ms */
506*5113495bSYour Name 	/* 001 - 10 ms */
507*5113495bSYour Name 	/* 010 - 15 ms */
508*5113495bSYour Name 	/* 011 - 20 ms */
509*5113495bSYour Name 	/* 100 - 25 ms */
510*5113495bSYour Name 	/* 101 - 30 ms */
511*5113495bSYour Name 	/* 110 - 35 ms */
512*5113495bSYour Name 	/* 111 - 40 ms */
513*5113495bSYour Name 	/* */
514*5113495bSYour Name 	uint8_t gHTServiceIntervalGranularity;
515*5113495bSYour Name 
516*5113495bSYour Name 	/* Indicates whether an AP wants to associate PSMP enabled Stations */
517*5113495bSYour Name 	uint8_t gHTControlledAccessOnly;
518*5113495bSYour Name 
519*5113495bSYour Name 	/* OBss Mode . set when we have Non HT STA is associated or with in overlap bss */
520*5113495bSYour Name 	uint8_t gHTObssMode;
521*5113495bSYour Name 
522*5113495bSYour Name 	/* Identifies the current Operating Mode */
523*5113495bSYour Name 	tSirMacHTOperatingMode gHTOperMode;
524*5113495bSYour Name 
525*5113495bSYour Name 	/* Indicates if PCO is activated in the BSS */
526*5113495bSYour Name 	uint8_t gHTPCOActive;
527*5113495bSYour Name 
528*5113495bSYour Name 	/* */
529*5113495bSYour Name 	/* If PCO is active, indicates which PCO phase to use */
530*5113495bSYour Name 	/* 0 - switch to 20 MHz phase */
531*5113495bSYour Name 	/* 1 - switch to 40 MHz phase */
532*5113495bSYour Name 	/* */
533*5113495bSYour Name 	uint8_t gHTPCOPhase;
534*5113495bSYour Name 
535*5113495bSYour Name 	/* */
536*5113495bSYour Name 	/* Used only in beacons. For PR, this is set to 0 */
537*5113495bSYour Name 	/* 0 - Primary beacon */
538*5113495bSYour Name 	/* 1 - Secondary beacon */
539*5113495bSYour Name 	/* */
540*5113495bSYour Name 	uint8_t gHTSecondaryBeacon;
541*5113495bSYour Name 
542*5113495bSYour Name 	/* */
543*5113495bSYour Name 	/* Dual CTS Protection */
544*5113495bSYour Name 	/* 0 - Use RTS/CTS */
545*5113495bSYour Name 	/* 1 - Dual CTS Protection is used */
546*5113495bSYour Name 	/* */
547*5113495bSYour Name 	uint8_t gHTDualCTSProtection;
548*5113495bSYour Name 
549*5113495bSYour Name 	/* */
550*5113495bSYour Name 	/* Identifies a single STBC MCS that shall ne used for */
551*5113495bSYour Name 	/* STBC control frames and STBC beacons */
552*5113495bSYour Name 	/* */
553*5113495bSYour Name 	uint8_t gHTSTBCBasicMCS;
554*5113495bSYour Name 
555*5113495bSYour Name 	uint8_t gHTNonGFDevicesPresent;
556*5113495bSYour Name 
557*5113495bSYour Name 	/* HT RELATED END */
558*5113495bSYour Name 
559*5113495bSYour Name 	/* wsc info required to form the wsc IE */
560*5113495bSYour Name 	tLimWscIeInfo wscIeInfo;
561*5113495bSYour Name 	struct pe_session *gpSession;  /* Pointer to  session table */
562*5113495bSYour Name 	uint8_t max_sta_of_pe_session;
563*5113495bSYour Name 
564*5113495bSYour Name 	qdf_mutex_t lim_frame_register_lock;
565*5113495bSYour Name 	qdf_list_t gLimMgmtFrameRegistratinQueue;
566*5113495bSYour Name 	uint32_t tdls_frm_session_id;
567*5113495bSYour Name 
568*5113495bSYour Name 	struct pe_session *pe_session;
569*5113495bSYour Name 	uint8_t reAssocRetryAttempt;
570*5113495bSYour Name 	tLimDisassocDeauthCnfReq limDisassocDeauthCnfReq;
571*5113495bSYour Name 	uint8_t deferredMsgCnt;
572*5113495bSYour Name 	uint8_t deauthMsgCnt;
573*5113495bSYour Name 	uint8_t disassocMsgCnt;
574*5113495bSYour Name 	uint8_t gLimIbssStaLimit;
575*5113495bSYour Name 
576*5113495bSYour Name 	QDF_STATUS(*sme_msg_callback)
577*5113495bSYour Name 		(struct mac_context *mac, struct scheduler_msg *msg);
578*5113495bSYour Name 	stop_roaming_fn_t stop_roaming_callback;
579*5113495bSYour Name 	uint8_t retry_packet_cnt;
580*5113495bSYour Name 	uint8_t beacon_probe_rsp_cnt_per_scan;
581*5113495bSYour Name 	wlan_scan_requester req_id;
582*5113495bSYour Name 	QDF_STATUS (*sme_bcn_rcv_callback)(hdd_handle_t hdd_handle,
583*5113495bSYour Name 				struct wlan_beacon_report *beacon_report);
584*5113495bSYour Name };
585*5113495bSYour Name 
586*5113495bSYour Name struct mgmt_frm_reg_info {
587*5113495bSYour Name 	qdf_list_node_t node;   /* MUST be first element */
588*5113495bSYour Name 	uint16_t frameType;
589*5113495bSYour Name 	uint16_t matchLen;
590*5113495bSYour Name 	uint16_t sessionId;
591*5113495bSYour Name 	QDF_FLEX_ARRAY(uint8_t, matchData);
592*5113495bSYour Name };
593*5113495bSYour Name 
594*5113495bSYour Name typedef struct sRrmContext {
595*5113495bSYour Name 	struct rrm_config_param rrmConfig;
596*5113495bSYour Name 	tRrmSMEContext rrmSmeContext[MAX_MEASUREMENT_REQUEST];
597*5113495bSYour Name 	tRrmPEContext rrmPEContext;
598*5113495bSYour Name } tRrmContext, *tpRrmContext;
599*5113495bSYour Name 
600*5113495bSYour Name /**
601*5113495bSYour Name  * enum tx_ack_status - Indicate TX status
602*5113495bSYour Name  * @LIM_ACK_NOT_RCD: Default status while waiting for ack status.
603*5113495bSYour Name  * @LIM_ACK_RCD_SUCCESS: Ack is received.
604*5113495bSYour Name  * @LIM_ACK_RCD_FAILURE: No Ack received.
605*5113495bSYour Name  * @LIM_TX_FAILED: Failed to TX
606*5113495bSYour Name  *
607*5113495bSYour Name  * Indicate if driver is waiting for ACK status of auth or ACK received for AUTH
608*5113495bSYour Name  * OR NO ACK is received for the auth sent.
609*5113495bSYour Name  */
610*5113495bSYour Name enum tx_ack_status {
611*5113495bSYour Name 	LIM_ACK_NOT_RCD,
612*5113495bSYour Name 	LIM_ACK_RCD_SUCCESS,
613*5113495bSYour Name 	LIM_ACK_RCD_FAILURE,
614*5113495bSYour Name 	LIM_TX_FAILED,
615*5113495bSYour Name };
616*5113495bSYour Name 
617*5113495bSYour Name /**
618*5113495bSYour Name  * struct vdev_type_nss - vdev type nss structure
619*5113495bSYour Name  * @sta: STA Nss value.
620*5113495bSYour Name  * @sap: SAP Nss value.
621*5113495bSYour Name  * @p2p_go: P2P GO Nss value.
622*5113495bSYour Name  * @p2p_cli: P2P CLI Nss value.
623*5113495bSYour Name  * @p2p_dev: P2P device Nss value.
624*5113495bSYour Name  * @ibss: IBSS Nss value.
625*5113495bSYour Name  * @tdls: TDLS Nss value.
626*5113495bSYour Name  * @ocb: OCB Nss value.
627*5113495bSYour Name  * @nan: NAN Nss value.
628*5113495bSYour Name  *
629*5113495bSYour Name  * Holds the Nss values of different vdev types.
630*5113495bSYour Name  */
631*5113495bSYour Name struct vdev_type_nss {
632*5113495bSYour Name 	uint8_t sta;
633*5113495bSYour Name 	uint8_t sap;
634*5113495bSYour Name 	uint8_t p2p_go;
635*5113495bSYour Name 	uint8_t p2p_cli;
636*5113495bSYour Name 	uint8_t p2p_dev;
637*5113495bSYour Name 	uint8_t ibss;
638*5113495bSYour Name 	uint8_t tdls;
639*5113495bSYour Name 	uint8_t ocb;
640*5113495bSYour Name 	uint8_t nan;
641*5113495bSYour Name 	uint8_t ndi;
642*5113495bSYour Name };
643*5113495bSYour Name 
644*5113495bSYour Name /**
645*5113495bSYour Name  * struct mgmt_beacon_probe_filter
646*5113495bSYour Name  * @num_sta_sessions: Number of active PE STA sessions
647*5113495bSYour Name  * @sta_bssid: Array of PE STA session's peer BSSIDs
648*5113495bSYour Name  * @num_sap_session: Number of active PE SAP sessions
649*5113495bSYour Name  * @sap_channel: Array of PE SAP session's channels
650*5113495bSYour Name  *
651*5113495bSYour Name  * Used to filter the STA/IBSS/SAP beacons/probes required in PE and
652*5113495bSYour Name  * drop other unwanted beacon/probe response frames
653*5113495bSYour Name  */
654*5113495bSYour Name struct mgmt_beacon_probe_filter {
655*5113495bSYour Name 	uint8_t num_sta_sessions;
656*5113495bSYour Name 	tSirMacAddr sta_bssid[WLAN_MAX_VDEVS];
657*5113495bSYour Name 	uint8_t num_sap_sessions;
658*5113495bSYour Name 	uint8_t sap_channel[WLAN_MAX_VDEVS];
659*5113495bSYour Name };
660*5113495bSYour Name 
661*5113495bSYour Name #ifdef FEATURE_ANI_LEVEL_REQUEST
662*5113495bSYour Name struct ani_level_params {
663*5113495bSYour Name 	void (*ani_level_cb)(struct wmi_host_ani_level_event *ani, uint8_t num,
664*5113495bSYour Name 			     void *context);
665*5113495bSYour Name 	void *context;
666*5113495bSYour Name };
667*5113495bSYour Name #endif
668*5113495bSYour Name 
669*5113495bSYour Name /**
670*5113495bSYour Name  * struct mac_context - Global MAC context
671*5113495bSYour Name  */
672*5113495bSYour Name struct mac_context {
673*5113495bSYour Name 	enum qdf_driver_type gDriverType;
674*5113495bSYour Name 	struct wlan_mlme_chain_cfg fw_chain_cfg;
675*5113495bSYour Name 	struct wlan_mlme_cfg *mlme_cfg;
676*5113495bSYour Name 	struct lim_context lim;
677*5113495bSYour Name 	struct sch_context sch;
678*5113495bSYour Name 	tAniSirSys sys;
679*5113495bSYour Name 
680*5113495bSYour Name 	/* PAL/HDD handle */
681*5113495bSYour Name 	hdd_handle_t hdd_handle;
682*5113495bSYour Name 
683*5113495bSYour Name 	struct sme_context sme;
684*5113495bSYour Name 	tSapStruct sap;
685*5113495bSYour Name 	struct csr_scanstruct scan;
686*5113495bSYour Name 	struct csr_roamstruct roam;
687*5113495bSYour Name 	tRrmContext rrm;
688*5113495bSYour Name 	uint8_t beacon_offload;
689*5113495bSYour Name 	bool pmf_offload;
690*5113495bSYour Name 	uint32_t f_sta_miracast_mcc_rest_time_val;
691*5113495bSYour Name #ifdef WLAN_FEATURE_EXTWOW_SUPPORT
692*5113495bSYour Name 	csr_readyToExtWoWCallback readyToExtWoWCallback;
693*5113495bSYour Name 	void *readyToExtWoWContext;
694*5113495bSYour Name #endif
695*5113495bSYour Name 	struct vdev_type_nss vdev_type_nss_2g;
696*5113495bSYour Name 	struct vdev_type_nss vdev_type_nss_5g;
697*5113495bSYour Name 
698*5113495bSYour Name 	uint16_t mgmtSeqNum;
699*5113495bSYour Name 	sir_mgmt_frame_ind_callback mgmt_frame_ind_cb;
700*5113495bSYour Name 	qdf_atomic_t global_cmd_id;
701*5113495bSYour Name 	struct wlan_objmgr_psoc *psoc;
702*5113495bSYour Name 	struct wlan_objmgr_pdev *pdev;
703*5113495bSYour Name 	void (*chan_info_cb)(struct scan_chan_info *chan_info);
704*5113495bSYour Name 	void (*del_peers_ind_cb)(struct wlan_objmgr_psoc *psoc,
705*5113495bSYour Name 				 uint8_t vdev_id);
706*5113495bSYour Name 	uint32_t rx_packet_drop_counter;
707*5113495bSYour Name 	enum tx_ack_status auth_ack_status;
708*5113495bSYour Name 	enum tx_ack_status assoc_ack_status;
709*5113495bSYour Name 	uint8_t user_configured_nss;
710*5113495bSYour Name 	uint32_t peer_rssi;
711*5113495bSYour Name 	uint32_t peer_txrate;
712*5113495bSYour Name 	uint32_t peer_rxrate;
713*5113495bSYour Name 	uint32_t rx_retry_cnt;
714*5113495bSYour Name 	uint32_t rx_mc_bc_cnt;
715*5113495bSYour Name 	/* 11k Offload Support */
716*5113495bSYour Name 	bool is_11k_offload_supported;
717*5113495bSYour Name 	uint8_t reject_addba_req;
718*5113495bSYour Name 	uint16_t usr_cfg_ba_buff_size;
719*5113495bSYour Name 	bool is_usr_cfg_amsdu_enabled;
720*5113495bSYour Name 	uint8_t no_ack_policy_cfg[QCA_WLAN_AC_ALL];
721*5113495bSYour Name 	uint32_t he_sgi_ltf_cfg_bit_mask;
722*5113495bSYour Name 	uint8_t usr_cfg_tx_bfee_nsts;
723*5113495bSYour Name 	struct mgmt_beacon_probe_filter bcn_filter;
724*5113495bSYour Name 	tSirMacEdcaParamRecord usr_mu_edca_params[QCA_WLAN_AC_ALL];
725*5113495bSYour Name 	bool usr_cfg_mu_edca_params;
726*5113495bSYour Name 	bool he_om_ctrl_cfg_bw_set;
727*5113495bSYour Name 	uint8_t he_om_ctrl_cfg_bw;
728*5113495bSYour Name 	bool he_om_ctrl_cfg_nss_set;
729*5113495bSYour Name 	uint8_t he_om_ctrl_cfg_nss;
730*5113495bSYour Name 	bool he_om_ctrl_cfg_ul_mu_dis;
731*5113495bSYour Name 	bool he_om_ctrl_cfg_tx_nsts_set;
732*5113495bSYour Name 	uint8_t he_om_ctrl_cfg_tx_nsts;
733*5113495bSYour Name 	bool he_om_ctrl_ul_mu_data_dis;
734*5113495bSYour Name 	uint8_t usr_cfg_disable_rsp_tx;
735*5113495bSYour Name 	uint8_t is_usr_cfg_pmf_wep;
736*5113495bSYour Name 	uint8_t usr_cfg_ru_242_tone_tx;
737*5113495bSYour Name 	bool usr_eht_testbed_cfg;
738*5113495bSYour Name #ifdef WLAN_FEATURE_11AX
739*5113495bSYour Name 	tDot11fIEhe_cap he_cap_2g;
740*5113495bSYour Name 	tDot11fIEhe_cap he_cap_5g;
741*5113495bSYour Name 	tDot11fIEhe_cap he_cap_2g_orig;
742*5113495bSYour Name 	tDot11fIEhe_cap he_cap_5g_orig;
743*5113495bSYour Name #endif
744*5113495bSYour Name 	bool obss_scan_offload;
745*5113495bSYour Name 	bool bcn_reception_stats;
746*5113495bSYour Name 	csr_session_close_cb session_close_cb;
747*5113495bSYour Name 	csr_roam_complete_cb session_roam_complete_cb;
748*5113495bSYour Name #ifdef FEATURE_ANI_LEVEL_REQUEST
749*5113495bSYour Name 	struct ani_level_params ani_params;
750*5113495bSYour Name #endif
751*5113495bSYour Name #ifdef WLAN_FEATURE_11BE
752*5113495bSYour Name 	tDot11fIEeht_cap eht_cap_2g;
753*5113495bSYour Name 	tDot11fIEeht_cap eht_cap_5g;
754*5113495bSYour Name 	tDot11fIEeht_cap eht_cap_2g_orig;
755*5113495bSYour Name 	tDot11fIEeht_cap eht_cap_5g_orig;
756*5113495bSYour Name #endif
757*5113495bSYour Name #ifdef WLAN_FEATURE_CAL_FAILURE_TRIGGER
758*5113495bSYour Name 	void (*cal_failure_event_cb)(uint8_t cal_type, uint8_t reason);
759*5113495bSYour Name #endif
760*5113495bSYour Name };
761*5113495bSYour Name 
762*5113495bSYour Name #ifdef FEATURE_WLAN_TDLS
763*5113495bSYour Name 
764*5113495bSYour Name #define RFC1042_HDR_LENGTH      (6)
765*5113495bSYour Name #define GET_BE16(x)             ((uint16_t) (((x)[0] << 8) | (x)[1]))
766*5113495bSYour Name #define ETH_TYPE_89_0d          (0x890d)
767*5113495bSYour Name #define ETH_TYPE_LEN            (2)
768*5113495bSYour Name #define PAYLOAD_TYPE_TDLS_SIZE  (1)
769*5113495bSYour Name #define PAYLOAD_TYPE_TDLS       (2)
770*5113495bSYour Name 
771*5113495bSYour Name #endif
772*5113495bSYour Name 
773*5113495bSYour Name #endif /* _ANIGLOBAL_H */
774