1e5b75505Sopenharmony_ci/*
2e5b75505Sopenharmony_ci * WPA Supplicant - driver_wext exported functions
3e5b75505Sopenharmony_ci * Copyright (c) 2003-2005, Jouni Malinen <j@w1.fi>
4e5b75505Sopenharmony_ci *
5e5b75505Sopenharmony_ci * This software may be distributed under the terms of the BSD license.
6e5b75505Sopenharmony_ci * See README for more details.
7e5b75505Sopenharmony_ci */
8e5b75505Sopenharmony_ci
9e5b75505Sopenharmony_ci#ifndef DRIVER_WEXT_H
10e5b75505Sopenharmony_ci#define DRIVER_WEXT_H
11e5b75505Sopenharmony_ci
12e5b75505Sopenharmony_ci#include <net/if.h>
13e5b75505Sopenharmony_ci
14e5b75505Sopenharmony_cistruct wpa_driver_wext_data {
15e5b75505Sopenharmony_ci	void *ctx;
16e5b75505Sopenharmony_ci	struct netlink_data *netlink;
17e5b75505Sopenharmony_ci	int ioctl_sock;
18e5b75505Sopenharmony_ci	int mlme_sock;
19e5b75505Sopenharmony_ci	char ifname[IFNAMSIZ + 1];
20e5b75505Sopenharmony_ci	char phyname[32];
21e5b75505Sopenharmony_ci	int ifindex;
22e5b75505Sopenharmony_ci	int ifindex2;
23e5b75505Sopenharmony_ci	int if_removed;
24e5b75505Sopenharmony_ci	int if_disabled;
25e5b75505Sopenharmony_ci	struct rfkill_data *rfkill;
26e5b75505Sopenharmony_ci	u8 *assoc_req_ies;
27e5b75505Sopenharmony_ci	size_t assoc_req_ies_len;
28e5b75505Sopenharmony_ci	u8 *assoc_resp_ies;
29e5b75505Sopenharmony_ci	size_t assoc_resp_ies_len;
30e5b75505Sopenharmony_ci	struct wpa_driver_capa capa;
31e5b75505Sopenharmony_ci	int has_capability;
32e5b75505Sopenharmony_ci	int we_version_compiled;
33e5b75505Sopenharmony_ci
34e5b75505Sopenharmony_ci	/* for set_auth_alg fallback */
35e5b75505Sopenharmony_ci	int use_crypt;
36e5b75505Sopenharmony_ci	int auth_alg_fallback;
37e5b75505Sopenharmony_ci
38e5b75505Sopenharmony_ci	int operstate;
39e5b75505Sopenharmony_ci
40e5b75505Sopenharmony_ci	char mlmedev[IFNAMSIZ + 1];
41e5b75505Sopenharmony_ci
42e5b75505Sopenharmony_ci	int scan_complete_events;
43e5b75505Sopenharmony_ci
44e5b75505Sopenharmony_ci	int cfg80211; /* whether driver is using cfg80211 */
45e5b75505Sopenharmony_ci
46e5b75505Sopenharmony_ci	u8 max_level;
47e5b75505Sopenharmony_ci};
48e5b75505Sopenharmony_ci
49e5b75505Sopenharmony_ciint wpa_driver_wext_get_bssid(void *priv, u8 *bssid);
50e5b75505Sopenharmony_ciint wpa_driver_wext_set_bssid(void *priv, const u8 *bssid);
51e5b75505Sopenharmony_ciint wpa_driver_wext_get_ssid(void *priv, u8 *ssid);
52e5b75505Sopenharmony_ciint wpa_driver_wext_set_ssid(void *priv, const u8 *ssid, size_t ssid_len);
53e5b75505Sopenharmony_ciint wpa_driver_wext_set_freq(void *priv, int freq);
54e5b75505Sopenharmony_ciint wpa_driver_wext_set_mode(void *priv, int mode);
55e5b75505Sopenharmony_ciint wpa_driver_wext_set_key(const char *ifname, void *priv, enum wpa_alg alg,
56e5b75505Sopenharmony_ci			    const u8 *addr, int key_idx,
57e5b75505Sopenharmony_ci			    int set_tx, const u8 *seq, size_t seq_len,
58e5b75505Sopenharmony_ci			    const u8 *key, size_t key_len);
59e5b75505Sopenharmony_ciint wpa_driver_wext_scan(void *priv, struct wpa_driver_scan_params *params);
60e5b75505Sopenharmony_cistruct wpa_scan_results * wpa_driver_wext_get_scan_results(void *priv);
61e5b75505Sopenharmony_ci
62e5b75505Sopenharmony_civoid wpa_driver_wext_scan_timeout(void *eloop_ctx, void *timeout_ctx);
63e5b75505Sopenharmony_ci
64e5b75505Sopenharmony_ciint wpa_driver_wext_alternative_ifindex(struct wpa_driver_wext_data *drv,
65e5b75505Sopenharmony_ci					const char *ifname);
66e5b75505Sopenharmony_ci
67e5b75505Sopenharmony_civoid * wpa_driver_wext_init(void *ctx, const char *ifname);
68e5b75505Sopenharmony_civoid wpa_driver_wext_deinit(void *priv);
69e5b75505Sopenharmony_ci
70e5b75505Sopenharmony_ciint wpa_driver_wext_set_operstate(void *priv, int state);
71e5b75505Sopenharmony_ciint wpa_driver_wext_get_version(struct wpa_driver_wext_data *drv);
72e5b75505Sopenharmony_ci
73e5b75505Sopenharmony_ciint wpa_driver_wext_associate(void *priv,
74e5b75505Sopenharmony_ci			      struct wpa_driver_associate_params *params);
75e5b75505Sopenharmony_ciint wpa_driver_wext_get_capa(void *priv, struct wpa_driver_capa *capa);
76e5b75505Sopenharmony_ciint wpa_driver_wext_set_auth_param(struct wpa_driver_wext_data *drv,
77e5b75505Sopenharmony_ci				   int idx, u32 value);
78e5b75505Sopenharmony_ciint wpa_driver_wext_cipher2wext(int cipher);
79e5b75505Sopenharmony_ciint wpa_driver_wext_keymgmt2wext(int keymgmt);
80e5b75505Sopenharmony_ci
81e5b75505Sopenharmony_ci#endif /* DRIVER_WEXT_H */
82