ieee80211_common.h 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /*
  2. * IEEE 802.11 driver (80211.o) -- hostapd interface
  3. * Copyright 2002-2004, Instant802 Networks, Inc.
  4. *
  5. * This program is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License version 2 as
  7. * published by the Free Software Foundation.
  8. */
  9. #ifndef IEEE80211_COMMON_H
  10. #define IEEE80211_COMMON_H
  11. #include <linux/types.h>
  12. /*
  13. * This is common header information with user space. It is used on all
  14. * frames sent to wlan#ap interface.
  15. */
  16. #define IEEE80211_FI_VERSION 0x80211001
  17. struct ieee80211_frame_info {
  18. __be32 version;
  19. __be32 length;
  20. __be64 mactime;
  21. __be64 hosttime;
  22. __be32 phytype;
  23. __be32 channel;
  24. __be32 datarate;
  25. __be32 antenna;
  26. __be32 priority;
  27. __be32 ssi_type;
  28. __be32 ssi_signal;
  29. __be32 ssi_noise;
  30. __be32 preamble;
  31. __be32 encoding;
  32. /* Note: this structure is otherwise identical to capture format used
  33. * in linux-wlan-ng, but this additional field is used to provide meta
  34. * data about the frame to hostapd. This was the easiest method for
  35. * providing this information, but this might change in the future. */
  36. __be32 msg_type;
  37. } __attribute__ ((packed));
  38. enum ieee80211_msg_type {
  39. ieee80211_msg_normal = 0,
  40. ieee80211_msg_tx_callback_ack = 1,
  41. ieee80211_msg_tx_callback_fail = 2,
  42. /* hole at 3, was ieee80211_msg_passive_scan but unused */
  43. /* hole at 4, was ieee80211_msg_wep_frame_unknown_key but now unused */
  44. ieee80211_msg_michael_mic_failure = 5,
  45. /* hole at 6, was monitor but never sent to userspace */
  46. ieee80211_msg_sta_not_assoc = 7,
  47. /* 8 was ieee80211_msg_set_aid_for_sta */
  48. /* 9 was ieee80211_msg_key_threshold_notification */
  49. /* 11 was ieee80211_msg_radar */
  50. };
  51. struct ieee80211_msg_key_notification {
  52. int tx_rx_count;
  53. char ifname[IFNAMSIZ];
  54. u8 addr[ETH_ALEN]; /* ff:ff:ff:ff:ff:ff for broadcast keys */
  55. };
  56. enum ieee80211_phytype {
  57. ieee80211_phytype_fhss_dot11_97 = 1,
  58. ieee80211_phytype_dsss_dot11_97 = 2,
  59. ieee80211_phytype_irbaseband = 3,
  60. ieee80211_phytype_dsss_dot11_b = 4,
  61. ieee80211_phytype_pbcc_dot11_b = 5,
  62. ieee80211_phytype_ofdm_dot11_g = 6,
  63. ieee80211_phytype_pbcc_dot11_g = 7,
  64. ieee80211_phytype_ofdm_dot11_a = 8,
  65. };
  66. enum ieee80211_ssi_type {
  67. ieee80211_ssi_none = 0,
  68. ieee80211_ssi_norm = 1, /* normalized, 0-1000 */
  69. ieee80211_ssi_dbm = 2,
  70. ieee80211_ssi_raw = 3, /* raw SSI */
  71. };
  72. struct ieee80211_radar_info {
  73. int channel;
  74. int radar;
  75. int radar_type;
  76. };
  77. #endif /* IEEE80211_COMMON_H */