blob: e0b6966a2e857b81781223908cd89027e690d080 [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 Copyright 2008 (c) Qualcomm, Incorporated. All Rights Reserved.
40
41 Qualcomm Confidential and Proprietary.
42
Jeff Johnson295189b2012-06-20 16:38:30 -070043 ========================================================================*/
44
45/* $Header$ */
46
47/*--------------------------------------------------------------------------
48 Include Files
49 ------------------------------------------------------------------------*/
50#include "vos_lock.h"
51#include "vos_trace.h"
52#include "vos_memory.h"
53#include "vos_types.h"
54#include "palTimer.h"
55#include "rrmGlobal.h"
56
57/*--------------------------------------------------------------------------
58 Type declarations
59 ------------------------------------------------------------------------*/
60typedef struct sRrmConfigParam
61{
62 tANI_U8 rrmEnabled;
63 tANI_U8 maxRandnInterval;
64}tRrmConfigParam, *tpRrmConfigParam;
65
66typedef struct sRrmNeighborReportDesc
67{
68 tListElem List;
69 tSirNeighborBssDescription *pNeighborBssDescription;
70 tANI_U32 roamScore;
71} tRrmNeighborReportDesc, *tpRrmNeighborReportDesc;
72
73
74typedef void (*NeighborReportRspCallback) (void *context, VOS_STATUS vosStatus);
75
76typedef struct sRrmNeighborRspCallbackInfo
77{
78 tANI_U32 timeout; //in ms.. min value is 10 (10ms)
79 NeighborReportRspCallback neighborRspCallback;
80 void *neighborRspCallbackContext;
81} tRrmNeighborRspCallbackInfo, *tpRrmNeighborRspCallbackInfo;
82
83typedef struct sRrmNeighborRequestControlInfo
84{
85 tANI_BOOLEAN isNeighborRspPending; //To check whether a neighbor req is already sent and response pending
86 vos_timer_t neighborRspWaitTimer;
87 tRrmNeighborRspCallbackInfo neighborRspCallbackInfo;
88} tRrmNeighborRequestControlInfo, *tpRrmNeighborRequestControlInfo;
89
90typedef struct sRrmSMEContext
91{
92 tANI_U16 token;
93 tCsrBssid sessionBssId;
94 tANI_U8 regClass;
95 tCsrChannelInfo channelList; //list of all channels to be measured.
96 tANI_U8 currentIndex;
97 tAniSSID ssId; //SSID used in the measuring beacon report.
98 tSirMacAddr bssId; //bssid used for beacon report measurement.
99 tANI_U16 randnIntvl; //Randomization interval to be used in subsequent measurements.
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800100 tANI_U16 duration[SIR_ESE_MAX_MEAS_IE_REQS];
101 tANI_U8 measMode[SIR_ESE_MAX_MEAS_IE_REQS];
Jeff Johnson295189b2012-06-20 16:38:30 -0700102 tRrmConfigParam rrmConfig;
103 vos_timer_t IterMeasTimer;
104 tDblLinkList neighborReportCache;
105 tRrmNeighborRequestControlInfo neighborReqControlInfo;
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -0800106
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800107#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
108 tCsrEseBeaconReq eseBcnReqInfo;
109#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
Srinivas Girigowda6d1f9062014-02-03 18:15:54 -0800110 tRrmMsgReqSource msgSource;
Jeff Johnson295189b2012-06-20 16:38:30 -0700111}tRrmSMEContext, *tpRrmSMEContext;
112
113typedef struct sRrmNeighborReq
114{
115 tANI_U8 no_ssid;
116 tSirMacSSid ssid;
117}tRrmNeighborReq, *tpRrmNeighborReq;
118
119#endif //#if !defined( __SMERRMINTERNAL_H )