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 | |
Holger Schurig | 8816edc | 2008-01-28 17:28:05 +0100 | [diff] [blame] | 146 | /** Scanning */ |
Dan Williams | 2afc0c5 | 2007-08-02 13:19:04 -0400 | [diff] [blame] | 147 | struct delayed_work scan_work; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 148 | struct delayed_work assoc_work; |
Luis Carlos Cobo Rus | b8bedef | 2007-05-30 12:14:34 -0400 | [diff] [blame] | 149 | struct work_struct sync_channel; |
Holger Schurig | 8816edc | 2008-01-28 17:28:05 +0100 | [diff] [blame] | 150 | /* remember which channel was scanned last, != 0 if currently scanning */ |
| 151 | int scan_channel; |
Holger Schurig | 52933d8 | 2008-03-05 07:05:32 +0100 | [diff] [blame] | 152 | u8 scan_ssid[IW_ESSID_MAX_SIZE + 1]; |
| 153 | u8 scan_ssid_len; |
Holger Schurig | 208fdd2 | 2007-05-25 12:17:06 -0400 | [diff] [blame] | 154 | |
| 155 | /** Hardware access */ |
Holger Schurig | 69f9032 | 2007-11-23 15:43:44 +0100 | [diff] [blame] | 156 | int (*hw_host_to_card) (struct lbs_private *priv, u8 type, u8 *payload, u16 nb); |
| 157 | int (*hw_get_int_status) (struct lbs_private *priv, u8 *); |
| 158 | int (*hw_read_event_cause) (struct lbs_private *); |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 159 | |
David Woodhouse | 506e902 | 2007-12-12 20:06:06 -0500 | [diff] [blame] | 160 | /* Wake On LAN */ |
| 161 | uint32_t wol_criteria; |
| 162 | uint8_t wol_gpio; |
| 163 | uint8_t wol_gap; |
| 164 | |
David Woodhouse | aa21c00 | 2007-12-08 20:04:36 +0000 | [diff] [blame] | 165 | /* was struct lbs_adapter from here... */ |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 166 | |
David Woodhouse | aa21c00 | 2007-12-08 20:04:36 +0000 | [diff] [blame] | 167 | /** Wlan adapter data structure*/ |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 168 | /** STATUS variables */ |
Holger Schurig | dac10a9 | 2008-01-16 15:55:22 +0100 | [diff] [blame] | 169 | u32 fwrelease; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 170 | u32 fwcapinfo; |
| 171 | /* protected with big lock */ |
| 172 | |
| 173 | struct mutex lock; |
| 174 | |
David Woodhouse | 2eb188a | 2007-12-09 23:54:27 -0500 | [diff] [blame] | 175 | /* TX packet ready to be sent... */ |
| 176 | int tx_pending_len; /* -1 while building packet */ |
| 177 | |
| 178 | u8 tx_pending_buf[LBS_UPLD_SIZE]; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 179 | /* protected by hard_start_xmit serialization */ |
| 180 | |
| 181 | /** command-related variables */ |
| 182 | u16 seqnum; |
| 183 | /* protected by big lock */ |
| 184 | |
| 185 | struct cmd_ctrl_node *cmd_array; |
| 186 | /** Current command */ |
| 187 | struct cmd_ctrl_node *cur_cmd; |
| 188 | int cur_cmd_retcode; |
| 189 | /** command Queues */ |
| 190 | /** Free command buffers */ |
| 191 | struct list_head cmdfreeq; |
| 192 | /** Pending command buffers */ |
| 193 | struct list_head cmdpendingq; |
| 194 | |
| 195 | wait_queue_head_t cmd_pending; |
David Woodhouse | aa21c00 | 2007-12-08 20:04:36 +0000 | [diff] [blame] | 196 | /* command related variables protected by priv->driver_lock */ |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 197 | |
| 198 | /** Async and Sync Event variables */ |
| 199 | u32 intcounter; |
| 200 | u32 eventcause; |
| 201 | u8 nodename[16]; /* nickname */ |
| 202 | |
| 203 | /** spin locks */ |
| 204 | spinlock_t driver_lock; |
| 205 | |
| 206 | /** Timers */ |
| 207 | struct timer_list command_timer; |
David Woodhouse | 2a34509 | 2007-12-15 19:33:43 -0500 | [diff] [blame] | 208 | int nr_retries; |
| 209 | int cmd_timed_out; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 210 | |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 211 | u8 hisregcpy; |
| 212 | |
| 213 | /** current ssid/bssid related parameters*/ |
| 214 | struct current_bss_params curbssparams; |
David Woodhouse | 020f3d0 | 2007-12-12 23:29:13 -0500 | [diff] [blame] | 215 | |
| 216 | uint16_t mesh_tlv; |
David Woodhouse | 23a397a | 2007-12-11 18:56:42 -0500 | [diff] [blame] | 217 | u8 mesh_ssid[IW_ESSID_MAX_SIZE + 1]; |
| 218 | u8 mesh_ssid_len; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 219 | |
Dan Williams | 0dc5a29 | 2007-05-10 22:58:02 -0400 | [diff] [blame] | 220 | /* IW_MODE_* */ |
| 221 | u8 mode; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 222 | |
Dan Williams | fcdb53d | 2007-05-25 16:15:56 -0400 | [diff] [blame] | 223 | /* Scan results list */ |
| 224 | struct list_head network_list; |
| 225 | struct list_head network_free_list; |
| 226 | struct bss_descriptor *networks; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 227 | |
Brajesh Dave | 96287ac | 2007-11-20 17:44:28 -0500 | [diff] [blame] | 228 | u16 beacon_period; |
| 229 | u8 beacon_enable; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 230 | u8 adhoccreate; |
| 231 | |
| 232 | /** capability Info used in Association, start, join */ |
Dan Williams | 0c9ca69 | 2007-08-02 10:43:44 -0400 | [diff] [blame] | 233 | u16 capability; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 234 | |
| 235 | /** MAC address information */ |
| 236 | u8 current_addr[ETH_ALEN]; |
| 237 | u8 multicastlist[MRVDRV_MAX_MULTICAST_LIST_SIZE][ETH_ALEN]; |
| 238 | u32 nr_of_multicastmacaddr; |
| 239 | |
| 240 | /** 802.11 statistics */ |
| 241 | // struct cmd_DS_802_11_GET_STAT wlan802_11Stat; |
| 242 | |
| 243 | u16 enablehwauto; |
| 244 | u16 ratebitmap; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 245 | |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 246 | u32 fragthsd; |
| 247 | u32 rtsthsd; |
| 248 | |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 249 | u8 txretrycount; |
| 250 | |
| 251 | /** Tx-related variables (for single packet tx) */ |
| 252 | struct sk_buff *currenttxskb; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 253 | |
| 254 | /** NIC Operation characteristics */ |
Holger Schurig | d9e9778 | 2008-03-12 16:06:43 +0100 | [diff] [blame] | 255 | u16 mac_control; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 256 | u32 connect_status; |
Brajesh Dave | 01d77d8 | 2007-11-20 17:44:14 -0500 | [diff] [blame] | 257 | u32 mesh_connect_status; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 258 | u16 regioncode; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 259 | u16 txpowerlevel; |
| 260 | |
| 261 | /** POWER MANAGEMENT AND PnP SUPPORT */ |
| 262 | u8 surpriseremoved; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 263 | |
| 264 | u16 psmode; /* Wlan802_11PowermodeCAM=disable |
| 265 | Wlan802_11PowermodeMAX_PSP=enable */ |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 266 | u32 psstate; |
David Woodhouse | b2c57ee | 2007-12-17 14:41:13 -0500 | [diff] [blame] | 267 | char ps_supported; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 268 | u8 needtowakeup; |
| 269 | |
Dan Williams | e76850d | 2007-05-25 17:09:41 -0400 | [diff] [blame] | 270 | struct assoc_request * pending_assoc_req; |
| 271 | struct assoc_request * in_progress_assoc_req; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 272 | |
| 273 | /** Encryption parameter */ |
Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 274 | struct lbs_802_11_security secinfo; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 275 | |
| 276 | /** WEP keys */ |
Dan Williams | 1443b65 | 2007-08-02 10:45:55 -0400 | [diff] [blame] | 277 | struct enc_key wep_keys[4]; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 278 | u16 wep_tx_keyidx; |
| 279 | |
| 280 | /** WPA keys */ |
Dan Williams | 1443b65 | 2007-08-02 10:45:55 -0400 | [diff] [blame] | 281 | struct enc_key wpa_mcast_key; |
| 282 | struct enc_key wpa_unicast_key; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 283 | |
| 284 | /** WPA Information Elements*/ |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 285 | u8 wpa_ie[MAX_WPA_IE_LEN]; |
| 286 | u8 wpa_ie_len; |
| 287 | |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 288 | /** Requested Signal Strength*/ |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 289 | u16 SNR[MAX_TYPE_B][MAX_TYPE_AVG]; |
| 290 | u16 NF[MAX_TYPE_B][MAX_TYPE_AVG]; |
| 291 | u8 RSSI[MAX_TYPE_B][MAX_TYPE_AVG]; |
| 292 | u8 rawSNR[DEFAULT_DATA_AVG_FACTOR]; |
| 293 | u8 rawNF[DEFAULT_DATA_AVG_FACTOR]; |
| 294 | u16 nextSNRNF; |
| 295 | u16 numSNRNF; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 296 | |
| 297 | u8 radioon; |
| 298 | u32 preamble; |
| 299 | |
Dan Williams | 8c51276 | 2007-08-02 11:40:45 -0400 | [diff] [blame] | 300 | /** data rate stuff */ |
| 301 | u8 cur_rate; |
| 302 | u8 auto_rate; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 303 | |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 304 | /** RF calibration data */ |
| 305 | |
| 306 | #define MAX_REGION_CHANNEL_NUM 2 |
| 307 | /** region channel data */ |
| 308 | struct region_channel region_channel[MAX_REGION_CHANNEL_NUM]; |
| 309 | |
| 310 | struct region_channel universal_channel[MAX_REGION_CHANNEL_NUM]; |
| 311 | |
| 312 | /** 11D and Domain Regulatory Data */ |
Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 313 | struct lbs_802_11d_domain_reg domainreg; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 314 | struct parsed_region_chan_11d parsed_region_chan; |
| 315 | |
| 316 | /** FSM variable for 11d support */ |
| 317 | u32 enable11d; |
| 318 | |
| 319 | /** MISCELLANEOUS */ |
Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 320 | struct lbs_offset_value offsetvalue; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 321 | |
Luis Carlos Cobo | 965f8bb | 2007-08-02 13:16:55 -0400 | [diff] [blame] | 322 | u32 monitormode; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 323 | u8 fw_ready; |
Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 324 | }; |
| 325 | |
Holger Schurig | f539f2e | 2008-03-26 13:22:11 +0100 | [diff] [blame^] | 326 | extern struct cmd_confirm_sleep confirm_sleep; |
| 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 |