xref: /wlan-driver/qcacld-3.0/components/fw_offload/dispatcher/inc/cfg_neighbor_roam.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2012 - 2018 The Linux Foundation. All rights reserved.
3*5113495bSYour Name  *
4*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for
5*5113495bSYour Name  * any purpose with or without fee is hereby granted, provided that the
6*5113495bSYour Name  * above copyright notice and this permission notice appear in all
7*5113495bSYour Name  * copies.
8*5113495bSYour Name  *
9*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10*5113495bSYour Name  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11*5113495bSYour Name  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12*5113495bSYour Name  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13*5113495bSYour Name  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14*5113495bSYour Name  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15*5113495bSYour Name  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16*5113495bSYour Name  * PERFORMANCE OF THIS SOFTWARE.
17*5113495bSYour Name  */
18*5113495bSYour Name 
19*5113495bSYour Name /**
20*5113495bSYour Name  * DOC: This file contains centralized definitions of converged configuration.
21*5113495bSYour Name  */
22*5113495bSYour Name 
23*5113495bSYour Name #ifndef __CFG_NR_H
24*5113495bSYour Name #define __CFG_NR_H
25*5113495bSYour Name 
26*5113495bSYour Name /*
27*5113495bSYour Name  * <ini>
28*5113495bSYour Name  * 11k_offload_enable_bitmask - 11K offload bitmask feature control
29*5113495bSYour Name  * @Min: 0
30*5113495bSYour Name  * @Max: 1
31*5113495bSYour Name  * @Default: 1
32*5113495bSYour Name  *
33*5113495bSYour Name  * Disabled when 0 and enabled when 1
34*5113495bSYour Name  * Usage: External
35*5113495bSYour Name  *
36*5113495bSYour Name  * </ini>
37*5113495bSYour Name  */
38*5113495bSYour Name #define CFG_OFFLOAD_11K_ENABLE_BITMASK CFG_INI_BOOL( \
39*5113495bSYour Name 		"11k_offload_enable_bitmask", \
40*5113495bSYour Name 		1, \
41*5113495bSYour Name 		"11K offload bitmask feature control")
42*5113495bSYour Name 
43*5113495bSYour Name /*
44*5113495bSYour Name  * <ini>
45*5113495bSYour Name  * nr_offload_params_bitmask - bitmask to specify which of the
46*5113495bSYour Name  * neighbor report offload params are valid in the ini
47*5113495bSYour Name  * frame
48*5113495bSYour Name  * @Min: 0
49*5113495bSYour Name  * @Max: 63
50*5113495bSYour Name  * @Default: 63
51*5113495bSYour Name  *
52*5113495bSYour Name  * This ini specifies which of the neighbor report offload params are valid
53*5113495bSYour Name  * and should be considered by the FW. The bitmask is as follows
54*5113495bSYour Name  * B0: nr_offload_time_offset
55*5113495bSYour Name  * B1: nr_offload_low_rssi_offset
56*5113495bSYour Name  * B2: nr_offload_bmiss_count_trigger
57*5113495bSYour Name  * B3: nr_offload_per_threshold_offset
58*5113495bSYour Name  * B4: nr_offload_cache_timeout
59*5113495bSYour Name  * B5: nr_offload_max_req_cap
60*5113495bSYour Name  * B6-B7: Reserved
61*5113495bSYour Name  *
62*5113495bSYour Name  * Related : 11k_offload_enable_bitmask
63*5113495bSYour Name  *
64*5113495bSYour Name  * Usage: External
65*5113495bSYour Name  *
66*5113495bSYour Name  * </ini>
67*5113495bSYour Name  */
68*5113495bSYour Name #define CFG_OFFLOAD_NEIGHBOR_REPORT_PARAMS_BITMASK CFG_INI_UINT( \
69*5113495bSYour Name 			"nr_offload_params_bitmask", \
70*5113495bSYour Name 			0, \
71*5113495bSYour Name 			63, \
72*5113495bSYour Name 			63, \
73*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
74*5113495bSYour Name 			"Neighbor report offload params validity bitmask")
75*5113495bSYour Name 
76*5113495bSYour Name #define OFFLOAD_11K_BITMASK_NEIGHBOR_REPORT_REQUEST  0x1
77*5113495bSYour Name 
78*5113495bSYour Name /*
79*5113495bSYour Name  * <ini>
80*5113495bSYour Name  * nr_offload_time_offset - time interval in seconds after the
81*5113495bSYour Name  * neighbor report offload command to send the first neighbor report request
82*5113495bSYour Name  * frame
83*5113495bSYour Name  * @Min: 0
84*5113495bSYour Name  * @Max: 3600
85*5113495bSYour Name  * @Default: 30
86*5113495bSYour Name  *
87*5113495bSYour Name  * Related : nr_offload_params_bitmask
88*5113495bSYour Name  *
89*5113495bSYour Name  * Usage: External
90*5113495bSYour Name  *
91*5113495bSYour Name  * </ini>
92*5113495bSYour Name  */
93*5113495bSYour Name #define CFG_OFFLOAD_NEIGHBOR_REPORT_TIME_OFFSET CFG_INI_UINT( \
94*5113495bSYour Name 		"nr_offload_time_offset", \
95*5113495bSYour Name 		0, \
96*5113495bSYour Name 		3600, \
97*5113495bSYour Name 		30, \
98*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
99*5113495bSYour Name 		"Neighbor report time offset")
100*5113495bSYour Name 
101*5113495bSYour Name /*
102*5113495bSYour Name  * <ini>
103*5113495bSYour Name  * nr_offload_low_rssi_offset - offset from the roam RSSI threshold
104*5113495bSYour Name  * to trigger the neighbor report request frame (in dBm)
105*5113495bSYour Name  * @Min: 4
106*5113495bSYour Name  * @Max: 10
107*5113495bSYour Name  * @Default: 4
108*5113495bSYour Name  *
109*5113495bSYour Name  * Related : nr_offload_params_bitmask
110*5113495bSYour Name  *
111*5113495bSYour Name  * Usage: External
112*5113495bSYour Name  *
113*5113495bSYour Name  * </ini>
114*5113495bSYour Name  */
115*5113495bSYour Name #define CFG_OFFLOAD_NEIGHBOR_REPORT_LOW_RSSI_OFFSET CFG_INI_UINT( \
116*5113495bSYour Name 		"nr_offload_low_rssi_offset", \
117*5113495bSYour Name 		4, \
118*5113495bSYour Name 		10, \
119*5113495bSYour Name 		4, \
120*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
121*5113495bSYour Name 		"Neighbor report low RSSI offset")
122*5113495bSYour Name 
123*5113495bSYour Name /*
124*5113495bSYour Name  * <ini>
125*5113495bSYour Name  * nr_offload_bmiss_count_trigger - Number of beacon miss events to
126*5113495bSYour Name  * trigger a neighbor report request frame
127*5113495bSYour Name  * @Min: 1
128*5113495bSYour Name  * @Max: 5
129*5113495bSYour Name  * @Default: 1
130*5113495bSYour Name  *
131*5113495bSYour Name  * Related : nr_offload_params_bitmask
132*5113495bSYour Name  *
133*5113495bSYour Name  * Usage: External
134*5113495bSYour Name  *
135*5113495bSYour Name  * </ini>
136*5113495bSYour Name  */
137*5113495bSYour Name #define CFG_OFFLOAD_NEIGHBOR_REPORT_BMISS_COUNT_TRIGGER CFG_INI_UINT( \
138*5113495bSYour Name 		"nr_offload_bmiss_count_trigger", \
139*5113495bSYour Name 		1, \
140*5113495bSYour Name 		5, \
141*5113495bSYour Name 		1, \
142*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
143*5113495bSYour Name 		"Beacon miss count trigger for neighbor report req frame")
144*5113495bSYour Name 
145*5113495bSYour Name /*
146*5113495bSYour Name  * <ini>
147*5113495bSYour Name  * nr_offload_per_threshold_offset - offset from PER threshold to
148*5113495bSYour Name  * trigger a neighbor report request frame (in %)
149*5113495bSYour Name  * @Min: 5
150*5113495bSYour Name  * @Max: 20
151*5113495bSYour Name  * @Default: 5
152*5113495bSYour Name  *
153*5113495bSYour Name  * This ini is used to set the neighbor report offload parameter:
154*5113495bSYour Name  *
155*5113495bSYour Name  * Related : nr_offload_params_bitmask
156*5113495bSYour Name  *
157*5113495bSYour Name  * Usage: External
158*5113495bSYour Name  *
159*5113495bSYour Name  * </ini>
160*5113495bSYour Name  */
161*5113495bSYour Name #define CFG_OFFLOAD_NEIGHBOR_REPORT_PER_THRESHOLD_OFFSET CFG_INI_UINT( \
162*5113495bSYour Name 		"nr_offload_per_threshold_offset", \
163*5113495bSYour Name 		5, \
164*5113495bSYour Name 		20, \
165*5113495bSYour Name 		5, \
166*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
167*5113495bSYour Name 		"PER threshold offset to trigger neighbor report req frame")
168*5113495bSYour Name 
169*5113495bSYour Name /*
170*5113495bSYour Name  * <ini>
171*5113495bSYour Name  * nr_offload_cache_timeout - time in seconds after which the
172*5113495bSYour Name  * neighbor report cache is marked as timed out and any of the triggers would
173*5113495bSYour Name  * cause a neighbor report request frame to be sent.
174*5113495bSYour Name  * @Min: 5
175*5113495bSYour Name  * @Max: 86400
176*5113495bSYour Name  * @Default: 1200
177*5113495bSYour Name  *
178*5113495bSYour Name  * Related : nr_offload_params_bitmask
179*5113495bSYour Name  *
180*5113495bSYour Name  * Usage: External
181*5113495bSYour Name  *
182*5113495bSYour Name  * </ini>
183*5113495bSYour Name  */
184*5113495bSYour Name #define CFG_OFFLOAD_NEIGHBOR_REPORT_CACHE_TIMEOUT CFG_INI_UINT( \
185*5113495bSYour Name 		"nr_offload_cache_timeout", \
186*5113495bSYour Name 		5, \
187*5113495bSYour Name 		86400, \
188*5113495bSYour Name 		1200, \
189*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
190*5113495bSYour Name 		"Neighbor report cache timeout to trigger report req frame")
191*5113495bSYour Name 
192*5113495bSYour Name /*
193*5113495bSYour Name  * <ini>
194*5113495bSYour Name  * nr_offload_max_req_cap - Max number of neighbor
195*5113495bSYour Name  * report requests that can be sent to a connected peer in the current session.
196*5113495bSYour Name  * This counter is reset once a successful roam happens or at cache timeout
197*5113495bSYour Name  * @Min: 3
198*5113495bSYour Name  * @Max: 300
199*5113495bSYour Name  * @Default: 3
200*5113495bSYour Name  *
201*5113495bSYour Name  * Related : nr_offload_params_bitmask
202*5113495bSYour Name  *
203*5113495bSYour Name  * Usage: External
204*5113495bSYour Name  *
205*5113495bSYour Name  * </ini>
206*5113495bSYour Name  */
207*5113495bSYour Name #define CFG_OFFLOAD_NEIGHBOR_REPORT_MAX_REQ_CAP CFG_INI_UINT( \
208*5113495bSYour Name 		"nr_offload_max_req_cap", \
209*5113495bSYour Name 		3, \
210*5113495bSYour Name 		300, \
211*5113495bSYour Name 		3, \
212*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
213*5113495bSYour Name 		"Max neighbor report request to be sent to connected peer")
214*5113495bSYour Name 
215*5113495bSYour Name #define CFG_11K_ALL \
216*5113495bSYour Name 	CFG(CFG_OFFLOAD_11K_ENABLE_BITMASK) \
217*5113495bSYour Name 	CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_PARAMS_BITMASK) \
218*5113495bSYour Name 	CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_TIME_OFFSET) \
219*5113495bSYour Name 	CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_LOW_RSSI_OFFSET) \
220*5113495bSYour Name 	CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_BMISS_COUNT_TRIGGER) \
221*5113495bSYour Name 	CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_PER_THRESHOLD_OFFSET) \
222*5113495bSYour Name 	CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_CACHE_TIMEOUT) \
223*5113495bSYour Name 	CFG(CFG_OFFLOAD_NEIGHBOR_REPORT_MAX_REQ_CAP)
224*5113495bSYour Name 
225*5113495bSYour Name #endif
226