1 /* 2 * Header bits derived from MadWifi source: 3 * Copyright (c) 2001 Atsushi Onoe 4 * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting 5 * All rights reserved. 6 * 7 * Distributed under the terms of the GPLv2 license. 8 * 9 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 10 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 11 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 12 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 13 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 14 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 15 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 16 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 17 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 18 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 19 */ 20 21 #ifndef _MADWIFI_H 22 #define _MADWIFI_H 23 24 /* ieee80211.h */ 25 #define IEEE80211_ADDR_LEN 6 26 #define IEEE80211_RATE_VAL 0x7f 27 #define IEEE80211_SEQ_SEQ_MASK 0xfff0 28 #define IEEE80211_SEQ_SEQ_SHIFT 4 29 30 31 /* ieee80211_crypto.h */ 32 #define IEEE80211_KEYBUF_SIZE 16 33 #define IEEE80211_MICBUF_SIZE 16 34 #define IEEE80211_TID_SIZE 17 35 36 #define IEEE80211_CIPHER_WEP 0 37 #define IEEE80211_CIPHER_TKIP 1 38 #define IEEE80211_CIPHER_AES_OCB 2 39 #define IEEE80211_CIPHER_AES_CCM 3 40 #define IEEE80211_CIPHER_CKIP 5 41 #define IEEE80211_CIPHER_NONE 6 42 #define IEEE80211_CIPHER_MAX (IEEE80211_CIPHER_NONE + 1) 43 44 45 /* ieee80211_ioctl.h */ 46 #define IEEE80211_KEY_DEFAULT 0x80 47 #define IEEE80211_CHAN_MAX 255 48 #define IEEE80211_CHAN_BYTES 32 49 #define IEEE80211_RATE_MAXSIZE 15 50 51 #define IEEE80211_IOCTL_GETKEY (SIOCDEVPRIVATE+3) 52 #define IEEE80211_IOCTL_STA_STATS (SIOCDEVPRIVATE+5) 53 #define IEEE80211_IOCTL_STA_INFO (SIOCDEVPRIVATE+6) 54 55 #define IEEE80211_IOCTL_GETPARAM (SIOCIWFIRSTPRIV+1) 56 #define IEEE80211_IOCTL_GETMODE (SIOCIWFIRSTPRIV+3) 57 #define IEEE80211_IOCTL_GETCHANLIST (SIOCIWFIRSTPRIV+7) 58 #define IEEE80211_IOCTL_GETCHANINFO (SIOCIWFIRSTPRIV+13) 59 60 #define SIOC80211IFCREATE (SIOCDEVPRIVATE+7) 61 #define SIOC80211IFDESTROY (SIOCDEVPRIVATE+8) 62 63 #define IEEE80211_CLONE_BSSID 0x0001 /* allocate unique mac/bssid */ 64 #define IEEE80211_NO_STABEACONS 0x0002 /* Do not setup the station beacon timers */ 65 66 struct ieee80211_clone_params { 67 char icp_name[IFNAMSIZ]; /* device name */ 68 u_int16_t icp_opmode; /* operating mode */ 69 u_int16_t icp_flags; /* see below */ 70 }; 71 72 enum ieee80211_opmode { 73 IEEE80211_M_STA = 1, /* infrastructure station */ 74 IEEE80211_M_IBSS = 0, /* IBSS (adhoc) station */ 75 IEEE80211_M_AHDEMO = 3, /* Old lucent compatible adhoc demo */ 76 IEEE80211_M_HOSTAP = 6, /* Software Access Point */ 77 IEEE80211_M_MONITOR = 8, /* Monitor mode */ 78 IEEE80211_M_WDS = 2, /* WDS link */ 79 }; 80 81 enum { 82 IEEE80211_PARAM_AUTHMODE = 3, /* authentication mode */ 83 IEEE80211_PARAM_MCASTCIPHER = 5, /* multicast/default cipher */ 84 IEEE80211_PARAM_MCASTKEYLEN = 6, /* multicast key length */ 85 IEEE80211_PARAM_UCASTCIPHERS = 7, /* unicast cipher suites */ 86 IEEE80211_PARAM_WPA = 10, /* WPA mode (0,1,2) */ 87 }; 88 89 /* 90 * Authentication mode. 91 */ 92 enum ieee80211_authmode { 93 IEEE80211_AUTH_NONE = 0, 94 IEEE80211_AUTH_OPEN = 1, /* open */ 95 IEEE80211_AUTH_SHARED = 2, /* shared-key */ 96 IEEE80211_AUTH_8021X = 3, /* 802.1x */ 97 IEEE80211_AUTH_AUTO = 4, /* auto-select/accept */ 98 /* NB: these are used only for ioctls */ 99 IEEE80211_AUTH_WPA = 5, /* WPA/RSN w/ 802.1x/PSK */ 100 }; 101 102 struct ieee80211_channel { 103 u_int16_t ic_freq; /* setting in MHz */ 104 u_int16_t ic_flags; /* see below */ 105 u_int8_t ic_ieee; /* IEEE channel number */ 106 int8_t ic_maxregpower; /* maximum regulatory tx power in dBm */ 107 int8_t ic_maxpower; /* maximum tx power in dBm */ 108 int8_t ic_minpower; /* minimum tx power in dBm */ 109 u_int8_t ic_scanflags; 110 u_int8_t ic_idletime; /* phy idle time in % */ 111 }; 112 113 struct ieee80211req_key { 114 u_int8_t ik_type; /* key/cipher type */ 115 u_int8_t ik_pad; 116 u_int16_t ik_keyix; /* key index */ 117 u_int8_t ik_keylen; /* key length in bytes */ 118 u_int8_t ik_flags; 119 u_int8_t ik_macaddr[IEEE80211_ADDR_LEN]; 120 u_int64_t ik_keyrsc; /* key receive sequence counter */ 121 u_int64_t ik_keytsc; /* key transmit sequence counter */ 122 u_int8_t ik_keydata[IEEE80211_KEYBUF_SIZE+IEEE80211_MICBUF_SIZE]; 123 }; 124 125 struct ieee80211req_chanlist { 126 u_int8_t ic_channels[IEEE80211_CHAN_BYTES]; 127 }; 128 129 struct ieee80211req_chaninfo { 130 u_int ic_nchans; 131 struct ieee80211_channel ic_chans[IEEE80211_CHAN_MAX]; 132 }; 133 134 struct ieee80211req_sta_info { 135 u_int16_t isi_len; /* length (mult of 4) */ 136 u_int16_t isi_freq; /* MHz */ 137 u_int16_t isi_flags; /* channel flags */ 138 u_int16_t isi_state; /* state flags */ 139 u_int8_t isi_authmode; /* authentication algorithm */ 140 u_int8_t isi_rssi; 141 int8_t isi_noise; 142 u_int16_t isi_capinfo; /* capabilities */ 143 u_int8_t isi_athflags; /* Atheros capabilities */ 144 u_int8_t isi_erp; /* ERP element */ 145 u_int8_t isi_macaddr[IEEE80211_ADDR_LEN]; 146 u_int8_t isi_nrates; /* negotiated rates */ 147 u_int8_t isi_rates[IEEE80211_RATE_MAXSIZE]; 148 u_int8_t isi_txrate; /* index to isi_rates[] */ 149 u_int16_t isi_ie_len; /* IE length */ 150 u_int16_t isi_associd; /* assoc response */ 151 u_int16_t isi_txpower; /* current tx power */ 152 u_int16_t isi_vlan; /* vlan tag */ 153 u_int16_t isi_txseqs[17]; /* seq to be transmitted */ 154 u_int16_t isi_rxseqs[17]; /* seq previous for qos frames*/ 155 u_int16_t isi_inact; /* inactivity timer */ 156 u_int8_t isi_uapsd; /* UAPSD queues */ 157 u_int8_t isi_opmode; /* sta operating mode */ 158 }; 159 160 #endif 161
This page was automatically generated by LXR 0.3.1. • OpenWrt