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