1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /****************************************************************************** 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved. 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * Portions of this file are derived from the ieee80211 subsystem header files. 7*4882a593Smuzhiyun * 8*4882a593Smuzhiyun * Contact Information: 9*4882a593Smuzhiyun * Intel Linux Wireless <ilw@linux.intel.com> 10*4882a593Smuzhiyun * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 11*4882a593Smuzhiyun * 12*4882a593Smuzhiyun *****************************************************************************/ 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #ifndef __il_spectrum_h__ 15*4882a593Smuzhiyun #define __il_spectrum_h__ 16*4882a593Smuzhiyun enum { /* ieee80211_basic_report.map */ 17*4882a593Smuzhiyun IEEE80211_BASIC_MAP_BSS = (1 << 0), 18*4882a593Smuzhiyun IEEE80211_BASIC_MAP_OFDM = (1 << 1), 19*4882a593Smuzhiyun IEEE80211_BASIC_MAP_UNIDENTIFIED = (1 << 2), 20*4882a593Smuzhiyun IEEE80211_BASIC_MAP_RADAR = (1 << 3), 21*4882a593Smuzhiyun IEEE80211_BASIC_MAP_UNMEASURED = (1 << 4), 22*4882a593Smuzhiyun /* Bits 5-7 are reserved */ 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun }; 25*4882a593Smuzhiyun struct ieee80211_basic_report { 26*4882a593Smuzhiyun u8 channel; 27*4882a593Smuzhiyun __le64 start_time; 28*4882a593Smuzhiyun __le16 duration; 29*4882a593Smuzhiyun u8 map; 30*4882a593Smuzhiyun } __packed; 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun enum { /* ieee80211_measurement_request.mode */ 33*4882a593Smuzhiyun /* Bit 0 is reserved */ 34*4882a593Smuzhiyun IEEE80211_MEASUREMENT_ENABLE = (1 << 1), 35*4882a593Smuzhiyun IEEE80211_MEASUREMENT_REQUEST = (1 << 2), 36*4882a593Smuzhiyun IEEE80211_MEASUREMENT_REPORT = (1 << 3), 37*4882a593Smuzhiyun /* Bits 4-7 are reserved */ 38*4882a593Smuzhiyun }; 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun enum { 41*4882a593Smuzhiyun IEEE80211_REPORT_BASIC = 0, /* required */ 42*4882a593Smuzhiyun IEEE80211_REPORT_CCA = 1, /* optional */ 43*4882a593Smuzhiyun IEEE80211_REPORT_RPI = 2, /* optional */ 44*4882a593Smuzhiyun /* 3-255 reserved */ 45*4882a593Smuzhiyun }; 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun struct ieee80211_measurement_params { 48*4882a593Smuzhiyun u8 channel; 49*4882a593Smuzhiyun __le64 start_time; 50*4882a593Smuzhiyun __le16 duration; 51*4882a593Smuzhiyun } __packed; 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun struct ieee80211_info_element { 54*4882a593Smuzhiyun u8 id; 55*4882a593Smuzhiyun u8 len; 56*4882a593Smuzhiyun u8 data[]; 57*4882a593Smuzhiyun } __packed; 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun struct ieee80211_measurement_request { 60*4882a593Smuzhiyun struct ieee80211_info_element ie; 61*4882a593Smuzhiyun u8 token; 62*4882a593Smuzhiyun u8 mode; 63*4882a593Smuzhiyun u8 type; 64*4882a593Smuzhiyun struct ieee80211_measurement_params params[]; 65*4882a593Smuzhiyun } __packed; 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun struct ieee80211_measurement_report { 68*4882a593Smuzhiyun struct ieee80211_info_element ie; 69*4882a593Smuzhiyun u8 token; 70*4882a593Smuzhiyun u8 mode; 71*4882a593Smuzhiyun u8 type; 72*4882a593Smuzhiyun union { 73*4882a593Smuzhiyun struct ieee80211_basic_report basic[0]; 74*4882a593Smuzhiyun } u; 75*4882a593Smuzhiyun } __packed; 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun #endif 78