xref: /linux/drivers/net/wireless/intel/iwlegacy/iwl-spectrum.h (revision 4b4193256c8d3bc3a5397b5cd9494c2ad386317d)
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__
16 enum {				/* 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 };
25 struct ieee80211_basic_report {
26 	u8 channel;
27 	__le64 start_time;
28 	__le16 duration;
29 	u8 map;
30 } __packed;
31 
32 enum {				/* 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 
40 enum {
41 	IEEE80211_REPORT_BASIC = 0,	/* required */
42 	IEEE80211_REPORT_CCA = 1,	/* optional */
43 	IEEE80211_REPORT_RPI = 2,	/* optional */
44 	/* 3-255 reserved */
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[];
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[];
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
78