blob: 2b1d4bbd6c97f9f319051e6fcc3ad313582253e9 [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#if !defined( __SAP_CH_SELECT_H )
43#define __SAP_CH_SELECT_H
Srinivas Girigowdade697412013-02-14 16:31:48 -080044
45/*
46* Copyright (c) 2012-2013 Qualcomm Atheros, Inc.
47* All Rights Reserved.
48* Qualcomm Atheros Confidential and Proprietary.
49*/
Jeff Johnson295189b2012-06-20 16:38:30 -070050/*===========================================================================
51
52 s a p C h S e l e c t . h
53
54 OVERVIEW:
55
56 This software unit holds the implementation of the WLAN SAP modules
57 functions for channel selection.
58
59 DEPENDENCIES:
60
61
62 Are listed for each API below.
63
64
65 Copyright (c) 2010 QUALCOMM Incorporated.
66 All Rights Reserved.
67 Qualcomm Confidential and Proprietary
68===========================================================================*/
69
70/*===========================================================================
71
72 EDIT HISTORY FOR FILE
73
74
75 This section contains comments describing changes made to the module.
76 Notice that changes are listed in reverse chronological order.
77
78
79
80 when who what, where, why
81---------- ----- --------------------------------------------------------
822010-03-15 SoftAP Created module
83
84===========================================================================*/
85
86
87/*--------------------------------------------------------------------------
88 Include Files
89------------------------------------------------------------------------*/
90#include "aniGlobal.h"
91/*--------------------------------------------------------------------------
92 defines and enum
93--------------------------------------------------------------------------*/
94
95#define SPECT_24GHZ_CH_COUNT (11) // USA regulatory domain
96#define SAPDFS_NORMALISE_1000 (1000/9) // Case of spec20 with channel diff = 0
97/* Gen 5 values
98#define SOFTAP_MIN_RSSI (-85)
99#define SOFTAP_MAX_RSSI (-45)
100*/
101#define SOFTAP_MIN_RSSI (-100)
102#define SOFTAP_MAX_RSSI (0)
103#define SOFTAP_MIN_COUNT (0)
104#define SOFTAP_MAX_COUNT (60)
105#define SOFTAP_RSSI_WEIGHT (20)
106#define SOFTAP_COUNT_WEIGHT (20)
107
108#define SAP_DEFAULT_CHANNEL (6)
109#define SAP_DEFAULT_5GHZ_CHANNEL (40)
110#define SAP_CHANNEL_NOT_SELECTED (0)
Madan Mohan Koyyalamudi527935a2012-12-04 16:41:16 -0800111
112#define SOFTAP_HT20_CHANNELWIDTH 0
Venkata Prathyusha Kuntupallie2e72082013-01-30 17:37:50 -0800113#define SAP_SUBBAND1_RSSI_EFFECT_PRIMARY (-20) // In HT40/VHT80, Effect of primary Channel RSSi on Subband1
114#define SAP_SUBBAND2_RSSI_EFFECT_PRIMARY (-30) // In VHT80, Effect of primary Channel RSSI on Subband2
115#define SAP_SUBBAND3_RSSI_EFFECT_PRIMARY (-40) // In VHT80, Effect of Primary Channel RSSI on Subband3
116
117#define SAP_24GHZ_FIRST_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY (-10) // In 2.4GHZ, Effect of Primary Channel RSSI on First Overlapping Channel
118#define SAP_24GHZ_SEC_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY (-20) // In 2.4GHZ, Effect of Primary Channel RSSI on Second Overlapping Channel
119#define SAP_24GHZ_THIRD_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY (-30) // In 2.4GHZ, Effect of Primary Channel RSSI on Third Overlapping Channel
120#define SAP_24GHZ_FOURTH_OVERLAP_CHAN_RSSI_EFFECT_PRIMARY (-40) // In 2.4GHZ, Effect of Primary Channel RSSI on Fourth Overlapping Channel
121
122typedef enum
123{
124 CHANNEL_1 = 1,
125 CHANNEL_2,
126 CHANNEL_3,
127 CHANNEL_4,
128 CHANNEL_5,
129 CHANNEL_6,
130 CHANNEL_7,
131 CHANNEL_8,
132 CHANNEL_9,
133 CHANNEL_10,
134 CHANNEL_11
135} tSapChannel;
136
Jeff Johnson295189b2012-06-20 16:38:30 -0700137/**
138* Structure holding information of each channel in the spectrum,
139* it contains the channel number, the computed weight
140*/
Madan Mohan Koyyalamudi5aef2af2012-10-05 11:56:27 -0700141
Madan Mohan Koyyalamudi5aef2af2012-10-05 11:56:27 -0700142typedef struct sSapChannelListInfo{
Madan Mohan Koyyalamudi1bed5982012-10-22 14:38:06 -0700143 v_U8_t numChannel;
144 v_U8_t *channelList;
Madan Mohan Koyyalamudi5aef2af2012-10-05 11:56:27 -0700145} tSapChannelListInfo;
146
Jeff Johnson295189b2012-06-20 16:38:30 -0700147typedef struct {
148 v_U16_t chNum; // Channel Number
Madan Mohan Koyyalamudi527935a2012-12-04 16:41:16 -0800149 v_U16_t channelWidth; // Channel Width
Jeff Johnson295189b2012-06-20 16:38:30 -0700150 v_U16_t bssCount; // bss found in scanresult for this channel
151 v_S31_t rssiAgr; // Max value of rssi among all BSS(es) from scanresult for this channel
152 v_U32_t weight; // Weightage of this channel
153 v_BOOL_t valid; // Is this a valid center frequency for regulatory domain
154} tSapSpectChInfo;//tDfsSpectChInfo;
155
156/**
157* Structure holding all the information required to make a
158* decision for the best operating channel based on dfs formula
159*/
Madan Mohan Koyyalamudi5aef2af2012-10-05 11:56:27 -0700160
Jeff Johnson295189b2012-06-20 16:38:30 -0700161typedef struct {
162 tSapSpectChInfo *pSpectCh;//tDfsSpectChInfo *pSpectCh; // Ptr to the channels in the entire spectrum band
163 v_U8_t numSpectChans; // Total num of channels in the spectrum
164} tSapChSelSpectInfo;//tDfsChSelParams;
165
166/**
167 * Structure for channel weight calculation parameters
168 */
169typedef struct sSapChSelParams {
170 void *pSpectInfoParams;//*pDfsParams; // Filled with tSapChSelSpectInfo
171 v_U16_t numChannels;
172} tSapChSelParams;
173
174#endif // if !defined __SAP_CH_SELECT_H
175