RDK-B
wifi_hal_ap.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 #ifndef __WIFI_HAL_AP_H__
20 #define __WIFI_HAL_AP_H__
21 
22 #ifdef __cplusplus
23 extern "C"{
24 #endif
25 
26 /**
27  * @addtogroup WIFI_HAL_TYPES
28  * @{
29  */
30 
31 typedef struct _wifi_trafficStats
32 {
45 
46 
47 typedef enum {
57 
58 typedef enum {
63 
64 typedef struct {
66 }__attribute__((packed)) wifi_ipAddressAvailabality_t;
67 
68 typedef enum {
76 
77 typedef struct {
80  UCHAR val[16];
81 }__attribute__((packed)) wifi_authMethod_t;
82 
83 typedef struct {
84  UCHAR length;
87  wifi_authMethod_t auth_method[16];
88 }__attribute__((packed)) wifi_eapMethod_t;
89 
90 typedef struct {
94  UCHAR realm[256];
96  wifi_eapMethod_t eap_method[16];
97 } __attribute__((packed))wifi_naiRealm_t;
98 
99 typedef struct {
101  wifi_naiRealm_t nai_realm_tuples[20];
102 }__attribute__((packed)) wifi_naiRealmElement_t;
103 
104 typedef struct {
105  UCHAR length;
106  UCHAR language[3];
107  UCHAR name[256];
108 }__attribute__((packed)) wifi_venueName_t;
109 
110 typedef struct {
113  wifi_venueName_t venueNameTuples[16];
114 }__attribute__((packed)) wifi_venueNameElement_t;
115 
116 typedef struct {
117  UCHAR PLMN[3];
118 }__attribute__((packed)) wifi_plmn_t;
119 
120 typedef struct {
121  UCHAR iei;//copy zero for now.
124  wifi_plmn_t plmn[16];
125 }__attribute__((packed))wifi_3gpp_plmn_list_information_element_t;
126 
127 typedef struct {
129  UCHAR uhdLength;//Length of remaining fields
130  wifi_3gpp_plmn_list_information_element_t plmn_information;
131 }__attribute__((packed)) wifi_3gppCellularNetwork_t;
132 
133 typedef struct {
134  UCHAR length;
135  UCHAR domainName[255]; //max domain name allowed based on the spec.
136 }__attribute__((packed)) wifi_domainNameTuple_t;
137 
138 typedef struct {
139  wifi_domainNameTuple_t domainNameTuple[4];
140 }__attribute__((packed)) wifi_domainName_t;
141 
142 typedef struct {
143  UCHAR length;
144  UCHAR oui[15];
145 }__attribute__((packed)) wifi_ouiDuple_t;
146 
147 typedef struct {
148  wifi_ouiDuple_t ouiDuple[32];
149 }__attribute__((packed)) wifi_roamingConsortium_t;
150 
151 typedef struct {
152  USHORT capabilityList[64];
153 }__attribute__((packed)) wifi_capabilityListANQP_t;
154 
155 typedef struct {
157  UCHAR wifiRoamingConsortiumOui[3][15+1];//only 3 OIS is allowed in beacon and probe responses OIS length is variable between 3-15
158  UCHAR wifiRoamingConsortiumLen[3];
159 }__attribute__((packed)) wifi_roamingConsortiumElement_t;
160 
161 //HS2 Related ANQP Elements start
162 
163 //=========================================Start-HS-Operator Friendly Name=========================================================================
164 //HS2.0 Operator Name Duple #1 HS2.0 Operator Name Duple #2 ...... HS2.0 Operator Name Duple #n
165 // variable variable variable
166 
167 //HS2.0 Operator name Duple
168 //Length Language Code Operator Name
169 // 1 (3+ operator name) 3 variable
170 
171 typedef struct _wifi_HS2_OperatorNameDuple_t // figure 9-595
172 {
173  UCHAR length; //length is 3(language code)+number of octects in operator name field eg. operatorName= aaaa length is 4+3 = 7
175  UCHAR operatorName[252]; //based on spec the maximum length of operator name is 252
176 } __attribute__((packed)) wifi_HS2_OperatorNameDuple_t;
177 
178 typedef struct
179 {
180  wifi_HS2_OperatorNameDuple_t operatorNameDuple[16]; //putting 16 duples supported for now story RDKB-1317 does not tell how many duples we are supporting nor the spec (spec mentions n duples)
181 } __attribute__((packed)) wifi_HS2_OperatorFriendlyName_t;
182 
183 //=========================================End-HS2-Operator Friendly Name=========================================================================
184 
185 //=========================================Start-HS2-Wan Metrics Element=========================================================================
186 //WAN Info Downlink Speed Uplink Speed Downlink Load Uplink Load LMD
187 // 1 4 4 1 1 2
188 typedef struct // figure 9-595
189 {
196 } __attribute__((packed)) wifi_HS2_WANMetrics_t;
197 
198 //WAN Info Bit fields
199 // B0 B1 B2 B3 B4 B7
200 // Link Status Symetric Link At Capacity Reserved
201 //Bits: 2 1 1 4
202 typedef enum
203 {
209 
210 //=========================================End-HS2-Wan Metrics Element=========================================================================
211 
212 //=========================================Start-HS2-Connection Capability Element=========================================================================
213 
214 //Proto Port Tuple #1 Proto Port Tuple #2 ............. Proto Port Tuple #n
215 // 4 4(optional) 4(optional)
216 
217 //Proto Port Tuple Format
218 //IP Protocol Port Number Status
219 // 1 2 1
220 
221 typedef struct // figure 9-595
222 {
226 } __attribute__((packed)) wifi_HS2_Proto_Port_Tuple_t;
227 
228 typedef struct // figure 9-595
229 {
230  wifi_HS2_Proto_Port_Tuple_t protoPortTuple[16];//putting 16 duples supported for now. story RDKB-1317 does not tell how many duples we are supporting nor the spec (spec mentions n duples)
231 } __attribute__((packed)) wifi_HS2_ConnectionCapability_t;
232 
233 typedef enum
234 {
240 
241  //=========================================End-HS2-Connection Capability Element=========================================================================
242 
243  //=========================================Start-HS2-NAI Realm Query Element=========================================================================
244 
245  //NAI Realm Count NAI Home Realm NAI Home Realm .... NAI Home Realm
246  // Name Data #1 Name Data #2 Name Data #n
247  // 1 variable (variable optional) (variable optional)
248 
249  //NAI Realm Encoding NAI Home Realm Name Length NAI Home Realm
250  // 1 1 variable
251 typedef struct// figure 9-595
252 {
253  UCHAR encoding;
254  UCHAR length;
255  UCHAR name[255];//per spec maximum length is 255
256 } __attribute__((packed)) wifi_HS2_NAI_Home_Realm_Data_t;
257 
258 typedef struct// figure 9-595
259 {
260  UCHAR realmCount;
261  wifi_HS2_NAI_Home_Realm_Data_t homeRealmData[20];//as realm count is unsigned char we can put 255 realms here spec says n story does not define how many we support
262 } __attribute__((packed)) wifi_HS2_NAI_Home_Realm_Query_t;
263 
264 //=========================================End-HS2-NAI Realm Query Element=========================================================================
265 
266 //=========================================Start-HS-Capability List=========================================================================
267 //HS2.0 Capability #1 HS2.0 Capability #2 ...... HS2.0 Capability #n
268 // 1 0 or 1 (optional) 0 or 1 (optional)
269 //=========================================End-HS-Capability List=========================================================================
270 typedef struct
271 {
272  UCHAR capabilityList[64];
273 } __attribute__((packed)) wifi_HS2_CapabilityList_t;
274 
275 typedef struct {
276  unsigned char descriptor;
277  unsigned char key_info[2];
278  unsigned short key_len;
279  unsigned char replay[8];
280  unsigned char nonce[32];
281  unsigned char init_vector[16];
282  unsigned char rsc[8];
283  unsigned char key_id[8];
284  unsigned char mic[16];
285  unsigned short len;
286  unsigned char data[0];
288 
289 typedef enum {
295 
296 typedef struct {
297  unsigned char code;
298  unsigned char id;
299  unsigned short len;
300  unsigned char data[0];
301 } __attribute__((__packed__)) wifi_eap_frame_t;
302 
303 typedef enum {
309 
310 typedef struct {
311  unsigned char version;
312  unsigned char type;
313  unsigned short len;
314  unsigned char data[0];
315 } __attribute__((__packed__)) wifi_8021x_frame_t;
316 
317 typedef enum {
322 
323 /**
324  * @brief RADIUS Server information.
325  *
326  * Structure which holds the the RADIUS server settings.
327  */
329 {
330  INT RadiusServerRetries; /**< Number of retries for Radius requests. */
331  INT RadiusServerRequestTimeout; /**< Radius request timeout in seconds after which the request must be retransmitted for the # of retries available. */
332  INT PMKLifetime; /**< Default time in seconds after which a Wi-Fi client is forced to ReAuthenticate (def 8 hrs) */
333  BOOL PMKCaching; /**< Enable or disable caching of PMK. */
334  INT PMKCacheInterval; /**< Time interval in seconds after which the PMKSA (Pairwise Master Key Security Association) cache is purged (def 5 minutes). */
335  INT MaxAuthenticationAttempts; /**< Indicates the # of time, a client can attempt to login with incorrect credentials. When this limit is reached, the client is blacklisted and not allowed to attempt loging into the network. Settings this parameter to 0 (zero) disables the blacklisting feature. */
336  INT BlacklistTableTimeout; /**< Time interval in seconds for which a client will continue to be blacklisted once it is marked so. */
337  INT IdentityRequestRetryInterval; /**< Time Interval in seconds between identity requests retries. A value of 0 (zero) disables it */
338  INT QuietPeriodAfterFailedAuthentication; /**< The enforced quiet period (time interval) in seconds following failed authentication. A value of 0 (zero) disables it. */
339  //UCHAR RadiusSecret[64]; //<! The secret used for handshaking with the RADIUS server [RFC2865]. When read, this parameter returns an empty string, regardless of the actual value.
340 
342 
343 /**
344  * @brief Represents the wifi scan modes.
345  */
346 typedef enum
347 {
354 
355 /**
356  * @brief Eap types
357  */
358 typedef enum {
360  WIFI_EAP_TYPE_IDENTITY = 1 /* RFC 3748 */,
361  WIFI_EAP_TYPE_NOTIFICATION = 2 /* RFC 3748 */,
362  WIFI_EAP_TYPE_NAK = 3 /* Response only, RFC 3748 */,
363  WIFI_EAP_TYPE_MD5 = 4, /* RFC 3748 */
364  WIFI_EAP_TYPE_OTP = 5 /* RFC 3748 */,
365  WIFI_EAP_TYPE_GTC = 6, /* RFC 3748 */
366  WIFI_EAP_TYPE_TLS = 13 /* RFC 2716 */,
367  WIFI_EAP_TYPE_LEAP = 17 /* Cisco proprietary */,
368  WIFI_EAP_TYPE_SIM = 18 /* RFC 4186 */,
369  WIFI_EAP_TYPE_TTLS = 21 /* RFC 5281 */,
370  WIFI_EAP_TYPE_AKA = 23 /* RFC 4187 */,
371  WIFI_EAP_TYPE_PEAP = 25 /* draft-josefsson-pppext-eap-tls-eap-06.txt */,
372  WIFI_EAP_TYPE_MSCHAPV2 = 26 /* draft-kamath-pppext-eap-mschapv2-00.txt */,
373  WIFI_EAP_TYPE_TLV = 33 /* draft-josefsson-pppext-eap-tls-eap-07.txt */,
374  WIFI_EAP_TYPE_TNC = 38 /* TNC IF-T v1.0-r3; note: tentative assignment;
375  * type 38 has previously been allocated for
376  * EAP-HTTP Digest, (funk.com) */,
377  WIFI_EAP_TYPE_FAST = 43 /* RFC 4851 */,
378  WIFI_EAP_TYPE_PAX = 46 /* RFC 4746 */,
379  WIFI_EAP_TYPE_PSK = 47 /* RFC 4764 */,
380  WIFI_EAP_TYPE_SAKE = 48 /* RFC 4763 */,
381  WIFI_EAP_TYPE_IKEV2 = 49 /* RFC 5106 */,
382  WIFI_EAP_TYPE_AKA_PRIME = 50 /* RFC 5448 */,
383  WIFI_EAP_TYPE_GPSK = 51 /* RFC 5433 */,
384  WIFI_EAP_TYPE_PWD = 52 /* RFC 5931 */,
385  WIFI_EAP_TYPE_EKE = 53 /* RFC 6124 */,
386  WIFI_EAP_TYPE_TEAP = 55 /* RFC 7170 */,
387  WIFI_EAP_TYPE_EXPANDED = 254 /* RFC 3748 */
388 } wifi_eap_t;
389 
390 /** @} */ //END OF GROUP WIFI_HAL_TYPES
391 
392 /**
393  * @addtogroup WIFI_HAL_APIS
394  * @{
395  */
396 INT wifi_getWifiTrafficStats(INT apIndex, wifi_trafficStats_t *output_struct); //!< Outputs more detailed traffic stats per AP
397 
398 #ifdef WIFI_HAL_VERSION_3_PHASE2
399 /* wifi_getApAssociatedDevice() function */
400 /**
401 * @brief Gets the ApAssociatedDevice list for client MAC addresses
402 *
403 * @param[in] apIndex Access Point index
404 * @param[out] output_deviceMacAddressArray List of devices MAC, to be returned
405 * @param[in] maxNumDevices Max number of devices that can be returned
406 * @param[out] output_numDevices number of entries returned in the array
407 *
408 * @return The status of the operation
409 * @retval WIFI_HAL_SUCCESS if successful
410 * @retval Error code if any error is detected (WIFI_HAL_ERROR, WIFI_HAL_UNSUPPORTED, etc)
411 *
412 * @execution Synchronous
413 * @sideeffect None
414 *
415 *
416 */
417 INT wifi_getApAssociatedDevice(INT ap_index, mac_address_t *output_deviceMacAddressArray, UINT maxNumDevices, UINT *output_numDevices);
418 #endif
419 
420 /* wifi_factoryResetAP() function */
421 /**
422 * @brief Restore Access point paramters to default without change other AP nor Radio parameters (No need to reboot wifi)
423 *
424 * @param[in] apIndex Access Point index
425 *
426 * @return The status of the operation
427 * @retval RETURN_OK if successful
428 * @retval RETURN_ERR if any error is detected
429 *
430 * @execution Synchronous
431 * @sideeffect None
432 *
433 * @note This function must not suspend and must not invoke any blocking system
434 * calls. It should probably just send a message to a driver event handler task.
435 *
436 */
437 INT wifi_factoryResetAP(int apIndex);
438 
439 /* wifi_deleteAp() function */
440 /**
441 * @brief Deletes this access point entry on the hardware, clears all internal variables associated with this access point.
442 *
443 * @param[in] apIndex Access Point index
444 *
445 * @return The status of the operation
446 * @retval RETURN_OK if successful
447 * @retval RETURN_ERR if any error is detected
448 *
449 * @execution Synchronous
450 * @sideeffect None
451 *
452 * @note This function must not suspend and must not invoke any blocking system
453 * calls. It should probably just send a message to a driver event handler task.
454 *
455 */
456 INT wifi_deleteAp(INT apIndex); // deletes this ap entry on the hardware, clears all internal variables associaated with this ap
457 
458 /* wifi_getApName() function */
459 /**
460 * @brief Outputs a 16 byte or less name associated with the Access Point.
461 * String buffer must be pre-allocated by the caller.
462 *
463 * @param[in] apIndex Access Point index
464 * @param[out] output_string Access Point name, to be returned
465 *
466 * @return The status of the operation
467 * @retval RETURN_OK if successful
468 * @retval RETURN_ERR if any error is detected
469 *
470 * @execution Synchronous
471 * @sideeffect None
472 *
473 * @note This function must not suspend and must not invoke any blocking system
474 * calls. It should probably just send a message to a driver event handler task.
475 *
476 */
477 INT wifi_getApName(INT apIndex, CHAR *output_string); // Outputs a 16 byte or less name assocated with the AP. String buffer must be pre-allocated by the caller
478 
479 /* wifi_setApRtsThreshold() function */
480 /**
481 * @brief Sets the packet size threshold in bytes to apply RTS/CTS backoff rules.
482 *
483 * @param[in] apIndex Access Point index
484 * @param[in] threshold Packet size threshold
485 *
486 * @return The status of the operation
487 * @retval RETURN_OK if successful
488 * @retval RETURN_ERR if any error is detected
489 *
490 * @execution Synchronous
491 * @sideeffect None
492 *
493 * @note This function must not suspend and must not invoke any blocking system
494 * calls. It should probably just send a message to a driver event handler task.
495 *
496 */
497 INT wifi_setApRtsThreshold(INT apIndex, UINT threshold); // sets the packet size threshold in bytes to apply RTS/CTS backoff rules.
498 
499 /* wifi_removeApSecVaribles() function */
500 /**
501 * @brief Deletes internal security variable settings for this access point.
502 *
503 * @param[in] apIndex Access Point index
504 *
505 * @return The status of the operation
506 * @retval RETURN_OK if successful
507 * @retval RETURN_ERR if any error is detected
508 *
509 * @execution Synchronous
510 * @sideeffect None
511 *
512 * @note This function must not suspend and must not invoke any blocking system
513 * calls. It should probably just send a message to a driver event handler task.
514 *
515 */
516 INT wifi_removeApSecVaribles(INT apIndex); // deletes internal security varable settings for this ap
517 
518 /* wifi_disableApEncryption() function */
519 /**
520 * @brief Changes the hardware settings to disable encryption on this access point.
521 *
522 * @param[in] apIndex Access Point index
523 *
524 * @return The status of the operation
525 * @retval RETURN_OK if successful
526 * @retval RETURN_ERR if any error is detected
527 *
528 * @execution Synchronous
529 * @sideeffect None
530 *
531 * @note This function must not suspend and must not invoke any blocking system
532 * calls. It should probably just send a message to a driver event handler task.
533 *
534 */
535 INT wifi_disableApEncryption(INT apIndex); // changes the hardware settings to disable encryption on this ap
536 
537 /* wifi_getApNumDevicesAssociated() function */
538 /**
539 * @brief Outputs the number of stations associated per Access Point.
540 *
541 * @param[in] apIndex Access Point index
542 * @param[out] output_ulong Number of stations, to be returned
543 *
544 * @return The status of the operation
545 * @retval RETURN_OK if successful
546 * @retval RETURN_ERR if any error is detected
547 *
548 * @execution Synchronous
549 * @sideeffect None
550 *
551 * @note This function must not suspend and must not invoke any blocking system
552 * calls. It should probably just send a message to a driver event handler task.
553 *
554 */
555 INT wifi_getApNumDevicesAssociated(INT apIndex, ULONG *output_ulong); // Outputs the number of stations associated per AP
556 
557 #ifdef WIFI_HAL_VERSION_3_PHASE2
558 /* wifi_kickApAssociatedDevice() function */
559 /**
560 * @brief Manually removes any active wi-fi association with the device specified on this access point.
561 *
562 * @param[in] apIndex Access Point index
563 * @param[in] client_mac Client device MAC address
564 *
565 * @return The status of the operation
566 * @retval RETURN_OK if successful
567 * @retval RETURN_ERR if any error is detected
568 *
569 * @execution Synchronous
570 * @sideeffect None
571 *
572 * @note This function must not suspend and must not invoke any blocking system
573 * calls. It should probably just send a message to a driver event handler task.
574 *
575 */
576 INT wifi_kickApAssociatedDevice(INT apIndex, mac_address_t client_mac); // manually removes any active wi-fi association with the device specified on this ap
577 #endif
578 
579 /* wifi_getApRadioIndex() function */
580 /**
581 * @brief Outputs the radio index for the specified access point.
582 *
583 * @param[in] apIndex Access Point index
584 * @param[out] output_int Radio index, to be returned
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 * @execution Synchronous
591 * @sideeffect None
592 *
593 * @note This function must not suspend and must not invoke any blocking system
594 * calls. It should probably just send a message to a driver event handler task.
595 *
596 */
597 INT wifi_getApRadioIndex(INT apIndex, INT *output_int); // outputs the radio index for the specified ap
598 
599 /* wifi_getApAclDevices() function */
600 /**
601 * @brief Get the ACL MAC list per Access Point.
602 *
603 * @param[in] apIndex Access Point index
604 * @param[out] macArray Mac Array list, to be returned // in formate as "11:22:33:44:55:66\n11:22:33:44:55:67\n"
605 * @param[in] maxArraySize Array size
606 * @param[out] output_numEntries size list returned
607 *
608 * @return The status of the operation
609 * @retval RETURN_OK if successful
610 * @retval RETURN_ERR if any error is detected
611 *
612 * @execution Synchronous
613 * @sideeffect None
614 *
615 * @note This function must not suspend and must not invoke any blocking system
616 * calls. It should probably just send a message to a driver event handler task.
617 *
618 */
619 #ifdef WIFI_HAL_VERSION_3_PHASE2
620 INT wifi_getApAclDevices(INT apIndex, mac_address_t *macArray, UINT maxArraySize, UINT* output_numEntries); // Get the ACL MAC list per AP
621 #endif
622 
623 /* wifi_addApAclDevice() function */
624 /**
625 * @brief Adds the mac address to the filter list.
626 *
627 * @param[in] apIndex Access Point index
628 * @param[in] DeviceMacAddress Mac Address of a device
629 *
630 * @return The status of the operation
631 * @retval RETURN_OK if successful
632 * @retval RETURN_ERR if any error is detected
633 *
634 * @execution Synchronous
635 * @sideeffect None
636 *
637 * @note This function must not suspend and must not invoke any blocking system
638 * calls. It should probably just send a message to a driver event handler task.
639 *
640 */
641 #ifdef WIFI_HAL_VERSION_3_PHASE2
642 INT wifi_addApAclDevice(INT apIndex, mac_address_t DeviceMacAddress); // adds the mac address to the filter list
643 #endif
644 
645 
646 /**
647 * @brief Deletes all Device MAC address from the Access control filter list.
648 *
649 * @param[in] apIndex Access Point index
650 *
651 * @return The status of the operation
652 * @retval RETURN_OK if successful
653 * @retval RETURN_ERR if any error is detected
654 *
655 * @execution Synchronous
656 * @sideeffect None
657 *
658 */
659 INT wifi_delApAclDevices(INT apINdex);
660 
661 /* wifi_getApAclDeviceNum() function */
662 /**
663 * @brief Outputs the number of devices in the filter list.
664 *
665 * @param[in] apIndex Access Point index
666 * @param[out] output_uint Number of devices, to be returned
667 *
668 * @return The status of the operation
669 * @retval RETURN_OK if successful
670 * @retval RETURN_ERR if any error is detected
671 *
672 * @execution Synchronous
673 * @sideeffect None
674 *
675 * @note This function must not suspend and must not invoke any blocking system
676 * calls. It should probably just send a message to a driver event handler task.
677 *
678 */
679 INT wifi_getApAclDeviceNum(INT apIndex, UINT *output_uint); // outputs the number of devices in the filter list
680 
681 /* wifi_kickApAclAssociatedDevices() function */
682 /**
683 * @brief Enable kick for devices on acl black list.
684 *
685 * @param[in] apIndex Access Point index
686 * @param[in] enable Enable/disable kick for devices on acl black list
687 *
688 * @return The status of the operation
689 * @retval RETURN_OK if successful
690 * @retval RETURN_ERR if any error is detected
691 *
692 * @execution Synchronous
693 * @sideeffect None
694 *
695 * @note This function must not suspend and must not invoke any blocking system
696 * calls. It should probably just send a message to a driver event handler task.
697 *
698 */
699 INT wifi_kickApAclAssociatedDevices(INT apIndex,BOOL enable); // enable kick for devices on acl black list
700 
701 /* wifi_kickApAclAssociatedDevices() function */
702 /**
703 * @brief Enable kick for devices on acl black list.
704 *
705 * @param[in] apIndex Access Point index
706 * @param[in] enable Enable/disable kick for devices on acl black list
707 *
708 * @return The status of the operation
709 * @retval RETURN_OK if successful
710 * @retval RETURN_ERR if any error is detected
711 *
712 * @execution Synchronous
713 * @sideeffect None
714 *
715 * @note This function must not suspend and must not invoke any blocking system
716 * calls. It should probably just send a message to a driver event handler task.
717 *
718 */
719 INT wifi_kickApAclAssociatedDevices(INT apIndex,BOOL enable); // enable kick for devices on acl black list
720 
721 /* wifi_setApMacAddressControlMode() function */
722 /**
723 * @brief Sets the mac address filter control mode.
724 *
725 * - 0 : filter as disabled
726 * - 1 : filter as whitelist
727 * - 2 : filter as blacklist.
728 *
729 * @param[in] apIndex Access Point index
730 * @param[in] filterMode Mac Address filter control mode
731 *
732 * @return The status of the operation
733 * @retval RETURN_OK if successful
734 * @retval RETURN_ERR if any error is detected
735 *
736 * @execution Synchronous
737 * @sideeffect None
738 *
739 * @note This function must not suspend and must not invoke any blocking system
740 * calls. It should probably just send a message to a driver event handler task.
741 *
742 */
743 INT wifi_setApMacAddressControlMode(INT apIndex, INT filterMode); // sets the mac address filter control mode. 0 == filter disabled, 1 == filter as whitelist, 2 == filter as blacklist
744 
745 /**
746 * @brief This function is to read the ACL mode.
747 *
748 * @param[in] apIndex Access Point index
749 * @param[out] output_filterMode Mac Address control mode
750 *
751 * @return The status of the operation
752 * @retval RETURN_OK if successful
753 * @retval RETURN_ERR if any error is detected
754 *
755 * @execution Synchronous
756 * @sideeffect None
757 *
758 * @note This function must not suspend and must not invoke any blocking system
759 * calls. It should probably just send a message to a driver event handler task.
760 *
761 */
762 INT wifi_getApMacAddressControlMode(INT apIndex, INT *output_filterMode);
763 
764 /* wifi_setApVlanID() function */
765 /**
766 * @brief Sets the vlan ID for this access point to an internal environment variable.
767 *
768 * @param[in] apIndex Access Point index
769 * @param[in] vlanId VLAN ID
770 *
771 * @return The status of the operation
772 * @retval RETURN_OK if successful
773 * @retval RETURN_ERR if any error is detected
774 *
775 * @execution Synchronous
776 * @sideeffect None
777 *
778 * @note This function must not suspend and must not invoke any blocking system
779 * calls. It should probably just send a message to a driver event handler task.
780 *
781 */
782 INT wifi_setApVlanID(INT apIndex, INT vlanId); // sets the vlan ID for this ap to an internal environment variable
783 
784 
785 /* wifi_resetApVlanCfg() function */
786 /**
787 * @brief Reset the vlan configuration for this access point.
788 *
789 * @param[in] apIndex Access Point index
790 *
791 * @return The status of the operation
792 * @retval RETURN_OK if successful
793 * @retval RETURN_ERR if any error is detected
794 *
795 * @execution Synchronous
796 * @sideeffect None
797 *
798 * @note This function must not suspend and must not invoke any blocking system
799 * calls. It should probably just send a message to a driver event handler task.
800 *
801 */
802 INT wifi_resetApVlanCfg(INT apIndex); // reset the vlan configuration for this ap
803 
804 /* wifi_setApEnable() function */
805 /**
806 * @brief Sets the Access Point enable status variable for the specified access point.
807 *
808 * @param[in] apIndex Access Point index
809 * @param[in] enable Enable/Disable AP enable status variable
810 *
811 * @return The status of the operation
812 * @retval RETURN_OK if successful
813 * @retval RETURN_ERR if any error is detected
814 *
815 * @execution Synchronous
816 * @sideeffect None
817 *
818 * @note This function must not suspend and must not invoke any blocking system
819 * calls. It should probably just send a message to a driver event handler task.
820 *
821 */
822 INT wifi_setApEnable(INT apIndex, BOOL enable); // sets the AP enable status variable for the specified ap.
823 
824 /* wifi_getApEnable() function */
825 /**
826 * @brief Outputs the setting of the internal variable that is set by wifi_setEnable().
827 *
828 * @param[in] apIndex Access Point index
829 * @param[out] output_bool AP enable status, to be returned
830 *
831 * @return The status of the operation
832 * @retval RETURN_OK if successful
833 * @retval RETURN_ERR if any error is detected
834 *
835 * @execution Synchronous
836 * @sideeffect None
837 *
838 * @note This function must not suspend and must not invoke any blocking system
839 * calls. It should probably just send a message to a driver event handler task.
840 *
841 */
842 INT wifi_getApEnable(INT apIndex, BOOL *output_bool); // Outputs the setting of the internal variable that is set by wifi_setEnable().
843 
844 
845 /* wifi_getApStatus() function */
846 /**
847 * @brief Outputs the AP "Enabled" "Disabled" status from driver.
848 *
849 * @param[in] apIndex Access Point index
850 * @param[out] output_string AP status, to be returned
851 *
852 * @return The status of the operation
853 * @retval RETURN_OK if successful
854 * @retval RETURN_ERR if any error is detected
855 *
856 * @execution Synchronous
857 * @sideeffect None
858 *
859 * @note This function must not suspend and must not invoke any blocking system
860 * calls. It should probably just send a message to a driver event handler task.
861 *
862 */
863 INT wifi_getApStatus(INT apIndex, CHAR *output_string);// Outputs the AP "Enabled" "Disabled" status from driver
864 
865 
866 /* wifi_getApSsidAdvertisementEnable() function */
867 /**
868 * @brief Indicates whether or not beacons include the SSID name.
869 *
870 * Outputs 1 if SSID on the AP is enabled, else ouputs 0.
871 *
872 * @param[in] apIndex Access Point index
873 * @param[out] output_bool SSID Advertisement enabled, to be returned
874 *
875 * @return The status of the operation
876 * @retval RETURN_OK if successful
877 * @retval RETURN_ERR if any error is detected
878 *
879 * @execution Synchronous
880 * @sideeffect None
881 *
882 * @note This function must not suspend and must not invoke any blocking system
883 * calls. It should probably just send a message to a driver event handler task.
884 *
885 */
886 //Indicates whether or not beacons include the SSID name.
887 INT wifi_getApSsidAdvertisementEnable(INT apIndex, BOOL *output_bool);// outputs a 1 if SSID on the AP is enabled, else ouputs 0
888 
889 /* wifi_setApSsidAdvertisementEnable() function */
890 /**
891 * @brief Sets an internal variable for ssid advertisement.
892 *
893 * Set to 1 to enable, set to 0 to disable.
894 *
895 * @param[in] apIndex Access Point index
896 * @param[in] enable SSID Advertisement enable value
897 *
898 * @return The status of the operation
899 * @retval RETURN_OK if successful
900 * @retval RETURN_ERR if any error is detected
901 *
902 * @execution Synchronous
903 * @sideeffect None
904 *
905 * @note This function must not suspend and must not invoke any blocking system
906 * calls. It should probably just send a message to a driver event handler task.
907 *
908 */
909 INT wifi_setApSsidAdvertisementEnable(INT apIndex, BOOL enable); // sets an internal variable for ssid advertisement. Set to 1 to enable, set to 0 to disable
910 
911 /* wifi_getApRetryLimit() function */
912 /**
913 * @brief Get the maximum number of retransmission for a packet.
914 *
915 * This corresponds to IEEE 802.11 parameter dot11ShortRetryLimit.
916 *
917 * @param[in] apIndex Access Point index
918 * @param[out] output Maximum number of retransmission for a packet, to be returned
919 *
920 * @return The status of the operation
921 * @retval RETURN_OK if successful
922 * @retval RETURN_ERR if any error is detected
923 *
924 * @execution Synchronous
925 * @sideeffect None
926 *
927 * @note This function must not suspend and must not invoke any blocking system
928 * calls. It should probably just send a message to a driver event handler task.
929 *
930 */
931 //The maximum number of retransmission for a packet. This corresponds to IEEE 802.11 parameter dot11ShortRetryLimit.
932 INT wifi_getApRetryLimit(INT apIndex, UINT *output);
933 
934 /* wifi_setApRetryLimit() function */
935 /**
936 * @brief Set the maximum number of retransmission for a packet.
937 *
938 * This corresponds to IEEE 802.11 parameter dot11ShortRetryLimit.
939 *
940 * @param[in] apIndex Access Point index
941 * @param[in] number Maximum number of retransmission for a packet
942 *
943 * @return The status of the operation
944 * @retval RETURN_OK if successful
945 * @retval RETURN_ERR if any error is detected
946 *
947 * @execution Synchronous
948 * @sideeffect None
949 *
950 * @note This function must not suspend and must not invoke any blocking system
951 * calls. It should probably just send a message to a driver event handler task.
952 *
953 */
954 INT wifi_setApRetryLimit(INT apIndex, UINT number);
955 
956 /* wifi_getApWmmEnable() function */
957 /**
958 * @brief Indicates whether WMM support is currently enabled.
959 *
960 * When enabled, this is indicated in beacon frames.
961 *
962 * @param[in] apIndex Access Point index
963 * @param[out] output WMM support enabled status, to be returned
964 *
965 * @return The status of the operation
966 * @retval RETURN_OK if successful
967 * @retval RETURN_ERR if any error is detected
968 *
969 * @execution Synchronous
970 * @sideeffect None
971 *
972 * @note This function must not suspend and must not invoke any blocking system
973 * calls. It should probably just send a message to a driver event handler task.
974 *
975 */
976 //Whether WMM support is currently enabled. When enabled, this is indicated in beacon frames.
977 INT wifi_getApWmmEnable(INT apIndex, BOOL *output);
978 
979 /* wifi_setApWmmEnable() function */
980 /**
981 * @brief Enables/disables WMM on the hardwawre for this AP. enable==1, disable == 0.
982 *
983 * @param[in] apIndex Access Point index
984 * @param[in] enable WMM support enabled status
985 *
986 * @return The status of the operation
987 * @retval RETURN_OK if successful
988 * @retval RETURN_ERR if any error is detected
989 *
990 * @execution Synchronous
991 * @sideeffect None
992 *
993 * @note This function must not suspend and must not invoke any blocking system
994 * calls. It should probably just send a message to a driver event handler task.
995 *
996 */
997 INT wifi_setApWmmEnable(INT apIndex, BOOL enable); // enables/disables WMM on the hardwawre for this AP. enable==1, disable == 0
998 
999 /* wifi_getApWmmUapsdEnable() function */
1000 /**
1001 * @brief Indicates whether U-APSD support is currently enabled.
1002 *
1003 * When enabled, this is indicated in beacon frames.
1004 * U-APSD can only be enabled if WMM is also enabled.
1005 *
1006 * @param[in] apIndex Access Point index
1007 * @param[out] output U-APSD support enabled status, to be returned
1008 *
1009 * @return The status of the operation
1010 * @retval RETURN_OK if successful
1011 * @retval RETURN_ERR if any error is detected
1012 *
1013 * @execution Synchronous
1014 * @sideeffect None
1015 *
1016 * @note This function must not suspend and must not invoke any blocking system
1017 * calls. It should probably just send a message to a driver event handler task.
1018 *
1019 */
1020 //Whether U-APSD support is currently enabled. When enabled, this is indicated in beacon frames. Note: U-APSD can only be enabled if WMM is also enabled.
1021 INT wifi_getApWmmUapsdEnable(INT apIndex, BOOL *output);
1022 
1023 /* wifi_setApWmmUapsdEnable() function */
1024 /**
1025 * @brief Enables/disables Automatic Power Save Delivery on the hardwarwe for this Access Point.
1026 *
1027 * @param[in] apIndex Access Point index
1028 * @param[in] enable U-APSD enable/disable value
1029 *
1030 * @return The status of the operation
1031 * @retval RETURN_OK if successful
1032 * @retval RETURN_ERR if any error is detected
1033 *
1034 * @execution Synchronous
1035 * @sideeffect None
1036 *
1037 * @note This function must not suspend and must not invoke any blocking system
1038 * calls. It should probably just send a message to a driver event handler task.
1039 *
1040 */
1041 INT wifi_setApWmmUapsdEnable(INT apIndex, BOOL enable); // enables/disables Automatic Power Save Delivery on the hardwarwe for this AP
1042 
1043 /* wifi_setApWmmOgAckPolicy() function */
1044 /**
1045 * @brief Sets the WMM ACK policy on the hardware.
1046 *
1047 * AckPolicy false means do not acknowledge, true means acknowledge.
1048 *
1049 * @param[in] apIndex Access Point index
1050 * @param[in] class
1051 * @param[in] ackPolicy Acknowledge policy
1052 *
1053 * @return The status of the operation
1054 * @retval RETURN_OK if successful
1055 * @retval RETURN_ERR if any error is detected
1056 *
1057 * @execution Synchronous
1058 * @sideeffect None
1059 *
1060 * @note This function must not suspend and must not invoke any blocking system
1061 * calls. It should probably just send a message to a driver event handler task.
1062 *
1063 */
1064 // Sets the WMM ACK polity on the hardware. AckPolicy false means do not acknowledge, true means acknowledge
1065 INT wifi_setApWmmOgAckPolicy(INT apIndex, INT cla, BOOL ackPolicy);
1066 
1067 /* wifi_getApIsolationEnable() function */
1068 /**
1069 * @brief Get Access Point isolation value.
1070 *
1071 * A value of true means that the devices connected to the Access Point are isolated
1072 * from all other devices within the home network (as is typically the case for a Wireless Hotspot).
1073 *
1074 * @param[in] apIndex Access Point index
1075 * @param[out] output Access Point Isolation enable, to be returned
1076 *
1077 * @return The status of the operation
1078 * @retval RETURN_OK if successful
1079 * @retval RETURN_ERR if any error is detected
1080 *
1081 * @execution Synchronous
1082 * @sideeffect None
1083 *
1084 * @note This function must not suspend and must not invoke any blocking system
1085 * calls. It should probably just send a message to a driver event handler task.
1086 *
1087 */
1088 //Enables or disables device isolation. A value of true means that the devices connected to the Access Point are isolated from all other devices within the home network (as is typically the case for a Wireless Hotspot).
1089 INT wifi_getApIsolationEnable(INT apIndex, BOOL *output);
1090 
1091 /* wifi_setApIsolationEnable() function */
1092 /**
1093 * @brief Enables or disables device isolation.
1094 *
1095 * A value of true means that the devices connected to the Access Point are isolated
1096 * from all other devices within the home network (as is typically the case for a Wireless Hotspot).
1097 *
1098 * @param[in] apIndex Access Point index
1099 * @param[in] enable Access Point Isolation enable value
1100 *
1101 * @return The status of the operation
1102 * @retval RETURN_OK if successful
1103 * @retval RETURN_ERR if any error is detected
1104 *
1105 * @execution Synchronous
1106 * @sideeffect None
1107 *
1108 * @note This function must not suspend and must not invoke any blocking system
1109 * calls. It should probably just send a message to a driver event handler task.
1110 *
1111 */
1112 INT wifi_setApIsolationEnable(INT apIndex, BOOL enable);
1113 
1114 
1115 /**
1116 * @brief Set Access Point Beacon TX rate.
1117 *
1118 * @param[in] apIndex Access point index will be 0, 2,4,6,8 10, 12, 14(for 2.4G) only;
1119 * @param[in] sBeaconRate sBeaconRate could be "1Mbps"; "5.5Mbps"; "6Mbps"; "2Mbps"; "11Mbps"; "12Mbps"; "24Mbps"
1120 *
1121 * @return The status of the operation
1122 * @retval RETURN_OK if successful
1123 * @retval RETURN_ERR if any error is detected
1124 *
1125 * @execution Synchronous
1126 * @sideeffect None
1127 *
1128 * @note This function must not suspend and must not invoke any blocking system
1129 * calls. It should probably just send a message to a driver event handler task.
1130 *
1131 */
1132 INT wifi_setApBeaconRate(INT apIndex, char *sBeaconRate);
1133 
1134 /**
1135 * @brief Get Access Point Beacon TX rate.
1136 *
1137 * @param[in] apIndex Index of Wi-Fi Access Point
1138 * @param[out] output_BeaconRate Beacon rate output
1139 *
1140 * @return The status of the operation
1141 * @retval RETURN_OK if successful
1142 * @retval RETURN_ERR if any error is detected
1143 *
1144 * @execution Synchronous
1145 * @sideeffect None
1146 *
1147 * @note This function must not suspend and must not invoke any blocking system
1148 * calls. It should probably just send a message to a driver event handler task.
1149 *
1150 */
1151 INT wifi_getApBeaconRate(INT apIndex, char *output_BeaconRate);
1152 
1153 
1154 /* wifi_getApMaxAssociatedDevices() function */
1155 /**
1156 * @brief Get maximum associated devices with the Access Point index.
1157 *
1158 * The maximum number of devices that can simultaneously be connected to the access point.
1159 * A value of 0 means that there is no specific limit.
1160 *
1161 * @param[in] apIndex Access Point index
1162 * @param[out] output Maximum associated devices, to be returned
1163 *
1164 * @return The status of the operation
1165 * @retval RETURN_OK if successful
1166 * @retval RETURN_ERR if any error is detected
1167 *
1168 * @execution Synchronous
1169 * @sideeffect None
1170 *
1171 * @note This function must not suspend and must not invoke any blocking system
1172 * calls. It should probably just send a message to a driver event handler task.
1173 *
1174 */
1175 //The maximum number of devices that can simultaneously be connected to the access point. A value of 0 means that there is no specific limit.
1176 INT wifi_getApMaxAssociatedDevices(INT apIndex, UINT *output);
1177 
1178 /* wifi_setApMaxAssociatedDevices() function */
1179 /**
1180 * @brief Set maximum associated devices with the Access Point index.
1181 *
1182 * The maximum number of devices that can simultaneously be connected to the access point.
1183 * A value of 0 means that there is no specific limit.
1184 *
1185 * @param[in] apIndex Access Point index
1186 * @param[in] number Maximum associated devices
1187 *
1188 * @return The status of the operation
1189 * @retval RETURN_OK if successful
1190 * @retval RETURN_ERR if any error is detected
1191 *
1192 * @execution Synchronous
1193 * @sideeffect None
1194 *
1195 * @note This function must not suspend and must not invoke any blocking system
1196 * calls. It should probably just send a message to a driver event handler task.
1197 *
1198 */
1199 INT wifi_setApMaxAssociatedDevices(INT apIndex, UINT number);
1200 
1201 /* wifi_setApSecurityReset() function */
1202 /**
1203 * @brief When set to true, this AccessPoint instance's WiFi security settings are reset to their factory default values.
1204 *
1205 * The affected settings include ModeEnabled, WEPKey, PreSharedKey and KeyPassphrase.
1206 *
1207 * @param[in] apIndex Access Point index
1208 *
1209 * @return The status of the operation
1210 * @retval RETURN_OK if successful
1211 * @retval RETURN_ERR if any error is detected
1212 *
1213 * @execution Synchronous
1214 * @sideeffect None
1215 *
1216 * @note This function must not suspend and must not invoke any blocking system
1217 * calls. It should probably just send a message to a driver event handler task.
1218 *
1219 */
1220 //When set to true, this AccessPoint instance's WiFi security settings are reset to their factory default values. The affected settings include ModeEnabled, WEPKey, PreSharedKey and KeyPassphrase.
1222 
1223 /* wifi_getApSecurityMFPConfig() function */
1224 /**
1225 * @brief To retrive the MFPConfig for each VAP
1226 *
1227 * @param[in] apIndex Access Point index
1228 * @param[out] output_string. Preallocated buffer for 64bytes. Allowed output string are "Disabled", "Optional", "Required"
1229 *
1230 * @return The status of the operation
1231 * @retval RETURN_OK if successful
1232 * @retval RETURN_ERR if any error is detected
1233 *
1234 * @execution Synchronous
1235 * @sideeffect None
1236 *
1237 * @note This function must not suspend and must not invoke any blocking system
1238 * calls. It should probably just send a message to a driver event handler task.
1239 *
1240 */
1241 INT wifi_getApSecurityMFPConfig(INT apIndex, CHAR *output_string);
1242 
1243 /* wifi_setApSecurityMFPConfig() function */
1244 /**
1245 * @brief the hal is used to set the MFP config for each VAP.
1246 * 1. mfpconfig need to be saved into wifi config in persistent way (so that it could be automatically applied after the wifi or vap restart)
1247 * 2. mfpconfig need to be applied right away.
1248 *
1249 * @param[in] apIndex Access Point index
1250 * @param[in] MfpConfig, The allowed string for MFPConfig are "Disabled", "Optional", "Required"
1251 *
1252 * @return The status of the operation
1253 * @retval RETURN_OK if successful
1254 * @retval RETURN_ERR if any error is detected
1255 *
1256 * @execution Synchronous
1257 * @sideeffect None
1258 *
1259 * @note This function must not suspend and must not invoke any blocking system
1260 * calls. It should probably just send a message to a driver event handler task.
1261 *
1262 */
1263 INT wifi_setApSecurityMFPConfig(INT apIndex, CHAR *MfpConfig);
1264 
1265 
1266 /* wifi_getApSecurityRadiusServer() function */
1267 /**
1268 * @brief Get the IP Address and port number of the RADIUS server, which are used for WLAN security.
1269 *
1270 * RadiusServerIPAddr is only applicable when ModeEnabled is an Enterprise type
1271 * (i.e. WPA-Enterprise, WPA2-Enterprise or WPA-WPA2-Enterprise).
1272 * String is 64 bytes max.
1273 *
1274 * @param[in] Index Access Point index
1275 * @param[out] IP_output IP Address, to be returned
1276 * @param[out] Port_output Port output, to be returned
1277 * @param[out] RadiusSecret_output Radius Secret output, to be returned
1278 *
1279 * @return The status of the operation
1280 * @retval RETURN_OK if successful
1281 * @retval RETURN_ERR if any error is detected
1282 *
1283 * @execution Synchronous
1284 * @sideeffect None
1285 *
1286 * @note This function must not suspend and must not invoke any blocking system
1287 * calls. It should probably just send a message to a driver event handler task.
1288 *
1289 */
1290 //The IP Address and port number of the RADIUS server used for WLAN security. RadiusServerIPAddr is only applicable when ModeEnabled is an Enterprise type (i.e. WPA-Enterprise, WPA2-Enterprise or WPA-WPA2-Enterprise). String is 64 bytes max
1291 INT wifi_getApSecurityRadiusServer(INT apIndex, CHAR *IP_output, UINT *Port_output, CHAR *RadiusSecret_output);
1292 
1293 /* wifi_setApSecurityRadiusServer() function */
1294 /**
1295 * @brief Set the IP Address and port number of the RADIUS server, which are used for WLAN security.
1296 *
1297 * RadiusServerIPAddr is only applicable when ModeEnabled is an Enterprise type
1298 * (i.e. WPA-Enterprise, WPA2-Enterprise or WPA-WPA2-Enterprise). String is 64 bytes max.
1299 *
1300 * @param[in] apIndex Access Point index
1301 * @param[in] IPAddress IP Address
1302 * @param[in] port Port
1303 * @param[in] RadiusSecret Radius Secret
1304 *
1305 * @return The status of the operation
1306 * @retval RETURN_OK if successful
1307 * @retval RETURN_ERR if any error is detected
1308 *
1309 * @execution Synchronous
1310 * @sideeffect None
1311 *
1312 * @note This function must not suspend and must not invoke any blocking system
1313 * calls. It should probably just send a message to a driver event handler task.
1314 *
1315 */
1316 INT wifi_setApSecurityRadiusServer(INT apIndex, CHAR *IPAddress, UINT port, CHAR *RadiusSecret);
1317 
1318 /* wifi_getApSecuritySecondaryRadiusServer() function */
1319 /**
1320 * @brief Get secondary IP Address, port number and RADIUS server.
1321 *
1322 * Used for WLAN security.
1323 * RadiusServerIPAddr is only applicable when ModeEnabled is an Enterprise type
1324 * (i.e. WPA-Enterprise, WPA2-Enterprise or WPA-WPA2-Enterprise).
1325 * String is 64 bytes max.
1326 *
1327 * @param[in] apIndex Access Point index
1328 * @param[out] IP_output IP Address, to be returned
1329 * @param[out] Port_output Port,to be returned
1330 * @param[out] RadiusSecret_output Radius Secret, to be returned
1331 *
1332 * @return The status of the operation
1333 * @retval RETURN_OK if successful
1334 * @retval RETURN_ERR if any error is detected
1335 *
1336 * @execution Synchronous
1337 * @sideeffect None
1338 *
1339 * @note This function must not suspend and must not invoke any blocking system
1340 * calls. It should probably just send a message to a driver event handler task.
1341 *
1342 */
1343 INT wifi_getApSecuritySecondaryRadiusServer(INT apIndex, CHAR *IP_output, UINT *Port_output, CHAR *RadiusSecret_output);
1344 
1345 /* wifi_setApSecuritySecondaryRadiusServer() function */
1346 /**
1347 * @brief Set secondary IP Address, port number and RADIUS server, which are used for WLAN security.
1348 *
1349 * RadiusServerIPAddr is only applicable when ModeEnabled is an Enterprise type
1350 * (i.e. WPA-Enterprise, WPA2-Enterprise or WPA-WPA2-Enterprise).
1351 * String is 64 bytes max.
1352 *
1353 * @param[in] apIndex Access Point index
1354 * @param[in] IPAddress IP Address
1355 * @param[in] port Port
1356 * @param[in] RadiusSecret Radius Secret
1357 *
1358 * @return The status of the operation
1359 * @retval RETURN_OK if successful
1360 * @retval RETURN_ERR if any error is detected
1361 *
1362 * @execution Synchronous
1363 * @sideeffect None
1364 *
1365 * @note This function must not suspend and must not invoke any blocking system
1366 * calls. It should probably just send a message to a driver event handler task.
1367 *
1368 */
1369 INT wifi_setApSecuritySecondaryRadiusServer(INT apIndex, CHAR *IPAddress, UINT port, CHAR *RadiusSecret);
1370 
1371 
1372 /*wifi_getApDASRadiusServer function
1373 * @brief Get the IP Address and port number of the RADIUS DAS server, which are used for WLAN security.
1374 *
1375 * Device.WiFi.AccessPoint.{i}.Security.RadiusDASIPAddr
1376 * Device.WiFi.AccessPoint.{i}.Security.RadiusDASPort
1377 * Device.WiFi.AccessPoint.{i}.Security.RadiusDASSecret
1378 
1379 * @param[in] apIndex Access Point index
1380 * @param[in] IP_output IP Address
1381 * @param[in] Port_output Port
1382 * @param[in] RadiusdasSecret_output Radius DAS Secret
1383 *
1384 * Radius DAS Secret is not applicable for open ssid
1385 *
1386 * @return The status of the operation
1387 * @retval RETURN_OK if successful
1388 * @retval RETURN_ERR if any error is detected
1389 *
1390 * @execution Synchronous
1391 * @sideeffect None
1392 *
1393 * @note This function must not suspend and must not invoke any blocking system
1394 * calls. It should probably just send a message to a driver event handler task.
1395 *
1396 */
1397 INT wifi_getApDASRadiusServer(INT apIndex, CHAR *IP_output, UINT *Port_output, CHAR *RadiusdasSecret_output);
1398 
1399 /* wifi_setApDASRadiusServer() function */
1400 /**
1401 * @brief Set the IP Address and port number of the RADIUS DAS server, which are used for WLAN security.
1402 *
1403 * Device.WiFi.AccessPoint.{i}.Security.RadiusDASIPAddr
1404 * Device.WiFi.AccessPoint.{i}.Security.RadiusDASPort
1405 * Device.WiFi.AccessPoint.{i}.Security.RadiusDASSecret
1406 *
1407 * @param[in] IPAddress IP Address
1408 * @param[in] port Port
1409 * @param[in] RadiusdasSecret Radius Secret
1410 *
1411 * @return The status of the operation
1412 * @retval RETURN_OK if successful
1413 * @retval RETURN_ERR if any error is detected
1414 *
1415 * @execution Synchronous
1416 * @sideeffect None
1417 *
1418 * @note This function must not suspend and must not invoke any blocking system
1419 * calls. It should probably just send a message to a driver event handler task.
1420 *
1421 */
1422 INT wifi_setApDASRadiusServer(INT apIndex, CHAR *IPAddress, UINT port, CHAR *RadiusdasSecret); //Tr181
1423 
1424 /**
1425 * @brief This function is to enable or disable
1426 grey list Access Control on all applicable VAP
1427 *
1428 * @param[in] enable enable access control if true, disable if false
1429 *
1430 * @return The status of the operation
1431 * @retval RETURN_OK if successful
1432 * @retval RETURN_ERR if any error is detected
1433 *
1434 * @execution Synchronous
1435 * @sideeffect None
1436 *
1437 * @note This function must not suspend and must not
1438 invoke any blocking system
1439 * calls.
1440 *
1441 */
1443 
1444 /* wifi_getApSecurityRadiusSettings() function */
1445 /**
1446 * @brief Get Access Point security radius settings.
1447 *
1448 * @param[in] apIndex Access Point index
1449 * @param[out] output wifi_radius_setting_t info (*output), to be returned
1450 *
1451 * @return The status of the operation
1452 * @retval RETURN_OK if successful
1453 * @retval RETURN_ERR if any error is detected
1454 *
1455 * @execution Synchronous
1456 * @sideeffect None
1457 *
1458 * @note This function must not suspend and must not invoke any blocking system
1459 * calls. It should probably just send a message to a driver event handler task.
1460 *
1461 */
1463 
1464 /* wifi_setApSecurityRadiusSettings() function */
1465 /**
1466 * @brief Set Access Point security radius settings.
1467 *
1468 * @param[in] apIndex Access Point index
1469 * @param[in] input wifi_radius_setting_t info
1470 *
1471 * @return The status of the operation
1472 * @retval RETURN_OK if successful
1473 * @retval RETURN_ERR if any error is detected
1474 *
1475 * @execution Synchronous
1476 * @sideeffect None
1477 *
1478 * @note This function must not suspend and must not invoke any blocking system
1479 * calls. It should probably just send a message to a driver event handler task.
1480 *
1481 */
1483 
1484 //-----------------------------------------------------------------------------------------------
1485 
1486 /* wifi_getApWpsConfigurationState() function */
1487 /**
1488 * @brief Get WPS configuration state.
1489 *
1490 * Output string is either Not configured or Configured, max 32 characters.
1491 *
1492 * @param[in] apIndex Access Point index
1493 * @param[in] output_string WPS configuration state, to be returned
1494 *
1495 * @return The status of the operation
1496 * @retval RETURN_OK if successful
1497 * @retval RETURN_ERR if any error is detected
1498 *
1499 * @execution Synchronous
1500 * @sideeffect None
1501 *
1502 * @note This function must not suspend and must not invoke any blocking system
1503 * calls. It should probably just send a message to a driver event handler task.
1504 *
1505 */
1506 INT wifi_getApWpsConfigurationState(INT apIndex, CHAR *output_string); // Output string is either Not configured or Configured, max 32 characters
1507 
1508 /* wifi_setApWpsEnrolleePin() function */
1509 /**
1510 * @brief Sets the WPS pin for this Access Point.
1511 *
1512 * @param[in] apIndex Access Point index
1513 * @param[in] pin WPS enroll Pin
1514 *
1515 * @return The status of the operation
1516 * @retval RETURN_OK if successful
1517 * @retval RETURN_ERR if any error is detected
1518 *
1519 * @execution Synchronous
1520 * @sideeffect None
1521 *
1522 * @note This function must not suspend and must not invoke any blocking system
1523 * calls. It should probably just send a message to a driver event handler task.
1524 *
1525 */
1526 INT wifi_setApWpsEnrolleePin(INT apIndex, CHAR *pin); // sets the WPS pin for this AP
1527 
1528 /* wifi_setApWpsButtonPush() function */
1529 /**
1530 * @brief This function is called when the WPS push button has been pressed for this AP.
1531 *
1532 * @param[in] apIndex Access Point index
1533 *
1534 * @return The status of the operation
1535 * @retval RETURN_OK if successful
1536 * @retval RETURN_ERR if any error is detected
1537 *
1538 * @execution Synchronous
1539 * @sideeffect None
1540 *
1541 * @note This function must not suspend and must not invoke any blocking system
1542 * calls. It should probably just send a message to a driver event handler task.
1543 *
1544 */
1545 INT wifi_setApWpsButtonPush(INT apIndex); // This function is called when the WPS push button has been pressed for this AP
1546 
1547 /* wifi_cancelApWPS() function */
1548 /**
1549 * @brief Cancels WPS mode for this Access Point.
1550 *
1551 * @param[in] apIndex Access Point index
1552 *
1553 * @return The status of the operation
1554 * @retval RETURN_OK if successful
1555 * @retval RETURN_ERR if any error is detected
1556 *
1557 * @execution Synchronous
1558 * @sideeffect None
1559 *
1560 * @note This function must not suspend and must not invoke any blocking system
1561 * calls. It should probably just send a message to a driver event handler task.
1562 *
1563 */
1564 INT wifi_cancelApWPS(INT apIndex); // cancels WPS mode for this AP
1565 
1566 /* wifi_getApManagementFramePowerControl() function */
1567 /**
1568 * @brief Get the ApManagementFramePowerControl
1569 *
1570 * @param[in] apIndex Access Point index
1571 * @param[out] output_dBm ManagementFramePowerControl, to be returned
1572 *
1573 * @return The status of the operation
1574 * @retval RETURN_OK if successful
1575 * @retval RETURN_ERR if any error is detected
1576 *
1577 * @execution Synchronous
1578 * @sideeffect None
1579 *
1580 * @note This function must not suspend and must not invoke any blocking system
1581 * calls. It should probably just send a message to a driver event handler task.
1582 *
1583 */
1584 INT wifi_getApManagementFramePowerControl(INT apIndex, INT *output_dBm); // Get the RadioManagementFramePowerControl supported.
1585 
1586 /* wifi_setApManagementFramePowerControl() function */
1587 /**
1588 * @brief Sets the ApManagementFramePowerControl
1589 *
1590 * @param[in] apIndex Access Point index
1591 * @param[in] dBm RadioManagementFramePowerControl
1592 *
1593 * @return The status of the operation
1594 * @retval RETURN_OK if successful
1595 * @retval RETURN_ERR if any error is detected
1596 *
1597 * @execution Synchronous
1598 * @sideeffect None
1599 *
1600 * @note This function must not suspend and must not invoke any blocking system
1601 * calls. It should probably just send a message to a driver event handler task.
1602 *
1603 */
1604 INT wifi_setApManagementFramePowerControl(INT apIndex, INT dBm); // sets the RadioManagementFramePowerControl in db
1605 /** @} */ //END OF GROUP WIFI_HAL_APIS
1606 
1607 /**
1608  * @addtogroup WIFI_HAL_TYPES
1609  * @{
1610  */
1611 #ifdef WIFI_HAL_VERSION_3_PHASE2
1612 /* wifi_newApAssociatedDevice_callback() function */
1613 /**
1614 * @brief This call back will be invoked when new wifi client come to associate to Access Point.
1615 *
1616 * @param[in] apIndex Access Point Index
1617 * @param[in] associated_dev Associated device info
1618 *
1619 * @return The status of the operation
1620 * @retval RETURN_OK if successful
1621 * @retval RETURN_ERR if any error is detected
1622 *
1623 * @execution Synchronous
1624 * @sideeffect None
1625 *
1626 * @note This function must not suspend and must not invoke any blocking system
1627 * calls. It should probably just send a message to a driver event handler task.
1628 *
1629 */
1630 typedef INT(* wifi_newApAssociatedDevice_callback)(INT apIndex, wifi_associated_dev3_t *associated_dev);
1631 #else
1632 
1633 typedef struct _wifi_associated_dev
1634 {
1635  UCHAR cli_MACAddress[6]; /**< The MAC address of an associated device. */
1636  CHAR cli_IPAddress[64]; /**< IP of the associated device */
1637  BOOL cli_AuthenticationState; /**< Whether an associated device has authenticated (true) or not (false). */
1638  UINT cli_LastDataDownlinkRate; /**< The data transmit rate in kbps that was most recently used for transmission from the access point to the associated device. */
1639  UINT cli_LastDataUplinkRate; /**< The data transmit rate in kbps that was most recently used for transmission from the associated device to the access point. */
1640  INT cli_SignalStrength; /**< An indicator of radio signal strength of the uplink from the associated device to the access point, measured in dBm, as an average of the last 100 packets received from the device. */
1641  UINT cli_Retransmissions; /**< The number of packets that had to be re-transmitted, from the last 100 packets sent to the associated device. Multiple re-transmissions of the same packet count as one. */
1642  BOOL cli_Active; /**< boolean - Whether or not this node is currently present in the WiFi AccessPoint network. */
1643 
1644  CHAR cli_OperatingStandard[64]; /**< Radio standard the associated Wi-Fi client device is operating under. Enumeration of: */
1645  CHAR cli_OperatingChannelBandwidth[64]; /**< The operating channel bandwidth of the associated device. The channel bandwidth (applicable to 802.11n and 802.11ac specifications only). Enumeration of: */
1646  INT cli_SNR; /**< A signal-to-noise ratio (SNR) compares the level of the Wi-Fi signal to the level of background noise. Sources of noise can include microwave ovens, cordless phone, bluetooth devices, wireless video cameras, wireless game controllers, fluorescent lights and more. It is measured in decibels (dB). */
1647  CHAR cli_InterferenceSources[64]; /**< Wi-Fi operates in two frequency ranges (2.4 Ghz and 5 Ghz) which may become crowded other radio products which operate in the same ranges. This parameter reports the probable interference sources that this Wi-Fi access point may be observing. The value of this parameter is a comma seperated list of the following possible sources: eg: MicrowaveOven,CordlessPhone,BluetoothDevices,FluorescentLights,ContinuousWaves,Others */
1648  ULONG cli_DataFramesSentAck; /**< The DataFramesSentAck parameter indicates the total number of MSDU frames marked as duplicates and non duplicates acknowledged. The value of this counter may be reset to zero when the CPE is rebooted. Refer section A.2.3.14 of CableLabs Wi-Fi MGMT Specification. */
1649  ULONG cli_DataFramesSentNoAck; /**< The DataFramesSentNoAck parameter indicates the total number of MSDU frames retransmitted out of the interface (i.e., marked as duplicate and non-duplicate) and not acknowledged, but does not exclude those defined in the DataFramesLost parameter. The value of this counter may be reset to zero when the CPE is rebooted. Refer section A.2.3.14 of CableLabs Wi-Fi MGMT Specification. */
1650  ULONG cli_BytesSent; /**< The total number of bytes transmitted to the client device, including framing characters. */
1651  ULONG cli_BytesReceived; /**< The total number of bytes received from the client device, including framing characters. */
1652  INT cli_RSSI; /**< The Received Signal Strength Indicator, RSSI, parameter is the energy observed at the antenna receiver for transmissions from the device averaged over past 100 packets recevied from the device. */
1653  INT cli_MinRSSI; /**< The Minimum Received Signal Strength Indicator, RSSI, parameter is the minimum energy observed at the antenna receiver for past transmissions (100 packets). */
1654  INT cli_MaxRSSI; /**< The Maximum Received Signal Strength Indicator, RSSI, parameter is the energy observed at the antenna receiver for past transmissions (100 packets). */
1655  UINT cli_Disassociations; /**< This parameter represents the total number of client disassociations. Reset the parameter evey 24hrs or reboot */
1656  UINT cli_AuthenticationFailures; /**< This parameter indicates the total number of authentication failures. Reset the parameter evey 24hrs or reboot */
1657 
1658  UINT cli_CapableNumSpatialStreams; /**< The number of spatial streams supported by the associated client device. */
1659 
1660 } wifi_associated_dev_t; //~COSA_DML_WIFI_AP_ASSOC_DEVICE
1661 
1662 
1664 
1665 #endif
1666 /** @} */ //END OF GROUP WIFI_HAL_TYPES
1667 
1668 /**
1669  * @addtogroup WIFI_HAL_APIS
1670  * @{
1671  */
1672 /* wifi_newApAssociatedDevice_callback_register() function */
1673 /**
1674 * @brief Callback registration function.
1675 *
1676 * @param[in] callback_proc wifi_newApAssociatedDevice_callback callback function
1677 *
1678 * @return The status of the operation
1679 * @retval RETURN_OK if successful
1680 * @retval RETURN_ERR if any error is detected
1681 *
1682 * @execution Synchronous
1683 * @sideeffect None
1684 *
1685 * @note This function must not suspend and must not invoke any blocking system
1686 * calls. It should probably just send a message to a driver event handler task.
1687 *
1688 */
1690 /** @} */ //END OF GROUP WIFI_HAL_APIS
1691 
1692 /**
1693  * @addtogroup WIFI_HAL_TYPES
1694  * @{
1695  */
1696 /* wifi_apDisassociatedDevice_callback() function */
1697 /**
1698 * @brief This call back will be invoked when new wifi client disassociates from Access Point.
1699 *
1700 * @param[in] apIndex Access Point Index
1701 * @param[in] MAC MAC address of disassociated device
1702 * @param[in] event_type type of disassociation, explicit or due to client inactivity
1703 *
1704 * @return The status of the operation
1705 * @retval RETURN_OK if successful
1706 * @retval RETURN_ERR if any error is detected
1707 *
1708 * @execution Synchronous
1709 * @sideeffect None
1710 *
1711 * @note This function must not suspend and must not invoke any blocking system
1712 * calls. It should probably just send a message to a driver event handler task.
1713 *
1714 */
1715 typedef INT ( * wifi_apDisassociatedDevice_callback)(INT apIndex, char *MAC, INT event_type);
1716 /** @} */ //END OF GROUP WIFI_HAL_TYPES
1717 
1718 /**
1719  * @addtogroup WIFI_HAL_APIS
1720  * @{
1721  */
1722 /* wifi_apDisassociatedDevice_callback_register() function */
1723 /**
1724 * @brief Callback registration function.
1725 *
1726 * @param[in] callback_proc wifi_apDisassociatedDevice_callback callback function
1727 *
1728 * @return The status of the operation
1729 * @retval RETURN_OK if successful
1730 * @retval RETURN_ERR if any error is detected
1731 *
1732 * @execution Synchronous
1733 * @sideeffect None
1734 *
1735 * @note This function must not suspend and must not invoke any blocking system
1736 * calls. It should probably just send a message to a driver event handler task.
1737 *
1738 */
1740 /** @} */ //END OF GROUP WIFI_HAL_APIS
1741 
1742 /**
1743  * @addtogroup WIFI_HAL_TYPES
1744  * @{
1745  */
1746 /* wifi_apDeAuthEvent_callback() function */
1747 /**
1748 * @brief This call back will be invoked when DeAuth Event (reason 2 wrong password) comes from client.
1749 *
1750 * @param[in] apIndex Access Point Index
1751 * @param[in] MAC MAC address of client device
1752 * @param[in] reason reason for Auth Event
1753 *
1754 * @return The status of the operation
1755 * @retval RETURN_OK if successful
1756 * @retval RETURN_ERR if any error is detected
1757 *
1758 * @execution Synchronous
1759 * @sideeffect None
1760 *
1761 * @note This function must not suspend and must not invoke any blocking system
1762 * calls. It should probably just send a message to a driver event handler task.
1763 *
1764 */
1765 typedef INT ( * wifi_apDeAuthEvent_callback)(int ap_index, char *mac, int reason);
1766 /** @} */ //END OF GROUP WIFI_HAL_TYPES
1767 
1768 /**
1769  * @addtogroup WIFI_HAL_APIS
1770  * @{
1771  */
1772 /* wifi_apDeAuthEvent_callback_register() function */
1773 /**
1774 * @brief Callback registration function.
1775 *
1776 * @param[in] callback_proc wifi_apDeAuthEvent_callback callback function
1777 *
1778 * @return The status of the operation
1779 * @retval RETURN_OK if successful
1780 * @retval RETURN_ERR if any error is detected
1781 *
1782 * @execution Synchronous
1783 * @sideeffect None
1784 */
1786 
1787 INT wifi_setInterworkingAccessNetworkType(INT apIndex, INT accessNetworkType); // P3
1788 INT wifi_getInterworkingAccessNetworkType(INT apIndex, UINT *output_uint); // P3
1789 
1790 //-----------------------------------------------------------------------------------------------
1791 //Access Network Type value to be included in the Interworking IE in the beaconds. (refer 8.4.2.94 of IEEE Std 802.11-2012). Possible values are: 0 - Private network;1 - Private network with guest access;2 - Chargeable public network;3 - Free public network;4 - Personal device network;5 - Emergency services only network;6-13 - Reserved;14 - Test or experimental;15 - Wildcard
1792 INT wifi_setInterworkingAccessNetworkType(INT apIndex, INT accessNetworkType); // P3
1793 INT wifi_getInterworkingAccessNetworkType(INT apIndex, UINT *output_uint); // P3
1794 
1795 /** @} */ //END OF GROUP WIFI_HAL_APIS
1796 
1797 /**
1798  * @addtogroup WIFI_HAL_TYPES
1799  * @{
1800  */
1801 
1802 // Interworking Element structure; see 802.11-2016 section 9.4.2.92 for field definition.
1803 typedef struct {
1810  BOOL venueOptionPresent; /**< True when venue information has not been provided, e.g. the hostspot is in a residence. */
1814  mac_addr_str_t hessid; /**< Optional; use empty string to indicate no value provided. */
1816 
1817 /** @} */ //END OF GROUP WIFI_HAL_TYPES
1818 
1819 /**
1820  * @addtogroup WIFI_HAL_APIS
1821  * @{
1822  */
1823 /**
1824 * @brief Get the Interworking Service enable/disable value for the AP.
1825 *
1826 * @param[in] apIndex Index of the Access Point.
1827 * @param[in] output_bool Indication as to whether the AP Interworking Service is enabled (true) or disabled (false).
1828 *
1829 * @return The status of the operation
1830 * @retval RETURN_OK if successful
1831 * @retval RETURN_ERR if any error is detected
1832 */
1833 INT wifi_getApInterworkingServiceEnable(INT apIndex, BOOL *output_bool);
1834 
1835 /**
1836  * @brief Set the Interworking Service enable/disable value for the AP.
1837  *
1838  * @param[in] apIndex Index of the Access Point.
1839  * @param[in] input_bool Value to set the Interworking Service enable to, true or false.
1840  *
1841  * @return The status of the operation
1842  * @retval RETURN_OK if successful
1843  * @retval RETURN_ERR if any error is detected
1844  */
1845 INT wifi_setApInterworkingServiceEnable(INT apIndex, BOOL input_bool);
1846 
1847 /**
1848  * @brief Get the Interworking Element that will be sent by the AP.
1849  *
1850  * @param[in] apIndex Index of the Access Point.
1851  * @param[in] output_struct Interworking Element.
1852  *
1853  * @return The status of the operation
1854  * @retval RETURN_OK if successful
1855  * @retval RETURN_ERR if any error is detected
1856  */
1858 
1860  wifi_InterworkingElement_t *infoEelement);
1861 /** @} */ //END OF GROUP WIFI_HAL_APIS
1862 
1863 /**
1864  * @addtogroup WIFI_HAL_TYPES
1865  * @{
1866  */
1867 
1868 typedef enum
1869 {
1882 
1883 typedef enum
1884 {
1888 
1889 typedef enum
1890 {
1896 
1897 typedef struct {
1906 } __attribute__((packed)) wifi_frame_t;
1907 
1908 typedef void (* wifi_received8021xFrame_callback)(unsigned int ap_index, mac_address_t sta, wifi_eapol_type_t type, void *data, unsigned int len);
1909 typedef void (* wifi_sent8021xFrame_callback)(unsigned int ap_index, mac_address_t sta, wifi_eapol_type_t type, void *data, unsigned int len);
1910 
1911 typedef void (* wifi_receivedAuthFrame_callback)(unsigned int ap_index, mac_address_t sta, void *data, unsigned int len);
1912 typedef void (* wifi_sentAuthFrame_callback)(unsigned int ap_index, mac_address_t sta, void *data, unsigned int len);
1913 
1914 typedef void (* wifi_receivedAssocReqFrame_callback)(unsigned int ap_index, mac_address_t sta, void *data, unsigned int len);
1915 typedef void (* wifi_sentAssocRspFrame_callback)(unsigned int ap_index, mac_address_t sta, void *data, unsigned int len);
1916 
1917 #ifdef WIFI_HAL_VERSION_3_PHASE2
1918 typedef INT (* wifi_receivedMgmtFrame_callback)(INT apIndex, wifi_frame_t *frame);
1919 typedef INT (* wifi_receivedDataFrame_callback)(INT apIndex, mac_address_t sta_mac, UCHAR *frame, UINT len, wifi_dataFrameType_t type, wifi_direction_t dir);
1920 #else
1921 typedef INT (* wifi_receivedMgmtFrame_callback)(INT apIndex, UCHAR *sta_mac, UCHAR *frame, UINT len, wifi_mgmtFrameType_t type, wifi_direction_t dir);
1922 typedef INT (* wifi_receivedDataFrame_callback)(INT apIndex, UCHAR *sta_mac, UCHAR *frame, UINT len, wifi_dataFrameType_t type, wifi_direction_t dir);
1923 #endif
1924 
1925 typedef INT(* wifi_csi_callback)(mac_address_t mac_addr, wifi_csi_data_t *csi_data);
1926 /** @} */ //END OF GROUP WIFI_HAL_TYPES
1927 
1928 /**
1929  * @addtogroup WIFI_HAL_APIS
1930  * @{
1931  */
1932 
1934 
1935 
1936 
1937 /* wifi_csi_callback_register() function */
1938 /**
1939 * @brief CSI call back registration function. Callback will be executed when
1940 * the CSI data is available from the HAL. if CSI engine is disabled, this
1941 * callback should not be executed.
1942 *
1943 * @param[in] callback wifi_csi_callback callback function
1944 *
1945 * @execution Synchronous
1946 * @sideeffect None
1947 *
1948 * @note This function must not suspend and must not invoke any blocking system
1949 * calls. It should probably just send a message to a driver event handler task.
1950 *
1951 */
1952 void wifi_csi_callback_register(wifi_csi_callback callback_proc);
1953 
1954 
1955 /* wifi_enableCSIEngine() function */
1956 /*
1957  * Description: This function enables or disables CSI engine data for a specific STA on a VAP
1958  * If the MAC address is NULL mac address, enable argument MUST be false, otherwise function MUST return failure.
1959  * If the MAC address is NULL mac address, data engine for all STA(s) need to be disabled on this VAP
1960  *
1961  * Parameters :
1962  * apIndex - Index of VAP
1963  * sta - MAC address of the station associated in this VAP for which engine is being enabled/disabled
1964  * enable - Enable or diable
1965  *
1966  * @return The status of the operation.
1967  * @retval RETURN_OK if successful.
1968  * @retval RETURN_ERR if any error is detected
1969  *
1970  * @execution Synchronous.
1971  * @sideeffect None.
1972  *
1973  */
1974 
1975 INT wifi_enableCSIEngine(INT apIndex,
1976  mac_address_t sta,
1977  BOOL enable);
1978 
1979 /** @} */ //END OF GROUP WIFI_HAL_APIS
1980 
1981 
1982 /**
1983  * @addtogroup WIFI_HAL_TYPES
1984  * @{
1985  */
1986 #define WIFI_ETH_TYPE_IP 0x0800
1987 #define WIFI_ETH_TYPE_ARP 0x0806
1988 #define WIFI_ETH_TYPE_REVARP 0x8035
1989 #define WIFI_ETH_TYPE_VLAN 0x8100
1990 #define WIFI_ETH_TYPE_LOOPBACK 0x9000
1991 #define WIFI_ETH_TYPE_IP6 0x86DD
1992 #define WIFI_ETH_TYPE_EAPOL 0x888e
1993 
1994 typedef enum {
2004 /** @} */ //END OF GROUP WIFI_HAL_TYPES
2005 
2006 /**
2007  * @addtogroup WIFI_HAL_APIS
2008  * @{
2009  */
2010 /* wifi_sendDataFrame() function */
2011 /*
2012  * Description: This function sends data frame to a client associated in the specified VAP index
2013  * If the MAC address is NULL mac address, the data should be broadcast on the VAP
2014  *
2015  * Parameters :
2016  * apIndex - Index of VAP
2017  * sta - MAC address of the station associated in this VAP
2018  * data - Pointer to the data buffer. The data does not have any layer 2 information but has starts with layer 3.
2019  * len - length of data
2020  * insert_llc - whether LLC header should be inserted. If set to TRUE, HAL implementation MUST insert the following bytes before type field. DSAP = 0xaa, SSAP = 0xaa, Control = 0x03, followed by 3 bytes each = 0x00
2021  * eth_proto - ethernet protocol, the definitions are listed below.a
2022  * prio - priority of the frame with which scheduler should transmit the frame, please see the enumeration below.
2023  *
2024  * @return The status of the operation.
2025  * @retval RETURN_OK if successful.
2026  * @retval RETURN_ERR if any error is detected
2027  *
2028  * @execution Synchronous.
2029  * @sideeffect None.
2030  *
2031  */
2032 INT wifi_sendDataFrame(INT apIndex,
2033  mac_address_t sta,
2034  UCHAR *data,
2035  UINT len,
2036  BOOL insert_llc,
2037  UINT eth_proto,
2038  wifi_data_priority_t prio);
2039 
2040 
2041 /* @description transmit an action frame
2042  * Transmits an action frame to STA from a specific VAP
2043  *
2044  * @param apIndex; index of the vAP to send the frame from.
2045  * @param staMAC; MAC address string of the peer device to send the frame to
2046  * @param frequency; frequency of the channel on which this action frame should be sent on (for public action frames that
2047  * can be sent tp a device on off channel
2048  * @param frame; pointer to the frame buffer
2049  * @param len; length of the buffer
2050  * @return The status of the operation.
2051  * @retval RETURN_OK if successful.
2052  * @retval RETURN_ERR if any error is detected.
2053  */
2054 
2055 INT wifi_sendActionFrame(INT apIndex,
2057  UINT frequency,
2058  UCHAR *frame,
2059  UINT len);
2062 /* GAS Configuration */
2063 #define GAS_CFG_TYPE_SUPPORTED 1
2064 
2065 /* GAS Configuration */
2066 typedef struct _wifi_GASConfiguration_t{ // Values correspond to the dot11GASAdvertisementEntry field definitions; see 802.11-2016 Annex C.3.
2073 }__attribute__((packed))wifi_GASConfiguration_t;
2074 
2075 INT wifi_applyGASConfiguration(wifi_GASConfiguration_t *input_struct);
2076 
2077 /* Passpoint R1 related APIs */
2078 
2079 /***********************************************************************************
2080  * Description : Set Country code information element in Beacon and Probe Response
2081  * Parameters: AP Index, Enabled Status
2082  * Return: The status of the operation
2083  **********************************************************************************/
2084 INT wifi_setCountryIe(INT apIndex, BOOL enabled);
2085 
2086 /***********************************************************************************
2087  * Description : Get status of country code information element in Beacon
2088  and Probe Response
2089  * Parameters: AP Index, pointer to Enabled Status variable
2090  * Return: The status of the operation
2091  **********************************************************************************/
2092 INT wifi_getCountryIe(INT apIndex, BOOL *enabled);
2093 
2094 /***********************************************************************************
2095  * Description : Enable Traffic Inspection and Filtering
2096  * Parameters: AP Index, Enabled Status
2097  * Return: The status of the operation
2098  **********************************************************************************/
2100 
2101 /***********************************************************************************
2102  * Description : Get Traffic Inspection and Filtering status
2103  * Parameters: AP Index, pointer to Enabled Status variable
2104  * Return: The status of the operation
2105  **********************************************************************************/
2107 
2108 /***********************************************************************************
2109  * Description : Disable DGAF. When set to true, DGAF disabled bit should be set
2110  in HS2.0 Indication Information Element in Beacon and Probe
2111  * Parameters: AP Index, Disabled Status
2112  * Return: The status of the operation
2113  **********************************************************************************/
2114 INT wifi_setDownStreamGroupAddress(INT apIndex, BOOL disabled);
2115 
2116 /***********************************************************************************
2117  * Description : Status of Disable DGAF
2118  * Parameters: AP Index, pointer to Disabled Status variable
2119  * Return: The status of the operation
2120  **********************************************************************************/
2121 INT wifi_getDownStreamGroupAddress(INT apIndex, BOOL *disabled);
2122 
2123 /***********************************************************************************
2124  * Description : Enable BSS Load Information Element in Beacon/Probe Response
2125  * Parameters: AP Index, Enabled Status
2126  * Return: The status of the operation
2127  **********************************************************************************/
2128 INT wifi_setBssLoad(INT apIndex, BOOL enabled);
2129 
2130 /***********************************************************************************
2131  * Description : Get Status of BSS Load Information Element in Beacon/Probe Response
2132  * Parameters: AP Index, pointer to Enabled Status variable
2133  * Return: The status of the operation
2134  **********************************************************************************/
2135 INT wifi_getBssLoad(INT apIndex, BOOL *enabled);
2136 
2137 /***********************************************************************************
2138  * Description : Enable Proxy Arp function on device Driver
2139  * Parameters: AP Index, Enabled Status
2140  * Return: The status of the operation
2141  **********************************************************************************/
2142 INT wifi_setProxyArp(INT apIndex, BOOL enabled);
2143 
2144 /***********************************************************************************
2145  * Description : Get Status of Proxy Arp from Driver
2146  * Parameters: AP Index, pointer to Enabled Status variable
2147  * Return: The status of the operation
2148  **********************************************************************************/
2149 INT wifi_getProxyArp(INT apIndex, BOOL *enable);
2150 
2151 /***********************************************************************************
2152  * Description : Set Hotspot 2.0 Status for the Access Point
2153  * Parameters: AP Index, HS20 Enabled status
2154  * Return: The status of the operation
2155  **********************************************************************************/
2156 INT wifi_pushApHotspotElement(INT apIndex, BOOL enabled);
2157 
2158 /***********************************************************************************
2159  * Description : Enable Traffic Inspection and Filtering
2160  * Parameters: AP Index, pointer to Enabled Status variable
2161  * Return: The status of the operation
2162  **********************************************************************************/
2163 INT wifi_getApHotspotElement(INT apIndex, BOOL *enabled);
2164 
2165 /***********************************************************************************
2166  * Description : Push Roaming Consortium Information Element Contents to HAL
2167  * Parameters: AP Index, pointer to wifi_roamingConsortiumElement_t
2168  the structure contains OI count, length of first 3 OIs,
2169  and first 3 OI as a hex string. When count > 0 and interworking is
2170  enabled, Roaming Consortium Information Element should be present
2171  in Beacon and Probe Response with this information.
2172  * Return: The status of the operation
2173  **********************************************************************************/
2174 INT wifi_pushApRoamingConsortiumElement(INT apIndex, wifi_roamingConsortiumElement_t *infoElement);
2175 
2176 /***********************************************************************************
2177  * Description : Get Roaming Consortium Information Element Contents
2178  * Parameters: AP Index, pointer to wifi_roamingConsortiumElement_t
2179  If Roaming Consortium is not present, return count as 0,
2180  and length and OI fileds can be ignored
2181  * Return: The status of the operation
2182  **********************************************************************************/
2183 INT wifi_getApRoamingConsortiumElement(INT apIndex, wifi_roamingConsortiumElement_t *infoElement);
2184 
2185 /***********************************************************************************
2186  * Description : Disable P2P Cross Connect
2187  When Set to True, Include P2P Information element in Beacon and Probe Response
2188  Include P2P Manageability attribute with the Cross Connection Permitted field value 0
2189  * Parameters: AP Index, Disabled Status
2190  * Return: The status of the operation
2191  **********************************************************************************/
2192 INT wifi_setP2PCrossConnect(INT apIndex, BOOL disabled);
2193 
2194 /***********************************************************************************
2195  * Description : Get Disable P2P Cross Connect status
2196  * Parameters: AP Index, pointer to Disabled Status variable
2197  * Return: The status of the operation
2198  **********************************************************************************/
2199 INT wifi_getP2PCrossConnect(INT apIndex, BOOL *disabled);
2200 
2201 /* wifi_getAllTWTsessions() function */
2202 /**
2203 * @brief get all the TWT session(individual or Broadcast) connected to that AP Index .
2204 *
2205 * @param[in] ap_index access point index
2206 * @param[in] maxNumberSessions maximum number of session to copy in the list
2207 * @param[out] twtSessions pointer to the sessions information
2208 * @param[out] numSessionReturned num of seesion copied the list
2209 
2210 * @return The status of the operation
2211 * @retval RETURN_OK if successful
2212 * @retval RETURN_ERR if any error is detected
2213 *
2214 * @execution Synchronous
2215 * @sideeffect None
2216 *
2217 * @note This function must not suspend and must not invoke any blocking system
2218 * calls. It should probably just send a message to a driver event handler task.
2219 *
2220 */
2221 INT wifi_getTWTsessions(INT ap_index, UINT maxNumberSessions, wifi_twt_sessions_t * twtSessions, UINT* numSessionReturned);
2222 
2223 /* wifi_getBroadCastSession() function */
2224 /**
2225 * @brief Create or update a broadcast TWT Session
2226 *
2227 * @param[in] ap_index access point index
2228 * @param[in] twtParams twt params to create or update a broadcast TWT session
2229 * @param[in] create Flag to indicate if it should create a new broadcast TWT Session
2230 * @param[in/out] sessionID Input when create flag is false and session exist; and output when
2231 * create flag is true, in this case sessionID is the ID for the new session
2232 *
2233 * @return The status of the operation
2234 * @retval RETURN_OK if successful
2235 * @retval RETURN_ERR if any error is detected
2236 *
2237 * @execution Synchronous
2238 * @sideeffect None
2239 *
2240 * @note This function must not suspend and must not invoke any blocking system
2241 * calls. It should probably just send a message to a driver event handler task.
2242 *
2243 */
2244 INT wifi_setBroadcastTWTSchedule(INT ap_index , wifi_twt_params_t twtParams, BOOL create, INT* sessionID);
2245 
2246 /* wifi_teardownTWTSession() function */
2247 /**
2248 * @brief teardown the individual session or the broadcast session associate to the MAC
2249 *
2250 * @param[in] ap_index access point index
2251 * @param[in] sessionID TWT session to be teardown
2252 * @return The status of the operation
2253 * @retval RETURN_OK if successful
2254 * @retval RETURN_ERR if any error is detected
2255 *
2256 * @execution Synchronous
2257 * @sideeffect None
2258 *
2259 * @note This function must not suspend and must not invoke any blocking system
2260 * calls. It should probably just send a message to a driver event handler task.
2261 *
2262 */
2263 INT wifi_setTeardownTWTSession(INT ap_index, INT sessionID);
2264 
2265 /** @} */ //END OF GROUP WIFI_HAL_APIS
2266 
2267 /**
2268  * @addtogroup WIFI_HAL_TYPES
2269  * @{
2270  */
2271 
2272 /**
2273  * _wifi_key_multi_psk structure is a container for multi psk keys.
2274  * It is based on hostapd wpa_psk_file implementation
2275  * https://w1.fi/cgit/hostap/tree/hostapd/hostapd.wpa_psk
2276  */
2277 typedef struct _wifi_key_multi_psk {
2278  CHAR wifi_keyId[64]; //<! Key identifier. for example "key-15" or "key_example"
2279  CHAR wifi_psk[64]; //<! PSK is an ASCII passphrase of 8..63 characters
2281 /** @} */ //END OF GROUP WIFI_HAL_TYPES
2282 
2283 /* wifi_pushMultiPskKeys() function */
2284 /**
2285  * @description Function sets the new set of multi psk keys.
2286  * Previously set keys are removed.
2287  * This API is for setting all keys except the primary key.
2288  * Primary key is set by wifi_setApSecurityKeyPassphrase.
2289  *
2290  * @param[in] apIndex - access point index
2291  * @param[in] keys - Array with all keys that client devices can associate with AP
2292  * @param[in] keysNumber - Number of elements in 'keys' array
2293  *
2294  * @return The status of the operation
2295  * @retval RETURN_OK if successful
2296  * @retval RETURN_ERR if any error is detected
2297  *
2298  * @sideeffect None
2299  */
2300 INT wifi_pushMultiPskKeys(INT apIndex, wifi_key_multi_psk_t *keys, INT keysNumber);
2301 
2302 /* wifi_getMultiPskKeys() function */
2303 /**
2304  * @description Function gets all keys from multi psk config.
2305  * Implementation has to fill all active keys into wifi_key_multi_psk_t array.
2306  * The keys should be consecutively written starting at [0] element of the keys array.
2307  * This API is for getting all keys the except primary key.
2308  * Primary key can be get by wifi_getApSecurityKeyPassphrase.
2309  *
2310  * @param[in] apIndex - access point index
2311  * @param[out] keys - An array to which multi-psk keys active on the AP should be written to. If there are less present keys than 'keysNumber' the unused array elements should contain empty strings (""). Array is allocated by the caller.
2312  * @param[in] keysNumber - Number of elements in 'keys' array
2313  *
2314  * @return The status of the operation
2315  * @retval RETURN_OK if successful
2316  * @retval RETURN_ERR if any error is detected
2317  *
2318  * @sideeffect None
2319  */
2320 INT wifi_getMultiPskKeys(INT apIndex, wifi_key_multi_psk_t *keys, INT keysNumber);
2321 
2322 /* wifi_getMultiPskClientKey() function */
2323 /**
2324  * @description Function gets multi psk key for the client mac address.
2325  * If wifi_key_multi_psk_t.wifi_keyID is null this means that
2326  * multi psk key was not used for authentication.
2327  *
2328  * @param[in] apIndex - access point index
2329  * @param[in] mac - client mac address
2330  * @param[out] key - multi psk key structure
2331  *
2332  * @return The status of the operation
2333  * @retval RETURN_OK if successful
2334  * @retval RETURN_ERR if any error is detected
2335  *
2336  * @sideeffect None
2337  */
2339 
2340 /** @} */ //END OF GROUP WIFI_HAL_APIS
2341 
2342 /**
2343  * @addtogroup WIFI_HAL_TYPES
2344  * @{
2345  */
2346 typedef struct {
2347  wifi_GASConfiguration_t gas_config;
2348 }__attribute__((packed))wifi_config_t;
2349 
2351 
2352 /**
2353  * @brief Wifi onboarding methods
2354  */
2355 typedef enum{
2371 
2372 #define WIFI_AP_MAX_WPSPIN_LEN 9
2373 typedef struct
2374 {
2378 } __attribute__((packed)) wifi_wps_t;
2379 
2380 typedef enum {
2384 } wifi_mfp_cfg_t;
2385 
2386 typedef enum {
2390 
2391 /**
2392  * @brief Wifi RADIUS Settings
2393  */
2394 typedef struct {
2395 #ifdef WIFI_HAL_VERSION_3_PHASE2
2396  ip_addr_t ip; /**< The primary RADIUS server IP address. */
2397 #else
2398  unsigned char ip[45];
2399 #endif
2400  unsigned short port; /**< The primary RADIUS server port. */
2401  char key[64]; /**< The primary secret. */
2402  char identity[64]; /**< The primary identity. */
2403 #ifdef WIFI_HAL_VERSION_3_PHASE2
2404  ip_addr_t s_ip; /**< The secondary RADIUS server IP address. */
2405 #else
2406  unsigned char s_ip[45];
2407 #endif
2408  unsigned short s_port; /**< The secondary RADIUS server port. */
2409  char s_key[64]; /**< The secondary secret. */
2410  ip_addr_t dasip;
2412  char daskey[64];
2418 } __attribute__((packed)) wifi_radius_settings_t;
2419 
2420 typedef enum {
2426 
2427 typedef struct {
2429  char key[256];
2430 } __attribute__((packed)) wifi_security_key_t;
2431 
2432 /**
2433  * @brief Wifi encryption types
2434  */
2435 typedef enum {
2441 
2442 
2443 /**
2444  * @brief Wifi security mode types
2445  */
2446 typedef enum {
2460 
2461 typedef struct {
2464 #if defined(WIFI_HAL_VERSION_3)
2465  wifi_mfp_cfg_t mfp;
2466 #else
2467  char mfpConfig[32];
2468 #endif
2471  BOOL strict_rekey; // must be set for enterprise VAPs
2479  union {
2480  wifi_radius_settings_t radius;
2481  wifi_security_key_t key;
2482  } u;
2483 } __attribute__((packed)) wifi_vap_security_t;
2484 
2485 typedef struct {
2487  wifi_capabilityListANQP_t capabilityInfo;
2489  wifi_venueNameElement_t venueInfo;
2491  wifi_roamingConsortium_t roamInfo;
2492  wifi_ipAddressAvailabality_t ipAddressInfo;
2494  wifi_naiRealmElement_t realmInfo;
2496  wifi_3gppCellularNetwork_t gppInfo;
2498  wifi_domainName_t domainNameInfo;
2499  UCHAR passpointStats[1024];
2506  UCHAR anqpParameters[4096];
2507 } __attribute__((packed)) wifi_anqp_settings_t;
2508 
2509 typedef struct {
2510  BOOL enable;
2517 
2518  int capabilityInfoLength; //should not be implemented in the hal
2519  wifi_HS2_CapabilityList_t capabilityInfo; //should not be implemented in the hal
2520  int opFriendlyNameInfoLength; //should not be implemented in the hal
2521  wifi_HS2_OperatorFriendlyName_t opFriendlyNameInfo; //should not be implemented in the hal
2522  int connCapabilityLength; //should not be implemented in the hal
2523  wifi_HS2_ConnectionCapability_t connCapabilityInfo; //should not be implemented in the hal
2524  int realmInfoLength; //should not be implemented in the hal
2525  wifi_HS2_NAI_Home_Realm_Query_t realmInfo; //should not be implemented in the hal
2526  wifi_HS2_WANMetrics_t wanMetricsInfo; //should not be implemented in the hal
2527  UCHAR hs2Parameters[4096]; //should not be implemented in the hal
2528 } __attribute__((packed)) wifi_passpoint_settings_t;
2529 
2530 typedef struct {
2532  wifi_roamingConsortiumElement_t roamingConsortium;
2533  wifi_anqp_settings_t anqp; //should not be implemented in the hal
2534  wifi_passpoint_settings_t passpoint;
2535 } __attribute__((packed)) wifi_interworking_t;
2536 
2537 typedef enum {
2541 } wifi_vap_mode_t;
2542 
2543 typedef struct {
2544  unsigned int period; // period in seconds
2545  wifi_channel_t channel; // channel to scan, 0 means scan all in the band
2546 } __attribute__((packed)) wifi_scan_params_t;
2547 
2548 typedef struct {
2550  bssid_t bssid; // if bssid is set to all 0, scan the ssid with probes, otherwise connect to specified bssid
2553  wifi_scan_params_t scan_params;
2554  wifi_vap_security_t security;
2556 } __attribute__((packed)) wifi_back_haul_sta_t;
2557 
2558 #define WIFI_AP_MAX_SSID_LEN 33
2559 typedef struct {
2561  BOOL enabled;
2568  BOOL rapidReconnectEnable; //should not be implemented in the hal
2569  UINT rapidReconnThreshold; //should not be implemented in the hal
2570  BOOL vapStatsEnable; //should not be implemented in the hal
2571  wifi_vap_security_t security;
2572  wifi_interworking_t interworking;
2575  BOOL sec_changed; //should not be implemented in the hal
2576  wifi_wps_t wps;
2580  mac_address_t bssid; /**< The BSSID. This variable should only be used in the get API. It can't used to change the interface MAC */
2585  char beaconRateCtl[32];
2587  BOOL mcast2ucast; /**< True if 'multicast to unicast' feature is enabled for this VAP, false otherwise */
2588 } __attribute__((packed)) wifi_front_haul_bss_t;
2589 
2590 #define WIFI_BRIDGE_NAME_LEN 32
2591 
2592 typedef struct {
2598  union {
2599  wifi_front_haul_bss_t bss_info;
2600  wifi_back_haul_sta_t sta_info;
2601  } u;
2602 } __attribute__((packed)) wifi_vap_info_t;
2603 
2604 typedef struct {
2605  unsigned int num_vaps;
2606  wifi_vap_info_t vap_array[MAX_NUM_VAP_PER_RADIO];
2607 } __attribute__((packed)) wifi_vap_info_map_t;
2608 
2609 /**
2610  * @brief Wifi AP Capabilities
2611  */
2612 typedef struct {
2613  BOOL rtsThresholdSupported; /**< if bRtsThresholdSupported is TRUE, packet size threshold to apply RTS/CTS backoff rules is supported. */
2614  wifi_security_modes_t securityModesSupported; /**< The security modes supported (uses bitmask to return multiples modes). */
2615  wifi_onboarding_methods_t methodsSupported; /**< The on boarding methods supported (uses bitmask to return multiples values). */
2616  BOOL WMMSupported; /**< if bWMMSupported is TRUE, WiFi Multimedia (WMM) Access Categories (AC) is supported. */
2617  BOOL UAPSDSupported; /**< if bUAPSDSupported is TRUE, WMM Unscheduled Automatic Power Save Delivery (U-APSD) is supported. */
2618  BOOL interworkingServiceSupported; /**< if bInterworkingServiceSupported is TRUE, indicates whether the access point supports interworking with external networks. */
2619  BOOL BSSTransitionImplemented; /**< if BSSTransitionImplemented is TRUE, BTM implemented. */
2620 } __attribute__((packed)) wifi_ap_capabilities_t;
2621 
2622 
2623 /** @} */ //END OF GROUP WIFI_HAL_TYPES
2624 
2625 /**
2626  * @addtogroup WIFI_HAL_APIS
2627  * @{
2628  */
2629 INT wifi_createVAP(wifi_radio_index_t index, wifi_vap_info_map_t *map);
2630 
2631 INT wifi_getRadioVapInfoMap(wifi_radio_index_t index, wifi_vap_info_map_t *map);
2632 
2633 INT wifi_setApSecurity(INT ap_index, wifi_vap_security_t *security);
2634 INT wifi_getApSecurity(INT ap_index, wifi_vap_security_t *security);
2635 
2636 INT wifi_getAPCapabilities(INT ap_index, wifi_ap_capabilities_t *apCapabilities);
2637 
2638 INT wifi_getApWpsConfiguration(INT ap_index, wifi_wps_t* wpsConfig);
2639 INT wifi_setApWpsConfiguration(INT ap_index, wifi_wps_t* wpsConfig);
2640 
2641 INT wifi_getLibhostapd(BOOL *output_bool);
2642 INT wifi_updateLibHostApdConfig(int apIndex);
2643 
2644 /**
2645  * @brief VAP status possible values
2646  */
2647 typedef enum {
2651 
2652 /* wifi_vapstatus_callback() function */
2653 /**
2654 * @brief This call back will be invoked when VAP status changes
2655 *
2656 * @param[in] apIndex VAP Index
2657 * @param[in] status VAP status
2658 *
2659 * @return The status of the operation
2660 * @retval RETURN_OK if successful
2661 * @retval RETURN_ERR if any error is detected
2662 *
2663 * @execution Synchronous
2664 * @sideeffect None
2665 *
2666 * @note This function must not suspend and must not invoke any blocking system
2667 * calls. It should probably just send a message to a driver event handler task.
2668 *
2669 */
2670 typedef INT(* wifi_vapstatus_callback)(INT apIndex, wifi_vapstatus_t status);
2671 
2672 /* wifi_vapstatus_callback_register() function */
2673 /**
2674 * @brief VAP Status call back registration function.
2675 *
2676 * @param[in] callback wifi_vapstatus_callback callback function
2677 *
2678 * @return The status of the operation
2679 * @retval RETURN_OK if successful
2680 * @retval RETURN_ERR if any error is detected
2681 *
2682 * @execution Synchronous
2683 * @sideeffect None
2684 *
2685 * @note This function must not suspend and must not invoke any blocking system
2686 * calls. It should probably just send a message to a driver event handler task.
2687 *
2688 */
2690 
2691 /* wifi_analytics_callback() function */
2692 /**
2693 * @brief This call back will be invoked when HAL wants to log catasrophic failures
2694 *
2695 * @param[in] fmt format
2696 *
2697 * @return The status of the operation
2698 * @retval RETURN_OK if successful
2699 * @retval RETURN_ERR if any error is detected
2700 *
2701 * @execution Synchronous
2702 * @sideeffect None
2703 *
2704 * @note This function must not suspend and must not invoke any blocking system
2705 * calls. It should probably just send a message to a driver event handler task.
2706 *
2707 */
2708 typedef INT(* wifi_analytics_callback)(CHAR *fmt, ...);
2709 
2710 /* wifi_analytics_callback_register() function */
2711 /**
2712 * @brief VAP Status call back registration function.
2713 *
2714 * @param[in] callback wifi_analytics_callback callback function
2715 *
2716 * @return The status of the operation
2717 * @retval RETURN_OK if successful
2718 * @retval RETURN_ERR if any error is detected
2719 *
2720 * @execution Synchronous
2721 * @sideeffect None
2722 *
2723 * @note This function must not suspend and must not invoke any blocking system
2724 * calls. It should probably just send a message to a driver event handler task.
2725 *
2726 */
2728 
2729 /** @} */ //END OF GROUP WIFI_HAL_APIS
2730 
2731 #ifdef __cplusplus
2732 }
2733 #endif
2734 
2735 #endif
wifi_getApMaxAssociatedDevices
INT wifi_getApMaxAssociatedDevices(INT apIndex, UINT *output)
Get maximum associated devices with the Access Point index.
__attribute__::version
unsigned char version
Definition: wifi_hal_ap.h:311
wifi_InterworkingElement_t::venueType
UCHAR venueType
Definition: wifi_hal_ap.h:1812
wifi_getApWmmUapsdEnable
INT wifi_getApWmmUapsdEnable(INT apIndex, BOOL *output)
Indicates whether U-APSD support is currently enabled.
wifi_setApWmmOgAckPolicy
INT wifi_setApWmmOgAckPolicy(INT apIndex, INT cla, BOOL ackPolicy)
Sets the WMM ACK policy on the hardware.
__attribute__::connCapabilityLength
int connCapabilityLength
Definition: wifi_hal_ap.h:2522
mac_addr_str_t
char mac_addr_str_t[18]
Definition: wifi_hal_generic.h:212
__attribute__::code
unsigned char code
Definition: wifi_hal_ap.h:297
__attribute__::type
unsigned char type
Definition: wifi_hal_ap.h:312
wifi_eapol_type_eapol_logoff
@ wifi_eapol_type_eapol_logoff
Definition: wifi_hal_ap.h:306
wifi_vapstatus_up
@ wifi_vapstatus_up
Definition: wifi_hal_ap.h:2649
_wifi_associated_dev::cli_Active
BOOL cli_Active
Definition: wifi_hal_ap.h:1642
wifi_data_priority_t
wifi_data_priority_t
Definition: wifi_hal_ap.h:1994
wifi_vapstatus_down
@ wifi_vapstatus_down
Definition: wifi_hal_ap.h:2648
WIFI_EAP_TYPE_PEAP
@ WIFI_EAP_TYPE_PEAP
Definition: wifi_hal_ap.h:371
wifi_pushApRoamingConsortiumElement
INT wifi_pushApRoamingConsortiumElement(INT apIndex, wifi_roamingConsortiumElement_t *infoElement)
WIFI_EAP_TYPE_OTP
@ WIFI_EAP_TYPE_OTP
Definition: wifi_hal_ap.h:364
wifi_getApWpsConfiguration
INT wifi_getApWpsConfiguration(INT ap_index, wifi_wps_t *wpsConfig)
__attribute__::realmInfoLength
int realmInfoLength
Definition: wifi_hal_ap.h:2493
wifi_apDisassociatedDevice_callback_register
void wifi_apDisassociatedDevice_callback_register(wifi_apDisassociatedDevice_callback callback_proc)
Callback registration function.
_wifi_associated_dev::cli_MaxRSSI
INT cli_MaxRSSI
Definition: wifi_hal_ap.h:1654
_wifi_GASConfiguration_t::PauseForServerResponse
BOOL PauseForServerResponse
Definition: wifi_hal_ap.h:2068
wifi_data_priority_ca
@ wifi_data_priority_ca
Definition: wifi_hal_ap.h:1998
__attribute__::showSsid
BOOL showSsid
Definition: wifi_hal_ap.h:2562
wifi_bitrate_t
wifi_bitrate_t
Wifi supported bitrates.
Definition: wifi_hal_generic.h:330
wifi_vapstatus_callback
INT(* wifi_vapstatus_callback)(INT apIndex, wifi_vapstatus_t status)
This call back will be invoked when VAP status changes.
Definition: wifi_hal_ap.h:2670
wifi_getApIsolationEnable
INT wifi_getApIsolationEnable(INT apIndex, BOOL *output)
Get Access Point isolation value.
_wifi_associated_dev::cli_SignalStrength
INT cli_SignalStrength
Definition: wifi_hal_ap.h:1640
_wifi_trafficStats::wifi_MulticastPacketsReceived
ULONG wifi_MulticastPacketsReceived
Definition: wifi_hal_ap.h:40
wifi_getApAclDevices
INT wifi_getApAclDevices(INT apIndex, CHAR *macArray, UINT buf_size)
Get the ACL MAC list per Access Point.
__attribute__::auth_param_count
UCHAR auth_param_count
Definition: wifi_hal_ap.h:86
__attribute__::mac
mac_address_t mac
Definition: wifi_hal_ap.h:2555
__attribute__::rapidReconnectEnable
BOOL rapidReconnectEnable
Definition: wifi_hal_ap.h:2568
__attribute__::ipAddressInfo
wifi_ipAddressAvailabality_t ipAddressInfo
Definition: wifi_hal_ap.h:2492
wifi_mfp_cfg_optional
@ wifi_mfp_cfg_optional
Definition: wifi_hal_ap.h:2382
wifi_getApDASRadiusServer
INT wifi_getApDASRadiusServer(INT apIndex, CHAR *IP_output, UINT *Port_output, CHAR *RadiusdasSecret_output)
wifi_vap_name_t
char wifi_vap_name_t[64]
Definition: wifi_hal_generic.h:224
wifi_data_priority_bk
@ wifi_data_priority_bk
Definition: wifi_hal_ap.h:1996
wifi_csi_callback
INT(* wifi_csi_callback)(mac_address_t mac_addr, wifi_csi_data_t *csi_data)
Definition: wifi_hal_ap.h:1925
wifi_pushApInterworkingElement
INT wifi_pushApInterworkingElement(INT apIndex, wifi_InterworkingElement_t *infoEelement)
_wifi_GASConfiguration_t::ComeBackDelay
UINT ComeBackDelay
Definition: wifi_hal_ap.h:2070
__attribute__::methods
wifi_onboarding_methods_t methods
Definition: wifi_hal_ap.h:2376
wifi_getApSsidAdvertisementEnable
INT wifi_getApSsidAdvertisementEnable(INT apIndex, BOOL *output_bool)
Indicates whether or not beacons include the SSID name.
wifi_direction_t
wifi_direction_t
Definition: wifi_hal_ap.h:317
_wifi_GASConfiguration_t::ResponseBufferingTime
UINT ResponseBufferingTime
Definition: wifi_hal_ap.h:2071
ssid_t
char ssid_t[32]
Definition: wifi_hal_generic.h:215
wifi_InterworkingElement_t::internetAvailable
BOOL internetAvailable
Definition: wifi_hal_ap.h:1806
__attribute__::key
wifi_security_key_t key
Definition: wifi_hal_ap.h:2481
wifi_eapol_key_frame_t::descriptor
unsigned char descriptor
Definition: wifi_hal_ap.h:276
WIFI_MGMT_FRAME_TYPE_DISASSOC
@ WIFI_MGMT_FRAME_TYPE_DISASSOC
Definition: wifi_hal_ap.h:1879
__attribute__::lmd
USHORT lmd
Definition: wifi_hal_ap.h:195
CHAR
#define CHAR
Definition: bt_hal.h:45
wifi_setBssLoad
INT wifi_setBssLoad(INT apIndex, BOOL enabled)
__attribute__::passpoint
wifi_passpoint_settings_t passpoint
Definition: wifi_hal_ap.h:2534
wifi_data_priority_nc
@ wifi_data_priority_nc
Definition: wifi_hal_ap.h:2002
_wifi_associated_dev::cli_DataFramesSentNoAck
ULONG cli_DataFramesSentNoAck
Definition: wifi_hal_ap.h:1649
wifi_setApWmmUapsdEnable
INT wifi_setApWmmUapsdEnable(INT apIndex, BOOL enable)
Enables/disables Automatic Power Save Delivery on the hardwarwe for this Access Point.
__attribute__::upLinkSpeed
UINT upLinkSpeed
Definition: wifi_hal_ap.h:192
wifi_getApNumDevicesAssociated
INT wifi_getApNumDevicesAssociated(INT apIndex, ULONG *output_ulong)
Outputs the number of stations associated per Access Point.
wifi_HS2_Wan_Info_Link_Status_t
wifi_HS2_Wan_Info_Link_Status_t
Definition: wifi_hal_ap.h:202
__attribute__::rapidReconnThreshold
UINT rapidReconnThreshold
Definition: wifi_hal_ap.h:2569
wifi_key_multi_psk_t
struct _wifi_key_multi_psk wifi_key_multi_psk_t
wifi_auth_id_t
wifi_auth_id_t
Definition: wifi_hal_ap.h:68
wifi_getApSecuritySecondaryRadiusServer
INT wifi_getApSecuritySecondaryRadiusServer(INT apIndex, CHAR *IP_output, UINT *Port_output, CHAR *RadiusSecret_output)
Get secondary IP Address, port number and RADIUS server.
wifi_apDeAuthEvent_callback
INT(* wifi_apDeAuthEvent_callback)(int ap_index, char *mac, int reason)
This call back will be invoked when DeAuth Event (reason 2 wrong password) comes from client.
Definition: wifi_hal_ap.h:1765
WIFI_MGMT_FRAME_TYPE_REASSOC_RSP
@ WIFI_MGMT_FRAME_TYPE_REASSOC_RSP
Definition: wifi_hal_ap.h:1878
WIFI_MGMT_FRAME_TYPE_PROBE_RSP
@ WIFI_MGMT_FRAME_TYPE_PROBE_RSP
Definition: wifi_hal_ap.h:1872
WIFI_ONBOARDINGMETHODS_PHYSICALDISPLAY
@ WIFI_ONBOARDINGMETHODS_PHYSICALDISPLAY
Definition: wifi_hal_ap.h:2366
wifi_newApAssociatedDevice_callback
INT(* wifi_newApAssociatedDevice_callback)(INT apIndex, wifi_associated_dev_t *associated_dev)
Definition: wifi_hal_ap.h:1663
__attribute__::encoding
UCHAR encoding
Definition: wifi_hal_ap.h:92
wifi_security_mode_wpa3_personal
@ wifi_security_mode_wpa3_personal
Definition: wifi_hal_ap.h:2456
wifi_mac_filter_mode_t
wifi_mac_filter_mode_t
Definition: wifi_hal_ap.h:2386
__attribute__::eapol_key_retries
UINT eapol_key_retries
Definition: wifi_hal_ap.h:2473
wifi_associated_dev_t
struct _wifi_associated_dev wifi_associated_dev_t
wifi_vapstatus_callback_register
INT wifi_vapstatus_callback_register(wifi_vapstatus_callback callback)
VAP Status call back registration function.
wifi_receivedAssocReqFrame_callback
void(* wifi_receivedAssocReqFrame_callback)(unsigned int ap_index, mac_address_t sta, void *data, unsigned int len)
Definition: wifi_hal_ap.h:1914
__attribute__::venueType
UCHAR venueType
Definition: wifi_hal_ap.h:112
WIFI_ONBOARDINGMETHODS_VIRTUALPUSHBUTTON
@ WIFI_ONBOARDINGMETHODS_VIRTUALPUSHBUTTON
Definition: wifi_hal_ap.h:2367
wifi_apDisassociatedDevice_callback
INT(* wifi_apDisassociatedDevice_callback)(INT apIndex, char *MAC, INT event_type)
This call back will be invoked when new wifi client disassociates from Access Point.
Definition: wifi_hal_ap.h:1715
wifi_removeApSecVaribles
INT wifi_removeApSecVaribles(INT apIndex)
Deletes internal security variable settings for this access point.
wifi_applyGASConfiguration
INT wifi_applyGASConfiguration(wifi_GASConfiguration_t *input_struct)
__attribute__::sta_info
wifi_back_haul_sta_t sta_info
Definition: wifi_hal_ap.h:2600
WIFI_ONBOARDINGMETHODS_EXTERNALNFCTOKEN
@ WIFI_ONBOARDINGMETHODS_EXTERNALNFCTOKEN
Definition: wifi_hal_ap.h:2360
_wifi_associated_dev::cli_MinRSSI
INT cli_MinRSSI
Definition: wifi_hal_ap.h:1653
__attribute__::capabilityInfo
wifi_capabilityListANQP_t capabilityInfo
Definition: wifi_hal_ap.h:2487
wifi_encryption_tkip
@ wifi_encryption_tkip
Definition: wifi_hal_ap.h:2437
wifi_direction_unknown
@ wifi_direction_unknown
Definition: wifi_hal_ap.h:318
_wifi_associated_dev::cli_CapableNumSpatialStreams
UINT cli_CapableNumSpatialStreams
Definition: wifi_hal_ap.h:1658
wifi_setApWpsConfiguration
INT wifi_setApWpsConfiguration(INT ap_index, wifi_wps_t *wpsConfig)
wifi_setApInterworkingServiceEnable
INT wifi_setApInterworkingServiceEnable(INT apIndex, BOOL input_bool)
Set the Interworking Service enable/disable value for the AP.
wifi_vap_index_t
UINT wifi_vap_index_t
Definition: wifi_hal_ap.h:2350
wifi_getApInterworkingServiceEnable
INT wifi_getApInterworkingServiceEnable(INT apIndex, BOOL *output_bool)
Get the Interworking Service enable/disable value for the AP.
wifi_eapol_type_t
wifi_eapol_type_t
Definition: wifi_hal_ap.h:303
wifi_auth_id_inner_auth_eap
@ wifi_auth_id_inner_auth_eap
Definition: wifi_hal_ap.h:71
wifi_getInterworkingAccessNetworkType
INT wifi_getInterworkingAccessNetworkType(INT apIndex, UINT *output_uint)
BOOL
#define BOOL
Definition: dhcpv4c_api.h:79
__attribute__::wifiRoamingConsortiumCount
UCHAR wifiRoamingConsortiumCount
Definition: wifi_hal_ap.h:156
_wifi_trafficStats::wifi_MulticastPacketsSent
ULONG wifi_MulticastPacketsSent
Definition: wifi_hal_ap.h:39
_wifi_HS2_OperatorNameDuple_t::languageCode
UCHAR languageCode[3]
Definition: wifi_hal_ap.h:174
WIFI_EAP_TYPE_PWD
@ WIFI_EAP_TYPE_PWD
Definition: wifi_hal_ap.h:384
wifi_getMultiPskClientKey
INT wifi_getMultiPskClientKey(INT apIndex, mac_address_t mac, wifi_key_multi_psk_t *key)
WIFI_ONBOARDINGMETHODS_USBFLASHDRIVE
@ WIFI_ONBOARDINGMETHODS_USBFLASHDRIVE
Definition: wifi_hal_ap.h:2356
_wifi_GASConfiguration_t::QueryResponseLengthLimit
UINT QueryResponseLengthLimit
Definition: wifi_hal_ap.h:2072
wifi_getP2PCrossConnect
INT wifi_getP2PCrossConnect(INT apIndex, BOOL *disabled)
_wifi_trafficStats::wifi_DiscardedPacketsReceived
ULONG wifi_DiscardedPacketsReceived
Definition: wifi_hal_ap.h:38
__attribute__::disable_pmksa_caching
BOOL disable_pmksa_caching
Definition: wifi_hal_ap.h:2478
wifi_setBroadcastTWTSchedule
INT wifi_setBroadcastTWTSchedule(INT ap_index, wifi_twt_params_t twtParams, BOOL create, INT *sessionID)
Create or update a broadcast TWT Session
__attribute__::data_field_length
USHORT data_field_length
Definition: wifi_hal_ap.h:91
__attribute__::plmn_information
wifi_3gpp_plmn_list_information_element_t plmn_information
Definition: wifi_hal_ap.h:130
WIFI_EAP_TYPE_LEAP
@ WIFI_EAP_TYPE_LEAP
Definition: wifi_hal_ap.h:367
_wifi_HS2_OperatorNameDuple_t::operatorName
UCHAR operatorName[252]
Definition: wifi_hal_ap.h:175
WIFI_MGMT_FRAME_TYPE_PROBE_REQ
@ WIFI_MGMT_FRAME_TYPE_PROBE_REQ
Definition: wifi_hal_ap.h:1871
__attribute__::mac_filter_enable
BOOL mac_filter_enable
Definition: wifi_hal_ap.h:2573
__attribute__::radius
wifi_radius_settings_t radius
Definition: wifi_hal_ap.h:2480
wifi_ipv6_field_values_not_known
@ wifi_ipv6_field_values_not_known
Definition: wifi_hal_ap.h:61
wifi_pushMultiPskKeys
INT wifi_pushMultiPskKeys(INT apIndex, wifi_key_multi_psk_t *keys, INT keysNumber)
_wifi_associated_dev
Definition: wifi_hal_ap.h:1633
__attribute__::eap_req_retries
UINT eap_req_retries
Definition: wifi_hal_ap.h:2477
__attribute__::uhdLength
UCHAR uhdLength
Definition: wifi_hal_ap.h:129
wifi_security_mode_wep_128
@ wifi_security_mode_wep_128
Definition: wifi_hal_ap.h:2449
_wifi_radius_setting_t::PMKCacheInterval
INT PMKCacheInterval
Definition: wifi_hal_ap.h:334
wifi_setLayer2TrafficInspectionFiltering
INT wifi_setLayer2TrafficInspectionFiltering(INT apIndex, BOOL enabled)
wifi_enableCSIEngine
INT wifi_enableCSIEngine(INT apIndex, mac_address_t sta, BOOL enable)
wifi_getApRoamingConsortiumElement
INT wifi_getApRoamingConsortiumElement(INT apIndex, wifi_roamingConsortiumElement_t *infoElement)
wifi_mgmt_frame_callbacks_register
INT wifi_mgmt_frame_callbacks_register(wifi_receivedMgmtFrame_callback mgmtRxCallback)
__attribute__::plmn_length
UCHAR plmn_length
Definition: wifi_hal_ap.h:122
wifi_encryption_none
@ wifi_encryption_none
Definition: wifi_hal_ap.h:2436
wifi_direction_downlink
@ wifi_direction_downlink
Definition: wifi_hal_ap.h:320
__attribute__::method
UCHAR method
Definition: wifi_hal_ap.h:85
wifi_setTeardownTWTSession
INT wifi_setTeardownTWTSession(INT ap_index, INT sessionID)
teardown the individual session or the broadcast session associate to the MAC
wifi_addApAclDevice
INT wifi_addApAclDevice(INT apIndex, CHAR *DeviceMacAddress)
Adds the mac address to the filter list.
__attribute__::downLinkLoad
UCHAR downLinkLoad
Definition: wifi_hal_ap.h:193
__attribute__::bssid
mac_address_t bssid
Definition: wifi_hal_ap.h:2580
wifi_setApSecurityRadiusSettings
INT wifi_setApSecurityRadiusSettings(INT apIndex, wifi_radius_setting_t *input)
Set Access Point security radius settings.
__attribute__::capabilityInfoLength
int capabilityInfoLength
Definition: wifi_hal_ap.h:2486
wifi_vap_mode_monitor
@ wifi_vap_mode_monitor
Definition: wifi_hal_ap.h:2540
wifi_encryption_aes_tkip
@ wifi_encryption_aes_tkip
Definition: wifi_hal_ap.h:2439
wifi_security_mode_wpa_enterprise
@ wifi_security_mode_wpa_enterprise
Definition: wifi_hal_ap.h:2453
wifi_setApSecurityMFPConfig
INT wifi_setApSecurityMFPConfig(INT apIndex, CHAR *MfpConfig)
the hal is used to set the MFP config for each VAP.
WIFI_RADIO_SCAN_MODE_SURVEY
@ WIFI_RADIO_SCAN_MODE_SURVEY
Definition: wifi_hal_ap.h:352
wifi_getApSecurityRadiusSettings
INT wifi_getApSecurityRadiusSettings(INT apIndex, wifi_radius_setting_t *output)
Get Access Point security radius settings.
__attribute__::venueInfoLength
int venueInfoLength
Definition: wifi_hal_ap.h:2488
__attribute__::realmInfo
wifi_HS2_NAI_Home_Realm_Query_t realmInfo
Definition: wifi_hal_ap.h:2525
WIFI_MGMT_FRAME_TYPE_ACTION
@ WIFI_MGMT_FRAME_TYPE_ACTION
Definition: wifi_hal_ap.h:1880
wifi_kickApAssociatedDevice
INT wifi_kickApAssociatedDevice(INT apIndex, CHAR *client_mac)
Manually removes any active wi-fi association with the device specified on this access point.
wifi_encryption_method_t
wifi_encryption_method_t
Wifi encryption types.
Definition: wifi_hal_ap.h:2435
wifi_deleteAp
INT wifi_deleteAp(INT apIndex)
Deletes this access point entry on the hardware, clears all internal variables associated with this a...
_wifi_GASConfiguration_t::AdvertisementID
UINT AdvertisementID
Definition: wifi_hal_ap.h:2067
__attribute__::vap_mode
wifi_vap_mode_t vap_mode
Definition: wifi_hal_ap.h:2597
_wifi_radius_setting_t
RADIUS Server information.
Definition: wifi_hal_ap.h:328
wifi_setCountryIe
INT wifi_setCountryIe(INT apIndex, BOOL enabled)
__attribute__::bssTransitionActivated
BOOL bssTransitionActivated
Definition: wifi_hal_ap.h:2566
__attribute__::s_port
unsigned short s_port
Definition: wifi_hal_ap.h:2408
__attribute__::vapStatsEnable
BOOL vapStatsEnable
Definition: wifi_hal_ap.h:2570
_wifi_key_multi_psk::wifi_keyId
CHAR wifi_keyId[64]
Definition: wifi_hal_ap.h:2278
__attribute__::venueGroup
UCHAR venueGroup
Definition: wifi_hal_ap.h:111
_wifi_trafficStats::wifi_UnknownPacketsReceived
ULONG wifi_UnknownPacketsReceived
Definition: wifi_hal_ap.h:43
__attribute__::capabilityInfo
wifi_HS2_CapabilityList_t capabilityInfo
Definition: wifi_hal_ap.h:2519
_wifi_csi_data
This structure hold the information about the wifi interface.
Definition: wifi_hal_generic.h:883
wifi_hs2_connection_capability_unknown
@ wifi_hs2_connection_capability_unknown
Definition: wifi_hal_ap.h:237
_wifi_trafficStats::wifi_ErrorsReceived
ULONG wifi_ErrorsReceived
Definition: wifi_hal_ap.h:34
__attribute__::wanInfo
UCHAR wanInfo
Definition: wifi_hal_ap.h:190
WIFI_AP_MAX_SSID_LEN
#define WIFI_AP_MAX_SSID_LEN
Definition: wifi_hal_ap.h:2558
homeRealmData
wifi_HS2_NAI_Home_Realm_Data_t homeRealmData[20]
Definition: wifi_hal_ap.h:261
WIFI_ONBOARDINGMETHODS_EASYCONNECT
@ WIFI_ONBOARDINGMETHODS_EASYCONNECT
Definition: wifi_hal_ap.h:2369
__attribute__::type
wifi_security_key_type_t type
Definition: wifi_hal_ap.h:2428
__attribute__::methodsSupported
wifi_onboarding_methods_t methodsSupported
Definition: wifi_hal_ap.h:2615
__attribute__::max_auth_attempts
UINT max_auth_attempts
Definition: wifi_hal_ap.h:2413
__attribute__::opFriendlyNameInfoLength
int opFriendlyNameInfoLength
Definition: wifi_hal_ap.h:2520
WIFI_FRAME_TYPE_DATA
@ WIFI_FRAME_TYPE_DATA
Definition: wifi_hal_ap.h:1894
wifi_getDownStreamGroupAddress
INT wifi_getDownStreamGroupAddress(INT apIndex, BOOL *disabled)
WIFI_EAP_TYPE_TNC
@ WIFI_EAP_TYPE_TNC
Definition: wifi_hal_ap.h:374
wifi_HS2_ConnectionCapability_Status_t
wifi_HS2_ConnectionCapability_Status_t
Definition: wifi_hal_ap.h:233
WIFI_EAP_TYPE_IDENTITY
@ WIFI_EAP_TYPE_IDENTITY
Definition: wifi_hal_ap.h:360
__attribute__::realm_length
UCHAR realm_length
Definition: wifi_hal_ap.h:93
_wifi_GASConfiguration_t
Definition: wifi_hal_ap.h:2066
wifi_setApSecuritySecondaryRadiusServer
INT wifi_setApSecuritySecondaryRadiusServer(INT apIndex, CHAR *IPAddress, UINT port, CHAR *RadiusSecret)
Set secondary IP Address, port number and RADIUS server, which are used for WLAN security.
_wifi_trafficStats::wifi_UnicastPacketsReceived
ULONG wifi_UnicastPacketsReceived
Definition: wifi_hal_ap.h:36
INT
#define INT
Definition: bt_hal.h:65
__attribute__::realmFailedCount
UINT realmFailedCount
Definition: wifi_hal_ap.h:2504
__attribute__::realmRespCount
UINT realmRespCount
Definition: wifi_hal_ap.h:2501
wifi_getLayer2TrafficInspectionFiltering
INT wifi_getLayer2TrafficInspectionFiltering(INT apIndex, BOOL *enabled)
WIFI_ONBOARDINGMETHODS_PIN
@ WIFI_ONBOARDINGMETHODS_PIN
Definition: wifi_hal_ap.h:2364
wifi_setApSecurityRadiusServer
INT wifi_setApSecurityRadiusServer(INT apIndex, CHAR *IPAddress, UINT port, CHAR *RadiusSecret)
Set the IP Address and port number of the RADIUS server, which are used for WLAN security.
wifi_createVAP
INT wifi_createVAP(wifi_radio_index_t index, wifi_vap_info_map_t *map)
wifi_getApWpsConfigurationState
INT wifi_getApWpsConfigurationState(INT apIndex, CHAR *output_string)
Get WPS configuration state.
wifi_eap_code_t
wifi_eap_code_t
Definition: wifi_hal_ap.h:289
WIFI_ONBOARDINGMETHODS_ETHERNET
@ WIFI_ONBOARDINGMETHODS_ETHERNET
Definition: wifi_hal_ap.h:2357
wifi_security_key_type_pass
@ wifi_security_key_type_pass
Definition: wifi_hal_ap.h:2422
__attribute__::vap_index
wifi_vap_index_t vap_index
Definition: wifi_hal_ap.h:2593
__attribute__::wepKeyLength
UINT wepKeyLength
Definition: wifi_hal_ap.h:2582
__attribute__::type
wifi_mgmtFrameType_t type
Definition: wifi_hal_ap.h:1900
wifi_setApSecurity
INT wifi_setApSecurity(INT ap_index, wifi_vap_security_t *security)
wifi_ipv4_field_values_not_available
@ wifi_ipv4_field_values_not_available
Definition: wifi_hal_ap.h:48
wifi_eap_code_response
@ wifi_eap_code_response
Definition: wifi_hal_ap.h:291
__attribute__::gppInfo
wifi_3gppCellularNetwork_t gppInfo
Definition: wifi_hal_ap.h:2496
__attribute__::countryIE
BOOL countryIE
Definition: wifi_hal_ap.h:2515
_wifi_associated_dev::cli_AuthenticationState
BOOL cli_AuthenticationState
Definition: wifi_hal_ap.h:1637
wifi_eapol_type_eapol_start
@ wifi_eapol_type_eapol_start
Definition: wifi_hal_ap.h:305
WIFI_ONBOARDINGMETHODS_INTEGRATEDNFCTOKEN
@ WIFI_ONBOARDINGMETHODS_INTEGRATEDNFCTOKEN
Definition: wifi_hal_ap.h:2361
wifi_setDownStreamGroupAddress
INT wifi_setDownStreamGroupAddress(INT apIndex, BOOL disabled)
__attribute__::securityModesSupported
wifi_security_modes_t securityModesSupported
Definition: wifi_hal_ap.h:2614
wifi_updateLibHostApdConfig
INT wifi_updateLibHostApdConfig(int apIndex)
wifi_getApEnable
INT wifi_getApEnable(INT apIndex, BOOL *output_bool)
Outputs the setting of the internal variable that is set by wifi_setEnable().
__attribute__::connCapabilityInfo
wifi_HS2_ConnectionCapability_t connCapabilityInfo
Definition: wifi_hal_ap.h:2523
_wifi_associated_dev::cli_LastDataUplinkRate
UINT cli_LastDataUplinkRate
Definition: wifi_hal_ap.h:1639
wifi_sendDataFrame
INT wifi_sendDataFrame(INT apIndex, mac_address_t sta, UCHAR *data, UINT len, BOOL insert_llc, UINT eth_proto, wifi_data_priority_t prio)
wifi_hs2_connection_capability_closed
@ wifi_hs2_connection_capability_closed
Definition: wifi_hal_ap.h:235
wifi_setApVlanID
INT wifi_setApVlanID(INT apIndex, INT vlanId)
Sets the vlan ID for this access point to an internal environment variable.
wifi_kickApAclAssociatedDevices
INT wifi_kickApAclAssociatedDevices(INT apIndex, BOOL enable)
Enable kick for devices on acl black list.
wifi_twt_params_t
Definition: wifi_hal_generic.h:745
wifi_getApAssociatedDevice
INT wifi_getApAssociatedDevice(INT ap_index, CHAR *output_buf, INT output_buf_size)
Gets the ApAssociatedDevice list for client MAC addresses.
__attribute__::gppInfoLength
int gppInfoLength
Definition: wifi_hal_ap.h:2495
wifi_eapol_key_frame_t::len
unsigned short len
Definition: wifi_hal_ap.h:285
USHORT
#define USHORT
Definition: bt_hal.h:57
wifi_factoryResetAP
INT wifi_factoryResetAP(int apIndex)
Restore Access point paramters to default without change other AP nor Radio parameters (No need to re...
WIFI_EAP_TYPE_SIM
@ WIFI_EAP_TYPE_SIM
Definition: wifi_hal_ap.h:368
__attribute__::server_retries
UINT server_retries
Definition: wifi_hal_ap.h:2416
wifi_getApMacAddressControlMode
INT wifi_getApMacAddressControlMode(INT apIndex, INT *output_filterMode)
This function is to read the ACL mode.
wifi_InterworkingElement_t::venueGroup
UCHAR venueGroup
Definition: wifi_hal_ap.h:1811
__attribute__::eap_identity_req_timeout
UINT eap_identity_req_timeout
Definition: wifi_hal_ap.h:2474
__attribute__::portNumber
USHORT portNumber
Definition: wifi_hal_ap.h:224
wifi_security_key_type_psk_sae
@ wifi_security_key_type_psk_sae
Definition: wifi_hal_ap.h:2424
__attribute__::enabled
BOOL enabled
Definition: wifi_hal_ap.h:2551
WIFI_EAP_TYPE_MD5
@ WIFI_EAP_TYPE_MD5
Definition: wifi_hal_ap.h:363
_wifi_associated_dev::cli_SNR
INT cli_SNR
Definition: wifi_hal_ap.h:1646
wifi_security_mode_wpa3_transition
@ wifi_security_mode_wpa3_transition
Definition: wifi_hal_ap.h:2457
wifi_security_mode_wep_64
@ wifi_security_mode_wep_64
Definition: wifi_hal_ap.h:2448
_wifi_HS2_OperatorNameDuple_t::length
UCHAR length
Definition: wifi_hal_ap.h:173
__attribute__::security
wifi_vap_security_t security
Definition: wifi_hal_ap.h:2554
wifi_csi_callback_register
void wifi_csi_callback_register(wifi_csi_callback callback_proc)
CSI call back registration function. Callback will be executed when the CSI data is available from th...
__attribute__::mode
wifi_security_modes_t mode
Definition: wifi_hal_ap.h:2462
WIFI_EAP_TYPE_SAKE
@ WIFI_EAP_TYPE_SAKE
Definition: wifi_hal_ap.h:380
wifi_ipv4_field_values_not_known
@ wifi_ipv4_field_values_not_known
Definition: wifi_hal_ap.h:55
_wifi_trafficStats::wifi_BroadcastPacketsSent
ULONG wifi_BroadcastPacketsSent
Definition: wifi_hal_ap.h:41
_wifi_key_multi_psk::wifi_psk
CHAR wifi_psk[64]
Definition: wifi_hal_ap.h:2279
__attribute__::eap_req_timeout
UINT eap_req_timeout
Definition: wifi_hal_ap.h:2476
__attribute__::downLinkSpeed
UINT downLinkSpeed
Definition: wifi_hal_ap.h:191
__attribute__::rekey_interval
UINT rekey_interval
Definition: wifi_hal_ap.h:2470
wifi_security_key_type_sae
@ wifi_security_key_type_sae
Definition: wifi_hal_ap.h:2423
wifi_hs2_wan_info_link_in_test_state
@ wifi_hs2_wan_info_link_in_test_state
Definition: wifi_hal_ap.h:207
WIFI_EAP_TYPE_AKA
@ WIFI_EAP_TYPE_AKA
Definition: wifi_hal_ap.h:370
__attribute__::upLinkLoad
UCHAR upLinkLoad
Definition: wifi_hal_ap.h:194
WIFI_MGMT_FRAME_TYPE_AUTH
@ WIFI_MGMT_FRAME_TYPE_AUTH
Definition: wifi_hal_ap.h:1875
MAX_NUM_VAP_PER_RADIO
#define MAX_NUM_VAP_PER_RADIO
Definition: wifi_hal_generic.h:144
_wifi_associated_dev::cli_BytesReceived
ULONG cli_BytesReceived
Definition: wifi_hal_ap.h:1651
wifi_encryption_aes
@ wifi_encryption_aes
Definition: wifi_hal_ap.h:2438
wifi_getLibhostapd
INT wifi_getLibhostapd(BOOL *output_bool)
wifi_setApWpsButtonPush
INT wifi_setApWpsButtonPush(INT apIndex)
This function is called when the WPS push button has been pressed for this AP.
wifi_data_priority_be
@ wifi_data_priority_be
Definition: wifi_hal_ap.h:1995
wifi_ipv4_field_values_port_restricted_single_nated
@ wifi_ipv4_field_values_port_restricted_single_nated
Definition: wifi_hal_ap.h:53
__attribute__::number_of_plmns
UCHAR number_of_plmns
Definition: wifi_hal_ap.h:123
WIFI_FRAME_TYPE_MGMT
@ WIFI_FRAME_TYPE_MGMT
Definition: wifi_hal_ap.h:1892
WIFI_ONBOARDINGMETHODS_PHYSICALPUSHBUTTON
@ WIFI_ONBOARDINGMETHODS_PHYSICALPUSHBUTTON
Definition: wifi_hal_ap.h:2365
WIFI_EAP_TYPE_EKE
@ WIFI_EAP_TYPE_EKE
Definition: wifi_hal_ap.h:385
__attribute__::roamInfoLength
int roamInfoLength
Definition: wifi_hal_ap.h:2490
wifi_security_mode_none
@ wifi_security_mode_none
Definition: wifi_hal_ap.h:2447
wifi_getApName
INT wifi_getApName(INT apIndex, CHAR *output_string)
Outputs a 16 byte or less name associated with the Access Point. String buffer must be pre-allocated ...
WIFI_EAP_TYPE_NAK
@ WIFI_EAP_TYPE_NAK
Definition: wifi_hal_ap.h:362
WIFI_EAP_TYPE_GTC
@ WIFI_EAP_TYPE_GTC
Definition: wifi_hal_ap.h:365
wifi_sentAssocRspFrame_callback
void(* wifi_sentAssocRspFrame_callback)(unsigned int ap_index, mac_address_t sta, void *data, unsigned int len)
Definition: wifi_hal_ap.h:1915
WIFI_EAP_TYPE_TLV
@ WIFI_EAP_TYPE_TLV
Definition: wifi_hal_ap.h:373
__attribute__::ap_index
INT ap_index
Definition: wifi_hal_ap.h:1898
WIFI_ONBOARDINGMETHODS_VIRTUALDISPLAY
@ WIFI_ONBOARDINGMETHODS_VIRTUALDISPLAY
Definition: wifi_hal_ap.h:2368
WIFI_MGMT_FRAME_TYPE_ASSOC_REQ
@ WIFI_MGMT_FRAME_TYPE_ASSOC_REQ
Definition: wifi_hal_ap.h:1873
wifi_cancelApWPS
INT wifi_cancelApWPS(INT apIndex)
Cancels WPS mode for this Access Point.
_wifi_associated_dev::cli_RSSI
INT cli_RSSI
Definition: wifi_hal_ap.h:1652
wifi_hal_analytics_callback_register
INT wifi_hal_analytics_callback_register(wifi_analytics_callback callback)
VAP Status call back registration function.
__attribute__::gafDisable
BOOL gafDisable
Definition: wifi_hal_ap.h:2511
__attribute__::iei
UCHAR iei
Definition: wifi_hal_ap.h:121
__attribute__::sta_mac
mac_address_t sta_mac
Definition: wifi_hal_ap.h:1899
__attribute__::roamingConsortium
wifi_roamingConsortiumElement_t roamingConsortium
Definition: wifi_hal_ap.h:2532
wifi_mfp_cfg_required
@ wifi_mfp_cfg_required
Definition: wifi_hal_ap.h:2383
wifi_sentAuthFrame_callback
void(* wifi_sentAuthFrame_callback)(unsigned int ap_index, mac_address_t sta, void *data, unsigned int len)
Definition: wifi_hal_ap.h:1912
_wifi_associated_dev3
This structure hold the information about the wifi interface.
Definition: wifi_hal_generic.h:901
wifi_security_mode_wpa_personal
@ wifi_security_mode_wpa_personal
Definition: wifi_hal_ap.h:2450
__attribute__::ipProtocol
UCHAR ipProtocol
Definition: wifi_hal_ap.h:223
wifi_setApMaxAssociatedDevices
INT wifi_setApMaxAssociatedDevices(INT apIndex, UINT number)
Set maximum associated devices with the Access Point index.
WIFI_EAP_TYPE_PAX
@ WIFI_EAP_TYPE_PAX
Definition: wifi_hal_ap.h:378
WIFI_MGMT_FRAME_TYPE_ASSOC_RSP
@ WIFI_MGMT_FRAME_TYPE_ASSOC_RSP
Definition: wifi_hal_ap.h:1874
wifi_setApEnable
INT wifi_setApEnable(INT apIndex, BOOL enable)
Sets the Access Point enable status variable for the specified access point.
_wifi_associated_dev::cli_OperatingChannelBandwidth
CHAR cli_OperatingChannelBandwidth[64]
Definition: wifi_hal_ap.h:1645
_wifi_associated_dev::cli_Disassociations
UINT cli_Disassociations
Definition: wifi_hal_ap.h:1655
__attribute__::vap_name
wifi_vap_name_t vap_name
Definition: wifi_hal_ap.h:2594
wifi_eap_code_success
@ wifi_eap_code_success
Definition: wifi_hal_ap.h:292
wifi_data_priority_ee
@ wifi_data_priority_ee
Definition: wifi_hal_ap.h:1997
wifi_eap_t
wifi_eap_t
Eap types.
Definition: wifi_hal_ap.h:358
WIFI_AP_MAX_WPSPIN_LEN
#define WIFI_AP_MAX_WPSPIN_LEN
Definition: wifi_hal_ap.h:2372
wifi_connection_status_t
wifi_connection_status_t
Definition: wifi_hal_generic.h:834
wifi_getApHotspotElement
INT wifi_getApHotspotElement(INT apIndex, BOOL *enabled)
__attribute__::radio_index
wifi_radio_index_t radio_index
Definition: wifi_hal_ap.h:2595
__attribute__::bssMaxSta
UINT bssMaxSta
Definition: wifi_hal_ap.h:2565
wifi_receivedAuthFrame_callback
void(* wifi_receivedAuthFrame_callback)(unsigned int ap_index, mac_address_t sta, void *data, unsigned int len)
Definition: wifi_hal_ap.h:1911
WIFI_EAP_TYPE_FAST
@ WIFI_EAP_TYPE_FAST
Definition: wifi_hal_ap.h:377
WIFI_BRIDGE_NAME_LEN
#define WIFI_BRIDGE_NAME_LEN
Definition: wifi_hal_ap.h:2590
wifi_ipv4_field_values_t
wifi_ipv4_field_values_t
Definition: wifi_hal_ap.h:47
__attribute__::bssid
bssid_t bssid
Definition: wifi_hal_ap.h:2550
wifi_getWifiTrafficStats
INT wifi_getWifiTrafficStats(INT apIndex, wifi_trafficStats_t *output_struct)
Outputs more detailed traffic stats per AP.
wifi_getCountryIe
INT wifi_getCountryIe(INT apIndex, BOOL *enabled)
wifi_InterworkingElement_t
Definition: wifi_hal_ap.h:1803
WIFI_FRAME_TYPE_INVALID
@ WIFI_FRAME_TYPE_INVALID
Definition: wifi_hal_ap.h:1891
wifi_apDeAuthEvent_callback_register
void wifi_apDeAuthEvent_callback_register(wifi_apDeAuthEvent_callback callback_proc)
Callback registration function.
wifi_radio_index_t
unsigned int wifi_radio_index_t
Definition: wifi_hal_generic.h:216
__attribute__::wmm_enabled
BOOL wmm_enabled
Definition: wifi_hal_ap.h:2577
wifi_ipv6_field_values_t
wifi_ipv6_field_values_t
Definition: wifi_hal_ap.h:58
wifi_eap_code_request
@ wifi_eap_code_request
Definition: wifi_hal_ap.h:290
ssid
@ ssid
Definition: wifi_hal_emu.h:5117
wifi_setInterworkingAccessNetworkType
INT wifi_setInterworkingAccessNetworkType(INT apIndex, INT accessNetworkType)
wifi_eapol_key_frame_t
Definition: wifi_hal_ap.h:275
__attribute__::port
unsigned short port
Definition: wifi_hal_ap.h:2400
ULONG
#define ULONG
Definition: bt_hal.h:77
__attribute__::blacklist_table_timeout
UINT blacklist_table_timeout
Definition: wifi_hal_ap.h:2414
__attribute__::channel
wifi_channel_t channel
Definition: wifi_hal_ap.h:2545
_wifi_GASConfiguration_t::ResponseTimeout
UINT ResponseTimeout
Definition: wifi_hal_ap.h:2069
wifi_getApSecurityRadiusServer
INT wifi_getApSecurityRadiusServer(INT apIndex, CHAR *IP_output, UINT *Port_output, CHAR *RadiusSecret_output)
Get the IP Address and port number of the RADIUS server, which are used for WLAN security.
name
UCHAR name[255]
Definition: wifi_hal_ap.h:255
__attribute__::ssid
ssid_t ssid
Definition: wifi_hal_ap.h:2549
__attribute__::mac_filter_mode
wifi_mac_filter_mode_t mac_filter_mode
Definition: wifi_hal_ap.h:2574
__attribute__::wpsPushButton
UINT wpsPushButton
Definition: wifi_hal_ap.h:2584
__attribute__::nai_realm_count
USHORT nai_realm_count
Definition: wifi_hal_ap.h:100
__attribute__::eap_identity_req_retries
UINT eap_identity_req_retries
Definition: wifi_hal_ap.h:2475
wifi_getBssLoad
INT wifi_getBssLoad(INT apIndex, BOOL *enabled)
__attribute__::domainNameInfo
wifi_domainName_t domainNameInfo
Definition: wifi_hal_ap.h:2498
wifi_mgmtFrameType_t
wifi_mgmtFrameType_t
Definition: wifi_hal_ap.h:1868
wifi_InterworkingElement_t::hessid
mac_addr_str_t hessid
Definition: wifi_hal_ap.h:1814
__attribute__::gppRespCount
UINT gppRespCount
Definition: wifi_hal_ap.h:2502
WIFI_EAP_TYPE_GPSK
@ WIFI_EAP_TYPE_GPSK
Definition: wifi_hal_ap.h:383
__attribute__::id
unsigned char id
Definition: wifi_hal_ap.h:298
__attribute__::num_vaps
unsigned int num_vaps
Definition: wifi_hal_ap.h:2605
__attribute__::opFriendlyNameInfo
wifi_HS2_OperatorFriendlyName_t opFriendlyNameInfo
Definition: wifi_hal_ap.h:2521
__attribute__::eap_method_count
UCHAR eap_method_count
Definition: wifi_hal_ap.h:95
__attribute__::enable
BOOL enable
Definition: wifi_hal_ap.h:2375
wifi_security_mode_wpa2_personal
@ wifi_security_mode_wpa2_personal
Definition: wifi_hal_ap.h:2451
__attribute__::beaconRate
wifi_bitrate_t beaconRate
Definition: wifi_hal_ap.h:2579
_wifi_key_multi_psk
Definition: wifi_hal_ap.h:2277
wifi_auth_id_credential_type
@ wifi_auth_id_credential_type
Definition: wifi_hal_ap.h:73
WIFI_FRAME_TYPE_CTRL
@ WIFI_FRAME_TYPE_CTRL
Definition: wifi_hal_ap.h:1893
__attribute__::UAPSDEnabled
BOOL UAPSDEnabled
Definition: wifi_hal_ap.h:2578
wifi_eapol_key_frame_t::key_len
unsigned short key_len
Definition: wifi_hal_ap.h:278
__attribute__::field_format
UCHAR field_format
Definition: wifi_hal_ap.h:65
wifi_setApSsidAdvertisementEnable
INT wifi_setApSsidAdvertisementEnable(INT apIndex, BOOL enable)
Sets an internal variable for ssid advertisement.
WIFI_ONBOARDINGMETHODS_LABEL
@ WIFI_ONBOARDINGMETHODS_LABEL
Definition: wifi_hal_ap.h:2358
_wifi_trafficStats::wifi_UnicastPacketsSent
ULONG wifi_UnicastPacketsSent
Definition: wifi_hal_ap.h:35
wifi_InterworkingElement_t::uesa
BOOL uesa
Definition: wifi_hal_ap.h:1809
WIFI_EAP_TYPE_NOTIFICATION
@ WIFI_EAP_TYPE_NOTIFICATION
Definition: wifi_hal_ap.h:361
wifi_security_mode_wpa_wpa2_enterprise
@ wifi_security_mode_wpa_wpa2_enterprise
Definition: wifi_hal_ap.h:2455
_wifi_radius_setting_t::RadiusServerRetries
INT RadiusServerRetries
Definition: wifi_hal_ap.h:330
wifi_ipv4_field_values_double_nated_private
@ wifi_ipv4_field_values_double_nated_private
Definition: wifi_hal_ap.h:52
wifi_setApWpsEnrolleePin
INT wifi_setApWpsEnrolleePin(INT apIndex, CHAR *pin)
Sets the WPS pin for this Access Point.
__attribute__::identity_req_retry_interval
UINT identity_req_retry_interval
Definition: wifi_hal_ap.h:2415
__attribute__::isolation
BOOL isolation
Definition: wifi_hal_ap.h:2563
wifi_setApRtsThreshold
INT wifi_setApRtsThreshold(INT apIndex, UINT threshold)
Sets the packet size threshold in bytes to apply RTS/CTS backoff rules.
WIFI_ONBOARDINGMETHODS_NFCINTERFACE
@ WIFI_ONBOARDINGMETHODS_NFCINTERFACE
Definition: wifi_hal_ap.h:2362
wifi_security_key_type_t
wifi_security_key_type_t
Definition: wifi_hal_ap.h:2420
wifi_setP2PCrossConnect
INT wifi_setP2PCrossConnect(INT apIndex, BOOL disabled)
_wifi_trafficStats::wifi_ErrorsSent
ULONG wifi_ErrorsSent
Definition: wifi_hal_ap.h:33
__attribute__::dasip
ip_addr_t dasip
Definition: wifi_hal_ap.h:2410
_wifi_associated_dev::cli_LastDataDownlinkRate
UINT cli_LastDataDownlinkRate
Definition: wifi_hal_ap.h:1638
WIFI_RADIO_SCAN_MODE_OFFCHAN
@ WIFI_RADIO_SCAN_MODE_OFFCHAN
Definition: wifi_hal_ap.h:351
wifi_receivedMgmtFrame_callback
INT(* wifi_receivedMgmtFrame_callback)(INT apIndex, UCHAR *sta_mac, UCHAR *frame, UINT len, wifi_mgmtFrameType_t type, wifi_direction_t dir)
Definition: wifi_hal_ap.h:1921
__attribute__::sec_changed
BOOL sec_changed
Definition: wifi_hal_ap.h:2575
__attribute__::realmInfo
wifi_naiRealmElement_t realmInfo
Definition: wifi_hal_ap.h:2494
wifi_security_modes_t
wifi_security_modes_t
Wifi security mode types.
Definition: wifi_hal_ap.h:2446
__attribute__::status
UCHAR status
Definition: wifi_hal_ap.h:225
wifi_resetApVlanCfg
INT wifi_resetApVlanCfg(INT apIndex)
Reset the vlan configuration for this access point.
_wifi_trafficStats::wifi_BroadcastPacketsRecevied
ULONG wifi_BroadcastPacketsRecevied
Definition: wifi_hal_ap.h:42
WIFI_EAP_TYPE_IKEV2
@ WIFI_EAP_TYPE_IKEV2
Definition: wifi_hal_ap.h:381
wifi_ipv6_field_values_available
@ wifi_ipv6_field_values_available
Definition: wifi_hal_ap.h:60
wifi_setApRetryLimit
INT wifi_setApRetryLimit(INT apIndex, UINT number)
Set the maximum number of retransmission for a packet.
wifi_data_priority_vo
@ wifi_data_priority_vo
Definition: wifi_hal_ap.h:2000
UINT
#define UINT
Definition: bt_hal.h:69
__attribute__::dasport
USHORT dasport
Definition: wifi_hal_ap.h:2411
__attribute__::dir
wifi_direction_t dir
Definition: wifi_hal_ap.h:1901
wifi_auth_id_expanded_eap
@ wifi_auth_id_expanded_eap
Definition: wifi_hal_ap.h:70
wifi_getApRadioIndex
INT wifi_getApRadioIndex(INT apIndex, INT *output_int)
Outputs the radio index for the specified access point.
wifi_data_priority_vi
@ wifi_data_priority_vi
Definition: wifi_hal_ap.h:1999
wifi_getApAclDeviceNum
INT wifi_getApAclDeviceNum(INT apIndex, UINT *output_uint)
Outputs the number of devices in the filter list.
wifi_radius_setting_t
struct _wifi_radius_setting_t wifi_radius_setting_t
RADIUS Server information.
wifi_vap_mode_sta
@ wifi_vap_mode_sta
Definition: wifi_hal_ap.h:2539
WIFI_EAP_TYPE_PSK
@ WIFI_EAP_TYPE_PSK
Definition: wifi_hal_ap.h:379
__attribute__::proxyArp
BOOL proxyArp
Definition: wifi_hal_ap.h:2516
UCHAR
#define UCHAR
Definition: bt_hal.h:49
_wifi_radius_setting_t::RadiusServerRequestTimeout
INT RadiusServerRequestTimeout
Definition: wifi_hal_ap.h:331
__attribute__::eapol_key_timeout
UINT eapol_key_timeout
Definition: wifi_hal_ap.h:2472
_wifi_radius_setting_t::IdentityRequestRetryInterval
INT IdentityRequestRetryInterval
Definition: wifi_hal_ap.h:337
wifi_receivedDataFrame_callback
INT(* wifi_receivedDataFrame_callback)(INT apIndex, UCHAR *sta_mac, UCHAR *frame, UINT len, wifi_dataFrameType_t type, wifi_direction_t dir)
Definition: wifi_hal_ap.h:1922
wifi_received8021xFrame_callback
void(* wifi_received8021xFrame_callback)(unsigned int ap_index, mac_address_t sta, wifi_eapol_type_t type, void *data, unsigned int len)
Definition: wifi_hal_ap.h:1908
wifi_auth_id_expanded_inner_auth_eap
@ wifi_auth_id_expanded_inner_auth_eap
Definition: wifi_hal_ap.h:72
wifi_getTWTsessions
INT wifi_getTWTsessions(INT ap_index, UINT maxNumberSessions, wifi_twt_sessions_t *twtSessions, UINT *numSessionReturned)
get all the TWT session(individual or Broadcast) connected to that AP Index .
wifi_security_key_type_psk
@ wifi_security_key_type_psk
Definition: wifi_hal_ap.h:2421
wifi_hs2_wan_info_linkdown
@ wifi_hs2_wan_info_linkdown
Definition: wifi_hal_ap.h:206
wifi_onboarding_methods_t
wifi_onboarding_methods_t
Wifi onboarding methods.
Definition: wifi_hal_ap.h:2355
wifi_sendActionFrame
INT wifi_sendActionFrame(INT apIndex, mac_address_t sta, UINT frequency, UCHAR *frame, UINT len)
_wifi_radius_setting_t::PMKCaching
BOOL PMKCaching
Definition: wifi_hal_ap.h:333
__attribute__::wmmNoAck
UINT wmmNoAck
Definition: wifi_hal_ap.h:2581
wifi_setApBeaconRate
INT wifi_setApBeaconRate(INT apIndex, char *sBeaconRate)
Set Access Point Beacon TX rate.
wifi_InterworkingElement_t::venueOptionPresent
BOOL venueOptionPresent
Definition: wifi_hal_ap.h:1810
wifi_setProxyArp
INT wifi_setProxyArp(INT apIndex, BOOL enabled)
wifi_ipv6_field_values_not_available
@ wifi_ipv6_field_values_not_available
Definition: wifi_hal_ap.h:59
__attribute__::bss_info
wifi_front_haul_bss_t bss_info
Definition: wifi_hal_ap.h:2599
wifi_getApWmmEnable
INT wifi_getApWmmEnable(INT apIndex, BOOL *output)
Indicates whether WMM support is currently enabled.
wifi_mac_filter_mode_black_list
@ wifi_mac_filter_mode_black_list
Definition: wifi_hal_ap.h:2387
wifi_hs2_wan_info_linkup
@ wifi_hs2_wan_info_linkup
Definition: wifi_hal_ap.h:205
__attribute__::wps
wifi_wps_t wps
Definition: wifi_hal_ap.h:2576
bssid_t
mac_address_t bssid_t
Definition: wifi_hal_generic.h:214
WIFI_ONBOARDINGMETHODS_DISPLAY
@ WIFI_ONBOARDINGMETHODS_DISPLAY
Definition: wifi_hal_ap.h:2359
wifi_setApSecurityReset
INT wifi_setApSecurityReset(INT apIndex)
When set to true, this AccessPoint instance's WiFi security settings are reset to their factory defau...
WIFI_RADIO_SCAN_MODE_FULL
@ WIFI_RADIO_SCAN_MODE_FULL
Definition: wifi_hal_ap.h:349
wifi_ipv4_field_values_post_restricted
@ wifi_ipv4_field_values_post_restricted
Definition: wifi_hal_ap.h:50
wifi_delApAclDevices
INT wifi_delApAclDevices(INT apINdex)
Get the ACL MAC list per Access Point.
WIFI_EAP_TYPE_AKA_PRIME
@ WIFI_EAP_TYPE_AKA_PRIME
Definition: wifi_hal_ap.h:382
wifi_sent8021xFrame_callback
void(* wifi_sent8021xFrame_callback)(unsigned int ap_index, mac_address_t sta, wifi_eapol_type_t type, void *data, unsigned int len)
Definition: wifi_hal_ap.h:1909
wifi_InterworkingElement_t::esr
BOOL esr
Definition: wifi_hal_ap.h:1808
wifi_eap_code_failure
@ wifi_eap_code_failure
Definition: wifi_hal_ap.h:293
__attribute__::anqp
wifi_anqp_settings_t anqp
Definition: wifi_hal_ap.h:2533
wifi_mfp_cfg_t
wifi_mfp_cfg_t
Definition: wifi_hal_ap.h:2380
wifi_enableGreylistAccessControl
INT wifi_enableGreylistAccessControl(BOOL enable)
This function is to enable or disable grey list Access Control on all applicable VAP.
__attribute__::BSSTransitionImplemented
BOOL BSSTransitionImplemented
Definition: wifi_hal_ap.h:2619
wifi_auth_id_reserved
@ wifi_auth_id_reserved
Definition: wifi_hal_ap.h:69
__attribute__::strict_rekey
BOOL strict_rekey
Definition: wifi_hal_ap.h:2471
wifi_neighborScanMode_t
wifi_neighborScanMode_t
Represents the wifi scan modes.
Definition: wifi_hal_ap.h:346
__attribute__::gas_config
wifi_GASConfiguration_t gas_config
Definition: wifi_hal_ap.h:2347
__attribute__::gppFailedCount
UINT gppFailedCount
Definition: wifi_hal_ap.h:2505
__attribute__::token
UCHAR token
Definition: wifi_hal_ap.h:1903
wifi_setApIsolationEnable
INT wifi_setApIsolationEnable(INT apIndex, BOOL enable)
Enables or disables device isolation.
__attribute__::mgmtPowerControl
INT mgmtPowerControl
Definition: wifi_hal_ap.h:2564
_wifi_associated_dev::cli_MACAddress
UCHAR cli_MACAddress[6]
Definition: wifi_hal_ap.h:1635
WIFI_EAP_TYPE_TTLS
@ WIFI_EAP_TYPE_TTLS
Definition: wifi_hal_ap.h:369
__attribute__::p2pDisable
BOOL p2pDisable
Definition: wifi_hal_ap.h:2512
__attribute__::wanMetricsInfo
wifi_HS2_WANMetrics_t wanMetricsInfo
Definition: wifi_hal_ap.h:2526
wifi_InterworkingElement_t::interworkingEnabled
BOOL interworkingEnabled
Definition: wifi_hal_ap.h:1804
wifi_eapol_type_eap_packet
@ wifi_eapol_type_eap_packet
Definition: wifi_hal_ap.h:304
__attribute__::eap_type
wifi_eap_t eap_type
Definition: wifi_hal_ap.h:2417
__attribute__::scan_params
wifi_scan_params_t scan_params
Definition: wifi_hal_ap.h:2553
wifi_direction_uplink
@ wifi_direction_uplink
Definition: wifi_hal_ap.h:319
__attribute__::id
UCHAR id
Definition: wifi_hal_ap.h:78
__attribute__::domainRespCount
UINT domainRespCount
Definition: wifi_hal_ap.h:2500
_wifi_associated_dev::cli_IPAddress
CHAR cli_IPAddress[64]
Definition: wifi_hal_ap.h:1636
wifi_vap_mode_t
wifi_vap_mode_t
Definition: wifi_hal_ap.h:2537
wifi_setApMacAddressControlMode
INT wifi_setApMacAddressControlMode(INT apIndex, INT filterMode)
Sets the mac address filter control mode.
_wifi_radius_setting_t::QuietPeriodAfterFailedAuthentication
INT QuietPeriodAfterFailedAuthentication
Definition: wifi_hal_ap.h:338
wifi_twt_sessions_t
Definition: wifi_hal_generic.h:764
wifi_hs2_connection_capability_open
@ wifi_hs2_connection_capability_open
Definition: wifi_hal_ap.h:236
__attribute__::roamInfo
wifi_roamingConsortium_t roamInfo
Definition: wifi_hal_ap.h:2491
wifi_newApAssociatedDevice_callback_register
void wifi_newApAssociatedDevice_callback_register(wifi_newApAssociatedDevice_callback callback_proc)
Callback registration function.
__attribute__::venueInfo
wifi_venueNameElement_t venueInfo
Definition: wifi_hal_ap.h:2489
wifi_getProxyArp
INT wifi_getProxyArp(INT apIndex, BOOL *enable)
__attribute__::UAPSDSupported
BOOL UAPSDSupported
Definition: wifi_hal_ap.h:2617
_wifi_radius_setting_t::PMKLifetime
INT PMKLifetime
Definition: wifi_hal_ap.h:332
wifi_hs2_connection_capability_reserved
@ wifi_hs2_connection_capability_reserved
Definition: wifi_hal_ap.h:238
__attribute__::nbrReportActivated
BOOL nbrReportActivated
Definition: wifi_hal_ap.h:2567
_wifi_associated_dev::cli_Retransmissions
UINT cli_Retransmissions
Definition: wifi_hal_ap.h:1641
__attribute__::gud
UCHAR gud
Definition: wifi_hal_ap.h:128
wifi_ipv4_field_values_available
@ wifi_ipv4_field_values_available
Definition: wifi_hal_ap.h:49
_wifi_radius_setting_t::MaxAuthenticationAttempts
INT MaxAuthenticationAttempts
Definition: wifi_hal_ap.h:335
__attribute__::bssHotspot
BOOL bssHotspot
Definition: wifi_hal_ap.h:2583
wifi_mfp_cfg_disabled
@ wifi_mfp_cfg_disabled
Definition: wifi_hal_ap.h:2381
wifi_getRadioVapInfoMap
INT wifi_getRadioVapInfoMap(wifi_radio_index_t index, wifi_vap_info_map_t *map)
__attribute__
typedef __attribute__
WIFI_RADIO_SCAN_MODE_NONE
@ WIFI_RADIO_SCAN_MODE_NONE
Definition: wifi_hal_ap.h:348
__attribute__::period
unsigned int period
Definition: wifi_hal_ap.h:2544
wifi_getApManagementFramePowerControl
INT wifi_getApManagementFramePowerControl(INT apIndex, INT *output_dBm)
Get the ApManagementFramePowerControl.
__attribute__::length
UCHAR length
Definition: wifi_hal_ap.h:79
_wifi_radius_setting_t::BlacklistTableTimeout
INT BlacklistTableTimeout
Definition: wifi_hal_ap.h:336
wifi_eapol_type_eapol_key
@ wifi_eapol_type_eapol_key
Definition: wifi_hal_ap.h:307
_wifi_associated_dev::cli_InterferenceSources
CHAR cli_InterferenceSources[64]
Definition: wifi_hal_ap.h:1647
WIFI_DATA_FRAME_TYPE_INVALID
@ WIFI_DATA_FRAME_TYPE_INVALID
Definition: wifi_hal_ap.h:1885
wifi_vap_mode_ap
@ wifi_vap_mode_ap
Definition: wifi_hal_ap.h:2538
wifi_InterworkingElement_t::hessOptionPresent
BOOL hessOptionPresent
Definition: wifi_hal_ap.h:1813
WIFI_EAP_TYPE_TLS
@ WIFI_EAP_TYPE_TLS
Definition: wifi_hal_ap.h:366
__attribute__::len
unsigned short len
Definition: wifi_hal_ap.h:299
WIFI_EAP_TYPE_MSCHAPV2
@ WIFI_EAP_TYPE_MSCHAPV2
Definition: wifi_hal_ap.h:372
WIFI_ONBOARDINGMETHODS_PUSHBUTTON
@ WIFI_ONBOARDINGMETHODS_PUSHBUTTON
Definition: wifi_hal_ap.h:2363
_wifi_HS2_OperatorNameDuple_t
Definition: wifi_hal_ap.h:171
wifi_mac_filter_mode_white_list
@ wifi_mac_filter_mode_white_list
Definition: wifi_hal_ap.h:2388
__attribute__::domainInfoLength
int domainInfoLength
Definition: wifi_hal_ap.h:2497
WIFI_RADIO_SCAN_MODE_ONCHAN
@ WIFI_RADIO_SCAN_MODE_ONCHAN
Definition: wifi_hal_ap.h:350
wifi_setApDASRadiusServer
INT wifi_setApDASRadiusServer(INT apIndex, CHAR *IPAddress, UINT port, CHAR *RadiusdasSecret)
Set the IP Address and port number of the RADIUS DAS server, which are used for WLAN security.
wifi_frameType_t
wifi_frameType_t
Definition: wifi_hal_ap.h:1889
WIFI_EAP_TYPE_NONE
@ WIFI_EAP_TYPE_NONE
Definition: wifi_hal_ap.h:359
wifi_hs2_wan_info_reserved
@ wifi_hs2_wan_info_reserved
Definition: wifi_hal_ap.h:204
__attribute__::WMMSupported
BOOL WMMSupported
Definition: wifi_hal_ap.h:2616
__attribute__::domainFailedCount
UINT domainFailedCount
Definition: wifi_hal_ap.h:2503
__attribute__::l2tif
BOOL l2tif
Definition: wifi_hal_ap.h:2513
__attribute__::sig_dbm
INT sig_dbm
Definition: wifi_hal_ap.h:1902
WIFI_DATA_FRAME_TYPE_8021x
@ WIFI_DATA_FRAME_TYPE_8021x
Definition: wifi_hal_ap.h:1886
wifi_getMultiPskKeys
INT wifi_getMultiPskKeys(INT apIndex, wifi_key_multi_psk_t *keys, INT keysNumber)
wifi_pushApHotspotElement
INT wifi_pushApHotspotElement(INT apIndex, BOOL enabled)
__attribute__::network_initiated_greylist
BOOL network_initiated_greylist
Definition: wifi_hal_ap.h:2586
wifi_getApStatus
INT wifi_getApStatus(INT apIndex, CHAR *output_string)
Outputs the AP "Enabled" "Disabled" status from driver.
WIFI_EAP_TYPE_EXPANDED
@ WIFI_EAP_TYPE_EXPANDED
Definition: wifi_hal_ap.h:387
_wifi_associated_dev::cli_BytesSent
ULONG cli_BytesSent
Definition: wifi_hal_ap.h:1650
__attribute__::data
UCHAR * data
Definition: wifi_hal_ap.h:1905
wifi_InterworkingElement_t::asra
BOOL asra
Definition: wifi_hal_ap.h:1807
wifi_security_mode_wpa2_enterprise
@ wifi_security_mode_wpa2_enterprise
Definition: wifi_hal_ap.h:2454
wifi_security_mode_wpa3_enterprise
@ wifi_security_mode_wpa3_enterprise
Definition: wifi_hal_ap.h:2458
wifi_InterworkingElement_t::accessNetworkType
UINT accessNetworkType
Definition: wifi_hal_ap.h:1805
__attribute__::wpa3_transition_disable
BOOL wpa3_transition_disable
Definition: wifi_hal_ap.h:2469
__attribute__::rtsThresholdSupported
BOOL rtsThresholdSupported
Definition: wifi_hal_ap.h:2613
wifi_getAPCapabilities
INT wifi_getAPCapabilities(INT ap_index, wifi_ap_capabilities_t *apCapabilities)
__attribute__::interworking
wifi_interworking_t interworking
Definition: wifi_hal_ap.h:2572
_wifi_trafficStats
Definition: wifi_hal_ap.h:31
wifi_security_mode_wpa_wpa2_personal
@ wifi_security_mode_wpa_wpa2_personal
Definition: wifi_hal_ap.h:2452
wifi_getApBeaconRate
INT wifi_getApBeaconRate(INT apIndex, char *output_BeaconRate)
Get Access Point Beacon TX rate.
wifi_setApManagementFramePowerControl
INT wifi_setApManagementFramePowerControl(INT apIndex, INT dBm)
Sets the ApManagementFramePowerControl.
__attribute__::len
UINT len
Definition: wifi_hal_ap.h:1904
wifi_getApSecurity
INT wifi_getApSecurity(INT ap_index, wifi_vap_security_t *security)
mac_address_t
unsigned char mac_address_t[6]
Definition: wifi_hal_generic.h:211
_wifi_trafficStats::wifi_DiscardedPacketsSent
ULONG wifi_DiscardedPacketsSent
Definition: wifi_hal_ap.h:37
_wifi_associated_dev::cli_AuthenticationFailures
UINT cli_AuthenticationFailures
Definition: wifi_hal_ap.h:1656
wifi_analytics_callback
INT(* wifi_analytics_callback)(CHAR *fmt,...)
This call back will be invoked when HAL wants to log catasrophic failures.
Definition: wifi_hal_ap.h:2708
_wifi_associated_dev::cli_OperatingStandard
CHAR cli_OperatingStandard[64]
Definition: wifi_hal_ap.h:1644
wifi_trafficStats_t
struct _wifi_trafficStats wifi_trafficStats_t
wifi_vapstatus_t
wifi_vapstatus_t
VAP status possible values.
Definition: wifi_hal_ap.h:2647
__attribute__::interworkingServiceSupported
BOOL interworkingServiceSupported
Definition: wifi_hal_ap.h:2618
__attribute__::encr
wifi_encryption_method_t encr
Definition: wifi_hal_ap.h:2463
wifi_getApRetryLimit
INT wifi_getApRetryLimit(INT apIndex, UINT *output)
Get the maximum number of retransmission for a packet.
wifi_dataFrameType_t
wifi_dataFrameType_t
Definition: wifi_hal_ap.h:1883
WIFI_MGMT_FRAME_TYPE_DEAUTH
@ WIFI_MGMT_FRAME_TYPE_DEAUTH
Definition: wifi_hal_ap.h:1876
__attribute__::bssLoad
BOOL bssLoad
Definition: wifi_hal_ap.h:2514
length
UCHAR length
Definition: wifi_hal_ap.h:2
__attribute__::interworking
wifi_InterworkingElement_t interworking
Definition: wifi_hal_ap.h:2531
wifi_getApInterworkingElement
INT wifi_getApInterworkingElement(INT apIndex, wifi_InterworkingElement_t *output_struct)
Get the Interworking Element that will be sent by the AP.
_wifi_associated_dev::cli_DataFramesSentAck
ULONG cli_DataFramesSentAck
Definition: wifi_hal_ap.h:1648
wifi_getApSecurityMFPConfig
INT wifi_getApSecurityMFPConfig(INT apIndex, CHAR *output_string)
To retrive the MFPConfig for each VAP.
wifi_ipv4_field_values_port_restricted_double_nated
@ wifi_ipv4_field_values_port_restricted_double_nated
Definition: wifi_hal_ap.h:54
WIFI_MGMT_FRAME_TYPE_INVALID
@ WIFI_MGMT_FRAME_TYPE_INVALID
Definition: wifi_hal_ap.h:1870
wifi_data_prioirty_ic
@ wifi_data_prioirty_ic
Definition: wifi_hal_ap.h:2001
__attribute__::conn_status
wifi_connection_status_t conn_status
Definition: wifi_hal_ap.h:2552
WIFI_EAP_TYPE_TEAP
@ WIFI_EAP_TYPE_TEAP
Definition: wifi_hal_ap.h:386
wifi_ipv4_field_values_single_nated_private
@ wifi_ipv4_field_values_single_nated_private
Definition: wifi_hal_ap.h:51
WIFI_MGMT_FRAME_TYPE_REASSOC_REQ
@ WIFI_MGMT_FRAME_TYPE_REASSOC_REQ
Definition: wifi_hal_ap.h:1877
wifi_disableApEncryption
INT wifi_disableApEncryption(INT apIndex)
Changes the hardware settings to disable encryption on this access point.
wifi_setApWmmEnable
INT wifi_setApWmmEnable(INT apIndex, BOOL enable)
Enables/disables WMM on the hardwawre for this AP. enable==1, disable == 0.
wifi_auth_id_tunneled_eap
@ wifi_auth_id_tunneled_eap
Definition: wifi_hal_ap.h:74
__attribute__::mcast2ucast
BOOL mcast2ucast
Definition: wifi_hal_ap.h:2587