| @@ -1,15 +1,15 @@ | | | @@ -1,15 +1,15 @@ |
1 | /* $NetBSD: if_wpireg.h,v 1.10 2014/06/30 21:17:18 jakllsch Exp $ */ | | 1 | /* $NetBSD: if_wpireg.h,v 1.11 2014/06/30 21:33:40 jakllsch Exp $ */ |
2 | /* $OpenBSD: if_wpireg.h,v 1.16 2007/07/10 18:29:38 damien Exp $ */ | | 2 | /* $OpenBSD: if_wpireg.h,v 1.17 2007/07/24 16:07:47 damien Exp $ */ |
3 | | | 3 | |
4 | /*- | | 4 | /*- |
5 | * Copyright (c) 2006, 2007 | | 5 | * Copyright (c) 2006, 2007 |
6 | * Damien Bergamini <damien.bergamini@free.fr> | | 6 | * Damien Bergamini <damien.bergamini@free.fr> |
7 | * | | 7 | * |
8 | * Permission to use, copy, modify, and distribute this software for any | | 8 | * Permission to use, copy, modify, and distribute this software for any |
9 | * purpose with or without fee is hereby granted, provided that the above | | 9 | * purpose with or without fee is hereby granted, provided that the above |
10 | * copyright notice and this permission notice appear in all copies. | | 10 | * copyright notice and this permission notice appear in all copies. |
11 | * | | 11 | * |
12 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | | 12 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
13 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | | 13 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
14 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | | 14 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
15 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | | 15 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
| @@ -192,26 +192,27 @@ struct wpi_tx_desc { | | | @@ -192,26 +192,27 @@ struct wpi_tx_desc { |
192 | struct wpi_tx_stat { | | 192 | struct wpi_tx_stat { |
193 | uint8_t nrts; | | 193 | uint8_t nrts; |
194 | uint8_t ntries; | | 194 | uint8_t ntries; |
195 | uint8_t nkill; | | 195 | uint8_t nkill; |
196 | uint8_t rate; | | 196 | uint8_t rate; |
197 | uint32_t duration; | | 197 | uint32_t duration; |
198 | uint32_t status; | | 198 | uint32_t status; |
199 | } __packed; | | 199 | } __packed; |
200 | | | 200 | |
201 | struct wpi_rx_desc { | | 201 | struct wpi_rx_desc { |
202 | uint32_t len; | | 202 | uint32_t len; |
203 | uint8_t type; | | 203 | uint8_t type; |
204 | #define WPI_UC_READY 1 | | 204 | #define WPI_UC_READY 1 |
| | | 205 | #define WPI_ADD_NODE_DONE 24 |
205 | #define WPI_RX_DONE 27 | | 206 | #define WPI_RX_DONE 27 |
206 | #define WPI_TX_DONE 28 | | 207 | #define WPI_TX_DONE 28 |
207 | #define WPI_START_SCAN 130 | | 208 | #define WPI_START_SCAN 130 |
208 | #define WPI_STOP_SCAN 132 | | 209 | #define WPI_STOP_SCAN 132 |
209 | #define WPI_STATE_CHANGED 161 | | 210 | #define WPI_STATE_CHANGED 161 |
210 | | | 211 | |
211 | uint8_t flags; | | 212 | uint8_t flags; |
212 | uint8_t idx; | | 213 | uint8_t idx; |
213 | uint8_t qid; | | 214 | uint8_t qid; |
214 | } __packed; | | 215 | } __packed; |
215 | | | 216 | |
216 | struct wpi_rx_stat { | | 217 | struct wpi_rx_stat { |
217 | uint8_t len; | | 218 | uint8_t len; |
| @@ -331,45 +332,47 @@ struct wpi_wme_setup { | | | @@ -331,45 +332,47 @@ struct wpi_wme_setup { |
331 | /* structure for command WPI_CMD_TSF */ | | 332 | /* structure for command WPI_CMD_TSF */ |
332 | struct wpi_cmd_tsf { | | 333 | struct wpi_cmd_tsf { |
333 | uint64_t tstamp; | | 334 | uint64_t tstamp; |
334 | uint16_t bintval; | | 335 | uint16_t bintval; |
335 | uint16_t atim; | | 336 | uint16_t atim; |
336 | uint32_t binitval; | | 337 | uint32_t binitval; |
337 | uint16_t lintval; | | 338 | uint16_t lintval; |
338 | uint16_t reserved; | | 339 | uint16_t reserved; |
339 | } __packed; | | 340 | } __packed; |
340 | | | 341 | |
341 | /* structure for WPI_CMD_ADD_NODE */ | | 342 | /* structure for WPI_CMD_ADD_NODE */ |
342 | struct wpi_node_info { | | 343 | struct wpi_node_info { |
343 | uint8_t control; | | 344 | uint8_t control; |
344 | #define WPI_NODE_UPDATE (1 << 0) | | 345 | #define WPI_NODE_UPDATE (1 << 0) |
345 | | | 346 | |
346 | uint8_t reserved1[3]; | | 347 | uint8_t reserved1[3]; |
347 | uint8_t bssid[IEEE80211_ADDR_LEN]; | | 348 | uint8_t bssid[IEEE80211_ADDR_LEN]; |
348 | uint16_t reserved2; | | 349 | uint16_t reserved2; |
349 | uint8_t id; | | 350 | uint8_t id; |
350 | #define WPI_ID_BSS 0 | | 351 | #define WPI_ID_BSS 0 |
351 | #define WPI_ID_BROADCAST 24 | | 352 | #define WPI_ID_BROADCAST 24 |
352 | | | 353 | |
353 | uint8_t flags; | | 354 | uint8_t flags; |
| | | 355 | #define WPI_FLAG_SET_KEY (1 << 0) |
| | | 356 | |
354 | uint16_t reserved3; | | 357 | uint16_t reserved3; |
355 | uint16_t key_flags; | | 358 | uint16_t security; |
356 | uint8_t tkip; | | 359 | uint8_t tkip; |
357 | uint8_t reserved4; | | 360 | uint8_t reserved4; |
358 | uint16_t ttak[5]; | | 361 | uint16_t ttak[5]; |
359 | uint16_t reserved5; | | 362 | uint16_t reserved5; |
360 | uint8_t key[IEEE80211_KEYBUF_SIZE]; | | 363 | uint8_t key[IEEE80211_KEYBUF_SIZE]; |
361 | uint32_t action; | | 364 | uint32_t action; |
362 | #define WPI_ACTION_SET_RATE 4 | | 365 | #define WPI_ACTION_SET_RATE (1 << 2) |
363 | | | 366 | |
364 | uint32_t mask; | | 367 | uint32_t mask; |
365 | uint16_t tid; | | 368 | uint16_t tid; |
366 | uint8_t rate; | | 369 | uint8_t rate; |
367 | uint8_t antenna; | | 370 | uint8_t antenna; |
368 | #define WPI_ANTENNA_A (1 << 6) | | 371 | #define WPI_ANTENNA_A (1 << 6) |
369 | #define WPI_ANTENNA_B (1 << 7) | | 372 | #define WPI_ANTENNA_B (1 << 7) |
370 | #define WPI_ANTENNA_BOTH (WPI_ANTENNA_A | WPI_ANTENNA_B) | | 373 | #define WPI_ANTENNA_BOTH (WPI_ANTENNA_A | WPI_ANTENNA_B) |
371 | | | 374 | |
372 | uint8_t add_imm; | | 375 | uint8_t add_imm; |
373 | uint8_t del_imm; | | 376 | uint8_t del_imm; |
374 | uint16_t add_imm_start; | | 377 | uint16_t add_imm_start; |
375 | } __packed; | | 378 | } __packed; |
| @@ -381,26 +384,31 @@ struct wpi_cmd_data { | | | @@ -381,26 +384,31 @@ struct wpi_cmd_data { |
381 | uint32_t flags; | | 384 | uint32_t flags; |
382 | #define WPI_TX_NEED_RTS (1 << 1) | | 385 | #define WPI_TX_NEED_RTS (1 << 1) |
383 | #define WPI_TX_NEED_CTS (1 << 2) | | 386 | #define WPI_TX_NEED_CTS (1 << 2) |
384 | #define WPI_TX_NEED_ACK (1 << 3) | | 387 | #define WPI_TX_NEED_ACK (1 << 3) |
385 | #define WPI_TX_FULL_TXOP (1 << 7) | | 388 | #define WPI_TX_FULL_TXOP (1 << 7) |
386 | #define WPI_TX_BT_DISABLE (1 << 12) /* bluetooth coexistence */ | | 389 | #define WPI_TX_BT_DISABLE (1 << 12) /* bluetooth coexistence */ |
387 | #define WPI_TX_AUTO_SEQ (1 << 13) | | 390 | #define WPI_TX_AUTO_SEQ (1 << 13) |
388 | #define WPI_TX_INSERT_TSTAMP (1 << 16) | | 391 | #define WPI_TX_INSERT_TSTAMP (1 << 16) |
389 | | | 392 | |
390 | uint8_t rate; | | 393 | uint8_t rate; |
391 | uint8_t id; | | 394 | uint8_t id; |
392 | uint8_t tid; | | 395 | uint8_t tid; |
393 | uint8_t security; | | 396 | uint8_t security; |
| | | 397 | #define WPI_CIPHER_WEP40 1 |
| | | 398 | #define WPI_CIPHER_CCMP 2 |
| | | 399 | #define WPI_CIPHER_TKIP 3 |
| | | 400 | #define WPI_CIPHER_WEP104 9 |
| | | 401 | |
394 | uint8_t key[IEEE80211_KEYBUF_SIZE]; | | 402 | uint8_t key[IEEE80211_KEYBUF_SIZE]; |
395 | uint8_t tkip[IEEE80211_WEP_MICLEN]; | | 403 | uint8_t tkip[IEEE80211_WEP_MICLEN]; |
396 | uint32_t fnext; | | 404 | uint32_t fnext; |
397 | uint32_t lifetime; | | 405 | uint32_t lifetime; |
398 | #define WPI_LIFETIME_INFINITE 0xffffffff | | 406 | #define WPI_LIFETIME_INFINITE 0xffffffff |
399 | | | 407 | |
400 | uint8_t ofdm_mask; | | 408 | uint8_t ofdm_mask; |
401 | uint8_t cck_mask; | | 409 | uint8_t cck_mask; |
402 | uint8_t rts_ntries; | | 410 | uint8_t rts_ntries; |
403 | uint8_t data_ntries; | | 411 | uint8_t data_ntries; |
404 | uint16_t timeout; | | 412 | uint16_t timeout; |
405 | uint16_t txop; | | 413 | uint16_t txop; |
406 | } __packed; | | 414 | } __packed; |