1 /* 2 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. 3 * All rights reserved. 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 as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License along 16 * with this program; if not, write to the Free Software Foundation, Inc., 17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * File: iowpa.h 20 * 21 * Purpose: Handles wpa supplicant ioctl interface 22 * 23 * Author: Lyndon Chen 24 * 25 * Date: May 8, 2002 26 * 27 */ 28 29 #ifndef __IOWPA_H__ 30 #define __IOWPA_H__ 31 32 /*--------------------- Export Definitions -------------------------*/ 33 34 #define WPA_IE_LEN 64 35 36 //WPA related 37 /* 38 typedef enum { WPA_ALG_NONE, WPA_ALG_WEP, WPA_ALG_TKIP, WPA_ALG_CCMP } wpa_alg; 39 typedef enum { CIPHER_NONE, CIPHER_WEP40, CIPHER_TKIP, CIPHER_CCMP, 40 CIPHER_WEP104 } wpa_cipher; 41 typedef enum { KEY_MGMT_802_1X, KEY_MGMT_PSK, KEY_MGMT_NONE, 42 KEY_MGMT_802_1X_NO_WPA, KEY_MGMT_WPA_NONE } wpa_key_mgmt; 43 */ 44 45 enum { 46 VIAWGET_SET_WPA = 1, 47 VIAWGET_SET_KEY = 2, 48 VIAWGET_SET_SCAN = 3, 49 VIAWGET_GET_SCAN = 4, 50 VIAWGET_GET_SSID = 5, 51 VIAWGET_GET_BSSID = 6, 52 VIAWGET_SET_DROP_UNENCRYPT = 7, 53 VIAWGET_SET_DEAUTHENTICATE = 8, 54 VIAWGET_SET_ASSOCIATE = 9, 55 VIAWGET_SET_DISASSOCIATE = 10 56 }; 57 58 59 enum { 60 VIAWGET_ASSOC_MSG = 1, 61 VIAWGET_DISASSOC_MSG = 2, 62 VIAWGET_PTK_MIC_MSG = 3, 63 VIAWGET_GTK_MIC_MSG = 4, 64 VIAWGET_CCKM_ROAM_MSG = 5, 65 VIAWGET_DEVICECLOSE_MSG = 6 66 }; 67 68 69 70 typedef struct viawget_wpa_header { 71 u8 type; 72 u16 req_ie_len; 73 u16 resp_ie_len; 74 } __packed viawget_wpa_header; 75 76 struct viawget_wpa_param { 77 u32 cmd; 78 u8 addr[6]; 79 union { 80 struct { 81 u8 len; 82 u8 data[0]; 83 } generic_elem; 84 struct { 85 u8 bssid[6]; 86 u8 ssid[32]; 87 u8 ssid_len; 88 u8 *wpa_ie; 89 u16 wpa_ie_len; 90 int pairwise_suite; 91 int group_suite; 92 int key_mgmt_suite; 93 int auth_alg; 94 int mode; 95 u8 roam_dbm; 96 } wpa_associate; 97 struct { 98 int alg_name; 99 u16 key_index; 100 u16 set_tx; 101 u8 *seq; 102 u16 seq_len; 103 u8 *key; 104 u16 key_len; 105 } wpa_key; 106 struct { 107 u8 ssid_len; 108 u8 ssid[32]; 109 } scan_req; 110 struct { 111 u16 scan_count; 112 u8 *buf; 113 } scan_results; 114 } u; 115 } __packed; 116 117 struct viawget_scan_result { 118 u8 bssid[6]; 119 u8 ssid[32]; 120 u16 ssid_len; 121 u8 wpa_ie[WPA_IE_LEN]; 122 u16 wpa_ie_len; 123 u8 rsn_ie[WPA_IE_LEN]; 124 u16 rsn_ie_len; 125 int freq; // MHz 126 int caps; // e.g. privacy 127 int qual; // signal quality 128 int noise; 129 int level; 130 int maxrate; 131 } __packed; 132 133 /*--------------------- Export Classes ----------------------------*/ 134 135 /*--------------------- Export Variables --------------------------*/ 136 137 /*--------------------- Export Types ------------------------------*/ 138 139 /*--------------------- Export Functions --------------------------*/ 140 141 #endif /* __IOWPA_H__ */ 142