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/* 40typedef enum { WPA_ALG_NONE, WPA_ALG_WEP, WPA_ALG_TKIP, WPA_ALG_CCMP } wpa_alg; 41typedef enum { CIPHER_NONE, CIPHER_WEP40, CIPHER_TKIP, CIPHER_CCMP, 42 CIPHER_WEP104 } wpa_cipher; 43typedef 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 47enum { 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 61enum { 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) 73typedef struct viawget_wpa_header { 74 u8 type; 75 u16 req_ie_len; 76 u16 resp_ie_len; 77} viawget_wpa_header; 78 79 80 81struct 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) 129struct 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