Staging: rt3070: remove dead DOT11N_DRAFT3 code
[linux-2.6] / drivers / staging / rt3070 / 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 /*
167 VOID    RTMPAddClientSec(
168         IN      PRTMP_ADAPTER   pAd,
169         IN      UCHAR   BssIdx,
170         IN UCHAR                 KeyIdx,
171         IN UCHAR                 CipherAlg,
172         IN PUCHAR                pKey,
173         IN PUCHAR                pTxMic,
174         IN PUCHAR                pRxMic,
175         IN MAC_TABLE_ENTRY *pEntry);
176 */
177
178 // ap_auth.c
179
180 void APAuthStateMachineInit(
181     IN PRTMP_ADAPTER pAd,
182     IN STATE_MACHINE *Sm,
183     OUT STATE_MACHINE_FUNC Trans[]);
184
185 VOID APMlmeDeauthReqAction(
186     IN PRTMP_ADAPTER pAd,
187     IN MLME_QUEUE_ELEM *Elem);
188
189 VOID APCls2errAction(
190     IN PRTMP_ADAPTER pAd,
191         IN      ULONG Wcid,
192     IN  PHEADER_802_11  pHeader);
193
194 // ap_authrsp.c
195
196 VOID APAuthRspStateMachineInit(
197     IN PRTMP_ADAPTER pAd,
198     IN PSTATE_MACHINE Sm,
199     IN STATE_MACHINE_FUNC Trans[]);
200
201 VOID APPeerAuthAtAuthRspIdleAction(
202     IN  PRTMP_ADAPTER   pAd,
203     IN  MLME_QUEUE_ELEM *Elem);
204
205 VOID APPeerDeauthReqAction(
206     IN PRTMP_ADAPTER    pAd,
207     IN MLME_QUEUE_ELEM *Elem);
208
209 VOID APPeerAuthSimpleRspGenAndSend(
210     IN  PRTMP_ADAPTER   pAd,
211     IN  PHEADER_802_11 pHdr80211,
212     IN  USHORT Alg,
213     IN  USHORT Seq,
214     IN  USHORT StatusCode);
215
216 // ap_connect.c
217
218 BOOLEAN BeaconTransmitRequired(
219         IN PRTMP_ADAPTER        pAd,
220         IN INT                          apidx);
221
222 VOID APMakeBssBeacon(
223     IN  PRTMP_ADAPTER   pAd,
224         IN      INT                             apidx);
225
226 VOID  APUpdateBeaconFrame(
227     IN  PRTMP_ADAPTER   pAd,
228         IN      INT                             apidx);
229
230 VOID APMakeAllBssBeacon(
231     IN  PRTMP_ADAPTER   pAd);
232
233 VOID  APUpdateAllBeaconFrame(
234     IN  PRTMP_ADAPTER   pAd);
235
236
237 // ap_sync.c
238
239 VOID APSyncStateMachineInit(
240     IN PRTMP_ADAPTER pAd,
241     IN STATE_MACHINE *Sm,
242     OUT STATE_MACHINE_FUNC Trans[]);
243
244 VOID APScanTimeout(
245         IN PVOID SystemSpecific1,
246         IN PVOID FunctionContext,
247         IN PVOID SystemSpecific2,
248         IN PVOID SystemSpecific3);
249
250 VOID APInvalidStateWhenScan(
251         IN PRTMP_ADAPTER pAd,
252         IN MLME_QUEUE_ELEM *Elem);
253
254 VOID APScanTimeoutAction(
255         IN PRTMP_ADAPTER pAd,
256         IN MLME_QUEUE_ELEM *Elem);
257
258 VOID APPeerProbeReqAction(
259     IN  PRTMP_ADAPTER pAd,
260     IN  MLME_QUEUE_ELEM *Elem);
261
262 VOID APPeerBeaconAction(
263     IN PRTMP_ADAPTER pAd,
264     IN MLME_QUEUE_ELEM *Elem);
265
266 VOID APMlmeScanReqAction(
267         IN PRTMP_ADAPTER pAd,
268         IN MLME_QUEUE_ELEM *Elem);
269
270 VOID APPeerBeaconAtScanAction(
271         IN PRTMP_ADAPTER pAd,
272         IN MLME_QUEUE_ELEM *Elem);
273
274 VOID APScanCnclAction(
275         IN PRTMP_ADAPTER pAd,
276         IN MLME_QUEUE_ELEM *Elem);
277
278 VOID ApSiteSurvey(
279         IN PRTMP_ADAPTER pAd);
280
281 VOID SupportRate(
282         IN PUCHAR SupRate,
283         IN UCHAR SupRateLen,
284         IN PUCHAR ExtRate,
285         IN UCHAR ExtRateLen,
286         OUT PUCHAR *Rates,
287         OUT PUCHAR RatesLen,
288         OUT PUCHAR pMaxSupportRate);
289
290
291 BOOLEAN ApScanRunning(
292         IN PRTMP_ADAPTER pAd);
293
294 // ap_wpa.c
295
296 VOID APWpaStateMachineInit(
297     IN  PRTMP_ADAPTER   pAd,
298     IN  STATE_MACHINE *Sm,
299     OUT STATE_MACHINE_FUNC Trans[]);
300
301 // ap_mlme.c
302
303 VOID APMlmePeriodicExec(
304     IN  PRTMP_ADAPTER   pAd);
305
306 VOID APMlmeSelectTxRateTable(
307         IN PRTMP_ADAPTER                pAd,
308         IN PMAC_TABLE_ENTRY             pEntry,
309         IN PUCHAR                               *ppTable,
310         IN PUCHAR                               pTableSize,
311         IN PUCHAR                               pInitTxRateIdx);
312
313 VOID APMlmeSetTxRate(
314         IN PRTMP_ADAPTER                pAd,
315         IN PMAC_TABLE_ENTRY             pEntry,
316         IN PRTMP_TX_RATE_SWITCH pTxRate);
317
318 VOID APMlmeDynamicTxRateSwitching(
319     IN PRTMP_ADAPTER pAd);
320
321 VOID APQuickResponeForRateUpExec(
322     IN PVOID SystemSpecific1,
323     IN PVOID FunctionContext,
324     IN PVOID SystemSpecific2,
325     IN PVOID SystemSpecific3);
326
327 BOOLEAN APMsgTypeSubst(
328     IN PRTMP_ADAPTER pAd,
329     IN PFRAME_802_11 pFrame,
330     OUT INT *Machine,
331     OUT INT *MsgType);
332
333 VOID APQuickResponeForRateUpExec(
334     IN PVOID SystemSpecific1,
335     IN PVOID FunctionContext,
336     IN PVOID SystemSpecific2,
337     IN PVOID SystemSpecific3);
338
339 #ifdef RT2870
340 VOID BeaconUpdateExec(
341     IN PVOID SystemSpecific1,
342     IN PVOID FunctionContext,
343     IN PVOID SystemSpecific2,
344     IN PVOID SystemSpecific3);
345 #endif // RT2870 //
346
347 VOID RTMPSetPiggyBack(
348         IN PRTMP_ADAPTER        pAd,
349         IN BOOLEAN                      bPiggyBack);
350
351 VOID APAsicEvaluateRxAnt(
352         IN PRTMP_ADAPTER        pAd);
353
354 VOID APAsicRxAntEvalTimeout(
355         IN PRTMP_ADAPTER        pAd);
356
357 // ap.c
358
359 VOID APSwitchChannel(
360         IN PRTMP_ADAPTER pAd,
361         IN INT Channel);
362
363 NDIS_STATUS APInitialize(
364     IN  PRTMP_ADAPTER   pAd);
365
366 VOID APShutdown(
367     IN PRTMP_ADAPTER    pAd);
368
369 VOID APStartUp(
370     IN  PRTMP_ADAPTER   pAd);
371
372 VOID APStop(
373     IN  PRTMP_ADAPTER   pAd);
374
375 VOID APCleanupPsQueue(
376     IN  PRTMP_ADAPTER   pAd,
377     IN  PQUEUE_HEADER   pQueue);
378
379 VOID MacTableReset(
380     IN  PRTMP_ADAPTER   pAd);
381
382 MAC_TABLE_ENTRY *MacTableInsertEntry(
383     IN  PRTMP_ADAPTER   pAd,
384     IN  PUCHAR          pAddr,
385         IN      UCHAR                   apidx,
386         IN BOOLEAN      CleanAll);
387
388 BOOLEAN MacTableDeleteEntry(
389     IN  PRTMP_ADAPTER   pAd,
390         IN USHORT wcid,
391     IN  PUCHAR          pAddr);
392
393 MAC_TABLE_ENTRY *MacTableLookup(
394     IN  PRTMP_ADAPTER   pAd,
395     IN  PUCHAR          pAddr);
396
397 VOID MacTableMaintenance(
398     IN PRTMP_ADAPTER pAd);
399
400 UINT32 MacTableAssocStaNumGet(
401         IN PRTMP_ADAPTER pAd);
402
403 MAC_TABLE_ENTRY *APSsPsInquiry(
404     IN  PRTMP_ADAPTER   pAd,
405     IN  PUCHAR          pAddr,
406     OUT SST             *Sst,
407     OUT USHORT          *Aid,
408     OUT UCHAR           *PsMode,
409     OUT UCHAR           *Rate);
410
411 BOOLEAN APPsIndicate(
412     IN  PRTMP_ADAPTER   pAd,
413     IN  PUCHAR          pAddr,
414         IN ULONG Wcid,
415     IN  UCHAR           Psm);
416
417 VOID ApLogEvent(
418     IN PRTMP_ADAPTER    pAd,
419     IN PUCHAR           pAddr,
420     IN USHORT           Event);
421
422 #ifdef DOT11_N_SUPPORT
423 VOID APUpdateOperationMode(
424     IN PRTMP_ADAPTER pAd);
425 #endif // DOT11_N_SUPPORT //
426
427 VOID APUpdateCapabilityAndErpIe(
428         IN PRTMP_ADAPTER pAd);
429
430 BOOLEAN ApCheckAccessControlList(
431         IN PRTMP_ADAPTER pAd,
432         IN PUCHAR        pAddr,
433         IN UCHAR         Apidx);
434
435 VOID ApUpdateAccessControlList(
436     IN PRTMP_ADAPTER pAd,
437     IN UCHAR         Apidx);
438
439 VOID ApEnqueueNullFrame(
440         IN PRTMP_ADAPTER pAd,
441         IN PUCHAR        pAddr,
442         IN UCHAR         TxRate,
443         IN UCHAR         PID,
444         IN UCHAR         apidx,
445     IN BOOLEAN       bQosNull,
446     IN BOOLEAN       bEOSP,
447     IN UCHAR         OldUP);
448
449 VOID ApSendFrame(
450     IN  PRTMP_ADAPTER   pAd,
451     IN  PVOID           pBuffer,
452     IN  ULONG           Length,
453     IN  UCHAR           TxRate,
454     IN  UCHAR           PID);
455
456 VOID ApEnqueueAckFrame(
457     IN PRTMP_ADAPTER pAd,
458     IN PUCHAR        pAddr,
459     IN UCHAR         TxRate,
460         IN UCHAR         apidx);
461
462 UCHAR APAutoSelectChannel(
463         IN PRTMP_ADAPTER pAd,
464         IN BOOLEAN Optimal);
465
466 // ap_sanity.c
467
468
469 BOOLEAN PeerAssocReqCmmSanity(
470     IN PRTMP_ADAPTER pAd,
471         IN BOOLEAN isRessoc,
472     IN VOID *Msg,
473     IN ULONG MsgLen,
474     OUT PUCHAR pAddr2,
475     OUT USHORT *pCapabilityInfo,
476     OUT USHORT *pListenInterval,
477     OUT PUCHAR pApAddr,
478     OUT UCHAR *pSsidLen,
479     OUT char *Ssid,
480     OUT UCHAR *pRatesLen,
481     OUT UCHAR Rates[],
482     OUT UCHAR *RSN,
483     OUT UCHAR *pRSNLen,
484     OUT BOOLEAN *pbWmmCapable,
485     OUT ULONG  *pRalinkIe,
486     OUT UCHAR            *pHtCapabilityLen,
487     OUT HT_CAPABILITY_IE *pHtCapability);
488
489
490 BOOLEAN PeerDisassocReqSanity(
491     IN PRTMP_ADAPTER pAd,
492     IN VOID *Msg,
493     IN ULONG MsgLen,
494     OUT PUCHAR pAddr2,
495     OUT USHORT *Reason);
496
497 BOOLEAN PeerDeauthReqSanity(
498     IN PRTMP_ADAPTER pAd,
499     IN VOID *Msg,
500     IN ULONG MsgLen,
501     OUT PUCHAR pAddr2,
502     OUT USHORT *Reason);
503
504 BOOLEAN APPeerAuthSanity(
505     IN PRTMP_ADAPTER pAd,
506     IN VOID *Msg,
507     IN ULONG MsgLen,
508         OUT PUCHAR pAddr1,
509     OUT PUCHAR pAddr2,
510     OUT USHORT *Alg,
511     OUT USHORT *Seq,
512     OUT USHORT *Status,
513     CHAR *ChlgText);
514
515 BOOLEAN APPeerProbeReqSanity(
516     IN PRTMP_ADAPTER pAd,
517     IN VOID *Msg,
518     IN ULONG MsgLen,
519     OUT PUCHAR pAddr2,
520     OUT CHAR Ssid[],
521     OUT UCHAR *SsidLen);
522
523 BOOLEAN APPeerBeaconAndProbeRspSanity(
524     IN PRTMP_ADAPTER pAd,
525     IN VOID *Msg,
526     IN ULONG MsgLen,
527     OUT PUCHAR pAddr2,
528     OUT PUCHAR pBssid,
529     OUT CHAR Ssid[],
530     OUT UCHAR *SsidLen,
531     OUT UCHAR *BssType,
532     OUT USHORT *BeaconPeriod,
533     OUT UCHAR *Channel,
534     OUT LARGE_INTEGER *Timestamp,
535     OUT USHORT *CapabilityInfo,
536     OUT UCHAR Rate[],
537     OUT UCHAR *RateLen,
538     OUT BOOLEAN *ExtendedRateIeExist,
539     OUT UCHAR *Erp);
540
541
542 // ================== end of AP RTMP.h ========================
543
544
545 #endif  // __AP_H__
546