mirror of
https://github.com/YikeStone/MT7601u.git
synced 2025-08-02 19:04:09 +05:30
899 lines
18 KiB
C
899 lines
18 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:
|
|
tdls.h
|
|
|
|
Abstract:
|
|
|
|
Revision History:
|
|
Who When What
|
|
--------- ---------- ----------------------------------------------
|
|
Arvin Tai 17-04-2009 created for 802.11z
|
|
*/
|
|
|
|
#ifdef DOT11Z_TDLS_SUPPORT
|
|
|
|
#ifndef __TDLS_H
|
|
#define __TDLS_H
|
|
|
|
#include "dot11z_tdls.h"
|
|
//#include "dot11r_ft.h"
|
|
|
|
#define LENGTH_TDLS_H 24
|
|
#define LENGTH_TDLS_PAYLOAD_H 3 /* payload type(1 byte) + category(1 byte) + action(1 byte) */
|
|
#define TDLS_TIMEOUT 5000 // unit: msec
|
|
#define TDLS_DISCOVERY_TRY_COUNT 2
|
|
#define TDLS_AUTO_DISCOVERY_INTERVAL 600 /* unit: msec */
|
|
#define TDLS_RSSI_MEASUREMENT_PERIOD 10 /* unit: sec */
|
|
#define TDLS_AUTO_DISCOVERY_PERIOD 120 /* unit: sec */
|
|
#define TDLS_DISABLE_PERIOD_BY_TEARDOWN 120 /* unit: sec */
|
|
#define TDLS_AUTO_SETUP_RSSI_THRESHOLD -70 /* unit: dbm */
|
|
#define TDLS_AUTO_TEARDOWN_RSSI_THRESHOLD -75 /* unit: dbm */
|
|
|
|
#define TDLS_AUTO_DISCOVERY_TRY_COUNT 2
|
|
|
|
extern UCHAR CipherSuiteTDLSWpa2PskAes[];
|
|
extern UCHAR CipherSuiteTDLSLen;
|
|
|
|
#define IS_TDLS_SUPPORT(_P) \
|
|
((_P)->StaCfg.TdlsInfo.bTDLSCapable == TRUE)
|
|
|
|
// TDLS State
|
|
typedef enum _TDLS_STATE {
|
|
TDLS_MODE_NONE, /* Init state */
|
|
TDLS_MODE_WAIT_RESPONSE, /* Wait a response from the Responder */
|
|
TDLS_MODE_WAIT_CONFIRM, /* Wait an confirm from the Initiator */
|
|
TDLS_MODE_CONNECTED, /* Tunneled Direct Link estabilished */
|
|
/* TDLS_MODE_SWITCH_CHANNEL, */
|
|
/* TDLS_MODE_PSM, */
|
|
/* TDLS_MODE_UAPSD */
|
|
} TDLS_STATE;
|
|
|
|
// TDLS State
|
|
typedef enum _TDLS_CHANNEL_SWITCH_STATE {
|
|
TDLS_CHANNEL_SWITCH_NONE, // Init state
|
|
TDLS_CHANNEL_SWITCH_WAIT_RSP, // Wait a response from the Responder
|
|
TDLS_CHANNEL_SWITCH_DONE, // Channel Switch Finish
|
|
} TDLS_CHANNEL_SWITCH_STATE;
|
|
|
|
typedef struct _MLME_TDLS_REQ_STRUCT {
|
|
PRT_802_11_TDLS pTDLS;
|
|
USHORT Reason;
|
|
UCHAR Action;
|
|
BOOLEAN IsViaAP;
|
|
} MLME_TDLS_REQ_STRUCT, *PMLME_TDLS_REQ_STRUCT;
|
|
|
|
typedef struct _MLME_TDLS_DISCOVERY_STRUCT {
|
|
UCHAR BSSID[MAC_ADDR_LEN];
|
|
UCHAR InitiatorAddr[MAC_ADDR_LEN];
|
|
UCHAR ResponderAddr[MAC_ADDR_LEN];
|
|
UINT8 DialogToken;
|
|
} MLME_TDLS_DISCOVERY_STRUCT, *PMLME_TDLS_DISCOVERY_STRUCT;
|
|
|
|
typedef struct _MLME_TDLS_CH_SWITCH_STRUCT {
|
|
UCHAR PeerMacAddr[MAC_ADDR_LEN];
|
|
//UINT8 DialogToken;
|
|
UINT8 TargetChannel;
|
|
UINT8 TargetChannelBW;
|
|
} MLME_TDLS_CH_SWITCH_STRUCT, *PMLME_TDLS_CH_SWITCH_STRUCT;
|
|
|
|
#define TDLS_DISCOVERY_PEER_ENTRY_SIZE 32
|
|
typedef struct _TDLS_DISCOVERY_ENTRY {
|
|
struct _TDLS_DISCOVERY_ENTRY *pNext;
|
|
ULONG InitRefTime;
|
|
UCHAR Responder[MAC_ADDR_LEN];
|
|
UCHAR RetryCount;
|
|
UCHAR DialogToken;
|
|
TDLS_CTRL_STATE CurrentState;
|
|
CHAR AvgRssi0;
|
|
BOOLEAN bTDLSCapable;
|
|
BOOLEAN bConnected;
|
|
BOOLEAN bFirstTime;
|
|
BOOLEAN bConnectedFirstTime;
|
|
} TDLS_DISCOVERY_ENTRY, *PTDLS_DISCOVERY_ENTRY;
|
|
|
|
typedef struct _TDLS_BLACK_ENTRY {
|
|
struct _TDLS_BLACK_ENTRY *pNext;
|
|
ULONG InitRefTime;
|
|
UCHAR MacAddr[MAC_ADDR_LEN];
|
|
UCHAR CurrentState;
|
|
} TDLS_BLACK_ENTRY, *PTDLS_BLACK_ENTRY;
|
|
|
|
VOID
|
|
TDLS_Table_Init(
|
|
IN PRTMP_ADAPTER pAd);
|
|
|
|
VOID
|
|
TDLS_Table_Destory(
|
|
IN PRTMP_ADAPTER pAd);
|
|
|
|
VOID
|
|
TDLS_SearchTabMaintain(
|
|
IN PRTMP_ADAPTER pAd);
|
|
|
|
VOID
|
|
TDLS_StateMachineInit(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN STATE_MACHINE *Sm,
|
|
OUT STATE_MACHINE_FUNC Trans[]);
|
|
|
|
VOID
|
|
TDLS_CntlOidTDLSRequestProc(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN MLME_QUEUE_ELEM *Elem);
|
|
|
|
INT
|
|
TDLS_SearchLinkId(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PUCHAR pAddr);
|
|
|
|
VOID
|
|
TDLS_MlmeParmFill(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN OUT MLME_TDLS_REQ_STRUCT *pTdlsReq,
|
|
IN PRT_802_11_TDLS pTdls,
|
|
IN USHORT Reason,
|
|
IN BOOLEAN IsViaAP);
|
|
|
|
INT Set_TdlsCapableProc(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PSTRING arg);
|
|
|
|
INT Set_TdlsSetupProc(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PSTRING arg);
|
|
|
|
INT Set_TdlsTearDownProc(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PSTRING arg);
|
|
|
|
INT
|
|
Set_TdlsDiscoveryReqProc(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PSTRING arg);
|
|
|
|
#ifdef WFD_SUPPORT
|
|
INT Set_TdlsTunneledReqProc(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PSTRING arg);
|
|
#endif /* WFD_SUPPORT */
|
|
|
|
INT
|
|
Set_TdlsTPKLifeTimeProc(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PSTRING arg);
|
|
|
|
#ifdef TDLS_AUTOLINK_SUPPORT
|
|
INT
|
|
Set_TdlsAutoLinkProc(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PSTRING arg);
|
|
|
|
INT
|
|
Set_TdlsRssiMeasurementPeriodProc(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PSTRING arg);
|
|
|
|
INT
|
|
Set_TdlsAutoDiscoveryPeriodProc(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PSTRING arg);
|
|
|
|
INT
|
|
Set_TdlsAutoSetupRssiThresholdProc(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PSTRING arg);
|
|
|
|
INT
|
|
Set_TdlsDisabledPeriodByTeardownProc(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PSTRING arg);
|
|
|
|
INT
|
|
Set_TdlsAutoTeardownRssiThresholdProc(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PSTRING arg);
|
|
#endif /* TDLS_AUTOLINK_SUPPORT */
|
|
|
|
NDIS_STATUS
|
|
TDLS_SetupRequestAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PRT_802_11_TDLS pTDLS);
|
|
|
|
NDIS_STATUS
|
|
TDLS_SetupResponseAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PRT_802_11_TDLS pTDLS,
|
|
IN UCHAR RsnLen,
|
|
IN PUCHAR pRsnIe,
|
|
IN UCHAR FTLen,
|
|
IN PUCHAR pFTIe,
|
|
IN UCHAR TILen,
|
|
IN PUCHAR pTIIe,
|
|
IN UINT16 StatusCode);
|
|
|
|
NDIS_STATUS
|
|
TDLS_SetupConfirmAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PRT_802_11_TDLS pTDLS,
|
|
IN UCHAR RsnLen,
|
|
IN PUCHAR pRsnIe,
|
|
IN UCHAR FTLen,
|
|
IN PUCHAR pFTIe,
|
|
IN UCHAR TILen,
|
|
IN PUCHAR pTIIe,
|
|
IN UINT16 StatusCode);
|
|
|
|
NDIS_STATUS
|
|
TDLS_DiscoveryReqAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PUCHAR pMacAddr);
|
|
|
|
#ifdef WFD_SUPPORT
|
|
NDIS_STATUS
|
|
TDLS_TunneledProbeRequest(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PUCHAR pMacAddr);
|
|
|
|
NDIS_STATUS
|
|
TDLS_TunneledProbeResponse(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PUCHAR pMacAddr);
|
|
#endif /* WFD_SUPPORT */
|
|
|
|
NDIS_STATUS
|
|
TDLS_DiscoveryRspAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN UCHAR PeerToken,
|
|
IN PUCHAR pPeerMac);
|
|
|
|
VOID
|
|
TDLS_DiscoveryRspPublicAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN MLME_QUEUE_ELEM *Elem,
|
|
IN VOID *Msg,
|
|
IN ULONG MsgLen);
|
|
|
|
#ifdef TDLS_AUTOLINK_SUPPORT
|
|
VOID
|
|
TDLS_ClearEntryList(
|
|
IN PLIST_HEADER pTdlsEnList);
|
|
|
|
PTDLS_DISCOVERY_ENTRY
|
|
TDLS_FindDiscoveryEntry(
|
|
IN PLIST_HEADER pTdlsEnList,
|
|
IN PUCHAR pMacAddr);
|
|
|
|
BOOLEAN
|
|
TDLS_InsertDiscoveryPeerEntryByMAC(
|
|
IN PLIST_HEADER pTdlsEnList,
|
|
IN PUCHAR pMacAddr,
|
|
IN BOOLEAN bConnected);
|
|
|
|
VOID
|
|
TDLS_DelDiscoveryEntryByMAC(
|
|
IN PLIST_HEADER pTdlsEnList,
|
|
IN PUCHAR pMacAddr);
|
|
|
|
VOID
|
|
TDLS_MaintainDiscoveryEntryList(
|
|
IN PRTMP_ADAPTER pAd);
|
|
|
|
PTDLS_BLACK_ENTRY
|
|
TDLS_FindBlackEntry(
|
|
IN PLIST_HEADER pTdlsEnList,
|
|
IN PUCHAR pMacAddr);
|
|
|
|
VOID
|
|
TDLS_InsertBlackEntryByMAC(
|
|
IN PLIST_HEADER pTdlsEnList,
|
|
IN PUCHAR pMacAddr,
|
|
IN UCHAR CurrentState);
|
|
|
|
VOID
|
|
TDLS_DelBlackEntryByMAC(
|
|
IN PLIST_HEADER pTdlsEnList,
|
|
IN PUCHAR pMacAddr);
|
|
|
|
VOID
|
|
TDLS_MaintainBlackList(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PLIST_HEADER pTdlsBlackenList);
|
|
#endif // TDLS_AUTOLINK_SUPPORT //
|
|
|
|
VOID
|
|
TDLS_InitPeerEntryRateCapability(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN MAC_TABLE_ENTRY *pEntry,
|
|
IN USHORT *pCapabilityInfo,
|
|
IN UCHAR SupportRateLens,
|
|
IN UCHAR *pSupportRates,
|
|
IN UCHAR HtCapabilityLen,
|
|
IN HT_CAPABILITY_IE *pHtCapability);
|
|
|
|
VOID
|
|
TDLS_BuildSetupRequest(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen,
|
|
IN PRT_802_11_TDLS pTDLS);
|
|
|
|
VOID
|
|
TDLS_BuildSetupResponse(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen,
|
|
IN PRT_802_11_TDLS pTDLS,
|
|
IN UCHAR RsnLen,
|
|
IN PUCHAR pRsnIe,
|
|
IN UCHAR FTLen,
|
|
IN PUCHAR pFTIe,
|
|
IN UCHAR TILen,
|
|
IN PUCHAR pTIIe,
|
|
IN UINT16 StatusCode);
|
|
|
|
VOID
|
|
TDLS_BuildSetupConfirm(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen,
|
|
IN PRT_802_11_TDLS pTDLS,
|
|
IN UCHAR RsnLen,
|
|
IN PUCHAR pRsnIe,
|
|
IN UCHAR FTLen,
|
|
IN PUCHAR pFTIe,
|
|
IN UCHAR TILen,
|
|
IN PUCHAR pTIIe,
|
|
IN UINT16 StatusCode);
|
|
|
|
VOID
|
|
TDLS_BuildTeardown(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen,
|
|
IN PRT_802_11_TDLS pTDLS,
|
|
IN UINT16 ReasonCode);
|
|
|
|
VOID
|
|
TDLS_InsertActField(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen,
|
|
IN UINT8 Category,
|
|
IN UINT8 ActCode);
|
|
|
|
VOID
|
|
TDLS_InsertStatusCode(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen,
|
|
IN UINT16 StatusCode);
|
|
|
|
VOID
|
|
TDLS_InsertReasonCode(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen,
|
|
IN UINT16 ReasonCode);
|
|
|
|
VOID
|
|
TDLS_InsertDialogToken(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen,
|
|
IN UINT8 DialogToken);
|
|
|
|
VOID
|
|
TDLS_InsertLinkIdentifierIE(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen,
|
|
IN PUCHAR pInitAddr,
|
|
IN PUCHAR pPeerAddr);
|
|
|
|
VOID
|
|
TDLS_InsertCapIE(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen);
|
|
|
|
VOID
|
|
TDLS_InsertSSIDIE(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen);
|
|
|
|
VOID
|
|
TDLS_InsertSupportRateIE(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen);
|
|
|
|
VOID
|
|
TDLS_InsertCountryIE(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen);
|
|
|
|
VOID
|
|
TDLS_InsertSupportChannelIE(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen);
|
|
|
|
VOID
|
|
TDLS_InsertExtRateIE(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen);
|
|
|
|
VOID
|
|
TDLS_InsertQosCapIE(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen);
|
|
|
|
VOID
|
|
TDLS_InsertEDCAParameterSetIE(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen,
|
|
IN PRT_802_11_TDLS pTDLS);
|
|
|
|
VOID
|
|
TDLS_InsertWMMIE(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen,
|
|
IN BOOLEAN bEnable);
|
|
|
|
VOID
|
|
TDLS_InsertWMMParameterIE(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen);
|
|
|
|
#ifdef DOT11_N_SUPPORT
|
|
VOID
|
|
TDLS_InsertHtCapIE(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen);
|
|
|
|
#ifdef DOT11N_DRAFT3
|
|
VOID
|
|
TDLS_InsertBSSCoexistenceIE(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen);
|
|
#endif /* DOT11N_DRAFT3 */
|
|
#endif /* DOT11_N_SUPPORT */
|
|
|
|
VOID
|
|
TDLS_InsertExtCapIE(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen);
|
|
|
|
VOID
|
|
TDLS_InsertFTIE(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen,
|
|
IN UINT8 Length,
|
|
IN FT_MIC_CTR_FIELD MICCtr,
|
|
IN PUINT8 pMic,
|
|
IN PUINT8 pANonce,
|
|
IN PUINT8 pSNonce);
|
|
|
|
VOID
|
|
TDLS_InsertTimeoutIntervalIE(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen,
|
|
IN FT_TIMEOUT_INTERVAL_TYPE Type,
|
|
IN UINT32 TimeOutValue);
|
|
|
|
VOID
|
|
TDLS_InsertTargetChannel(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen,
|
|
IN UINT8 TargetCh);
|
|
|
|
VOID
|
|
TDLS_InsertRegulatoryClass(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen,
|
|
IN UINT8 TargetCh,
|
|
IN UINT8 ChWidth);
|
|
|
|
VOID
|
|
TDLS_InsertSecondaryChOffsetIE(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen,
|
|
IN UCHAR ChOffset);
|
|
|
|
VOID
|
|
TDLS_SupportedRegulatoryClasses(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen);
|
|
|
|
VOID
|
|
TDLS_InsertChannelSwitchTimingIE(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen,
|
|
IN USHORT SwitchTime,
|
|
IN USHORT SwitchTimeOut);
|
|
|
|
UCHAR
|
|
TDLS_GetRegulatoryClass(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN UCHAR ChannelWidth,
|
|
IN UCHAR TargetChannel);
|
|
|
|
VOID
|
|
TDLS_InsertPuBufferStatus(
|
|
IN PRTMP_ADAPTER pAd,
|
|
OUT PUCHAR pFrameBuf,
|
|
OUT PULONG pFrameLen,
|
|
IN UCHAR *pPeerMac);
|
|
|
|
VOID
|
|
TDLS_PeerSetupReqAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN MLME_QUEUE_ELEM *Elem);
|
|
|
|
VOID
|
|
TDLS_PeerSetupRspAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN MLME_QUEUE_ELEM *Elem);
|
|
|
|
VOID
|
|
TDLS_PeerSetupConfAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN MLME_QUEUE_ELEM *Elem);
|
|
|
|
VOID
|
|
TDLS_MlmeTearDownAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN MLME_QUEUE_ELEM *Elem);
|
|
|
|
VOID
|
|
TDLS_PeerTearDownAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN MLME_QUEUE_ELEM *Elem);
|
|
|
|
#ifdef WFD_SUPPORT
|
|
VOID TDLS_MlmeTunneledReqAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN MLME_QUEUE_ELEM *Elem);
|
|
|
|
VOID TDLS_PeerTunneledReqRspAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN MLME_QUEUE_ELEM *Elem);
|
|
#endif /* WFD_SUPPORT */
|
|
|
|
VOID
|
|
TDLS_MlmeDiscoveryReqAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN MLME_QUEUE_ELEM *Elem);
|
|
|
|
VOID
|
|
TDLS_PeerDiscoveryReqAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN MLME_QUEUE_ELEM *Elem);
|
|
|
|
BOOLEAN
|
|
TDLS_MsgTypeSubst(
|
|
IN UCHAR TDLSActionType,
|
|
OUT INT *MsgType);
|
|
|
|
BOOLEAN
|
|
TDLS_CheckTDLSframe(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PUCHAR pData,
|
|
IN ULONG DataByteCount);
|
|
|
|
VOID
|
|
TDLS_LinkTearDown(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN BOOLEAN bDirect);
|
|
|
|
VOID
|
|
TDLS_TearDownPeerLink(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PUCHAR pPeerAddr,
|
|
IN BOOLEAN bDirect);
|
|
|
|
ULONG
|
|
PeerTdlsBasicSanity(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN VOID *Msg,
|
|
IN ULONG MsgLen,
|
|
IN BOOLEAN bInitiator,
|
|
OUT UCHAR *pToken,
|
|
OUT UCHAR *pSA);
|
|
|
|
BOOLEAN
|
|
PeerTdlsSetupReqSanity(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN VOID *Msg,
|
|
IN ULONG MsgLen,
|
|
#ifdef WFD_SUPPORT
|
|
OUT ULONG *pWfdSubelementLen,
|
|
OUT PUCHAR pWfdSubelement,
|
|
#endif /* WFD_SUPPORT */
|
|
OUT UCHAR *pToken,
|
|
OUT UCHAR *pSA,
|
|
OUT USHORT *pCapabilityInfo,
|
|
OUT UCHAR *pSupRateLen,
|
|
OUT UCHAR SupRate[],
|
|
OUT UCHAR *pExtRateLen,
|
|
OUT UCHAR ExtRate[],
|
|
OUT BOOLEAN *pbWmmCapable,
|
|
OUT UCHAR *pQosCapability,
|
|
OUT UCHAR *pHtCapLen,
|
|
OUT HT_CAPABILITY_IE *pHtCap,
|
|
OUT UCHAR *pExtCapLen,
|
|
OUT EXT_CAP_INFO_ELEMENT *pExtCap,
|
|
OUT UCHAR *pRsnLen,
|
|
OUT UCHAR RsnIe[],
|
|
OUT UCHAR *pFTLen,
|
|
OUT UCHAR FTIe[],
|
|
OUT UCHAR *pTILen,
|
|
OUT UCHAR TIIe[],
|
|
OUT UCHAR *pLinkIdentLen,
|
|
OUT TDLS_LINK_IDENT_ELEMENT *pLinkIdent);
|
|
|
|
BOOLEAN
|
|
PeerTdlsSetupRspSanity(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN VOID *Msg,
|
|
IN ULONG MsgLen,
|
|
#ifdef WFD_SUPPORT
|
|
OUT ULONG *pWfdSubelementLen,
|
|
OUT PUCHAR pWfdSubelement,
|
|
#endif /* WFD_SUPPORT */
|
|
OUT UCHAR *pToken,
|
|
OUT UCHAR *pSA,
|
|
OUT USHORT *pCapabilityInfo,
|
|
OUT UCHAR *pSupRateLen,
|
|
OUT UCHAR SupRate[],
|
|
OUT UCHAR *pExtRateLen,
|
|
OUT UCHAR ExtRate[],
|
|
OUT BOOLEAN *pbWmmCapable,
|
|
OUT UCHAR *pQosCapability,
|
|
OUT UCHAR *pHtCapLen,
|
|
OUT HT_CAPABILITY_IE *pHtCap,
|
|
OUT UCHAR *pExtCapLen,
|
|
OUT EXT_CAP_INFO_ELEMENT *pExtCap,
|
|
OUT USHORT *pStatusCode,
|
|
OUT UCHAR *pRsnLen,
|
|
OUT UCHAR RsnIe[],
|
|
OUT UCHAR *pFTLen,
|
|
OUT UCHAR FTIe[],
|
|
OUT UCHAR *pTILen,
|
|
OUT UCHAR TIIe[],
|
|
OUT UCHAR *pLinkIdentLen,
|
|
OUT TDLS_LINK_IDENT_ELEMENT *pLinkIdent);
|
|
|
|
BOOLEAN
|
|
PeerTdlsSetupConfSanity(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN VOID *Msg,
|
|
IN ULONG MsgLen,
|
|
OUT UCHAR *pToken,
|
|
OUT UCHAR *pSA,
|
|
OUT USHORT *pCapabilityInfo,
|
|
OUT EDCA_PARM *pEdcaParm,
|
|
OUT USHORT *pStatusCode,
|
|
OUT UCHAR *pRsnLen,
|
|
OUT UCHAR RsnIe[],
|
|
OUT UCHAR *pFTLen,
|
|
OUT UCHAR FTIe[],
|
|
OUT UCHAR *pTILen,
|
|
OUT UCHAR TIIe[],
|
|
OUT UCHAR *pLinkIdentLen,
|
|
OUT TDLS_LINK_IDENT_ELEMENT *pLinkIdent,
|
|
OUT UCHAR *pAddHtInfoLen,
|
|
OUT ADD_HT_INFO_IE *pAddHtInfo);
|
|
|
|
BOOLEAN
|
|
PeerTdlsTearDownSanity(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN VOID *Msg,
|
|
IN ULONG MsgLen,
|
|
OUT UCHAR *pSA,
|
|
OUT BOOLEAN *pIsInitator,
|
|
OUT USHORT *pReasonCode,
|
|
OUT UCHAR *pFTLen,
|
|
OUT UCHAR FTIe[],
|
|
OUT UCHAR *pLinkIdentLen,
|
|
OUT TDLS_LINK_IDENT_ELEMENT *pLinkIdent);
|
|
|
|
BOOLEAN
|
|
PeerTdlsDiscovReqSanity(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN VOID *Msg,
|
|
IN ULONG MsgLen,
|
|
OUT UCHAR *pSA,
|
|
OUT UCHAR *pToken);
|
|
|
|
BOOLEAN
|
|
PeerTdlsDiscovRspSanity(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN VOID *Msg,
|
|
IN ULONG MsgLen,
|
|
OUT UCHAR *pToken,
|
|
OUT UCHAR *pSA,
|
|
OUT USHORT *pCapabilityInfo,
|
|
OUT UCHAR *pSupRateLen,
|
|
OUT UCHAR SupRate[],
|
|
OUT UCHAR *pExtRateLen,
|
|
OUT UCHAR ExtRate[],
|
|
OUT UCHAR *pHtCapLen,
|
|
OUT HT_CAPABILITY_IE *pHtCap,
|
|
OUT UCHAR *pTdlsExtCapLen,
|
|
OUT EXT_CAP_INFO_ELEMENT *pTdlsExtCap,
|
|
OUT UCHAR *pRsnLen,
|
|
OUT UCHAR RsnIe[],
|
|
OUT UCHAR *pFTLen,
|
|
OUT UCHAR FTIe[],
|
|
OUT UCHAR *pTILen,
|
|
OUT UCHAR TIIe[],
|
|
OUT UCHAR *pLinkIdentLen,
|
|
OUT TDLS_LINK_IDENT_ELEMENT *pLinkIdent);
|
|
|
|
VOID
|
|
TDLS_TimeoutAction(
|
|
IN PVOID SystemSpecific1,
|
|
IN PVOID FunctionContext,
|
|
IN PVOID SystemSpecific2,
|
|
IN PVOID SystemSpecific3);
|
|
|
|
VOID
|
|
TDLS_FTDeriveTPK(
|
|
IN PUCHAR mac_i,
|
|
IN PUCHAR mac_r,
|
|
IN PUCHAR a_nonce,
|
|
IN PUCHAR s_nonce,
|
|
IN PUCHAR bssid,
|
|
IN UINT key_len,
|
|
OUT PUCHAR tpk,
|
|
OUT PUCHAR tpk_name);
|
|
|
|
USHORT
|
|
TDLS_TPKMsg1Process(
|
|
IN PRTMP_ADAPTER pAd,
|
|
#ifdef WFD_SUPPORT
|
|
IN ULONG WfdSubelementLen,
|
|
#endif /* WFD_SUPPORT */
|
|
IN PRT_802_11_TDLS pTDLS,
|
|
IN PUCHAR pRsnIe,
|
|
IN UCHAR RsnLen,
|
|
IN PUCHAR pFTIe,
|
|
IN UCHAR FTLen,
|
|
IN PUCHAR pTIIe,
|
|
IN UCHAR TILen);
|
|
|
|
USHORT
|
|
TDLS_TPKMsg2Process(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PRT_802_11_TDLS pTDLS,
|
|
IN PUCHAR pRsnIe,
|
|
IN UCHAR RsnLen,
|
|
IN PUCHAR pFTIe,
|
|
IN UCHAR FTLen,
|
|
IN PUCHAR pTIIe,
|
|
IN UCHAR TILen,
|
|
OUT PUCHAR pTPK,
|
|
OUT PUCHAR pTPKName);
|
|
|
|
USHORT
|
|
TDLS_TPKMsg3Process(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PRT_802_11_TDLS pTDLS,
|
|
IN PUCHAR pRsnIe,
|
|
IN UCHAR RsnLen,
|
|
IN PUCHAR pFTIe,
|
|
IN UCHAR FTLen,
|
|
IN PUCHAR pTIIe,
|
|
IN UCHAR TILen);
|
|
|
|
NDIS_STATUS
|
|
TDLS_TearDownAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PRT_802_11_TDLS pTDLS,
|
|
IN UINT16 ReasonCode,
|
|
IN BOOLEAN bDirect);
|
|
|
|
BOOLEAN
|
|
MlmeTdlsReqSanity(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN VOID *Msg,
|
|
IN ULONG MsgLen,
|
|
OUT PRT_802_11_TDLS *pTDLS,
|
|
OUT PUINT16 pReason,
|
|
OUT BOOLEAN *pIsViaAP);
|
|
|
|
VOID
|
|
TDLS_SendNullFrame(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN UCHAR TxRate,
|
|
IN BOOLEAN bQosNull);
|
|
|
|
VOID
|
|
TDLS_LinkMaintenance(
|
|
IN PRTMP_ADAPTER pAd);
|
|
|
|
INT
|
|
Set_TdlsEntryInfo_Display_Proc(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PUCHAR arg);
|
|
|
|
VOID
|
|
TDLS_MlmeSetupReqAction(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN MLME_QUEUE_ELEM *Elem);
|
|
|
|
VOID
|
|
TDLS_LinkTimeoutAction(
|
|
IN PVOID SystemSpecific1,
|
|
IN PVOID FunctionContext,
|
|
IN PVOID SystemSpecific2,
|
|
IN PVOID SystemSpecific3);
|
|
|
|
VOID
|
|
TDLS_InitChannelRelatedValue(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN HT_CAPABILITY_IE *pHtCapability);
|
|
|
|
#ifdef TDLS_AUTOLINK_SUPPORT
|
|
UCHAR
|
|
TDLS_ValidIdLookup(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PUCHAR pAddr);
|
|
|
|
VOID
|
|
TDLS_AutoSetupByRcvFrame(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN PHEADER_802_11 pHeader);
|
|
#endif // TDLS_AUTOLINK_SUPPORT //
|
|
|
|
#ifdef WFD_SUPPORT
|
|
BOOLEAN TDLS_PeerTunneledProbeReqRspSanity(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN VOID *Msg,
|
|
IN ULONG MsgLen,
|
|
OUT PUCHAR pAddr2,
|
|
OUT CHAR Ssid[],
|
|
OUT UCHAR *pSsidLen,
|
|
OUT ULONG *Peerip,
|
|
OUT UCHAR *pChannel,
|
|
OUT ULONG *P2PSubelementLen,
|
|
OUT PUCHAR pP2pSubelement,
|
|
OUT ULONG *pWfdSubelementLen,
|
|
OUT PUCHAR pWfdSubelement);
|
|
#endif /* WFD_SUPPORT */
|
|
|
|
#endif /* __TDLS_H */
|
|
#endif /* DOT11Z_TDLS_SUPPORT */
|