| /* |
| ************************************************************************* |
| * Ralink Tech Inc. |
| * 5F., No.36, Taiyuan St., Jhubei City, |
| * Hsinchu County 302, |
| * Taiwan, R.O.C. |
| * |
| * (c) Copyright 2002-2007, Ralink Technology, Inc. |
| * |
| * This program is free software; you can redistribute it and/or modify * |
| * it under the terms of the GNU General Public License as published by * |
| * the Free Software Foundation; either version 2 of the License, or * |
| * (at your option) any later version. * |
| * * |
| * This program is distributed in the hope that it will be useful, * |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
| * GNU General Public License for more details. * |
| * * |
| * You should have received a copy of the GNU General Public License * |
| * along with this program; if not, write to the * |
| * Free Software Foundation, Inc., * |
| * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
| * * |
| ************************************************************************* |
| |
| Module Name: |
| ap.h |
| |
| Abstract: |
| Miniport generic portion header file |
| |
| Revision History: |
| Who When What |
| -------- ---------- ---------------------------------------------- |
| Paul Lin 08-01-2002 created |
| James Tan 09-06-2002 modified (Revise NTCRegTable) |
| John Chang 12-22-2004 modified for RT2561/2661. merge with STA driver |
| */ |
| #ifndef __AP_H__ |
| #define __AP_H__ |
| |
| |
| |
| // ========================= AP RTMP.h ================================ |
| |
| |
| |
| // ============================================================= |
| // Function Prototypes |
| // ============================================================= |
| |
| // ap_data.c |
| |
| BOOLEAN APBridgeToWirelessSta( |
| IN PRTMP_ADAPTER pAd, |
| IN PUCHAR pHeader, |
| IN UINT HdrLen, |
| IN PUCHAR pData, |
| IN UINT DataLen, |
| IN ULONG fromwdsidx); |
| |
| BOOLEAN APHandleRxDoneInterrupt( |
| IN PRTMP_ADAPTER pAd); |
| |
| VOID APSendPackets( |
| IN NDIS_HANDLE MiniportAdapterContext, |
| IN PPNDIS_PACKET ppPacketArray, |
| IN UINT NumberOfPackets); |
| |
| NDIS_STATUS APSendPacket( |
| IN PRTMP_ADAPTER pAd, |
| IN PNDIS_PACKET pPacket); |
| |
| |
| NDIS_STATUS APHardTransmit( |
| IN PRTMP_ADAPTER pAd, |
| IN TX_BLK *pTxBlk, |
| IN UCHAR QueIdx); |
| |
| VOID APRxEAPOLFrameIndicate( |
| IN PRTMP_ADAPTER pAd, |
| IN MAC_TABLE_ENTRY *pEntry, |
| IN RX_BLK *pRxBlk, |
| IN UCHAR FromWhichBSSID); |
| |
| NDIS_STATUS APCheckRxError( |
| IN PRTMP_ADAPTER pAd, |
| IN PRT28XX_RXD_STRUC pRxD, |
| IN UCHAR Wcid); |
| |
| BOOLEAN APCheckClass2Class3Error( |
| IN PRTMP_ADAPTER pAd, |
| IN ULONG Wcid, |
| IN PHEADER_802_11 pHeader); |
| |
| VOID APHandleRxPsPoll( |
| IN PRTMP_ADAPTER pAd, |
| IN PUCHAR pAddr, |
| IN USHORT Aid, |
| IN BOOLEAN isActive); |
| |
| VOID RTMPDescriptorEndianChange( |
| IN PUCHAR pData, |
| IN ULONG DescriptorType); |
| |
| VOID RTMPFrameEndianChange( |
| IN PRTMP_ADAPTER pAd, |
| IN PUCHAR pData, |
| IN ULONG Dir, |
| IN BOOLEAN FromRxDoneInt); |
| |
| // ap_assoc.c |
| |
| VOID APAssocStateMachineInit( |
| IN PRTMP_ADAPTER pAd, |
| IN STATE_MACHINE *S, |
| OUT STATE_MACHINE_FUNC Trans[]); |
| |
| VOID APPeerAssocReqAction( |
| IN PRTMP_ADAPTER pAd, |
| IN MLME_QUEUE_ELEM *Elem); |
| |
| VOID APPeerReassocReqAction( |
| IN PRTMP_ADAPTER pAd, |
| IN MLME_QUEUE_ELEM *Elem); |
| |
| VOID APPeerDisassocReqAction( |
| IN PRTMP_ADAPTER pAd, |
| IN MLME_QUEUE_ELEM *Elem); |
| |
| VOID MbssKickOutStas( |
| IN PRTMP_ADAPTER pAd, |
| IN INT apidx, |
| IN USHORT Reason); |
| |
| VOID APMlmeKickOutSta( |
| IN PRTMP_ADAPTER pAd, |
| IN PUCHAR pStaAddr, |
| IN UCHAR Wcid, |
| IN USHORT Reason); |
| |
| VOID APMlmeDisassocReqAction( |
| IN PRTMP_ADAPTER pAd, |
| IN MLME_QUEUE_ELEM *Elem); |
| |
| VOID APCls3errAction( |
| IN PRTMP_ADAPTER pAd, |
| IN ULONG Wcid, |
| IN PHEADER_802_11 pHeader); |
| |
| |
| USHORT APBuildAssociation( |
| IN PRTMP_ADAPTER pAd, |
| IN MAC_TABLE_ENTRY *pEntry, |
| IN USHORT CapabilityInfo, |
| IN UCHAR MaxSupportedRateIn500Kbps, |
| IN UCHAR *RSN, |
| IN UCHAR *pRSNLen, |
| IN BOOLEAN bWmmCapable, |
| IN ULONG RalinkIe, |
| #ifdef DOT11N_DRAFT3 |
| IN EXT_CAP_INFO_ELEMENT ExtCapInfo, |
| #endif // DOT11N_DRAFT3 // |
| IN HT_CAPABILITY_IE *pHtCapability, |
| IN UCHAR HtCapabilityLen, |
| OUT USHORT *pAid); |
| |
| // ap_auth.c |
| |
| void APAuthStateMachineInit( |
| IN PRTMP_ADAPTER pAd, |
| IN STATE_MACHINE *Sm, |
| OUT STATE_MACHINE_FUNC Trans[]); |
| |
| VOID APMlmeDeauthReqAction( |
| IN PRTMP_ADAPTER pAd, |
| IN MLME_QUEUE_ELEM *Elem); |
| |
| VOID APCls2errAction( |
| IN PRTMP_ADAPTER pAd, |
| IN ULONG Wcid, |
| IN PHEADER_802_11 pHeader); |
| |
| // ap_authrsp.c |
| |
| VOID APAuthRspStateMachineInit( |
| IN PRTMP_ADAPTER pAd, |
| IN PSTATE_MACHINE Sm, |
| IN STATE_MACHINE_FUNC Trans[]); |
| |
| VOID APPeerAuthAtAuthRspIdleAction( |
| IN PRTMP_ADAPTER pAd, |
| IN MLME_QUEUE_ELEM *Elem); |
| |
| VOID APPeerDeauthReqAction( |
| IN PRTMP_ADAPTER pAd, |
| IN MLME_QUEUE_ELEM *Elem); |
| |
| VOID APPeerAuthSimpleRspGenAndSend( |
| IN PRTMP_ADAPTER pAd, |
| IN PHEADER_802_11 pHdr80211, |
| IN USHORT Alg, |
| IN USHORT Seq, |
| IN USHORT StatusCode); |
| |
| // ap_connect.c |
| |
| BOOLEAN BeaconTransmitRequired( |
| IN PRTMP_ADAPTER pAd, |
| IN INT apidx); |
| |
| VOID APMakeBssBeacon( |
| IN PRTMP_ADAPTER pAd, |
| IN INT apidx); |
| |
| VOID APUpdateBeaconFrame( |
| IN PRTMP_ADAPTER pAd, |
| IN INT apidx); |
| |
| VOID APMakeAllBssBeacon( |
| IN PRTMP_ADAPTER pAd); |
| |
| VOID APUpdateAllBeaconFrame( |
| IN PRTMP_ADAPTER pAd); |
| |
| |
| // ap_sync.c |
| |
| VOID APSyncStateMachineInit( |
| IN PRTMP_ADAPTER pAd, |
| IN STATE_MACHINE *Sm, |
| OUT STATE_MACHINE_FUNC Trans[]); |
| |
| VOID APScanTimeout( |
| IN PVOID SystemSpecific1, |
| IN PVOID FunctionContext, |
| IN PVOID SystemSpecific2, |
| IN PVOID SystemSpecific3); |
| |
| VOID APInvalidStateWhenScan( |
| IN PRTMP_ADAPTER pAd, |
| IN MLME_QUEUE_ELEM *Elem); |
| |
| VOID APScanTimeoutAction( |
| IN PRTMP_ADAPTER pAd, |
| IN MLME_QUEUE_ELEM *Elem); |
| |
| VOID APPeerProbeReqAction( |
| IN PRTMP_ADAPTER pAd, |
| IN MLME_QUEUE_ELEM *Elem); |
| |
| VOID APPeerBeaconAction( |
| IN PRTMP_ADAPTER pAd, |
| IN MLME_QUEUE_ELEM *Elem); |
| |
| VOID APMlmeScanReqAction( |
| IN PRTMP_ADAPTER pAd, |
| IN MLME_QUEUE_ELEM *Elem); |
| |
| VOID APPeerBeaconAtScanAction( |
| IN PRTMP_ADAPTER pAd, |
| IN MLME_QUEUE_ELEM *Elem); |
| |
| VOID APScanCnclAction( |
| IN PRTMP_ADAPTER pAd, |
| IN MLME_QUEUE_ELEM *Elem); |
| |
| VOID ApSiteSurvey( |
| IN PRTMP_ADAPTER pAd); |
| |
| VOID SupportRate( |
| IN PUCHAR SupRate, |
| IN UCHAR SupRateLen, |
| IN PUCHAR ExtRate, |
| IN UCHAR ExtRateLen, |
| OUT PUCHAR *Rates, |
| OUT PUCHAR RatesLen, |
| OUT PUCHAR pMaxSupportRate); |
| |
| |
| BOOLEAN ApScanRunning( |
| IN PRTMP_ADAPTER pAd); |
| |
| #ifdef DOT11N_DRAFT3 |
| VOID APOverlappingBSSScan( |
| IN RTMP_ADAPTER *pAd); |
| #endif // DOT11N_DRAFT3 // |
| |
| // ap_wpa.c |
| |
| VOID APWpaStateMachineInit( |
| IN PRTMP_ADAPTER pAd, |
| IN STATE_MACHINE *Sm, |
| OUT STATE_MACHINE_FUNC Trans[]); |
| |
| // ap_mlme.c |
| |
| VOID APMlmePeriodicExec( |
| IN PRTMP_ADAPTER pAd); |
| |
| VOID APMlmeSelectTxRateTable( |
| IN PRTMP_ADAPTER pAd, |
| IN PMAC_TABLE_ENTRY pEntry, |
| IN PUCHAR *ppTable, |
| IN PUCHAR pTableSize, |
| IN PUCHAR pInitTxRateIdx); |
| |
| VOID APMlmeSetTxRate( |
| IN PRTMP_ADAPTER pAd, |
| IN PMAC_TABLE_ENTRY pEntry, |
| IN PRTMP_TX_RATE_SWITCH pTxRate); |
| |
| VOID APMlmeDynamicTxRateSwitching( |
| IN PRTMP_ADAPTER pAd); |
| |
| VOID APQuickResponeForRateUpExec( |
| IN PVOID SystemSpecific1, |
| IN PVOID FunctionContext, |
| IN PVOID SystemSpecific2, |
| IN PVOID SystemSpecific3); |
| |
| BOOLEAN APMsgTypeSubst( |
| IN PRTMP_ADAPTER pAd, |
| IN PFRAME_802_11 pFrame, |
| OUT INT *Machine, |
| OUT INT *MsgType); |
| |
| VOID APQuickResponeForRateUpExec( |
| IN PVOID SystemSpecific1, |
| IN PVOID FunctionContext, |
| IN PVOID SystemSpecific2, |
| IN PVOID SystemSpecific3); |
| |
| |
| VOID RTMPSetPiggyBack( |
| IN PRTMP_ADAPTER pAd, |
| IN BOOLEAN bPiggyBack); |
| |
| VOID APAsicEvaluateRxAnt( |
| IN PRTMP_ADAPTER pAd); |
| |
| VOID APAsicRxAntEvalTimeout( |
| IN PRTMP_ADAPTER pAd); |
| |
| // ap.c |
| |
| VOID APSwitchChannel( |
| IN PRTMP_ADAPTER pAd, |
| IN INT Channel); |
| |
| NDIS_STATUS APInitialize( |
| IN PRTMP_ADAPTER pAd); |
| |
| VOID APShutdown( |
| IN PRTMP_ADAPTER pAd); |
| |
| VOID APStartUp( |
| IN PRTMP_ADAPTER pAd); |
| |
| VOID APStop( |
| IN PRTMP_ADAPTER pAd); |
| |
| VOID APCleanupPsQueue( |
| IN PRTMP_ADAPTER pAd, |
| IN PQUEUE_HEADER pQueue); |
| |
| VOID MacTableReset( |
| IN PRTMP_ADAPTER pAd); |
| |
| MAC_TABLE_ENTRY *MacTableInsertEntry( |
| IN PRTMP_ADAPTER pAd, |
| IN PUCHAR pAddr, |
| IN UCHAR apidx, |
| IN BOOLEAN CleanAll); |
| |
| BOOLEAN MacTableDeleteEntry( |
| IN PRTMP_ADAPTER pAd, |
| IN USHORT wcid, |
| IN PUCHAR pAddr); |
| |
| MAC_TABLE_ENTRY *MacTableLookup( |
| IN PRTMP_ADAPTER pAd, |
| IN PUCHAR pAddr); |
| |
| VOID MacTableMaintenance( |
| IN PRTMP_ADAPTER pAd); |
| |
| UINT32 MacTableAssocStaNumGet( |
| IN PRTMP_ADAPTER pAd); |
| |
| MAC_TABLE_ENTRY *APSsPsInquiry( |
| IN PRTMP_ADAPTER pAd, |
| IN PUCHAR pAddr, |
| OUT SST *Sst, |
| OUT USHORT *Aid, |
| OUT UCHAR *PsMode, |
| OUT UCHAR *Rate); |
| |
| BOOLEAN APPsIndicate( |
| IN PRTMP_ADAPTER pAd, |
| IN PUCHAR pAddr, |
| IN ULONG Wcid, |
| IN UCHAR Psm); |
| |
| VOID ApLogEvent( |
| IN PRTMP_ADAPTER pAd, |
| IN PUCHAR pAddr, |
| IN USHORT Event); |
| |
| #ifdef DOT11_N_SUPPORT |
| VOID APUpdateOperationMode( |
| IN PRTMP_ADAPTER pAd); |
| #endif // DOT11_N_SUPPORT // |
| |
| VOID APUpdateCapabilityAndErpIe( |
| IN PRTMP_ADAPTER pAd); |
| |
| BOOLEAN ApCheckAccessControlList( |
| IN PRTMP_ADAPTER pAd, |
| IN PUCHAR pAddr, |
| IN UCHAR Apidx); |
| |
| VOID ApUpdateAccessControlList( |
| IN PRTMP_ADAPTER pAd, |
| IN UCHAR Apidx); |
| |
| VOID ApEnqueueNullFrame( |
| IN PRTMP_ADAPTER pAd, |
| IN PUCHAR pAddr, |
| IN UCHAR TxRate, |
| IN UCHAR PID, |
| IN UCHAR apidx, |
| IN BOOLEAN bQosNull, |
| IN BOOLEAN bEOSP, |
| IN UCHAR OldUP); |
| |
| VOID ApSendFrame( |
| IN PRTMP_ADAPTER pAd, |
| IN PVOID pBuffer, |
| IN ULONG Length, |
| IN UCHAR TxRate, |
| IN UCHAR PID); |
| |
| VOID ApEnqueueAckFrame( |
| IN PRTMP_ADAPTER pAd, |
| IN PUCHAR pAddr, |
| IN UCHAR TxRate, |
| IN UCHAR apidx); |
| |
| UCHAR APAutoSelectChannel( |
| IN PRTMP_ADAPTER pAd, |
| IN BOOLEAN Optimal); |
| |
| // ap_sanity.c |
| |
| |
| BOOLEAN PeerAssocReqCmmSanity( |
| IN PRTMP_ADAPTER pAd, |
| IN BOOLEAN isRessoc, |
| IN VOID *Msg, |
| IN ULONG MsgLen, |
| OUT PUCHAR pAddr2, |
| OUT USHORT *pCapabilityInfo, |
| OUT USHORT *pListenInterval, |
| OUT PUCHAR pApAddr, |
| OUT UCHAR *pSsidLen, |
| OUT char *Ssid, |
| OUT UCHAR *pRatesLen, |
| OUT UCHAR Rates[], |
| OUT UCHAR *RSN, |
| OUT UCHAR *pRSNLen, |
| OUT BOOLEAN *pbWmmCapable, |
| OUT ULONG *pRalinkIe, |
| #ifdef DOT11N_DRAFT3 |
| OUT EXT_CAP_INFO_ELEMENT *pExtCapInfo, |
| #endif // DOT11N_DRAFT3 // |
| OUT UCHAR *pHtCapabilityLen, |
| OUT HT_CAPABILITY_IE *pHtCapability); |
| |
| BOOLEAN PeerDisassocReqSanity( |
| IN PRTMP_ADAPTER pAd, |
| IN VOID *Msg, |
| IN ULONG MsgLen, |
| OUT PUCHAR pAddr2, |
| OUT USHORT *Reason); |
| |
| BOOLEAN PeerDeauthReqSanity( |
| IN PRTMP_ADAPTER pAd, |
| IN VOID *Msg, |
| IN ULONG MsgLen, |
| OUT PUCHAR pAddr2, |
| OUT USHORT *Reason); |
| |
| BOOLEAN APPeerAuthSanity( |
| IN PRTMP_ADAPTER pAd, |
| IN VOID *Msg, |
| IN ULONG MsgLen, |
| OUT PUCHAR pAddr1, |
| OUT PUCHAR pAddr2, |
| OUT USHORT *Alg, |
| OUT USHORT *Seq, |
| OUT USHORT *Status, |
| CHAR *ChlgText); |
| |
| BOOLEAN APPeerProbeReqSanity( |
| IN PRTMP_ADAPTER pAd, |
| IN VOID *Msg, |
| IN ULONG MsgLen, |
| OUT PUCHAR pAddr2, |
| OUT CHAR Ssid[], |
| OUT UCHAR *SsidLen); |
| |
| BOOLEAN APPeerBeaconAndProbeRspSanity( |
| IN PRTMP_ADAPTER pAd, |
| IN VOID *Msg, |
| IN ULONG MsgLen, |
| OUT PUCHAR pAddr2, |
| OUT PUCHAR pBssid, |
| OUT CHAR Ssid[], |
| OUT UCHAR *SsidLen, |
| OUT UCHAR *BssType, |
| OUT USHORT *BeaconPeriod, |
| OUT UCHAR *Channel, |
| OUT LARGE_INTEGER *Timestamp, |
| OUT USHORT *CapabilityInfo, |
| OUT UCHAR Rate[], |
| OUT UCHAR *RateLen, |
| OUT BOOLEAN *ExtendedRateIeExist, |
| OUT UCHAR *Erp); |
| |
| // ap_info.c |
| |
| #ifdef WIN_NDIS |
| NDIS_STATUS APQueryInformation( |
| IN NDIS_HANDLE MiniportAdapterContext, |
| IN NDIS_OID Oid, |
| IN PVOID pInformationBuffer, |
| IN ULONG InformationBufferLength, |
| OUT PULONG pBytesWritten, |
| OUT PULONG pBytesNeeded); |
| |
| NDIS_STATUS APSetInformation( |
| IN NDIS_HANDLE MiniportAdapterContext, |
| IN NDIS_OID Oid, |
| IN PVOID pInformationBuffer, |
| IN ULONG InformationBufferLength, |
| OUT PULONG pBytesRead, |
| OUT PULONG pBytesNeeded); |
| #endif |
| |
| |
| // ================== end of AP RTMP.h ======================== |
| |
| |
| #endif // __AP_H__ |
| |