mirror of
https://github.com/YikeStone/MT7601u.git
synced 2025-08-02 19:04:09 +05:30
280 lines
6.3 KiB
C
280 lines
6.3 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_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,
|
|
#ifdef P2P_SUPPORT
|
|
OUT ULONG *P2PSubelementLen,
|
|
OUT PUCHAR pP2pSubelement,
|
|
#endif /* P2P_SUPPORT */
|
|
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_ */
|
|
|