blob: 419666db30c2df8a47fca4eddc2d587ff42736fa [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Srinivas Girigowda6d1f9062014-02-03 18:15:54 -08002 * Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
Gopichand Nakkala92f07d82013-01-08 21:16:34 -08003 *
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 * */
44#if !defined( __SMERRMINTERNAL_H )
45#define __SMERRMINTERNAL_H
46
47
48/**=========================================================================
49
50 \file smeRrmInternal.h
51
52 \brief prototype for SME RRM APIs
53
Jeff Johnson295189b2012-06-20 16:38:30 -070054 ========================================================================*/
55
56/* $Header$ */
57
58/*--------------------------------------------------------------------------
59 Include Files
60 ------------------------------------------------------------------------*/
61#include "vos_lock.h"
62#include "vos_trace.h"
63#include "vos_memory.h"
64#include "vos_types.h"
65#include "palTimer.h"
66#include "rrmGlobal.h"
67
68/*--------------------------------------------------------------------------
69 Type declarations
70 ------------------------------------------------------------------------*/
71typedef struct sRrmConfigParam
72{
73 tANI_U8 rrmEnabled;
74 tANI_U8 maxRandnInterval;
75}tRrmConfigParam, *tpRrmConfigParam;
76
77typedef struct sRrmNeighborReportDesc
78{
79 tListElem List;
80 tSirNeighborBssDescription *pNeighborBssDescription;
81 tANI_U32 roamScore;
82} tRrmNeighborReportDesc, *tpRrmNeighborReportDesc;
83
84
85typedef void (*NeighborReportRspCallback) (void *context, VOS_STATUS vosStatus);
86
87typedef struct sRrmNeighborRspCallbackInfo
88{
89 tANI_U32 timeout; //in ms.. min value is 10 (10ms)
90 NeighborReportRspCallback neighborRspCallback;
91 void *neighborRspCallbackContext;
92} tRrmNeighborRspCallbackInfo, *tpRrmNeighborRspCallbackInfo;
93
94typedef struct sRrmNeighborRequestControlInfo
95{
96 tANI_BOOLEAN isNeighborRspPending; //To check whether a neighbor req is already sent and response pending
97 vos_timer_t neighborRspWaitTimer;
98 tRrmNeighborRspCallbackInfo neighborRspCallbackInfo;
99} tRrmNeighborRequestControlInfo, *tpRrmNeighborRequestControlInfo;
100
101typedef struct sRrmSMEContext
102{
103 tANI_U16 token;
104 tCsrBssid sessionBssId;
105 tANI_U8 regClass;
106 tCsrChannelInfo channelList; //list of all channels to be measured.
107 tANI_U8 currentIndex;
108 tAniSSID ssId; //SSID used in the measuring beacon report.
109 tSirMacAddr bssId; //bssid used for beacon report measurement.
110 tANI_U16 randnIntvl; //Randomization interval to be used in subsequent measurements.
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -0800111 tANI_U16 duration[SIR_CCX_MAX_MEAS_IE_REQS];
112 tANI_U8 measMode[SIR_CCX_MAX_MEAS_IE_REQS];
Jeff Johnson295189b2012-06-20 16:38:30 -0700113 tRrmConfigParam rrmConfig;
114 vos_timer_t IterMeasTimer;
115 tDblLinkList neighborReportCache;
116 tRrmNeighborRequestControlInfo neighborReqControlInfo;
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -0800117
118#if defined(FEATURE_WLAN_CCX) && defined(FEATURE_WLAN_CCX_UPLOAD)
119 tCsrCcxBeaconReq ccxBcnReqInfo;
120#endif /* FEATURE_WLAN_CCX && FEATURE_WLAN_CCX_UPLOAD */
Srinivas Girigowda6d1f9062014-02-03 18:15:54 -0800121 tRrmMsgReqSource msgSource;
Jeff Johnson295189b2012-06-20 16:38:30 -0700122}tRrmSMEContext, *tpRrmSMEContext;
123
124typedef struct sRrmNeighborReq
125{
126 tANI_U8 no_ssid;
127 tSirMacSSid ssid;
128}tRrmNeighborReq, *tpRrmNeighborReq;
129
130#endif //#if !defined( __SMERRMINTERNAL_H )