blob: 2b2317d896f6d8e7e3b993679bcfebf5b9b39a78 [file] [log] [blame]
/*
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef DOT11F_H
#define DOT11F_H
/*
* \file dot11f.h
*
* \brief Structures, function prototypes & definitions
* for working with 802.11 Frames
*
*
* This file was automatically generated by 'framesc'
* Mon Aug 27 19:08:28 2018 from the following file(s):
*
* dot11f.frms
*
* PLEASE DON'T EDIT THIS FILE BY HAND!
*
* Instead, please update the input files & re-run
* 'framesc' For more information on 'framesc' & the
* frames language, run 'framesc --help'.
*
*/
typedef uint32_t tDOT11F_U64[2];
#if defined (_MSC_VER)
#pragma warning (disable:4214) /* nonstandard extension used */
#endif /* Microsoft C/C++ bit field types other than int */
#if !defined __must_check
#define __must_check
#endif
#if !defined unlikely
#define unlikely(x) (x)
#endif
/*
* Frames Return Codes:
*
* Success is indicated by a return value of zero. Failure is indicated
* by the presence of the high bit. Warnings encountered in the course
* of a successful parse are indicated by various bits in the lower 31
* being turned on.
*
* For instance, a return value of 0x0000000a would indicate that the
* parse succeeded, but that a mandatory IE wasn't present, and some IE
* was found to be corrupt.
*
*
*/
#define DOT11F_PARSE_SUCCESS (0x00000000)
#define DOT11F_UNKNOWN_IES (0x00000001)
#define DOT11F_MANDATORY_IE_MISSING (0x00000002)
#define DOT11F_INCOMPLETE_IE (0x00000004)
#define DOT11F_SKIPPED_BAD_IE (0x00000008)
#define DOT11F_LAST_IE_TOO_LONG (0x00000010)
#define DOT11F_DUPLICATE_IE (0x00000020)
#define DOT11F_BAD_FIXED_VALUE (0x00000040)
#define DOT11F_INCOMPLETE_TLV (0x00000080)
#define DOT11F_INVALID_TLV_LENGTH (0x00000100)
#define DOT11F_SKIPPED_BAD_TLV (0x00000200)
#define DOT11F_UNKNOWN_TLVS (0x00000400)
#define DOT11F_LAST_TLV_TOO_LONG (0x00000800)
#define DOT11F_MANDATORY_TLV_MISSING (0x00001000)
#define DOT11F_INTERNAL_ERROR (0x10000001)
#define DOT11F_MISSING_FIXED_FIELD (0x10000002)
#define DOT11F_BAD_INPUT_BUFFER (0x10000003)
#define DOT11F_BAD_OUTPUT_BUFFER (0x10000004)
#define DOT11F_BUFFER_OVERFLOW (0x10000005)
#define DOT11F_FAILED(code) ((code) & 0x10000000)
#define DOT11F_SUCCEEDED(code) ((code) == 0)
#define DOT11F_WARNED(code) (!DOT11F_SUCCEEDED(code) && !DOT11F_FAILED(code))
/*********************************************************************
* Fixed Fields *
********************************************************************/
typedef struct sDot11fFfAID {
uint16_t associd;
} tDot11fFfAID;
#define DOT11F_FF_AID_LEN (2)
void dot11f_unpack_ff_AID(tpAniSirGlobal, uint8_t *, tDot11fFfAID *);
void dot11f_pack_ff_aid(tpAniSirGlobal, tDot11fFfAID *, uint8_t *);
typedef struct sDot11fFfAction {
uint8_t action;
} tDot11fFfAction;
#define DOT11F_FF_ACTION_LEN (1)
void dot11f_unpack_ff_action(tpAniSirGlobal, uint8_t *, tDot11fFfAction *);
void dot11f_pack_ff_action(tpAniSirGlobal, tDot11fFfAction *, uint8_t *);
typedef struct sDot11fFfAuthAlgo {
uint16_t algo;
} tDot11fFfAuthAlgo;
#define DOT11F_FF_AUTHALGO_LEN (2)
void dot11f_unpack_ff_AuthAlgo(tpAniSirGlobal, uint8_t *,
tDot11fFfAuthAlgo *);
void dot11f_pack_ff_auth_algo(tpAniSirGlobal, tDot11fFfAuthAlgo *, uint8_t *);
typedef struct sDot11fFfAuthSeqNo {
uint16_t no;
} tDot11fFfAuthSeqNo;
#define DOT11F_FF_AUTHSEQNO_LEN (2)
void dot11f_unpack_ff_AuthSeqNo(tpAniSirGlobal, uint8_t *,
tDot11fFfAuthSeqNo *);
void dot11f_pack_ff_auth_seq_no(tpAniSirGlobal, tDot11fFfAuthSeqNo *,
uint8_t *);
typedef struct sDot11fFfBeaconInterval {
uint16_t interval;
} tDot11fFfBeaconInterval;
#define DOT11F_FF_BEACONINTERVAL_LEN (2)
void dot11f_unpack_ff_BeaconInterval(tpAniSirGlobal, uint8_t *,
tDot11fFfBeaconInterval *);
void dot11f_pack_ff_beacon_interval(tpAniSirGlobal, tDot11fFfBeaconInterval *,
uint8_t *);
typedef struct sDot11fFfCapabilities {
uint16_t ess:1;
uint16_t ibss:1;
uint16_t cfPollable:1;
uint16_t cfPollReq:1;
uint16_t privacy:1;
uint16_t shortPreamble:1;
uint16_t pbcc:1;
uint16_t channelAgility:1;
uint16_t spectrumMgt:1;
uint16_t qos:1;
uint16_t shortSlotTime:1;
uint16_t apsd:1;
uint16_t rrm:1;
uint16_t dsssOfdm:1;
uint16_t delayedBA:1;
uint16_t immediateBA:1;
} tDot11fFfCapabilities;
#define DOT11F_FF_CAPABILITIES_LEN (2)
void dot11f_unpack_ff_capabilities(tpAniSirGlobal, uint8_t *,
tDot11fFfCapabilities *);
void dot11f_pack_ff_capabilities(tpAniSirGlobal, tDot11fFfCapabilities *,
uint8_t *);
#define CAPABILITIES_ESS_OFFSET 0
#define CAPABILITIES_ESS_WIDTH 1
#define CAPABILITIES_IBSS_OFFSET 1
#define CAPABILITIES_IBSS_WIDTH 1
#define CAPABILITIES_CFPOLLABLE_OFFSET 2
#define CAPABILITIES_CFPOLLABLE_WIDTH 1
#define CAPABILITIES_CFPOLLREQ_OFFSET 3
#define CAPABILITIES_CFPOLLREQ_WIDTH 1
#define CAPABILITIES_PRIVACY_OFFSET 4
#define CAPABILITIES_PRIVACY_WIDTH 1
#define CAPABILITIES_SHORTPREAMBLE_OFFSET 5
#define CAPABILITIES_SHORTPREAMBLE_WIDTH 1
#define CAPABILITIES_PBCC_OFFSET 6
#define CAPABILITIES_PBCC_WIDTH 1
#define CAPABILITIES_CHANNELAGILITY_OFFSET 7
#define CAPABILITIES_CHANNELAGILITY_WIDTH 1
#define CAPABILITIES_SPECTRUMMGT_OFFSET 8
#define CAPABILITIES_SPECTRUMMGT_WIDTH 1
#define CAPABILITIES_QOS_OFFSET 9
#define CAPABILITIES_QOS_WIDTH 1
#define CAPABILITIES_SHORTSLOTTIME_OFFSET 10
#define CAPABILITIES_SHORTSLOTTIME_WIDTH 1
#define CAPABILITIES_APSD_OFFSET 11
#define CAPABILITIES_APSD_WIDTH 1
#define CAPABILITIES_RRM_OFFSET 12
#define CAPABILITIES_RRM_WIDTH 1
#define CAPABILITIES_DSSSOFDM_OFFSET 13
#define CAPABILITIES_DSSSOFDM_WIDTH 1
#define CAPABILITIES_DELAYEDBA_OFFSET 14
#define CAPABILITIES_DELAYEDBA_WIDTH 1
#define CAPABILITIES_IMMEDIATEBA_OFFSET 15
#define CAPABILITIES_IMMEDIATEBA_WIDTH 1
typedef struct sDot11fFfCategory {
uint8_t category;
} tDot11fFfCategory;
#define DOT11F_FF_CATEGORY_LEN (1)
void dot11f_unpack_ff_category(tpAniSirGlobal, uint8_t *,
tDot11fFfCategory *);
void dot11f_pack_ff_category(tpAniSirGlobal, tDot11fFfCategory *, uint8_t *);
typedef struct sDot11fFfCurrentAPAddress {
uint8_t mac[6];
} tDot11fFfCurrentAPAddress;
#define DOT11F_FF_CURRENTAPADDRESS_LEN (6)
void dot11f_unpack_ff_current_ap_address(tpAniSirGlobal, uint8_t *,
tDot11fFfCurrentAPAddress *);
void dot11f_pack_ff_current_ap_address(tpAniSirGlobal,
tDot11fFfCurrentAPAddress *,
uint8_t *);
typedef struct sDot11fFfDialogToken {
uint8_t token;
} tDot11fFfDialogToken;
#define DOT11F_FF_DIALOGTOKEN_LEN (1)
void dot11f_unpack_ff_dialog_token(tpAniSirGlobal, uint8_t *,
tDot11fFfDialogToken *);
void dot11f_pack_ff_dialog_token(tpAniSirGlobal, tDot11fFfDialogToken *,
uint8_t *);
typedef struct sDot11fFfLinkMargin {
uint8_t linkMargin;
} tDot11fFfLinkMargin;
#define DOT11F_FF_LINKMARGIN_LEN (1)
void dot11f_unpack_ff_link_margin(tpAniSirGlobal, uint8_t *,
tDot11fFfLinkMargin *);
void dot11f_pack_ff_link_margin(tpAniSirGlobal, tDot11fFfLinkMargin *,
uint8_t *);
typedef struct sDot11fFfListenInterval {
uint16_t interval;
} tDot11fFfListenInterval;
#define DOT11F_FF_LISTENINTERVAL_LEN (2)
void dot11f_unpack_ff_ListenInterval(tpAniSirGlobal, uint8_t *,
tDot11fFfListenInterval *);
void dot11f_pack_ff_listen_interval(tpAniSirGlobal, tDot11fFfListenInterval *,
uint8_t *);
typedef struct sDot11fFfMaxTxPower {
uint8_t maxTxPower;
} tDot11fFfMaxTxPower;
#define DOT11F_FF_MAXTXPOWER_LEN (1)
void dot11f_unpack_ff_max_tx_power(tpAniSirGlobal, uint8_t *,
tDot11fFfMaxTxPower *);
void dot11f_pack_ff_max_tx_power(tpAniSirGlobal, tDot11fFfMaxTxPower *,
uint8_t *);
typedef struct sDot11fFfNumOfRepetitions {
uint16_t repetitions;
} tDot11fFfNumOfRepetitions;
#define DOT11F_FF_NUMOFREPETITIONS_LEN (2)
void dot11f_unpack_ff_num_of_repetitions(tpAniSirGlobal, uint8_t *,
tDot11fFfNumOfRepetitions *);
void dot11f_pack_ff_num_of_repetitions(tpAniSirGlobal,
tDot11fFfNumOfRepetitions *,
uint8_t *);
typedef struct sDot11fFfOperatingMode {
uint8_t chanWidth:2;
uint8_t reserved:2;
uint8_t rxNSS:3;
uint8_t rxNSSType:1;
} tDot11fFfOperatingMode;
#define DOT11F_FF_OPERATINGMODE_LEN (1)
void dot11f_unpack_ff_operating_mode(tpAniSirGlobal, uint8_t *,
tDot11fFfOperatingMode *);
void dot11f_pack_ff_operating_mode(tpAniSirGlobal, tDot11fFfOperatingMode *,
uint8_t *);
#define OPERATINGMODE_CHANWIDTH_OFFSET 0
#define OPERATINGMODE_CHANWIDTH_WIDTH 2
#define OPERATINGMODE_RESERVED_OFFSET 2
#define OPERATINGMODE_RESERVED_WIDTH 2
#define OPERATINGMODE_RXNSS_OFFSET 4
#define OPERATINGMODE_RXNSS_WIDTH 3
#define OPERATINGMODE_RXNSSTYPE_OFFSET 7
#define OPERATINGMODE_RXNSSTYPE_WIDTH 1
typedef struct sDot11fFfRCPI {
uint8_t rcpi;
} tDot11fFfRCPI;
#define DOT11F_FF_RCPI_LEN (1)
void dot11f_unpack_ff_rcpi(tpAniSirGlobal, uint8_t *, tDot11fFfRCPI *);
void dot11f_pack_ff_rcpi(tpAniSirGlobal, tDot11fFfRCPI *, uint8_t *);
typedef struct sDot11fFfRSNI {
uint8_t rsni;
} tDot11fFfRSNI;
#define DOT11F_FF_RSNI_LEN (1)
void dot11f_unpack_ff_rsni(tpAniSirGlobal, uint8_t *, tDot11fFfRSNI *);
void dot11f_pack_ff_rsni(tpAniSirGlobal, tDot11fFfRSNI *, uint8_t *);
typedef struct sDot11fFfReason {
uint16_t code;
} tDot11fFfReason;
#define DOT11F_FF_REASON_LEN (2)
void dot11f_unpack_ff_Reason(tpAniSirGlobal, uint8_t *, tDot11fFfReason *);
void dot11f_pack_ff_reason(tpAniSirGlobal, tDot11fFfReason *, uint8_t *);
typedef struct sDot11fFfRxAntennaId {
uint8_t antennaId;
} tDot11fFfRxAntennaId;
#define DOT11F_FF_RXANTENNAID_LEN (1)
void dot11f_unpack_ff_rx_antenna_id(tpAniSirGlobal, uint8_t *,
tDot11fFfRxAntennaId *);
void dot11f_pack_ff_rx_antenna_id(tpAniSirGlobal, tDot11fFfRxAntennaId *,
uint8_t *);
typedef struct sDot11fFfSMPowerModeSet {
uint8_t PowerSave_En:1;
uint8_t Mode:1;
uint8_t reserved:6;
} tDot11fFfSMPowerModeSet;
#define DOT11F_FF_SMPOWERMODESET_LEN (1)
void dot11f_unpack_ff_sm_power_mode_set(tpAniSirGlobal, uint8_t *,
tDot11fFfSMPowerModeSet *);
void dot11f_pack_ff_sm_power_mode_set(tpAniSirGlobal, tDot11fFfSMPowerModeSet *,
uint8_t *);
#define SMPOWERMODESET_POWERSAVE_EN_OFFSET 0
#define SMPOWERMODESET_POWERSAVE_EN_WIDTH 1
#define SMPOWERMODESET_MODE_OFFSET 1
#define SMPOWERMODESET_MODE_WIDTH 1
#define SMPOWERMODESET_RESERVED_OFFSET 2
#define SMPOWERMODESET_RESERVED_WIDTH 6
typedef struct sDot11fFfStatus {
uint16_t status;
} tDot11fFfStatus;
#define DOT11F_FF_STATUS_LEN (2)
void dot11f_unpack_ff_Status(tpAniSirGlobal, uint8_t *, tDot11fFfStatus *);
void dot11f_pack_ff_status(tpAniSirGlobal, tDot11fFfStatus *, uint8_t *);
typedef struct sDot11fFfStatusCode {
uint8_t statusCode;
} tDot11fFfStatusCode;
#define DOT11F_FF_STATUSCODE_LEN (1)
void dot11f_unpack_ff_status_code(tpAniSirGlobal, uint8_t *,
tDot11fFfStatusCode *);
void dot11f_pack_ff_status_code(tpAniSirGlobal, tDot11fFfStatusCode *,
uint8_t *);
typedef struct sDot11fFfTPCEleID {
uint8_t TPCId;
} tDot11fFfTPCEleID;
#define DOT11F_FF_TPCELEID_LEN (1)
void dot11f_unpack_ff_tpc_ele_id(tpAniSirGlobal, uint8_t *,
tDot11fFfTPCEleID *);
void dot11f_pack_ff_tpc_ele_id(tpAniSirGlobal, tDot11fFfTPCEleID *, uint8_t *);
typedef struct sDot11fFfTPCEleLen {
uint8_t TPCLen;
} tDot11fFfTPCEleLen;
#define DOT11F_FF_TPCELELEN_LEN (1)
void dot11f_unpack_ff_tpc_ele_len(tpAniSirGlobal, uint8_t *,
tDot11fFfTPCEleLen *);
void dot11f_pack_ff_tpc_ele_len(tpAniSirGlobal, tDot11fFfTPCEleLen *,
uint8_t *);
typedef struct sDot11fFfTSInfo {
uint32_t traffic_type:1;
uint32_t tsid:4;
uint32_t direction:2;
uint32_t access_policy:2;
uint32_t aggregation:1;
uint32_t psb:1;
uint32_t user_priority:3;
uint32_t tsinfo_ack_pol:2;
uint32_t schedule:1;
uint32_t unused:15;
} tDot11fFfTSInfo;
#define DOT11F_FF_TSINFO_LEN (3)
void dot11f_unpack_ff_ts_info(tpAniSirGlobal, uint8_t *, tDot11fFfTSInfo *);
void dot11f_pack_ff_ts_info(tpAniSirGlobal, tDot11fFfTSInfo *, uint8_t *);
#define TSINFO_TRAFFIC_TYPE_OFFSET 0
#define TSINFO_TRAFFIC_TYPE_WIDTH 1
#define TSINFO_TSID_OFFSET 1
#define TSINFO_TSID_WIDTH 4
#define TSINFO_DIRECTION_OFFSET 5
#define TSINFO_DIRECTION_WIDTH 2
#define TSINFO_ACCESS_POLICY_OFFSET 7
#define TSINFO_ACCESS_POLICY_WIDTH 2
#define TSINFO_AGGREGATION_OFFSET 9
#define TSINFO_AGGREGATION_WIDTH 1
#define TSINFO_PSB_OFFSET 10
#define TSINFO_PSB_WIDTH 1
#define TSINFO_USER_PRIORITY_OFFSET 11
#define TSINFO_USER_PRIORITY_WIDTH 3
#define TSINFO_TSINFO_ACK_POL_OFFSET 14
#define TSINFO_TSINFO_ACK_POL_WIDTH 2
#define TSINFO_SCHEDULE_OFFSET 16
#define TSINFO_SCHEDULE_WIDTH 1
#define TSINFO_UNUSED_OFFSET 17
#define TSINFO_UNUSED_WIDTH 15
typedef struct sDot11fFfTimeStamp {
tDOT11F_U64 timestamp;
} tDot11fFfTimeStamp;
#define DOT11F_FF_TIMESTAMP_LEN (8)
void dot11f_unpack_ff_time_stamp(tpAniSirGlobal, uint8_t *,
tDot11fFfTimeStamp *);
void dot11f_pack_ff_time_stamp(tpAniSirGlobal, tDot11fFfTimeStamp *,
uint8_t *);
typedef struct sDot11fFfTransactionId {
uint8_t transId[2];
} tDot11fFfTransactionId;
#define DOT11F_FF_TRANSACTIONID_LEN (2)
void dot11f_unpack_ff_transaction_id(tpAniSirGlobal, uint8_t *,
tDot11fFfTransactionId *);
void dot11f_pack_ff_transaction_id(tpAniSirGlobal, tDot11fFfTransactionId *,
uint8_t *);
typedef struct sDot11fFfTxAntennaId {
uint8_t antennaId;
} tDot11fFfTxAntennaId;
#define DOT11F_FF_TXANTENNAID_LEN (1)
void dot11f_unpack_ff_tx_antenna_id(tpAniSirGlobal, uint8_t *,
tDot11fFfTxAntennaId *);
void dot11f_pack_ff_tx_antenna_id(tpAniSirGlobal, tDot11fFfTxAntennaId *,
uint8_t *);
typedef struct sDot11fFfTxPower {
uint8_t txPower;
} tDot11fFfTxPower;
#define DOT11F_FF_TXPOWER_LEN (1)
void dot11f_unpack_ff_tx_power(tpAniSirGlobal, uint8_t *,
tDot11fFfTxPower *);
void dot11f_pack_ff_tx_power(tpAniSirGlobal, tDot11fFfTxPower *, uint8_t *);
typedef struct sDot11fFfVhtMembershipStatusArray {
uint8_t membershipStatusArray[8];
} tDot11fFfVhtMembershipStatusArray;
#define DOT11F_FF_VHTMEMBERSHIPSTATUSARRAY_LEN (8)
void dot11f_unpack_ff_vht_membership_status_array(tpAniSirGlobal, uint8_t *,
tDot11fFfVhtMembershipStatusArray *);
void dot11f_pack_ff_vht_membership_status_array(tpAniSirGlobal,
tDot11fFfVhtMembershipStatusArray *,
uint8_t *);
typedef struct sDot11fFfVhtUserPositionArray {
uint8_t userPositionArray[16];
} tDot11fFfVhtUserPositionArray;
#define DOT11F_FF_VHTUSERPOSITIONARRAY_LEN (16)
void dot11f_unpack_ff_vht_user_position_array(tpAniSirGlobal, uint8_t *,
tDot11fFfVhtUserPositionArray *);
void dot11f_pack_ff_vht_user_position_array(tpAniSirGlobal,
tDot11fFfVhtUserPositionArray *,
uint8_t *);
typedef struct sDot11fFfaddba_param_set {
uint16_t amsdu_supp:1;
uint16_t policy:1;
uint16_t tid:4;
uint16_t buff_size:10;
} tDot11fFfaddba_param_set;
#define DOT11F_FF_ADDBA_PARAM_SET_LEN (2)
void dot11f_unpack_ff_addba_param_set(tpAniSirGlobal, uint8_t *,
tDot11fFfaddba_param_set *);
void dot11f_pack_ff_addba_param_set(tpAniSirGlobal, tDot11fFfaddba_param_set *,
uint8_t *);
#define ADDBA_PARAM_SET_AMSDU_SUPP_OFFSET 0
#define ADDBA_PARAM_SET_AMSDU_SUPP_WIDTH 1
#define ADDBA_PARAM_SET_POLICY_OFFSET 1
#define ADDBA_PARAM_SET_POLICY_WIDTH 1
#define ADDBA_PARAM_SET_TID_OFFSET 2
#define ADDBA_PARAM_SET_TID_WIDTH 4
#define ADDBA_PARAM_SET_BUFF_SIZE_OFFSET 6
#define ADDBA_PARAM_SET_BUFF_SIZE_WIDTH 10
typedef struct sDot11fFfba_start_seq_ctrl {
uint16_t frag_number:4;
uint16_t ssn:12;
} tDot11fFfba_start_seq_ctrl;
#define DOT11F_FF_BA_START_SEQ_CTRL_LEN (2)
void dot11f_unpack_ff_ba_start_seq_ctrl(tpAniSirGlobal, uint8_t *,
tDot11fFfba_start_seq_ctrl *);
void dot11f_pack_ff_ba_start_seq_ctrl(tpAniSirGlobal,
tDot11fFfba_start_seq_ctrl *,
uint8_t *);
#define BA_START_SEQ_CTRL_FRAG_NUMBER_OFFSET 0
#define BA_START_SEQ_CTRL_FRAG_NUMBER_WIDTH 4
#define BA_START_SEQ_CTRL_SSN_OFFSET 4
#define BA_START_SEQ_CTRL_SSN_WIDTH 12
typedef struct sDot11fFfba_timeout {
uint16_t timeout;
} tDot11fFfba_timeout;
#define DOT11F_FF_BA_TIMEOUT_LEN (2)
void dot11f_unpack_ff_ba_timeout(tpAniSirGlobal, uint8_t *,
tDot11fFfba_timeout *);
void dot11f_pack_ff_ba_timeout(tpAniSirGlobal, tDot11fFfba_timeout *,
uint8_t *);
typedef struct sDot11fFfdelba_param_set {
uint16_t reserved:11;
uint16_t initiator:1;
uint16_t tid:4;
} tDot11fFfdelba_param_set;
#define DOT11F_FF_DELBA_PARAM_SET_LEN (2)
void dot11f_unpack_ff_delba_param_set(tpAniSirGlobal, uint8_t *,
tDot11fFfdelba_param_set *);
void dot11f_pack_ff_delba_param_set(tpAniSirGlobal, tDot11fFfdelba_param_set *,
uint8_t *);
#define DELBA_PARAM_SET_RESERVED_OFFSET 0
#define DELBA_PARAM_SET_RESERVED_WIDTH 11
#define DELBA_PARAM_SET_INITIATOR_OFFSET 11
#define DELBA_PARAM_SET_INITIATOR_WIDTH 1
#define DELBA_PARAM_SET_TID_OFFSET 12
#define DELBA_PARAM_SET_TID_WIDTH 4
typedef struct sDot11fFfext_chan_switch_ann_action {
uint32_t switch_mode:8;
uint32_t op_class:8;
uint32_t new_channel:8;
uint32_t switch_count:8;
} tDot11fFfext_chan_switch_ann_action;
#define DOT11F_FF_EXT_CHAN_SWITCH_ANN_ACTION_LEN (4)
void dot11f_unpack_ff_ext_chan_switch_ann_action(tpAniSirGlobal, uint8_t *,
tDot11fFfext_chan_switch_ann_action *);
void dot11f_pack_ff_ext_chan_switch_ann_action(tpAniSirGlobal,
tDot11fFfext_chan_switch_ann_action *,
uint8_t *);
#define EXT_CHAN_SWITCH_ANN_ACTION_SWITCH_MODE_OFFSET 0
#define EXT_CHAN_SWITCH_ANN_ACTION_SWITCH_MODE_WIDTH 8
#define EXT_CHAN_SWITCH_ANN_ACTION_OP_CLASS_OFFSET 8
#define EXT_CHAN_SWITCH_ANN_ACTION_OP_CLASS_WIDTH 8
#define EXT_CHAN_SWITCH_ANN_ACTION_NEW_CHANNEL_OFFSET 16
#define EXT_CHAN_SWITCH_ANN_ACTION_NEW_CHANNEL_WIDTH 8
#define EXT_CHAN_SWITCH_ANN_ACTION_SWITCH_COUNT_OFFSET 24
#define EXT_CHAN_SWITCH_ANN_ACTION_SWITCH_COUNT_WIDTH 8
typedef struct sDot11fFfp2p_action_oui {
uint8_t oui_data[4];
} tDot11fFfp2p_action_oui;
#define DOT11F_FF_P2P_ACTION_OUI_LEN (4)
void dot11f_unpack_ff_p2p_action_oui(tpAniSirGlobal, uint8_t *,
tDot11fFfp2p_action_oui *);
void dot11f_pack_ff_p2p_action_oui(tpAniSirGlobal, tDot11fFfp2p_action_oui *,
uint8_t *);
typedef struct sDot11fFfp2p_action_subtype {
uint8_t subtype;
} tDot11fFfp2p_action_subtype;
#define DOT11F_FF_P2P_ACTION_SUBTYPE_LEN (1)
void dot11f_unpack_ff_p2p_action_subtype(tpAniSirGlobal, uint8_t *,
tDot11fFfp2p_action_subtype *);
void dot11f_pack_ff_p2p_action_subtype(tpAniSirGlobal,
tDot11fFfp2p_action_subtype *,
uint8_t *);
/*********************************************************************
* TLVs *
********************************************************************/
/* ID 1 (0x0001) */
typedef struct sDot11fTLVAuthorizedMACs {
uint8_t present;
uint8_t mac[6];
} tDot11fTLVAuthorizedMACs;
#define DOT11F_TLV_AUTHORIZEDMACS (1)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_AUTHORIZEDMACS_MIN_LEN (6)
#define DOT11F_TLV_AUTHORIZEDMACS_MAX_LEN (6)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_authorized_ma_cs(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVAuthorizedMACs*);
uint32_t dot11f_pack_tlv_authorized_ma_cs(
tpAniSirGlobal,
tDot11fTLVAuthorizedMACs *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_AuthorizedMACs(
tpAniSirGlobal,
tDot11fTLVAuthorizedMACs *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 3 (0x0003) */
typedef struct sDot11fTLVRequestToEnroll {
uint8_t present;
uint8_t req;
} tDot11fTLVRequestToEnroll;
#define DOT11F_TLV_REQUESTTOENROLL (3)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_REQUESTTOENROLL_MIN_LEN (1)
#define DOT11F_TLV_REQUESTTOENROLL_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_RequestToEnroll(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVRequestToEnroll*);
uint32_t dot11f_pack_tlv_request_to_enroll(
tpAniSirGlobal,
tDot11fTLVRequestToEnroll *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_RequestToEnroll(
tpAniSirGlobal,
tDot11fTLVRequestToEnroll *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 0 (0x0000) */
typedef struct sDot11fTLVVersion2 {
uint8_t present;
uint8_t minor:4;
uint8_t major:4;
} tDot11fTLVVersion2;
#define DOT11F_TLV_VERSION2 (0)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_VERSION2_MIN_LEN (1)
#define DOT11F_TLV_VERSION2_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_version2(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVVersion2*);
uint32_t dot11f_pack_tlv_version2(
tpAniSirGlobal,
tDot11fTLVVersion2 *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_Version2(
tpAniSirGlobal,
tDot11fTLVVersion2 *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4183 (0x1057) */
typedef struct sDot11fTLVAPSetupLocked {
uint8_t present;
uint8_t fLocked;
} tDot11fTLVAPSetupLocked;
#define DOT11F_TLV_APSETUPLOCKED (4183)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_APSETUPLOCKED_MIN_LEN (3)
#define DOT11F_TLV_APSETUPLOCKED_MAX_LEN (3)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_APSetupLocked(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVAPSetupLocked*);
uint32_t dot11f_pack_tlv_ap_setup_locked(
tpAniSirGlobal,
tDot11fTLVAPSetupLocked *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_APSetupLocked(
tpAniSirGlobal,
tDot11fTLVAPSetupLocked *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4098 (0x1002) */
typedef struct sDot11fTLVAssociationState {
uint8_t present;
uint16_t state;
} tDot11fTLVAssociationState;
#define DOT11F_TLV_ASSOCIATIONSTATE (4098)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_ASSOCIATIONSTATE_MIN_LEN (4)
#define DOT11F_TLV_ASSOCIATIONSTATE_MAX_LEN (4)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_AssociationState(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVAssociationState*);
uint32_t dot11f_pack_tlv_association_state(
tpAniSirGlobal,
tDot11fTLVAssociationState *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_AssociationState(
tpAniSirGlobal,
tDot11fTLVAssociationState *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4104 (0x1008) */
typedef struct sDot11fTLVConfigMethods {
uint8_t present;
uint16_t methods;
} tDot11fTLVConfigMethods;
#define DOT11F_TLV_CONFIGMETHODS (4104)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_CONFIGMETHODS_MIN_LEN (4)
#define DOT11F_TLV_CONFIGMETHODS_MAX_LEN (4)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_ConfigMethods(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVConfigMethods*);
uint32_t dot11f_pack_tlv_config_methods(
tpAniSirGlobal,
tDot11fTLVConfigMethods *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_ConfigMethods(
tpAniSirGlobal,
tDot11fTLVConfigMethods *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4105 (0x1009) */
typedef struct sDot11fTLVConfigurationError {
uint8_t present;
uint16_t error;
} tDot11fTLVConfigurationError;
#define DOT11F_TLV_CONFIGURATIONERROR (4105)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_CONFIGURATIONERROR_MIN_LEN (4)
#define DOT11F_TLV_CONFIGURATIONERROR_MAX_LEN (4)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_ConfigurationError(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVConfigurationError*);
uint32_t dot11f_pack_tlv_configuration_error(
tpAniSirGlobal,
tDot11fTLVConfigurationError *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_ConfigurationError(
tpAniSirGlobal,
tDot11fTLVConfigurationError *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4113 (0x1011) */
typedef struct sDot11fTLVDeviceName {
uint8_t present;
uint8_t num_text;
uint8_t text[32];
} tDot11fTLVDeviceName;
#define DOT11F_TLV_DEVICENAME (4113)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_DEVICENAME_MIN_LEN (2)
#define DOT11F_TLV_DEVICENAME_MAX_LEN (34)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_device_name(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVDeviceName*);
uint32_t dot11f_pack_tlv_device_name(
tpAniSirGlobal,
tDot11fTLVDeviceName *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_DeviceName(
tpAniSirGlobal,
tDot11fTLVDeviceName *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4114 (0x1012) */
typedef struct sDot11fTLVDevicePasswordID {
uint8_t present;
uint16_t id;
} tDot11fTLVDevicePasswordID;
#define DOT11F_TLV_DEVICEPASSWORDID (4114)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_DEVICEPASSWORDID_MIN_LEN (4)
#define DOT11F_TLV_DEVICEPASSWORDID_MAX_LEN (4)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_DevicePasswordID(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVDevicePasswordID*);
uint32_t dot11f_pack_tlv_device_password_id(
tpAniSirGlobal,
tDot11fTLVDevicePasswordID *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_DevicePasswordID(
tpAniSirGlobal,
tDot11fTLVDevicePasswordID *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 8 (0x0008) */
typedef struct sDot11fTLVExtendedListenTiming {
uint8_t present;
uint16_t availibilityPeriod;
uint16_t availibilityInterval;
} tDot11fTLVExtendedListenTiming;
#define DOT11F_TLV_EXTENDEDLISTENTIMING (8)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_EXTENDEDLISTENTIMING_MIN_LEN (5)
#define DOT11F_TLV_EXTENDEDLISTENTIMING_MAX_LEN (5)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_extended_listen_timing(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVExtendedListenTiming*);
uint32_t dot11f_pack_tlv_extended_listen_timing(
tpAniSirGlobal,
tDot11fTLVExtendedListenTiming *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_ExtendedListenTiming(
tpAniSirGlobal,
tDot11fTLVExtendedListenTiming *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 6 (0x0006) */
typedef struct sDot11fTLVListenChannel {
uint8_t present;
uint8_t countryString[3];
uint8_t regulatoryClass;
uint8_t channel;
} tDot11fTLVListenChannel;
#define DOT11F_TLV_LISTENCHANNEL (6)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_LISTENCHANNEL_MIN_LEN (6)
#define DOT11F_TLV_LISTENCHANNEL_MAX_LEN (6)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_listen_channel(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVListenChannel*);
uint32_t dot11f_pack_tlv_listen_channel(
tpAniSirGlobal,
tDot11fTLVListenChannel *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_ListenChannel(
tpAniSirGlobal,
tDot11fTLVListenChannel *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4129 (0x1021) */
typedef struct sDot11fTLVManufacturer {
uint8_t present;
uint8_t num_name;
uint8_t name[64];
} tDot11fTLVManufacturer;
#define DOT11F_TLV_MANUFACTURER (4129)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_MANUFACTURER_MIN_LEN (2)
#define DOT11F_TLV_MANUFACTURER_MAX_LEN (66)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_manufacturer(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVManufacturer*);
uint32_t dot11f_pack_tlv_manufacturer(
tpAniSirGlobal,
tDot11fTLVManufacturer *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_Manufacturer(
tpAniSirGlobal,
tDot11fTLVManufacturer *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 1 (0x0001) */
typedef struct sDot11fTLVMinorReasonCode {
uint8_t present;
uint8_t minorReasonCode;
} tDot11fTLVMinorReasonCode;
#define DOT11F_TLV_MINORREASONCODE (1)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_MINORREASONCODE_MIN_LEN (2)
#define DOT11F_TLV_MINORREASONCODE_MAX_LEN (2)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_MinorReasonCode(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVMinorReasonCode*);
uint32_t dot11f_pack_tlv_minor_reason_code(
tpAniSirGlobal,
tDot11fTLVMinorReasonCode *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_MinorReasonCode(
tpAniSirGlobal,
tDot11fTLVMinorReasonCode *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4131 (0x1023) */
typedef struct sDot11fTLVModelName {
uint8_t present;
uint8_t num_text;
uint8_t text[32];
} tDot11fTLVModelName;
#define DOT11F_TLV_MODELNAME (4131)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_MODELNAME_MIN_LEN (2)
#define DOT11F_TLV_MODELNAME_MAX_LEN (34)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_model_name(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVModelName*);
uint32_t dot11f_pack_tlv_model_name(
tpAniSirGlobal,
tDot11fTLVModelName *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_ModelName(
tpAniSirGlobal,
tDot11fTLVModelName *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4132 (0x1024) */
typedef struct sDot11fTLVModelNumber {
uint8_t present;
uint8_t num_text;
uint8_t text[32];
} tDot11fTLVModelNumber;
#define DOT11F_TLV_MODELNUMBER (4132)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_MODELNUMBER_MIN_LEN (2)
#define DOT11F_TLV_MODELNUMBER_MAX_LEN (34)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_model_number(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVModelNumber*);
uint32_t dot11f_pack_tlv_model_number(
tpAniSirGlobal,
tDot11fTLVModelNumber *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_ModelNumber(
tpAniSirGlobal,
tDot11fTLVModelNumber *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 12 (0x000c) */
typedef struct sDot11fTLVNoticeOfAbsence {
uint8_t present;
uint8_t index;
uint8_t CTSWindowOppPS;
uint8_t num_NoADesc;
uint8_t NoADesc[36];
} tDot11fTLVNoticeOfAbsence;
#define DOT11F_TLV_NOTICEOFABSENCE (12)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_NOTICEOFABSENCE_MIN_LEN (3)
#define DOT11F_TLV_NOTICEOFABSENCE_MAX_LEN (39)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_notice_of_absence(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVNoticeOfAbsence*);
uint32_t dot11f_pack_tlv_notice_of_absence(
tpAniSirGlobal,
tDot11fTLVNoticeOfAbsence *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_NoticeOfAbsence(
tpAniSirGlobal,
tDot11fTLVNoticeOfAbsence *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 17 (0x0011) */
typedef struct sDot11fTLVOperatingChannel {
uint8_t present;
uint8_t countryString[3];
uint8_t regulatoryClass;
uint8_t channel;
} tDot11fTLVOperatingChannel;
#define DOT11F_TLV_OPERATINGCHANNEL (17)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_OPERATINGCHANNEL_MIN_LEN (6)
#define DOT11F_TLV_OPERATINGCHANNEL_MAX_LEN (6)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_operating_channel(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVOperatingChannel*);
uint32_t dot11f_pack_tlv_operating_channel(
tpAniSirGlobal,
tDot11fTLVOperatingChannel *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_OperatingChannel(
tpAniSirGlobal,
tDot11fTLVOperatingChannel *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 2 (0x0002) */
typedef struct sDot11fTLVP2PCapability {
uint8_t present;
uint8_t deviceCapability;
uint8_t groupCapability;
} tDot11fTLVP2PCapability;
#define DOT11F_TLV_P2PCAPABILITY (2)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_P2PCAPABILITY_MIN_LEN (3)
#define DOT11F_TLV_P2PCAPABILITY_MAX_LEN (3)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_p2_p_capability(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVP2PCapability*);
uint32_t dot11f_pack_tlv_p2_p_capability(
tpAniSirGlobal,
tDot11fTLVP2PCapability *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_P2PCapability(
tpAniSirGlobal,
tDot11fTLVP2PCapability *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 3 (0x0003) */
typedef struct sDot11fTLVP2PDeviceId {
uint8_t present;
uint8_t P2PDeviceAddress[6];
} tDot11fTLVP2PDeviceId;
#define DOT11F_TLV_P2PDEVICEID (3)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_P2PDEVICEID_MIN_LEN (7)
#define DOT11F_TLV_P2PDEVICEID_MAX_LEN (7)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_p2_p_device_id(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVP2PDeviceId*);
uint32_t dot11f_pack_tlv_p2_p_device_id(
tpAniSirGlobal,
tDot11fTLVP2PDeviceId *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_P2PDeviceId(
tpAniSirGlobal,
tDot11fTLVP2PDeviceId *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 13 (0x000d) */
typedef struct sDot11fTLVP2PDeviceInfo {
uint8_t present;
uint8_t P2PDeviceAddress[6];
uint16_t configMethod;
uint8_t primaryDeviceType[8];
tDot11fTLVDeviceName DeviceName;
} tDot11fTLVP2PDeviceInfo;
#define DOT11F_TLV_P2PDEVICEINFO (13)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_P2PDEVICEINFO_MIN_LEN (17)
#define DOT11F_TLV_P2PDEVICEINFO_MAX_LEN (53)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_p2_p_device_info(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVP2PDeviceInfo*);
uint32_t dot11f_pack_tlv_p2_p_device_info(
tpAniSirGlobal,
tDot11fTLVP2PDeviceInfo *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_P2PDeviceInfo(
tpAniSirGlobal,
tDot11fTLVP2PDeviceInfo *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 14 (0x000e) */
typedef struct sDot11fTLVP2PGroupInfo {
uint8_t present;
uint8_t num_P2PClientInfoDesc;
uint8_t P2PClientInfoDesc[1024];
} tDot11fTLVP2PGroupInfo;
#define DOT11F_TLV_P2PGROUPINFO (14)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_P2PGROUPINFO_MIN_LEN (1)
#define DOT11F_TLV_P2PGROUPINFO_MAX_LEN (1025)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_p2_p_group_info(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVP2PGroupInfo*);
uint32_t dot11f_pack_tlv_p2_p_group_info(
tpAniSirGlobal,
tDot11fTLVP2PGroupInfo *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_P2PGroupInfo(
tpAniSirGlobal,
tDot11fTLVP2PGroupInfo *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 0 (0x0000) */
typedef struct sDot11fTLVP2PStatus {
uint8_t present;
uint8_t status;
} tDot11fTLVP2PStatus;
#define DOT11F_TLV_P2PSTATUS (0)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_P2PSTATUS_MIN_LEN (2)
#define DOT11F_TLV_P2PSTATUS_MAX_LEN (2)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_P2PStatus(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVP2PStatus*);
uint32_t dot11f_pack_tlv_p2_p_status(
tpAniSirGlobal,
tDot11fTLVP2PStatus *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_P2PStatus(
tpAniSirGlobal,
tDot11fTLVP2PStatus *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4180 (0x1054) */
typedef struct sDot11fTLVPrimaryDeviceType {
uint8_t present;
uint16_t primary_category;
uint8_t oui[4];
uint16_t sub_category;
} tDot11fTLVPrimaryDeviceType;
#define DOT11F_TLV_PRIMARYDEVICETYPE (4180)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_PRIMARYDEVICETYPE_MIN_LEN (10)
#define DOT11F_TLV_PRIMARYDEVICETYPE_MAX_LEN (10)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_primary_device_type(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVPrimaryDeviceType*);
uint32_t dot11f_pack_tlv_primary_device_type(
tpAniSirGlobal,
tDot11fTLVPrimaryDeviceType *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_PrimaryDeviceType(
tpAniSirGlobal,
tDot11fTLVPrimaryDeviceType *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4156 (0x103c) */
typedef struct sDot11fTLVRFBands {
uint8_t present;
uint8_t bands;
} tDot11fTLVRFBands;
#define DOT11F_TLV_RFBANDS (4156)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_RFBANDS_MIN_LEN (3)
#define DOT11F_TLV_RFBANDS_MAX_LEN (3)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_RFBands(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVRFBands*);
uint32_t dot11f_pack_tlv_rf_bands(
tpAniSirGlobal,
tDot11fTLVRFBands *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_RFBands(
tpAniSirGlobal,
tDot11fTLVRFBands *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4202 (0x106a) */
typedef struct sDot11fTLVRequestDeviceType {
uint8_t present;
uint16_t primary_category;
uint8_t oui[4];
uint16_t sub_category;
} tDot11fTLVRequestDeviceType;
#define DOT11F_TLV_REQUESTDEVICETYPE (4202)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_REQUESTDEVICETYPE_MIN_LEN (10)
#define DOT11F_TLV_REQUESTDEVICETYPE_MAX_LEN (10)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_request_device_type(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVRequestDeviceType*);
uint32_t dot11f_pack_tlv_request_device_type(
tpAniSirGlobal,
tDot11fTLVRequestDeviceType *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_RequestDeviceType(
tpAniSirGlobal,
tDot11fTLVRequestDeviceType *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4154 (0x103a) */
typedef struct sDot11fTLVRequestType {
uint8_t present;
uint8_t reqType;
} tDot11fTLVRequestType;
#define DOT11F_TLV_REQUESTTYPE (4154)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_REQUESTTYPE_MIN_LEN (3)
#define DOT11F_TLV_REQUESTTYPE_MAX_LEN (3)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_RequestType(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVRequestType*);
uint32_t dot11f_pack_tlv_request_type(
tpAniSirGlobal,
tDot11fTLVRequestType *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_RequestType(
tpAniSirGlobal,
tDot11fTLVRequestType *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4155 (0x103b) */
typedef struct sDot11fTLVResponseType {
uint8_t present;
uint8_t resType;
} tDot11fTLVResponseType;
#define DOT11F_TLV_RESPONSETYPE (4155)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_RESPONSETYPE_MIN_LEN (3)
#define DOT11F_TLV_RESPONSETYPE_MAX_LEN (3)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_ResponseType(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVResponseType*);
uint32_t dot11f_pack_tlv_response_type(
tpAniSirGlobal,
tDot11fTLVResponseType *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_ResponseType(
tpAniSirGlobal,
tDot11fTLVResponseType *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4161 (0x1041) */
typedef struct sDot11fTLVSelectedRegistrar {
uint8_t present;
uint8_t selected;
} tDot11fTLVSelectedRegistrar;
#define DOT11F_TLV_SELECTEDREGISTRAR (4161)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_SELECTEDREGISTRAR_MIN_LEN (3)
#define DOT11F_TLV_SELECTEDREGISTRAR_MAX_LEN (3)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_SelectedRegistrar(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVSelectedRegistrar*);
uint32_t dot11f_pack_tlv_selected_registrar(
tpAniSirGlobal,
tDot11fTLVSelectedRegistrar *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_SelectedRegistrar(
tpAniSirGlobal,
tDot11fTLVSelectedRegistrar *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4179 (0x1053) */
typedef struct sDot11fTLVSelectedRegistrarConfigMethods {
uint8_t present;
uint16_t methods;
} tDot11fTLVSelectedRegistrarConfigMethods;
#define DOT11F_TLV_SELECTEDREGISTRARCONFIGMETHODS (4179)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_SELECTEDREGISTRARCONFIGMETHODS_MIN_LEN (4)
#define DOT11F_TLV_SELECTEDREGISTRARCONFIGMETHODS_MAX_LEN (4)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_SelectedRegistrarConfigMethods(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVSelectedRegistrarConfigMethods*);
uint32_t dot11f_pack_tlv_selected_registrar_config_methods(
tpAniSirGlobal,
tDot11fTLVSelectedRegistrarConfigMethods *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_SelectedRegistrarConfigMethods(
tpAniSirGlobal,
tDot11fTLVSelectedRegistrarConfigMethods *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4162 (0x1042) */
typedef struct sDot11fTLVSerialNumber {
uint8_t present;
uint8_t num_text;
uint8_t text[32];
} tDot11fTLVSerialNumber;
#define DOT11F_TLV_SERIALNUMBER (4162)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_SERIALNUMBER_MIN_LEN (2)
#define DOT11F_TLV_SERIALNUMBER_MAX_LEN (34)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_serial_number(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVSerialNumber*);
uint32_t dot11f_pack_tlv_serial_number(
tpAniSirGlobal,
tDot11fTLVSerialNumber *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_SerialNumber(
tpAniSirGlobal,
tDot11fTLVSerialNumber *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4167 (0x1047) */
typedef struct sDot11fTLVUUID_E {
uint8_t present;
uint8_t uuid[16];
} tDot11fTLVUUID_E;
#define DOT11F_TLV_UUID_E (4167)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_UUID_E_MIN_LEN (18)
#define DOT11F_TLV_UUID_E_MAX_LEN (18)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_uuid_e(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVUUID_E*);
uint32_t dot11f_pack_tlv_uuid_e(
tpAniSirGlobal,
tDot11fTLVUUID_E *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_UUID_E(
tpAniSirGlobal,
tDot11fTLVUUID_E *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4168 (0x1048) */
typedef struct sDot11fTLVUUID_R {
uint8_t present;
uint8_t uuid[16];
} tDot11fTLVUUID_R;
#define DOT11F_TLV_UUID_R (4168)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_UUID_R_MIN_LEN (18)
#define DOT11F_TLV_UUID_R_MAX_LEN (18)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_uuid_r(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVUUID_R*);
uint32_t dot11f_pack_tlv_uuid_r(
tpAniSirGlobal,
tDot11fTLVUUID_R *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_UUID_R(
tpAniSirGlobal,
tDot11fTLVUUID_R *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4169 (0x1049) */
typedef struct sDot11fTLVVendorExtension {
uint8_t present;
uint8_t vendorId[3];
tDot11fTLVVersion2 Version2;
tDot11fTLVAuthorizedMACs AuthorizedMACs;
tDot11fTLVRequestToEnroll RequestToEnroll;
} tDot11fTLVVendorExtension;
#define DOT11F_TLV_VENDOREXTENSION (4169)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_VENDOREXTENSION_MIN_LEN (5)
#define DOT11F_TLV_VENDOREXTENSION_MAX_LEN (19)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_vendor_extension(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVVendorExtension*);
uint32_t dot11f_pack_tlv_vendor_extension(
tpAniSirGlobal,
tDot11fTLVVendorExtension *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_VendorExtension(
tpAniSirGlobal,
tDot11fTLVVendorExtension *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4170 (0x104a) */
typedef struct sDot11fTLVVersion {
uint8_t present;
uint8_t minor:4;
uint8_t major:4;
} tDot11fTLVVersion;
#define DOT11F_TLV_VERSION (4170)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_VERSION_MIN_LEN (3)
#define DOT11F_TLV_VERSION_MAX_LEN (3)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_version(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVVersion*);
uint32_t dot11f_pack_tlv_version(
tpAniSirGlobal,
tDot11fTLVVersion *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_Version(
tpAniSirGlobal,
tDot11fTLVVersion *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4164 (0x1044) */
typedef struct sDot11fTLVWPSState {
uint8_t present;
uint8_t state;
} tDot11fTLVWPSState;
#define DOT11F_TLV_WPSSTATE (4164)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_WPSSTATE_MIN_LEN (3)
#define DOT11F_TLV_WPSSTATE_MAX_LEN (3)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_WPSState(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVWPSState*);
uint32_t dot11f_pack_tlv_wps_state(
tpAniSirGlobal,
tDot11fTLVWPSState *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_WPSState(
tpAniSirGlobal,
tDot11fTLVWPSState *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 4 (0x0004) */
typedef struct sDot11fTLVassoc_disallowed {
uint8_t present;
uint8_t reason_code;
} tDot11fTLVassoc_disallowed;
#define DOT11F_TLV_ASSOC_DISALLOWED (4)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_ASSOC_DISALLOWED_MIN_LEN (1)
#define DOT11F_TLV_ASSOC_DISALLOWED_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_assoc_disallowed(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVassoc_disallowed*);
uint32_t dot11f_pack_tlv_assoc_disallowed(
tpAniSirGlobal,
tDot11fTLVassoc_disallowed *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_assoc_disallowed(
tpAniSirGlobal,
tDot11fTLVassoc_disallowed *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 8 (0x0008) */
typedef struct sDot11fTLVassoc_retry_delay {
uint8_t present;
uint16_t delay;
} tDot11fTLVassoc_retry_delay;
#define DOT11F_TLV_ASSOC_RETRY_DELAY (8)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_ASSOC_RETRY_DELAY_MIN_LEN (2)
#define DOT11F_TLV_ASSOC_RETRY_DELAY_MAX_LEN (2)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_assoc_retry_delay(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVassoc_retry_delay*);
uint32_t dot11f_pack_tlv_assoc_retry_delay(
tpAniSirGlobal,
tDot11fTLVassoc_retry_delay *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_assoc_retry_delay(
tpAniSirGlobal,
tDot11fTLVassoc_retry_delay *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 3 (0x0003) */
typedef struct sDot11fTLVcellular_data_cap {
uint8_t present;
uint8_t cellular_connectivity;
} tDot11fTLVcellular_data_cap;
#define DOT11F_TLV_CELLULAR_DATA_CAP (3)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_CELLULAR_DATA_CAP_MIN_LEN (1)
#define DOT11F_TLV_CELLULAR_DATA_CAP_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_cellular_data_cap(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVcellular_data_cap*);
uint32_t dot11f_pack_tlv_cellular_data_cap(
tpAniSirGlobal,
tDot11fTLVcellular_data_cap *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_cellular_data_cap(
tpAniSirGlobal,
tDot11fTLVcellular_data_cap *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 5 (0x0005) */
typedef struct sDot11fTLVcellular_data_con_pref {
uint8_t present;
uint8_t cellular_preference;
} tDot11fTLVcellular_data_con_pref;
#define DOT11F_TLV_CELLULAR_DATA_CON_PREF (5)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_CELLULAR_DATA_CON_PREF_MIN_LEN (1)
#define DOT11F_TLV_CELLULAR_DATA_CON_PREF_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_cellular_data_con_pref(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVcellular_data_con_pref*);
uint32_t dot11f_pack_tlv_cellular_data_con_pref(
tpAniSirGlobal,
tDot11fTLVcellular_data_con_pref *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_cellular_data_con_pref(
tpAniSirGlobal,
tDot11fTLVcellular_data_con_pref *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 1 (0x0001) */
typedef struct sDot11fTLVmbo_ap_cap {
uint8_t present;
uint8_t mbo_cap_ind;
} tDot11fTLVmbo_ap_cap;
#define DOT11F_TLV_MBO_AP_CAP (1)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_MBO_AP_CAP_MIN_LEN (1)
#define DOT11F_TLV_MBO_AP_CAP_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_mbo_ap_cap(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVmbo_ap_cap*);
uint32_t dot11f_pack_tlv_mbo_ap_cap(
tpAniSirGlobal,
tDot11fTLVmbo_ap_cap *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_mbo_ap_cap(
tpAniSirGlobal,
tDot11fTLVmbo_ap_cap *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 2 (0x0002) */
typedef struct sDot11fTLVnon_prefferd_chan_rep {
uint8_t present;
uint8_t oper_class;
uint8_t num_channel_report;
uint8_t channel_report[254];
} tDot11fTLVnon_prefferd_chan_rep;
#define DOT11F_TLV_NON_PREFFERD_CHAN_REP (2)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_NON_PREFFERD_CHAN_REP_MIN_LEN (4)
#define DOT11F_TLV_NON_PREFFERD_CHAN_REP_MAX_LEN (255)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_non_prefferd_chan_rep(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVnon_prefferd_chan_rep*);
uint32_t dot11f_pack_tlv_non_prefferd_chan_rep(
tpAniSirGlobal,
tDot11fTLVnon_prefferd_chan_rep *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_non_prefferd_chan_rep(
tpAniSirGlobal,
tDot11fTLVnon_prefferd_chan_rep *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 101 (0x0065) */
typedef struct sDot11fTLVoce_cap {
uint8_t present;
uint8_t oce_release:3;
uint8_t is_sta_cfon:1;
uint8_t non_oce_ap_present:1;
uint8_t reserved:3;
} tDot11fTLVoce_cap;
#define DOT11F_TLV_OCE_CAP (101)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_OCE_CAP_MIN_LEN (1)
#define DOT11F_TLV_OCE_CAP_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_oce_cap(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVoce_cap*);
uint32_t dot11f_pack_tlv_oce_cap(
tpAniSirGlobal,
tDot11fTLVoce_cap *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_oce_cap(
tpAniSirGlobal,
tDot11fTLVoce_cap *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 103 (0x0067) */
typedef struct sDot11fTLVreduced_wan_metrics {
uint8_t present;
uint8_t downlink_av_cap:4;
uint8_t uplink_av_cap:4;
} tDot11fTLVreduced_wan_metrics;
#define DOT11F_TLV_REDUCED_WAN_METRICS (103)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_REDUCED_WAN_METRICS_MIN_LEN (1)
#define DOT11F_TLV_REDUCED_WAN_METRICS_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_reduced_wan_metrics(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVreduced_wan_metrics*);
uint32_t dot11f_pack_tlv_reduced_wan_metrics(
tpAniSirGlobal,
tDot11fTLVreduced_wan_metrics *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_reduced_wan_metrics(
tpAniSirGlobal,
tDot11fTLVreduced_wan_metrics *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 102 (0x0066) */
typedef struct sDot11fTLVrssi_assoc_rej {
uint8_t present;
uint8_t delta_rssi;
uint8_t retry_delay;
} tDot11fTLVrssi_assoc_rej;
#define DOT11F_TLV_RSSI_ASSOC_REJ (102)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_RSSI_ASSOC_REJ_MIN_LEN (2)
#define DOT11F_TLV_RSSI_ASSOC_REJ_MAX_LEN (2)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_rssi_assoc_rej(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVrssi_assoc_rej*);
uint32_t dot11f_pack_tlv_rssi_assoc_rej(
tpAniSirGlobal,
tDot11fTLVrssi_assoc_rej *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_rssi_assoc_rej(
tpAniSirGlobal,
tDot11fTLVrssi_assoc_rej *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 6 (0x0006) */
typedef struct sDot11fTLVtransition_reason {
uint8_t present;
uint8_t transition_reason_code;
} tDot11fTLVtransition_reason;
#define DOT11F_TLV_TRANSITION_REASON (6)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_TRANSITION_REASON_MIN_LEN (1)
#define DOT11F_TLV_TRANSITION_REASON_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_transition_reason(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVtransition_reason*);
uint32_t dot11f_pack_tlv_transition_reason(
tpAniSirGlobal,
tDot11fTLVtransition_reason *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_transition_reason(
tpAniSirGlobal,
tDot11fTLVtransition_reason *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 7 (0x0007) */
typedef struct sDot11fTLVtransition_reject_reason {
uint8_t present;
uint8_t transition_reject_code;
} tDot11fTLVtransition_reject_reason;
#define DOT11F_TLV_TRANSITION_REJECT_REASON (7)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_TRANSITION_REJECT_REASON_MIN_LEN (1)
#define DOT11F_TLV_TRANSITION_REJECT_REASON_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_transition_reject_reason(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVtransition_reject_reason*);
uint32_t dot11f_pack_tlv_transition_reject_reason(
tpAniSirGlobal,
tDot11fTLVtransition_reject_reason *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_transition_reject_reason(
tpAniSirGlobal,
tDot11fTLVtransition_reject_reason *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 16 (0x0010) */
typedef struct sDot11fTLVP2PInterface {
uint8_t present;
uint8_t P2PDeviceAddress[6];
} tDot11fTLVP2PInterface;
#define DOT11F_TLV_P2PINTERFACE (16)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_P2PINTERFACE_MIN_LEN (7)
#define DOT11F_TLV_P2PINTERFACE_MAX_LEN (7)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_p2_p_interface(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVP2PInterface*);
uint32_t dot11f_pack_tlv_p2_p_interface(
tpAniSirGlobal,
tDot11fTLVP2PInterface *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_P2PInterface(
tpAniSirGlobal,
tDot11fTLVP2PInterface *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* ID 10 (0x000a) */
typedef struct sDot11fTLVP2PManageability {
uint8_t present;
uint8_t manageability;
} tDot11fTLVP2PManageability;
#define DOT11F_TLV_P2PMANAGEABILITY (10)
/* N.B. These #defines do *not* include the ID & length */
#define DOT11F_TLV_P2PMANAGEABILITY_MIN_LEN (2)
#define DOT11F_TLV_P2PMANAGEABILITY_MAX_LEN (2)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tlv_P2PManageability(
tpAniSirGlobal,
uint8_t *,
uint16_t,
tDot11fTLVP2PManageability*);
uint32_t dot11f_pack_tlv_p2_p_manageability(
tpAniSirGlobal,
tDot11fTLVP2PManageability *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_tlv_P2PManageability(
tpAniSirGlobal,
tDot11fTLVP2PManageability *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/*********************************************************************
* Information Elements *
********************************************************************/
/* EID 2 (0x02) */
typedef struct sDot11fIEGTK {
uint8_t present;
uint16_t keyId:2;
uint16_t reserved:14;
uint8_t keyLength;
uint8_t RSC[8];
uint8_t num_key;
uint8_t key[32];
} tDot11fIEGTK;
#define DOT11F_EID_GTK (2)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_GTK_MIN_LEN (16)
#define DOT11F_IE_GTK_MAX_LEN (43)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_gtk(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEGTK*,
bool);
uint32_t dot11f_pack_ie_gtk(
tpAniSirGlobal,
tDot11fIEGTK *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_GTK(
tpAniSirGlobal,
tDot11fIEGTK *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 4 (0x04) */
typedef struct sDot11fIEIGTK {
uint8_t present;
uint8_t keyID[2];
uint8_t IPN[6];
uint8_t keyLength;
uint8_t key[24];
} tDot11fIEIGTK;
#define DOT11F_EID_IGTK (4)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_IGTK_MIN_LEN (33)
#define DOT11F_IE_IGTK_MAX_LEN (33)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_igtk(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEIGTK*,
bool);
uint32_t dot11f_pack_ie_igtk(
tpAniSirGlobal,
tDot11fIEIGTK *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_IGTK(
tpAniSirGlobal,
tDot11fIEIGTK *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 3 (0x03) */
typedef struct sDot11fIER0KH_ID {
uint8_t present;
uint8_t num_PMK_R0_ID;
uint8_t PMK_R0_ID[48];
} tDot11fIER0KH_ID;
#define DOT11F_EID_R0KH_ID (3)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_R0KH_ID_MIN_LEN (1)
#define DOT11F_IE_R0KH_ID_MAX_LEN (48)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_r0_kh_id(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIER0KH_ID*,
bool);
uint32_t dot11f_pack_ie_r0_kh_id(
tpAniSirGlobal,
tDot11fIER0KH_ID *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_R0KH_ID(
tpAniSirGlobal,
tDot11fIER0KH_ID *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 1 (0x01) */
typedef struct sDot11fIER1KH_ID {
uint8_t present;
uint8_t PMK_R1_ID[6];
} tDot11fIER1KH_ID;
#define DOT11F_EID_R1KH_ID (1)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_R1KH_ID_MIN_LEN (6)
#define DOT11F_IE_R1KH_ID_MAX_LEN (6)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_r1_kh_id(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIER1KH_ID*,
bool);
uint32_t dot11f_pack_ie_r1_kh_id(
tpAniSirGlobal,
tDot11fIER1KH_ID *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_R1KH_ID(
tpAniSirGlobal,
tDot11fIER1KH_ID *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 51 (0x33) */
typedef struct sDot11fIEAPChannelReport {
uint8_t present;
uint8_t regulatoryClass;
uint8_t num_channelList;
uint8_t channelList[50];
} tDot11fIEAPChannelReport;
#define DOT11F_EID_APCHANNELREPORT (51)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_APCHANNELREPORT_MIN_LEN (1)
#define DOT11F_IE_APCHANNELREPORT_MAX_LEN (51)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ap_channel_report(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEAPChannelReport*,
bool);
uint32_t dot11f_pack_ie_ap_channel_report(
tpAniSirGlobal,
tDot11fIEAPChannelReport *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_APChannelReport(
tpAniSirGlobal,
tDot11fIEAPChannelReport *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 2 (0x02) */
typedef struct sDot11fIEBcnReportingDetail {
uint8_t present;
uint8_t reportingDetail;
} tDot11fIEBcnReportingDetail;
#define DOT11F_EID_BCNREPORTINGDETAIL (2)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_BCNREPORTINGDETAIL_MIN_LEN (1)
#define DOT11F_IE_BCNREPORTINGDETAIL_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_bcn_reporting_detail(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEBcnReportingDetail*,
bool);
uint32_t dot11f_pack_ie_bcn_reporting_detail(
tpAniSirGlobal,
tDot11fIEBcnReportingDetail *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_BcnReportingDetail(
tpAniSirGlobal,
tDot11fIEBcnReportingDetail *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 1 (0x01) */
typedef struct sDot11fIEBeaconReportFrmBody {
uint8_t present;
uint8_t num_reportedFields;
uint8_t reportedFields[224];
} tDot11fIEBeaconReportFrmBody;
#define DOT11F_EID_BEACONREPORTFRMBODY (1)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_BEACONREPORTFRMBODY_MIN_LEN (0)
#define DOT11F_IE_BEACONREPORTFRMBODY_MAX_LEN (224)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_beacon_report_frm_body(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEBeaconReportFrmBody*,
bool);
uint32_t dot11f_pack_ie_beacon_report_frm_body(
tpAniSirGlobal,
tDot11fIEBeaconReportFrmBody *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_BeaconReportFrmBody(
tpAniSirGlobal,
tDot11fIEBeaconReportFrmBody *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 1 (0x01) */
typedef struct sDot11fIEBeaconReporting {
uint8_t present;
uint8_t reportingCondition;
uint8_t threshold;
} tDot11fIEBeaconReporting;
#define DOT11F_EID_BEACONREPORTING (1)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_BEACONREPORTING_MIN_LEN (2)
#define DOT11F_IE_BEACONREPORTING_MAX_LEN (2)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_beacon_reporting(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEBeaconReporting*,
bool);
uint32_t dot11f_pack_ie_beacon_reporting(
tpAniSirGlobal,
tDot11fIEBeaconReporting *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_BeaconReporting(
tpAniSirGlobal,
tDot11fIEBeaconReporting *,
uint32_t*);
#ifdef __cplusplus
}; /* 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++ */
__must_check uint32_t dot11f_unpack_ie_condensed_country_str(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIECondensedCountryStr*,
bool);
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;
uint8_t measurementPilot;
uint8_t num_vendorSpecific;
uint8_t vendorSpecific[255];
} tDot11fIEMeasurementPilot;
#define DOT11F_EID_MEASUREMENTPILOT (66)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_MEASUREMENTPILOT_MIN_LEN (1)
#define DOT11F_IE_MEASUREMENTPILOT_MAX_LEN (256)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_measurement_pilot(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEMeasurementPilot*,
bool);
uint32_t dot11f_pack_ie_measurement_pilot(
tpAniSirGlobal,
tDot11fIEMeasurementPilot *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_MeasurementPilot(
tpAniSirGlobal,
tDot11fIEMeasurementPilot *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 71 (0x47) */
typedef struct sDot11fIEMultiBssid {
uint8_t present;
uint8_t maxBSSIDIndicator;
uint8_t num_vendorSpecific;
uint8_t vendorSpecific[255];
} tDot11fIEMultiBssid;
#define DOT11F_EID_MULTIBSSID (71)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_MULTIBSSID_MIN_LEN (1)
#define DOT11F_IE_MULTIBSSID_MAX_LEN (256)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_multi_bssid(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEMultiBssid*,
bool);
uint32_t dot11f_pack_ie_multi_bssid(
tpAniSirGlobal,
tDot11fIEMultiBssid *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_MultiBssid(
tpAniSirGlobal,
tDot11fIEMultiBssid *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 57 (0x39) */
typedef struct sDot11fIERICData {
uint8_t present;
uint8_t Identifier;
uint8_t resourceDescCount;
uint16_t statusCode;
} tDot11fIERICData;
#define DOT11F_EID_RICDATA (57)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_RICDATA_MIN_LEN (4)
#define DOT11F_IE_RICDATA_MAX_LEN (4)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ric_data(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIERICData*,
bool);
uint32_t dot11f_pack_ie_ric_data(
tpAniSirGlobal,
tDot11fIERICData *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_RICData(
tpAniSirGlobal,
tDot11fIERICData *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 75 (0x4b) */
typedef struct sDot11fIERICDescriptor {
uint8_t present;
uint8_t resourceType;
uint8_t num_variableData;
uint8_t variableData[255];
} tDot11fIERICDescriptor;
#define DOT11F_EID_RICDESCRIPTOR (75)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_RICDESCRIPTOR_MIN_LEN (1)
#define DOT11F_IE_RICDESCRIPTOR_MAX_LEN (256)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ric_descriptor(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIERICDescriptor*,
bool);
uint32_t dot11f_pack_ie_ric_descriptor(
tpAniSirGlobal,
tDot11fIERICDescriptor *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_RICDescriptor(
tpAniSirGlobal,
tDot11fIERICDescriptor *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 70 (0x46) */
typedef struct sDot11fIERRMEnabledCap {
uint8_t present;
uint8_t LinkMeasurement:1;
uint8_t NeighborRpt:1;
uint8_t parallel:1;
uint8_t repeated:1;
uint8_t BeaconPassive:1;
uint8_t BeaconActive:1;
uint8_t BeaconTable:1;
uint8_t BeaconRepCond:1;
uint8_t FrameMeasurement:1;
uint8_t ChannelLoad:1;
uint8_t NoiseHistogram:1;
uint8_t statistics:1;
uint8_t LCIMeasurement:1;
uint8_t LCIAzimuth:1;
uint8_t TCMCapability:1;
uint8_t triggeredTCM:1;
uint8_t APChanReport:1;
uint8_t RRMMIBEnabled:1;
uint8_t operatingChanMax:3;
uint8_t nonOperatinChanMax:3;
uint8_t MeasurementPilot:3;
uint8_t MeasurementPilotEnabled:1;
uint8_t NeighborTSFOffset:1;
uint8_t RCPIMeasurement:1;
uint8_t RSNIMeasurement:1;
uint8_t BssAvgAccessDelay:1;
uint8_t BSSAvailAdmission:1;
uint8_t AntennaInformation:1;
uint8_t fine_time_meas_rpt:1;
uint8_t lci_capability:1;
uint8_t reserved:4;
} tDot11fIERRMEnabledCap;
#define DOT11F_EID_RRMENABLEDCAP (70)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_RRMENABLEDCAP_MIN_LEN (5)
#define DOT11F_IE_RRMENABLEDCAP_MAX_LEN (5)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_rrm_enabled_cap(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIERRMEnabledCap*,
bool);
uint32_t dot11f_pack_ie_rrm_enabled_cap(
tpAniSirGlobal,
tDot11fIERRMEnabledCap *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_RRMEnabledCap(
tpAniSirGlobal,
tDot11fIERRMEnabledCap *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 10 (0x0a) */
typedef struct sDot11fIERequestedInfo {
uint8_t present;
uint8_t num_requested_eids;
uint8_t requested_eids[255];
} tDot11fIERequestedInfo;
#define DOT11F_EID_REQUESTEDINFO (10)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_REQUESTEDINFO_MIN_LEN (0)
#define DOT11F_IE_REQUESTEDINFO_MAX_LEN (255)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_requested_info(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIERequestedInfo*,
bool);
uint32_t dot11f_pack_ie_requested_info(
tpAniSirGlobal,
tDot11fIERequestedInfo *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_RequestedInfo(
tpAniSirGlobal,
tDot11fIERequestedInfo *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 0 (0x00) */
typedef struct sDot11fIESSID {
uint8_t present;
uint8_t num_ssid;
uint8_t ssid[32];
} tDot11fIESSID;
#define DOT11F_EID_SSID (0)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_SSID_MIN_LEN (0)
#define DOT11F_IE_SSID_MAX_LEN (32)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ssid(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIESSID*,
bool);
uint32_t dot11f_pack_ie_ssid(
tpAniSirGlobal,
tDot11fIESSID *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_SSID(
tpAniSirGlobal,
tDot11fIESSID *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 15 (0x0f) */
typedef struct sDot11fIESchedule {
uint8_t present;
uint16_t aggregation:1;
uint16_t tsid:4;
uint16_t direction:2;
uint16_t reserved:9;
uint32_t service_start_time;
uint32_t service_interval;
uint16_t max_service_dur;
uint16_t spec_interval;
} tDot11fIESchedule;
#define DOT11F_EID_SCHEDULE (15)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_SCHEDULE_MIN_LEN (14)
#define DOT11F_IE_SCHEDULE_MAX_LEN (14)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_schedule(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIESchedule*,
bool);
uint32_t dot11f_pack_ie_schedule(
tpAniSirGlobal,
tDot11fIESchedule *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_Schedule(
tpAniSirGlobal,
tDot11fIESchedule *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 14 (0x0e) */
typedef struct sDot11fIETCLAS {
uint8_t present;
uint8_t user_priority;
uint8_t classifier_type;
uint8_t classifier_mask;
union {
struct {
uint8_t source[6];
uint8_t dest[6];
uint16_t type;
} EthParams; /* classifier_type = 0 */
struct {
uint8_t version;
union {
struct {
uint8_t source[4];
uint8_t dest[4];
uint16_t src_port;
uint16_t dest_port;
uint8_t DSCP;
uint8_t proto;
uint8_t reserved;
} IpV4Params; /* version = 4 */
struct {
uint8_t source[16];
uint8_t dest[16];
uint16_t src_port;
uint16_t dest_port;
uint8_t flow_label[3];
} IpV6Params; /* version = 6 */
} params;
} IpParams; /* classifier_type = 1 */
struct {
uint16_t tag_type;
} Params8021dq; /* classifier_type = 2 */
} info;
} tDot11fIETCLAS;
#define DOT11F_EID_TCLAS (14)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_TCLAS_MIN_LEN (5)
#define DOT11F_IE_TCLAS_MAX_LEN (43)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_tclas(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIETCLAS*,
bool);
uint32_t dot11f_pack_ie_tclas(
tpAniSirGlobal,
tDot11fIETCLAS *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ietclas(
tpAniSirGlobal,
tDot11fIETCLAS *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 44 (0x2c) */
typedef struct sDot11fIETCLASSPROC {
uint8_t present;
uint8_t processing;
} tDot11fIETCLASSPROC;
#define DOT11F_EID_TCLASSPROC (44)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_TCLASSPROC_MIN_LEN (1)
#define DOT11F_IE_TCLASSPROC_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_tclasSPROC(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIETCLASSPROC*,
bool);
uint32_t dot11f_pack_ie_tclassproc(
tpAniSirGlobal,
tDot11fIETCLASSPROC *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ietclasSPROC(
tpAniSirGlobal,
tDot11fIETCLASSPROC *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 43 (0x2b) */
typedef struct sDot11fIETSDelay {
uint8_t present;
uint32_t delay;
} tDot11fIETSDelay;
#define DOT11F_EID_TSDELAY (43)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_TSDELAY_MIN_LEN (4)
#define DOT11F_IE_TSDELAY_MAX_LEN (4)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ts_delay(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIETSDelay*,
bool);
uint32_t dot11f_pack_ie_ts_delay(
tpAniSirGlobal,
tDot11fIETSDelay *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_TSDelay(
tpAniSirGlobal,
tDot11fIETSDelay *,
uint32_t*);
#ifdef __cplusplus
}; /* 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++ */
__must_check uint32_t dot11f_unpack_ie_tsf_info(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIETSFInfo*,
bool);
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;
uint16_t traffic_type:1;
uint16_t tsid:4;
uint16_t direction:2;
uint16_t access_policy:2;
uint16_t aggregation:1;
uint16_t psb:1;
uint16_t user_priority:3;
uint16_t tsinfo_ack_pol:2;
uint8_t schedule:1;
uint8_t unused:7;
uint16_t size:15;
uint16_t fixed:1;
uint16_t max_msdu_size;
uint32_t min_service_int;
uint32_t max_service_int;
uint32_t inactivity_int;
uint32_t suspension_int;
uint32_t service_start_time;
uint32_t min_data_rate;
uint32_t mean_data_rate;
uint32_t peak_data_rate;
uint32_t burst_size;
uint32_t delay_bound;
uint32_t min_phy_rate;
uint16_t surplus_bw_allowance;
uint16_t medium_time;
} tDot11fIETSPEC;
#define DOT11F_EID_TSPEC (13)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_TSPEC_MIN_LEN (55)
#define DOT11F_IE_TSPEC_MAX_LEN (55)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_tspec(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIETSPEC*,
bool);
uint32_t dot11f_pack_ie_tspec(
tpAniSirGlobal,
tDot11fIETSPEC *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_TSPEC(
tpAniSirGlobal,
tDot11fIETSPEC *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 191 (0xbf) */
typedef struct sDot11fIEVHTCaps {
uint8_t present;
uint32_t maxMPDULen:2;
uint32_t supportedChannelWidthSet:2;
uint32_t ldpcCodingCap:1;
uint32_t shortGI80MHz:1;
uint32_t shortGI160and80plus80MHz:1;
uint32_t txSTBC:1;
uint32_t rxSTBC:3;
uint32_t suBeamFormerCap:1;
uint32_t suBeamformeeCap:1;
uint32_t csnofBeamformerAntSup:3;
uint32_t numSoundingDim:3;
uint32_t muBeamformerCap:1;
uint32_t muBeamformeeCap:1;
uint32_t vhtTXOPPS:1;
uint32_t htcVHTCap:1;
uint32_t maxAMPDULenExp:3;
uint32_t vhtLinkAdaptCap:2;
uint32_t rxAntPattern:1;
uint32_t txAntPattern:1;
uint32_t reserved1:2;
uint16_t rxMCSMap;
uint16_t rxHighSupDataRate:13;
uint16_t reserved2:3;
uint16_t txMCSMap;
uint16_t txSupDataRate:13;
uint16_t reserved3:3;
} tDot11fIEVHTCaps;
#define DOT11F_EID_VHTCAPS (191)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_VHTCAPS_MIN_LEN (12)
#define DOT11F_IE_VHTCAPS_MAX_LEN (12)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_vht_caps(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEVHTCaps*,
bool);
uint32_t dot11f_pack_ie_vht_caps(
tpAniSirGlobal,
tDot11fIEVHTCaps *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_VHTCaps(
tpAniSirGlobal,
tDot11fIEVHTCaps *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 192 (0xc0) */
typedef struct sDot11fIEVHTOperation {
uint8_t present;
uint8_t chanWidth;
uint8_t chanCenterFreqSeg1;
uint8_t chanCenterFreqSeg2;
uint16_t basicMCSSet;
} tDot11fIEVHTOperation;
#define DOT11F_EID_VHTOPERATION (192)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_VHTOPERATION_MIN_LEN (5)
#define DOT11F_IE_VHTOPERATION_MAX_LEN (5)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_vht_operation(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEVHTOperation*,
bool);
uint32_t dot11f_pack_ie_vht_operation(
tpAniSirGlobal,
tDot11fIEVHTOperation *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_VHTOperation(
tpAniSirGlobal,
tDot11fIEVHTOperation *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x09} */
typedef struct sDot11fIEWMMSchedule {
uint8_t present;
uint8_t version /* Must be 1! */;
uint16_t aggregation:1;
uint16_t tsid:4;
uint16_t direction:2;
uint16_t reserved:9;
uint32_t service_start_time;
uint32_t service_interval;
uint16_t max_service_dur;
uint16_t spec_interval;
} tDot11fIEWMMSchedule;
#define DOT11F_EID_WMMSCHEDULE (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WMMSCHEDULE_MIN_LEN (20)
#define DOT11F_IE_WMMSCHEDULE_MAX_LEN (20)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wmm_schedule(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWMMSchedule*,
bool);
uint32_t dot11f_pack_ie_wmm_schedule(
tpAniSirGlobal,
tDot11fIEWMMSchedule *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_WMMSchedule(
tpAniSirGlobal,
tDot11fIEWMMSchedule *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x06} */
typedef struct sDot11fIEWMMTCLAS {
uint8_t present;
uint8_t version /* Must be 1! */;
uint8_t user_priority;
uint8_t classifier_type;
uint8_t classifier_mask;
union {
struct {
uint8_t source[6];
uint8_t dest[6];
uint16_t type;
} EthParams; /* classifier_type = 0 */
struct {
uint8_t version;
union {
struct {
uint8_t source[4];
uint8_t dest[4];
uint16_t src_port;
uint16_t dest_port;
uint8_t DSCP;
uint8_t proto;
uint8_t reserved;
} IpV4Params; /* version = 4 */
struct {
uint8_t source[16];
uint8_t dest[16];
uint16_t src_port;
uint16_t dest_port;
uint8_t flow_label[3];
} IpV6Params; /* version = 6 */
} params;
} IpParams; /* classifier_type = 1 */
struct {
uint16_t tag_type;
} Params8021dq; /* classifier_type = 2 */
} info;
} tDot11fIEWMMTCLAS;
#define DOT11F_EID_WMMTCLAS (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WMMTCLAS_MIN_LEN (11)
#define DOT11F_IE_WMMTCLAS_MAX_LEN (49)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wmmtclas(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWMMTCLAS*,
bool);
uint32_t dot11f_pack_ie_wmmtclas(
tpAniSirGlobal,
tDot11fIEWMMTCLAS *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_iewmmtclas(
tpAniSirGlobal,
tDot11fIEWMMTCLAS *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x07} */
typedef struct sDot11fIEWMMTCLASPROC {
uint8_t present;
uint8_t version /* Must be 1! */;
uint8_t processing;
} tDot11fIEWMMTCLASPROC;
#define DOT11F_EID_WMMTCLASPROC (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WMMTCLASPROC_MIN_LEN (7)
#define DOT11F_IE_WMMTCLASPROC_MAX_LEN (7)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wmmtclasproc(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWMMTCLASPROC*,
bool);
uint32_t dot11f_pack_ie_wmmtclasproc(
tpAniSirGlobal,
tDot11fIEWMMTCLASPROC *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_iewmmtclasPROC(
tpAniSirGlobal,
tDot11fIEWMMTCLASPROC *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x08} */
typedef struct sDot11fIEWMMTSDelay {
uint8_t present;
uint8_t version /* Must be 1! */;
uint32_t delay;
} tDot11fIEWMMTSDelay;
#define DOT11F_EID_WMMTSDELAY (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WMMTSDELAY_MIN_LEN (10)
#define DOT11F_IE_WMMTSDELAY_MAX_LEN (10)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wmmts_delay(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWMMTSDelay*,
bool);
uint32_t dot11f_pack_ie_wmmts_delay(
tpAniSirGlobal,
tDot11fIEWMMTSDelay *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_WMMTSDelay(
tpAniSirGlobal,
tDot11fIEWMMTSDelay *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x02} */
typedef struct sDot11fIEWMMTSPEC {
uint8_t present;
uint8_t version /* Must be 1! */;
uint16_t traffic_type:1;
uint16_t tsid:4;
uint16_t direction:2;
uint16_t access_policy:2;
uint16_t aggregation:1;
uint16_t psb:1;
uint16_t user_priority:3;
uint16_t tsinfo_ack_pol:2;
uint8_t tsinfo_rsvd:7;
uint8_t burst_size_defn:1;
uint16_t size:15;
uint16_t fixed:1;
uint16_t max_msdu_size;
uint32_t min_service_int;
uint32_t max_service_int;
uint32_t inactivity_int;
uint32_t suspension_int;
uint32_t service_start_time;
uint32_t min_data_rate;
uint32_t mean_data_rate;
uint32_t peak_data_rate;
uint32_t burst_size;
uint32_t delay_bound;
uint32_t min_phy_rate;
uint16_t surplus_bw_allowance;
uint16_t medium_time;
} tDot11fIEWMMTSPEC;
#define DOT11F_EID_WMMTSPEC (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WMMTSPEC_MIN_LEN (61)
#define DOT11F_IE_WMMTSPEC_MAX_LEN (61)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wmmtspec(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWMMTSPEC*,
bool);
uint32_t dot11f_pack_ie_wmmtspec(
tpAniSirGlobal,
tDot11fIEWMMTSPEC *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_WMMTSPEC(
tpAniSirGlobal,
tDot11fIEWMMTSPEC *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 194 (0xc2) */
typedef struct sDot11fIEWiderBWChanSwitchAnn {
uint8_t present;
uint8_t newChanWidth;
uint8_t newCenterChanFreq0;
uint8_t newCenterChanFreq1;
} tDot11fIEWiderBWChanSwitchAnn;
#define DOT11F_EID_WIDERBWCHANSWITCHANN (194)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WIDERBWCHANSWITCHANN_MIN_LEN (3)
#define DOT11F_IE_WIDERBWCHANSWITCHANN_MAX_LEN (3)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wider_bw_chan_switch_ann(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWiderBWChanSwitchAnn*,
bool);
uint32_t dot11f_pack_ie_wider_bw_chan_switch_ann(
tpAniSirGlobal,
tDot11fIEWiderBWChanSwitchAnn *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_WiderBWChanSwitchAnn(
tpAniSirGlobal,
tDot11fIEWiderBWChanSwitchAnn *,
uint32_t*);
#ifdef __cplusplus
}; /* 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++ */
__must_check uint32_t dot11f_unpack_ie_azimuth_req(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEazimuth_req*,
bool);
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 2 (0x02) */
typedef struct sDot11fIEbeacon_report_frm_body_fragment_id {
uint8_t present;
uint16_t beacon_report_id:8;
uint16_t fragment_id_number:7;
uint16_t more_fragments:1;
} tDot11fIEbeacon_report_frm_body_fragment_id;
#define DOT11F_EID_BEACON_REPORT_FRM_BODY_FRAGMENT_ID (2)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_BEACON_REPORT_FRM_BODY_FRAGMENT_ID_MIN_LEN (2)
#define DOT11F_IE_BEACON_REPORT_FRM_BODY_FRAGMENT_ID_MAX_LEN (2)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_beacon_report_frm_body_fragment_id(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEbeacon_report_frm_body_fragment_id*,
bool);
uint32_t dot11f_pack_ie_beacon_report_frm_body_fragment_id(
tpAniSirGlobal,
tDot11fIEbeacon_report_frm_body_fragment_id *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_beacon_report_frm_body_fragment_id(
tpAniSirGlobal,
tDot11fIEbeacon_report_frm_body_fragment_id *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 164 (0xa4) */
typedef struct sDot11fIElast_beacon_report_indication {
uint8_t present;
uint8_t last_fragment;
} tDot11fIElast_beacon_report_indication;
#define DOT11F_EID_LAST_BEACON_REPORT_INDICATION (164)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_LAST_BEACON_REPORT_INDICATION_MIN_LEN (1)
#define DOT11F_IE_LAST_BEACON_REPORT_INDICATION_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_last_beacon_report_indication(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIElast_beacon_report_indication*,
bool);
uint32_t dot11f_pack_ie_last_beacon_report_indication(
tpAniSirGlobal,
tDot11fIElast_beacon_report_indication *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_last_beacon_report_indication(
tpAniSirGlobal,
tDot11fIElast_beacon_report_indication *,
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++ */
__must_check uint32_t dot11f_unpack_ie_max_age(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEmax_age*,
bool);
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++ */
__must_check uint32_t dot11f_unpack_ie_neighbor_rpt(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEneighbor_rpt*,
bool);
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++ */
__must_check uint32_t dot11f_unpack_ie_req_mac_addr(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEreq_mac_addr*,
bool);
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++ */
__must_check uint32_t dot11f_unpack_ie_tgt_mac_addr(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEtgt_mac_addr*,
bool);
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 195 (0xc3) */
typedef struct sDot11fIEvht_transmit_power_env {
uint8_t present;
uint8_t num_bytes;
uint8_t bytes[5];
} tDot11fIEvht_transmit_power_env;
#define DOT11F_EID_VHT_TRANSMIT_POWER_ENV (195)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_VHT_TRANSMIT_POWER_ENV_MIN_LEN (2)
#define DOT11F_IE_VHT_TRANSMIT_POWER_ENV_MAX_LEN (5)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_vht_transmit_power_env(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEvht_transmit_power_env*,
bool);
uint32_t dot11f_pack_ie_vht_transmit_power_env(
tpAniSirGlobal,
tDot11fIEvht_transmit_power_env *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_vht_transmit_power_env(
tpAniSirGlobal,
tDot11fIEvht_transmit_power_env *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 197 (0xc5) */
typedef struct sDot11fIEAID {
uint8_t present;
uint16_t assocId;
} tDot11fIEAID;
#define DOT11F_EID_AID (197)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_AID_MIN_LEN (2)
#define DOT11F_IE_AID_MAX_LEN (2)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_aid(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEAID*,
bool);
uint32_t dot11f_pack_ie_aid(
tpAniSirGlobal,
tDot11fIEAID *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_AID(
tpAniSirGlobal,
tDot11fIEAID *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 4 (0x04) */
typedef struct sDot11fIECFParams {
uint8_t present;
uint8_t cfp_count;
uint8_t cfp_period;
uint16_t cfp_maxduration;
uint16_t cfp_durremaining;
} tDot11fIECFParams;
#define DOT11F_EID_CFPARAMS (4)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_CFPARAMS_MIN_LEN (6)
#define DOT11F_IE_CFPARAMS_MAX_LEN (6)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_cf_params(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIECFParams*,
bool);
uint32_t dot11f_pack_ie_cf_params(
tpAniSirGlobal,
tDot11fIECFParams *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_CFParams(
tpAniSirGlobal,
tDot11fIECFParams *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 16 (0x10) */
typedef struct sDot11fIEChallengeText {
uint8_t present;
uint8_t num_text;
uint8_t text[253];
} tDot11fIEChallengeText;
#define DOT11F_EID_CHALLENGETEXT (16)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_CHALLENGETEXT_MIN_LEN (1)
#define DOT11F_IE_CHALLENGETEXT_MAX_LEN (253)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_challenge_text(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEChallengeText*,
bool);
uint32_t dot11f_pack_ie_challenge_text(
tpAniSirGlobal,
tDot11fIEChallengeText *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_ChallengeText(
tpAniSirGlobal,
tDot11fIEChallengeText *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 37 (0x25) */
typedef struct sDot11fIEChanSwitchAnn {
uint8_t present;
uint8_t switchMode;
uint8_t newChannel;
uint8_t switchCount;
} tDot11fIEChanSwitchAnn;
#define DOT11F_EID_CHANSWITCHANN (37)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_CHANSWITCHANN_MIN_LEN (3)
#define DOT11F_IE_CHANSWITCHANN_MAX_LEN (3)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_chan_switch_ann(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEChanSwitchAnn*,
bool);
uint32_t dot11f_pack_ie_chan_switch_ann(
tpAniSirGlobal,
tDot11fIEChanSwitchAnn *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_ChanSwitchAnn(
tpAniSirGlobal,
tDot11fIEChanSwitchAnn *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 196 (0xc4) */
typedef struct sDot11fIEChannelSwitchWrapper {
uint8_t present;
tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
tDot11fIEvht_transmit_power_env vht_transmit_power_env;
} tDot11fIEChannelSwitchWrapper;
#define DOT11F_EID_CHANNELSWITCHWRAPPER (196)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_CHANNELSWITCHWRAPPER_MIN_LEN (0)
#define DOT11F_IE_CHANNELSWITCHWRAPPER_MAX_LEN (12)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_channel_switch_wrapper(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEChannelSwitchWrapper*,
bool);
uint32_t dot11f_pack_ie_channel_switch_wrapper(
tpAniSirGlobal,
tDot11fIEChannelSwitchWrapper *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_channel_switch_wrapper(
tpAniSirGlobal,
tDot11fIEChannelSwitchWrapper *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 7 (0x07) */
typedef struct sDot11fIECountry {
uint8_t present;
uint8_t country[3];
uint8_t num_triplets;
uint8_t triplets[84][3];
} tDot11fIECountry;
#define DOT11F_EID_COUNTRY (7)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_COUNTRY_MIN_LEN (3)
#define DOT11F_IE_COUNTRY_MAX_LEN (255)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_country(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIECountry*,
bool);
uint32_t dot11f_pack_ie_country(
tpAniSirGlobal,
tDot11fIECountry *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_country(
tpAniSirGlobal,
tDot11fIECountry *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 3 (0x03) */
typedef struct sDot11fIEDSParams {
uint8_t present;
uint8_t curr_channel;
} tDot11fIEDSParams;
#define DOT11F_EID_DSPARAMS (3)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_DSPARAMS_MIN_LEN (1)
#define DOT11F_IE_DSPARAMS_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_DSParams(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEDSParams*,
bool);
uint32_t dot11f_pack_ie_ds_params(
tpAniSirGlobal,
tDot11fIEDSParams *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_DSParams(
tpAniSirGlobal,
tDot11fIEDSParams *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 12 (0x0c) */
typedef struct sDot11fIEEDCAParamSet {
uint8_t present;
uint8_t qos;
uint8_t reserved;
uint8_t acbe_aifsn:4;
uint8_t acbe_acm:1;
uint8_t acbe_aci:2;
uint8_t unused1:1;
uint8_t acbe_acwmin:4;
uint8_t acbe_acwmax:4;
uint16_t acbe_txoplimit;
uint8_t acbk_aifsn:4;
uint8_t acbk_acm:1;
uint8_t acbk_aci:2;
uint8_t unused2:1;
uint8_t acbk_acwmin:4;
uint8_t acbk_acwmax:4;
uint16_t acbk_txoplimit;
uint8_t acvi_aifsn:4;
uint8_t acvi_acm:1;
uint8_t acvi_aci:2;
uint8_t unused3:1;
uint8_t acvi_acwmin:4;
uint8_t acvi_acwmax:4;
uint16_t acvi_txoplimit;
uint8_t acvo_aifsn:4;
uint8_t acvo_acm:1;
uint8_t acvo_aci:2;
uint8_t unused4:1;
uint8_t acvo_acwmin:4;
uint8_t acvo_acwmax:4;
uint16_t acvo_txoplimit;
} tDot11fIEEDCAParamSet;
#define DOT11F_EID_EDCAPARAMSET (12)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_EDCAPARAMSET_MIN_LEN (18)
#define DOT11F_IE_EDCAPARAMSET_MAX_LEN (18)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_edca_param_set(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEEDCAParamSet*,
bool);
uint32_t dot11f_pack_ie_edca_param_set(
tpAniSirGlobal,
tDot11fIEEDCAParamSet *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_EDCAParamSet(
tpAniSirGlobal,
tDot11fIEEDCAParamSet *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 42 (0x2a) */
typedef struct sDot11fIEERPInfo {
uint8_t present;
uint8_t non_erp_present:1;
uint8_t use_prot:1;
uint8_t barker_preamble:1;
uint8_t unused:5;
} tDot11fIEERPInfo;
#define DOT11F_EID_ERPINFO (42)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_ERPINFO_MIN_LEN (1)
#define DOT11F_IE_ERPINFO_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_erp_info(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEERPInfo*,
bool);
uint32_t dot11f_pack_ie_erp_info(
tpAniSirGlobal,
tDot11fIEERPInfo *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_ERPInfo(
tpAniSirGlobal,
tDot11fIEERPInfo *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 156 (0x9c) {OUI 0x00, 0x40, 0x96, 0x00} */
typedef struct sDot11fIEESECckmOpaque {
uint8_t present;
uint8_t num_data;
uint8_t data[20];
} tDot11fIEESECckmOpaque;
#define DOT11F_EID_ESECCKMOPAQUE (156)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_ESECCKMOPAQUE_MIN_LEN (10)
#define DOT11F_IE_ESECCKMOPAQUE_MAX_LEN (24)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ese_cckm_opaque(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEESECckmOpaque*,
bool);
uint32_t dot11f_pack_ie_ese_cckm_opaque(
tpAniSirGlobal,
tDot11fIEESECckmOpaque *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_ESECckmOpaque(
tpAniSirGlobal,
tDot11fIEESECckmOpaque *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x01} */
typedef struct sDot11fIEESERadMgmtCap {
uint8_t present;
uint8_t mgmt_state;
uint8_t mbssid_mask:3;
uint8_t reserved:5;
} tDot11fIEESERadMgmtCap;
#define DOT11F_EID_ESERADMGMTCAP (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_ESERADMGMTCAP_MIN_LEN (6)
#define DOT11F_IE_ESERADMGMTCAP_MAX_LEN (6)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ese_rad_mgmt_cap(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEESERadMgmtCap*,
bool);
uint32_t dot11f_pack_ie_ese_rad_mgmt_cap(
tpAniSirGlobal,
tDot11fIEESERadMgmtCap *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_ESERadMgmtCap(
tpAniSirGlobal,
tDot11fIEESERadMgmtCap *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x07} */
typedef struct sDot11fIEESETrafStrmMet {
uint8_t present;
uint8_t tsid;
uint8_t state;
uint16_t msmt_interval;
} tDot11fIEESETrafStrmMet;
#define DOT11F_EID_ESETRAFSTRMMET (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_ESETRAFSTRMMET_MIN_LEN (8)
#define DOT11F_IE_ESETRAFSTRMMET_MAX_LEN (8)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ese_traf_strm_met(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEESETrafStrmMet*,
bool);
uint32_t dot11f_pack_ie_ese_traf_strm_met(
tpAniSirGlobal,
tDot11fIEESETrafStrmMet *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_ESETrafStrmMet(
tpAniSirGlobal,
tDot11fIEESETrafStrmMet *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x08} */
typedef struct sDot11fIEESETrafStrmRateSet {
uint8_t present;
uint8_t tsid;
uint8_t num_tsrates;
uint8_t tsrates[8];
} tDot11fIEESETrafStrmRateSet;
#define DOT11F_EID_ESETRAFSTRMRATESET (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_ESETRAFSTRMRATESET_MIN_LEN (5)
#define DOT11F_IE_ESETRAFSTRMRATESET_MAX_LEN (13)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ese_traf_strm_rate_set(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEESETrafStrmRateSet*,
bool);
uint32_t dot11f_pack_ie_ese_traf_strm_rate_set(
tpAniSirGlobal,
tDot11fIEESETrafStrmRateSet *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_ESETrafStrmRateSet(
tpAniSirGlobal,
tDot11fIEESETrafStrmRateSet *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 150 (0x96) {OUI 0x00, 0x40, 0x96, 0x00} */
typedef struct sDot11fIEESETxmitPower {
uint8_t present;
uint8_t power_limit;
uint8_t reserved;
} tDot11fIEESETxmitPower;
#define DOT11F_EID_ESETXMITPOWER (150)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_ESETXMITPOWER_MIN_LEN (6)
#define DOT11F_IE_ESETXMITPOWER_MAX_LEN (6)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ese_txmit_power(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEESETxmitPower*,
bool);
uint32_t dot11f_pack_ie_ese_txmit_power(
tpAniSirGlobal,
tDot11fIEESETxmitPower *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_ESETxmitPower(
tpAniSirGlobal,
tDot11fIEESETxmitPower *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x03} */
typedef struct sDot11fIEESEVersion {
uint8_t present;
uint8_t version;
} tDot11fIEESEVersion;
#define DOT11F_EID_ESEVERSION (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_ESEVERSION_MIN_LEN (5)
#define DOT11F_IE_ESEVERSION_MAX_LEN (5)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ese_version(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEESEVersion*,
bool);
uint32_t dot11f_pack_ie_ese_version(
tpAniSirGlobal,
tDot11fIEESEVersion *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_ESEVersion(
tpAniSirGlobal,
tDot11fIEESEVersion *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 127 (0x7f) */
typedef struct sDot11fIEExtCap {
uint8_t present;
uint8_t num_bytes;
uint8_t bytes[15];
} tDot11fIEExtCap;
#define DOT11F_EID_EXTCAP (127)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_EXTCAP_MIN_LEN (1)
#define DOT11F_IE_EXTCAP_MAX_LEN (15)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ext_cap(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEExtCap*,
bool);
uint32_t dot11f_pack_ie_ext_cap(
tpAniSirGlobal,
tDot11fIEExtCap *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_ExtCap(
tpAniSirGlobal,
tDot11fIEExtCap *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 50 (0x32) */
typedef struct sDot11fIEExtSuppRates {
uint8_t present;
uint8_t num_rates;
uint8_t rates[12];
} tDot11fIEExtSuppRates;
#define DOT11F_EID_EXTSUPPRATES (50)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_EXTSUPPRATES_MIN_LEN (1)
#define DOT11F_IE_EXTSUPPRATES_MAX_LEN (12)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ext_supp_rates(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEExtSuppRates*,
bool);
uint32_t dot11f_pack_ie_ext_supp_rates(
tpAniSirGlobal,
tDot11fIEExtSuppRates *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_ExtSuppRates(
tpAniSirGlobal,
tDot11fIEExtSuppRates *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 2 (0x02) */
typedef struct sDot11fIEFHParamSet {
uint8_t present;
uint16_t dwell_time;
uint8_t hop_set;
uint8_t hop_pattern;
uint8_t hop_index;
} tDot11fIEFHParamSet;
#define DOT11F_EID_FHPARAMSET (2)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_FHPARAMSET_MIN_LEN (5)
#define DOT11F_IE_FHPARAMSET_MAX_LEN (5)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_fh_param_set(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEFHParamSet*,
bool);
uint32_t dot11f_pack_ie_fh_param_set(
tpAniSirGlobal,
tDot11fIEFHParamSet *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_FHParamSet(
tpAniSirGlobal,
tDot11fIEFHParamSet *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 8 (0x08) */
typedef struct sDot11fIEFHParams {
uint8_t present;
uint8_t radix;
uint8_t nchannels;
} tDot11fIEFHParams;
#define DOT11F_EID_FHPARAMS (8)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_FHPARAMS_MIN_LEN (2)
#define DOT11F_IE_FHPARAMS_MAX_LEN (2)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_fh_params(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEFHParams*,
bool);
uint32_t dot11f_pack_ie_fh_params(
tpAniSirGlobal,
tDot11fIEFHParams *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_FHParams(
tpAniSirGlobal,
tDot11fIEFHParams *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 9 (0x09) */
typedef struct sDot11fIEFHPattTable {
uint8_t present;
uint8_t flag;
uint8_t nsets;
uint8_t modulus;
uint8_t offset;
uint8_t num_randtable;
uint8_t randtable[251];
} tDot11fIEFHPattTable;
#define DOT11F_EID_FHPATTTABLE (9)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_FHPATTTABLE_MIN_LEN (4)
#define DOT11F_IE_FHPATTTABLE_MAX_LEN (255)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_fh_patt_table(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEFHPattTable*,
bool);
uint32_t dot11f_pack_ie_fh_patt_table(
tpAniSirGlobal,
tDot11fIEFHPattTable *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_FHPattTable(
tpAniSirGlobal,
tDot11fIEFHPattTable *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 55 (0x37) */
typedef struct sDot11fIEFTInfo {
uint8_t present;
uint16_t reserved:8;
uint16_t IECount:8;
uint8_t MIC[16];
uint8_t Anonce[32];
uint8_t Snonce[32];
tDot11fIER1KH_ID R1KH_ID;
tDot11fIEGTK GTK;
tDot11fIER0KH_ID R0KH_ID;
tDot11fIEIGTK IGTK;
} tDot11fIEFTInfo;
#define DOT11F_EID_FTINFO (55)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_FTINFO_MIN_LEN (82)
#define DOT11F_IE_FTINFO_MAX_LEN (220)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ft_info(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEFTInfo*,
bool);
uint32_t dot11f_pack_ie_ft_info(
tpAniSirGlobal,
tDot11fIEFTInfo *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ieft_info(
tpAniSirGlobal,
tDot11fIEFTInfo *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 45 (0x2d) */
typedef struct sDot11fIEHTCaps {
uint8_t present;
uint16_t advCodingCap:1;
uint16_t supportedChannelWidthSet:1;
uint16_t mimoPowerSave:2;
uint16_t greenField:1;
uint16_t shortGI20MHz:1;
uint16_t shortGI40MHz:1;
uint16_t txSTBC:1;
uint16_t rxSTBC:2;
uint16_t delayedBA:1;
uint16_t maximalAMSDUsize:1;
uint16_t dsssCckMode40MHz:1;
uint16_t psmp:1;
uint16_t stbcControlFrame:1;
uint16_t lsigTXOPProtection:1;
uint8_t maxRxAMPDUFactor:2;
uint8_t mpduDensity:3;
uint8_t reserved1:3;
uint8_t supportedMCSSet[16];
uint16_t pco:1;
uint16_t transitionTime:2;
uint16_t reserved2:5;
uint16_t mcsFeedback:2;
uint16_t reserved3:6;
uint32_t txBF:1;
uint32_t rxStaggeredSounding:1;
uint32_t txStaggeredSounding:1;
uint32_t rxZLF:1;
uint32_t txZLF:1;
uint32_t implicitTxBF:1;
uint32_t calibration:2;
uint32_t explicitCSITxBF:1;
uint32_t explicitUncompressedSteeringMatrix:1;
uint32_t explicitBFCSIFeedback:3;
uint32_t explicitUncompressedSteeringMatrixFeedback:3;
uint32_t explicitCompressedSteeringMatrixFeedback:3;
uint32_t csiNumBFAntennae:2;
uint32_t uncompressedSteeringMatrixBFAntennae:2;
uint32_t compressedSteeringMatrixBFAntennae:2;
uint32_t reserved4:7;
uint8_t antennaSelection:1;
uint8_t explicitCSIFeedbackTx:1;
uint8_t antennaIndicesFeedbackTx:1;
uint8_t explicitCSIFeedback:1;
uint8_t antennaIndicesFeedback:1;
uint8_t rxAS:1;
uint8_t txSoundingPPDUs:1;
uint8_t reserved5:1;
uint8_t num_rsvd;
uint8_t rsvd[32];
} tDot11fIEHTCaps;
#define DOT11F_EID_HTCAPS (45)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_HTCAPS_MIN_LEN (26)
#define DOT11F_IE_HTCAPS_MAX_LEN (58)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ht_caps(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEHTCaps*,
bool);
uint32_t dot11f_pack_ie_ht_caps(
tpAniSirGlobal,
tDot11fIEHTCaps *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_HTCaps(
tpAniSirGlobal,
tDot11fIEHTCaps *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 61 (0x3d) */
typedef struct sDot11fIEHTInfo {
uint8_t present;
uint8_t primaryChannel;
uint8_t secondaryChannelOffset:2;
uint8_t recommendedTxWidthSet:1;
uint8_t rifsMode:1;
uint8_t controlledAccessOnly:1;
uint8_t serviceIntervalGranularity:3;
uint16_t opMode:2;
uint16_t nonGFDevicesPresent:1;
uint16_t transmitBurstLimit:1;
uint16_t obssNonHTStaPresent:1;
uint16_t reserved:11;
uint16_t basicSTBCMCS:7;
uint16_t dualCTSProtection:1;
uint16_t secondaryBeacon:1;
uint16_t lsigTXOPProtectionFullSupport:1;
uint16_t pcoActive:1;
uint16_t pcoPhase:1;
uint16_t reserved2:4;
uint8_t basicMCSSet[16];
uint8_t num_rsvd;
uint8_t rsvd[32];
} tDot11fIEHTInfo;
#define DOT11F_EID_HTINFO (61)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_HTINFO_MIN_LEN (22)
#define DOT11F_IE_HTINFO_MAX_LEN (54)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ht_info(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEHTInfo*,
bool);
uint32_t dot11f_pack_ie_ht_info(
tpAniSirGlobal,
tDot11fIEHTInfo *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_HTInfo(
tpAniSirGlobal,
tDot11fIEHTInfo *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 6 (0x06) */
typedef struct sDot11fIEIBSSParams {
uint8_t present;
uint16_t atim;
} tDot11fIEIBSSParams;
#define DOT11F_EID_IBSSPARAMS (6)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_IBSSPARAMS_MIN_LEN (2)
#define DOT11F_IE_IBSSPARAMS_MAX_LEN (2)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ibss_params(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEIBSSParams*,
bool);
uint32_t dot11f_pack_ie_ibss_params(
tpAniSirGlobal,
tDot11fIEIBSSParams *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_IBSSParams(
tpAniSirGlobal,
tDot11fIEIBSSParams *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 101 (0x65) */
typedef struct sDot11fIELinkIdentifier {
uint8_t present;
uint8_t bssid[6];
uint8_t InitStaAddr[6];
uint8_t RespStaAddr[6];
} tDot11fIELinkIdentifier;
#define DOT11F_EID_LINKIDENTIFIER (101)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_LINKIDENTIFIER_MIN_LEN (18)
#define DOT11F_IE_LINKIDENTIFIER_MAX_LEN (18)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_link_identifier(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIELinkIdentifier*,
bool);
uint32_t dot11f_pack_ie_link_identifier(
tpAniSirGlobal,
tDot11fIELinkIdentifier *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_LinkIdentifier(
tpAniSirGlobal,
tDot11fIELinkIdentifier *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x16} (Multi-IE) */
typedef struct sDot11fIEMBO_IE {
uint8_t present;
tDot11fTLVmbo_ap_cap mbo_ap_cap;
tDot11fTLVnon_prefferd_chan_rep non_prefferd_chan_rep;
tDot11fTLVcellular_data_cap cellular_data_cap;
tDot11fTLVassoc_disallowed assoc_disallowed;
tDot11fTLVcellular_data_con_pref cellular_data_con_pref;
tDot11fTLVtransition_reason transition_reason;
tDot11fTLVtransition_reject_reason transition_reject_reason;
tDot11fTLVassoc_retry_delay assoc_retry_delay;
tDot11fTLVoce_cap oce_cap;
tDot11fTLVrssi_assoc_rej rssi_assoc_rej;
tDot11fTLVreduced_wan_metrics reduced_wan_metrics;
} tDot11fIEMBO_IE;
#define DOT11F_EID_MBO_IE (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_MBO_IE_MIN_LEN (4)
#define DOT11F_IE_MBO_IE_MAX_LEN (293)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_MBO_IE(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEMBO_IE*,
bool);
uint32_t dot11f_pack_ie_MBO_IE(
tpAniSirGlobal,
tDot11fIEMBO_IE *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_MBO_IE(
tpAniSirGlobal,
tDot11fIEMBO_IE *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 39 (0x27) */
typedef struct sDot11fIEMeasurementReport {
uint8_t present;
uint8_t token;
uint8_t late:1;
uint8_t incapable:1;
uint8_t refused:1;
uint8_t unused:5;
uint8_t type;
union {
struct {
uint8_t channel;
tDOT11F_U64 meas_start_time;
uint16_t meas_duration;
uint8_t bss:1;
uint8_t ofdm_preamble:1;
uint8_t unid_signal:1;
uint8_t rader:1;
uint8_t unmeasured:1;
uint8_t unused:3;
} Basic; /* type = 0 */
struct {
uint8_t channel;
tDOT11F_U64 meas_start_time;
uint16_t meas_duration;
uint8_t cca_busy_fraction;
} CCA; /* type = 1 */
struct {
uint8_t channel;
tDOT11F_U64 meas_start_time;
uint16_t meas_duration;
uint8_t rpi0_density;
uint8_t rpi1_density;
uint8_t rpi2_density;
uint8_t rpi3_density;
uint8_t rpi4_density;
uint8_t rpi5_density;
uint8_t rpi6_density;
uint8_t rpi7_density;
} RPIHistogram; /* type = 2 */
struct {
uint8_t regClass;
uint8_t channel;
tDOT11F_U64 meas_start_time;
uint16_t meas_duration;
uint8_t condensed_PHY:7;
uint8_t reported_frame_type:1;
uint8_t RCPI;
uint8_t RSNI;
uint8_t BSSID[6];
uint8_t antenna_id;
uint32_t parent_TSF;
tDot11fIEBeaconReportFrmBody BeaconReportFrmBody;
tDot11fIEbeacon_report_frm_body_fragment_id beacon_report_frm_body_fragment_id;
tDot11fIElast_beacon_report_indication last_beacon_report_indication;
} Beacon; /* type = 5 */
} report;
} tDot11fIEMeasurementReport;
#define DOT11F_EID_MEASUREMENTREPORT (39)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_MEASUREMENTREPORT_MIN_LEN (3)
#define DOT11F_IE_MEASUREMENTREPORT_MAX_LEN (29)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_measurement_report(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEMeasurementReport*,
bool);
uint32_t dot11f_pack_ie_measurement_report(
tpAniSirGlobal,
tDot11fIEMeasurementReport *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_measurement_report(
tpAniSirGlobal,
tDot11fIEMeasurementReport *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 38 (0x26) */
typedef struct sDot11fIEMeasurementRequest {
uint8_t present;
uint8_t measurement_token;
uint8_t parallel:1;
uint8_t enable:1;
uint8_t request:1;
uint8_t report:1;
uint8_t durationMandatory:1;
uint8_t unused:3;
uint8_t measurement_type;
union {
struct {
uint8_t channel_no;
uint8_t meas_start_time[8];
uint16_t meas_duration;
} Basic; /* measurement_type = 0 */
struct {
uint8_t channel_no;
uint8_t meas_start_time[8];
uint16_t meas_duration;
} CCA; /* measurement_type = 1 */
struct {
uint8_t channel_no;
uint8_t meas_start_time[8];
uint16_t meas_duration;
} RPIHistogram; /* measurement_type = 2 */
struct {
uint8_t regClass;
uint8_t channel;
uint16_t randomization;
uint16_t meas_duration;
uint8_t meas_mode;
uint8_t BSSID[6];
tDot11fIESSID SSID;
tDot11fIEBeaconReporting BeaconReporting;
tDot11fIEBcnReportingDetail BcnReportingDetail;
tDot11fIERequestedInfo RequestedInfo;
uint16_t num_APChannelReport;
tDot11fIEAPChannelReport APChannelReport[2];
tDot11fIElast_beacon_report_indication last_beacon_report_indication;
} 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 (4)
#define DOT11F_IE_MEASUREMENTREQUEST_MAX_LEN (16)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_measurement_request(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEMeasurementRequest*,
bool);
uint32_t dot11f_pack_ie_measurement_request(
tpAniSirGlobal,
tDot11fIEMeasurementRequest *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_measurement_request(
tpAniSirGlobal,
tDot11fIEMeasurementRequest *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 54 (0x36) */
typedef struct sDot11fIEMobilityDomain {
uint8_t present;
uint16_t MDID;
uint8_t overDSCap:1;
uint8_t resourceReqCap:1;
uint8_t reserved:6;
} tDot11fIEMobilityDomain;
#define DOT11F_EID_MOBILITYDOMAIN (54)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_MOBILITYDOMAIN_MIN_LEN (3)
#define DOT11F_IE_MOBILITYDOMAIN_MAX_LEN (3)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_mobility_domain(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEMobilityDomain*,
bool);
uint32_t dot11f_pack_ie_mobility_domain(
tpAniSirGlobal,
tDot11fIEMobilityDomain *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_MobilityDomain(
tpAniSirGlobal,
tDot11fIEMobilityDomain *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 52 (0x34) */
typedef struct sDot11fIENeighborReport {
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;
} tDot11fIENeighborReport;
#define DOT11F_EID_NEIGHBORREPORT (52)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_NEIGHBORREPORT_MIN_LEN (13)
#define DOT11F_IE_NEIGHBORREPORT_MAX_LEN (546)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_neighbor_report(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIENeighborReport*,
bool);
uint32_t dot11f_pack_ie_neighbor_report(
tpAniSirGlobal,
tDot11fIENeighborReport *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_neighbor_report(
tpAniSirGlobal,
tDot11fIENeighborReport *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 74 (0x4a) */
typedef struct sDot11fIEOBSSScanParameters {
uint8_t present;
uint16_t obssScanPassiveDwell;
uint16_t obssScanActiveDwell;
uint16_t bssChannelWidthTriggerScanInterval;
uint16_t obssScanPassiveTotalPerChannel;
uint16_t obssScanActiveTotalPerChannel;
uint16_t bssWidthChannelTransitionDelayFactor;
uint16_t obssScanActivityThreshold;
} tDot11fIEOBSSScanParameters;
#define DOT11F_EID_OBSSSCANPARAMETERS (74)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_OBSSSCANPARAMETERS_MIN_LEN (14)
#define DOT11F_IE_OBSSSCANPARAMETERS_MAX_LEN (14)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_obss_scan_parameters(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEOBSSScanParameters*,
bool);
uint32_t dot11f_pack_ie_obss_scan_parameters(
tpAniSirGlobal,
tDot11fIEOBSSScanParameters *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_OBSSScanParameters(
tpAniSirGlobal,
tDot11fIEOBSSScanParameters *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 199 (0xc7) */
typedef struct sDot11fIEOperatingMode {
uint8_t present;
uint8_t chanWidth:2;
uint8_t reserved:2;
uint8_t rxNSS:3;
uint8_t rxNSSType:1;
} tDot11fIEOperatingMode;
#define DOT11F_EID_OPERATINGMODE (199)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_OPERATINGMODE_MIN_LEN (1)
#define DOT11F_IE_OPERATINGMODE_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_operating_mode(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEOperatingMode*,
bool);
uint32_t dot11f_pack_ie_operating_mode(
tpAniSirGlobal,
tDot11fIEOperatingMode *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_OperatingMode(
tpAniSirGlobal,
tDot11fIEOperatingMode *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE) */
typedef struct sDot11fIEP2PAssocReq {
uint8_t present;
tDot11fTLVP2PCapability P2PCapability;
tDot11fTLVExtendedListenTiming ExtendedListenTiming;
tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
} tDot11fIEP2PAssocReq;
#define DOT11F_EID_P2PASSOCREQ (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_P2PASSOCREQ_MIN_LEN (4)
#define DOT11F_IE_P2PASSOCREQ_MAX_LEN (71)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_p2_p_assoc_req(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEP2PAssocReq*,
bool);
uint32_t dot11f_pack_ie_p2_p_assoc_req(
tpAniSirGlobal,
tDot11fIEP2PAssocReq *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_iep2_p_assoc_req(
tpAniSirGlobal,
tDot11fIEP2PAssocReq *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE) */
typedef struct sDot11fIEP2PAssocRes {
uint8_t present;
tDot11fTLVP2PStatus P2PStatus;
tDot11fTLVExtendedListenTiming ExtendedListenTiming;
} tDot11fIEP2PAssocRes;
#define DOT11F_EID_P2PASSOCRES (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_P2PASSOCRES_MIN_LEN (4)
#define DOT11F_IE_P2PASSOCRES_MAX_LEN (15)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_p2_p_assoc_res(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEP2PAssocRes*,
bool);
uint32_t dot11f_pack_ie_p2_p_assoc_res(
tpAniSirGlobal,
tDot11fIEP2PAssocRes *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_iep2_p_assoc_res(
tpAniSirGlobal,
tDot11fIEP2PAssocRes *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE) */
typedef struct sDot11fIEP2PBeacon {
uint8_t present;
tDot11fTLVP2PCapability P2PCapability;
tDot11fTLVP2PDeviceId P2PDeviceId;
tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
} tDot11fIEP2PBeacon;
#define DOT11F_EID_P2PBEACON (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_P2PBEACON_MIN_LEN (4)
#define DOT11F_IE_P2PBEACON_MAX_LEN (59)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_p2_p_beacon(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEP2PBeacon*,
bool);
uint32_t dot11f_pack_ie_p2_p_beacon(
tpAniSirGlobal,
tDot11fIEP2PBeacon *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_iep2_p_beacon(
tpAniSirGlobal,
tDot11fIEP2PBeacon *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE) */
typedef struct sDot11fIEP2PBeaconProbeRes {
uint8_t present;
tDot11fTLVP2PCapability P2PCapability;
tDot11fTLVP2PDeviceId P2PDeviceId;
tDot11fTLVExtendedListenTiming ExtendedListenTiming;
tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
tDot11fTLVP2PGroupInfo P2PGroupInfo;
} tDot11fIEP2PBeaconProbeRes;
#define DOT11F_EID_P2PBEACONPROBERES (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_P2PBEACONPROBERES_MIN_LEN (4)
#define DOT11F_IE_P2PBEACONPROBERES_MAX_LEN (1148)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_p2_p_beacon_probe_res(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEP2PBeaconProbeRes*,
bool);
uint32_t dot11f_pack_ie_p2_p_beacon_probe_res(
tpAniSirGlobal,
tDot11fIEP2PBeaconProbeRes *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_iep2_p_beacon_probe_res(
tpAniSirGlobal,
tDot11fIEP2PBeaconProbeRes *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE) */
typedef struct sDot11fIEP2PDeAuth {
uint8_t present;
tDot11fTLVMinorReasonCode MinorReasonCode;
} tDot11fIEP2PDeAuth;
#define DOT11F_EID_P2PDEAUTH (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_P2PDEAUTH_MIN_LEN (4)
#define DOT11F_IE_P2PDEAUTH_MAX_LEN (8)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_p2_p_de_auth(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEP2PDeAuth*,
bool);
uint32_t dot11f_pack_ie_p2_p_de_auth(
tpAniSirGlobal,
tDot11fIEP2PDeAuth *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_iep2_p_de_auth(
tpAniSirGlobal,
tDot11fIEP2PDeAuth *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE) */
typedef struct sDot11fIEP2PDisAssoc {
uint8_t present;
tDot11fTLVMinorReasonCode MinorReasonCode;
} tDot11fIEP2PDisAssoc;
#define DOT11F_EID_P2PDISASSOC (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_P2PDISASSOC_MIN_LEN (4)
#define DOT11F_IE_P2PDISASSOC_MAX_LEN (8)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_p2_p_dis_assoc(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEP2PDisAssoc*,
bool);
uint32_t dot11f_pack_ie_p2_p_dis_assoc(
tpAniSirGlobal,
tDot11fIEP2PDisAssoc *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_iep2_p_dis_assoc(
tpAniSirGlobal,
tDot11fIEP2PDisAssoc *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} */
typedef struct sDot11fIEP2PIEOpaque {
uint8_t present;
uint8_t num_data;
uint8_t data[249];
} tDot11fIEP2PIEOpaque;
#define DOT11F_EID_P2PIEOPAQUE (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_P2PIEOPAQUE_MIN_LEN (6)
#define DOT11F_IE_P2PIEOPAQUE_MAX_LEN (253)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_p2_pie_opaque(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEP2PIEOpaque*,
bool);
uint32_t dot11f_pack_ie_p2_pie_opaque(
tpAniSirGlobal,
tDot11fIEP2PIEOpaque *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_P2PIEOpaque(
tpAniSirGlobal,
tDot11fIEP2PIEOpaque *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE) */
typedef struct sDot11fIEP2PProbeReq {
uint8_t present;
tDot11fTLVP2PCapability P2PCapability;
tDot11fTLVP2PDeviceId P2PDeviceId;
tDot11fTLVListenChannel ListenChannel;
tDot11fTLVExtendedListenTiming ExtendedListenTiming;
tDot11fTLVOperatingChannel OperatingChannel;
} tDot11fIEP2PProbeReq;
#define DOT11F_EID_P2PPROBEREQ (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_P2PPROBEREQ_MIN_LEN (4)
#define DOT11F_IE_P2PPROBEREQ_MAX_LEN (41)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_p2_p_probe_req(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEP2PProbeReq*,
bool);
uint32_t dot11f_pack_ie_p2_p_probe_req(
tpAniSirGlobal,
tDot11fIEP2PProbeReq *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_iep2_p_probe_req(
tpAniSirGlobal,
tDot11fIEP2PProbeReq *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE) */
typedef struct sDot11fIEP2PProbeRes {
uint8_t present;
tDot11fTLVP2PCapability P2PCapability;
tDot11fTLVExtendedListenTiming ExtendedListenTiming;
tDot11fTLVNoticeOfAbsence NoticeOfAbsence;
tDot11fTLVP2PDeviceInfo P2PDeviceInfo;
tDot11fTLVP2PGroupInfo P2PGroupInfo;
} tDot11fIEP2PProbeRes;
#define DOT11F_EID_P2PPROBERES (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_P2PPROBERES_MIN_LEN (4)
#define DOT11F_IE_P2PPROBERES_MAX_LEN (1139)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_p2_p_probe_res(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEP2PProbeRes*,
bool);
uint32_t dot11f_pack_ie_p2_p_probe_res(
tpAniSirGlobal,
tDot11fIEP2PProbeRes *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_iep2_p_probe_res(
tpAniSirGlobal,
tDot11fIEP2PProbeRes *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 105 (0x69) */
typedef struct sDot11fIEPTIControl {
uint8_t present;
uint8_t tid;
uint16_t sequence_control;
} tDot11fIEPTIControl;
#define DOT11F_EID_PTICONTROL (105)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_PTICONTROL_MIN_LEN (3)
#define DOT11F_IE_PTICONTROL_MAX_LEN (3)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_pti_control(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEPTIControl*,
bool);
uint32_t dot11f_pack_ie_pti_control(
tpAniSirGlobal,
tDot11fIEPTIControl *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_PTIControl(
tpAniSirGlobal,
tDot11fIEPTIControl *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 106 (0x6a) */
typedef struct sDot11fIEPUBufferStatus {
uint8_t present;
uint8_t ac_bk_traffic_aval:1;
uint8_t ac_be_traffic_aval:1;
uint8_t ac_vi_traffic_aval:1;
uint8_t ac_vo_traffic_aval:1;
uint8_t reserved:4;
} tDot11fIEPUBufferStatus;
#define DOT11F_EID_PUBUFFERSTATUS (106)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_PUBUFFERSTATUS_MIN_LEN (1)
#define DOT11F_IE_PUBUFFERSTATUS_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_pu_buffer_status(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEPUBufferStatus*,
bool);
uint32_t dot11f_pack_ie_pu_buffer_status(
tpAniSirGlobal,
tDot11fIEPUBufferStatus *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_PUBufferStatus(
tpAniSirGlobal,
tDot11fIEPUBufferStatus *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 33 (0x21) */
typedef struct sDot11fIEPowerCaps {
uint8_t present;
uint8_t minTxPower;
uint8_t maxTxPower;
} tDot11fIEPowerCaps;
#define DOT11F_EID_POWERCAPS (33)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_POWERCAPS_MIN_LEN (2)
#define DOT11F_IE_POWERCAPS_MAX_LEN (2)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_power_caps(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEPowerCaps*,
bool);
uint32_t dot11f_pack_ie_power_caps(
tpAniSirGlobal,
tDot11fIEPowerCaps *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_PowerCaps(
tpAniSirGlobal,
tDot11fIEPowerCaps *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 32 (0x20) */
typedef struct sDot11fIEPowerConstraints {
uint8_t present;
uint8_t localPowerConstraints;
} tDot11fIEPowerConstraints;
#define DOT11F_EID_POWERCONSTRAINTS (32)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_POWERCONSTRAINTS_MIN_LEN (1)
#define DOT11F_IE_POWERCONSTRAINTS_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_power_constraints(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEPowerConstraints*,
bool);
uint32_t dot11f_pack_ie_power_constraints(
tpAniSirGlobal,
tDot11fIEPowerConstraints *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_PowerConstraints(
tpAniSirGlobal,
tDot11fIEPowerConstraints *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 11 (0x0b) */
typedef struct sDot11fIEQBSSLoad {
uint8_t present;
uint16_t stacount;
uint8_t chautil;
uint16_t avail;
} tDot11fIEQBSSLoad;
#define DOT11F_EID_QBSSLOAD (11)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_QBSSLOAD_MIN_LEN (5)
#define DOT11F_IE_QBSSLOAD_MAX_LEN (5)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_qbss_load(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEQBSSLoad*,
bool);
uint32_t dot11f_pack_ie_qbss_load(
tpAniSirGlobal,
tDot11fIEQBSSLoad *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_QBSSLoad(
tpAniSirGlobal,
tDot11fIEQBSSLoad *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x8c, 0xfd, 0xf0, 0x01} */
typedef struct sDot11fIEQCN_IE {
uint8_t present;
uint8_t version[4];
} tDot11fIEQCN_IE;
#define DOT11F_EID_QCN_IE (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_QCN_IE_MIN_LEN (8)
#define DOT11F_IE_QCN_IE_MAX_LEN (8)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_QCN_IE(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEQCN_IE*,
bool);
uint32_t dot11f_pack_ie_QCN_IE(
tpAniSirGlobal,
tDot11fIEQCN_IE *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_QCN_IE(
tpAniSirGlobal,
tDot11fIEQCN_IE *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0xa0, 0xc6} */
typedef struct sDot11fIEQComVendorIE {
uint8_t present;
uint8_t type;
uint8_t channel;
} tDot11fIEQComVendorIE;
#define DOT11F_EID_QCOMVENDORIE (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_QCOMVENDORIE_MIN_LEN (5)
#define DOT11F_IE_QCOMVENDORIE_MAX_LEN (5)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_QComVendorIE(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEQComVendorIE*,
bool);
uint32_t dot11f_pack_ie_QComVendorIE(
tpAniSirGlobal,
tDot11fIEQComVendorIE *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_QComVendorIE(
tpAniSirGlobal,
tDot11fIEQComVendorIE *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 46 (0x2e) */
typedef struct sDot11fIEQOSCapsAp {
uint8_t present;
uint8_t count:4;
uint8_t qack:1;
uint8_t qreq:1;
uint8_t txopreq:1;
uint8_t reserved:1;
} tDot11fIEQOSCapsAp;
#define DOT11F_EID_QOSCAPSAP (46)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_QOSCAPSAP_MIN_LEN (1)
#define DOT11F_IE_QOSCAPSAP_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_qos_caps_ap(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEQOSCapsAp*,
bool);
uint32_t dot11f_pack_ie_qos_caps_ap(
tpAniSirGlobal,
tDot11fIEQOSCapsAp *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_QOSCapsAp(
tpAniSirGlobal,
tDot11fIEQOSCapsAp *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 46 (0x2e) */
typedef struct sDot11fIEQOSCapsStation {
uint8_t present;
uint8_t acvo_uapsd:1;
uint8_t acvi_uapsd:1;
uint8_t acbk_uapsd:1;
uint8_t acbe_uapsd:1;
uint8_t qack:1;
uint8_t max_sp_length:2;
uint8_t more_data_ack:1;
} tDot11fIEQOSCapsStation;
#define DOT11F_EID_QOSCAPSSTATION (46)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_QOSCAPSSTATION_MIN_LEN (1)
#define DOT11F_IE_QOSCAPSSTATION_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_qos_caps_station(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEQOSCapsStation*,
bool);
uint32_t dot11f_pack_ie_qos_caps_station(
tpAniSirGlobal,
tDot11fIEQOSCapsStation *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_QOSCapsStation(
tpAniSirGlobal,
tDot11fIEQOSCapsStation *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 110 (0x6e) */
typedef struct sDot11fIEQosMapSet {
uint8_t present;
uint8_t num_dscp_exceptions;
uint8_t dscp_exceptions[60];
} tDot11fIEQosMapSet;
#define DOT11F_EID_QOSMAPSET (110)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_QOSMAPSET_MIN_LEN (0)
#define DOT11F_IE_QOSMAPSET_MAX_LEN (60)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_qos_map_set(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEQosMapSet*,
bool);
uint32_t dot11f_pack_ie_qos_map_set(
tpAniSirGlobal,
tDot11fIEQosMapSet *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_QosMapSet(
tpAniSirGlobal,
tDot11fIEQosMapSet *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 40 (0x28) */
typedef struct sDot11fIEQuiet {
uint8_t present;
uint8_t count;
uint8_t period;
uint16_t duration;
uint16_t offset;
} tDot11fIEQuiet;
#define DOT11F_EID_QUIET (40)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_QUIET_MIN_LEN (6)
#define DOT11F_IE_QUIET_MAX_LEN (6)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_quiet(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEQuiet*,
bool);
uint32_t dot11f_pack_ie_quiet(
tpAniSirGlobal,
tDot11fIEQuiet *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_Quiet(
tpAniSirGlobal,
tDot11fIEQuiet *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 53 (0x35) */
typedef struct sDot11fIERCPIIE {
uint8_t present;
uint8_t rcpi;
} tDot11fIERCPIIE;
#define DOT11F_EID_RCPIIE (53)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_RCPIIE_MIN_LEN (1)
#define DOT11F_IE_RCPIIE_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_rcpiie(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIERCPIIE*,
bool);
uint32_t dot11f_pack_ie_rcpiie(
tpAniSirGlobal,
tDot11fIERCPIIE *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_RCPIIE(
tpAniSirGlobal,
tDot11fIERCPIIE *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 57 (0x39) */
typedef struct sDot11fIERICDataDesc {
uint8_t present;
tDot11fIERICData RICData;
tDot11fIERICDescriptor RICDescriptor;
tDot11fIETSPEC TSPEC;
uint16_t num_TCLAS;
tDot11fIETCLAS TCLAS[2];
tDot11fIETCLASSPROC TCLASSPROC;
tDot11fIETSDelay TSDelay;
tDot11fIESchedule Schedule;
tDot11fIEWMMTSPEC WMMTSPEC;
uint16_t num_WMMTCLAS;
tDot11fIEWMMTCLAS WMMTCLAS[2];
tDot11fIEWMMTCLASPROC WMMTCLASPROC;
tDot11fIEWMMTSDelay WMMTSDelay;
tDot11fIEWMMSchedule WMMSchedule;
} tDot11fIERICDataDesc;
#define DOT11F_EID_RICDATADESC (57)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_RICDATADESC_MIN_LEN (0)
#define DOT11F_IE_RICDATADESC_MAX_LEN (548)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ric_data_desc(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIERICDataDesc*,
bool);
uint32_t dot11f_pack_ie_ric_data_desc(
tpAniSirGlobal,
tDot11fIERICDataDesc *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ieric_data_desc(
tpAniSirGlobal,
tDot11fIERICDataDesc *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 48 (0x30) */
typedef struct sDot11fIERSN {
uint8_t present;
uint16_t version /* Must be 1! */;
uint8_t gp_cipher_suite_present;
uint8_t gp_cipher_suite[4];
uint16_t pwise_cipher_suite_count;
uint8_t pwise_cipher_suites[6][4];
uint16_t akm_suite_cnt;
uint8_t akm_suite[6][4];
uint8_t RSN_Cap_present;
uint8_t RSN_Cap[2];
uint16_t pmkid_count;
uint8_t pmkid[4][16];
uint8_t gp_mgmt_cipher_suite_present;
uint8_t gp_mgmt_cipher_suite[4];
} tDot11fIERSN;
#define DOT11F_EID_RSN (48)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_RSN_MIN_LEN (2)
#define DOT11F_IE_RSN_MAX_LEN (130)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_rsn(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIERSN*,
bool);
uint32_t dot11f_pack_ie_rsn(
tpAniSirGlobal,
tDot11fIERSN *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_iersn(
tpAniSirGlobal,
tDot11fIERSN *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 65 (0x41) */
typedef struct sDot11fIERSNIIE {
uint8_t present;
uint8_t rsni;
} tDot11fIERSNIIE;
#define DOT11F_EID_RSNIIE (65)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_RSNIIE_MIN_LEN (1)
#define DOT11F_IE_RSNIIE_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_rsniie(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIERSNIIE*,
bool);
uint32_t dot11f_pack_ie_rsniie(
tpAniSirGlobal,
tDot11fIERSNIIE *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_iersnIIE(
tpAniSirGlobal,
tDot11fIERSNIIE *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 48 (0x30) */
typedef struct sDot11fIERSNOpaque {
uint8_t present;
uint8_t num_data;
uint8_t data[253];
} tDot11fIERSNOpaque;
#define DOT11F_EID_RSNOPAQUE (48)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_RSNOPAQUE_MIN_LEN (0)
#define DOT11F_IE_RSNOPAQUE_MAX_LEN (253)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_rsn_opaque(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIERSNOpaque*,
bool);
uint32_t dot11f_pack_ie_rsn_opaque(
tpAniSirGlobal,
tDot11fIERSNOpaque *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_iersnOpaque(
tpAniSirGlobal,
tDot11fIERSNOpaque *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 36 (0x24) */
typedef struct sDot11fIESuppChannels {
uint8_t present;
uint8_t num_bands;
uint8_t bands[48][2];
} tDot11fIESuppChannels;
#define DOT11F_EID_SUPPCHANNELS (36)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_SUPPCHANNELS_MIN_LEN (0)
#define DOT11F_IE_SUPPCHANNELS_MAX_LEN (96)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_supp_channels(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIESuppChannels*,
bool);
uint32_t dot11f_pack_ie_supp_channels(
tpAniSirGlobal,
tDot11fIESuppChannels *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_SuppChannels(
tpAniSirGlobal,
tDot11fIESuppChannels *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 59 (0x3b) */
typedef struct sDot11fIESuppOperatingClasses {
uint8_t present;
uint8_t num_classes;
uint8_t classes[32];
} tDot11fIESuppOperatingClasses;
#define DOT11F_EID_SUPPOPERATINGCLASSES (59)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_SUPPOPERATINGCLASSES_MIN_LEN (1)
#define DOT11F_IE_SUPPOPERATINGCLASSES_MAX_LEN (32)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_supp_operating_classes(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIESuppOperatingClasses*,
bool);
uint32_t dot11f_pack_ie_supp_operating_classes(
tpAniSirGlobal,
tDot11fIESuppOperatingClasses *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_SuppOperatingClasses(
tpAniSirGlobal,
tDot11fIESuppOperatingClasses *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 1 (0x01) */
typedef struct sDot11fIESuppRates {
uint8_t present;
uint8_t num_rates;
uint8_t rates[12];
} tDot11fIESuppRates;
#define DOT11F_EID_SUPPRATES (1)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_SUPPRATES_MIN_LEN (0)
#define DOT11F_IE_SUPPRATES_MAX_LEN (12)
#define DOT11F_IS_BG_RATE(_x) (((_x) == 02) || \
((_x) == 04) || \
((_x) == 11) || \
((_x) == 22) || \
((_x) == 12) || \
((_x) == 18) || \
((_x) == 24) || \
((_x) == 36) || \
((_x) == 48) || \
((_x) == 72) || \
((_x) == 96) || \
((_x) == 108))
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_supp_rates(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIESuppRates*,
bool);
uint32_t dot11f_pack_ie_supp_rates(
tpAniSirGlobal,
tDot11fIESuppRates *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_SuppRates(
tpAniSirGlobal,
tDot11fIESuppRates *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 5 (0x05) */
typedef struct sDot11fIETIM {
uint8_t present;
uint8_t dtim_count;
uint8_t dtim_period;
uint8_t bmpctl;
uint8_t num_vbmp;
uint8_t vbmp[251];
} tDot11fIETIM;
#define DOT11F_EID_TIM (5)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_TIM_MIN_LEN (4)
#define DOT11F_IE_TIM_MAX_LEN (254)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_tim(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIETIM*,
bool);
uint32_t dot11f_pack_ie_tim(
tpAniSirGlobal,
tDot11fIETIM *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_TIM(
tpAniSirGlobal,
tDot11fIETIM *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 35 (0x23) */
typedef struct sDot11fIETPCReport {
uint8_t present;
uint8_t tx_power;
uint8_t link_margin;
} tDot11fIETPCReport;
#define DOT11F_EID_TPCREPORT (35)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_TPCREPORT_MIN_LEN (2)
#define DOT11F_IE_TPCREPORT_MAX_LEN (2)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_tpc_report(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIETPCReport*,
bool);
uint32_t dot11f_pack_ie_tpc_report(
tpAniSirGlobal,
tDot11fIETPCReport *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_TPCReport(
tpAniSirGlobal,
tDot11fIETPCReport *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 34 (0x22) */
typedef struct sDot11fIETPCRequest {
uint8_t present;
} tDot11fIETPCRequest;
#define DOT11F_EID_TPCREQUEST (34)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_TPCREQUEST_MIN_LEN (0)
#define DOT11F_IE_TPCREQUEST_MAX_LEN (0)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_tpc_request(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIETPCRequest*,
bool);
uint32_t dot11f_pack_ie_tpc_request(
tpAniSirGlobal,
tDot11fIETPCRequest *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_TPCRequest(
tpAniSirGlobal,
tDot11fIETPCRequest *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 69 (0x45) */
typedef struct sDot11fIETimeAdvertisement {
uint8_t present;
uint8_t timing_capabilities;
uint8_t time_value[10];
uint8_t time_error[5];
} tDot11fIETimeAdvertisement;
#define DOT11F_EID_TIMEADVERTISEMENT (69)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_TIMEADVERTISEMENT_MIN_LEN (16)
#define DOT11F_IE_TIMEADVERTISEMENT_MAX_LEN (16)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_time_advertisement(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIETimeAdvertisement*,
bool);
uint32_t dot11f_pack_ie_time_advertisement(
tpAniSirGlobal,
tDot11fIETimeAdvertisement *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_time_advertisement(
tpAniSirGlobal,
tDot11fIETimeAdvertisement *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 56 (0x38) */
typedef struct sDot11fIETimeoutInterval {
uint8_t present;
uint8_t timeoutType;
uint32_t timeoutValue;
} tDot11fIETimeoutInterval;
#define DOT11F_EID_TIMEOUTINTERVAL (56)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_TIMEOUTINTERVAL_MIN_LEN (5)
#define DOT11F_IE_TIMEOUTINTERVAL_MAX_LEN (5)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_timeout_interval(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIETimeoutInterval*,
bool);
uint32_t dot11f_pack_ie_timeout_interval(
tpAniSirGlobal,
tDot11fIETimeoutInterval *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_TimeoutInterval(
tpAniSirGlobal,
tDot11fIETimeoutInterval *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 193 (0xc1) */
typedef struct sDot11fIEVHTExtBssLoad {
uint8_t present;
uint8_t muMIMOCapStaCount;
uint8_t ssUnderUtil;
uint8_t FortyMHzUtil;
uint8_t EightyMHzUtil;
uint8_t OneSixtyMHzUtil;
} tDot11fIEVHTExtBssLoad;
#define DOT11F_EID_VHTEXTBSSLOAD (193)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_VHTEXTBSSLOAD_MIN_LEN (5)
#define DOT11F_IE_VHTEXTBSSLOAD_MAX_LEN (5)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_vht_ext_bss_load(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEVHTExtBssLoad*,
bool);
uint32_t dot11f_pack_ie_vht_ext_bss_load(
tpAniSirGlobal,
tDot11fIEVHTExtBssLoad *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_VHTExtBssLoad(
tpAniSirGlobal,
tDot11fIEVHTExtBssLoad *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x10, 0x18} */
typedef struct sDot11fIEVendor1IE {
uint8_t present;
} tDot11fIEVendor1IE;
#define DOT11F_EID_VENDOR1IE (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_VENDOR1IE_MIN_LEN (3)
#define DOT11F_IE_VENDOR1IE_MAX_LEN (3)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_vendor1_ie(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEVendor1IE*,
bool);
uint32_t dot11f_pack_ie_vendor1_ie(
tpAniSirGlobal,
tDot11fIEVendor1IE *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_Vendor1IE(
tpAniSirGlobal,
tDot11fIEVendor1IE *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x16, 0x32} */
typedef struct sDot11fIEVendor3IE {
uint8_t present;
} tDot11fIEVendor3IE;
#define DOT11F_EID_VENDOR3IE (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_VENDOR3IE_MIN_LEN (3)
#define DOT11F_IE_VENDOR3IE_MAX_LEN (3)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_vendor3_ie(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEVendor3IE*,
bool);
uint32_t dot11f_pack_ie_vendor3_ie(
tpAniSirGlobal,
tDot11fIEVendor3IE *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_Vendor3IE(
tpAniSirGlobal,
tDot11fIEVendor3IE *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 68 (0x44) */
typedef struct sDot11fIEWAPI {
uint8_t present;
uint16_t version /* Must be 1! */;
uint16_t akm_suite_count;
uint8_t akm_suites[4][4];
uint16_t unicast_cipher_suite_count;
uint8_t unicast_cipher_suites[4][4];
uint8_t multicast_cipher_suite[4];
uint16_t preauth:1;
uint16_t reserved:15;
uint16_t bkid_count;
uint8_t bkid[4][16];
} tDot11fIEWAPI;
#define DOT11F_EID_WAPI (68)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WAPI_MIN_LEN (12)
#define DOT11F_IE_WAPI_MAX_LEN (110)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wapi(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWAPI*,
bool);
uint32_t dot11f_pack_ie_wapi(
tpAniSirGlobal,
tDot11fIEWAPI *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_iewapi(
tpAniSirGlobal,
tDot11fIEWAPI *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 68 (0x44) */
typedef struct sDot11fIEWAPIOpaque {
uint8_t present;
uint8_t num_data;
uint8_t data[253];
} tDot11fIEWAPIOpaque;
#define DOT11F_EID_WAPIOPAQUE (68)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WAPIOPAQUE_MIN_LEN (6)
#define DOT11F_IE_WAPIOPAQUE_MAX_LEN (253)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wapi_opaque(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWAPIOpaque*,
bool);
uint32_t dot11f_pack_ie_wapi_opaque(
tpAniSirGlobal,
tDot11fIEWAPIOpaque *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_iewapiOpaque(
tpAniSirGlobal,
tDot11fIEWAPIOpaque *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x08, 0x00} */
typedef struct sDot11fIEWFATPC {
uint8_t present;
uint8_t txPower;
uint8_t linkMargin;
} tDot11fIEWFATPC;
#define DOT11F_EID_WFATPC (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WFATPC_MIN_LEN (7)
#define DOT11F_IE_WFATPC_MAX_LEN (7)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wfatpc(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWFATPC*,
bool);
uint32_t dot11f_pack_ie_wfatpc(
tpAniSirGlobal,
tDot11fIEWFATPC *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_WFATPC(
tpAniSirGlobal,
tDot11fIEWFATPC *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x0a} */
typedef struct sDot11fIEWFDIEOpaque {
uint8_t present;
uint8_t num_data;
uint8_t data[249];
} tDot11fIEWFDIEOpaque;
#define DOT11F_EID_WFDIEOPAQUE (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WFDIEOPAQUE_MIN_LEN (6)
#define DOT11F_IE_WFDIEOPAQUE_MAX_LEN (253)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wfdie_opaque(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWFDIEOpaque*,
bool);
uint32_t dot11f_pack_ie_wfdie_opaque(
tpAniSirGlobal,
tDot11fIEWFDIEOpaque *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_WFDIEOpaque(
tpAniSirGlobal,
tDot11fIEWFDIEOpaque *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x05} */
typedef struct sDot11fIEWMMCaps {
uint8_t present;
uint8_t version /* Must be 1! */;
uint8_t reserved:4;
uint8_t qack:1;
uint8_t queue_request:1;
uint8_t txop_request:1;
uint8_t more_ack:1;
} tDot11fIEWMMCaps;
#define DOT11F_EID_WMMCAPS (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WMMCAPS_MIN_LEN (7)
#define DOT11F_IE_WMMCAPS_MAX_LEN (7)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wmm_caps(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWMMCaps*,
bool);
uint32_t dot11f_pack_ie_wmm_caps(
tpAniSirGlobal,
tDot11fIEWMMCaps *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_WMMCaps(
tpAniSirGlobal,
tDot11fIEWMMCaps *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x00} */
typedef struct sDot11fIEWMMInfoAp {
uint8_t present;
uint8_t version;
uint8_t param_set_count:4;
uint8_t reserved:3;
uint8_t uapsd:1;
} tDot11fIEWMMInfoAp;
#define DOT11F_EID_WMMINFOAP (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WMMINFOAP_MIN_LEN (7)
#define DOT11F_IE_WMMINFOAP_MAX_LEN (7)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wmm_info_ap(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWMMInfoAp*,
bool);
uint32_t dot11f_pack_ie_wmm_info_ap(
tpAniSirGlobal,
tDot11fIEWMMInfoAp *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_WMMInfoAp(
tpAniSirGlobal,
tDot11fIEWMMInfoAp *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x00} */
typedef struct sDot11fIEWMMInfoStation {
uint8_t present;
uint8_t version;
uint8_t acvo_uapsd:1;
uint8_t acvi_uapsd:1;
uint8_t acbk_uapsd:1;
uint8_t acbe_uapsd:1;
uint8_t reserved1:1;
uint8_t max_sp_length:2;
uint8_t reserved2:1;
} tDot11fIEWMMInfoStation;
#define DOT11F_EID_WMMINFOSTATION (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WMMINFOSTATION_MIN_LEN (7)
#define DOT11F_IE_WMMINFOSTATION_MAX_LEN (7)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wmm_info_station(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWMMInfoStation*,
bool);
uint32_t dot11f_pack_ie_wmm_info_station(
tpAniSirGlobal,
tDot11fIEWMMInfoStation *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_WMMInfoStation(
tpAniSirGlobal,
tDot11fIEWMMInfoStation *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x01} */
typedef struct sDot11fIEWMMParams {
uint8_t present;
uint8_t version /* Must be 1! */;
uint8_t qosInfo;
uint8_t reserved2;
uint8_t acbe_aifsn:4;
uint8_t acbe_acm:1;
uint8_t acbe_aci:2;
uint8_t unused1:1;
uint8_t acbe_acwmin:4;
uint8_t acbe_acwmax:4;
uint16_t acbe_txoplimit;
uint8_t acbk_aifsn:4;
uint8_t acbk_acm:1;
uint8_t acbk_aci:2;
uint8_t unused2:1;
uint8_t acbk_acwmin:4;
uint8_t acbk_acwmax:4;
uint16_t acbk_txoplimit;
uint8_t acvi_aifsn:4;
uint8_t acvi_acm:1;
uint8_t acvi_aci:2;
uint8_t unused3:1;
uint8_t acvi_acwmin:4;
uint8_t acvi_acwmax:4;
uint16_t acvi_txoplimit;
uint8_t acvo_aifsn:4;
uint8_t acvo_acm:1;
uint8_t acvo_aci:2;
uint8_t unused4:1;
uint8_t acvo_acwmin:4;
uint8_t acvo_acwmax:4;
uint16_t acvo_txoplimit;
} tDot11fIEWMMParams;
#define DOT11F_EID_WMMPARAMS (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WMMPARAMS_MIN_LEN (24)
#define DOT11F_IE_WMMPARAMS_MAX_LEN (24)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wmm_params(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWMMParams*,
bool);
uint32_t dot11f_pack_ie_wmm_params(
tpAniSirGlobal,
tDot11fIEWMMParams *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_WMMParams(
tpAniSirGlobal,
tDot11fIEWMMParams *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x01} */
typedef struct sDot11fIEWPA {
uint8_t present;
uint16_t version /* Must be 1! */;
/* field added to fix the bug in dot11fPackIEWPA */
uint8_t multicast_cipher_present;
uint8_t multicast_cipher[4];
uint16_t unicast_cipher_count;
uint8_t unicast_ciphers[4][4];
uint16_t auth_suite_count;
uint8_t auth_suites[4][4];
uint16_t caps;
} tDot11fIEWPA;
#define DOT11F_EID_WPA (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WPA_MIN_LEN (6)
#define DOT11F_IE_WPA_MAX_LEN (48)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wpa(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWPA*,
bool);
uint32_t dot11f_pack_ie_wpa(
tpAniSirGlobal,
tDot11fIEWPA *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_iewpa(
tpAniSirGlobal,
tDot11fIEWPA *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x01} */
typedef struct sDot11fIEWPAOpaque {
uint8_t present;
uint8_t num_data;
uint8_t data[249];
} tDot11fIEWPAOpaque;
#define DOT11F_EID_WPAOPAQUE (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WPAOPAQUE_MIN_LEN (6)
#define DOT11F_IE_WPAOPAQUE_MAX_LEN (253)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wpa_opaque(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWPAOpaque*,
bool);
uint32_t dot11f_pack_ie_wpa_opaque(
tpAniSirGlobal,
tDot11fIEWPAOpaque *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_iewpaOpaque(
tpAniSirGlobal,
tDot11fIEWPAOpaque *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE) */
typedef struct sDot11fIEWSC {
uint8_t present;
tDot11fTLVVersion Version;
tDot11fTLVWPSState WPSState;
tDot11fTLVAPSetupLocked APSetupLocked;
tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
tDot11fTLVUUID_E UUID_E;
tDot11fTLVUUID_R UUID_R;
tDot11fTLVRFBands RFBands;
tDot11fTLVSelectedRegistrar SelectedRegistrar;
tDot11fTLVConfigMethods ConfigMethods;
tDot11fTLVAssociationState AssociationState;
tDot11fTLVConfigurationError ConfigurationError;
tDot11fTLVManufacturer Manufacturer;
tDot11fTLVModelName ModelName;
tDot11fTLVModelNumber ModelNumber;
tDot11fTLVSerialNumber SerialNumber;
tDot11fTLVDeviceName DeviceName;
tDot11fTLVDevicePasswordID DevicePasswordID;
tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
tDot11fTLVRequestType RequestType;
tDot11fTLVResponseType ResponseType;
tDot11fTLVVendorExtension VendorExtension;
tDot11fTLVRequestDeviceType RequestDeviceType;
} tDot11fIEWSC;
#define DOT11F_EID_WSC (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WSC_MIN_LEN (4)
#define DOT11F_IE_WSC_MAX_LEN (366)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wsc(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWSC*,
bool);
uint32_t dot11f_pack_ie_wsc(
tpAniSirGlobal,
tDot11fIEWSC *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_iewsc(
tpAniSirGlobal,
tDot11fIEWSC *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE) */
typedef struct sDot11fIEWscAssocReq {
uint8_t present;
tDot11fTLVVersion Version;
tDot11fTLVRequestType RequestType;
tDot11fTLVVendorExtension VendorExtension;
} tDot11fIEWscAssocReq;
#define DOT11F_EID_WSCASSOCREQ (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WSCASSOCREQ_MIN_LEN (4)
#define DOT11F_IE_WSCASSOCREQ_MAX_LEN (35)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wsc_assoc_req(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWscAssocReq*,
bool);
uint32_t dot11f_pack_ie_wsc_assoc_req(
tpAniSirGlobal,
tDot11fIEWscAssocReq *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_wsc_assoc_req(
tpAniSirGlobal,
tDot11fIEWscAssocReq *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE) */
typedef struct sDot11fIEWscAssocRes {
uint8_t present;
tDot11fTLVVersion Version;
tDot11fTLVResponseType ResponseType;
tDot11fTLVVendorExtension VendorExtension;
} tDot11fIEWscAssocRes;
#define DOT11F_EID_WSCASSOCRES (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WSCASSOCRES_MIN_LEN (4)
#define DOT11F_IE_WSCASSOCRES_MAX_LEN (35)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wsc_assoc_res(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWscAssocRes*,
bool);
uint32_t dot11f_pack_ie_wsc_assoc_res(
tpAniSirGlobal,
tDot11fIEWscAssocRes *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_wsc_assoc_res(
tpAniSirGlobal,
tDot11fIEWscAssocRes *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE) */
typedef struct sDot11fIEWscBeacon {
uint8_t present;
tDot11fTLVVersion Version;
tDot11fTLVWPSState WPSState;
tDot11fTLVAPSetupLocked APSetupLocked;
tDot11fTLVSelectedRegistrar SelectedRegistrar;
tDot11fTLVDevicePasswordID DevicePasswordID;
tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
tDot11fTLVUUID_E UUID_E;
tDot11fTLVRFBands RFBands;
tDot11fTLVVendorExtension VendorExtension;
} tDot11fIEWscBeacon;
#define DOT11F_EID_WSCBEACON (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WSCBEACON_MIN_LEN (4)
#define DOT11F_IE_WSCBEACON_MAX_LEN (82)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wsc_beacon(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWscBeacon*,
bool);
uint32_t dot11f_pack_ie_wsc_beacon(
tpAniSirGlobal,
tDot11fIEWscBeacon *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_wsc_beacon(
tpAniSirGlobal,
tDot11fIEWscBeacon *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE) */
typedef struct sDot11fIEWscBeaconProbeRes {
uint8_t present;
tDot11fTLVVersion Version;
tDot11fTLVWPSState WPSState;
tDot11fTLVAPSetupLocked APSetupLocked;
tDot11fTLVSelectedRegistrar SelectedRegistrar;
tDot11fTLVDevicePasswordID DevicePasswordID;
tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
tDot11fTLVResponseType ResponseType;
tDot11fTLVUUID_E UUID_E;
tDot11fTLVManufacturer Manufacturer;
tDot11fTLVModelName ModelName;
tDot11fTLVModelNumber ModelNumber;
tDot11fTLVSerialNumber SerialNumber;
tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
tDot11fTLVDeviceName DeviceName;
tDot11fTLVConfigMethods ConfigMethods;
tDot11fTLVRFBands RFBands;
tDot11fTLVVendorExtension VendorExtension;
} tDot11fIEWscBeaconProbeRes;
#define DOT11F_EID_WSCBEACONPROBERES (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WSCBEACONPROBERES_MIN_LEN (4)
#define DOT11F_IE_WSCBEACONPROBERES_MAX_LEN (317)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wsc_beacon_probe_res(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWscBeaconProbeRes*,
bool);
uint32_t dot11f_pack_ie_wsc_beacon_probe_res(
tpAniSirGlobal,
tDot11fIEWscBeaconProbeRes *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_wsc_beacon_probe_res(
tpAniSirGlobal,
tDot11fIEWscBeaconProbeRes *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} */
typedef struct sDot11fIEWscIEOpaque {
uint8_t present;
uint8_t num_data;
uint8_t data[249];
} tDot11fIEWscIEOpaque;
#define DOT11F_EID_WSCIEOPAQUE (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WSCIEOPAQUE_MIN_LEN (6)
#define DOT11F_IE_WSCIEOPAQUE_MAX_LEN (253)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wsc_ie_opaque(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWscIEOpaque*,
bool);
uint32_t dot11f_pack_ie_wsc_ie_opaque(
tpAniSirGlobal,
tDot11fIEWscIEOpaque *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_WscIEOpaque(
tpAniSirGlobal,
tDot11fIEWscIEOpaque *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE) */
typedef struct sDot11fIEWscProbeReq {
uint8_t present;
tDot11fTLVVersion Version;
tDot11fTLVRequestType RequestType;
tDot11fTLVConfigMethods ConfigMethods;
tDot11fTLVUUID_E UUID_E;
tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
tDot11fTLVRFBands RFBands;
tDot11fTLVAssociationState AssociationState;
tDot11fTLVConfigurationError ConfigurationError;
tDot11fTLVDevicePasswordID DevicePasswordID;
tDot11fTLVManufacturer Manufacturer;
tDot11fTLVModelName ModelName;
tDot11fTLVModelNumber ModelNumber;
tDot11fTLVDeviceName DeviceName;
tDot11fTLVVendorExtension VendorExtension;
tDot11fTLVRequestDeviceType RequestDeviceType;
} tDot11fIEWscProbeReq;
#define DOT11F_EID_WSCPROBEREQ (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WSCPROBEREQ_MIN_LEN (4)
#define DOT11F_IE_WSCPROBEREQ_MAX_LEN (284)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wsc_probe_req(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWscProbeReq*,
bool);
uint32_t dot11f_pack_ie_wsc_probe_req(
tpAniSirGlobal,
tDot11fIEWscProbeReq *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_wsc_probe_req(
tpAniSirGlobal,
tDot11fIEWscProbeReq *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE) */
typedef struct sDot11fIEWscProbeRes {
uint8_t present;
tDot11fTLVVersion Version;
tDot11fTLVWPSState WPSState;
tDot11fTLVAPSetupLocked APSetupLocked;
tDot11fTLVSelectedRegistrar SelectedRegistrar;
tDot11fTLVDevicePasswordID DevicePasswordID;
tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods;
tDot11fTLVResponseType ResponseType;
tDot11fTLVUUID_E UUID_E;
tDot11fTLVManufacturer Manufacturer;
tDot11fTLVModelName ModelName;
tDot11fTLVModelNumber ModelNumber;
tDot11fTLVSerialNumber SerialNumber;
tDot11fTLVPrimaryDeviceType PrimaryDeviceType;
tDot11fTLVDeviceName DeviceName;
tDot11fTLVConfigMethods ConfigMethods;
tDot11fTLVRFBands RFBands;
tDot11fTLVVendorExtension VendorExtension;
} tDot11fIEWscProbeRes;
#define DOT11F_EID_WSCPROBERES (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WSCPROBERES_MIN_LEN (4)
#define DOT11F_IE_WSCPROBERES_MAX_LEN (317)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wsc_probe_res(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWscProbeRes*,
bool);
uint32_t dot11f_pack_ie_wsc_probe_res(
tpAniSirGlobal,
tDot11fIEWscProbeRes *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_wsc_probe_res(
tpAniSirGlobal,
tDot11fIEWscProbeRes *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE) */
typedef struct sDot11fIEWscReassocRes {
uint8_t present;
tDot11fTLVVersion Version;
tDot11fTLVResponseType ResponseType;
tDot11fTLVVendorExtension VendorExtension;
} tDot11fIEWscReassocRes;
#define DOT11F_EID_WSCREASSOCRES (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_WSCREASSOCRES_MIN_LEN (4)
#define DOT11F_IE_WSCREASSOCRES_MAX_LEN (35)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_wsc_reassoc_res(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEWscReassocRes*,
bool);
uint32_t dot11f_pack_ie_wsc_reassoc_res(
tpAniSirGlobal,
tDot11fIEWscReassocRes *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_wsc_reassoc_res(
tpAniSirGlobal,
tDot11fIEWscReassocRes *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 159 (0x9f) */
typedef struct sDot11fIEaddba_extn_element {
uint8_t present;
uint8_t no_fragmentation:1;
uint8_t he_frag_operation:2;
uint8_t reserved:5;
} tDot11fIEaddba_extn_element;
#define DOT11F_EID_ADDBA_EXTN_ELEMENT (159)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_ADDBA_EXTN_ELEMENT_MIN_LEN (1)
#define DOT11F_IE_ADDBA_EXTN_ELEMENT_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_addba_extn_element(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEaddba_extn_element*,
bool);
uint32_t dot11f_pack_ie_addba_extn_element(
tpAniSirGlobal,
tDot11fIEaddba_extn_element *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_addba_extn_element(
tpAniSirGlobal,
tDot11fIEaddba_extn_element *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 255 (0xff) Extended EID 42 (0x2a) */
typedef struct sDot11fIEbss_color_change {
uint8_t present;
uint8_t countdown;
uint8_t new_color:6;
uint8_t reserved:2;
} tDot11fIEbss_color_change;
#define DOT11F_EID_BSS_COLOR_CHANGE (255)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_BSS_COLOR_CHANGE_MIN_LEN (2)
#define DOT11F_IE_BSS_COLOR_CHANGE_MAX_LEN (2)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_bss_color_change(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEbss_color_change*,
bool);
uint32_t dot11f_pack_ie_bss_color_change(
tpAniSirGlobal,
tDot11fIEbss_color_change *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_bss_color_change(
tpAniSirGlobal,
tDot11fIEbss_color_change *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 255 (0xff) Extended EID 32 (0x20) */
typedef struct sDot11fIEdh_parameter_element {
uint8_t present;
uint8_t group[2];
uint8_t num_public_key;
uint8_t public_key[255];
} tDot11fIEdh_parameter_element;
#define DOT11F_EID_DH_PARAMETER_ELEMENT (255)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_DH_PARAMETER_ELEMENT_MIN_LEN (2)
#define DOT11F_IE_DH_PARAMETER_ELEMENT_MAX_LEN (257)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_dh_parameter_element(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEdh_parameter_element*,
bool);
uint32_t dot11f_pack_ie_dh_parameter_element(
tpAniSirGlobal,
tDot11fIEdh_parameter_element *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_dh_parameter_element(
tpAniSirGlobal,
tDot11fIEdh_parameter_element *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 255 (0xff) Extended EID 11 (0x0b) */
typedef struct sDot11fIEesp_information {
uint8_t present;
uint8_t num_data;
uint8_t data[96];
} tDot11fIEesp_information;
#define DOT11F_EID_ESP_INFORMATION (255)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_ESP_INFORMATION_MIN_LEN (0)
#define DOT11F_IE_ESP_INFORMATION_MAX_LEN (96)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_esp_information(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEesp_information*,
bool);
uint32_t dot11f_pack_ie_esp_information(
tpAniSirGlobal,
tDot11fIEesp_information *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_esp_information(
tpAniSirGlobal,
tDot11fIEesp_information *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 60 (0x3c) */
typedef struct sDot11fIEext_chan_switch_ann {
uint8_t present;
uint8_t switch_mode;
uint8_t new_reg_class;
uint8_t new_channel;
uint8_t switch_count;
} tDot11fIEext_chan_switch_ann;
#define DOT11F_EID_EXT_CHAN_SWITCH_ANN (60)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_EXT_CHAN_SWITCH_ANN_MIN_LEN (4)
#define DOT11F_IE_EXT_CHAN_SWITCH_ANN_MAX_LEN (4)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ext_chan_switch_ann(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEext_chan_switch_ann*,
bool);
uint32_t dot11f_pack_ie_ext_chan_switch_ann(
tpAniSirGlobal,
tDot11fIEext_chan_switch_ann *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_ext_chan_switch_ann(
tpAniSirGlobal,
tDot11fIEext_chan_switch_ann *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 255 (0xff) Extended EID 1 (0x01) */
typedef struct sDot11fIEfils_assoc_delay_info {
uint8_t present;
uint8_t assoc_delay_info;
} tDot11fIEfils_assoc_delay_info;
#define DOT11F_EID_FILS_ASSOC_DELAY_INFO (255)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_FILS_ASSOC_DELAY_INFO_MIN_LEN (1)
#define DOT11F_IE_FILS_ASSOC_DELAY_INFO_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_fils_assoc_delay_info(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEfils_assoc_delay_info*,
bool);
uint32_t dot11f_pack_ie_fils_assoc_delay_info(
tpAniSirGlobal,
tDot11fIEfils_assoc_delay_info *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_fils_assoc_delay_info(
tpAniSirGlobal,
tDot11fIEfils_assoc_delay_info *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 255 (0xff) Extended EID 5 (0x05) */
typedef struct sDot11fIEfils_hlp_container {
uint8_t present;
uint8_t dest_mac[6];
uint8_t src_mac[6];
uint8_t num_hlp_packet;
uint8_t hlp_packet[255];
} tDot11fIEfils_hlp_container;
#define DOT11F_EID_FILS_HLP_CONTAINER (255)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_FILS_HLP_CONTAINER_MIN_LEN (12)
#define DOT11F_IE_FILS_HLP_CONTAINER_MAX_LEN (267)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_fils_hlp_container(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEfils_hlp_container*,
bool);
uint32_t dot11f_pack_ie_fils_hlp_container(
tpAniSirGlobal,
tDot11fIEfils_hlp_container *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_fils_hlp_container(
tpAniSirGlobal,
tDot11fIEfils_hlp_container *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 240 (0xf0) */
typedef struct sDot11fIEfils_indication {
uint8_t present;
uint16_t public_key_identifiers_cnt:3;
uint16_t realm_identifiers_cnt:3;
uint16_t is_ip_config_supported:1;
uint16_t is_cache_id_present:1;
uint16_t is_hessid_present:1;
uint16_t is_fils_sk_auth_supported:1;
uint16_t is_fils_sk_auth_pfs_supported:1;
uint16_t is_pk_auth_supported:1;
uint16_t reserved:4;
uint8_t num_variable_data;
uint8_t variable_data[255];
} tDot11fIEfils_indication;
#define DOT11F_EID_FILS_INDICATION (240)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_FILS_INDICATION_MIN_LEN (4)
#define DOT11F_IE_FILS_INDICATION_MAX_LEN (257)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_fils_indication(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEfils_indication*,
bool);
uint32_t dot11f_pack_ie_fils_indication(
tpAniSirGlobal,
tDot11fIEfils_indication *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_fils_indication(
tpAniSirGlobal,
tDot11fIEfils_indication *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 255 (0xff) Extended EID 7 (0x07) */
typedef struct sDot11fIEfils_kde {
uint8_t present;
uint8_t key_rsc[8];
uint8_t num_kde_list;
uint8_t kde_list[255];
} tDot11fIEfils_kde;
#define DOT11F_EID_FILS_KDE (255)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_FILS_KDE_MIN_LEN (8)
#define DOT11F_IE_FILS_KDE_MAX_LEN (263)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_fils_kde(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEfils_kde*,
bool);
uint32_t dot11f_pack_ie_fils_kde(
tpAniSirGlobal,
tDot11fIEfils_kde *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_fils_kde(
tpAniSirGlobal,
tDot11fIEfils_kde *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 255 (0xff) Extended EID 3 (0x03) */
typedef struct sDot11fIEfils_key_confirmation {
uint8_t present;
uint8_t num_key_auth;
uint8_t key_auth[255];
} tDot11fIEfils_key_confirmation;
#define DOT11F_EID_FILS_KEY_CONFIRMATION (255)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_FILS_KEY_CONFIRMATION_MIN_LEN (0)
#define DOT11F_IE_FILS_KEY_CONFIRMATION_MAX_LEN (255)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_fils_key_confirmation(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEfils_key_confirmation*,
bool);
uint32_t dot11f_pack_ie_fils_key_confirmation(
tpAniSirGlobal,
tDot11fIEfils_key_confirmation *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_fils_key_confirmation(
tpAniSirGlobal,
tDot11fIEfils_key_confirmation *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 255 (0xff) Extended EID 13 (0x0d) */
typedef struct sDot11fIEfils_nonce {
uint8_t present;
uint8_t nonce[16];
} tDot11fIEfils_nonce;
#define DOT11F_EID_FILS_NONCE (255)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_FILS_NONCE_MIN_LEN (16)
#define DOT11F_IE_FILS_NONCE_MAX_LEN (16)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_fils_nonce(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEfils_nonce*,
bool);
uint32_t dot11f_pack_ie_fils_nonce(
tpAniSirGlobal,
tDot11fIEfils_nonce *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_fils_nonce(
tpAniSirGlobal,
tDot11fIEfils_nonce *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 255 (0xff) Extended EID 12 (0x0c) */
typedef struct sDot11fIEfils_public_key {
uint8_t present;
uint8_t key_type;
uint8_t num_public_key;
uint8_t public_key[255];
} tDot11fIEfils_public_key;
#define DOT11F_EID_FILS_PUBLIC_KEY (255)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_FILS_PUBLIC_KEY_MIN_LEN (1)
#define DOT11F_IE_FILS_PUBLIC_KEY_MAX_LEN (256)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_fils_public_key(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEfils_public_key*,
bool);
uint32_t dot11f_pack_ie_fils_public_key(
tpAniSirGlobal,
tDot11fIEfils_public_key *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_fils_public_key(
tpAniSirGlobal,
tDot11fIEfils_public_key *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 255 (0xff) Extended EID 4 (0x04) */
typedef struct sDot11fIEfils_session {
uint8_t present;
uint8_t session[8];
} tDot11fIEfils_session;
#define DOT11F_EID_FILS_SESSION (255)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_FILS_SESSION_MIN_LEN (8)
#define DOT11F_IE_FILS_SESSION_MAX_LEN (8)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_fils_session(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEfils_session*,
bool);
uint32_t dot11f_pack_ie_fils_session(
tpAniSirGlobal,
tDot11fIEfils_session *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_fils_session(
tpAniSirGlobal,
tDot11fIEfils_session *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 255 (0xff) Extended EID 8 (0x08) */
typedef struct sDot11fIEfils_wrapped_data {
uint8_t present;
uint8_t num_wrapped_data;
uint8_t wrapped_data[255];
} tDot11fIEfils_wrapped_data;
#define DOT11F_EID_FILS_WRAPPED_DATA (255)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_FILS_WRAPPED_DATA_MIN_LEN (0)
#define DOT11F_IE_FILS_WRAPPED_DATA_MAX_LEN (255)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_fils_wrapped_data(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEfils_wrapped_data*,
bool);
uint32_t dot11f_pack_ie_fils_wrapped_data(
tpAniSirGlobal,
tDot11fIEfils_wrapped_data *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_fils_wrapped_data(
tpAniSirGlobal,
tDot11fIEfils_wrapped_data *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 242 (0xf2) */
typedef struct sDot11fIEfragment_ie {
uint8_t present;
uint8_t num_data;
uint8_t data[255];
} tDot11fIEfragment_ie;
#define DOT11F_EID_FRAGMENT_IE (242)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_FRAGMENT_IE_MIN_LEN (0)
#define DOT11F_IE_FRAGMENT_IE_MAX_LEN (255)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_fragment_ie(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEfragment_ie*,
bool);
uint32_t dot11f_pack_ie_fragment_ie(
tpAniSirGlobal,
tDot11fIEfragment_ie *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_fragment_ie(
tpAniSirGlobal,
tDot11fIEfragment_ie *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 255 (0xff) Extended EID 35 (0x23) */
typedef struct sDot11fIEhe_cap {
uint8_t present;
uint32_t htc_he:1;
uint32_t twt_request:1;
uint32_t twt_responder:1;
uint32_t fragmentation:2;
uint32_t max_num_frag_msdu_amsdu_exp:3;
uint32_t min_frag_size:2;
uint32_t trigger_frm_mac_pad:2;
uint32_t multi_tid_aggr_rx_supp:3;
uint32_t he_link_adaptation:2;
uint32_t all_ack:1;
uint32_t trigd_rsp_sched:1;
uint32_t a_bsr:1;
uint32_t broadcast_twt:1;
uint32_t ba_32bit_bitmap:1;
uint32_t mu_cascade:1;
uint32_t ack_enabled_multitid:1;
uint32_t reserved:1;
uint32_t omi_a_ctrl:1;
uint32_t ofdma_ra:1;
uint32_t max_ampdu_len_exp_ext:2;
uint32_t amsdu_frag:1;
uint32_t flex_twt_sched:1;
uint32_t rx_ctrl_frame:1;
uint16_t bsrp_ampdu_aggr:1;
uint16_t qtp:1;
uint16_t a_bqr:1;
uint16_t spatial_reuse_param_rspder:1;
uint16_t ndp_feedback_supp:1;
uint16_t ops_supp:1;
uint16_t amsdu_in_ampdu:1;
uint16_t multi_tid_aggr_tx_supp:3;
uint16_t he_sub_ch_sel_tx_supp:1;
uint16_t ul_2x996_tone_ru_supp:1;
uint16_t om_ctrl_ul_mu_data_dis_rx:1;
uint16_t reserved1:3;
uint32_t reserved2:1;
uint32_t chan_width_0:1;
uint32_t chan_width_1:1;
uint32_t chan_width_2:1;
uint32_t chan_width_3:1;
uint32_t chan_width_4:1;
uint32_t chan_width_5:1;
uint32_t chan_width_6:1;
uint32_t rx_pream_puncturing:4;
uint32_t device_class:1;
uint32_t ldpc_coding:1;
uint32_t he_1x_ltf_800_gi_ppdu:1;
uint32_t midamble_tx_rx_max_nsts:2;
uint32_t he_4x_ltf_3200_gi_ndp:1;
uint32_t tx_stbc_lt_80mhz:1;
uint32_t rx_stbc_lt_80mhz:1;
uint32_t doppler:2;
uint32_t ul_mu:2;
uint32_t dcm_enc_tx:3;
uint32_t dcm_enc_rx:3;
uint32_t ul_he_mu:1;
uint32_t su_beamformer:1;
uint32_t su_beamformee:1;
uint32_t mu_beamformer:1;
uint32_t bfee_sts_lt_80:3;
uint32_t bfee_sts_gt_80:3;
uint32_t num_sounding_lt_80:3;
uint32_t num_sounding_gt_80:3;
uint32_t su_feedback_tone16:1;
uint32_t mu_feedback_tone16:1;
uint32_t codebook_su:1;
uint32_t codebook_mu:1;
uint32_t beamforming_feedback:3;
uint32_t he_er_su_ppdu:1;
uint32_t dl_mu_mimo_part_bw:1;
uint32_t ppet_present:1;
uint32_t srp:1;
uint32_t power_boost:1;
uint32_t he_ltf_800_gi_4x:1;
uint32_t max_nc:3;
uint32_t tx_stbc_gt_80mhz:1;
uint32_t rx_stbc_gt_80mhz:1;
uint16_t er_he_ltf_800_gi_4x:1;
uint16_t he_ppdu_20_in_40Mhz_2G:1;
uint16_t he_ppdu_20_in_160_80p80Mhz:1;
uint16_t he_ppdu_80_in_160_80p80Mhz:1;
uint16_t er_1x_he_ltf_gi:1;
uint16_t midamble_tx_rx_1x_he_ltf:1;
uint16_t dcm_max_bw:2;
uint16_t longer_than_16_he_sigb_ofdm_sym:1;
uint16_t non_trig_cqi_feedback:1;
uint16_t tx_1024_qam_lt_242_tone_ru:1;
uint16_t rx_1024_qam_lt_242_tone_ru:1;
uint16_t rx_full_bw_su_he_mu_compress_sigb:1;
uint16_t rx_full_bw_su_he_mu_non_cmpr_sigb:1;
uint16_t reserved3:2;
uint8_t reserved4;
uint16_t rx_he_mcs_map_lt_80;
uint16_t tx_he_mcs_map_lt_80;
uint8_t rx_he_mcs_map_160[1][2];
uint8_t tx_he_mcs_map_160[1][2];
uint8_t rx_he_mcs_map_80_80[1][2];
uint8_t tx_he_mcs_map_80_80[1][2];
union {
struct {
uint8_t num_ppe_th;
uint8_t ppe_th[25];
} ppe_threshold; /* ppet_present = 1 */
} ppet;
} tDot11fIEhe_cap;
#define DOT11F_EID_HE_CAP (255)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_HE_CAP_MIN_LEN (21)
#define DOT11F_IE_HE_CAP_MAX_LEN (54)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_he_cap(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEhe_cap*,
bool);
uint32_t dot11f_pack_ie_he_cap(
tpAniSirGlobal,
tDot11fIEhe_cap *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_he_cap(
tpAniSirGlobal,
tDot11fIEhe_cap *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 255 (0xff) Extended EID 36 (0x24) */
typedef struct sDot11fIEhe_op {
uint8_t present;
uint16_t default_pe:3;
uint16_t twt_required:1;
uint16_t txop_rts_threshold:10;
uint16_t vht_oper_present:1;
uint16_t co_located_bss:1;
uint8_t er_su_disable:1;
uint8_t reserved2:7;
uint8_t bss_color:6;
uint8_t partial_bss_col:1;
uint8_t bss_col_disabled:1;
uint8_t basic_mcs_nss[2];
union {
struct {
uint8_t chan_width;
uint8_t center_freq_seg0;
uint8_t center_freq_seg1;
} info; /* vht_oper_present = 1 */
} vht_oper;
union {
struct {
uint8_t data;
} info; /* co_located_bss = 1 */
} maxbssid_ind;
} tDot11fIEhe_op;
#define DOT11F_EID_HE_OP (255)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_HE_OP_MIN_LEN (6)
#define DOT11F_IE_HE_OP_MAX_LEN (10)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_he_op(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEhe_op*,
bool);
uint32_t dot11f_pack_ie_he_op(
tpAniSirGlobal,
tDot11fIEhe_op *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_he_op(
tpAniSirGlobal,
tDot11fIEhe_op *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x10} */
typedef struct sDot11fIEhs20vendor_ie {
uint8_t present;
uint8_t dgaf_dis:1;
uint8_t hs_id_present:2;
uint8_t reserved:1;
uint8_t release_num:4;
union {
struct {
uint16_t pps_mo_id;
} pps_mo; /* hs_id_present = 1 */
struct {
uint16_t anqp_domain_id;
} anqp_domain; /* hs_id_present = 2 */
} hs_id;
} tDot11fIEhs20vendor_ie;
#define DOT11F_EID_HS20VENDOR_IE (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_HS20VENDOR_IE_MIN_LEN (5)
#define DOT11F_IE_HS20VENDOR_IE_MAX_LEN (7)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_hs20vendor_ie(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEhs20vendor_ie*,
bool);
uint32_t dot11f_pack_ie_hs20vendor_ie(
tpAniSirGlobal,
tDot11fIEhs20vendor_ie *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_hs20vendor_ie(
tpAniSirGlobal,
tDot11fIEhs20vendor_ie *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 72 (0x48) */
typedef struct sDot11fIEht2040_bss_coexistence {
uint8_t present;
uint8_t info_request:1;
uint8_t forty_mhz_intolerant:1;
uint8_t twenty_mhz_bsswidth_req:1;
uint8_t obss_scan_exemption_req:1;
uint8_t obss_scan_exemption_grant:1;
uint8_t unused:3;
} tDot11fIEht2040_bss_coexistence;
#define DOT11F_EID_HT2040_BSS_COEXISTENCE (72)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_HT2040_BSS_COEXISTENCE_MIN_LEN (1)
#define DOT11F_IE_HT2040_BSS_COEXISTENCE_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ht2040_bss_coexistence(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEht2040_bss_coexistence*,
bool);
uint32_t dot11f_pack_ie_ht2040_bss_coexistence(
tpAniSirGlobal,
tDot11fIEht2040_bss_coexistence *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_ht2040_bss_coexistence(
tpAniSirGlobal,
tDot11fIEht2040_bss_coexistence *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 73 (0x49) */
typedef struct sDot11fIEht2040_bss_intolerant_report {
uint8_t present;
uint8_t operating_class;
uint8_t num_channel_list;
uint8_t channel_list[50];
} tDot11fIEht2040_bss_intolerant_report;
#define DOT11F_EID_HT2040_BSS_INTOLERANT_REPORT (73)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_HT2040_BSS_INTOLERANT_REPORT_MIN_LEN (1)
#define DOT11F_IE_HT2040_BSS_INTOLERANT_REPORT_MAX_LEN (51)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_ht2040_bss_intolerant_report(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEht2040_bss_intolerant_report*,
bool);
uint32_t dot11f_pack_ie_ht2040_bss_intolerant_report(
tpAniSirGlobal,
tDot11fIEht2040_bss_intolerant_report *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_ht2040_bss_intolerant_report(
tpAniSirGlobal,
tDot11fIEht2040_bss_intolerant_report *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 255 (0xff) Extended EID 38 (0x26) */
typedef struct sDot11fIEmu_edca_param_set {
uint8_t present;
uint8_t qos;
uint8_t acbe_aifsn:4;
uint8_t acbe_acm:1;
uint8_t acbe_aci:2;
uint8_t unused1:1;
uint8_t acbe_acwmin:4;
uint8_t acbe_acwmax:4;
uint8_t acbe_muedca_timer;
uint8_t acbk_aifsn:4;
uint8_t acbk_acm:1;
uint8_t acbk_aci:2;
uint8_t unused2:1;
uint8_t acbk_acwmin:4;
uint8_t acbk_acwmax:4;
uint8_t acbk_muedca_timer;
uint8_t acvi_aifsn:4;
uint8_t acvi_acm:1;
uint8_t acvi_aci:2;
uint8_t unused3:1;
uint8_t acvi_acwmin:4;
uint8_t acvi_acwmax:4;
uint8_t acvi_muedca_timer;
uint8_t acvo_aifsn:4;
uint8_t acvo_acm:1;
uint8_t acvo_aci:2;
uint8_t unused4:1;
uint8_t acvo_acwmin:4;
uint8_t acvo_acwmax:4;
uint8_t acvo_muedca_timer;
} tDot11fIEmu_edca_param_set;
#define DOT11F_EID_MU_EDCA_PARAM_SET (255)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_MU_EDCA_PARAM_SET_MIN_LEN (13)
#define DOT11F_IE_MU_EDCA_PARAM_SET_MAX_LEN (13)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_mu_edca_param_set(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEmu_edca_param_set*,
bool);
uint32_t dot11f_pack_ie_mu_edca_param_set(
tpAniSirGlobal,
tDot11fIEmu_edca_param_set *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_mu_edca_param_set(
tpAniSirGlobal,
tDot11fIEmu_edca_param_set *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x12} */
typedef struct sDot11fIEosen_ie {
uint8_t present;
uint8_t num_data;
uint8_t data[255];
} tDot11fIEosen_ie;
#define DOT11F_EID_OSEN_IE (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_OSEN_IE_MIN_LEN (4)
#define DOT11F_IE_OSEN_IE_MAX_LEN (259)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_osen_ie(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEosen_ie*,
bool);
uint32_t dot11f_pack_ie_osen_ie(
tpAniSirGlobal,
tDot11fIEosen_ie *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_osen_ie(
tpAniSirGlobal,
tDot11fIEosen_ie *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 62 (0x3e) */
typedef struct sDot11fIEsec_chan_offset_ele {
uint8_t present;
uint8_t secondaryChannelOffset;
} tDot11fIEsec_chan_offset_ele;
#define DOT11F_EID_SEC_CHAN_OFFSET_ELE (62)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_SEC_CHAN_OFFSET_ELE_MIN_LEN (1)
#define DOT11F_IE_SEC_CHAN_OFFSET_ELE_MAX_LEN (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_sec_chan_offset_ele(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEsec_chan_offset_ele*,
bool);
uint32_t dot11f_pack_ie_sec_chan_offset_ele(
tpAniSirGlobal,
tDot11fIEsec_chan_offset_ele *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_sec_chan_offset_ele(
tpAniSirGlobal,
tDot11fIEsec_chan_offset_ele *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/* EID 221 (0xdd) {OUI 0x00, 0x90, 0x4c, 0x04} */
typedef struct sDot11fIEvendor_vht_ie {
uint8_t present;
uint8_t sub_type;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEVHTOperation VHTOperation;
} tDot11fIEvendor_vht_ie;
#define DOT11F_EID_VENDOR_VHT_IE (221)
/* N.B. These #defines do *not* include the EID & length */
#define DOT11F_IE_VENDOR_VHT_IE_MIN_LEN (5)
#define DOT11F_IE_VENDOR_VHT_IE_MAX_LEN (26)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
__must_check uint32_t dot11f_unpack_ie_vendor_vht_ie(
tpAniSirGlobal,
uint8_t *,
uint8_t,
tDot11fIEvendor_vht_ie*,
bool);
uint32_t dot11f_pack_ie_vendor_vht_ie(
tpAniSirGlobal,
tDot11fIEvendor_vht_ie *,
uint8_t *,
uint32_t,
uint32_t*);
uint32_t dot11f_get_packed_ie_vendor_vht_ie(
tpAniSirGlobal,
tDot11fIEvendor_vht_ie *,
uint32_t*);
#ifdef __cplusplus
}; /* End extern "C". */
#endif /* C++ */
/************************************************************************
* Frames
**********************************************************************/
typedef struct sDot11fAddTSRequest{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fIETSPEC TSPEC;
uint16_t num_TCLAS;
tDot11fIETCLAS TCLAS[2];
tDot11fIETCLASSPROC TCLASSPROC;
tDot11fIEWMMTSPEC WMMTSPEC;
uint16_t num_WMMTCLAS;
tDot11fIEWMMTCLAS WMMTCLAS[2];
tDot11fIEWMMTCLASPROC WMMTCLASPROC;
tDot11fIEESETrafStrmRateSet ESETrafStrmRateSet;
} tDot11fAddTSRequest;
#define DOT11F_ADDTSREQUEST (1)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_add_ts_request(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fAddTSRequest * pFrm, bool append_ie);
uint32_t dot11f_pack_add_ts_request(tpAniSirGlobal pCtx,
tDot11fAddTSRequest *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_add_ts_request_size(tpAniSirGlobal pCtx,
tDot11fAddTSRequest *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fAddTSResponse{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fFfStatus Status;
tDot11fIETSDelay TSDelay;
tDot11fIETSPEC TSPEC;
uint16_t num_TCLAS;
tDot11fIETCLAS TCLAS[2];
tDot11fIETCLASSPROC TCLASSPROC;
tDot11fIESchedule Schedule;
tDot11fIEWMMTSDelay WMMTSDelay;
tDot11fIEWMMSchedule WMMSchedule;
tDot11fIEWMMTSPEC WMMTSPEC;
uint16_t num_WMMTCLAS;
tDot11fIEWMMTCLAS WMMTCLAS[2];
tDot11fIEWMMTCLASPROC WMMTCLASPROC;
tDot11fIEESETrafStrmMet ESETrafStrmMet;
} tDot11fAddTSResponse;
#define DOT11F_ADDTSRESPONSE (2)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_add_ts_response(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fAddTSResponse * pFrm, bool append_ie);
uint32_t dot11f_pack_add_ts_response(tpAniSirGlobal pCtx,
tDot11fAddTSResponse *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_add_ts_response_size(tpAniSirGlobal pCtx,
tDot11fAddTSResponse *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fAssocRequest{
tDot11fFfCapabilities Capabilities;
tDot11fFfListenInterval ListenInterval;
tDot11fIESSID SSID;
tDot11fIESuppRates SuppRates;
tDot11fIEOperatingMode OperatingMode;
tDot11fIEPowerCaps PowerCaps;
tDot11fIESuppChannels SuppChannels;
tDot11fIEHTCaps HTCaps;
tDot11fIEQOSCapsStation QOSCapsStation;
tDot11fIERSNOpaque RSNOpaque;
tDot11fIEExtSuppRates ExtSuppRates;
tDot11fIEMobilityDomain MobilityDomain;
tDot11fIESuppOperatingClasses SuppOperatingClasses;
tDot11fIEWAPIOpaque WAPIOpaque;
tDot11fIEWAPI WAPI;
tDot11fIERRMEnabledCap RRMEnabledCap;
tDot11fIEQosMapSet QosMapSet;
tDot11fIEExtCap ExtCap;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEfils_session fils_session;
tDot11fIEfils_public_key fils_public_key;
tDot11fIEfils_key_confirmation fils_key_confirmation;
tDot11fIEfils_hlp_container fils_hlp_container;
tDot11fIEfragment_ie fragment_ie;
tDot11fIEdh_parameter_element dh_parameter_element;
tDot11fIEWPAOpaque WPAOpaque;
tDot11fIEWMMCaps WMMCaps;
tDot11fIEWMMInfoStation WMMInfoStation;
tDot11fIEWscIEOpaque WscIEOpaque;
tDot11fIEESERadMgmtCap ESERadMgmtCap;
tDot11fIEESEVersion ESEVersion;
tDot11fIEP2PIEOpaque P2PIEOpaque;
tDot11fIEWFDIEOpaque WFDIEOpaque;
tDot11fIEvendor_vht_ie vendor_vht_ie;
tDot11fIEhs20vendor_ie hs20vendor_ie;
tDot11fIEQCN_IE QCN_IE;
tDot11fIEhe_cap he_cap;
tDot11fIEMBO_IE MBO_IE;
tDot11fIEosen_ie osen_ie;
} tDot11fAssocRequest;
#define DOT11F_ASSOCREQUEST (3)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_assoc_request(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fAssocRequest * pFrm, bool append_ie);
uint32_t dot11f_pack_assoc_request(tpAniSirGlobal pCtx,
tDot11fAssocRequest *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_assoc_request_size(tpAniSirGlobal pCtx,
tDot11fAssocRequest *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fAssocResponse{
tDot11fFfCapabilities Capabilities;
tDot11fFfStatus Status;
tDot11fFfAID AID;
tDot11fIESuppRates SuppRates;
tDot11fIEExtSuppRates ExtSuppRates;
tDot11fIEEDCAParamSet EDCAParamSet;
tDot11fIERCPIIE RCPIIE;
tDot11fIERSNIIE RSNIIE;
tDot11fIERRMEnabledCap RRMEnabledCap;
tDot11fIEMobilityDomain MobilityDomain;
tDot11fIEFTInfo FTInfo;
uint16_t num_RICDataDesc;
tDot11fIERICDataDesc RICDataDesc[2];
tDot11fIEWPA WPA;
tDot11fIETimeoutInterval TimeoutInterval;
tDot11fIEHTCaps HTCaps;
tDot11fIEHTInfo HTInfo;
tDot11fIEWMMParams WMMParams;
tDot11fIEWMMCaps WMMCaps;
tDot11fIEESERadMgmtCap ESERadMgmtCap;
tDot11fIEESETrafStrmMet ESETrafStrmMet;
tDot11fIEESETxmitPower ESETxmitPower;
uint16_t num_WMMTSPEC;
tDot11fIEWMMTSPEC WMMTSPEC[4];
tDot11fIEWscAssocRes WscAssocRes;
tDot11fIEP2PAssocRes P2PAssocRes;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEVHTOperation VHTOperation;
tDot11fIEExtCap ExtCap;
tDot11fIEOBSSScanParameters OBSSScanParameters;
tDot11fIEQosMapSet QosMapSet;
tDot11fIEfils_session fils_session;
tDot11fIEfils_public_key fils_public_key;
tDot11fIEfils_key_confirmation fils_key_confirmation;
tDot11fIEfils_hlp_container fils_hlp_container;
tDot11fIEfragment_ie fragment_ie;
tDot11fIEfils_kde fils_kde;
tDot11fIEvendor_vht_ie vendor_vht_ie;
tDot11fIEQCN_IE QCN_IE;
tDot11fIEhe_cap he_cap;
tDot11fIEhe_op he_op;
tDot11fIEbss_color_change bss_color_change;
tDot11fIEmu_edca_param_set mu_edca_param_set;
tDot11fIEMBO_IE MBO_IE;
} tDot11fAssocResponse;
#define DOT11F_ASSOCRESPONSE (4)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_assoc_response(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fAssocResponse * pFrm, bool append_ie);
uint32_t dot11f_pack_assoc_response(tpAniSirGlobal pCtx,
tDot11fAssocResponse *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_assoc_response_size(tpAniSirGlobal pCtx,
tDot11fAssocResponse *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fAuthentication{
tDot11fFfAuthAlgo AuthAlgo;
tDot11fFfAuthSeqNo AuthSeqNo;
tDot11fFfStatus Status;
tDot11fIEChallengeText ChallengeText;
tDot11fIERSNOpaque RSNOpaque;
tDot11fIEMobilityDomain MobilityDomain;
tDot11fIEFTInfo FTInfo;
tDot11fIETimeoutInterval TimeoutInterval;
uint16_t num_RICDataDesc;
tDot11fIERICDataDesc RICDataDesc[2];
tDot11fIEfils_nonce fils_nonce;
tDot11fIEfils_session fils_session;
tDot11fIEfils_wrapped_data fils_wrapped_data;
tDot11fIEfils_assoc_delay_info fils_assoc_delay_info;
} tDot11fAuthentication;
#define DOT11F_AUTHENTICATION (5)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_authentication(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fAuthentication * pFrm, bool append_ie);
uint32_t dot11f_pack_authentication(tpAniSirGlobal pCtx,
tDot11fAuthentication *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_authentication_size(tpAniSirGlobal pCtx,
tDot11fAuthentication *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fBeacon{
tDot11fFfTimeStamp TimeStamp;
tDot11fFfBeaconInterval BeaconInterval;
tDot11fFfCapabilities Capabilities;
tDot11fIESSID SSID;
tDot11fIESuppRates SuppRates;
tDot11fIEFHParamSet FHParamSet;
tDot11fIEDSParams DSParams;
tDot11fIECFParams CFParams;
tDot11fIEIBSSParams IBSSParams;
tDot11fIETIM TIM;
tDot11fIECountry Country;
tDot11fIEFHParams FHParams;
tDot11fIEFHPattTable FHPattTable;
tDot11fIEPowerConstraints PowerConstraints;
tDot11fIEChanSwitchAnn ChanSwitchAnn;
tDot11fIEext_chan_switch_ann ext_chan_switch_ann;
tDot11fIESuppOperatingClasses SuppOperatingClasses;
tDot11fIEQuiet Quiet;
tDot11fIETPCReport TPCReport;
tDot11fIEERPInfo ERPInfo;
tDot11fIEExtSuppRates ExtSuppRates;
tDot11fIERSN RSN;
tDot11fIEQBSSLoad QBSSLoad;
tDot11fIEEDCAParamSet EDCAParamSet;
tDot11fIEQOSCapsAp QOSCapsAp;
tDot11fIEAPChannelReport APChannelReport;
tDot11fIERRMEnabledCap RRMEnabledCap;
tDot11fIEMobilityDomain MobilityDomain;
tDot11fIEWPA WPA;
tDot11fIEHTCaps HTCaps;
tDot11fIEHTInfo HTInfo;
tDot11fIEsec_chan_offset_ele sec_chan_offset_ele;
tDot11fIEWMMInfoAp WMMInfoAp;
tDot11fIEWMMParams WMMParams;
tDot11fIEWMMCaps WMMCaps;
tDot11fIEWAPI WAPI;
tDot11fIEESERadMgmtCap ESERadMgmtCap;
tDot11fIEESETrafStrmMet ESETrafStrmMet;
tDot11fIEESETxmitPower ESETxmitPower;
tDot11fIEWscBeacon WscBeacon;
tDot11fIEP2PBeacon P2PBeacon;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEVHTOperation VHTOperation;
tDot11fIEVHTExtBssLoad VHTExtBssLoad;
tDot11fIEExtCap ExtCap;
tDot11fIEOperatingMode OperatingMode;
tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
tDot11fIEOBSSScanParameters OBSSScanParameters;
tDot11fIEfils_indication fils_indication;
tDot11fIEVendor1IE Vendor1IE;
tDot11fIEvendor_vht_ie vendor_vht_ie;
tDot11fIEVendor3IE Vendor3IE;
tDot11fIEhs20vendor_ie hs20vendor_ie;
tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper;
tDot11fIEQComVendorIE QComVendorIE;
tDot11fIEESEVersion ESEVersion;
tDot11fIEMBO_IE MBO_IE;
tDot11fIEQCN_IE QCN_IE;
tDot11fIEhe_cap he_cap;
tDot11fIEhe_op he_op;
tDot11fIEbss_color_change bss_color_change;
tDot11fIEmu_edca_param_set mu_edca_param_set;
tDot11fIEesp_information esp_information;
} tDot11fBeacon;
#define DOT11F_BEACON (6)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_beacon(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fBeacon * pFrm, bool append_ie);
uint32_t dot11f_pack_beacon(tpAniSirGlobal pCtx,
tDot11fBeacon *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_beacon_size(tpAniSirGlobal pCtx,
tDot11fBeacon *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fBeacon1{
tDot11fFfTimeStamp TimeStamp;
tDot11fFfBeaconInterval BeaconInterval;
tDot11fFfCapabilities Capabilities;
tDot11fIESSID SSID;
tDot11fIESuppRates SuppRates;
tDot11fIEDSParams DSParams;
tDot11fIEIBSSParams IBSSParams;
} tDot11fBeacon1;
#define DOT11F_BEACON1 (7)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_beacon1(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fBeacon1 * pFrm, bool append_ie);
uint32_t dot11f_pack_beacon1(tpAniSirGlobal pCtx,
tDot11fBeacon1 *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_beacon1_size(tpAniSirGlobal pCtx,
tDot11fBeacon1 *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fBeacon2{
tDot11fIECountry Country;
tDot11fIEPowerConstraints PowerConstraints;
tDot11fIEChanSwitchAnn ChanSwitchAnn;
tDot11fIEext_chan_switch_ann ext_chan_switch_ann;
tDot11fIESuppOperatingClasses SuppOperatingClasses;
tDot11fIEQuiet Quiet;
tDot11fIETPCReport TPCReport;
tDot11fIEERPInfo ERPInfo;
tDot11fIEExtSuppRates ExtSuppRates;
tDot11fIERSNOpaque RSNOpaque;
tDot11fIEEDCAParamSet EDCAParamSet;
tDot11fIEAPChannelReport APChannelReport;
tDot11fIERRMEnabledCap RRMEnabledCap;
tDot11fIEMobilityDomain MobilityDomain;
tDot11fIEWPA WPA;
tDot11fIEHTCaps HTCaps;
tDot11fIEHTInfo HTInfo;
tDot11fIEsec_chan_offset_ele sec_chan_offset_ele;
tDot11fIEWMMInfoAp WMMInfoAp;
tDot11fIEWMMParams WMMParams;
tDot11fIEWMMCaps WMMCaps;
tDot11fIEWscBeacon WscBeacon;
tDot11fIEWAPI WAPI;
tDot11fIEESERadMgmtCap ESERadMgmtCap;
tDot11fIEESETrafStrmMet ESETrafStrmMet;
tDot11fIEESETxmitPower ESETxmitPower;
tDot11fIEP2PBeacon P2PBeacon;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEVHTOperation VHTOperation;
tDot11fIEVHTExtBssLoad VHTExtBssLoad;
tDot11fIEExtCap ExtCap;
tDot11fIEOperatingMode OperatingMode;
tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
tDot11fIEOBSSScanParameters OBSSScanParameters;
tDot11fIEfils_indication fils_indication;
tDot11fIEVendor1IE Vendor1IE;
tDot11fIEvendor_vht_ie vendor_vht_ie;
tDot11fIEVendor3IE Vendor3IE;
tDot11fIEhs20vendor_ie hs20vendor_ie;
tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper;
tDot11fIEQComVendorIE QComVendorIE;
tDot11fIEESEVersion ESEVersion;
tDot11fIEQCN_IE QCN_IE;
tDot11fIEhe_cap he_cap;
tDot11fIEhe_op he_op;
tDot11fIEbss_color_change bss_color_change;
tDot11fIEmu_edca_param_set mu_edca_param_set;
tDot11fIEesp_information esp_information;
} tDot11fBeacon2;
#define DOT11F_BEACON2 (8)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_beacon2(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fBeacon2 * pFrm, bool append_ie);
uint32_t dot11f_pack_beacon2(tpAniSirGlobal pCtx,
tDot11fBeacon2 *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_beacon2_size(tpAniSirGlobal pCtx,
tDot11fBeacon2 *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fBeaconIEs{
tDot11fIESSID SSID;
tDot11fIESuppRates SuppRates;
tDot11fIEFHParamSet FHParamSet;
tDot11fIEDSParams DSParams;
tDot11fIECFParams CFParams;
tDot11fIEIBSSParams IBSSParams;
tDot11fIETIM TIM;
tDot11fIECountry Country;
tDot11fIEFHParams FHParams;
tDot11fIEFHPattTable FHPattTable;
tDot11fIEPowerConstraints PowerConstraints;
tDot11fIEChanSwitchAnn ChanSwitchAnn;
tDot11fIEext_chan_switch_ann ext_chan_switch_ann;
tDot11fIESuppOperatingClasses SuppOperatingClasses;
tDot11fIEQuiet Quiet;
tDot11fIETPCReport TPCReport;
tDot11fIEERPInfo ERPInfo;
tDot11fIEExtSuppRates ExtSuppRates;
tDot11fIERSN RSN;
tDot11fIEQBSSLoad QBSSLoad;
tDot11fIEEDCAParamSet EDCAParamSet;
tDot11fIEQOSCapsAp QOSCapsAp;
tDot11fIEAPChannelReport APChannelReport;
tDot11fIERRMEnabledCap RRMEnabledCap;
tDot11fIEMobilityDomain MobilityDomain;
tDot11fIEWPA WPA;
tDot11fIEHTCaps HTCaps;
tDot11fIEHTInfo HTInfo;
tDot11fIEsec_chan_offset_ele sec_chan_offset_ele;
tDot11fIEWMMInfoAp WMMInfoAp;
tDot11fIEWMMParams WMMParams;
tDot11fIEWMMCaps WMMCaps;
tDot11fIEWAPI WAPI;
tDot11fIEESEVersion ESEVersion;
tDot11fIEESERadMgmtCap ESERadMgmtCap;
tDot11fIEESETrafStrmMet ESETrafStrmMet;
tDot11fIEESETxmitPower ESETxmitPower;
tDot11fIEWscBeaconProbeRes WscBeaconProbeRes;
tDot11fIEP2PBeaconProbeRes P2PBeaconProbeRes;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEVHTOperation VHTOperation;
tDot11fIEVHTExtBssLoad VHTExtBssLoad;
tDot11fIEExtCap ExtCap;
tDot11fIEOperatingMode OperatingMode;
tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
tDot11fIEOBSSScanParameters OBSSScanParameters;
tDot11fIEfils_indication fils_indication;
tDot11fIEVendor1IE Vendor1IE;
tDot11fIEvendor_vht_ie vendor_vht_ie;
tDot11fIEVendor3IE Vendor3IE;
tDot11fIEhs20vendor_ie hs20vendor_ie;
tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper;
tDot11fIEQComVendorIE QComVendorIE;
tDot11fIEMBO_IE MBO_IE;
tDot11fIEQCN_IE QCN_IE;
tDot11fIEhe_cap he_cap;
tDot11fIEhe_op he_op;
tDot11fIEbss_color_change bss_color_change;
tDot11fIEmu_edca_param_set mu_edca_param_set;
tDot11fIEesp_information esp_information;
} tDot11fBeaconIEs;
#define DOT11F_BEACONIES (9)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_beacon_i_es(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fBeaconIEs * pFrm, bool append_ie);
uint32_t dot11f_pack_beacon_i_es(tpAniSirGlobal pCtx,
tDot11fBeaconIEs *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_beacon_i_es_size(tpAniSirGlobal pCtx,
tDot11fBeaconIEs *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fChannelSwitch{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fIEChanSwitchAnn ChanSwitchAnn;
tDot11fIEsec_chan_offset_ele sec_chan_offset_ele;
tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
} tDot11fChannelSwitch;
#define DOT11F_CHANNELSWITCH (10)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_channel_switch(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fChannelSwitch * pFrm, bool append_ie);
uint32_t dot11f_pack_channel_switch(tpAniSirGlobal pCtx,
tDot11fChannelSwitch *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_channel_switch_size(tpAniSirGlobal pCtx,
tDot11fChannelSwitch *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fDeAuth{
tDot11fFfReason Reason;
tDot11fIEP2PDeAuth P2PDeAuth;
} tDot11fDeAuth;
#define DOT11F_DEAUTH (11)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_de_auth(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fDeAuth * pFrm, bool append_ie);
uint32_t dot11f_pack_de_auth(tpAniSirGlobal pCtx,
tDot11fDeAuth *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_de_auth_size(tpAniSirGlobal pCtx,
tDot11fDeAuth *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fDelTS{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfTSInfo TSInfo;
tDot11fFfReason Reason;
} tDot11fDelTS;
#define DOT11F_DELTS (12)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_del_ts(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fDelTS * pFrm, bool append_ie);
uint32_t dot11f_pack_del_ts(tpAniSirGlobal pCtx,
tDot11fDelTS *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_del_ts_size(tpAniSirGlobal pCtx,
tDot11fDelTS *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fDisassociation{
tDot11fFfReason Reason;
tDot11fIEP2PDisAssoc P2PDisAssoc;
} tDot11fDisassociation;
#define DOT11F_DISASSOCIATION (13)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_disassociation(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fDisassociation * pFrm, bool append_ie);
uint32_t dot11f_pack_disassociation(tpAniSirGlobal pCtx,
tDot11fDisassociation *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_disassociation_size(tpAniSirGlobal pCtx,
tDot11fDisassociation *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fLinkMeasurementReport{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fFfTPCEleID TPCEleID;
tDot11fFfTPCEleLen TPCEleLen;
tDot11fFfTxPower TxPower;
tDot11fFfLinkMargin LinkMargin;
tDot11fFfRxAntennaId RxAntennaId;
tDot11fFfTxAntennaId TxAntennaId;
tDot11fFfRCPI RCPI;
tDot11fFfRSNI RSNI;
} tDot11fLinkMeasurementReport;
#define DOT11F_LINKMEASUREMENTREPORT (14)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_link_measurement_report(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fLinkMeasurementReport * pFrm, bool append_ie);
uint32_t dot11f_pack_link_measurement_report(tpAniSirGlobal pCtx,
tDot11fLinkMeasurementReport *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_link_measurement_report_size(tpAniSirGlobal pCtx,
tDot11fLinkMeasurementReport *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fLinkMeasurementRequest{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fFfTxPower TxPower;
tDot11fFfMaxTxPower MaxTxPower;
} tDot11fLinkMeasurementRequest;
#define DOT11F_LINKMEASUREMENTREQUEST (15)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_link_measurement_request(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fLinkMeasurementRequest * pFrm, bool append_ie);
uint32_t dot11f_pack_link_measurement_request(tpAniSirGlobal pCtx,
tDot11fLinkMeasurementRequest *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_link_measurement_request_size(tpAniSirGlobal pCtx,
tDot11fLinkMeasurementRequest *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fMeasurementReport{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fIEMeasurementReport MeasurementReport;
} tDot11fMeasurementReport;
#define DOT11F_MEASUREMENTREPORT (16)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_measurement_report(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fMeasurementReport * pFrm, bool append_ie);
uint32_t dot11f_pack_measurement_report(tpAniSirGlobal pCtx,
tDot11fMeasurementReport *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_measurement_report_size(tpAniSirGlobal pCtx,
tDot11fMeasurementReport *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fMeasurementRequest{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
uint16_t num_MeasurementRequest;
tDot11fIEMeasurementRequest MeasurementRequest[4];
} tDot11fMeasurementRequest;
#define DOT11F_MEASUREMENTREQUEST (17)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_measurement_request(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fMeasurementRequest * pFrm, bool append_ie);
uint32_t dot11f_pack_measurement_request(tpAniSirGlobal pCtx,
tDot11fMeasurementRequest *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_measurement_request_size(tpAniSirGlobal pCtx,
tDot11fMeasurementRequest *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fNeighborReportRequest{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fIESSID SSID;
} tDot11fNeighborReportRequest;
#define DOT11F_NEIGHBORREPORTREQUEST (18)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_neighbor_report_request(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fNeighborReportRequest * pFrm, bool append_ie);
uint32_t dot11f_pack_neighbor_report_request(tpAniSirGlobal pCtx,
tDot11fNeighborReportRequest *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_neighbor_report_request_size(tpAniSirGlobal pCtx,
tDot11fNeighborReportRequest *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fNeighborReportResponse{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
uint16_t num_NeighborReport;
tDot11fIENeighborReport NeighborReport[15];
} tDot11fNeighborReportResponse;
#define DOT11F_NEIGHBORREPORTRESPONSE (19)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_neighbor_report_response(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fNeighborReportResponse * pFrm, bool append_ie);
uint32_t dot11f_pack_neighbor_report_response(tpAniSirGlobal pCtx,
tDot11fNeighborReportResponse *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_neighbor_report_response_size(tpAniSirGlobal pCtx,
tDot11fNeighborReportResponse *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fOperatingMode{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfOperatingMode OperatingMode;
} tDot11fOperatingMode;
#define DOT11F_OPERATINGMODE (20)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_operating_mode(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fOperatingMode * pFrm, bool append_ie);
uint32_t dot11f_pack_operating_mode(tpAniSirGlobal pCtx,
tDot11fOperatingMode *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_operating_mode_size(tpAniSirGlobal pCtx,
tDot11fOperatingMode *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fProbeRequest{
tDot11fIESSID SSID;
tDot11fIESuppRates SuppRates;
tDot11fIERequestedInfo RequestedInfo;
tDot11fIEExtSuppRates ExtSuppRates;
tDot11fIEDSParams DSParams;
tDot11fIEHTCaps HTCaps;
tDot11fIEWscProbeReq WscProbeReq;
tDot11fIEWFATPC WFATPC;
tDot11fIEP2PProbeReq P2PProbeReq;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEExtCap ExtCap;
tDot11fIEQCN_IE QCN_IE;
tDot11fIEhe_cap he_cap;
} tDot11fProbeRequest;
#define DOT11F_PROBEREQUEST (21)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_probe_request(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fProbeRequest * pFrm, bool append_ie);
uint32_t dot11f_pack_probe_request(tpAniSirGlobal pCtx,
tDot11fProbeRequest *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_probe_request_size(tpAniSirGlobal pCtx,
tDot11fProbeRequest *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fProbeResponse{
tDot11fFfTimeStamp TimeStamp;
tDot11fFfBeaconInterval BeaconInterval;
tDot11fFfCapabilities Capabilities;
tDot11fIESSID SSID;
tDot11fIESuppRates SuppRates;
tDot11fIEFHParamSet FHParamSet;
tDot11fIEDSParams DSParams;
tDot11fIECFParams CFParams;
tDot11fIEIBSSParams IBSSParams;
tDot11fIECountry Country;
tDot11fIEFHParams FHParams;
tDot11fIEFHPattTable FHPattTable;
tDot11fIEPowerConstraints PowerConstraints;
tDot11fIEChanSwitchAnn ChanSwitchAnn;
tDot11fIEext_chan_switch_ann ext_chan_switch_ann;
tDot11fIESuppOperatingClasses SuppOperatingClasses;
tDot11fIEQuiet Quiet;
tDot11fIETPCReport TPCReport;
tDot11fIEERPInfo ERPInfo;
tDot11fIEExtSuppRates ExtSuppRates;
tDot11fIERSNOpaque RSNOpaque;
tDot11fIEQBSSLoad QBSSLoad;
tDot11fIEEDCAParamSet EDCAParamSet;
tDot11fIERRMEnabledCap RRMEnabledCap;
tDot11fIEAPChannelReport APChannelReport;
tDot11fIEMobilityDomain MobilityDomain;
tDot11fIEWPA WPA;
tDot11fIEHTCaps HTCaps;
tDot11fIEHTInfo HTInfo;
tDot11fIEsec_chan_offset_ele sec_chan_offset_ele;
tDot11fIEWMMInfoAp WMMInfoAp;
tDot11fIEWMMParams WMMParams;
tDot11fIEWMMCaps WMMCaps;
tDot11fIEWAPI WAPI;
tDot11fIEESERadMgmtCap ESERadMgmtCap;
tDot11fIEESETrafStrmMet ESETrafStrmMet;
tDot11fIEESETxmitPower ESETxmitPower;
tDot11fIEWscProbeRes WscProbeRes;
tDot11fIEP2PProbeRes P2PProbeRes;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEVHTOperation VHTOperation;
tDot11fIEVHTExtBssLoad VHTExtBssLoad;
tDot11fIEExtCap ExtCap;
tDot11fIEOBSSScanParameters OBSSScanParameters;
tDot11fIEfils_indication fils_indication;
tDot11fIEVendor1IE Vendor1IE;
tDot11fIEvendor_vht_ie vendor_vht_ie;
tDot11fIEVendor3IE Vendor3IE;
tDot11fIEhs20vendor_ie hs20vendor_ie;
tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper;
tDot11fIEQComVendorIE QComVendorIE;
tDot11fIEESEVersion ESEVersion;
tDot11fIEMBO_IE MBO_IE;
tDot11fIEQCN_IE QCN_IE;
tDot11fIEhe_cap he_cap;
tDot11fIEhe_op he_op;
tDot11fIEbss_color_change bss_color_change;
tDot11fIEmu_edca_param_set mu_edca_param_set;
tDot11fIEesp_information esp_information;
} tDot11fProbeResponse;
#define DOT11F_PROBERESPONSE (22)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_probe_response(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fProbeResponse * pFrm, bool append_ie);
uint32_t dot11f_pack_probe_response(tpAniSirGlobal pCtx,
tDot11fProbeResponse *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_probe_response_size(tpAniSirGlobal pCtx,
tDot11fProbeResponse *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fQosMapConfigure{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fIEQosMapSet QosMapSet;
} tDot11fQosMapConfigure;
#define DOT11F_QOSMAPCONFIGURE (23)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_qos_map_configure(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fQosMapConfigure * pFrm, bool append_ie);
uint32_t dot11f_pack_qos_map_configure(tpAniSirGlobal pCtx,
tDot11fQosMapConfigure *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_qos_map_configure_size(tpAniSirGlobal pCtx,
tDot11fQosMapConfigure *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fRadioMeasurementReport{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
uint16_t num_MeasurementReport;
tDot11fIEMeasurementReport MeasurementReport[4];
} tDot11fRadioMeasurementReport;
#define DOT11F_RADIOMEASUREMENTREPORT (24)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_radio_measurement_report(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fRadioMeasurementReport * pFrm, bool append_ie);
uint32_t dot11f_pack_radio_measurement_report(tpAniSirGlobal pCtx,
tDot11fRadioMeasurementReport *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_radio_measurement_report_size(tpAniSirGlobal pCtx,
tDot11fRadioMeasurementReport *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fRadioMeasurementRequest{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fFfNumOfRepetitions NumOfRepetitions;
uint16_t num_MeasurementRequest;
tDot11fIEMeasurementRequest MeasurementRequest[2];
} tDot11fRadioMeasurementRequest;
#define DOT11F_RADIOMEASUREMENTREQUEST (25)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_radio_measurement_request(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fRadioMeasurementRequest * pFrm, bool append_ie);
uint32_t dot11f_pack_radio_measurement_request(tpAniSirGlobal pCtx,
tDot11fRadioMeasurementRequest *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_radio_measurement_request_size(tpAniSirGlobal pCtx,
tDot11fRadioMeasurementRequest *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fReAssocRequest{
tDot11fFfCapabilities Capabilities;
tDot11fFfListenInterval ListenInterval;
tDot11fFfCurrentAPAddress CurrentAPAddress;
tDot11fIESSID SSID;
tDot11fIESuppRates SuppRates;
tDot11fIEExtSuppRates ExtSuppRates;
tDot11fIEPowerCaps PowerCaps;
tDot11fIESuppChannels SuppChannels;
tDot11fIERSNOpaque RSNOpaque;
tDot11fIEQOSCapsStation QOSCapsStation;
tDot11fIERRMEnabledCap RRMEnabledCap;
tDot11fIEMobilityDomain MobilityDomain;
tDot11fIEFTInfo FTInfo;
uint16_t num_RICDataDesc;
tDot11fIERICDataDesc RICDataDesc[2];
tDot11fIEWPAOpaque WPAOpaque;
tDot11fIEHTCaps HTCaps;
tDot11fIEWMMCaps WMMCaps;
tDot11fIEWMMInfoStation WMMInfoStation;
tDot11fIEWscIEOpaque WscIEOpaque;
tDot11fIEWAPIOpaque WAPIOpaque;
tDot11fIEWAPI WAPI;
tDot11fIEESERadMgmtCap ESERadMgmtCap;
tDot11fIEESEVersion ESEVersion;
tDot11fIEESECckmOpaque ESECckmOpaque;
uint16_t num_WMMTSPEC;
tDot11fIEWMMTSPEC WMMTSPEC[4];
tDot11fIEESETrafStrmRateSet ESETrafStrmRateSet;
tDot11fIEP2PIEOpaque P2PIEOpaque;
tDot11fIEWFDIEOpaque WFDIEOpaque;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEExtCap ExtCap;
tDot11fIEOperatingMode OperatingMode;
tDot11fIEQosMapSet QosMapSet;
tDot11fIEvendor_vht_ie vendor_vht_ie;
tDot11fIEhs20vendor_ie hs20vendor_ie;
tDot11fIEhe_cap he_cap;
} tDot11fReAssocRequest;
#define DOT11F_REASSOCREQUEST (26)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_re_assoc_request(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fReAssocRequest * pFrm, bool append_ie);
uint32_t dot11f_pack_re_assoc_request(tpAniSirGlobal pCtx,
tDot11fReAssocRequest *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_re_assoc_request_size(tpAniSirGlobal pCtx,
tDot11fReAssocRequest *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fReAssocResponse{
tDot11fFfCapabilities Capabilities;
tDot11fFfStatus Status;
tDot11fFfAID AID;
tDot11fIESuppRates SuppRates;
tDot11fIEExtSuppRates ExtSuppRates;
tDot11fIEEDCAParamSet EDCAParamSet;
tDot11fIERCPIIE RCPIIE;
tDot11fIERSNIIE RSNIIE;
tDot11fIERRMEnabledCap RRMEnabledCap;
tDot11fIERSNOpaque RSNOpaque;
tDot11fIEMobilityDomain MobilityDomain;
tDot11fIEFTInfo FTInfo;
uint16_t num_RICDataDesc;
tDot11fIERICDataDesc RICDataDesc[2];
tDot11fIEWPA WPA;
tDot11fIETimeoutInterval TimeoutInterval;
tDot11fIEHTCaps HTCaps;
tDot11fIEHTInfo HTInfo;
tDot11fIEWMMParams WMMParams;
tDot11fIEESERadMgmtCap ESERadMgmtCap;
tDot11fIEESETrafStrmMet ESETrafStrmMet;
tDot11fIEESETxmitPower ESETxmitPower;
uint16_t num_WMMTSPEC;
tDot11fIEWMMTSPEC WMMTSPEC[4];
tDot11fIEESETrafStrmRateSet ESETrafStrmRateSet;
tDot11fIEWscReassocRes WscReassocRes;
tDot11fIEP2PAssocRes P2PAssocRes;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEVHTOperation VHTOperation;
tDot11fIEExtCap ExtCap;
tDot11fIEOBSSScanParameters OBSSScanParameters;
tDot11fIEQosMapSet QosMapSet;
tDot11fIEvendor_vht_ie vendor_vht_ie;
tDot11fIEhe_cap he_cap;
tDot11fIEhe_op he_op;
tDot11fIEbss_color_change bss_color_change;
tDot11fIEmu_edca_param_set mu_edca_param_set;
tDot11fIEMBO_IE MBO_IE;
} tDot11fReAssocResponse;
#define DOT11F_REASSOCRESPONSE (27)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_re_assoc_response(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fReAssocResponse * pFrm, bool append_ie);
uint32_t dot11f_pack_re_assoc_response(tpAniSirGlobal pCtx,
tDot11fReAssocResponse *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_re_assoc_response_size(tpAniSirGlobal pCtx,
tDot11fReAssocResponse *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fSMPowerSave{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfSMPowerModeSet SMPowerModeSet;
} tDot11fSMPowerSave;
#define DOT11F_SMPOWERSAVE (28)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_sm_power_save(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fSMPowerSave * pFrm, bool append_ie);
uint32_t dot11f_pack_sm_power_save(tpAniSirGlobal pCtx,
tDot11fSMPowerSave *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_sm_power_save_size(tpAniSirGlobal pCtx,
tDot11fSMPowerSave *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fSaQueryReq{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfTransactionId TransactionId;
} tDot11fSaQueryReq;
#define DOT11F_SAQUERYREQ (29)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_sa_query_req(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fSaQueryReq * pFrm, bool append_ie);
uint32_t dot11f_pack_sa_query_req(tpAniSirGlobal pCtx,
tDot11fSaQueryReq *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_sa_query_req_size(tpAniSirGlobal pCtx,
tDot11fSaQueryReq *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fSaQueryRsp{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfTransactionId TransactionId;
} tDot11fSaQueryRsp;
#define DOT11F_SAQUERYRSP (30)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_sa_query_rsp(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fSaQueryRsp * pFrm, bool append_ie);
uint32_t dot11f_pack_sa_query_rsp(tpAniSirGlobal pCtx,
tDot11fSaQueryRsp *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_sa_query_rsp_size(tpAniSirGlobal pCtx,
tDot11fSaQueryRsp *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fTDLSDisReq{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fIELinkIdentifier LinkIdentifier;
} tDot11fTDLSDisReq;
#define DOT11F_TDLSDISREQ (31)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tdls_dis_req(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fTDLSDisReq * pFrm, bool append_ie);
uint32_t dot11f_pack_tdls_dis_req(tpAniSirGlobal pCtx,
tDot11fTDLSDisReq *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_tdls_dis_req_size(tpAniSirGlobal pCtx,
tDot11fTDLSDisReq *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fTDLSDisRsp{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fFfCapabilities Capabilities;
tDot11fIESuppRates SuppRates;
tDot11fIEExtSuppRates ExtSuppRates;
tDot11fIESuppChannels SuppChannels;
tDot11fIESuppOperatingClasses SuppOperatingClasses;
tDot11fIERSN RSN;
tDot11fIEExtCap ExtCap;
tDot11fIEFTInfo FTInfo;
tDot11fIETimeoutInterval TimeoutInterval;
tDot11fIERICData RICData;
tDot11fIEHTCaps HTCaps;
tDot11fIEht2040_bss_coexistence ht2040_bss_coexistence;
tDot11fIELinkIdentifier LinkIdentifier;
tDot11fIEVHTCaps VHTCaps;
} tDot11fTDLSDisRsp;
#define DOT11F_TDLSDISRSP (32)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tdls_dis_rsp(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fTDLSDisRsp * pFrm, bool append_ie);
uint32_t dot11f_pack_tdls_dis_rsp(tpAniSirGlobal pCtx,
tDot11fTDLSDisRsp *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_tdls_dis_rsp_size(tpAniSirGlobal pCtx,
tDot11fTDLSDisRsp *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fTDLSPeerTrafficInd{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fIELinkIdentifier LinkIdentifier;
tDot11fIEPTIControl PTIControl;
tDot11fIEPUBufferStatus PUBufferStatus;
} tDot11fTDLSPeerTrafficInd;
#define DOT11F_TDLSPEERTRAFFICIND (33)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tdls_peer_traffic_ind(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fTDLSPeerTrafficInd * pFrm, bool append_ie);
uint32_t dot11f_pack_tdls_peer_traffic_ind(tpAniSirGlobal pCtx,
tDot11fTDLSPeerTrafficInd *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_tdls_peer_traffic_ind_size(tpAniSirGlobal pCtx,
tDot11fTDLSPeerTrafficInd *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fTDLSPeerTrafficRsp{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fIELinkIdentifier LinkIdentifier;
} tDot11fTDLSPeerTrafficRsp;
#define DOT11F_TDLSPEERTRAFFICRSP (34)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tdls_peer_traffic_rsp(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fTDLSPeerTrafficRsp * pFrm, bool append_ie);
uint32_t dot11f_pack_tdls_peer_traffic_rsp(tpAniSirGlobal pCtx,
tDot11fTDLSPeerTrafficRsp *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_tdls_peer_traffic_rsp_size(tpAniSirGlobal pCtx,
tDot11fTDLSPeerTrafficRsp *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fTDLSSetupCnf{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfStatus Status;
tDot11fFfDialogToken DialogToken;
tDot11fIERSN RSN;
tDot11fIEEDCAParamSet EDCAParamSet;
tDot11fIEFTInfo FTInfo;
tDot11fIETimeoutInterval TimeoutInterval;
tDot11fIEHTInfo HTInfo;
tDot11fIELinkIdentifier LinkIdentifier;
tDot11fIEWMMParams WMMParams;
tDot11fIEVHTOperation VHTOperation;
tDot11fIEOperatingMode OperatingMode;
} tDot11fTDLSSetupCnf;
#define DOT11F_TDLSSETUPCNF (35)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tdls_setup_cnf(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fTDLSSetupCnf * pFrm, bool append_ie);
uint32_t dot11f_pack_tdls_setup_cnf(tpAniSirGlobal pCtx,
tDot11fTDLSSetupCnf *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_tdls_setup_cnf_size(tpAniSirGlobal pCtx,
tDot11fTDLSSetupCnf *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fTDLSSetupReq{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fFfCapabilities Capabilities;
tDot11fIESuppRates SuppRates;
tDot11fIECountry Country;
tDot11fIEExtSuppRates ExtSuppRates;
tDot11fIESuppChannels SuppChannels;
tDot11fIERSN RSN;
tDot11fIEExtCap ExtCap;
tDot11fIESuppOperatingClasses SuppOperatingClasses;
tDot11fIEQOSCapsStation QOSCapsStation;
tDot11fIEFTInfo FTInfo;
tDot11fIETimeoutInterval TimeoutInterval;
tDot11fIERICData RICData;
tDot11fIEHTCaps HTCaps;
tDot11fIEht2040_bss_coexistence ht2040_bss_coexistence;
tDot11fIELinkIdentifier LinkIdentifier;
tDot11fIEWMMInfoStation WMMInfoStation;
tDot11fIEAID AID;
tDot11fIEVHTCaps VHTCaps;
} tDot11fTDLSSetupReq;
#define DOT11F_TDLSSETUPREQ (36)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tdls_setup_req(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fTDLSSetupReq * pFrm, bool append_ie);
uint32_t dot11f_pack_tdls_setup_req(tpAniSirGlobal pCtx,
tDot11fTDLSSetupReq *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_tdls_setup_req_size(tpAniSirGlobal pCtx,
tDot11fTDLSSetupReq *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fTDLSSetupRsp{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfStatus Status;
tDot11fFfDialogToken DialogToken;
tDot11fFfCapabilities Capabilities;
tDot11fIESuppRates SuppRates;
tDot11fIECountry Country;
tDot11fIEExtSuppRates ExtSuppRates;
tDot11fIESuppChannels SuppChannels;
tDot11fIERSN RSN;
tDot11fIEExtCap ExtCap;
tDot11fIESuppOperatingClasses SuppOperatingClasses;
tDot11fIEQOSCapsStation QOSCapsStation;
tDot11fIEFTInfo FTInfo;
tDot11fIETimeoutInterval TimeoutInterval;
tDot11fIERICData RICData;
tDot11fIEHTCaps HTCaps;
tDot11fIEht2040_bss_coexistence ht2040_bss_coexistence;
tDot11fIELinkIdentifier LinkIdentifier;
tDot11fIEWMMInfoStation WMMInfoStation;
tDot11fIEAID AID;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEOperatingMode OperatingMode;
} tDot11fTDLSSetupRsp;
#define DOT11F_TDLSSETUPRSP (37)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tdls_setup_rsp(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fTDLSSetupRsp * pFrm, bool append_ie);
uint32_t dot11f_pack_tdls_setup_rsp(tpAniSirGlobal pCtx,
tDot11fTDLSSetupRsp *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_tdls_setup_rsp_size(tpAniSirGlobal pCtx,
tDot11fTDLSSetupRsp *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fTDLSTeardown{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfReason Reason;
tDot11fIEFTInfo FTInfo;
tDot11fIELinkIdentifier LinkIdentifier;
} tDot11fTDLSTeardown;
#define DOT11F_TDLSTEARDOWN (38)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tdls_teardown(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fTDLSTeardown * pFrm, bool append_ie);
uint32_t dot11f_pack_tdls_teardown(tpAniSirGlobal pCtx,
tDot11fTDLSTeardown *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_tdls_teardown_size(tpAniSirGlobal pCtx,
tDot11fTDLSTeardown *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fTPCReport{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fIETPCReport TPCReport;
} tDot11fTPCReport;
#define DOT11F_TPCREPORT (39)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tpc_report(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fTPCReport * pFrm, bool append_ie);
uint32_t dot11f_pack_tpc_report(tpAniSirGlobal pCtx,
tDot11fTPCReport *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_tpc_report_size(tpAniSirGlobal pCtx,
tDot11fTPCReport *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fTPCRequest{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fIETPCRequest TPCRequest;
} tDot11fTPCRequest;
#define DOT11F_TPCREQUEST (40)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_tpc_request(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fTPCRequest * pFrm, bool append_ie);
uint32_t dot11f_pack_tpc_request(tpAniSirGlobal pCtx,
tDot11fTPCRequest *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_tpc_request_size(tpAniSirGlobal pCtx,
tDot11fTPCRequest *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fTimingAdvertisementFrame{
tDot11fFfTimeStamp TimeStamp;
tDot11fFfCapabilities Capabilities;
tDot11fIECountry Country;
tDot11fIEPowerConstraints PowerConstraints;
tDot11fIETimeAdvertisement TimeAdvertisement;
tDot11fIEExtCap ExtCap;
tDot11fIEVendor1IE Vendor1IE;
tDot11fIEVendor3IE Vendor3IE;
} tDot11fTimingAdvertisementFrame;
#define DOT11F_TIMINGADVERTISEMENTFRAME (41)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_timing_advertisement_frame(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fTimingAdvertisementFrame * pFrm, bool append_ie);
uint32_t dot11f_pack_timing_advertisement_frame(tpAniSirGlobal pCtx,
tDot11fTimingAdvertisementFrame *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_timing_advertisement_frame_size(tpAniSirGlobal pCtx,
tDot11fTimingAdvertisementFrame *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fVHTGidManagementActionFrame{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfVhtMembershipStatusArray VhtMembershipStatusArray;
tDot11fFfVhtUserPositionArray VhtUserPositionArray;
} tDot11fVHTGidManagementActionFrame;
#define DOT11F_VHTGIDMANAGEMENTACTIONFRAME (42)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_vht_gid_management_action_frame(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fVHTGidManagementActionFrame * pFrm, bool append_ie);
uint32_t dot11f_pack_vht_gid_management_action_frame(tpAniSirGlobal pCtx,
tDot11fVHTGidManagementActionFrame *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_vht_gid_management_action_frame_size(tpAniSirGlobal pCtx,
tDot11fVHTGidManagementActionFrame *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fWMMAddTSRequest{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fFfStatusCode StatusCode;
tDot11fIEWMMTSPEC WMMTSPEC;
tDot11fIEESETrafStrmRateSet ESETrafStrmRateSet;
} tDot11fWMMAddTSRequest;
#define DOT11F_WMMADDTSREQUEST (43)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_wmm_add_ts_request(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fWMMAddTSRequest * pFrm, bool append_ie);
uint32_t dot11f_pack_wmm_add_ts_request(tpAniSirGlobal pCtx,
tDot11fWMMAddTSRequest *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_wmm_add_ts_request_size(tpAniSirGlobal pCtx,
tDot11fWMMAddTSRequest *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fWMMAddTSResponse{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fFfStatusCode StatusCode;
tDot11fIEWMMTSPEC WMMTSPEC;
tDot11fIEESETrafStrmMet ESETrafStrmMet;
} tDot11fWMMAddTSResponse;
#define DOT11F_WMMADDTSRESPONSE (44)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_wmm_add_ts_response(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fWMMAddTSResponse * pFrm, bool append_ie);
uint32_t dot11f_pack_wmm_add_ts_response(tpAniSirGlobal pCtx,
tDot11fWMMAddTSResponse *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_wmm_add_ts_response_size(tpAniSirGlobal pCtx,
tDot11fWMMAddTSResponse *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fWMMDelTS{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fFfStatusCode StatusCode;
tDot11fIEWMMTSPEC WMMTSPEC;
} tDot11fWMMDelTS;
#define DOT11F_WMMDELTS (45)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_wmm_del_ts(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fWMMDelTS * pFrm, bool append_ie);
uint32_t dot11f_pack_wmm_del_ts(tpAniSirGlobal pCtx,
tDot11fWMMDelTS *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_wmm_del_ts_size(tpAniSirGlobal pCtx,
tDot11fWMMDelTS *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11faddba_req{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fFfaddba_param_set addba_param_set;
tDot11fFfba_timeout ba_timeout;
tDot11fFfba_start_seq_ctrl ba_start_seq_ctrl;
tDot11fIEaddba_extn_element addba_extn_element;
} tDot11faddba_req;
#define DOT11F_ADDBA_REQ (46)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_addba_req(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11faddba_req * pFrm, bool append_ie);
uint32_t dot11f_pack_addba_req(tpAniSirGlobal pCtx,
tDot11faddba_req *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_addba_req_size(tpAniSirGlobal pCtx,
tDot11faddba_req *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11faddba_rsp{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfDialogToken DialogToken;
tDot11fFfStatus Status;
tDot11fFfaddba_param_set addba_param_set;
tDot11fFfba_timeout ba_timeout;
tDot11fIEaddba_extn_element addba_extn_element;
} tDot11faddba_rsp;
#define DOT11F_ADDBA_RSP (47)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_addba_rsp(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11faddba_rsp * pFrm, bool append_ie);
uint32_t dot11f_pack_addba_rsp(tpAniSirGlobal pCtx,
tDot11faddba_rsp *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_addba_rsp_size(tpAniSirGlobal pCtx,
tDot11faddba_rsp *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fdelba_req{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfdelba_param_set delba_param_set;
tDot11fFfReason Reason;
} tDot11fdelba_req;
#define DOT11F_DELBA_REQ (48)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_delba_req(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fdelba_req * pFrm, bool append_ie);
uint32_t dot11f_pack_delba_req(tpAniSirGlobal pCtx,
tDot11fdelba_req *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_delba_req_size(tpAniSirGlobal pCtx,
tDot11fdelba_req *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fext_channel_switch_action_frame{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fFfext_chan_switch_ann_action ext_chan_switch_ann_action;
tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn;
} tDot11fext_channel_switch_action_frame;
#define DOT11F_EXT_CHANNEL_SWITCH_ACTION_FRAME (49)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_ext_channel_switch_action_frame(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fext_channel_switch_action_frame * pFrm, bool append_ie);
uint32_t dot11f_pack_ext_channel_switch_action_frame(tpAniSirGlobal pCtx,
tDot11fext_channel_switch_action_frame *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_ext_channel_switch_action_frame_size(tpAniSirGlobal pCtx,
tDot11fext_channel_switch_action_frame *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fht2040_bss_coexistence_mgmt_action_frame{
tDot11fFfCategory Category;
tDot11fFfAction Action;
tDot11fIEht2040_bss_coexistence ht2040_bss_coexistence;
tDot11fIEht2040_bss_intolerant_report ht2040_bss_intolerant_report;
} tDot11fht2040_bss_coexistence_mgmt_action_frame;
#define DOT11F_HT2040_BSS_COEXISTENCE_MGMT_ACTION_FRAME (50)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_ht2040_bss_coexistence_mgmt_action_frame(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fht2040_bss_coexistence_mgmt_action_frame * pFrm, bool append_ie);
uint32_t dot11f_pack_ht2040_bss_coexistence_mgmt_action_frame(tpAniSirGlobal pCtx,
tDot11fht2040_bss_coexistence_mgmt_action_frame *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_ht2040_bss_coexistence_mgmt_action_frameSize(tpAniSirGlobal pCtx,
tDot11fht2040_bss_coexistence_mgmt_action_frame *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
typedef struct sDot11fp2p_oper_chan_change_confirm{
tDot11fFfCategory Category;
tDot11fFfp2p_action_oui p2p_action_oui;
tDot11fFfp2p_action_subtype p2p_action_subtype;
tDot11fFfDialogToken DialogToken;
tDot11fIEHTCaps HTCaps;
tDot11fIEVHTCaps VHTCaps;
tDot11fIEOperatingMode OperatingMode;
} tDot11fp2p_oper_chan_change_confirm;
#define DOT11F_P2P_OPER_CHAN_CHANGE_CONFIRM (51)
#ifdef __cplusplus
extern "C" {
#endif /* C++ */
uint32_t dot11f_unpack_p2p_oper_chan_change_confirm(tpAniSirGlobal pCtx,
uint8_t *pBuf, uint32_t nBuf,
tDot11fp2p_oper_chan_change_confirm * pFrm, bool append_ie);
uint32_t dot11f_pack_p2p_oper_chan_change_confirm(tpAniSirGlobal pCtx,
tDot11fp2p_oper_chan_change_confirm *pFrm, uint8_t *pBuf,
uint32_t nBuf, uint32_t *pnConsumed);
uint32_t dot11f_get_packed_p2p_oper_chan_change_confirmSize(tpAniSirGlobal pCtx,
tDot11fp2p_oper_chan_change_confirm *pFrm,
uint32_t *pnNeeded);
#ifdef __cplusplus
} /* End extern "C". */
#endif /* C++ */
#endif /* DOT11F_H */