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