2 * @file host_interface.h
3 * @brief File containg host interface APIs
13 #include "coreconfigurator.h"
17 #define IDLE_MODE 0x00
19 #define STATION_MODE 0x02
21 #define CLIENT_MODE 0x04
25 #define ACTIVE_SCAN_TIME 10
26 #define PASSIVE_SCAN_TIME 1200
27 #define MIN_SCAN_TIME 10
28 #define MAX_SCAN_TIME 1200
29 #define DEFAULT_SCAN 0
30 #define USER_SCAN BIT(0)
31 #define OBSS_PERIODIC_SCAN BIT(1)
32 #define OBSS_ONETIME_SCAN BIT(2)
33 #define GTK_RX_KEY_BUFF_LEN 24
36 #define DEFAULTKEY 0x4
38 #define MAX_NUM_SCANNED_NETWORKS 100
39 #define MAX_NUM_SCANNED_NETWORKS_SHADOW 130
40 #define MAX_NUM_PROBED_SSID 10
41 #define CHANNEL_SCAN_TIME 250
43 #define TX_MIC_KEY_LEN 8
44 #define RX_MIC_KEY_LEN 8
45 #define PTK_KEY_LEN 16
47 #define TX_MIC_KEY_MSG_LEN 26
48 #define RX_MIC_KEY_MSG_LEN 48
49 #define PTK_KEY_MSG_LEN 39
51 #define PMKSA_KEY_LEN 22
54 #define WILC_MAX_NUM_PMKIDS 16
55 #define WILC_SUPP_MCS_SET_SIZE 16
56 #define WILC_ADD_STA_LENGTH 40
57 #define SCAN_EVENT_DONE_ABORTED
58 #define NUM_CONCURRENT_IFC 2
65 u32 u32TxFailureCount;
71 HOST_IF_CONNECTING = 2,
72 HOST_IF_WAITING_CONN_RESP = 3,
73 HOST_IF_CONNECTED = 4,
74 HOST_IF_P2P_LISTEN = 5,
75 HOST_IF_FORCE_32BIT = 0xFFFFFFFF
78 struct host_if_pmkid {
83 struct host_if_pmkid_attr {
85 struct host_if_pmkid pmkidlist[WILC_MAX_NUM_PMKIDS];
104 struct cfg_param_val {
111 u16 short_retry_limit;
112 u16 long_retry_limit;
116 u8 short_slot_allowed;
117 u8 txop_prot_disabled;
120 enum SITESURVEY site_survey_enabled;
121 u16 site_survey_scan_time;
123 u16 active_scan_time;
124 u16 passive_scan_time;
125 enum CURRENT_TXRATE curr_tx_rate;
130 RETRY_SHORT = BIT(0),
132 FRAG_THRESHOLD = BIT(2),
133 RTS_THRESHOLD = BIT(3),
136 AUTHEN_TIMEOUT = BIT(6),
137 POWER_MANAGEMENT = BIT(7),
139 SHORT_SLOT_ALLOWED = BIT(9),
140 TXOP_PROT_DISABLE = BIT(10),
141 BEACON_INTERVAL = BIT(11),
142 DTIM_PERIOD = BIT(12),
143 SITE_SURVEY = BIT(13),
144 SITE_SURVEY_SCAN_TIME = BIT(14),
145 ACTIVE_SCANTIME = BIT(15),
146 PASSIVE_SCANTIME = BIT(16),
147 CURRENT_TX_RATE = BIT(17),
151 struct found_net_info {
157 SCAN_EVENT_NETWORK_FOUND = 0,
159 SCAN_EVENT_ABORTED = 2,
160 SCAN_EVENT_FORCE_32BIT = 0xFFFFFFFF
164 CONN_DISCONN_EVENT_CONN_RESP = 0,
165 CONN_DISCONN_EVENT_DISCONN_NOTIF = 1,
166 CONN_DISCONN_EVENT_FORCE_32BIT = 0xFFFFFFFF
177 /*Scan callBack function definition*/
178 typedef void (*wilc_scan_result)(enum scan_event, tstrNetworkInfo *,
181 /*Connect callBack function definition*/
182 typedef void (*wilc_connect_result)(enum conn_event,
185 tstrDisconnectNotifInfo *,
188 typedef void (*wilc_remain_on_chan_expired)(void *, u32); /*Remain on channel expiration callback function*/
189 typedef void (*wilc_remain_on_chan_ready)(void *); /*Remain on channel callback function*/
192 * @struct rcvd_net_info
193 * @brief Structure to hold Received Asynchronous Network info
197 * @author Mostafa Abu Bakr
198 * @date 25 March 2012
201 struct rcvd_net_info {
206 struct hidden_net_info {
211 struct hidden_network {
212 struct hidden_net_info *pstrHiddenNetworkInfo;
216 struct user_scan_req {
217 /* Scan user call back function */
218 wilc_scan_result pfUserScanResult;
220 /* User specific parameter to be delivered through the Scan User Callback function */
221 void *u32UserScanPvoid;
224 struct found_net_info astrFoundNetworkInfo[MAX_NUM_SCANNED_NETWORKS];
227 struct user_conn_req {
231 enum AUTHTYPE tenuAuth_type;
234 size_t ConnReqIEsLen;
235 /* Connect user call back function */
236 wilc_connect_result pfUserConnectResult;
238 /* User specific parameter to be delivered through the Connect User Callback function */
239 void *u32UserConnectPvoid;
250 struct set_mac_addr {
251 u8 u8MacAddress[ETH_ALEN];
254 struct get_mac_addr {
258 struct ba_session_info {
259 u8 au8Bssid[ETH_ALEN];
262 u16 u16SessionTimeout;
268 wilc_remain_on_chan_expired pRemainOnChanExpired;
269 wilc_remain_on_chan_ready pRemainOnChanReady;
271 u32 u32ListenSessionID;
282 #define PROBE_REQ 0x40
283 #define PROBE_RESP 0x50
284 #define ACTION_FRM_IDX 0
285 #define PROBE_REQ_IDX 1
288 enum p2p_listen_state {
295 struct user_scan_req strWILC_UsrScanReq;
296 struct user_conn_req strWILC_UsrConnReq;
298 /*Remain on channel struvture*/
299 struct remain_ch strHostIfRemainOnChan;
300 u8 u8RemainOnChan_pendingreq;
301 u64 u64P2p_MgmtTimeout;
304 enum host_if_state enuHostIFstate;
306 u8 au8AssociatedBSSID[ETH_ALEN];
307 struct cfg_param_val strCfgValues;
309 struct semaphore gtOsCfgValuesSem;
310 struct semaphore hSemTestKeyBlock;
312 struct semaphore hSemTestDisconnectBlock;
313 struct semaphore hSemGetRSSI;
314 struct semaphore hSemGetLINKSPEED;
315 struct semaphore hSemGetCHNL;
316 struct semaphore hSemInactiveTime;
318 struct timer_list hScanTimer;
319 struct timer_list hConnectTimer;
320 struct timer_list hRemainOnChannel;
325 struct add_sta_param {
326 u8 au8BSSID[ETH_ALEN];
333 u8 au8SuppMCsSet[16];
335 u32 u32TxBeamformingCap;
337 u16 u16FlagsMask; /*<! Determines which of u16FlagsSet were changed>*/
338 u16 u16FlagsSet; /*<! Decoded according to tenuWILC_StaFlag */
341 /*****************************************************************************/
343 /* Host Interface API */
345 /*****************************************************************************/
348 * @brief removes wpa/wpa2 keys
349 * @details only in BSS STA mode if External Supplicant support is enabled.
350 * removes all WPA/WPA2 station key entries from MAC hardware.
351 * @param[in,out] handle to the wifi driver
352 * @param[in] 6 bytes of Station Adress in the station entry table
353 * @return Error code indicating success/failure
359 s32 host_int_remove_key(struct host_if_drv *hWFIDrv, const u8 *pu8StaAddress);
361 * @brief removes WEP key
362 * @details valid only in BSS STA mode if External Supplicant support is enabled.
363 * remove a WEP key entry from MAC HW.
364 * The BSS Station automatically finds the index of the entry using its
365 * BSS ID and removes that entry from the MAC hardware.
366 * @param[in,out] handle to the wifi driver
367 * @param[in] 6 bytes of Station Adress in the station entry table
368 * @return Error code indicating success/failure
369 * @note NO need for the STA add since it is not used for processing
374 int host_int_remove_wep_key(struct host_if_drv *wfi_drv, u8 index);
376 * @brief sets WEP deafault key
377 * @details Sets the index of the WEP encryption key in use,
379 * @param[in,out] handle to the wifi driver
380 * @param[in] key index ( 0, 1, 2, 3)
381 * @return Error code indicating success/failure
387 int host_int_set_wep_default_key(struct host_if_drv *hif_drv, u8 index);
390 * @brief sets WEP deafault key
391 * @details valid only in BSS STA mode if External Supplicant support is enabled.
392 * sets WEP key entry into MAC hardware when it receives the
393 * corresponding request from NDIS.
394 * @param[in,out] handle to the wifi driver
395 * @param[in] message containing WEP Key in the following format
396 *|---------------------------------------|
397 *|Key ID Value | Key Length | Key |
398 *|-------------|------------|------------|
399 | 1byte | 1byte | Key Length |
400 ||---------------------------------------|
402 * @return Error code indicating success/failure
408 s32 host_int_add_wep_key_bss_sta(struct host_if_drv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx);
410 * @brief host_int_add_wep_key_bss_ap
411 * @details valid only in AP mode if External Supplicant support is enabled.
412 * sets WEP key entry into MAC hardware when it receives the
413 * corresponding request from NDIS.
414 * @param[in,out] handle to the wifi driver
417 * @return Error code indicating success/failure
423 s32 host_int_add_wep_key_bss_ap(struct host_if_drv *hWFIDrv, const u8 *pu8WepKey, u8 u8WepKeylen, u8 u8Keyidx, u8 u8mode, enum AUTHTYPE tenuAuth_type);
426 * @brief adds ptk Key
428 * @param[in,out] handle to the wifi driver
429 * @param[in] message containing PTK Key in the following format
430 *|-------------------------------------------------------------------------|
431 *|Sta Adress | Key Length | Temporal Key | Rx Michael Key |Tx Michael Key |
432 *|-----------|------------|---------------|----------------|---------------|
433 | 6 bytes | 1byte | 16 bytes | 8 bytes | 8 bytes |
434 ||-------------------------------------------------------------------------|
435 * @return Error code indicating success/failure
441 s32 host_int_add_ptk(struct host_if_drv *hWFIDrv, const u8 *pu8Ptk, u8 u8PtkKeylen,
442 const u8 *mac_addr, const u8 *pu8RxMic, const u8 *pu8TxMic, u8 mode, u8 u8Ciphermode, u8 u8Idx);
445 * @brief host_int_get_inactive_time
447 * @param[in,out] handle to the wifi driver
448 * @param[in] message containing inactive time
450 * @return Error code indicating success/failure
453 * @date 15 April 2013
456 s32 host_int_get_inactive_time(struct host_if_drv *hWFIDrv, const u8 *mac, u32 *pu32InactiveTime);
459 * @brief adds Rx GTk Key
461 * @param[in,out] handle to the wifi driver
462 * @param[in] message containing Rx GTK Key in the following format
463 *|----------------------------------------------------------------------------|
464 *|Sta Address | Key RSC | KeyID | Key Length | Temporal Key | Rx Michael Key |
465 *|------------|---------|-------|------------|---------------|----------------|
466 | 6 bytes | 8 byte |1 byte | 1 byte | 16 bytes | 8 bytes |
467 ||----------------------------------------------------------------------------|
468 * @return Error code indicating success/failure
474 s32 host_int_add_rx_gtk(struct host_if_drv *hWFIDrv, const u8 *pu8RxGtk, u8 u8GtkKeylen,
475 u8 u8KeyIdx, u32 u32KeyRSClen, const u8 *KeyRSC,
476 const u8 *pu8RxMic, const u8 *pu8TxMic, u8 mode, u8 u8Ciphermode);
480 * @brief adds Tx GTk Key
482 * @param[in,out] handle to the wifi driver
483 * @param[in] message containing Tx GTK Key in the following format
484 *|----------------------------------------------------|
485 | KeyID | Key Length | Temporal Key | Tx Michael Key |
486 ||-------|------------|--------------|----------------|
487 ||1 byte | 1 byte | 16 bytes | 8 bytes |
488 ||----------------------------------------------------|
489 * @return Error code indicating success/failure
495 s32 host_int_add_tx_gtk(struct host_if_drv *hWFIDrv, u8 u8KeyLen, u8 *pu8TxGtk, u8 u8KeyIdx);
498 * @brief caches the pmkid
499 * @details valid only in BSS STA mode if External Supplicant
500 * support is enabled. This Function sets the PMKID in firmware
501 * when host drivr receives the corresponding request from NDIS.
502 * The firmware then includes theset PMKID in the appropriate
504 * @param[in,out] handle to the wifi driver
505 * @param[in] message containing PMKID Info in the following format
506 *|-----------------------------------------------------------------|
507 *|NumEntries | BSSID[1] | PMKID[1] | ... | BSSID[K] | PMKID[K] |
508 *|-----------|------------|----------|-------|----------|----------|
509 | 1 | 6 | 16 | ... | 6 | 16 |
510 ||-----------------------------------------------------------------|
511 * @return Error code indicating success/failure
518 s32 host_int_set_pmkid_info(struct host_if_drv *hWFIDrv, struct host_if_pmkid_attr *pu8PmkidInfoArray);
520 * @brief gets the cached the pmkid info
521 * @details valid only in BSS STA mode if External Supplicant
522 * support is enabled. This Function sets the PMKID in firmware
523 * when host drivr receives the corresponding request from NDIS.
524 * The firmware then includes theset PMKID in the appropriate
526 * @param[in,out] handle to the wifi driver,
528 * message containing PMKID Info in the following format
529 *|-----------------------------------------------------------------|
530 *|NumEntries | BSSID[1] | PMKID[1] | ... | BSSID[K] | PMKID[K] |
531 *|-----------|------------|----------|-------|----------|----------|
532 | 1 | 6 | 16 | ... | 6 | 16 |
533 ||-----------------------------------------------------------------|
535 * @return Error code indicating success/failure
542 s32 host_int_get_pmkid_info(struct host_if_drv *hWFIDrv, u8 *pu8PmkidInfoArray,
543 u32 u32PmkidInfoLen);
546 * @brief sets the pass phrase
547 * @details AP/STA mode. This function gives the pass phrase used to
548 * generate the Pre-Shared Key when WPA/WPA2 is enabled
549 * The length of the field can vary from 8 to 64 bytes,
550 * the lower layer should get the
551 * @param[in,out] handle to the wifi driver,
552 * @param[in] String containing PSK
553 * @return Error code indicating success/failure
559 s32 host_int_set_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv, u8 *pu8PassPhrase,
562 * @brief gets the pass phrase
563 * @details AP/STA mode. This function gets the pass phrase used to
564 * generate the Pre-Shared Key when WPA/WPA2 is enabled
565 * The length of the field can vary from 8 to 64 bytes,
566 * the lower layer should get the
567 * @param[in,out] handle to the wifi driver,
568 * String containing PSK
569 * @return Error code indicating success/failure
575 s32 host_int_get_RSNAConfigPSKPassPhrase(struct host_if_drv *hWFIDrv,
576 u8 *pu8PassPhrase, u8 u8Psklength);
579 * @brief gets mac address
581 * @param[in,out] handle to the wifi driver,
583 * @return Error code indicating success/failure
586 * @date 19 April 2012
589 s32 host_int_get_MacAddress(struct host_if_drv *hWFIDrv, u8 *pu8MacAddress);
592 * @brief sets mac address
594 * @param[in,out] handle to the wifi driver,
596 * @return Error code indicating success/failure
602 s32 host_int_set_MacAddress(struct host_if_drv *hWFIDrv, u8 *pu8MacAddress);
605 * @brief wait until msg q is empty
609 * @return Error code indicating success/failure
612 * @date 19 march 2014
615 int host_int_wait_msg_queue_idle(void);
618 * @brief sets a start scan request
620 * @param[in,out] handle to the wifi driver,
621 * @param[in] Scan Source one of the following values
624 * OBSS_PERIODIC_SCAN BIT1
625 * OBSS_ONETIME_SCAN BIT2
626 * @return Error code indicating success/failure
633 s32 host_int_set_start_scan_req(struct host_if_drv *hWFIDrv, u8 scanSource);
635 * @brief gets scan source of the last scan
637 * @param[in,out] handle to the wifi driver,
638 * Scan Source one of the following values
641 * OBSS_PERIODIC_SCAN BIT1
642 * OBSS_ONETIME_SCAN BIT2
643 * @return Error code indicating success/failure
649 s32 host_int_get_start_scan_req(struct host_if_drv *hWFIDrv, u8 *pu8ScanSource);
652 * @brief sets a join request
654 * @param[in,out] handle to the wifi driver,
655 * @param[in] Index of the bss descriptor
656 * @return Error code indicating success/failure
663 s32 host_int_set_join_req(struct host_if_drv *hWFIDrv, u8 *pu8bssid,
664 const u8 *pu8ssid, size_t ssidLen,
665 const u8 *pu8IEs, size_t IEsLen,
666 wilc_connect_result pfConnectResult, void *pvUserArg,
667 u8 u8security, enum AUTHTYPE tenuAuth_type,
672 * @brief Flush a join request parameters to FW, but actual connection
673 * @details The function is called in situation where WILC is connected to AP and
674 * required to switch to hybrid FW for P2P connection
675 * @param[in] handle to the wifi driver,
676 * @return Error code indicating success/failure
678 * @author Amr Abdel-Moghny
683 s32 host_int_flush_join_req(struct host_if_drv *hWFIDrv);
687 * @brief disconnects from the currently associated network
689 * @param[in,out] handle to the wifi driver,
690 * @param[in] Reason Code of the Disconnection
691 * @return Error code indicating success/failure
697 s32 host_int_disconnect(struct host_if_drv *hWFIDrv, u16 u16ReasonCode);
700 * @brief disconnects a sta
702 * @param[in,out] handle to the wifi driver,
703 * @param[in] Association Id of the station to be disconnected
704 * @return Error code indicating success/failure
710 s32 host_int_disconnect_station(struct host_if_drv *hWFIDrv, u8 assoc_id);
712 * @brief gets a Association request info
714 * @param[in,out] handle to the wifi driver,
715 * Message containg assoc. req info in the following format
716 * ------------------------------------------------------------------------
717 | Management Frame Format |
718 ||-------------------------------------------------------------------|
719 ||Frame Control|Duration|DA|SA|BSSID|Sequence Control|Frame Body|FCS |
720 ||-------------|--------|--|--|-----|----------------|----------|----|
721 | 2 |2 |6 |6 |6 | 2 |0 - 2312 | 4 |
722 ||-------------------------------------------------------------------|
724 | Association Request Frame - Frame Body |
725 ||-------------------------------------------------------------------|
726 | Capability Information | Listen Interval | SSID | Supported Rates |
727 ||------------------------|-----------------|------|-----------------|
728 | 2 | 2 | 2-34 | 3-10 |
729 | ---------------------------------------------------------------------
730 * @return Error code indicating success/failure
737 s32 host_int_get_assoc_req_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocReqInfo,
738 u32 u32AssocReqInfoLen);
740 * @brief gets a Association Response info
742 * @param[in,out] handle to the wifi driver,
743 * Message containg assoc. resp info
744 * @return Error code indicating success/failure
751 s32 host_int_get_assoc_res_info(struct host_if_drv *hWFIDrv, u8 *pu8AssocRespInfo,
752 u32 u32MaxAssocRespInfoLen, u32 *pu32RcvdAssocRespInfoLen);
754 * @brief gets a Association Response info
755 * @details Valid only in STA mode. This function gives the RSSI
756 * values observed in all the channels at the time of scanning.
757 * The length of the field is 1 greater that the total number of
758 * channels supported. Byte 0 contains the number of channels while
759 * each of Byte N contains the observed RSSI value for the channel index N.
760 * @param[in,out] handle to the wifi driver,
761 * array of scanned channels' RSSI
762 * @return Error code indicating success/failure
768 s32 host_int_get_rx_power_level(struct host_if_drv *hWFIDrv, u8 *pu8RxPowerLevel,
769 u32 u32RxPowerLevelLen);
772 * @brief sets a channel
774 * @param[in,out] handle to the wifi driver,
775 * @param[in] Index of the channel to be set
776 *|-------------------------------------------------------------------|
777 | CHANNEL1 CHANNEL2 .... CHANNEL14 |
779 ||-------------------------------------------------------------------|
780 * @return Error code indicating success/failure
786 int host_int_set_mac_chnl_num(struct host_if_drv *wfi_drv, u8 channel);
789 * @brief gets the current channel index
791 * @param[in,out] handle to the wifi driver,
792 * current channel index
793 *|-----------------------------------------------------------------------|
794 | CHANNEL1 CHANNEL2 .... CHANNEL14 |
796 ||-----------------------------------------------------------------------|
797 * @return Error code indicating success/failure
803 s32 host_int_get_host_chnl_num(struct host_if_drv *hWFIDrv, u8 *pu8ChNo);
805 * @brief gets the sta rssi
806 * @details gets the currently maintained RSSI value for the station.
807 * The received signal strength value in dB.
808 * The range of valid values is -128 to 0.
809 * @param[in,out] handle to the wifi driver,
811 * @return Error code indicating success/failure
817 s32 host_int_get_rssi(struct host_if_drv *hWFIDrv, s8 *ps8Rssi);
818 s32 host_int_get_link_speed(struct host_if_drv *hWFIDrv, s8 *ps8lnkspd);
820 * @brief scans a set of channels
822 * @param[in,out] handle to the wifi driver,
823 * @param[in] Scan source
824 * Scan Type PASSIVE_SCAN = 0,
827 * Channels Array length
828 * Scan Callback function
829 * User Argument to be delivered back through the Scan Cllback function
830 * @return Error code indicating success/failure
836 s32 host_int_scan(struct host_if_drv *hWFIDrv, u8 u8ScanSource,
837 u8 u8ScanType, u8 *pu8ChnlFreqList,
838 u8 u8ChnlListLen, const u8 *pu8IEs,
839 size_t IEsLen, wilc_scan_result ScanResult,
841 struct hidden_network *pstrHiddenNetwork);
843 * @brief sets configuration wids values
845 * @param[in,out] handle to the wifi driver,
846 * @param[in] WID, WID value
847 * @return Error code indicating success/failure
853 s32 hif_set_cfg(struct host_if_drv *hWFIDrv, struct cfg_param_val *pstrCfgParamVal);
856 * @brief gets configuration wids values
858 * @param[in,out] handle to the wifi driver,
861 * @return Error code indicating success/failure
867 s32 hif_get_cfg(struct host_if_drv *hWFIDrv, u16 u16WID, u16 *pu16WID_Value);
868 /*****************************************************************************/
869 /* Notification Functions */
870 /*****************************************************************************/
872 * @brief host interface initialization function
874 * @param[in,out] handle to the wifi driver,
880 s32 host_int_init(struct net_device *dev, struct host_if_drv **phWFIDrv);
883 * @brief host interface initialization function
885 * @param[in,out] handle to the wifi driver,
891 s32 host_int_deinit(struct host_if_drv *hWFIDrv);
895 * @fn s32 host_int_add_beacon(WILC_WFIDrvHandle hWFIDrv,u8 u8Index)
896 * @brief Sends a beacon to the firmware to be transmitted over the air
898 * @param[in,out] hWFIDrv handle to the wifi driver
899 * @param[in] u32Interval Beacon Interval. Period between two successive beacons on air
900 * @param[in] u32DTIMPeriod DTIM Period. Indicates how many Beacon frames
901 * (including the current frame) appear before the next DTIM
902 * @param[in] u32Headlen Length of the head buffer in bytes
903 * @param[in] pu8Head Pointer to the beacon's head buffer. Beacon's head
904 * is the part from the beacon's start till the TIM element, NOT including the TIM
905 * @param[in] u32Taillen Length of the tail buffer in bytes
906 * @param[in] pu8Tail Pointer to the beacon's tail buffer. Beacon's tail
907 * starts just after the TIM inormation element
908 * @return 0 for Success, error otherwise
911 * @author Adham Abozaeid
912 * @date 10 Julys 2012
913 * @version 1.0 Description
916 s32 host_int_add_beacon(struct host_if_drv *hWFIDrv, u32 u32Interval,
918 u32 u32HeadLen, u8 *pu8Head,
919 u32 u32TailLen, u8 *pu8tail);
923 * @fn s32 host_int_del_beacon(WILC_WFIDrvHandle hWFIDrv)
924 * @brief Removes the beacon and stops trawilctting it over the air
926 * @param[in,out] hWFIDrv handle to the wifi driver
927 * @return 0 for Success, error otherwise
930 * @author Adham Abozaeid
931 * @date 10 Julys 2012
932 * @version 1.0 Description
934 s32 host_int_del_beacon(struct host_if_drv *hWFIDrv);
937 * @fn s32 host_int_add_station(WILC_WFIDrvHandle hWFIDrv,
938 * struct add_sta_param *pstrStaParams)
939 * @brief Notifies the firmware with a new associated stations
941 * @param[in,out] hWFIDrv handle to the wifi driver
942 * @param[in] pstrStaParams Station's parameters
943 * @return 0 for Success, error otherwise
946 * @author Adham Abozaeid
948 * @version 1.0 Description
950 s32 host_int_add_station(struct host_if_drv *hWFIDrv,
951 struct add_sta_param *pstrStaParams);
954 * @fn s32 host_int_del_allstation(WILC_WFIDrvHandle hWFIDrv, const u8* pu8MacAddr)
955 * @brief Deauthenticates clients when group is terminating
957 * @param[in,out] hWFIDrv handle to the wifi driver
958 * @param[in] pu8MacAddr Station's mac address
959 * @return 0 for Success, error otherwise
962 * @author Mai Daftedar
963 * @date 09 April 2014
964 * @version 1.0 Description
966 s32 host_int_del_allstation(struct host_if_drv *hWFIDrv, u8 pu8MacAddr[][ETH_ALEN]);
969 * @fn s32 host_int_del_station(WILC_WFIDrvHandle hWFIDrv, u8* pu8MacAddr)
970 * @brief Notifies the firmware with a new deleted station
972 * @param[in,out] hWFIDrv handle to the wifi driver
973 * @param[in] pu8MacAddr Station's mac address
974 * @return 0 for Success, error otherwise
977 * @author Adham Abozaeid
979 * @version 1.0 Description
981 s32 host_int_del_station(struct host_if_drv *hWFIDrv, const u8 *pu8MacAddr);
984 * @fn s32 host_int_edit_station(WILC_WFIDrvHandle hWFIDrv,
985 * struct add_sta_param *pstrStaParams)
986 * @brief Notifies the firmware with new parameters of an already associated station
988 * @param[in,out] hWFIDrv handle to the wifi driver
989 * @param[in] pstrStaParams Station's parameters
990 * @return 0 for Success, error otherwise
993 * @author Adham Abozaeid
995 * @version 1.0 Description
997 s32 host_int_edit_station(struct host_if_drv *hWFIDrv,
998 struct add_sta_param *pstrStaParams);
1001 * @fn s32 host_int_set_power_mgmt(WILC_WFIDrvHandle hWFIDrv, bool bIsEnabled, u32 u32Timeout)
1002 * @brief Set the power management mode to enabled or disabled
1004 * @param[in,out] hWFIDrv handle to the wifi driver
1005 * @param[in] bIsEnabled TRUE if enabled, FALSE otherwise
1006 * @param[in] u32Timeout A timeout value of -1 allows the driver to adjust
1007 * the dynamic ps timeout value
1008 * @return 0 for Success, error otherwise
1011 * @author Adham Abozaeid
1012 * @date 24 November 2012
1013 * @version 1.0 Description
1015 s32 host_int_set_power_mgmt(struct host_if_drv *hWFIDrv, bool bIsEnabled, u32 u32Timeout);
1016 /* @param[in,out] hWFIDrv handle to the wifi driver
1017 * @param[in] bIsEnabled TRUE if enabled, FALSE otherwise
1018 * @param[in] u8count count of mac address entries in the filter table
1020 * @return 0 for Success, error otherwise
1023 * @author Adham Abozaeid
1024 * @date 24 November 2012
1025 * @version 1.0 Description
1027 s32 host_int_setup_multicast_filter(struct host_if_drv *hWFIDrv, bool bIsEnabled, u32 u32count);
1029 * @brief host_int_setup_ipaddress
1030 * @details set IP address on firmware
1032 * @return Error code.
1033 * @author Abdelrahman Sobhy
1037 s32 host_int_setup_ipaddress(struct host_if_drv *hWFIDrv, u8 *pu8IPAddr, u8 idx);
1041 * @brief host_int_delBASession
1042 * @details Delete single Rx BA session
1044 * @return Error code.
1045 * @author Abdelrahman Sobhy
1049 s32 host_int_delBASession(struct host_if_drv *hWFIDrv, char *pBSSID, char TID);
1052 * @brief host_int_delBASession
1053 * @details Delete all Rx BA session
1055 * @return Error code.
1056 * @author Abdelrahman Sobhy
1060 s32 host_int_del_All_Rx_BASession(struct host_if_drv *hWFIDrv, char *pBSSID, char TID);
1064 * @brief host_int_get_ipaddress
1065 * @details get IP address on firmware
1067 * @return Error code.
1068 * @author Abdelrahman Sobhy
1072 s32 host_int_get_ipaddress(struct host_if_drv *hWFIDrv, u8 *pu8IPAddr, u8 idx);
1075 * @brief host_int_remain_on_channel
1078 * @return Error code.
1083 s32 host_int_remain_on_channel(struct host_if_drv *hWFIDrv, u32 u32SessionID, u32 u32duration, u16 chan, wilc_remain_on_chan_expired RemainOnChanExpired, wilc_remain_on_chan_ready RemainOnChanReady, void *pvUserArg);
1086 * @brief host_int_ListenStateExpired
1088 * @param[in] Handle to wifi driver
1089 * Duration to remain on channel
1090 * Channel to remain on
1091 * Pointer to fn to be called on receive frames in listen state
1092 * Pointer to remain-on-channel expired fn
1094 * @return Error code.
1099 s32 host_int_ListenStateExpired(struct host_if_drv *hWFIDrv, u32 u32SessionID);
1102 * @brief host_int_frame_register
1105 * @return Error code.
1110 s32 host_int_frame_register(struct host_if_drv *hWFIDrv, u16 u16FrameType, bool bReg);
1112 * @brief host_int_set_wfi_drv_handler
1115 * @return Error code.
1120 int host_int_set_wfi_drv_handler(struct host_if_drv *address);
1121 int host_int_set_operation_mode(struct host_if_drv *wfi_drv, u32 mode);
1123 static s32 Handle_ScanDone(struct host_if_drv *drvHandler, enum scan_event enuEvent);
1125 void host_int_freeJoinParams(void *pJoinParams);
1127 s32 host_int_get_statistics(struct host_if_drv *hWFIDrv, struct rf_info *pstrStatistics);