• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * WPA Supplicant - driver_wext exported functions
3  * Copyright (c) 2003-2005, Jouni Malinen <j@w1.fi>
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation.
8  *
9  * Alternatively, this software may be distributed under the terms of BSD
10  * license.
11  *
12  * See README and COPYING for more details.
13  */
14 
15 #ifndef DRIVER_WEXT_H
16 #define DRIVER_WEXT_H
17 
18 #include <net/if.h>
19 
20 struct wpa_driver_wext_data {
21 	void *ctx;
22 	struct netlink_data *netlink;
23 	int ioctl_sock;
24 	int mlme_sock;
25 	char ifname[IFNAMSIZ + 1];
26 	char phyname[32];
27 	int ifindex;
28 	int ifindex2;
29 	int if_removed;
30 	int if_disabled;
31 	struct rfkill_data *rfkill;
32 	u8 *assoc_req_ies;
33 	size_t assoc_req_ies_len;
34 	u8 *assoc_resp_ies;
35 	size_t assoc_resp_ies_len;
36 	struct wpa_driver_capa capa;
37 	int has_capability;
38 	int we_version_compiled;
39 
40 	/* for set_auth_alg fallback */
41 	int use_crypt;
42 	int auth_alg_fallback;
43 
44 	int operstate;
45 
46 	char mlmedev[IFNAMSIZ + 1];
47 
48 	int scan_complete_events;
49 
50 	int cfg80211; /* whether driver is using cfg80211 */
51 
52 	u8 max_level;
53 #ifdef ANDROID
54 	int errors;
55 	int driver_is_started;
56 	int skip_disconnect;
57 	int bgscan_enabled;
58 #endif
59 };
60 
61 int wpa_driver_wext_get_bssid(void *priv, u8 *bssid);
62 int wpa_driver_wext_set_bssid(void *priv, const u8 *bssid);
63 int wpa_driver_wext_get_ssid(void *priv, u8 *ssid);
64 int wpa_driver_wext_set_ssid(void *priv, const u8 *ssid, size_t ssid_len);
65 int wpa_driver_wext_set_freq(void *priv, int freq);
66 int wpa_driver_wext_set_mode(void *priv, int mode);
67 int wpa_driver_wext_set_key(const char *ifname, void *priv, enum wpa_alg alg,
68 			    const u8 *addr, int key_idx,
69 			    int set_tx, const u8 *seq, size_t seq_len,
70 			    const u8 *key, size_t key_len);
71 int wpa_driver_wext_scan(void *priv, struct wpa_driver_scan_params *params);
72 struct wpa_scan_results * wpa_driver_wext_get_scan_results(void *priv);
73 
74 void wpa_driver_wext_scan_timeout(void *eloop_ctx, void *timeout_ctx);
75 
76 int wpa_driver_wext_alternative_ifindex(struct wpa_driver_wext_data *drv,
77 					const char *ifname);
78 
79 void * wpa_driver_wext_init(void *ctx, const char *ifname);
80 void wpa_driver_wext_deinit(void *priv);
81 
82 int wpa_driver_wext_set_operstate(void *priv, int state);
83 int wpa_driver_wext_get_version(struct wpa_driver_wext_data *drv);
84 
85 int wpa_driver_wext_associate(void *priv,
86 			      struct wpa_driver_associate_params *params);
87 int wpa_driver_wext_get_capa(void *priv, struct wpa_driver_capa *capa);
88 int wpa_driver_wext_set_auth_param(struct wpa_driver_wext_data *drv,
89 				   int idx, u32 value);
90 int wpa_driver_wext_cipher2wext(int cipher);
91 int wpa_driver_wext_keymgmt2wext(int keymgmt);
92 
93 #ifdef ANDROID
94 #define WPA_EVENT_DRIVER_STATE		"CTRL-EVENT-DRIVER-STATE "
95 #define WEXT_CSCAN_AMOUNT		9
96 #endif
97 
98 #endif /* DRIVER_WEXT_H */
99