mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 23:24:22 -04:00
qcacld-3.0: Update dot11f.frms for new radio measurement types
Update dot11f.frms to decode LCI and Fine Time Measurement in incoming Radio Measurement frames. Currently we do not have these new types supported leading to incorrect frame parsing. Adding these types make sure that incoming radio measurement request frames are unpacked correctly. Change-Id: I542bb2b782fed144702c372cbfc314c666c72f53 CRs-Fixed: 980863
This commit is contained in:
parent
206e2ac787
commit
062d054549
3 changed files with 2114 additions and 1227 deletions
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2006-2007, 2014-2015 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2006-2007, 2014-2016 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||
*
|
||||
|
|
@ -1469,80 +1469,6 @@ IE TCLAS (EID_TCLAS) // 7.3.2.31
|
|||
};
|
||||
} // End IE TCLASS
|
||||
|
||||
const EID_RRM_BEACON_REPORTING = 1;
|
||||
const EID_RRM_BCN_REPORTING_DETAIL = 2;
|
||||
|
||||
IE BeaconReporting (EID_RRM_BEACON_REPORTING)
|
||||
{
|
||||
reportingCondition, 1;
|
||||
threshold, 1;
|
||||
}
|
||||
|
||||
IE BcnReportingDetail (EID_RRM_BCN_REPORTING_DETAIL)
|
||||
{
|
||||
reportingDetail, 1;
|
||||
}
|
||||
|
||||
IE APChannelReport (EID_AP_CHAN_REPORT)
|
||||
{
|
||||
regulatoryClass, 1;
|
||||
channelList[0..50];
|
||||
}
|
||||
|
||||
IE MeasurementRequest (EID_MEAS_REQUEST) // 7.3.2.21
|
||||
{
|
||||
measurement_token, 1;
|
||||
|
||||
// Measurement Request Mode
|
||||
{
|
||||
parallel: 1;
|
||||
enable: 1;
|
||||
request: 1;
|
||||
report: 1;
|
||||
durationMandatory: 1;
|
||||
unused: 3;
|
||||
}
|
||||
|
||||
measurement_type, 1;
|
||||
UNION measurement_request (DISCRIMINATOR measurement_type)
|
||||
{
|
||||
Basic (measurement_type IS 0)
|
||||
{
|
||||
channel_no, 1;
|
||||
meas_start_time[8];
|
||||
meas_duration, 2;
|
||||
}
|
||||
CCA (measurement_type IS 1)
|
||||
{
|
||||
channel_no, 1;
|
||||
meas_start_time[8];
|
||||
meas_duration, 2;
|
||||
}
|
||||
RPIHistogram (measurement_type IS 2)
|
||||
{
|
||||
channel_no, 1;
|
||||
meas_start_time[8];
|
||||
meas_duration, 2;
|
||||
}
|
||||
Beacon (measurement_type IS 5)
|
||||
{
|
||||
regClass, 1;
|
||||
channel, 1;
|
||||
randomization, 2;
|
||||
meas_duration, 2;
|
||||
meas_mode, 1;
|
||||
BSSID[6];
|
||||
OPTIE SSID;
|
||||
OPTIE BeaconReporting;
|
||||
OPTIE BcnReportingDetail;
|
||||
OPTIE RequestedInfo;
|
||||
OPTIE APChannelReport[0..2];
|
||||
//OPTIONAL vendor_specific[1..239];
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
const EID_BCN_REPORT_FRAME_BODY = 1;
|
||||
IE BeaconReportFrmBody (EID_BCN_REPORT_FRAME_BODY)
|
||||
{
|
||||
|
|
@ -2059,7 +1985,16 @@ IE ht2040_bss_intolerant_report (EID_20_40_BSS_INTOLERANT_REPORT)
|
|||
|
||||
const EID_RRM_NBR_RPT_TSF = 1;
|
||||
const EID_RRM_NBR_CD_COUNTRY = 2;
|
||||
const EID_RRM_NBR_MSMT_PILOT_TX_INFO = 66;
|
||||
|
||||
IE TSFInfo (EID_RRM_NBR_RPT_TSF)
|
||||
{
|
||||
TsfOffset, 2;
|
||||
BeaconIntvl, 2;
|
||||
}
|
||||
IE CondensedCountryStr (EID_RRM_NBR_CD_COUNTRY)
|
||||
{
|
||||
countryStr[2];
|
||||
}
|
||||
|
||||
IE NeighborReport (EID_NEIGHBOR_REPORT)
|
||||
{
|
||||
|
|
@ -2089,20 +2024,9 @@ IE NeighborReport (EID_NEIGHBOR_REPORT)
|
|||
regulatoryClass, 1;
|
||||
channel, 1;
|
||||
PhyType, 1;
|
||||
OPTIE IE TSFInfo (EID_RRM_NBR_RPT_TSF)
|
||||
{
|
||||
TsfOffset, 2;
|
||||
BeaconIntvl, 2;
|
||||
}
|
||||
OPTIE IE CondensedCountryStr (EID_RRM_NBR_CD_COUNTRY)
|
||||
{
|
||||
countryStr[2];
|
||||
}
|
||||
OPTIE IE MeasurementPilot; // (EID_RRM_NBR_MSMT_PILOT_TX_INFO)
|
||||
// {
|
||||
// measurementPilot, 1;
|
||||
// vendorSpecific[0..255]; //Should be an IE. But currently only one level of nesting allowed. Can ignore for now.
|
||||
// }
|
||||
OPTIE IE TSFInfo;
|
||||
OPTIE IE CondensedCountryStr;
|
||||
OPTIE IE MeasurementPilot;
|
||||
OPTIE IE RRMEnabledCap;
|
||||
OPTIE IE MultiBssid;
|
||||
//Ignoring vendor specific.
|
||||
|
|
@ -2466,6 +2390,155 @@ IE TimeAdvertisement (EID_TIME_ADVERTISEMENT) // 8.4.2.63
|
|||
time_error[5];
|
||||
}
|
||||
|
||||
const EID_RRM_BEACON_REPORTING = 1;
|
||||
const EID_RRM_BCN_REPORTING_DETAIL = 2;
|
||||
|
||||
const SUB_EID_AZIMUTH_REQ = 1;
|
||||
const SUB_EID_REQ_MAC_ADDR = 2;
|
||||
const SUB_EID_TGT_MAC_ADDR = 3;
|
||||
const SUB_EID_MAX_AGE = 4;
|
||||
const SUB_EID_NEIGHBOR_RPT = 52;
|
||||
|
||||
IE BeaconReporting (EID_RRM_BEACON_REPORTING)
|
||||
{
|
||||
reportingCondition, 1;
|
||||
threshold, 1;
|
||||
}
|
||||
|
||||
IE BcnReportingDetail (EID_RRM_BCN_REPORTING_DETAIL)
|
||||
{
|
||||
reportingDetail, 1;
|
||||
}
|
||||
|
||||
IE APChannelReport (EID_AP_CHAN_REPORT)
|
||||
{
|
||||
regulatoryClass, 1;
|
||||
channelList[0..50];
|
||||
}
|
||||
|
||||
IE azimuth_req (SUB_EID_AZIMUTH_REQ)
|
||||
{
|
||||
request, 1;
|
||||
}
|
||||
|
||||
IE req_mac_addr (SUB_EID_REQ_MAC_ADDR)
|
||||
{
|
||||
addr[6];
|
||||
}
|
||||
|
||||
IE tgt_mac_addr (SUB_EID_TGT_MAC_ADDR)
|
||||
{
|
||||
addr[6];
|
||||
}
|
||||
|
||||
IE max_age (SUB_EID_MAX_AGE)
|
||||
{
|
||||
max_age, 2;
|
||||
}
|
||||
|
||||
IE neighbor_rpt (SUB_EID_NEIGHBOR_RPT)
|
||||
{
|
||||
bssid[6];
|
||||
//Bssid Info
|
||||
{
|
||||
APReachability: 2;
|
||||
Security: 1;
|
||||
KeyScope: 1;
|
||||
//Capabilities
|
||||
SpecMgmtCap: 1;
|
||||
QosCap: 1;
|
||||
apsd: 1;
|
||||
rrm: 1;
|
||||
}
|
||||
//Capabilities contd.
|
||||
{
|
||||
DelayedBA: 1;
|
||||
ImmBA: 1;
|
||||
//Capabilities end.
|
||||
MobilityDomain: 1;
|
||||
reserved: 5;
|
||||
}
|
||||
reserved1, 2; //part of BSSID Info.
|
||||
regulatoryClass, 1;
|
||||
channel, 1;
|
||||
PhyType, 1;
|
||||
OPTIE IE TSFInfo;
|
||||
OPTIE IE CondensedCountryStr;
|
||||
OPTIE IE MeasurementPilot;
|
||||
OPTIE IE RRMEnabledCap;
|
||||
OPTIE IE MultiBssid;
|
||||
}
|
||||
|
||||
IE MeasurementRequest (EID_MEAS_REQUEST) // 7.3.2.21
|
||||
{
|
||||
measurement_token, 1;
|
||||
|
||||
// Measurement Request Mode
|
||||
{
|
||||
parallel: 1;
|
||||
enable: 1;
|
||||
request: 1;
|
||||
report: 1;
|
||||
durationMandatory: 1;
|
||||
unused: 3;
|
||||
}
|
||||
|
||||
measurement_type, 1;
|
||||
UNION measurement_request (DISCRIMINATOR measurement_type)
|
||||
{
|
||||
Basic (measurement_type IS 0)
|
||||
{
|
||||
channel_no, 1;
|
||||
meas_start_time[8];
|
||||
meas_duration, 2;
|
||||
}
|
||||
CCA (measurement_type IS 1)
|
||||
{
|
||||
channel_no, 1;
|
||||
meas_start_time[8];
|
||||
meas_duration, 2;
|
||||
}
|
||||
RPIHistogram (measurement_type IS 2)
|
||||
{
|
||||
channel_no, 1;
|
||||
meas_start_time[8];
|
||||
meas_duration, 2;
|
||||
}
|
||||
Beacon (measurement_type IS 5)
|
||||
{
|
||||
regClass, 1;
|
||||
channel, 1;
|
||||
randomization, 2;
|
||||
meas_duration, 2;
|
||||
meas_mode, 1;
|
||||
BSSID[6];
|
||||
OPTIE SSID;
|
||||
OPTIE BeaconReporting;
|
||||
OPTIE BcnReportingDetail;
|
||||
OPTIE RequestedInfo;
|
||||
OPTIE APChannelReport[0..2];
|
||||
//OPTIONAL vendor_specific[1..239];
|
||||
}
|
||||
lci (measurement_type IS 8)
|
||||
{
|
||||
loc_subject, 1;
|
||||
OPTIE azimuth_req;
|
||||
OPTIE req_mac_addr;
|
||||
OPTIE tgt_mac_addr;
|
||||
OPTIE max_age;
|
||||
}
|
||||
ftmrr (measurement_type IS 16)
|
||||
{
|
||||
random_interval, 2;
|
||||
min_ap_count, 1;
|
||||
|
||||
OPTIE neighbor_rpt;
|
||||
OPTIE max_age;
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// MULTIIEs //
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2015 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2012-2016 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||
*
|
||||
|
|
@ -35,7 +35,7 @@
|
|||
*
|
||||
*
|
||||
* This file was automatically generated by 'framesc'
|
||||
* Mon Nov 16 14:10:10 2015 from the following file(s):
|
||||
* Wed Mar 2 11:45:36 2016 from the following file(s):
|
||||
*
|
||||
* dot11f.frms
|
||||
*
|
||||
|
|
@ -2012,44 +2012,6 @@ uint32_t dot11f_get_packed_tlv_P2PManageability(
|
|||
********************************************************************/
|
||||
|
||||
|
||||
/* EID 2 (0x02) */
|
||||
typedef struct sDot11fIECondensedCountryStr {
|
||||
uint8_t present;
|
||||
uint8_t countryStr[2];
|
||||
} tDot11fIECondensedCountryStr;
|
||||
|
||||
#define DOT11F_EID_CONDENSEDCOUNTRYSTR (2)
|
||||
|
||||
/* N.B. These #defines do *not* include the EID & length */
|
||||
#define DOT11F_IE_CONDENSEDCOUNTRYSTR_MIN_LEN (2)
|
||||
|
||||
#define DOT11F_IE_CONDENSEDCOUNTRYSTR_MAX_LEN (2)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
uint32_t dot11f_unpack_ie_condensed_country_str(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint8_t,
|
||||
tDot11fIECondensedCountryStr*);
|
||||
|
||||
uint32_t dot11f_pack_ie_condensed_country_str(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIECondensedCountryStr *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_ie_CondensedCountryStr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIECondensedCountryStr *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* EID 2 (0x02) */
|
||||
typedef struct sDot11fIEGTK {
|
||||
uint8_t present;
|
||||
|
|
@ -2211,45 +2173,6 @@ uint32_t dot11f_get_packed_ie_R1KH_ID(
|
|||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* EID 1 (0x01) */
|
||||
typedef struct sDot11fIETSFInfo {
|
||||
uint8_t present;
|
||||
uint16_t TsfOffset;
|
||||
uint16_t BeaconIntvl;
|
||||
} tDot11fIETSFInfo;
|
||||
|
||||
#define DOT11F_EID_TSFINFO (1)
|
||||
|
||||
/* N.B. These #defines do *not* include the EID & length */
|
||||
#define DOT11F_IE_TSFINFO_MIN_LEN (4)
|
||||
|
||||
#define DOT11F_IE_TSFINFO_MAX_LEN (4)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
uint32_t dot11f_unpack_ie_tsf_info(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint8_t,
|
||||
tDot11fIETSFInfo*);
|
||||
|
||||
uint32_t dot11f_pack_ie_tsf_info(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIETSFInfo *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_ie_TSFInfo(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIETSFInfo *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* EID 51 (0x33) */
|
||||
typedef struct sDot11fIEAPChannelReport {
|
||||
uint8_t present;
|
||||
|
|
@ -2406,6 +2329,44 @@ uint32_t dot11f_get_packed_ie_BeaconReporting(
|
|||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* EID 2 (0x02) */
|
||||
typedef struct sDot11fIECondensedCountryStr {
|
||||
uint8_t present;
|
||||
uint8_t countryStr[2];
|
||||
} tDot11fIECondensedCountryStr;
|
||||
|
||||
#define DOT11F_EID_CONDENSEDCOUNTRYSTR (2)
|
||||
|
||||
/* N.B. These #defines do *not* include the EID & length */
|
||||
#define DOT11F_IE_CONDENSEDCOUNTRYSTR_MIN_LEN (2)
|
||||
|
||||
#define DOT11F_IE_CONDENSEDCOUNTRYSTR_MAX_LEN (2)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
uint32_t dot11f_unpack_ie_condensed_country_str(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint8_t,
|
||||
tDot11fIECondensedCountryStr*);
|
||||
|
||||
uint32_t dot11f_pack_ie_condensed_country_str(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIECondensedCountryStr *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_ie_CondensedCountryStr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIECondensedCountryStr *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* EID 66 (0x42) */
|
||||
typedef struct sDot11fIEMeasurementPilot {
|
||||
uint8_t present;
|
||||
|
|
@ -2904,6 +2865,45 @@ uint32_t dot11f_get_packed_ie_TSDelay(
|
|||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* EID 1 (0x01) */
|
||||
typedef struct sDot11fIETSFInfo {
|
||||
uint8_t present;
|
||||
uint16_t TsfOffset;
|
||||
uint16_t BeaconIntvl;
|
||||
} tDot11fIETSFInfo;
|
||||
|
||||
#define DOT11F_EID_TSFINFO (1)
|
||||
|
||||
/* N.B. These #defines do *not* include the EID & length */
|
||||
#define DOT11F_IE_TSFINFO_MIN_LEN (4)
|
||||
|
||||
#define DOT11F_IE_TSFINFO_MAX_LEN (4)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
uint32_t dot11f_unpack_ie_tsf_info(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint8_t,
|
||||
tDot11fIETSFInfo*);
|
||||
|
||||
uint32_t dot11f_pack_ie_tsf_info(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIETSFInfo *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_ie_TSFInfo(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIETSFInfo *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* EID 13 (0x0d) */
|
||||
typedef struct sDot11fIETSPEC {
|
||||
uint8_t present;
|
||||
|
|
@ -3371,6 +3371,216 @@ uint32_t dot11f_get_packed_ie_WiderBWChanSwitchAnn(
|
|||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* EID 1 (0x01) */
|
||||
typedef struct sDot11fIEazimuth_req {
|
||||
uint8_t present;
|
||||
uint8_t request;
|
||||
} tDot11fIEazimuth_req;
|
||||
|
||||
#define DOT11F_EID_AZIMUTH_REQ (1)
|
||||
|
||||
/* N.B. These #defines do *not* include the EID & length */
|
||||
#define DOT11F_IE_AZIMUTH_REQ_MIN_LEN (1)
|
||||
|
||||
#define DOT11F_IE_AZIMUTH_REQ_MAX_LEN (1)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
uint32_t dot11f_unpack_ie_azimuth_req(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint8_t,
|
||||
tDot11fIEazimuth_req*);
|
||||
|
||||
uint32_t dot11f_pack_ie_azimuth_req(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIEazimuth_req *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_ie_azimuth_req(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIEazimuth_req *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* EID 4 (0x04) */
|
||||
typedef struct sDot11fIEmax_age {
|
||||
uint8_t present;
|
||||
uint16_t max_age;
|
||||
} tDot11fIEmax_age;
|
||||
|
||||
#define DOT11F_EID_MAX_AGE (4)
|
||||
|
||||
/* N.B. These #defines do *not* include the EID & length */
|
||||
#define DOT11F_IE_MAX_AGE_MIN_LEN (2)
|
||||
|
||||
#define DOT11F_IE_MAX_AGE_MAX_LEN (2)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
uint32_t dot11f_unpack_ie_max_age(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint8_t,
|
||||
tDot11fIEmax_age*);
|
||||
|
||||
uint32_t dot11f_pack_ie_max_age(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIEmax_age *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_ie_max_age(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIEmax_age *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* EID 52 (0x34) */
|
||||
typedef struct sDot11fIEneighbor_rpt {
|
||||
uint8_t present;
|
||||
uint8_t bssid[6];
|
||||
uint8_t APReachability:2;
|
||||
uint8_t Security:1;
|
||||
uint8_t KeyScope:1;
|
||||
uint8_t SpecMgmtCap:1;
|
||||
uint8_t QosCap:1;
|
||||
uint8_t apsd:1;
|
||||
uint8_t rrm:1;
|
||||
uint8_t DelayedBA:1;
|
||||
uint8_t ImmBA:1;
|
||||
uint8_t MobilityDomain:1;
|
||||
uint8_t reserved:5;
|
||||
uint16_t reserved1;
|
||||
uint8_t regulatoryClass;
|
||||
uint8_t channel;
|
||||
uint8_t PhyType;
|
||||
tDot11fIETSFInfo TSFInfo;
|
||||
tDot11fIECondensedCountryStr CondensedCountryStr;
|
||||
tDot11fIEMeasurementPilot MeasurementPilot;
|
||||
tDot11fIERRMEnabledCap RRMEnabledCap;
|
||||
tDot11fIEMultiBssid MultiBssid;
|
||||
} tDot11fIEneighbor_rpt;
|
||||
|
||||
#define DOT11F_EID_NEIGHBOR_RPT (52)
|
||||
|
||||
/* N.B. These #defines do *not* include the EID & length */
|
||||
#define DOT11F_IE_NEIGHBOR_RPT_MIN_LEN (13)
|
||||
|
||||
#define DOT11F_IE_NEIGHBOR_RPT_MAX_LEN (546)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
uint32_t dot11f_unpack_ie_neighbor_rpt(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint8_t,
|
||||
tDot11fIEneighbor_rpt*);
|
||||
|
||||
uint32_t dot11f_pack_ie_neighbor_rpt(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIEneighbor_rpt *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_ie_neighbor_rpt(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIEneighbor_rpt *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* EID 2 (0x02) */
|
||||
typedef struct sDot11fIEreq_mac_addr {
|
||||
uint8_t present;
|
||||
uint8_t addr[6];
|
||||
} tDot11fIEreq_mac_addr;
|
||||
|
||||
#define DOT11F_EID_REQ_MAC_ADDR (2)
|
||||
|
||||
/* N.B. These #defines do *not* include the EID & length */
|
||||
#define DOT11F_IE_REQ_MAC_ADDR_MIN_LEN (6)
|
||||
|
||||
#define DOT11F_IE_REQ_MAC_ADDR_MAX_LEN (6)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
uint32_t dot11f_unpack_ie_req_mac_addr(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint8_t,
|
||||
tDot11fIEreq_mac_addr*);
|
||||
|
||||
uint32_t dot11f_pack_ie_req_mac_addr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIEreq_mac_addr *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_ie_req_mac_addr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIEreq_mac_addr *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* EID 3 (0x03) */
|
||||
typedef struct sDot11fIEtgt_mac_addr {
|
||||
uint8_t present;
|
||||
uint8_t addr[6];
|
||||
} tDot11fIEtgt_mac_addr;
|
||||
|
||||
#define DOT11F_EID_TGT_MAC_ADDR (3)
|
||||
|
||||
/* N.B. These #defines do *not* include the EID & length */
|
||||
#define DOT11F_IE_TGT_MAC_ADDR_MIN_LEN (6)
|
||||
|
||||
#define DOT11F_IE_TGT_MAC_ADDR_MAX_LEN (6)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* C++ */
|
||||
uint32_t dot11f_unpack_ie_tgt_mac_addr(
|
||||
tpAniSirGlobal,
|
||||
uint8_t *,
|
||||
uint8_t,
|
||||
tDot11fIEtgt_mac_addr*);
|
||||
|
||||
uint32_t dot11f_pack_ie_tgt_mac_addr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIEtgt_mac_addr *,
|
||||
uint8_t *,
|
||||
uint32_t,
|
||||
uint32_t*);
|
||||
|
||||
uint32_t dot11f_get_packed_ie_tgt_mac_addr(
|
||||
tpAniSirGlobal,
|
||||
tDot11fIEtgt_mac_addr *,
|
||||
uint32_t*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* End extern "C". */
|
||||
#endif /* C++ */
|
||||
|
||||
/* EID 197 (0xc5) */
|
||||
typedef struct sDot11fIEAID {
|
||||
uint8_t present;
|
||||
|
|
@ -4588,13 +4798,26 @@ typedef struct sDot11fIEMeasurementRequest {
|
|||
uint16_t num_APChannelReport;
|
||||
tDot11fIEAPChannelReport APChannelReport[2];
|
||||
} Beacon; /* measurement_type = 5 */
|
||||
struct {
|
||||
uint8_t loc_subject;
|
||||
tDot11fIEazimuth_req azimuth_req;
|
||||
tDot11fIEreq_mac_addr req_mac_addr;
|
||||
tDot11fIEtgt_mac_addr tgt_mac_addr;
|
||||
tDot11fIEmax_age max_age;
|
||||
} lci; /* measurement_type = 8 */
|
||||
struct {
|
||||
uint16_t random_interval;
|
||||
uint8_t min_ap_count;
|
||||
tDot11fIEneighbor_rpt neighbor_rpt;
|
||||
tDot11fIEmax_age max_age;
|
||||
} ftmrr; /* measurement_type = 16 */
|
||||
} measurement_request;
|
||||
} tDot11fIEMeasurementRequest;
|
||||
|
||||
#define DOT11F_EID_MEASUREMENTREQUEST (38)
|
||||
|
||||
/* N.B. These #defines do *not* include the EID & length */
|
||||
#define DOT11F_IE_MEASUREMENTREQUEST_MIN_LEN (14)
|
||||
#define DOT11F_IE_MEASUREMENTREQUEST_MIN_LEN (4)
|
||||
|
||||
#define DOT11F_IE_MEASUREMENTREQUEST_MAX_LEN (16)
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue