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[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 78