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 <ilw@linux.intel.com>
10 * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
11 *
12 *****************************************************************************/
13
14#ifndef __il_spectrum_h__
15#define __il_spectrum_h__
16enum {				/* ieee80211_basic_report.map */
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	/* Bits 5-7 are reserved */
23
24};
25struct ieee80211_basic_report {
26	u8 channel;
27	__le64 start_time;
28	__le16 duration;
29	u8 map;
30} __packed;
31
32enum {				/* ieee80211_measurement_request.mode */
33	/* Bit 0 is reserved */
34	IEEE80211_MEASUREMENT_ENABLE = (1 << 1),
35	IEEE80211_MEASUREMENT_REQUEST = (1 << 2),
36	IEEE80211_MEASUREMENT_REPORT = (1 << 3),
37	/* Bits 4-7 are reserved */
38};
39
40enum {
41	IEEE80211_REPORT_BASIC = 0,	/* required */
42	IEEE80211_REPORT_CCA = 1,	/* optional */
43	IEEE80211_REPORT_RPI = 2,	/* optional */
44	/* 3-255 reserved */
45};
46
47struct ieee80211_measurement_params {
48	u8 channel;
49	__le64 start_time;
50	__le16 duration;
51} __packed;
52
53struct ieee80211_info_element {
54	u8 id;
55	u8 len;
56	u8 data[];
57} __packed;
58
59struct ieee80211_measurement_request {
60	struct ieee80211_info_element ie;
61	u8 token;
62	u8 mode;
63	u8 type;
64	struct ieee80211_measurement_params params[];
65} __packed;
66
67struct 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
78