1*7ac9a364SKalle Valo /****************************************************************************** 2*7ac9a364SKalle Valo * 3*7ac9a364SKalle Valo * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved. 4*7ac9a364SKalle Valo * 5*7ac9a364SKalle Valo * Portions of this file are derived from the ieee80211 subsystem header files. 6*7ac9a364SKalle Valo * 7*7ac9a364SKalle Valo * This program is free software; you can redistribute it and/or modify it 8*7ac9a364SKalle Valo * under the terms of version 2 of the GNU General Public License as 9*7ac9a364SKalle Valo * published by the Free Software Foundation. 10*7ac9a364SKalle Valo * 11*7ac9a364SKalle Valo * This program is distributed in the hope that it will be useful, but WITHOUT 12*7ac9a364SKalle Valo * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13*7ac9a364SKalle Valo * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 14*7ac9a364SKalle Valo * more details. 15*7ac9a364SKalle Valo * 16*7ac9a364SKalle Valo * You should have received a copy of the GNU General Public License along with 17*7ac9a364SKalle Valo * this program; if not, write to the Free Software Foundation, Inc., 18*7ac9a364SKalle Valo * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 19*7ac9a364SKalle Valo * 20*7ac9a364SKalle Valo * The full GNU General Public License is included in this distribution in the 21*7ac9a364SKalle Valo * file called LICENSE. 22*7ac9a364SKalle Valo * 23*7ac9a364SKalle Valo * Contact Information: 24*7ac9a364SKalle Valo * Intel Linux Wireless <ilw@linux.intel.com> 25*7ac9a364SKalle Valo * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 26*7ac9a364SKalle Valo * 27*7ac9a364SKalle Valo *****************************************************************************/ 28*7ac9a364SKalle Valo 29*7ac9a364SKalle Valo #ifndef __il_spectrum_h__ 30*7ac9a364SKalle Valo #define __il_spectrum_h__ 31*7ac9a364SKalle Valo enum { /* ieee80211_basic_report.map */ 32*7ac9a364SKalle Valo IEEE80211_BASIC_MAP_BSS = (1 << 0), 33*7ac9a364SKalle Valo IEEE80211_BASIC_MAP_OFDM = (1 << 1), 34*7ac9a364SKalle Valo IEEE80211_BASIC_MAP_UNIDENTIFIED = (1 << 2), 35*7ac9a364SKalle Valo IEEE80211_BASIC_MAP_RADAR = (1 << 3), 36*7ac9a364SKalle Valo IEEE80211_BASIC_MAP_UNMEASURED = (1 << 4), 37*7ac9a364SKalle Valo /* Bits 5-7 are reserved */ 38*7ac9a364SKalle Valo 39*7ac9a364SKalle Valo }; 40*7ac9a364SKalle Valo struct ieee80211_basic_report { 41*7ac9a364SKalle Valo u8 channel; 42*7ac9a364SKalle Valo __le64 start_time; 43*7ac9a364SKalle Valo __le16 duration; 44*7ac9a364SKalle Valo u8 map; 45*7ac9a364SKalle Valo } __packed; 46*7ac9a364SKalle Valo 47*7ac9a364SKalle Valo enum { /* ieee80211_measurement_request.mode */ 48*7ac9a364SKalle Valo /* Bit 0 is reserved */ 49*7ac9a364SKalle Valo IEEE80211_MEASUREMENT_ENABLE = (1 << 1), 50*7ac9a364SKalle Valo IEEE80211_MEASUREMENT_REQUEST = (1 << 2), 51*7ac9a364SKalle Valo IEEE80211_MEASUREMENT_REPORT = (1 << 3), 52*7ac9a364SKalle Valo /* Bits 4-7 are reserved */ 53*7ac9a364SKalle Valo }; 54*7ac9a364SKalle Valo 55*7ac9a364SKalle Valo enum { 56*7ac9a364SKalle Valo IEEE80211_REPORT_BASIC = 0, /* required */ 57*7ac9a364SKalle Valo IEEE80211_REPORT_CCA = 1, /* optional */ 58*7ac9a364SKalle Valo IEEE80211_REPORT_RPI = 2, /* optional */ 59*7ac9a364SKalle Valo /* 3-255 reserved */ 60*7ac9a364SKalle Valo }; 61*7ac9a364SKalle Valo 62*7ac9a364SKalle Valo struct ieee80211_measurement_params { 63*7ac9a364SKalle Valo u8 channel; 64*7ac9a364SKalle Valo __le64 start_time; 65*7ac9a364SKalle Valo __le16 duration; 66*7ac9a364SKalle Valo } __packed; 67*7ac9a364SKalle Valo 68*7ac9a364SKalle Valo struct ieee80211_info_element { 69*7ac9a364SKalle Valo u8 id; 70*7ac9a364SKalle Valo u8 len; 71*7ac9a364SKalle Valo u8 data[0]; 72*7ac9a364SKalle Valo } __packed; 73*7ac9a364SKalle Valo 74*7ac9a364SKalle Valo struct ieee80211_measurement_request { 75*7ac9a364SKalle Valo struct ieee80211_info_element ie; 76*7ac9a364SKalle Valo u8 token; 77*7ac9a364SKalle Valo u8 mode; 78*7ac9a364SKalle Valo u8 type; 79*7ac9a364SKalle Valo struct ieee80211_measurement_params params[0]; 80*7ac9a364SKalle Valo } __packed; 81*7ac9a364SKalle Valo 82*7ac9a364SKalle Valo struct ieee80211_measurement_report { 83*7ac9a364SKalle Valo struct ieee80211_info_element ie; 84*7ac9a364SKalle Valo u8 token; 85*7ac9a364SKalle Valo u8 mode; 86*7ac9a364SKalle Valo u8 type; 87*7ac9a364SKalle Valo union { 88*7ac9a364SKalle Valo struct ieee80211_basic_report basic[0]; 89*7ac9a364SKalle Valo } u; 90*7ac9a364SKalle Valo } __packed; 91*7ac9a364SKalle Valo 92*7ac9a364SKalle Valo #endif 93