mirror of
https://github.com/YikeStone/MT7601u.git
synced 2025-08-03 11:24:09 +05:30
455 lines
9.9 KiB
C
455 lines
9.9 KiB
C
/*
|
|
***************************************************************************
|
|
* Ralink Tech Inc.
|
|
* 4F, No. 2 Technology 5th Rd.
|
|
* Science-based Industrial Park
|
|
* Hsin-chu, Taiwan, R.O.C.
|
|
*
|
|
* (c) Copyright 2002, Ralink Technology, Inc.
|
|
*
|
|
* All rights reserved. Ralink's source code is an unpublished work and the
|
|
* use of a copyright notice does not imply otherwise. This source code
|
|
* contains confidential trade secret material of Ralink Tech. Any attemp
|
|
* or participation in deciphering, decoding, reverse engineering or in any
|
|
* way altering the source code is stricitly prohibited, unless the prior
|
|
* written consent of Ralink Technology, Inc. is obtained.
|
|
***************************************************************************
|
|
|
|
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__
|
|
|
|
|
|
|
|
|
|
/* ============================================================= */
|
|
/* Common definition */
|
|
/* ============================================================= */
|
|
#define MBSS_VLAN_INFO_GET( \
|
|
__pAd, __VLAN_VID, __VLAN_Priority, __FromWhichBSSID) \
|
|
{ \
|
|
if ((__FromWhichBSSID < __pAd->ApCfg.BssidNum) && \
|
|
(__FromWhichBSSID < HW_BEACON_MAX_NUM) && \
|
|
(__pAd->ApCfg.MBSSID[__FromWhichBSSID].VLAN_VID != 0)) \
|
|
{ \
|
|
__VLAN_VID = __pAd->ApCfg.MBSSID[__FromWhichBSSID].VLAN_VID; \
|
|
__VLAN_Priority = __pAd->ApCfg.MBSSID[__FromWhichBSSID].VLAN_Priority; \
|
|
} \
|
|
}
|
|
|
|
/* ============================================================= */
|
|
/* 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);
|
|
|
|
VOID RTMP_BASetup(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PMAC_TABLE_ENTRY pMacEntry,
|
|
IN UINT8 UserPriority);
|
|
|
|
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 APInsertPsQueue(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PNDIS_PACKET pPacket,
|
|
IN MAC_TABLE_ENTRY *pMacEntry,
|
|
IN UCHAR QueIdx);
|
|
|
|
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 RTMP_ADAPTER *pAd,
|
|
IN RXINFO_STRUC *pRxInfo,
|
|
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 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 APCls3errAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN ULONG Wcid,
|
|
IN PHEADER_802_11 pHeader);
|
|
|
|
/*
|
|
VOID RTMPAddClientSec(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN UCHAR BssIdx,
|
|
IN UCHAR KeyIdx,
|
|
IN UCHAR CipherAlg,
|
|
IN PUCHAR pKey,
|
|
IN PUCHAR pTxMic,
|
|
IN PUCHAR pRxMic,
|
|
IN MAC_TABLE_ENTRY *pEntry);
|
|
*/
|
|
|
|
/* ap_auth.c */
|
|
|
|
void APAuthStateMachineInit(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN STATE_MACHINE *Sm,
|
|
OUT STATE_MACHINE_FUNC Trans[]);
|
|
|
|
VOID APCls2errAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN ULONG Wcid,
|
|
IN PHEADER_802_11 pHeader);
|
|
|
|
/* ap_connect.c */
|
|
|
|
#ifdef CONFIG_AP_SUPPORT
|
|
BOOLEAN BeaconTransmitRequired(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN INT apidx,
|
|
IN MULTISSID_STRUCT *pMbss);
|
|
#endif /* CONFIG_AP_SUPPORT */
|
|
|
|
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,
|
|
IN PNDIS_802_11_SSID pSsid,
|
|
IN UCHAR ScanType,
|
|
IN BOOLEAN ChannelSel);
|
|
|
|
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);
|
|
|
|
INT GetBssCoexEffectedChRange(
|
|
IN RTMP_ADAPTER *pAd,
|
|
IN BSS_COEX_CH_RANGE *pCoexChRange);
|
|
|
|
#endif /* DOT11N_DRAFT3 */
|
|
|
|
/* ap_wpa.c */
|
|
VOID WpaStateMachineInit(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN STATE_MACHINE *Sm,
|
|
OUT STATE_MACHINE_FUNC Trans[]);
|
|
|
|
/* ap_mlme.c */
|
|
VOID APMlmePeriodicExec(
|
|
IN PRTMP_ADAPTER pAd);
|
|
|
|
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);
|
|
|
|
#ifdef RTMP_MAC_USB
|
|
VOID BeaconUpdateExec(
|
|
IN PVOID SystemSpecific1,
|
|
IN PVOID FunctionContext,
|
|
IN PVOID SystemSpecific2,
|
|
IN PVOID SystemSpecific3);
|
|
#endif /* RTMP_MAC_USB */
|
|
|
|
VOID RTMPSetPiggyBack(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN BOOLEAN bPiggyBack);
|
|
|
|
VOID APAsicEvaluateRxAnt(
|
|
IN PRTMP_ADAPTER pAd);
|
|
|
|
VOID APAsicRxAntEvalTimeout(
|
|
IN PRTMP_ADAPTER pAd);
|
|
|
|
/* ap.c */
|
|
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 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);
|
|
|
|
#ifdef SYSTEM_LOG_SUPPORT
|
|
VOID ApLogEvent(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PUCHAR pAddr,
|
|
IN USHORT Event);
|
|
#else
|
|
#define ApLogEvent(_pAd, _pAddr, _Event)
|
|
#endif /* SYSTEM_LOG_SUPPORT */
|
|
|
|
#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);
|
|
|
|
/* ap_sanity.c */
|
|
|
|
|
|
BOOLEAN PeerAssocReqCmmSanity(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN BOOLEAN isRessoc,
|
|
IN VOID *Msg,
|
|
IN INT MsgLen,
|
|
IN IE_LISTS *ie_lists);
|
|
|
|
|
|
BOOLEAN PeerDisassocReqSanity(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN VOID *Msg,
|
|
IN ULONG MsgLen,
|
|
OUT PUCHAR pAddr2,
|
|
OUT UINT16 *SeqNum,
|
|
OUT USHORT *Reason);
|
|
|
|
BOOLEAN PeerDeauthReqSanity(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN VOID *Msg,
|
|
IN ULONG MsgLen,
|
|
OUT PUCHAR pAddr2,
|
|
OUT UINT16 *SeqNum,
|
|
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,
|
|
OUT CHAR *ChlgText
|
|
);
|
|
|
|
|
|
#ifdef DOT1X_SUPPORT
|
|
/* ap_cfg.h */
|
|
INT Set_OwnIPAddr_Proc(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PSTRING arg);
|
|
|
|
INT Set_EAPIfName_Proc(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PSTRING arg);
|
|
|
|
INT Set_PreAuthIfName_Proc(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PSTRING arg);
|
|
|
|
/* Define in ap.c */
|
|
BOOLEAN DOT1X_InternalCmdAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN MAC_TABLE_ENTRY *pEntry,
|
|
IN UINT8 cmd);
|
|
|
|
BOOLEAN DOT1X_EapTriggerAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN MAC_TABLE_ENTRY *pEntry);
|
|
#endif /* DOT1X_SUPPORT */
|
|
#endif /* __AP_H__ */
|
|
|
|
VOID AP_E2PROM_IOCTL_PostCtrl(
|
|
IN RTMP_IOCTL_INPUT_STRUCT *wrq,
|
|
IN PSTRING msg);
|
|
|
|
VOID IAPP_L2_UpdatePostCtrl(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN UINT8 *mac_p,
|
|
IN INT bssid);
|