/* *************************************************************************** * 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_apcli.h Abstract: Support AP-Client function. Revision History: Who When What -------------- ---------- ---------------------------------------------- Shiang, Fonchi 02-13-2007 created */ #ifndef _AP_APCLI_H_ #define _AP_APCLI_H_ #ifdef APCLI_SUPPORT #include "rtmp.h" #define AUTH_TIMEOUT 300 /* unit: msec */ #define ASSOC_TIMEOUT 300 /* unit: msec */ /*#define JOIN_TIMEOUT 2000 // unit: msec // not used in Ap-client mode, remove it */ #define PROBE_TIMEOUT 1000 /* unit: msec */ #define APCLI_ROOT_BSSID_GET(pAd, wcid) ((pAd)->MacTab.Content[(wcid)].Addr) /* sanity check for apidx */ #define APCLI_MR_APIDX_SANITY_CHECK(idx) \ { \ if ((idx) >= MAX_APCLI_NUM) \ { \ (idx) = 0; \ DBGPRINT(RT_DEBUG_ERROR, ("%s> Error! apcli-idx > MAX_APCLI_NUM!\n", __FUNCTION__)); \ } \ } typedef struct _APCLI_MLME_JOIN_REQ_STRUCT { UCHAR Bssid[MAC_ADDR_LEN]; UCHAR SsidLen; UCHAR Ssid[MAX_LEN_OF_SSID]; } APCLI_MLME_JOIN_REQ_STRUCT; typedef struct _STA_CTRL_JOIN_REQ_STRUCT { USHORT Status; } APCLI_CTRL_MSG_STRUCT, *PSTA_CTRL_MSG_STRUCT; BOOLEAN isValidApCliIf( SHORT ifIndex); /* */ /* Private routines in apcli_ctrl.c */ /* */ VOID ApCliCtrlStateMachineInit( IN PRTMP_ADAPTER pAd, IN STATE_MACHINE *Sm, OUT STATE_MACHINE_FUNC Trans[]); /* */ /* Private routines in apcli_sync.c */ /* */ VOID ApCliSyncStateMachineInit( IN PRTMP_ADAPTER pAd, IN STATE_MACHINE *Sm, OUT STATE_MACHINE_FUNC Trans[]); /* */ /* Private routines in apcli_auth.c */ /* */ VOID ApCliAuthStateMachineInit( IN PRTMP_ADAPTER pAd, IN STATE_MACHINE *Sm, OUT STATE_MACHINE_FUNC Trans[]); /* */ /* Private routines in apcli_assoc.c */ /* */ VOID ApCliAssocStateMachineInit( IN PRTMP_ADAPTER pAd, IN STATE_MACHINE *Sm, OUT STATE_MACHINE_FUNC Trans[]); MAC_TABLE_ENTRY *ApCliTableLookUpByWcid( IN PRTMP_ADAPTER pAd, IN UCHAR wcid, IN PUCHAR pAddrs); BOOLEAN ApCliAllowToSendPacket( IN RTMP_ADAPTER *pAd, IN PNDIS_PACKET pPacket, OUT UCHAR *pWcid); BOOLEAN ApCliValidateRSNIE( IN PRTMP_ADAPTER pAd, IN PEID_STRUCT pEid_ptr, IN USHORT eid_len, IN USHORT idx); VOID ApCli_Remove( IN PRTMP_ADAPTER pAd); VOID RT28xx_ApCli_Close( IN PRTMP_ADAPTER pAd); INT ApCliIfLookUp( IN PRTMP_ADAPTER pAd, IN PUCHAR pAddr); INT ApCli_VirtualIF_PacketSend( IN PNDIS_PACKET skb_p, IN PNET_DEV dev_p); INT ApCli_VirtualIF_Ioctl( IN PNET_DEV dev_p, IN OUT VOID *rq_p, IN INT cmd); VOID ApCliMgtMacHeaderInit( IN PRTMP_ADAPTER pAd, IN OUT PHEADER_802_11 pHdr80211, IN UCHAR SubType, IN UCHAR ToDs, IN PUCHAR pDA, IN PUCHAR pBssid, IN USHORT ifIndex); #ifdef DOT11_N_SUPPORT BOOLEAN ApCliCheckHt( IN PRTMP_ADAPTER pAd, IN USHORT IfIndex, IN OUT HT_CAPABILITY_IE *pHtCapability, IN OUT ADD_HT_INFO_IE *pAddHtInfo); #endif /* DOT11_N_SUPPORT */ BOOLEAN ApCliLinkUp( IN PRTMP_ADAPTER pAd, IN UCHAR ifIndex); VOID ApCliLinkDown( IN PRTMP_ADAPTER pAd, IN UCHAR ifIndex); VOID ApCliIfUp( IN PRTMP_ADAPTER pAd); VOID ApCliIfDown( IN PRTMP_ADAPTER pAd); VOID ApCliIfMonitor( IN PRTMP_ADAPTER pAd); BOOLEAN ApCliMsgTypeSubst( IN PRTMP_ADAPTER pAd, IN PFRAME_802_11 pFrame, OUT INT *Machine, OUT INT *MsgType); BOOLEAN preCheckMsgTypeSubset( IN PRTMP_ADAPTER pAd, IN PFRAME_802_11 pFrame, OUT INT *Machine, OUT INT *MsgType); BOOLEAN ApCliPeerAssocRspSanity( IN PRTMP_ADAPTER pAd, IN VOID *pMsg, IN ULONG MsgLen, OUT PUCHAR pAddr2, OUT USHORT *pCapabilityInfo, OUT USHORT *pStatus, OUT USHORT *pAid, OUT UCHAR SupRate[], OUT UCHAR *pSupRateLen, OUT UCHAR ExtRate[], OUT UCHAR *pExtRateLen, OUT HT_CAPABILITY_IE *pHtCapability, OUT ADD_HT_INFO_IE *pAddHtInfo, /* AP might use this additional ht info IE */ OUT UCHAR *pHtCapabilityLen, OUT UCHAR *pAddHtInfoLen, OUT UCHAR *pNewExtChannelOffset, OUT PEDCA_PARM pEdcaParm, OUT UCHAR *pCkipFlag); VOID ApCliPeerPairMsg1Action( IN PRTMP_ADAPTER pAd, IN MAC_TABLE_ENTRY *pEntry, IN MLME_QUEUE_ELEM *Elem); VOID ApCliPeerPairMsg3Action( IN PRTMP_ADAPTER pAd, IN MAC_TABLE_ENTRY *pEntry, IN MLME_QUEUE_ELEM *Elem); VOID ApCliPeerGroupMsg1Action( IN PRTMP_ADAPTER pAd, IN MAC_TABLE_ENTRY *pEntry, IN MLME_QUEUE_ELEM *Elem); BOOLEAN ApCliCheckRSNIE( IN PRTMP_ADAPTER pAd, IN PUCHAR pData, IN UCHAR DataLen, IN MAC_TABLE_ENTRY *pEntry, OUT UCHAR *Offset); BOOLEAN ApCliParseKeyData( IN PRTMP_ADAPTER pAd, IN PUCHAR pKeyData, IN UCHAR KeyDataLen, IN MAC_TABLE_ENTRY *pEntry, IN UCHAR IfIdx, IN UCHAR bPairewise); BOOLEAN ApCliHandleRxBroadcastFrame( IN PRTMP_ADAPTER pAd, IN RX_BLK *pRxBlk, IN MAC_TABLE_ENTRY *pEntry, IN UCHAR FromWhichBSSID); VOID APCliInstallPairwiseKey( IN PRTMP_ADAPTER pAd, IN MAC_TABLE_ENTRY *pEntry); BOOLEAN APCliInstallSharedKey( IN PRTMP_ADAPTER pAd, IN PUCHAR pKey, IN UCHAR KeyLen, IN UCHAR DefaultKeyIdx, IN MAC_TABLE_ENTRY *pEntry); VOID ApCliUpdateMlmeRate( IN PRTMP_ADAPTER pAd); VOID APCli_Init( IN PRTMP_ADAPTER pAd, IN RTMP_OS_NETDEV_OP_HOOK *pNetDevOps); BOOLEAN ApCli_Open( IN PRTMP_ADAPTER pAd, IN PNET_DEV dev_p); BOOLEAN ApCli_Close( IN PRTMP_ADAPTER pAd, IN PNET_DEV dev_p); BOOLEAN ApCliWaitProbRsp( IN PRTMP_ADAPTER pAd, IN USHORT ifIndex); #endif /* APCLI_SUPPORT */ #endif /* _AP_APCLI_H_ */