blob: c0688282667336f74b3fb394c5247bc70ac78bea [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Kiet Lamaa8e15a2014-02-11 23:30:06 -08002 * Copyright (c) 2012-2014 Qualcomm Atheros, Inc.
3 * All Rights Reserved.
4 * Qualcomm Atheros Confidential and Proprietary.
Jeff Johnson295189b2012-06-20 16:38:30 -07005 * */
6#if !defined( __SMERRMINTERNAL_H )
7#define __SMERRMINTERNAL_H
8
9
10/**=========================================================================
11
12 \file smeRrmInternal.h
13
14 \brief prototype for SME RRM APIs
15
Kiet Lamaa8e15a2014-02-11 23:30:06 -080016 Copyright 2008 (c) Qualcomm, Incorporated. All Rights Reserved.
17
18 Qualcomm Confidential and Proprietary.
19
Jeff Johnson295189b2012-06-20 16:38:30 -070020 ========================================================================*/
21
22/* $Header$ */
23
24/*--------------------------------------------------------------------------
25 Include Files
26 ------------------------------------------------------------------------*/
27#include "vos_lock.h"
28#include "vos_trace.h"
29#include "vos_memory.h"
30#include "vos_types.h"
31#include "palTimer.h"
32#include "rrmGlobal.h"
33
34/*--------------------------------------------------------------------------
35 Type declarations
36 ------------------------------------------------------------------------*/
37typedef struct sRrmConfigParam
38{
39 tANI_U8 rrmEnabled;
40 tANI_U8 maxRandnInterval;
41}tRrmConfigParam, *tpRrmConfigParam;
42
43typedef struct sRrmNeighborReportDesc
44{
45 tListElem List;
46 tSirNeighborBssDescription *pNeighborBssDescription;
47 tANI_U32 roamScore;
48} tRrmNeighborReportDesc, *tpRrmNeighborReportDesc;
49
50
51typedef void (*NeighborReportRspCallback) (void *context, VOS_STATUS vosStatus);
52
53typedef struct sRrmNeighborRspCallbackInfo
54{
55 tANI_U32 timeout; //in ms.. min value is 10 (10ms)
56 NeighborReportRspCallback neighborRspCallback;
57 void *neighborRspCallbackContext;
58} tRrmNeighborRspCallbackInfo, *tpRrmNeighborRspCallbackInfo;
59
60typedef struct sRrmNeighborRequestControlInfo
61{
62 tANI_BOOLEAN isNeighborRspPending; //To check whether a neighbor req is already sent and response pending
63 vos_timer_t neighborRspWaitTimer;
64 tRrmNeighborRspCallbackInfo neighborRspCallbackInfo;
65} tRrmNeighborRequestControlInfo, *tpRrmNeighborRequestControlInfo;
66
67typedef struct sRrmSMEContext
68{
69 tANI_U16 token;
70 tCsrBssid sessionBssId;
71 tANI_U8 regClass;
72 tCsrChannelInfo channelList; //list of all channels to be measured.
73 tANI_U8 currentIndex;
74 tAniSSID ssId; //SSID used in the measuring beacon report.
75 tSirMacAddr bssId; //bssid used for beacon report measurement.
76 tANI_U16 randnIntvl; //Randomization interval to be used in subsequent measurements.
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -080077 tANI_U16 duration[SIR_CCX_MAX_MEAS_IE_REQS];
78 tANI_U8 measMode[SIR_CCX_MAX_MEAS_IE_REQS];
Jeff Johnson295189b2012-06-20 16:38:30 -070079 tRrmConfigParam rrmConfig;
80 vos_timer_t IterMeasTimer;
81 tDblLinkList neighborReportCache;
82 tRrmNeighborRequestControlInfo neighborReqControlInfo;
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -080083
84#if defined(FEATURE_WLAN_CCX) && defined(FEATURE_WLAN_CCX_UPLOAD)
85 tCsrCcxBeaconReq ccxBcnReqInfo;
86#endif /* FEATURE_WLAN_CCX && FEATURE_WLAN_CCX_UPLOAD */
Srinivas Girigowda6d1f9062014-02-03 18:15:54 -080087 tRrmMsgReqSource msgSource;
Jeff Johnson295189b2012-06-20 16:38:30 -070088}tRrmSMEContext, *tpRrmSMEContext;
89
90typedef struct sRrmNeighborReq
91{
92 tANI_U8 no_ssid;
93 tSirMacSSid ssid;
94}tRrmNeighborReq, *tpRrmNeighborReq;
95
96#endif //#if !defined( __SMERRMINTERNAL_H )