2 *************************************************************************
4 * 5F., No.36, Taiyuan St., Jhubei City,
8 * (c) Copyright 2002-2007, Ralink Technology, Inc.
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. *
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. *
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. *
25 *************************************************************************
31 Miniport generic portion header file
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
45 // ========================= AP RTMP.h ================================
49 // =============================================================
50 // Function Prototypes
51 // =============================================================
55 BOOLEAN APBridgeToWirelessSta(
63 BOOLEAN APHandleRxDoneInterrupt(
64 IN PRTMP_ADAPTER pAd);
67 IN NDIS_HANDLE MiniportAdapterContext,
68 IN PPNDIS_PACKET ppPacketArray,
69 IN UINT NumberOfPackets);
71 NDIS_STATUS APSendPacket(
73 IN PNDIS_PACKET pPacket);
76 NDIS_STATUS APHardTransmit(
81 VOID APRxEAPOLFrameIndicate(
83 IN MAC_TABLE_ENTRY *pEntry,
85 IN UCHAR FromWhichBSSID);
87 NDIS_STATUS APCheckRxError(
89 IN PRT28XX_RXD_STRUC pRxD,
92 BOOLEAN APCheckClass2Class3Error(
95 IN PHEADER_802_11 pHeader);
97 VOID APHandleRxPsPoll(
101 IN BOOLEAN isActive);
103 VOID RTMPDescriptorEndianChange(
105 IN ULONG DescriptorType);
107 VOID RTMPFrameEndianChange(
108 IN PRTMP_ADAPTER pAd,
111 IN BOOLEAN FromRxDoneInt);
115 VOID APAssocStateMachineInit(
116 IN PRTMP_ADAPTER pAd,
118 OUT STATE_MACHINE_FUNC Trans[]);
120 VOID APPeerAssocReqAction(
121 IN PRTMP_ADAPTER pAd,
122 IN MLME_QUEUE_ELEM *Elem);
124 VOID APPeerReassocReqAction(
125 IN PRTMP_ADAPTER pAd,
126 IN MLME_QUEUE_ELEM *Elem);
128 VOID APPeerDisassocReqAction(
129 IN PRTMP_ADAPTER pAd,
130 IN MLME_QUEUE_ELEM *Elem);
132 VOID MbssKickOutStas(
133 IN PRTMP_ADAPTER pAd,
137 VOID APMlmeKickOutSta(
138 IN PRTMP_ADAPTER pAd,
143 VOID APMlmeDisassocReqAction(
144 IN PRTMP_ADAPTER pAd,
145 IN MLME_QUEUE_ELEM *Elem);
147 VOID APCls3errAction(
148 IN PRTMP_ADAPTER pAd,
150 IN PHEADER_802_11 pHeader);
153 USHORT APBuildAssociation(
154 IN PRTMP_ADAPTER pAd,
155 IN MAC_TABLE_ENTRY *pEntry,
156 IN USHORT CapabilityInfo,
157 IN UCHAR MaxSupportedRateIn500Kbps,
160 IN BOOLEAN bWmmCapable,
162 IN HT_CAPABILITY_IE *pHtCapability,
163 IN UCHAR HtCapabilityLen,
167 VOID RTMPAddClientSec(
168 IN PRTMP_ADAPTER pAd,
175 IN MAC_TABLE_ENTRY *pEntry);
180 void APAuthStateMachineInit(
181 IN PRTMP_ADAPTER pAd,
182 IN STATE_MACHINE *Sm,
183 OUT STATE_MACHINE_FUNC Trans[]);
185 VOID APMlmeDeauthReqAction(
186 IN PRTMP_ADAPTER pAd,
187 IN MLME_QUEUE_ELEM *Elem);
189 VOID APCls2errAction(
190 IN PRTMP_ADAPTER pAd,
192 IN PHEADER_802_11 pHeader);
196 VOID APAuthRspStateMachineInit(
197 IN PRTMP_ADAPTER pAd,
198 IN PSTATE_MACHINE Sm,
199 IN STATE_MACHINE_FUNC Trans[]);
201 VOID APPeerAuthAtAuthRspIdleAction(
202 IN PRTMP_ADAPTER pAd,
203 IN MLME_QUEUE_ELEM *Elem);
205 VOID APPeerDeauthReqAction(
206 IN PRTMP_ADAPTER pAd,
207 IN MLME_QUEUE_ELEM *Elem);
209 VOID APPeerAuthSimpleRspGenAndSend(
210 IN PRTMP_ADAPTER pAd,
211 IN PHEADER_802_11 pHdr80211,
214 IN USHORT StatusCode);
218 BOOLEAN BeaconTransmitRequired(
219 IN PRTMP_ADAPTER pAd,
222 VOID APMakeBssBeacon(
223 IN PRTMP_ADAPTER pAd,
226 VOID APUpdateBeaconFrame(
227 IN PRTMP_ADAPTER pAd,
230 VOID APMakeAllBssBeacon(
231 IN PRTMP_ADAPTER pAd);
233 VOID APUpdateAllBeaconFrame(
234 IN PRTMP_ADAPTER pAd);
239 VOID APSyncStateMachineInit(
240 IN PRTMP_ADAPTER pAd,
241 IN STATE_MACHINE *Sm,
242 OUT STATE_MACHINE_FUNC Trans[]);
245 IN PVOID SystemSpecific1,
246 IN PVOID FunctionContext,
247 IN PVOID SystemSpecific2,
248 IN PVOID SystemSpecific3);
250 VOID APInvalidStateWhenScan(
251 IN PRTMP_ADAPTER pAd,
252 IN MLME_QUEUE_ELEM *Elem);
254 VOID APScanTimeoutAction(
255 IN PRTMP_ADAPTER pAd,
256 IN MLME_QUEUE_ELEM *Elem);
258 VOID APPeerProbeReqAction(
259 IN PRTMP_ADAPTER pAd,
260 IN MLME_QUEUE_ELEM *Elem);
262 VOID APPeerBeaconAction(
263 IN PRTMP_ADAPTER pAd,
264 IN MLME_QUEUE_ELEM *Elem);
266 VOID APMlmeScanReqAction(
267 IN PRTMP_ADAPTER pAd,
268 IN MLME_QUEUE_ELEM *Elem);
270 VOID APPeerBeaconAtScanAction(
271 IN PRTMP_ADAPTER pAd,
272 IN MLME_QUEUE_ELEM *Elem);
274 VOID APScanCnclAction(
275 IN PRTMP_ADAPTER pAd,
276 IN MLME_QUEUE_ELEM *Elem);
279 IN PRTMP_ADAPTER pAd);
288 OUT PUCHAR pMaxSupportRate);
291 BOOLEAN ApScanRunning(
292 IN PRTMP_ADAPTER pAd);
296 VOID APWpaStateMachineInit(
297 IN PRTMP_ADAPTER pAd,
298 IN STATE_MACHINE *Sm,
299 OUT STATE_MACHINE_FUNC Trans[]);
303 VOID APMlmePeriodicExec(
304 IN PRTMP_ADAPTER pAd);
306 VOID APMlmeSelectTxRateTable(
307 IN PRTMP_ADAPTER pAd,
308 IN PMAC_TABLE_ENTRY pEntry,
310 IN PUCHAR pTableSize,
311 IN PUCHAR pInitTxRateIdx);
313 VOID APMlmeSetTxRate(
314 IN PRTMP_ADAPTER pAd,
315 IN PMAC_TABLE_ENTRY pEntry,
316 IN PRTMP_TX_RATE_SWITCH pTxRate);
318 VOID APMlmeDynamicTxRateSwitching(
319 IN PRTMP_ADAPTER pAd);
321 VOID APQuickResponeForRateUpExec(
322 IN PVOID SystemSpecific1,
323 IN PVOID FunctionContext,
324 IN PVOID SystemSpecific2,
325 IN PVOID SystemSpecific3);
327 BOOLEAN APMsgTypeSubst(
328 IN PRTMP_ADAPTER pAd,
329 IN PFRAME_802_11 pFrame,
333 VOID APQuickResponeForRateUpExec(
334 IN PVOID SystemSpecific1,
335 IN PVOID FunctionContext,
336 IN PVOID SystemSpecific2,
337 IN PVOID SystemSpecific3);
340 VOID BeaconUpdateExec(
341 IN PVOID SystemSpecific1,
342 IN PVOID FunctionContext,
343 IN PVOID SystemSpecific2,
344 IN PVOID SystemSpecific3);
347 VOID RTMPSetPiggyBack(
348 IN PRTMP_ADAPTER pAd,
349 IN BOOLEAN bPiggyBack);
351 VOID APAsicEvaluateRxAnt(
352 IN PRTMP_ADAPTER pAd);
354 VOID APAsicRxAntEvalTimeout(
355 IN PRTMP_ADAPTER pAd);
359 VOID APSwitchChannel(
360 IN PRTMP_ADAPTER pAd,
363 NDIS_STATUS APInitialize(
364 IN PRTMP_ADAPTER pAd);
367 IN PRTMP_ADAPTER pAd);
370 IN PRTMP_ADAPTER pAd);
373 IN PRTMP_ADAPTER pAd);
375 VOID APCleanupPsQueue(
376 IN PRTMP_ADAPTER pAd,
377 IN PQUEUE_HEADER pQueue);
380 IN PRTMP_ADAPTER pAd);
382 MAC_TABLE_ENTRY *MacTableInsertEntry(
383 IN PRTMP_ADAPTER pAd,
386 IN BOOLEAN CleanAll);
388 BOOLEAN MacTableDeleteEntry(
389 IN PRTMP_ADAPTER pAd,
393 MAC_TABLE_ENTRY *MacTableLookup(
394 IN PRTMP_ADAPTER pAd,
397 VOID MacTableMaintenance(
398 IN PRTMP_ADAPTER pAd);
400 UINT32 MacTableAssocStaNumGet(
401 IN PRTMP_ADAPTER pAd);
403 MAC_TABLE_ENTRY *APSsPsInquiry(
404 IN PRTMP_ADAPTER pAd,
411 BOOLEAN APPsIndicate(
412 IN PRTMP_ADAPTER pAd,
418 IN PRTMP_ADAPTER pAd,
422 #ifdef DOT11_N_SUPPORT
423 VOID APUpdateOperationMode(
424 IN PRTMP_ADAPTER pAd);
425 #endif // DOT11_N_SUPPORT //
427 VOID APUpdateCapabilityAndErpIe(
428 IN PRTMP_ADAPTER pAd);
430 BOOLEAN ApCheckAccessControlList(
431 IN PRTMP_ADAPTER pAd,
435 VOID ApUpdateAccessControlList(
436 IN PRTMP_ADAPTER pAd,
439 VOID ApEnqueueNullFrame(
440 IN PRTMP_ADAPTER pAd,
450 IN PRTMP_ADAPTER pAd,
456 VOID ApEnqueueAckFrame(
457 IN PRTMP_ADAPTER pAd,
462 UCHAR APAutoSelectChannel(
463 IN PRTMP_ADAPTER pAd,
469 BOOLEAN PeerAssocReqCmmSanity(
470 IN PRTMP_ADAPTER pAd,
475 OUT USHORT *pCapabilityInfo,
476 OUT USHORT *pListenInterval,
480 OUT UCHAR *pRatesLen,
484 OUT BOOLEAN *pbWmmCapable,
485 OUT ULONG *pRalinkIe,
486 OUT UCHAR *pHtCapabilityLen,
487 OUT HT_CAPABILITY_IE *pHtCapability);
490 BOOLEAN PeerDisassocReqSanity(
491 IN PRTMP_ADAPTER pAd,
497 BOOLEAN PeerDeauthReqSanity(
498 IN PRTMP_ADAPTER pAd,
504 BOOLEAN APPeerAuthSanity(
505 IN PRTMP_ADAPTER pAd,
515 BOOLEAN APPeerProbeReqSanity(
516 IN PRTMP_ADAPTER pAd,
523 BOOLEAN APPeerBeaconAndProbeRspSanity(
524 IN PRTMP_ADAPTER pAd,
532 OUT USHORT *BeaconPeriod,
534 OUT LARGE_INTEGER *Timestamp,
535 OUT USHORT *CapabilityInfo,
538 OUT BOOLEAN *ExtendedRateIeExist,
542 // ================== end of AP RTMP.h ========================