14126Szf162725 /*
2*5895Syz147064  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
34126Szf162725  * Use is subject to license terms.
44126Szf162725  */
54126Szf162725 
64126Szf162725 /*
74126Szf162725  * Copyright (c) 2003-2004, Jouni Malinen <jkmaline@cc.hut.fi>
84126Szf162725  * Sun elects to license this software under the BSD license.
94126Szf162725  * See README for more details.
104126Szf162725  */
114126Szf162725 #ifndef __DRIVER_H
124126Szf162725 #define	__DRIVER_H
134126Szf162725 
144126Szf162725 #pragma ident	"%Z%%M%	%I%	%E% SMI"
154126Szf162725 
164126Szf162725 #include <libdlwlan.h>
17*5895Syz147064 #include <libdllink.h>
184126Szf162725 
194126Szf162725 #ifdef	__cplusplus
204126Szf162725 extern "C" {
214126Szf162725 #endif
224126Szf162725 
234126Szf162725 typedef enum { WPA_ALG_NONE, WPA_ALG_WEP, WPA_ALG_TKIP, WPA_ALG_CCMP } wpa_alg;
244126Szf162725 typedef enum { CIPHER_NONE, CIPHER_WEP40, CIPHER_TKIP, CIPHER_CCMP,
254126Szf162725 	CIPHER_WEP104 } wpa_cipher;
264126Szf162725 typedef enum { KEY_MGMT_802_1X, KEY_MGMT_PSK, KEY_MGMT_NONE } wpa_key_mgmt;
274126Szf162725 
284126Szf162725 struct wpa_driver_ops {
29*5895Syz147064 	int (*get_bssid)(datalink_id_t, char *);
30*5895Syz147064 	int (*get_ssid)(datalink_id_t, char *);
31*5895Syz147064 	int (*set_wpa)(datalink_id_t, boolean_t);
32*5895Syz147064 	int (*set_key)(datalink_id_t, wpa_alg, uint8_t *,
334126Szf162725 	    int, boolean_t, uint8_t *, uint32_t, uint8_t *, uint32_t);
34*5895Syz147064 	int (*scan)(datalink_id_t);
35*5895Syz147064 	int (*get_scan_results)(datalink_id_t, dladm_wlan_ess_t *, uint32_t);
36*5895Syz147064 	int (*disassociate)(datalink_id_t, int);
37*5895Syz147064 	int (*associate)(datalink_id_t, const char *, uint8_t *, uint32_t);
384126Szf162725 };
394126Szf162725 
404126Szf162725 #ifdef __cplusplus
414126Szf162725 }
424126Szf162725 #endif
434126Szf162725 
444126Szf162725 #endif /* __DRIVER_H */
45