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 35 #define WPA_IE_LEN 64 36 37 38 //WPA related 39 /* 40 typedef enum { WPA_ALG_NONE, WPA_ALG_WEP, WPA_ALG_TKIP, WPA_ALG_CCMP } wpa_alg; 41 typedef enum { CIPHER_NONE, CIPHER_WEP40, CIPHER_TKIP, CIPHER_CCMP, 42 CIPHER_WEP104 } wpa_cipher; 43 typedef enum { KEY_MGMT_802_1X, KEY_MGMT_PSK, KEY_MGMT_NONE, 44 KEY_MGMT_802_1X_NO_WPA, KEY_MGMT_WPA_NONE } wpa_key_mgmt; 45 */ 46 47 enum { 48 VIAWGET_SET_WPA = 1, 49 VIAWGET_SET_KEY = 2, 50 VIAWGET_SET_SCAN = 3, 51 VIAWGET_GET_SCAN = 4, 52 VIAWGET_GET_SSID = 5, 53 VIAWGET_GET_BSSID = 6, 54 VIAWGET_SET_DROP_UNENCRYPT = 7, 55 VIAWGET_SET_DEAUTHENTICATE = 8, 56 VIAWGET_SET_ASSOCIATE = 9, 57 VIAWGET_SET_DISASSOCIATE= 10 58 }; 59 60 61 enum { 62 VIAWGET_ASSOC_MSG = 1, 63 VIAWGET_DISASSOC_MSG = 2, 64 VIAWGET_PTK_MIC_MSG = 3, 65 VIAWGET_GTK_MIC_MSG = 4, 66 VIAWGET_CCKM_ROAM_MSG = 5, 67 VIAWGET_DEVICECLOSE_MSG = 6 68 }; 69 70 71 72 #pragma pack(1) 73 typedef struct viawget_wpa_header { 74 u8 type; 75 u16 req_ie_len; 76 u16 resp_ie_len; 77 } viawget_wpa_header; 78 79 80 81 struct viawget_wpa_param { 82 u32 cmd; 83 u8 addr[6]; 84 union { 85 struct { 86 u8 len; 87 u8 data[0]; 88 } generic_elem; 89 90 struct { 91 u8 bssid[6]; 92 u8 ssid[32]; 93 u8 ssid_len; 94 u8 *wpa_ie; 95 u16 wpa_ie_len; 96 int pairwise_suite; 97 int group_suite; 98 int key_mgmt_suite; 99 int auth_alg; 100 int mode; 101 102 } wpa_associate; 103 104 struct { 105 int alg_name; 106 u16 key_index; 107 u16 set_tx; 108 u8 *seq; 109 u16 seq_len; 110 u8 *key; 111 u16 key_len; 112 } wpa_key; 113 114 struct { 115 u8 ssid_len; 116 u8 ssid[32]; 117 } scan_req; 118 119 struct { 120 u16 scan_count; 121 u8 *buf; 122 } scan_results; 123 124 } u; 125 126 }; 127 128 #pragma pack(1) 129 struct viawget_scan_result { 130 u8 bssid[6]; 131 u8 ssid[32]; 132 u16 ssid_len; 133 u8 wpa_ie[WPA_IE_LEN]; 134 u16 wpa_ie_len; 135 u8 rsn_ie[WPA_IE_LEN]; 136 u16 rsn_ie_len; 137 int freq; // MHz 138 int caps; // e.g. privacy 139 int qual; // signal quality 140 int noise; 141 int level; 142 int maxrate; 143 }; 144 145 //2006-1116-01,<Add> by NomadZhao 146 #pragma pack() 147 /*--------------------- Export Classes ----------------------------*/ 148 149 /*--------------------- Export Variables --------------------------*/ 150 151 152 /*--------------------- Export Types ------------------------------*/ 153 154 155 /*--------------------- Export Functions --------------------------*/ 156 157 158 159 #endif //__IOWPA_H__ 160