1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 #ifndef __il_spectrum_h__
  15 #define __il_spectrum_h__
  16 enum {                          
  17         IEEE80211_BASIC_MAP_BSS = (1 << 0),
  18         IEEE80211_BASIC_MAP_OFDM = (1 << 1),
  19         IEEE80211_BASIC_MAP_UNIDENTIFIED = (1 << 2),
  20         IEEE80211_BASIC_MAP_RADAR = (1 << 3),
  21         IEEE80211_BASIC_MAP_UNMEASURED = (1 << 4),
  22         
  23 
  24 };
  25 struct ieee80211_basic_report {
  26         u8 channel;
  27         __le64 start_time;
  28         __le16 duration;
  29         u8 map;
  30 } __packed;
  31 
  32 enum {                          
  33         
  34         IEEE80211_MEASUREMENT_ENABLE = (1 << 1),
  35         IEEE80211_MEASUREMENT_REQUEST = (1 << 2),
  36         IEEE80211_MEASUREMENT_REPORT = (1 << 3),
  37         
  38 };
  39 
  40 enum {
  41         IEEE80211_REPORT_BASIC = 0,     
  42         IEEE80211_REPORT_CCA = 1,       
  43         IEEE80211_REPORT_RPI = 2,       
  44         
  45 };
  46 
  47 struct ieee80211_measurement_params {
  48         u8 channel;
  49         __le64 start_time;
  50         __le16 duration;
  51 } __packed;
  52 
  53 struct ieee80211_info_element {
  54         u8 id;
  55         u8 len;
  56         u8 data[0];
  57 } __packed;
  58 
  59 struct ieee80211_measurement_request {
  60         struct ieee80211_info_element ie;
  61         u8 token;
  62         u8 mode;
  63         u8 type;
  64         struct ieee80211_measurement_params params[0];
  65 } __packed;
  66 
  67 struct ieee80211_measurement_report {
  68         struct ieee80211_info_element ie;
  69         u8 token;
  70         u8 mode;
  71         u8 type;
  72         union {
  73                 struct ieee80211_basic_report basic[0];
  74         } u;
  75 } __packed;
  76 
  77 #endif