Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 1 | /** |
| 2 | * This file contains definitions and data structures specific |
| 3 | * to Marvell 802.11 NIC. It contains the Device Information |
David Woodhouse | aa21c00 | 2007-12-08 20:04:36 +0000 | [diff] [blame] | 4 | * structure struct lbs_private.. |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 5 | */ |
Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 6 | #ifndef _LBS_DEV_H_ |
| 7 | #define _LBS_DEV_H_ |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 8 | |
| 9 | #include <linux/netdevice.h> |
| 10 | #include <linux/wireless.h> |
| 11 | #include <linux/ethtool.h> |
| 12 | #include <linux/debugfs.h> |
| 13 | |
| 14 | #include "defs.h" |
| 15 | #include "scan.h" |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 16 | |
Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 17 | extern struct ethtool_ops lbs_ethtool_ops; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 18 | |
| 19 | #define MAX_BSSID_PER_CHANNEL 16 |
| 20 | |
| 21 | #define NR_TX_QUEUE 3 |
| 22 | |
| 23 | /* For the extended Scan */ |
| 24 | #define MAX_EXTENDED_SCAN_BSSID_LIST MAX_BSSID_PER_CHANNEL * \ |
| 25 | MRVDRV_MAX_CHANNEL_SIZE + 1 |
| 26 | |
| 27 | #define MAX_REGION_CHANNEL_NUM 2 |
| 28 | |
| 29 | /** Chan-freq-TxPower mapping table*/ |
| 30 | struct chan_freq_power { |
| 31 | /** channel Number */ |
| 32 | u16 channel; |
| 33 | /** frequency of this channel */ |
| 34 | u32 freq; |
| 35 | /** Max allowed Tx power level */ |
| 36 | u16 maxtxpower; |
| 37 | /** TRUE:channel unsupported; FLASE:supported*/ |
| 38 | u8 unsupported; |
| 39 | }; |
| 40 | |
| 41 | /** region-band mapping table*/ |
| 42 | struct region_channel { |
| 43 | /** TRUE if this entry is valid */ |
| 44 | u8 valid; |
| 45 | /** region code for US, Japan ... */ |
| 46 | u8 region; |
| 47 | /** band B/G/A, used for BAND_CONFIG cmd */ |
| 48 | u8 band; |
| 49 | /** Actual No. of elements in the array below */ |
| 50 | u8 nrcfp; |
| 51 | /** chan-freq-txpower mapping table*/ |
| 52 | struct chan_freq_power *CFP; |
| 53 | }; |
| 54 | |
Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 55 | struct lbs_802_11_security { |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 56 | u8 WPAenabled; |
| 57 | u8 WPA2enabled; |
Dan Williams | 889c05b | 2007-05-10 22:57:23 -0400 | [diff] [blame] | 58 | u8 wep_enabled; |
Dan Williams | 6affe78 | 2007-05-10 22:56:42 -0400 | [diff] [blame] | 59 | u8 auth_mode; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 60 | }; |
| 61 | |
| 62 | /** Current Basic Service Set State Structure */ |
| 63 | struct current_bss_params { |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 64 | /** bssid */ |
| 65 | u8 bssid[ETH_ALEN]; |
| 66 | /** ssid */ |
Dan Williams | d8efea2 | 2007-05-28 23:54:55 -0400 | [diff] [blame] | 67 | u8 ssid[IW_ESSID_MAX_SIZE + 1]; |
| 68 | u8 ssid_len; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 69 | |
| 70 | /** band */ |
| 71 | u8 band; |
| 72 | /** channel */ |
| 73 | u8 channel; |
Dan Williams | 8c51276 | 2007-08-02 11:40:45 -0400 | [diff] [blame] | 74 | /** zero-terminated array of supported data rates */ |
| 75 | u8 rates[MAX_RATES + 1]; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 76 | }; |
| 77 | |
| 78 | /** sleep_params */ |
| 79 | struct sleep_params { |
David Woodhouse | 3fbe104 | 2007-12-17 23:48:31 -0500 | [diff] [blame] | 80 | uint16_t sp_error; |
| 81 | uint16_t sp_offset; |
| 82 | uint16_t sp_stabletime; |
| 83 | uint8_t sp_calcontrol; |
| 84 | uint8_t sp_extsleepclk; |
| 85 | uint16_t sp_reserved; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 86 | }; |
| 87 | |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 88 | /* Mesh statistics */ |
Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 89 | struct lbs_mesh_stats { |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 90 | u32 fwd_bcast_cnt; /* Fwd: Broadcast counter */ |
| 91 | u32 fwd_unicast_cnt; /* Fwd: Unicast counter */ |
| 92 | u32 fwd_drop_ttl; /* Fwd: TTL zero */ |
| 93 | u32 fwd_drop_rbt; /* Fwd: Recently Broadcasted */ |
| 94 | u32 fwd_drop_noroute; /* Fwd: No route to Destination */ |
| 95 | u32 fwd_drop_nobuf; /* Fwd: Run out of internal buffers */ |
| 96 | u32 drop_blind; /* Rx: Dropped by blinding table */ |
Javier Cardona | 0601e7e | 2007-05-25 12:12:06 -0400 | [diff] [blame] | 97 | u32 tx_failed_cnt; /* Tx: Failed transmissions */ |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 98 | }; |
| 99 | |
| 100 | /** Private structure for the MV device */ |
Holger Schurig | 69f9032 | 2007-11-23 15:43:44 +0100 | [diff] [blame] | 101 | struct lbs_private { |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 102 | int mesh_open; |
| 103 | int infra_open; |
Luis Carlos Cobo | d21b31f | 2007-08-02 13:16:02 -0400 | [diff] [blame] | 104 | int mesh_autostart_enabled; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 105 | |
Holger Schurig | 634b8f4 | 2007-05-25 13:05:16 -0400 | [diff] [blame] | 106 | char name[DEV_NAME_LEN]; |
| 107 | |
| 108 | void *card; |
Holger Schurig | 634b8f4 | 2007-05-25 13:05:16 -0400 | [diff] [blame] | 109 | struct net_device *dev; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 110 | |
| 111 | struct net_device_stats stats; |
Luis Carlos Cobo | 965f8bb | 2007-08-02 13:16:55 -0400 | [diff] [blame] | 112 | struct net_device *mesh_dev; /* Virtual device */ |
| 113 | struct net_device *rtap_net_dev; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 114 | |
| 115 | struct iw_statistics wstats; |
Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 116 | struct lbs_mesh_stats mstats; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 117 | struct dentry *debugfs_dir; |
| 118 | struct dentry *debugfs_debug; |
| 119 | struct dentry *debugfs_files[6]; |
| 120 | |
| 121 | struct dentry *events_dir; |
| 122 | struct dentry *debugfs_events_files[6]; |
| 123 | |
| 124 | struct dentry *regs_dir; |
| 125 | struct dentry *debugfs_regs_files[6]; |
| 126 | |
| 127 | u32 mac_offset; |
| 128 | u32 bbp_offset; |
| 129 | u32 rf_offset; |
| 130 | |
Holger Schurig | 634b8f4 | 2007-05-25 13:05:16 -0400 | [diff] [blame] | 131 | /** Upload length */ |
| 132 | u32 upld_len; |
| 133 | /* Upload buffer */ |
Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 134 | u8 upld_buf[LBS_UPLD_SIZE]; |
Holger Schurig | 634b8f4 | 2007-05-25 13:05:16 -0400 | [diff] [blame] | 135 | /* Download sent: |
| 136 | bit0 1/0=data_sent/data_tx_done, |
| 137 | bit1 1/0=cmd_sent/cmd_tx_done, |
| 138 | all other bits reserved 0 */ |
| 139 | u8 dnld_sent; |
| 140 | |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 141 | /** thread to service interrupts */ |
Dan Williams | fe33615 | 2007-08-02 11:32:25 -0400 | [diff] [blame] | 142 | struct task_struct *main_thread; |
| 143 | wait_queue_head_t waitq; |
Dan Williams | 2afc0c5 | 2007-08-02 13:19:04 -0400 | [diff] [blame] | 144 | struct workqueue_struct *work_thread; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 145 | |
Dan Williams | 2afc0c5 | 2007-08-02 13:19:04 -0400 | [diff] [blame] | 146 | struct delayed_work scan_work; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 147 | struct delayed_work assoc_work; |
Luis Carlos Cobo Rus | b8bedef | 2007-05-30 12:14:34 -0400 | [diff] [blame] | 148 | struct work_struct sync_channel; |
Holger Schurig | 208fdd2 | 2007-05-25 12:17:06 -0400 | [diff] [blame] | 149 | |
| 150 | /** Hardware access */ |
Holger Schurig | 69f9032 | 2007-11-23 15:43:44 +0100 | [diff] [blame] | 151 | int (*hw_host_to_card) (struct lbs_private *priv, u8 type, u8 *payload, u16 nb); |
| 152 | int (*hw_get_int_status) (struct lbs_private *priv, u8 *); |
| 153 | int (*hw_read_event_cause) (struct lbs_private *); |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 154 | |
David Woodhouse | 506e902 | 2007-12-12 20:06:06 -0500 | [diff] [blame] | 155 | /* Wake On LAN */ |
| 156 | uint32_t wol_criteria; |
| 157 | uint8_t wol_gpio; |
| 158 | uint8_t wol_gap; |
| 159 | |
David Woodhouse | aa21c00 | 2007-12-08 20:04:36 +0000 | [diff] [blame] | 160 | /* was struct lbs_adapter from here... */ |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 161 | |
David Woodhouse | aa21c00 | 2007-12-08 20:04:36 +0000 | [diff] [blame] | 162 | /** Wlan adapter data structure*/ |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 163 | /** STATUS variables */ |
Holger Schurig | dac10a9 | 2008-01-16 15:55:22 +0100 | [diff] [blame] | 164 | u32 fwrelease; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 165 | u32 fwcapinfo; |
| 166 | /* protected with big lock */ |
| 167 | |
| 168 | struct mutex lock; |
| 169 | |
David Woodhouse | 2eb188a | 2007-12-09 23:54:27 -0500 | [diff] [blame] | 170 | /* TX packet ready to be sent... */ |
| 171 | int tx_pending_len; /* -1 while building packet */ |
| 172 | |
| 173 | u8 tx_pending_buf[LBS_UPLD_SIZE]; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 174 | /* protected by hard_start_xmit serialization */ |
| 175 | |
| 176 | /** command-related variables */ |
| 177 | u16 seqnum; |
| 178 | /* protected by big lock */ |
| 179 | |
| 180 | struct cmd_ctrl_node *cmd_array; |
| 181 | /** Current command */ |
| 182 | struct cmd_ctrl_node *cur_cmd; |
| 183 | int cur_cmd_retcode; |
| 184 | /** command Queues */ |
| 185 | /** Free command buffers */ |
| 186 | struct list_head cmdfreeq; |
| 187 | /** Pending command buffers */ |
| 188 | struct list_head cmdpendingq; |
| 189 | |
| 190 | wait_queue_head_t cmd_pending; |
David Woodhouse | aa21c00 | 2007-12-08 20:04:36 +0000 | [diff] [blame] | 191 | /* command related variables protected by priv->driver_lock */ |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 192 | |
| 193 | /** Async and Sync Event variables */ |
| 194 | u32 intcounter; |
| 195 | u32 eventcause; |
| 196 | u8 nodename[16]; /* nickname */ |
| 197 | |
| 198 | /** spin locks */ |
| 199 | spinlock_t driver_lock; |
| 200 | |
| 201 | /** Timers */ |
| 202 | struct timer_list command_timer; |
David Woodhouse | 2a34509 | 2007-12-15 19:33:43 -0500 | [diff] [blame] | 203 | int nr_retries; |
| 204 | int cmd_timed_out; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 205 | |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 206 | u8 hisregcpy; |
| 207 | |
| 208 | /** current ssid/bssid related parameters*/ |
| 209 | struct current_bss_params curbssparams; |
David Woodhouse | 020f3d0 | 2007-12-12 23:29:13 -0500 | [diff] [blame] | 210 | |
| 211 | uint16_t mesh_tlv; |
David Woodhouse | 23a397a | 2007-12-11 18:56:42 -0500 | [diff] [blame] | 212 | u8 mesh_ssid[IW_ESSID_MAX_SIZE + 1]; |
| 213 | u8 mesh_ssid_len; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 214 | |
Dan Williams | 0dc5a29 | 2007-05-10 22:58:02 -0400 | [diff] [blame] | 215 | /* IW_MODE_* */ |
| 216 | u8 mode; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 217 | |
Dan Williams | fcdb53d | 2007-05-25 16:15:56 -0400 | [diff] [blame] | 218 | /* Scan results list */ |
| 219 | struct list_head network_list; |
| 220 | struct list_head network_free_list; |
| 221 | struct bss_descriptor *networks; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 222 | |
Brajesh Dave | 96287ac | 2007-11-20 17:44:28 -0500 | [diff] [blame] | 223 | u16 beacon_period; |
| 224 | u8 beacon_enable; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 225 | u8 adhoccreate; |
| 226 | |
| 227 | /** capability Info used in Association, start, join */ |
Dan Williams | 0c9ca69 | 2007-08-02 10:43:44 -0400 | [diff] [blame] | 228 | u16 capability; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 229 | |
| 230 | /** MAC address information */ |
| 231 | u8 current_addr[ETH_ALEN]; |
| 232 | u8 multicastlist[MRVDRV_MAX_MULTICAST_LIST_SIZE][ETH_ALEN]; |
| 233 | u32 nr_of_multicastmacaddr; |
| 234 | |
| 235 | /** 802.11 statistics */ |
| 236 | // struct cmd_DS_802_11_GET_STAT wlan802_11Stat; |
| 237 | |
| 238 | u16 enablehwauto; |
| 239 | u16 ratebitmap; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 240 | |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 241 | u32 fragthsd; |
| 242 | u32 rtsthsd; |
| 243 | |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 244 | u8 txretrycount; |
| 245 | |
| 246 | /** Tx-related variables (for single packet tx) */ |
| 247 | struct sk_buff *currenttxskb; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 248 | |
| 249 | /** NIC Operation characteristics */ |
| 250 | u16 currentpacketfilter; |
| 251 | u32 connect_status; |
Brajesh Dave | 01d77d8 | 2007-11-20 17:44:14 -0500 | [diff] [blame] | 252 | u32 mesh_connect_status; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 253 | u16 regioncode; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 254 | u16 txpowerlevel; |
| 255 | |
| 256 | /** POWER MANAGEMENT AND PnP SUPPORT */ |
| 257 | u8 surpriseremoved; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 258 | |
| 259 | u16 psmode; /* Wlan802_11PowermodeCAM=disable |
| 260 | Wlan802_11PowermodeMAX_PSP=enable */ |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 261 | u32 psstate; |
David Woodhouse | b2c57ee | 2007-12-17 14:41:13 -0500 | [diff] [blame] | 262 | char ps_supported; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 263 | u8 needtowakeup; |
| 264 | |
Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 265 | struct PS_CMD_ConfirmSleep lbs_ps_confirm_sleep; |
David Woodhouse | b47ef24 | 2007-12-17 13:26:42 -0500 | [diff] [blame] | 266 | struct cmd_header lbs_ps_confirm_wake; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 267 | |
Dan Williams | e76850d | 2007-05-25 17:09:41 -0400 | [diff] [blame] | 268 | struct assoc_request * pending_assoc_req; |
| 269 | struct assoc_request * in_progress_assoc_req; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 270 | |
| 271 | /** Encryption parameter */ |
Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 272 | struct lbs_802_11_security secinfo; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 273 | |
| 274 | /** WEP keys */ |
Dan Williams | 1443b65 | 2007-08-02 10:45:55 -0400 | [diff] [blame] | 275 | struct enc_key wep_keys[4]; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 276 | u16 wep_tx_keyidx; |
| 277 | |
| 278 | /** WPA keys */ |
Dan Williams | 1443b65 | 2007-08-02 10:45:55 -0400 | [diff] [blame] | 279 | struct enc_key wpa_mcast_key; |
| 280 | struct enc_key wpa_unicast_key; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 281 | |
| 282 | /** WPA Information Elements*/ |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 283 | u8 wpa_ie[MAX_WPA_IE_LEN]; |
| 284 | u8 wpa_ie_len; |
| 285 | |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 286 | /** Requested Signal Strength*/ |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 287 | u16 SNR[MAX_TYPE_B][MAX_TYPE_AVG]; |
| 288 | u16 NF[MAX_TYPE_B][MAX_TYPE_AVG]; |
| 289 | u8 RSSI[MAX_TYPE_B][MAX_TYPE_AVG]; |
| 290 | u8 rawSNR[DEFAULT_DATA_AVG_FACTOR]; |
| 291 | u8 rawNF[DEFAULT_DATA_AVG_FACTOR]; |
| 292 | u16 nextSNRNF; |
| 293 | u16 numSNRNF; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 294 | |
| 295 | u8 radioon; |
| 296 | u32 preamble; |
| 297 | |
Dan Williams | 8c51276 | 2007-08-02 11:40:45 -0400 | [diff] [blame] | 298 | /** data rate stuff */ |
| 299 | u8 cur_rate; |
| 300 | u8 auto_rate; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 301 | |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 302 | /** RF calibration data */ |
| 303 | |
| 304 | #define MAX_REGION_CHANNEL_NUM 2 |
| 305 | /** region channel data */ |
| 306 | struct region_channel region_channel[MAX_REGION_CHANNEL_NUM]; |
| 307 | |
| 308 | struct region_channel universal_channel[MAX_REGION_CHANNEL_NUM]; |
| 309 | |
| 310 | /** 11D and Domain Regulatory Data */ |
Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 311 | struct lbs_802_11d_domain_reg domainreg; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 312 | struct parsed_region_chan_11d parsed_region_chan; |
| 313 | |
| 314 | /** FSM variable for 11d support */ |
| 315 | u32 enable11d; |
| 316 | |
| 317 | /** MISCELLANEOUS */ |
| 318 | u8 *prdeeprom; |
Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 319 | struct lbs_offset_value offsetvalue; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 320 | |
| 321 | struct cmd_ds_802_11_get_log logmsg; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 322 | |
Luis Carlos Cobo | 965f8bb | 2007-08-02 13:16:55 -0400 | [diff] [blame] | 323 | u32 monitormode; |
Holger Schurig | ffd074f | 2007-12-07 16:52:10 +0100 | [diff] [blame] | 324 | int last_scanned_channel; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 325 | u8 fw_ready; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 326 | }; |
| 327 | |
David Woodhouse | aa21c00 | 2007-12-08 20:04:36 +0000 | [diff] [blame] | 328 | /** Association request |
| 329 | * |
| 330 | * Encapsulates all the options that describe a specific assocation request |
| 331 | * or configuration of the wireless card's radio, mode, and security settings. |
| 332 | */ |
| 333 | struct assoc_request { |
| 334 | #define ASSOC_FLAG_SSID 1 |
| 335 | #define ASSOC_FLAG_CHANNEL 2 |
| 336 | #define ASSOC_FLAG_BAND 3 |
| 337 | #define ASSOC_FLAG_MODE 4 |
| 338 | #define ASSOC_FLAG_BSSID 5 |
| 339 | #define ASSOC_FLAG_WEP_KEYS 6 |
| 340 | #define ASSOC_FLAG_WEP_TX_KEYIDX 7 |
| 341 | #define ASSOC_FLAG_WPA_MCAST_KEY 8 |
| 342 | #define ASSOC_FLAG_WPA_UCAST_KEY 9 |
| 343 | #define ASSOC_FLAG_SECINFO 10 |
| 344 | #define ASSOC_FLAG_WPA_IE 11 |
| 345 | unsigned long flags; |
| 346 | |
| 347 | u8 ssid[IW_ESSID_MAX_SIZE + 1]; |
| 348 | u8 ssid_len; |
| 349 | u8 channel; |
| 350 | u8 band; |
| 351 | u8 mode; |
Ihar Hrachyshka | 5a6e043 | 2008-01-25 14:15:00 +0100 | [diff] [blame] | 352 | u8 bssid[ETH_ALEN] __attribute__ ((aligned (2))); |
David Woodhouse | aa21c00 | 2007-12-08 20:04:36 +0000 | [diff] [blame] | 353 | |
| 354 | /** WEP keys */ |
| 355 | struct enc_key wep_keys[4]; |
| 356 | u16 wep_tx_keyidx; |
| 357 | |
| 358 | /** WPA keys */ |
| 359 | struct enc_key wpa_mcast_key; |
| 360 | struct enc_key wpa_unicast_key; |
| 361 | |
| 362 | struct lbs_802_11_security secinfo; |
| 363 | |
| 364 | /** WPA Information Elements*/ |
| 365 | u8 wpa_ie[MAX_WPA_IE_LEN]; |
| 366 | u8 wpa_ie_len; |
| 367 | |
| 368 | /* BSS to associate with for infrastructure of Ad-Hoc join */ |
| 369 | struct bss_descriptor bss; |
| 370 | }; |
| 371 | |
Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 372 | #endif |