| /* |
| * Copyright (c) 2011-2018 The Linux Foundation. All rights reserved. |
| * |
| * Permission to use, copy, modify, and/or distribute this software for |
| * any purpose with or without fee is hereby granted, provided that the |
| * above copyright notice and this permission notice appear in all |
| * copies. |
| * |
| * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL |
| * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED |
| * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE |
| * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL |
| * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR |
| * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER |
| * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
| * PERFORMANCE OF THIS SOFTWARE. |
| */ |
| |
| /* |
| * |
| * This file lim_global.h contains the definitions exported by |
| * LIM module. |
| * Author: Chandra Modumudi |
| * Date: 02/11/02 |
| * History:- |
| * Date Modified by Modification Information |
| * -------------------------------------------------------------------- |
| * |
| */ |
| #ifndef __LIM_GLOBAL_H |
| #define __LIM_GLOBAL_H |
| |
| #include "wni_api.h" |
| #include "sir_api.h" |
| #include "sir_mac_prot_def.h" |
| #include "sir_mac_prop_exts.h" |
| #include "sir_common.h" |
| #include "sir_debug.h" |
| #include "wni_cfg.h" |
| #include "csr_api.h" |
| #include "sap_api.h" |
| #include "dot11f.h" |
| #include "wma_if.h" |
| |
| /* Deferred Message Queue Length */ |
| #define MAX_DEFERRED_QUEUE_LEN 80 |
| |
| /* Maximum number of PS - TIM's to be sent with out wakeup from STA */ |
| #define LIM_TIM_WAIT_COUNT_FACTOR 5 |
| |
| /* |
| * Use this count if (LIM_TIM_WAIT_FACTOR * ListenInterval) |
| * is less than LIM_MIN_TIM_WAIT_CNT |
| */ |
| #define LIM_MIN_TIM_WAIT_COUNT 50 |
| |
| #define GET_TIM_WAIT_COUNT(LIntrvl) \ |
| ((LIntrvl * LIM_TIM_WAIT_COUNT_FACTOR) > LIM_MIN_TIM_WAIT_COUNT ? \ |
| (LIntrvl * LIM_TIM_WAIT_COUNT_FACTOR) : LIM_MIN_TIM_WAIT_COUNT) |
| |
| #ifdef CHANNEL_HOPPING_ALL_BANDS |
| #define CHAN_HOP_ALL_BANDS_ENABLE 1 |
| #else |
| #define CHAN_HOP_ALL_BANDS_ENABLE 0 |
| #endif |
| |
| /* enums exported by LIM are as follows */ |
| |
| /*System role definition */ |
| typedef enum eLimSystemRole { |
| eLIM_UNKNOWN_ROLE, |
| eLIM_AP_ROLE, |
| eLIM_STA_IN_IBSS_ROLE, |
| eLIM_STA_ROLE, |
| eLIM_P2P_DEVICE_ROLE, |
| eLIM_P2P_DEVICE_GO, |
| eLIM_P2P_DEVICE_CLIENT, |
| eLIM_NDI_ROLE |
| } tLimSystemRole; |
| |
| /* |
| * SME state definition accessible across all Sirius modules. |
| * AP only states are LIM_SME_CHANNEL_SCAN_STATE & |
| * LIM_SME_NORMAL_CHANNEL_SCAN_STATE. |
| * Note that these states may also be present in STA |
| * side too when DFS support is present for a STA in IBSS mode. |
| */ |
| typedef enum eLimSmeStates { |
| eLIM_SME_OFFLINE_STATE, |
| eLIM_SME_IDLE_STATE, |
| eLIM_SME_SUSPEND_STATE, |
| eLIM_SME_WT_SCAN_STATE, |
| eLIM_SME_WT_JOIN_STATE, |
| eLIM_SME_WT_AUTH_STATE, |
| eLIM_SME_WT_ASSOC_STATE, |
| eLIM_SME_WT_REASSOC_STATE, |
| eLIM_SME_JOIN_FAILURE_STATE, |
| eLIM_SME_ASSOCIATED_STATE, |
| eLIM_SME_REASSOCIATED_STATE, |
| eLIM_SME_LINK_EST_STATE, |
| eLIM_SME_LINK_EST_WT_SCAN_STATE, |
| eLIM_SME_WT_PRE_AUTH_STATE, |
| eLIM_SME_WT_DISASSOC_STATE, |
| eLIM_SME_WT_DEAUTH_STATE, |
| eLIM_SME_WT_START_BSS_STATE, |
| eLIM_SME_WT_STOP_BSS_STATE, |
| eLIM_SME_NORMAL_STATE, |
| eLIM_SME_CHANNEL_SCAN_STATE, |
| eLIM_SME_NORMAL_CHANNEL_SCAN_STATE |
| } tLimSmeStates; |
| |
| /* |
| * MLM state definition. |
| * While these states are present on AP too when it is |
| * STA mode, per-STA MLM state exclusive to AP is: |
| * eLIM_MLM_WT_AUTH_FRAME3. |
| */ |
| typedef enum eLimMlmStates { |
| eLIM_MLM_OFFLINE_STATE, |
| eLIM_MLM_IDLE_STATE, |
| eLIM_MLM_WT_PROBE_RESP_STATE, |
| eLIM_MLM_PASSIVE_SCAN_STATE, |
| eLIM_MLM_WT_JOIN_BEACON_STATE, |
| eLIM_MLM_JOINED_STATE, |
| eLIM_MLM_BSS_STARTED_STATE, |
| eLIM_MLM_WT_AUTH_FRAME2_STATE, |
| eLIM_MLM_WT_AUTH_FRAME3_STATE, |
| eLIM_MLM_WT_AUTH_FRAME4_STATE, |
| eLIM_MLM_AUTH_RSP_TIMEOUT_STATE, |
| eLIM_MLM_AUTHENTICATED_STATE, |
| eLIM_MLM_WT_ASSOC_RSP_STATE, |
| eLIM_MLM_WT_REASSOC_RSP_STATE, |
| eLIM_MLM_ASSOCIATED_STATE, |
| eLIM_MLM_REASSOCIATED_STATE, |
| eLIM_MLM_LINK_ESTABLISHED_STATE, |
| eLIM_MLM_WT_ASSOC_CNF_STATE, |
| eLIM_MLM_LEARN_STATE, |
| eLIM_MLM_WT_ADD_BSS_RSP_STATE, |
| eLIM_MLM_WT_DEL_BSS_RSP_STATE, |
| eLIM_MLM_WT_ADD_BSS_RSP_ASSOC_STATE, |
| eLIM_MLM_WT_ADD_BSS_RSP_REASSOC_STATE, |
| eLIM_MLM_WT_ADD_BSS_RSP_PREASSOC_STATE, |
| eLIM_MLM_WT_ADD_STA_RSP_STATE, |
| eLIM_MLM_WT_DEL_STA_RSP_STATE, |
| /* |
| * MLM goes to this state when LIM initiates DELETE_STA |
| * as processing of Assoc req because the entry already exists. |
| * LIM comes out of this state when DELETE_STA response from |
| * HAL is received. LIM needs to maintain this state so that ADD_STA |
| * can be issued while processing DELETE_STA response from HAL. |
| */ |
| eLIM_MLM_WT_ASSOC_DEL_STA_RSP_STATE, |
| eLIM_MLM_WT_SET_BSS_KEY_STATE, |
| eLIM_MLM_WT_SET_STA_KEY_STATE, |
| eLIM_MLM_WT_SET_STA_BCASTKEY_STATE, |
| eLIM_MLM_WT_SET_MIMOPS_STATE, |
| eLIM_MLM_WT_ADD_BSS_RSP_FT_REASSOC_STATE, |
| eLIM_MLM_WT_FT_REASSOC_RSP_STATE, |
| eLIM_MLM_P2P_LISTEN_STATE, |
| eLIM_MLM_WT_SAE_AUTH_STATE, |
| } tLimMlmStates; |
| |
| /* 11h channel quiet states */ |
| |
| /* |
| * This enum indicates in which state the device is in |
| * when it receives quiet element in beacon or probe-response. |
| * The default quiet state of the device is always INIT |
| * eLIM_QUIET_BEGIN - When Quiet period is started |
| * eLIM_QUIET_CHANGED - When Quiet period is updated |
| * eLIM_QUIET_RUNNING - Between two successive Quiet updates |
| * eLIM_QUIET_END - When quiet period ends |
| */ |
| typedef enum eLimQuietStates { |
| eLIM_QUIET_INIT, |
| eLIM_QUIET_BEGIN, |
| eLIM_QUIET_CHANGED, |
| eLIM_QUIET_RUNNING, |
| eLIM_QUIET_END |
| } tLimQuietStates; |
| |
| /* 11h channel switch states */ |
| |
| /* |
| * This enum indicates in which state the channel-swith |
| * is presently operating. |
| * eLIM_11H_CHANSW_INIT - Default state |
| * eLIM_11H_CHANSW_RUNNING - When channel switch is running |
| * eLIM_11H_CHANSW_END - After channel switch is complete |
| */ |
| typedef enum eLimDot11hChanSwStates { |
| eLIM_11H_CHANSW_INIT, |
| eLIM_11H_CHANSW_RUNNING, |
| eLIM_11H_CHANSW_END |
| } tLimDot11hChanSwStates; |
| |
| /* MLM Req/Cnf structure definitions */ |
| typedef struct sLimMlmAuthReq { |
| tSirMacAddr peerMacAddr; |
| tAniAuthType authType; |
| uint32_t authFailureTimeout; |
| uint8_t sessionId; |
| } tLimMlmAuthReq, *tpLimMlmAuthReq; |
| |
| typedef struct sLimMlmJoinReq { |
| uint32_t joinFailureTimeout; |
| tSirMacRateSet operationalRateSet; |
| uint8_t sessionId; |
| tSirBssDescription bssDescription; |
| /* |
| * WARNING: Pls make bssDescription as last variable in struct |
| * tLimMlmJoinReq as it has ieFields followed after this bss |
| * description. Adding a variable after this corrupts the ieFields |
| */ |
| } tLimMlmJoinReq, *tpLimMlmJoinReq; |
| |
| #ifdef FEATURE_OEM_DATA_SUPPORT |
| |
| /* OEM Data related structure definitions */ |
| typedef struct sLimMlmOemDataReq { |
| struct qdf_mac_addr selfMacAddr; |
| uint32_t data_len; |
| uint8_t *data; |
| } tLimMlmOemDataReq, *tpLimMlmOemDataReq; |
| |
| typedef struct sLimMlmOemDataRsp { |
| bool target_rsp; |
| uint32_t rsp_len; |
| uint8_t *oem_data_rsp; |
| } tLimMlmOemDataRsp, *tpLimMlmOemDataRsp; |
| #endif |
| |
| /* Pre-authentication structure definition */ |
| typedef struct tLimPreAuthNode { |
| struct tLimPreAuthNode *next; |
| tSirMacAddr peerMacAddr; |
| tAniAuthType authType; |
| tLimMlmStates mlmState; |
| uint8_t authNodeIdx; |
| uint8_t challengeText[SIR_MAC_AUTH_CHALLENGE_LENGTH]; |
| uint8_t fTimerStarted:1; |
| uint8_t fSeen:1; |
| uint8_t fFree:1; |
| uint8_t rsvd:5; |
| TX_TIMER timer; |
| uint16_t seq_num; |
| unsigned long timestamp; |
| } tLimPreAuthNode, *tpLimPreAuthNode; |
| |
| /* Pre-authentication table definition */ |
| typedef struct tLimPreAuthTable { |
| uint32_t numEntry; |
| tLimPreAuthNode **pTable; |
| } tLimPreAuthTable, *tpLimPreAuthTable; |
| |
| /* / Per STA context structure definition */ |
| typedef struct sLimMlmStaContext { |
| tLimMlmStates mlmState; |
| tAniAuthType authType; |
| uint16_t listenInterval; |
| tSirMacCapabilityInfo capabilityInfo; |
| tSirMacReasonCodes disassocReason; |
| |
| tSirResultCodes resultCode; |
| |
| tSirMacPropRateSet propRateSet; |
| uint8_t subType:1; /* Indicates ASSOC (0) or REASSOC (1) */ |
| uint8_t updateContext:1; |
| uint8_t schClean:1; |
| /* 802.11n HT Capability in Station: Enabled 1 or DIsabled 0 */ |
| uint8_t htCapability:1; |
| uint8_t vhtCapability:1; |
| uint16_t cleanupTrigger; |
| uint16_t protStatusCode; |
| #ifdef WLAN_FEATURE_11AX |
| bool he_capable; |
| #endif |
| } tLimMlmStaContext, *tpLimMlmStaContext; |
| |
| /* Structure definition to hold deferred messages queue parameters */ |
| typedef struct sLimDeferredMsgQParams { |
| struct scheduler_msg deferredQueue[MAX_DEFERRED_QUEUE_LEN]; |
| uint16_t size; |
| uint16_t read; |
| uint16_t write; |
| } tLimDeferredMsgQParams, *tpLimDeferredMsgQParams; |
| |
| typedef struct sCfgProtection { |
| uint32_t overlapFromlla:1; |
| uint32_t overlapFromllb:1; |
| uint32_t overlapFromllg:1; |
| uint32_t overlapHt20:1; |
| uint32_t overlapNonGf:1; |
| uint32_t overlapLsigTxop:1; |
| uint32_t overlapRifs:1; |
| uint32_t overlapOBSS:1; /* added for obss */ |
| uint32_t fromlla:1; |
| uint32_t fromllb:1; |
| uint32_t fromllg:1; |
| uint32_t ht20:1; |
| uint32_t nonGf:1; |
| uint32_t lsigTxop:1; |
| uint32_t rifs:1; |
| uint32_t obss:1; /* added for Obss */ |
| } tCfgProtection, *tpCfgProtection; |
| |
| typedef enum eLimProtStaCacheType { |
| eLIM_PROT_STA_CACHE_TYPE_INVALID, |
| eLIM_PROT_STA_CACHE_TYPE_llB, |
| eLIM_PROT_STA_CACHE_TYPE_llG, |
| eLIM_PROT_STA_CACHE_TYPE_HT20 |
| } tLimProtStaCacheType; |
| |
| typedef struct sCacheParams { |
| uint8_t active; |
| tSirMacAddr addr; |
| tLimProtStaCacheType protStaCacheType; |
| |
| } tCacheParams, *tpCacheParams; |
| |
| #define LIM_PROT_STA_OVERLAP_CACHE_SIZE HAL_NUM_ASSOC_STA |
| #define LIM_PROT_STA_CACHE_SIZE HAL_NUM_ASSOC_STA |
| |
| typedef struct sLimProtStaParams { |
| uint8_t numSta; |
| uint8_t protectionEnabled; |
| } tLimProtStaParams, *tpLimProtStaParams; |
| |
| typedef struct sLimNoShortParams { |
| uint8_t numNonShortPreambleSta; |
| tCacheParams staNoShortCache[LIM_PROT_STA_CACHE_SIZE]; |
| } tLimNoShortParams, *tpLimNoShortParams; |
| |
| typedef struct sLimNoShortSlotParams { |
| uint8_t numNonShortSlotSta; |
| tCacheParams staNoShortSlotCache[LIM_PROT_STA_CACHE_SIZE]; |
| } tLimNoShortSlotParams, *tpLimNoShortSlotParams; |
| |
| typedef struct tLimIbssPeerNode tLimIbssPeerNode; |
| struct tLimIbssPeerNode { |
| tLimIbssPeerNode *next; |
| tSirMacAddr peerMacAddr; |
| uint8_t extendedRatesPresent:1; |
| uint8_t edcaPresent:1; |
| uint8_t wmeEdcaPresent:1; |
| uint8_t wmeInfoPresent:1; |
| uint8_t htCapable:1; |
| uint8_t vhtCapable:1; |
| uint8_t rsvd:2; |
| uint8_t htSecondaryChannelOffset; |
| tSirMacCapabilityInfo capabilityInfo; |
| tSirMacRateSet supportedRates; |
| tSirMacRateSet extendedRates; |
| uint8_t supportedMCSSet[SIZE_OF_SUPPORTED_MCS_SET]; |
| tSirMacEdcaParamSetIE edcaParams; |
| uint8_t erpIePresent; |
| |
| /* HT Capabilities of IBSS Peer */ |
| uint8_t htGreenfield; |
| uint8_t htShortGI40Mhz; |
| uint8_t htShortGI20Mhz; |
| |
| /* DSSS/CCK at 40 MHz: Enabled 1 or Disabled */ |
| uint8_t htDsssCckRate40MHzSupport; |
| |
| /* MIMO Power Save */ |
| tSirMacHTMIMOPowerSaveState htMIMOPSState; |
| |
| /* */ |
| /* A-MPDU Density */ |
| /* 000 - No restriction */ |
| /* 001 - 1/8 usec */ |
| /* 010 - 1/4 usec */ |
| /* 011 - 1/2 usec */ |
| /* 100 - 1 usec */ |
| /* 101 - 2 usec */ |
| /* 110 - 4 usec */ |
| /* 111 - 8 usec */ |
| /* */ |
| uint8_t htAMpduDensity; |
| |
| /* Maximum Rx A-MPDU factor */ |
| uint8_t htMaxRxAMpduFactor; |
| |
| /* Set to 0 for 3839 octets */ |
| /* Set to 1 for 7935 octets */ |
| uint8_t htMaxAmsduLength; |
| |
| /* */ |
| /* Recommended Tx Width Set */ |
| /* 0 - use 20 MHz channel (control channel) */ |
| /* 1 - use 40 Mhz channel */ |
| /* */ |
| uint8_t htSupportedChannelWidthSet; |
| |
| uint8_t htLdpcCapable; |
| |
| uint8_t beaconHBCount; |
| uint8_t heartbeatFailure; |
| |
| uint8_t *beacon; /* Hold beacon to be sent to HDD/CSR */ |
| uint16_t beaconLen; |
| |
| tDot11fIEVHTCaps VHTCaps; |
| uint8_t vhtSupportedChannelWidthSet; |
| uint8_t vhtBeamFormerCapable; |
| /* |
| * Peer Atim Info |
| */ |
| uint8_t atimIePresent; |
| uint32_t peerAtimWindowLength; |
| }; |
| |
| /* Enums used for channel switching. */ |
| typedef enum eLimChannelSwitchState { |
| eLIM_CHANNEL_SWITCH_IDLE, |
| eLIM_CHANNEL_SWITCH_PRIMARY_ONLY, |
| eLIM_CHANNEL_SWITCH_PRIMARY_AND_SECONDARY |
| } tLimChannelSwitchState; |
| |
| /* Channel Switch Info */ |
| typedef struct sLimChannelSwitchInfo { |
| tLimChannelSwitchState state; |
| uint8_t primaryChannel; |
| uint8_t ch_center_freq_seg0; |
| uint8_t ch_center_freq_seg1; |
| uint8_t sec_ch_offset; |
| enum phy_ch_width ch_width; |
| int8_t switchCount; |
| uint32_t switchTimeoutValue; |
| uint8_t switchMode; |
| } tLimChannelSwitchInfo, *tpLimChannelSwitchInfo; |
| |
| typedef struct sLimOperatingModeInfo { |
| uint8_t present; |
| uint8_t chanWidth:2; |
| uint8_t reserved:2; |
| uint8_t rxNSS:3; |
| uint8_t rxNSSType:1; |
| } tLimOperatingModeInfo, *tpLimOperatingModeInfo; |
| |
| typedef struct sLimWiderBWChannelSwitch { |
| uint8_t newChanWidth; |
| uint8_t newCenterChanFreq0; |
| uint8_t newCenterChanFreq1; |
| } tLimWiderBWChannelSwitchInfo, *tpLimWiderBWChannelSwitchInfo; |
| |
| /* Enums used when stopping the Tx. */ |
| typedef enum eLimQuietTxMode { |
| /* Stop/resume transmission of all stations,Uses the global flag */ |
| eLIM_TX_ALL = 0, |
| /* |
| * Stops/resumes the transmission of specific stations identified |
| * by staId. |
| */ |
| eLIM_TX_STA, |
| /* Stops/resumes the transmission of all the packets in BSS */ |
| eLIM_TX_BSS, |
| /* |
| * Stops/resumes the transmission of all packets except beacons in BSS |
| * This is used when radar is detected in the current operating channel. |
| * Beacon has to be sent to notify the stations associated about the |
| * scheduled channel switch |
| */ |
| eLIM_TX_BSS_BUT_BEACON |
| } tLimQuietTxMode; |
| |
| typedef enum eLimControlTx { |
| eLIM_RESUME_TX = 0, |
| eLIM_STOP_TX |
| } tLimControlTx; |
| |
| /* -------------------------------------------------------------------- */ |
| |
| typedef struct sLimTspecInfo { |
| /* 0==free, else used */ |
| uint8_t inuse; |
| /* index in list */ |
| uint8_t idx; |
| tSirMacAddr staAddr; |
| uint16_t assocId; |
| tSirMacTspecIE tspec; |
| /* number of Tclas elements */ |
| uint8_t numTclas; |
| tSirTclasInfo tclasInfo[SIR_MAC_TCLASIE_MAXNUM]; |
| uint8_t tclasProc; |
| /* tclassProc is valid only if this is set to 1. */ |
| uint8_t tclasProcPresent:1; |
| } qdf_packed tLimTspecInfo, *tpLimTspecInfo; |
| |
| typedef struct sLimAdmitPolicyInfo { |
| /* admit control policy type */ |
| uint8_t type; |
| /* oversubscription factor : 0 means nothing is allowed */ |
| uint8_t bw_factor; |
| /* valid only when 'type' is set BW_FACTOR */ |
| } tLimAdmitPolicyInfo, *tpLimAdmitPolicyInfo; |
| |
| typedef enum eLimWscEnrollState { |
| eLIM_WSC_ENROLL_NOOP, |
| eLIM_WSC_ENROLL_BEGIN, |
| eLIM_WSC_ENROLL_IN_PROGRESS, |
| eLIM_WSC_ENROLL_END |
| } tLimWscEnrollState; |
| |
| #define WSC_PASSWD_ID_PUSH_BUTTON (0x0004) |
| |
| typedef struct sLimWscIeInfo { |
| bool apSetupLocked; |
| bool selectedRegistrar; |
| uint16_t selectedRegistrarConfigMethods; |
| tLimWscEnrollState wscEnrollmentState; |
| tLimWscEnrollState probeRespWscEnrollmentState; |
| uint8_t reqType; |
| uint8_t respType; |
| } tLimWscIeInfo, *tpLimWscIeInfo; |
| |
| /* maximum number of tspec's supported */ |
| #define LIM_NUM_TSPEC_MAX 15 |
| |
| /* structure to hold all 11h specific data */ |
| typedef struct sLimSpecMgmtInfo { |
| tLimQuietStates quietState; |
| uint32_t quietCount; |
| /* This is in units of system TICKS */ |
| uint32_t quietDuration; |
| /* This is in units of TU, for over the air transmission */ |
| uint32_t quietDuration_TU; |
| /* After this timeout, actual quiet starts */ |
| uint32_t quietTimeoutValue; |
| /* Used on AP, if quiet is enabled during learning */ |
| bool fQuietEnabled; |
| tLimDot11hChanSwStates dot11hChanSwState; |
| /* Radar detected in cur oper chan on AP */ |
| bool fRadarDetCurOperChan; |
| /* Whether radar interrupt has been configured */ |
| bool fRadarIntrConfigured; |
| } tLimSpecMgmtInfo, *tpLimSpecMgmtInfo; |
| |
| #ifdef FEATURE_WLAN_TDLS |
| /* |
| * Peer info needed for TDLS setup.. |
| */ |
| typedef struct tLimTDLSPeerSta { |
| struct tLimTDLSPeerSta *next; |
| uint8_t dialog; |
| tSirMacAddr peerMac; |
| tSirMacCapabilityInfo capabilityInfo; |
| tSirMacRateSet supportedRates; |
| tSirMacRateSet extendedRates; |
| tSirMacQosCapabilityStaIE qosCaps; |
| tSirMacEdcaParamSetIE edcaParams; |
| uint8_t mcsSet[SIZE_OF_SUPPORTED_MCS_SET]; |
| uint8_t tdls_bIsResponder; |
| /* HT Capabilties */ |
| tDot11fIEHTCaps tdlsPeerHTCaps; |
| tDot11fIEExtCap tdlsPeerExtCaps; |
| uint8_t tdls_flags; |
| uint8_t tdls_link_state; |
| uint8_t tdls_prev_link_state; |
| uint8_t tdls_sessionId; |
| uint8_t ExtRatesPresent; |
| TX_TIMER gLimTdlsLinkSetupRspTimeoutTimer; |
| TX_TIMER gLimTdlsLinkSetupCnfTimeoutTimer; |
| } tLimTdlsLinkSetupPeer, *tpLimTdlsLinkSetupPeer; |
| |
| typedef struct tLimTdlsLinkSetupInfo { |
| tLimTdlsLinkSetupPeer *tdlsLinkSetupList; |
| uint8_t num_tdls_peers; |
| uint8_t tdls_flags; |
| uint8_t tdls_state; |
| uint8_t tdls_prev_state; |
| } tLimTdlsLinkSetupInfo, *tpLimTdlsLinkSetupInfo; |
| |
| typedef enum tdlsLinkMode { |
| TDLS_LINK_MODE_BG, |
| TDLS_LINK_MODE_N, |
| TDLS_LINK_MODE_AC, |
| TDLS_LINK_MODE_NONE |
| } eLimTdlsLinkMode; |
| #endif /* FEATURE_WLAN_TDLS */ |
| |
| #endif |