00001 00012 #ifndef _SM_H_ 00013 #define _SM_H_ 00014 00024 // for mac_addr and other definitions 00025 #include "mac.h" 00026 #include "ke_task.h" 00027 00029 #define SM_MAX_IE_LEN 256 00030 00031 struct rxu_mgt_ind; 00032 struct vif_info_tag; 00033 00035 struct sm_env_tag 00036 { 00038 struct sm_connect_req const *connect_param; 00040 struct sm_connect_ind *connect_ind; 00042 struct ke_msg *disconnect_ind; 00044 struct co_list bss_config; 00046 bool host_disconnect; 00048 bool join_passive; 00050 bool ft_over_ds; 00052 struct mac_addr ft_old_bssid; 00054 struct vif_info_tag *vif_disconnect; 00055 }; 00056 00062 void sm_init(void); 00063 00073 void sm_get_bss_params(struct mac_addr const **bssid, 00074 struct mac_chan_def const **chan); 00075 00085 void sm_join_bss(struct mac_addr const *bssid, 00086 struct mac_chan_def const *chan, 00087 bool passive); 00088 00099 void sm_scan_bss(struct mac_addr const *bssid, 00100 struct mac_chan_def const *chan); 00101 00111 void sm_connect_ind(uint16_t status); 00112 00120 void sm_auth_handler(struct rxu_mgt_ind const *param); 00121 00129 void sm_assoc_rsp_handler(struct rxu_mgt_ind const *param); 00130 00141 int sm_deauth_handler(struct rxu_mgt_ind const *param); 00142 00143 #ifdef NX_MFP 00144 00153 void sm_sa_query_handler(struct rxu_mgt_ind const *param); 00154 #endif // NX_MFP 00155 00166 uint8_t sm_add_chan_ctx(uint8_t *chan_idx); 00167 00176 void sm_set_bss_param(void); 00177 00184 void sm_bss_config_send(void); 00185 00196 void sm_disconnect(uint8_t vif_index, uint16_t reason_code); 00197 00208 void sm_disconnect_process(struct vif_info_tag *vif, uint16_t reason); 00209 00217 void sm_assoc_done(uint16_t aid); 00218 00224 void sm_assoc_req_send(void); 00225 00235 void sm_auth_send(uint16_t auth_seq, uint32_t *challenge); 00236 00247 void sm_external_auth_start(uint32_t akm); 00248 00259 void sm_external_auth_end(uint16_t status); 00260 00267 bool sm_external_auth_in_progress(void); 00268 00281 int sm_get_rsnie_pmkid_count(uint32_t ies, uint16_t ies_len); 00282 00284 extern struct sm_env_tag sm_env; 00285 00287 00288 #endif // _SM_H_
1.6.1