/* * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved. * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. 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' * Fri Nov 10 10:07:33 2023 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 criticalUpdateFlag: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_CRITICALUPDATEFLAG_OFFSET 6 #define CAPABILITIES_CRITICALUPDATEFLAG_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 *); typedef struct sDot11fFfvendor_action_subtype { uint8_t subtype; } tDot11fFfvendor_action_subtype; #define DOT11F_FF_VENDOR_ACTION_SUBTYPE_LEN (1) void dot11f_unpack_ff_vendor_action_subtype(tpAniSirGlobal, uint8_t *, tDot11fFfvendor_action_subtype *); void dot11f_pack_ff_vendor_action_subtype(tpAniSirGlobal, tDot11fFfvendor_action_subtype *, uint8_t *); typedef struct sDot11fFfvendor_oui { uint8_t oui_data[3]; } tDot11fFfvendor_oui; #define DOT11F_FF_VENDOR_OUI_LEN (3) void dot11f_unpack_ff_vendor_oui(tpAniSirGlobal, uint8_t *, tDot11fFfvendor_oui *); void dot11f_pack_ff_vendor_oui(tpAniSirGlobal, tDot11fFfvendor_oui *, 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 14 (0x000e) */ typedef struct sDot11fTLVecsa_target_tsf_info_attr { uint8_t present; uint8_t twt_ch_sw_mode; tDOT11F_U64 target_tsf; } tDot11fTLVecsa_target_tsf_info_attr; #define DOT11F_TLV_ECSA_TARGET_TSF_INFO_ATTR (14) /* N.B. These #defines do *not* include the ID & length */ #define DOT11F_TLV_ECSA_TARGET_TSF_INFO_ATTR_MIN_LEN (9) #define DOT11F_TLV_ECSA_TARGET_TSF_INFO_ATTR_MAX_LEN (9) #ifdef __cplusplus extern "C" { #endif /* C++ */ uint32_t dot11f_unpack_tlv_ecsa_target_tsf_info_attr( tpAniSirGlobal, uint8_t *, uint16_t, tDot11fTLVecsa_target_tsf_info_attr*); uint32_t dot11f_pack_tlv_ecsa_target_tsf_info_attr( tpAniSirGlobal, tDot11fTLVecsa_target_tsf_info_attr *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_tlv_ecsa_target_tsf_info_attr( tpAniSirGlobal, tDot11fTLVecsa_target_tsf_info_attr *, uint32_t*); #ifdef __cplusplus }; /* End extern "C". */ #endif /* C++ */ /* ID 13 (0x000d) */ typedef struct sDot11fTLVedca_pifs_param_attr { uint8_t present; uint8_t edca_param_type; uint8_t num_data; uint8_t data[4]; } tDot11fTLVedca_pifs_param_attr; #define DOT11F_TLV_EDCA_PIFS_PARAM_ATTR (13) /* N.B. These #defines do *not* include the ID & length */ #define DOT11F_TLV_EDCA_PIFS_PARAM_ATTR_MIN_LEN (4) #define DOT11F_TLV_EDCA_PIFS_PARAM_ATTR_MAX_LEN (5) #ifdef __cplusplus extern "C" { #endif /* C++ */ uint32_t dot11f_unpack_tlv_edca_pifs_param_attr( tpAniSirGlobal, uint8_t *, uint16_t, tDot11fTLVedca_pifs_param_attr*); uint32_t dot11f_pack_tlv_edca_pifs_param_attr( tpAniSirGlobal, tDot11fTLVedca_pifs_param_attr *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_tlv_edca_pifs_param_attr( tpAniSirGlobal, tDot11fTLVedca_pifs_param_attr *, uint32_t*); #ifdef __cplusplus }; /* End extern "C". */ #endif /* C++ */ /* ID 4 (0x0004) */ typedef struct sDot11fTLVhe_2xltf_160mhz_supp { uint8_t present; uint8_t he_2xltf_160MHz_supp; } tDot11fTLVhe_2xltf_160mhz_supp; #define DOT11F_TLV_HE_2XLTF_160MHZ_SUPP (4) /* N.B. These #defines do *not* include the ID & length */ #define DOT11F_TLV_HE_2XLTF_160MHZ_SUPP_MIN_LEN (1) #define DOT11F_TLV_HE_2XLTF_160MHZ_SUPP_MAX_LEN (1) #ifdef __cplusplus extern "C" { #endif /* C++ */ uint32_t dot11f_unpack_tlv_he_2xltf_160mhz_supp( tpAniSirGlobal, uint8_t *, uint16_t, tDot11fTLVhe_2xltf_160mhz_supp*); uint32_t dot11f_pack_tlv_he_2xltf_160mhz_supp( tpAniSirGlobal, tDot11fTLVhe_2xltf_160mhz_supp *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_tlv_he_2xltf_160mhz_supp( tpAniSirGlobal, tDot11fTLVhe_2xltf_160mhz_supp *, uint32_t*); #ifdef __cplusplus }; /* End extern "C". */ #endif /* C++ */ /* ID 3 (0x0003) */ typedef struct sDot11fTLVhe_400ns_sgi_attr { uint8_t present; uint8_t he_ltf1x_400ns_sgi; uint8_t he_ltf2x_400ns_sgi; uint8_t he_ltf4x_400ns_sgi; } tDot11fTLVhe_400ns_sgi_attr; #define DOT11F_TLV_HE_400NS_SGI_ATTR (3) /* N.B. These #defines do *not* include the ID & length */ #define DOT11F_TLV_HE_400NS_SGI_ATTR_MIN_LEN (3) #define DOT11F_TLV_HE_400NS_SGI_ATTR_MAX_LEN (3) #ifdef __cplusplus extern "C" { #endif /* C++ */ uint32_t dot11f_unpack_tlv_he_400ns_sgi_attr( tpAniSirGlobal, uint8_t *, uint16_t, tDot11fTLVhe_400ns_sgi_attr*); uint32_t dot11f_pack_tlv_he_400ns_sgi_attr( tpAniSirGlobal, tDot11fTLVhe_400ns_sgi_attr *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_tlv_he_400ns_sgi_attr( tpAniSirGlobal, tDot11fTLVhe_400ns_sgi_attr *, uint32_t*); #ifdef __cplusplus }; /* End extern "C". */ #endif /* C++ */ /* ID 8 (0x0008) */ typedef struct sDot11fTLVhe_dl_mumimo_attr { uint8_t present; uint8_t he_dl_mumimo_supp; } tDot11fTLVhe_dl_mumimo_attr; #define DOT11F_TLV_HE_DL_MUMIMO_ATTR (8) /* N.B. These #defines do *not* include the ID & length */ #define DOT11F_TLV_HE_DL_MUMIMO_ATTR_MIN_LEN (1) #define DOT11F_TLV_HE_DL_MUMIMO_ATTR_MAX_LEN (1) #ifdef __cplusplus extern "C" { #endif /* C++ */ uint32_t dot11f_unpack_tlv_he_dl_mumimo_attr( tpAniSirGlobal, uint8_t *, uint16_t, tDot11fTLVhe_dl_mumimo_attr*); uint32_t dot11f_pack_tlv_he_dl_mumimo_attr( tpAniSirGlobal, tDot11fTLVhe_dl_mumimo_attr *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_tlv_he_dl_mumimo_attr( tpAniSirGlobal, tDot11fTLVhe_dl_mumimo_attr *, uint32_t*); #ifdef __cplusplus }; /* End extern "C". */ #endif /* C++ */ /* ID 5 (0x0005) */ typedef struct sDot11fTLVhe_dl_ofdma_attr { uint8_t present; uint8_t he_dl_ofdma_supp; } tDot11fTLVhe_dl_ofdma_attr; #define DOT11F_TLV_HE_DL_OFDMA_ATTR (5) /* N.B. These #defines do *not* include the ID & length */ #define DOT11F_TLV_HE_DL_OFDMA_ATTR_MIN_LEN (1) #define DOT11F_TLV_HE_DL_OFDMA_ATTR_MAX_LEN (1) #ifdef __cplusplus extern "C" { #endif /* C++ */ uint32_t dot11f_unpack_tlv_he_dl_ofdma_attr( tpAniSirGlobal, uint8_t *, uint16_t, tDot11fTLVhe_dl_ofdma_attr*); uint32_t dot11f_pack_tlv_he_dl_ofdma_attr( tpAniSirGlobal, tDot11fTLVhe_dl_ofdma_attr *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_tlv_he_dl_ofdma_attr( tpAniSirGlobal, tDot11fTLVhe_dl_ofdma_attr *, uint32_t*); #ifdef __cplusplus }; /* End extern "C". */ #endif /* C++ */ /* ID 9 (0x0009) */ typedef struct sDot11fTLVhe_mcs13_attr { uint8_t present; uint8_t he_mcs_12_13_supp_80; uint8_t he_mcs_12_13_supp_160; } tDot11fTLVhe_mcs13_attr; #define DOT11F_TLV_HE_MCS13_ATTR (9) /* N.B. These #defines do *not* include the ID & length */ #define DOT11F_TLV_HE_MCS13_ATTR_MIN_LEN (2) #define DOT11F_TLV_HE_MCS13_ATTR_MAX_LEN (2) #ifdef __cplusplus extern "C" { #endif /* C++ */ uint32_t dot11f_unpack_tlv_he_mcs13_attr( tpAniSirGlobal, uint8_t *, uint16_t, tDot11fTLVhe_mcs13_attr*); uint32_t dot11f_pack_tlv_he_mcs13_attr( tpAniSirGlobal, tDot11fTLVhe_mcs13_attr *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_tlv_he_mcs13_attr( tpAniSirGlobal, tDot11fTLVhe_mcs13_attr *, 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 1 (0x0001) */ typedef struct sDot11fTLVqcn_version { uint8_t present; uint8_t version; uint8_t sub_version; } tDot11fTLVqcn_version; #define DOT11F_TLV_QCN_VERSION (1) /* N.B. These #defines do *not* include the ID & length */ #define DOT11F_TLV_QCN_VERSION_MIN_LEN (2) #define DOT11F_TLV_QCN_VERSION_MAX_LEN (2) #ifdef __cplusplus extern "C" { #endif /* C++ */ uint32_t dot11f_unpack_tlv_qcn_version( tpAniSirGlobal, uint8_t *, uint16_t, tDot11fTLVqcn_version*); uint32_t dot11f_pack_tlv_qcn_version( tpAniSirGlobal, tDot11fTLVqcn_version *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_tlv_qcn_version( tpAniSirGlobal, tDot11fTLVqcn_version *, 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 sDot11fTLVtrans_reasonp_attr { uint8_t present; uint8_t transition_reasonp; } tDot11fTLVtrans_reasonp_attr; #define DOT11F_TLV_TRANS_REASONP_ATTR (6) /* N.B. These #defines do *not* include the ID & length */ #define DOT11F_TLV_TRANS_REASONP_ATTR_MIN_LEN (1) #define DOT11F_TLV_TRANS_REASONP_ATTR_MAX_LEN (1) #ifdef __cplusplus extern "C" { #endif /* C++ */ uint32_t dot11f_unpack_tlv_trans_reasonp_attr( tpAniSirGlobal, uint8_t *, uint16_t, tDot11fTLVtrans_reasonp_attr*); uint32_t dot11f_pack_tlv_trans_reasonp_attr( tpAniSirGlobal, tDot11fTLVtrans_reasonp_attr *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_tlv_trans_reasonp_attr( tpAniSirGlobal, tDot11fTLVtrans_reasonp_attr *, uint32_t*); #ifdef __cplusplus }; /* End extern "C". */ #endif /* C++ */ /* ID 7 (0x0007) */ typedef struct sDot11fTLVtrans_rejectp_attr { uint8_t present; uint8_t transition_rejp; } tDot11fTLVtrans_rejectp_attr; #define DOT11F_TLV_TRANS_REJECTP_ATTR (7) /* N.B. These #defines do *not* include the ID & length */ #define DOT11F_TLV_TRANS_REJECTP_ATTR_MIN_LEN (1) #define DOT11F_TLV_TRANS_REJECTP_ATTR_MAX_LEN (1) #ifdef __cplusplus extern "C" { #endif /* C++ */ uint32_t dot11f_unpack_tlv_trans_rejectp_attr( tpAniSirGlobal, uint8_t *, uint16_t, tDot11fTLVtrans_rejectp_attr*); uint32_t dot11f_pack_tlv_trans_rejectp_attr( tpAniSirGlobal, tDot11fTLVtrans_rejectp_attr *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_tlv_trans_rejectp_attr( tpAniSirGlobal, tDot11fTLVtrans_rejectp_attr *, 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 2 (0x0002) */ typedef struct sDot11fTLVvht_mcs11_attr { uint8_t present; uint8_t vht_mcs_10_11_supp; } tDot11fTLVvht_mcs11_attr; #define DOT11F_TLV_VHT_MCS11_ATTR (2) /* N.B. These #defines do *not* include the ID & length */ #define DOT11F_TLV_VHT_MCS11_ATTR_MIN_LEN (1) #define DOT11F_TLV_VHT_MCS11_ATTR_MAX_LEN (1) #ifdef __cplusplus extern "C" { #endif /* C++ */ uint32_t dot11f_unpack_tlv_vht_mcs11_attr( tpAniSirGlobal, uint8_t *, uint16_t, tDot11fTLVvht_mcs11_attr*); uint32_t dot11f_pack_tlv_vht_mcs11_attr( tpAniSirGlobal, tDot11fTLVvht_mcs11_attr *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_tlv_vht_mcs11_attr( tpAniSirGlobal, tDot11fTLVvht_mcs11_attr *, 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 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 11 (0x0b) */ typedef struct sDot11fIEExtRequestedInfo { uint8_t present; uint8_t req_element_id; uint8_t num_req_element_id_ext; uint8_t req_element_id_ext[255]; } tDot11fIEExtRequestedInfo; #define DOT11F_EID_EXTREQUESTEDINFO (11) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_EXTREQUESTEDINFO_MIN_LEN (1) #define DOT11F_IE_EXTREQUESTEDINFO_MAX_LEN (256) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_ExtRequestedInfo( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEExtRequestedInfo*, bool); uint32_t dot11f_pack_ie_ExtRequestedInfo( tpAniSirGlobal, tDot11fIEExtRequestedInfo *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_ExtRequestedInfo( tpAniSirGlobal, tDot11fIEExtRequestedInfo *, 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 extended_nss_bw_supp:2; uint16_t rxMCSMap; uint16_t rxHighSupDataRate:13; uint16_t max_nsts_total:3; uint16_t txMCSMap; uint16_t txSupDataRate:13; uint16_t vht_extended_nss_bw_cap:1; uint16_t reserved:2; } 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 chan_center_freq_seg0; uint8_t chan_center_freq_seg1; 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 255 (0xff) Extended EID 135 (0x87) */ typedef struct sDot11fIEbw_ind_element { uint8_t present; uint8_t reserved:1; uint8_t disabled_sub_chan_bitmap_present:1; uint8_t reserved_1:6; uint8_t channel_width:3; uint8_t reserved_2:5; uint8_t ccfs0; uint8_t ccfs1; uint8_t disabled_sub_chan_bitmap[1][2]; } tDot11fIEbw_ind_element; #define DOT11F_EID_BW_IND_ELEMENT (255) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_BW_IND_ELEMENT_MIN_LEN (4) #define DOT11F_IE_BW_IND_ELEMENT_MAX_LEN (6) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_bw_ind_element( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEbw_ind_element*, bool); uint32_t dot11f_pack_ie_bw_ind_element( tpAniSirGlobal, tDot11fIEbw_ind_element *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_bw_ind_element( tpAniSirGlobal, tDot11fIEbw_ind_element *, uint32_t*); #ifdef __cplusplus }; /* End extern "C". */ #endif /* C++ */ /* EID 164 (0xa4) */ typedef struct sDot11fIEbw_indication { uint8_t present; uint8_t reserved:1; uint8_t disabled_sub_chan_bitmap_present:1; uint8_t reserved_1:6; uint8_t channel_width:3; uint8_t reserved_2:5; uint8_t ccfs0; uint8_t ccfs1; uint8_t disabled_sub_chan_bitmap[1][2]; } tDot11fIEbw_indication; #define DOT11F_EID_BW_INDICATION (164) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_BW_INDICATION_MIN_LEN (4) #define DOT11F_IE_BW_INDICATION_MAX_LEN (6) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_bw_indication( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEbw_indication*, bool); uint32_t dot11f_pack_ie_bw_indication( tpAniSirGlobal, tDot11fIEbw_indication *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_bw_indication( tpAniSirGlobal, tDot11fIEbw_indication *, 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 76 (0x4c) */ typedef struct sDot11fIEmscs_status { uint8_t present; uint8_t status_code; } tDot11fIEmscs_status; #define DOT11F_EID_MSCS_STATUS (76) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_MSCS_STATUS_MIN_LEN (1) #define DOT11F_IE_MSCS_STATUS_MAX_LEN (1) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_mscs_status( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEmscs_status*, bool); uint32_t dot11f_pack_ie_mscs_status( tpAniSirGlobal, tDot11fIEmscs_status *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_mscs_status( tpAniSirGlobal, tDot11fIEmscs_status *, 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 1 (0x01) */ typedef struct sDot11fIEreporting_reason { uint8_t present; uint8_t failed_count:1; uint8_t fcs_error:1; uint8_t multiple_retry:1; uint8_t frame_duplicate:1; uint8_t rts_failure:1; uint8_t ack_failure:1; uint8_t retry:1; uint8_t reserved:1; } tDot11fIEreporting_reason; #define DOT11F_EID_REPORTING_REASON (1) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_REPORTING_REASON_MIN_LEN (1) #define DOT11F_IE_REPORTING_REASON_MAX_LEN (1) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_reporting_reason( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEreporting_reason*, bool); uint32_t dot11f_pack_ie_reporting_reason( tpAniSirGlobal, tDot11fIEreporting_reason *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_reporting_reason( tpAniSirGlobal, tDot11fIEreporting_reason *, 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 1 (0x01) */ typedef struct sDot11fIErrm_reporting { uint8_t present; uint8_t reporting_condition; uint8_t threshold; } tDot11fIErrm_reporting; #define DOT11F_EID_RRM_REPORTING (1) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_RRM_REPORTING_MIN_LEN (2) #define DOT11F_IE_RRM_REPORTING_MAX_LEN (2) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_rrm_reporting( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIErrm_reporting*, bool); uint32_t dot11f_pack_ie_rrm_reporting( tpAniSirGlobal, tDot11fIErrm_reporting *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_rrm_reporting( tpAniSirGlobal, tDot11fIErrm_reporting *, uint32_t*); #ifdef __cplusplus }; /* End extern "C". */ #endif /* C++ */ /* EID 255 (0xff) Extended EID 89 (0x59) */ typedef struct sDot11fIEtclas_mask { uint8_t present; uint8_t classifier_type; uint8_t classifier_mask; union { struct { uint8_t reserved[16]; } ip_param; /* classifier_type = 4 */ } info; } tDot11fIEtclas_mask; #define DOT11F_EID_TCLAS_MASK (255) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_TCLAS_MASK_MIN_LEN (18) #define DOT11F_IE_TCLAS_MASK_MAX_LEN (18) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_tclas_mask( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEtclas_mask*, bool); uint32_t dot11f_pack_ie_tclas_mask( tpAniSirGlobal, tDot11fIEtclas_mask *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_tclas_mask( tpAniSirGlobal, tDot11fIEtclas_mask *, 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 sDot11fIEtransmit_power_env { uint8_t present; uint8_t max_tx_pwr_count:3; uint8_t max_tx_pwr_interpret:3; uint8_t max_tx_pwr_category:2; uint8_t num_tx_power; uint8_t tx_power[8]; union { struct { uint8_t max_tx_power_for_320; } ext_max_tx_power_local_eirp; /* max_tx_pwr_interpret = 0 */ struct { uint8_t ext_count:4; uint8_t reserved:4; uint8_t max_tx_psd_power[8]; } ext_max_tx_power_local_psd; /* max_tx_pwr_interpret = 1 */ struct { uint8_t max_tx_power_for_320; } ext_max_tx_power_reg_eirp; /* max_tx_pwr_interpret = 2 */ struct { uint8_t ext_count:4; uint8_t reserved:4; uint8_t max_tx_psd_power[8]; } ext_max_tx_power_reg_psd; /* max_tx_pwr_interpret = 3 */ } ext_max_tx_power; } tDot11fIEtransmit_power_env; #define DOT11F_EID_TRANSMIT_POWER_ENV (195) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_TRANSMIT_POWER_ENV_MIN_LEN (2) #define DOT11F_IE_TRANSMIT_POWER_ENV_MAX_LEN (18) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_transmit_power_env( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEtransmit_power_env*, bool); uint32_t dot11f_pack_ie_transmit_power_env( tpAniSirGlobal, tDot11fIEtransmit_power_env *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_transmit_power_env( tpAniSirGlobal, tDot11fIEtransmit_power_env *, uint32_t*); #ifdef __cplusplus }; /* End extern "C". */ #endif /* C++ */ /* EID 163 (0xa3) */ typedef struct sDot11fIEwide_bw_chan_switch { uint8_t present; uint8_t new_chan_width; uint8_t new_center_chan_freq0; uint8_t new_center_chan_freq1; } tDot11fIEwide_bw_chan_switch; #define DOT11F_EID_WIDE_BW_CHAN_SWITCH (163) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_WIDE_BW_CHAN_SWITCH_MIN_LEN (3) #define DOT11F_IE_WIDE_BW_CHAN_SWITCH_MAX_LEN (3) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_wide_bw_chan_switch( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEwide_bw_chan_switch*, bool); uint32_t dot11f_pack_ie_wide_bw_chan_switch( tpAniSirGlobal, tDot11fIEwide_bw_chan_switch *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_wide_bw_chan_switch( tpAniSirGlobal, tDot11fIEwide_bw_chan_switch *, 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; tDot11fIEtransmit_power_env transmit_power_env; tDot11fIEbw_ind_element bw_ind_element; } 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 (33) #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 first_triplet[3]; uint8_t num_more_triplets; uint8_t more_triplets[80][3]; } tDot11fIECountry; #define DOT11F_EID_COUNTRY (7) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_COUNTRY_MIN_LEN (6) #define DOT11F_IE_COUNTRY_MAX_LEN (246) #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 chan_center_freq_seg2:8; uint16_t reserved:3; 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 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 op_class; uint8_t channel; tDOT11F_U64 meas_start_time; uint16_t meas_duration; uint8_t chan_load; tDot11fIEwide_bw_chan_switch wide_bw_chan_switch; tDot11fIEbw_indication bw_indication; } channel_load_report; /* type = 3 */ 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 */ struct { uint16_t meas_duration; uint8_t group_id; union { struct { uint32_t transmitted_fragment_count; uint32_t group_transmitted_frame_count; uint32_t failed_count; uint32_t received_fragment_count; uint32_t group_received_frame_count; uint32_t fcs_error_count; uint32_t transmitted_frame_count; } dot11_counter_stats; /* group_id = 0 */ struct { uint32_t retry_count; uint32_t multiple_retry_count; uint32_t frame_duplicate_count; uint32_t rts_success_count; uint32_t rts_failure_count; uint32_t ack_failure_count; } dot11_mac_stats; /* group_id = 1 */ struct { uint32_t qos_transmitted_fragment_count; uint32_t qos_failed_count; uint32_t qos_retry_count; uint32_t qos_multiple_retry_count; uint32_t qos_frame_duplicate_count; uint32_t qos_rts_success_count; uint32_t qos_rts_failure_count; uint32_t qos_ack_failure_count; uint32_t qos_received_fragment_count; uint32_t qos_transmitted_frame_count; uint32_t qos_discarded_frame_count; uint32_t qos_mpdus_received_count; uint32_t qos_retries_received_count; } dot11_qos_counter; /* group_id = 2 */ struct { uint8_t ap_average_access_delay; uint8_t average_access_delay_besteffort; uint8_t average_access_delay_background; uint8_t average_access_delay_video; uint8_t average_access_delay_voice; uint16_t station_count; uint8_t channel_utilization; } dot11_bss_average_access_delay; /* group_id = 10 */ } statsgroupdata; tDot11fIEreporting_reason reporting_reason; } sta_stats; /* type = 7 */ } 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 (58) #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 op_class; uint8_t channel; uint16_t randomization_intv; uint16_t meas_duration; tDot11fIErrm_reporting rrm_reporting; tDot11fIEwide_bw_chan_switch wide_bw_chan_switch; tDot11fIEbw_indication bw_indication; } channel_load; /* measurement_type = 3 */ struct { uint8_t regClass; uint8_t channel; uint16_t randomization; uint16_t meas_duration; uint8_t meas_mode; uint8_t BSSID[6]; tDot11fIESSID SSID; tDot11fIErrm_reporting rrm_reporting; tDot11fIEBcnReportingDetail BcnReportingDetail; tDot11fIERequestedInfo RequestedInfo; tDot11fIEExtRequestedInfo ExtRequestedInfo; 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 */ struct { uint8_t peer_mac_addr[6]; uint16_t randomization; uint16_t meas_duration; uint8_t group_identity; } sta_stats; /* measurement_type = 7 */ } 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 vht_160_80p80_supp:1; uint8_t no_ldpc:1; 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 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[58]; } tDot11fIEQosMapSet; #define DOT11F_EID_QOSMAPSET (110) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_QOSMAPSET_MIN_LEN (16) #define DOT11F_IE_QOSMAPSET_MAX_LEN (58) #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:2; uint8_t extd_buff_size:3; } 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 90 (0x5a) */ typedef struct sDot11fIEbss_max_idle_period { uint8_t present; uint16_t max_idle_period; uint8_t prot_keep_alive_reqd:1; uint8_t reserved:7; } tDot11fIEbss_max_idle_period; #define DOT11F_EID_BSS_MAX_IDLE_PERIOD (90) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_BSS_MAX_IDLE_PERIOD_MIN_LEN (3) #define DOT11F_IE_BSS_MAX_IDLE_PERIOD_MAX_LEN (3) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_bss_max_idle_period( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEbss_max_idle_period*, bool); uint32_t dot11f_pack_ie_bss_max_idle_period( tpAniSirGlobal, tDot11fIEbss_max_idle_period *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_bss_max_idle_period( tpAniSirGlobal, tDot11fIEbss_max_idle_period *, uint32_t*); #ifdef __cplusplus }; /* End extern "C". */ #endif /* C++ */ /* EID 255 (0xff) Extended EID 88 (0x58) */ typedef struct sDot11fIEdescriptor_element { uint8_t present; uint8_t request_type; uint16_t user_priority_control; uint32_t stream_timeout; tDot11fIEtclas_mask tclas_mask; tDot11fIEmscs_status mscs_status; } tDot11fIEdescriptor_element; #define DOT11F_EID_DESCRIPTOR_ELEMENT (255) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_DESCRIPTOR_ELEMENT_MIN_LEN (7) #define DOT11F_IE_DESCRIPTOR_ELEMENT_MAX_LEN (30) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_descriptor_element( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEdescriptor_element*, bool); uint32_t dot11f_pack_ie_descriptor_element( tpAniSirGlobal, tDot11fIEdescriptor_element *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_descriptor_element( tpAniSirGlobal, tDot11fIEdescriptor_element *, 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 108 (0x6c) */ typedef struct sDot11fIEeht_cap { uint8_t present; uint16_t epcs_pri_access:1; uint16_t eht_om_ctl:1; uint16_t triggered_txop_sharing_mode1:1; uint16_t triggered_txop_sharing_mode2:1; uint16_t restricted_twt:1; uint16_t scs_traffic_desc:1; uint16_t max_mpdu_len:2; uint16_t max_a_mpdu_len_exponent_ext:1; uint16_t eht_trs_support:1; uint16_t txop_return_support_txop_share_m2:1; uint16_t two_bqrs_support:1; uint16_t eht_link_adaptation_support:2; uint16_t reserved:2; uint32_t reserved2:1; uint32_t support_320mhz_6ghz:1; uint32_t ru_242tone_wt_20mhz:1; uint32_t ndp_4x_eht_ltf_3dot2_us_gi:1; uint32_t partial_bw_mu_mimo:1; uint32_t su_beamformer:1; uint32_t su_beamformee:1; uint32_t bfee_ss_le_80mhz:3; uint32_t bfee_ss_160mhz:3; uint32_t bfee_ss_320mhz:3; uint32_t num_sounding_dim_le_80mhz:3; uint32_t num_sounding_dim_160mhz:3; uint32_t num_sounding_dim_320mhz:3; uint32_t ng_16_su_feedback:1; uint32_t ng_16_mu_feedback:1; uint32_t cb_sz_4_2_su_feedback:1; uint32_t cb_sz_7_5_su_feedback:1; uint32_t trig_su_bforming_feedback:1; uint32_t trig_mu_bforming_partial_bw_feedback:1; uint32_t triggered_cqi_feedback:1; uint32_t partial_bw_dl_mu_mimo:1; uint32_t psr_based_sr:1; uint32_t power_boost_factor:1; uint32_t eht_mu_ppdu_4x_ltf_0_8_us_gi:1; uint32_t max_nc:4; uint32_t non_trig_cqi_feedback:1; uint32_t tx_1024_4096_qam_lt_242_tone_ru:1; uint32_t rx_1024_4096_qam_lt_242_tone_ru:1; uint32_t ppet_present:1; uint32_t common_nominal_pkt_padding:2; uint32_t max_num_eht_ltf:5; uint32_t mcs_15:4; uint32_t eht_dup_6ghz:1; uint32_t op_sta_rx_ndp_wider_bw_20mhz:1; uint32_t non_ofdma_ul_mu_mimo_le_80mhz:1; uint32_t non_ofdma_ul_mu_mimo_160mhz:1; uint32_t non_ofdma_ul_mu_mimo_320mhz:1; uint32_t mu_bformer_le_80mhz:1; uint32_t mu_bformer_160mhz:1; uint32_t mu_bformer_320mhz:1; uint32_t tb_sounding_feedback_rl:1; uint8_t rx_1k_qam_in_wider_bw_dl_ofdma:1; uint8_t rx_4k_qam_in_wider_bw_dl_ofdma:1; uint8_t limited_cap_support_20mhz:1; uint8_t triggered_mu_bf_full_bw_fb_and_dl_mumimo:1; uint8_t mru_support_20mhz:1; uint8_t reserved3:3; uint32_t bw_20_rx_max_nss_for_mcs_0_to_7:4; uint32_t bw_20_tx_max_nss_for_mcs_0_to_7:4; uint32_t bw_20_rx_max_nss_for_mcs_8_and_9:4; uint32_t bw_20_tx_max_nss_for_mcs_8_and_9:4; uint32_t bw_20_rx_max_nss_for_mcs_10_and_11:4; uint32_t bw_20_tx_max_nss_for_mcs_10_and_11:4; uint32_t bw_20_rx_max_nss_for_mcs_12_and_13:4; uint32_t bw_20_tx_max_nss_for_mcs_12_and_13:4; uint32_t bw_le_80_rx_max_nss_for_mcs_0_to_9:4; uint32_t bw_le_80_tx_max_nss_for_mcs_0_to_9:4; uint32_t bw_le_80_rx_max_nss_for_mcs_10_and_11:4; uint32_t bw_le_80_tx_max_nss_for_mcs_10_and_11:4; uint32_t bw_le_80_rx_max_nss_for_mcs_12_and_13:4; uint32_t bw_le_80_tx_max_nss_for_mcs_12_and_13:4; uint32_t bw_160_rx_max_nss_for_mcs_0_to_9:4; uint32_t bw_160_tx_max_nss_for_mcs_0_to_9:4; uint32_t bw_160_rx_max_nss_for_mcs_10_and_11:4; uint32_t bw_160_tx_max_nss_for_mcs_10_and_11:4; uint32_t bw_160_rx_max_nss_for_mcs_12_and_13:4; uint32_t bw_160_tx_max_nss_for_mcs_12_and_13:4; uint32_t bw_320_rx_max_nss_for_mcs_0_to_9:4; uint32_t bw_320_tx_max_nss_for_mcs_0_to_9:4; uint32_t bw_320_rx_max_nss_for_mcs_10_and_11:4; uint32_t bw_320_tx_max_nss_for_mcs_10_and_11:4; uint8_t bw_320_rx_max_nss_for_mcs_12_and_13:4; uint8_t bw_320_tx_max_nss_for_mcs_12_and_13:4; union { struct { uint8_t num_ppe_th; uint8_t ppe_th[62]; } ppe_threshold; /* ppet_present = 1 */ } ppet; } tDot11fIEeht_cap; #define DOT11F_EID_EHT_CAP (255) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_EHT_CAP_MIN_LEN (24) #define DOT11F_IE_EHT_CAP_MAX_LEN (86) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_eht_cap( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEeht_cap*, bool); uint32_t dot11f_pack_ie_eht_cap( tpAniSirGlobal, tDot11fIEeht_cap *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_eht_cap( tpAniSirGlobal, tDot11fIEeht_cap *, uint32_t*); #ifdef __cplusplus }; /* End extern "C". */ #endif /* C++ */ /* EID 255 (0xff) Extended EID 106 (0x6a) */ typedef struct sDot11fIEeht_op { uint8_t present; uint8_t eht_op_information_present:1; uint8_t disabled_sub_chan_bitmap_present:1; uint8_t eht_default_pe_duration:1; uint8_t group_addr_bu_indication_limit:1; uint8_t group_addr_bu_indication_exponent:2; uint8_t reserved:2; uint32_t basic_rx_max_nss_for_mcs_0_to_7:4; uint32_t basic_tx_max_nss_for_mcs_0_to_7:4; uint32_t basic_rx_max_nss_for_mcs_8_and_9:4; uint32_t basic_tx_max_nss_for_mcs_8_and_9:4; uint32_t basic_rx_max_nss_for_mcs_10_and_11:4; uint32_t basic_tx_max_nss_for_mcs_10_and_11:4; uint32_t basic_rx_max_nss_for_mcs_12_and_13:4; uint32_t basic_tx_max_nss_for_mcs_12_and_13:4; uint8_t channel_width:3; uint8_t reserved_1:5; uint8_t ccfs0; uint8_t ccfs1; uint8_t disabled_sub_chan_bitmap[1][2]; } tDot11fIEeht_op; #define DOT11F_EID_EHT_OP (255) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_EHT_OP_MIN_LEN (8) #define DOT11F_IE_EHT_OP_MAX_LEN (10) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_eht_op( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEeht_op*, bool); uint32_t dot11f_pack_ie_eht_op( tpAniSirGlobal, tDot11fIEeht_op *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_eht_op( tpAniSirGlobal, tDot11fIEeht_op *, 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 59 (0x3b) */ typedef struct sDot11fIEhe_6ghz_band_cap { uint8_t present; uint16_t min_mpdu_start_spacing:3; uint16_t max_ampdu_len_exp:3; uint16_t max_mpdu_len:3; uint16_t sm_pow_save:2; uint16_t rd_responder:1; uint16_t rx_ant_pattern_consistency:1; uint16_t tx_ant_pattern_consistency:1; uint16_t reserved:2; } tDot11fIEhe_6ghz_band_cap; #define DOT11F_EID_HE_6GHZ_BAND_CAP (255) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_HE_6GHZ_BAND_CAP_MIN_LEN (2) #define DOT11F_IE_HE_6GHZ_BAND_CAP_MAX_LEN (2) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_he_6ghz_band_cap( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEhe_6ghz_band_cap*, bool); uint32_t dot11f_pack_ie_he_6ghz_band_cap( tpAniSirGlobal, tDot11fIEhe_6ghz_band_cap *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_he_6ghz_band_cap( tpAniSirGlobal, tDot11fIEhe_6ghz_band_cap *, 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 he_dynamic_smps:1; uint16_t punctured_sounding_supp:1; uint16_t ht_vht_trg_frm_rx_supp:1; 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 tb_ppdu_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 tb_ppdu_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 oper_info_6g_present:1; uint8_t reserved2:6; 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; union { struct { uint8_t primary_ch; uint8_t ch_width:2; uint8_t dup_bcon:1; uint8_t reg_info:3; uint8_t reserved:2; uint8_t center_freq_seg0; uint8_t center_freq_seg1; uint8_t min_rate; } info; /* oper_info_6g_present = 1 */ } oper_info_6g; } 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 (15) #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 52 (0x34) */ typedef struct sDot11fIEmax_chan_switch_time { uint8_t present; uint8_t switch_time[3]; } tDot11fIEmax_chan_switch_time; #define DOT11F_EID_MAX_CHAN_SWITCH_TIME (255) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_MAX_CHAN_SWITCH_TIME_MIN_LEN (3) #define DOT11F_IE_MAX_CHAN_SWITCH_TIME_MAX_LEN (3) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_max_chan_switch_time( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEmax_chan_switch_time*, bool); uint32_t dot11f_pack_ie_max_chan_switch_time( tpAniSirGlobal, tDot11fIEmax_chan_switch_time *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_max_chan_switch_time( tpAniSirGlobal, tDot11fIEmax_chan_switch_time *, uint32_t*); #ifdef __cplusplus }; /* End extern "C". */ #endif /* C++ */ /* EID 255 (0xff) Extended EID 107 (0x6b) */ typedef struct sDot11fIEmlo_ie { uint8_t present; uint8_t num_data; uint8_t data[255]; } tDot11fIEmlo_ie; #define DOT11F_EID_MLO_IE (255) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_MLO_IE_MIN_LEN (9) #define DOT11F_IE_MLO_IE_MAX_LEN (255) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_mlo_ie( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEmlo_ie*, bool); uint32_t dot11f_pack_ie_mlo_ie( tpAniSirGlobal, tDot11fIEmlo_ie *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_mlo_ie( tpAniSirGlobal, tDot11fIEmlo_ie *, 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 255 (0xff) Extended EID 56 (0x38) */ typedef struct sDot11fIEnon_inheritance { uint8_t present; uint8_t num_data; uint8_t data[255]; } tDot11fIEnon_inheritance; #define DOT11F_EID_NON_INHERITANCE (255) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_NON_INHERITANCE_MIN_LEN (0) #define DOT11F_IE_NON_INHERITANCE_MAX_LEN (255) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_non_inheritance( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEnon_inheritance*, bool); uint32_t dot11f_pack_ie_non_inheritance( tpAniSirGlobal, tDot11fIEnon_inheritance *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_non_inheritance( tpAniSirGlobal, tDot11fIEnon_inheritance *, uint32_t*); #ifdef __cplusplus }; /* End extern "C". */ #endif /* C++ */ /* EID 255 (0xff) Extended EID 54 (0x36) */ typedef struct sDot11fIEoci { uint8_t present; uint8_t op_class; uint8_t prim_ch_num; uint8_t freq_seg_1_ch_num; } tDot11fIEoci; #define DOT11F_EID_OCI (255) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_OCI_MIN_LEN (3) #define DOT11F_IE_OCI_MAX_LEN (3) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_oci( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEoci*, bool); uint32_t dot11f_pack_ie_oci( tpAniSirGlobal, tDot11fIEoci *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_oci( tpAniSirGlobal, tDot11fIEoci *, 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 221 (0xdd) {OUI 0x8c, 0xfd, 0xf0, 0x01} (Multi-IE) */ typedef struct sDot11fIEqcn_ie { uint8_t present; tDot11fTLVqcn_version qcn_version; tDot11fTLVvht_mcs11_attr vht_mcs11_attr; tDot11fTLVhe_400ns_sgi_attr he_400ns_sgi_attr; tDot11fTLVhe_2xltf_160mhz_supp he_2xltf_160mhz_supp; tDot11fTLVhe_dl_ofdma_attr he_dl_ofdma_attr; tDot11fTLVtrans_reasonp_attr trans_reasonp_attr; tDot11fTLVtrans_rejectp_attr trans_rejectp_attr; tDot11fTLVhe_dl_mumimo_attr he_dl_mumimo_attr; tDot11fTLVhe_mcs13_attr he_mcs13_attr; tDot11fTLVedca_pifs_param_attr edca_pifs_param_attr; tDot11fTLVecsa_target_tsf_info_attr ecsa_target_tsf_info_attr; } 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 (4) #define DOT11F_IE_QCN_IE_MAX_LEN (53) #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 201 (0xc9) */ typedef struct sDot11fIEreduced_neighbor_report { uint8_t present; uint16_t tbtt_type:2; uint16_t filtered_neighbor_ap:1; uint16_t reserved:1; uint16_t tbtt_info_count:4; uint16_t tbtt_info_len:8; uint8_t op_class; uint8_t channel_num; union { struct { uint8_t tbtt_offset; } tbtt_info_1; /* tbtt_info_len = 1 */ struct { uint8_t tbtt_offset; uint8_t bss_params; } tbtt_info_2; /* tbtt_info_len = 2 */ struct { uint8_t tbtt_offset; uint32_t short_ssid; } tbtt_info_5; /* tbtt_info_len = 5 */ struct { uint8_t tbtt_offset; uint32_t short_ssid; uint8_t bss_params; } tbtt_info_6; /* tbtt_info_len = 6 */ struct { uint8_t tbtt_offset; uint8_t bssid[6]; } tbtt_info_7; /* tbtt_info_len = 7 */ struct { uint8_t tbtt_offset; uint8_t bssid[6]; uint8_t bss_params; } tbtt_info_8; /* tbtt_info_len = 8 */ struct { uint8_t tbtt_offset; uint8_t bssid[6]; uint8_t bss_params; uint8_t psd_20mhz; } tbtt_info_9; /* tbtt_info_len = 9 */ struct { uint8_t tbtt_offset; uint8_t bssid[6]; uint32_t short_ssid; } tbtt_info_11; /* tbtt_info_len = 11 */ struct { uint8_t tbtt_offset; uint8_t bssid[6]; uint32_t short_ssid; uint8_t bss_params; } tbtt_info_12; /* tbtt_info_len = 12 */ struct { uint8_t tbtt_offset; uint8_t bssid[6]; uint32_t short_ssid; uint8_t bss_params; uint8_t psd_20mhz; } tbtt_info_13; /* tbtt_info_len = 13 */ struct { uint8_t tbtt_offset; uint8_t bssid[6]; uint32_t short_ssid; uint8_t bss_params; uint8_t psd_20mhz; uint8_t mld_id; uint16_t link_id:4; uint16_t bss_param_change_cnt:8; uint16_t all_updates_included:1; uint16_t reserved:3; } tbtt_info_16; /* tbtt_info_len = 16 */ } tbtt_info; } tDot11fIEreduced_neighbor_report; #define DOT11F_EID_REDUCED_NEIGHBOR_REPORT (201) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_REDUCED_NEIGHBOR_REPORT_MIN_LEN (5) #define DOT11F_IE_REDUCED_NEIGHBOR_REPORT_MAX_LEN (20) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_reduced_neighbor_report( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEreduced_neighbor_report*, bool); uint32_t dot11f_pack_ie_reduced_neighbor_report( tpAniSirGlobal, tDot11fIEreduced_neighbor_report *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_reduced_neighbor_report( tpAniSirGlobal, tDot11fIEreduced_neighbor_report *, uint32_t*); #ifdef __cplusplus }; /* End extern "C". */ #endif /* C++ */ /* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x1d} */ typedef struct sDot11fIEroaming_consortium_sel { uint8_t present; uint8_t num_data; uint8_t data[255]; } tDot11fIEroaming_consortium_sel; #define DOT11F_EID_ROAMING_CONSORTIUM_SEL (221) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_ROAMING_CONSORTIUM_SEL_MIN_LEN (4) #define DOT11F_IE_ROAMING_CONSORTIUM_SEL_MAX_LEN (259) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_roaming_consortium_sel( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEroaming_consortium_sel*, bool); uint32_t dot11f_pack_ie_roaming_consortium_sel( tpAniSirGlobal, tDot11fIEroaming_consortium_sel *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_roaming_consortium_sel( tpAniSirGlobal, tDot11fIEroaming_consortium_sel *, 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 255 (0xff) Extended EID 39 (0x27) */ typedef struct sDot11fIEspatial_reuse { uint8_t present; uint8_t psr_disallow:1; uint8_t non_srg_pd_sr_disallow:1; uint8_t non_srg_offset_present:1; uint8_t srg_info_present:1; uint8_t sr_value15_allow:1; uint8_t reserved:3; union { struct { uint8_t non_srg_pd_max_offset; } info; /* non_srg_offset_present = 1 */ } non_srg_offset; union { struct { uint8_t srg_pd_min_offset; uint8_t srg_pd_max_offset; uint8_t srg_color[8]; uint8_t srg_partial_bssid[8]; } info; /* srg_info_present = 1 */ } srg_info; } tDot11fIEspatial_reuse; #define DOT11F_EID_SPATIAL_REUSE (255) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_SPATIAL_REUSE_MIN_LEN (1) #define DOT11F_IE_SPATIAL_REUSE_MAX_LEN (20) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_spatial_reuse( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEspatial_reuse*, bool); uint32_t dot11f_pack_ie_spatial_reuse( tpAniSirGlobal, tDot11fIEspatial_reuse *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_spatial_reuse( tpAniSirGlobal, tDot11fIEspatial_reuse *, uint32_t*); #ifdef __cplusplus }; /* End extern "C". */ #endif /* C++ */ /* EID 255 (0xff) Extended EID 109 (0x6d) */ typedef struct sDot11fIEt2lm_ie { uint8_t present; uint8_t num_data; uint8_t data[255]; } tDot11fIEt2lm_ie; #define DOT11F_EID_T2LM_IE (255) /* N.B. These #defines do *not* include the EID & length */ #define DOT11F_IE_T2LM_IE_MIN_LEN (3) #define DOT11F_IE_T2LM_IE_MAX_LEN (255) #ifdef __cplusplus extern "C" { #endif /* C++ */ __must_check uint32_t dot11f_unpack_ie_t2lm_ie( tpAniSirGlobal, uint8_t *, uint8_t, tDot11fIEt2lm_ie*, bool); uint32_t dot11f_pack_ie_t2lm_ie( tpAniSirGlobal, tDot11fIEt2lm_ie *, uint8_t *, uint32_t, uint32_t*); uint32_t dot11f_get_packed_ie_t2lm_ie( tpAniSirGlobal, tDot11fIEt2lm_ie *, 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; tDot11fIEExtSuppRates ExtSuppRates; tDot11fIEPowerCaps PowerCaps; tDot11fIESuppChannels SuppChannels; tDot11fIERSNOpaque RSNOpaque; tDot11fIEQOSCapsStation QOSCapsStation; tDot11fIERRMEnabledCap RRMEnabledCap; tDot11fIEMobilityDomain MobilityDomain; tDot11fIESuppOperatingClasses SuppOperatingClasses; tDot11fIEHTCaps HTCaps; tDot11fIEExtCap ExtCap; tDot11fIEVHTCaps VHTCaps; tDot11fIEOperatingMode OperatingMode; tDot11fIEfils_session fils_session; tDot11fIEfils_public_key fils_public_key; tDot11fIEfils_key_confirmation fils_key_confirmation; tDot11fIEfils_hlp_container fils_hlp_container; tDot11fIEbss_max_idle_period bss_max_idle_period; tDot11fIEFTInfo FTInfo; tDot11fIEhe_cap he_cap; tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; tDot11fIEWAPIOpaque WAPIOpaque; tDot11fIEWAPI WAPI; tDot11fIEQosMapSet QosMapSet; tDot11fIEfragment_ie fragment_ie; tDot11fIEdh_parameter_element dh_parameter_element; tDot11fIEeht_cap eht_cap; tDot11fIEmlo_ie mlo_ie; uint16_t num_t2lm_ie; tDot11fIEt2lm_ie t2lm_ie[2]; 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; tDot11fIEosen_ie osen_ie; tDot11fIEroaming_consortium_sel roaming_consortium_sel; } 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; tDot11fIETimeoutInterval TimeoutInterval; tDot11fIEHTCaps HTCaps; tDot11fIEHTInfo HTInfo; tDot11fIEOBSSScanParameters OBSSScanParameters; tDot11fIEExtCap ExtCap; tDot11fIEbss_max_idle_period bss_max_idle_period; tDot11fIEQosMapSet QosMapSet; tDot11fIEVHTCaps VHTCaps; tDot11fIEVHTOperation VHTOperation; tDot11fIEOperatingMode OperatingMode; tDot11fIEfils_session fils_session; tDot11fIEfils_public_key fils_public_key; tDot11fIEfils_key_confirmation fils_key_confirmation; tDot11fIEfils_hlp_container fils_hlp_container; tDot11fIEhe_cap he_cap; tDot11fIEhe_op he_op; tDot11fIEspatial_reuse spatial_reuse; tDot11fIEbss_color_change bss_color_change; tDot11fIEmu_edca_param_set mu_edca_param_set; tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; uint16_t num_RICDataDesc; tDot11fIERICDataDesc RICDataDesc[2]; tDot11fIEESETxmitPower ESETxmitPower; tDot11fIEfragment_ie fragment_ie; tDot11fIEfils_kde fils_kde; tDot11fIEeht_cap eht_cap; tDot11fIEeht_op eht_op; tDot11fIEmlo_ie mlo_ie; uint16_t num_t2lm_ie; tDot11fIEt2lm_ie t2lm_ie[2]; tDot11fIEWPA WPA; tDot11fIEWMMParams WMMParams; tDot11fIEWMMCaps WMMCaps; tDot11fIEESERadMgmtCap ESERadMgmtCap; tDot11fIEESETrafStrmMet ESETrafStrmMet; uint16_t num_WMMTSPEC; tDot11fIEWMMTSPEC WMMTSPEC[4]; tDot11fIEWscAssocRes WscAssocRes; tDot11fIEP2PAssocRes P2PAssocRes; tDot11fIEvendor_vht_ie vendor_vht_ie; tDot11fIEqcn_ie qcn_ie; tDot11fIEMBO_IE MBO_IE; tDot11fIEreduced_neighbor_report reduced_neighbor_report; } 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; tDot11fIEmlo_ie mlo_ie; } 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; tDot11fIETIM TIM; tDot11fIECountry Country; tDot11fIEFHParams FHParams; tDot11fIEFHPattTable FHPattTable; tDot11fIEPowerConstraints PowerConstraints; tDot11fIEChanSwitchAnn ChanSwitchAnn; tDot11fIEQuiet Quiet; tDot11fIETPCReport TPCReport; tDot11fIEERPInfo ERPInfo; tDot11fIEExtSuppRates ExtSuppRates; tDot11fIERSN RSN; tDot11fIEQBSSLoad QBSSLoad; tDot11fIEEDCAParamSet EDCAParamSet; tDot11fIEQOSCapsAp QOSCapsAp; tDot11fIEAPChannelReport APChannelReport; tDot11fIERRMEnabledCap RRMEnabledCap; tDot11fIEMobilityDomain MobilityDomain; tDot11fIEext_chan_switch_ann ext_chan_switch_ann; tDot11fIESuppOperatingClasses SuppOperatingClasses; tDot11fIEHTCaps HTCaps; tDot11fIEHTInfo HTInfo; tDot11fIEOBSSScanParameters OBSSScanParameters; tDot11fIEExtCap ExtCap; tDot11fIEVHTCaps VHTCaps; tDot11fIEVHTOperation VHTOperation; uint16_t num_transmit_power_env; tDot11fIEtransmit_power_env transmit_power_env[8]; tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper; tDot11fIEVHTExtBssLoad VHTExtBssLoad; tDot11fIEOperatingMode OperatingMode; tDot11fIEfils_indication fils_indication; tDot11fIEmax_chan_switch_time max_chan_switch_time; tDot11fIEesp_information esp_information; tDot11fIEhe_cap he_cap; tDot11fIEhe_op he_op; tDot11fIEspatial_reuse spatial_reuse; tDot11fIEbss_color_change bss_color_change; tDot11fIEmu_edca_param_set mu_edca_param_set; tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; tDot11fIEsec_chan_offset_ele sec_chan_offset_ele; tDot11fIEWAPI WAPI; tDot11fIEESETxmitPower ESETxmitPower; tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; tDot11fIEeht_cap eht_cap; tDot11fIEeht_op eht_op; tDot11fIEmlo_ie mlo_ie; uint16_t num_t2lm_ie; tDot11fIEt2lm_ie t2lm_ie[2]; tDot11fIEWPA WPA; tDot11fIEWMMInfoAp WMMInfoAp; tDot11fIEWMMParams WMMParams; tDot11fIEWMMCaps WMMCaps; tDot11fIEESEVersion ESEVersion; tDot11fIEESERadMgmtCap ESERadMgmtCap; tDot11fIEESETrafStrmMet ESETrafStrmMet; tDot11fIEWscBeacon WscBeacon; tDot11fIEP2PBeacon P2PBeacon; tDot11fIEVendor1IE Vendor1IE; tDot11fIEvendor_vht_ie vendor_vht_ie; tDot11fIEVendor3IE Vendor3IE; tDot11fIEhs20vendor_ie hs20vendor_ie; tDot11fIEQComVendorIE QComVendorIE; tDot11fIEMBO_IE MBO_IE; tDot11fIEqcn_ie qcn_ie; tDot11fIEreduced_neighbor_report reduced_neighbor_report; } 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; } 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; tDot11fIEQuiet Quiet; tDot11fIETPCReport TPCReport; tDot11fIEERPInfo ERPInfo; tDot11fIEExtSuppRates ExtSuppRates; tDot11fIERSNOpaque RSNOpaque; tDot11fIEEDCAParamSet EDCAParamSet; tDot11fIEAPChannelReport APChannelReport; tDot11fIERRMEnabledCap RRMEnabledCap; tDot11fIEMobilityDomain MobilityDomain; tDot11fIEext_chan_switch_ann ext_chan_switch_ann; tDot11fIESuppOperatingClasses SuppOperatingClasses; tDot11fIEHTCaps HTCaps; tDot11fIEHTInfo HTInfo; tDot11fIEOBSSScanParameters OBSSScanParameters; tDot11fIEExtCap ExtCap; tDot11fIEVHTCaps VHTCaps; tDot11fIEVHTOperation VHTOperation; uint16_t num_transmit_power_env; tDot11fIEtransmit_power_env transmit_power_env[8]; tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper; tDot11fIEVHTExtBssLoad VHTExtBssLoad; tDot11fIEOperatingMode OperatingMode; tDot11fIEfils_indication fils_indication; tDot11fIEmax_chan_switch_time max_chan_switch_time; tDot11fIEesp_information esp_information; tDot11fIEhe_cap he_cap; tDot11fIEhe_op he_op; tDot11fIEspatial_reuse spatial_reuse; tDot11fIEbss_color_change bss_color_change; tDot11fIEmu_edca_param_set mu_edca_param_set; tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; tDot11fIEsec_chan_offset_ele sec_chan_offset_ele; tDot11fIEWAPI WAPI; tDot11fIEESETxmitPower ESETxmitPower; tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; tDot11fIEeht_cap eht_cap; tDot11fIEeht_op eht_op; tDot11fIEmlo_ie mlo_ie; uint16_t num_t2lm_ie; tDot11fIEt2lm_ie t2lm_ie[2]; tDot11fIEWPA WPA; tDot11fIEWMMInfoAp WMMInfoAp; tDot11fIEWMMParams WMMParams; tDot11fIEWMMCaps WMMCaps; tDot11fIEESERadMgmtCap ESERadMgmtCap; tDot11fIEESETrafStrmMet ESETrafStrmMet; tDot11fIEWscBeacon WscBeacon; tDot11fIEP2PBeacon P2PBeacon; tDot11fIEVendor1IE Vendor1IE; tDot11fIEvendor_vht_ie vendor_vht_ie; tDot11fIEVendor3IE Vendor3IE; tDot11fIEhs20vendor_ie hs20vendor_ie; tDot11fIEQComVendorIE QComVendorIE; tDot11fIEESEVersion ESEVersion; tDot11fIEqcn_ie qcn_ie; tDot11fIEreduced_neighbor_report reduced_neighbor_report; } 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; tDot11fIETIM TIM; tDot11fIECountry Country; tDot11fIEFHParams FHParams; tDot11fIEFHPattTable FHPattTable; tDot11fIEPowerConstraints PowerConstraints; tDot11fIEChanSwitchAnn ChanSwitchAnn; tDot11fIEQuiet Quiet; tDot11fIETPCReport TPCReport; tDot11fIEERPInfo ERPInfo; tDot11fIEExtSuppRates ExtSuppRates; tDot11fIERSN RSN; tDot11fIEQBSSLoad QBSSLoad; tDot11fIEEDCAParamSet EDCAParamSet; tDot11fIEQOSCapsAp QOSCapsAp; tDot11fIEAPChannelReport APChannelReport; tDot11fIERRMEnabledCap RRMEnabledCap; tDot11fIEMobilityDomain MobilityDomain; tDot11fIEext_chan_switch_ann ext_chan_switch_ann; tDot11fIESuppOperatingClasses SuppOperatingClasses; tDot11fIEHTCaps HTCaps; tDot11fIEHTInfo HTInfo; tDot11fIEOBSSScanParameters OBSSScanParameters; tDot11fIEExtCap ExtCap; tDot11fIEVHTCaps VHTCaps; tDot11fIEVHTOperation VHTOperation; uint16_t num_transmit_power_env; tDot11fIEtransmit_power_env transmit_power_env[8]; tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper; tDot11fIEVHTExtBssLoad VHTExtBssLoad; tDot11fIEOperatingMode OperatingMode; tDot11fIEfils_indication fils_indication; tDot11fIEmax_chan_switch_time max_chan_switch_time; tDot11fIEesp_information esp_information; tDot11fIEhe_cap he_cap; tDot11fIEhe_op he_op; tDot11fIEspatial_reuse spatial_reuse; tDot11fIEbss_color_change bss_color_change; tDot11fIEmu_edca_param_set mu_edca_param_set; tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; tDot11fIEsec_chan_offset_ele sec_chan_offset_ele; tDot11fIEWAPI WAPI; tDot11fIEESETxmitPower ESETxmitPower; tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; tDot11fIEeht_cap eht_cap; tDot11fIEeht_op eht_op; tDot11fIEmlo_ie mlo_ie; uint16_t num_t2lm_ie; tDot11fIEt2lm_ie t2lm_ie[2]; tDot11fIEWPA WPA; tDot11fIEWMMInfoAp WMMInfoAp; tDot11fIEWMMParams WMMParams; tDot11fIEWMMCaps WMMCaps; tDot11fIEESEVersion ESEVersion; tDot11fIEESERadMgmtCap ESERadMgmtCap; tDot11fIEESETrafStrmMet ESETrafStrmMet; tDot11fIEWscBeaconProbeRes WscBeaconProbeRes; tDot11fIEP2PBeaconProbeRes P2PBeaconProbeRes; tDot11fIEVendor1IE Vendor1IE; tDot11fIEvendor_vht_ie vendor_vht_ie; tDot11fIEVendor3IE Vendor3IE; tDot11fIEhs20vendor_ie hs20vendor_ie; tDot11fIEQComVendorIE QComVendorIE; tDot11fIEMBO_IE MBO_IE; tDot11fIEqcn_ie qcn_ie; tDot11fIEreduced_neighbor_report reduced_neighbor_report; } 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; tDot11fIEExtCap ExtCap; tDot11fIEVHTCaps VHTCaps; tDot11fIEhe_cap he_cap; tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; tDot11fIEeht_cap eht_cap; tDot11fIEmlo_ie mlo_ie; tDot11fIEWscProbeReq WscProbeReq; tDot11fIEWFATPC WFATPC; tDot11fIEP2PProbeReq P2PProbeReq; tDot11fIEqcn_ie qcn_ie; } 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; tDot11fIECountry Country; tDot11fIEFHParams FHParams; tDot11fIEFHPattTable FHPattTable; tDot11fIEPowerConstraints PowerConstraints; tDot11fIEChanSwitchAnn ChanSwitchAnn; tDot11fIEQuiet Quiet; tDot11fIETPCReport TPCReport; tDot11fIEERPInfo ERPInfo; tDot11fIEExtSuppRates ExtSuppRates; tDot11fIERSNOpaque RSNOpaque; tDot11fIEQBSSLoad QBSSLoad; tDot11fIEEDCAParamSet EDCAParamSet; tDot11fIERRMEnabledCap RRMEnabledCap; tDot11fIEAPChannelReport APChannelReport; tDot11fIEMobilityDomain MobilityDomain; tDot11fIEext_chan_switch_ann ext_chan_switch_ann; tDot11fIESuppOperatingClasses SuppOperatingClasses; tDot11fIEHTCaps HTCaps; tDot11fIEHTInfo HTInfo; tDot11fIEOBSSScanParameters OBSSScanParameters; tDot11fIEExtCap ExtCap; tDot11fIEVHTCaps VHTCaps; tDot11fIEVHTOperation VHTOperation; uint16_t num_transmit_power_env; tDot11fIEtransmit_power_env transmit_power_env[8]; tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper; tDot11fIEVHTExtBssLoad VHTExtBssLoad; tDot11fIEfils_indication fils_indication; tDot11fIEmax_chan_switch_time max_chan_switch_time; tDot11fIEesp_information esp_information; tDot11fIEhe_cap he_cap; tDot11fIEhe_op he_op; tDot11fIEspatial_reuse spatial_reuse; tDot11fIEbss_color_change bss_color_change; tDot11fIEmu_edca_param_set mu_edca_param_set; tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; tDot11fIEsec_chan_offset_ele sec_chan_offset_ele; tDot11fIEWAPI WAPI; tDot11fIEESETxmitPower ESETxmitPower; tDot11fIEeht_cap eht_cap; tDot11fIEeht_op eht_op; tDot11fIEmlo_ie mlo_ie; uint16_t num_t2lm_ie; tDot11fIEt2lm_ie t2lm_ie[2]; tDot11fIEWPA WPA; tDot11fIEWMMInfoAp WMMInfoAp; tDot11fIEWMMParams WMMParams; tDot11fIEWMMCaps WMMCaps; tDot11fIEESEVersion ESEVersion; tDot11fIEESERadMgmtCap ESERadMgmtCap; tDot11fIEESETrafStrmMet ESETrafStrmMet; tDot11fIEWscProbeRes WscProbeRes; tDot11fIEP2PProbeRes P2PProbeRes; tDot11fIEVendor1IE Vendor1IE; tDot11fIEvendor_vht_ie vendor_vht_ie; tDot11fIEVendor3IE Vendor3IE; tDot11fIEhs20vendor_ie hs20vendor_ie; tDot11fIEQComVendorIE QComVendorIE; tDot11fIEMBO_IE MBO_IE; tDot11fIEqcn_ie qcn_ie; tDot11fIEreduced_neighbor_report reduced_neighbor_report; } 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[1]; } 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[5]; } 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]; tDot11fIESuppOperatingClasses SuppOperatingClasses; tDot11fIEHTCaps HTCaps; tDot11fIEExtCap ExtCap; tDot11fIEVHTCaps VHTCaps; tDot11fIEOperatingMode OperatingMode; tDot11fIEbss_max_idle_period bss_max_idle_period; tDot11fIEhe_cap he_cap; tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; tDot11fIEWAPIOpaque WAPIOpaque; tDot11fIEWAPI WAPI; tDot11fIEQosMapSet QosMapSet; tDot11fIEESECckmOpaque ESECckmOpaque; tDot11fIEeht_cap eht_cap; tDot11fIEmlo_ie mlo_ie; uint16_t num_t2lm_ie; tDot11fIEt2lm_ie t2lm_ie[2]; tDot11fIEWPAOpaque WPAOpaque; tDot11fIEWMMCaps WMMCaps; tDot11fIEWMMInfoStation WMMInfoStation; tDot11fIEWscIEOpaque WscIEOpaque; tDot11fIEESERadMgmtCap ESERadMgmtCap; tDot11fIEESEVersion ESEVersion; uint16_t num_WMMTSPEC; tDot11fIEWMMTSPEC WMMTSPEC[4]; tDot11fIEESETrafStrmRateSet ESETrafStrmRateSet; tDot11fIEP2PIEOpaque P2PIEOpaque; tDot11fIEWFDIEOpaque WFDIEOpaque; tDot11fIEvendor_vht_ie vendor_vht_ie; tDot11fIEhs20vendor_ie hs20vendor_ie; } 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]; tDot11fIETimeoutInterval TimeoutInterval; tDot11fIEHTCaps HTCaps; tDot11fIEHTInfo HTInfo; tDot11fIEOBSSScanParameters OBSSScanParameters; tDot11fIEExtCap ExtCap; tDot11fIEbss_max_idle_period bss_max_idle_period; tDot11fIEVHTCaps VHTCaps; tDot11fIEVHTOperation VHTOperation; tDot11fIEOperatingMode OperatingMode; tDot11fIEhe_cap he_cap; tDot11fIEhe_op he_op; tDot11fIEspatial_reuse spatial_reuse; tDot11fIEbss_color_change bss_color_change; tDot11fIEmu_edca_param_set mu_edca_param_set; tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; tDot11fIEQosMapSet QosMapSet; tDot11fIEESETxmitPower ESETxmitPower; tDot11fIEeht_cap eht_cap; tDot11fIEeht_op eht_op; tDot11fIEmlo_ie mlo_ie; uint16_t num_t2lm_ie; tDot11fIEt2lm_ie t2lm_ie[2]; tDot11fIEWPA WPA; tDot11fIEWMMParams WMMParams; tDot11fIEESERadMgmtCap ESERadMgmtCap; tDot11fIEESETrafStrmMet ESETrafStrmMet; uint16_t num_WMMTSPEC; tDot11fIEWMMTSPEC WMMTSPEC[4]; tDot11fIEESETrafStrmRateSet ESETrafStrmRateSet; tDot11fIEWscReassocRes WscReassocRes; tDot11fIEP2PAssocRes P2PAssocRes; tDot11fIEvendor_vht_ie vendor_vht_ie; tDot11fIEMBO_IE MBO_IE; tDot11fIEreduced_neighbor_report reduced_neighbor_report; } 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; tDot11fIEoci oci; } 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; tDot11fIEoci oci; } 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; tDot11fIEhe_cap he_cap; } 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; tDot11fIEhe_op he_op; } 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; tDot11fIEhe_cap he_cap; tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; } 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; tDot11fIEhe_cap he_cap; tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; } 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 sDot11fepcs_neg_req{ tDot11fFfCategory Category; tDot11fFfAction Action; tDot11fFfDialogToken DialogToken; } tDot11fepcs_neg_req; #define DOT11F_EPCS_NEG_REQ (49) #ifdef __cplusplus extern "C" { #endif /* C++ */ uint32_t dot11f_unpack_epcs_neg_req(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, tDot11fepcs_neg_req * pFrm, bool append_ie); uint32_t dot11f_pack_epcs_neg_req(tpAniSirGlobal pCtx, tDot11fepcs_neg_req *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); uint32_t dot11f_get_packed_epcs_neg_reqSize(tpAniSirGlobal pCtx, tDot11fepcs_neg_req *pFrm, uint32_t *pnNeeded); #ifdef __cplusplus } /* End extern "C". */ #endif /* C++ */ typedef struct sDot11fepcs_neg_rsp{ tDot11fFfCategory Category; tDot11fFfAction Action; tDot11fFfDialogToken DialogToken; tDot11fFfStatus Status; } tDot11fepcs_neg_rsp; #define DOT11F_EPCS_NEG_RSP (50) #ifdef __cplusplus extern "C" { #endif /* C++ */ uint32_t dot11f_unpack_epcs_neg_rsp(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, tDot11fepcs_neg_rsp * pFrm, bool append_ie); uint32_t dot11f_pack_epcs_neg_rsp(tpAniSirGlobal pCtx, tDot11fepcs_neg_rsp *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); uint32_t dot11f_get_packed_epcs_neg_rspSize(tpAniSirGlobal pCtx, tDot11fepcs_neg_rsp *pFrm, uint32_t *pnNeeded); #ifdef __cplusplus } /* End extern "C". */ #endif /* C++ */ typedef struct sDot11fepcs_teardown{ tDot11fFfCategory Category; tDot11fFfAction Action; } tDot11fepcs_teardown; #define DOT11F_EPCS_TEARDOWN (51) #ifdef __cplusplus extern "C" { #endif /* C++ */ uint32_t dot11f_unpack_epcs_teardown(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, tDot11fepcs_teardown * pFrm, bool append_ie); uint32_t dot11f_pack_epcs_teardown(tpAniSirGlobal pCtx, tDot11fepcs_teardown *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); uint32_t dot11f_get_packed_epcs_teardownSize(tpAniSirGlobal pCtx, tDot11fepcs_teardown *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; tDot11fIEqcn_ie qcn_ie; tDot11fIEbw_ind_element bw_ind_element; } tDot11fext_channel_switch_action_frame; #define DOT11F_EXT_CHANNEL_SWITCH_ACTION_FRAME (52) #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 (53) #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 sDot11fmscs_request_action_frame{ tDot11fFfCategory Category; tDot11fFfAction Action; tDot11fFfDialogToken DialogToken; tDot11fIEdescriptor_element descriptor_element; } tDot11fmscs_request_action_frame; #define DOT11F_MSCS_REQUEST_ACTION_FRAME (54) #ifdef __cplusplus extern "C" { #endif /* C++ */ uint32_t dot11f_unpack_mscs_request_action_frame(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, tDot11fmscs_request_action_frame * pFrm, bool append_ie); uint32_t dot11f_pack_mscs_request_action_frame(tpAniSirGlobal pCtx, tDot11fmscs_request_action_frame *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); uint32_t dot11f_get_packed_mscs_request_action_frameSize(tpAniSirGlobal pCtx, tDot11fmscs_request_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 (55) #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++ */ typedef struct sDot11ft2lm_neg_req{ tDot11fFfCategory Category; tDot11fFfAction Action; tDot11fFfDialogToken DialogToken; uint16_t num_t2lm_ie; tDot11fIEt2lm_ie t2lm_ie[2]; } tDot11ft2lm_neg_req; #define DOT11F_T2LM_NEG_REQ (56) #ifdef __cplusplus extern "C" { #endif /* C++ */ uint32_t dot11f_unpack_t2lm_neg_req(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, tDot11ft2lm_neg_req * pFrm, bool append_ie); uint32_t dot11f_pack_t2lm_neg_req(tpAniSirGlobal pCtx, tDot11ft2lm_neg_req *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); uint32_t dot11f_get_packed_t2lm_neg_reqSize(tpAniSirGlobal pCtx, tDot11ft2lm_neg_req *pFrm, uint32_t *pnNeeded); #ifdef __cplusplus } /* End extern "C". */ #endif /* C++ */ typedef struct sDot11ft2lm_neg_rsp{ tDot11fFfCategory Category; tDot11fFfAction Action; tDot11fFfDialogToken DialogToken; tDot11fFfStatus Status; } tDot11ft2lm_neg_rsp; #define DOT11F_T2LM_NEG_RSP (57) #ifdef __cplusplus extern "C" { #endif /* C++ */ uint32_t dot11f_unpack_t2lm_neg_rsp(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, tDot11ft2lm_neg_rsp * pFrm, bool append_ie); uint32_t dot11f_pack_t2lm_neg_rsp(tpAniSirGlobal pCtx, tDot11ft2lm_neg_rsp *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); uint32_t dot11f_get_packed_t2lm_neg_rspSize(tpAniSirGlobal pCtx, tDot11ft2lm_neg_rsp *pFrm, uint32_t *pnNeeded); #ifdef __cplusplus } /* End extern "C". */ #endif /* C++ */ typedef struct sDot11ft2lm_teardown{ tDot11fFfCategory Category; tDot11fFfAction Action; } tDot11ft2lm_teardown; #define DOT11F_T2LM_TEARDOWN (58) #ifdef __cplusplus extern "C" { #endif /* C++ */ uint32_t dot11f_unpack_t2lm_teardown(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, tDot11ft2lm_teardown * pFrm, bool append_ie); uint32_t dot11f_pack_t2lm_teardown(tpAniSirGlobal pCtx, tDot11ft2lm_teardown *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); uint32_t dot11f_get_packed_t2lm_teardownSize(tpAniSirGlobal pCtx, tDot11ft2lm_teardown *pFrm, uint32_t *pnNeeded); #ifdef __cplusplus } /* End extern "C". */ #endif /* C++ */ typedef struct sDot11fvendor_action_frame{ tDot11fFfCategory Category; tDot11fFfvendor_oui vendor_oui; tDot11fFfvendor_action_subtype vendor_action_subtype; } tDot11fvendor_action_frame; #define DOT11F_VENDOR_ACTION_FRAME (59) #ifdef __cplusplus extern "C" { #endif /* C++ */ uint32_t dot11f_unpack_vendor_action_frame(tpAniSirGlobal pCtx, uint8_t *pBuf, uint32_t nBuf, tDot11fvendor_action_frame * pFrm, bool append_ie); uint32_t dot11f_pack_vendor_action_frame(tpAniSirGlobal pCtx, tDot11fvendor_action_frame *pFrm, uint8_t *pBuf, uint32_t nBuf, uint32_t *pnConsumed); uint32_t dot11f_get_packed_vendor_action_frameSize(tpAniSirGlobal pCtx, tDot11fvendor_action_frame *pFrm, uint32_t *pnNeeded); #ifdef __cplusplus } /* End extern "C". */ #endif /* C++ */ #endif /* DOT11F_H */