Staging: rt2860: remove DOT11_N_SUPPORT ifdefs
[linux-2.6] / drivers / staging / rt2860 / ap.h
1 /*
2  *************************************************************************
3  * Ralink Tech Inc.
4  * 5F., No.36, Taiyuan St., Jhubei City,
5  * Hsinchu County 302,
6  * Taiwan, R.O.C.
7  *
8  * (c) Copyright 2002-2007, Ralink Technology, Inc.
9  *
10  * This program is free software; you can redistribute it and/or modify  *
11  * it under the terms of the GNU General Public License as published by  *
12  * the Free Software Foundation; either version 2 of the License, or     *
13  * (at your option) any later version.                                   *
14  *                                                                       *
15  * This program is distributed in the hope that it will be useful,       *
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of        *
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
18  * GNU General Public License for more details.                          *
19  *                                                                       *
20  * You should have received a copy of the GNU General Public License     *
21  * along with this program; if not, write to the                         *
22  * Free Software Foundation, Inc.,                                       *
23  * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
24  *                                                                       *
25  *************************************************************************
26
27     Module Name:
28     ap.h
29
30     Abstract:
31     Miniport generic portion header file
32
33     Revision History:
34     Who         When          What
35     --------    ----------    ----------------------------------------------
36     Paul Lin    08-01-2002    created
37     James Tan   09-06-2002    modified (Revise NTCRegTable)
38     John Chang  12-22-2004    modified for RT2561/2661. merge with STA driver
39 */
40 #ifndef __AP_H__
41 #define __AP_H__
42
43
44
45 // ========================= AP RTMP.h ================================
46
47
48
49 // =============================================================
50 //      Function Prototypes
51 // =============================================================
52
53 // ap_data.c
54
55 BOOLEAN APBridgeToWirelessSta(
56     IN  PRTMP_ADAPTER   pAd,
57     IN  PUCHAR          pHeader,
58     IN  UINT            HdrLen,
59     IN  PUCHAR          pData,
60     IN  UINT            DataLen,
61     IN  ULONG           fromwdsidx);
62
63 BOOLEAN APHandleRxDoneInterrupt(
64     IN  PRTMP_ADAPTER   pAd);
65
66 VOID    APSendPackets(
67         IN      NDIS_HANDLE             MiniportAdapterContext,
68         IN      PPNDIS_PACKET   ppPacketArray,
69         IN      UINT                    NumberOfPackets);
70
71 NDIS_STATUS APSendPacket(
72     IN  PRTMP_ADAPTER   pAd,
73     IN  PNDIS_PACKET    pPacket);
74
75
76 NDIS_STATUS APHardTransmit(
77         IN      PRTMP_ADAPTER   pAd,
78         IN      TX_BLK                  *pTxBlk,
79         IN      UCHAR                   QueIdx);
80
81 VOID APRxEAPOLFrameIndicate(
82         IN      PRTMP_ADAPTER   pAd,
83         IN      MAC_TABLE_ENTRY *pEntry,
84         IN      RX_BLK                  *pRxBlk,
85         IN      UCHAR                   FromWhichBSSID);
86
87 NDIS_STATUS APCheckRxError(
88         IN      PRTMP_ADAPTER   pAd,
89         IN      PRT28XX_RXD_STRUC               pRxD,
90         IN      UCHAR                   Wcid);
91
92 BOOLEAN APCheckClass2Class3Error(
93     IN  PRTMP_ADAPTER   pAd,
94         IN ULONG Wcid,
95         IN  PHEADER_802_11  pHeader);
96
97 VOID APHandleRxPsPoll(
98         IN      PRTMP_ADAPTER   pAd,
99         IN      PUCHAR                  pAddr,
100         IN      USHORT                  Aid,
101     IN  BOOLEAN                 isActive);
102
103 VOID    RTMPDescriptorEndianChange(
104     IN  PUCHAR          pData,
105     IN  ULONG           DescriptorType);
106
107 VOID    RTMPFrameEndianChange(
108     IN  PRTMP_ADAPTER   pAd,
109     IN  PUCHAR          pData,
110     IN  ULONG           Dir,
111     IN  BOOLEAN         FromRxDoneInt);
112
113 // ap_assoc.c
114
115 VOID APAssocStateMachineInit(
116     IN  PRTMP_ADAPTER   pAd,
117     IN  STATE_MACHINE *S,
118     OUT STATE_MACHINE_FUNC Trans[]);
119
120 VOID  APPeerAssocReqAction(
121     IN  PRTMP_ADAPTER   pAd,
122     IN  MLME_QUEUE_ELEM *Elem);
123
124 VOID  APPeerReassocReqAction(
125     IN  PRTMP_ADAPTER   pAd,
126     IN  MLME_QUEUE_ELEM *Elem);
127
128 VOID  APPeerDisassocReqAction(
129     IN  PRTMP_ADAPTER   pAd,
130     IN  MLME_QUEUE_ELEM *Elem);
131
132 VOID MbssKickOutStas(
133         IN PRTMP_ADAPTER pAd,
134         IN INT apidx,
135         IN USHORT Reason);
136
137 VOID APMlmeKickOutSta(
138     IN PRTMP_ADAPTER pAd,
139         IN PUCHAR pStaAddr,
140         IN UCHAR Wcid,
141         IN USHORT Reason);
142
143 VOID APMlmeDisassocReqAction(
144     IN PRTMP_ADAPTER pAd,
145     IN MLME_QUEUE_ELEM *Elem);
146
147 VOID  APCls3errAction(
148     IN  PRTMP_ADAPTER   pAd,
149         IN      ULONG Wcid,
150     IN  PHEADER_802_11  pHeader);
151
152
153 USHORT APBuildAssociation(
154     IN PRTMP_ADAPTER pAd,
155     IN MAC_TABLE_ENTRY *pEntry,
156     IN USHORT CapabilityInfo,
157     IN UCHAR  MaxSupportedRateIn500Kbps,
158     IN UCHAR  *RSN,
159     IN UCHAR  *pRSNLen,
160     IN BOOLEAN bWmmCapable,
161     IN ULONG  RalinkIe,
162         IN HT_CAPABILITY_IE             *pHtCapability,
163         IN UCHAR                 HtCapabilityLen,
164     OUT USHORT *pAid);
165
166 // ap_auth.c
167
168 void APAuthStateMachineInit(
169     IN PRTMP_ADAPTER pAd,
170     IN STATE_MACHINE *Sm,
171     OUT STATE_MACHINE_FUNC Trans[]);
172
173 VOID APMlmeDeauthReqAction(
174     IN PRTMP_ADAPTER pAd,
175     IN MLME_QUEUE_ELEM *Elem);
176
177 VOID APCls2errAction(
178     IN PRTMP_ADAPTER pAd,
179         IN      ULONG Wcid,
180     IN  PHEADER_802_11  pHeader);
181
182 // ap_authrsp.c
183
184 VOID APAuthRspStateMachineInit(
185     IN PRTMP_ADAPTER pAd,
186     IN PSTATE_MACHINE Sm,
187     IN STATE_MACHINE_FUNC Trans[]);
188
189 VOID APPeerAuthAtAuthRspIdleAction(
190     IN  PRTMP_ADAPTER   pAd,
191     IN  MLME_QUEUE_ELEM *Elem);
192
193 VOID APPeerDeauthReqAction(
194     IN PRTMP_ADAPTER    pAd,
195     IN MLME_QUEUE_ELEM *Elem);
196
197 VOID APPeerAuthSimpleRspGenAndSend(
198     IN  PRTMP_ADAPTER   pAd,
199     IN  PHEADER_802_11 pHdr80211,
200     IN  USHORT Alg,
201     IN  USHORT Seq,
202     IN  USHORT StatusCode);
203
204 // ap_connect.c
205
206 BOOLEAN BeaconTransmitRequired(
207         IN PRTMP_ADAPTER        pAd,
208         IN INT                          apidx);
209
210 VOID APMakeBssBeacon(
211     IN  PRTMP_ADAPTER   pAd,
212         IN      INT                             apidx);
213
214 VOID  APUpdateBeaconFrame(
215     IN  PRTMP_ADAPTER   pAd,
216         IN      INT                             apidx);
217
218 VOID APMakeAllBssBeacon(
219     IN  PRTMP_ADAPTER   pAd);
220
221 VOID  APUpdateAllBeaconFrame(
222     IN  PRTMP_ADAPTER   pAd);
223
224
225 // ap_sync.c
226
227 VOID APSyncStateMachineInit(
228     IN PRTMP_ADAPTER pAd,
229     IN STATE_MACHINE *Sm,
230     OUT STATE_MACHINE_FUNC Trans[]);
231
232 VOID APScanTimeout(
233         IN PVOID SystemSpecific1,
234         IN PVOID FunctionContext,
235         IN PVOID SystemSpecific2,
236         IN PVOID SystemSpecific3);
237
238 VOID APInvalidStateWhenScan(
239         IN PRTMP_ADAPTER pAd,
240         IN MLME_QUEUE_ELEM *Elem);
241
242 VOID APScanTimeoutAction(
243         IN PRTMP_ADAPTER pAd,
244         IN MLME_QUEUE_ELEM *Elem);
245
246 VOID APPeerProbeReqAction(
247     IN  PRTMP_ADAPTER pAd,
248     IN  MLME_QUEUE_ELEM *Elem);
249
250 VOID APPeerBeaconAction(
251     IN PRTMP_ADAPTER pAd,
252     IN MLME_QUEUE_ELEM *Elem);
253
254 VOID APMlmeScanReqAction(
255         IN PRTMP_ADAPTER pAd,
256         IN MLME_QUEUE_ELEM *Elem);
257
258 VOID APPeerBeaconAtScanAction(
259         IN PRTMP_ADAPTER pAd,
260         IN MLME_QUEUE_ELEM *Elem);
261
262 VOID APScanCnclAction(
263         IN PRTMP_ADAPTER pAd,
264         IN MLME_QUEUE_ELEM *Elem);
265
266 VOID ApSiteSurvey(
267         IN PRTMP_ADAPTER pAd);
268
269 VOID SupportRate(
270         IN PUCHAR SupRate,
271         IN UCHAR SupRateLen,
272         IN PUCHAR ExtRate,
273         IN UCHAR ExtRateLen,
274         OUT PUCHAR *Rates,
275         OUT PUCHAR RatesLen,
276         OUT PUCHAR pMaxSupportRate);
277
278
279 BOOLEAN ApScanRunning(
280         IN PRTMP_ADAPTER pAd);
281
282 // ap_wpa.c
283
284 VOID APWpaStateMachineInit(
285     IN  PRTMP_ADAPTER   pAd,
286     IN  STATE_MACHINE *Sm,
287     OUT STATE_MACHINE_FUNC Trans[]);
288
289 // ap_mlme.c
290
291 VOID APMlmePeriodicExec(
292     IN  PRTMP_ADAPTER   pAd);
293
294 VOID APMlmeSelectTxRateTable(
295         IN PRTMP_ADAPTER                pAd,
296         IN PMAC_TABLE_ENTRY             pEntry,
297         IN PUCHAR                               *ppTable,
298         IN PUCHAR                               pTableSize,
299         IN PUCHAR                               pInitTxRateIdx);
300
301 VOID APMlmeSetTxRate(
302         IN PRTMP_ADAPTER                pAd,
303         IN PMAC_TABLE_ENTRY             pEntry,
304         IN PRTMP_TX_RATE_SWITCH pTxRate);
305
306 VOID APMlmeDynamicTxRateSwitching(
307     IN PRTMP_ADAPTER pAd);
308
309 VOID APQuickResponeForRateUpExec(
310     IN PVOID SystemSpecific1,
311     IN PVOID FunctionContext,
312     IN PVOID SystemSpecific2,
313     IN PVOID SystemSpecific3);
314
315 BOOLEAN APMsgTypeSubst(
316     IN PRTMP_ADAPTER pAd,
317     IN PFRAME_802_11 pFrame,
318     OUT INT *Machine,
319     OUT INT *MsgType);
320
321 VOID APQuickResponeForRateUpExec(
322     IN PVOID SystemSpecific1,
323     IN PVOID FunctionContext,
324     IN PVOID SystemSpecific2,
325     IN PVOID SystemSpecific3);
326
327
328 VOID RTMPSetPiggyBack(
329         IN PRTMP_ADAPTER        pAd,
330         IN BOOLEAN                      bPiggyBack);
331
332 VOID APAsicEvaluateRxAnt(
333         IN PRTMP_ADAPTER        pAd);
334
335 VOID APAsicRxAntEvalTimeout(
336         IN PRTMP_ADAPTER        pAd);
337
338 // ap.c
339
340 VOID APSwitchChannel(
341         IN PRTMP_ADAPTER pAd,
342         IN INT Channel);
343
344 NDIS_STATUS APInitialize(
345     IN  PRTMP_ADAPTER   pAd);
346
347 VOID APShutdown(
348     IN PRTMP_ADAPTER    pAd);
349
350 VOID APStartUp(
351     IN  PRTMP_ADAPTER   pAd);
352
353 VOID APStop(
354     IN  PRTMP_ADAPTER   pAd);
355
356 VOID APCleanupPsQueue(
357     IN  PRTMP_ADAPTER   pAd,
358     IN  PQUEUE_HEADER   pQueue);
359
360 VOID MacTableReset(
361     IN  PRTMP_ADAPTER   pAd);
362
363 MAC_TABLE_ENTRY *MacTableInsertEntry(
364     IN  PRTMP_ADAPTER   pAd,
365     IN  PUCHAR          pAddr,
366         IN      UCHAR                   apidx,
367         IN BOOLEAN      CleanAll);
368
369 BOOLEAN MacTableDeleteEntry(
370     IN  PRTMP_ADAPTER   pAd,
371         IN USHORT wcid,
372     IN  PUCHAR          pAddr);
373
374 MAC_TABLE_ENTRY *MacTableLookup(
375     IN  PRTMP_ADAPTER   pAd,
376     IN  PUCHAR          pAddr);
377
378 VOID MacTableMaintenance(
379     IN PRTMP_ADAPTER pAd);
380
381 UINT32 MacTableAssocStaNumGet(
382         IN PRTMP_ADAPTER pAd);
383
384 MAC_TABLE_ENTRY *APSsPsInquiry(
385     IN  PRTMP_ADAPTER   pAd,
386     IN  PUCHAR          pAddr,
387     OUT SST             *Sst,
388     OUT USHORT          *Aid,
389     OUT UCHAR           *PsMode,
390     OUT UCHAR           *Rate);
391
392 BOOLEAN APPsIndicate(
393     IN  PRTMP_ADAPTER   pAd,
394     IN  PUCHAR          pAddr,
395         IN ULONG Wcid,
396     IN  UCHAR           Psm);
397
398 VOID ApLogEvent(
399     IN PRTMP_ADAPTER    pAd,
400     IN PUCHAR           pAddr,
401     IN USHORT           Event);
402
403 VOID APUpdateOperationMode(
404     IN PRTMP_ADAPTER pAd);
405
406 VOID APUpdateCapabilityAndErpIe(
407         IN PRTMP_ADAPTER pAd);
408
409 BOOLEAN ApCheckAccessControlList(
410         IN PRTMP_ADAPTER pAd,
411         IN PUCHAR        pAddr,
412         IN UCHAR         Apidx);
413
414 VOID ApUpdateAccessControlList(
415     IN PRTMP_ADAPTER pAd,
416     IN UCHAR         Apidx);
417
418 VOID ApEnqueueNullFrame(
419         IN PRTMP_ADAPTER pAd,
420         IN PUCHAR        pAddr,
421         IN UCHAR         TxRate,
422         IN UCHAR         PID,
423         IN UCHAR         apidx,
424     IN BOOLEAN       bQosNull,
425     IN BOOLEAN       bEOSP,
426     IN UCHAR         OldUP);
427
428 VOID ApSendFrame(
429     IN  PRTMP_ADAPTER   pAd,
430     IN  PVOID           pBuffer,
431     IN  ULONG           Length,
432     IN  UCHAR           TxRate,
433     IN  UCHAR           PID);
434
435 VOID ApEnqueueAckFrame(
436     IN PRTMP_ADAPTER pAd,
437     IN PUCHAR        pAddr,
438     IN UCHAR         TxRate,
439         IN UCHAR         apidx);
440
441 UCHAR APAutoSelectChannel(
442         IN PRTMP_ADAPTER pAd,
443         IN BOOLEAN Optimal);
444
445 // ap_sanity.c
446
447
448 BOOLEAN PeerAssocReqCmmSanity(
449     IN PRTMP_ADAPTER pAd,
450         IN BOOLEAN isRessoc,
451     IN VOID *Msg,
452     IN ULONG MsgLen,
453     OUT PUCHAR pAddr2,
454     OUT USHORT *pCapabilityInfo,
455     OUT USHORT *pListenInterval,
456     OUT PUCHAR pApAddr,
457     OUT UCHAR *pSsidLen,
458     OUT char *Ssid,
459     OUT UCHAR *pRatesLen,
460     OUT UCHAR Rates[],
461     OUT UCHAR *RSN,
462     OUT UCHAR *pRSNLen,
463     OUT BOOLEAN *pbWmmCapable,
464     OUT ULONG  *pRalinkIe,
465     OUT UCHAR            *pHtCapabilityLen,
466     OUT HT_CAPABILITY_IE *pHtCapability);
467
468 BOOLEAN PeerDisassocReqSanity(
469     IN PRTMP_ADAPTER pAd,
470     IN VOID *Msg,
471     IN ULONG MsgLen,
472     OUT PUCHAR pAddr2,
473     OUT USHORT *Reason);
474
475 BOOLEAN PeerDeauthReqSanity(
476     IN PRTMP_ADAPTER pAd,
477     IN VOID *Msg,
478     IN ULONG MsgLen,
479     OUT PUCHAR pAddr2,
480     OUT USHORT *Reason);
481
482 BOOLEAN APPeerAuthSanity(
483     IN PRTMP_ADAPTER pAd,
484     IN VOID *Msg,
485     IN ULONG MsgLen,
486         OUT PUCHAR pAddr1,
487     OUT PUCHAR pAddr2,
488     OUT USHORT *Alg,
489     OUT USHORT *Seq,
490     OUT USHORT *Status,
491     CHAR *ChlgText);
492
493 BOOLEAN APPeerProbeReqSanity(
494     IN PRTMP_ADAPTER pAd,
495     IN VOID *Msg,
496     IN ULONG MsgLen,
497     OUT PUCHAR pAddr2,
498     OUT CHAR Ssid[],
499     OUT UCHAR *SsidLen);
500
501 BOOLEAN APPeerBeaconAndProbeRspSanity(
502     IN PRTMP_ADAPTER pAd,
503     IN VOID *Msg,
504     IN ULONG MsgLen,
505     OUT PUCHAR pAddr2,
506     OUT PUCHAR pBssid,
507     OUT CHAR Ssid[],
508     OUT UCHAR *SsidLen,
509     OUT UCHAR *BssType,
510     OUT USHORT *BeaconPeriod,
511     OUT UCHAR *Channel,
512     OUT LARGE_INTEGER *Timestamp,
513     OUT USHORT *CapabilityInfo,
514     OUT UCHAR Rate[],
515     OUT UCHAR *RateLen,
516     OUT BOOLEAN *ExtendedRateIeExist,
517     OUT UCHAR *Erp);
518
519 // ap_info.c
520
521
522
523 // ================== end of AP RTMP.h ========================
524
525
526 #endif  // __AP_H__
527