iwl-spectrum.h 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /******************************************************************************
  2. *
  3. * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
  4. *
  5. * Portions of this file are derived from the ieee80211 subsystem header files.
  6. *
  7. * This program is free software; you can redistribute it and/or modify it
  8. * under the terms of version 2 of the GNU General Public License as
  9. * published by the Free Software Foundation.
  10. *
  11. * This program is distributed in the hope that it will be useful, but WITHOUT
  12. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13. * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  14. * more details.
  15. *
  16. * You should have received a copy of the GNU General Public License along with
  17. * this program; if not, write to the Free Software Foundation, Inc.,
  18. * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
  19. *
  20. * The full GNU General Public License is included in this distribution in the
  21. * file called LICENSE.
  22. *
  23. * Contact Information:
  24. * Intel Linux Wireless <ilw@linux.intel.com>
  25. * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
  26. *
  27. *****************************************************************************/
  28. #ifndef __il_spectrum_h__
  29. #define __il_spectrum_h__
  30. enum { /* ieee80211_basic_report.map */
  31. IEEE80211_BASIC_MAP_BSS = (1 << 0),
  32. IEEE80211_BASIC_MAP_OFDM = (1 << 1),
  33. IEEE80211_BASIC_MAP_UNIDENTIFIED = (1 << 2),
  34. IEEE80211_BASIC_MAP_RADAR = (1 << 3),
  35. IEEE80211_BASIC_MAP_UNMEASURED = (1 << 4),
  36. /* Bits 5-7 are reserved */
  37. };
  38. struct ieee80211_basic_report {
  39. u8 channel;
  40. __le64 start_time;
  41. __le16 duration;
  42. u8 map;
  43. } __packed;
  44. enum { /* ieee80211_measurement_request.mode */
  45. /* Bit 0 is reserved */
  46. IEEE80211_MEASUREMENT_ENABLE = (1 << 1),
  47. IEEE80211_MEASUREMENT_REQUEST = (1 << 2),
  48. IEEE80211_MEASUREMENT_REPORT = (1 << 3),
  49. /* Bits 4-7 are reserved */
  50. };
  51. enum {
  52. IEEE80211_REPORT_BASIC = 0, /* required */
  53. IEEE80211_REPORT_CCA = 1, /* optional */
  54. IEEE80211_REPORT_RPI = 2, /* optional */
  55. /* 3-255 reserved */
  56. };
  57. struct ieee80211_measurement_params {
  58. u8 channel;
  59. __le64 start_time;
  60. __le16 duration;
  61. } __packed;
  62. struct ieee80211_info_element {
  63. u8 id;
  64. u8 len;
  65. u8 data[0];
  66. } __packed;
  67. struct ieee80211_measurement_request {
  68. struct ieee80211_info_element ie;
  69. u8 token;
  70. u8 mode;
  71. u8 type;
  72. struct ieee80211_measurement_params params[0];
  73. } __packed;
  74. struct ieee80211_measurement_report {
  75. struct ieee80211_info_element ie;
  76. u8 token;
  77. u8 mode;
  78. u8 type;
  79. union {
  80. struct ieee80211_basic_report basic[0];
  81. } u;
  82. } __packed;
  83. #endif