18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/*
28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * wpa_supplicant - SME
38d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Copyright (c) 2009-2010, Jouni Malinen <j@w1.fi>
48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt *
5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license.
6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details.
78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */
88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifndef SME_H
108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define SME_H
118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef CONFIG_SME
138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid sme_authenticate(struct wpa_supplicant *wpa_s,
158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		      struct wpa_bss *bss, struct wpa_ssid *ssid);
168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid sme_associate(struct wpa_supplicant *wpa_s, enum wpas_mode mode,
178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		   const u8 *bssid, u16 auth_type);
188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid sme_event_auth(struct wpa_supplicant *wpa_s, union wpa_event_data *data);
198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtint sme_update_ft_ies(struct wpa_supplicant *wpa_s, const u8 *md,
208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		      const u8 *ies, size_t ies_len);
218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid sme_event_assoc_reject(struct wpa_supplicant *wpa_s,
228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt			    union wpa_event_data *data);
238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid sme_event_auth_timed_out(struct wpa_supplicant *wpa_s,
248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt			      union wpa_event_data *data);
258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid sme_event_assoc_timed_out(struct wpa_supplicant *wpa_s,
268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt			       union wpa_event_data *data);
278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid sme_event_disassoc(struct wpa_supplicant *wpa_s,
28c2ebb4b85d69b65f552fee71ac68f44e8d87b39eDmitry Shmidt			struct disassoc_info *info);
298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid sme_event_unprot_disconnect(struct wpa_supplicant *wpa_s, const u8 *sa,
308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt				 const u8 *da, u16 reason_code);
318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid sme_sa_query_rx(struct wpa_supplicant *wpa_s, const u8 *sa,
328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		     const u8 *data, size_t len);
338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid sme_state_changed(struct wpa_supplicant *wpa_s);
348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid sme_disassoc_while_authenticating(struct wpa_supplicant *wpa_s,
358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt				       const u8 *prev_pending_bssid);
36fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidtvoid sme_clear_on_disassoc(struct wpa_supplicant *wpa_s);
378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtvoid sme_deinit(struct wpa_supplicant *wpa_s);
388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
3904949598a23f501be6eec21697465fd46a28840aDmitry Shmidtint sme_proc_obss_scan(struct wpa_supplicant *wpa_s);
4004949598a23f501be6eec21697465fd46a28840aDmitry Shmidtvoid sme_sched_obss_scan(struct wpa_supplicant *wpa_s, int enable);
4104949598a23f501be6eec21697465fd46a28840aDmitry Shmidt
428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#else /* CONFIG_SME */
438d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstatic inline void sme_authenticate(struct wpa_supplicant *wpa_s,
458d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt				    struct wpa_bss *bss,
468d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt				    struct wpa_ssid *ssid)
478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{
488d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}
498d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
508d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstatic inline void sme_event_auth(struct wpa_supplicant *wpa_s,
518d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt				  union wpa_event_data *data)
528d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{
538d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}
548d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
558d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstatic inline int sme_update_ft_ies(struct wpa_supplicant *wpa_s, const u8 *md,
568d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt				    const u8 *ies, size_t ies_len)
578d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{
588d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	return -1;
598d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}
608d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
618d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
628d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstatic inline void sme_event_assoc_reject(struct wpa_supplicant *wpa_s,
638d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt					  union wpa_event_data *data)
648d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{
658d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}
668d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
678d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstatic inline void sme_event_auth_timed_out(struct wpa_supplicant *wpa_s,
688d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt					    union wpa_event_data *data)
698d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{
708d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}
718d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
728d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstatic inline void sme_event_assoc_timed_out(struct wpa_supplicant *wpa_s,
738d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt					     union wpa_event_data *data)
748d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{
758d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}
768d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
778d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstatic inline void sme_event_disassoc(struct wpa_supplicant *wpa_s,
78c2ebb4b85d69b65f552fee71ac68f44e8d87b39eDmitry Shmidt				      struct disassoc_info *info)
798d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{
808d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}
818d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
828d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstatic inline void sme_event_unprot_disconnect(struct wpa_supplicant *wpa_s,
838d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt					       const u8 *sa, const u8 *da,
848d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt					       u16 reason_code)
858d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{
868d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}
878d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
888d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstatic inline void sme_state_changed(struct wpa_supplicant *wpa_s)
898d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{
908d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}
918d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
928d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstatic inline void
938d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtsme_disassoc_while_authenticating(struct wpa_supplicant *wpa_s,
948d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt				  const u8 *prev_pending_bssid)
958d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{
968d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}
978d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
98fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidtstatic inline void sme_clear_on_disassoc(struct wpa_supplicant *wpa_s)
99fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt{
100fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt}
101fb45fd5cfed8bdccd0859c7fc05449fc187e2d06Dmitry Shmidt
1028d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstatic inline void sme_deinit(struct wpa_supplicant *wpa_s)
1038d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt{
1048d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}
1058d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
10604949598a23f501be6eec21697465fd46a28840aDmitry Shmidtstatic inline int sme_proc_obss_scan(struct wpa_supplicant *wpa_s)
10704949598a23f501be6eec21697465fd46a28840aDmitry Shmidt{
10804949598a23f501be6eec21697465fd46a28840aDmitry Shmidt	return 0;
10904949598a23f501be6eec21697465fd46a28840aDmitry Shmidt}
11004949598a23f501be6eec21697465fd46a28840aDmitry Shmidt
11104949598a23f501be6eec21697465fd46a28840aDmitry Shmidtstatic inline void sme_sched_obss_scan(struct wpa_supplicant *wpa_s,
11204949598a23f501be6eec21697465fd46a28840aDmitry Shmidt				       int enable)
11304949598a23f501be6eec21697465fd46a28840aDmitry Shmidt{
11404949598a23f501be6eec21697465fd46a28840aDmitry Shmidt}
11504949598a23f501be6eec21697465fd46a28840aDmitry Shmidt
1168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* CONFIG_SME */
1178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
1188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* SME_H */
119