wifi: renew patch drivers/net/wireless
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / mt5931_kk / drv_wlan / include / mgmt / aa_fsm.h
1 /*
2 ** $Id: //Department/DaVinci/BRANCHES/MT662X_593X_WIFI_DRIVER_V2_3/include/mgmt/aa_fsm.h#1 $
3 */
4
5 /*! \file   aa_fsm.h
6     \brief  Declaration of functions and finite state machine for SAA/AAA Module.
7
8     Declaration of functions and finite state machine for SAA/AAA Module.
9 */
10
11 /*******************************************************************************
12 * Copyright (c) 2009 MediaTek Inc.
13 *
14 * All rights reserved. Copying, compilation, modification, distribution
15 * or any other use whatsoever of this material is strictly prohibited
16 * except in accordance with a Software License Agreement with
17 * MediaTek Inc.
18 ********************************************************************************
19 */
20
21 /*******************************************************************************
22 * LEGAL DISCLAIMER
23 *
24 * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND
25 * AGREES THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK
26 * SOFTWARE") RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE
27 * PROVIDED TO BUYER ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY
28 * DISCLAIMS ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
29 * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
30 * PARTICULAR PURPOSE OR NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE
31 * ANY WARRANTY WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTY
32 * WHICH MAY BE USED BY, INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK
33 * SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY
34 * WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE
35 * FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S SPECIFICATION OR TO
36 * CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
37 *
38 * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
39 * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL
40 * BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT
41 * ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY
42 * BUYER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
43 *
44 * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
45 * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT
46 * OF LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING
47 * THEREOF AND RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN
48 * FRANCISCO, CA, UNDER THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE
49 * (ICC).
50 ********************************************************************************
51 */
52
53 /*
54 ** $Log: aa_fsm.h $
55  *
56  * 10 13 2011 cp.wu
57  * [MT6620 Wi-Fi][Driver] Reduce join failure count limit to 2 for faster re-join for other BSS 
58  * 1. short join failure count limit to 2
59  * 2. treat join timeout as kind of join failure as well
60  *
61  * 07 08 2010 cp.wu
62  * 
63  * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
64  *
65  * 06 21 2010 cp.wu
66  * [WPD00003833][MT6620 and MT5931] Driver migration 
67  * refine TX-DONE callback.
68  *
69  * 06 11 2010 cp.wu
70  * [WPD00003833][MT6620 and MT5931] Driver migration 
71  * 1) migrate assoc.c.
72  * 2) add ucTxSeqNum for tracking frames which needs TX-DONE awareness
73  * 3) add configuration options for CNM_MEM and RSN modules
74  * 4) add data path for management frames
75  * 5) eliminate rPacketInfo of MSDU_INFO_T
76  *
77  * 06 10 2010 cp.wu
78  * [WPD00003833][MT6620 and MT5931] Driver migration 
79  * add buildable & linkable ais_fsm.c
80  * 
81  * related reference are still waiting to be resolved
82  *
83  * 06 07 2010 cp.wu
84  * [WPD00003833][MT6620 and MT5931] Driver migration 
85  * add aa_fsm.h, ais_fsm.h, bss.h, mib.h and scan.h.
86  *
87  * 03 10 2010 kevin.huang
88  * [BORA00000654][WIFISYS][New Feature] CNM Module - Ch Manager Support 
89  * 
90  * Add Channel Manager for arbitration of JOIN and SCAN Req
91  *
92  * 02 04 2010 kevin.huang
93  * [BORA00000603][WIFISYS] [New Feature] AAA Module Support 
94  * Add AAA Module Support, Revise Net Type to Net Type Index for array lookup
95  *
96  * 01 11 2010 kevin.huang
97  * [BORA00000018]Integrate WIFI part into BORA for the 1st time 
98  * Add Deauth and Disassoc Handler
99  *
100  * Nov 24 2009 mtk01461
101  * [BORA00000018] Integrate WIFI part into BORA for the 1st time
102  * Revise MGMT Handler with Retain Status
103  *
104  * Nov 23 2009 mtk01461
105  * [BORA00000018] Integrate WIFI part into BORA for the 1st time
106  * 
107 */
108
109
110 #ifndef _AA_FSM_H
111 #define _AA_FSM_H
112
113 /*******************************************************************************
114 *                         C O M P I L E R   F L A G S
115 ********************************************************************************
116 */
117
118 /*******************************************************************************
119 *                    E X T E R N A L   R E F E R E N C E S
120 ********************************************************************************
121 */
122
123 /*******************************************************************************
124 *                              C O N S T A N T S
125 ********************************************************************************
126 */
127 /* Retry interval for retransmiting authentication-request MMPDU. */
128 #define TX_AUTHENTICATION_RETRY_TIMEOUT_TU          100 // TU.
129
130 /* Retry interval for retransmiting association-request MMPDU. */
131 #define TX_ASSOCIATION_RETRY_TIMEOUT_TU             100 // TU.
132
133 /* Wait for a response to a transmitted authentication-request MMPDU. */
134 #define DOT11_AUTHENTICATION_RESPONSE_TIMEOUT_TU    512 // TU.
135
136 /* Wait for a response to a transmitted association-request MMPDU. */
137 #define DOT11_ASSOCIATION_RESPONSE_TIMEOUT_TU       512 // TU.
138
139 /* The maximum time to wait for JOIN process complete. */
140 #define JOIN_FAILURE_TIMEOUT_BEACON_INTERVAL        20 // Beacon Interval, 20 * 100TU = 2 sec.
141
142 /* Retry interval for next JOIN request. */
143 #define JOIN_RETRY_INTERVAL_SEC                     10 // Seconds
144
145 /* Maximum Retry Count for accept a JOIN request. */
146 #define JOIN_MAX_RETRY_FAILURE_COUNT                2 // Times
147
148 /*******************************************************************************
149 *                             D A T A   T Y P E S
150 ********************************************************************************
151 */
152 typedef enum _ENUM_AA_STATE_T {
153     AA_STATE_IDLE = 0,
154     SAA_STATE_SEND_AUTH1,
155     SAA_STATE_WAIT_AUTH2,
156     SAA_STATE_SEND_AUTH3,
157     SAA_STATE_WAIT_AUTH4,
158     SAA_STATE_SEND_ASSOC1,
159     SAA_STATE_WAIT_ASSOC2,
160     AAA_STATE_SEND_AUTH2,
161     AAA_STATE_SEND_AUTH4, // We may not use, because P2P GO didn't support WEP and 11r
162     AAA_STATE_SEND_ASSOC2,
163     AA_STATE_RESOURCE, // A state for debugging the case of out of msg buffer. 
164     AA_STATE_NUM
165 } ENUM_AA_STATE_T;
166
167 /*******************************************************************************
168 *                            P U B L I C   D A T A
169 ********************************************************************************
170 */
171
172 /*******************************************************************************
173 *                           P R I V A T E   D A T A
174 ********************************************************************************
175 */
176
177 /*******************************************************************************
178 *                                 M A C R O S
179 ********************************************************************************
180 */
181
182 /*******************************************************************************
183 *                  F U N C T I O N   D E C L A R A T I O N S
184 ********************************************************************************
185 */
186 /*----------------------------------------------------------------------------*/
187 /* Routines in saa_fsm.c                                                      */
188 /*----------------------------------------------------------------------------*/
189 VOID
190 saaFsmSteps (
191     IN P_ADAPTER_T prAdapter,
192     IN P_STA_RECORD_T prStaRec,
193     IN ENUM_AA_STATE_T eNextState,
194     IN P_SW_RFB_T prRetainedSwRfb
195     );
196
197 WLAN_STATUS
198 saaFsmSendEventJoinComplete (
199     IN P_ADAPTER_T prAdapter,
200     WLAN_STATUS rJoinStatus,
201     P_STA_RECORD_T prStaRec,
202     P_SW_RFB_T prSwRfb
203     );
204
205 VOID
206 saaFsmRunEventStart (
207     IN P_ADAPTER_T prAdapter,
208     IN P_MSG_HDR_T prMsgHdr
209     );
210     
211 WLAN_STATUS
212 saaFsmRunEventTxDone (
213     IN P_ADAPTER_T              prAdapter,
214     IN P_MSDU_INFO_T            prMsduInfo,
215     IN ENUM_TX_RESULT_CODE_T    rTxDoneStatus
216     );
217
218 VOID
219 saaFsmRunEventTxReqTimeOut (
220     IN P_ADAPTER_T prAdapter,
221     IN P_STA_RECORD_T prStaRec
222     );
223
224 VOID
225 saaFsmRunEventRxRespTimeOut (
226     IN P_ADAPTER_T prAdapter,
227     IN P_STA_RECORD_T prStaRec
228     );
229
230 VOID
231 saaFsmRunEventRxAuth (
232     IN P_ADAPTER_T prAdapter,
233     IN P_SW_RFB_T prSwRfb
234     );
235
236 WLAN_STATUS
237 saaFsmRunEventRxAssoc (
238     IN P_ADAPTER_T prAdapter,
239     IN P_SW_RFB_T prSwRfb
240     );
241
242 WLAN_STATUS
243 saaFsmRunEventRxDeauth (
244     IN P_ADAPTER_T prAdapter,
245     IN P_SW_RFB_T prSwRfb
246     );
247
248 WLAN_STATUS
249 saaFsmRunEventRxDisassoc (
250     IN P_ADAPTER_T prAdapter,
251     IN P_SW_RFB_T prSwRfb
252     );
253     
254 VOID
255 saaFsmRunEventAbort (
256     IN P_ADAPTER_T prAdapter,
257     IN P_MSG_HDR_T prMsgHdr
258     );
259
260 /*----------------------------------------------------------------------------*/
261 /* Routines in aaa_fsm.c                                                      */
262 /*----------------------------------------------------------------------------*/
263 VOID
264 aaaFsmRunEventRxAuth (
265     IN P_ADAPTER_T prAdapter,
266     IN P_SW_RFB_T prSwRfb
267     );
268
269 WLAN_STATUS
270 aaaFsmRunEventRxAssoc (
271     IN P_ADAPTER_T prAdapter,
272     IN P_SW_RFB_T prSwRfb
273     );
274
275 WLAN_STATUS
276 aaaFsmRunEventTxDone (
277     IN P_ADAPTER_T              prAdapter,
278     IN P_MSDU_INFO_T            prMsduInfo,
279     IN ENUM_TX_RESULT_CODE_T    rTxDoneStatus
280     );
281   
282 /*******************************************************************************
283 *                              F U N C T I O N S
284 ********************************************************************************
285 */
286
287 #endif /* _AA_FSM_H */
288
289
290
291