RDK-B
wifi_hal_client_mgt.h
Go to the documentation of this file.
1 /*
2  * If not stated otherwise in this file or this component's LICENSE file the
3  * following copyright and licenses apply:
4  *
5  * Copyright 2016 RDK Management
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18 */
19 
20 #ifndef __WIFI_HAL_CLIENTMGT_H__
21 #define __WIFI_HAL_CLIENTMGT_H__
22 
23 #ifdef __cplusplus
24 extern "C"{
25 #endif
26 
27 /**
28  * @addtogroup WIFI_HAL_APIS
29  * @{
30  */
31 /* wifi_getBandSteeringEnable() function */
32 /**
33 * @brief To get Band Steering enable status.
34 *
35 * @param[out] enable Band Steering enable status, to be returned
36 *
37 * @return The status of the operation
38 * @retval RETURN_OK if successful
39 * @retval RETURN_ERR if any error is detected
40 *
41 * @execution Synchronous
42 * @sideeffect None
43 *
44 * @note This function must not suspend and must not invoke any blocking system
45 * calls. It should probably just send a message to a driver event handler task.
46 *
47 */
49 
50 /* wifi_setBandSteeringEnable() function */
51 /**
52 * @brief To turn on/off Band steering.
53 *
54 * @param[in] enable Band Steering enable status
55 *
56 * @return The status of the operation
57 * @retval RETURN_OK if successful
58 * @retval RETURN_ERR if any error is detected
59 *
60 * @execution Synchronous
61 * @sideeffect None
62 *
63 * @note This function must not suspend and must not invoke any blocking system
64 * calls. It should probably just send a message to a driver event handler task.
65 *
66 */
68 
69 /* wifi_getBandSteeringApGroup() function */
70 /**
71 * @brief To get Band Steering Access Point group.
72 *
73 * @param[out] output_ApGroup Band Steering Access point group
74 *
75 * @return The status of the operation
76 * @retval RETURN_OK if successful
77 * @retval RETURN_ERR if any error is detected
78 *
79 * @execution Synchronous
80 * @sideeffect None
81 *
82 * @note This function must not suspend and must not invoke any blocking system
83 * calls. It should probably just send a message to a driver event handler task.
84 *
85 */
86 INT wifi_getBandSteeringApGroup(char *output_ApGroup);
87 
88 /* wifi_setBandSteeringApGroup() function */
89 /**
90 * @brief To set Band Steering Access Point group.
91 *
92 * @param[in] ApGroup - Band Steering Access Point group
93 *
94 * @return The status of the operation
95 * @retval RETURN_OK if successful
96 * @retval RETURN_ERR if any error is detected
97 *
98 * @execution Synchronous
99 * @sideeffect None
100 *
101 * @note This function must not suspend and must not invoke any blocking system
102 * calls. It should probably just send a message to a driver event handler task.
103 *
104 */
105 //To set Band Steering AP group
106 //ApGroup contains AP index(start from 1) pair array, in following format "$index_2.4G,$index_5G;$index_2.4G,$index_5G"
107 //Example "1,2;3,4;7,8" for Private, XH, LnF pairs.
108 //ApGroup have to contain at least one AP pair, such as "1,2"
109 INT wifi_setBandSteeringApGroup(char *ApGroup);
110 
111 //<<
112 /* wifi_getBandSteeringBandUtilizationThreshold() function */
113 /**
114 * @brief To set and read the band steering BandUtilizationThreshold parameters.
115 *
116 * @param[in] radioIndex Radio Index
117 * @param[out] pBuThreshold Steering bane utilization threshold, to be returned
118 *
119 * @return The status of the operation
120 * @retval RETURN_OK if successful
121 * @retval RETURN_ERR if any error is detected
122 *
123 * @execution Synchronous
124 * @sideeffect None
125 *
126 * @note This function must not suspend and must not invoke any blocking system
127 * calls. It should probably just send a message to a driver event handler task.
128 *
129 */
130 INT wifi_getBandSteeringBandUtilizationThreshold (INT radioIndex, INT *pBuThreshold);
131 
132 /* wifi_setBandSteeringBandUtilizationThreshold() function */
133 /**
134 * @brief To set the band steering BandUtilizationThreshold parameters.
135 *
136 * @param[in] radioIndex Radio Index
137 * @param[in] buThreshold Steering bane utilization threshold
138 *
139 * @return The status of the operation
140 * @retval RETURN_OK if successful
141 * @retval RETURN_ERR if any error is detected
142 *
143 * @execution Synchronous
144 * @sideeffect None
145 *
146 * @note This function must not suspend and must not invoke any blocking system
147 * calls. It should probably just send a message to a driver event handler task.
148 *
149 */
150 INT wifi_setBandSteeringBandUtilizationThreshold (INT radioIndex, INT buThreshold);
151 
152 /* wifi_getBandSteeringRSSIThreshold() function */
153 /**
154 * @brief To read the band steering RSSIThreshold parameters.
155 *
156 * @param[in] radioIndex Radio Index
157 * @param[in] pRssiThreshold Band steering RSSIThreshold value, to be returned
158 *
159 * @return The status of the operation
160 * @retval RETURN_OK if successful
161 * @retval RETURN_ERR if any error is detected
162 *
163 * @execution Synchronous
164 * @sideeffect None
165 *
166 * @note This function must not suspend and must not invoke any blocking system
167 * calls. It should probably just send a message to a driver event handler task.
168 *
169 */
170 INT wifi_getBandSteeringRSSIThreshold (INT radioIndex, INT *pRssiThreshold);
171 
172 /* wifi_setBandSteeringRSSIThreshold() function */
173 /**
174 * @brief To set the band steering RSSIThreshold parameters.
175 *
176 * For 2.4G, the expectation is if the 2G rssi is below the set value steer to 2G
177 * For 5G, if the set value is greater than the set threshold value then steer to 5
178 *
179 * @param[in] radioIndex Radio Index
180 * @param[in] rssiThreshold Band steering RSSIThreshold value
181 *
182 * @return The status of the operation
183 * @retval RETURN_OK if successful
184 * @retval RETURN_ERR if any error is detected
185 *
186 * @execution Synchronous
187 * @sideeffect None
188 *
189 * @note This function must not suspend and must not invoke any blocking system
190 * calls. It should probably just send a message to a driver event handler task.
191 *
192 */
193 INT wifi_setBandSteeringRSSIThreshold (INT radioIndex, INT rssiThreshold);
194 
195 /* wifi_getBandSteeringPhyRateThreshold() function */
196 /**
197 * @brief To read the band steering physical modulation rate threshold parameters.
198 *
199 * @param[in] radioIndex Radio Index
200 * @param[out] pPrThreshold Physical modulation rate threshold value, to be returned
201 *
202 * @return The status of the operation
203 * @retval RETURN_OK if successful
204 * @retval RETURN_ERR if any error is detected
205 *
206 * @execution Synchronous
207 * @sideeffect None
208 *
209 * @note This function must not suspend and must not invoke any blocking system
210 * calls. It should probably just send a message to a driver event handler task.
211 *
212 */
213 INT wifi_getBandSteeringPhyRateThreshold (INT radioIndex, INT *pPrThreshold); //If chip is not support, return -1
214 
215 /* wifi_setBandSteeringPhyRateThreshold() function */
216 /**
217 * @brief To set the band steering physical modulation rate threshold parameters.
218 *
219 * @param[in] radioIndex Radio Index
220 * @param[in] prThreshold Physical modulation rate threshold value
221 *
222 * @return The status of the operation
223 * @retval RETURN_OK if successful
224 * @retval RETURN_ERR if any error is detected
225 *
226 * @execution Synchronous
227 * @sideeffect None
228 *
229 * @note This function must not suspend and must not invoke any blocking system
230 * calls. It should probably just send a message to a driver event handler task.
231 *
232 */
233 INT wifi_setBandSteeringPhyRateThreshold (INT radioIndex, INT prThreshold); //If chip is not support, return -1
234 
235 /* wifi_getBandSteeringOverloadInactiveTime() function */
236 /**
237 * @brief To read the inactivity time (in seconds) for steering under overload condition
238 *
239 *
240 * @param[in] radioIndex Radio Index
241 * @param[out] overloadInactiveTime inactivity time (in seconds) for steering under overload condition
242 *
243 * @return The status of the operation
244 * @retval RETURN_OK if successful
245 * @retval RETURN_ERR if any error is detected
246 *
247 * @execution Synchronous
248 * @sideeffect None
249 *
250 * @note This function must not suspend and must not invoke any blocking system
251 * calls. It should probably just send a message to a driver event handler task.
252 *
253 */
254 INT wifi_getBandSteeringOverloadInactiveTime (INT radioIndex, INT *overloadInactiveTime); //If chip is not support, return -1
255 
256 /* wifi_setBandSteeringOverloadInactiveTime() function */
257 /**
258 * @brief To set the inactivity time (in seconds) for steering under overload condition.
259 *
260 *
261 * @param[in] radioIndex Radio Index
262 * @param[in] overloadInactiveTime Inactivity time (in seconds) for steering under overload condition
263 *
264 * @return The status of the operation
265 * @retval RETURN_OK if successful
266 * @retval RETURN_ERR if any error is detected
267 *
268 * @execution Synchronous
269 * @sideeffect None
270 *
271 * @note This function must not suspend and must not invoke any blocking system
272 * calls. It should probably just send a message to a driver event handler task.
273 *
274 */
275 INT wifi_setBandSteeringOverloadInactiveTime (INT radioIndex, INT overloadInactiveTime); //If chip is not support, return -1
276 
277 /* wifi_getBandSteeringIdleInactiveTime() function */
278 /**
279 * @brief To read the inactivity time (in seconds) for steering under Idle condition.
280 *
281 * @param[in] radioIndex Radio Index
282 * @param[out] idleInactiveTime Inactivity time (in seconds) for steering under Idle condition
283 *
284 * @return The status of the operation
285 * @retval RETURN_OK if successful
286 * @retval RETURN_ERR if any error is detected
287 *
288 * @execution Synchronous
289 * @sideeffect None
290 *
291 * @note This function must not suspend and must not invoke any blocking system
292 * calls. It should probably just send a message to a driver event handler task.
293 *
294 */
295 INT wifi_getBandSteeringIdleInactiveTime (INT radioIndex, INT *idleInactiveTime); //If chip is not support, return -1
296 
297 /* wifi_getBandSteeringIdleInactiveTime() function */
298 /**
299 * @brief To set the inactivity time (in seconds) for steering under Idle condition.
300 *
301 *
302 * @param[in] radioIndex Radio Index
303 * @param[in] idleInactiveTime Inactivity time (in seconds) for steering under Idle condition
304 *
305 * @return The status of the operation
306 * @retval RETURN_OK if successful
307 * @retval RETURN_ERR if any error is detected
308 *
309 * @execution Synchronous
310 * @sideeffect None
311 *
312 * @note This function must not suspend and must not invoke any blocking system
313 * calls. It should probably just send a message to a driver event handler task.
314 *
315 */
316 INT wifi_setBandSteeringIdleInactiveTime (INT radioIndex, INT idleInactiveTime); //If chip is not support, return -1
317 
318 /* wifi_getBandSteeringLog() function */
319 /**
320 * @brief To get the band steering log.
321 *
322 * If no steering or record_index is out of boundary, return -1.
323 *
324 * @param[in] record_index Record index
325 * @param[out] pSteeringTime Returns the UTC time in seconds
326 * @param[in] pClientMAC pClientMAC is pre allocated as 64bytes
327 * @param[in] pSourceSSIDIndex Source SSID index
328 * @param[in] pDestSSIDIndex Destination SSID index
329 * @param[out] pSteeringReason Returns the predefined steering trigger reason
330 *
331 * @return The status of the operation
332 * @retval RETURN_OK if successful
333 * @retval RETURN_ERR if any error is detected
334 *
335 * @execution Synchronous
336 * @sideeffect None
337 *
338 * @note This function must not suspend and must not invoke any blocking system
339 * calls. It should probably just send a message to a driver event handler task.
340 *
341 */
342 INT wifi_getBandSteeringLog(INT record_index, ULONG *pSteeringTime, CHAR *pClientMAC, INT *pSourceSSIDIndex, INT *pDestSSIDIndex, INT *pSteeringReason);
343 
344 /* wifi_getApAssociatedDevicesHighWatermarkThreshold() function */
345 /**
346 * @brief Get the HighWatermarkThreshold value, that is lesser than or equal to MaxAssociatedDevices.
347 *
348 * Setting this parameter does not actually limit the number of clients that can associate with this access point
349 * as that is controlled by MaxAssociatedDevices.
350 * MaxAssociatedDevices or 50.
351 * The default value of this parameter should be equal to MaxAssociatedDevices.
352 * In case MaxAssociatedDevices is 0 (zero), the default value of this parameter should be 50.
353 * A value of 0 means that there is no specific limit and Watermark calculation algorithm should be turned off.
354 *
355 * @param[in] apIndex Access Point index
356 * @param[out] output HighWatermarkThreshold value, to be returned
357 *
358 * @return The status of the operation
359 * @retval RETURN_OK if successful
360 * @retval RETURN_ERR if any error is detected
361 *
362 * @execution Synchronous
363 * @sideeffect None
364 *
365 * @note This function must not suspend and must not invoke any blocking system
366 * calls. It should probably just send a message to a driver event handler task.
367 *
368 */
370 
371 /* wifi_setApAssociatedDevicesHighWatermarkThreshold() function */
372 /**
373 * @brief Set the HighWatermarkThreshold value, that is lesser than or equal to MaxAssociatedDevices.
374 *
375 * Setting this parameter does not actually limit the number of clients that can associate with this access point
376 * as that is controlled by MaxAssociatedDevices.
377 * MaxAssociatedDevices or 50.
378 * The default value of this parameter should be equal to MaxAssociatedDevices.
379 * In case MaxAssociatedDevices is 0 (zero), the default value of this parameter should be 50.
380 * A value of 0 means that there is no specific limit and Watermark calculation algorithm should be turned off.
381 *
382 * @param[in] apIndex Access Point index
383 * @param[in] Threshold HighWatermarkThreshold value
384 *
385 * @return The status of the operation
386 * @retval RETURN_OK if successful
387 * @retval RETURN_ERR if any error is detected
388 *
389 * @execution Synchronous
390 * @sideeffect None
391 *
392 * @note This function must not suspend and must not invoke any blocking system
393 * calls. It should probably just send a message to a driver event handler task.
394 *
395 */
397 
398 /* wifi_getApAssociatedDevicesHighWatermarkThresholdReached() function */
399 /**
400 * @brief Get the number of times the current total number of associated device has reached the HighWatermarkThreshold value.
401 *
402 * This calculation can be based on the parameter AssociatedDeviceNumberOfEntries as well.
403 * Implementation specifics about this parameter are left to the product group and the device vendors.
404 * It can be updated whenever there is a new client association request to the access point.
405 *
406 * @param[in] apIndex Access Point index
407 * @param[out] output Number of times the current total number of associated device has reached
408 * the HighWatermarkThreshold value, to be returned
409 *
410 * @return The status of the operation
411 * @retval RETURN_OK if successful
412 * @retval RETURN_ERR if any error is detected
413 *
414 * @execution Synchronous
415 * @sideeffect None
416 *
417 * @note This function must not suspend and must not invoke any blocking system
418 * calls. It should probably just send a message to a driver event handler task.
419 *
420 */
422 
423 /* wifi_getApAssociatedDevicesHighWatermark() function */
424 /**
425 * @brief Maximum number of associated devices that have ever associated with the access point concurrently
426 * since the last reset of the device or WiFi module.
427 *
428 * @param[in] apIndex Access Point index
429 * @param[out] output Maximum number of associated devices that have ever associated with the access point concurrently,
430 * to be returned
431 *
432 * @return The status of the operation
433 * @retval RETURN_OK if successful
434 * @retval RETURN_ERR if any error is detected
435 *
436 * @execution Synchronous
437 * @sideeffect None
438 *
439 * @note This function must not suspend and must not invoke any blocking system
440 * calls. It should probably just send a message to a driver event handler task.
441 *
442 */
444 
445 /* wifi_getApAssociatedDevicesHighWatermarkDate() function */
446 /**
447 * @brief Get Date and Time at which the maximum number of associated devices ever associated with the access point
448 * concurrently since the last reset of the device or WiFi module.
449 *
450 * In short when was AssociatedDevicesHighWatermark updated
451 * This dateTime value is in UTC.
452 *
453 * @param[in] apIndex Access Point index
454 * @param[out] output_in_seconds Date and Time at which the maximum number of associated
455 * devices ever associated with the access point
456 * concurrenlty, to be returned.
457 *
458 * @return The status of the operation
459 * @retval RETURN_OK if successful
460 * @retval RETURN_ERR if any error is detected
461 *
462 * @execution Synchronous
463 * @sideeffect None
464 *
465 * @note This function must not suspend and must not invoke any blocking system
466 * calls. It should probably just send a message to a driver event handler task.
467 *
468 */
469 INT wifi_getApAssociatedDevicesHighWatermarkDate(INT apIndex, ULONG *output_in_seconds);
470 
471 /* @description Set the Fast Transition capability to disabled, full FT
472  * support, or adaptive FT support. Adaptive support is the same as full
473  * support except the Mobility Domain Element is not sent in Beacon Frames.
474  *
475  * @param apIndex - AP Index the setting applies to.
476  * @param activate - 0 = disabled, 1 = full FT support, 2 = adaptive support.
477  * @return The status of the operation.
478  * @retval RETURN_OK if successful.
479  * @retval RETURN_ERR if any error is detected.
480  */
482 
483 /**
484  * @brief Get the Fast Transition capability value.
485  *
486  * @param apIndex - AP Index the setting applies to.
487  * @param activate - 0 = disabled, 1 = full FT support, 2 = adaptive support.
488  *
489  * @return The status of the operation.
490  * @retval RETURN_OK if successful.
491  * @retval RETURN_ERR if any error is detected.
492  */
493 INT wifi_getBSSTransitionActivated(INT apIndex, BOOL *activate);
494 /** @} */ //END OF GROUP WIFI_HAL_APIS
495 
496 /**
497  * @addtogroup WIFI_HAL_TYPES
498  * @{
499  */
500 /**
501  * @brief Set the Fast Transition capability to disabled, full FT
502 **
503  * @brief EAP/EAPOL Authenticator information.
504  *
505  * Structure which holds the the EAP/EAPOL Config param values.
506  */
507 typedef struct _wifi_eap_config_t
508 {
509  unsigned int uiEAPOLKeyTimeout;
510  unsigned int uiEAPOLKeyRetries;
513  unsigned int uiEAPRequestTimeout;
514  unsigned int uiEAPRequestRetries;
516 /** @} */ //END OF GROUP WIFI_HAL_TYPES
517 
518 /**
519  * @addtogroup WIFI_HAL_APIS
520  * @{
521  */
522 /**
523  * @brief Get the Fast Transition over DS activated value.
524  * @description Set the EAP authentication and EAPOL Handshake parameters.
525  * EAPOL Key Timeout and max retries [M1 and M3]
526  * EAP Identity Request and max retries
527  * EAP Request Timeout and max retries
528  * @param [in] apIndex - VAP number
529  * @param [in] value - Either timeout or retry value
530  * @param [in] param - Pramater string name to be configured as follows
531  * eapolkey(timeout or retries),
532  * eapidentityrequest(timeout or retries),
533  * eaprequest(timeout or retries)
534  * @return The status of the operation.
535  * @retval RETURN_OK if successful.
536  * @retval RETURN_ERR if any error is detected.
537  */
538 INT wifi_setEAP_Param(UINT apIndex, UINT value, char *param);
539 
540 /* @description Get the EAP authentication and EAPOL Handshake parameters.
541  * EAPOL Key Timeout and max retries [M1 and M3]
542  * EAP Identity Request and max retries
543  * EAP Request Timeout and max retries
544  * @param [in] apIndex - VAP number
545  * @param [in] output to be filled
546  * @return The status of the operation.
547  * @retval RETURN_OK if successful.
548  * @retval RETURN_ERR if any error is detected.
549  */
550 INT wifi_getEAP_Param(UINT apIndex, wifi_eap_config_t *output);
551 
552 /* @description Get the Fast Transition over DS activated value.
553  * See 802.11-2016 section 13.3.
554  *
555  * @param apIndex - AP Index the setting applies to.
556  * @param activate - True for activated (enabled), false for not activated
557  * (disabled).
558  *
559  * @return The status of the operation.
560  * @retval RETURN_OK if successful.
561  * @retval RETURN_ERR if any error is detected.
562  */
563 INT wifi_getFTOverDSActivated(INT apIndex, BOOL *activate);
564 
565 /**
566  * @brief Set the Fast Transition over DS activated value.
567  * See 802.11-2016 section 13.3.
568  *
569  * @param apIndex - AP Index the setting applies to.
570  * @param activate - True for activated (enabled), false for not activated
571  * (disabled).
572  *
573  * @return The status of the operation.
574  * @retval RETURN_OK if successful.
575  * @retval RETURN_ERR if any error is detected.
576  */
577 INT wifi_setFTOverDSActivated(INT apIndex, BOOL *activate);
578 
579 /**
580  * @brief Get the Fast Transition Mobility Domain value.
581  * See 802.11-2016 section 13.3.
582  *
583  * @param apIndex - AP Index the setting applies to.
584  * @param mobilityDomain - Value of the FT Mobility Domain for this AP.
585  *
586  * @return The status of the operation.
587  * @retval RETURN_OK if successful.
588  * @retval RETURN_ERR if any error is detected.
589  */
590 INT wifi_getFTMobilityDomainID(INT apIndex, UCHAR mobilityDomain[2]);
591 
592 /**
593  * @brief Set the Fast Transition Mobility Domain value.
594  * See 802.11-2016 section 13.3.
595  *
596  * @param apIndex - AP Index the setting applies to.
597  * @param mobilityDomain - Value of the FT Mobility Domain for this AP.
598  *
599  * @return The status of the operation.
600  * @retval RETURN_OK if successful.
601  * @retval RETURN_ERR if any error is detected.
602  */
603 INT wifi_setFTMobilityDomainID(INT apIndex, UCHAR mobilityDomain[2]);
604 
605 /**
606  * @brief Get the Fast Transition Resource Request Support value.
607  * See 802.11-2016 section 13.3.
608  *
609  * @param apIndex - AP Index the setting applies to.
610  * @param supported - True is FT resource request supported, false is not
611  * supported.
612  *
613  * @return The status of the operation.
614  * @retval RETURN_OK if successful.
615  * @retval RETURN_ERR if any error is detected.
616  */
617 INT wifi_getFTResourceRequestSupported(INT apIndex, BOOL *supported);
618 
619 /**
620  * @brief Set the Fast Transition Resource Request Support value.
621  * See 802.11-2016 section 13.3.
622  *
623  * @param apIndex - AP Index the setting applies to.
624  * @param suppored - True is FT resource request supported, false is not
625  * supported.
626  *
627  * @return The status of the operation.
628  * @retval RETURN_OK if successful.
629  * @retval RETURN_ERR if any error is detected.
630  */
631 INT wifi_setFTResourceRequestSupported(INT apIndex, BOOL *supported);
632 
633 /**
634  * @brief Get the Fast Transition R0 Key Lifetime value.
635  * See 802.11-2016 section 13.4.2.
636  *
637  * @param apIndex - AP Index the setting applies to.
638  * @param lifetime - R0 Key Lifetime.
639  *
640  * @return The status of the operation.
641  * @retval RETURN_OK if successful.
642  * @retval RETURN_ERR if any error is detected.
643  */
644 INT wifi_getFTR0KeyLifetime(INT apIndex, UINT *lifetime);
645 
646 /**
647  * @brief Set the Fast Transition R0 Key Lifetime value.
648  * See 802.11-2016 section 13.4.2
649  *
650  * @param apIndex - AP Index the setting applies to.
651  * @param lifetime - R0 Key Lifetime.
652  *
653  * @return The status of the operation.
654  * @retval RETURN_OK if successful.
655  * @retval RETURN_ERR if any error is detected.
656  */
657 INT wifi_setFTR0KeyLifetime(INT apIndex, UINT *lifetime);
658 
659 /**
660  * @brief Get the Fast Transition R0 Key Holder ID value.
661  * See 802.11-2016 section 13.3.
662  *
663  * @param apIndex - AP Index the setting applies to.
664  * @param keyHolderID - R0 Key Holder ID string.
665  *
666  * @return The status of the operation.
667  * @retval RETURN_OK if successful.
668  * @retval RETURN_ERR if any error is detected.
669  */
670 INT wifi_getFTR0KeyHolderID(INT apIndex, UCHAR *keyHolderID);
671 
672 /**
673  * @brief Set the Fast Transition R0 Key Holder ID value.
674  * See 802.11-2016 section 13.3.
675  *
676  * @param apIndex - AP Index the setting applies to.
677  * @param keyHolderID - R0 Key Holder ID string.
678  *
679  * @return The status of the operation.
680  * @retval RETURN_OK if successful.
681  * @retval RETURN_ERR if any error is detected.
682  */
683 INT wifi_setFTR0KeyHolderID(INT apIndex, UCHAR *keyHolderID);
684 
685 /**
686  * @brief Get the Fast Transition R1 Key Holder ID value.
687  * See 802.11-2016 section 13.3.
688  *
689  * @param apIndex - AP Index the setting applies to.
690  * @param keyHolderID - R0 Key Holder ID string.
691  *
692  * @return The status of the operation.
693  * @retval RETURN_OK if successful.
694  * @retval RETURN_ERR if any error is detected.
695  */
696 INT wifi_getFTR1KeyHolderID(INT apIndex, UCHAR *keyHolderID);
697 
698 /**
699  * @brief Set the Fast Transition R1 Key Holder ID value.
700  * See 802.11-2016 section 13.3.
701  *
702  * @param apIndex - AP Index the setting applies to.
703  * @param keyHolderID - R0 Key Holder ID string.
704  *
705  * @return The status of the operation.
706  * @retval RETURN_OK if successful.
707  * @retval RETURN_ERR if any error is detected.
708  */
709 INT wifi_setFTR1KeyHolderID(INT apIndex, UCHAR *keyHolderID);
710 
711 /** @} */ //END OF GROUP WIFI_HAL_APIS
712 
713 /**
714  * @addtogroup WIFI_HAL_TYPES
715  * @{
716  */
717 typedef enum {
722 
723 #define MAX_KEY_HOLDERS 8
724 typedef struct {
728 } wifi_r0KH_t;
729 
730 typedef struct {
734 } wifi_r1KH_t;
735 
736 typedef struct {
750 
751 /** @} */ //END OF GROUP WIFI_HAL_TYPES
752 
753 /**
754  * @addtogroup WIFI_HAL_APIS
755  * @{
756  */
758 
759 /**
760  * @brief Set the BTM capability to activated or deactivated,
761  * same as enabled or disabled. The word "activated" is used here because
762  * that's what's used in the 802.11 specification. When deactivate the
763  * gateway ignores a BTM report request as defined in 802.11-2016 section
764  * 11.11.10.3. The AP (apIndex) BSS Transition bit in any Extended Capabilities
765  * element sent out is set corresponding to the activate parameter.
766  *
767  * @param apIndex - AP Index the setting applies to.
768  * @param activate - True for activate false for deactivate.
769  * @return The status of the operation.
770  * @retval RETURN_OK if successful.
771  * @retval RETURN_ERR if any error is detected.
772  */
773 INT wifi_setBSSTransitionActivation(UINT apIndex, BOOL activate);
774 
775 /**
776  * @description Get the BTM capability of activated or deactivated,
777  * same as enabled or disabled.
778  *
779  * @param apIndex - AP Index the setting applies to.
780  * @param activate - True for activate false for deactivate.
781  * @return The status of the operation.
782  * @retval RETURN_OK if successful.
783  * @retval RETURN_ERR if any error is detected.
784  */
785 INT wifi_getBSSTransitionActivation(UINT apIndex, BOOL *activate);
786 
787 /* @description Set the neighbor report capability to activated or deactivated,
788  * same as enabled or disabled. The word "activated" is used here because
789  * that's what's used in the 802.11 specification. When deactivate the
790  * gateway ignores a neighbor report request as defined in 802.11-2016 section
791  * 11.11.10.3.
792  *
793  * @param apIndex - AP Index the setting applies to.
794  * @param activate - True for activate false for deactivate.
795  * @return The status of the operation.
796  * @retval RETURN_OK if successful.
797  * @retval RETURN_ERR if any error is detected.
798  */
799 INT wifi_setNeighborReportActivation(UINT apIndex, BOOL activate);
800 
801 /* @description Get the neighbor report capability of activated or deactivated,
802  * same as enabled or disabled.
803  *
804  * @param apIndex - AP Index the setting applies to.
805  * @param activate - True for activate false for deactivate.
806  * @return The status of the operation.
807  * @retval RETURN_OK if successful.
808  * @retval RETURN_ERR if any error is detected.
809  */
810 INT wifi_getNeighborReportActivation(UINT apIndex, BOOL *activate);
811 
812 /** @} */ //END OF GROUP WIFI_HAL_APIS
813 
814 #ifdef __cplusplus
815 }
816 #endif
817 
818 #endif
wifi_getApAssociatedDevicesHighWatermark
INT wifi_getApAssociatedDevicesHighWatermark(INT apIndex, UINT *output)
Maximum number of associated devices that have ever associated with the access point concurrently sin...
wifi_getBSSTransitionActivation
INT wifi_getBSSTransitionActivation(UINT apIndex, BOOL *activate)
_wifi_eap_config_t::uiEAPRequestRetries
unsigned int uiEAPRequestRetries
Definition: wifi_hal_client_mgt.h:514
nas_id_t
char nas_id_t[49]
Definition: wifi_hal_generic.h:219
wifi_pushApFastTransitionConfig
INT wifi_pushApFastTransitionConfig(INT apIndex, wifi_FastTransitionConfig_t *ftData)
MAX_KEY_HOLDERS
#define MAX_KEY_HOLDERS
Definition: wifi_hal_client_mgt.h:723
wifi_FastTransitionConfig_t::overDS
BOOL overDS
Definition: wifi_hal_client_mgt.h:739
wifi_setFTOverDSActivated
INT wifi_setFTOverDSActivated(INT apIndex, BOOL *activate)
Set the Fast Transition over DS activated value. See 802.11-2016 section 13.3.
wifi_setNeighborReportActivation
INT wifi_setNeighborReportActivation(UINT apIndex, BOOL activate)
wifi_getApAssociatedDevicesHighWatermarkThresholdReached
INT wifi_getApAssociatedDevicesHighWatermarkThresholdReached(INT apIndex, UINT *output)
Get the number of times the current total number of associated device has reached the HighWatermarkTh...
CHAR
#define CHAR
Definition: bt_hal.h:45
wifi_fastTrasitionSupport_t
wifi_fastTrasitionSupport_t
Definition: wifi_hal_client_mgt.h:717
wifi_getBandSteeringLog
INT wifi_getBandSteeringLog(INT record_index, ULONG *pSteeringTime, CHAR *pClientMAC, INT *pSourceSSIDIndex, INT *pDestSSIDIndex, INT *pSteeringReason)
To get the band steering log.
wifi_getFTMobilityDomainID
INT wifi_getFTMobilityDomainID(INT apIndex, UCHAR mobilityDomain[2])
Get the Fast Transition Mobility Domain value. See 802.11-2016 section 13.3.
wifi_getBandSteeringApGroup
INT wifi_getBandSteeringApGroup(char *output_ApGroup)
To get Band Steering Access Point group.
BOOL
#define BOOL
Definition: dhcpv4c_api.h:79
wifi_setApAssociatedDevicesHighWatermarkThreshold
INT wifi_setApAssociatedDevicesHighWatermarkThreshold(INT apIndex, UINT Threshold)
Set the HighWatermarkThreshold value, that is lesser than or equal to MaxAssociatedDevices.
wifi_setBandSteeringOverloadInactiveTime
INT wifi_setBandSteeringOverloadInactiveTime(INT radioIndex, INT overloadInactiveTime)
To set the inactivity time (in seconds) for steering under overload condition.
wifi_r0KH_t::key
r0r1_key_t key
Definition: wifi_hal_client_mgt.h:727
_wifi_eap_config_t::uiEAPOLKeyRetries
unsigned int uiEAPOLKeyRetries
Definition: wifi_hal_client_mgt.h:510
wifi_r0KH_t
Definition: wifi_hal_client_mgt.h:724
wifi_setBandSteeringBandUtilizationThreshold
INT wifi_setBandSteeringBandUtilizationThreshold(INT radioIndex, INT buThreshold)
To set the band steering BandUtilizationThreshold parameters.
FT_SUPPORT_DISABLED
@ FT_SUPPORT_DISABLED
Definition: wifi_hal_client_mgt.h:718
_wifi_eap_config_t::uiEAPIdentityRequestTimeout
unsigned int uiEAPIdentityRequestTimeout
Definition: wifi_hal_client_mgt.h:511
wifi_getApAssociatedDevicesHighWatermarkThreshold
INT wifi_getApAssociatedDevicesHighWatermarkThreshold(INT apIndex, UINT *output)
Get the HighWatermarkThreshold value, that is lesser than or equal to MaxAssociatedDevices.
wifi_setBandSteeringPhyRateThreshold
INT wifi_setBandSteeringPhyRateThreshold(INT radioIndex, INT prThreshold)
To set the band steering physical modulation rate threshold parameters.
wifi_r0KH_t::nasId
nas_id_t nasId
Definition: wifi_hal_client_mgt.h:726
INT
#define INT
Definition: bt_hal.h:65
wifi_setFTMobilityDomainID
INT wifi_setFTMobilityDomainID(INT apIndex, UCHAR mobilityDomain[2])
Set the Fast Transition Mobility Domain value. See 802.11-2016 section 13.3.
wifi_getNeighborReportActivation
INT wifi_getNeighborReportActivation(UINT apIndex, BOOL *activate)
wifi_setFTR1KeyHolderID
INT wifi_setFTR1KeyHolderID(INT apIndex, UCHAR *keyHolderID)
Set the Fast Transition R1 Key Holder ID value. See 802.11-2016 section 13.3.
wifi_setEAP_Param
INT wifi_setEAP_Param(UINT apIndex, UINT value, char *param)
Get the Fast Transition over DS activated value. @description Set the EAP authentication and EAPOL ...
USHORT
#define USHORT
Definition: bt_hal.h:57
wifi_getFTR0KeyLifetime
INT wifi_getFTR0KeyLifetime(INT apIndex, UINT *lifetime)
Get the Fast Transition R0 Key Lifetime value. See 802.11-2016 section 13.4.2.
wifi_getBandSteeringRSSIThreshold
INT wifi_getBandSteeringRSSIThreshold(INT radioIndex, INT *pRssiThreshold)
To read the band steering RSSIThreshold parameters.
wifi_setBandSteeringApGroup
INT wifi_setBandSteeringApGroup(char *ApGroup)
To set Band Steering Access Point group.
wifi_FastTransitionConfig_t::reassocDeadLine
USHORT reassocDeadLine
Definition: wifi_hal_client_mgt.h:743
_wifi_eap_config_t::uiEAPOLKeyTimeout
unsigned int uiEAPOLKeyTimeout
Definition: wifi_hal_client_mgt.h:509
wifi_setFTR0KeyLifetime
INT wifi_setFTR0KeyLifetime(INT apIndex, UINT *lifetime)
Set the Fast Transition R0 Key Lifetime value. See 802.11-2016 section 13.4.2.
_wifi_eap_config_t
Set the Fast Transition capability to disabled, full FT.
Definition: wifi_hal_client_mgt.h:507
wifi_r1KH_t::r1khId
mac_address_t r1khId
Definition: wifi_hal_client_mgt.h:732
wifi_r1KH_t::mac
mac_address_t mac
Definition: wifi_hal_client_mgt.h:731
FT_SUPPORT_ADAPTIVE
@ FT_SUPPORT_ADAPTIVE
Definition: wifi_hal_client_mgt.h:720
wifi_r1KH_t
Definition: wifi_hal_client_mgt.h:730
ULONG
#define ULONG
Definition: bt_hal.h:77
wifi_FastTransitionConfig_t::r0KeyHolder
nas_id_t r0KeyHolder
Definition: wifi_hal_client_mgt.h:740
wifi_FastTransitionConfig_t::support
wifi_fastTrasitionSupport_t support
Definition: wifi_hal_client_mgt.h:737
wifi_FastTransitionConfig_t::numR1KHs
UCHAR numR1KHs
Definition: wifi_hal_client_mgt.h:747
wifi_r1KH_t::key
r0r1_key_t key
Definition: wifi_hal_client_mgt.h:733
wifi_getApAssociatedDevicesHighWatermarkDate
INT wifi_getApAssociatedDevicesHighWatermarkDate(INT apIndex, ULONG *output_in_seconds)
Get Date and Time at which the maximum number of associated devices ever associated with the access p...
wifi_setBandSteeringIdleInactiveTime
INT wifi_setBandSteeringIdleInactiveTime(INT radioIndex, INT idleInactiveTime)
To set the inactivity time (in seconds) for steering under Idle condition.
wifi_FastTransitionConfig_t::r0KeyLifeTime
USHORT r0KeyLifeTime
Definition: wifi_hal_client_mgt.h:741
wifi_getEAP_Param
INT wifi_getEAP_Param(UINT apIndex, wifi_eap_config_t *output)
UINT
#define UINT
Definition: bt_hal.h:69
wifi_setFTR0KeyHolderID
INT wifi_setFTR0KeyHolderID(INT apIndex, UCHAR *keyHolderID)
Set the Fast Transition R0 Key Holder ID value. See 802.11-2016 section 13.3.
UCHAR
#define UCHAR
Definition: bt_hal.h:49
wifi_setBandSteeringRSSIThreshold
INT wifi_setBandSteeringRSSIThreshold(INT radioIndex, INT rssiThreshold)
To set the band steering RSSIThreshold parameters.
wifi_FastTransitionConfig_t::numR0KHs
UCHAR numR0KHs
Definition: wifi_hal_client_mgt.h:745
wifi_FastTransitionConfig_t
Definition: wifi_hal_client_mgt.h:736
wifi_getFTResourceRequestSupported
INT wifi_getFTResourceRequestSupported(INT apIndex, BOOL *supported)
Get the Fast Transition Resource Request Support value. See 802.11-2016 section 13....
wifi_getFTR1KeyHolderID
INT wifi_getFTR1KeyHolderID(INT apIndex, UCHAR *keyHolderID)
Get the Fast Transition R1 Key Holder ID value. See 802.11-2016 section 13.3.
wifi_eap_config_t
struct _wifi_eap_config_t wifi_eap_config_t
Set the Fast Transition capability to disabled, full FT.
wifi_FastTransitionConfig_t::pmkR1Push
BOOL pmkR1Push
Definition: wifi_hal_client_mgt.h:744
wifi_setBandSteeringEnable
INT wifi_setBandSteeringEnable(BOOL enable)
To turn on/off Band steering.
r0r1_key_t
unsigned char r0r1_key_t[16]
Definition: wifi_hal_generic.h:220
wifi_r0KH_t::mac
mac_address_t mac
Definition: wifi_hal_client_mgt.h:725
wifi_getBandSteeringPhyRateThreshold
INT wifi_getBandSteeringPhyRateThreshold(INT radioIndex, INT *pPrThreshold)
To read the band steering physical modulation rate threshold parameters.
wifi_FastTransitionConfig_t::r1KeyHolder
mac_address_t r1KeyHolder
Definition: wifi_hal_client_mgt.h:742
FT_SUPPORT_FULL
@ FT_SUPPORT_FULL
Definition: wifi_hal_client_mgt.h:719
wifi_FastTransitionConfig_t::mobilityDomain
USHORT mobilityDomain
Definition: wifi_hal_client_mgt.h:738
wifi_getFTOverDSActivated
INT wifi_getFTOverDSActivated(INT apIndex, BOOL *activate)
_wifi_eap_config_t::uiEAPRequestTimeout
unsigned int uiEAPRequestTimeout
Definition: wifi_hal_client_mgt.h:513
wifi_setFastBSSTransitionActivated
INT wifi_setFastBSSTransitionActivated(INT apIndex, UCHAR activate)
wifi_getBandSteeringEnable
INT wifi_getBandSteeringEnable(BOOL *enable)
To get Band Steering enable status.
_wifi_eap_config_t::uiEAPIdentityRequestRetries
unsigned int uiEAPIdentityRequestRetries
Definition: wifi_hal_client_mgt.h:512
wifi_getBandSteeringIdleInactiveTime
INT wifi_getBandSteeringIdleInactiveTime(INT radioIndex, INT *idleInactiveTime)
To read the inactivity time (in seconds) for steering under Idle condition.
wifi_getBSSTransitionActivated
INT wifi_getBSSTransitionActivated(INT apIndex, BOOL *activate)
Get the Fast Transition capability value.
mac_address_t
unsigned char mac_address_t[6]
Definition: wifi_hal_generic.h:211
wifi_setFTResourceRequestSupported
INT wifi_setFTResourceRequestSupported(INT apIndex, BOOL *supported)
Set the Fast Transition Resource Request Support value. See 802.11-2016 section 13....
wifi_getBandSteeringBandUtilizationThreshold
INT wifi_getBandSteeringBandUtilizationThreshold(INT radioIndex, INT *pBuThreshold)
To set and read the band steering BandUtilizationThreshold parameters.
wifi_getBandSteeringOverloadInactiveTime
INT wifi_getBandSteeringOverloadInactiveTime(INT radioIndex, INT *overloadInactiveTime)
To read the inactivity time (in seconds) for steering under overload condition.
wifi_setBSSTransitionActivation
INT wifi_setBSSTransitionActivation(UINT apIndex, BOOL activate)
Set the BTM capability to activated or deactivated, same as enabled or disabled. The word "activated"...
wifi_getFTR0KeyHolderID
INT wifi_getFTR0KeyHolderID(INT apIndex, UCHAR *keyHolderID)
Get the Fast Transition R0 Key Holder ID value. See 802.11-2016 section 13.3.