iwl-spectrum.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /******************************************************************************
  3. *
  4. * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
  5. *
  6. * Portions of this file are derived from the ieee80211 subsystem header files.
  7. *
  8. * Contact Information:
  9. * Intel Linux Wireless <[email protected]>
  10. * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
  11. *
  12. *****************************************************************************/
  13. #ifndef __il_spectrum_h__
  14. #define __il_spectrum_h__
  15. enum { /* ieee80211_basic_report.map */
  16. IEEE80211_BASIC_MAP_BSS = (1 << 0),
  17. IEEE80211_BASIC_MAP_OFDM = (1 << 1),
  18. IEEE80211_BASIC_MAP_UNIDENTIFIED = (1 << 2),
  19. IEEE80211_BASIC_MAP_RADAR = (1 << 3),
  20. IEEE80211_BASIC_MAP_UNMEASURED = (1 << 4),
  21. /* Bits 5-7 are reserved */
  22. };
  23. struct ieee80211_basic_report {
  24. u8 channel;
  25. __le64 start_time;
  26. __le16 duration;
  27. u8 map;
  28. } __packed;
  29. enum { /* ieee80211_measurement_request.mode */
  30. /* Bit 0 is reserved */
  31. IEEE80211_MEASUREMENT_ENABLE = (1 << 1),
  32. IEEE80211_MEASUREMENT_REQUEST = (1 << 2),
  33. IEEE80211_MEASUREMENT_REPORT = (1 << 3),
  34. /* Bits 4-7 are reserved */
  35. };
  36. enum {
  37. IEEE80211_REPORT_BASIC = 0, /* required */
  38. IEEE80211_REPORT_CCA = 1, /* optional */
  39. IEEE80211_REPORT_RPI = 2, /* optional */
  40. /* 3-255 reserved */
  41. };
  42. struct ieee80211_measurement_params {
  43. u8 channel;
  44. __le64 start_time;
  45. __le16 duration;
  46. } __packed;
  47. struct ieee80211_info_element {
  48. u8 id;
  49. u8 len;
  50. u8 data[];
  51. } __packed;
  52. struct ieee80211_measurement_request {
  53. struct ieee80211_info_element ie;
  54. u8 token;
  55. u8 mode;
  56. u8 type;
  57. struct ieee80211_measurement_params params[];
  58. } __packed;
  59. struct ieee80211_measurement_report {
  60. struct ieee80211_info_element ie;
  61. u8 token;
  62. u8 mode;
  63. u8 type;
  64. union {
  65. struct ieee80211_basic_report basic[0];
  66. } u;
  67. } __packed;
  68. #endif