linux/drivers/net/wireless/intel/iwlegacy/iwl-spectrum.h
<<
>>
Prefs
   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__
  31enum {                          /* 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};
  40struct ieee80211_basic_report {
  41        u8 channel;
  42        __le64 start_time;
  43        __le16 duration;
  44        u8 map;
  45} __packed;
  46
  47enum {                          /* 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
  55enum {
  56        IEEE80211_REPORT_BASIC = 0,     /* required */
  57        IEEE80211_REPORT_CCA = 1,       /* optional */
  58        IEEE80211_REPORT_RPI = 2,       /* optional */
  59        /* 3-255 reserved */
  60};
  61
  62struct ieee80211_measurement_params {
  63        u8 channel;
  64        __le64 start_time;
  65        __le16 duration;
  66} __packed;
  67
  68struct ieee80211_info_element {
  69        u8 id;
  70        u8 len;
  71        u8 data[0];
  72} __packed;
  73
  74struct 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
  82struct 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