1 /** @file rtos_wpa_supp_if.h 2 * 3 * @brief This file provides RTOS WPA Supplicant interface wifi APIs 4 * 5 * 6 * Copyright 2008-2024 NXP 7 * 8 * SPDX-License-Identifier: BSD-3-Clause 9 * 10 */ 11 12 #ifndef __RTOS_WPA_SUPP_IF_H__ 13 #define __RTOS_WPA_SUPP_IF_H__ 14 15 #include <wifi_config_default.h> 16 17 #if CONFIG_WPA_SUPP 18 #include "includes.h" 19 #include "common.h" 20 #include "eloop.h" 21 #include "wpa_supplicant/config.h" 22 #include "wpa_supplicant_i.h" 23 #include "bss.h" 24 #include "driver_i.h" 25 26 #include <wmlog.h> 27 #include <wifi_nxp.h> 28 #include <wifi_nxp_internal.h> 29 30 #define supp_e(...) wmlog_e("supp_if", ##__VA_ARGS__) 31 32 #if CONFIG_SUPP_DEBUG 33 #define supp_d(...) wmlog("supp_if", ##__VA_ARGS__) 34 #else 35 #define supp_d(...) 36 #endif /* ! CONFIG_SUPP_DEBUG */ 37 38 int wifi_nxp_supp_state(void); 39 int wifi_nxp_hapd_state(void); 40 41 void *wifi_nxp_wpa_supp_dev_init(void *supp_drv_if_ctx, 42 const char *iface_name, 43 rtos_wpa_supp_dev_callbk_fns *supp_callbk_fns); 44 45 void wifi_nxp_wpa_supp_dev_deinit(void *if_priv); 46 47 int wifi_nxp_wpa_supp_scan2(void *if_priv, struct wpa_driver_scan_params *params); 48 49 int wifi_nxp_wpa_supp_set_default_scan_ies(void *priv, const u8 *ies, size_t ies_len); 50 51 int wifi_nxp_wpa_supp_sched_scan(void *if_priv, struct wpa_driver_scan_params *params); 52 53 int wifi_nxp_wpa_supp_stop_sched_scan(void *if_priv); 54 55 int wifi_nxp_wpa_supp_scan_abort(void *if_priv); 56 57 int wifi_nxp_wpa_supp_scan_results_get(void *if_priv); 58 59 int wifi_nxp_wpa_supp_survey_results_get(void *if_priv); 60 61 int wifi_nxp_wpa_supp_deauthenticate(void *if_priv, const char *addr, unsigned short reason_code); 62 63 int wifi_nxp_wpa_supp_authenticate(void *if_priv, struct wpa_driver_auth_params *params, struct wpa_bss *curr_bss); 64 65 int wifi_nxp_wpa_supp_associate(void *if_priv, struct wpa_driver_associate_params *params); 66 67 int wifi_nxp_wpa_supp_set_supp_port(void *if_priv, int authorized, char *bssid); 68 69 int wifi_nxp_wpa_supp_set_country(void *if_priv, const char *alpha2); 70 71 int wifi_nxp_wpa_supp_get_country(void *if_priv, char *alpha2); 72 73 int wifi_nxp_wpa_supp_signal_poll(void *if_priv, struct wpa_signal_info *si, unsigned char *bssid); 74 75 int wifi_nxp_wpa_supp_send_mlme(void *if_priv, 76 const u8 *data, 77 size_t data_len, 78 int noack, 79 unsigned int freq, 80 int no_cck, 81 int offchanok, 82 unsigned int wait_time, 83 int cookie); 84 85 int wifi_nxp_wpa_supp_get_wiphy(void *if_priv); 86 87 int wifi_nxp_wpa_supp_get_conn_info(void *if_priv, struct wpa_conn_info *info); 88 89 int wifi_nxp_wpa_supp_get_capa(void *if_priv, struct wpa_driver_capa *capa); 90 91 int wifi_nxp_wpa_supp_set_key(void *if_priv, 92 const unsigned char *ifname, 93 enum wpa_alg alg, 94 const unsigned char *addr, 95 int key_idx, 96 int set_tx, 97 const unsigned char *seq, 98 size_t seq_len, 99 const unsigned char *key, 100 size_t key_len, 101 enum key_flag key_flag); 102 103 int wifi_nxp_wpa_supp_del_key(void *if_priv, const unsigned char *addr, int key_idx); 104 105 int wifi_nxp_wpa_supp_set_rekey_info( 106 void *if_priv, const u8 *kek, size_t kek_len, const u8 *kck, size_t kck_len, const u8 *replay_ctr); 107 108 int wifi_nxp_wpa_supp_remain_on_channel(void *if_priv, unsigned int freq, unsigned int duration); 109 110 int wifi_nxp_wpa_supp_cancel_remain_on_channel(void *if_priv); 111 112 void wifi_nxp_wpa_supp_event_proc_mac_changed(void *if_priv); 113 114 void wifi_nxp_wpa_supp_event_proc_scan_start(void *if_priv); 115 116 void wifi_nxp_wpa_supp_event_proc_scan_done(void *if_priv, int aborted, int external_scan); 117 118 void wifi_nxp_wpa_supp_event_proc_scan_res(void *if_priv, 119 nxp_wifi_event_new_scan_result_t *scan_res, 120 unsigned int event_len, 121 bool more_res); 122 123 void wifi_nxp_wpa_supp_event_proc_auth_resp(void *if_priv, 124 nxp_wifi_event_mlme_t *auth_resp_event, 125 unsigned int event_len); 126 127 void wifi_nxp_wpa_supp_event_proc_assoc_resp(void *if_priv, 128 nxp_wifi_assoc_event_mlme_t *assoc_resp_event, 129 unsigned int event_len); 130 131 void wifi_nxp_wpa_supp_event_proc_deauth(void *if_priv, nxp_wifi_event_mlme_t *deauth_event, unsigned int event_len); 132 133 void wifi_nxp_wpa_supp_event_proc_disassoc(void *if_priv, 134 nxp_wifi_event_mlme_t *disassoc_event, 135 unsigned int event_len); 136 137 void wifi_nxp_wpa_supp_event_proc_unprot_mgmt(void *if_priv, 138 nxp_wifi_event_mlme_t *unprot_mgmt_event, 139 unsigned int event_len); 140 void wifi_nxp_wpa_supp_event_proc_remain_on_channel(void *if_priv, int cancel_channel); 141 void wifi_nxp_wpa_supp_event_proc_mgmt_rx(void *if_priv, nxp_wifi_event_mlme_t *mgmt_rx, 142 unsigned int event_len, int rssi); 143 void wifi_nxp_wpa_supp_event_get_wiphy(void *if_priv, 144 struct wifi_nxp_event_get_wiphy *wiphy_info, unsigned int event_len); 145 void wifi_nxp_wpa_supp_event_mgmt_tx_status(void *if_priv, nxp_wifi_event_mlme_t *mlme_event, unsigned int event_len); 146 void wifi_nxp_wpa_supp_event_proc_chan_list_changed(void *if_priv, const char *alpha2); 147 void wifi_nxp_wpa_supp_event_acs_channel_selected(void *if_priv, nxp_wifi_acs_params *acs_params); 148 void wifi_nxp_wpa_supp_event_proc_ecsa_complete(void *if_priv, nxp_wifi_ch_switch_info *ch_switch_info); 149 #if !CONFIG_WIFI_NM_WPA_SUPPLICANT 150 void wifi_nxp_wpa_supp_event_proc_survey_res(void *if_priv, 151 nxp_wifi_event_new_survey_result_t *survey_res, 152 unsigned int event_len, 153 bool more_res); 154 void wifi_nxp_wpa_supp_event_proc_eapol_rx(void *if_priv, 155 nxp_wifi_event_eapol_mlme_t *eapol_rx, 156 unsigned int event_len); 157 #endif 158 void wifi_nxp_wpa_supp_event_proc_dfs_cac_started(void *if_priv, nxp_wifi_dfs_cac_info *dfs_cac_info); 159 void wifi_nxp_wpa_supp_event_proc_dfs_cac_finished(void *if_priv, nxp_wifi_dfs_cac_info *dfs_cac_info); 160 void wifi_nxp_wpa_supp_event_signal_change(void *if_priv, t_s16 *curr_rssi); 161 #if CONFIG_WIFI_SOFTAP_SUPPORT 162 int wifi_nxp_wpa_supp_init_ap(void *if_priv, struct wpa_driver_associate_params *params); 163 #endif 164 #if CONFIG_WPA_SUPP_AP 165 void *wifi_nxp_hostapd_dev_init(void *hapd_drv_if_ctx, 166 const char *iface_name, 167 rtos_hostapd_dev_callbk_fns *hostapd_callbk_fns); 168 void wifi_nxp_hostapd_dev_deinit(void *if_priv); 169 int wifi_nxp_hostapd_do_acs(void *priv, struct drv_acs_params *params); 170 int wifi_nxp_hostapd_set_ap(void *if_priv, int beacon_set, struct wpa_driver_ap_params *params); 171 int wifi_nxp_hostapd_set_modes(void *if_priv, struct hostapd_hw_modes *modes); 172 int wifi_nxp_hostapd_sta_add(void *if_priv, struct hostapd_sta_add_params *params); 173 int wifi_nxp_hostapd_sta_remove(void *if_priv, const u8 *addr); 174 int wifi_nxp_hostapd_send_eapol(void *if_priv, const u8 *data, size_t data_len); 175 int wifi_nxp_hostapd_set_freq(void *if_priv, struct hostapd_freq_params *freq); 176 int wifi_nxp_hostapd_set_rts(void *if_priv, int rts_threshold); 177 int wifi_nxp_hostapd_set_frag(void *if_priv, int frag_threshold); 178 int wifi_nxp_hostapd_stop_ap(void *if_priv); 179 int wifi_nxp_hostapd_set_acl(void *if_priv, struct hostapd_acl_params *params); 180 #endif 181 int wifi_nxp_wpa_dpp_listen(void *if_priv, bool enable); 182 bool wifi_nxp_wpa_get_modes(void *if_priv); 183 void wifi_nxp_wpa_supp_cancel_action_wait(void *if_priv); 184 #endif /* CONFIG_WPA_SUPP */ 185 #endif /* __rtos_WPA_SUPP_IF_H__ */ 186