📄 aironet.h
字号:
/* ************************************************************************* * Ralink Tech Inc. * 4F, No. 2 Technology 5th Rd. * Science-based Industrial Park * Hsin-chu, Taiwan, R.O.C. * * (c) Copyright 2002-2007, Ralink Technology, Inc. * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * * ************************************************************************* Module Name: aironet.h Abstract: Revision History: Who When What -------- ---------- ---------------------------------------------- Name Date Modification logs Paul Lin 04-06-15 Initial*/#ifndef __AIRONET_H__#define __AIRONET_H__// Measurement Type definition#define MSRN_TYPE_UNUSED 0#define MSRN_TYPE_CHANNEL_LOAD_REQ 1#define MSRN_TYPE_NOISE_HIST_REQ 2#define MSRN_TYPE_BEACON_REQ 3#define MSRN_TYPE_FRAME_REQ 4// Scan Mode in Beacon Request#define MSRN_SCAN_MODE_PASSIVE 0#define MSRN_SCAN_MODE_ACTIVE 1#define MSRN_SCAN_MODE_BEACON_TABLE 2// PHY type definition for Aironet beacon report, CCX 2 table 36-9#define PHY_FH 1#define PHY_DSS 2#define PHY_UNUSED 3#define PHY_OFDM 4#define PHY_HR_DSS 5#define PHY_ERP 6// RPI table in dBm#define RPI_0 0 // Power <= -87#define RPI_1 1 // -87 < Power <= -82#define RPI_2 2 // -82 < Power <= -77#define RPI_3 3 // -77 < Power <= -72#define RPI_4 4 // -72 < Power <= -67#define RPI_5 5 // -67 < Power <= -62#define RPI_6 6 // -62 < Power <= -57#define RPI_7 7 // -57 < Power// Cisco Aironet IAPP definetions#define AIRONET_IAPP_TYPE 0x32#define AIRONET_IAPP_SUBTYPE_REQUEST 0x01#define AIRONET_IAPP_SUBTYPE_REPORT 0x81// Measurement Request detail formattypedef struct _MEASUREMENT_REQUEST { UCHAR Channel; UCHAR ScanMode; // Use only in beacon request, other requests did not use this field USHORT Duration;} MEASUREMENT_REQUEST, *PMEASUREMENT_REQUEST;// Beacon Measurement Report// All these field might change to UCHAR, because we didn't do anything to these report.// We copy all these beacons and report to CCX 2 AP.typedef struct _BEACON_REPORT { UCHAR Channel; UCHAR Spare; USHORT Duration; UCHAR PhyType; // Definiation is listed above table 36-9 UCHAR RxPower; UCHAR BSSID[6]; UCHAR ParentTSF[4]; UCHAR TargetTSF[8]; USHORT BeaconInterval; USHORT CapabilityInfo;} BEACON_REPORT, *PBEACON_REPORT;// Frame Measurement Report (Optional)typedef struct _FRAME_REPORT { UCHAR Channel; UCHAR Spare; USHORT Duration; UCHAR TA; UCHAR BSSID[6]; UCHAR RSSI; UCHAR Count;} FRAME_REPORT, *PFRAME_REPORT;#pragma pack(1)// Channel Load Reporttypedef struct _CHANNEL_LOAD_REPORT { UCHAR Channel; UCHAR Spare; USHORT Duration; UCHAR CCABusy;} CHANNEL_LOAD_REPORT, *PCHANNEL_LOAD_REPORT;#pragma pack()// Nosie Histogram Reporttypedef struct _NOISE_HIST_REPORT { UCHAR Channel; UCHAR Spare; USHORT Duration; UCHAR Density[8];} NOISE_HIST_REPORT, *PNOISE_HIST_REPORT;// Radio Management Capability elementtypedef struct _RADIO_MANAGEMENT_CAPABILITY { UCHAR Eid; // TODO: Why the Eid is 1 byte, not normal 2 bytes??? UCHAR Length; UCHAR AironetOui[3]; // AIronet OUI (00 40 96) UCHAR Type; // Type / Version USHORT Status; // swap16 required} RADIO_MANAGEMENT_CAPABILITY, *PRADIO_MANAGEMENT_CAPABILITY;// Measurement Mode Bit definitiontypedef struct _MEASUREMENT_MODE { UCHAR Rsvd:4; UCHAR Report:1; UCHAR NotUsed:1; UCHAR Enable:1; UCHAR Parallel:1;} MEASUREMENT_MODE, *PMEASUREMENT_MODE;// Measurement Request element, This is little endian modetypedef struct _MEASUREMENT_REQUEST_ELEMENT { USHORT Eid; USHORT Length; // swap16 required USHORT Token; // non-zero unique token UCHAR Mode; // Measurement Mode UCHAR Type; // Measurement type} MEASUREMENT_REQUEST_ELEMENT, *PMEASUREMENT_REQUEST_ELEMENT;// Measurement Report element, This is little endian modetypedef struct _MEASUREMENT_REPORT_ELEMENT { USHORT Eid; USHORT Length; // swap16 required USHORT Token; // non-zero unique token UCHAR Mode; // Measurement Mode UCHAR Type; // Measurement type} MEASUREMENT_REPORT_ELEMENT, *PMEASUREMENT_REPORT_ELEMENT;// Cisco Aironet IAPP Frame Header, Network byte order usedtypedef struct _AIRONET_IAPP_HEADER { UCHAR CiscoSnapHeader[8]; // 8 bytes Cisco snap header USHORT Length; // IAPP ID & length, remember to swap16 in LE system UCHAR Type; // IAPP type UCHAR SubType; // IAPP subtype UCHAR DA[6]; // Destination MAC address UCHAR SA[6]; // Source MAC address USHORT Token; // Dialog token, no need to swap16 since it is for yoken usage only} AIRONET_IAPP_HEADER, *PAIRONET_IAPP_HEADER;// Radio Measurement Request frametypedef struct _AIRONET_RM_REQUEST_FRAME { AIRONET_IAPP_HEADER IAPP; // Common header UCHAR Delay; // Activation Delay UCHAR Offset; // Measurement offset} AIRONET_RM_REQUEST_FRAME, *PAIRONET_RM_REQUEST_FRAME;// Radio Measurement Report frametypedef struct _AIRONET_RM_REPORT_FRAME { AIRONET_IAPP_HEADER IAPP; // Common header} AIRONET_RM_REPORT_FRAME, *PAIRONET_RM_REPORT_FRAME;// Saved element request actions which will saved in StaCfg.typedef struct _RM_REQUEST_ACTION { MEASUREMENT_REQUEST_ELEMENT ReqElem; // Saved request element MEASUREMENT_REQUEST Measurement; // Saved measurement within the request element} RM_REQUEST_ACTION, *PRM_REQUEST_ACTION;// CCX administration controltypedef union _CCX_CONTROL { struct { UINT32 Enable:1; // Enable CCX2 UINT32 LeapEnable:1; // Enable LEAP at CCX2 UINT32 RMEnable:1; // Radio Measurement Enable UINT32 DCRMEnable:1; // Non serving channel Radio Measurement enable UINT32 QOSEnable:1; // Enable QOS for CCX 2.0 support UINT32 FastRoamEnable:1; // Enable fast roaming UINT32 Rsvd:2; // Not used UINT32 dBmToRoam:8; // the condition to roam when receiving Rssi less than this value. It's negative value. UINT32 TuLimit:16; // Limit for different channel scan } field; UINT32 word;} CCX_CONTROL, *PCCX_CONTROL;#endif // __AIRONET_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -