diff options
Diffstat (limited to 'drivers/net/wireless/libertas/dev.h')
-rw-r--r-- | drivers/net/wireless/libertas/dev.h | 432 |
1 files changed, 114 insertions, 318 deletions
diff --git a/drivers/net/wireless/libertas/dev.h b/drivers/net/wireless/libertas/dev.h index d3b69a4b4b5e..6875e1498bd5 100644 --- a/drivers/net/wireless/libertas/dev.h +++ b/drivers/net/wireless/libertas/dev.h | |||
@@ -6,75 +6,11 @@ | |||
6 | #ifndef _LBS_DEV_H_ | 6 | #ifndef _LBS_DEV_H_ |
7 | #define _LBS_DEV_H_ | 7 | #define _LBS_DEV_H_ |
8 | 8 | ||
9 | #include <linux/netdevice.h> | 9 | #include "mesh.h" |
10 | #include <linux/wireless.h> | 10 | #include "scan.h" |
11 | #include <linux/ethtool.h> | 11 | #include "assoc.h" |
12 | #include <linux/debugfs.h> | ||
13 | 12 | ||
14 | #include "defs.h" | 13 | #include <linux/kfifo.h> |
15 | #include "hostcmd.h" | ||
16 | |||
17 | extern const struct ethtool_ops lbs_ethtool_ops; | ||
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 | |||
55 | struct lbs_802_11_security { | ||
56 | u8 WPAenabled; | ||
57 | u8 WPA2enabled; | ||
58 | u8 wep_enabled; | ||
59 | u8 auth_mode; | ||
60 | u32 key_mgmt; | ||
61 | }; | ||
62 | |||
63 | /** Current Basic Service Set State Structure */ | ||
64 | struct current_bss_params { | ||
65 | /** bssid */ | ||
66 | u8 bssid[ETH_ALEN]; | ||
67 | /** ssid */ | ||
68 | u8 ssid[IW_ESSID_MAX_SIZE + 1]; | ||
69 | u8 ssid_len; | ||
70 | |||
71 | /** band */ | ||
72 | u8 band; | ||
73 | /** channel */ | ||
74 | u8 channel; | ||
75 | /** zero-terminated array of supported data rates */ | ||
76 | u8 rates[MAX_RATES + 1]; | ||
77 | }; | ||
78 | 14 | ||
79 | /** sleep_params */ | 15 | /** sleep_params */ |
80 | struct sleep_params { | 16 | struct sleep_params { |
@@ -86,205 +22,173 @@ struct sleep_params { | |||
86 | uint16_t sp_reserved; | 22 | uint16_t sp_reserved; |
87 | }; | 23 | }; |
88 | 24 | ||
89 | /* Mesh statistics */ | ||
90 | struct lbs_mesh_stats { | ||
91 | u32 fwd_bcast_cnt; /* Fwd: Broadcast counter */ | ||
92 | u32 fwd_unicast_cnt; /* Fwd: Unicast counter */ | ||
93 | u32 fwd_drop_ttl; /* Fwd: TTL zero */ | ||
94 | u32 fwd_drop_rbt; /* Fwd: Recently Broadcasted */ | ||
95 | u32 fwd_drop_noroute; /* Fwd: No route to Destination */ | ||
96 | u32 fwd_drop_nobuf; /* Fwd: Run out of internal buffers */ | ||
97 | u32 drop_blind; /* Rx: Dropped by blinding table */ | ||
98 | u32 tx_failed_cnt; /* Tx: Failed transmissions */ | ||
99 | }; | ||
100 | 25 | ||
101 | /** Private structure for the MV device */ | 26 | /** Private structure for the MV device */ |
102 | struct lbs_private { | 27 | struct lbs_private { |
103 | int mesh_open; | ||
104 | int mesh_fw_ver; | ||
105 | int infra_open; | ||
106 | int mesh_autostart_enabled; | ||
107 | |||
108 | char name[DEV_NAME_LEN]; | ||
109 | 28 | ||
110 | void *card; | 29 | /* Basic networking */ |
111 | struct net_device *dev; | 30 | struct net_device *dev; |
31 | u32 connect_status; | ||
32 | int infra_open; | ||
33 | struct work_struct mcast_work; | ||
34 | u32 nr_of_multicastmacaddr; | ||
35 | u8 multicastlist[MRVDRV_MAX_MULTICAST_LIST_SIZE][ETH_ALEN]; | ||
36 | |||
37 | /* CFG80211 */ | ||
38 | struct wireless_dev *wdev; | ||
39 | bool wiphy_registered; | ||
112 | 40 | ||
41 | /* Mesh */ | ||
113 | struct net_device *mesh_dev; /* Virtual device */ | 42 | struct net_device *mesh_dev; /* Virtual device */ |
43 | #ifdef CONFIG_LIBERTAS_MESH | ||
44 | u32 mesh_connect_status; | ||
45 | struct lbs_mesh_stats mstats; | ||
46 | int mesh_open; | ||
47 | uint16_t mesh_tlv; | ||
48 | u8 mesh_ssid[IEEE80211_MAX_SSID_LEN + 1]; | ||
49 | u8 mesh_ssid_len; | ||
50 | #endif | ||
51 | |||
52 | /* Monitor mode */ | ||
114 | struct net_device *rtap_net_dev; | 53 | struct net_device *rtap_net_dev; |
54 | u32 monitormode; | ||
115 | 55 | ||
116 | struct iw_statistics wstats; | 56 | /* Debugfs */ |
117 | struct lbs_mesh_stats mstats; | ||
118 | struct dentry *debugfs_dir; | 57 | struct dentry *debugfs_dir; |
119 | struct dentry *debugfs_debug; | 58 | struct dentry *debugfs_debug; |
120 | struct dentry *debugfs_files[6]; | 59 | struct dentry *debugfs_files[6]; |
121 | |||
122 | struct dentry *events_dir; | 60 | struct dentry *events_dir; |
123 | struct dentry *debugfs_events_files[6]; | 61 | struct dentry *debugfs_events_files[6]; |
124 | |||
125 | struct dentry *regs_dir; | 62 | struct dentry *regs_dir; |
126 | struct dentry *debugfs_regs_files[6]; | 63 | struct dentry *debugfs_regs_files[6]; |
127 | 64 | ||
65 | /* Hardware debugging */ | ||
128 | u32 mac_offset; | 66 | u32 mac_offset; |
129 | u32 bbp_offset; | 67 | u32 bbp_offset; |
130 | u32 rf_offset; | 68 | u32 rf_offset; |
69 | struct lbs_offset_value offsetvalue; | ||
131 | 70 | ||
132 | /* Download sent: | 71 | /* Power management */ |
133 | bit0 1/0=data_sent/data_tx_done, | 72 | u16 psmode; |
134 | bit1 1/0=cmd_sent/cmd_tx_done, | 73 | u32 psstate; |
135 | all other bits reserved 0 */ | 74 | u8 needtowakeup; |
136 | u8 dnld_sent; | ||
137 | |||
138 | /** thread to service interrupts */ | ||
139 | struct task_struct *main_thread; | ||
140 | wait_queue_head_t waitq; | ||
141 | struct workqueue_struct *work_thread; | ||
142 | 75 | ||
143 | struct work_struct mcast_work; | 76 | /* Deep sleep */ |
77 | int is_deep_sleep; | ||
78 | int is_auto_deep_sleep_enabled; | ||
79 | int wakeup_dev_required; | ||
80 | int is_activity_detected; | ||
81 | int auto_deep_sleep_timeout; /* in ms */ | ||
82 | wait_queue_head_t ds_awake_q; | ||
83 | struct timer_list auto_deepsleep_timer; | ||
144 | 84 | ||
145 | /** Scanning */ | 85 | /* Hardware access */ |
146 | struct delayed_work scan_work; | 86 | void *card; |
147 | struct delayed_work assoc_work; | 87 | u8 fw_ready; |
148 | struct work_struct sync_channel; | 88 | u8 surpriseremoved; |
149 | /* remember which channel was scanned last, != 0 if currently scanning */ | ||
150 | int scan_channel; | ||
151 | u8 scan_ssid[IW_ESSID_MAX_SIZE + 1]; | ||
152 | u8 scan_ssid_len; | ||
153 | |||
154 | /** Hardware access */ | ||
155 | int (*hw_host_to_card) (struct lbs_private *priv, u8 type, u8 *payload, u16 nb); | 89 | int (*hw_host_to_card) (struct lbs_private *priv, u8 type, u8 *payload, u16 nb); |
156 | void (*reset_card) (struct lbs_private *priv); | 90 | void (*reset_card) (struct lbs_private *priv); |
91 | int (*enter_deep_sleep) (struct lbs_private *priv); | ||
92 | int (*exit_deep_sleep) (struct lbs_private *priv); | ||
93 | int (*reset_deep_sleep_wakeup) (struct lbs_private *priv); | ||
157 | 94 | ||
158 | /* Wake On LAN */ | 95 | /* Adapter info (from EEPROM) */ |
159 | uint32_t wol_criteria; | ||
160 | uint8_t wol_gpio; | ||
161 | uint8_t wol_gap; | ||
162 | |||
163 | /** Wlan adapter data structure*/ | ||
164 | /** STATUS variables */ | ||
165 | u32 fwrelease; | 96 | u32 fwrelease; |
166 | u32 fwcapinfo; | 97 | u32 fwcapinfo; |
98 | u16 regioncode; | ||
99 | u8 current_addr[ETH_ALEN]; | ||
167 | 100 | ||
168 | struct mutex lock; | 101 | /* Command download */ |
169 | 102 | u8 dnld_sent; | |
170 | /* TX packet ready to be sent... */ | 103 | /* bit0 1/0=data_sent/data_tx_done, |
171 | int tx_pending_len; /* -1 while building packet */ | 104 | bit1 1/0=cmd_sent/cmd_tx_done, |
172 | 105 | all other bits reserved 0 */ | |
173 | u8 tx_pending_buf[LBS_UPLD_SIZE]; | ||
174 | /* protected by hard_start_xmit serialization */ | ||
175 | |||
176 | /** command-related variables */ | ||
177 | u16 seqnum; | 106 | u16 seqnum; |
178 | |||
179 | struct cmd_ctrl_node *cmd_array; | 107 | struct cmd_ctrl_node *cmd_array; |
180 | /** Current command */ | ||
181 | struct cmd_ctrl_node *cur_cmd; | 108 | struct cmd_ctrl_node *cur_cmd; |
182 | int cur_cmd_retcode; | 109 | struct list_head cmdfreeq; /* free command buffers */ |
183 | /** command Queues */ | 110 | struct list_head cmdpendingq; /* pending command buffers */ |
184 | /** Free command buffers */ | ||
185 | struct list_head cmdfreeq; | ||
186 | /** Pending command buffers */ | ||
187 | struct list_head cmdpendingq; | ||
188 | |||
189 | wait_queue_head_t cmd_pending; | 111 | wait_queue_head_t cmd_pending; |
112 | struct timer_list command_timer; | ||
113 | int cmd_timed_out; | ||
190 | 114 | ||
191 | /* Command responses sent from the hardware to the driver */ | 115 | /* Command responses sent from the hardware to the driver */ |
116 | int cur_cmd_retcode; | ||
192 | u8 resp_idx; | 117 | u8 resp_idx; |
193 | u8 resp_buf[2][LBS_UPLD_SIZE]; | 118 | u8 resp_buf[2][LBS_UPLD_SIZE]; |
194 | u32 resp_len[2]; | 119 | u32 resp_len[2]; |
195 | 120 | ||
196 | /* Events sent from hardware to driver */ | 121 | /* Events sent from hardware to driver */ |
197 | struct kfifo *event_fifo; | 122 | struct kfifo event_fifo; |
198 | |||
199 | /* nickname */ | ||
200 | u8 nodename[16]; | ||
201 | |||
202 | /** spin locks */ | ||
203 | spinlock_t driver_lock; | ||
204 | |||
205 | /** Timers */ | ||
206 | struct timer_list command_timer; | ||
207 | int nr_retries; | ||
208 | int cmd_timed_out; | ||
209 | |||
210 | /** current ssid/bssid related parameters*/ | ||
211 | struct current_bss_params curbssparams; | ||
212 | 123 | ||
213 | uint16_t mesh_tlv; | 124 | /** thread to service interrupts */ |
214 | u8 mesh_ssid[IW_ESSID_MAX_SIZE + 1]; | 125 | struct task_struct *main_thread; |
215 | u8 mesh_ssid_len; | 126 | wait_queue_head_t waitq; |
216 | 127 | struct workqueue_struct *work_thread; | |
217 | /* IW_MODE_* */ | ||
218 | u8 mode; | ||
219 | |||
220 | /* Scan results list */ | ||
221 | struct list_head network_list; | ||
222 | struct list_head network_free_list; | ||
223 | struct bss_descriptor *networks; | ||
224 | |||
225 | u16 beacon_period; | ||
226 | u8 beacon_enable; | ||
227 | u8 adhoccreate; | ||
228 | |||
229 | /** capability Info used in Association, start, join */ | ||
230 | u16 capability; | ||
231 | |||
232 | /** MAC address information */ | ||
233 | u8 current_addr[ETH_ALEN]; | ||
234 | u8 multicastlist[MRVDRV_MAX_MULTICAST_LIST_SIZE][ETH_ALEN]; | ||
235 | u32 nr_of_multicastmacaddr; | ||
236 | 128 | ||
237 | /** 802.11 statistics */ | 129 | /** Encryption stuff */ |
238 | // struct cmd_DS_802_11_GET_STAT wlan802_11Stat; | 130 | struct lbs_802_11_security secinfo; |
131 | struct enc_key wpa_mcast_key; | ||
132 | struct enc_key wpa_unicast_key; | ||
133 | u8 wpa_ie[MAX_WPA_IE_LEN]; | ||
134 | u8 wpa_ie_len; | ||
135 | u16 wep_tx_keyidx; | ||
136 | struct enc_key wep_keys[4]; | ||
239 | 137 | ||
240 | uint16_t enablehwauto; | 138 | /* Wake On LAN */ |
241 | uint16_t ratebitmap; | 139 | uint32_t wol_criteria; |
140 | uint8_t wol_gpio; | ||
141 | uint8_t wol_gap; | ||
242 | 142 | ||
143 | /* Transmitting */ | ||
144 | int tx_pending_len; /* -1 while building packet */ | ||
145 | u8 tx_pending_buf[LBS_UPLD_SIZE]; | ||
146 | /* protected by hard_start_xmit serialization */ | ||
243 | u8 txretrycount; | 147 | u8 txretrycount; |
244 | |||
245 | /** Tx-related variables (for single packet tx) */ | ||
246 | struct sk_buff *currenttxskb; | 148 | struct sk_buff *currenttxskb; |
247 | 149 | ||
248 | /** NIC Operation characteristics */ | 150 | /* Locks */ |
151 | struct mutex lock; | ||
152 | spinlock_t driver_lock; | ||
153 | |||
154 | /* NIC/link operation characteristics */ | ||
249 | u16 mac_control; | 155 | u16 mac_control; |
250 | u32 connect_status; | 156 | u8 radio_on; |
251 | u32 mesh_connect_status; | 157 | u8 channel; |
252 | u16 regioncode; | ||
253 | s16 txpower_cur; | 158 | s16 txpower_cur; |
254 | s16 txpower_min; | 159 | s16 txpower_min; |
255 | s16 txpower_max; | 160 | s16 txpower_max; |
256 | 161 | ||
257 | /** POWER MANAGEMENT AND PnP SUPPORT */ | 162 | /** Scanning */ |
258 | u8 surpriseremoved; | 163 | struct delayed_work scan_work; |
259 | 164 | int scan_channel; | |
260 | u16 psmode; /* Wlan802_11PowermodeCAM=disable | 165 | /* remember which channel was scanned last, != 0 if currently scanning */ |
261 | Wlan802_11PowermodeMAX_PSP=enable */ | 166 | u8 scan_ssid[IEEE80211_MAX_SSID_LEN + 1]; |
262 | u32 psstate; | 167 | u8 scan_ssid_len; |
263 | u8 needtowakeup; | ||
264 | 168 | ||
169 | /* Associating */ | ||
170 | struct delayed_work assoc_work; | ||
171 | struct current_bss_params curbssparams; | ||
172 | u8 mode; | ||
173 | struct list_head network_list; | ||
174 | struct list_head network_free_list; | ||
175 | struct bss_descriptor *networks; | ||
265 | struct assoc_request * pending_assoc_req; | 176 | struct assoc_request * pending_assoc_req; |
266 | struct assoc_request * in_progress_assoc_req; | 177 | struct assoc_request * in_progress_assoc_req; |
178 | uint16_t enablehwauto; | ||
267 | 179 | ||
268 | /** Encryption parameter */ | 180 | /* ADHOC */ |
269 | struct lbs_802_11_security secinfo; | 181 | u16 beacon_period; |
270 | 182 | u8 beacon_enable; | |
271 | /** WEP keys */ | 183 | u8 adhoccreate; |
272 | struct enc_key wep_keys[4]; | ||
273 | u16 wep_tx_keyidx; | ||
274 | |||
275 | /** WPA keys */ | ||
276 | struct enc_key wpa_mcast_key; | ||
277 | struct enc_key wpa_unicast_key; | ||
278 | |||
279 | /* | ||
280 | * In theory, the IE is limited to the IE length, 255, | ||
281 | * but in practice 64 bytes are enough. | ||
282 | */ | ||
283 | #define MAX_WPA_IE_LEN 64 | ||
284 | 184 | ||
285 | /** WPA Information Elements*/ | 185 | /* WEXT */ |
286 | u8 wpa_ie[MAX_WPA_IE_LEN]; | 186 | char name[DEV_NAME_LEN]; |
287 | u8 wpa_ie_len; | 187 | u8 nodename[16]; |
188 | struct iw_statistics wstats; | ||
189 | u8 cur_rate; | ||
190 | #define MAX_REGION_CHANNEL_NUM 2 | ||
191 | struct region_channel region_channel[MAX_REGION_CHANNEL_NUM]; | ||
288 | 192 | ||
289 | /** Requested Signal Strength*/ | 193 | /** Requested Signal Strength*/ |
290 | u16 SNR[MAX_TYPE_B][MAX_TYPE_AVG]; | 194 | u16 SNR[MAX_TYPE_B][MAX_TYPE_AVG]; |
@@ -294,116 +198,8 @@ struct lbs_private { | |||
294 | u8 rawNF[DEFAULT_DATA_AVG_FACTOR]; | 198 | u8 rawNF[DEFAULT_DATA_AVG_FACTOR]; |
295 | u16 nextSNRNF; | 199 | u16 nextSNRNF; |
296 | u16 numSNRNF; | 200 | u16 numSNRNF; |
297 | |||
298 | u8 radio_on; | ||
299 | |||
300 | /** data rate stuff */ | ||
301 | u8 cur_rate; | ||
302 | |||
303 | /** RF calibration data */ | ||
304 | |||
305 | #define MAX_REGION_CHANNEL_NUM 2 | ||
306 | /** region channel data */ | ||
307 | struct region_channel region_channel[MAX_REGION_CHANNEL_NUM]; | ||
308 | |||
309 | struct region_channel universal_channel[MAX_REGION_CHANNEL_NUM]; | ||
310 | |||
311 | /** 11D and Domain Regulatory Data */ | ||
312 | struct lbs_802_11d_domain_reg domainreg; | ||
313 | struct parsed_region_chan_11d parsed_region_chan; | ||
314 | |||
315 | /** FSM variable for 11d support */ | ||
316 | u32 enable11d; | ||
317 | |||
318 | /** MISCELLANEOUS */ | ||
319 | struct lbs_offset_value offsetvalue; | ||
320 | |||
321 | u32 monitormode; | ||
322 | u8 fw_ready; | ||
323 | }; | 201 | }; |
324 | 202 | ||
325 | extern struct cmd_confirm_sleep confirm_sleep; | 203 | extern struct cmd_confirm_sleep confirm_sleep; |
326 | 204 | ||
327 | /** | ||
328 | * @brief Structure used to store information for each beacon/probe response | ||
329 | */ | ||
330 | struct bss_descriptor { | ||
331 | u8 bssid[ETH_ALEN]; | ||
332 | |||
333 | u8 ssid[IW_ESSID_MAX_SIZE + 1]; | ||
334 | u8 ssid_len; | ||
335 | |||
336 | u16 capability; | ||
337 | u32 rssi; | ||
338 | u32 channel; | ||
339 | u16 beaconperiod; | ||
340 | __le16 atimwindow; | ||
341 | |||
342 | /* IW_MODE_AUTO, IW_MODE_ADHOC, IW_MODE_INFRA */ | ||
343 | u8 mode; | ||
344 | |||
345 | /* zero-terminated array of supported data rates */ | ||
346 | u8 rates[MAX_RATES + 1]; | ||
347 | |||
348 | unsigned long last_scanned; | ||
349 | |||
350 | union ieee_phy_param_set phy; | ||
351 | union ieee_ss_param_set ss; | ||
352 | |||
353 | struct ieee_ie_country_info_full_set countryinfo; | ||
354 | |||
355 | u8 wpa_ie[MAX_WPA_IE_LEN]; | ||
356 | size_t wpa_ie_len; | ||
357 | u8 rsn_ie[MAX_WPA_IE_LEN]; | ||
358 | size_t rsn_ie_len; | ||
359 | |||
360 | u8 mesh; | ||
361 | |||
362 | struct list_head list; | ||
363 | }; | ||
364 | |||
365 | /** Association request | ||
366 | * | ||
367 | * Encapsulates all the options that describe a specific assocation request | ||
368 | * or configuration of the wireless card's radio, mode, and security settings. | ||
369 | */ | ||
370 | struct assoc_request { | ||
371 | #define ASSOC_FLAG_SSID 1 | ||
372 | #define ASSOC_FLAG_CHANNEL 2 | ||
373 | #define ASSOC_FLAG_BAND 3 | ||
374 | #define ASSOC_FLAG_MODE 4 | ||
375 | #define ASSOC_FLAG_BSSID 5 | ||
376 | #define ASSOC_FLAG_WEP_KEYS 6 | ||
377 | #define ASSOC_FLAG_WEP_TX_KEYIDX 7 | ||
378 | #define ASSOC_FLAG_WPA_MCAST_KEY 8 | ||
379 | #define ASSOC_FLAG_WPA_UCAST_KEY 9 | ||
380 | #define ASSOC_FLAG_SECINFO 10 | ||
381 | #define ASSOC_FLAG_WPA_IE 11 | ||
382 | unsigned long flags; | ||
383 | |||
384 | u8 ssid[IW_ESSID_MAX_SIZE + 1]; | ||
385 | u8 ssid_len; | ||
386 | u8 channel; | ||
387 | u8 band; | ||
388 | u8 mode; | ||
389 | u8 bssid[ETH_ALEN] __attribute__ ((aligned (2))); | ||
390 | |||
391 | /** WEP keys */ | ||
392 | struct enc_key wep_keys[4]; | ||
393 | u16 wep_tx_keyidx; | ||
394 | |||
395 | /** WPA keys */ | ||
396 | struct enc_key wpa_mcast_key; | ||
397 | struct enc_key wpa_unicast_key; | ||
398 | |||
399 | struct lbs_802_11_security secinfo; | ||
400 | |||
401 | /** WPA Information Elements*/ | ||
402 | u8 wpa_ie[MAX_WPA_IE_LEN]; | ||
403 | u8 wpa_ie_len; | ||
404 | |||
405 | /* BSS to associate with for infrastructure of Ad-Hoc join */ | ||
406 | struct bss_descriptor bss; | ||
407 | }; | ||
408 | |||
409 | #endif | 205 | #endif |