162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/****************************************************************************** 362306a36Sopenharmony_ci * 462306a36Sopenharmony_ci * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved. 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Portions of this file are derived from the ieee80211 subsystem header files. 762306a36Sopenharmony_ci * 862306a36Sopenharmony_ci * Contact Information: 962306a36Sopenharmony_ci * Intel Linux Wireless <ilw@linux.intel.com> 1062306a36Sopenharmony_ci * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 1162306a36Sopenharmony_ci * 1262306a36Sopenharmony_ci *****************************************************************************/ 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#ifndef __il_spectrum_h__ 1562306a36Sopenharmony_ci#define __il_spectrum_h__ 1662306a36Sopenharmony_cienum { /* ieee80211_basic_report.map */ 1762306a36Sopenharmony_ci IEEE80211_BASIC_MAP_BSS = (1 << 0), 1862306a36Sopenharmony_ci IEEE80211_BASIC_MAP_OFDM = (1 << 1), 1962306a36Sopenharmony_ci IEEE80211_BASIC_MAP_UNIDENTIFIED = (1 << 2), 2062306a36Sopenharmony_ci IEEE80211_BASIC_MAP_RADAR = (1 << 3), 2162306a36Sopenharmony_ci IEEE80211_BASIC_MAP_UNMEASURED = (1 << 4), 2262306a36Sopenharmony_ci /* Bits 5-7 are reserved */ 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci}; 2562306a36Sopenharmony_cistruct ieee80211_basic_report { 2662306a36Sopenharmony_ci u8 channel; 2762306a36Sopenharmony_ci __le64 start_time; 2862306a36Sopenharmony_ci __le16 duration; 2962306a36Sopenharmony_ci u8 map; 3062306a36Sopenharmony_ci} __packed; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_cienum { /* ieee80211_measurement_request.mode */ 3362306a36Sopenharmony_ci /* Bit 0 is reserved */ 3462306a36Sopenharmony_ci IEEE80211_MEASUREMENT_ENABLE = (1 << 1), 3562306a36Sopenharmony_ci IEEE80211_MEASUREMENT_REQUEST = (1 << 2), 3662306a36Sopenharmony_ci IEEE80211_MEASUREMENT_REPORT = (1 << 3), 3762306a36Sopenharmony_ci /* Bits 4-7 are reserved */ 3862306a36Sopenharmony_ci}; 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_cienum { 4162306a36Sopenharmony_ci IEEE80211_REPORT_BASIC = 0, /* required */ 4262306a36Sopenharmony_ci IEEE80211_REPORT_CCA = 1, /* optional */ 4362306a36Sopenharmony_ci IEEE80211_REPORT_RPI = 2, /* optional */ 4462306a36Sopenharmony_ci /* 3-255 reserved */ 4562306a36Sopenharmony_ci}; 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_cistruct ieee80211_measurement_params { 4862306a36Sopenharmony_ci u8 channel; 4962306a36Sopenharmony_ci __le64 start_time; 5062306a36Sopenharmony_ci __le16 duration; 5162306a36Sopenharmony_ci} __packed; 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_cistruct ieee80211_info_element { 5462306a36Sopenharmony_ci u8 id; 5562306a36Sopenharmony_ci u8 len; 5662306a36Sopenharmony_ci u8 data[]; 5762306a36Sopenharmony_ci} __packed; 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_cistruct ieee80211_measurement_request { 6062306a36Sopenharmony_ci struct ieee80211_info_element ie; 6162306a36Sopenharmony_ci u8 token; 6262306a36Sopenharmony_ci u8 mode; 6362306a36Sopenharmony_ci u8 type; 6462306a36Sopenharmony_ci struct ieee80211_measurement_params params[]; 6562306a36Sopenharmony_ci} __packed; 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_cistruct ieee80211_measurement_report { 6862306a36Sopenharmony_ci struct ieee80211_info_element ie; 6962306a36Sopenharmony_ci u8 token; 7062306a36Sopenharmony_ci u8 mode; 7162306a36Sopenharmony_ci u8 type; 7262306a36Sopenharmony_ci union { 7362306a36Sopenharmony_ci struct ieee80211_basic_report basic[0]; 7462306a36Sopenharmony_ci } u; 7562306a36Sopenharmony_ci} __packed; 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci#endif 78