Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /******************************************************************************
0003  *
0004  * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
0005  *
0006  * Portions of this file are derived from the ieee80211 subsystem header files.
0007  *
0008  * Contact Information:
0009  *  Intel Linux Wireless <ilw@linux.intel.com>
0010  * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
0011  *
0012  *****************************************************************************/
0013 
0014 #ifndef __il_spectrum_h__
0015 #define __il_spectrum_h__
0016 enum {              /* ieee80211_basic_report.map */
0017     IEEE80211_BASIC_MAP_BSS = (1 << 0),
0018     IEEE80211_BASIC_MAP_OFDM = (1 << 1),
0019     IEEE80211_BASIC_MAP_UNIDENTIFIED = (1 << 2),
0020     IEEE80211_BASIC_MAP_RADAR = (1 << 3),
0021     IEEE80211_BASIC_MAP_UNMEASURED = (1 << 4),
0022     /* Bits 5-7 are reserved */
0023 
0024 };
0025 struct ieee80211_basic_report {
0026     u8 channel;
0027     __le64 start_time;
0028     __le16 duration;
0029     u8 map;
0030 } __packed;
0031 
0032 enum {              /* ieee80211_measurement_request.mode */
0033     /* Bit 0 is reserved */
0034     IEEE80211_MEASUREMENT_ENABLE = (1 << 1),
0035     IEEE80211_MEASUREMENT_REQUEST = (1 << 2),
0036     IEEE80211_MEASUREMENT_REPORT = (1 << 3),
0037     /* Bits 4-7 are reserved */
0038 };
0039 
0040 enum {
0041     IEEE80211_REPORT_BASIC = 0, /* required */
0042     IEEE80211_REPORT_CCA = 1,   /* optional */
0043     IEEE80211_REPORT_RPI = 2,   /* optional */
0044     /* 3-255 reserved */
0045 };
0046 
0047 struct ieee80211_measurement_params {
0048     u8 channel;
0049     __le64 start_time;
0050     __le16 duration;
0051 } __packed;
0052 
0053 struct ieee80211_info_element {
0054     u8 id;
0055     u8 len;
0056     u8 data[];
0057 } __packed;
0058 
0059 struct ieee80211_measurement_request {
0060     struct ieee80211_info_element ie;
0061     u8 token;
0062     u8 mode;
0063     u8 type;
0064     struct ieee80211_measurement_params params[];
0065 } __packed;
0066 
0067 struct ieee80211_measurement_report {
0068     struct ieee80211_info_element ie;
0069     u8 token;
0070     u8 mode;
0071     u8 type;
0072     union {
0073         struct ieee80211_basic_report basic[0];
0074     } u;
0075 } __packed;
0076 
0077 #endif