/* ************************************************************************* * 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_apcli.h Abstract: Miniport generic portion header file 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) #define APCLI_IF_UP_CHECK(pAd, ifidx) ((pAd)->ApCfg.ApCliTab[(ifidx)].dev->flags & IFF_UP) /* 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_EX *Sm, OUT STATE_MACHINE_FUNC_EX Trans[]); // // Private routines in apcli_sync.c // VOID ApCliSyncStateMachineInit( IN PRTMP_ADAPTER pAd, IN STATE_MACHINE_EX *Sm, OUT STATE_MACHINE_FUNC_EX Trans[]); // // Private routines in apcli_auth.c // VOID ApCliAuthStateMachineInit( IN PRTMP_ADAPTER pAd, IN STATE_MACHINE_EX *Sm, OUT STATE_MACHINE_FUNC_EX Trans[]); // // Private routines in apcli_assoc.c // VOID ApCliAssocStateMachineInit( IN PRTMP_ADAPTER pAd, IN STATE_MACHINE_EX *Sm, OUT STATE_MACHINE_FUNC_EX 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 RT28xx_ApCli_Init( IN PRTMP_ADAPTER pAd, IN PNET_DEV pPhyNetDev); VOID RT28xx_ApCli_Close( IN PRTMP_ADAPTER pAd); VOID RT28xx_ApCli_Remove( IN PRTMP_ADAPTER pAd); VOID RT28xx_ApCli_Remove( IN PRTMP_ADAPTER ad_p); INT ApCliIfLookUp( IN PRTMP_ADAPTER pAd, IN PUCHAR pAddr); INT ApCli_VirtualIF_Open( IN PNET_DEV dev_p); INT ApCli_VirtualIF_Close( IN PNET_DEV dev_p); 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 struct ifreq *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 APCliUpdatePairwiseKeyTable( IN PRTMP_ADAPTER pAd, IN UCHAR *KeyRsc, IN MAC_TABLE_ENTRY *pEntry); BOOLEAN APCliUpdateSharedKeyTable( IN PRTMP_ADAPTER pAd, IN PUCHAR pKey, IN UCHAR KeyLen, IN UCHAR DefaultKeyIdx, IN MAC_TABLE_ENTRY *pEntry); #endif // APCLI_SUPPORT // #endif /* _AP_APCLI_H_ */