blob: 9a7ba3b5c5f7b04cc1abb3911bb3cb1403f5b3c3 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Gopichand Nakkala92f07d82013-01-08 21:16:34 -08002 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21/*
Jeff Johnson32d95a32012-09-10 13:15:23 -070022 * Copyright (c) 2012, The Linux Foundation. All rights reserved.
Jeff Johnson295189b2012-06-20 16:38:30 -070023 *
24 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
25 *
26 *
27 * Permission to use, copy, modify, and/or distribute this software for
28 * any purpose with or without fee is hereby granted, provided that the
29 * above copyright notice and this permission notice appear in all
30 * copies.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
33 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
34 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
35 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
36 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
37 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
38 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
39 * PERFORMANCE OF THIS SOFTWARE.
40 */
41
42/*
43 * This file limAssocUtils.h contains the utility definitions
44 * LIM uses while processing Re/Association messages.
45 * Author: Chandra Modumudi
46 * Date: 02/13/02
47 * History:-
48 * Date Modified by Modification Information
49 * --------------------------------------------------------------------
50 * 05/26/10 js WPA handling in (Re)Assoc frames
Jeff Johnson3c3e1782013-02-27 10:48:42 -080051 *
Jeff Johnson295189b2012-06-20 16:38:30 -070052 */
53#ifndef __LIM_ASSOC_UTILS_H
54#define __LIM_ASSOC_UTILS_H
55
56#include "sirApi.h"
57#include "sirDebug.h"
58#include "cfgApi.h"
59
60#include "limTypes.h"
61
62
63tANI_U8 limCmpSSid(tpAniSirGlobal, tSirMacSSid *,tpPESession);
64tANI_U8 limCompareCapabilities(tpAniSirGlobal,
65 tSirAssocReq *,
66 tSirMacCapabilityInfo *,tpPESession);
67tANI_U8 limCheckRxBasicRates(tpAniSirGlobal, tSirMacRateSet,tpPESession);
Jeff Johnson295189b2012-06-20 16:38:30 -070068tANI_U8 limCheckRxRSNIeMatch(tpAniSirGlobal, tDot11fIERSN, tpPESession, tANI_U8);
69tANI_U8 limCheckRxWPAIeMatch(tpAniSirGlobal, tDot11fIEWPA, tpPESession, tANI_U8);
Jeff Johnson295189b2012-06-20 16:38:30 -070070tANI_U8 limCheckMCSSet(tpAniSirGlobal pMac, tANI_U8* supportedMCSSet);
71void limPostDummyToTmRing(tpAniSirGlobal, tpDphHashNode);
72void limPostPacketToTdRing(tpAniSirGlobal,
73 tpDphHashNode,
74 tANI_U8);
75tSirRetStatus limCleanupRxPath(tpAniSirGlobal, tpDphHashNode,tpPESession);
76void limRejectAssociation(tpAniSirGlobal , tSirMacAddr, tANI_U8,
77 tANI_U8 , tAniAuthType,
78 tANI_U16, tANI_U8, tSirResultCodes, tpPESession);
79
Jeff Johnsone7245742012-09-05 17:12:55 -070080#ifdef WLAN_FEATURE_11AC
81tSirRetStatus limPopulateOwnRateSet(tpAniSirGlobal pMac,
82 tpSirSupportedRates pRates,
83 tANI_U8* pSupportedMCSSet,
84 tANI_U8 basicOnly,
85 tpPESession psessionEntry,
86 tDot11fIEVHTCaps *pVHTCaps);
87
88#else
Jeff Johnson295189b2012-06-20 16:38:30 -070089tSirRetStatus limPopulateOwnRateSet(tpAniSirGlobal pMac,
90 tpSirSupportedRates pRates,
91 tANI_U8* pSupportedMCSSet,
92 tANI_U8 basicOnly,
93 tpPESession psessionEntry);
Jeff Johnsone7245742012-09-05 17:12:55 -070094#endif
Jeff Johnson295189b2012-06-20 16:38:30 -070095
Jeff Johnsone7245742012-09-05 17:12:55 -070096#ifdef WLAN_FEATURE_11AC
97tSirRetStatus
98limPopulateMatchingRateSet(tpAniSirGlobal pMac,
99 tpDphHashNode pStaDs,
100 tSirMacRateSet *pOperRateSet,
101 tSirMacRateSet *pExtRateSet,
102 tANI_U8* pSupportedMCSSet,
103 tSirMacPropRateSet *pAniLegRateSet,
104 tpPESession psessionEntry,
105 tDot11fIEVHTCaps *pVHTCaps);
106#else
Jeff Johnson295189b2012-06-20 16:38:30 -0700107tSirRetStatus limPopulateMatchingRateSet(tpAniSirGlobal,
108 tpDphHashNode,
109 tSirMacRateSet *,
110 tSirMacRateSet *,
111 tANI_U8* pSupportedMCSSet,
112 tSirMacPropRateSet *, tpPESession);
Jeff Johnsone7245742012-09-05 17:12:55 -0700113
114
115#endif
Gopichand Nakkala681989c2013-03-06 22:27:48 -0800116tSirRetStatus limAddSta(tpAniSirGlobal, tpDphHashNode, tANI_U8, tpPESession);
Jeff Johnson295189b2012-06-20 16:38:30 -0700117tSirRetStatus limDelBss(tpAniSirGlobal, tpDphHashNode, tANI_U16, tpPESession);
118tSirRetStatus limDelSta(tpAniSirGlobal, tpDphHashNode, tANI_BOOLEAN, tpPESession);
119#ifdef WLAN_FEATURE_VOWIFI_11R
Jeff Johnson3c3e1782013-02-27 10:48:42 -0800120tSirRetStatus limAddFTStaSelf(tpAniSirGlobal pMac, tANI_U16 assocId,
Jeff Johnson295189b2012-06-20 16:38:30 -0700121 tpPESession psessionEntry);
122#endif /* WLAN_FEATURE_VOWIFI_11R */
123tSirRetStatus limAddStaSelf(tpAniSirGlobal, tANI_U16, tANI_U8, tpPESession);
124tStaRateMode limGetStaRateMode(tANI_U8 dot11Mode);
125
126
127void limTeardownInfraBss(tpAniSirGlobal,tpPESession);
128void limRestorePreReassocState(tpAniSirGlobal,
129 tSirResultCodes,
130 tANI_U16,tpPESession);
Madan Mohan Koyyalamudi85d140a2012-10-18 20:23:01 -0700131void limPostReassocFailure(tpAniSirGlobal,
132 tSirResultCodes,
133 tANI_U16,tpPESession);
Jeff Johnson295189b2012-06-20 16:38:30 -0700134eAniBoolean limIsReassocInProgress(tpAniSirGlobal,tpPESession);
135void
136limSendDelStaCnf(tpAniSirGlobal pMac, tSirMacAddr staDsAddr,
137 tANI_U16 staDsAssocId, tLimMlmStaContext mlmStaContext, tSirResultCodes statusCode,tpPESession psessionEntry);
138
139void limHandleCnfWaitTimeout(tpAniSirGlobal pMac, tANI_U16 staId);
140void limDeleteDphHashEntry(tpAniSirGlobal, tSirMacAddr, tANI_U16,tpPESession);
141void limCheckAndAnnounceJoinSuccess(tpAniSirGlobal,
142 tSirProbeRespBeacon *,
143 tpSirMacMgmtHdr,tpPESession);
144void limUpdateReAssocGlobals(tpAniSirGlobal pMac,
145 tpSirAssocRsp pAssocRsp,tpPESession psessionEntry);
146
147void limUpdateAssocStaDatas(tpAniSirGlobal pMac,
148 tpDphHashNode pStaDs,tpSirAssocRsp pAssocRsp,tpPESession psessionEntry);
149void
150limFillSupportedRatesInfo(
151 tpAniSirGlobal pMac,
152 tpDphHashNode pSta,
153 tpSirSupportedRates pRates,
154 tpPESession psessionEntry);
155
Jeff Johnson62c27982013-02-27 17:53:55 -0800156tSirRetStatus limStaSendAddBss(tpAniSirGlobal pMac, tpSirAssocRsp pAssocRsp,
Jeff Johnson295189b2012-06-20 16:38:30 -0700157 tpSchBeaconStruct pBeaconStruct, tpSirBssDescription bssDescription, tANI_U8 updateEntry, tpPESession psessionEntry);
158tSirRetStatus limStaSendAddBssPreAssoc( tpAniSirGlobal pMac, tANI_U8 updateEntry, tpPESession psessionEntry);
159
Jeff Johnson295189b2012-06-20 16:38:30 -0700160void limPrepareAndSendDelStaCnf(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tSirResultCodes statusCode,tpPESession);
161tSirRetStatus limExtractApCapabilities(tpAniSirGlobal pMac, tANI_U8 * pIE, tANI_U16 ieLen, tpSirProbeRespBeacon beaconStruct);
162void limInitPreAuthTimerTable(tpAniSirGlobal pMac, tpLimPreAuthTable pPreAuthTimerTable);
163tpLimPreAuthNode limAcquireFreePreAuthNode(tpAniSirGlobal pMac, tpLimPreAuthTable pPreAuthTimerTable);
164tpLimPreAuthNode limGetPreAuthNodeFromIndex(tpAniSirGlobal pMac, tpLimPreAuthTable pAuthTable, tANI_U32 authNodeIdx);
165
166/* Util API to check if the channels supported by STA is within range */
167tSirRetStatus limIsDot11hSupportedChannelsValid(tpAniSirGlobal pMac, tSirAssocReq *assoc);
168
169/* Util API to check if the txpower supported by STA is within range */
170tSirRetStatus limIsDot11hPowerCapabilitiesInRange(tpAniSirGlobal pMac, tSirAssocReq *assoc,tpPESession);
171
172/* API to re-add the same BSS during re-association */
173void limHandleAddBssInReAssocContext(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tpPESession psessionEntry);
174
175/* API to fill in RX Highest Supported data Rate */
176void limFillRxHighestSupportedRate(tpAniSirGlobal pMac, tANI_U16 *rxHighestRate, tANI_U8* pSupportedMCSSet);
Madan Mohan Koyyalamudi61bc5662012-11-02 14:33:10 -0700177#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_CCX) || defined(FEATURE_WLAN_LFR)
178void limSendRetryReassocReqFrame(tpAniSirGlobal pMac, tLimMlmReassocReq *pMlmReassocReq, tpPESession psessionEntry);
179#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700180
181
182#endif /* __LIM_ASSOC_UTILS_H */
183