ieee80211_common.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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. ieee80211_msg_wep_frame_unknown_key = 4,
  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. ieee80211_msg_key_threshold_notification = 9,
  49. ieee80211_msg_radar = 11,
  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. ieee80211_phytype_dsss_dot11_turbog = 255,
  66. ieee80211_phytype_dsss_dot11_turbo = 256,
  67. };
  68. enum ieee80211_ssi_type {
  69. ieee80211_ssi_none = 0,
  70. ieee80211_ssi_norm = 1, /* normalized, 0-1000 */
  71. ieee80211_ssi_dbm = 2,
  72. ieee80211_ssi_raw = 3, /* raw SSI */
  73. };
  74. struct ieee80211_radar_info {
  75. int channel;
  76. int radar;
  77. int radar_type;
  78. };
  79. #endif /* IEEE80211_COMMON_H */