116da78b7SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 27ac9a364SKalle Valo /****************************************************************************** 37ac9a364SKalle Valo * 47ac9a364SKalle Valo * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved. 57ac9a364SKalle Valo * 67ac9a364SKalle Valo * Portions of this file are derived from the ieee80211 subsystem header files. 77ac9a364SKalle Valo * 87ac9a364SKalle Valo * Contact Information: 97ac9a364SKalle Valo * Intel Linux Wireless <ilw@linux.intel.com> 107ac9a364SKalle Valo * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 117ac9a364SKalle Valo * 127ac9a364SKalle Valo *****************************************************************************/ 137ac9a364SKalle Valo 147ac9a364SKalle Valo #ifndef __il_spectrum_h__ 157ac9a364SKalle Valo #define __il_spectrum_h__ 167ac9a364SKalle Valo enum { /* ieee80211_basic_report.map */ 177ac9a364SKalle Valo IEEE80211_BASIC_MAP_BSS = (1 << 0), 187ac9a364SKalle Valo IEEE80211_BASIC_MAP_OFDM = (1 << 1), 197ac9a364SKalle Valo IEEE80211_BASIC_MAP_UNIDENTIFIED = (1 << 2), 207ac9a364SKalle Valo IEEE80211_BASIC_MAP_RADAR = (1 << 3), 217ac9a364SKalle Valo IEEE80211_BASIC_MAP_UNMEASURED = (1 << 4), 227ac9a364SKalle Valo /* Bits 5-7 are reserved */ 237ac9a364SKalle Valo 247ac9a364SKalle Valo }; 257ac9a364SKalle Valo struct ieee80211_basic_report { 267ac9a364SKalle Valo u8 channel; 277ac9a364SKalle Valo __le64 start_time; 287ac9a364SKalle Valo __le16 duration; 297ac9a364SKalle Valo u8 map; 307ac9a364SKalle Valo } __packed; 317ac9a364SKalle Valo 327ac9a364SKalle Valo enum { /* ieee80211_measurement_request.mode */ 337ac9a364SKalle Valo /* Bit 0 is reserved */ 347ac9a364SKalle Valo IEEE80211_MEASUREMENT_ENABLE = (1 << 1), 357ac9a364SKalle Valo IEEE80211_MEASUREMENT_REQUEST = (1 << 2), 367ac9a364SKalle Valo IEEE80211_MEASUREMENT_REPORT = (1 << 3), 377ac9a364SKalle Valo /* Bits 4-7 are reserved */ 387ac9a364SKalle Valo }; 397ac9a364SKalle Valo 407ac9a364SKalle Valo enum { 417ac9a364SKalle Valo IEEE80211_REPORT_BASIC = 0, /* required */ 427ac9a364SKalle Valo IEEE80211_REPORT_CCA = 1, /* optional */ 437ac9a364SKalle Valo IEEE80211_REPORT_RPI = 2, /* optional */ 447ac9a364SKalle Valo /* 3-255 reserved */ 457ac9a364SKalle Valo }; 467ac9a364SKalle Valo 477ac9a364SKalle Valo struct ieee80211_measurement_params { 487ac9a364SKalle Valo u8 channel; 497ac9a364SKalle Valo __le64 start_time; 507ac9a364SKalle Valo __le16 duration; 517ac9a364SKalle Valo } __packed; 527ac9a364SKalle Valo 537ac9a364SKalle Valo struct ieee80211_info_element { 547ac9a364SKalle Valo u8 id; 557ac9a364SKalle Valo u8 len; 56*8863b121SGustavo A. R. Silva u8 data[]; 577ac9a364SKalle Valo } __packed; 587ac9a364SKalle Valo 597ac9a364SKalle Valo struct ieee80211_measurement_request { 607ac9a364SKalle Valo struct ieee80211_info_element ie; 617ac9a364SKalle Valo u8 token; 627ac9a364SKalle Valo u8 mode; 637ac9a364SKalle Valo u8 type; 64*8863b121SGustavo A. R. Silva struct ieee80211_measurement_params params[]; 657ac9a364SKalle Valo } __packed; 667ac9a364SKalle Valo 677ac9a364SKalle Valo struct ieee80211_measurement_report { 687ac9a364SKalle Valo struct ieee80211_info_element ie; 697ac9a364SKalle Valo u8 token; 707ac9a364SKalle Valo u8 mode; 717ac9a364SKalle Valo u8 type; 727ac9a364SKalle Valo union { 737ac9a364SKalle Valo struct ieee80211_basic_report basic[0]; 747ac9a364SKalle Valo } u; 757ac9a364SKalle Valo } __packed; 767ac9a364SKalle Valo 777ac9a364SKalle Valo #endif 78