blob: ce27bee265f12ca3ec0b5ce0c870e26cddfa2d5e [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 * */
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
54 Copyright 2008 (c) Qualcomm, Incorporated. All Rights Reserved.
55
56 Qualcomm Confidential and Proprietary.
57
58 ========================================================================*/
59
60/* $Header$ */
61
62/*--------------------------------------------------------------------------
63 Include Files
64 ------------------------------------------------------------------------*/
65#include "vos_lock.h"
66#include "vos_trace.h"
67#include "vos_memory.h"
68#include "vos_types.h"
69#include "palTimer.h"
70#include "rrmGlobal.h"
71
72/*--------------------------------------------------------------------------
73 Type declarations
74 ------------------------------------------------------------------------*/
75typedef struct sRrmConfigParam
76{
77 tANI_U8 rrmEnabled;
78 tANI_U8 maxRandnInterval;
79}tRrmConfigParam, *tpRrmConfigParam;
80
81typedef struct sRrmNeighborReportDesc
82{
83 tListElem List;
84 tSirNeighborBssDescription *pNeighborBssDescription;
85 tANI_U32 roamScore;
86} tRrmNeighborReportDesc, *tpRrmNeighborReportDesc;
87
88
89typedef void (*NeighborReportRspCallback) (void *context, VOS_STATUS vosStatus);
90
91typedef struct sRrmNeighborRspCallbackInfo
92{
93 tANI_U32 timeout; //in ms.. min value is 10 (10ms)
94 NeighborReportRspCallback neighborRspCallback;
95 void *neighborRspCallbackContext;
96} tRrmNeighborRspCallbackInfo, *tpRrmNeighborRspCallbackInfo;
97
98typedef struct sRrmNeighborRequestControlInfo
99{
100 tANI_BOOLEAN isNeighborRspPending; //To check whether a neighbor req is already sent and response pending
101 vos_timer_t neighborRspWaitTimer;
102 tRrmNeighborRspCallbackInfo neighborRspCallbackInfo;
103} tRrmNeighborRequestControlInfo, *tpRrmNeighborRequestControlInfo;
104
105typedef struct sRrmSMEContext
106{
107 tANI_U16 token;
108 tCsrBssid sessionBssId;
109 tANI_U8 regClass;
110 tCsrChannelInfo channelList; //list of all channels to be measured.
111 tANI_U8 currentIndex;
112 tAniSSID ssId; //SSID used in the measuring beacon report.
113 tSirMacAddr bssId; //bssid used for beacon report measurement.
114 tANI_U16 randnIntvl; //Randomization interval to be used in subsequent measurements.
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -0800115 tANI_U16 duration[SIR_CCX_MAX_MEAS_IE_REQS];
116 tANI_U8 measMode[SIR_CCX_MAX_MEAS_IE_REQS];
Jeff Johnson295189b2012-06-20 16:38:30 -0700117 tRrmConfigParam rrmConfig;
118 vos_timer_t IterMeasTimer;
119 tDblLinkList neighborReportCache;
120 tRrmNeighborRequestControlInfo neighborReqControlInfo;
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -0800121
122#if defined(FEATURE_WLAN_CCX) && defined(FEATURE_WLAN_CCX_UPLOAD)
123 tCsrCcxBeaconReq ccxBcnReqInfo;
124#endif /* FEATURE_WLAN_CCX && FEATURE_WLAN_CCX_UPLOAD */
Jeff Johnson295189b2012-06-20 16:38:30 -0700125}tRrmSMEContext, *tpRrmSMEContext;
126
127typedef struct sRrmNeighborReq
128{
129 tANI_U8 no_ssid;
130 tSirMacSSid ssid;
131}tRrmNeighborReq, *tpRrmNeighborReq;
132
133#endif //#if !defined( __SMERRMINTERNAL_H )