blob: 9ba377d6b050ac1e52de09c82b0c79d6bf833ec0 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Kiet Lam0fb93dd2014-02-19 00:32:59 -08002 * Copyright (c) 2012-2014 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
22/*
23 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
26 */
27
28
Jeff Johnson295189b2012-06-20 16:38:30 -070029#if !defined( __SMERRMINTERNAL_H )
30#define __SMERRMINTERNAL_H
31
32
33/**=========================================================================
34
35 \file smeRrmInternal.h
36
37 \brief prototype for SME RRM APIs
38
Kiet Lamaa8e15a2014-02-11 23:30:06 -080039
Jeff Johnson295189b2012-06-20 16:38:30 -070040 ========================================================================*/
41
42/* $Header$ */
43
44/*--------------------------------------------------------------------------
45 Include Files
46 ------------------------------------------------------------------------*/
47#include "vos_lock.h"
48#include "vos_trace.h"
49#include "vos_memory.h"
50#include "vos_types.h"
51#include "palTimer.h"
52#include "rrmGlobal.h"
53
54/*--------------------------------------------------------------------------
55 Type declarations
56 ------------------------------------------------------------------------*/
57typedef struct sRrmConfigParam
58{
59 tANI_U8 rrmEnabled;
60 tANI_U8 maxRandnInterval;
61}tRrmConfigParam, *tpRrmConfigParam;
62
63typedef struct sRrmNeighborReportDesc
64{
65 tListElem List;
66 tSirNeighborBssDescription *pNeighborBssDescription;
67 tANI_U32 roamScore;
68} tRrmNeighborReportDesc, *tpRrmNeighborReportDesc;
69
70
71typedef void (*NeighborReportRspCallback) (void *context, VOS_STATUS vosStatus);
72
73typedef struct sRrmNeighborRspCallbackInfo
74{
75 tANI_U32 timeout; //in ms.. min value is 10 (10ms)
76 NeighborReportRspCallback neighborRspCallback;
77 void *neighborRspCallbackContext;
78} tRrmNeighborRspCallbackInfo, *tpRrmNeighborRspCallbackInfo;
79
80typedef struct sRrmNeighborRequestControlInfo
81{
82 tANI_BOOLEAN isNeighborRspPending; //To check whether a neighbor req is already sent and response pending
83 vos_timer_t neighborRspWaitTimer;
84 tRrmNeighborRspCallbackInfo neighborRspCallbackInfo;
85} tRrmNeighborRequestControlInfo, *tpRrmNeighborRequestControlInfo;
86
87typedef struct sRrmSMEContext
88{
89 tANI_U16 token;
90 tCsrBssid sessionBssId;
91 tANI_U8 regClass;
92 tCsrChannelInfo channelList; //list of all channels to be measured.
93 tANI_U8 currentIndex;
94 tAniSSID ssId; //SSID used in the measuring beacon report.
95 tSirMacAddr bssId; //bssid used for beacon report measurement.
96 tANI_U16 randnIntvl; //Randomization interval to be used in subsequent measurements.
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -080097 tANI_U16 duration[SIR_ESE_MAX_MEAS_IE_REQS];
98 tANI_U8 measMode[SIR_ESE_MAX_MEAS_IE_REQS];
Jeff Johnson295189b2012-06-20 16:38:30 -070099 tRrmConfigParam rrmConfig;
100 vos_timer_t IterMeasTimer;
101 tDblLinkList neighborReportCache;
102 tRrmNeighborRequestControlInfo neighborReqControlInfo;
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -0800103
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800104#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
105 tCsrEseBeaconReq eseBcnReqInfo;
106#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
Srinivas Girigowda6d1f9062014-02-03 18:15:54 -0800107 tRrmMsgReqSource msgSource;
Jeff Johnson295189b2012-06-20 16:38:30 -0700108}tRrmSMEContext, *tpRrmSMEContext;
109
110typedef struct sRrmNeighborReq
111{
112 tANI_U8 no_ssid;
113 tSirMacSSid ssid;
114}tRrmNeighborReq, *tpRrmNeighborReq;
115
116#endif //#if !defined( __SMERRMINTERNAL_H )