1*5113495bSYour Name /* 2*5113495bSYour Name * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved. 3*5113495bSYour Name * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved. 4*5113495bSYour Name * 5*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for 6*5113495bSYour Name * any purpose with or without fee is hereby granted, provided that the 7*5113495bSYour Name * above copyright notice and this permission notice appear in all 8*5113495bSYour Name * copies. 9*5113495bSYour Name * 10*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11*5113495bSYour Name * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12*5113495bSYour Name * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13*5113495bSYour Name * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14*5113495bSYour Name * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15*5113495bSYour Name * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16*5113495bSYour Name * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17*5113495bSYour Name * PERFORMANCE OF THIS SOFTWARE. 18*5113495bSYour Name */ 19*5113495bSYour Name 20*5113495bSYour Name #ifndef DOT11F_H 21*5113495bSYour Name #define DOT11F_H 22*5113495bSYour Name /* 23*5113495bSYour Name * \file dot11f.h 24*5113495bSYour Name * 25*5113495bSYour Name * \brief Structures, function prototypes & definitions 26*5113495bSYour Name * for working with 802.11 Frames 27*5113495bSYour Name * 28*5113495bSYour Name * 29*5113495bSYour Name * This file was automatically generated by 'framesc' 30*5113495bSYour Name * Fri Nov 10 10:07:33 2023 from the following file(s): 31*5113495bSYour Name * 32*5113495bSYour Name * dot11f.frms 33*5113495bSYour Name * 34*5113495bSYour Name * PLEASE DON'T EDIT THIS FILE BY HAND! 35*5113495bSYour Name * 36*5113495bSYour Name * Instead, please update the input files & re-run 37*5113495bSYour Name * 'framesc' For more information on 'framesc' & the 38*5113495bSYour Name * frames language, run 'framesc --help'. 39*5113495bSYour Name * 40*5113495bSYour Name */ 41*5113495bSYour Name 42*5113495bSYour Name typedef uint32_t tDOT11F_U64[2]; 43*5113495bSYour Name 44*5113495bSYour Name #if defined (_MSC_VER) 45*5113495bSYour Name #pragma warning (disable:4214) /* nonstandard extension used */ 46*5113495bSYour Name #endif /* Microsoft C/C++ bit field types other than int */ 47*5113495bSYour Name 48*5113495bSYour Name #if !defined __must_check 49*5113495bSYour Name #define __must_check 50*5113495bSYour Name #endif 51*5113495bSYour Name 52*5113495bSYour Name #if !defined unlikely 53*5113495bSYour Name #define unlikely(x) (x) 54*5113495bSYour Name #endif 55*5113495bSYour Name 56*5113495bSYour Name /* 57*5113495bSYour Name * Frames Return Codes: 58*5113495bSYour Name * 59*5113495bSYour Name * Success is indicated by a return value of zero. Failure is indicated 60*5113495bSYour Name * by the presence of the high bit. Warnings encountered in the course 61*5113495bSYour Name * of a successful parse are indicated by various bits in the lower 31 62*5113495bSYour Name * being turned on. 63*5113495bSYour Name * 64*5113495bSYour Name * For instance, a return value of 0x0000000a would indicate that the 65*5113495bSYour Name * parse succeeded, but that a mandatory IE wasn't present, and some IE 66*5113495bSYour Name * was found to be corrupt. 67*5113495bSYour Name * 68*5113495bSYour Name * 69*5113495bSYour Name */ 70*5113495bSYour Name 71*5113495bSYour Name #define DOT11F_PARSE_SUCCESS (0x00000000) 72*5113495bSYour Name #define DOT11F_UNKNOWN_IES (0x00000001) 73*5113495bSYour Name #define DOT11F_MANDATORY_IE_MISSING (0x00000002) 74*5113495bSYour Name #define DOT11F_INCOMPLETE_IE (0x00000004) 75*5113495bSYour Name #define DOT11F_SKIPPED_BAD_IE (0x00000008) 76*5113495bSYour Name #define DOT11F_LAST_IE_TOO_LONG (0x00000010) 77*5113495bSYour Name #define DOT11F_DUPLICATE_IE (0x00000020) 78*5113495bSYour Name #define DOT11F_BAD_FIXED_VALUE (0x00000040) 79*5113495bSYour Name #define DOT11F_INCOMPLETE_TLV (0x00000080) 80*5113495bSYour Name #define DOT11F_INVALID_TLV_LENGTH (0x00000100) 81*5113495bSYour Name #define DOT11F_SKIPPED_BAD_TLV (0x00000200) 82*5113495bSYour Name #define DOT11F_UNKNOWN_TLVS (0x00000400) 83*5113495bSYour Name #define DOT11F_LAST_TLV_TOO_LONG (0x00000800) 84*5113495bSYour Name #define DOT11F_MANDATORY_TLV_MISSING (0x00001000) 85*5113495bSYour Name #define DOT11F_INTERNAL_ERROR (0x10000001) 86*5113495bSYour Name #define DOT11F_MISSING_FIXED_FIELD (0x10000002) 87*5113495bSYour Name #define DOT11F_BAD_INPUT_BUFFER (0x10000003) 88*5113495bSYour Name #define DOT11F_BAD_OUTPUT_BUFFER (0x10000004) 89*5113495bSYour Name #define DOT11F_BUFFER_OVERFLOW (0x10000005) 90*5113495bSYour Name #define DOT11F_FAILED(code) ((code) & 0x10000000) 91*5113495bSYour Name #define DOT11F_SUCCEEDED(code) ((code) == 0) 92*5113495bSYour Name #define DOT11F_WARNED(code) (!DOT11F_SUCCEEDED(code) && !DOT11F_FAILED(code)) 93*5113495bSYour Name 94*5113495bSYour Name /********************************************************************* 95*5113495bSYour Name * Fixed Fields * 96*5113495bSYour Name ********************************************************************/ 97*5113495bSYour Name 98*5113495bSYour Name typedef struct sDot11fFfAID { 99*5113495bSYour Name uint16_t associd; 100*5113495bSYour Name } tDot11fFfAID; 101*5113495bSYour Name 102*5113495bSYour Name #define DOT11F_FF_AID_LEN (2) 103*5113495bSYour Name 104*5113495bSYour Name void dot11f_unpack_ff_AID(tpAniSirGlobal, uint8_t *, tDot11fFfAID *); 105*5113495bSYour Name 106*5113495bSYour Name void dot11f_pack_ff_aid(tpAniSirGlobal, tDot11fFfAID *, uint8_t *); 107*5113495bSYour Name 108*5113495bSYour Name typedef struct sDot11fFfAction { 109*5113495bSYour Name uint8_t action; 110*5113495bSYour Name } tDot11fFfAction; 111*5113495bSYour Name 112*5113495bSYour Name #define DOT11F_FF_ACTION_LEN (1) 113*5113495bSYour Name 114*5113495bSYour Name void dot11f_unpack_ff_action(tpAniSirGlobal, uint8_t *, tDot11fFfAction *); 115*5113495bSYour Name 116*5113495bSYour Name void dot11f_pack_ff_action(tpAniSirGlobal, tDot11fFfAction *, uint8_t *); 117*5113495bSYour Name 118*5113495bSYour Name typedef struct sDot11fFfAuthAlgo { 119*5113495bSYour Name uint16_t algo; 120*5113495bSYour Name } tDot11fFfAuthAlgo; 121*5113495bSYour Name 122*5113495bSYour Name #define DOT11F_FF_AUTHALGO_LEN (2) 123*5113495bSYour Name 124*5113495bSYour Name void dot11f_unpack_ff_AuthAlgo(tpAniSirGlobal, uint8_t *, 125*5113495bSYour Name tDot11fFfAuthAlgo *); 126*5113495bSYour Name 127*5113495bSYour Name void dot11f_pack_ff_auth_algo(tpAniSirGlobal, tDot11fFfAuthAlgo *, uint8_t *); 128*5113495bSYour Name 129*5113495bSYour Name typedef struct sDot11fFfAuthSeqNo { 130*5113495bSYour Name uint16_t no; 131*5113495bSYour Name } tDot11fFfAuthSeqNo; 132*5113495bSYour Name 133*5113495bSYour Name #define DOT11F_FF_AUTHSEQNO_LEN (2) 134*5113495bSYour Name 135*5113495bSYour Name void dot11f_unpack_ff_AuthSeqNo(tpAniSirGlobal, uint8_t *, 136*5113495bSYour Name tDot11fFfAuthSeqNo *); 137*5113495bSYour Name 138*5113495bSYour Name void dot11f_pack_ff_auth_seq_no(tpAniSirGlobal, tDot11fFfAuthSeqNo *, 139*5113495bSYour Name uint8_t *); 140*5113495bSYour Name 141*5113495bSYour Name typedef struct sDot11fFfBeaconInterval { 142*5113495bSYour Name uint16_t interval; 143*5113495bSYour Name } tDot11fFfBeaconInterval; 144*5113495bSYour Name 145*5113495bSYour Name #define DOT11F_FF_BEACONINTERVAL_LEN (2) 146*5113495bSYour Name 147*5113495bSYour Name void dot11f_unpack_ff_BeaconInterval(tpAniSirGlobal, uint8_t *, 148*5113495bSYour Name tDot11fFfBeaconInterval *); 149*5113495bSYour Name 150*5113495bSYour Name void dot11f_pack_ff_beacon_interval(tpAniSirGlobal, tDot11fFfBeaconInterval *, 151*5113495bSYour Name uint8_t *); 152*5113495bSYour Name 153*5113495bSYour Name typedef struct sDot11fFfCapabilities { 154*5113495bSYour Name uint16_t ess:1; 155*5113495bSYour Name uint16_t ibss:1; 156*5113495bSYour Name uint16_t cfPollable:1; 157*5113495bSYour Name uint16_t cfPollReq:1; 158*5113495bSYour Name uint16_t privacy:1; 159*5113495bSYour Name uint16_t shortPreamble:1; 160*5113495bSYour Name uint16_t criticalUpdateFlag:1; 161*5113495bSYour Name uint16_t channelAgility:1; 162*5113495bSYour Name uint16_t spectrumMgt:1; 163*5113495bSYour Name uint16_t qos:1; 164*5113495bSYour Name uint16_t shortSlotTime:1; 165*5113495bSYour Name uint16_t apsd:1; 166*5113495bSYour Name uint16_t rrm:1; 167*5113495bSYour Name uint16_t dsssOfdm:1; 168*5113495bSYour Name uint16_t delayedBA:1; 169*5113495bSYour Name uint16_t immediateBA:1; 170*5113495bSYour Name } tDot11fFfCapabilities; 171*5113495bSYour Name 172*5113495bSYour Name #define DOT11F_FF_CAPABILITIES_LEN (2) 173*5113495bSYour Name 174*5113495bSYour Name void dot11f_unpack_ff_capabilities(tpAniSirGlobal, uint8_t *, 175*5113495bSYour Name tDot11fFfCapabilities *); 176*5113495bSYour Name 177*5113495bSYour Name void dot11f_pack_ff_capabilities(tpAniSirGlobal, tDot11fFfCapabilities *, 178*5113495bSYour Name uint8_t *); 179*5113495bSYour Name 180*5113495bSYour Name #define CAPABILITIES_ESS_OFFSET 0 181*5113495bSYour Name #define CAPABILITIES_ESS_WIDTH 1 182*5113495bSYour Name #define CAPABILITIES_IBSS_OFFSET 1 183*5113495bSYour Name #define CAPABILITIES_IBSS_WIDTH 1 184*5113495bSYour Name #define CAPABILITIES_CFPOLLABLE_OFFSET 2 185*5113495bSYour Name #define CAPABILITIES_CFPOLLABLE_WIDTH 1 186*5113495bSYour Name #define CAPABILITIES_CFPOLLREQ_OFFSET 3 187*5113495bSYour Name #define CAPABILITIES_CFPOLLREQ_WIDTH 1 188*5113495bSYour Name #define CAPABILITIES_PRIVACY_OFFSET 4 189*5113495bSYour Name #define CAPABILITIES_PRIVACY_WIDTH 1 190*5113495bSYour Name #define CAPABILITIES_SHORTPREAMBLE_OFFSET 5 191*5113495bSYour Name #define CAPABILITIES_SHORTPREAMBLE_WIDTH 1 192*5113495bSYour Name #define CAPABILITIES_CRITICALUPDATEFLAG_OFFSET 6 193*5113495bSYour Name #define CAPABILITIES_CRITICALUPDATEFLAG_WIDTH 1 194*5113495bSYour Name #define CAPABILITIES_CHANNELAGILITY_OFFSET 7 195*5113495bSYour Name #define CAPABILITIES_CHANNELAGILITY_WIDTH 1 196*5113495bSYour Name #define CAPABILITIES_SPECTRUMMGT_OFFSET 8 197*5113495bSYour Name #define CAPABILITIES_SPECTRUMMGT_WIDTH 1 198*5113495bSYour Name #define CAPABILITIES_QOS_OFFSET 9 199*5113495bSYour Name #define CAPABILITIES_QOS_WIDTH 1 200*5113495bSYour Name #define CAPABILITIES_SHORTSLOTTIME_OFFSET 10 201*5113495bSYour Name #define CAPABILITIES_SHORTSLOTTIME_WIDTH 1 202*5113495bSYour Name #define CAPABILITIES_APSD_OFFSET 11 203*5113495bSYour Name #define CAPABILITIES_APSD_WIDTH 1 204*5113495bSYour Name #define CAPABILITIES_RRM_OFFSET 12 205*5113495bSYour Name #define CAPABILITIES_RRM_WIDTH 1 206*5113495bSYour Name #define CAPABILITIES_DSSSOFDM_OFFSET 13 207*5113495bSYour Name #define CAPABILITIES_DSSSOFDM_WIDTH 1 208*5113495bSYour Name #define CAPABILITIES_DELAYEDBA_OFFSET 14 209*5113495bSYour Name #define CAPABILITIES_DELAYEDBA_WIDTH 1 210*5113495bSYour Name #define CAPABILITIES_IMMEDIATEBA_OFFSET 15 211*5113495bSYour Name #define CAPABILITIES_IMMEDIATEBA_WIDTH 1 212*5113495bSYour Name 213*5113495bSYour Name typedef struct sDot11fFfCategory { 214*5113495bSYour Name uint8_t category; 215*5113495bSYour Name } tDot11fFfCategory; 216*5113495bSYour Name 217*5113495bSYour Name #define DOT11F_FF_CATEGORY_LEN (1) 218*5113495bSYour Name 219*5113495bSYour Name void dot11f_unpack_ff_category(tpAniSirGlobal, uint8_t *, 220*5113495bSYour Name tDot11fFfCategory *); 221*5113495bSYour Name 222*5113495bSYour Name void dot11f_pack_ff_category(tpAniSirGlobal, tDot11fFfCategory *, uint8_t *); 223*5113495bSYour Name 224*5113495bSYour Name typedef struct sDot11fFfCurrentAPAddress { 225*5113495bSYour Name uint8_t mac[6]; 226*5113495bSYour Name } tDot11fFfCurrentAPAddress; 227*5113495bSYour Name 228*5113495bSYour Name #define DOT11F_FF_CURRENTAPADDRESS_LEN (6) 229*5113495bSYour Name 230*5113495bSYour Name void dot11f_unpack_ff_current_ap_address(tpAniSirGlobal, uint8_t *, 231*5113495bSYour Name tDot11fFfCurrentAPAddress *); 232*5113495bSYour Name 233*5113495bSYour Name void dot11f_pack_ff_current_ap_address(tpAniSirGlobal, 234*5113495bSYour Name tDot11fFfCurrentAPAddress *, 235*5113495bSYour Name uint8_t *); 236*5113495bSYour Name 237*5113495bSYour Name 238*5113495bSYour Name typedef struct sDot11fFfDialogToken { 239*5113495bSYour Name uint8_t token; 240*5113495bSYour Name } tDot11fFfDialogToken; 241*5113495bSYour Name 242*5113495bSYour Name #define DOT11F_FF_DIALOGTOKEN_LEN (1) 243*5113495bSYour Name 244*5113495bSYour Name void dot11f_unpack_ff_dialog_token(tpAniSirGlobal, uint8_t *, 245*5113495bSYour Name tDot11fFfDialogToken *); 246*5113495bSYour Name 247*5113495bSYour Name void dot11f_pack_ff_dialog_token(tpAniSirGlobal, tDot11fFfDialogToken *, 248*5113495bSYour Name uint8_t *); 249*5113495bSYour Name 250*5113495bSYour Name typedef struct sDot11fFfLinkMargin { 251*5113495bSYour Name uint8_t linkMargin; 252*5113495bSYour Name } tDot11fFfLinkMargin; 253*5113495bSYour Name 254*5113495bSYour Name #define DOT11F_FF_LINKMARGIN_LEN (1) 255*5113495bSYour Name 256*5113495bSYour Name void dot11f_unpack_ff_link_margin(tpAniSirGlobal, uint8_t *, 257*5113495bSYour Name tDot11fFfLinkMargin *); 258*5113495bSYour Name 259*5113495bSYour Name void dot11f_pack_ff_link_margin(tpAniSirGlobal, tDot11fFfLinkMargin *, 260*5113495bSYour Name uint8_t *); 261*5113495bSYour Name 262*5113495bSYour Name typedef struct sDot11fFfListenInterval { 263*5113495bSYour Name uint16_t interval; 264*5113495bSYour Name } tDot11fFfListenInterval; 265*5113495bSYour Name 266*5113495bSYour Name #define DOT11F_FF_LISTENINTERVAL_LEN (2) 267*5113495bSYour Name 268*5113495bSYour Name void dot11f_unpack_ff_ListenInterval(tpAniSirGlobal, uint8_t *, 269*5113495bSYour Name tDot11fFfListenInterval *); 270*5113495bSYour Name 271*5113495bSYour Name void dot11f_pack_ff_listen_interval(tpAniSirGlobal, tDot11fFfListenInterval *, 272*5113495bSYour Name uint8_t *); 273*5113495bSYour Name 274*5113495bSYour Name typedef struct sDot11fFfMaxTxPower { 275*5113495bSYour Name uint8_t maxTxPower; 276*5113495bSYour Name } tDot11fFfMaxTxPower; 277*5113495bSYour Name 278*5113495bSYour Name #define DOT11F_FF_MAXTXPOWER_LEN (1) 279*5113495bSYour Name 280*5113495bSYour Name void dot11f_unpack_ff_max_tx_power(tpAniSirGlobal, uint8_t *, 281*5113495bSYour Name tDot11fFfMaxTxPower *); 282*5113495bSYour Name 283*5113495bSYour Name void dot11f_pack_ff_max_tx_power(tpAniSirGlobal, tDot11fFfMaxTxPower *, 284*5113495bSYour Name uint8_t *); 285*5113495bSYour Name 286*5113495bSYour Name typedef struct sDot11fFfNumOfRepetitions { 287*5113495bSYour Name uint16_t repetitions; 288*5113495bSYour Name } tDot11fFfNumOfRepetitions; 289*5113495bSYour Name 290*5113495bSYour Name #define DOT11F_FF_NUMOFREPETITIONS_LEN (2) 291*5113495bSYour Name 292*5113495bSYour Name void dot11f_unpack_ff_num_of_repetitions(tpAniSirGlobal, uint8_t *, 293*5113495bSYour Name tDot11fFfNumOfRepetitions *); 294*5113495bSYour Name 295*5113495bSYour Name void dot11f_pack_ff_num_of_repetitions(tpAniSirGlobal, 296*5113495bSYour Name tDot11fFfNumOfRepetitions *, 297*5113495bSYour Name uint8_t *); 298*5113495bSYour Name 299*5113495bSYour Name 300*5113495bSYour Name typedef struct sDot11fFfOperatingMode { 301*5113495bSYour Name uint8_t chanWidth:2; 302*5113495bSYour Name uint8_t reserved:2; 303*5113495bSYour Name uint8_t rxNSS:3; 304*5113495bSYour Name uint8_t rxNSSType:1; 305*5113495bSYour Name } tDot11fFfOperatingMode; 306*5113495bSYour Name 307*5113495bSYour Name #define DOT11F_FF_OPERATINGMODE_LEN (1) 308*5113495bSYour Name 309*5113495bSYour Name void dot11f_unpack_ff_operating_mode(tpAniSirGlobal, uint8_t *, 310*5113495bSYour Name tDot11fFfOperatingMode *); 311*5113495bSYour Name 312*5113495bSYour Name void dot11f_pack_ff_operating_mode(tpAniSirGlobal, tDot11fFfOperatingMode *, 313*5113495bSYour Name uint8_t *); 314*5113495bSYour Name 315*5113495bSYour Name #define OPERATINGMODE_CHANWIDTH_OFFSET 0 316*5113495bSYour Name #define OPERATINGMODE_CHANWIDTH_WIDTH 2 317*5113495bSYour Name #define OPERATINGMODE_RESERVED_OFFSET 2 318*5113495bSYour Name #define OPERATINGMODE_RESERVED_WIDTH 2 319*5113495bSYour Name #define OPERATINGMODE_RXNSS_OFFSET 4 320*5113495bSYour Name #define OPERATINGMODE_RXNSS_WIDTH 3 321*5113495bSYour Name #define OPERATINGMODE_RXNSSTYPE_OFFSET 7 322*5113495bSYour Name #define OPERATINGMODE_RXNSSTYPE_WIDTH 1 323*5113495bSYour Name 324*5113495bSYour Name typedef struct sDot11fFfRCPI { 325*5113495bSYour Name uint8_t rcpi; 326*5113495bSYour Name } tDot11fFfRCPI; 327*5113495bSYour Name 328*5113495bSYour Name #define DOT11F_FF_RCPI_LEN (1) 329*5113495bSYour Name 330*5113495bSYour Name void dot11f_unpack_ff_rcpi(tpAniSirGlobal, uint8_t *, tDot11fFfRCPI *); 331*5113495bSYour Name 332*5113495bSYour Name void dot11f_pack_ff_rcpi(tpAniSirGlobal, tDot11fFfRCPI *, uint8_t *); 333*5113495bSYour Name 334*5113495bSYour Name typedef struct sDot11fFfRSNI { 335*5113495bSYour Name uint8_t rsni; 336*5113495bSYour Name } tDot11fFfRSNI; 337*5113495bSYour Name 338*5113495bSYour Name #define DOT11F_FF_RSNI_LEN (1) 339*5113495bSYour Name 340*5113495bSYour Name void dot11f_unpack_ff_rsni(tpAniSirGlobal, uint8_t *, tDot11fFfRSNI *); 341*5113495bSYour Name 342*5113495bSYour Name void dot11f_pack_ff_rsni(tpAniSirGlobal, tDot11fFfRSNI *, uint8_t *); 343*5113495bSYour Name 344*5113495bSYour Name typedef struct sDot11fFfReason { 345*5113495bSYour Name uint16_t code; 346*5113495bSYour Name } tDot11fFfReason; 347*5113495bSYour Name 348*5113495bSYour Name #define DOT11F_FF_REASON_LEN (2) 349*5113495bSYour Name 350*5113495bSYour Name void dot11f_unpack_ff_Reason(tpAniSirGlobal, uint8_t *, tDot11fFfReason *); 351*5113495bSYour Name 352*5113495bSYour Name void dot11f_pack_ff_reason(tpAniSirGlobal, tDot11fFfReason *, uint8_t *); 353*5113495bSYour Name 354*5113495bSYour Name typedef struct sDot11fFfRxAntennaId { 355*5113495bSYour Name uint8_t antennaId; 356*5113495bSYour Name } tDot11fFfRxAntennaId; 357*5113495bSYour Name 358*5113495bSYour Name #define DOT11F_FF_RXANTENNAID_LEN (1) 359*5113495bSYour Name 360*5113495bSYour Name void dot11f_unpack_ff_rx_antenna_id(tpAniSirGlobal, uint8_t *, 361*5113495bSYour Name tDot11fFfRxAntennaId *); 362*5113495bSYour Name 363*5113495bSYour Name void dot11f_pack_ff_rx_antenna_id(tpAniSirGlobal, tDot11fFfRxAntennaId *, 364*5113495bSYour Name uint8_t *); 365*5113495bSYour Name 366*5113495bSYour Name typedef struct sDot11fFfSMPowerModeSet { 367*5113495bSYour Name uint8_t PowerSave_En:1; 368*5113495bSYour Name uint8_t Mode:1; 369*5113495bSYour Name uint8_t reserved:6; 370*5113495bSYour Name } tDot11fFfSMPowerModeSet; 371*5113495bSYour Name 372*5113495bSYour Name #define DOT11F_FF_SMPOWERMODESET_LEN (1) 373*5113495bSYour Name 374*5113495bSYour Name void dot11f_unpack_ff_sm_power_mode_set(tpAniSirGlobal, uint8_t *, 375*5113495bSYour Name tDot11fFfSMPowerModeSet *); 376*5113495bSYour Name 377*5113495bSYour Name void dot11f_pack_ff_sm_power_mode_set(tpAniSirGlobal, tDot11fFfSMPowerModeSet *, 378*5113495bSYour Name uint8_t *); 379*5113495bSYour Name 380*5113495bSYour Name #define SMPOWERMODESET_POWERSAVE_EN_OFFSET 0 381*5113495bSYour Name #define SMPOWERMODESET_POWERSAVE_EN_WIDTH 1 382*5113495bSYour Name #define SMPOWERMODESET_MODE_OFFSET 1 383*5113495bSYour Name #define SMPOWERMODESET_MODE_WIDTH 1 384*5113495bSYour Name #define SMPOWERMODESET_RESERVED_OFFSET 2 385*5113495bSYour Name #define SMPOWERMODESET_RESERVED_WIDTH 6 386*5113495bSYour Name 387*5113495bSYour Name typedef struct sDot11fFfStatus { 388*5113495bSYour Name uint16_t status; 389*5113495bSYour Name } tDot11fFfStatus; 390*5113495bSYour Name 391*5113495bSYour Name #define DOT11F_FF_STATUS_LEN (2) 392*5113495bSYour Name 393*5113495bSYour Name void dot11f_unpack_ff_Status(tpAniSirGlobal, uint8_t *, tDot11fFfStatus *); 394*5113495bSYour Name 395*5113495bSYour Name void dot11f_pack_ff_status(tpAniSirGlobal, tDot11fFfStatus *, uint8_t *); 396*5113495bSYour Name 397*5113495bSYour Name typedef struct sDot11fFfStatusCode { 398*5113495bSYour Name uint8_t statusCode; 399*5113495bSYour Name } tDot11fFfStatusCode; 400*5113495bSYour Name 401*5113495bSYour Name #define DOT11F_FF_STATUSCODE_LEN (1) 402*5113495bSYour Name 403*5113495bSYour Name void dot11f_unpack_ff_status_code(tpAniSirGlobal, uint8_t *, 404*5113495bSYour Name tDot11fFfStatusCode *); 405*5113495bSYour Name 406*5113495bSYour Name void dot11f_pack_ff_status_code(tpAniSirGlobal, tDot11fFfStatusCode *, 407*5113495bSYour Name uint8_t *); 408*5113495bSYour Name 409*5113495bSYour Name typedef struct sDot11fFfTPCEleID { 410*5113495bSYour Name uint8_t TPCId; 411*5113495bSYour Name } tDot11fFfTPCEleID; 412*5113495bSYour Name 413*5113495bSYour Name #define DOT11F_FF_TPCELEID_LEN (1) 414*5113495bSYour Name 415*5113495bSYour Name void dot11f_unpack_ff_tpc_ele_id(tpAniSirGlobal, uint8_t *, 416*5113495bSYour Name tDot11fFfTPCEleID *); 417*5113495bSYour Name 418*5113495bSYour Name void dot11f_pack_ff_tpc_ele_id(tpAniSirGlobal, tDot11fFfTPCEleID *, uint8_t *); 419*5113495bSYour Name 420*5113495bSYour Name typedef struct sDot11fFfTPCEleLen { 421*5113495bSYour Name uint8_t TPCLen; 422*5113495bSYour Name } tDot11fFfTPCEleLen; 423*5113495bSYour Name 424*5113495bSYour Name #define DOT11F_FF_TPCELELEN_LEN (1) 425*5113495bSYour Name 426*5113495bSYour Name void dot11f_unpack_ff_tpc_ele_len(tpAniSirGlobal, uint8_t *, 427*5113495bSYour Name tDot11fFfTPCEleLen *); 428*5113495bSYour Name 429*5113495bSYour Name void dot11f_pack_ff_tpc_ele_len(tpAniSirGlobal, tDot11fFfTPCEleLen *, 430*5113495bSYour Name uint8_t *); 431*5113495bSYour Name 432*5113495bSYour Name typedef struct sDot11fFfTSInfo { 433*5113495bSYour Name uint32_t traffic_type:1; 434*5113495bSYour Name uint32_t tsid:4; 435*5113495bSYour Name uint32_t direction:2; 436*5113495bSYour Name uint32_t access_policy:2; 437*5113495bSYour Name uint32_t aggregation:1; 438*5113495bSYour Name uint32_t psb:1; 439*5113495bSYour Name uint32_t user_priority:3; 440*5113495bSYour Name uint32_t tsinfo_ack_pol:2; 441*5113495bSYour Name uint32_t schedule:1; 442*5113495bSYour Name uint32_t unused:15; 443*5113495bSYour Name } tDot11fFfTSInfo; 444*5113495bSYour Name 445*5113495bSYour Name #define DOT11F_FF_TSINFO_LEN (3) 446*5113495bSYour Name 447*5113495bSYour Name void dot11f_unpack_ff_ts_info(tpAniSirGlobal, uint8_t *, tDot11fFfTSInfo *); 448*5113495bSYour Name 449*5113495bSYour Name void dot11f_pack_ff_ts_info(tpAniSirGlobal, tDot11fFfTSInfo *, uint8_t *); 450*5113495bSYour Name 451*5113495bSYour Name #define TSINFO_TRAFFIC_TYPE_OFFSET 0 452*5113495bSYour Name #define TSINFO_TRAFFIC_TYPE_WIDTH 1 453*5113495bSYour Name #define TSINFO_TSID_OFFSET 1 454*5113495bSYour Name #define TSINFO_TSID_WIDTH 4 455*5113495bSYour Name #define TSINFO_DIRECTION_OFFSET 5 456*5113495bSYour Name #define TSINFO_DIRECTION_WIDTH 2 457*5113495bSYour Name #define TSINFO_ACCESS_POLICY_OFFSET 7 458*5113495bSYour Name #define TSINFO_ACCESS_POLICY_WIDTH 2 459*5113495bSYour Name #define TSINFO_AGGREGATION_OFFSET 9 460*5113495bSYour Name #define TSINFO_AGGREGATION_WIDTH 1 461*5113495bSYour Name #define TSINFO_PSB_OFFSET 10 462*5113495bSYour Name #define TSINFO_PSB_WIDTH 1 463*5113495bSYour Name #define TSINFO_USER_PRIORITY_OFFSET 11 464*5113495bSYour Name #define TSINFO_USER_PRIORITY_WIDTH 3 465*5113495bSYour Name #define TSINFO_TSINFO_ACK_POL_OFFSET 14 466*5113495bSYour Name #define TSINFO_TSINFO_ACK_POL_WIDTH 2 467*5113495bSYour Name #define TSINFO_SCHEDULE_OFFSET 16 468*5113495bSYour Name #define TSINFO_SCHEDULE_WIDTH 1 469*5113495bSYour Name #define TSINFO_UNUSED_OFFSET 17 470*5113495bSYour Name #define TSINFO_UNUSED_WIDTH 15 471*5113495bSYour Name 472*5113495bSYour Name typedef struct sDot11fFfTimeStamp { 473*5113495bSYour Name tDOT11F_U64 timestamp; 474*5113495bSYour Name } tDot11fFfTimeStamp; 475*5113495bSYour Name 476*5113495bSYour Name #define DOT11F_FF_TIMESTAMP_LEN (8) 477*5113495bSYour Name 478*5113495bSYour Name void dot11f_unpack_ff_time_stamp(tpAniSirGlobal, uint8_t *, 479*5113495bSYour Name tDot11fFfTimeStamp *); 480*5113495bSYour Name 481*5113495bSYour Name void dot11f_pack_ff_time_stamp(tpAniSirGlobal, tDot11fFfTimeStamp *, 482*5113495bSYour Name uint8_t *); 483*5113495bSYour Name 484*5113495bSYour Name typedef struct sDot11fFfTransactionId { 485*5113495bSYour Name uint8_t transId[2]; 486*5113495bSYour Name } tDot11fFfTransactionId; 487*5113495bSYour Name 488*5113495bSYour Name #define DOT11F_FF_TRANSACTIONID_LEN (2) 489*5113495bSYour Name 490*5113495bSYour Name void dot11f_unpack_ff_transaction_id(tpAniSirGlobal, uint8_t *, 491*5113495bSYour Name tDot11fFfTransactionId *); 492*5113495bSYour Name 493*5113495bSYour Name void dot11f_pack_ff_transaction_id(tpAniSirGlobal, tDot11fFfTransactionId *, 494*5113495bSYour Name uint8_t *); 495*5113495bSYour Name 496*5113495bSYour Name typedef struct sDot11fFfTxAntennaId { 497*5113495bSYour Name uint8_t antennaId; 498*5113495bSYour Name } tDot11fFfTxAntennaId; 499*5113495bSYour Name 500*5113495bSYour Name #define DOT11F_FF_TXANTENNAID_LEN (1) 501*5113495bSYour Name 502*5113495bSYour Name void dot11f_unpack_ff_tx_antenna_id(tpAniSirGlobal, uint8_t *, 503*5113495bSYour Name tDot11fFfTxAntennaId *); 504*5113495bSYour Name 505*5113495bSYour Name void dot11f_pack_ff_tx_antenna_id(tpAniSirGlobal, tDot11fFfTxAntennaId *, 506*5113495bSYour Name uint8_t *); 507*5113495bSYour Name 508*5113495bSYour Name typedef struct sDot11fFfTxPower { 509*5113495bSYour Name uint8_t txPower; 510*5113495bSYour Name } tDot11fFfTxPower; 511*5113495bSYour Name 512*5113495bSYour Name #define DOT11F_FF_TXPOWER_LEN (1) 513*5113495bSYour Name 514*5113495bSYour Name void dot11f_unpack_ff_tx_power(tpAniSirGlobal, uint8_t *, 515*5113495bSYour Name tDot11fFfTxPower *); 516*5113495bSYour Name 517*5113495bSYour Name void dot11f_pack_ff_tx_power(tpAniSirGlobal, tDot11fFfTxPower *, uint8_t *); 518*5113495bSYour Name 519*5113495bSYour Name typedef struct sDot11fFfVhtMembershipStatusArray { 520*5113495bSYour Name uint8_t membershipStatusArray[8]; 521*5113495bSYour Name } tDot11fFfVhtMembershipStatusArray; 522*5113495bSYour Name 523*5113495bSYour Name #define DOT11F_FF_VHTMEMBERSHIPSTATUSARRAY_LEN (8) 524*5113495bSYour Name 525*5113495bSYour Name void dot11f_unpack_ff_vht_membership_status_array(tpAniSirGlobal, uint8_t *, 526*5113495bSYour Name tDot11fFfVhtMembershipStatusArray *); 527*5113495bSYour Name 528*5113495bSYour Name void dot11f_pack_ff_vht_membership_status_array(tpAniSirGlobal, 529*5113495bSYour Name tDot11fFfVhtMembershipStatusArray *, 530*5113495bSYour Name uint8_t *); 531*5113495bSYour Name 532*5113495bSYour Name 533*5113495bSYour Name typedef struct sDot11fFfVhtUserPositionArray { 534*5113495bSYour Name uint8_t userPositionArray[16]; 535*5113495bSYour Name } tDot11fFfVhtUserPositionArray; 536*5113495bSYour Name 537*5113495bSYour Name #define DOT11F_FF_VHTUSERPOSITIONARRAY_LEN (16) 538*5113495bSYour Name 539*5113495bSYour Name void dot11f_unpack_ff_vht_user_position_array(tpAniSirGlobal, uint8_t *, 540*5113495bSYour Name tDot11fFfVhtUserPositionArray *); 541*5113495bSYour Name 542*5113495bSYour Name void dot11f_pack_ff_vht_user_position_array(tpAniSirGlobal, 543*5113495bSYour Name tDot11fFfVhtUserPositionArray *, 544*5113495bSYour Name uint8_t *); 545*5113495bSYour Name 546*5113495bSYour Name 547*5113495bSYour Name typedef struct sDot11fFfaddba_param_set { 548*5113495bSYour Name uint16_t amsdu_supp:1; 549*5113495bSYour Name uint16_t policy:1; 550*5113495bSYour Name uint16_t tid:4; 551*5113495bSYour Name uint16_t buff_size:10; 552*5113495bSYour Name } tDot11fFfaddba_param_set; 553*5113495bSYour Name 554*5113495bSYour Name #define DOT11F_FF_ADDBA_PARAM_SET_LEN (2) 555*5113495bSYour Name 556*5113495bSYour Name void dot11f_unpack_ff_addba_param_set(tpAniSirGlobal, uint8_t *, 557*5113495bSYour Name tDot11fFfaddba_param_set *); 558*5113495bSYour Name 559*5113495bSYour Name void dot11f_pack_ff_addba_param_set(tpAniSirGlobal, tDot11fFfaddba_param_set *, 560*5113495bSYour Name uint8_t *); 561*5113495bSYour Name 562*5113495bSYour Name #define ADDBA_PARAM_SET_AMSDU_SUPP_OFFSET 0 563*5113495bSYour Name #define ADDBA_PARAM_SET_AMSDU_SUPP_WIDTH 1 564*5113495bSYour Name #define ADDBA_PARAM_SET_POLICY_OFFSET 1 565*5113495bSYour Name #define ADDBA_PARAM_SET_POLICY_WIDTH 1 566*5113495bSYour Name #define ADDBA_PARAM_SET_TID_OFFSET 2 567*5113495bSYour Name #define ADDBA_PARAM_SET_TID_WIDTH 4 568*5113495bSYour Name #define ADDBA_PARAM_SET_BUFF_SIZE_OFFSET 6 569*5113495bSYour Name #define ADDBA_PARAM_SET_BUFF_SIZE_WIDTH 10 570*5113495bSYour Name 571*5113495bSYour Name typedef struct sDot11fFfba_start_seq_ctrl { 572*5113495bSYour Name uint16_t frag_number:4; 573*5113495bSYour Name uint16_t ssn:12; 574*5113495bSYour Name } tDot11fFfba_start_seq_ctrl; 575*5113495bSYour Name 576*5113495bSYour Name #define DOT11F_FF_BA_START_SEQ_CTRL_LEN (2) 577*5113495bSYour Name 578*5113495bSYour Name void dot11f_unpack_ff_ba_start_seq_ctrl(tpAniSirGlobal, uint8_t *, 579*5113495bSYour Name tDot11fFfba_start_seq_ctrl *); 580*5113495bSYour Name 581*5113495bSYour Name void dot11f_pack_ff_ba_start_seq_ctrl(tpAniSirGlobal, 582*5113495bSYour Name tDot11fFfba_start_seq_ctrl *, 583*5113495bSYour Name uint8_t *); 584*5113495bSYour Name 585*5113495bSYour Name 586*5113495bSYour Name #define BA_START_SEQ_CTRL_FRAG_NUMBER_OFFSET 0 587*5113495bSYour Name #define BA_START_SEQ_CTRL_FRAG_NUMBER_WIDTH 4 588*5113495bSYour Name #define BA_START_SEQ_CTRL_SSN_OFFSET 4 589*5113495bSYour Name #define BA_START_SEQ_CTRL_SSN_WIDTH 12 590*5113495bSYour Name 591*5113495bSYour Name typedef struct sDot11fFfba_timeout { 592*5113495bSYour Name uint16_t timeout; 593*5113495bSYour Name } tDot11fFfba_timeout; 594*5113495bSYour Name 595*5113495bSYour Name #define DOT11F_FF_BA_TIMEOUT_LEN (2) 596*5113495bSYour Name 597*5113495bSYour Name void dot11f_unpack_ff_ba_timeout(tpAniSirGlobal, uint8_t *, 598*5113495bSYour Name tDot11fFfba_timeout *); 599*5113495bSYour Name 600*5113495bSYour Name void dot11f_pack_ff_ba_timeout(tpAniSirGlobal, tDot11fFfba_timeout *, 601*5113495bSYour Name uint8_t *); 602*5113495bSYour Name 603*5113495bSYour Name typedef struct sDot11fFfdelba_param_set { 604*5113495bSYour Name uint16_t reserved:11; 605*5113495bSYour Name uint16_t initiator:1; 606*5113495bSYour Name uint16_t tid:4; 607*5113495bSYour Name } tDot11fFfdelba_param_set; 608*5113495bSYour Name 609*5113495bSYour Name #define DOT11F_FF_DELBA_PARAM_SET_LEN (2) 610*5113495bSYour Name 611*5113495bSYour Name void dot11f_unpack_ff_delba_param_set(tpAniSirGlobal, uint8_t *, 612*5113495bSYour Name tDot11fFfdelba_param_set *); 613*5113495bSYour Name 614*5113495bSYour Name void dot11f_pack_ff_delba_param_set(tpAniSirGlobal, tDot11fFfdelba_param_set *, 615*5113495bSYour Name uint8_t *); 616*5113495bSYour Name 617*5113495bSYour Name #define DELBA_PARAM_SET_RESERVED_OFFSET 0 618*5113495bSYour Name #define DELBA_PARAM_SET_RESERVED_WIDTH 11 619*5113495bSYour Name #define DELBA_PARAM_SET_INITIATOR_OFFSET 11 620*5113495bSYour Name #define DELBA_PARAM_SET_INITIATOR_WIDTH 1 621*5113495bSYour Name #define DELBA_PARAM_SET_TID_OFFSET 12 622*5113495bSYour Name #define DELBA_PARAM_SET_TID_WIDTH 4 623*5113495bSYour Name 624*5113495bSYour Name typedef struct sDot11fFfext_chan_switch_ann_action { 625*5113495bSYour Name uint32_t switch_mode:8; 626*5113495bSYour Name uint32_t op_class:8; 627*5113495bSYour Name uint32_t new_channel:8; 628*5113495bSYour Name uint32_t switch_count:8; 629*5113495bSYour Name } tDot11fFfext_chan_switch_ann_action; 630*5113495bSYour Name 631*5113495bSYour Name #define DOT11F_FF_EXT_CHAN_SWITCH_ANN_ACTION_LEN (4) 632*5113495bSYour Name 633*5113495bSYour Name void dot11f_unpack_ff_ext_chan_switch_ann_action(tpAniSirGlobal, uint8_t *, 634*5113495bSYour Name tDot11fFfext_chan_switch_ann_action *); 635*5113495bSYour Name 636*5113495bSYour Name void dot11f_pack_ff_ext_chan_switch_ann_action(tpAniSirGlobal, 637*5113495bSYour Name tDot11fFfext_chan_switch_ann_action *, 638*5113495bSYour Name uint8_t *); 639*5113495bSYour Name 640*5113495bSYour Name 641*5113495bSYour Name #define EXT_CHAN_SWITCH_ANN_ACTION_SWITCH_MODE_OFFSET 0 642*5113495bSYour Name #define EXT_CHAN_SWITCH_ANN_ACTION_SWITCH_MODE_WIDTH 8 643*5113495bSYour Name #define EXT_CHAN_SWITCH_ANN_ACTION_OP_CLASS_OFFSET 8 644*5113495bSYour Name #define EXT_CHAN_SWITCH_ANN_ACTION_OP_CLASS_WIDTH 8 645*5113495bSYour Name #define EXT_CHAN_SWITCH_ANN_ACTION_NEW_CHANNEL_OFFSET 16 646*5113495bSYour Name #define EXT_CHAN_SWITCH_ANN_ACTION_NEW_CHANNEL_WIDTH 8 647*5113495bSYour Name #define EXT_CHAN_SWITCH_ANN_ACTION_SWITCH_COUNT_OFFSET 24 648*5113495bSYour Name #define EXT_CHAN_SWITCH_ANN_ACTION_SWITCH_COUNT_WIDTH 8 649*5113495bSYour Name 650*5113495bSYour Name typedef struct sDot11fFfp2p_action_oui { 651*5113495bSYour Name uint8_t oui_data[4]; 652*5113495bSYour Name } tDot11fFfp2p_action_oui; 653*5113495bSYour Name 654*5113495bSYour Name #define DOT11F_FF_P2P_ACTION_OUI_LEN (4) 655*5113495bSYour Name 656*5113495bSYour Name void dot11f_unpack_ff_p2p_action_oui(tpAniSirGlobal, uint8_t *, 657*5113495bSYour Name tDot11fFfp2p_action_oui *); 658*5113495bSYour Name 659*5113495bSYour Name void dot11f_pack_ff_p2p_action_oui(tpAniSirGlobal, tDot11fFfp2p_action_oui *, 660*5113495bSYour Name uint8_t *); 661*5113495bSYour Name 662*5113495bSYour Name typedef struct sDot11fFfp2p_action_subtype { 663*5113495bSYour Name uint8_t subtype; 664*5113495bSYour Name } tDot11fFfp2p_action_subtype; 665*5113495bSYour Name 666*5113495bSYour Name #define DOT11F_FF_P2P_ACTION_SUBTYPE_LEN (1) 667*5113495bSYour Name 668*5113495bSYour Name void dot11f_unpack_ff_p2p_action_subtype(tpAniSirGlobal, uint8_t *, 669*5113495bSYour Name tDot11fFfp2p_action_subtype *); 670*5113495bSYour Name 671*5113495bSYour Name void dot11f_pack_ff_p2p_action_subtype(tpAniSirGlobal, 672*5113495bSYour Name tDot11fFfp2p_action_subtype *, 673*5113495bSYour Name uint8_t *); 674*5113495bSYour Name 675*5113495bSYour Name 676*5113495bSYour Name typedef struct sDot11fFfvendor_action_subtype { 677*5113495bSYour Name uint8_t subtype; 678*5113495bSYour Name } tDot11fFfvendor_action_subtype; 679*5113495bSYour Name 680*5113495bSYour Name #define DOT11F_FF_VENDOR_ACTION_SUBTYPE_LEN (1) 681*5113495bSYour Name 682*5113495bSYour Name void dot11f_unpack_ff_vendor_action_subtype(tpAniSirGlobal, uint8_t *, 683*5113495bSYour Name tDot11fFfvendor_action_subtype *); 684*5113495bSYour Name 685*5113495bSYour Name void dot11f_pack_ff_vendor_action_subtype(tpAniSirGlobal, 686*5113495bSYour Name tDot11fFfvendor_action_subtype *, 687*5113495bSYour Name uint8_t *); 688*5113495bSYour Name 689*5113495bSYour Name 690*5113495bSYour Name typedef struct sDot11fFfvendor_oui { 691*5113495bSYour Name uint8_t oui_data[3]; 692*5113495bSYour Name } tDot11fFfvendor_oui; 693*5113495bSYour Name 694*5113495bSYour Name #define DOT11F_FF_VENDOR_OUI_LEN (3) 695*5113495bSYour Name 696*5113495bSYour Name void dot11f_unpack_ff_vendor_oui(tpAniSirGlobal, uint8_t *, 697*5113495bSYour Name tDot11fFfvendor_oui *); 698*5113495bSYour Name 699*5113495bSYour Name void dot11f_pack_ff_vendor_oui(tpAniSirGlobal, tDot11fFfvendor_oui *, 700*5113495bSYour Name uint8_t *); 701*5113495bSYour Name 702*5113495bSYour Name /********************************************************************* 703*5113495bSYour Name * TLVs * 704*5113495bSYour Name ********************************************************************/ 705*5113495bSYour Name 706*5113495bSYour Name 707*5113495bSYour Name /* ID 1 (0x0001) */ 708*5113495bSYour Name typedef struct sDot11fTLVAuthorizedMACs { 709*5113495bSYour Name uint8_t present; 710*5113495bSYour Name uint8_t mac[6]; 711*5113495bSYour Name } tDot11fTLVAuthorizedMACs; 712*5113495bSYour Name 713*5113495bSYour Name #define DOT11F_TLV_AUTHORIZEDMACS (1) 714*5113495bSYour Name 715*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 716*5113495bSYour Name #define DOT11F_TLV_AUTHORIZEDMACS_MIN_LEN (6) 717*5113495bSYour Name 718*5113495bSYour Name #define DOT11F_TLV_AUTHORIZEDMACS_MAX_LEN (6) 719*5113495bSYour Name 720*5113495bSYour Name #ifdef __cplusplus 721*5113495bSYour Name extern "C" { 722*5113495bSYour Name #endif /* C++ */ 723*5113495bSYour Name uint32_t dot11f_unpack_tlv_authorized_ma_cs( 724*5113495bSYour Name tpAniSirGlobal, 725*5113495bSYour Name uint8_t *, 726*5113495bSYour Name uint16_t, 727*5113495bSYour Name tDot11fTLVAuthorizedMACs*); 728*5113495bSYour Name 729*5113495bSYour Name uint32_t dot11f_pack_tlv_authorized_ma_cs( 730*5113495bSYour Name tpAniSirGlobal, 731*5113495bSYour Name tDot11fTLVAuthorizedMACs *, 732*5113495bSYour Name uint8_t *, 733*5113495bSYour Name uint32_t, 734*5113495bSYour Name uint32_t*); 735*5113495bSYour Name 736*5113495bSYour Name uint32_t dot11f_get_packed_tlv_AuthorizedMACs( 737*5113495bSYour Name tpAniSirGlobal, 738*5113495bSYour Name tDot11fTLVAuthorizedMACs *, 739*5113495bSYour Name uint32_t*); 740*5113495bSYour Name 741*5113495bSYour Name #ifdef __cplusplus 742*5113495bSYour Name }; /* End extern "C". */ 743*5113495bSYour Name #endif /* C++ */ 744*5113495bSYour Name 745*5113495bSYour Name /* ID 3 (0x0003) */ 746*5113495bSYour Name typedef struct sDot11fTLVRequestToEnroll { 747*5113495bSYour Name uint8_t present; 748*5113495bSYour Name uint8_t req; 749*5113495bSYour Name } tDot11fTLVRequestToEnroll; 750*5113495bSYour Name 751*5113495bSYour Name #define DOT11F_TLV_REQUESTTOENROLL (3) 752*5113495bSYour Name 753*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 754*5113495bSYour Name #define DOT11F_TLV_REQUESTTOENROLL_MIN_LEN (1) 755*5113495bSYour Name 756*5113495bSYour Name #define DOT11F_TLV_REQUESTTOENROLL_MAX_LEN (1) 757*5113495bSYour Name 758*5113495bSYour Name #ifdef __cplusplus 759*5113495bSYour Name extern "C" { 760*5113495bSYour Name #endif /* C++ */ 761*5113495bSYour Name uint32_t dot11f_unpack_tlv_RequestToEnroll( 762*5113495bSYour Name tpAniSirGlobal, 763*5113495bSYour Name uint8_t *, 764*5113495bSYour Name uint16_t, 765*5113495bSYour Name tDot11fTLVRequestToEnroll*); 766*5113495bSYour Name 767*5113495bSYour Name uint32_t dot11f_pack_tlv_request_to_enroll( 768*5113495bSYour Name tpAniSirGlobal, 769*5113495bSYour Name tDot11fTLVRequestToEnroll *, 770*5113495bSYour Name uint8_t *, 771*5113495bSYour Name uint32_t, 772*5113495bSYour Name uint32_t*); 773*5113495bSYour Name 774*5113495bSYour Name uint32_t dot11f_get_packed_tlv_RequestToEnroll( 775*5113495bSYour Name tpAniSirGlobal, 776*5113495bSYour Name tDot11fTLVRequestToEnroll *, 777*5113495bSYour Name uint32_t*); 778*5113495bSYour Name 779*5113495bSYour Name #ifdef __cplusplus 780*5113495bSYour Name }; /* End extern "C". */ 781*5113495bSYour Name #endif /* C++ */ 782*5113495bSYour Name 783*5113495bSYour Name /* ID 0 (0x0000) */ 784*5113495bSYour Name typedef struct sDot11fTLVVersion2 { 785*5113495bSYour Name uint8_t present; 786*5113495bSYour Name uint8_t minor:4; 787*5113495bSYour Name uint8_t major:4; 788*5113495bSYour Name } tDot11fTLVVersion2; 789*5113495bSYour Name 790*5113495bSYour Name #define DOT11F_TLV_VERSION2 (0) 791*5113495bSYour Name 792*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 793*5113495bSYour Name #define DOT11F_TLV_VERSION2_MIN_LEN (1) 794*5113495bSYour Name 795*5113495bSYour Name #define DOT11F_TLV_VERSION2_MAX_LEN (1) 796*5113495bSYour Name 797*5113495bSYour Name #ifdef __cplusplus 798*5113495bSYour Name extern "C" { 799*5113495bSYour Name #endif /* C++ */ 800*5113495bSYour Name uint32_t dot11f_unpack_tlv_version2( 801*5113495bSYour Name tpAniSirGlobal, 802*5113495bSYour Name uint8_t *, 803*5113495bSYour Name uint16_t, 804*5113495bSYour Name tDot11fTLVVersion2*); 805*5113495bSYour Name 806*5113495bSYour Name uint32_t dot11f_pack_tlv_version2( 807*5113495bSYour Name tpAniSirGlobal, 808*5113495bSYour Name tDot11fTLVVersion2 *, 809*5113495bSYour Name uint8_t *, 810*5113495bSYour Name uint32_t, 811*5113495bSYour Name uint32_t*); 812*5113495bSYour Name 813*5113495bSYour Name uint32_t dot11f_get_packed_tlv_Version2( 814*5113495bSYour Name tpAniSirGlobal, 815*5113495bSYour Name tDot11fTLVVersion2 *, 816*5113495bSYour Name uint32_t*); 817*5113495bSYour Name 818*5113495bSYour Name #ifdef __cplusplus 819*5113495bSYour Name }; /* End extern "C". */ 820*5113495bSYour Name #endif /* C++ */ 821*5113495bSYour Name 822*5113495bSYour Name /* ID 4183 (0x1057) */ 823*5113495bSYour Name typedef struct sDot11fTLVAPSetupLocked { 824*5113495bSYour Name uint8_t present; 825*5113495bSYour Name uint8_t fLocked; 826*5113495bSYour Name } tDot11fTLVAPSetupLocked; 827*5113495bSYour Name 828*5113495bSYour Name #define DOT11F_TLV_APSETUPLOCKED (4183) 829*5113495bSYour Name 830*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 831*5113495bSYour Name #define DOT11F_TLV_APSETUPLOCKED_MIN_LEN (3) 832*5113495bSYour Name 833*5113495bSYour Name #define DOT11F_TLV_APSETUPLOCKED_MAX_LEN (3) 834*5113495bSYour Name 835*5113495bSYour Name #ifdef __cplusplus 836*5113495bSYour Name extern "C" { 837*5113495bSYour Name #endif /* C++ */ 838*5113495bSYour Name uint32_t dot11f_unpack_tlv_APSetupLocked( 839*5113495bSYour Name tpAniSirGlobal, 840*5113495bSYour Name uint8_t *, 841*5113495bSYour Name uint16_t, 842*5113495bSYour Name tDot11fTLVAPSetupLocked*); 843*5113495bSYour Name 844*5113495bSYour Name uint32_t dot11f_pack_tlv_ap_setup_locked( 845*5113495bSYour Name tpAniSirGlobal, 846*5113495bSYour Name tDot11fTLVAPSetupLocked *, 847*5113495bSYour Name uint8_t *, 848*5113495bSYour Name uint32_t, 849*5113495bSYour Name uint32_t*); 850*5113495bSYour Name 851*5113495bSYour Name uint32_t dot11f_get_packed_tlv_APSetupLocked( 852*5113495bSYour Name tpAniSirGlobal, 853*5113495bSYour Name tDot11fTLVAPSetupLocked *, 854*5113495bSYour Name uint32_t*); 855*5113495bSYour Name 856*5113495bSYour Name #ifdef __cplusplus 857*5113495bSYour Name }; /* End extern "C". */ 858*5113495bSYour Name #endif /* C++ */ 859*5113495bSYour Name 860*5113495bSYour Name /* ID 4098 (0x1002) */ 861*5113495bSYour Name typedef struct sDot11fTLVAssociationState { 862*5113495bSYour Name uint8_t present; 863*5113495bSYour Name uint16_t state; 864*5113495bSYour Name } tDot11fTLVAssociationState; 865*5113495bSYour Name 866*5113495bSYour Name #define DOT11F_TLV_ASSOCIATIONSTATE (4098) 867*5113495bSYour Name 868*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 869*5113495bSYour Name #define DOT11F_TLV_ASSOCIATIONSTATE_MIN_LEN (4) 870*5113495bSYour Name 871*5113495bSYour Name #define DOT11F_TLV_ASSOCIATIONSTATE_MAX_LEN (4) 872*5113495bSYour Name 873*5113495bSYour Name #ifdef __cplusplus 874*5113495bSYour Name extern "C" { 875*5113495bSYour Name #endif /* C++ */ 876*5113495bSYour Name uint32_t dot11f_unpack_tlv_AssociationState( 877*5113495bSYour Name tpAniSirGlobal, 878*5113495bSYour Name uint8_t *, 879*5113495bSYour Name uint16_t, 880*5113495bSYour Name tDot11fTLVAssociationState*); 881*5113495bSYour Name 882*5113495bSYour Name uint32_t dot11f_pack_tlv_association_state( 883*5113495bSYour Name tpAniSirGlobal, 884*5113495bSYour Name tDot11fTLVAssociationState *, 885*5113495bSYour Name uint8_t *, 886*5113495bSYour Name uint32_t, 887*5113495bSYour Name uint32_t*); 888*5113495bSYour Name 889*5113495bSYour Name uint32_t dot11f_get_packed_tlv_AssociationState( 890*5113495bSYour Name tpAniSirGlobal, 891*5113495bSYour Name tDot11fTLVAssociationState *, 892*5113495bSYour Name uint32_t*); 893*5113495bSYour Name 894*5113495bSYour Name #ifdef __cplusplus 895*5113495bSYour Name }; /* End extern "C". */ 896*5113495bSYour Name #endif /* C++ */ 897*5113495bSYour Name 898*5113495bSYour Name /* ID 4104 (0x1008) */ 899*5113495bSYour Name typedef struct sDot11fTLVConfigMethods { 900*5113495bSYour Name uint8_t present; 901*5113495bSYour Name uint16_t methods; 902*5113495bSYour Name } tDot11fTLVConfigMethods; 903*5113495bSYour Name 904*5113495bSYour Name #define DOT11F_TLV_CONFIGMETHODS (4104) 905*5113495bSYour Name 906*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 907*5113495bSYour Name #define DOT11F_TLV_CONFIGMETHODS_MIN_LEN (4) 908*5113495bSYour Name 909*5113495bSYour Name #define DOT11F_TLV_CONFIGMETHODS_MAX_LEN (4) 910*5113495bSYour Name 911*5113495bSYour Name #ifdef __cplusplus 912*5113495bSYour Name extern "C" { 913*5113495bSYour Name #endif /* C++ */ 914*5113495bSYour Name uint32_t dot11f_unpack_tlv_ConfigMethods( 915*5113495bSYour Name tpAniSirGlobal, 916*5113495bSYour Name uint8_t *, 917*5113495bSYour Name uint16_t, 918*5113495bSYour Name tDot11fTLVConfigMethods*); 919*5113495bSYour Name 920*5113495bSYour Name uint32_t dot11f_pack_tlv_config_methods( 921*5113495bSYour Name tpAniSirGlobal, 922*5113495bSYour Name tDot11fTLVConfigMethods *, 923*5113495bSYour Name uint8_t *, 924*5113495bSYour Name uint32_t, 925*5113495bSYour Name uint32_t*); 926*5113495bSYour Name 927*5113495bSYour Name uint32_t dot11f_get_packed_tlv_ConfigMethods( 928*5113495bSYour Name tpAniSirGlobal, 929*5113495bSYour Name tDot11fTLVConfigMethods *, 930*5113495bSYour Name uint32_t*); 931*5113495bSYour Name 932*5113495bSYour Name #ifdef __cplusplus 933*5113495bSYour Name }; /* End extern "C". */ 934*5113495bSYour Name #endif /* C++ */ 935*5113495bSYour Name 936*5113495bSYour Name /* ID 4105 (0x1009) */ 937*5113495bSYour Name typedef struct sDot11fTLVConfigurationError { 938*5113495bSYour Name uint8_t present; 939*5113495bSYour Name uint16_t error; 940*5113495bSYour Name } tDot11fTLVConfigurationError; 941*5113495bSYour Name 942*5113495bSYour Name #define DOT11F_TLV_CONFIGURATIONERROR (4105) 943*5113495bSYour Name 944*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 945*5113495bSYour Name #define DOT11F_TLV_CONFIGURATIONERROR_MIN_LEN (4) 946*5113495bSYour Name 947*5113495bSYour Name #define DOT11F_TLV_CONFIGURATIONERROR_MAX_LEN (4) 948*5113495bSYour Name 949*5113495bSYour Name #ifdef __cplusplus 950*5113495bSYour Name extern "C" { 951*5113495bSYour Name #endif /* C++ */ 952*5113495bSYour Name uint32_t dot11f_unpack_tlv_ConfigurationError( 953*5113495bSYour Name tpAniSirGlobal, 954*5113495bSYour Name uint8_t *, 955*5113495bSYour Name uint16_t, 956*5113495bSYour Name tDot11fTLVConfigurationError*); 957*5113495bSYour Name 958*5113495bSYour Name uint32_t dot11f_pack_tlv_configuration_error( 959*5113495bSYour Name tpAniSirGlobal, 960*5113495bSYour Name tDot11fTLVConfigurationError *, 961*5113495bSYour Name uint8_t *, 962*5113495bSYour Name uint32_t, 963*5113495bSYour Name uint32_t*); 964*5113495bSYour Name 965*5113495bSYour Name uint32_t dot11f_get_packed_tlv_ConfigurationError( 966*5113495bSYour Name tpAniSirGlobal, 967*5113495bSYour Name tDot11fTLVConfigurationError *, 968*5113495bSYour Name uint32_t*); 969*5113495bSYour Name 970*5113495bSYour Name #ifdef __cplusplus 971*5113495bSYour Name }; /* End extern "C". */ 972*5113495bSYour Name #endif /* C++ */ 973*5113495bSYour Name 974*5113495bSYour Name /* ID 4113 (0x1011) */ 975*5113495bSYour Name typedef struct sDot11fTLVDeviceName { 976*5113495bSYour Name uint8_t present; 977*5113495bSYour Name uint8_t num_text; 978*5113495bSYour Name uint8_t text[32]; 979*5113495bSYour Name } tDot11fTLVDeviceName; 980*5113495bSYour Name 981*5113495bSYour Name #define DOT11F_TLV_DEVICENAME (4113) 982*5113495bSYour Name 983*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 984*5113495bSYour Name #define DOT11F_TLV_DEVICENAME_MIN_LEN (2) 985*5113495bSYour Name 986*5113495bSYour Name #define DOT11F_TLV_DEVICENAME_MAX_LEN (34) 987*5113495bSYour Name 988*5113495bSYour Name #ifdef __cplusplus 989*5113495bSYour Name extern "C" { 990*5113495bSYour Name #endif /* C++ */ 991*5113495bSYour Name uint32_t dot11f_unpack_tlv_device_name( 992*5113495bSYour Name tpAniSirGlobal, 993*5113495bSYour Name uint8_t *, 994*5113495bSYour Name uint16_t, 995*5113495bSYour Name tDot11fTLVDeviceName*); 996*5113495bSYour Name 997*5113495bSYour Name uint32_t dot11f_pack_tlv_device_name( 998*5113495bSYour Name tpAniSirGlobal, 999*5113495bSYour Name tDot11fTLVDeviceName *, 1000*5113495bSYour Name uint8_t *, 1001*5113495bSYour Name uint32_t, 1002*5113495bSYour Name uint32_t*); 1003*5113495bSYour Name 1004*5113495bSYour Name uint32_t dot11f_get_packed_tlv_DeviceName( 1005*5113495bSYour Name tpAniSirGlobal, 1006*5113495bSYour Name tDot11fTLVDeviceName *, 1007*5113495bSYour Name uint32_t*); 1008*5113495bSYour Name 1009*5113495bSYour Name #ifdef __cplusplus 1010*5113495bSYour Name }; /* End extern "C". */ 1011*5113495bSYour Name #endif /* C++ */ 1012*5113495bSYour Name 1013*5113495bSYour Name /* ID 4114 (0x1012) */ 1014*5113495bSYour Name typedef struct sDot11fTLVDevicePasswordID { 1015*5113495bSYour Name uint8_t present; 1016*5113495bSYour Name uint16_t id; 1017*5113495bSYour Name } tDot11fTLVDevicePasswordID; 1018*5113495bSYour Name 1019*5113495bSYour Name #define DOT11F_TLV_DEVICEPASSWORDID (4114) 1020*5113495bSYour Name 1021*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1022*5113495bSYour Name #define DOT11F_TLV_DEVICEPASSWORDID_MIN_LEN (4) 1023*5113495bSYour Name 1024*5113495bSYour Name #define DOT11F_TLV_DEVICEPASSWORDID_MAX_LEN (4) 1025*5113495bSYour Name 1026*5113495bSYour Name #ifdef __cplusplus 1027*5113495bSYour Name extern "C" { 1028*5113495bSYour Name #endif /* C++ */ 1029*5113495bSYour Name uint32_t dot11f_unpack_tlv_DevicePasswordID( 1030*5113495bSYour Name tpAniSirGlobal, 1031*5113495bSYour Name uint8_t *, 1032*5113495bSYour Name uint16_t, 1033*5113495bSYour Name tDot11fTLVDevicePasswordID*); 1034*5113495bSYour Name 1035*5113495bSYour Name uint32_t dot11f_pack_tlv_device_password_id( 1036*5113495bSYour Name tpAniSirGlobal, 1037*5113495bSYour Name tDot11fTLVDevicePasswordID *, 1038*5113495bSYour Name uint8_t *, 1039*5113495bSYour Name uint32_t, 1040*5113495bSYour Name uint32_t*); 1041*5113495bSYour Name 1042*5113495bSYour Name uint32_t dot11f_get_packed_tlv_DevicePasswordID( 1043*5113495bSYour Name tpAniSirGlobal, 1044*5113495bSYour Name tDot11fTLVDevicePasswordID *, 1045*5113495bSYour Name uint32_t*); 1046*5113495bSYour Name 1047*5113495bSYour Name #ifdef __cplusplus 1048*5113495bSYour Name }; /* End extern "C". */ 1049*5113495bSYour Name #endif /* C++ */ 1050*5113495bSYour Name 1051*5113495bSYour Name /* ID 8 (0x0008) */ 1052*5113495bSYour Name typedef struct sDot11fTLVExtendedListenTiming { 1053*5113495bSYour Name uint8_t present; 1054*5113495bSYour Name uint16_t availibilityPeriod; 1055*5113495bSYour Name uint16_t availibilityInterval; 1056*5113495bSYour Name } tDot11fTLVExtendedListenTiming; 1057*5113495bSYour Name 1058*5113495bSYour Name #define DOT11F_TLV_EXTENDEDLISTENTIMING (8) 1059*5113495bSYour Name 1060*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1061*5113495bSYour Name #define DOT11F_TLV_EXTENDEDLISTENTIMING_MIN_LEN (5) 1062*5113495bSYour Name 1063*5113495bSYour Name #define DOT11F_TLV_EXTENDEDLISTENTIMING_MAX_LEN (5) 1064*5113495bSYour Name 1065*5113495bSYour Name #ifdef __cplusplus 1066*5113495bSYour Name extern "C" { 1067*5113495bSYour Name #endif /* C++ */ 1068*5113495bSYour Name uint32_t dot11f_unpack_tlv_extended_listen_timing( 1069*5113495bSYour Name tpAniSirGlobal, 1070*5113495bSYour Name uint8_t *, 1071*5113495bSYour Name uint16_t, 1072*5113495bSYour Name tDot11fTLVExtendedListenTiming*); 1073*5113495bSYour Name 1074*5113495bSYour Name uint32_t dot11f_pack_tlv_extended_listen_timing( 1075*5113495bSYour Name tpAniSirGlobal, 1076*5113495bSYour Name tDot11fTLVExtendedListenTiming *, 1077*5113495bSYour Name uint8_t *, 1078*5113495bSYour Name uint32_t, 1079*5113495bSYour Name uint32_t*); 1080*5113495bSYour Name 1081*5113495bSYour Name uint32_t dot11f_get_packed_tlv_ExtendedListenTiming( 1082*5113495bSYour Name tpAniSirGlobal, 1083*5113495bSYour Name tDot11fTLVExtendedListenTiming *, 1084*5113495bSYour Name uint32_t*); 1085*5113495bSYour Name 1086*5113495bSYour Name #ifdef __cplusplus 1087*5113495bSYour Name }; /* End extern "C". */ 1088*5113495bSYour Name #endif /* C++ */ 1089*5113495bSYour Name 1090*5113495bSYour Name /* ID 6 (0x0006) */ 1091*5113495bSYour Name typedef struct sDot11fTLVListenChannel { 1092*5113495bSYour Name uint8_t present; 1093*5113495bSYour Name uint8_t countryString[3]; 1094*5113495bSYour Name uint8_t regulatoryClass; 1095*5113495bSYour Name uint8_t channel; 1096*5113495bSYour Name } tDot11fTLVListenChannel; 1097*5113495bSYour Name 1098*5113495bSYour Name #define DOT11F_TLV_LISTENCHANNEL (6) 1099*5113495bSYour Name 1100*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1101*5113495bSYour Name #define DOT11F_TLV_LISTENCHANNEL_MIN_LEN (6) 1102*5113495bSYour Name 1103*5113495bSYour Name #define DOT11F_TLV_LISTENCHANNEL_MAX_LEN (6) 1104*5113495bSYour Name 1105*5113495bSYour Name #ifdef __cplusplus 1106*5113495bSYour Name extern "C" { 1107*5113495bSYour Name #endif /* C++ */ 1108*5113495bSYour Name uint32_t dot11f_unpack_tlv_listen_channel( 1109*5113495bSYour Name tpAniSirGlobal, 1110*5113495bSYour Name uint8_t *, 1111*5113495bSYour Name uint16_t, 1112*5113495bSYour Name tDot11fTLVListenChannel*); 1113*5113495bSYour Name 1114*5113495bSYour Name uint32_t dot11f_pack_tlv_listen_channel( 1115*5113495bSYour Name tpAniSirGlobal, 1116*5113495bSYour Name tDot11fTLVListenChannel *, 1117*5113495bSYour Name uint8_t *, 1118*5113495bSYour Name uint32_t, 1119*5113495bSYour Name uint32_t*); 1120*5113495bSYour Name 1121*5113495bSYour Name uint32_t dot11f_get_packed_tlv_ListenChannel( 1122*5113495bSYour Name tpAniSirGlobal, 1123*5113495bSYour Name tDot11fTLVListenChannel *, 1124*5113495bSYour Name uint32_t*); 1125*5113495bSYour Name 1126*5113495bSYour Name #ifdef __cplusplus 1127*5113495bSYour Name }; /* End extern "C". */ 1128*5113495bSYour Name #endif /* C++ */ 1129*5113495bSYour Name 1130*5113495bSYour Name /* ID 4129 (0x1021) */ 1131*5113495bSYour Name typedef struct sDot11fTLVManufacturer { 1132*5113495bSYour Name uint8_t present; 1133*5113495bSYour Name uint8_t num_name; 1134*5113495bSYour Name uint8_t name[64]; 1135*5113495bSYour Name } tDot11fTLVManufacturer; 1136*5113495bSYour Name 1137*5113495bSYour Name #define DOT11F_TLV_MANUFACTURER (4129) 1138*5113495bSYour Name 1139*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1140*5113495bSYour Name #define DOT11F_TLV_MANUFACTURER_MIN_LEN (2) 1141*5113495bSYour Name 1142*5113495bSYour Name #define DOT11F_TLV_MANUFACTURER_MAX_LEN (66) 1143*5113495bSYour Name 1144*5113495bSYour Name #ifdef __cplusplus 1145*5113495bSYour Name extern "C" { 1146*5113495bSYour Name #endif /* C++ */ 1147*5113495bSYour Name uint32_t dot11f_unpack_tlv_manufacturer( 1148*5113495bSYour Name tpAniSirGlobal, 1149*5113495bSYour Name uint8_t *, 1150*5113495bSYour Name uint16_t, 1151*5113495bSYour Name tDot11fTLVManufacturer*); 1152*5113495bSYour Name 1153*5113495bSYour Name uint32_t dot11f_pack_tlv_manufacturer( 1154*5113495bSYour Name tpAniSirGlobal, 1155*5113495bSYour Name tDot11fTLVManufacturer *, 1156*5113495bSYour Name uint8_t *, 1157*5113495bSYour Name uint32_t, 1158*5113495bSYour Name uint32_t*); 1159*5113495bSYour Name 1160*5113495bSYour Name uint32_t dot11f_get_packed_tlv_Manufacturer( 1161*5113495bSYour Name tpAniSirGlobal, 1162*5113495bSYour Name tDot11fTLVManufacturer *, 1163*5113495bSYour Name uint32_t*); 1164*5113495bSYour Name 1165*5113495bSYour Name #ifdef __cplusplus 1166*5113495bSYour Name }; /* End extern "C". */ 1167*5113495bSYour Name #endif /* C++ */ 1168*5113495bSYour Name 1169*5113495bSYour Name /* ID 1 (0x0001) */ 1170*5113495bSYour Name typedef struct sDot11fTLVMinorReasonCode { 1171*5113495bSYour Name uint8_t present; 1172*5113495bSYour Name uint8_t minorReasonCode; 1173*5113495bSYour Name } tDot11fTLVMinorReasonCode; 1174*5113495bSYour Name 1175*5113495bSYour Name #define DOT11F_TLV_MINORREASONCODE (1) 1176*5113495bSYour Name 1177*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1178*5113495bSYour Name #define DOT11F_TLV_MINORREASONCODE_MIN_LEN (2) 1179*5113495bSYour Name 1180*5113495bSYour Name #define DOT11F_TLV_MINORREASONCODE_MAX_LEN (2) 1181*5113495bSYour Name 1182*5113495bSYour Name #ifdef __cplusplus 1183*5113495bSYour Name extern "C" { 1184*5113495bSYour Name #endif /* C++ */ 1185*5113495bSYour Name uint32_t dot11f_unpack_tlv_MinorReasonCode( 1186*5113495bSYour Name tpAniSirGlobal, 1187*5113495bSYour Name uint8_t *, 1188*5113495bSYour Name uint16_t, 1189*5113495bSYour Name tDot11fTLVMinorReasonCode*); 1190*5113495bSYour Name 1191*5113495bSYour Name uint32_t dot11f_pack_tlv_minor_reason_code( 1192*5113495bSYour Name tpAniSirGlobal, 1193*5113495bSYour Name tDot11fTLVMinorReasonCode *, 1194*5113495bSYour Name uint8_t *, 1195*5113495bSYour Name uint32_t, 1196*5113495bSYour Name uint32_t*); 1197*5113495bSYour Name 1198*5113495bSYour Name uint32_t dot11f_get_packed_tlv_MinorReasonCode( 1199*5113495bSYour Name tpAniSirGlobal, 1200*5113495bSYour Name tDot11fTLVMinorReasonCode *, 1201*5113495bSYour Name uint32_t*); 1202*5113495bSYour Name 1203*5113495bSYour Name #ifdef __cplusplus 1204*5113495bSYour Name }; /* End extern "C". */ 1205*5113495bSYour Name #endif /* C++ */ 1206*5113495bSYour Name 1207*5113495bSYour Name /* ID 4131 (0x1023) */ 1208*5113495bSYour Name typedef struct sDot11fTLVModelName { 1209*5113495bSYour Name uint8_t present; 1210*5113495bSYour Name uint8_t num_text; 1211*5113495bSYour Name uint8_t text[32]; 1212*5113495bSYour Name } tDot11fTLVModelName; 1213*5113495bSYour Name 1214*5113495bSYour Name #define DOT11F_TLV_MODELNAME (4131) 1215*5113495bSYour Name 1216*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1217*5113495bSYour Name #define DOT11F_TLV_MODELNAME_MIN_LEN (2) 1218*5113495bSYour Name 1219*5113495bSYour Name #define DOT11F_TLV_MODELNAME_MAX_LEN (34) 1220*5113495bSYour Name 1221*5113495bSYour Name #ifdef __cplusplus 1222*5113495bSYour Name extern "C" { 1223*5113495bSYour Name #endif /* C++ */ 1224*5113495bSYour Name uint32_t dot11f_unpack_tlv_model_name( 1225*5113495bSYour Name tpAniSirGlobal, 1226*5113495bSYour Name uint8_t *, 1227*5113495bSYour Name uint16_t, 1228*5113495bSYour Name tDot11fTLVModelName*); 1229*5113495bSYour Name 1230*5113495bSYour Name uint32_t dot11f_pack_tlv_model_name( 1231*5113495bSYour Name tpAniSirGlobal, 1232*5113495bSYour Name tDot11fTLVModelName *, 1233*5113495bSYour Name uint8_t *, 1234*5113495bSYour Name uint32_t, 1235*5113495bSYour Name uint32_t*); 1236*5113495bSYour Name 1237*5113495bSYour Name uint32_t dot11f_get_packed_tlv_ModelName( 1238*5113495bSYour Name tpAniSirGlobal, 1239*5113495bSYour Name tDot11fTLVModelName *, 1240*5113495bSYour Name uint32_t*); 1241*5113495bSYour Name 1242*5113495bSYour Name #ifdef __cplusplus 1243*5113495bSYour Name }; /* End extern "C". */ 1244*5113495bSYour Name #endif /* C++ */ 1245*5113495bSYour Name 1246*5113495bSYour Name /* ID 4132 (0x1024) */ 1247*5113495bSYour Name typedef struct sDot11fTLVModelNumber { 1248*5113495bSYour Name uint8_t present; 1249*5113495bSYour Name uint8_t num_text; 1250*5113495bSYour Name uint8_t text[32]; 1251*5113495bSYour Name } tDot11fTLVModelNumber; 1252*5113495bSYour Name 1253*5113495bSYour Name #define DOT11F_TLV_MODELNUMBER (4132) 1254*5113495bSYour Name 1255*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1256*5113495bSYour Name #define DOT11F_TLV_MODELNUMBER_MIN_LEN (2) 1257*5113495bSYour Name 1258*5113495bSYour Name #define DOT11F_TLV_MODELNUMBER_MAX_LEN (34) 1259*5113495bSYour Name 1260*5113495bSYour Name #ifdef __cplusplus 1261*5113495bSYour Name extern "C" { 1262*5113495bSYour Name #endif /* C++ */ 1263*5113495bSYour Name uint32_t dot11f_unpack_tlv_model_number( 1264*5113495bSYour Name tpAniSirGlobal, 1265*5113495bSYour Name uint8_t *, 1266*5113495bSYour Name uint16_t, 1267*5113495bSYour Name tDot11fTLVModelNumber*); 1268*5113495bSYour Name 1269*5113495bSYour Name uint32_t dot11f_pack_tlv_model_number( 1270*5113495bSYour Name tpAniSirGlobal, 1271*5113495bSYour Name tDot11fTLVModelNumber *, 1272*5113495bSYour Name uint8_t *, 1273*5113495bSYour Name uint32_t, 1274*5113495bSYour Name uint32_t*); 1275*5113495bSYour Name 1276*5113495bSYour Name uint32_t dot11f_get_packed_tlv_ModelNumber( 1277*5113495bSYour Name tpAniSirGlobal, 1278*5113495bSYour Name tDot11fTLVModelNumber *, 1279*5113495bSYour Name uint32_t*); 1280*5113495bSYour Name 1281*5113495bSYour Name #ifdef __cplusplus 1282*5113495bSYour Name }; /* End extern "C". */ 1283*5113495bSYour Name #endif /* C++ */ 1284*5113495bSYour Name 1285*5113495bSYour Name /* ID 12 (0x000c) */ 1286*5113495bSYour Name typedef struct sDot11fTLVNoticeOfAbsence { 1287*5113495bSYour Name uint8_t present; 1288*5113495bSYour Name uint8_t index; 1289*5113495bSYour Name uint8_t CTSWindowOppPS; 1290*5113495bSYour Name uint8_t num_NoADesc; 1291*5113495bSYour Name uint8_t NoADesc[36]; 1292*5113495bSYour Name } tDot11fTLVNoticeOfAbsence; 1293*5113495bSYour Name 1294*5113495bSYour Name #define DOT11F_TLV_NOTICEOFABSENCE (12) 1295*5113495bSYour Name 1296*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1297*5113495bSYour Name #define DOT11F_TLV_NOTICEOFABSENCE_MIN_LEN (3) 1298*5113495bSYour Name 1299*5113495bSYour Name #define DOT11F_TLV_NOTICEOFABSENCE_MAX_LEN (39) 1300*5113495bSYour Name 1301*5113495bSYour Name #ifdef __cplusplus 1302*5113495bSYour Name extern "C" { 1303*5113495bSYour Name #endif /* C++ */ 1304*5113495bSYour Name uint32_t dot11f_unpack_tlv_notice_of_absence( 1305*5113495bSYour Name tpAniSirGlobal, 1306*5113495bSYour Name uint8_t *, 1307*5113495bSYour Name uint16_t, 1308*5113495bSYour Name tDot11fTLVNoticeOfAbsence*); 1309*5113495bSYour Name 1310*5113495bSYour Name uint32_t dot11f_pack_tlv_notice_of_absence( 1311*5113495bSYour Name tpAniSirGlobal, 1312*5113495bSYour Name tDot11fTLVNoticeOfAbsence *, 1313*5113495bSYour Name uint8_t *, 1314*5113495bSYour Name uint32_t, 1315*5113495bSYour Name uint32_t*); 1316*5113495bSYour Name 1317*5113495bSYour Name uint32_t dot11f_get_packed_tlv_NoticeOfAbsence( 1318*5113495bSYour Name tpAniSirGlobal, 1319*5113495bSYour Name tDot11fTLVNoticeOfAbsence *, 1320*5113495bSYour Name uint32_t*); 1321*5113495bSYour Name 1322*5113495bSYour Name #ifdef __cplusplus 1323*5113495bSYour Name }; /* End extern "C". */ 1324*5113495bSYour Name #endif /* C++ */ 1325*5113495bSYour Name 1326*5113495bSYour Name /* ID 17 (0x0011) */ 1327*5113495bSYour Name typedef struct sDot11fTLVOperatingChannel { 1328*5113495bSYour Name uint8_t present; 1329*5113495bSYour Name uint8_t countryString[3]; 1330*5113495bSYour Name uint8_t regulatoryClass; 1331*5113495bSYour Name uint8_t channel; 1332*5113495bSYour Name } tDot11fTLVOperatingChannel; 1333*5113495bSYour Name 1334*5113495bSYour Name #define DOT11F_TLV_OPERATINGCHANNEL (17) 1335*5113495bSYour Name 1336*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1337*5113495bSYour Name #define DOT11F_TLV_OPERATINGCHANNEL_MIN_LEN (6) 1338*5113495bSYour Name 1339*5113495bSYour Name #define DOT11F_TLV_OPERATINGCHANNEL_MAX_LEN (6) 1340*5113495bSYour Name 1341*5113495bSYour Name #ifdef __cplusplus 1342*5113495bSYour Name extern "C" { 1343*5113495bSYour Name #endif /* C++ */ 1344*5113495bSYour Name uint32_t dot11f_unpack_tlv_operating_channel( 1345*5113495bSYour Name tpAniSirGlobal, 1346*5113495bSYour Name uint8_t *, 1347*5113495bSYour Name uint16_t, 1348*5113495bSYour Name tDot11fTLVOperatingChannel*); 1349*5113495bSYour Name 1350*5113495bSYour Name uint32_t dot11f_pack_tlv_operating_channel( 1351*5113495bSYour Name tpAniSirGlobal, 1352*5113495bSYour Name tDot11fTLVOperatingChannel *, 1353*5113495bSYour Name uint8_t *, 1354*5113495bSYour Name uint32_t, 1355*5113495bSYour Name uint32_t*); 1356*5113495bSYour Name 1357*5113495bSYour Name uint32_t dot11f_get_packed_tlv_OperatingChannel( 1358*5113495bSYour Name tpAniSirGlobal, 1359*5113495bSYour Name tDot11fTLVOperatingChannel *, 1360*5113495bSYour Name uint32_t*); 1361*5113495bSYour Name 1362*5113495bSYour Name #ifdef __cplusplus 1363*5113495bSYour Name }; /* End extern "C". */ 1364*5113495bSYour Name #endif /* C++ */ 1365*5113495bSYour Name 1366*5113495bSYour Name /* ID 2 (0x0002) */ 1367*5113495bSYour Name typedef struct sDot11fTLVP2PCapability { 1368*5113495bSYour Name uint8_t present; 1369*5113495bSYour Name uint8_t deviceCapability; 1370*5113495bSYour Name uint8_t groupCapability; 1371*5113495bSYour Name } tDot11fTLVP2PCapability; 1372*5113495bSYour Name 1373*5113495bSYour Name #define DOT11F_TLV_P2PCAPABILITY (2) 1374*5113495bSYour Name 1375*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1376*5113495bSYour Name #define DOT11F_TLV_P2PCAPABILITY_MIN_LEN (3) 1377*5113495bSYour Name 1378*5113495bSYour Name #define DOT11F_TLV_P2PCAPABILITY_MAX_LEN (3) 1379*5113495bSYour Name 1380*5113495bSYour Name #ifdef __cplusplus 1381*5113495bSYour Name extern "C" { 1382*5113495bSYour Name #endif /* C++ */ 1383*5113495bSYour Name uint32_t dot11f_unpack_tlv_p2_p_capability( 1384*5113495bSYour Name tpAniSirGlobal, 1385*5113495bSYour Name uint8_t *, 1386*5113495bSYour Name uint16_t, 1387*5113495bSYour Name tDot11fTLVP2PCapability*); 1388*5113495bSYour Name 1389*5113495bSYour Name uint32_t dot11f_pack_tlv_p2_p_capability( 1390*5113495bSYour Name tpAniSirGlobal, 1391*5113495bSYour Name tDot11fTLVP2PCapability *, 1392*5113495bSYour Name uint8_t *, 1393*5113495bSYour Name uint32_t, 1394*5113495bSYour Name uint32_t*); 1395*5113495bSYour Name 1396*5113495bSYour Name uint32_t dot11f_get_packed_tlv_P2PCapability( 1397*5113495bSYour Name tpAniSirGlobal, 1398*5113495bSYour Name tDot11fTLVP2PCapability *, 1399*5113495bSYour Name uint32_t*); 1400*5113495bSYour Name 1401*5113495bSYour Name #ifdef __cplusplus 1402*5113495bSYour Name }; /* End extern "C". */ 1403*5113495bSYour Name #endif /* C++ */ 1404*5113495bSYour Name 1405*5113495bSYour Name /* ID 3 (0x0003) */ 1406*5113495bSYour Name typedef struct sDot11fTLVP2PDeviceId { 1407*5113495bSYour Name uint8_t present; 1408*5113495bSYour Name uint8_t P2PDeviceAddress[6]; 1409*5113495bSYour Name } tDot11fTLVP2PDeviceId; 1410*5113495bSYour Name 1411*5113495bSYour Name #define DOT11F_TLV_P2PDEVICEID (3) 1412*5113495bSYour Name 1413*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1414*5113495bSYour Name #define DOT11F_TLV_P2PDEVICEID_MIN_LEN (7) 1415*5113495bSYour Name 1416*5113495bSYour Name #define DOT11F_TLV_P2PDEVICEID_MAX_LEN (7) 1417*5113495bSYour Name 1418*5113495bSYour Name #ifdef __cplusplus 1419*5113495bSYour Name extern "C" { 1420*5113495bSYour Name #endif /* C++ */ 1421*5113495bSYour Name uint32_t dot11f_unpack_tlv_p2_p_device_id( 1422*5113495bSYour Name tpAniSirGlobal, 1423*5113495bSYour Name uint8_t *, 1424*5113495bSYour Name uint16_t, 1425*5113495bSYour Name tDot11fTLVP2PDeviceId*); 1426*5113495bSYour Name 1427*5113495bSYour Name uint32_t dot11f_pack_tlv_p2_p_device_id( 1428*5113495bSYour Name tpAniSirGlobal, 1429*5113495bSYour Name tDot11fTLVP2PDeviceId *, 1430*5113495bSYour Name uint8_t *, 1431*5113495bSYour Name uint32_t, 1432*5113495bSYour Name uint32_t*); 1433*5113495bSYour Name 1434*5113495bSYour Name uint32_t dot11f_get_packed_tlv_P2PDeviceId( 1435*5113495bSYour Name tpAniSirGlobal, 1436*5113495bSYour Name tDot11fTLVP2PDeviceId *, 1437*5113495bSYour Name uint32_t*); 1438*5113495bSYour Name 1439*5113495bSYour Name #ifdef __cplusplus 1440*5113495bSYour Name }; /* End extern "C". */ 1441*5113495bSYour Name #endif /* C++ */ 1442*5113495bSYour Name 1443*5113495bSYour Name /* ID 13 (0x000d) */ 1444*5113495bSYour Name typedef struct sDot11fTLVP2PDeviceInfo { 1445*5113495bSYour Name uint8_t present; 1446*5113495bSYour Name uint8_t P2PDeviceAddress[6]; 1447*5113495bSYour Name uint16_t configMethod; 1448*5113495bSYour Name uint8_t primaryDeviceType[8]; 1449*5113495bSYour Name tDot11fTLVDeviceName DeviceName; 1450*5113495bSYour Name } tDot11fTLVP2PDeviceInfo; 1451*5113495bSYour Name 1452*5113495bSYour Name #define DOT11F_TLV_P2PDEVICEINFO (13) 1453*5113495bSYour Name 1454*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1455*5113495bSYour Name #define DOT11F_TLV_P2PDEVICEINFO_MIN_LEN (17) 1456*5113495bSYour Name 1457*5113495bSYour Name #define DOT11F_TLV_P2PDEVICEINFO_MAX_LEN (53) 1458*5113495bSYour Name 1459*5113495bSYour Name #ifdef __cplusplus 1460*5113495bSYour Name extern "C" { 1461*5113495bSYour Name #endif /* C++ */ 1462*5113495bSYour Name uint32_t dot11f_unpack_tlv_p2_p_device_info( 1463*5113495bSYour Name tpAniSirGlobal, 1464*5113495bSYour Name uint8_t *, 1465*5113495bSYour Name uint16_t, 1466*5113495bSYour Name tDot11fTLVP2PDeviceInfo*); 1467*5113495bSYour Name 1468*5113495bSYour Name uint32_t dot11f_pack_tlv_p2_p_device_info( 1469*5113495bSYour Name tpAniSirGlobal, 1470*5113495bSYour Name tDot11fTLVP2PDeviceInfo *, 1471*5113495bSYour Name uint8_t *, 1472*5113495bSYour Name uint32_t, 1473*5113495bSYour Name uint32_t*); 1474*5113495bSYour Name 1475*5113495bSYour Name uint32_t dot11f_get_packed_tlv_P2PDeviceInfo( 1476*5113495bSYour Name tpAniSirGlobal, 1477*5113495bSYour Name tDot11fTLVP2PDeviceInfo *, 1478*5113495bSYour Name uint32_t*); 1479*5113495bSYour Name 1480*5113495bSYour Name #ifdef __cplusplus 1481*5113495bSYour Name }; /* End extern "C". */ 1482*5113495bSYour Name #endif /* C++ */ 1483*5113495bSYour Name 1484*5113495bSYour Name /* ID 14 (0x000e) */ 1485*5113495bSYour Name typedef struct sDot11fTLVP2PGroupInfo { 1486*5113495bSYour Name uint8_t present; 1487*5113495bSYour Name uint8_t num_P2PClientInfoDesc; 1488*5113495bSYour Name uint8_t P2PClientInfoDesc[1024]; 1489*5113495bSYour Name } tDot11fTLVP2PGroupInfo; 1490*5113495bSYour Name 1491*5113495bSYour Name #define DOT11F_TLV_P2PGROUPINFO (14) 1492*5113495bSYour Name 1493*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1494*5113495bSYour Name #define DOT11F_TLV_P2PGROUPINFO_MIN_LEN (1) 1495*5113495bSYour Name 1496*5113495bSYour Name #define DOT11F_TLV_P2PGROUPINFO_MAX_LEN (1025) 1497*5113495bSYour Name 1498*5113495bSYour Name #ifdef __cplusplus 1499*5113495bSYour Name extern "C" { 1500*5113495bSYour Name #endif /* C++ */ 1501*5113495bSYour Name uint32_t dot11f_unpack_tlv_p2_p_group_info( 1502*5113495bSYour Name tpAniSirGlobal, 1503*5113495bSYour Name uint8_t *, 1504*5113495bSYour Name uint16_t, 1505*5113495bSYour Name tDot11fTLVP2PGroupInfo*); 1506*5113495bSYour Name 1507*5113495bSYour Name uint32_t dot11f_pack_tlv_p2_p_group_info( 1508*5113495bSYour Name tpAniSirGlobal, 1509*5113495bSYour Name tDot11fTLVP2PGroupInfo *, 1510*5113495bSYour Name uint8_t *, 1511*5113495bSYour Name uint32_t, 1512*5113495bSYour Name uint32_t*); 1513*5113495bSYour Name 1514*5113495bSYour Name uint32_t dot11f_get_packed_tlv_P2PGroupInfo( 1515*5113495bSYour Name tpAniSirGlobal, 1516*5113495bSYour Name tDot11fTLVP2PGroupInfo *, 1517*5113495bSYour Name uint32_t*); 1518*5113495bSYour Name 1519*5113495bSYour Name #ifdef __cplusplus 1520*5113495bSYour Name }; /* End extern "C". */ 1521*5113495bSYour Name #endif /* C++ */ 1522*5113495bSYour Name 1523*5113495bSYour Name /* ID 0 (0x0000) */ 1524*5113495bSYour Name typedef struct sDot11fTLVP2PStatus { 1525*5113495bSYour Name uint8_t present; 1526*5113495bSYour Name uint8_t status; 1527*5113495bSYour Name } tDot11fTLVP2PStatus; 1528*5113495bSYour Name 1529*5113495bSYour Name #define DOT11F_TLV_P2PSTATUS (0) 1530*5113495bSYour Name 1531*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1532*5113495bSYour Name #define DOT11F_TLV_P2PSTATUS_MIN_LEN (2) 1533*5113495bSYour Name 1534*5113495bSYour Name #define DOT11F_TLV_P2PSTATUS_MAX_LEN (2) 1535*5113495bSYour Name 1536*5113495bSYour Name #ifdef __cplusplus 1537*5113495bSYour Name extern "C" { 1538*5113495bSYour Name #endif /* C++ */ 1539*5113495bSYour Name uint32_t dot11f_unpack_tlv_P2PStatus( 1540*5113495bSYour Name tpAniSirGlobal, 1541*5113495bSYour Name uint8_t *, 1542*5113495bSYour Name uint16_t, 1543*5113495bSYour Name tDot11fTLVP2PStatus*); 1544*5113495bSYour Name 1545*5113495bSYour Name uint32_t dot11f_pack_tlv_p2_p_status( 1546*5113495bSYour Name tpAniSirGlobal, 1547*5113495bSYour Name tDot11fTLVP2PStatus *, 1548*5113495bSYour Name uint8_t *, 1549*5113495bSYour Name uint32_t, 1550*5113495bSYour Name uint32_t*); 1551*5113495bSYour Name 1552*5113495bSYour Name uint32_t dot11f_get_packed_tlv_P2PStatus( 1553*5113495bSYour Name tpAniSirGlobal, 1554*5113495bSYour Name tDot11fTLVP2PStatus *, 1555*5113495bSYour Name uint32_t*); 1556*5113495bSYour Name 1557*5113495bSYour Name #ifdef __cplusplus 1558*5113495bSYour Name }; /* End extern "C". */ 1559*5113495bSYour Name #endif /* C++ */ 1560*5113495bSYour Name 1561*5113495bSYour Name /* ID 4180 (0x1054) */ 1562*5113495bSYour Name typedef struct sDot11fTLVPrimaryDeviceType { 1563*5113495bSYour Name uint8_t present; 1564*5113495bSYour Name uint16_t primary_category; 1565*5113495bSYour Name uint8_t oui[4]; 1566*5113495bSYour Name uint16_t sub_category; 1567*5113495bSYour Name } tDot11fTLVPrimaryDeviceType; 1568*5113495bSYour Name 1569*5113495bSYour Name #define DOT11F_TLV_PRIMARYDEVICETYPE (4180) 1570*5113495bSYour Name 1571*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1572*5113495bSYour Name #define DOT11F_TLV_PRIMARYDEVICETYPE_MIN_LEN (10) 1573*5113495bSYour Name 1574*5113495bSYour Name #define DOT11F_TLV_PRIMARYDEVICETYPE_MAX_LEN (10) 1575*5113495bSYour Name 1576*5113495bSYour Name #ifdef __cplusplus 1577*5113495bSYour Name extern "C" { 1578*5113495bSYour Name #endif /* C++ */ 1579*5113495bSYour Name uint32_t dot11f_unpack_tlv_primary_device_type( 1580*5113495bSYour Name tpAniSirGlobal, 1581*5113495bSYour Name uint8_t *, 1582*5113495bSYour Name uint16_t, 1583*5113495bSYour Name tDot11fTLVPrimaryDeviceType*); 1584*5113495bSYour Name 1585*5113495bSYour Name uint32_t dot11f_pack_tlv_primary_device_type( 1586*5113495bSYour Name tpAniSirGlobal, 1587*5113495bSYour Name tDot11fTLVPrimaryDeviceType *, 1588*5113495bSYour Name uint8_t *, 1589*5113495bSYour Name uint32_t, 1590*5113495bSYour Name uint32_t*); 1591*5113495bSYour Name 1592*5113495bSYour Name uint32_t dot11f_get_packed_tlv_PrimaryDeviceType( 1593*5113495bSYour Name tpAniSirGlobal, 1594*5113495bSYour Name tDot11fTLVPrimaryDeviceType *, 1595*5113495bSYour Name uint32_t*); 1596*5113495bSYour Name 1597*5113495bSYour Name #ifdef __cplusplus 1598*5113495bSYour Name }; /* End extern "C". */ 1599*5113495bSYour Name #endif /* C++ */ 1600*5113495bSYour Name 1601*5113495bSYour Name /* ID 4156 (0x103c) */ 1602*5113495bSYour Name typedef struct sDot11fTLVRFBands { 1603*5113495bSYour Name uint8_t present; 1604*5113495bSYour Name uint8_t bands; 1605*5113495bSYour Name } tDot11fTLVRFBands; 1606*5113495bSYour Name 1607*5113495bSYour Name #define DOT11F_TLV_RFBANDS (4156) 1608*5113495bSYour Name 1609*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1610*5113495bSYour Name #define DOT11F_TLV_RFBANDS_MIN_LEN (3) 1611*5113495bSYour Name 1612*5113495bSYour Name #define DOT11F_TLV_RFBANDS_MAX_LEN (3) 1613*5113495bSYour Name 1614*5113495bSYour Name #ifdef __cplusplus 1615*5113495bSYour Name extern "C" { 1616*5113495bSYour Name #endif /* C++ */ 1617*5113495bSYour Name uint32_t dot11f_unpack_tlv_RFBands( 1618*5113495bSYour Name tpAniSirGlobal, 1619*5113495bSYour Name uint8_t *, 1620*5113495bSYour Name uint16_t, 1621*5113495bSYour Name tDot11fTLVRFBands*); 1622*5113495bSYour Name 1623*5113495bSYour Name uint32_t dot11f_pack_tlv_rf_bands( 1624*5113495bSYour Name tpAniSirGlobal, 1625*5113495bSYour Name tDot11fTLVRFBands *, 1626*5113495bSYour Name uint8_t *, 1627*5113495bSYour Name uint32_t, 1628*5113495bSYour Name uint32_t*); 1629*5113495bSYour Name 1630*5113495bSYour Name uint32_t dot11f_get_packed_tlv_RFBands( 1631*5113495bSYour Name tpAniSirGlobal, 1632*5113495bSYour Name tDot11fTLVRFBands *, 1633*5113495bSYour Name uint32_t*); 1634*5113495bSYour Name 1635*5113495bSYour Name #ifdef __cplusplus 1636*5113495bSYour Name }; /* End extern "C". */ 1637*5113495bSYour Name #endif /* C++ */ 1638*5113495bSYour Name 1639*5113495bSYour Name /* ID 4202 (0x106a) */ 1640*5113495bSYour Name typedef struct sDot11fTLVRequestDeviceType { 1641*5113495bSYour Name uint8_t present; 1642*5113495bSYour Name uint16_t primary_category; 1643*5113495bSYour Name uint8_t oui[4]; 1644*5113495bSYour Name uint16_t sub_category; 1645*5113495bSYour Name } tDot11fTLVRequestDeviceType; 1646*5113495bSYour Name 1647*5113495bSYour Name #define DOT11F_TLV_REQUESTDEVICETYPE (4202) 1648*5113495bSYour Name 1649*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1650*5113495bSYour Name #define DOT11F_TLV_REQUESTDEVICETYPE_MIN_LEN (10) 1651*5113495bSYour Name 1652*5113495bSYour Name #define DOT11F_TLV_REQUESTDEVICETYPE_MAX_LEN (10) 1653*5113495bSYour Name 1654*5113495bSYour Name #ifdef __cplusplus 1655*5113495bSYour Name extern "C" { 1656*5113495bSYour Name #endif /* C++ */ 1657*5113495bSYour Name uint32_t dot11f_unpack_tlv_request_device_type( 1658*5113495bSYour Name tpAniSirGlobal, 1659*5113495bSYour Name uint8_t *, 1660*5113495bSYour Name uint16_t, 1661*5113495bSYour Name tDot11fTLVRequestDeviceType*); 1662*5113495bSYour Name 1663*5113495bSYour Name uint32_t dot11f_pack_tlv_request_device_type( 1664*5113495bSYour Name tpAniSirGlobal, 1665*5113495bSYour Name tDot11fTLVRequestDeviceType *, 1666*5113495bSYour Name uint8_t *, 1667*5113495bSYour Name uint32_t, 1668*5113495bSYour Name uint32_t*); 1669*5113495bSYour Name 1670*5113495bSYour Name uint32_t dot11f_get_packed_tlv_RequestDeviceType( 1671*5113495bSYour Name tpAniSirGlobal, 1672*5113495bSYour Name tDot11fTLVRequestDeviceType *, 1673*5113495bSYour Name uint32_t*); 1674*5113495bSYour Name 1675*5113495bSYour Name #ifdef __cplusplus 1676*5113495bSYour Name }; /* End extern "C". */ 1677*5113495bSYour Name #endif /* C++ */ 1678*5113495bSYour Name 1679*5113495bSYour Name /* ID 4154 (0x103a) */ 1680*5113495bSYour Name typedef struct sDot11fTLVRequestType { 1681*5113495bSYour Name uint8_t present; 1682*5113495bSYour Name uint8_t reqType; 1683*5113495bSYour Name } tDot11fTLVRequestType; 1684*5113495bSYour Name 1685*5113495bSYour Name #define DOT11F_TLV_REQUESTTYPE (4154) 1686*5113495bSYour Name 1687*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1688*5113495bSYour Name #define DOT11F_TLV_REQUESTTYPE_MIN_LEN (3) 1689*5113495bSYour Name 1690*5113495bSYour Name #define DOT11F_TLV_REQUESTTYPE_MAX_LEN (3) 1691*5113495bSYour Name 1692*5113495bSYour Name #ifdef __cplusplus 1693*5113495bSYour Name extern "C" { 1694*5113495bSYour Name #endif /* C++ */ 1695*5113495bSYour Name uint32_t dot11f_unpack_tlv_RequestType( 1696*5113495bSYour Name tpAniSirGlobal, 1697*5113495bSYour Name uint8_t *, 1698*5113495bSYour Name uint16_t, 1699*5113495bSYour Name tDot11fTLVRequestType*); 1700*5113495bSYour Name 1701*5113495bSYour Name uint32_t dot11f_pack_tlv_request_type( 1702*5113495bSYour Name tpAniSirGlobal, 1703*5113495bSYour Name tDot11fTLVRequestType *, 1704*5113495bSYour Name uint8_t *, 1705*5113495bSYour Name uint32_t, 1706*5113495bSYour Name uint32_t*); 1707*5113495bSYour Name 1708*5113495bSYour Name uint32_t dot11f_get_packed_tlv_RequestType( 1709*5113495bSYour Name tpAniSirGlobal, 1710*5113495bSYour Name tDot11fTLVRequestType *, 1711*5113495bSYour Name uint32_t*); 1712*5113495bSYour Name 1713*5113495bSYour Name #ifdef __cplusplus 1714*5113495bSYour Name }; /* End extern "C". */ 1715*5113495bSYour Name #endif /* C++ */ 1716*5113495bSYour Name 1717*5113495bSYour Name /* ID 4155 (0x103b) */ 1718*5113495bSYour Name typedef struct sDot11fTLVResponseType { 1719*5113495bSYour Name uint8_t present; 1720*5113495bSYour Name uint8_t resType; 1721*5113495bSYour Name } tDot11fTLVResponseType; 1722*5113495bSYour Name 1723*5113495bSYour Name #define DOT11F_TLV_RESPONSETYPE (4155) 1724*5113495bSYour Name 1725*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1726*5113495bSYour Name #define DOT11F_TLV_RESPONSETYPE_MIN_LEN (3) 1727*5113495bSYour Name 1728*5113495bSYour Name #define DOT11F_TLV_RESPONSETYPE_MAX_LEN (3) 1729*5113495bSYour Name 1730*5113495bSYour Name #ifdef __cplusplus 1731*5113495bSYour Name extern "C" { 1732*5113495bSYour Name #endif /* C++ */ 1733*5113495bSYour Name uint32_t dot11f_unpack_tlv_ResponseType( 1734*5113495bSYour Name tpAniSirGlobal, 1735*5113495bSYour Name uint8_t *, 1736*5113495bSYour Name uint16_t, 1737*5113495bSYour Name tDot11fTLVResponseType*); 1738*5113495bSYour Name 1739*5113495bSYour Name uint32_t dot11f_pack_tlv_response_type( 1740*5113495bSYour Name tpAniSirGlobal, 1741*5113495bSYour Name tDot11fTLVResponseType *, 1742*5113495bSYour Name uint8_t *, 1743*5113495bSYour Name uint32_t, 1744*5113495bSYour Name uint32_t*); 1745*5113495bSYour Name 1746*5113495bSYour Name uint32_t dot11f_get_packed_tlv_ResponseType( 1747*5113495bSYour Name tpAniSirGlobal, 1748*5113495bSYour Name tDot11fTLVResponseType *, 1749*5113495bSYour Name uint32_t*); 1750*5113495bSYour Name 1751*5113495bSYour Name #ifdef __cplusplus 1752*5113495bSYour Name }; /* End extern "C". */ 1753*5113495bSYour Name #endif /* C++ */ 1754*5113495bSYour Name 1755*5113495bSYour Name /* ID 4161 (0x1041) */ 1756*5113495bSYour Name typedef struct sDot11fTLVSelectedRegistrar { 1757*5113495bSYour Name uint8_t present; 1758*5113495bSYour Name uint8_t selected; 1759*5113495bSYour Name } tDot11fTLVSelectedRegistrar; 1760*5113495bSYour Name 1761*5113495bSYour Name #define DOT11F_TLV_SELECTEDREGISTRAR (4161) 1762*5113495bSYour Name 1763*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1764*5113495bSYour Name #define DOT11F_TLV_SELECTEDREGISTRAR_MIN_LEN (3) 1765*5113495bSYour Name 1766*5113495bSYour Name #define DOT11F_TLV_SELECTEDREGISTRAR_MAX_LEN (3) 1767*5113495bSYour Name 1768*5113495bSYour Name #ifdef __cplusplus 1769*5113495bSYour Name extern "C" { 1770*5113495bSYour Name #endif /* C++ */ 1771*5113495bSYour Name uint32_t dot11f_unpack_tlv_SelectedRegistrar( 1772*5113495bSYour Name tpAniSirGlobal, 1773*5113495bSYour Name uint8_t *, 1774*5113495bSYour Name uint16_t, 1775*5113495bSYour Name tDot11fTLVSelectedRegistrar*); 1776*5113495bSYour Name 1777*5113495bSYour Name uint32_t dot11f_pack_tlv_selected_registrar( 1778*5113495bSYour Name tpAniSirGlobal, 1779*5113495bSYour Name tDot11fTLVSelectedRegistrar *, 1780*5113495bSYour Name uint8_t *, 1781*5113495bSYour Name uint32_t, 1782*5113495bSYour Name uint32_t*); 1783*5113495bSYour Name 1784*5113495bSYour Name uint32_t dot11f_get_packed_tlv_SelectedRegistrar( 1785*5113495bSYour Name tpAniSirGlobal, 1786*5113495bSYour Name tDot11fTLVSelectedRegistrar *, 1787*5113495bSYour Name uint32_t*); 1788*5113495bSYour Name 1789*5113495bSYour Name #ifdef __cplusplus 1790*5113495bSYour Name }; /* End extern "C". */ 1791*5113495bSYour Name #endif /* C++ */ 1792*5113495bSYour Name 1793*5113495bSYour Name /* ID 4179 (0x1053) */ 1794*5113495bSYour Name typedef struct sDot11fTLVSelectedRegistrarConfigMethods { 1795*5113495bSYour Name uint8_t present; 1796*5113495bSYour Name uint16_t methods; 1797*5113495bSYour Name } tDot11fTLVSelectedRegistrarConfigMethods; 1798*5113495bSYour Name 1799*5113495bSYour Name #define DOT11F_TLV_SELECTEDREGISTRARCONFIGMETHODS (4179) 1800*5113495bSYour Name 1801*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1802*5113495bSYour Name #define DOT11F_TLV_SELECTEDREGISTRARCONFIGMETHODS_MIN_LEN (4) 1803*5113495bSYour Name 1804*5113495bSYour Name #define DOT11F_TLV_SELECTEDREGISTRARCONFIGMETHODS_MAX_LEN (4) 1805*5113495bSYour Name 1806*5113495bSYour Name #ifdef __cplusplus 1807*5113495bSYour Name extern "C" { 1808*5113495bSYour Name #endif /* C++ */ 1809*5113495bSYour Name uint32_t dot11f_unpack_tlv_SelectedRegistrarConfigMethods( 1810*5113495bSYour Name tpAniSirGlobal, 1811*5113495bSYour Name uint8_t *, 1812*5113495bSYour Name uint16_t, 1813*5113495bSYour Name tDot11fTLVSelectedRegistrarConfigMethods*); 1814*5113495bSYour Name 1815*5113495bSYour Name uint32_t dot11f_pack_tlv_selected_registrar_config_methods( 1816*5113495bSYour Name tpAniSirGlobal, 1817*5113495bSYour Name tDot11fTLVSelectedRegistrarConfigMethods *, 1818*5113495bSYour Name uint8_t *, 1819*5113495bSYour Name uint32_t, 1820*5113495bSYour Name uint32_t*); 1821*5113495bSYour Name 1822*5113495bSYour Name uint32_t dot11f_get_packed_tlv_SelectedRegistrarConfigMethods( 1823*5113495bSYour Name tpAniSirGlobal, 1824*5113495bSYour Name tDot11fTLVSelectedRegistrarConfigMethods *, 1825*5113495bSYour Name uint32_t*); 1826*5113495bSYour Name 1827*5113495bSYour Name #ifdef __cplusplus 1828*5113495bSYour Name }; /* End extern "C". */ 1829*5113495bSYour Name #endif /* C++ */ 1830*5113495bSYour Name 1831*5113495bSYour Name /* ID 4162 (0x1042) */ 1832*5113495bSYour Name typedef struct sDot11fTLVSerialNumber { 1833*5113495bSYour Name uint8_t present; 1834*5113495bSYour Name uint8_t num_text; 1835*5113495bSYour Name uint8_t text[32]; 1836*5113495bSYour Name } tDot11fTLVSerialNumber; 1837*5113495bSYour Name 1838*5113495bSYour Name #define DOT11F_TLV_SERIALNUMBER (4162) 1839*5113495bSYour Name 1840*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1841*5113495bSYour Name #define DOT11F_TLV_SERIALNUMBER_MIN_LEN (2) 1842*5113495bSYour Name 1843*5113495bSYour Name #define DOT11F_TLV_SERIALNUMBER_MAX_LEN (34) 1844*5113495bSYour Name 1845*5113495bSYour Name #ifdef __cplusplus 1846*5113495bSYour Name extern "C" { 1847*5113495bSYour Name #endif /* C++ */ 1848*5113495bSYour Name uint32_t dot11f_unpack_tlv_serial_number( 1849*5113495bSYour Name tpAniSirGlobal, 1850*5113495bSYour Name uint8_t *, 1851*5113495bSYour Name uint16_t, 1852*5113495bSYour Name tDot11fTLVSerialNumber*); 1853*5113495bSYour Name 1854*5113495bSYour Name uint32_t dot11f_pack_tlv_serial_number( 1855*5113495bSYour Name tpAniSirGlobal, 1856*5113495bSYour Name tDot11fTLVSerialNumber *, 1857*5113495bSYour Name uint8_t *, 1858*5113495bSYour Name uint32_t, 1859*5113495bSYour Name uint32_t*); 1860*5113495bSYour Name 1861*5113495bSYour Name uint32_t dot11f_get_packed_tlv_SerialNumber( 1862*5113495bSYour Name tpAniSirGlobal, 1863*5113495bSYour Name tDot11fTLVSerialNumber *, 1864*5113495bSYour Name uint32_t*); 1865*5113495bSYour Name 1866*5113495bSYour Name #ifdef __cplusplus 1867*5113495bSYour Name }; /* End extern "C". */ 1868*5113495bSYour Name #endif /* C++ */ 1869*5113495bSYour Name 1870*5113495bSYour Name /* ID 4167 (0x1047) */ 1871*5113495bSYour Name typedef struct sDot11fTLVUUID_E { 1872*5113495bSYour Name uint8_t present; 1873*5113495bSYour Name uint8_t uuid[16]; 1874*5113495bSYour Name } tDot11fTLVUUID_E; 1875*5113495bSYour Name 1876*5113495bSYour Name #define DOT11F_TLV_UUID_E (4167) 1877*5113495bSYour Name 1878*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1879*5113495bSYour Name #define DOT11F_TLV_UUID_E_MIN_LEN (18) 1880*5113495bSYour Name 1881*5113495bSYour Name #define DOT11F_TLV_UUID_E_MAX_LEN (18) 1882*5113495bSYour Name 1883*5113495bSYour Name #ifdef __cplusplus 1884*5113495bSYour Name extern "C" { 1885*5113495bSYour Name #endif /* C++ */ 1886*5113495bSYour Name uint32_t dot11f_unpack_tlv_uuid_e( 1887*5113495bSYour Name tpAniSirGlobal, 1888*5113495bSYour Name uint8_t *, 1889*5113495bSYour Name uint16_t, 1890*5113495bSYour Name tDot11fTLVUUID_E*); 1891*5113495bSYour Name 1892*5113495bSYour Name uint32_t dot11f_pack_tlv_uuid_e( 1893*5113495bSYour Name tpAniSirGlobal, 1894*5113495bSYour Name tDot11fTLVUUID_E *, 1895*5113495bSYour Name uint8_t *, 1896*5113495bSYour Name uint32_t, 1897*5113495bSYour Name uint32_t*); 1898*5113495bSYour Name 1899*5113495bSYour Name uint32_t dot11f_get_packed_tlv_UUID_E( 1900*5113495bSYour Name tpAniSirGlobal, 1901*5113495bSYour Name tDot11fTLVUUID_E *, 1902*5113495bSYour Name uint32_t*); 1903*5113495bSYour Name 1904*5113495bSYour Name #ifdef __cplusplus 1905*5113495bSYour Name }; /* End extern "C". */ 1906*5113495bSYour Name #endif /* C++ */ 1907*5113495bSYour Name 1908*5113495bSYour Name /* ID 4168 (0x1048) */ 1909*5113495bSYour Name typedef struct sDot11fTLVUUID_R { 1910*5113495bSYour Name uint8_t present; 1911*5113495bSYour Name uint8_t uuid[16]; 1912*5113495bSYour Name } tDot11fTLVUUID_R; 1913*5113495bSYour Name 1914*5113495bSYour Name #define DOT11F_TLV_UUID_R (4168) 1915*5113495bSYour Name 1916*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1917*5113495bSYour Name #define DOT11F_TLV_UUID_R_MIN_LEN (18) 1918*5113495bSYour Name 1919*5113495bSYour Name #define DOT11F_TLV_UUID_R_MAX_LEN (18) 1920*5113495bSYour Name 1921*5113495bSYour Name #ifdef __cplusplus 1922*5113495bSYour Name extern "C" { 1923*5113495bSYour Name #endif /* C++ */ 1924*5113495bSYour Name uint32_t dot11f_unpack_tlv_uuid_r( 1925*5113495bSYour Name tpAniSirGlobal, 1926*5113495bSYour Name uint8_t *, 1927*5113495bSYour Name uint16_t, 1928*5113495bSYour Name tDot11fTLVUUID_R*); 1929*5113495bSYour Name 1930*5113495bSYour Name uint32_t dot11f_pack_tlv_uuid_r( 1931*5113495bSYour Name tpAniSirGlobal, 1932*5113495bSYour Name tDot11fTLVUUID_R *, 1933*5113495bSYour Name uint8_t *, 1934*5113495bSYour Name uint32_t, 1935*5113495bSYour Name uint32_t*); 1936*5113495bSYour Name 1937*5113495bSYour Name uint32_t dot11f_get_packed_tlv_UUID_R( 1938*5113495bSYour Name tpAniSirGlobal, 1939*5113495bSYour Name tDot11fTLVUUID_R *, 1940*5113495bSYour Name uint32_t*); 1941*5113495bSYour Name 1942*5113495bSYour Name #ifdef __cplusplus 1943*5113495bSYour Name }; /* End extern "C". */ 1944*5113495bSYour Name #endif /* C++ */ 1945*5113495bSYour Name 1946*5113495bSYour Name /* ID 4169 (0x1049) */ 1947*5113495bSYour Name typedef struct sDot11fTLVVendorExtension { 1948*5113495bSYour Name uint8_t present; 1949*5113495bSYour Name uint8_t vendorId[3]; 1950*5113495bSYour Name tDot11fTLVVersion2 Version2; 1951*5113495bSYour Name tDot11fTLVAuthorizedMACs AuthorizedMACs; 1952*5113495bSYour Name tDot11fTLVRequestToEnroll RequestToEnroll; 1953*5113495bSYour Name } tDot11fTLVVendorExtension; 1954*5113495bSYour Name 1955*5113495bSYour Name #define DOT11F_TLV_VENDOREXTENSION (4169) 1956*5113495bSYour Name 1957*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1958*5113495bSYour Name #define DOT11F_TLV_VENDOREXTENSION_MIN_LEN (5) 1959*5113495bSYour Name 1960*5113495bSYour Name #define DOT11F_TLV_VENDOREXTENSION_MAX_LEN (19) 1961*5113495bSYour Name 1962*5113495bSYour Name #ifdef __cplusplus 1963*5113495bSYour Name extern "C" { 1964*5113495bSYour Name #endif /* C++ */ 1965*5113495bSYour Name uint32_t dot11f_unpack_tlv_vendor_extension( 1966*5113495bSYour Name tpAniSirGlobal, 1967*5113495bSYour Name uint8_t *, 1968*5113495bSYour Name uint16_t, 1969*5113495bSYour Name tDot11fTLVVendorExtension*); 1970*5113495bSYour Name 1971*5113495bSYour Name uint32_t dot11f_pack_tlv_vendor_extension( 1972*5113495bSYour Name tpAniSirGlobal, 1973*5113495bSYour Name tDot11fTLVVendorExtension *, 1974*5113495bSYour Name uint8_t *, 1975*5113495bSYour Name uint32_t, 1976*5113495bSYour Name uint32_t*); 1977*5113495bSYour Name 1978*5113495bSYour Name uint32_t dot11f_get_packed_tlv_VendorExtension( 1979*5113495bSYour Name tpAniSirGlobal, 1980*5113495bSYour Name tDot11fTLVVendorExtension *, 1981*5113495bSYour Name uint32_t*); 1982*5113495bSYour Name 1983*5113495bSYour Name #ifdef __cplusplus 1984*5113495bSYour Name }; /* End extern "C". */ 1985*5113495bSYour Name #endif /* C++ */ 1986*5113495bSYour Name 1987*5113495bSYour Name /* ID 4170 (0x104a) */ 1988*5113495bSYour Name typedef struct sDot11fTLVVersion { 1989*5113495bSYour Name uint8_t present; 1990*5113495bSYour Name uint8_t minor:4; 1991*5113495bSYour Name uint8_t major:4; 1992*5113495bSYour Name } tDot11fTLVVersion; 1993*5113495bSYour Name 1994*5113495bSYour Name #define DOT11F_TLV_VERSION (4170) 1995*5113495bSYour Name 1996*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 1997*5113495bSYour Name #define DOT11F_TLV_VERSION_MIN_LEN (3) 1998*5113495bSYour Name 1999*5113495bSYour Name #define DOT11F_TLV_VERSION_MAX_LEN (3) 2000*5113495bSYour Name 2001*5113495bSYour Name #ifdef __cplusplus 2002*5113495bSYour Name extern "C" { 2003*5113495bSYour Name #endif /* C++ */ 2004*5113495bSYour Name uint32_t dot11f_unpack_tlv_version( 2005*5113495bSYour Name tpAniSirGlobal, 2006*5113495bSYour Name uint8_t *, 2007*5113495bSYour Name uint16_t, 2008*5113495bSYour Name tDot11fTLVVersion*); 2009*5113495bSYour Name 2010*5113495bSYour Name uint32_t dot11f_pack_tlv_version( 2011*5113495bSYour Name tpAniSirGlobal, 2012*5113495bSYour Name tDot11fTLVVersion *, 2013*5113495bSYour Name uint8_t *, 2014*5113495bSYour Name uint32_t, 2015*5113495bSYour Name uint32_t*); 2016*5113495bSYour Name 2017*5113495bSYour Name uint32_t dot11f_get_packed_tlv_Version( 2018*5113495bSYour Name tpAniSirGlobal, 2019*5113495bSYour Name tDot11fTLVVersion *, 2020*5113495bSYour Name uint32_t*); 2021*5113495bSYour Name 2022*5113495bSYour Name #ifdef __cplusplus 2023*5113495bSYour Name }; /* End extern "C". */ 2024*5113495bSYour Name #endif /* C++ */ 2025*5113495bSYour Name 2026*5113495bSYour Name /* ID 4164 (0x1044) */ 2027*5113495bSYour Name typedef struct sDot11fTLVWPSState { 2028*5113495bSYour Name uint8_t present; 2029*5113495bSYour Name uint8_t state; 2030*5113495bSYour Name } tDot11fTLVWPSState; 2031*5113495bSYour Name 2032*5113495bSYour Name #define DOT11F_TLV_WPSSTATE (4164) 2033*5113495bSYour Name 2034*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2035*5113495bSYour Name #define DOT11F_TLV_WPSSTATE_MIN_LEN (3) 2036*5113495bSYour Name 2037*5113495bSYour Name #define DOT11F_TLV_WPSSTATE_MAX_LEN (3) 2038*5113495bSYour Name 2039*5113495bSYour Name #ifdef __cplusplus 2040*5113495bSYour Name extern "C" { 2041*5113495bSYour Name #endif /* C++ */ 2042*5113495bSYour Name uint32_t dot11f_unpack_tlv_WPSState( 2043*5113495bSYour Name tpAniSirGlobal, 2044*5113495bSYour Name uint8_t *, 2045*5113495bSYour Name uint16_t, 2046*5113495bSYour Name tDot11fTLVWPSState*); 2047*5113495bSYour Name 2048*5113495bSYour Name uint32_t dot11f_pack_tlv_wps_state( 2049*5113495bSYour Name tpAniSirGlobal, 2050*5113495bSYour Name tDot11fTLVWPSState *, 2051*5113495bSYour Name uint8_t *, 2052*5113495bSYour Name uint32_t, 2053*5113495bSYour Name uint32_t*); 2054*5113495bSYour Name 2055*5113495bSYour Name uint32_t dot11f_get_packed_tlv_WPSState( 2056*5113495bSYour Name tpAniSirGlobal, 2057*5113495bSYour Name tDot11fTLVWPSState *, 2058*5113495bSYour Name uint32_t*); 2059*5113495bSYour Name 2060*5113495bSYour Name #ifdef __cplusplus 2061*5113495bSYour Name }; /* End extern "C". */ 2062*5113495bSYour Name #endif /* C++ */ 2063*5113495bSYour Name 2064*5113495bSYour Name /* ID 4 (0x0004) */ 2065*5113495bSYour Name typedef struct sDot11fTLVassoc_disallowed { 2066*5113495bSYour Name uint8_t present; 2067*5113495bSYour Name uint8_t reason_code; 2068*5113495bSYour Name } tDot11fTLVassoc_disallowed; 2069*5113495bSYour Name 2070*5113495bSYour Name #define DOT11F_TLV_ASSOC_DISALLOWED (4) 2071*5113495bSYour Name 2072*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2073*5113495bSYour Name #define DOT11F_TLV_ASSOC_DISALLOWED_MIN_LEN (1) 2074*5113495bSYour Name 2075*5113495bSYour Name #define DOT11F_TLV_ASSOC_DISALLOWED_MAX_LEN (1) 2076*5113495bSYour Name 2077*5113495bSYour Name #ifdef __cplusplus 2078*5113495bSYour Name extern "C" { 2079*5113495bSYour Name #endif /* C++ */ 2080*5113495bSYour Name uint32_t dot11f_unpack_tlv_assoc_disallowed( 2081*5113495bSYour Name tpAniSirGlobal, 2082*5113495bSYour Name uint8_t *, 2083*5113495bSYour Name uint16_t, 2084*5113495bSYour Name tDot11fTLVassoc_disallowed*); 2085*5113495bSYour Name 2086*5113495bSYour Name uint32_t dot11f_pack_tlv_assoc_disallowed( 2087*5113495bSYour Name tpAniSirGlobal, 2088*5113495bSYour Name tDot11fTLVassoc_disallowed *, 2089*5113495bSYour Name uint8_t *, 2090*5113495bSYour Name uint32_t, 2091*5113495bSYour Name uint32_t*); 2092*5113495bSYour Name 2093*5113495bSYour Name uint32_t dot11f_get_packed_tlv_assoc_disallowed( 2094*5113495bSYour Name tpAniSirGlobal, 2095*5113495bSYour Name tDot11fTLVassoc_disallowed *, 2096*5113495bSYour Name uint32_t*); 2097*5113495bSYour Name 2098*5113495bSYour Name #ifdef __cplusplus 2099*5113495bSYour Name }; /* End extern "C". */ 2100*5113495bSYour Name #endif /* C++ */ 2101*5113495bSYour Name 2102*5113495bSYour Name /* ID 8 (0x0008) */ 2103*5113495bSYour Name typedef struct sDot11fTLVassoc_retry_delay { 2104*5113495bSYour Name uint8_t present; 2105*5113495bSYour Name uint16_t delay; 2106*5113495bSYour Name } tDot11fTLVassoc_retry_delay; 2107*5113495bSYour Name 2108*5113495bSYour Name #define DOT11F_TLV_ASSOC_RETRY_DELAY (8) 2109*5113495bSYour Name 2110*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2111*5113495bSYour Name #define DOT11F_TLV_ASSOC_RETRY_DELAY_MIN_LEN (2) 2112*5113495bSYour Name 2113*5113495bSYour Name #define DOT11F_TLV_ASSOC_RETRY_DELAY_MAX_LEN (2) 2114*5113495bSYour Name 2115*5113495bSYour Name #ifdef __cplusplus 2116*5113495bSYour Name extern "C" { 2117*5113495bSYour Name #endif /* C++ */ 2118*5113495bSYour Name uint32_t dot11f_unpack_tlv_assoc_retry_delay( 2119*5113495bSYour Name tpAniSirGlobal, 2120*5113495bSYour Name uint8_t *, 2121*5113495bSYour Name uint16_t, 2122*5113495bSYour Name tDot11fTLVassoc_retry_delay*); 2123*5113495bSYour Name 2124*5113495bSYour Name uint32_t dot11f_pack_tlv_assoc_retry_delay( 2125*5113495bSYour Name tpAniSirGlobal, 2126*5113495bSYour Name tDot11fTLVassoc_retry_delay *, 2127*5113495bSYour Name uint8_t *, 2128*5113495bSYour Name uint32_t, 2129*5113495bSYour Name uint32_t*); 2130*5113495bSYour Name 2131*5113495bSYour Name uint32_t dot11f_get_packed_tlv_assoc_retry_delay( 2132*5113495bSYour Name tpAniSirGlobal, 2133*5113495bSYour Name tDot11fTLVassoc_retry_delay *, 2134*5113495bSYour Name uint32_t*); 2135*5113495bSYour Name 2136*5113495bSYour Name #ifdef __cplusplus 2137*5113495bSYour Name }; /* End extern "C". */ 2138*5113495bSYour Name #endif /* C++ */ 2139*5113495bSYour Name 2140*5113495bSYour Name /* ID 3 (0x0003) */ 2141*5113495bSYour Name typedef struct sDot11fTLVcellular_data_cap { 2142*5113495bSYour Name uint8_t present; 2143*5113495bSYour Name uint8_t cellular_connectivity; 2144*5113495bSYour Name } tDot11fTLVcellular_data_cap; 2145*5113495bSYour Name 2146*5113495bSYour Name #define DOT11F_TLV_CELLULAR_DATA_CAP (3) 2147*5113495bSYour Name 2148*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2149*5113495bSYour Name #define DOT11F_TLV_CELLULAR_DATA_CAP_MIN_LEN (1) 2150*5113495bSYour Name 2151*5113495bSYour Name #define DOT11F_TLV_CELLULAR_DATA_CAP_MAX_LEN (1) 2152*5113495bSYour Name 2153*5113495bSYour Name #ifdef __cplusplus 2154*5113495bSYour Name extern "C" { 2155*5113495bSYour Name #endif /* C++ */ 2156*5113495bSYour Name uint32_t dot11f_unpack_tlv_cellular_data_cap( 2157*5113495bSYour Name tpAniSirGlobal, 2158*5113495bSYour Name uint8_t *, 2159*5113495bSYour Name uint16_t, 2160*5113495bSYour Name tDot11fTLVcellular_data_cap*); 2161*5113495bSYour Name 2162*5113495bSYour Name uint32_t dot11f_pack_tlv_cellular_data_cap( 2163*5113495bSYour Name tpAniSirGlobal, 2164*5113495bSYour Name tDot11fTLVcellular_data_cap *, 2165*5113495bSYour Name uint8_t *, 2166*5113495bSYour Name uint32_t, 2167*5113495bSYour Name uint32_t*); 2168*5113495bSYour Name 2169*5113495bSYour Name uint32_t dot11f_get_packed_tlv_cellular_data_cap( 2170*5113495bSYour Name tpAniSirGlobal, 2171*5113495bSYour Name tDot11fTLVcellular_data_cap *, 2172*5113495bSYour Name uint32_t*); 2173*5113495bSYour Name 2174*5113495bSYour Name #ifdef __cplusplus 2175*5113495bSYour Name }; /* End extern "C". */ 2176*5113495bSYour Name #endif /* C++ */ 2177*5113495bSYour Name 2178*5113495bSYour Name /* ID 5 (0x0005) */ 2179*5113495bSYour Name typedef struct sDot11fTLVcellular_data_con_pref { 2180*5113495bSYour Name uint8_t present; 2181*5113495bSYour Name uint8_t cellular_preference; 2182*5113495bSYour Name } tDot11fTLVcellular_data_con_pref; 2183*5113495bSYour Name 2184*5113495bSYour Name #define DOT11F_TLV_CELLULAR_DATA_CON_PREF (5) 2185*5113495bSYour Name 2186*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2187*5113495bSYour Name #define DOT11F_TLV_CELLULAR_DATA_CON_PREF_MIN_LEN (1) 2188*5113495bSYour Name 2189*5113495bSYour Name #define DOT11F_TLV_CELLULAR_DATA_CON_PREF_MAX_LEN (1) 2190*5113495bSYour Name 2191*5113495bSYour Name #ifdef __cplusplus 2192*5113495bSYour Name extern "C" { 2193*5113495bSYour Name #endif /* C++ */ 2194*5113495bSYour Name uint32_t dot11f_unpack_tlv_cellular_data_con_pref( 2195*5113495bSYour Name tpAniSirGlobal, 2196*5113495bSYour Name uint8_t *, 2197*5113495bSYour Name uint16_t, 2198*5113495bSYour Name tDot11fTLVcellular_data_con_pref*); 2199*5113495bSYour Name 2200*5113495bSYour Name uint32_t dot11f_pack_tlv_cellular_data_con_pref( 2201*5113495bSYour Name tpAniSirGlobal, 2202*5113495bSYour Name tDot11fTLVcellular_data_con_pref *, 2203*5113495bSYour Name uint8_t *, 2204*5113495bSYour Name uint32_t, 2205*5113495bSYour Name uint32_t*); 2206*5113495bSYour Name 2207*5113495bSYour Name uint32_t dot11f_get_packed_tlv_cellular_data_con_pref( 2208*5113495bSYour Name tpAniSirGlobal, 2209*5113495bSYour Name tDot11fTLVcellular_data_con_pref *, 2210*5113495bSYour Name uint32_t*); 2211*5113495bSYour Name 2212*5113495bSYour Name #ifdef __cplusplus 2213*5113495bSYour Name }; /* End extern "C". */ 2214*5113495bSYour Name #endif /* C++ */ 2215*5113495bSYour Name 2216*5113495bSYour Name /* ID 14 (0x000e) */ 2217*5113495bSYour Name typedef struct sDot11fTLVecsa_target_tsf_info_attr { 2218*5113495bSYour Name uint8_t present; 2219*5113495bSYour Name uint8_t twt_ch_sw_mode; 2220*5113495bSYour Name tDOT11F_U64 target_tsf; 2221*5113495bSYour Name } tDot11fTLVecsa_target_tsf_info_attr; 2222*5113495bSYour Name 2223*5113495bSYour Name #define DOT11F_TLV_ECSA_TARGET_TSF_INFO_ATTR (14) 2224*5113495bSYour Name 2225*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2226*5113495bSYour Name #define DOT11F_TLV_ECSA_TARGET_TSF_INFO_ATTR_MIN_LEN (9) 2227*5113495bSYour Name 2228*5113495bSYour Name #define DOT11F_TLV_ECSA_TARGET_TSF_INFO_ATTR_MAX_LEN (9) 2229*5113495bSYour Name 2230*5113495bSYour Name #ifdef __cplusplus 2231*5113495bSYour Name extern "C" { 2232*5113495bSYour Name #endif /* C++ */ 2233*5113495bSYour Name uint32_t dot11f_unpack_tlv_ecsa_target_tsf_info_attr( 2234*5113495bSYour Name tpAniSirGlobal, 2235*5113495bSYour Name uint8_t *, 2236*5113495bSYour Name uint16_t, 2237*5113495bSYour Name tDot11fTLVecsa_target_tsf_info_attr*); 2238*5113495bSYour Name 2239*5113495bSYour Name uint32_t dot11f_pack_tlv_ecsa_target_tsf_info_attr( 2240*5113495bSYour Name tpAniSirGlobal, 2241*5113495bSYour Name tDot11fTLVecsa_target_tsf_info_attr *, 2242*5113495bSYour Name uint8_t *, 2243*5113495bSYour Name uint32_t, 2244*5113495bSYour Name uint32_t*); 2245*5113495bSYour Name 2246*5113495bSYour Name uint32_t dot11f_get_packed_tlv_ecsa_target_tsf_info_attr( 2247*5113495bSYour Name tpAniSirGlobal, 2248*5113495bSYour Name tDot11fTLVecsa_target_tsf_info_attr *, 2249*5113495bSYour Name uint32_t*); 2250*5113495bSYour Name 2251*5113495bSYour Name #ifdef __cplusplus 2252*5113495bSYour Name }; /* End extern "C". */ 2253*5113495bSYour Name #endif /* C++ */ 2254*5113495bSYour Name 2255*5113495bSYour Name /* ID 13 (0x000d) */ 2256*5113495bSYour Name typedef struct sDot11fTLVedca_pifs_param_attr { 2257*5113495bSYour Name uint8_t present; 2258*5113495bSYour Name uint8_t edca_param_type; 2259*5113495bSYour Name uint8_t num_data; 2260*5113495bSYour Name uint8_t data[4]; 2261*5113495bSYour Name } tDot11fTLVedca_pifs_param_attr; 2262*5113495bSYour Name 2263*5113495bSYour Name #define DOT11F_TLV_EDCA_PIFS_PARAM_ATTR (13) 2264*5113495bSYour Name 2265*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2266*5113495bSYour Name #define DOT11F_TLV_EDCA_PIFS_PARAM_ATTR_MIN_LEN (4) 2267*5113495bSYour Name 2268*5113495bSYour Name #define DOT11F_TLV_EDCA_PIFS_PARAM_ATTR_MAX_LEN (5) 2269*5113495bSYour Name 2270*5113495bSYour Name #ifdef __cplusplus 2271*5113495bSYour Name extern "C" { 2272*5113495bSYour Name #endif /* C++ */ 2273*5113495bSYour Name uint32_t dot11f_unpack_tlv_edca_pifs_param_attr( 2274*5113495bSYour Name tpAniSirGlobal, 2275*5113495bSYour Name uint8_t *, 2276*5113495bSYour Name uint16_t, 2277*5113495bSYour Name tDot11fTLVedca_pifs_param_attr*); 2278*5113495bSYour Name 2279*5113495bSYour Name uint32_t dot11f_pack_tlv_edca_pifs_param_attr( 2280*5113495bSYour Name tpAniSirGlobal, 2281*5113495bSYour Name tDot11fTLVedca_pifs_param_attr *, 2282*5113495bSYour Name uint8_t *, 2283*5113495bSYour Name uint32_t, 2284*5113495bSYour Name uint32_t*); 2285*5113495bSYour Name 2286*5113495bSYour Name uint32_t dot11f_get_packed_tlv_edca_pifs_param_attr( 2287*5113495bSYour Name tpAniSirGlobal, 2288*5113495bSYour Name tDot11fTLVedca_pifs_param_attr *, 2289*5113495bSYour Name uint32_t*); 2290*5113495bSYour Name 2291*5113495bSYour Name #ifdef __cplusplus 2292*5113495bSYour Name }; /* End extern "C". */ 2293*5113495bSYour Name #endif /* C++ */ 2294*5113495bSYour Name 2295*5113495bSYour Name /* ID 4 (0x0004) */ 2296*5113495bSYour Name typedef struct sDot11fTLVhe_2xltf_160mhz_supp { 2297*5113495bSYour Name uint8_t present; 2298*5113495bSYour Name uint8_t he_2xltf_160MHz_supp; 2299*5113495bSYour Name } tDot11fTLVhe_2xltf_160mhz_supp; 2300*5113495bSYour Name 2301*5113495bSYour Name #define DOT11F_TLV_HE_2XLTF_160MHZ_SUPP (4) 2302*5113495bSYour Name 2303*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2304*5113495bSYour Name #define DOT11F_TLV_HE_2XLTF_160MHZ_SUPP_MIN_LEN (1) 2305*5113495bSYour Name 2306*5113495bSYour Name #define DOT11F_TLV_HE_2XLTF_160MHZ_SUPP_MAX_LEN (1) 2307*5113495bSYour Name 2308*5113495bSYour Name #ifdef __cplusplus 2309*5113495bSYour Name extern "C" { 2310*5113495bSYour Name #endif /* C++ */ 2311*5113495bSYour Name uint32_t dot11f_unpack_tlv_he_2xltf_160mhz_supp( 2312*5113495bSYour Name tpAniSirGlobal, 2313*5113495bSYour Name uint8_t *, 2314*5113495bSYour Name uint16_t, 2315*5113495bSYour Name tDot11fTLVhe_2xltf_160mhz_supp*); 2316*5113495bSYour Name 2317*5113495bSYour Name uint32_t dot11f_pack_tlv_he_2xltf_160mhz_supp( 2318*5113495bSYour Name tpAniSirGlobal, 2319*5113495bSYour Name tDot11fTLVhe_2xltf_160mhz_supp *, 2320*5113495bSYour Name uint8_t *, 2321*5113495bSYour Name uint32_t, 2322*5113495bSYour Name uint32_t*); 2323*5113495bSYour Name 2324*5113495bSYour Name uint32_t dot11f_get_packed_tlv_he_2xltf_160mhz_supp( 2325*5113495bSYour Name tpAniSirGlobal, 2326*5113495bSYour Name tDot11fTLVhe_2xltf_160mhz_supp *, 2327*5113495bSYour Name uint32_t*); 2328*5113495bSYour Name 2329*5113495bSYour Name #ifdef __cplusplus 2330*5113495bSYour Name }; /* End extern "C". */ 2331*5113495bSYour Name #endif /* C++ */ 2332*5113495bSYour Name 2333*5113495bSYour Name /* ID 3 (0x0003) */ 2334*5113495bSYour Name typedef struct sDot11fTLVhe_400ns_sgi_attr { 2335*5113495bSYour Name uint8_t present; 2336*5113495bSYour Name uint8_t he_ltf1x_400ns_sgi; 2337*5113495bSYour Name uint8_t he_ltf2x_400ns_sgi; 2338*5113495bSYour Name uint8_t he_ltf4x_400ns_sgi; 2339*5113495bSYour Name } tDot11fTLVhe_400ns_sgi_attr; 2340*5113495bSYour Name 2341*5113495bSYour Name #define DOT11F_TLV_HE_400NS_SGI_ATTR (3) 2342*5113495bSYour Name 2343*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2344*5113495bSYour Name #define DOT11F_TLV_HE_400NS_SGI_ATTR_MIN_LEN (3) 2345*5113495bSYour Name 2346*5113495bSYour Name #define DOT11F_TLV_HE_400NS_SGI_ATTR_MAX_LEN (3) 2347*5113495bSYour Name 2348*5113495bSYour Name #ifdef __cplusplus 2349*5113495bSYour Name extern "C" { 2350*5113495bSYour Name #endif /* C++ */ 2351*5113495bSYour Name uint32_t dot11f_unpack_tlv_he_400ns_sgi_attr( 2352*5113495bSYour Name tpAniSirGlobal, 2353*5113495bSYour Name uint8_t *, 2354*5113495bSYour Name uint16_t, 2355*5113495bSYour Name tDot11fTLVhe_400ns_sgi_attr*); 2356*5113495bSYour Name 2357*5113495bSYour Name uint32_t dot11f_pack_tlv_he_400ns_sgi_attr( 2358*5113495bSYour Name tpAniSirGlobal, 2359*5113495bSYour Name tDot11fTLVhe_400ns_sgi_attr *, 2360*5113495bSYour Name uint8_t *, 2361*5113495bSYour Name uint32_t, 2362*5113495bSYour Name uint32_t*); 2363*5113495bSYour Name 2364*5113495bSYour Name uint32_t dot11f_get_packed_tlv_he_400ns_sgi_attr( 2365*5113495bSYour Name tpAniSirGlobal, 2366*5113495bSYour Name tDot11fTLVhe_400ns_sgi_attr *, 2367*5113495bSYour Name uint32_t*); 2368*5113495bSYour Name 2369*5113495bSYour Name #ifdef __cplusplus 2370*5113495bSYour Name }; /* End extern "C". */ 2371*5113495bSYour Name #endif /* C++ */ 2372*5113495bSYour Name 2373*5113495bSYour Name /* ID 8 (0x0008) */ 2374*5113495bSYour Name typedef struct sDot11fTLVhe_dl_mumimo_attr { 2375*5113495bSYour Name uint8_t present; 2376*5113495bSYour Name uint8_t he_dl_mumimo_supp; 2377*5113495bSYour Name } tDot11fTLVhe_dl_mumimo_attr; 2378*5113495bSYour Name 2379*5113495bSYour Name #define DOT11F_TLV_HE_DL_MUMIMO_ATTR (8) 2380*5113495bSYour Name 2381*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2382*5113495bSYour Name #define DOT11F_TLV_HE_DL_MUMIMO_ATTR_MIN_LEN (1) 2383*5113495bSYour Name 2384*5113495bSYour Name #define DOT11F_TLV_HE_DL_MUMIMO_ATTR_MAX_LEN (1) 2385*5113495bSYour Name 2386*5113495bSYour Name #ifdef __cplusplus 2387*5113495bSYour Name extern "C" { 2388*5113495bSYour Name #endif /* C++ */ 2389*5113495bSYour Name uint32_t dot11f_unpack_tlv_he_dl_mumimo_attr( 2390*5113495bSYour Name tpAniSirGlobal, 2391*5113495bSYour Name uint8_t *, 2392*5113495bSYour Name uint16_t, 2393*5113495bSYour Name tDot11fTLVhe_dl_mumimo_attr*); 2394*5113495bSYour Name 2395*5113495bSYour Name uint32_t dot11f_pack_tlv_he_dl_mumimo_attr( 2396*5113495bSYour Name tpAniSirGlobal, 2397*5113495bSYour Name tDot11fTLVhe_dl_mumimo_attr *, 2398*5113495bSYour Name uint8_t *, 2399*5113495bSYour Name uint32_t, 2400*5113495bSYour Name uint32_t*); 2401*5113495bSYour Name 2402*5113495bSYour Name uint32_t dot11f_get_packed_tlv_he_dl_mumimo_attr( 2403*5113495bSYour Name tpAniSirGlobal, 2404*5113495bSYour Name tDot11fTLVhe_dl_mumimo_attr *, 2405*5113495bSYour Name uint32_t*); 2406*5113495bSYour Name 2407*5113495bSYour Name #ifdef __cplusplus 2408*5113495bSYour Name }; /* End extern "C". */ 2409*5113495bSYour Name #endif /* C++ */ 2410*5113495bSYour Name 2411*5113495bSYour Name /* ID 5 (0x0005) */ 2412*5113495bSYour Name typedef struct sDot11fTLVhe_dl_ofdma_attr { 2413*5113495bSYour Name uint8_t present; 2414*5113495bSYour Name uint8_t he_dl_ofdma_supp; 2415*5113495bSYour Name } tDot11fTLVhe_dl_ofdma_attr; 2416*5113495bSYour Name 2417*5113495bSYour Name #define DOT11F_TLV_HE_DL_OFDMA_ATTR (5) 2418*5113495bSYour Name 2419*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2420*5113495bSYour Name #define DOT11F_TLV_HE_DL_OFDMA_ATTR_MIN_LEN (1) 2421*5113495bSYour Name 2422*5113495bSYour Name #define DOT11F_TLV_HE_DL_OFDMA_ATTR_MAX_LEN (1) 2423*5113495bSYour Name 2424*5113495bSYour Name #ifdef __cplusplus 2425*5113495bSYour Name extern "C" { 2426*5113495bSYour Name #endif /* C++ */ 2427*5113495bSYour Name uint32_t dot11f_unpack_tlv_he_dl_ofdma_attr( 2428*5113495bSYour Name tpAniSirGlobal, 2429*5113495bSYour Name uint8_t *, 2430*5113495bSYour Name uint16_t, 2431*5113495bSYour Name tDot11fTLVhe_dl_ofdma_attr*); 2432*5113495bSYour Name 2433*5113495bSYour Name uint32_t dot11f_pack_tlv_he_dl_ofdma_attr( 2434*5113495bSYour Name tpAniSirGlobal, 2435*5113495bSYour Name tDot11fTLVhe_dl_ofdma_attr *, 2436*5113495bSYour Name uint8_t *, 2437*5113495bSYour Name uint32_t, 2438*5113495bSYour Name uint32_t*); 2439*5113495bSYour Name 2440*5113495bSYour Name uint32_t dot11f_get_packed_tlv_he_dl_ofdma_attr( 2441*5113495bSYour Name tpAniSirGlobal, 2442*5113495bSYour Name tDot11fTLVhe_dl_ofdma_attr *, 2443*5113495bSYour Name uint32_t*); 2444*5113495bSYour Name 2445*5113495bSYour Name #ifdef __cplusplus 2446*5113495bSYour Name }; /* End extern "C". */ 2447*5113495bSYour Name #endif /* C++ */ 2448*5113495bSYour Name 2449*5113495bSYour Name /* ID 9 (0x0009) */ 2450*5113495bSYour Name typedef struct sDot11fTLVhe_mcs13_attr { 2451*5113495bSYour Name uint8_t present; 2452*5113495bSYour Name uint8_t he_mcs_12_13_supp_80; 2453*5113495bSYour Name uint8_t he_mcs_12_13_supp_160; 2454*5113495bSYour Name } tDot11fTLVhe_mcs13_attr; 2455*5113495bSYour Name 2456*5113495bSYour Name #define DOT11F_TLV_HE_MCS13_ATTR (9) 2457*5113495bSYour Name 2458*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2459*5113495bSYour Name #define DOT11F_TLV_HE_MCS13_ATTR_MIN_LEN (2) 2460*5113495bSYour Name 2461*5113495bSYour Name #define DOT11F_TLV_HE_MCS13_ATTR_MAX_LEN (2) 2462*5113495bSYour Name 2463*5113495bSYour Name #ifdef __cplusplus 2464*5113495bSYour Name extern "C" { 2465*5113495bSYour Name #endif /* C++ */ 2466*5113495bSYour Name uint32_t dot11f_unpack_tlv_he_mcs13_attr( 2467*5113495bSYour Name tpAniSirGlobal, 2468*5113495bSYour Name uint8_t *, 2469*5113495bSYour Name uint16_t, 2470*5113495bSYour Name tDot11fTLVhe_mcs13_attr*); 2471*5113495bSYour Name 2472*5113495bSYour Name uint32_t dot11f_pack_tlv_he_mcs13_attr( 2473*5113495bSYour Name tpAniSirGlobal, 2474*5113495bSYour Name tDot11fTLVhe_mcs13_attr *, 2475*5113495bSYour Name uint8_t *, 2476*5113495bSYour Name uint32_t, 2477*5113495bSYour Name uint32_t*); 2478*5113495bSYour Name 2479*5113495bSYour Name uint32_t dot11f_get_packed_tlv_he_mcs13_attr( 2480*5113495bSYour Name tpAniSirGlobal, 2481*5113495bSYour Name tDot11fTLVhe_mcs13_attr *, 2482*5113495bSYour Name uint32_t*); 2483*5113495bSYour Name 2484*5113495bSYour Name #ifdef __cplusplus 2485*5113495bSYour Name }; /* End extern "C". */ 2486*5113495bSYour Name #endif /* C++ */ 2487*5113495bSYour Name 2488*5113495bSYour Name /* ID 1 (0x0001) */ 2489*5113495bSYour Name typedef struct sDot11fTLVmbo_ap_cap { 2490*5113495bSYour Name uint8_t present; 2491*5113495bSYour Name uint8_t mbo_cap_ind; 2492*5113495bSYour Name } tDot11fTLVmbo_ap_cap; 2493*5113495bSYour Name 2494*5113495bSYour Name #define DOT11F_TLV_MBO_AP_CAP (1) 2495*5113495bSYour Name 2496*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2497*5113495bSYour Name #define DOT11F_TLV_MBO_AP_CAP_MIN_LEN (1) 2498*5113495bSYour Name 2499*5113495bSYour Name #define DOT11F_TLV_MBO_AP_CAP_MAX_LEN (1) 2500*5113495bSYour Name 2501*5113495bSYour Name #ifdef __cplusplus 2502*5113495bSYour Name extern "C" { 2503*5113495bSYour Name #endif /* C++ */ 2504*5113495bSYour Name uint32_t dot11f_unpack_tlv_mbo_ap_cap( 2505*5113495bSYour Name tpAniSirGlobal, 2506*5113495bSYour Name uint8_t *, 2507*5113495bSYour Name uint16_t, 2508*5113495bSYour Name tDot11fTLVmbo_ap_cap*); 2509*5113495bSYour Name 2510*5113495bSYour Name uint32_t dot11f_pack_tlv_mbo_ap_cap( 2511*5113495bSYour Name tpAniSirGlobal, 2512*5113495bSYour Name tDot11fTLVmbo_ap_cap *, 2513*5113495bSYour Name uint8_t *, 2514*5113495bSYour Name uint32_t, 2515*5113495bSYour Name uint32_t*); 2516*5113495bSYour Name 2517*5113495bSYour Name uint32_t dot11f_get_packed_tlv_mbo_ap_cap( 2518*5113495bSYour Name tpAniSirGlobal, 2519*5113495bSYour Name tDot11fTLVmbo_ap_cap *, 2520*5113495bSYour Name uint32_t*); 2521*5113495bSYour Name 2522*5113495bSYour Name #ifdef __cplusplus 2523*5113495bSYour Name }; /* End extern "C". */ 2524*5113495bSYour Name #endif /* C++ */ 2525*5113495bSYour Name 2526*5113495bSYour Name /* ID 2 (0x0002) */ 2527*5113495bSYour Name typedef struct sDot11fTLVnon_prefferd_chan_rep { 2528*5113495bSYour Name uint8_t present; 2529*5113495bSYour Name uint8_t oper_class; 2530*5113495bSYour Name uint8_t num_channel_report; 2531*5113495bSYour Name uint8_t channel_report[254]; 2532*5113495bSYour Name } tDot11fTLVnon_prefferd_chan_rep; 2533*5113495bSYour Name 2534*5113495bSYour Name #define DOT11F_TLV_NON_PREFFERD_CHAN_REP (2) 2535*5113495bSYour Name 2536*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2537*5113495bSYour Name #define DOT11F_TLV_NON_PREFFERD_CHAN_REP_MIN_LEN (4) 2538*5113495bSYour Name 2539*5113495bSYour Name #define DOT11F_TLV_NON_PREFFERD_CHAN_REP_MAX_LEN (255) 2540*5113495bSYour Name 2541*5113495bSYour Name #ifdef __cplusplus 2542*5113495bSYour Name extern "C" { 2543*5113495bSYour Name #endif /* C++ */ 2544*5113495bSYour Name uint32_t dot11f_unpack_tlv_non_prefferd_chan_rep( 2545*5113495bSYour Name tpAniSirGlobal, 2546*5113495bSYour Name uint8_t *, 2547*5113495bSYour Name uint16_t, 2548*5113495bSYour Name tDot11fTLVnon_prefferd_chan_rep*); 2549*5113495bSYour Name 2550*5113495bSYour Name uint32_t dot11f_pack_tlv_non_prefferd_chan_rep( 2551*5113495bSYour Name tpAniSirGlobal, 2552*5113495bSYour Name tDot11fTLVnon_prefferd_chan_rep *, 2553*5113495bSYour Name uint8_t *, 2554*5113495bSYour Name uint32_t, 2555*5113495bSYour Name uint32_t*); 2556*5113495bSYour Name 2557*5113495bSYour Name uint32_t dot11f_get_packed_tlv_non_prefferd_chan_rep( 2558*5113495bSYour Name tpAniSirGlobal, 2559*5113495bSYour Name tDot11fTLVnon_prefferd_chan_rep *, 2560*5113495bSYour Name uint32_t*); 2561*5113495bSYour Name 2562*5113495bSYour Name #ifdef __cplusplus 2563*5113495bSYour Name }; /* End extern "C". */ 2564*5113495bSYour Name #endif /* C++ */ 2565*5113495bSYour Name 2566*5113495bSYour Name /* ID 101 (0x0065) */ 2567*5113495bSYour Name typedef struct sDot11fTLVoce_cap { 2568*5113495bSYour Name uint8_t present; 2569*5113495bSYour Name uint8_t oce_release:3; 2570*5113495bSYour Name uint8_t is_sta_cfon:1; 2571*5113495bSYour Name uint8_t non_oce_ap_present:1; 2572*5113495bSYour Name uint8_t reserved:3; 2573*5113495bSYour Name } tDot11fTLVoce_cap; 2574*5113495bSYour Name 2575*5113495bSYour Name #define DOT11F_TLV_OCE_CAP (101) 2576*5113495bSYour Name 2577*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2578*5113495bSYour Name #define DOT11F_TLV_OCE_CAP_MIN_LEN (1) 2579*5113495bSYour Name 2580*5113495bSYour Name #define DOT11F_TLV_OCE_CAP_MAX_LEN (1) 2581*5113495bSYour Name 2582*5113495bSYour Name #ifdef __cplusplus 2583*5113495bSYour Name extern "C" { 2584*5113495bSYour Name #endif /* C++ */ 2585*5113495bSYour Name uint32_t dot11f_unpack_tlv_oce_cap( 2586*5113495bSYour Name tpAniSirGlobal, 2587*5113495bSYour Name uint8_t *, 2588*5113495bSYour Name uint16_t, 2589*5113495bSYour Name tDot11fTLVoce_cap*); 2590*5113495bSYour Name 2591*5113495bSYour Name uint32_t dot11f_pack_tlv_oce_cap( 2592*5113495bSYour Name tpAniSirGlobal, 2593*5113495bSYour Name tDot11fTLVoce_cap *, 2594*5113495bSYour Name uint8_t *, 2595*5113495bSYour Name uint32_t, 2596*5113495bSYour Name uint32_t*); 2597*5113495bSYour Name 2598*5113495bSYour Name uint32_t dot11f_get_packed_tlv_oce_cap( 2599*5113495bSYour Name tpAniSirGlobal, 2600*5113495bSYour Name tDot11fTLVoce_cap *, 2601*5113495bSYour Name uint32_t*); 2602*5113495bSYour Name 2603*5113495bSYour Name #ifdef __cplusplus 2604*5113495bSYour Name }; /* End extern "C". */ 2605*5113495bSYour Name #endif /* C++ */ 2606*5113495bSYour Name 2607*5113495bSYour Name /* ID 1 (0x0001) */ 2608*5113495bSYour Name typedef struct sDot11fTLVqcn_version { 2609*5113495bSYour Name uint8_t present; 2610*5113495bSYour Name uint8_t version; 2611*5113495bSYour Name uint8_t sub_version; 2612*5113495bSYour Name } tDot11fTLVqcn_version; 2613*5113495bSYour Name 2614*5113495bSYour Name #define DOT11F_TLV_QCN_VERSION (1) 2615*5113495bSYour Name 2616*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2617*5113495bSYour Name #define DOT11F_TLV_QCN_VERSION_MIN_LEN (2) 2618*5113495bSYour Name 2619*5113495bSYour Name #define DOT11F_TLV_QCN_VERSION_MAX_LEN (2) 2620*5113495bSYour Name 2621*5113495bSYour Name #ifdef __cplusplus 2622*5113495bSYour Name extern "C" { 2623*5113495bSYour Name #endif /* C++ */ 2624*5113495bSYour Name uint32_t dot11f_unpack_tlv_qcn_version( 2625*5113495bSYour Name tpAniSirGlobal, 2626*5113495bSYour Name uint8_t *, 2627*5113495bSYour Name uint16_t, 2628*5113495bSYour Name tDot11fTLVqcn_version*); 2629*5113495bSYour Name 2630*5113495bSYour Name uint32_t dot11f_pack_tlv_qcn_version( 2631*5113495bSYour Name tpAniSirGlobal, 2632*5113495bSYour Name tDot11fTLVqcn_version *, 2633*5113495bSYour Name uint8_t *, 2634*5113495bSYour Name uint32_t, 2635*5113495bSYour Name uint32_t*); 2636*5113495bSYour Name 2637*5113495bSYour Name uint32_t dot11f_get_packed_tlv_qcn_version( 2638*5113495bSYour Name tpAniSirGlobal, 2639*5113495bSYour Name tDot11fTLVqcn_version *, 2640*5113495bSYour Name uint32_t*); 2641*5113495bSYour Name 2642*5113495bSYour Name #ifdef __cplusplus 2643*5113495bSYour Name }; /* End extern "C". */ 2644*5113495bSYour Name #endif /* C++ */ 2645*5113495bSYour Name 2646*5113495bSYour Name /* ID 103 (0x0067) */ 2647*5113495bSYour Name typedef struct sDot11fTLVreduced_wan_metrics { 2648*5113495bSYour Name uint8_t present; 2649*5113495bSYour Name uint8_t downlink_av_cap:4; 2650*5113495bSYour Name uint8_t uplink_av_cap:4; 2651*5113495bSYour Name } tDot11fTLVreduced_wan_metrics; 2652*5113495bSYour Name 2653*5113495bSYour Name #define DOT11F_TLV_REDUCED_WAN_METRICS (103) 2654*5113495bSYour Name 2655*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2656*5113495bSYour Name #define DOT11F_TLV_REDUCED_WAN_METRICS_MIN_LEN (1) 2657*5113495bSYour Name 2658*5113495bSYour Name #define DOT11F_TLV_REDUCED_WAN_METRICS_MAX_LEN (1) 2659*5113495bSYour Name 2660*5113495bSYour Name #ifdef __cplusplus 2661*5113495bSYour Name extern "C" { 2662*5113495bSYour Name #endif /* C++ */ 2663*5113495bSYour Name uint32_t dot11f_unpack_tlv_reduced_wan_metrics( 2664*5113495bSYour Name tpAniSirGlobal, 2665*5113495bSYour Name uint8_t *, 2666*5113495bSYour Name uint16_t, 2667*5113495bSYour Name tDot11fTLVreduced_wan_metrics*); 2668*5113495bSYour Name 2669*5113495bSYour Name uint32_t dot11f_pack_tlv_reduced_wan_metrics( 2670*5113495bSYour Name tpAniSirGlobal, 2671*5113495bSYour Name tDot11fTLVreduced_wan_metrics *, 2672*5113495bSYour Name uint8_t *, 2673*5113495bSYour Name uint32_t, 2674*5113495bSYour Name uint32_t*); 2675*5113495bSYour Name 2676*5113495bSYour Name uint32_t dot11f_get_packed_tlv_reduced_wan_metrics( 2677*5113495bSYour Name tpAniSirGlobal, 2678*5113495bSYour Name tDot11fTLVreduced_wan_metrics *, 2679*5113495bSYour Name uint32_t*); 2680*5113495bSYour Name 2681*5113495bSYour Name #ifdef __cplusplus 2682*5113495bSYour Name }; /* End extern "C". */ 2683*5113495bSYour Name #endif /* C++ */ 2684*5113495bSYour Name 2685*5113495bSYour Name /* ID 102 (0x0066) */ 2686*5113495bSYour Name typedef struct sDot11fTLVrssi_assoc_rej { 2687*5113495bSYour Name uint8_t present; 2688*5113495bSYour Name uint8_t delta_rssi; 2689*5113495bSYour Name uint8_t retry_delay; 2690*5113495bSYour Name } tDot11fTLVrssi_assoc_rej; 2691*5113495bSYour Name 2692*5113495bSYour Name #define DOT11F_TLV_RSSI_ASSOC_REJ (102) 2693*5113495bSYour Name 2694*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2695*5113495bSYour Name #define DOT11F_TLV_RSSI_ASSOC_REJ_MIN_LEN (2) 2696*5113495bSYour Name 2697*5113495bSYour Name #define DOT11F_TLV_RSSI_ASSOC_REJ_MAX_LEN (2) 2698*5113495bSYour Name 2699*5113495bSYour Name #ifdef __cplusplus 2700*5113495bSYour Name extern "C" { 2701*5113495bSYour Name #endif /* C++ */ 2702*5113495bSYour Name uint32_t dot11f_unpack_tlv_rssi_assoc_rej( 2703*5113495bSYour Name tpAniSirGlobal, 2704*5113495bSYour Name uint8_t *, 2705*5113495bSYour Name uint16_t, 2706*5113495bSYour Name tDot11fTLVrssi_assoc_rej*); 2707*5113495bSYour Name 2708*5113495bSYour Name uint32_t dot11f_pack_tlv_rssi_assoc_rej( 2709*5113495bSYour Name tpAniSirGlobal, 2710*5113495bSYour Name tDot11fTLVrssi_assoc_rej *, 2711*5113495bSYour Name uint8_t *, 2712*5113495bSYour Name uint32_t, 2713*5113495bSYour Name uint32_t*); 2714*5113495bSYour Name 2715*5113495bSYour Name uint32_t dot11f_get_packed_tlv_rssi_assoc_rej( 2716*5113495bSYour Name tpAniSirGlobal, 2717*5113495bSYour Name tDot11fTLVrssi_assoc_rej *, 2718*5113495bSYour Name uint32_t*); 2719*5113495bSYour Name 2720*5113495bSYour Name #ifdef __cplusplus 2721*5113495bSYour Name }; /* End extern "C". */ 2722*5113495bSYour Name #endif /* C++ */ 2723*5113495bSYour Name 2724*5113495bSYour Name /* ID 6 (0x0006) */ 2725*5113495bSYour Name typedef struct sDot11fTLVtrans_reasonp_attr { 2726*5113495bSYour Name uint8_t present; 2727*5113495bSYour Name uint8_t transition_reasonp; 2728*5113495bSYour Name } tDot11fTLVtrans_reasonp_attr; 2729*5113495bSYour Name 2730*5113495bSYour Name #define DOT11F_TLV_TRANS_REASONP_ATTR (6) 2731*5113495bSYour Name 2732*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2733*5113495bSYour Name #define DOT11F_TLV_TRANS_REASONP_ATTR_MIN_LEN (1) 2734*5113495bSYour Name 2735*5113495bSYour Name #define DOT11F_TLV_TRANS_REASONP_ATTR_MAX_LEN (1) 2736*5113495bSYour Name 2737*5113495bSYour Name #ifdef __cplusplus 2738*5113495bSYour Name extern "C" { 2739*5113495bSYour Name #endif /* C++ */ 2740*5113495bSYour Name uint32_t dot11f_unpack_tlv_trans_reasonp_attr( 2741*5113495bSYour Name tpAniSirGlobal, 2742*5113495bSYour Name uint8_t *, 2743*5113495bSYour Name uint16_t, 2744*5113495bSYour Name tDot11fTLVtrans_reasonp_attr*); 2745*5113495bSYour Name 2746*5113495bSYour Name uint32_t dot11f_pack_tlv_trans_reasonp_attr( 2747*5113495bSYour Name tpAniSirGlobal, 2748*5113495bSYour Name tDot11fTLVtrans_reasonp_attr *, 2749*5113495bSYour Name uint8_t *, 2750*5113495bSYour Name uint32_t, 2751*5113495bSYour Name uint32_t*); 2752*5113495bSYour Name 2753*5113495bSYour Name uint32_t dot11f_get_packed_tlv_trans_reasonp_attr( 2754*5113495bSYour Name tpAniSirGlobal, 2755*5113495bSYour Name tDot11fTLVtrans_reasonp_attr *, 2756*5113495bSYour Name uint32_t*); 2757*5113495bSYour Name 2758*5113495bSYour Name #ifdef __cplusplus 2759*5113495bSYour Name }; /* End extern "C". */ 2760*5113495bSYour Name #endif /* C++ */ 2761*5113495bSYour Name 2762*5113495bSYour Name /* ID 7 (0x0007) */ 2763*5113495bSYour Name typedef struct sDot11fTLVtrans_rejectp_attr { 2764*5113495bSYour Name uint8_t present; 2765*5113495bSYour Name uint8_t transition_rejp; 2766*5113495bSYour Name } tDot11fTLVtrans_rejectp_attr; 2767*5113495bSYour Name 2768*5113495bSYour Name #define DOT11F_TLV_TRANS_REJECTP_ATTR (7) 2769*5113495bSYour Name 2770*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2771*5113495bSYour Name #define DOT11F_TLV_TRANS_REJECTP_ATTR_MIN_LEN (1) 2772*5113495bSYour Name 2773*5113495bSYour Name #define DOT11F_TLV_TRANS_REJECTP_ATTR_MAX_LEN (1) 2774*5113495bSYour Name 2775*5113495bSYour Name #ifdef __cplusplus 2776*5113495bSYour Name extern "C" { 2777*5113495bSYour Name #endif /* C++ */ 2778*5113495bSYour Name uint32_t dot11f_unpack_tlv_trans_rejectp_attr( 2779*5113495bSYour Name tpAniSirGlobal, 2780*5113495bSYour Name uint8_t *, 2781*5113495bSYour Name uint16_t, 2782*5113495bSYour Name tDot11fTLVtrans_rejectp_attr*); 2783*5113495bSYour Name 2784*5113495bSYour Name uint32_t dot11f_pack_tlv_trans_rejectp_attr( 2785*5113495bSYour Name tpAniSirGlobal, 2786*5113495bSYour Name tDot11fTLVtrans_rejectp_attr *, 2787*5113495bSYour Name uint8_t *, 2788*5113495bSYour Name uint32_t, 2789*5113495bSYour Name uint32_t*); 2790*5113495bSYour Name 2791*5113495bSYour Name uint32_t dot11f_get_packed_tlv_trans_rejectp_attr( 2792*5113495bSYour Name tpAniSirGlobal, 2793*5113495bSYour Name tDot11fTLVtrans_rejectp_attr *, 2794*5113495bSYour Name uint32_t*); 2795*5113495bSYour Name 2796*5113495bSYour Name #ifdef __cplusplus 2797*5113495bSYour Name }; /* End extern "C". */ 2798*5113495bSYour Name #endif /* C++ */ 2799*5113495bSYour Name 2800*5113495bSYour Name /* ID 6 (0x0006) */ 2801*5113495bSYour Name typedef struct sDot11fTLVtransition_reason { 2802*5113495bSYour Name uint8_t present; 2803*5113495bSYour Name uint8_t transition_reason_code; 2804*5113495bSYour Name } tDot11fTLVtransition_reason; 2805*5113495bSYour Name 2806*5113495bSYour Name #define DOT11F_TLV_TRANSITION_REASON (6) 2807*5113495bSYour Name 2808*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2809*5113495bSYour Name #define DOT11F_TLV_TRANSITION_REASON_MIN_LEN (1) 2810*5113495bSYour Name 2811*5113495bSYour Name #define DOT11F_TLV_TRANSITION_REASON_MAX_LEN (1) 2812*5113495bSYour Name 2813*5113495bSYour Name #ifdef __cplusplus 2814*5113495bSYour Name extern "C" { 2815*5113495bSYour Name #endif /* C++ */ 2816*5113495bSYour Name uint32_t dot11f_unpack_tlv_transition_reason( 2817*5113495bSYour Name tpAniSirGlobal, 2818*5113495bSYour Name uint8_t *, 2819*5113495bSYour Name uint16_t, 2820*5113495bSYour Name tDot11fTLVtransition_reason*); 2821*5113495bSYour Name 2822*5113495bSYour Name uint32_t dot11f_pack_tlv_transition_reason( 2823*5113495bSYour Name tpAniSirGlobal, 2824*5113495bSYour Name tDot11fTLVtransition_reason *, 2825*5113495bSYour Name uint8_t *, 2826*5113495bSYour Name uint32_t, 2827*5113495bSYour Name uint32_t*); 2828*5113495bSYour Name 2829*5113495bSYour Name uint32_t dot11f_get_packed_tlv_transition_reason( 2830*5113495bSYour Name tpAniSirGlobal, 2831*5113495bSYour Name tDot11fTLVtransition_reason *, 2832*5113495bSYour Name uint32_t*); 2833*5113495bSYour Name 2834*5113495bSYour Name #ifdef __cplusplus 2835*5113495bSYour Name }; /* End extern "C". */ 2836*5113495bSYour Name #endif /* C++ */ 2837*5113495bSYour Name 2838*5113495bSYour Name /* ID 7 (0x0007) */ 2839*5113495bSYour Name typedef struct sDot11fTLVtransition_reject_reason { 2840*5113495bSYour Name uint8_t present; 2841*5113495bSYour Name uint8_t transition_reject_code; 2842*5113495bSYour Name } tDot11fTLVtransition_reject_reason; 2843*5113495bSYour Name 2844*5113495bSYour Name #define DOT11F_TLV_TRANSITION_REJECT_REASON (7) 2845*5113495bSYour Name 2846*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2847*5113495bSYour Name #define DOT11F_TLV_TRANSITION_REJECT_REASON_MIN_LEN (1) 2848*5113495bSYour Name 2849*5113495bSYour Name #define DOT11F_TLV_TRANSITION_REJECT_REASON_MAX_LEN (1) 2850*5113495bSYour Name 2851*5113495bSYour Name #ifdef __cplusplus 2852*5113495bSYour Name extern "C" { 2853*5113495bSYour Name #endif /* C++ */ 2854*5113495bSYour Name uint32_t dot11f_unpack_tlv_transition_reject_reason( 2855*5113495bSYour Name tpAniSirGlobal, 2856*5113495bSYour Name uint8_t *, 2857*5113495bSYour Name uint16_t, 2858*5113495bSYour Name tDot11fTLVtransition_reject_reason*); 2859*5113495bSYour Name 2860*5113495bSYour Name uint32_t dot11f_pack_tlv_transition_reject_reason( 2861*5113495bSYour Name tpAniSirGlobal, 2862*5113495bSYour Name tDot11fTLVtransition_reject_reason *, 2863*5113495bSYour Name uint8_t *, 2864*5113495bSYour Name uint32_t, 2865*5113495bSYour Name uint32_t*); 2866*5113495bSYour Name 2867*5113495bSYour Name uint32_t dot11f_get_packed_tlv_transition_reject_reason( 2868*5113495bSYour Name tpAniSirGlobal, 2869*5113495bSYour Name tDot11fTLVtransition_reject_reason *, 2870*5113495bSYour Name uint32_t*); 2871*5113495bSYour Name 2872*5113495bSYour Name #ifdef __cplusplus 2873*5113495bSYour Name }; /* End extern "C". */ 2874*5113495bSYour Name #endif /* C++ */ 2875*5113495bSYour Name 2876*5113495bSYour Name /* ID 2 (0x0002) */ 2877*5113495bSYour Name typedef struct sDot11fTLVvht_mcs11_attr { 2878*5113495bSYour Name uint8_t present; 2879*5113495bSYour Name uint8_t vht_mcs_10_11_supp; 2880*5113495bSYour Name } tDot11fTLVvht_mcs11_attr; 2881*5113495bSYour Name 2882*5113495bSYour Name #define DOT11F_TLV_VHT_MCS11_ATTR (2) 2883*5113495bSYour Name 2884*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2885*5113495bSYour Name #define DOT11F_TLV_VHT_MCS11_ATTR_MIN_LEN (1) 2886*5113495bSYour Name 2887*5113495bSYour Name #define DOT11F_TLV_VHT_MCS11_ATTR_MAX_LEN (1) 2888*5113495bSYour Name 2889*5113495bSYour Name #ifdef __cplusplus 2890*5113495bSYour Name extern "C" { 2891*5113495bSYour Name #endif /* C++ */ 2892*5113495bSYour Name uint32_t dot11f_unpack_tlv_vht_mcs11_attr( 2893*5113495bSYour Name tpAniSirGlobal, 2894*5113495bSYour Name uint8_t *, 2895*5113495bSYour Name uint16_t, 2896*5113495bSYour Name tDot11fTLVvht_mcs11_attr*); 2897*5113495bSYour Name 2898*5113495bSYour Name uint32_t dot11f_pack_tlv_vht_mcs11_attr( 2899*5113495bSYour Name tpAniSirGlobal, 2900*5113495bSYour Name tDot11fTLVvht_mcs11_attr *, 2901*5113495bSYour Name uint8_t *, 2902*5113495bSYour Name uint32_t, 2903*5113495bSYour Name uint32_t*); 2904*5113495bSYour Name 2905*5113495bSYour Name uint32_t dot11f_get_packed_tlv_vht_mcs11_attr( 2906*5113495bSYour Name tpAniSirGlobal, 2907*5113495bSYour Name tDot11fTLVvht_mcs11_attr *, 2908*5113495bSYour Name uint32_t*); 2909*5113495bSYour Name 2910*5113495bSYour Name #ifdef __cplusplus 2911*5113495bSYour Name }; /* End extern "C". */ 2912*5113495bSYour Name #endif /* C++ */ 2913*5113495bSYour Name 2914*5113495bSYour Name /* ID 16 (0x0010) */ 2915*5113495bSYour Name typedef struct sDot11fTLVP2PInterface { 2916*5113495bSYour Name uint8_t present; 2917*5113495bSYour Name uint8_t P2PDeviceAddress[6]; 2918*5113495bSYour Name } tDot11fTLVP2PInterface; 2919*5113495bSYour Name 2920*5113495bSYour Name #define DOT11F_TLV_P2PINTERFACE (16) 2921*5113495bSYour Name 2922*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2923*5113495bSYour Name #define DOT11F_TLV_P2PINTERFACE_MIN_LEN (7) 2924*5113495bSYour Name 2925*5113495bSYour Name #define DOT11F_TLV_P2PINTERFACE_MAX_LEN (7) 2926*5113495bSYour Name 2927*5113495bSYour Name #ifdef __cplusplus 2928*5113495bSYour Name extern "C" { 2929*5113495bSYour Name #endif /* C++ */ 2930*5113495bSYour Name uint32_t dot11f_unpack_tlv_p2_p_interface( 2931*5113495bSYour Name tpAniSirGlobal, 2932*5113495bSYour Name uint8_t *, 2933*5113495bSYour Name uint16_t, 2934*5113495bSYour Name tDot11fTLVP2PInterface*); 2935*5113495bSYour Name 2936*5113495bSYour Name uint32_t dot11f_pack_tlv_p2_p_interface( 2937*5113495bSYour Name tpAniSirGlobal, 2938*5113495bSYour Name tDot11fTLVP2PInterface *, 2939*5113495bSYour Name uint8_t *, 2940*5113495bSYour Name uint32_t, 2941*5113495bSYour Name uint32_t*); 2942*5113495bSYour Name 2943*5113495bSYour Name uint32_t dot11f_get_packed_tlv_P2PInterface( 2944*5113495bSYour Name tpAniSirGlobal, 2945*5113495bSYour Name tDot11fTLVP2PInterface *, 2946*5113495bSYour Name uint32_t*); 2947*5113495bSYour Name 2948*5113495bSYour Name #ifdef __cplusplus 2949*5113495bSYour Name }; /* End extern "C". */ 2950*5113495bSYour Name #endif /* C++ */ 2951*5113495bSYour Name 2952*5113495bSYour Name /* ID 10 (0x000a) */ 2953*5113495bSYour Name typedef struct sDot11fTLVP2PManageability { 2954*5113495bSYour Name uint8_t present; 2955*5113495bSYour Name uint8_t manageability; 2956*5113495bSYour Name } tDot11fTLVP2PManageability; 2957*5113495bSYour Name 2958*5113495bSYour Name #define DOT11F_TLV_P2PMANAGEABILITY (10) 2959*5113495bSYour Name 2960*5113495bSYour Name /* N.B. These #defines do *not* include the ID & length */ 2961*5113495bSYour Name #define DOT11F_TLV_P2PMANAGEABILITY_MIN_LEN (2) 2962*5113495bSYour Name 2963*5113495bSYour Name #define DOT11F_TLV_P2PMANAGEABILITY_MAX_LEN (2) 2964*5113495bSYour Name 2965*5113495bSYour Name #ifdef __cplusplus 2966*5113495bSYour Name extern "C" { 2967*5113495bSYour Name #endif /* C++ */ 2968*5113495bSYour Name uint32_t dot11f_unpack_tlv_P2PManageability( 2969*5113495bSYour Name tpAniSirGlobal, 2970*5113495bSYour Name uint8_t *, 2971*5113495bSYour Name uint16_t, 2972*5113495bSYour Name tDot11fTLVP2PManageability*); 2973*5113495bSYour Name 2974*5113495bSYour Name uint32_t dot11f_pack_tlv_p2_p_manageability( 2975*5113495bSYour Name tpAniSirGlobal, 2976*5113495bSYour Name tDot11fTLVP2PManageability *, 2977*5113495bSYour Name uint8_t *, 2978*5113495bSYour Name uint32_t, 2979*5113495bSYour Name uint32_t*); 2980*5113495bSYour Name 2981*5113495bSYour Name uint32_t dot11f_get_packed_tlv_P2PManageability( 2982*5113495bSYour Name tpAniSirGlobal, 2983*5113495bSYour Name tDot11fTLVP2PManageability *, 2984*5113495bSYour Name uint32_t*); 2985*5113495bSYour Name 2986*5113495bSYour Name #ifdef __cplusplus 2987*5113495bSYour Name }; /* End extern "C". */ 2988*5113495bSYour Name #endif /* C++ */ 2989*5113495bSYour Name /********************************************************************* 2990*5113495bSYour Name * Information Elements * 2991*5113495bSYour Name ********************************************************************/ 2992*5113495bSYour Name 2993*5113495bSYour Name 2994*5113495bSYour Name /* EID 2 (0x02) */ 2995*5113495bSYour Name typedef struct sDot11fIEGTK { 2996*5113495bSYour Name uint8_t present; 2997*5113495bSYour Name uint16_t keyId:2; 2998*5113495bSYour Name uint16_t reserved:14; 2999*5113495bSYour Name uint8_t keyLength; 3000*5113495bSYour Name uint8_t RSC[8]; 3001*5113495bSYour Name uint8_t num_key; 3002*5113495bSYour Name uint8_t key[32]; 3003*5113495bSYour Name } tDot11fIEGTK; 3004*5113495bSYour Name 3005*5113495bSYour Name #define DOT11F_EID_GTK (2) 3006*5113495bSYour Name 3007*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3008*5113495bSYour Name #define DOT11F_IE_GTK_MIN_LEN (16) 3009*5113495bSYour Name 3010*5113495bSYour Name #define DOT11F_IE_GTK_MAX_LEN (43) 3011*5113495bSYour Name 3012*5113495bSYour Name #ifdef __cplusplus 3013*5113495bSYour Name extern "C" { 3014*5113495bSYour Name #endif /* C++ */ 3015*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_gtk( 3016*5113495bSYour Name tpAniSirGlobal, 3017*5113495bSYour Name uint8_t *, 3018*5113495bSYour Name uint8_t, 3019*5113495bSYour Name tDot11fIEGTK*, 3020*5113495bSYour Name bool); 3021*5113495bSYour Name 3022*5113495bSYour Name uint32_t dot11f_pack_ie_gtk( 3023*5113495bSYour Name tpAniSirGlobal, 3024*5113495bSYour Name tDot11fIEGTK *, 3025*5113495bSYour Name uint8_t *, 3026*5113495bSYour Name uint32_t, 3027*5113495bSYour Name uint32_t*); 3028*5113495bSYour Name 3029*5113495bSYour Name uint32_t dot11f_get_packed_ie_GTK( 3030*5113495bSYour Name tpAniSirGlobal, 3031*5113495bSYour Name tDot11fIEGTK *, 3032*5113495bSYour Name uint32_t*); 3033*5113495bSYour Name 3034*5113495bSYour Name #ifdef __cplusplus 3035*5113495bSYour Name }; /* End extern "C". */ 3036*5113495bSYour Name #endif /* C++ */ 3037*5113495bSYour Name 3038*5113495bSYour Name /* EID 4 (0x04) */ 3039*5113495bSYour Name typedef struct sDot11fIEIGTK { 3040*5113495bSYour Name uint8_t present; 3041*5113495bSYour Name uint8_t keyID[2]; 3042*5113495bSYour Name uint8_t IPN[6]; 3043*5113495bSYour Name uint8_t keyLength; 3044*5113495bSYour Name uint8_t key[24]; 3045*5113495bSYour Name } tDot11fIEIGTK; 3046*5113495bSYour Name 3047*5113495bSYour Name #define DOT11F_EID_IGTK (4) 3048*5113495bSYour Name 3049*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3050*5113495bSYour Name #define DOT11F_IE_IGTK_MIN_LEN (33) 3051*5113495bSYour Name 3052*5113495bSYour Name #define DOT11F_IE_IGTK_MAX_LEN (33) 3053*5113495bSYour Name 3054*5113495bSYour Name #ifdef __cplusplus 3055*5113495bSYour Name extern "C" { 3056*5113495bSYour Name #endif /* C++ */ 3057*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_igtk( 3058*5113495bSYour Name tpAniSirGlobal, 3059*5113495bSYour Name uint8_t *, 3060*5113495bSYour Name uint8_t, 3061*5113495bSYour Name tDot11fIEIGTK*, 3062*5113495bSYour Name bool); 3063*5113495bSYour Name 3064*5113495bSYour Name uint32_t dot11f_pack_ie_igtk( 3065*5113495bSYour Name tpAniSirGlobal, 3066*5113495bSYour Name tDot11fIEIGTK *, 3067*5113495bSYour Name uint8_t *, 3068*5113495bSYour Name uint32_t, 3069*5113495bSYour Name uint32_t*); 3070*5113495bSYour Name 3071*5113495bSYour Name uint32_t dot11f_get_packed_ie_IGTK( 3072*5113495bSYour Name tpAniSirGlobal, 3073*5113495bSYour Name tDot11fIEIGTK *, 3074*5113495bSYour Name uint32_t*); 3075*5113495bSYour Name 3076*5113495bSYour Name #ifdef __cplusplus 3077*5113495bSYour Name }; /* End extern "C". */ 3078*5113495bSYour Name #endif /* C++ */ 3079*5113495bSYour Name 3080*5113495bSYour Name /* EID 3 (0x03) */ 3081*5113495bSYour Name typedef struct sDot11fIER0KH_ID { 3082*5113495bSYour Name uint8_t present; 3083*5113495bSYour Name uint8_t num_PMK_R0_ID; 3084*5113495bSYour Name uint8_t PMK_R0_ID[48]; 3085*5113495bSYour Name } tDot11fIER0KH_ID; 3086*5113495bSYour Name 3087*5113495bSYour Name #define DOT11F_EID_R0KH_ID (3) 3088*5113495bSYour Name 3089*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3090*5113495bSYour Name #define DOT11F_IE_R0KH_ID_MIN_LEN (1) 3091*5113495bSYour Name 3092*5113495bSYour Name #define DOT11F_IE_R0KH_ID_MAX_LEN (48) 3093*5113495bSYour Name 3094*5113495bSYour Name #ifdef __cplusplus 3095*5113495bSYour Name extern "C" { 3096*5113495bSYour Name #endif /* C++ */ 3097*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_r0_kh_id( 3098*5113495bSYour Name tpAniSirGlobal, 3099*5113495bSYour Name uint8_t *, 3100*5113495bSYour Name uint8_t, 3101*5113495bSYour Name tDot11fIER0KH_ID*, 3102*5113495bSYour Name bool); 3103*5113495bSYour Name 3104*5113495bSYour Name uint32_t dot11f_pack_ie_r0_kh_id( 3105*5113495bSYour Name tpAniSirGlobal, 3106*5113495bSYour Name tDot11fIER0KH_ID *, 3107*5113495bSYour Name uint8_t *, 3108*5113495bSYour Name uint32_t, 3109*5113495bSYour Name uint32_t*); 3110*5113495bSYour Name 3111*5113495bSYour Name uint32_t dot11f_get_packed_ie_R0KH_ID( 3112*5113495bSYour Name tpAniSirGlobal, 3113*5113495bSYour Name tDot11fIER0KH_ID *, 3114*5113495bSYour Name uint32_t*); 3115*5113495bSYour Name 3116*5113495bSYour Name #ifdef __cplusplus 3117*5113495bSYour Name }; /* End extern "C". */ 3118*5113495bSYour Name #endif /* C++ */ 3119*5113495bSYour Name 3120*5113495bSYour Name /* EID 1 (0x01) */ 3121*5113495bSYour Name typedef struct sDot11fIER1KH_ID { 3122*5113495bSYour Name uint8_t present; 3123*5113495bSYour Name uint8_t PMK_R1_ID[6]; 3124*5113495bSYour Name } tDot11fIER1KH_ID; 3125*5113495bSYour Name 3126*5113495bSYour Name #define DOT11F_EID_R1KH_ID (1) 3127*5113495bSYour Name 3128*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3129*5113495bSYour Name #define DOT11F_IE_R1KH_ID_MIN_LEN (6) 3130*5113495bSYour Name 3131*5113495bSYour Name #define DOT11F_IE_R1KH_ID_MAX_LEN (6) 3132*5113495bSYour Name 3133*5113495bSYour Name #ifdef __cplusplus 3134*5113495bSYour Name extern "C" { 3135*5113495bSYour Name #endif /* C++ */ 3136*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_r1_kh_id( 3137*5113495bSYour Name tpAniSirGlobal, 3138*5113495bSYour Name uint8_t *, 3139*5113495bSYour Name uint8_t, 3140*5113495bSYour Name tDot11fIER1KH_ID*, 3141*5113495bSYour Name bool); 3142*5113495bSYour Name 3143*5113495bSYour Name uint32_t dot11f_pack_ie_r1_kh_id( 3144*5113495bSYour Name tpAniSirGlobal, 3145*5113495bSYour Name tDot11fIER1KH_ID *, 3146*5113495bSYour Name uint8_t *, 3147*5113495bSYour Name uint32_t, 3148*5113495bSYour Name uint32_t*); 3149*5113495bSYour Name 3150*5113495bSYour Name uint32_t dot11f_get_packed_ie_R1KH_ID( 3151*5113495bSYour Name tpAniSirGlobal, 3152*5113495bSYour Name tDot11fIER1KH_ID *, 3153*5113495bSYour Name uint32_t*); 3154*5113495bSYour Name 3155*5113495bSYour Name #ifdef __cplusplus 3156*5113495bSYour Name }; /* End extern "C". */ 3157*5113495bSYour Name #endif /* C++ */ 3158*5113495bSYour Name 3159*5113495bSYour Name /* EID 51 (0x33) */ 3160*5113495bSYour Name typedef struct sDot11fIEAPChannelReport { 3161*5113495bSYour Name uint8_t present; 3162*5113495bSYour Name uint8_t regulatoryClass; 3163*5113495bSYour Name uint8_t num_channelList; 3164*5113495bSYour Name uint8_t channelList[50]; 3165*5113495bSYour Name } tDot11fIEAPChannelReport; 3166*5113495bSYour Name 3167*5113495bSYour Name #define DOT11F_EID_APCHANNELREPORT (51) 3168*5113495bSYour Name 3169*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3170*5113495bSYour Name #define DOT11F_IE_APCHANNELREPORT_MIN_LEN (1) 3171*5113495bSYour Name 3172*5113495bSYour Name #define DOT11F_IE_APCHANNELREPORT_MAX_LEN (51) 3173*5113495bSYour Name 3174*5113495bSYour Name #ifdef __cplusplus 3175*5113495bSYour Name extern "C" { 3176*5113495bSYour Name #endif /* C++ */ 3177*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ap_channel_report( 3178*5113495bSYour Name tpAniSirGlobal, 3179*5113495bSYour Name uint8_t *, 3180*5113495bSYour Name uint8_t, 3181*5113495bSYour Name tDot11fIEAPChannelReport*, 3182*5113495bSYour Name bool); 3183*5113495bSYour Name 3184*5113495bSYour Name uint32_t dot11f_pack_ie_ap_channel_report( 3185*5113495bSYour Name tpAniSirGlobal, 3186*5113495bSYour Name tDot11fIEAPChannelReport *, 3187*5113495bSYour Name uint8_t *, 3188*5113495bSYour Name uint32_t, 3189*5113495bSYour Name uint32_t*); 3190*5113495bSYour Name 3191*5113495bSYour Name uint32_t dot11f_get_packed_ie_APChannelReport( 3192*5113495bSYour Name tpAniSirGlobal, 3193*5113495bSYour Name tDot11fIEAPChannelReport *, 3194*5113495bSYour Name uint32_t*); 3195*5113495bSYour Name 3196*5113495bSYour Name #ifdef __cplusplus 3197*5113495bSYour Name }; /* End extern "C". */ 3198*5113495bSYour Name #endif /* C++ */ 3199*5113495bSYour Name 3200*5113495bSYour Name /* EID 2 (0x02) */ 3201*5113495bSYour Name typedef struct sDot11fIEBcnReportingDetail { 3202*5113495bSYour Name uint8_t present; 3203*5113495bSYour Name uint8_t reportingDetail; 3204*5113495bSYour Name } tDot11fIEBcnReportingDetail; 3205*5113495bSYour Name 3206*5113495bSYour Name #define DOT11F_EID_BCNREPORTINGDETAIL (2) 3207*5113495bSYour Name 3208*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3209*5113495bSYour Name #define DOT11F_IE_BCNREPORTINGDETAIL_MIN_LEN (1) 3210*5113495bSYour Name 3211*5113495bSYour Name #define DOT11F_IE_BCNREPORTINGDETAIL_MAX_LEN (1) 3212*5113495bSYour Name 3213*5113495bSYour Name #ifdef __cplusplus 3214*5113495bSYour Name extern "C" { 3215*5113495bSYour Name #endif /* C++ */ 3216*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_bcn_reporting_detail( 3217*5113495bSYour Name tpAniSirGlobal, 3218*5113495bSYour Name uint8_t *, 3219*5113495bSYour Name uint8_t, 3220*5113495bSYour Name tDot11fIEBcnReportingDetail*, 3221*5113495bSYour Name bool); 3222*5113495bSYour Name 3223*5113495bSYour Name uint32_t dot11f_pack_ie_bcn_reporting_detail( 3224*5113495bSYour Name tpAniSirGlobal, 3225*5113495bSYour Name tDot11fIEBcnReportingDetail *, 3226*5113495bSYour Name uint8_t *, 3227*5113495bSYour Name uint32_t, 3228*5113495bSYour Name uint32_t*); 3229*5113495bSYour Name 3230*5113495bSYour Name uint32_t dot11f_get_packed_ie_BcnReportingDetail( 3231*5113495bSYour Name tpAniSirGlobal, 3232*5113495bSYour Name tDot11fIEBcnReportingDetail *, 3233*5113495bSYour Name uint32_t*); 3234*5113495bSYour Name 3235*5113495bSYour Name #ifdef __cplusplus 3236*5113495bSYour Name }; /* End extern "C". */ 3237*5113495bSYour Name #endif /* C++ */ 3238*5113495bSYour Name 3239*5113495bSYour Name /* EID 1 (0x01) */ 3240*5113495bSYour Name typedef struct sDot11fIEBeaconReportFrmBody { 3241*5113495bSYour Name uint8_t present; 3242*5113495bSYour Name uint8_t num_reportedFields; 3243*5113495bSYour Name uint8_t reportedFields[224]; 3244*5113495bSYour Name } tDot11fIEBeaconReportFrmBody; 3245*5113495bSYour Name 3246*5113495bSYour Name #define DOT11F_EID_BEACONREPORTFRMBODY (1) 3247*5113495bSYour Name 3248*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3249*5113495bSYour Name #define DOT11F_IE_BEACONREPORTFRMBODY_MIN_LEN (0) 3250*5113495bSYour Name 3251*5113495bSYour Name #define DOT11F_IE_BEACONREPORTFRMBODY_MAX_LEN (224) 3252*5113495bSYour Name 3253*5113495bSYour Name #ifdef __cplusplus 3254*5113495bSYour Name extern "C" { 3255*5113495bSYour Name #endif /* C++ */ 3256*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_beacon_report_frm_body( 3257*5113495bSYour Name tpAniSirGlobal, 3258*5113495bSYour Name uint8_t *, 3259*5113495bSYour Name uint8_t, 3260*5113495bSYour Name tDot11fIEBeaconReportFrmBody*, 3261*5113495bSYour Name bool); 3262*5113495bSYour Name 3263*5113495bSYour Name uint32_t dot11f_pack_ie_beacon_report_frm_body( 3264*5113495bSYour Name tpAniSirGlobal, 3265*5113495bSYour Name tDot11fIEBeaconReportFrmBody *, 3266*5113495bSYour Name uint8_t *, 3267*5113495bSYour Name uint32_t, 3268*5113495bSYour Name uint32_t*); 3269*5113495bSYour Name 3270*5113495bSYour Name uint32_t dot11f_get_packed_ie_BeaconReportFrmBody( 3271*5113495bSYour Name tpAniSirGlobal, 3272*5113495bSYour Name tDot11fIEBeaconReportFrmBody *, 3273*5113495bSYour Name uint32_t*); 3274*5113495bSYour Name 3275*5113495bSYour Name #ifdef __cplusplus 3276*5113495bSYour Name }; /* End extern "C". */ 3277*5113495bSYour Name #endif /* C++ */ 3278*5113495bSYour Name 3279*5113495bSYour Name /* EID 2 (0x02) */ 3280*5113495bSYour Name typedef struct sDot11fIECondensedCountryStr { 3281*5113495bSYour Name uint8_t present; 3282*5113495bSYour Name uint8_t countryStr[2]; 3283*5113495bSYour Name } tDot11fIECondensedCountryStr; 3284*5113495bSYour Name 3285*5113495bSYour Name #define DOT11F_EID_CONDENSEDCOUNTRYSTR (2) 3286*5113495bSYour Name 3287*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3288*5113495bSYour Name #define DOT11F_IE_CONDENSEDCOUNTRYSTR_MIN_LEN (2) 3289*5113495bSYour Name 3290*5113495bSYour Name #define DOT11F_IE_CONDENSEDCOUNTRYSTR_MAX_LEN (2) 3291*5113495bSYour Name 3292*5113495bSYour Name #ifdef __cplusplus 3293*5113495bSYour Name extern "C" { 3294*5113495bSYour Name #endif /* C++ */ 3295*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_condensed_country_str( 3296*5113495bSYour Name tpAniSirGlobal, 3297*5113495bSYour Name uint8_t *, 3298*5113495bSYour Name uint8_t, 3299*5113495bSYour Name tDot11fIECondensedCountryStr*, 3300*5113495bSYour Name bool); 3301*5113495bSYour Name 3302*5113495bSYour Name uint32_t dot11f_pack_ie_condensed_country_str( 3303*5113495bSYour Name tpAniSirGlobal, 3304*5113495bSYour Name tDot11fIECondensedCountryStr *, 3305*5113495bSYour Name uint8_t *, 3306*5113495bSYour Name uint32_t, 3307*5113495bSYour Name uint32_t*); 3308*5113495bSYour Name 3309*5113495bSYour Name uint32_t dot11f_get_packed_ie_CondensedCountryStr( 3310*5113495bSYour Name tpAniSirGlobal, 3311*5113495bSYour Name tDot11fIECondensedCountryStr *, 3312*5113495bSYour Name uint32_t*); 3313*5113495bSYour Name 3314*5113495bSYour Name #ifdef __cplusplus 3315*5113495bSYour Name }; /* End extern "C". */ 3316*5113495bSYour Name #endif /* C++ */ 3317*5113495bSYour Name 3318*5113495bSYour Name /* EID 11 (0x0b) */ 3319*5113495bSYour Name typedef struct sDot11fIEExtRequestedInfo { 3320*5113495bSYour Name uint8_t present; 3321*5113495bSYour Name uint8_t req_element_id; 3322*5113495bSYour Name uint8_t num_req_element_id_ext; 3323*5113495bSYour Name uint8_t req_element_id_ext[255]; 3324*5113495bSYour Name } tDot11fIEExtRequestedInfo; 3325*5113495bSYour Name 3326*5113495bSYour Name #define DOT11F_EID_EXTREQUESTEDINFO (11) 3327*5113495bSYour Name 3328*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3329*5113495bSYour Name #define DOT11F_IE_EXTREQUESTEDINFO_MIN_LEN (1) 3330*5113495bSYour Name 3331*5113495bSYour Name #define DOT11F_IE_EXTREQUESTEDINFO_MAX_LEN (256) 3332*5113495bSYour Name 3333*5113495bSYour Name #ifdef __cplusplus 3334*5113495bSYour Name extern "C" { 3335*5113495bSYour Name #endif /* C++ */ 3336*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ExtRequestedInfo( 3337*5113495bSYour Name tpAniSirGlobal, 3338*5113495bSYour Name uint8_t *, 3339*5113495bSYour Name uint8_t, 3340*5113495bSYour Name tDot11fIEExtRequestedInfo*, 3341*5113495bSYour Name bool); 3342*5113495bSYour Name 3343*5113495bSYour Name uint32_t dot11f_pack_ie_ExtRequestedInfo( 3344*5113495bSYour Name tpAniSirGlobal, 3345*5113495bSYour Name tDot11fIEExtRequestedInfo *, 3346*5113495bSYour Name uint8_t *, 3347*5113495bSYour Name uint32_t, 3348*5113495bSYour Name uint32_t*); 3349*5113495bSYour Name 3350*5113495bSYour Name uint32_t dot11f_get_packed_ie_ExtRequestedInfo( 3351*5113495bSYour Name tpAniSirGlobal, 3352*5113495bSYour Name tDot11fIEExtRequestedInfo *, 3353*5113495bSYour Name uint32_t*); 3354*5113495bSYour Name 3355*5113495bSYour Name #ifdef __cplusplus 3356*5113495bSYour Name }; /* End extern "C". */ 3357*5113495bSYour Name #endif /* C++ */ 3358*5113495bSYour Name 3359*5113495bSYour Name /* EID 66 (0x42) */ 3360*5113495bSYour Name typedef struct sDot11fIEMeasurementPilot { 3361*5113495bSYour Name uint8_t present; 3362*5113495bSYour Name uint8_t measurementPilot; 3363*5113495bSYour Name uint8_t num_vendorSpecific; 3364*5113495bSYour Name uint8_t vendorSpecific[255]; 3365*5113495bSYour Name } tDot11fIEMeasurementPilot; 3366*5113495bSYour Name 3367*5113495bSYour Name #define DOT11F_EID_MEASUREMENTPILOT (66) 3368*5113495bSYour Name 3369*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3370*5113495bSYour Name #define DOT11F_IE_MEASUREMENTPILOT_MIN_LEN (1) 3371*5113495bSYour Name 3372*5113495bSYour Name #define DOT11F_IE_MEASUREMENTPILOT_MAX_LEN (256) 3373*5113495bSYour Name 3374*5113495bSYour Name #ifdef __cplusplus 3375*5113495bSYour Name extern "C" { 3376*5113495bSYour Name #endif /* C++ */ 3377*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_measurement_pilot( 3378*5113495bSYour Name tpAniSirGlobal, 3379*5113495bSYour Name uint8_t *, 3380*5113495bSYour Name uint8_t, 3381*5113495bSYour Name tDot11fIEMeasurementPilot*, 3382*5113495bSYour Name bool); 3383*5113495bSYour Name 3384*5113495bSYour Name uint32_t dot11f_pack_ie_measurement_pilot( 3385*5113495bSYour Name tpAniSirGlobal, 3386*5113495bSYour Name tDot11fIEMeasurementPilot *, 3387*5113495bSYour Name uint8_t *, 3388*5113495bSYour Name uint32_t, 3389*5113495bSYour Name uint32_t*); 3390*5113495bSYour Name 3391*5113495bSYour Name uint32_t dot11f_get_packed_ie_MeasurementPilot( 3392*5113495bSYour Name tpAniSirGlobal, 3393*5113495bSYour Name tDot11fIEMeasurementPilot *, 3394*5113495bSYour Name uint32_t*); 3395*5113495bSYour Name 3396*5113495bSYour Name #ifdef __cplusplus 3397*5113495bSYour Name }; /* End extern "C". */ 3398*5113495bSYour Name #endif /* C++ */ 3399*5113495bSYour Name 3400*5113495bSYour Name /* EID 71 (0x47) */ 3401*5113495bSYour Name typedef struct sDot11fIEMultiBssid { 3402*5113495bSYour Name uint8_t present; 3403*5113495bSYour Name uint8_t maxBSSIDIndicator; 3404*5113495bSYour Name uint8_t num_vendorSpecific; 3405*5113495bSYour Name uint8_t vendorSpecific[255]; 3406*5113495bSYour Name } tDot11fIEMultiBssid; 3407*5113495bSYour Name 3408*5113495bSYour Name #define DOT11F_EID_MULTIBSSID (71) 3409*5113495bSYour Name 3410*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3411*5113495bSYour Name #define DOT11F_IE_MULTIBSSID_MIN_LEN (1) 3412*5113495bSYour Name 3413*5113495bSYour Name #define DOT11F_IE_MULTIBSSID_MAX_LEN (256) 3414*5113495bSYour Name 3415*5113495bSYour Name #ifdef __cplusplus 3416*5113495bSYour Name extern "C" { 3417*5113495bSYour Name #endif /* C++ */ 3418*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_multi_bssid( 3419*5113495bSYour Name tpAniSirGlobal, 3420*5113495bSYour Name uint8_t *, 3421*5113495bSYour Name uint8_t, 3422*5113495bSYour Name tDot11fIEMultiBssid*, 3423*5113495bSYour Name bool); 3424*5113495bSYour Name 3425*5113495bSYour Name uint32_t dot11f_pack_ie_multi_bssid( 3426*5113495bSYour Name tpAniSirGlobal, 3427*5113495bSYour Name tDot11fIEMultiBssid *, 3428*5113495bSYour Name uint8_t *, 3429*5113495bSYour Name uint32_t, 3430*5113495bSYour Name uint32_t*); 3431*5113495bSYour Name 3432*5113495bSYour Name uint32_t dot11f_get_packed_ie_MultiBssid( 3433*5113495bSYour Name tpAniSirGlobal, 3434*5113495bSYour Name tDot11fIEMultiBssid *, 3435*5113495bSYour Name uint32_t*); 3436*5113495bSYour Name 3437*5113495bSYour Name #ifdef __cplusplus 3438*5113495bSYour Name }; /* End extern "C". */ 3439*5113495bSYour Name #endif /* C++ */ 3440*5113495bSYour Name 3441*5113495bSYour Name /* EID 57 (0x39) */ 3442*5113495bSYour Name typedef struct sDot11fIERICData { 3443*5113495bSYour Name uint8_t present; 3444*5113495bSYour Name uint8_t Identifier; 3445*5113495bSYour Name uint8_t resourceDescCount; 3446*5113495bSYour Name uint16_t statusCode; 3447*5113495bSYour Name } tDot11fIERICData; 3448*5113495bSYour Name 3449*5113495bSYour Name #define DOT11F_EID_RICDATA (57) 3450*5113495bSYour Name 3451*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3452*5113495bSYour Name #define DOT11F_IE_RICDATA_MIN_LEN (4) 3453*5113495bSYour Name 3454*5113495bSYour Name #define DOT11F_IE_RICDATA_MAX_LEN (4) 3455*5113495bSYour Name 3456*5113495bSYour Name #ifdef __cplusplus 3457*5113495bSYour Name extern "C" { 3458*5113495bSYour Name #endif /* C++ */ 3459*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ric_data( 3460*5113495bSYour Name tpAniSirGlobal, 3461*5113495bSYour Name uint8_t *, 3462*5113495bSYour Name uint8_t, 3463*5113495bSYour Name tDot11fIERICData*, 3464*5113495bSYour Name bool); 3465*5113495bSYour Name 3466*5113495bSYour Name uint32_t dot11f_pack_ie_ric_data( 3467*5113495bSYour Name tpAniSirGlobal, 3468*5113495bSYour Name tDot11fIERICData *, 3469*5113495bSYour Name uint8_t *, 3470*5113495bSYour Name uint32_t, 3471*5113495bSYour Name uint32_t*); 3472*5113495bSYour Name 3473*5113495bSYour Name uint32_t dot11f_get_packed_ie_RICData( 3474*5113495bSYour Name tpAniSirGlobal, 3475*5113495bSYour Name tDot11fIERICData *, 3476*5113495bSYour Name uint32_t*); 3477*5113495bSYour Name 3478*5113495bSYour Name #ifdef __cplusplus 3479*5113495bSYour Name }; /* End extern "C". */ 3480*5113495bSYour Name #endif /* C++ */ 3481*5113495bSYour Name 3482*5113495bSYour Name /* EID 75 (0x4b) */ 3483*5113495bSYour Name typedef struct sDot11fIERICDescriptor { 3484*5113495bSYour Name uint8_t present; 3485*5113495bSYour Name uint8_t resourceType; 3486*5113495bSYour Name uint8_t num_variableData; 3487*5113495bSYour Name uint8_t variableData[255]; 3488*5113495bSYour Name } tDot11fIERICDescriptor; 3489*5113495bSYour Name 3490*5113495bSYour Name #define DOT11F_EID_RICDESCRIPTOR (75) 3491*5113495bSYour Name 3492*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3493*5113495bSYour Name #define DOT11F_IE_RICDESCRIPTOR_MIN_LEN (1) 3494*5113495bSYour Name 3495*5113495bSYour Name #define DOT11F_IE_RICDESCRIPTOR_MAX_LEN (256) 3496*5113495bSYour Name 3497*5113495bSYour Name #ifdef __cplusplus 3498*5113495bSYour Name extern "C" { 3499*5113495bSYour Name #endif /* C++ */ 3500*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ric_descriptor( 3501*5113495bSYour Name tpAniSirGlobal, 3502*5113495bSYour Name uint8_t *, 3503*5113495bSYour Name uint8_t, 3504*5113495bSYour Name tDot11fIERICDescriptor*, 3505*5113495bSYour Name bool); 3506*5113495bSYour Name 3507*5113495bSYour Name uint32_t dot11f_pack_ie_ric_descriptor( 3508*5113495bSYour Name tpAniSirGlobal, 3509*5113495bSYour Name tDot11fIERICDescriptor *, 3510*5113495bSYour Name uint8_t *, 3511*5113495bSYour Name uint32_t, 3512*5113495bSYour Name uint32_t*); 3513*5113495bSYour Name 3514*5113495bSYour Name uint32_t dot11f_get_packed_ie_RICDescriptor( 3515*5113495bSYour Name tpAniSirGlobal, 3516*5113495bSYour Name tDot11fIERICDescriptor *, 3517*5113495bSYour Name uint32_t*); 3518*5113495bSYour Name 3519*5113495bSYour Name #ifdef __cplusplus 3520*5113495bSYour Name }; /* End extern "C". */ 3521*5113495bSYour Name #endif /* C++ */ 3522*5113495bSYour Name 3523*5113495bSYour Name /* EID 70 (0x46) */ 3524*5113495bSYour Name typedef struct sDot11fIERRMEnabledCap { 3525*5113495bSYour Name uint8_t present; 3526*5113495bSYour Name uint8_t LinkMeasurement:1; 3527*5113495bSYour Name uint8_t NeighborRpt:1; 3528*5113495bSYour Name uint8_t parallel:1; 3529*5113495bSYour Name uint8_t repeated:1; 3530*5113495bSYour Name uint8_t BeaconPassive:1; 3531*5113495bSYour Name uint8_t BeaconActive:1; 3532*5113495bSYour Name uint8_t BeaconTable:1; 3533*5113495bSYour Name uint8_t BeaconRepCond:1; 3534*5113495bSYour Name uint8_t FrameMeasurement:1; 3535*5113495bSYour Name uint8_t ChannelLoad:1; 3536*5113495bSYour Name uint8_t NoiseHistogram:1; 3537*5113495bSYour Name uint8_t statistics:1; 3538*5113495bSYour Name uint8_t LCIMeasurement:1; 3539*5113495bSYour Name uint8_t LCIAzimuth:1; 3540*5113495bSYour Name uint8_t TCMCapability:1; 3541*5113495bSYour Name uint8_t triggeredTCM:1; 3542*5113495bSYour Name uint8_t APChanReport:1; 3543*5113495bSYour Name uint8_t RRMMIBEnabled:1; 3544*5113495bSYour Name uint8_t operatingChanMax:3; 3545*5113495bSYour Name uint8_t nonOperatinChanMax:3; 3546*5113495bSYour Name uint8_t MeasurementPilot:3; 3547*5113495bSYour Name uint8_t MeasurementPilotEnabled:1; 3548*5113495bSYour Name uint8_t NeighborTSFOffset:1; 3549*5113495bSYour Name uint8_t RCPIMeasurement:1; 3550*5113495bSYour Name uint8_t RSNIMeasurement:1; 3551*5113495bSYour Name uint8_t BssAvgAccessDelay:1; 3552*5113495bSYour Name uint8_t BSSAvailAdmission:1; 3553*5113495bSYour Name uint8_t AntennaInformation:1; 3554*5113495bSYour Name uint8_t fine_time_meas_rpt:1; 3555*5113495bSYour Name uint8_t lci_capability:1; 3556*5113495bSYour Name uint8_t reserved:4; 3557*5113495bSYour Name } tDot11fIERRMEnabledCap; 3558*5113495bSYour Name 3559*5113495bSYour Name #define DOT11F_EID_RRMENABLEDCAP (70) 3560*5113495bSYour Name 3561*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3562*5113495bSYour Name #define DOT11F_IE_RRMENABLEDCAP_MIN_LEN (5) 3563*5113495bSYour Name 3564*5113495bSYour Name #define DOT11F_IE_RRMENABLEDCAP_MAX_LEN (5) 3565*5113495bSYour Name 3566*5113495bSYour Name #ifdef __cplusplus 3567*5113495bSYour Name extern "C" { 3568*5113495bSYour Name #endif /* C++ */ 3569*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_rrm_enabled_cap( 3570*5113495bSYour Name tpAniSirGlobal, 3571*5113495bSYour Name uint8_t *, 3572*5113495bSYour Name uint8_t, 3573*5113495bSYour Name tDot11fIERRMEnabledCap*, 3574*5113495bSYour Name bool); 3575*5113495bSYour Name 3576*5113495bSYour Name uint32_t dot11f_pack_ie_rrm_enabled_cap( 3577*5113495bSYour Name tpAniSirGlobal, 3578*5113495bSYour Name tDot11fIERRMEnabledCap *, 3579*5113495bSYour Name uint8_t *, 3580*5113495bSYour Name uint32_t, 3581*5113495bSYour Name uint32_t*); 3582*5113495bSYour Name 3583*5113495bSYour Name uint32_t dot11f_get_packed_ie_RRMEnabledCap( 3584*5113495bSYour Name tpAniSirGlobal, 3585*5113495bSYour Name tDot11fIERRMEnabledCap *, 3586*5113495bSYour Name uint32_t*); 3587*5113495bSYour Name 3588*5113495bSYour Name #ifdef __cplusplus 3589*5113495bSYour Name }; /* End extern "C". */ 3590*5113495bSYour Name #endif /* C++ */ 3591*5113495bSYour Name 3592*5113495bSYour Name /* EID 10 (0x0a) */ 3593*5113495bSYour Name typedef struct sDot11fIERequestedInfo { 3594*5113495bSYour Name uint8_t present; 3595*5113495bSYour Name uint8_t num_requested_eids; 3596*5113495bSYour Name uint8_t requested_eids[255]; 3597*5113495bSYour Name } tDot11fIERequestedInfo; 3598*5113495bSYour Name 3599*5113495bSYour Name #define DOT11F_EID_REQUESTEDINFO (10) 3600*5113495bSYour Name 3601*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3602*5113495bSYour Name #define DOT11F_IE_REQUESTEDINFO_MIN_LEN (0) 3603*5113495bSYour Name 3604*5113495bSYour Name #define DOT11F_IE_REQUESTEDINFO_MAX_LEN (255) 3605*5113495bSYour Name 3606*5113495bSYour Name #ifdef __cplusplus 3607*5113495bSYour Name extern "C" { 3608*5113495bSYour Name #endif /* C++ */ 3609*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_requested_info( 3610*5113495bSYour Name tpAniSirGlobal, 3611*5113495bSYour Name uint8_t *, 3612*5113495bSYour Name uint8_t, 3613*5113495bSYour Name tDot11fIERequestedInfo*, 3614*5113495bSYour Name bool); 3615*5113495bSYour Name 3616*5113495bSYour Name uint32_t dot11f_pack_ie_requested_info( 3617*5113495bSYour Name tpAniSirGlobal, 3618*5113495bSYour Name tDot11fIERequestedInfo *, 3619*5113495bSYour Name uint8_t *, 3620*5113495bSYour Name uint32_t, 3621*5113495bSYour Name uint32_t*); 3622*5113495bSYour Name 3623*5113495bSYour Name uint32_t dot11f_get_packed_ie_RequestedInfo( 3624*5113495bSYour Name tpAniSirGlobal, 3625*5113495bSYour Name tDot11fIERequestedInfo *, 3626*5113495bSYour Name uint32_t*); 3627*5113495bSYour Name 3628*5113495bSYour Name #ifdef __cplusplus 3629*5113495bSYour Name }; /* End extern "C". */ 3630*5113495bSYour Name #endif /* C++ */ 3631*5113495bSYour Name 3632*5113495bSYour Name /* EID 0 (0x00) */ 3633*5113495bSYour Name typedef struct sDot11fIESSID { 3634*5113495bSYour Name uint8_t present; 3635*5113495bSYour Name uint8_t num_ssid; 3636*5113495bSYour Name uint8_t ssid[32]; 3637*5113495bSYour Name } tDot11fIESSID; 3638*5113495bSYour Name 3639*5113495bSYour Name #define DOT11F_EID_SSID (0) 3640*5113495bSYour Name 3641*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3642*5113495bSYour Name #define DOT11F_IE_SSID_MIN_LEN (0) 3643*5113495bSYour Name 3644*5113495bSYour Name #define DOT11F_IE_SSID_MAX_LEN (32) 3645*5113495bSYour Name 3646*5113495bSYour Name #ifdef __cplusplus 3647*5113495bSYour Name extern "C" { 3648*5113495bSYour Name #endif /* C++ */ 3649*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ssid( 3650*5113495bSYour Name tpAniSirGlobal, 3651*5113495bSYour Name uint8_t *, 3652*5113495bSYour Name uint8_t, 3653*5113495bSYour Name tDot11fIESSID*, 3654*5113495bSYour Name bool); 3655*5113495bSYour Name 3656*5113495bSYour Name uint32_t dot11f_pack_ie_ssid( 3657*5113495bSYour Name tpAniSirGlobal, 3658*5113495bSYour Name tDot11fIESSID *, 3659*5113495bSYour Name uint8_t *, 3660*5113495bSYour Name uint32_t, 3661*5113495bSYour Name uint32_t*); 3662*5113495bSYour Name 3663*5113495bSYour Name uint32_t dot11f_get_packed_ie_SSID( 3664*5113495bSYour Name tpAniSirGlobal, 3665*5113495bSYour Name tDot11fIESSID *, 3666*5113495bSYour Name uint32_t*); 3667*5113495bSYour Name 3668*5113495bSYour Name #ifdef __cplusplus 3669*5113495bSYour Name }; /* End extern "C". */ 3670*5113495bSYour Name #endif /* C++ */ 3671*5113495bSYour Name 3672*5113495bSYour Name /* EID 15 (0x0f) */ 3673*5113495bSYour Name typedef struct sDot11fIESchedule { 3674*5113495bSYour Name uint8_t present; 3675*5113495bSYour Name uint16_t aggregation:1; 3676*5113495bSYour Name uint16_t tsid:4; 3677*5113495bSYour Name uint16_t direction:2; 3678*5113495bSYour Name uint16_t reserved:9; 3679*5113495bSYour Name uint32_t service_start_time; 3680*5113495bSYour Name uint32_t service_interval; 3681*5113495bSYour Name uint16_t max_service_dur; 3682*5113495bSYour Name uint16_t spec_interval; 3683*5113495bSYour Name } tDot11fIESchedule; 3684*5113495bSYour Name 3685*5113495bSYour Name #define DOT11F_EID_SCHEDULE (15) 3686*5113495bSYour Name 3687*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3688*5113495bSYour Name #define DOT11F_IE_SCHEDULE_MIN_LEN (14) 3689*5113495bSYour Name 3690*5113495bSYour Name #define DOT11F_IE_SCHEDULE_MAX_LEN (14) 3691*5113495bSYour Name 3692*5113495bSYour Name #ifdef __cplusplus 3693*5113495bSYour Name extern "C" { 3694*5113495bSYour Name #endif /* C++ */ 3695*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_schedule( 3696*5113495bSYour Name tpAniSirGlobal, 3697*5113495bSYour Name uint8_t *, 3698*5113495bSYour Name uint8_t, 3699*5113495bSYour Name tDot11fIESchedule*, 3700*5113495bSYour Name bool); 3701*5113495bSYour Name 3702*5113495bSYour Name uint32_t dot11f_pack_ie_schedule( 3703*5113495bSYour Name tpAniSirGlobal, 3704*5113495bSYour Name tDot11fIESchedule *, 3705*5113495bSYour Name uint8_t *, 3706*5113495bSYour Name uint32_t, 3707*5113495bSYour Name uint32_t*); 3708*5113495bSYour Name 3709*5113495bSYour Name uint32_t dot11f_get_packed_ie_Schedule( 3710*5113495bSYour Name tpAniSirGlobal, 3711*5113495bSYour Name tDot11fIESchedule *, 3712*5113495bSYour Name uint32_t*); 3713*5113495bSYour Name 3714*5113495bSYour Name #ifdef __cplusplus 3715*5113495bSYour Name }; /* End extern "C". */ 3716*5113495bSYour Name #endif /* C++ */ 3717*5113495bSYour Name 3718*5113495bSYour Name /* EID 14 (0x0e) */ 3719*5113495bSYour Name typedef struct sDot11fIETCLAS { 3720*5113495bSYour Name uint8_t present; 3721*5113495bSYour Name uint8_t user_priority; 3722*5113495bSYour Name uint8_t classifier_type; 3723*5113495bSYour Name uint8_t classifier_mask; 3724*5113495bSYour Name union { 3725*5113495bSYour Name struct { 3726*5113495bSYour Name uint8_t source[6]; 3727*5113495bSYour Name uint8_t dest[6]; 3728*5113495bSYour Name uint16_t type; 3729*5113495bSYour Name } EthParams; /* classifier_type = 0 */ 3730*5113495bSYour Name struct { 3731*5113495bSYour Name uint8_t version; 3732*5113495bSYour Name union { 3733*5113495bSYour Name struct { 3734*5113495bSYour Name uint8_t source[4]; 3735*5113495bSYour Name uint8_t dest[4]; 3736*5113495bSYour Name uint16_t src_port; 3737*5113495bSYour Name uint16_t dest_port; 3738*5113495bSYour Name uint8_t DSCP; 3739*5113495bSYour Name uint8_t proto; 3740*5113495bSYour Name uint8_t reserved; 3741*5113495bSYour Name } IpV4Params; /* version = 4 */ 3742*5113495bSYour Name struct { 3743*5113495bSYour Name uint8_t source[16]; 3744*5113495bSYour Name uint8_t dest[16]; 3745*5113495bSYour Name uint16_t src_port; 3746*5113495bSYour Name uint16_t dest_port; 3747*5113495bSYour Name uint8_t flow_label[3]; 3748*5113495bSYour Name } IpV6Params; /* version = 6 */ 3749*5113495bSYour Name } params; 3750*5113495bSYour Name } IpParams; /* classifier_type = 1 */ 3751*5113495bSYour Name struct { 3752*5113495bSYour Name uint16_t tag_type; 3753*5113495bSYour Name } Params8021dq; /* classifier_type = 2 */ 3754*5113495bSYour Name } info; 3755*5113495bSYour Name } tDot11fIETCLAS; 3756*5113495bSYour Name 3757*5113495bSYour Name #define DOT11F_EID_TCLAS (14) 3758*5113495bSYour Name 3759*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3760*5113495bSYour Name #define DOT11F_IE_TCLAS_MIN_LEN (5) 3761*5113495bSYour Name 3762*5113495bSYour Name #define DOT11F_IE_TCLAS_MAX_LEN (43) 3763*5113495bSYour Name 3764*5113495bSYour Name #ifdef __cplusplus 3765*5113495bSYour Name extern "C" { 3766*5113495bSYour Name #endif /* C++ */ 3767*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_tclas( 3768*5113495bSYour Name tpAniSirGlobal, 3769*5113495bSYour Name uint8_t *, 3770*5113495bSYour Name uint8_t, 3771*5113495bSYour Name tDot11fIETCLAS*, 3772*5113495bSYour Name bool); 3773*5113495bSYour Name 3774*5113495bSYour Name uint32_t dot11f_pack_ie_tclas( 3775*5113495bSYour Name tpAniSirGlobal, 3776*5113495bSYour Name tDot11fIETCLAS *, 3777*5113495bSYour Name uint8_t *, 3778*5113495bSYour Name uint32_t, 3779*5113495bSYour Name uint32_t*); 3780*5113495bSYour Name 3781*5113495bSYour Name uint32_t dot11f_get_packed_ietclas( 3782*5113495bSYour Name tpAniSirGlobal, 3783*5113495bSYour Name tDot11fIETCLAS *, 3784*5113495bSYour Name uint32_t*); 3785*5113495bSYour Name 3786*5113495bSYour Name #ifdef __cplusplus 3787*5113495bSYour Name }; /* End extern "C". */ 3788*5113495bSYour Name #endif /* C++ */ 3789*5113495bSYour Name 3790*5113495bSYour Name /* EID 44 (0x2c) */ 3791*5113495bSYour Name typedef struct sDot11fIETCLASSPROC { 3792*5113495bSYour Name uint8_t present; 3793*5113495bSYour Name uint8_t processing; 3794*5113495bSYour Name } tDot11fIETCLASSPROC; 3795*5113495bSYour Name 3796*5113495bSYour Name #define DOT11F_EID_TCLASSPROC (44) 3797*5113495bSYour Name 3798*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3799*5113495bSYour Name #define DOT11F_IE_TCLASSPROC_MIN_LEN (1) 3800*5113495bSYour Name 3801*5113495bSYour Name #define DOT11F_IE_TCLASSPROC_MAX_LEN (1) 3802*5113495bSYour Name 3803*5113495bSYour Name #ifdef __cplusplus 3804*5113495bSYour Name extern "C" { 3805*5113495bSYour Name #endif /* C++ */ 3806*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_tclasSPROC( 3807*5113495bSYour Name tpAniSirGlobal, 3808*5113495bSYour Name uint8_t *, 3809*5113495bSYour Name uint8_t, 3810*5113495bSYour Name tDot11fIETCLASSPROC*, 3811*5113495bSYour Name bool); 3812*5113495bSYour Name 3813*5113495bSYour Name uint32_t dot11f_pack_ie_tclassproc( 3814*5113495bSYour Name tpAniSirGlobal, 3815*5113495bSYour Name tDot11fIETCLASSPROC *, 3816*5113495bSYour Name uint8_t *, 3817*5113495bSYour Name uint32_t, 3818*5113495bSYour Name uint32_t*); 3819*5113495bSYour Name 3820*5113495bSYour Name uint32_t dot11f_get_packed_ietclasSPROC( 3821*5113495bSYour Name tpAniSirGlobal, 3822*5113495bSYour Name tDot11fIETCLASSPROC *, 3823*5113495bSYour Name uint32_t*); 3824*5113495bSYour Name 3825*5113495bSYour Name #ifdef __cplusplus 3826*5113495bSYour Name }; /* End extern "C". */ 3827*5113495bSYour Name #endif /* C++ */ 3828*5113495bSYour Name 3829*5113495bSYour Name /* EID 43 (0x2b) */ 3830*5113495bSYour Name typedef struct sDot11fIETSDelay { 3831*5113495bSYour Name uint8_t present; 3832*5113495bSYour Name uint32_t delay; 3833*5113495bSYour Name } tDot11fIETSDelay; 3834*5113495bSYour Name 3835*5113495bSYour Name #define DOT11F_EID_TSDELAY (43) 3836*5113495bSYour Name 3837*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3838*5113495bSYour Name #define DOT11F_IE_TSDELAY_MIN_LEN (4) 3839*5113495bSYour Name 3840*5113495bSYour Name #define DOT11F_IE_TSDELAY_MAX_LEN (4) 3841*5113495bSYour Name 3842*5113495bSYour Name #ifdef __cplusplus 3843*5113495bSYour Name extern "C" { 3844*5113495bSYour Name #endif /* C++ */ 3845*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ts_delay( 3846*5113495bSYour Name tpAniSirGlobal, 3847*5113495bSYour Name uint8_t *, 3848*5113495bSYour Name uint8_t, 3849*5113495bSYour Name tDot11fIETSDelay*, 3850*5113495bSYour Name bool); 3851*5113495bSYour Name 3852*5113495bSYour Name uint32_t dot11f_pack_ie_ts_delay( 3853*5113495bSYour Name tpAniSirGlobal, 3854*5113495bSYour Name tDot11fIETSDelay *, 3855*5113495bSYour Name uint8_t *, 3856*5113495bSYour Name uint32_t, 3857*5113495bSYour Name uint32_t*); 3858*5113495bSYour Name 3859*5113495bSYour Name uint32_t dot11f_get_packed_ie_TSDelay( 3860*5113495bSYour Name tpAniSirGlobal, 3861*5113495bSYour Name tDot11fIETSDelay *, 3862*5113495bSYour Name uint32_t*); 3863*5113495bSYour Name 3864*5113495bSYour Name #ifdef __cplusplus 3865*5113495bSYour Name }; /* End extern "C". */ 3866*5113495bSYour Name #endif /* C++ */ 3867*5113495bSYour Name 3868*5113495bSYour Name /* EID 1 (0x01) */ 3869*5113495bSYour Name typedef struct sDot11fIETSFInfo { 3870*5113495bSYour Name uint8_t present; 3871*5113495bSYour Name uint16_t TsfOffset; 3872*5113495bSYour Name uint16_t BeaconIntvl; 3873*5113495bSYour Name } tDot11fIETSFInfo; 3874*5113495bSYour Name 3875*5113495bSYour Name #define DOT11F_EID_TSFINFO (1) 3876*5113495bSYour Name 3877*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3878*5113495bSYour Name #define DOT11F_IE_TSFINFO_MIN_LEN (4) 3879*5113495bSYour Name 3880*5113495bSYour Name #define DOT11F_IE_TSFINFO_MAX_LEN (4) 3881*5113495bSYour Name 3882*5113495bSYour Name #ifdef __cplusplus 3883*5113495bSYour Name extern "C" { 3884*5113495bSYour Name #endif /* C++ */ 3885*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_tsf_info( 3886*5113495bSYour Name tpAniSirGlobal, 3887*5113495bSYour Name uint8_t *, 3888*5113495bSYour Name uint8_t, 3889*5113495bSYour Name tDot11fIETSFInfo*, 3890*5113495bSYour Name bool); 3891*5113495bSYour Name 3892*5113495bSYour Name uint32_t dot11f_pack_ie_tsf_info( 3893*5113495bSYour Name tpAniSirGlobal, 3894*5113495bSYour Name tDot11fIETSFInfo *, 3895*5113495bSYour Name uint8_t *, 3896*5113495bSYour Name uint32_t, 3897*5113495bSYour Name uint32_t*); 3898*5113495bSYour Name 3899*5113495bSYour Name uint32_t dot11f_get_packed_ie_TSFInfo( 3900*5113495bSYour Name tpAniSirGlobal, 3901*5113495bSYour Name tDot11fIETSFInfo *, 3902*5113495bSYour Name uint32_t*); 3903*5113495bSYour Name 3904*5113495bSYour Name #ifdef __cplusplus 3905*5113495bSYour Name }; /* End extern "C". */ 3906*5113495bSYour Name #endif /* C++ */ 3907*5113495bSYour Name 3908*5113495bSYour Name /* EID 13 (0x0d) */ 3909*5113495bSYour Name typedef struct sDot11fIETSPEC { 3910*5113495bSYour Name uint8_t present; 3911*5113495bSYour Name uint16_t traffic_type:1; 3912*5113495bSYour Name uint16_t tsid:4; 3913*5113495bSYour Name uint16_t direction:2; 3914*5113495bSYour Name uint16_t access_policy:2; 3915*5113495bSYour Name uint16_t aggregation:1; 3916*5113495bSYour Name uint16_t psb:1; 3917*5113495bSYour Name uint16_t user_priority:3; 3918*5113495bSYour Name uint16_t tsinfo_ack_pol:2; 3919*5113495bSYour Name uint8_t schedule:1; 3920*5113495bSYour Name uint8_t unused:7; 3921*5113495bSYour Name uint16_t size:15; 3922*5113495bSYour Name uint16_t fixed:1; 3923*5113495bSYour Name uint16_t max_msdu_size; 3924*5113495bSYour Name uint32_t min_service_int; 3925*5113495bSYour Name uint32_t max_service_int; 3926*5113495bSYour Name uint32_t inactivity_int; 3927*5113495bSYour Name uint32_t suspension_int; 3928*5113495bSYour Name uint32_t service_start_time; 3929*5113495bSYour Name uint32_t min_data_rate; 3930*5113495bSYour Name uint32_t mean_data_rate; 3931*5113495bSYour Name uint32_t peak_data_rate; 3932*5113495bSYour Name uint32_t burst_size; 3933*5113495bSYour Name uint32_t delay_bound; 3934*5113495bSYour Name uint32_t min_phy_rate; 3935*5113495bSYour Name uint16_t surplus_bw_allowance; 3936*5113495bSYour Name uint16_t medium_time; 3937*5113495bSYour Name } tDot11fIETSPEC; 3938*5113495bSYour Name 3939*5113495bSYour Name #define DOT11F_EID_TSPEC (13) 3940*5113495bSYour Name 3941*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 3942*5113495bSYour Name #define DOT11F_IE_TSPEC_MIN_LEN (55) 3943*5113495bSYour Name 3944*5113495bSYour Name #define DOT11F_IE_TSPEC_MAX_LEN (55) 3945*5113495bSYour Name 3946*5113495bSYour Name #ifdef __cplusplus 3947*5113495bSYour Name extern "C" { 3948*5113495bSYour Name #endif /* C++ */ 3949*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_tspec( 3950*5113495bSYour Name tpAniSirGlobal, 3951*5113495bSYour Name uint8_t *, 3952*5113495bSYour Name uint8_t, 3953*5113495bSYour Name tDot11fIETSPEC*, 3954*5113495bSYour Name bool); 3955*5113495bSYour Name 3956*5113495bSYour Name uint32_t dot11f_pack_ie_tspec( 3957*5113495bSYour Name tpAniSirGlobal, 3958*5113495bSYour Name tDot11fIETSPEC *, 3959*5113495bSYour Name uint8_t *, 3960*5113495bSYour Name uint32_t, 3961*5113495bSYour Name uint32_t*); 3962*5113495bSYour Name 3963*5113495bSYour Name uint32_t dot11f_get_packed_ie_TSPEC( 3964*5113495bSYour Name tpAniSirGlobal, 3965*5113495bSYour Name tDot11fIETSPEC *, 3966*5113495bSYour Name uint32_t*); 3967*5113495bSYour Name 3968*5113495bSYour Name #ifdef __cplusplus 3969*5113495bSYour Name }; /* End extern "C". */ 3970*5113495bSYour Name #endif /* C++ */ 3971*5113495bSYour Name 3972*5113495bSYour Name /* EID 191 (0xbf) */ 3973*5113495bSYour Name typedef struct sDot11fIEVHTCaps { 3974*5113495bSYour Name uint8_t present; 3975*5113495bSYour Name uint32_t maxMPDULen:2; 3976*5113495bSYour Name uint32_t supportedChannelWidthSet:2; 3977*5113495bSYour Name uint32_t ldpcCodingCap:1; 3978*5113495bSYour Name uint32_t shortGI80MHz:1; 3979*5113495bSYour Name uint32_t shortGI160and80plus80MHz:1; 3980*5113495bSYour Name uint32_t txSTBC:1; 3981*5113495bSYour Name uint32_t rxSTBC:3; 3982*5113495bSYour Name uint32_t suBeamFormerCap:1; 3983*5113495bSYour Name uint32_t suBeamformeeCap:1; 3984*5113495bSYour Name uint32_t csnofBeamformerAntSup:3; 3985*5113495bSYour Name uint32_t numSoundingDim:3; 3986*5113495bSYour Name uint32_t muBeamformerCap:1; 3987*5113495bSYour Name uint32_t muBeamformeeCap:1; 3988*5113495bSYour Name uint32_t vhtTXOPPS:1; 3989*5113495bSYour Name uint32_t htcVHTCap:1; 3990*5113495bSYour Name uint32_t maxAMPDULenExp:3; 3991*5113495bSYour Name uint32_t vhtLinkAdaptCap:2; 3992*5113495bSYour Name uint32_t rxAntPattern:1; 3993*5113495bSYour Name uint32_t txAntPattern:1; 3994*5113495bSYour Name uint32_t extended_nss_bw_supp:2; 3995*5113495bSYour Name uint16_t rxMCSMap; 3996*5113495bSYour Name uint16_t rxHighSupDataRate:13; 3997*5113495bSYour Name uint16_t max_nsts_total:3; 3998*5113495bSYour Name uint16_t txMCSMap; 3999*5113495bSYour Name uint16_t txSupDataRate:13; 4000*5113495bSYour Name uint16_t vht_extended_nss_bw_cap:1; 4001*5113495bSYour Name uint16_t reserved:2; 4002*5113495bSYour Name } tDot11fIEVHTCaps; 4003*5113495bSYour Name 4004*5113495bSYour Name #define DOT11F_EID_VHTCAPS (191) 4005*5113495bSYour Name 4006*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4007*5113495bSYour Name #define DOT11F_IE_VHTCAPS_MIN_LEN (12) 4008*5113495bSYour Name 4009*5113495bSYour Name #define DOT11F_IE_VHTCAPS_MAX_LEN (12) 4010*5113495bSYour Name 4011*5113495bSYour Name #ifdef __cplusplus 4012*5113495bSYour Name extern "C" { 4013*5113495bSYour Name #endif /* C++ */ 4014*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_vht_caps( 4015*5113495bSYour Name tpAniSirGlobal, 4016*5113495bSYour Name uint8_t *, 4017*5113495bSYour Name uint8_t, 4018*5113495bSYour Name tDot11fIEVHTCaps*, 4019*5113495bSYour Name bool); 4020*5113495bSYour Name 4021*5113495bSYour Name uint32_t dot11f_pack_ie_vht_caps( 4022*5113495bSYour Name tpAniSirGlobal, 4023*5113495bSYour Name tDot11fIEVHTCaps *, 4024*5113495bSYour Name uint8_t *, 4025*5113495bSYour Name uint32_t, 4026*5113495bSYour Name uint32_t*); 4027*5113495bSYour Name 4028*5113495bSYour Name uint32_t dot11f_get_packed_ie_VHTCaps( 4029*5113495bSYour Name tpAniSirGlobal, 4030*5113495bSYour Name tDot11fIEVHTCaps *, 4031*5113495bSYour Name uint32_t*); 4032*5113495bSYour Name 4033*5113495bSYour Name #ifdef __cplusplus 4034*5113495bSYour Name }; /* End extern "C". */ 4035*5113495bSYour Name #endif /* C++ */ 4036*5113495bSYour Name 4037*5113495bSYour Name /* EID 192 (0xc0) */ 4038*5113495bSYour Name typedef struct sDot11fIEVHTOperation { 4039*5113495bSYour Name uint8_t present; 4040*5113495bSYour Name uint8_t chanWidth; 4041*5113495bSYour Name uint8_t chan_center_freq_seg0; 4042*5113495bSYour Name uint8_t chan_center_freq_seg1; 4043*5113495bSYour Name uint16_t basicMCSSet; 4044*5113495bSYour Name } tDot11fIEVHTOperation; 4045*5113495bSYour Name 4046*5113495bSYour Name #define DOT11F_EID_VHTOPERATION (192) 4047*5113495bSYour Name 4048*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4049*5113495bSYour Name #define DOT11F_IE_VHTOPERATION_MIN_LEN (5) 4050*5113495bSYour Name 4051*5113495bSYour Name #define DOT11F_IE_VHTOPERATION_MAX_LEN (5) 4052*5113495bSYour Name 4053*5113495bSYour Name #ifdef __cplusplus 4054*5113495bSYour Name extern "C" { 4055*5113495bSYour Name #endif /* C++ */ 4056*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_vht_operation( 4057*5113495bSYour Name tpAniSirGlobal, 4058*5113495bSYour Name uint8_t *, 4059*5113495bSYour Name uint8_t, 4060*5113495bSYour Name tDot11fIEVHTOperation*, 4061*5113495bSYour Name bool); 4062*5113495bSYour Name 4063*5113495bSYour Name uint32_t dot11f_pack_ie_vht_operation( 4064*5113495bSYour Name tpAniSirGlobal, 4065*5113495bSYour Name tDot11fIEVHTOperation *, 4066*5113495bSYour Name uint8_t *, 4067*5113495bSYour Name uint32_t, 4068*5113495bSYour Name uint32_t*); 4069*5113495bSYour Name 4070*5113495bSYour Name uint32_t dot11f_get_packed_ie_VHTOperation( 4071*5113495bSYour Name tpAniSirGlobal, 4072*5113495bSYour Name tDot11fIEVHTOperation *, 4073*5113495bSYour Name uint32_t*); 4074*5113495bSYour Name 4075*5113495bSYour Name #ifdef __cplusplus 4076*5113495bSYour Name }; /* End extern "C". */ 4077*5113495bSYour Name #endif /* C++ */ 4078*5113495bSYour Name 4079*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x09} */ 4080*5113495bSYour Name typedef struct sDot11fIEWMMSchedule { 4081*5113495bSYour Name uint8_t present; 4082*5113495bSYour Name uint8_t version /* Must be 1! */; 4083*5113495bSYour Name uint16_t aggregation:1; 4084*5113495bSYour Name uint16_t tsid:4; 4085*5113495bSYour Name uint16_t direction:2; 4086*5113495bSYour Name uint16_t reserved:9; 4087*5113495bSYour Name uint32_t service_start_time; 4088*5113495bSYour Name uint32_t service_interval; 4089*5113495bSYour Name uint16_t max_service_dur; 4090*5113495bSYour Name uint16_t spec_interval; 4091*5113495bSYour Name } tDot11fIEWMMSchedule; 4092*5113495bSYour Name 4093*5113495bSYour Name #define DOT11F_EID_WMMSCHEDULE (221) 4094*5113495bSYour Name 4095*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4096*5113495bSYour Name #define DOT11F_IE_WMMSCHEDULE_MIN_LEN (20) 4097*5113495bSYour Name 4098*5113495bSYour Name #define DOT11F_IE_WMMSCHEDULE_MAX_LEN (20) 4099*5113495bSYour Name 4100*5113495bSYour Name #ifdef __cplusplus 4101*5113495bSYour Name extern "C" { 4102*5113495bSYour Name #endif /* C++ */ 4103*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wmm_schedule( 4104*5113495bSYour Name tpAniSirGlobal, 4105*5113495bSYour Name uint8_t *, 4106*5113495bSYour Name uint8_t, 4107*5113495bSYour Name tDot11fIEWMMSchedule*, 4108*5113495bSYour Name bool); 4109*5113495bSYour Name 4110*5113495bSYour Name uint32_t dot11f_pack_ie_wmm_schedule( 4111*5113495bSYour Name tpAniSirGlobal, 4112*5113495bSYour Name tDot11fIEWMMSchedule *, 4113*5113495bSYour Name uint8_t *, 4114*5113495bSYour Name uint32_t, 4115*5113495bSYour Name uint32_t*); 4116*5113495bSYour Name 4117*5113495bSYour Name uint32_t dot11f_get_packed_ie_WMMSchedule( 4118*5113495bSYour Name tpAniSirGlobal, 4119*5113495bSYour Name tDot11fIEWMMSchedule *, 4120*5113495bSYour Name uint32_t*); 4121*5113495bSYour Name 4122*5113495bSYour Name #ifdef __cplusplus 4123*5113495bSYour Name }; /* End extern "C". */ 4124*5113495bSYour Name #endif /* C++ */ 4125*5113495bSYour Name 4126*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x06} */ 4127*5113495bSYour Name typedef struct sDot11fIEWMMTCLAS { 4128*5113495bSYour Name uint8_t present; 4129*5113495bSYour Name uint8_t version /* Must be 1! */; 4130*5113495bSYour Name uint8_t user_priority; 4131*5113495bSYour Name uint8_t classifier_type; 4132*5113495bSYour Name uint8_t classifier_mask; 4133*5113495bSYour Name union { 4134*5113495bSYour Name struct { 4135*5113495bSYour Name uint8_t source[6]; 4136*5113495bSYour Name uint8_t dest[6]; 4137*5113495bSYour Name uint16_t type; 4138*5113495bSYour Name } EthParams; /* classifier_type = 0 */ 4139*5113495bSYour Name struct { 4140*5113495bSYour Name uint8_t version; 4141*5113495bSYour Name union { 4142*5113495bSYour Name struct { 4143*5113495bSYour Name uint8_t source[4]; 4144*5113495bSYour Name uint8_t dest[4]; 4145*5113495bSYour Name uint16_t src_port; 4146*5113495bSYour Name uint16_t dest_port; 4147*5113495bSYour Name uint8_t DSCP; 4148*5113495bSYour Name uint8_t proto; 4149*5113495bSYour Name uint8_t reserved; 4150*5113495bSYour Name } IpV4Params; /* version = 4 */ 4151*5113495bSYour Name struct { 4152*5113495bSYour Name uint8_t source[16]; 4153*5113495bSYour Name uint8_t dest[16]; 4154*5113495bSYour Name uint16_t src_port; 4155*5113495bSYour Name uint16_t dest_port; 4156*5113495bSYour Name uint8_t flow_label[3]; 4157*5113495bSYour Name } IpV6Params; /* version = 6 */ 4158*5113495bSYour Name } params; 4159*5113495bSYour Name } IpParams; /* classifier_type = 1 */ 4160*5113495bSYour Name struct { 4161*5113495bSYour Name uint16_t tag_type; 4162*5113495bSYour Name } Params8021dq; /* classifier_type = 2 */ 4163*5113495bSYour Name } info; 4164*5113495bSYour Name } tDot11fIEWMMTCLAS; 4165*5113495bSYour Name 4166*5113495bSYour Name #define DOT11F_EID_WMMTCLAS (221) 4167*5113495bSYour Name 4168*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4169*5113495bSYour Name #define DOT11F_IE_WMMTCLAS_MIN_LEN (11) 4170*5113495bSYour Name 4171*5113495bSYour Name #define DOT11F_IE_WMMTCLAS_MAX_LEN (49) 4172*5113495bSYour Name 4173*5113495bSYour Name #ifdef __cplusplus 4174*5113495bSYour Name extern "C" { 4175*5113495bSYour Name #endif /* C++ */ 4176*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wmmtclas( 4177*5113495bSYour Name tpAniSirGlobal, 4178*5113495bSYour Name uint8_t *, 4179*5113495bSYour Name uint8_t, 4180*5113495bSYour Name tDot11fIEWMMTCLAS*, 4181*5113495bSYour Name bool); 4182*5113495bSYour Name 4183*5113495bSYour Name uint32_t dot11f_pack_ie_wmmtclas( 4184*5113495bSYour Name tpAniSirGlobal, 4185*5113495bSYour Name tDot11fIEWMMTCLAS *, 4186*5113495bSYour Name uint8_t *, 4187*5113495bSYour Name uint32_t, 4188*5113495bSYour Name uint32_t*); 4189*5113495bSYour Name 4190*5113495bSYour Name uint32_t dot11f_get_packed_iewmmtclas( 4191*5113495bSYour Name tpAniSirGlobal, 4192*5113495bSYour Name tDot11fIEWMMTCLAS *, 4193*5113495bSYour Name uint32_t*); 4194*5113495bSYour Name 4195*5113495bSYour Name #ifdef __cplusplus 4196*5113495bSYour Name }; /* End extern "C". */ 4197*5113495bSYour Name #endif /* C++ */ 4198*5113495bSYour Name 4199*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x07} */ 4200*5113495bSYour Name typedef struct sDot11fIEWMMTCLASPROC { 4201*5113495bSYour Name uint8_t present; 4202*5113495bSYour Name uint8_t version /* Must be 1! */; 4203*5113495bSYour Name uint8_t processing; 4204*5113495bSYour Name } tDot11fIEWMMTCLASPROC; 4205*5113495bSYour Name 4206*5113495bSYour Name #define DOT11F_EID_WMMTCLASPROC (221) 4207*5113495bSYour Name 4208*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4209*5113495bSYour Name #define DOT11F_IE_WMMTCLASPROC_MIN_LEN (7) 4210*5113495bSYour Name 4211*5113495bSYour Name #define DOT11F_IE_WMMTCLASPROC_MAX_LEN (7) 4212*5113495bSYour Name 4213*5113495bSYour Name #ifdef __cplusplus 4214*5113495bSYour Name extern "C" { 4215*5113495bSYour Name #endif /* C++ */ 4216*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wmmtclasproc( 4217*5113495bSYour Name tpAniSirGlobal, 4218*5113495bSYour Name uint8_t *, 4219*5113495bSYour Name uint8_t, 4220*5113495bSYour Name tDot11fIEWMMTCLASPROC*, 4221*5113495bSYour Name bool); 4222*5113495bSYour Name 4223*5113495bSYour Name uint32_t dot11f_pack_ie_wmmtclasproc( 4224*5113495bSYour Name tpAniSirGlobal, 4225*5113495bSYour Name tDot11fIEWMMTCLASPROC *, 4226*5113495bSYour Name uint8_t *, 4227*5113495bSYour Name uint32_t, 4228*5113495bSYour Name uint32_t*); 4229*5113495bSYour Name 4230*5113495bSYour Name uint32_t dot11f_get_packed_iewmmtclasPROC( 4231*5113495bSYour Name tpAniSirGlobal, 4232*5113495bSYour Name tDot11fIEWMMTCLASPROC *, 4233*5113495bSYour Name uint32_t*); 4234*5113495bSYour Name 4235*5113495bSYour Name #ifdef __cplusplus 4236*5113495bSYour Name }; /* End extern "C". */ 4237*5113495bSYour Name #endif /* C++ */ 4238*5113495bSYour Name 4239*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x08} */ 4240*5113495bSYour Name typedef struct sDot11fIEWMMTSDelay { 4241*5113495bSYour Name uint8_t present; 4242*5113495bSYour Name uint8_t version /* Must be 1! */; 4243*5113495bSYour Name uint32_t delay; 4244*5113495bSYour Name } tDot11fIEWMMTSDelay; 4245*5113495bSYour Name 4246*5113495bSYour Name #define DOT11F_EID_WMMTSDELAY (221) 4247*5113495bSYour Name 4248*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4249*5113495bSYour Name #define DOT11F_IE_WMMTSDELAY_MIN_LEN (10) 4250*5113495bSYour Name 4251*5113495bSYour Name #define DOT11F_IE_WMMTSDELAY_MAX_LEN (10) 4252*5113495bSYour Name 4253*5113495bSYour Name #ifdef __cplusplus 4254*5113495bSYour Name extern "C" { 4255*5113495bSYour Name #endif /* C++ */ 4256*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wmmts_delay( 4257*5113495bSYour Name tpAniSirGlobal, 4258*5113495bSYour Name uint8_t *, 4259*5113495bSYour Name uint8_t, 4260*5113495bSYour Name tDot11fIEWMMTSDelay*, 4261*5113495bSYour Name bool); 4262*5113495bSYour Name 4263*5113495bSYour Name uint32_t dot11f_pack_ie_wmmts_delay( 4264*5113495bSYour Name tpAniSirGlobal, 4265*5113495bSYour Name tDot11fIEWMMTSDelay *, 4266*5113495bSYour Name uint8_t *, 4267*5113495bSYour Name uint32_t, 4268*5113495bSYour Name uint32_t*); 4269*5113495bSYour Name 4270*5113495bSYour Name uint32_t dot11f_get_packed_ie_WMMTSDelay( 4271*5113495bSYour Name tpAniSirGlobal, 4272*5113495bSYour Name tDot11fIEWMMTSDelay *, 4273*5113495bSYour Name uint32_t*); 4274*5113495bSYour Name 4275*5113495bSYour Name #ifdef __cplusplus 4276*5113495bSYour Name }; /* End extern "C". */ 4277*5113495bSYour Name #endif /* C++ */ 4278*5113495bSYour Name 4279*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x02} */ 4280*5113495bSYour Name typedef struct sDot11fIEWMMTSPEC { 4281*5113495bSYour Name uint8_t present; 4282*5113495bSYour Name uint8_t version /* Must be 1! */; 4283*5113495bSYour Name uint16_t traffic_type:1; 4284*5113495bSYour Name uint16_t tsid:4; 4285*5113495bSYour Name uint16_t direction:2; 4286*5113495bSYour Name uint16_t access_policy:2; 4287*5113495bSYour Name uint16_t aggregation:1; 4288*5113495bSYour Name uint16_t psb:1; 4289*5113495bSYour Name uint16_t user_priority:3; 4290*5113495bSYour Name uint16_t tsinfo_ack_pol:2; 4291*5113495bSYour Name uint8_t tsinfo_rsvd:7; 4292*5113495bSYour Name uint8_t burst_size_defn:1; 4293*5113495bSYour Name uint16_t size:15; 4294*5113495bSYour Name uint16_t fixed:1; 4295*5113495bSYour Name uint16_t max_msdu_size; 4296*5113495bSYour Name uint32_t min_service_int; 4297*5113495bSYour Name uint32_t max_service_int; 4298*5113495bSYour Name uint32_t inactivity_int; 4299*5113495bSYour Name uint32_t suspension_int; 4300*5113495bSYour Name uint32_t service_start_time; 4301*5113495bSYour Name uint32_t min_data_rate; 4302*5113495bSYour Name uint32_t mean_data_rate; 4303*5113495bSYour Name uint32_t peak_data_rate; 4304*5113495bSYour Name uint32_t burst_size; 4305*5113495bSYour Name uint32_t delay_bound; 4306*5113495bSYour Name uint32_t min_phy_rate; 4307*5113495bSYour Name uint16_t surplus_bw_allowance; 4308*5113495bSYour Name uint16_t medium_time; 4309*5113495bSYour Name } tDot11fIEWMMTSPEC; 4310*5113495bSYour Name 4311*5113495bSYour Name #define DOT11F_EID_WMMTSPEC (221) 4312*5113495bSYour Name 4313*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4314*5113495bSYour Name #define DOT11F_IE_WMMTSPEC_MIN_LEN (61) 4315*5113495bSYour Name 4316*5113495bSYour Name #define DOT11F_IE_WMMTSPEC_MAX_LEN (61) 4317*5113495bSYour Name 4318*5113495bSYour Name #ifdef __cplusplus 4319*5113495bSYour Name extern "C" { 4320*5113495bSYour Name #endif /* C++ */ 4321*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wmmtspec( 4322*5113495bSYour Name tpAniSirGlobal, 4323*5113495bSYour Name uint8_t *, 4324*5113495bSYour Name uint8_t, 4325*5113495bSYour Name tDot11fIEWMMTSPEC*, 4326*5113495bSYour Name bool); 4327*5113495bSYour Name 4328*5113495bSYour Name uint32_t dot11f_pack_ie_wmmtspec( 4329*5113495bSYour Name tpAniSirGlobal, 4330*5113495bSYour Name tDot11fIEWMMTSPEC *, 4331*5113495bSYour Name uint8_t *, 4332*5113495bSYour Name uint32_t, 4333*5113495bSYour Name uint32_t*); 4334*5113495bSYour Name 4335*5113495bSYour Name uint32_t dot11f_get_packed_ie_WMMTSPEC( 4336*5113495bSYour Name tpAniSirGlobal, 4337*5113495bSYour Name tDot11fIEWMMTSPEC *, 4338*5113495bSYour Name uint32_t*); 4339*5113495bSYour Name 4340*5113495bSYour Name #ifdef __cplusplus 4341*5113495bSYour Name }; /* End extern "C". */ 4342*5113495bSYour Name #endif /* C++ */ 4343*5113495bSYour Name 4344*5113495bSYour Name /* EID 194 (0xc2) */ 4345*5113495bSYour Name typedef struct sDot11fIEWiderBWChanSwitchAnn { 4346*5113495bSYour Name uint8_t present; 4347*5113495bSYour Name uint8_t newChanWidth; 4348*5113495bSYour Name uint8_t newCenterChanFreq0; 4349*5113495bSYour Name uint8_t newCenterChanFreq1; 4350*5113495bSYour Name } tDot11fIEWiderBWChanSwitchAnn; 4351*5113495bSYour Name 4352*5113495bSYour Name #define DOT11F_EID_WIDERBWCHANSWITCHANN (194) 4353*5113495bSYour Name 4354*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4355*5113495bSYour Name #define DOT11F_IE_WIDERBWCHANSWITCHANN_MIN_LEN (3) 4356*5113495bSYour Name 4357*5113495bSYour Name #define DOT11F_IE_WIDERBWCHANSWITCHANN_MAX_LEN (3) 4358*5113495bSYour Name 4359*5113495bSYour Name #ifdef __cplusplus 4360*5113495bSYour Name extern "C" { 4361*5113495bSYour Name #endif /* C++ */ 4362*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wider_bw_chan_switch_ann( 4363*5113495bSYour Name tpAniSirGlobal, 4364*5113495bSYour Name uint8_t *, 4365*5113495bSYour Name uint8_t, 4366*5113495bSYour Name tDot11fIEWiderBWChanSwitchAnn*, 4367*5113495bSYour Name bool); 4368*5113495bSYour Name 4369*5113495bSYour Name uint32_t dot11f_pack_ie_wider_bw_chan_switch_ann( 4370*5113495bSYour Name tpAniSirGlobal, 4371*5113495bSYour Name tDot11fIEWiderBWChanSwitchAnn *, 4372*5113495bSYour Name uint8_t *, 4373*5113495bSYour Name uint32_t, 4374*5113495bSYour Name uint32_t*); 4375*5113495bSYour Name 4376*5113495bSYour Name uint32_t dot11f_get_packed_ie_WiderBWChanSwitchAnn( 4377*5113495bSYour Name tpAniSirGlobal, 4378*5113495bSYour Name tDot11fIEWiderBWChanSwitchAnn *, 4379*5113495bSYour Name uint32_t*); 4380*5113495bSYour Name 4381*5113495bSYour Name #ifdef __cplusplus 4382*5113495bSYour Name }; /* End extern "C". */ 4383*5113495bSYour Name #endif /* C++ */ 4384*5113495bSYour Name 4385*5113495bSYour Name /* EID 1 (0x01) */ 4386*5113495bSYour Name typedef struct sDot11fIEazimuth_req { 4387*5113495bSYour Name uint8_t present; 4388*5113495bSYour Name uint8_t request; 4389*5113495bSYour Name } tDot11fIEazimuth_req; 4390*5113495bSYour Name 4391*5113495bSYour Name #define DOT11F_EID_AZIMUTH_REQ (1) 4392*5113495bSYour Name 4393*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4394*5113495bSYour Name #define DOT11F_IE_AZIMUTH_REQ_MIN_LEN (1) 4395*5113495bSYour Name 4396*5113495bSYour Name #define DOT11F_IE_AZIMUTH_REQ_MAX_LEN (1) 4397*5113495bSYour Name 4398*5113495bSYour Name #ifdef __cplusplus 4399*5113495bSYour Name extern "C" { 4400*5113495bSYour Name #endif /* C++ */ 4401*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_azimuth_req( 4402*5113495bSYour Name tpAniSirGlobal, 4403*5113495bSYour Name uint8_t *, 4404*5113495bSYour Name uint8_t, 4405*5113495bSYour Name tDot11fIEazimuth_req*, 4406*5113495bSYour Name bool); 4407*5113495bSYour Name 4408*5113495bSYour Name uint32_t dot11f_pack_ie_azimuth_req( 4409*5113495bSYour Name tpAniSirGlobal, 4410*5113495bSYour Name tDot11fIEazimuth_req *, 4411*5113495bSYour Name uint8_t *, 4412*5113495bSYour Name uint32_t, 4413*5113495bSYour Name uint32_t*); 4414*5113495bSYour Name 4415*5113495bSYour Name uint32_t dot11f_get_packed_ie_azimuth_req( 4416*5113495bSYour Name tpAniSirGlobal, 4417*5113495bSYour Name tDot11fIEazimuth_req *, 4418*5113495bSYour Name uint32_t*); 4419*5113495bSYour Name 4420*5113495bSYour Name #ifdef __cplusplus 4421*5113495bSYour Name }; /* End extern "C". */ 4422*5113495bSYour Name #endif /* C++ */ 4423*5113495bSYour Name 4424*5113495bSYour Name /* EID 2 (0x02) */ 4425*5113495bSYour Name typedef struct sDot11fIEbeacon_report_frm_body_fragment_id { 4426*5113495bSYour Name uint8_t present; 4427*5113495bSYour Name uint16_t beacon_report_id:8; 4428*5113495bSYour Name uint16_t fragment_id_number:7; 4429*5113495bSYour Name uint16_t more_fragments:1; 4430*5113495bSYour Name } tDot11fIEbeacon_report_frm_body_fragment_id; 4431*5113495bSYour Name 4432*5113495bSYour Name #define DOT11F_EID_BEACON_REPORT_FRM_BODY_FRAGMENT_ID (2) 4433*5113495bSYour Name 4434*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4435*5113495bSYour Name #define DOT11F_IE_BEACON_REPORT_FRM_BODY_FRAGMENT_ID_MIN_LEN (2) 4436*5113495bSYour Name 4437*5113495bSYour Name #define DOT11F_IE_BEACON_REPORT_FRM_BODY_FRAGMENT_ID_MAX_LEN (2) 4438*5113495bSYour Name 4439*5113495bSYour Name #ifdef __cplusplus 4440*5113495bSYour Name extern "C" { 4441*5113495bSYour Name #endif /* C++ */ 4442*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_beacon_report_frm_body_fragment_id( 4443*5113495bSYour Name tpAniSirGlobal, 4444*5113495bSYour Name uint8_t *, 4445*5113495bSYour Name uint8_t, 4446*5113495bSYour Name tDot11fIEbeacon_report_frm_body_fragment_id*, 4447*5113495bSYour Name bool); 4448*5113495bSYour Name 4449*5113495bSYour Name uint32_t dot11f_pack_ie_beacon_report_frm_body_fragment_id( 4450*5113495bSYour Name tpAniSirGlobal, 4451*5113495bSYour Name tDot11fIEbeacon_report_frm_body_fragment_id *, 4452*5113495bSYour Name uint8_t *, 4453*5113495bSYour Name uint32_t, 4454*5113495bSYour Name uint32_t*); 4455*5113495bSYour Name 4456*5113495bSYour Name uint32_t dot11f_get_packed_ie_beacon_report_frm_body_fragment_id( 4457*5113495bSYour Name tpAniSirGlobal, 4458*5113495bSYour Name tDot11fIEbeacon_report_frm_body_fragment_id *, 4459*5113495bSYour Name uint32_t*); 4460*5113495bSYour Name 4461*5113495bSYour Name #ifdef __cplusplus 4462*5113495bSYour Name }; /* End extern "C". */ 4463*5113495bSYour Name #endif /* C++ */ 4464*5113495bSYour Name 4465*5113495bSYour Name /* EID 255 (0xff) Extended EID 135 (0x87) */ 4466*5113495bSYour Name typedef struct sDot11fIEbw_ind_element { 4467*5113495bSYour Name uint8_t present; 4468*5113495bSYour Name uint8_t reserved:1; 4469*5113495bSYour Name uint8_t disabled_sub_chan_bitmap_present:1; 4470*5113495bSYour Name uint8_t reserved_1:6; 4471*5113495bSYour Name uint8_t channel_width:3; 4472*5113495bSYour Name uint8_t reserved_2:5; 4473*5113495bSYour Name uint8_t ccfs0; 4474*5113495bSYour Name uint8_t ccfs1; 4475*5113495bSYour Name uint8_t disabled_sub_chan_bitmap[1][2]; 4476*5113495bSYour Name } tDot11fIEbw_ind_element; 4477*5113495bSYour Name 4478*5113495bSYour Name #define DOT11F_EID_BW_IND_ELEMENT (255) 4479*5113495bSYour Name 4480*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4481*5113495bSYour Name #define DOT11F_IE_BW_IND_ELEMENT_MIN_LEN (4) 4482*5113495bSYour Name 4483*5113495bSYour Name #define DOT11F_IE_BW_IND_ELEMENT_MAX_LEN (6) 4484*5113495bSYour Name 4485*5113495bSYour Name #ifdef __cplusplus 4486*5113495bSYour Name extern "C" { 4487*5113495bSYour Name #endif /* C++ */ 4488*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_bw_ind_element( 4489*5113495bSYour Name tpAniSirGlobal, 4490*5113495bSYour Name uint8_t *, 4491*5113495bSYour Name uint8_t, 4492*5113495bSYour Name tDot11fIEbw_ind_element*, 4493*5113495bSYour Name bool); 4494*5113495bSYour Name 4495*5113495bSYour Name uint32_t dot11f_pack_ie_bw_ind_element( 4496*5113495bSYour Name tpAniSirGlobal, 4497*5113495bSYour Name tDot11fIEbw_ind_element *, 4498*5113495bSYour Name uint8_t *, 4499*5113495bSYour Name uint32_t, 4500*5113495bSYour Name uint32_t*); 4501*5113495bSYour Name 4502*5113495bSYour Name uint32_t dot11f_get_packed_ie_bw_ind_element( 4503*5113495bSYour Name tpAniSirGlobal, 4504*5113495bSYour Name tDot11fIEbw_ind_element *, 4505*5113495bSYour Name uint32_t*); 4506*5113495bSYour Name 4507*5113495bSYour Name #ifdef __cplusplus 4508*5113495bSYour Name }; /* End extern "C". */ 4509*5113495bSYour Name #endif /* C++ */ 4510*5113495bSYour Name 4511*5113495bSYour Name /* EID 164 (0xa4) */ 4512*5113495bSYour Name typedef struct sDot11fIEbw_indication { 4513*5113495bSYour Name uint8_t present; 4514*5113495bSYour Name uint8_t reserved:1; 4515*5113495bSYour Name uint8_t disabled_sub_chan_bitmap_present:1; 4516*5113495bSYour Name uint8_t reserved_1:6; 4517*5113495bSYour Name uint8_t channel_width:3; 4518*5113495bSYour Name uint8_t reserved_2:5; 4519*5113495bSYour Name uint8_t ccfs0; 4520*5113495bSYour Name uint8_t ccfs1; 4521*5113495bSYour Name uint8_t disabled_sub_chan_bitmap[1][2]; 4522*5113495bSYour Name } tDot11fIEbw_indication; 4523*5113495bSYour Name 4524*5113495bSYour Name #define DOT11F_EID_BW_INDICATION (164) 4525*5113495bSYour Name 4526*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4527*5113495bSYour Name #define DOT11F_IE_BW_INDICATION_MIN_LEN (4) 4528*5113495bSYour Name 4529*5113495bSYour Name #define DOT11F_IE_BW_INDICATION_MAX_LEN (6) 4530*5113495bSYour Name 4531*5113495bSYour Name #ifdef __cplusplus 4532*5113495bSYour Name extern "C" { 4533*5113495bSYour Name #endif /* C++ */ 4534*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_bw_indication( 4535*5113495bSYour Name tpAniSirGlobal, 4536*5113495bSYour Name uint8_t *, 4537*5113495bSYour Name uint8_t, 4538*5113495bSYour Name tDot11fIEbw_indication*, 4539*5113495bSYour Name bool); 4540*5113495bSYour Name 4541*5113495bSYour Name uint32_t dot11f_pack_ie_bw_indication( 4542*5113495bSYour Name tpAniSirGlobal, 4543*5113495bSYour Name tDot11fIEbw_indication *, 4544*5113495bSYour Name uint8_t *, 4545*5113495bSYour Name uint32_t, 4546*5113495bSYour Name uint32_t*); 4547*5113495bSYour Name 4548*5113495bSYour Name uint32_t dot11f_get_packed_ie_bw_indication( 4549*5113495bSYour Name tpAniSirGlobal, 4550*5113495bSYour Name tDot11fIEbw_indication *, 4551*5113495bSYour Name uint32_t*); 4552*5113495bSYour Name 4553*5113495bSYour Name #ifdef __cplusplus 4554*5113495bSYour Name }; /* End extern "C". */ 4555*5113495bSYour Name #endif /* C++ */ 4556*5113495bSYour Name 4557*5113495bSYour Name /* EID 164 (0xa4) */ 4558*5113495bSYour Name typedef struct sDot11fIElast_beacon_report_indication { 4559*5113495bSYour Name uint8_t present; 4560*5113495bSYour Name uint8_t last_fragment; 4561*5113495bSYour Name } tDot11fIElast_beacon_report_indication; 4562*5113495bSYour Name 4563*5113495bSYour Name #define DOT11F_EID_LAST_BEACON_REPORT_INDICATION (164) 4564*5113495bSYour Name 4565*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4566*5113495bSYour Name #define DOT11F_IE_LAST_BEACON_REPORT_INDICATION_MIN_LEN (1) 4567*5113495bSYour Name 4568*5113495bSYour Name #define DOT11F_IE_LAST_BEACON_REPORT_INDICATION_MAX_LEN (1) 4569*5113495bSYour Name 4570*5113495bSYour Name #ifdef __cplusplus 4571*5113495bSYour Name extern "C" { 4572*5113495bSYour Name #endif /* C++ */ 4573*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_last_beacon_report_indication( 4574*5113495bSYour Name tpAniSirGlobal, 4575*5113495bSYour Name uint8_t *, 4576*5113495bSYour Name uint8_t, 4577*5113495bSYour Name tDot11fIElast_beacon_report_indication*, 4578*5113495bSYour Name bool); 4579*5113495bSYour Name 4580*5113495bSYour Name uint32_t dot11f_pack_ie_last_beacon_report_indication( 4581*5113495bSYour Name tpAniSirGlobal, 4582*5113495bSYour Name tDot11fIElast_beacon_report_indication *, 4583*5113495bSYour Name uint8_t *, 4584*5113495bSYour Name uint32_t, 4585*5113495bSYour Name uint32_t*); 4586*5113495bSYour Name 4587*5113495bSYour Name uint32_t dot11f_get_packed_ie_last_beacon_report_indication( 4588*5113495bSYour Name tpAniSirGlobal, 4589*5113495bSYour Name tDot11fIElast_beacon_report_indication *, 4590*5113495bSYour Name uint32_t*); 4591*5113495bSYour Name 4592*5113495bSYour Name #ifdef __cplusplus 4593*5113495bSYour Name }; /* End extern "C". */ 4594*5113495bSYour Name #endif /* C++ */ 4595*5113495bSYour Name 4596*5113495bSYour Name /* EID 4 (0x04) */ 4597*5113495bSYour Name typedef struct sDot11fIEmax_age { 4598*5113495bSYour Name uint8_t present; 4599*5113495bSYour Name uint16_t max_age; 4600*5113495bSYour Name } tDot11fIEmax_age; 4601*5113495bSYour Name 4602*5113495bSYour Name #define DOT11F_EID_MAX_AGE (4) 4603*5113495bSYour Name 4604*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4605*5113495bSYour Name #define DOT11F_IE_MAX_AGE_MIN_LEN (2) 4606*5113495bSYour Name 4607*5113495bSYour Name #define DOT11F_IE_MAX_AGE_MAX_LEN (2) 4608*5113495bSYour Name 4609*5113495bSYour Name #ifdef __cplusplus 4610*5113495bSYour Name extern "C" { 4611*5113495bSYour Name #endif /* C++ */ 4612*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_max_age( 4613*5113495bSYour Name tpAniSirGlobal, 4614*5113495bSYour Name uint8_t *, 4615*5113495bSYour Name uint8_t, 4616*5113495bSYour Name tDot11fIEmax_age*, 4617*5113495bSYour Name bool); 4618*5113495bSYour Name 4619*5113495bSYour Name uint32_t dot11f_pack_ie_max_age( 4620*5113495bSYour Name tpAniSirGlobal, 4621*5113495bSYour Name tDot11fIEmax_age *, 4622*5113495bSYour Name uint8_t *, 4623*5113495bSYour Name uint32_t, 4624*5113495bSYour Name uint32_t*); 4625*5113495bSYour Name 4626*5113495bSYour Name uint32_t dot11f_get_packed_ie_max_age( 4627*5113495bSYour Name tpAniSirGlobal, 4628*5113495bSYour Name tDot11fIEmax_age *, 4629*5113495bSYour Name uint32_t*); 4630*5113495bSYour Name 4631*5113495bSYour Name #ifdef __cplusplus 4632*5113495bSYour Name }; /* End extern "C". */ 4633*5113495bSYour Name #endif /* C++ */ 4634*5113495bSYour Name 4635*5113495bSYour Name /* EID 76 (0x4c) */ 4636*5113495bSYour Name typedef struct sDot11fIEmscs_status { 4637*5113495bSYour Name uint8_t present; 4638*5113495bSYour Name uint8_t status_code; 4639*5113495bSYour Name } tDot11fIEmscs_status; 4640*5113495bSYour Name 4641*5113495bSYour Name #define DOT11F_EID_MSCS_STATUS (76) 4642*5113495bSYour Name 4643*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4644*5113495bSYour Name #define DOT11F_IE_MSCS_STATUS_MIN_LEN (1) 4645*5113495bSYour Name 4646*5113495bSYour Name #define DOT11F_IE_MSCS_STATUS_MAX_LEN (1) 4647*5113495bSYour Name 4648*5113495bSYour Name #ifdef __cplusplus 4649*5113495bSYour Name extern "C" { 4650*5113495bSYour Name #endif /* C++ */ 4651*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_mscs_status( 4652*5113495bSYour Name tpAniSirGlobal, 4653*5113495bSYour Name uint8_t *, 4654*5113495bSYour Name uint8_t, 4655*5113495bSYour Name tDot11fIEmscs_status*, 4656*5113495bSYour Name bool); 4657*5113495bSYour Name 4658*5113495bSYour Name uint32_t dot11f_pack_ie_mscs_status( 4659*5113495bSYour Name tpAniSirGlobal, 4660*5113495bSYour Name tDot11fIEmscs_status *, 4661*5113495bSYour Name uint8_t *, 4662*5113495bSYour Name uint32_t, 4663*5113495bSYour Name uint32_t*); 4664*5113495bSYour Name 4665*5113495bSYour Name uint32_t dot11f_get_packed_ie_mscs_status( 4666*5113495bSYour Name tpAniSirGlobal, 4667*5113495bSYour Name tDot11fIEmscs_status *, 4668*5113495bSYour Name uint32_t*); 4669*5113495bSYour Name 4670*5113495bSYour Name #ifdef __cplusplus 4671*5113495bSYour Name }; /* End extern "C". */ 4672*5113495bSYour Name #endif /* C++ */ 4673*5113495bSYour Name 4674*5113495bSYour Name /* EID 52 (0x34) */ 4675*5113495bSYour Name typedef struct sDot11fIEneighbor_rpt { 4676*5113495bSYour Name uint8_t present; 4677*5113495bSYour Name uint8_t bssid[6]; 4678*5113495bSYour Name uint8_t APReachability:2; 4679*5113495bSYour Name uint8_t Security:1; 4680*5113495bSYour Name uint8_t KeyScope:1; 4681*5113495bSYour Name uint8_t SpecMgmtCap:1; 4682*5113495bSYour Name uint8_t QosCap:1; 4683*5113495bSYour Name uint8_t apsd:1; 4684*5113495bSYour Name uint8_t rrm:1; 4685*5113495bSYour Name uint8_t DelayedBA:1; 4686*5113495bSYour Name uint8_t ImmBA:1; 4687*5113495bSYour Name uint8_t MobilityDomain:1; 4688*5113495bSYour Name uint8_t reserved:5; 4689*5113495bSYour Name uint16_t reserved1; 4690*5113495bSYour Name uint8_t regulatoryClass; 4691*5113495bSYour Name uint8_t channel; 4692*5113495bSYour Name uint8_t PhyType; 4693*5113495bSYour Name tDot11fIETSFInfo TSFInfo; 4694*5113495bSYour Name tDot11fIECondensedCountryStr CondensedCountryStr; 4695*5113495bSYour Name tDot11fIEMeasurementPilot MeasurementPilot; 4696*5113495bSYour Name tDot11fIERRMEnabledCap RRMEnabledCap; 4697*5113495bSYour Name tDot11fIEMultiBssid MultiBssid; 4698*5113495bSYour Name } tDot11fIEneighbor_rpt; 4699*5113495bSYour Name 4700*5113495bSYour Name #define DOT11F_EID_NEIGHBOR_RPT (52) 4701*5113495bSYour Name 4702*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4703*5113495bSYour Name #define DOT11F_IE_NEIGHBOR_RPT_MIN_LEN (13) 4704*5113495bSYour Name 4705*5113495bSYour Name #define DOT11F_IE_NEIGHBOR_RPT_MAX_LEN (546) 4706*5113495bSYour Name 4707*5113495bSYour Name #ifdef __cplusplus 4708*5113495bSYour Name extern "C" { 4709*5113495bSYour Name #endif /* C++ */ 4710*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_neighbor_rpt( 4711*5113495bSYour Name tpAniSirGlobal, 4712*5113495bSYour Name uint8_t *, 4713*5113495bSYour Name uint8_t, 4714*5113495bSYour Name tDot11fIEneighbor_rpt*, 4715*5113495bSYour Name bool); 4716*5113495bSYour Name 4717*5113495bSYour Name uint32_t dot11f_pack_ie_neighbor_rpt( 4718*5113495bSYour Name tpAniSirGlobal, 4719*5113495bSYour Name tDot11fIEneighbor_rpt *, 4720*5113495bSYour Name uint8_t *, 4721*5113495bSYour Name uint32_t, 4722*5113495bSYour Name uint32_t*); 4723*5113495bSYour Name 4724*5113495bSYour Name uint32_t dot11f_get_packed_ie_neighbor_rpt( 4725*5113495bSYour Name tpAniSirGlobal, 4726*5113495bSYour Name tDot11fIEneighbor_rpt *, 4727*5113495bSYour Name uint32_t*); 4728*5113495bSYour Name 4729*5113495bSYour Name #ifdef __cplusplus 4730*5113495bSYour Name }; /* End extern "C". */ 4731*5113495bSYour Name #endif /* C++ */ 4732*5113495bSYour Name 4733*5113495bSYour Name /* EID 1 (0x01) */ 4734*5113495bSYour Name typedef struct sDot11fIEreporting_reason { 4735*5113495bSYour Name uint8_t present; 4736*5113495bSYour Name uint8_t failed_count:1; 4737*5113495bSYour Name uint8_t fcs_error:1; 4738*5113495bSYour Name uint8_t multiple_retry:1; 4739*5113495bSYour Name uint8_t frame_duplicate:1; 4740*5113495bSYour Name uint8_t rts_failure:1; 4741*5113495bSYour Name uint8_t ack_failure:1; 4742*5113495bSYour Name uint8_t retry:1; 4743*5113495bSYour Name uint8_t reserved:1; 4744*5113495bSYour Name } tDot11fIEreporting_reason; 4745*5113495bSYour Name 4746*5113495bSYour Name #define DOT11F_EID_REPORTING_REASON (1) 4747*5113495bSYour Name 4748*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4749*5113495bSYour Name #define DOT11F_IE_REPORTING_REASON_MIN_LEN (1) 4750*5113495bSYour Name 4751*5113495bSYour Name #define DOT11F_IE_REPORTING_REASON_MAX_LEN (1) 4752*5113495bSYour Name 4753*5113495bSYour Name #ifdef __cplusplus 4754*5113495bSYour Name extern "C" { 4755*5113495bSYour Name #endif /* C++ */ 4756*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_reporting_reason( 4757*5113495bSYour Name tpAniSirGlobal, 4758*5113495bSYour Name uint8_t *, 4759*5113495bSYour Name uint8_t, 4760*5113495bSYour Name tDot11fIEreporting_reason*, 4761*5113495bSYour Name bool); 4762*5113495bSYour Name 4763*5113495bSYour Name uint32_t dot11f_pack_ie_reporting_reason( 4764*5113495bSYour Name tpAniSirGlobal, 4765*5113495bSYour Name tDot11fIEreporting_reason *, 4766*5113495bSYour Name uint8_t *, 4767*5113495bSYour Name uint32_t, 4768*5113495bSYour Name uint32_t*); 4769*5113495bSYour Name 4770*5113495bSYour Name uint32_t dot11f_get_packed_ie_reporting_reason( 4771*5113495bSYour Name tpAniSirGlobal, 4772*5113495bSYour Name tDot11fIEreporting_reason *, 4773*5113495bSYour Name uint32_t*); 4774*5113495bSYour Name 4775*5113495bSYour Name #ifdef __cplusplus 4776*5113495bSYour Name }; /* End extern "C". */ 4777*5113495bSYour Name #endif /* C++ */ 4778*5113495bSYour Name 4779*5113495bSYour Name /* EID 2 (0x02) */ 4780*5113495bSYour Name typedef struct sDot11fIEreq_mac_addr { 4781*5113495bSYour Name uint8_t present; 4782*5113495bSYour Name uint8_t addr[6]; 4783*5113495bSYour Name } tDot11fIEreq_mac_addr; 4784*5113495bSYour Name 4785*5113495bSYour Name #define DOT11F_EID_REQ_MAC_ADDR (2) 4786*5113495bSYour Name 4787*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4788*5113495bSYour Name #define DOT11F_IE_REQ_MAC_ADDR_MIN_LEN (6) 4789*5113495bSYour Name 4790*5113495bSYour Name #define DOT11F_IE_REQ_MAC_ADDR_MAX_LEN (6) 4791*5113495bSYour Name 4792*5113495bSYour Name #ifdef __cplusplus 4793*5113495bSYour Name extern "C" { 4794*5113495bSYour Name #endif /* C++ */ 4795*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_req_mac_addr( 4796*5113495bSYour Name tpAniSirGlobal, 4797*5113495bSYour Name uint8_t *, 4798*5113495bSYour Name uint8_t, 4799*5113495bSYour Name tDot11fIEreq_mac_addr*, 4800*5113495bSYour Name bool); 4801*5113495bSYour Name 4802*5113495bSYour Name uint32_t dot11f_pack_ie_req_mac_addr( 4803*5113495bSYour Name tpAniSirGlobal, 4804*5113495bSYour Name tDot11fIEreq_mac_addr *, 4805*5113495bSYour Name uint8_t *, 4806*5113495bSYour Name uint32_t, 4807*5113495bSYour Name uint32_t*); 4808*5113495bSYour Name 4809*5113495bSYour Name uint32_t dot11f_get_packed_ie_req_mac_addr( 4810*5113495bSYour Name tpAniSirGlobal, 4811*5113495bSYour Name tDot11fIEreq_mac_addr *, 4812*5113495bSYour Name uint32_t*); 4813*5113495bSYour Name 4814*5113495bSYour Name #ifdef __cplusplus 4815*5113495bSYour Name }; /* End extern "C". */ 4816*5113495bSYour Name #endif /* C++ */ 4817*5113495bSYour Name 4818*5113495bSYour Name /* EID 1 (0x01) */ 4819*5113495bSYour Name typedef struct sDot11fIErrm_reporting { 4820*5113495bSYour Name uint8_t present; 4821*5113495bSYour Name uint8_t reporting_condition; 4822*5113495bSYour Name uint8_t threshold; 4823*5113495bSYour Name } tDot11fIErrm_reporting; 4824*5113495bSYour Name 4825*5113495bSYour Name #define DOT11F_EID_RRM_REPORTING (1) 4826*5113495bSYour Name 4827*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4828*5113495bSYour Name #define DOT11F_IE_RRM_REPORTING_MIN_LEN (2) 4829*5113495bSYour Name 4830*5113495bSYour Name #define DOT11F_IE_RRM_REPORTING_MAX_LEN (2) 4831*5113495bSYour Name 4832*5113495bSYour Name #ifdef __cplusplus 4833*5113495bSYour Name extern "C" { 4834*5113495bSYour Name #endif /* C++ */ 4835*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_rrm_reporting( 4836*5113495bSYour Name tpAniSirGlobal, 4837*5113495bSYour Name uint8_t *, 4838*5113495bSYour Name uint8_t, 4839*5113495bSYour Name tDot11fIErrm_reporting*, 4840*5113495bSYour Name bool); 4841*5113495bSYour Name 4842*5113495bSYour Name uint32_t dot11f_pack_ie_rrm_reporting( 4843*5113495bSYour Name tpAniSirGlobal, 4844*5113495bSYour Name tDot11fIErrm_reporting *, 4845*5113495bSYour Name uint8_t *, 4846*5113495bSYour Name uint32_t, 4847*5113495bSYour Name uint32_t*); 4848*5113495bSYour Name 4849*5113495bSYour Name uint32_t dot11f_get_packed_ie_rrm_reporting( 4850*5113495bSYour Name tpAniSirGlobal, 4851*5113495bSYour Name tDot11fIErrm_reporting *, 4852*5113495bSYour Name uint32_t*); 4853*5113495bSYour Name 4854*5113495bSYour Name #ifdef __cplusplus 4855*5113495bSYour Name }; /* End extern "C". */ 4856*5113495bSYour Name #endif /* C++ */ 4857*5113495bSYour Name 4858*5113495bSYour Name /* EID 255 (0xff) Extended EID 89 (0x59) */ 4859*5113495bSYour Name typedef struct sDot11fIEtclas_mask { 4860*5113495bSYour Name uint8_t present; 4861*5113495bSYour Name uint8_t classifier_type; 4862*5113495bSYour Name uint8_t classifier_mask; 4863*5113495bSYour Name union { 4864*5113495bSYour Name struct { 4865*5113495bSYour Name uint8_t reserved[16]; 4866*5113495bSYour Name } ip_param; /* classifier_type = 4 */ 4867*5113495bSYour Name } info; 4868*5113495bSYour Name } tDot11fIEtclas_mask; 4869*5113495bSYour Name 4870*5113495bSYour Name #define DOT11F_EID_TCLAS_MASK (255) 4871*5113495bSYour Name 4872*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4873*5113495bSYour Name #define DOT11F_IE_TCLAS_MASK_MIN_LEN (18) 4874*5113495bSYour Name 4875*5113495bSYour Name #define DOT11F_IE_TCLAS_MASK_MAX_LEN (18) 4876*5113495bSYour Name 4877*5113495bSYour Name #ifdef __cplusplus 4878*5113495bSYour Name extern "C" { 4879*5113495bSYour Name #endif /* C++ */ 4880*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_tclas_mask( 4881*5113495bSYour Name tpAniSirGlobal, 4882*5113495bSYour Name uint8_t *, 4883*5113495bSYour Name uint8_t, 4884*5113495bSYour Name tDot11fIEtclas_mask*, 4885*5113495bSYour Name bool); 4886*5113495bSYour Name 4887*5113495bSYour Name uint32_t dot11f_pack_ie_tclas_mask( 4888*5113495bSYour Name tpAniSirGlobal, 4889*5113495bSYour Name tDot11fIEtclas_mask *, 4890*5113495bSYour Name uint8_t *, 4891*5113495bSYour Name uint32_t, 4892*5113495bSYour Name uint32_t*); 4893*5113495bSYour Name 4894*5113495bSYour Name uint32_t dot11f_get_packed_ie_tclas_mask( 4895*5113495bSYour Name tpAniSirGlobal, 4896*5113495bSYour Name tDot11fIEtclas_mask *, 4897*5113495bSYour Name uint32_t*); 4898*5113495bSYour Name 4899*5113495bSYour Name #ifdef __cplusplus 4900*5113495bSYour Name }; /* End extern "C". */ 4901*5113495bSYour Name #endif /* C++ */ 4902*5113495bSYour Name 4903*5113495bSYour Name /* EID 3 (0x03) */ 4904*5113495bSYour Name typedef struct sDot11fIEtgt_mac_addr { 4905*5113495bSYour Name uint8_t present; 4906*5113495bSYour Name uint8_t addr[6]; 4907*5113495bSYour Name } tDot11fIEtgt_mac_addr; 4908*5113495bSYour Name 4909*5113495bSYour Name #define DOT11F_EID_TGT_MAC_ADDR (3) 4910*5113495bSYour Name 4911*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4912*5113495bSYour Name #define DOT11F_IE_TGT_MAC_ADDR_MIN_LEN (6) 4913*5113495bSYour Name 4914*5113495bSYour Name #define DOT11F_IE_TGT_MAC_ADDR_MAX_LEN (6) 4915*5113495bSYour Name 4916*5113495bSYour Name #ifdef __cplusplus 4917*5113495bSYour Name extern "C" { 4918*5113495bSYour Name #endif /* C++ */ 4919*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_tgt_mac_addr( 4920*5113495bSYour Name tpAniSirGlobal, 4921*5113495bSYour Name uint8_t *, 4922*5113495bSYour Name uint8_t, 4923*5113495bSYour Name tDot11fIEtgt_mac_addr*, 4924*5113495bSYour Name bool); 4925*5113495bSYour Name 4926*5113495bSYour Name uint32_t dot11f_pack_ie_tgt_mac_addr( 4927*5113495bSYour Name tpAniSirGlobal, 4928*5113495bSYour Name tDot11fIEtgt_mac_addr *, 4929*5113495bSYour Name uint8_t *, 4930*5113495bSYour Name uint32_t, 4931*5113495bSYour Name uint32_t*); 4932*5113495bSYour Name 4933*5113495bSYour Name uint32_t dot11f_get_packed_ie_tgt_mac_addr( 4934*5113495bSYour Name tpAniSirGlobal, 4935*5113495bSYour Name tDot11fIEtgt_mac_addr *, 4936*5113495bSYour Name uint32_t*); 4937*5113495bSYour Name 4938*5113495bSYour Name #ifdef __cplusplus 4939*5113495bSYour Name }; /* End extern "C". */ 4940*5113495bSYour Name #endif /* C++ */ 4941*5113495bSYour Name 4942*5113495bSYour Name /* EID 195 (0xc3) */ 4943*5113495bSYour Name typedef struct sDot11fIEtransmit_power_env { 4944*5113495bSYour Name uint8_t present; 4945*5113495bSYour Name uint8_t max_tx_pwr_count:3; 4946*5113495bSYour Name uint8_t max_tx_pwr_interpret:3; 4947*5113495bSYour Name uint8_t max_tx_pwr_category:2; 4948*5113495bSYour Name uint8_t num_tx_power; 4949*5113495bSYour Name uint8_t tx_power[8]; 4950*5113495bSYour Name union { 4951*5113495bSYour Name struct { 4952*5113495bSYour Name uint8_t max_tx_power_for_320; 4953*5113495bSYour Name } ext_max_tx_power_local_eirp; /* max_tx_pwr_interpret = 0 */ 4954*5113495bSYour Name struct { 4955*5113495bSYour Name uint8_t ext_count:4; 4956*5113495bSYour Name uint8_t reserved:4; 4957*5113495bSYour Name uint8_t max_tx_psd_power[8]; 4958*5113495bSYour Name } ext_max_tx_power_local_psd; /* max_tx_pwr_interpret = 1 */ 4959*5113495bSYour Name struct { 4960*5113495bSYour Name uint8_t max_tx_power_for_320; 4961*5113495bSYour Name } ext_max_tx_power_reg_eirp; /* max_tx_pwr_interpret = 2 */ 4962*5113495bSYour Name struct { 4963*5113495bSYour Name uint8_t ext_count:4; 4964*5113495bSYour Name uint8_t reserved:4; 4965*5113495bSYour Name uint8_t max_tx_psd_power[8]; 4966*5113495bSYour Name } ext_max_tx_power_reg_psd; /* max_tx_pwr_interpret = 3 */ 4967*5113495bSYour Name } ext_max_tx_power; 4968*5113495bSYour Name } tDot11fIEtransmit_power_env; 4969*5113495bSYour Name 4970*5113495bSYour Name #define DOT11F_EID_TRANSMIT_POWER_ENV (195) 4971*5113495bSYour Name 4972*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 4973*5113495bSYour Name #define DOT11F_IE_TRANSMIT_POWER_ENV_MIN_LEN (2) 4974*5113495bSYour Name 4975*5113495bSYour Name #define DOT11F_IE_TRANSMIT_POWER_ENV_MAX_LEN (18) 4976*5113495bSYour Name 4977*5113495bSYour Name #ifdef __cplusplus 4978*5113495bSYour Name extern "C" { 4979*5113495bSYour Name #endif /* C++ */ 4980*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_transmit_power_env( 4981*5113495bSYour Name tpAniSirGlobal, 4982*5113495bSYour Name uint8_t *, 4983*5113495bSYour Name uint8_t, 4984*5113495bSYour Name tDot11fIEtransmit_power_env*, 4985*5113495bSYour Name bool); 4986*5113495bSYour Name 4987*5113495bSYour Name uint32_t dot11f_pack_ie_transmit_power_env( 4988*5113495bSYour Name tpAniSirGlobal, 4989*5113495bSYour Name tDot11fIEtransmit_power_env *, 4990*5113495bSYour Name uint8_t *, 4991*5113495bSYour Name uint32_t, 4992*5113495bSYour Name uint32_t*); 4993*5113495bSYour Name 4994*5113495bSYour Name uint32_t dot11f_get_packed_ie_transmit_power_env( 4995*5113495bSYour Name tpAniSirGlobal, 4996*5113495bSYour Name tDot11fIEtransmit_power_env *, 4997*5113495bSYour Name uint32_t*); 4998*5113495bSYour Name 4999*5113495bSYour Name #ifdef __cplusplus 5000*5113495bSYour Name }; /* End extern "C". */ 5001*5113495bSYour Name #endif /* C++ */ 5002*5113495bSYour Name 5003*5113495bSYour Name /* EID 163 (0xa3) */ 5004*5113495bSYour Name typedef struct sDot11fIEwide_bw_chan_switch { 5005*5113495bSYour Name uint8_t present; 5006*5113495bSYour Name uint8_t new_chan_width; 5007*5113495bSYour Name uint8_t new_center_chan_freq0; 5008*5113495bSYour Name uint8_t new_center_chan_freq1; 5009*5113495bSYour Name } tDot11fIEwide_bw_chan_switch; 5010*5113495bSYour Name 5011*5113495bSYour Name #define DOT11F_EID_WIDE_BW_CHAN_SWITCH (163) 5012*5113495bSYour Name 5013*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5014*5113495bSYour Name #define DOT11F_IE_WIDE_BW_CHAN_SWITCH_MIN_LEN (3) 5015*5113495bSYour Name 5016*5113495bSYour Name #define DOT11F_IE_WIDE_BW_CHAN_SWITCH_MAX_LEN (3) 5017*5113495bSYour Name 5018*5113495bSYour Name #ifdef __cplusplus 5019*5113495bSYour Name extern "C" { 5020*5113495bSYour Name #endif /* C++ */ 5021*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wide_bw_chan_switch( 5022*5113495bSYour Name tpAniSirGlobal, 5023*5113495bSYour Name uint8_t *, 5024*5113495bSYour Name uint8_t, 5025*5113495bSYour Name tDot11fIEwide_bw_chan_switch*, 5026*5113495bSYour Name bool); 5027*5113495bSYour Name 5028*5113495bSYour Name uint32_t dot11f_pack_ie_wide_bw_chan_switch( 5029*5113495bSYour Name tpAniSirGlobal, 5030*5113495bSYour Name tDot11fIEwide_bw_chan_switch *, 5031*5113495bSYour Name uint8_t *, 5032*5113495bSYour Name uint32_t, 5033*5113495bSYour Name uint32_t*); 5034*5113495bSYour Name 5035*5113495bSYour Name uint32_t dot11f_get_packed_ie_wide_bw_chan_switch( 5036*5113495bSYour Name tpAniSirGlobal, 5037*5113495bSYour Name tDot11fIEwide_bw_chan_switch *, 5038*5113495bSYour Name uint32_t*); 5039*5113495bSYour Name 5040*5113495bSYour Name #ifdef __cplusplus 5041*5113495bSYour Name }; /* End extern "C". */ 5042*5113495bSYour Name #endif /* C++ */ 5043*5113495bSYour Name 5044*5113495bSYour Name /* EID 197 (0xc5) */ 5045*5113495bSYour Name typedef struct sDot11fIEAID { 5046*5113495bSYour Name uint8_t present; 5047*5113495bSYour Name uint16_t assocId; 5048*5113495bSYour Name } tDot11fIEAID; 5049*5113495bSYour Name 5050*5113495bSYour Name #define DOT11F_EID_AID (197) 5051*5113495bSYour Name 5052*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5053*5113495bSYour Name #define DOT11F_IE_AID_MIN_LEN (2) 5054*5113495bSYour Name 5055*5113495bSYour Name #define DOT11F_IE_AID_MAX_LEN (2) 5056*5113495bSYour Name 5057*5113495bSYour Name #ifdef __cplusplus 5058*5113495bSYour Name extern "C" { 5059*5113495bSYour Name #endif /* C++ */ 5060*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_aid( 5061*5113495bSYour Name tpAniSirGlobal, 5062*5113495bSYour Name uint8_t *, 5063*5113495bSYour Name uint8_t, 5064*5113495bSYour Name tDot11fIEAID*, 5065*5113495bSYour Name bool); 5066*5113495bSYour Name 5067*5113495bSYour Name uint32_t dot11f_pack_ie_aid( 5068*5113495bSYour Name tpAniSirGlobal, 5069*5113495bSYour Name tDot11fIEAID *, 5070*5113495bSYour Name uint8_t *, 5071*5113495bSYour Name uint32_t, 5072*5113495bSYour Name uint32_t*); 5073*5113495bSYour Name 5074*5113495bSYour Name uint32_t dot11f_get_packed_ie_AID( 5075*5113495bSYour Name tpAniSirGlobal, 5076*5113495bSYour Name tDot11fIEAID *, 5077*5113495bSYour Name uint32_t*); 5078*5113495bSYour Name 5079*5113495bSYour Name #ifdef __cplusplus 5080*5113495bSYour Name }; /* End extern "C". */ 5081*5113495bSYour Name #endif /* C++ */ 5082*5113495bSYour Name 5083*5113495bSYour Name /* EID 4 (0x04) */ 5084*5113495bSYour Name typedef struct sDot11fIECFParams { 5085*5113495bSYour Name uint8_t present; 5086*5113495bSYour Name uint8_t cfp_count; 5087*5113495bSYour Name uint8_t cfp_period; 5088*5113495bSYour Name uint16_t cfp_maxduration; 5089*5113495bSYour Name uint16_t cfp_durremaining; 5090*5113495bSYour Name } tDot11fIECFParams; 5091*5113495bSYour Name 5092*5113495bSYour Name #define DOT11F_EID_CFPARAMS (4) 5093*5113495bSYour Name 5094*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5095*5113495bSYour Name #define DOT11F_IE_CFPARAMS_MIN_LEN (6) 5096*5113495bSYour Name 5097*5113495bSYour Name #define DOT11F_IE_CFPARAMS_MAX_LEN (6) 5098*5113495bSYour Name 5099*5113495bSYour Name #ifdef __cplusplus 5100*5113495bSYour Name extern "C" { 5101*5113495bSYour Name #endif /* C++ */ 5102*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_cf_params( 5103*5113495bSYour Name tpAniSirGlobal, 5104*5113495bSYour Name uint8_t *, 5105*5113495bSYour Name uint8_t, 5106*5113495bSYour Name tDot11fIECFParams*, 5107*5113495bSYour Name bool); 5108*5113495bSYour Name 5109*5113495bSYour Name uint32_t dot11f_pack_ie_cf_params( 5110*5113495bSYour Name tpAniSirGlobal, 5111*5113495bSYour Name tDot11fIECFParams *, 5112*5113495bSYour Name uint8_t *, 5113*5113495bSYour Name uint32_t, 5114*5113495bSYour Name uint32_t*); 5115*5113495bSYour Name 5116*5113495bSYour Name uint32_t dot11f_get_packed_ie_CFParams( 5117*5113495bSYour Name tpAniSirGlobal, 5118*5113495bSYour Name tDot11fIECFParams *, 5119*5113495bSYour Name uint32_t*); 5120*5113495bSYour Name 5121*5113495bSYour Name #ifdef __cplusplus 5122*5113495bSYour Name }; /* End extern "C". */ 5123*5113495bSYour Name #endif /* C++ */ 5124*5113495bSYour Name 5125*5113495bSYour Name /* EID 16 (0x10) */ 5126*5113495bSYour Name typedef struct sDot11fIEChallengeText { 5127*5113495bSYour Name uint8_t present; 5128*5113495bSYour Name uint8_t num_text; 5129*5113495bSYour Name uint8_t text[253]; 5130*5113495bSYour Name } tDot11fIEChallengeText; 5131*5113495bSYour Name 5132*5113495bSYour Name #define DOT11F_EID_CHALLENGETEXT (16) 5133*5113495bSYour Name 5134*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5135*5113495bSYour Name #define DOT11F_IE_CHALLENGETEXT_MIN_LEN (1) 5136*5113495bSYour Name 5137*5113495bSYour Name #define DOT11F_IE_CHALLENGETEXT_MAX_LEN (253) 5138*5113495bSYour Name 5139*5113495bSYour Name #ifdef __cplusplus 5140*5113495bSYour Name extern "C" { 5141*5113495bSYour Name #endif /* C++ */ 5142*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_challenge_text( 5143*5113495bSYour Name tpAniSirGlobal, 5144*5113495bSYour Name uint8_t *, 5145*5113495bSYour Name uint8_t, 5146*5113495bSYour Name tDot11fIEChallengeText*, 5147*5113495bSYour Name bool); 5148*5113495bSYour Name 5149*5113495bSYour Name uint32_t dot11f_pack_ie_challenge_text( 5150*5113495bSYour Name tpAniSirGlobal, 5151*5113495bSYour Name tDot11fIEChallengeText *, 5152*5113495bSYour Name uint8_t *, 5153*5113495bSYour Name uint32_t, 5154*5113495bSYour Name uint32_t*); 5155*5113495bSYour Name 5156*5113495bSYour Name uint32_t dot11f_get_packed_ie_ChallengeText( 5157*5113495bSYour Name tpAniSirGlobal, 5158*5113495bSYour Name tDot11fIEChallengeText *, 5159*5113495bSYour Name uint32_t*); 5160*5113495bSYour Name 5161*5113495bSYour Name #ifdef __cplusplus 5162*5113495bSYour Name }; /* End extern "C". */ 5163*5113495bSYour Name #endif /* C++ */ 5164*5113495bSYour Name 5165*5113495bSYour Name /* EID 37 (0x25) */ 5166*5113495bSYour Name typedef struct sDot11fIEChanSwitchAnn { 5167*5113495bSYour Name uint8_t present; 5168*5113495bSYour Name uint8_t switchMode; 5169*5113495bSYour Name uint8_t newChannel; 5170*5113495bSYour Name uint8_t switchCount; 5171*5113495bSYour Name } tDot11fIEChanSwitchAnn; 5172*5113495bSYour Name 5173*5113495bSYour Name #define DOT11F_EID_CHANSWITCHANN (37) 5174*5113495bSYour Name 5175*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5176*5113495bSYour Name #define DOT11F_IE_CHANSWITCHANN_MIN_LEN (3) 5177*5113495bSYour Name 5178*5113495bSYour Name #define DOT11F_IE_CHANSWITCHANN_MAX_LEN (3) 5179*5113495bSYour Name 5180*5113495bSYour Name #ifdef __cplusplus 5181*5113495bSYour Name extern "C" { 5182*5113495bSYour Name #endif /* C++ */ 5183*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_chan_switch_ann( 5184*5113495bSYour Name tpAniSirGlobal, 5185*5113495bSYour Name uint8_t *, 5186*5113495bSYour Name uint8_t, 5187*5113495bSYour Name tDot11fIEChanSwitchAnn*, 5188*5113495bSYour Name bool); 5189*5113495bSYour Name 5190*5113495bSYour Name uint32_t dot11f_pack_ie_chan_switch_ann( 5191*5113495bSYour Name tpAniSirGlobal, 5192*5113495bSYour Name tDot11fIEChanSwitchAnn *, 5193*5113495bSYour Name uint8_t *, 5194*5113495bSYour Name uint32_t, 5195*5113495bSYour Name uint32_t*); 5196*5113495bSYour Name 5197*5113495bSYour Name uint32_t dot11f_get_packed_ie_ChanSwitchAnn( 5198*5113495bSYour Name tpAniSirGlobal, 5199*5113495bSYour Name tDot11fIEChanSwitchAnn *, 5200*5113495bSYour Name uint32_t*); 5201*5113495bSYour Name 5202*5113495bSYour Name #ifdef __cplusplus 5203*5113495bSYour Name }; /* End extern "C". */ 5204*5113495bSYour Name #endif /* C++ */ 5205*5113495bSYour Name 5206*5113495bSYour Name /* EID 196 (0xc4) */ 5207*5113495bSYour Name typedef struct sDot11fIEChannelSwitchWrapper { 5208*5113495bSYour Name uint8_t present; 5209*5113495bSYour Name tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; 5210*5113495bSYour Name tDot11fIEtransmit_power_env transmit_power_env; 5211*5113495bSYour Name tDot11fIEbw_ind_element bw_ind_element; 5212*5113495bSYour Name } tDot11fIEChannelSwitchWrapper; 5213*5113495bSYour Name 5214*5113495bSYour Name #define DOT11F_EID_CHANNELSWITCHWRAPPER (196) 5215*5113495bSYour Name 5216*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5217*5113495bSYour Name #define DOT11F_IE_CHANNELSWITCHWRAPPER_MIN_LEN (0) 5218*5113495bSYour Name 5219*5113495bSYour Name #define DOT11F_IE_CHANNELSWITCHWRAPPER_MAX_LEN (33) 5220*5113495bSYour Name 5221*5113495bSYour Name #ifdef __cplusplus 5222*5113495bSYour Name extern "C" { 5223*5113495bSYour Name #endif /* C++ */ 5224*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_channel_switch_wrapper( 5225*5113495bSYour Name tpAniSirGlobal, 5226*5113495bSYour Name uint8_t *, 5227*5113495bSYour Name uint8_t, 5228*5113495bSYour Name tDot11fIEChannelSwitchWrapper*, 5229*5113495bSYour Name bool); 5230*5113495bSYour Name 5231*5113495bSYour Name uint32_t dot11f_pack_ie_channel_switch_wrapper( 5232*5113495bSYour Name tpAniSirGlobal, 5233*5113495bSYour Name tDot11fIEChannelSwitchWrapper *, 5234*5113495bSYour Name uint8_t *, 5235*5113495bSYour Name uint32_t, 5236*5113495bSYour Name uint32_t*); 5237*5113495bSYour Name 5238*5113495bSYour Name uint32_t dot11f_get_packed_ie_channel_switch_wrapper( 5239*5113495bSYour Name tpAniSirGlobal, 5240*5113495bSYour Name tDot11fIEChannelSwitchWrapper *, 5241*5113495bSYour Name uint32_t*); 5242*5113495bSYour Name 5243*5113495bSYour Name #ifdef __cplusplus 5244*5113495bSYour Name }; /* End extern "C". */ 5245*5113495bSYour Name #endif /* C++ */ 5246*5113495bSYour Name 5247*5113495bSYour Name /* EID 7 (0x07) */ 5248*5113495bSYour Name typedef struct sDot11fIECountry { 5249*5113495bSYour Name uint8_t present; 5250*5113495bSYour Name uint8_t country[3]; 5251*5113495bSYour Name uint8_t first_triplet[3]; 5252*5113495bSYour Name uint8_t num_more_triplets; 5253*5113495bSYour Name uint8_t more_triplets[80][3]; 5254*5113495bSYour Name } tDot11fIECountry; 5255*5113495bSYour Name 5256*5113495bSYour Name #define DOT11F_EID_COUNTRY (7) 5257*5113495bSYour Name 5258*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5259*5113495bSYour Name #define DOT11F_IE_COUNTRY_MIN_LEN (6) 5260*5113495bSYour Name 5261*5113495bSYour Name #define DOT11F_IE_COUNTRY_MAX_LEN (246) 5262*5113495bSYour Name 5263*5113495bSYour Name #ifdef __cplusplus 5264*5113495bSYour Name extern "C" { 5265*5113495bSYour Name #endif /* C++ */ 5266*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_country( 5267*5113495bSYour Name tpAniSirGlobal, 5268*5113495bSYour Name uint8_t *, 5269*5113495bSYour Name uint8_t, 5270*5113495bSYour Name tDot11fIECountry*, 5271*5113495bSYour Name bool); 5272*5113495bSYour Name 5273*5113495bSYour Name uint32_t dot11f_pack_ie_country( 5274*5113495bSYour Name tpAniSirGlobal, 5275*5113495bSYour Name tDot11fIECountry *, 5276*5113495bSYour Name uint8_t *, 5277*5113495bSYour Name uint32_t, 5278*5113495bSYour Name uint32_t*); 5279*5113495bSYour Name 5280*5113495bSYour Name uint32_t dot11f_get_packed_ie_country( 5281*5113495bSYour Name tpAniSirGlobal, 5282*5113495bSYour Name tDot11fIECountry *, 5283*5113495bSYour Name uint32_t*); 5284*5113495bSYour Name 5285*5113495bSYour Name #ifdef __cplusplus 5286*5113495bSYour Name }; /* End extern "C". */ 5287*5113495bSYour Name #endif /* C++ */ 5288*5113495bSYour Name 5289*5113495bSYour Name /* EID 3 (0x03) */ 5290*5113495bSYour Name typedef struct sDot11fIEDSParams { 5291*5113495bSYour Name uint8_t present; 5292*5113495bSYour Name uint8_t curr_channel; 5293*5113495bSYour Name } tDot11fIEDSParams; 5294*5113495bSYour Name 5295*5113495bSYour Name #define DOT11F_EID_DSPARAMS (3) 5296*5113495bSYour Name 5297*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5298*5113495bSYour Name #define DOT11F_IE_DSPARAMS_MIN_LEN (1) 5299*5113495bSYour Name 5300*5113495bSYour Name #define DOT11F_IE_DSPARAMS_MAX_LEN (1) 5301*5113495bSYour Name 5302*5113495bSYour Name #ifdef __cplusplus 5303*5113495bSYour Name extern "C" { 5304*5113495bSYour Name #endif /* C++ */ 5305*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_DSParams( 5306*5113495bSYour Name tpAniSirGlobal, 5307*5113495bSYour Name uint8_t *, 5308*5113495bSYour Name uint8_t, 5309*5113495bSYour Name tDot11fIEDSParams*, 5310*5113495bSYour Name bool); 5311*5113495bSYour Name 5312*5113495bSYour Name uint32_t dot11f_pack_ie_ds_params( 5313*5113495bSYour Name tpAniSirGlobal, 5314*5113495bSYour Name tDot11fIEDSParams *, 5315*5113495bSYour Name uint8_t *, 5316*5113495bSYour Name uint32_t, 5317*5113495bSYour Name uint32_t*); 5318*5113495bSYour Name 5319*5113495bSYour Name uint32_t dot11f_get_packed_ie_DSParams( 5320*5113495bSYour Name tpAniSirGlobal, 5321*5113495bSYour Name tDot11fIEDSParams *, 5322*5113495bSYour Name uint32_t*); 5323*5113495bSYour Name 5324*5113495bSYour Name #ifdef __cplusplus 5325*5113495bSYour Name }; /* End extern "C". */ 5326*5113495bSYour Name #endif /* C++ */ 5327*5113495bSYour Name 5328*5113495bSYour Name /* EID 12 (0x0c) */ 5329*5113495bSYour Name typedef struct sDot11fIEEDCAParamSet { 5330*5113495bSYour Name uint8_t present; 5331*5113495bSYour Name uint8_t qos; 5332*5113495bSYour Name uint8_t reserved; 5333*5113495bSYour Name uint8_t acbe_aifsn:4; 5334*5113495bSYour Name uint8_t acbe_acm:1; 5335*5113495bSYour Name uint8_t acbe_aci:2; 5336*5113495bSYour Name uint8_t unused1:1; 5337*5113495bSYour Name uint8_t acbe_acwmin:4; 5338*5113495bSYour Name uint8_t acbe_acwmax:4; 5339*5113495bSYour Name uint16_t acbe_txoplimit; 5340*5113495bSYour Name uint8_t acbk_aifsn:4; 5341*5113495bSYour Name uint8_t acbk_acm:1; 5342*5113495bSYour Name uint8_t acbk_aci:2; 5343*5113495bSYour Name uint8_t unused2:1; 5344*5113495bSYour Name uint8_t acbk_acwmin:4; 5345*5113495bSYour Name uint8_t acbk_acwmax:4; 5346*5113495bSYour Name uint16_t acbk_txoplimit; 5347*5113495bSYour Name uint8_t acvi_aifsn:4; 5348*5113495bSYour Name uint8_t acvi_acm:1; 5349*5113495bSYour Name uint8_t acvi_aci:2; 5350*5113495bSYour Name uint8_t unused3:1; 5351*5113495bSYour Name uint8_t acvi_acwmin:4; 5352*5113495bSYour Name uint8_t acvi_acwmax:4; 5353*5113495bSYour Name uint16_t acvi_txoplimit; 5354*5113495bSYour Name uint8_t acvo_aifsn:4; 5355*5113495bSYour Name uint8_t acvo_acm:1; 5356*5113495bSYour Name uint8_t acvo_aci:2; 5357*5113495bSYour Name uint8_t unused4:1; 5358*5113495bSYour Name uint8_t acvo_acwmin:4; 5359*5113495bSYour Name uint8_t acvo_acwmax:4; 5360*5113495bSYour Name uint16_t acvo_txoplimit; 5361*5113495bSYour Name } tDot11fIEEDCAParamSet; 5362*5113495bSYour Name 5363*5113495bSYour Name #define DOT11F_EID_EDCAPARAMSET (12) 5364*5113495bSYour Name 5365*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5366*5113495bSYour Name #define DOT11F_IE_EDCAPARAMSET_MIN_LEN (18) 5367*5113495bSYour Name 5368*5113495bSYour Name #define DOT11F_IE_EDCAPARAMSET_MAX_LEN (18) 5369*5113495bSYour Name 5370*5113495bSYour Name #ifdef __cplusplus 5371*5113495bSYour Name extern "C" { 5372*5113495bSYour Name #endif /* C++ */ 5373*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_edca_param_set( 5374*5113495bSYour Name tpAniSirGlobal, 5375*5113495bSYour Name uint8_t *, 5376*5113495bSYour Name uint8_t, 5377*5113495bSYour Name tDot11fIEEDCAParamSet*, 5378*5113495bSYour Name bool); 5379*5113495bSYour Name 5380*5113495bSYour Name uint32_t dot11f_pack_ie_edca_param_set( 5381*5113495bSYour Name tpAniSirGlobal, 5382*5113495bSYour Name tDot11fIEEDCAParamSet *, 5383*5113495bSYour Name uint8_t *, 5384*5113495bSYour Name uint32_t, 5385*5113495bSYour Name uint32_t*); 5386*5113495bSYour Name 5387*5113495bSYour Name uint32_t dot11f_get_packed_ie_EDCAParamSet( 5388*5113495bSYour Name tpAniSirGlobal, 5389*5113495bSYour Name tDot11fIEEDCAParamSet *, 5390*5113495bSYour Name uint32_t*); 5391*5113495bSYour Name 5392*5113495bSYour Name #ifdef __cplusplus 5393*5113495bSYour Name }; /* End extern "C". */ 5394*5113495bSYour Name #endif /* C++ */ 5395*5113495bSYour Name 5396*5113495bSYour Name /* EID 42 (0x2a) */ 5397*5113495bSYour Name typedef struct sDot11fIEERPInfo { 5398*5113495bSYour Name uint8_t present; 5399*5113495bSYour Name uint8_t non_erp_present:1; 5400*5113495bSYour Name uint8_t use_prot:1; 5401*5113495bSYour Name uint8_t barker_preamble:1; 5402*5113495bSYour Name uint8_t unused:5; 5403*5113495bSYour Name } tDot11fIEERPInfo; 5404*5113495bSYour Name 5405*5113495bSYour Name #define DOT11F_EID_ERPINFO (42) 5406*5113495bSYour Name 5407*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5408*5113495bSYour Name #define DOT11F_IE_ERPINFO_MIN_LEN (1) 5409*5113495bSYour Name 5410*5113495bSYour Name #define DOT11F_IE_ERPINFO_MAX_LEN (1) 5411*5113495bSYour Name 5412*5113495bSYour Name #ifdef __cplusplus 5413*5113495bSYour Name extern "C" { 5414*5113495bSYour Name #endif /* C++ */ 5415*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_erp_info( 5416*5113495bSYour Name tpAniSirGlobal, 5417*5113495bSYour Name uint8_t *, 5418*5113495bSYour Name uint8_t, 5419*5113495bSYour Name tDot11fIEERPInfo*, 5420*5113495bSYour Name bool); 5421*5113495bSYour Name 5422*5113495bSYour Name uint32_t dot11f_pack_ie_erp_info( 5423*5113495bSYour Name tpAniSirGlobal, 5424*5113495bSYour Name tDot11fIEERPInfo *, 5425*5113495bSYour Name uint8_t *, 5426*5113495bSYour Name uint32_t, 5427*5113495bSYour Name uint32_t*); 5428*5113495bSYour Name 5429*5113495bSYour Name uint32_t dot11f_get_packed_ie_ERPInfo( 5430*5113495bSYour Name tpAniSirGlobal, 5431*5113495bSYour Name tDot11fIEERPInfo *, 5432*5113495bSYour Name uint32_t*); 5433*5113495bSYour Name 5434*5113495bSYour Name #ifdef __cplusplus 5435*5113495bSYour Name }; /* End extern "C". */ 5436*5113495bSYour Name #endif /* C++ */ 5437*5113495bSYour Name 5438*5113495bSYour Name /* EID 156 (0x9c) {OUI 0x00, 0x40, 0x96, 0x00} */ 5439*5113495bSYour Name typedef struct sDot11fIEESECckmOpaque { 5440*5113495bSYour Name uint8_t present; 5441*5113495bSYour Name uint8_t num_data; 5442*5113495bSYour Name uint8_t data[20]; 5443*5113495bSYour Name } tDot11fIEESECckmOpaque; 5444*5113495bSYour Name 5445*5113495bSYour Name #define DOT11F_EID_ESECCKMOPAQUE (156) 5446*5113495bSYour Name 5447*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5448*5113495bSYour Name #define DOT11F_IE_ESECCKMOPAQUE_MIN_LEN (10) 5449*5113495bSYour Name 5450*5113495bSYour Name #define DOT11F_IE_ESECCKMOPAQUE_MAX_LEN (24) 5451*5113495bSYour Name 5452*5113495bSYour Name #ifdef __cplusplus 5453*5113495bSYour Name extern "C" { 5454*5113495bSYour Name #endif /* C++ */ 5455*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ese_cckm_opaque( 5456*5113495bSYour Name tpAniSirGlobal, 5457*5113495bSYour Name uint8_t *, 5458*5113495bSYour Name uint8_t, 5459*5113495bSYour Name tDot11fIEESECckmOpaque*, 5460*5113495bSYour Name bool); 5461*5113495bSYour Name 5462*5113495bSYour Name uint32_t dot11f_pack_ie_ese_cckm_opaque( 5463*5113495bSYour Name tpAniSirGlobal, 5464*5113495bSYour Name tDot11fIEESECckmOpaque *, 5465*5113495bSYour Name uint8_t *, 5466*5113495bSYour Name uint32_t, 5467*5113495bSYour Name uint32_t*); 5468*5113495bSYour Name 5469*5113495bSYour Name uint32_t dot11f_get_packed_ie_ESECckmOpaque( 5470*5113495bSYour Name tpAniSirGlobal, 5471*5113495bSYour Name tDot11fIEESECckmOpaque *, 5472*5113495bSYour Name uint32_t*); 5473*5113495bSYour Name 5474*5113495bSYour Name #ifdef __cplusplus 5475*5113495bSYour Name }; /* End extern "C". */ 5476*5113495bSYour Name #endif /* C++ */ 5477*5113495bSYour Name 5478*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x01} */ 5479*5113495bSYour Name typedef struct sDot11fIEESERadMgmtCap { 5480*5113495bSYour Name uint8_t present; 5481*5113495bSYour Name uint8_t mgmt_state; 5482*5113495bSYour Name uint8_t mbssid_mask:3; 5483*5113495bSYour Name uint8_t reserved:5; 5484*5113495bSYour Name } tDot11fIEESERadMgmtCap; 5485*5113495bSYour Name 5486*5113495bSYour Name #define DOT11F_EID_ESERADMGMTCAP (221) 5487*5113495bSYour Name 5488*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5489*5113495bSYour Name #define DOT11F_IE_ESERADMGMTCAP_MIN_LEN (6) 5490*5113495bSYour Name 5491*5113495bSYour Name #define DOT11F_IE_ESERADMGMTCAP_MAX_LEN (6) 5492*5113495bSYour Name 5493*5113495bSYour Name #ifdef __cplusplus 5494*5113495bSYour Name extern "C" { 5495*5113495bSYour Name #endif /* C++ */ 5496*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ese_rad_mgmt_cap( 5497*5113495bSYour Name tpAniSirGlobal, 5498*5113495bSYour Name uint8_t *, 5499*5113495bSYour Name uint8_t, 5500*5113495bSYour Name tDot11fIEESERadMgmtCap*, 5501*5113495bSYour Name bool); 5502*5113495bSYour Name 5503*5113495bSYour Name uint32_t dot11f_pack_ie_ese_rad_mgmt_cap( 5504*5113495bSYour Name tpAniSirGlobal, 5505*5113495bSYour Name tDot11fIEESERadMgmtCap *, 5506*5113495bSYour Name uint8_t *, 5507*5113495bSYour Name uint32_t, 5508*5113495bSYour Name uint32_t*); 5509*5113495bSYour Name 5510*5113495bSYour Name uint32_t dot11f_get_packed_ie_ESERadMgmtCap( 5511*5113495bSYour Name tpAniSirGlobal, 5512*5113495bSYour Name tDot11fIEESERadMgmtCap *, 5513*5113495bSYour Name uint32_t*); 5514*5113495bSYour Name 5515*5113495bSYour Name #ifdef __cplusplus 5516*5113495bSYour Name }; /* End extern "C". */ 5517*5113495bSYour Name #endif /* C++ */ 5518*5113495bSYour Name 5519*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x07} */ 5520*5113495bSYour Name typedef struct sDot11fIEESETrafStrmMet { 5521*5113495bSYour Name uint8_t present; 5522*5113495bSYour Name uint8_t tsid; 5523*5113495bSYour Name uint8_t state; 5524*5113495bSYour Name uint16_t msmt_interval; 5525*5113495bSYour Name } tDot11fIEESETrafStrmMet; 5526*5113495bSYour Name 5527*5113495bSYour Name #define DOT11F_EID_ESETRAFSTRMMET (221) 5528*5113495bSYour Name 5529*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5530*5113495bSYour Name #define DOT11F_IE_ESETRAFSTRMMET_MIN_LEN (8) 5531*5113495bSYour Name 5532*5113495bSYour Name #define DOT11F_IE_ESETRAFSTRMMET_MAX_LEN (8) 5533*5113495bSYour Name 5534*5113495bSYour Name #ifdef __cplusplus 5535*5113495bSYour Name extern "C" { 5536*5113495bSYour Name #endif /* C++ */ 5537*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ese_traf_strm_met( 5538*5113495bSYour Name tpAniSirGlobal, 5539*5113495bSYour Name uint8_t *, 5540*5113495bSYour Name uint8_t, 5541*5113495bSYour Name tDot11fIEESETrafStrmMet*, 5542*5113495bSYour Name bool); 5543*5113495bSYour Name 5544*5113495bSYour Name uint32_t dot11f_pack_ie_ese_traf_strm_met( 5545*5113495bSYour Name tpAniSirGlobal, 5546*5113495bSYour Name tDot11fIEESETrafStrmMet *, 5547*5113495bSYour Name uint8_t *, 5548*5113495bSYour Name uint32_t, 5549*5113495bSYour Name uint32_t*); 5550*5113495bSYour Name 5551*5113495bSYour Name uint32_t dot11f_get_packed_ie_ESETrafStrmMet( 5552*5113495bSYour Name tpAniSirGlobal, 5553*5113495bSYour Name tDot11fIEESETrafStrmMet *, 5554*5113495bSYour Name uint32_t*); 5555*5113495bSYour Name 5556*5113495bSYour Name #ifdef __cplusplus 5557*5113495bSYour Name }; /* End extern "C". */ 5558*5113495bSYour Name #endif /* C++ */ 5559*5113495bSYour Name 5560*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x08} */ 5561*5113495bSYour Name typedef struct sDot11fIEESETrafStrmRateSet { 5562*5113495bSYour Name uint8_t present; 5563*5113495bSYour Name uint8_t tsid; 5564*5113495bSYour Name uint8_t num_tsrates; 5565*5113495bSYour Name uint8_t tsrates[8]; 5566*5113495bSYour Name } tDot11fIEESETrafStrmRateSet; 5567*5113495bSYour Name 5568*5113495bSYour Name #define DOT11F_EID_ESETRAFSTRMRATESET (221) 5569*5113495bSYour Name 5570*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5571*5113495bSYour Name #define DOT11F_IE_ESETRAFSTRMRATESET_MIN_LEN (5) 5572*5113495bSYour Name 5573*5113495bSYour Name #define DOT11F_IE_ESETRAFSTRMRATESET_MAX_LEN (13) 5574*5113495bSYour Name 5575*5113495bSYour Name #ifdef __cplusplus 5576*5113495bSYour Name extern "C" { 5577*5113495bSYour Name #endif /* C++ */ 5578*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ese_traf_strm_rate_set( 5579*5113495bSYour Name tpAniSirGlobal, 5580*5113495bSYour Name uint8_t *, 5581*5113495bSYour Name uint8_t, 5582*5113495bSYour Name tDot11fIEESETrafStrmRateSet*, 5583*5113495bSYour Name bool); 5584*5113495bSYour Name 5585*5113495bSYour Name uint32_t dot11f_pack_ie_ese_traf_strm_rate_set( 5586*5113495bSYour Name tpAniSirGlobal, 5587*5113495bSYour Name tDot11fIEESETrafStrmRateSet *, 5588*5113495bSYour Name uint8_t *, 5589*5113495bSYour Name uint32_t, 5590*5113495bSYour Name uint32_t*); 5591*5113495bSYour Name 5592*5113495bSYour Name uint32_t dot11f_get_packed_ie_ESETrafStrmRateSet( 5593*5113495bSYour Name tpAniSirGlobal, 5594*5113495bSYour Name tDot11fIEESETrafStrmRateSet *, 5595*5113495bSYour Name uint32_t*); 5596*5113495bSYour Name 5597*5113495bSYour Name #ifdef __cplusplus 5598*5113495bSYour Name }; /* End extern "C". */ 5599*5113495bSYour Name #endif /* C++ */ 5600*5113495bSYour Name 5601*5113495bSYour Name /* EID 150 (0x96) {OUI 0x00, 0x40, 0x96, 0x00} */ 5602*5113495bSYour Name typedef struct sDot11fIEESETxmitPower { 5603*5113495bSYour Name uint8_t present; 5604*5113495bSYour Name uint8_t power_limit; 5605*5113495bSYour Name uint8_t reserved; 5606*5113495bSYour Name } tDot11fIEESETxmitPower; 5607*5113495bSYour Name 5608*5113495bSYour Name #define DOT11F_EID_ESETXMITPOWER (150) 5609*5113495bSYour Name 5610*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5611*5113495bSYour Name #define DOT11F_IE_ESETXMITPOWER_MIN_LEN (6) 5612*5113495bSYour Name 5613*5113495bSYour Name #define DOT11F_IE_ESETXMITPOWER_MAX_LEN (6) 5614*5113495bSYour Name 5615*5113495bSYour Name #ifdef __cplusplus 5616*5113495bSYour Name extern "C" { 5617*5113495bSYour Name #endif /* C++ */ 5618*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ese_txmit_power( 5619*5113495bSYour Name tpAniSirGlobal, 5620*5113495bSYour Name uint8_t *, 5621*5113495bSYour Name uint8_t, 5622*5113495bSYour Name tDot11fIEESETxmitPower*, 5623*5113495bSYour Name bool); 5624*5113495bSYour Name 5625*5113495bSYour Name uint32_t dot11f_pack_ie_ese_txmit_power( 5626*5113495bSYour Name tpAniSirGlobal, 5627*5113495bSYour Name tDot11fIEESETxmitPower *, 5628*5113495bSYour Name uint8_t *, 5629*5113495bSYour Name uint32_t, 5630*5113495bSYour Name uint32_t*); 5631*5113495bSYour Name 5632*5113495bSYour Name uint32_t dot11f_get_packed_ie_ESETxmitPower( 5633*5113495bSYour Name tpAniSirGlobal, 5634*5113495bSYour Name tDot11fIEESETxmitPower *, 5635*5113495bSYour Name uint32_t*); 5636*5113495bSYour Name 5637*5113495bSYour Name #ifdef __cplusplus 5638*5113495bSYour Name }; /* End extern "C". */ 5639*5113495bSYour Name #endif /* C++ */ 5640*5113495bSYour Name 5641*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x40, 0x96, 0x03} */ 5642*5113495bSYour Name typedef struct sDot11fIEESEVersion { 5643*5113495bSYour Name uint8_t present; 5644*5113495bSYour Name uint8_t version; 5645*5113495bSYour Name } tDot11fIEESEVersion; 5646*5113495bSYour Name 5647*5113495bSYour Name #define DOT11F_EID_ESEVERSION (221) 5648*5113495bSYour Name 5649*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5650*5113495bSYour Name #define DOT11F_IE_ESEVERSION_MIN_LEN (5) 5651*5113495bSYour Name 5652*5113495bSYour Name #define DOT11F_IE_ESEVERSION_MAX_LEN (5) 5653*5113495bSYour Name 5654*5113495bSYour Name #ifdef __cplusplus 5655*5113495bSYour Name extern "C" { 5656*5113495bSYour Name #endif /* C++ */ 5657*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ese_version( 5658*5113495bSYour Name tpAniSirGlobal, 5659*5113495bSYour Name uint8_t *, 5660*5113495bSYour Name uint8_t, 5661*5113495bSYour Name tDot11fIEESEVersion*, 5662*5113495bSYour Name bool); 5663*5113495bSYour Name 5664*5113495bSYour Name uint32_t dot11f_pack_ie_ese_version( 5665*5113495bSYour Name tpAniSirGlobal, 5666*5113495bSYour Name tDot11fIEESEVersion *, 5667*5113495bSYour Name uint8_t *, 5668*5113495bSYour Name uint32_t, 5669*5113495bSYour Name uint32_t*); 5670*5113495bSYour Name 5671*5113495bSYour Name uint32_t dot11f_get_packed_ie_ESEVersion( 5672*5113495bSYour Name tpAniSirGlobal, 5673*5113495bSYour Name tDot11fIEESEVersion *, 5674*5113495bSYour Name uint32_t*); 5675*5113495bSYour Name 5676*5113495bSYour Name #ifdef __cplusplus 5677*5113495bSYour Name }; /* End extern "C". */ 5678*5113495bSYour Name #endif /* C++ */ 5679*5113495bSYour Name 5680*5113495bSYour Name /* EID 127 (0x7f) */ 5681*5113495bSYour Name typedef struct sDot11fIEExtCap { 5682*5113495bSYour Name uint8_t present; 5683*5113495bSYour Name uint8_t num_bytes; 5684*5113495bSYour Name uint8_t bytes[15]; 5685*5113495bSYour Name } tDot11fIEExtCap; 5686*5113495bSYour Name 5687*5113495bSYour Name #define DOT11F_EID_EXTCAP (127) 5688*5113495bSYour Name 5689*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5690*5113495bSYour Name #define DOT11F_IE_EXTCAP_MIN_LEN (1) 5691*5113495bSYour Name 5692*5113495bSYour Name #define DOT11F_IE_EXTCAP_MAX_LEN (15) 5693*5113495bSYour Name 5694*5113495bSYour Name #ifdef __cplusplus 5695*5113495bSYour Name extern "C" { 5696*5113495bSYour Name #endif /* C++ */ 5697*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ext_cap( 5698*5113495bSYour Name tpAniSirGlobal, 5699*5113495bSYour Name uint8_t *, 5700*5113495bSYour Name uint8_t, 5701*5113495bSYour Name tDot11fIEExtCap*, 5702*5113495bSYour Name bool); 5703*5113495bSYour Name 5704*5113495bSYour Name uint32_t dot11f_pack_ie_ext_cap( 5705*5113495bSYour Name tpAniSirGlobal, 5706*5113495bSYour Name tDot11fIEExtCap *, 5707*5113495bSYour Name uint8_t *, 5708*5113495bSYour Name uint32_t, 5709*5113495bSYour Name uint32_t*); 5710*5113495bSYour Name 5711*5113495bSYour Name uint32_t dot11f_get_packed_ie_ExtCap( 5712*5113495bSYour Name tpAniSirGlobal, 5713*5113495bSYour Name tDot11fIEExtCap *, 5714*5113495bSYour Name uint32_t*); 5715*5113495bSYour Name 5716*5113495bSYour Name #ifdef __cplusplus 5717*5113495bSYour Name }; /* End extern "C". */ 5718*5113495bSYour Name #endif /* C++ */ 5719*5113495bSYour Name 5720*5113495bSYour Name /* EID 50 (0x32) */ 5721*5113495bSYour Name typedef struct sDot11fIEExtSuppRates { 5722*5113495bSYour Name uint8_t present; 5723*5113495bSYour Name uint8_t num_rates; 5724*5113495bSYour Name uint8_t rates[12]; 5725*5113495bSYour Name } tDot11fIEExtSuppRates; 5726*5113495bSYour Name 5727*5113495bSYour Name #define DOT11F_EID_EXTSUPPRATES (50) 5728*5113495bSYour Name 5729*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5730*5113495bSYour Name #define DOT11F_IE_EXTSUPPRATES_MIN_LEN (1) 5731*5113495bSYour Name 5732*5113495bSYour Name #define DOT11F_IE_EXTSUPPRATES_MAX_LEN (12) 5733*5113495bSYour Name 5734*5113495bSYour Name #ifdef __cplusplus 5735*5113495bSYour Name extern "C" { 5736*5113495bSYour Name #endif /* C++ */ 5737*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ext_supp_rates( 5738*5113495bSYour Name tpAniSirGlobal, 5739*5113495bSYour Name uint8_t *, 5740*5113495bSYour Name uint8_t, 5741*5113495bSYour Name tDot11fIEExtSuppRates*, 5742*5113495bSYour Name bool); 5743*5113495bSYour Name 5744*5113495bSYour Name uint32_t dot11f_pack_ie_ext_supp_rates( 5745*5113495bSYour Name tpAniSirGlobal, 5746*5113495bSYour Name tDot11fIEExtSuppRates *, 5747*5113495bSYour Name uint8_t *, 5748*5113495bSYour Name uint32_t, 5749*5113495bSYour Name uint32_t*); 5750*5113495bSYour Name 5751*5113495bSYour Name uint32_t dot11f_get_packed_ie_ExtSuppRates( 5752*5113495bSYour Name tpAniSirGlobal, 5753*5113495bSYour Name tDot11fIEExtSuppRates *, 5754*5113495bSYour Name uint32_t*); 5755*5113495bSYour Name 5756*5113495bSYour Name #ifdef __cplusplus 5757*5113495bSYour Name }; /* End extern "C". */ 5758*5113495bSYour Name #endif /* C++ */ 5759*5113495bSYour Name 5760*5113495bSYour Name /* EID 2 (0x02) */ 5761*5113495bSYour Name typedef struct sDot11fIEFHParamSet { 5762*5113495bSYour Name uint8_t present; 5763*5113495bSYour Name uint16_t dwell_time; 5764*5113495bSYour Name uint8_t hop_set; 5765*5113495bSYour Name uint8_t hop_pattern; 5766*5113495bSYour Name uint8_t hop_index; 5767*5113495bSYour Name } tDot11fIEFHParamSet; 5768*5113495bSYour Name 5769*5113495bSYour Name #define DOT11F_EID_FHPARAMSET (2) 5770*5113495bSYour Name 5771*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5772*5113495bSYour Name #define DOT11F_IE_FHPARAMSET_MIN_LEN (5) 5773*5113495bSYour Name 5774*5113495bSYour Name #define DOT11F_IE_FHPARAMSET_MAX_LEN (5) 5775*5113495bSYour Name 5776*5113495bSYour Name #ifdef __cplusplus 5777*5113495bSYour Name extern "C" { 5778*5113495bSYour Name #endif /* C++ */ 5779*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_fh_param_set( 5780*5113495bSYour Name tpAniSirGlobal, 5781*5113495bSYour Name uint8_t *, 5782*5113495bSYour Name uint8_t, 5783*5113495bSYour Name tDot11fIEFHParamSet*, 5784*5113495bSYour Name bool); 5785*5113495bSYour Name 5786*5113495bSYour Name uint32_t dot11f_pack_ie_fh_param_set( 5787*5113495bSYour Name tpAniSirGlobal, 5788*5113495bSYour Name tDot11fIEFHParamSet *, 5789*5113495bSYour Name uint8_t *, 5790*5113495bSYour Name uint32_t, 5791*5113495bSYour Name uint32_t*); 5792*5113495bSYour Name 5793*5113495bSYour Name uint32_t dot11f_get_packed_ie_FHParamSet( 5794*5113495bSYour Name tpAniSirGlobal, 5795*5113495bSYour Name tDot11fIEFHParamSet *, 5796*5113495bSYour Name uint32_t*); 5797*5113495bSYour Name 5798*5113495bSYour Name #ifdef __cplusplus 5799*5113495bSYour Name }; /* End extern "C". */ 5800*5113495bSYour Name #endif /* C++ */ 5801*5113495bSYour Name 5802*5113495bSYour Name /* EID 8 (0x08) */ 5803*5113495bSYour Name typedef struct sDot11fIEFHParams { 5804*5113495bSYour Name uint8_t present; 5805*5113495bSYour Name uint8_t radix; 5806*5113495bSYour Name uint8_t nchannels; 5807*5113495bSYour Name } tDot11fIEFHParams; 5808*5113495bSYour Name 5809*5113495bSYour Name #define DOT11F_EID_FHPARAMS (8) 5810*5113495bSYour Name 5811*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5812*5113495bSYour Name #define DOT11F_IE_FHPARAMS_MIN_LEN (2) 5813*5113495bSYour Name 5814*5113495bSYour Name #define DOT11F_IE_FHPARAMS_MAX_LEN (2) 5815*5113495bSYour Name 5816*5113495bSYour Name #ifdef __cplusplus 5817*5113495bSYour Name extern "C" { 5818*5113495bSYour Name #endif /* C++ */ 5819*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_fh_params( 5820*5113495bSYour Name tpAniSirGlobal, 5821*5113495bSYour Name uint8_t *, 5822*5113495bSYour Name uint8_t, 5823*5113495bSYour Name tDot11fIEFHParams*, 5824*5113495bSYour Name bool); 5825*5113495bSYour Name 5826*5113495bSYour Name uint32_t dot11f_pack_ie_fh_params( 5827*5113495bSYour Name tpAniSirGlobal, 5828*5113495bSYour Name tDot11fIEFHParams *, 5829*5113495bSYour Name uint8_t *, 5830*5113495bSYour Name uint32_t, 5831*5113495bSYour Name uint32_t*); 5832*5113495bSYour Name 5833*5113495bSYour Name uint32_t dot11f_get_packed_ie_FHParams( 5834*5113495bSYour Name tpAniSirGlobal, 5835*5113495bSYour Name tDot11fIEFHParams *, 5836*5113495bSYour Name uint32_t*); 5837*5113495bSYour Name 5838*5113495bSYour Name #ifdef __cplusplus 5839*5113495bSYour Name }; /* End extern "C". */ 5840*5113495bSYour Name #endif /* C++ */ 5841*5113495bSYour Name 5842*5113495bSYour Name /* EID 9 (0x09) */ 5843*5113495bSYour Name typedef struct sDot11fIEFHPattTable { 5844*5113495bSYour Name uint8_t present; 5845*5113495bSYour Name uint8_t flag; 5846*5113495bSYour Name uint8_t nsets; 5847*5113495bSYour Name uint8_t modulus; 5848*5113495bSYour Name uint8_t offset; 5849*5113495bSYour Name uint8_t num_randtable; 5850*5113495bSYour Name uint8_t randtable[251]; 5851*5113495bSYour Name } tDot11fIEFHPattTable; 5852*5113495bSYour Name 5853*5113495bSYour Name #define DOT11F_EID_FHPATTTABLE (9) 5854*5113495bSYour Name 5855*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5856*5113495bSYour Name #define DOT11F_IE_FHPATTTABLE_MIN_LEN (4) 5857*5113495bSYour Name 5858*5113495bSYour Name #define DOT11F_IE_FHPATTTABLE_MAX_LEN (255) 5859*5113495bSYour Name 5860*5113495bSYour Name #ifdef __cplusplus 5861*5113495bSYour Name extern "C" { 5862*5113495bSYour Name #endif /* C++ */ 5863*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_fh_patt_table( 5864*5113495bSYour Name tpAniSirGlobal, 5865*5113495bSYour Name uint8_t *, 5866*5113495bSYour Name uint8_t, 5867*5113495bSYour Name tDot11fIEFHPattTable*, 5868*5113495bSYour Name bool); 5869*5113495bSYour Name 5870*5113495bSYour Name uint32_t dot11f_pack_ie_fh_patt_table( 5871*5113495bSYour Name tpAniSirGlobal, 5872*5113495bSYour Name tDot11fIEFHPattTable *, 5873*5113495bSYour Name uint8_t *, 5874*5113495bSYour Name uint32_t, 5875*5113495bSYour Name uint32_t*); 5876*5113495bSYour Name 5877*5113495bSYour Name uint32_t dot11f_get_packed_ie_FHPattTable( 5878*5113495bSYour Name tpAniSirGlobal, 5879*5113495bSYour Name tDot11fIEFHPattTable *, 5880*5113495bSYour Name uint32_t*); 5881*5113495bSYour Name 5882*5113495bSYour Name #ifdef __cplusplus 5883*5113495bSYour Name }; /* End extern "C". */ 5884*5113495bSYour Name #endif /* C++ */ 5885*5113495bSYour Name 5886*5113495bSYour Name /* EID 55 (0x37) */ 5887*5113495bSYour Name typedef struct sDot11fIEFTInfo { 5888*5113495bSYour Name uint8_t present; 5889*5113495bSYour Name uint16_t reserved:8; 5890*5113495bSYour Name uint16_t IECount:8; 5891*5113495bSYour Name uint8_t MIC[16]; 5892*5113495bSYour Name uint8_t Anonce[32]; 5893*5113495bSYour Name uint8_t Snonce[32]; 5894*5113495bSYour Name tDot11fIER1KH_ID R1KH_ID; 5895*5113495bSYour Name tDot11fIEGTK GTK; 5896*5113495bSYour Name tDot11fIER0KH_ID R0KH_ID; 5897*5113495bSYour Name tDot11fIEIGTK IGTK; 5898*5113495bSYour Name } tDot11fIEFTInfo; 5899*5113495bSYour Name 5900*5113495bSYour Name #define DOT11F_EID_FTINFO (55) 5901*5113495bSYour Name 5902*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5903*5113495bSYour Name #define DOT11F_IE_FTINFO_MIN_LEN (82) 5904*5113495bSYour Name 5905*5113495bSYour Name #define DOT11F_IE_FTINFO_MAX_LEN (220) 5906*5113495bSYour Name 5907*5113495bSYour Name #ifdef __cplusplus 5908*5113495bSYour Name extern "C" { 5909*5113495bSYour Name #endif /* C++ */ 5910*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ft_info( 5911*5113495bSYour Name tpAniSirGlobal, 5912*5113495bSYour Name uint8_t *, 5913*5113495bSYour Name uint8_t, 5914*5113495bSYour Name tDot11fIEFTInfo*, 5915*5113495bSYour Name bool); 5916*5113495bSYour Name 5917*5113495bSYour Name uint32_t dot11f_pack_ie_ft_info( 5918*5113495bSYour Name tpAniSirGlobal, 5919*5113495bSYour Name tDot11fIEFTInfo *, 5920*5113495bSYour Name uint8_t *, 5921*5113495bSYour Name uint32_t, 5922*5113495bSYour Name uint32_t*); 5923*5113495bSYour Name 5924*5113495bSYour Name uint32_t dot11f_get_packed_ieft_info( 5925*5113495bSYour Name tpAniSirGlobal, 5926*5113495bSYour Name tDot11fIEFTInfo *, 5927*5113495bSYour Name uint32_t*); 5928*5113495bSYour Name 5929*5113495bSYour Name #ifdef __cplusplus 5930*5113495bSYour Name }; /* End extern "C". */ 5931*5113495bSYour Name #endif /* C++ */ 5932*5113495bSYour Name 5933*5113495bSYour Name /* EID 45 (0x2d) */ 5934*5113495bSYour Name typedef struct sDot11fIEHTCaps { 5935*5113495bSYour Name uint8_t present; 5936*5113495bSYour Name uint16_t advCodingCap:1; 5937*5113495bSYour Name uint16_t supportedChannelWidthSet:1; 5938*5113495bSYour Name uint16_t mimoPowerSave:2; 5939*5113495bSYour Name uint16_t greenField:1; 5940*5113495bSYour Name uint16_t shortGI20MHz:1; 5941*5113495bSYour Name uint16_t shortGI40MHz:1; 5942*5113495bSYour Name uint16_t txSTBC:1; 5943*5113495bSYour Name uint16_t rxSTBC:2; 5944*5113495bSYour Name uint16_t delayedBA:1; 5945*5113495bSYour Name uint16_t maximalAMSDUsize:1; 5946*5113495bSYour Name uint16_t dsssCckMode40MHz:1; 5947*5113495bSYour Name uint16_t psmp:1; 5948*5113495bSYour Name uint16_t stbcControlFrame:1; 5949*5113495bSYour Name uint16_t lsigTXOPProtection:1; 5950*5113495bSYour Name uint8_t maxRxAMPDUFactor:2; 5951*5113495bSYour Name uint8_t mpduDensity:3; 5952*5113495bSYour Name uint8_t reserved1:3; 5953*5113495bSYour Name uint8_t supportedMCSSet[16]; 5954*5113495bSYour Name uint16_t pco:1; 5955*5113495bSYour Name uint16_t transitionTime:2; 5956*5113495bSYour Name uint16_t reserved2:5; 5957*5113495bSYour Name uint16_t mcsFeedback:2; 5958*5113495bSYour Name uint16_t reserved3:6; 5959*5113495bSYour Name uint32_t txBF:1; 5960*5113495bSYour Name uint32_t rxStaggeredSounding:1; 5961*5113495bSYour Name uint32_t txStaggeredSounding:1; 5962*5113495bSYour Name uint32_t rxZLF:1; 5963*5113495bSYour Name uint32_t txZLF:1; 5964*5113495bSYour Name uint32_t implicitTxBF:1; 5965*5113495bSYour Name uint32_t calibration:2; 5966*5113495bSYour Name uint32_t explicitCSITxBF:1; 5967*5113495bSYour Name uint32_t explicitUncompressedSteeringMatrix:1; 5968*5113495bSYour Name uint32_t explicitBFCSIFeedback:3; 5969*5113495bSYour Name uint32_t explicitUncompressedSteeringMatrixFeedback:3; 5970*5113495bSYour Name uint32_t explicitCompressedSteeringMatrixFeedback:3; 5971*5113495bSYour Name uint32_t csiNumBFAntennae:2; 5972*5113495bSYour Name uint32_t uncompressedSteeringMatrixBFAntennae:2; 5973*5113495bSYour Name uint32_t compressedSteeringMatrixBFAntennae:2; 5974*5113495bSYour Name uint32_t reserved4:7; 5975*5113495bSYour Name uint8_t antennaSelection:1; 5976*5113495bSYour Name uint8_t explicitCSIFeedbackTx:1; 5977*5113495bSYour Name uint8_t antennaIndicesFeedbackTx:1; 5978*5113495bSYour Name uint8_t explicitCSIFeedback:1; 5979*5113495bSYour Name uint8_t antennaIndicesFeedback:1; 5980*5113495bSYour Name uint8_t rxAS:1; 5981*5113495bSYour Name uint8_t txSoundingPPDUs:1; 5982*5113495bSYour Name uint8_t reserved5:1; 5983*5113495bSYour Name uint8_t num_rsvd; 5984*5113495bSYour Name uint8_t rsvd[32]; 5985*5113495bSYour Name } tDot11fIEHTCaps; 5986*5113495bSYour Name 5987*5113495bSYour Name #define DOT11F_EID_HTCAPS (45) 5988*5113495bSYour Name 5989*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 5990*5113495bSYour Name #define DOT11F_IE_HTCAPS_MIN_LEN (26) 5991*5113495bSYour Name 5992*5113495bSYour Name #define DOT11F_IE_HTCAPS_MAX_LEN (58) 5993*5113495bSYour Name 5994*5113495bSYour Name #ifdef __cplusplus 5995*5113495bSYour Name extern "C" { 5996*5113495bSYour Name #endif /* C++ */ 5997*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ht_caps( 5998*5113495bSYour Name tpAniSirGlobal, 5999*5113495bSYour Name uint8_t *, 6000*5113495bSYour Name uint8_t, 6001*5113495bSYour Name tDot11fIEHTCaps*, 6002*5113495bSYour Name bool); 6003*5113495bSYour Name 6004*5113495bSYour Name uint32_t dot11f_pack_ie_ht_caps( 6005*5113495bSYour Name tpAniSirGlobal, 6006*5113495bSYour Name tDot11fIEHTCaps *, 6007*5113495bSYour Name uint8_t *, 6008*5113495bSYour Name uint32_t, 6009*5113495bSYour Name uint32_t*); 6010*5113495bSYour Name 6011*5113495bSYour Name uint32_t dot11f_get_packed_ie_HTCaps( 6012*5113495bSYour Name tpAniSirGlobal, 6013*5113495bSYour Name tDot11fIEHTCaps *, 6014*5113495bSYour Name uint32_t*); 6015*5113495bSYour Name 6016*5113495bSYour Name #ifdef __cplusplus 6017*5113495bSYour Name }; /* End extern "C". */ 6018*5113495bSYour Name #endif /* C++ */ 6019*5113495bSYour Name 6020*5113495bSYour Name /* EID 61 (0x3d) */ 6021*5113495bSYour Name typedef struct sDot11fIEHTInfo { 6022*5113495bSYour Name uint8_t present; 6023*5113495bSYour Name uint8_t primaryChannel; 6024*5113495bSYour Name uint8_t secondaryChannelOffset:2; 6025*5113495bSYour Name uint8_t recommendedTxWidthSet:1; 6026*5113495bSYour Name uint8_t rifsMode:1; 6027*5113495bSYour Name uint8_t controlledAccessOnly:1; 6028*5113495bSYour Name uint8_t serviceIntervalGranularity:3; 6029*5113495bSYour Name uint16_t opMode:2; 6030*5113495bSYour Name uint16_t nonGFDevicesPresent:1; 6031*5113495bSYour Name uint16_t transmitBurstLimit:1; 6032*5113495bSYour Name uint16_t obssNonHTStaPresent:1; 6033*5113495bSYour Name uint16_t chan_center_freq_seg2:8; 6034*5113495bSYour Name uint16_t reserved:3; 6035*5113495bSYour Name uint16_t basicSTBCMCS:7; 6036*5113495bSYour Name uint16_t dualCTSProtection:1; 6037*5113495bSYour Name uint16_t secondaryBeacon:1; 6038*5113495bSYour Name uint16_t lsigTXOPProtectionFullSupport:1; 6039*5113495bSYour Name uint16_t pcoActive:1; 6040*5113495bSYour Name uint16_t pcoPhase:1; 6041*5113495bSYour Name uint16_t reserved2:4; 6042*5113495bSYour Name uint8_t basicMCSSet[16]; 6043*5113495bSYour Name uint8_t num_rsvd; 6044*5113495bSYour Name uint8_t rsvd[32]; 6045*5113495bSYour Name } tDot11fIEHTInfo; 6046*5113495bSYour Name 6047*5113495bSYour Name #define DOT11F_EID_HTINFO (61) 6048*5113495bSYour Name 6049*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 6050*5113495bSYour Name #define DOT11F_IE_HTINFO_MIN_LEN (22) 6051*5113495bSYour Name 6052*5113495bSYour Name #define DOT11F_IE_HTINFO_MAX_LEN (54) 6053*5113495bSYour Name 6054*5113495bSYour Name #ifdef __cplusplus 6055*5113495bSYour Name extern "C" { 6056*5113495bSYour Name #endif /* C++ */ 6057*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ht_info( 6058*5113495bSYour Name tpAniSirGlobal, 6059*5113495bSYour Name uint8_t *, 6060*5113495bSYour Name uint8_t, 6061*5113495bSYour Name tDot11fIEHTInfo*, 6062*5113495bSYour Name bool); 6063*5113495bSYour Name 6064*5113495bSYour Name uint32_t dot11f_pack_ie_ht_info( 6065*5113495bSYour Name tpAniSirGlobal, 6066*5113495bSYour Name tDot11fIEHTInfo *, 6067*5113495bSYour Name uint8_t *, 6068*5113495bSYour Name uint32_t, 6069*5113495bSYour Name uint32_t*); 6070*5113495bSYour Name 6071*5113495bSYour Name uint32_t dot11f_get_packed_ie_HTInfo( 6072*5113495bSYour Name tpAniSirGlobal, 6073*5113495bSYour Name tDot11fIEHTInfo *, 6074*5113495bSYour Name uint32_t*); 6075*5113495bSYour Name 6076*5113495bSYour Name #ifdef __cplusplus 6077*5113495bSYour Name }; /* End extern "C". */ 6078*5113495bSYour Name #endif /* C++ */ 6079*5113495bSYour Name 6080*5113495bSYour Name /* EID 101 (0x65) */ 6081*5113495bSYour Name typedef struct sDot11fIELinkIdentifier { 6082*5113495bSYour Name uint8_t present; 6083*5113495bSYour Name uint8_t bssid[6]; 6084*5113495bSYour Name uint8_t InitStaAddr[6]; 6085*5113495bSYour Name uint8_t RespStaAddr[6]; 6086*5113495bSYour Name } tDot11fIELinkIdentifier; 6087*5113495bSYour Name 6088*5113495bSYour Name #define DOT11F_EID_LINKIDENTIFIER (101) 6089*5113495bSYour Name 6090*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 6091*5113495bSYour Name #define DOT11F_IE_LINKIDENTIFIER_MIN_LEN (18) 6092*5113495bSYour Name 6093*5113495bSYour Name #define DOT11F_IE_LINKIDENTIFIER_MAX_LEN (18) 6094*5113495bSYour Name 6095*5113495bSYour Name #ifdef __cplusplus 6096*5113495bSYour Name extern "C" { 6097*5113495bSYour Name #endif /* C++ */ 6098*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_link_identifier( 6099*5113495bSYour Name tpAniSirGlobal, 6100*5113495bSYour Name uint8_t *, 6101*5113495bSYour Name uint8_t, 6102*5113495bSYour Name tDot11fIELinkIdentifier*, 6103*5113495bSYour Name bool); 6104*5113495bSYour Name 6105*5113495bSYour Name uint32_t dot11f_pack_ie_link_identifier( 6106*5113495bSYour Name tpAniSirGlobal, 6107*5113495bSYour Name tDot11fIELinkIdentifier *, 6108*5113495bSYour Name uint8_t *, 6109*5113495bSYour Name uint32_t, 6110*5113495bSYour Name uint32_t*); 6111*5113495bSYour Name 6112*5113495bSYour Name uint32_t dot11f_get_packed_ie_LinkIdentifier( 6113*5113495bSYour Name tpAniSirGlobal, 6114*5113495bSYour Name tDot11fIELinkIdentifier *, 6115*5113495bSYour Name uint32_t*); 6116*5113495bSYour Name 6117*5113495bSYour Name #ifdef __cplusplus 6118*5113495bSYour Name }; /* End extern "C". */ 6119*5113495bSYour Name #endif /* C++ */ 6120*5113495bSYour Name 6121*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x16} (Multi-IE) */ 6122*5113495bSYour Name typedef struct sDot11fIEMBO_IE { 6123*5113495bSYour Name uint8_t present; 6124*5113495bSYour Name tDot11fTLVmbo_ap_cap mbo_ap_cap; 6125*5113495bSYour Name tDot11fTLVnon_prefferd_chan_rep non_prefferd_chan_rep; 6126*5113495bSYour Name tDot11fTLVcellular_data_cap cellular_data_cap; 6127*5113495bSYour Name tDot11fTLVassoc_disallowed assoc_disallowed; 6128*5113495bSYour Name tDot11fTLVcellular_data_con_pref cellular_data_con_pref; 6129*5113495bSYour Name tDot11fTLVtransition_reason transition_reason; 6130*5113495bSYour Name tDot11fTLVtransition_reject_reason transition_reject_reason; 6131*5113495bSYour Name tDot11fTLVassoc_retry_delay assoc_retry_delay; 6132*5113495bSYour Name tDot11fTLVoce_cap oce_cap; 6133*5113495bSYour Name tDot11fTLVrssi_assoc_rej rssi_assoc_rej; 6134*5113495bSYour Name tDot11fTLVreduced_wan_metrics reduced_wan_metrics; 6135*5113495bSYour Name } tDot11fIEMBO_IE; 6136*5113495bSYour Name 6137*5113495bSYour Name #define DOT11F_EID_MBO_IE (221) 6138*5113495bSYour Name 6139*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 6140*5113495bSYour Name #define DOT11F_IE_MBO_IE_MIN_LEN (4) 6141*5113495bSYour Name 6142*5113495bSYour Name #define DOT11F_IE_MBO_IE_MAX_LEN (293) 6143*5113495bSYour Name 6144*5113495bSYour Name #ifdef __cplusplus 6145*5113495bSYour Name extern "C" { 6146*5113495bSYour Name #endif /* C++ */ 6147*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_MBO_IE( 6148*5113495bSYour Name tpAniSirGlobal, 6149*5113495bSYour Name uint8_t *, 6150*5113495bSYour Name uint8_t, 6151*5113495bSYour Name tDot11fIEMBO_IE*, 6152*5113495bSYour Name bool); 6153*5113495bSYour Name 6154*5113495bSYour Name uint32_t dot11f_pack_ie_MBO_IE( 6155*5113495bSYour Name tpAniSirGlobal, 6156*5113495bSYour Name tDot11fIEMBO_IE *, 6157*5113495bSYour Name uint8_t *, 6158*5113495bSYour Name uint32_t, 6159*5113495bSYour Name uint32_t*); 6160*5113495bSYour Name 6161*5113495bSYour Name uint32_t dot11f_get_packed_ie_MBO_IE( 6162*5113495bSYour Name tpAniSirGlobal, 6163*5113495bSYour Name tDot11fIEMBO_IE *, 6164*5113495bSYour Name uint32_t*); 6165*5113495bSYour Name 6166*5113495bSYour Name #ifdef __cplusplus 6167*5113495bSYour Name }; /* End extern "C". */ 6168*5113495bSYour Name #endif /* C++ */ 6169*5113495bSYour Name 6170*5113495bSYour Name /* EID 39 (0x27) */ 6171*5113495bSYour Name typedef struct sDot11fIEMeasurementReport { 6172*5113495bSYour Name uint8_t present; 6173*5113495bSYour Name uint8_t token; 6174*5113495bSYour Name uint8_t late:1; 6175*5113495bSYour Name uint8_t incapable:1; 6176*5113495bSYour Name uint8_t refused:1; 6177*5113495bSYour Name uint8_t unused:5; 6178*5113495bSYour Name uint8_t type; 6179*5113495bSYour Name union { 6180*5113495bSYour Name struct { 6181*5113495bSYour Name uint8_t channel; 6182*5113495bSYour Name tDOT11F_U64 meas_start_time; 6183*5113495bSYour Name uint16_t meas_duration; 6184*5113495bSYour Name uint8_t bss:1; 6185*5113495bSYour Name uint8_t ofdm_preamble:1; 6186*5113495bSYour Name uint8_t unid_signal:1; 6187*5113495bSYour Name uint8_t rader:1; 6188*5113495bSYour Name uint8_t unmeasured:1; 6189*5113495bSYour Name uint8_t unused:3; 6190*5113495bSYour Name } Basic; /* type = 0 */ 6191*5113495bSYour Name struct { 6192*5113495bSYour Name uint8_t channel; 6193*5113495bSYour Name tDOT11F_U64 meas_start_time; 6194*5113495bSYour Name uint16_t meas_duration; 6195*5113495bSYour Name uint8_t cca_busy_fraction; 6196*5113495bSYour Name } CCA; /* type = 1 */ 6197*5113495bSYour Name struct { 6198*5113495bSYour Name uint8_t channel; 6199*5113495bSYour Name tDOT11F_U64 meas_start_time; 6200*5113495bSYour Name uint16_t meas_duration; 6201*5113495bSYour Name uint8_t rpi0_density; 6202*5113495bSYour Name uint8_t rpi1_density; 6203*5113495bSYour Name uint8_t rpi2_density; 6204*5113495bSYour Name uint8_t rpi3_density; 6205*5113495bSYour Name uint8_t rpi4_density; 6206*5113495bSYour Name uint8_t rpi5_density; 6207*5113495bSYour Name uint8_t rpi6_density; 6208*5113495bSYour Name uint8_t rpi7_density; 6209*5113495bSYour Name } RPIHistogram; /* type = 2 */ 6210*5113495bSYour Name struct { 6211*5113495bSYour Name uint8_t op_class; 6212*5113495bSYour Name uint8_t channel; 6213*5113495bSYour Name tDOT11F_U64 meas_start_time; 6214*5113495bSYour Name uint16_t meas_duration; 6215*5113495bSYour Name uint8_t chan_load; 6216*5113495bSYour Name tDot11fIEwide_bw_chan_switch wide_bw_chan_switch; 6217*5113495bSYour Name tDot11fIEbw_indication bw_indication; 6218*5113495bSYour Name } channel_load_report; /* type = 3 */ 6219*5113495bSYour Name struct { 6220*5113495bSYour Name uint8_t regClass; 6221*5113495bSYour Name uint8_t channel; 6222*5113495bSYour Name tDOT11F_U64 meas_start_time; 6223*5113495bSYour Name uint16_t meas_duration; 6224*5113495bSYour Name uint8_t condensed_PHY:7; 6225*5113495bSYour Name uint8_t reported_frame_type:1; 6226*5113495bSYour Name uint8_t RCPI; 6227*5113495bSYour Name uint8_t RSNI; 6228*5113495bSYour Name uint8_t BSSID[6]; 6229*5113495bSYour Name uint8_t antenna_id; 6230*5113495bSYour Name uint32_t parent_TSF; 6231*5113495bSYour Name tDot11fIEBeaconReportFrmBody BeaconReportFrmBody; 6232*5113495bSYour Name tDot11fIEbeacon_report_frm_body_fragment_id beacon_report_frm_body_fragment_id; 6233*5113495bSYour Name tDot11fIElast_beacon_report_indication last_beacon_report_indication; 6234*5113495bSYour Name } Beacon; /* type = 5 */ 6235*5113495bSYour Name struct { 6236*5113495bSYour Name uint16_t meas_duration; 6237*5113495bSYour Name uint8_t group_id; 6238*5113495bSYour Name union { 6239*5113495bSYour Name struct { 6240*5113495bSYour Name uint32_t transmitted_fragment_count; 6241*5113495bSYour Name uint32_t group_transmitted_frame_count; 6242*5113495bSYour Name uint32_t failed_count; 6243*5113495bSYour Name uint32_t received_fragment_count; 6244*5113495bSYour Name uint32_t group_received_frame_count; 6245*5113495bSYour Name uint32_t fcs_error_count; 6246*5113495bSYour Name uint32_t transmitted_frame_count; 6247*5113495bSYour Name } dot11_counter_stats; /* group_id = 0 */ 6248*5113495bSYour Name struct { 6249*5113495bSYour Name uint32_t retry_count; 6250*5113495bSYour Name uint32_t multiple_retry_count; 6251*5113495bSYour Name uint32_t frame_duplicate_count; 6252*5113495bSYour Name uint32_t rts_success_count; 6253*5113495bSYour Name uint32_t rts_failure_count; 6254*5113495bSYour Name uint32_t ack_failure_count; 6255*5113495bSYour Name } dot11_mac_stats; /* group_id = 1 */ 6256*5113495bSYour Name struct { 6257*5113495bSYour Name uint32_t qos_transmitted_fragment_count; 6258*5113495bSYour Name uint32_t qos_failed_count; 6259*5113495bSYour Name uint32_t qos_retry_count; 6260*5113495bSYour Name uint32_t qos_multiple_retry_count; 6261*5113495bSYour Name uint32_t qos_frame_duplicate_count; 6262*5113495bSYour Name uint32_t qos_rts_success_count; 6263*5113495bSYour Name uint32_t qos_rts_failure_count; 6264*5113495bSYour Name uint32_t qos_ack_failure_count; 6265*5113495bSYour Name uint32_t qos_received_fragment_count; 6266*5113495bSYour Name uint32_t qos_transmitted_frame_count; 6267*5113495bSYour Name uint32_t qos_discarded_frame_count; 6268*5113495bSYour Name uint32_t qos_mpdus_received_count; 6269*5113495bSYour Name uint32_t qos_retries_received_count; 6270*5113495bSYour Name } dot11_qos_counter; /* group_id = 2 */ 6271*5113495bSYour Name struct { 6272*5113495bSYour Name uint8_t ap_average_access_delay; 6273*5113495bSYour Name uint8_t average_access_delay_besteffort; 6274*5113495bSYour Name uint8_t average_access_delay_background; 6275*5113495bSYour Name uint8_t average_access_delay_video; 6276*5113495bSYour Name uint8_t average_access_delay_voice; 6277*5113495bSYour Name uint16_t station_count; 6278*5113495bSYour Name uint8_t channel_utilization; 6279*5113495bSYour Name } dot11_bss_average_access_delay; /* group_id = 10 */ 6280*5113495bSYour Name } statsgroupdata; 6281*5113495bSYour Name tDot11fIEreporting_reason reporting_reason; 6282*5113495bSYour Name } sta_stats; /* type = 7 */ 6283*5113495bSYour Name } report; 6284*5113495bSYour Name } tDot11fIEMeasurementReport; 6285*5113495bSYour Name 6286*5113495bSYour Name #define DOT11F_EID_MEASUREMENTREPORT (39) 6287*5113495bSYour Name 6288*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 6289*5113495bSYour Name #define DOT11F_IE_MEASUREMENTREPORT_MIN_LEN (3) 6290*5113495bSYour Name 6291*5113495bSYour Name #define DOT11F_IE_MEASUREMENTREPORT_MAX_LEN (58) 6292*5113495bSYour Name 6293*5113495bSYour Name #ifdef __cplusplus 6294*5113495bSYour Name extern "C" { 6295*5113495bSYour Name #endif /* C++ */ 6296*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_measurement_report( 6297*5113495bSYour Name tpAniSirGlobal, 6298*5113495bSYour Name uint8_t *, 6299*5113495bSYour Name uint8_t, 6300*5113495bSYour Name tDot11fIEMeasurementReport*, 6301*5113495bSYour Name bool); 6302*5113495bSYour Name 6303*5113495bSYour Name uint32_t dot11f_pack_ie_measurement_report( 6304*5113495bSYour Name tpAniSirGlobal, 6305*5113495bSYour Name tDot11fIEMeasurementReport *, 6306*5113495bSYour Name uint8_t *, 6307*5113495bSYour Name uint32_t, 6308*5113495bSYour Name uint32_t*); 6309*5113495bSYour Name 6310*5113495bSYour Name uint32_t dot11f_get_packed_ie_measurement_report( 6311*5113495bSYour Name tpAniSirGlobal, 6312*5113495bSYour Name tDot11fIEMeasurementReport *, 6313*5113495bSYour Name uint32_t*); 6314*5113495bSYour Name 6315*5113495bSYour Name #ifdef __cplusplus 6316*5113495bSYour Name }; /* End extern "C". */ 6317*5113495bSYour Name #endif /* C++ */ 6318*5113495bSYour Name 6319*5113495bSYour Name /* EID 38 (0x26) */ 6320*5113495bSYour Name typedef struct sDot11fIEMeasurementRequest { 6321*5113495bSYour Name uint8_t present; 6322*5113495bSYour Name uint8_t measurement_token; 6323*5113495bSYour Name uint8_t parallel:1; 6324*5113495bSYour Name uint8_t enable:1; 6325*5113495bSYour Name uint8_t request:1; 6326*5113495bSYour Name uint8_t report:1; 6327*5113495bSYour Name uint8_t durationMandatory:1; 6328*5113495bSYour Name uint8_t unused:3; 6329*5113495bSYour Name uint8_t measurement_type; 6330*5113495bSYour Name union { 6331*5113495bSYour Name struct { 6332*5113495bSYour Name uint8_t channel_no; 6333*5113495bSYour Name uint8_t meas_start_time[8]; 6334*5113495bSYour Name uint16_t meas_duration; 6335*5113495bSYour Name } Basic; /* measurement_type = 0 */ 6336*5113495bSYour Name struct { 6337*5113495bSYour Name uint8_t channel_no; 6338*5113495bSYour Name uint8_t meas_start_time[8]; 6339*5113495bSYour Name uint16_t meas_duration; 6340*5113495bSYour Name } CCA; /* measurement_type = 1 */ 6341*5113495bSYour Name struct { 6342*5113495bSYour Name uint8_t channel_no; 6343*5113495bSYour Name uint8_t meas_start_time[8]; 6344*5113495bSYour Name uint16_t meas_duration; 6345*5113495bSYour Name } RPIHistogram; /* measurement_type = 2 */ 6346*5113495bSYour Name struct { 6347*5113495bSYour Name uint8_t op_class; 6348*5113495bSYour Name uint8_t channel; 6349*5113495bSYour Name uint16_t randomization_intv; 6350*5113495bSYour Name uint16_t meas_duration; 6351*5113495bSYour Name tDot11fIErrm_reporting rrm_reporting; 6352*5113495bSYour Name tDot11fIEwide_bw_chan_switch wide_bw_chan_switch; 6353*5113495bSYour Name tDot11fIEbw_indication bw_indication; 6354*5113495bSYour Name } channel_load; /* measurement_type = 3 */ 6355*5113495bSYour Name struct { 6356*5113495bSYour Name uint8_t regClass; 6357*5113495bSYour Name uint8_t channel; 6358*5113495bSYour Name uint16_t randomization; 6359*5113495bSYour Name uint16_t meas_duration; 6360*5113495bSYour Name uint8_t meas_mode; 6361*5113495bSYour Name uint8_t BSSID[6]; 6362*5113495bSYour Name tDot11fIESSID SSID; 6363*5113495bSYour Name tDot11fIErrm_reporting rrm_reporting; 6364*5113495bSYour Name tDot11fIEBcnReportingDetail BcnReportingDetail; 6365*5113495bSYour Name tDot11fIERequestedInfo RequestedInfo; 6366*5113495bSYour Name tDot11fIEExtRequestedInfo ExtRequestedInfo; 6367*5113495bSYour Name uint16_t num_APChannelReport; 6368*5113495bSYour Name tDot11fIEAPChannelReport APChannelReport[2]; 6369*5113495bSYour Name tDot11fIElast_beacon_report_indication last_beacon_report_indication; 6370*5113495bSYour Name } Beacon; /* measurement_type = 5 */ 6371*5113495bSYour Name struct { 6372*5113495bSYour Name uint8_t loc_subject; 6373*5113495bSYour Name tDot11fIEazimuth_req azimuth_req; 6374*5113495bSYour Name tDot11fIEreq_mac_addr req_mac_addr; 6375*5113495bSYour Name tDot11fIEtgt_mac_addr tgt_mac_addr; 6376*5113495bSYour Name tDot11fIEmax_age max_age; 6377*5113495bSYour Name } lci; /* measurement_type = 8 */ 6378*5113495bSYour Name struct { 6379*5113495bSYour Name uint16_t random_interval; 6380*5113495bSYour Name uint8_t min_ap_count; 6381*5113495bSYour Name tDot11fIEneighbor_rpt neighbor_rpt; 6382*5113495bSYour Name tDot11fIEmax_age max_age; 6383*5113495bSYour Name } ftmrr; /* measurement_type = 16 */ 6384*5113495bSYour Name struct { 6385*5113495bSYour Name uint8_t peer_mac_addr[6]; 6386*5113495bSYour Name uint16_t randomization; 6387*5113495bSYour Name uint16_t meas_duration; 6388*5113495bSYour Name uint8_t group_identity; 6389*5113495bSYour Name } sta_stats; /* measurement_type = 7 */ 6390*5113495bSYour Name } measurement_request; 6391*5113495bSYour Name } tDot11fIEMeasurementRequest; 6392*5113495bSYour Name 6393*5113495bSYour Name #define DOT11F_EID_MEASUREMENTREQUEST (38) 6394*5113495bSYour Name 6395*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 6396*5113495bSYour Name #define DOT11F_IE_MEASUREMENTREQUEST_MIN_LEN (4) 6397*5113495bSYour Name 6398*5113495bSYour Name #define DOT11F_IE_MEASUREMENTREQUEST_MAX_LEN (16) 6399*5113495bSYour Name 6400*5113495bSYour Name #ifdef __cplusplus 6401*5113495bSYour Name extern "C" { 6402*5113495bSYour Name #endif /* C++ */ 6403*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_measurement_request( 6404*5113495bSYour Name tpAniSirGlobal, 6405*5113495bSYour Name uint8_t *, 6406*5113495bSYour Name uint8_t, 6407*5113495bSYour Name tDot11fIEMeasurementRequest*, 6408*5113495bSYour Name bool); 6409*5113495bSYour Name 6410*5113495bSYour Name uint32_t dot11f_pack_ie_measurement_request( 6411*5113495bSYour Name tpAniSirGlobal, 6412*5113495bSYour Name tDot11fIEMeasurementRequest *, 6413*5113495bSYour Name uint8_t *, 6414*5113495bSYour Name uint32_t, 6415*5113495bSYour Name uint32_t*); 6416*5113495bSYour Name 6417*5113495bSYour Name uint32_t dot11f_get_packed_ie_measurement_request( 6418*5113495bSYour Name tpAniSirGlobal, 6419*5113495bSYour Name tDot11fIEMeasurementRequest *, 6420*5113495bSYour Name uint32_t*); 6421*5113495bSYour Name 6422*5113495bSYour Name #ifdef __cplusplus 6423*5113495bSYour Name }; /* End extern "C". */ 6424*5113495bSYour Name #endif /* C++ */ 6425*5113495bSYour Name 6426*5113495bSYour Name /* EID 54 (0x36) */ 6427*5113495bSYour Name typedef struct sDot11fIEMobilityDomain { 6428*5113495bSYour Name uint8_t present; 6429*5113495bSYour Name uint16_t MDID; 6430*5113495bSYour Name uint8_t overDSCap:1; 6431*5113495bSYour Name uint8_t resourceReqCap:1; 6432*5113495bSYour Name uint8_t reserved:6; 6433*5113495bSYour Name } tDot11fIEMobilityDomain; 6434*5113495bSYour Name 6435*5113495bSYour Name #define DOT11F_EID_MOBILITYDOMAIN (54) 6436*5113495bSYour Name 6437*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 6438*5113495bSYour Name #define DOT11F_IE_MOBILITYDOMAIN_MIN_LEN (3) 6439*5113495bSYour Name 6440*5113495bSYour Name #define DOT11F_IE_MOBILITYDOMAIN_MAX_LEN (3) 6441*5113495bSYour Name 6442*5113495bSYour Name #ifdef __cplusplus 6443*5113495bSYour Name extern "C" { 6444*5113495bSYour Name #endif /* C++ */ 6445*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_mobility_domain( 6446*5113495bSYour Name tpAniSirGlobal, 6447*5113495bSYour Name uint8_t *, 6448*5113495bSYour Name uint8_t, 6449*5113495bSYour Name tDot11fIEMobilityDomain*, 6450*5113495bSYour Name bool); 6451*5113495bSYour Name 6452*5113495bSYour Name uint32_t dot11f_pack_ie_mobility_domain( 6453*5113495bSYour Name tpAniSirGlobal, 6454*5113495bSYour Name tDot11fIEMobilityDomain *, 6455*5113495bSYour Name uint8_t *, 6456*5113495bSYour Name uint32_t, 6457*5113495bSYour Name uint32_t*); 6458*5113495bSYour Name 6459*5113495bSYour Name uint32_t dot11f_get_packed_ie_MobilityDomain( 6460*5113495bSYour Name tpAniSirGlobal, 6461*5113495bSYour Name tDot11fIEMobilityDomain *, 6462*5113495bSYour Name uint32_t*); 6463*5113495bSYour Name 6464*5113495bSYour Name #ifdef __cplusplus 6465*5113495bSYour Name }; /* End extern "C". */ 6466*5113495bSYour Name #endif /* C++ */ 6467*5113495bSYour Name 6468*5113495bSYour Name /* EID 52 (0x34) */ 6469*5113495bSYour Name typedef struct sDot11fIENeighborReport { 6470*5113495bSYour Name uint8_t present; 6471*5113495bSYour Name uint8_t bssid[6]; 6472*5113495bSYour Name uint8_t APReachability:2; 6473*5113495bSYour Name uint8_t Security:1; 6474*5113495bSYour Name uint8_t KeyScope:1; 6475*5113495bSYour Name uint8_t SpecMgmtCap:1; 6476*5113495bSYour Name uint8_t QosCap:1; 6477*5113495bSYour Name uint8_t apsd:1; 6478*5113495bSYour Name uint8_t rrm:1; 6479*5113495bSYour Name uint8_t DelayedBA:1; 6480*5113495bSYour Name uint8_t ImmBA:1; 6481*5113495bSYour Name uint8_t MobilityDomain:1; 6482*5113495bSYour Name uint8_t reserved:5; 6483*5113495bSYour Name uint16_t reserved1; 6484*5113495bSYour Name uint8_t regulatoryClass; 6485*5113495bSYour Name uint8_t channel; 6486*5113495bSYour Name uint8_t PhyType; 6487*5113495bSYour Name tDot11fIETSFInfo TSFInfo; 6488*5113495bSYour Name tDot11fIECondensedCountryStr CondensedCountryStr; 6489*5113495bSYour Name tDot11fIEMeasurementPilot MeasurementPilot; 6490*5113495bSYour Name tDot11fIERRMEnabledCap RRMEnabledCap; 6491*5113495bSYour Name tDot11fIEMultiBssid MultiBssid; 6492*5113495bSYour Name } tDot11fIENeighborReport; 6493*5113495bSYour Name 6494*5113495bSYour Name #define DOT11F_EID_NEIGHBORREPORT (52) 6495*5113495bSYour Name 6496*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 6497*5113495bSYour Name #define DOT11F_IE_NEIGHBORREPORT_MIN_LEN (13) 6498*5113495bSYour Name 6499*5113495bSYour Name #define DOT11F_IE_NEIGHBORREPORT_MAX_LEN (546) 6500*5113495bSYour Name 6501*5113495bSYour Name #ifdef __cplusplus 6502*5113495bSYour Name extern "C" { 6503*5113495bSYour Name #endif /* C++ */ 6504*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_neighbor_report( 6505*5113495bSYour Name tpAniSirGlobal, 6506*5113495bSYour Name uint8_t *, 6507*5113495bSYour Name uint8_t, 6508*5113495bSYour Name tDot11fIENeighborReport*, 6509*5113495bSYour Name bool); 6510*5113495bSYour Name 6511*5113495bSYour Name uint32_t dot11f_pack_ie_neighbor_report( 6512*5113495bSYour Name tpAniSirGlobal, 6513*5113495bSYour Name tDot11fIENeighborReport *, 6514*5113495bSYour Name uint8_t *, 6515*5113495bSYour Name uint32_t, 6516*5113495bSYour Name uint32_t*); 6517*5113495bSYour Name 6518*5113495bSYour Name uint32_t dot11f_get_packed_ie_neighbor_report( 6519*5113495bSYour Name tpAniSirGlobal, 6520*5113495bSYour Name tDot11fIENeighborReport *, 6521*5113495bSYour Name uint32_t*); 6522*5113495bSYour Name 6523*5113495bSYour Name #ifdef __cplusplus 6524*5113495bSYour Name }; /* End extern "C". */ 6525*5113495bSYour Name #endif /* C++ */ 6526*5113495bSYour Name 6527*5113495bSYour Name /* EID 74 (0x4a) */ 6528*5113495bSYour Name typedef struct sDot11fIEOBSSScanParameters { 6529*5113495bSYour Name uint8_t present; 6530*5113495bSYour Name uint16_t obssScanPassiveDwell; 6531*5113495bSYour Name uint16_t obssScanActiveDwell; 6532*5113495bSYour Name uint16_t bssChannelWidthTriggerScanInterval; 6533*5113495bSYour Name uint16_t obssScanPassiveTotalPerChannel; 6534*5113495bSYour Name uint16_t obssScanActiveTotalPerChannel; 6535*5113495bSYour Name uint16_t bssWidthChannelTransitionDelayFactor; 6536*5113495bSYour Name uint16_t obssScanActivityThreshold; 6537*5113495bSYour Name } tDot11fIEOBSSScanParameters; 6538*5113495bSYour Name 6539*5113495bSYour Name #define DOT11F_EID_OBSSSCANPARAMETERS (74) 6540*5113495bSYour Name 6541*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 6542*5113495bSYour Name #define DOT11F_IE_OBSSSCANPARAMETERS_MIN_LEN (14) 6543*5113495bSYour Name 6544*5113495bSYour Name #define DOT11F_IE_OBSSSCANPARAMETERS_MAX_LEN (14) 6545*5113495bSYour Name 6546*5113495bSYour Name #ifdef __cplusplus 6547*5113495bSYour Name extern "C" { 6548*5113495bSYour Name #endif /* C++ */ 6549*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_obss_scan_parameters( 6550*5113495bSYour Name tpAniSirGlobal, 6551*5113495bSYour Name uint8_t *, 6552*5113495bSYour Name uint8_t, 6553*5113495bSYour Name tDot11fIEOBSSScanParameters*, 6554*5113495bSYour Name bool); 6555*5113495bSYour Name 6556*5113495bSYour Name uint32_t dot11f_pack_ie_obss_scan_parameters( 6557*5113495bSYour Name tpAniSirGlobal, 6558*5113495bSYour Name tDot11fIEOBSSScanParameters *, 6559*5113495bSYour Name uint8_t *, 6560*5113495bSYour Name uint32_t, 6561*5113495bSYour Name uint32_t*); 6562*5113495bSYour Name 6563*5113495bSYour Name uint32_t dot11f_get_packed_ie_OBSSScanParameters( 6564*5113495bSYour Name tpAniSirGlobal, 6565*5113495bSYour Name tDot11fIEOBSSScanParameters *, 6566*5113495bSYour Name uint32_t*); 6567*5113495bSYour Name 6568*5113495bSYour Name #ifdef __cplusplus 6569*5113495bSYour Name }; /* End extern "C". */ 6570*5113495bSYour Name #endif /* C++ */ 6571*5113495bSYour Name 6572*5113495bSYour Name /* EID 199 (0xc7) */ 6573*5113495bSYour Name typedef struct sDot11fIEOperatingMode { 6574*5113495bSYour Name uint8_t present; 6575*5113495bSYour Name uint8_t chanWidth:2; 6576*5113495bSYour Name uint8_t vht_160_80p80_supp:1; 6577*5113495bSYour Name uint8_t no_ldpc:1; 6578*5113495bSYour Name uint8_t rxNSS:3; 6579*5113495bSYour Name uint8_t rxNSSType:1; 6580*5113495bSYour Name } tDot11fIEOperatingMode; 6581*5113495bSYour Name 6582*5113495bSYour Name #define DOT11F_EID_OPERATINGMODE (199) 6583*5113495bSYour Name 6584*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 6585*5113495bSYour Name #define DOT11F_IE_OPERATINGMODE_MIN_LEN (1) 6586*5113495bSYour Name 6587*5113495bSYour Name #define DOT11F_IE_OPERATINGMODE_MAX_LEN (1) 6588*5113495bSYour Name 6589*5113495bSYour Name #ifdef __cplusplus 6590*5113495bSYour Name extern "C" { 6591*5113495bSYour Name #endif /* C++ */ 6592*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_operating_mode( 6593*5113495bSYour Name tpAniSirGlobal, 6594*5113495bSYour Name uint8_t *, 6595*5113495bSYour Name uint8_t, 6596*5113495bSYour Name tDot11fIEOperatingMode*, 6597*5113495bSYour Name bool); 6598*5113495bSYour Name 6599*5113495bSYour Name uint32_t dot11f_pack_ie_operating_mode( 6600*5113495bSYour Name tpAniSirGlobal, 6601*5113495bSYour Name tDot11fIEOperatingMode *, 6602*5113495bSYour Name uint8_t *, 6603*5113495bSYour Name uint32_t, 6604*5113495bSYour Name uint32_t*); 6605*5113495bSYour Name 6606*5113495bSYour Name uint32_t dot11f_get_packed_ie_OperatingMode( 6607*5113495bSYour Name tpAniSirGlobal, 6608*5113495bSYour Name tDot11fIEOperatingMode *, 6609*5113495bSYour Name uint32_t*); 6610*5113495bSYour Name 6611*5113495bSYour Name #ifdef __cplusplus 6612*5113495bSYour Name }; /* End extern "C". */ 6613*5113495bSYour Name #endif /* C++ */ 6614*5113495bSYour Name 6615*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE) */ 6616*5113495bSYour Name typedef struct sDot11fIEP2PAssocReq { 6617*5113495bSYour Name uint8_t present; 6618*5113495bSYour Name tDot11fTLVP2PCapability P2PCapability; 6619*5113495bSYour Name tDot11fTLVExtendedListenTiming ExtendedListenTiming; 6620*5113495bSYour Name tDot11fTLVP2PDeviceInfo P2PDeviceInfo; 6621*5113495bSYour Name } tDot11fIEP2PAssocReq; 6622*5113495bSYour Name 6623*5113495bSYour Name #define DOT11F_EID_P2PASSOCREQ (221) 6624*5113495bSYour Name 6625*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 6626*5113495bSYour Name #define DOT11F_IE_P2PASSOCREQ_MIN_LEN (4) 6627*5113495bSYour Name 6628*5113495bSYour Name #define DOT11F_IE_P2PASSOCREQ_MAX_LEN (71) 6629*5113495bSYour Name 6630*5113495bSYour Name #ifdef __cplusplus 6631*5113495bSYour Name extern "C" { 6632*5113495bSYour Name #endif /* C++ */ 6633*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_p2_p_assoc_req( 6634*5113495bSYour Name tpAniSirGlobal, 6635*5113495bSYour Name uint8_t *, 6636*5113495bSYour Name uint8_t, 6637*5113495bSYour Name tDot11fIEP2PAssocReq*, 6638*5113495bSYour Name bool); 6639*5113495bSYour Name 6640*5113495bSYour Name uint32_t dot11f_pack_ie_p2_p_assoc_req( 6641*5113495bSYour Name tpAniSirGlobal, 6642*5113495bSYour Name tDot11fIEP2PAssocReq *, 6643*5113495bSYour Name uint8_t *, 6644*5113495bSYour Name uint32_t, 6645*5113495bSYour Name uint32_t*); 6646*5113495bSYour Name 6647*5113495bSYour Name uint32_t dot11f_get_packed_iep2_p_assoc_req( 6648*5113495bSYour Name tpAniSirGlobal, 6649*5113495bSYour Name tDot11fIEP2PAssocReq *, 6650*5113495bSYour Name uint32_t*); 6651*5113495bSYour Name 6652*5113495bSYour Name #ifdef __cplusplus 6653*5113495bSYour Name }; /* End extern "C". */ 6654*5113495bSYour Name #endif /* C++ */ 6655*5113495bSYour Name 6656*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE) */ 6657*5113495bSYour Name typedef struct sDot11fIEP2PAssocRes { 6658*5113495bSYour Name uint8_t present; 6659*5113495bSYour Name tDot11fTLVP2PStatus P2PStatus; 6660*5113495bSYour Name tDot11fTLVExtendedListenTiming ExtendedListenTiming; 6661*5113495bSYour Name } tDot11fIEP2PAssocRes; 6662*5113495bSYour Name 6663*5113495bSYour Name #define DOT11F_EID_P2PASSOCRES (221) 6664*5113495bSYour Name 6665*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 6666*5113495bSYour Name #define DOT11F_IE_P2PASSOCRES_MIN_LEN (4) 6667*5113495bSYour Name 6668*5113495bSYour Name #define DOT11F_IE_P2PASSOCRES_MAX_LEN (15) 6669*5113495bSYour Name 6670*5113495bSYour Name #ifdef __cplusplus 6671*5113495bSYour Name extern "C" { 6672*5113495bSYour Name #endif /* C++ */ 6673*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_p2_p_assoc_res( 6674*5113495bSYour Name tpAniSirGlobal, 6675*5113495bSYour Name uint8_t *, 6676*5113495bSYour Name uint8_t, 6677*5113495bSYour Name tDot11fIEP2PAssocRes*, 6678*5113495bSYour Name bool); 6679*5113495bSYour Name 6680*5113495bSYour Name uint32_t dot11f_pack_ie_p2_p_assoc_res( 6681*5113495bSYour Name tpAniSirGlobal, 6682*5113495bSYour Name tDot11fIEP2PAssocRes *, 6683*5113495bSYour Name uint8_t *, 6684*5113495bSYour Name uint32_t, 6685*5113495bSYour Name uint32_t*); 6686*5113495bSYour Name 6687*5113495bSYour Name uint32_t dot11f_get_packed_iep2_p_assoc_res( 6688*5113495bSYour Name tpAniSirGlobal, 6689*5113495bSYour Name tDot11fIEP2PAssocRes *, 6690*5113495bSYour Name uint32_t*); 6691*5113495bSYour Name 6692*5113495bSYour Name #ifdef __cplusplus 6693*5113495bSYour Name }; /* End extern "C". */ 6694*5113495bSYour Name #endif /* C++ */ 6695*5113495bSYour Name 6696*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE) */ 6697*5113495bSYour Name typedef struct sDot11fIEP2PBeacon { 6698*5113495bSYour Name uint8_t present; 6699*5113495bSYour Name tDot11fTLVP2PCapability P2PCapability; 6700*5113495bSYour Name tDot11fTLVP2PDeviceId P2PDeviceId; 6701*5113495bSYour Name tDot11fTLVNoticeOfAbsence NoticeOfAbsence; 6702*5113495bSYour Name } tDot11fIEP2PBeacon; 6703*5113495bSYour Name 6704*5113495bSYour Name #define DOT11F_EID_P2PBEACON (221) 6705*5113495bSYour Name 6706*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 6707*5113495bSYour Name #define DOT11F_IE_P2PBEACON_MIN_LEN (4) 6708*5113495bSYour Name 6709*5113495bSYour Name #define DOT11F_IE_P2PBEACON_MAX_LEN (59) 6710*5113495bSYour Name 6711*5113495bSYour Name #ifdef __cplusplus 6712*5113495bSYour Name extern "C" { 6713*5113495bSYour Name #endif /* C++ */ 6714*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_p2_p_beacon( 6715*5113495bSYour Name tpAniSirGlobal, 6716*5113495bSYour Name uint8_t *, 6717*5113495bSYour Name uint8_t, 6718*5113495bSYour Name tDot11fIEP2PBeacon*, 6719*5113495bSYour Name bool); 6720*5113495bSYour Name 6721*5113495bSYour Name uint32_t dot11f_pack_ie_p2_p_beacon( 6722*5113495bSYour Name tpAniSirGlobal, 6723*5113495bSYour Name tDot11fIEP2PBeacon *, 6724*5113495bSYour Name uint8_t *, 6725*5113495bSYour Name uint32_t, 6726*5113495bSYour Name uint32_t*); 6727*5113495bSYour Name 6728*5113495bSYour Name uint32_t dot11f_get_packed_iep2_p_beacon( 6729*5113495bSYour Name tpAniSirGlobal, 6730*5113495bSYour Name tDot11fIEP2PBeacon *, 6731*5113495bSYour Name uint32_t*); 6732*5113495bSYour Name 6733*5113495bSYour Name #ifdef __cplusplus 6734*5113495bSYour Name }; /* End extern "C". */ 6735*5113495bSYour Name #endif /* C++ */ 6736*5113495bSYour Name 6737*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE) */ 6738*5113495bSYour Name typedef struct sDot11fIEP2PBeaconProbeRes { 6739*5113495bSYour Name uint8_t present; 6740*5113495bSYour Name tDot11fTLVP2PCapability P2PCapability; 6741*5113495bSYour Name tDot11fTLVP2PDeviceId P2PDeviceId; 6742*5113495bSYour Name tDot11fTLVExtendedListenTiming ExtendedListenTiming; 6743*5113495bSYour Name tDot11fTLVNoticeOfAbsence NoticeOfAbsence; 6744*5113495bSYour Name tDot11fTLVP2PDeviceInfo P2PDeviceInfo; 6745*5113495bSYour Name tDot11fTLVP2PGroupInfo P2PGroupInfo; 6746*5113495bSYour Name } tDot11fIEP2PBeaconProbeRes; 6747*5113495bSYour Name 6748*5113495bSYour Name #define DOT11F_EID_P2PBEACONPROBERES (221) 6749*5113495bSYour Name 6750*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 6751*5113495bSYour Name #define DOT11F_IE_P2PBEACONPROBERES_MIN_LEN (4) 6752*5113495bSYour Name 6753*5113495bSYour Name #define DOT11F_IE_P2PBEACONPROBERES_MAX_LEN (1148) 6754*5113495bSYour Name 6755*5113495bSYour Name #ifdef __cplusplus 6756*5113495bSYour Name extern "C" { 6757*5113495bSYour Name #endif /* C++ */ 6758*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_p2_p_beacon_probe_res( 6759*5113495bSYour Name tpAniSirGlobal, 6760*5113495bSYour Name uint8_t *, 6761*5113495bSYour Name uint8_t, 6762*5113495bSYour Name tDot11fIEP2PBeaconProbeRes*, 6763*5113495bSYour Name bool); 6764*5113495bSYour Name 6765*5113495bSYour Name uint32_t dot11f_pack_ie_p2_p_beacon_probe_res( 6766*5113495bSYour Name tpAniSirGlobal, 6767*5113495bSYour Name tDot11fIEP2PBeaconProbeRes *, 6768*5113495bSYour Name uint8_t *, 6769*5113495bSYour Name uint32_t, 6770*5113495bSYour Name uint32_t*); 6771*5113495bSYour Name 6772*5113495bSYour Name uint32_t dot11f_get_packed_iep2_p_beacon_probe_res( 6773*5113495bSYour Name tpAniSirGlobal, 6774*5113495bSYour Name tDot11fIEP2PBeaconProbeRes *, 6775*5113495bSYour Name uint32_t*); 6776*5113495bSYour Name 6777*5113495bSYour Name #ifdef __cplusplus 6778*5113495bSYour Name }; /* End extern "C". */ 6779*5113495bSYour Name #endif /* C++ */ 6780*5113495bSYour Name 6781*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE) */ 6782*5113495bSYour Name typedef struct sDot11fIEP2PDeAuth { 6783*5113495bSYour Name uint8_t present; 6784*5113495bSYour Name tDot11fTLVMinorReasonCode MinorReasonCode; 6785*5113495bSYour Name } tDot11fIEP2PDeAuth; 6786*5113495bSYour Name 6787*5113495bSYour Name #define DOT11F_EID_P2PDEAUTH (221) 6788*5113495bSYour Name 6789*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 6790*5113495bSYour Name #define DOT11F_IE_P2PDEAUTH_MIN_LEN (4) 6791*5113495bSYour Name 6792*5113495bSYour Name #define DOT11F_IE_P2PDEAUTH_MAX_LEN (8) 6793*5113495bSYour Name 6794*5113495bSYour Name #ifdef __cplusplus 6795*5113495bSYour Name extern "C" { 6796*5113495bSYour Name #endif /* C++ */ 6797*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_p2_p_de_auth( 6798*5113495bSYour Name tpAniSirGlobal, 6799*5113495bSYour Name uint8_t *, 6800*5113495bSYour Name uint8_t, 6801*5113495bSYour Name tDot11fIEP2PDeAuth*, 6802*5113495bSYour Name bool); 6803*5113495bSYour Name 6804*5113495bSYour Name uint32_t dot11f_pack_ie_p2_p_de_auth( 6805*5113495bSYour Name tpAniSirGlobal, 6806*5113495bSYour Name tDot11fIEP2PDeAuth *, 6807*5113495bSYour Name uint8_t *, 6808*5113495bSYour Name uint32_t, 6809*5113495bSYour Name uint32_t*); 6810*5113495bSYour Name 6811*5113495bSYour Name uint32_t dot11f_get_packed_iep2_p_de_auth( 6812*5113495bSYour Name tpAniSirGlobal, 6813*5113495bSYour Name tDot11fIEP2PDeAuth *, 6814*5113495bSYour Name uint32_t*); 6815*5113495bSYour Name 6816*5113495bSYour Name #ifdef __cplusplus 6817*5113495bSYour Name }; /* End extern "C". */ 6818*5113495bSYour Name #endif /* C++ */ 6819*5113495bSYour Name 6820*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE) */ 6821*5113495bSYour Name typedef struct sDot11fIEP2PDisAssoc { 6822*5113495bSYour Name uint8_t present; 6823*5113495bSYour Name tDot11fTLVMinorReasonCode MinorReasonCode; 6824*5113495bSYour Name } tDot11fIEP2PDisAssoc; 6825*5113495bSYour Name 6826*5113495bSYour Name #define DOT11F_EID_P2PDISASSOC (221) 6827*5113495bSYour Name 6828*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 6829*5113495bSYour Name #define DOT11F_IE_P2PDISASSOC_MIN_LEN (4) 6830*5113495bSYour Name 6831*5113495bSYour Name #define DOT11F_IE_P2PDISASSOC_MAX_LEN (8) 6832*5113495bSYour Name 6833*5113495bSYour Name #ifdef __cplusplus 6834*5113495bSYour Name extern "C" { 6835*5113495bSYour Name #endif /* C++ */ 6836*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_p2_p_dis_assoc( 6837*5113495bSYour Name tpAniSirGlobal, 6838*5113495bSYour Name uint8_t *, 6839*5113495bSYour Name uint8_t, 6840*5113495bSYour Name tDot11fIEP2PDisAssoc*, 6841*5113495bSYour Name bool); 6842*5113495bSYour Name 6843*5113495bSYour Name uint32_t dot11f_pack_ie_p2_p_dis_assoc( 6844*5113495bSYour Name tpAniSirGlobal, 6845*5113495bSYour Name tDot11fIEP2PDisAssoc *, 6846*5113495bSYour Name uint8_t *, 6847*5113495bSYour Name uint32_t, 6848*5113495bSYour Name uint32_t*); 6849*5113495bSYour Name 6850*5113495bSYour Name uint32_t dot11f_get_packed_iep2_p_dis_assoc( 6851*5113495bSYour Name tpAniSirGlobal, 6852*5113495bSYour Name tDot11fIEP2PDisAssoc *, 6853*5113495bSYour Name uint32_t*); 6854*5113495bSYour Name 6855*5113495bSYour Name #ifdef __cplusplus 6856*5113495bSYour Name }; /* End extern "C". */ 6857*5113495bSYour Name #endif /* C++ */ 6858*5113495bSYour Name 6859*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} */ 6860*5113495bSYour Name typedef struct sDot11fIEP2PIEOpaque { 6861*5113495bSYour Name uint8_t present; 6862*5113495bSYour Name uint8_t num_data; 6863*5113495bSYour Name uint8_t data[249]; 6864*5113495bSYour Name } tDot11fIEP2PIEOpaque; 6865*5113495bSYour Name 6866*5113495bSYour Name #define DOT11F_EID_P2PIEOPAQUE (221) 6867*5113495bSYour Name 6868*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 6869*5113495bSYour Name #define DOT11F_IE_P2PIEOPAQUE_MIN_LEN (6) 6870*5113495bSYour Name 6871*5113495bSYour Name #define DOT11F_IE_P2PIEOPAQUE_MAX_LEN (253) 6872*5113495bSYour Name 6873*5113495bSYour Name #ifdef __cplusplus 6874*5113495bSYour Name extern "C" { 6875*5113495bSYour Name #endif /* C++ */ 6876*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_p2_pie_opaque( 6877*5113495bSYour Name tpAniSirGlobal, 6878*5113495bSYour Name uint8_t *, 6879*5113495bSYour Name uint8_t, 6880*5113495bSYour Name tDot11fIEP2PIEOpaque*, 6881*5113495bSYour Name bool); 6882*5113495bSYour Name 6883*5113495bSYour Name uint32_t dot11f_pack_ie_p2_pie_opaque( 6884*5113495bSYour Name tpAniSirGlobal, 6885*5113495bSYour Name tDot11fIEP2PIEOpaque *, 6886*5113495bSYour Name uint8_t *, 6887*5113495bSYour Name uint32_t, 6888*5113495bSYour Name uint32_t*); 6889*5113495bSYour Name 6890*5113495bSYour Name uint32_t dot11f_get_packed_ie_P2PIEOpaque( 6891*5113495bSYour Name tpAniSirGlobal, 6892*5113495bSYour Name tDot11fIEP2PIEOpaque *, 6893*5113495bSYour Name uint32_t*); 6894*5113495bSYour Name 6895*5113495bSYour Name #ifdef __cplusplus 6896*5113495bSYour Name }; /* End extern "C". */ 6897*5113495bSYour Name #endif /* C++ */ 6898*5113495bSYour Name 6899*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE) */ 6900*5113495bSYour Name typedef struct sDot11fIEP2PProbeReq { 6901*5113495bSYour Name uint8_t present; 6902*5113495bSYour Name tDot11fTLVP2PCapability P2PCapability; 6903*5113495bSYour Name tDot11fTLVP2PDeviceId P2PDeviceId; 6904*5113495bSYour Name tDot11fTLVListenChannel ListenChannel; 6905*5113495bSYour Name tDot11fTLVExtendedListenTiming ExtendedListenTiming; 6906*5113495bSYour Name tDot11fTLVOperatingChannel OperatingChannel; 6907*5113495bSYour Name } tDot11fIEP2PProbeReq; 6908*5113495bSYour Name 6909*5113495bSYour Name #define DOT11F_EID_P2PPROBEREQ (221) 6910*5113495bSYour Name 6911*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 6912*5113495bSYour Name #define DOT11F_IE_P2PPROBEREQ_MIN_LEN (4) 6913*5113495bSYour Name 6914*5113495bSYour Name #define DOT11F_IE_P2PPROBEREQ_MAX_LEN (41) 6915*5113495bSYour Name 6916*5113495bSYour Name #ifdef __cplusplus 6917*5113495bSYour Name extern "C" { 6918*5113495bSYour Name #endif /* C++ */ 6919*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_p2_p_probe_req( 6920*5113495bSYour Name tpAniSirGlobal, 6921*5113495bSYour Name uint8_t *, 6922*5113495bSYour Name uint8_t, 6923*5113495bSYour Name tDot11fIEP2PProbeReq*, 6924*5113495bSYour Name bool); 6925*5113495bSYour Name 6926*5113495bSYour Name uint32_t dot11f_pack_ie_p2_p_probe_req( 6927*5113495bSYour Name tpAniSirGlobal, 6928*5113495bSYour Name tDot11fIEP2PProbeReq *, 6929*5113495bSYour Name uint8_t *, 6930*5113495bSYour Name uint32_t, 6931*5113495bSYour Name uint32_t*); 6932*5113495bSYour Name 6933*5113495bSYour Name uint32_t dot11f_get_packed_iep2_p_probe_req( 6934*5113495bSYour Name tpAniSirGlobal, 6935*5113495bSYour Name tDot11fIEP2PProbeReq *, 6936*5113495bSYour Name uint32_t*); 6937*5113495bSYour Name 6938*5113495bSYour Name #ifdef __cplusplus 6939*5113495bSYour Name }; /* End extern "C". */ 6940*5113495bSYour Name #endif /* C++ */ 6941*5113495bSYour Name 6942*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x09} (Multi-IE) */ 6943*5113495bSYour Name typedef struct sDot11fIEP2PProbeRes { 6944*5113495bSYour Name uint8_t present; 6945*5113495bSYour Name tDot11fTLVP2PCapability P2PCapability; 6946*5113495bSYour Name tDot11fTLVExtendedListenTiming ExtendedListenTiming; 6947*5113495bSYour Name tDot11fTLVNoticeOfAbsence NoticeOfAbsence; 6948*5113495bSYour Name tDot11fTLVP2PDeviceInfo P2PDeviceInfo; 6949*5113495bSYour Name tDot11fTLVP2PGroupInfo P2PGroupInfo; 6950*5113495bSYour Name } tDot11fIEP2PProbeRes; 6951*5113495bSYour Name 6952*5113495bSYour Name #define DOT11F_EID_P2PPROBERES (221) 6953*5113495bSYour Name 6954*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 6955*5113495bSYour Name #define DOT11F_IE_P2PPROBERES_MIN_LEN (4) 6956*5113495bSYour Name 6957*5113495bSYour Name #define DOT11F_IE_P2PPROBERES_MAX_LEN (1139) 6958*5113495bSYour Name 6959*5113495bSYour Name #ifdef __cplusplus 6960*5113495bSYour Name extern "C" { 6961*5113495bSYour Name #endif /* C++ */ 6962*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_p2_p_probe_res( 6963*5113495bSYour Name tpAniSirGlobal, 6964*5113495bSYour Name uint8_t *, 6965*5113495bSYour Name uint8_t, 6966*5113495bSYour Name tDot11fIEP2PProbeRes*, 6967*5113495bSYour Name bool); 6968*5113495bSYour Name 6969*5113495bSYour Name uint32_t dot11f_pack_ie_p2_p_probe_res( 6970*5113495bSYour Name tpAniSirGlobal, 6971*5113495bSYour Name tDot11fIEP2PProbeRes *, 6972*5113495bSYour Name uint8_t *, 6973*5113495bSYour Name uint32_t, 6974*5113495bSYour Name uint32_t*); 6975*5113495bSYour Name 6976*5113495bSYour Name uint32_t dot11f_get_packed_iep2_p_probe_res( 6977*5113495bSYour Name tpAniSirGlobal, 6978*5113495bSYour Name tDot11fIEP2PProbeRes *, 6979*5113495bSYour Name uint32_t*); 6980*5113495bSYour Name 6981*5113495bSYour Name #ifdef __cplusplus 6982*5113495bSYour Name }; /* End extern "C". */ 6983*5113495bSYour Name #endif /* C++ */ 6984*5113495bSYour Name 6985*5113495bSYour Name /* EID 105 (0x69) */ 6986*5113495bSYour Name typedef struct sDot11fIEPTIControl { 6987*5113495bSYour Name uint8_t present; 6988*5113495bSYour Name uint8_t tid; 6989*5113495bSYour Name uint16_t sequence_control; 6990*5113495bSYour Name } tDot11fIEPTIControl; 6991*5113495bSYour Name 6992*5113495bSYour Name #define DOT11F_EID_PTICONTROL (105) 6993*5113495bSYour Name 6994*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 6995*5113495bSYour Name #define DOT11F_IE_PTICONTROL_MIN_LEN (3) 6996*5113495bSYour Name 6997*5113495bSYour Name #define DOT11F_IE_PTICONTROL_MAX_LEN (3) 6998*5113495bSYour Name 6999*5113495bSYour Name #ifdef __cplusplus 7000*5113495bSYour Name extern "C" { 7001*5113495bSYour Name #endif /* C++ */ 7002*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_pti_control( 7003*5113495bSYour Name tpAniSirGlobal, 7004*5113495bSYour Name uint8_t *, 7005*5113495bSYour Name uint8_t, 7006*5113495bSYour Name tDot11fIEPTIControl*, 7007*5113495bSYour Name bool); 7008*5113495bSYour Name 7009*5113495bSYour Name uint32_t dot11f_pack_ie_pti_control( 7010*5113495bSYour Name tpAniSirGlobal, 7011*5113495bSYour Name tDot11fIEPTIControl *, 7012*5113495bSYour Name uint8_t *, 7013*5113495bSYour Name uint32_t, 7014*5113495bSYour Name uint32_t*); 7015*5113495bSYour Name 7016*5113495bSYour Name uint32_t dot11f_get_packed_ie_PTIControl( 7017*5113495bSYour Name tpAniSirGlobal, 7018*5113495bSYour Name tDot11fIEPTIControl *, 7019*5113495bSYour Name uint32_t*); 7020*5113495bSYour Name 7021*5113495bSYour Name #ifdef __cplusplus 7022*5113495bSYour Name }; /* End extern "C". */ 7023*5113495bSYour Name #endif /* C++ */ 7024*5113495bSYour Name 7025*5113495bSYour Name /* EID 106 (0x6a) */ 7026*5113495bSYour Name typedef struct sDot11fIEPUBufferStatus { 7027*5113495bSYour Name uint8_t present; 7028*5113495bSYour Name uint8_t ac_bk_traffic_aval:1; 7029*5113495bSYour Name uint8_t ac_be_traffic_aval:1; 7030*5113495bSYour Name uint8_t ac_vi_traffic_aval:1; 7031*5113495bSYour Name uint8_t ac_vo_traffic_aval:1; 7032*5113495bSYour Name uint8_t reserved:4; 7033*5113495bSYour Name } tDot11fIEPUBufferStatus; 7034*5113495bSYour Name 7035*5113495bSYour Name #define DOT11F_EID_PUBUFFERSTATUS (106) 7036*5113495bSYour Name 7037*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7038*5113495bSYour Name #define DOT11F_IE_PUBUFFERSTATUS_MIN_LEN (1) 7039*5113495bSYour Name 7040*5113495bSYour Name #define DOT11F_IE_PUBUFFERSTATUS_MAX_LEN (1) 7041*5113495bSYour Name 7042*5113495bSYour Name #ifdef __cplusplus 7043*5113495bSYour Name extern "C" { 7044*5113495bSYour Name #endif /* C++ */ 7045*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_pu_buffer_status( 7046*5113495bSYour Name tpAniSirGlobal, 7047*5113495bSYour Name uint8_t *, 7048*5113495bSYour Name uint8_t, 7049*5113495bSYour Name tDot11fIEPUBufferStatus*, 7050*5113495bSYour Name bool); 7051*5113495bSYour Name 7052*5113495bSYour Name uint32_t dot11f_pack_ie_pu_buffer_status( 7053*5113495bSYour Name tpAniSirGlobal, 7054*5113495bSYour Name tDot11fIEPUBufferStatus *, 7055*5113495bSYour Name uint8_t *, 7056*5113495bSYour Name uint32_t, 7057*5113495bSYour Name uint32_t*); 7058*5113495bSYour Name 7059*5113495bSYour Name uint32_t dot11f_get_packed_ie_PUBufferStatus( 7060*5113495bSYour Name tpAniSirGlobal, 7061*5113495bSYour Name tDot11fIEPUBufferStatus *, 7062*5113495bSYour Name uint32_t*); 7063*5113495bSYour Name 7064*5113495bSYour Name #ifdef __cplusplus 7065*5113495bSYour Name }; /* End extern "C". */ 7066*5113495bSYour Name #endif /* C++ */ 7067*5113495bSYour Name 7068*5113495bSYour Name /* EID 33 (0x21) */ 7069*5113495bSYour Name typedef struct sDot11fIEPowerCaps { 7070*5113495bSYour Name uint8_t present; 7071*5113495bSYour Name uint8_t minTxPower; 7072*5113495bSYour Name uint8_t maxTxPower; 7073*5113495bSYour Name } tDot11fIEPowerCaps; 7074*5113495bSYour Name 7075*5113495bSYour Name #define DOT11F_EID_POWERCAPS (33) 7076*5113495bSYour Name 7077*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7078*5113495bSYour Name #define DOT11F_IE_POWERCAPS_MIN_LEN (2) 7079*5113495bSYour Name 7080*5113495bSYour Name #define DOT11F_IE_POWERCAPS_MAX_LEN (2) 7081*5113495bSYour Name 7082*5113495bSYour Name #ifdef __cplusplus 7083*5113495bSYour Name extern "C" { 7084*5113495bSYour Name #endif /* C++ */ 7085*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_power_caps( 7086*5113495bSYour Name tpAniSirGlobal, 7087*5113495bSYour Name uint8_t *, 7088*5113495bSYour Name uint8_t, 7089*5113495bSYour Name tDot11fIEPowerCaps*, 7090*5113495bSYour Name bool); 7091*5113495bSYour Name 7092*5113495bSYour Name uint32_t dot11f_pack_ie_power_caps( 7093*5113495bSYour Name tpAniSirGlobal, 7094*5113495bSYour Name tDot11fIEPowerCaps *, 7095*5113495bSYour Name uint8_t *, 7096*5113495bSYour Name uint32_t, 7097*5113495bSYour Name uint32_t*); 7098*5113495bSYour Name 7099*5113495bSYour Name uint32_t dot11f_get_packed_ie_PowerCaps( 7100*5113495bSYour Name tpAniSirGlobal, 7101*5113495bSYour Name tDot11fIEPowerCaps *, 7102*5113495bSYour Name uint32_t*); 7103*5113495bSYour Name 7104*5113495bSYour Name #ifdef __cplusplus 7105*5113495bSYour Name }; /* End extern "C". */ 7106*5113495bSYour Name #endif /* C++ */ 7107*5113495bSYour Name 7108*5113495bSYour Name /* EID 32 (0x20) */ 7109*5113495bSYour Name typedef struct sDot11fIEPowerConstraints { 7110*5113495bSYour Name uint8_t present; 7111*5113495bSYour Name uint8_t localPowerConstraints; 7112*5113495bSYour Name } tDot11fIEPowerConstraints; 7113*5113495bSYour Name 7114*5113495bSYour Name #define DOT11F_EID_POWERCONSTRAINTS (32) 7115*5113495bSYour Name 7116*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7117*5113495bSYour Name #define DOT11F_IE_POWERCONSTRAINTS_MIN_LEN (1) 7118*5113495bSYour Name 7119*5113495bSYour Name #define DOT11F_IE_POWERCONSTRAINTS_MAX_LEN (1) 7120*5113495bSYour Name 7121*5113495bSYour Name #ifdef __cplusplus 7122*5113495bSYour Name extern "C" { 7123*5113495bSYour Name #endif /* C++ */ 7124*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_power_constraints( 7125*5113495bSYour Name tpAniSirGlobal, 7126*5113495bSYour Name uint8_t *, 7127*5113495bSYour Name uint8_t, 7128*5113495bSYour Name tDot11fIEPowerConstraints*, 7129*5113495bSYour Name bool); 7130*5113495bSYour Name 7131*5113495bSYour Name uint32_t dot11f_pack_ie_power_constraints( 7132*5113495bSYour Name tpAniSirGlobal, 7133*5113495bSYour Name tDot11fIEPowerConstraints *, 7134*5113495bSYour Name uint8_t *, 7135*5113495bSYour Name uint32_t, 7136*5113495bSYour Name uint32_t*); 7137*5113495bSYour Name 7138*5113495bSYour Name uint32_t dot11f_get_packed_ie_PowerConstraints( 7139*5113495bSYour Name tpAniSirGlobal, 7140*5113495bSYour Name tDot11fIEPowerConstraints *, 7141*5113495bSYour Name uint32_t*); 7142*5113495bSYour Name 7143*5113495bSYour Name #ifdef __cplusplus 7144*5113495bSYour Name }; /* End extern "C". */ 7145*5113495bSYour Name #endif /* C++ */ 7146*5113495bSYour Name 7147*5113495bSYour Name /* EID 11 (0x0b) */ 7148*5113495bSYour Name typedef struct sDot11fIEQBSSLoad { 7149*5113495bSYour Name uint8_t present; 7150*5113495bSYour Name uint16_t stacount; 7151*5113495bSYour Name uint8_t chautil; 7152*5113495bSYour Name uint16_t avail; 7153*5113495bSYour Name } tDot11fIEQBSSLoad; 7154*5113495bSYour Name 7155*5113495bSYour Name #define DOT11F_EID_QBSSLOAD (11) 7156*5113495bSYour Name 7157*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7158*5113495bSYour Name #define DOT11F_IE_QBSSLOAD_MIN_LEN (5) 7159*5113495bSYour Name 7160*5113495bSYour Name #define DOT11F_IE_QBSSLOAD_MAX_LEN (5) 7161*5113495bSYour Name 7162*5113495bSYour Name #ifdef __cplusplus 7163*5113495bSYour Name extern "C" { 7164*5113495bSYour Name #endif /* C++ */ 7165*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_qbss_load( 7166*5113495bSYour Name tpAniSirGlobal, 7167*5113495bSYour Name uint8_t *, 7168*5113495bSYour Name uint8_t, 7169*5113495bSYour Name tDot11fIEQBSSLoad*, 7170*5113495bSYour Name bool); 7171*5113495bSYour Name 7172*5113495bSYour Name uint32_t dot11f_pack_ie_qbss_load( 7173*5113495bSYour Name tpAniSirGlobal, 7174*5113495bSYour Name tDot11fIEQBSSLoad *, 7175*5113495bSYour Name uint8_t *, 7176*5113495bSYour Name uint32_t, 7177*5113495bSYour Name uint32_t*); 7178*5113495bSYour Name 7179*5113495bSYour Name uint32_t dot11f_get_packed_ie_QBSSLoad( 7180*5113495bSYour Name tpAniSirGlobal, 7181*5113495bSYour Name tDot11fIEQBSSLoad *, 7182*5113495bSYour Name uint32_t*); 7183*5113495bSYour Name 7184*5113495bSYour Name #ifdef __cplusplus 7185*5113495bSYour Name }; /* End extern "C". */ 7186*5113495bSYour Name #endif /* C++ */ 7187*5113495bSYour Name 7188*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0xa0, 0xc6} */ 7189*5113495bSYour Name typedef struct sDot11fIEQComVendorIE { 7190*5113495bSYour Name uint8_t present; 7191*5113495bSYour Name uint8_t type; 7192*5113495bSYour Name uint8_t channel; 7193*5113495bSYour Name } tDot11fIEQComVendorIE; 7194*5113495bSYour Name 7195*5113495bSYour Name #define DOT11F_EID_QCOMVENDORIE (221) 7196*5113495bSYour Name 7197*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7198*5113495bSYour Name #define DOT11F_IE_QCOMVENDORIE_MIN_LEN (5) 7199*5113495bSYour Name 7200*5113495bSYour Name #define DOT11F_IE_QCOMVENDORIE_MAX_LEN (5) 7201*5113495bSYour Name 7202*5113495bSYour Name #ifdef __cplusplus 7203*5113495bSYour Name extern "C" { 7204*5113495bSYour Name #endif /* C++ */ 7205*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_QComVendorIE( 7206*5113495bSYour Name tpAniSirGlobal, 7207*5113495bSYour Name uint8_t *, 7208*5113495bSYour Name uint8_t, 7209*5113495bSYour Name tDot11fIEQComVendorIE*, 7210*5113495bSYour Name bool); 7211*5113495bSYour Name 7212*5113495bSYour Name uint32_t dot11f_pack_ie_QComVendorIE( 7213*5113495bSYour Name tpAniSirGlobal, 7214*5113495bSYour Name tDot11fIEQComVendorIE *, 7215*5113495bSYour Name uint8_t *, 7216*5113495bSYour Name uint32_t, 7217*5113495bSYour Name uint32_t*); 7218*5113495bSYour Name 7219*5113495bSYour Name uint32_t dot11f_get_packed_ie_QComVendorIE( 7220*5113495bSYour Name tpAniSirGlobal, 7221*5113495bSYour Name tDot11fIEQComVendorIE *, 7222*5113495bSYour Name uint32_t*); 7223*5113495bSYour Name 7224*5113495bSYour Name #ifdef __cplusplus 7225*5113495bSYour Name }; /* End extern "C". */ 7226*5113495bSYour Name #endif /* C++ */ 7227*5113495bSYour Name 7228*5113495bSYour Name /* EID 46 (0x2e) */ 7229*5113495bSYour Name typedef struct sDot11fIEQOSCapsAp { 7230*5113495bSYour Name uint8_t present; 7231*5113495bSYour Name uint8_t count:4; 7232*5113495bSYour Name uint8_t qack:1; 7233*5113495bSYour Name uint8_t qreq:1; 7234*5113495bSYour Name uint8_t txopreq:1; 7235*5113495bSYour Name uint8_t reserved:1; 7236*5113495bSYour Name } tDot11fIEQOSCapsAp; 7237*5113495bSYour Name 7238*5113495bSYour Name #define DOT11F_EID_QOSCAPSAP (46) 7239*5113495bSYour Name 7240*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7241*5113495bSYour Name #define DOT11F_IE_QOSCAPSAP_MIN_LEN (1) 7242*5113495bSYour Name 7243*5113495bSYour Name #define DOT11F_IE_QOSCAPSAP_MAX_LEN (1) 7244*5113495bSYour Name 7245*5113495bSYour Name #ifdef __cplusplus 7246*5113495bSYour Name extern "C" { 7247*5113495bSYour Name #endif /* C++ */ 7248*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_qos_caps_ap( 7249*5113495bSYour Name tpAniSirGlobal, 7250*5113495bSYour Name uint8_t *, 7251*5113495bSYour Name uint8_t, 7252*5113495bSYour Name tDot11fIEQOSCapsAp*, 7253*5113495bSYour Name bool); 7254*5113495bSYour Name 7255*5113495bSYour Name uint32_t dot11f_pack_ie_qos_caps_ap( 7256*5113495bSYour Name tpAniSirGlobal, 7257*5113495bSYour Name tDot11fIEQOSCapsAp *, 7258*5113495bSYour Name uint8_t *, 7259*5113495bSYour Name uint32_t, 7260*5113495bSYour Name uint32_t*); 7261*5113495bSYour Name 7262*5113495bSYour Name uint32_t dot11f_get_packed_ie_QOSCapsAp( 7263*5113495bSYour Name tpAniSirGlobal, 7264*5113495bSYour Name tDot11fIEQOSCapsAp *, 7265*5113495bSYour Name uint32_t*); 7266*5113495bSYour Name 7267*5113495bSYour Name #ifdef __cplusplus 7268*5113495bSYour Name }; /* End extern "C". */ 7269*5113495bSYour Name #endif /* C++ */ 7270*5113495bSYour Name 7271*5113495bSYour Name /* EID 46 (0x2e) */ 7272*5113495bSYour Name typedef struct sDot11fIEQOSCapsStation { 7273*5113495bSYour Name uint8_t present; 7274*5113495bSYour Name uint8_t acvo_uapsd:1; 7275*5113495bSYour Name uint8_t acvi_uapsd:1; 7276*5113495bSYour Name uint8_t acbk_uapsd:1; 7277*5113495bSYour Name uint8_t acbe_uapsd:1; 7278*5113495bSYour Name uint8_t qack:1; 7279*5113495bSYour Name uint8_t max_sp_length:2; 7280*5113495bSYour Name uint8_t more_data_ack:1; 7281*5113495bSYour Name } tDot11fIEQOSCapsStation; 7282*5113495bSYour Name 7283*5113495bSYour Name #define DOT11F_EID_QOSCAPSSTATION (46) 7284*5113495bSYour Name 7285*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7286*5113495bSYour Name #define DOT11F_IE_QOSCAPSSTATION_MIN_LEN (1) 7287*5113495bSYour Name 7288*5113495bSYour Name #define DOT11F_IE_QOSCAPSSTATION_MAX_LEN (1) 7289*5113495bSYour Name 7290*5113495bSYour Name #ifdef __cplusplus 7291*5113495bSYour Name extern "C" { 7292*5113495bSYour Name #endif /* C++ */ 7293*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_qos_caps_station( 7294*5113495bSYour Name tpAniSirGlobal, 7295*5113495bSYour Name uint8_t *, 7296*5113495bSYour Name uint8_t, 7297*5113495bSYour Name tDot11fIEQOSCapsStation*, 7298*5113495bSYour Name bool); 7299*5113495bSYour Name 7300*5113495bSYour Name uint32_t dot11f_pack_ie_qos_caps_station( 7301*5113495bSYour Name tpAniSirGlobal, 7302*5113495bSYour Name tDot11fIEQOSCapsStation *, 7303*5113495bSYour Name uint8_t *, 7304*5113495bSYour Name uint32_t, 7305*5113495bSYour Name uint32_t*); 7306*5113495bSYour Name 7307*5113495bSYour Name uint32_t dot11f_get_packed_ie_QOSCapsStation( 7308*5113495bSYour Name tpAniSirGlobal, 7309*5113495bSYour Name tDot11fIEQOSCapsStation *, 7310*5113495bSYour Name uint32_t*); 7311*5113495bSYour Name 7312*5113495bSYour Name #ifdef __cplusplus 7313*5113495bSYour Name }; /* End extern "C". */ 7314*5113495bSYour Name #endif /* C++ */ 7315*5113495bSYour Name 7316*5113495bSYour Name /* EID 110 (0x6e) */ 7317*5113495bSYour Name typedef struct sDot11fIEQosMapSet { 7318*5113495bSYour Name uint8_t present; 7319*5113495bSYour Name uint8_t num_dscp_exceptions; 7320*5113495bSYour Name uint8_t dscp_exceptions[58]; 7321*5113495bSYour Name } tDot11fIEQosMapSet; 7322*5113495bSYour Name 7323*5113495bSYour Name #define DOT11F_EID_QOSMAPSET (110) 7324*5113495bSYour Name 7325*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7326*5113495bSYour Name #define DOT11F_IE_QOSMAPSET_MIN_LEN (16) 7327*5113495bSYour Name 7328*5113495bSYour Name #define DOT11F_IE_QOSMAPSET_MAX_LEN (58) 7329*5113495bSYour Name 7330*5113495bSYour Name #ifdef __cplusplus 7331*5113495bSYour Name extern "C" { 7332*5113495bSYour Name #endif /* C++ */ 7333*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_qos_map_set( 7334*5113495bSYour Name tpAniSirGlobal, 7335*5113495bSYour Name uint8_t *, 7336*5113495bSYour Name uint8_t, 7337*5113495bSYour Name tDot11fIEQosMapSet*, 7338*5113495bSYour Name bool); 7339*5113495bSYour Name 7340*5113495bSYour Name uint32_t dot11f_pack_ie_qos_map_set( 7341*5113495bSYour Name tpAniSirGlobal, 7342*5113495bSYour Name tDot11fIEQosMapSet *, 7343*5113495bSYour Name uint8_t *, 7344*5113495bSYour Name uint32_t, 7345*5113495bSYour Name uint32_t*); 7346*5113495bSYour Name 7347*5113495bSYour Name uint32_t dot11f_get_packed_ie_QosMapSet( 7348*5113495bSYour Name tpAniSirGlobal, 7349*5113495bSYour Name tDot11fIEQosMapSet *, 7350*5113495bSYour Name uint32_t*); 7351*5113495bSYour Name 7352*5113495bSYour Name #ifdef __cplusplus 7353*5113495bSYour Name }; /* End extern "C". */ 7354*5113495bSYour Name #endif /* C++ */ 7355*5113495bSYour Name 7356*5113495bSYour Name /* EID 40 (0x28) */ 7357*5113495bSYour Name typedef struct sDot11fIEQuiet { 7358*5113495bSYour Name uint8_t present; 7359*5113495bSYour Name uint8_t count; 7360*5113495bSYour Name uint8_t period; 7361*5113495bSYour Name uint16_t duration; 7362*5113495bSYour Name uint16_t offset; 7363*5113495bSYour Name } tDot11fIEQuiet; 7364*5113495bSYour Name 7365*5113495bSYour Name #define DOT11F_EID_QUIET (40) 7366*5113495bSYour Name 7367*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7368*5113495bSYour Name #define DOT11F_IE_QUIET_MIN_LEN (6) 7369*5113495bSYour Name 7370*5113495bSYour Name #define DOT11F_IE_QUIET_MAX_LEN (6) 7371*5113495bSYour Name 7372*5113495bSYour Name #ifdef __cplusplus 7373*5113495bSYour Name extern "C" { 7374*5113495bSYour Name #endif /* C++ */ 7375*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_quiet( 7376*5113495bSYour Name tpAniSirGlobal, 7377*5113495bSYour Name uint8_t *, 7378*5113495bSYour Name uint8_t, 7379*5113495bSYour Name tDot11fIEQuiet*, 7380*5113495bSYour Name bool); 7381*5113495bSYour Name 7382*5113495bSYour Name uint32_t dot11f_pack_ie_quiet( 7383*5113495bSYour Name tpAniSirGlobal, 7384*5113495bSYour Name tDot11fIEQuiet *, 7385*5113495bSYour Name uint8_t *, 7386*5113495bSYour Name uint32_t, 7387*5113495bSYour Name uint32_t*); 7388*5113495bSYour Name 7389*5113495bSYour Name uint32_t dot11f_get_packed_ie_Quiet( 7390*5113495bSYour Name tpAniSirGlobal, 7391*5113495bSYour Name tDot11fIEQuiet *, 7392*5113495bSYour Name uint32_t*); 7393*5113495bSYour Name 7394*5113495bSYour Name #ifdef __cplusplus 7395*5113495bSYour Name }; /* End extern "C". */ 7396*5113495bSYour Name #endif /* C++ */ 7397*5113495bSYour Name 7398*5113495bSYour Name /* EID 53 (0x35) */ 7399*5113495bSYour Name typedef struct sDot11fIERCPIIE { 7400*5113495bSYour Name uint8_t present; 7401*5113495bSYour Name uint8_t rcpi; 7402*5113495bSYour Name } tDot11fIERCPIIE; 7403*5113495bSYour Name 7404*5113495bSYour Name #define DOT11F_EID_RCPIIE (53) 7405*5113495bSYour Name 7406*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7407*5113495bSYour Name #define DOT11F_IE_RCPIIE_MIN_LEN (1) 7408*5113495bSYour Name 7409*5113495bSYour Name #define DOT11F_IE_RCPIIE_MAX_LEN (1) 7410*5113495bSYour Name 7411*5113495bSYour Name #ifdef __cplusplus 7412*5113495bSYour Name extern "C" { 7413*5113495bSYour Name #endif /* C++ */ 7414*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_rcpiie( 7415*5113495bSYour Name tpAniSirGlobal, 7416*5113495bSYour Name uint8_t *, 7417*5113495bSYour Name uint8_t, 7418*5113495bSYour Name tDot11fIERCPIIE*, 7419*5113495bSYour Name bool); 7420*5113495bSYour Name 7421*5113495bSYour Name uint32_t dot11f_pack_ie_rcpiie( 7422*5113495bSYour Name tpAniSirGlobal, 7423*5113495bSYour Name tDot11fIERCPIIE *, 7424*5113495bSYour Name uint8_t *, 7425*5113495bSYour Name uint32_t, 7426*5113495bSYour Name uint32_t*); 7427*5113495bSYour Name 7428*5113495bSYour Name uint32_t dot11f_get_packed_ie_RCPIIE( 7429*5113495bSYour Name tpAniSirGlobal, 7430*5113495bSYour Name tDot11fIERCPIIE *, 7431*5113495bSYour Name uint32_t*); 7432*5113495bSYour Name 7433*5113495bSYour Name #ifdef __cplusplus 7434*5113495bSYour Name }; /* End extern "C". */ 7435*5113495bSYour Name #endif /* C++ */ 7436*5113495bSYour Name 7437*5113495bSYour Name /* EID 57 (0x39) */ 7438*5113495bSYour Name typedef struct sDot11fIERICDataDesc { 7439*5113495bSYour Name uint8_t present; 7440*5113495bSYour Name tDot11fIERICData RICData; 7441*5113495bSYour Name tDot11fIERICDescriptor RICDescriptor; 7442*5113495bSYour Name tDot11fIETSPEC TSPEC; 7443*5113495bSYour Name uint16_t num_TCLAS; 7444*5113495bSYour Name tDot11fIETCLAS TCLAS[2]; 7445*5113495bSYour Name tDot11fIETCLASSPROC TCLASSPROC; 7446*5113495bSYour Name tDot11fIETSDelay TSDelay; 7447*5113495bSYour Name tDot11fIESchedule Schedule; 7448*5113495bSYour Name tDot11fIEWMMTSPEC WMMTSPEC; 7449*5113495bSYour Name uint16_t num_WMMTCLAS; 7450*5113495bSYour Name tDot11fIEWMMTCLAS WMMTCLAS[2]; 7451*5113495bSYour Name tDot11fIEWMMTCLASPROC WMMTCLASPROC; 7452*5113495bSYour Name tDot11fIEWMMTSDelay WMMTSDelay; 7453*5113495bSYour Name tDot11fIEWMMSchedule WMMSchedule; 7454*5113495bSYour Name } tDot11fIERICDataDesc; 7455*5113495bSYour Name 7456*5113495bSYour Name #define DOT11F_EID_RICDATADESC (57) 7457*5113495bSYour Name 7458*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7459*5113495bSYour Name #define DOT11F_IE_RICDATADESC_MIN_LEN (0) 7460*5113495bSYour Name 7461*5113495bSYour Name #define DOT11F_IE_RICDATADESC_MAX_LEN (548) 7462*5113495bSYour Name 7463*5113495bSYour Name #ifdef __cplusplus 7464*5113495bSYour Name extern "C" { 7465*5113495bSYour Name #endif /* C++ */ 7466*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ric_data_desc( 7467*5113495bSYour Name tpAniSirGlobal, 7468*5113495bSYour Name uint8_t *, 7469*5113495bSYour Name uint8_t, 7470*5113495bSYour Name tDot11fIERICDataDesc*, 7471*5113495bSYour Name bool); 7472*5113495bSYour Name 7473*5113495bSYour Name uint32_t dot11f_pack_ie_ric_data_desc( 7474*5113495bSYour Name tpAniSirGlobal, 7475*5113495bSYour Name tDot11fIERICDataDesc *, 7476*5113495bSYour Name uint8_t *, 7477*5113495bSYour Name uint32_t, 7478*5113495bSYour Name uint32_t*); 7479*5113495bSYour Name 7480*5113495bSYour Name uint32_t dot11f_get_packed_ieric_data_desc( 7481*5113495bSYour Name tpAniSirGlobal, 7482*5113495bSYour Name tDot11fIERICDataDesc *, 7483*5113495bSYour Name uint32_t*); 7484*5113495bSYour Name 7485*5113495bSYour Name #ifdef __cplusplus 7486*5113495bSYour Name }; /* End extern "C". */ 7487*5113495bSYour Name #endif /* C++ */ 7488*5113495bSYour Name 7489*5113495bSYour Name /* EID 48 (0x30) */ 7490*5113495bSYour Name typedef struct sDot11fIERSN { 7491*5113495bSYour Name uint8_t present; 7492*5113495bSYour Name uint16_t version /* Must be 1! */; 7493*5113495bSYour Name uint8_t gp_cipher_suite_present; 7494*5113495bSYour Name uint8_t gp_cipher_suite[4]; 7495*5113495bSYour Name uint16_t pwise_cipher_suite_count; 7496*5113495bSYour Name uint8_t pwise_cipher_suites[6][4]; 7497*5113495bSYour Name uint16_t akm_suite_cnt; 7498*5113495bSYour Name uint8_t akm_suite[6][4]; 7499*5113495bSYour Name uint8_t RSN_Cap_present; 7500*5113495bSYour Name uint8_t RSN_Cap[2]; 7501*5113495bSYour Name uint16_t pmkid_count; 7502*5113495bSYour Name uint8_t pmkid[4][16]; 7503*5113495bSYour Name uint8_t gp_mgmt_cipher_suite_present; 7504*5113495bSYour Name uint8_t gp_mgmt_cipher_suite[4]; 7505*5113495bSYour Name } tDot11fIERSN; 7506*5113495bSYour Name 7507*5113495bSYour Name #define DOT11F_EID_RSN (48) 7508*5113495bSYour Name 7509*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7510*5113495bSYour Name #define DOT11F_IE_RSN_MIN_LEN (2) 7511*5113495bSYour Name 7512*5113495bSYour Name #define DOT11F_IE_RSN_MAX_LEN (130) 7513*5113495bSYour Name 7514*5113495bSYour Name #ifdef __cplusplus 7515*5113495bSYour Name extern "C" { 7516*5113495bSYour Name #endif /* C++ */ 7517*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_rsn( 7518*5113495bSYour Name tpAniSirGlobal, 7519*5113495bSYour Name uint8_t *, 7520*5113495bSYour Name uint8_t, 7521*5113495bSYour Name tDot11fIERSN*, 7522*5113495bSYour Name bool); 7523*5113495bSYour Name 7524*5113495bSYour Name uint32_t dot11f_pack_ie_rsn( 7525*5113495bSYour Name tpAniSirGlobal, 7526*5113495bSYour Name tDot11fIERSN *, 7527*5113495bSYour Name uint8_t *, 7528*5113495bSYour Name uint32_t, 7529*5113495bSYour Name uint32_t*); 7530*5113495bSYour Name 7531*5113495bSYour Name uint32_t dot11f_get_packed_iersn( 7532*5113495bSYour Name tpAniSirGlobal, 7533*5113495bSYour Name tDot11fIERSN *, 7534*5113495bSYour Name uint32_t*); 7535*5113495bSYour Name 7536*5113495bSYour Name #ifdef __cplusplus 7537*5113495bSYour Name }; /* End extern "C". */ 7538*5113495bSYour Name #endif /* C++ */ 7539*5113495bSYour Name 7540*5113495bSYour Name /* EID 65 (0x41) */ 7541*5113495bSYour Name typedef struct sDot11fIERSNIIE { 7542*5113495bSYour Name uint8_t present; 7543*5113495bSYour Name uint8_t rsni; 7544*5113495bSYour Name } tDot11fIERSNIIE; 7545*5113495bSYour Name 7546*5113495bSYour Name #define DOT11F_EID_RSNIIE (65) 7547*5113495bSYour Name 7548*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7549*5113495bSYour Name #define DOT11F_IE_RSNIIE_MIN_LEN (1) 7550*5113495bSYour Name 7551*5113495bSYour Name #define DOT11F_IE_RSNIIE_MAX_LEN (1) 7552*5113495bSYour Name 7553*5113495bSYour Name #ifdef __cplusplus 7554*5113495bSYour Name extern "C" { 7555*5113495bSYour Name #endif /* C++ */ 7556*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_rsniie( 7557*5113495bSYour Name tpAniSirGlobal, 7558*5113495bSYour Name uint8_t *, 7559*5113495bSYour Name uint8_t, 7560*5113495bSYour Name tDot11fIERSNIIE*, 7561*5113495bSYour Name bool); 7562*5113495bSYour Name 7563*5113495bSYour Name uint32_t dot11f_pack_ie_rsniie( 7564*5113495bSYour Name tpAniSirGlobal, 7565*5113495bSYour Name tDot11fIERSNIIE *, 7566*5113495bSYour Name uint8_t *, 7567*5113495bSYour Name uint32_t, 7568*5113495bSYour Name uint32_t*); 7569*5113495bSYour Name 7570*5113495bSYour Name uint32_t dot11f_get_packed_iersnIIE( 7571*5113495bSYour Name tpAniSirGlobal, 7572*5113495bSYour Name tDot11fIERSNIIE *, 7573*5113495bSYour Name uint32_t*); 7574*5113495bSYour Name 7575*5113495bSYour Name #ifdef __cplusplus 7576*5113495bSYour Name }; /* End extern "C". */ 7577*5113495bSYour Name #endif /* C++ */ 7578*5113495bSYour Name 7579*5113495bSYour Name /* EID 48 (0x30) */ 7580*5113495bSYour Name typedef struct sDot11fIERSNOpaque { 7581*5113495bSYour Name uint8_t present; 7582*5113495bSYour Name uint8_t num_data; 7583*5113495bSYour Name uint8_t data[253]; 7584*5113495bSYour Name } tDot11fIERSNOpaque; 7585*5113495bSYour Name 7586*5113495bSYour Name #define DOT11F_EID_RSNOPAQUE (48) 7587*5113495bSYour Name 7588*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7589*5113495bSYour Name #define DOT11F_IE_RSNOPAQUE_MIN_LEN (0) 7590*5113495bSYour Name 7591*5113495bSYour Name #define DOT11F_IE_RSNOPAQUE_MAX_LEN (253) 7592*5113495bSYour Name 7593*5113495bSYour Name #ifdef __cplusplus 7594*5113495bSYour Name extern "C" { 7595*5113495bSYour Name #endif /* C++ */ 7596*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_rsn_opaque( 7597*5113495bSYour Name tpAniSirGlobal, 7598*5113495bSYour Name uint8_t *, 7599*5113495bSYour Name uint8_t, 7600*5113495bSYour Name tDot11fIERSNOpaque*, 7601*5113495bSYour Name bool); 7602*5113495bSYour Name 7603*5113495bSYour Name uint32_t dot11f_pack_ie_rsn_opaque( 7604*5113495bSYour Name tpAniSirGlobal, 7605*5113495bSYour Name tDot11fIERSNOpaque *, 7606*5113495bSYour Name uint8_t *, 7607*5113495bSYour Name uint32_t, 7608*5113495bSYour Name uint32_t*); 7609*5113495bSYour Name 7610*5113495bSYour Name uint32_t dot11f_get_packed_iersnOpaque( 7611*5113495bSYour Name tpAniSirGlobal, 7612*5113495bSYour Name tDot11fIERSNOpaque *, 7613*5113495bSYour Name uint32_t*); 7614*5113495bSYour Name 7615*5113495bSYour Name #ifdef __cplusplus 7616*5113495bSYour Name }; /* End extern "C". */ 7617*5113495bSYour Name #endif /* C++ */ 7618*5113495bSYour Name 7619*5113495bSYour Name /* EID 36 (0x24) */ 7620*5113495bSYour Name typedef struct sDot11fIESuppChannels { 7621*5113495bSYour Name uint8_t present; 7622*5113495bSYour Name uint8_t num_bands; 7623*5113495bSYour Name uint8_t bands[48][2]; 7624*5113495bSYour Name } tDot11fIESuppChannels; 7625*5113495bSYour Name 7626*5113495bSYour Name #define DOT11F_EID_SUPPCHANNELS (36) 7627*5113495bSYour Name 7628*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7629*5113495bSYour Name #define DOT11F_IE_SUPPCHANNELS_MIN_LEN (0) 7630*5113495bSYour Name 7631*5113495bSYour Name #define DOT11F_IE_SUPPCHANNELS_MAX_LEN (96) 7632*5113495bSYour Name 7633*5113495bSYour Name #ifdef __cplusplus 7634*5113495bSYour Name extern "C" { 7635*5113495bSYour Name #endif /* C++ */ 7636*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_supp_channels( 7637*5113495bSYour Name tpAniSirGlobal, 7638*5113495bSYour Name uint8_t *, 7639*5113495bSYour Name uint8_t, 7640*5113495bSYour Name tDot11fIESuppChannels*, 7641*5113495bSYour Name bool); 7642*5113495bSYour Name 7643*5113495bSYour Name uint32_t dot11f_pack_ie_supp_channels( 7644*5113495bSYour Name tpAniSirGlobal, 7645*5113495bSYour Name tDot11fIESuppChannels *, 7646*5113495bSYour Name uint8_t *, 7647*5113495bSYour Name uint32_t, 7648*5113495bSYour Name uint32_t*); 7649*5113495bSYour Name 7650*5113495bSYour Name uint32_t dot11f_get_packed_ie_SuppChannels( 7651*5113495bSYour Name tpAniSirGlobal, 7652*5113495bSYour Name tDot11fIESuppChannels *, 7653*5113495bSYour Name uint32_t*); 7654*5113495bSYour Name 7655*5113495bSYour Name #ifdef __cplusplus 7656*5113495bSYour Name }; /* End extern "C". */ 7657*5113495bSYour Name #endif /* C++ */ 7658*5113495bSYour Name 7659*5113495bSYour Name /* EID 59 (0x3b) */ 7660*5113495bSYour Name typedef struct sDot11fIESuppOperatingClasses { 7661*5113495bSYour Name uint8_t present; 7662*5113495bSYour Name uint8_t num_classes; 7663*5113495bSYour Name uint8_t classes[32]; 7664*5113495bSYour Name } tDot11fIESuppOperatingClasses; 7665*5113495bSYour Name 7666*5113495bSYour Name #define DOT11F_EID_SUPPOPERATINGCLASSES (59) 7667*5113495bSYour Name 7668*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7669*5113495bSYour Name #define DOT11F_IE_SUPPOPERATINGCLASSES_MIN_LEN (1) 7670*5113495bSYour Name 7671*5113495bSYour Name #define DOT11F_IE_SUPPOPERATINGCLASSES_MAX_LEN (32) 7672*5113495bSYour Name 7673*5113495bSYour Name #ifdef __cplusplus 7674*5113495bSYour Name extern "C" { 7675*5113495bSYour Name #endif /* C++ */ 7676*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_supp_operating_classes( 7677*5113495bSYour Name tpAniSirGlobal, 7678*5113495bSYour Name uint8_t *, 7679*5113495bSYour Name uint8_t, 7680*5113495bSYour Name tDot11fIESuppOperatingClasses*, 7681*5113495bSYour Name bool); 7682*5113495bSYour Name 7683*5113495bSYour Name uint32_t dot11f_pack_ie_supp_operating_classes( 7684*5113495bSYour Name tpAniSirGlobal, 7685*5113495bSYour Name tDot11fIESuppOperatingClasses *, 7686*5113495bSYour Name uint8_t *, 7687*5113495bSYour Name uint32_t, 7688*5113495bSYour Name uint32_t*); 7689*5113495bSYour Name 7690*5113495bSYour Name uint32_t dot11f_get_packed_ie_SuppOperatingClasses( 7691*5113495bSYour Name tpAniSirGlobal, 7692*5113495bSYour Name tDot11fIESuppOperatingClasses *, 7693*5113495bSYour Name uint32_t*); 7694*5113495bSYour Name 7695*5113495bSYour Name #ifdef __cplusplus 7696*5113495bSYour Name }; /* End extern "C". */ 7697*5113495bSYour Name #endif /* C++ */ 7698*5113495bSYour Name 7699*5113495bSYour Name /* EID 1 (0x01) */ 7700*5113495bSYour Name typedef struct sDot11fIESuppRates { 7701*5113495bSYour Name uint8_t present; 7702*5113495bSYour Name uint8_t num_rates; 7703*5113495bSYour Name uint8_t rates[12]; 7704*5113495bSYour Name } tDot11fIESuppRates; 7705*5113495bSYour Name 7706*5113495bSYour Name #define DOT11F_EID_SUPPRATES (1) 7707*5113495bSYour Name 7708*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7709*5113495bSYour Name #define DOT11F_IE_SUPPRATES_MIN_LEN (0) 7710*5113495bSYour Name 7711*5113495bSYour Name #define DOT11F_IE_SUPPRATES_MAX_LEN (12) 7712*5113495bSYour Name 7713*5113495bSYour Name #define DOT11F_IS_BG_RATE(_x) (((_x) == 02) || \ 7714*5113495bSYour Name ((_x) == 04) || \ 7715*5113495bSYour Name ((_x) == 11) || \ 7716*5113495bSYour Name ((_x) == 22) || \ 7717*5113495bSYour Name ((_x) == 12) || \ 7718*5113495bSYour Name ((_x) == 18) || \ 7719*5113495bSYour Name ((_x) == 24) || \ 7720*5113495bSYour Name ((_x) == 36) || \ 7721*5113495bSYour Name ((_x) == 48) || \ 7722*5113495bSYour Name ((_x) == 72) || \ 7723*5113495bSYour Name ((_x) == 96) || \ 7724*5113495bSYour Name ((_x) == 108)) 7725*5113495bSYour Name 7726*5113495bSYour Name #ifdef __cplusplus 7727*5113495bSYour Name extern "C" { 7728*5113495bSYour Name #endif /* C++ */ 7729*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_supp_rates( 7730*5113495bSYour Name tpAniSirGlobal, 7731*5113495bSYour Name uint8_t *, 7732*5113495bSYour Name uint8_t, 7733*5113495bSYour Name tDot11fIESuppRates*, 7734*5113495bSYour Name bool); 7735*5113495bSYour Name 7736*5113495bSYour Name uint32_t dot11f_pack_ie_supp_rates( 7737*5113495bSYour Name tpAniSirGlobal, 7738*5113495bSYour Name tDot11fIESuppRates *, 7739*5113495bSYour Name uint8_t *, 7740*5113495bSYour Name uint32_t, 7741*5113495bSYour Name uint32_t*); 7742*5113495bSYour Name 7743*5113495bSYour Name uint32_t dot11f_get_packed_ie_SuppRates( 7744*5113495bSYour Name tpAniSirGlobal, 7745*5113495bSYour Name tDot11fIESuppRates *, 7746*5113495bSYour Name uint32_t*); 7747*5113495bSYour Name 7748*5113495bSYour Name #ifdef __cplusplus 7749*5113495bSYour Name }; /* End extern "C". */ 7750*5113495bSYour Name #endif /* C++ */ 7751*5113495bSYour Name 7752*5113495bSYour Name /* EID 5 (0x05) */ 7753*5113495bSYour Name typedef struct sDot11fIETIM { 7754*5113495bSYour Name uint8_t present; 7755*5113495bSYour Name uint8_t dtim_count; 7756*5113495bSYour Name uint8_t dtim_period; 7757*5113495bSYour Name uint8_t bmpctl; 7758*5113495bSYour Name uint8_t num_vbmp; 7759*5113495bSYour Name uint8_t vbmp[251]; 7760*5113495bSYour Name } tDot11fIETIM; 7761*5113495bSYour Name 7762*5113495bSYour Name #define DOT11F_EID_TIM (5) 7763*5113495bSYour Name 7764*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7765*5113495bSYour Name #define DOT11F_IE_TIM_MIN_LEN (4) 7766*5113495bSYour Name 7767*5113495bSYour Name #define DOT11F_IE_TIM_MAX_LEN (254) 7768*5113495bSYour Name 7769*5113495bSYour Name #ifdef __cplusplus 7770*5113495bSYour Name extern "C" { 7771*5113495bSYour Name #endif /* C++ */ 7772*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_tim( 7773*5113495bSYour Name tpAniSirGlobal, 7774*5113495bSYour Name uint8_t *, 7775*5113495bSYour Name uint8_t, 7776*5113495bSYour Name tDot11fIETIM*, 7777*5113495bSYour Name bool); 7778*5113495bSYour Name 7779*5113495bSYour Name uint32_t dot11f_pack_ie_tim( 7780*5113495bSYour Name tpAniSirGlobal, 7781*5113495bSYour Name tDot11fIETIM *, 7782*5113495bSYour Name uint8_t *, 7783*5113495bSYour Name uint32_t, 7784*5113495bSYour Name uint32_t*); 7785*5113495bSYour Name 7786*5113495bSYour Name uint32_t dot11f_get_packed_ie_TIM( 7787*5113495bSYour Name tpAniSirGlobal, 7788*5113495bSYour Name tDot11fIETIM *, 7789*5113495bSYour Name uint32_t*); 7790*5113495bSYour Name 7791*5113495bSYour Name #ifdef __cplusplus 7792*5113495bSYour Name }; /* End extern "C". */ 7793*5113495bSYour Name #endif /* C++ */ 7794*5113495bSYour Name 7795*5113495bSYour Name /* EID 35 (0x23) */ 7796*5113495bSYour Name typedef struct sDot11fIETPCReport { 7797*5113495bSYour Name uint8_t present; 7798*5113495bSYour Name uint8_t tx_power; 7799*5113495bSYour Name uint8_t link_margin; 7800*5113495bSYour Name } tDot11fIETPCReport; 7801*5113495bSYour Name 7802*5113495bSYour Name #define DOT11F_EID_TPCREPORT (35) 7803*5113495bSYour Name 7804*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7805*5113495bSYour Name #define DOT11F_IE_TPCREPORT_MIN_LEN (2) 7806*5113495bSYour Name 7807*5113495bSYour Name #define DOT11F_IE_TPCREPORT_MAX_LEN (2) 7808*5113495bSYour Name 7809*5113495bSYour Name #ifdef __cplusplus 7810*5113495bSYour Name extern "C" { 7811*5113495bSYour Name #endif /* C++ */ 7812*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_tpc_report( 7813*5113495bSYour Name tpAniSirGlobal, 7814*5113495bSYour Name uint8_t *, 7815*5113495bSYour Name uint8_t, 7816*5113495bSYour Name tDot11fIETPCReport*, 7817*5113495bSYour Name bool); 7818*5113495bSYour Name 7819*5113495bSYour Name uint32_t dot11f_pack_ie_tpc_report( 7820*5113495bSYour Name tpAniSirGlobal, 7821*5113495bSYour Name tDot11fIETPCReport *, 7822*5113495bSYour Name uint8_t *, 7823*5113495bSYour Name uint32_t, 7824*5113495bSYour Name uint32_t*); 7825*5113495bSYour Name 7826*5113495bSYour Name uint32_t dot11f_get_packed_ie_TPCReport( 7827*5113495bSYour Name tpAniSirGlobal, 7828*5113495bSYour Name tDot11fIETPCReport *, 7829*5113495bSYour Name uint32_t*); 7830*5113495bSYour Name 7831*5113495bSYour Name #ifdef __cplusplus 7832*5113495bSYour Name }; /* End extern "C". */ 7833*5113495bSYour Name #endif /* C++ */ 7834*5113495bSYour Name 7835*5113495bSYour Name /* EID 34 (0x22) */ 7836*5113495bSYour Name typedef struct sDot11fIETPCRequest { 7837*5113495bSYour Name uint8_t present; 7838*5113495bSYour Name } tDot11fIETPCRequest; 7839*5113495bSYour Name 7840*5113495bSYour Name #define DOT11F_EID_TPCREQUEST (34) 7841*5113495bSYour Name 7842*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7843*5113495bSYour Name #define DOT11F_IE_TPCREQUEST_MIN_LEN (0) 7844*5113495bSYour Name 7845*5113495bSYour Name #define DOT11F_IE_TPCREQUEST_MAX_LEN (0) 7846*5113495bSYour Name 7847*5113495bSYour Name #ifdef __cplusplus 7848*5113495bSYour Name extern "C" { 7849*5113495bSYour Name #endif /* C++ */ 7850*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_tpc_request( 7851*5113495bSYour Name tpAniSirGlobal, 7852*5113495bSYour Name uint8_t *, 7853*5113495bSYour Name uint8_t, 7854*5113495bSYour Name tDot11fIETPCRequest*, 7855*5113495bSYour Name bool); 7856*5113495bSYour Name 7857*5113495bSYour Name uint32_t dot11f_pack_ie_tpc_request( 7858*5113495bSYour Name tpAniSirGlobal, 7859*5113495bSYour Name tDot11fIETPCRequest *, 7860*5113495bSYour Name uint8_t *, 7861*5113495bSYour Name uint32_t, 7862*5113495bSYour Name uint32_t*); 7863*5113495bSYour Name 7864*5113495bSYour Name uint32_t dot11f_get_packed_ie_TPCRequest( 7865*5113495bSYour Name tpAniSirGlobal, 7866*5113495bSYour Name tDot11fIETPCRequest *, 7867*5113495bSYour Name uint32_t*); 7868*5113495bSYour Name 7869*5113495bSYour Name #ifdef __cplusplus 7870*5113495bSYour Name }; /* End extern "C". */ 7871*5113495bSYour Name #endif /* C++ */ 7872*5113495bSYour Name 7873*5113495bSYour Name /* EID 69 (0x45) */ 7874*5113495bSYour Name typedef struct sDot11fIETimeAdvertisement { 7875*5113495bSYour Name uint8_t present; 7876*5113495bSYour Name uint8_t timing_capabilities; 7877*5113495bSYour Name uint8_t time_value[10]; 7878*5113495bSYour Name uint8_t time_error[5]; 7879*5113495bSYour Name } tDot11fIETimeAdvertisement; 7880*5113495bSYour Name 7881*5113495bSYour Name #define DOT11F_EID_TIMEADVERTISEMENT (69) 7882*5113495bSYour Name 7883*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7884*5113495bSYour Name #define DOT11F_IE_TIMEADVERTISEMENT_MIN_LEN (16) 7885*5113495bSYour Name 7886*5113495bSYour Name #define DOT11F_IE_TIMEADVERTISEMENT_MAX_LEN (16) 7887*5113495bSYour Name 7888*5113495bSYour Name #ifdef __cplusplus 7889*5113495bSYour Name extern "C" { 7890*5113495bSYour Name #endif /* C++ */ 7891*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_time_advertisement( 7892*5113495bSYour Name tpAniSirGlobal, 7893*5113495bSYour Name uint8_t *, 7894*5113495bSYour Name uint8_t, 7895*5113495bSYour Name tDot11fIETimeAdvertisement*, 7896*5113495bSYour Name bool); 7897*5113495bSYour Name 7898*5113495bSYour Name uint32_t dot11f_pack_ie_time_advertisement( 7899*5113495bSYour Name tpAniSirGlobal, 7900*5113495bSYour Name tDot11fIETimeAdvertisement *, 7901*5113495bSYour Name uint8_t *, 7902*5113495bSYour Name uint32_t, 7903*5113495bSYour Name uint32_t*); 7904*5113495bSYour Name 7905*5113495bSYour Name uint32_t dot11f_get_packed_ie_time_advertisement( 7906*5113495bSYour Name tpAniSirGlobal, 7907*5113495bSYour Name tDot11fIETimeAdvertisement *, 7908*5113495bSYour Name uint32_t*); 7909*5113495bSYour Name 7910*5113495bSYour Name #ifdef __cplusplus 7911*5113495bSYour Name }; /* End extern "C". */ 7912*5113495bSYour Name #endif /* C++ */ 7913*5113495bSYour Name 7914*5113495bSYour Name /* EID 56 (0x38) */ 7915*5113495bSYour Name typedef struct sDot11fIETimeoutInterval { 7916*5113495bSYour Name uint8_t present; 7917*5113495bSYour Name uint8_t timeoutType; 7918*5113495bSYour Name uint32_t timeoutValue; 7919*5113495bSYour Name } tDot11fIETimeoutInterval; 7920*5113495bSYour Name 7921*5113495bSYour Name #define DOT11F_EID_TIMEOUTINTERVAL (56) 7922*5113495bSYour Name 7923*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7924*5113495bSYour Name #define DOT11F_IE_TIMEOUTINTERVAL_MIN_LEN (5) 7925*5113495bSYour Name 7926*5113495bSYour Name #define DOT11F_IE_TIMEOUTINTERVAL_MAX_LEN (5) 7927*5113495bSYour Name 7928*5113495bSYour Name #ifdef __cplusplus 7929*5113495bSYour Name extern "C" { 7930*5113495bSYour Name #endif /* C++ */ 7931*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_timeout_interval( 7932*5113495bSYour Name tpAniSirGlobal, 7933*5113495bSYour Name uint8_t *, 7934*5113495bSYour Name uint8_t, 7935*5113495bSYour Name tDot11fIETimeoutInterval*, 7936*5113495bSYour Name bool); 7937*5113495bSYour Name 7938*5113495bSYour Name uint32_t dot11f_pack_ie_timeout_interval( 7939*5113495bSYour Name tpAniSirGlobal, 7940*5113495bSYour Name tDot11fIETimeoutInterval *, 7941*5113495bSYour Name uint8_t *, 7942*5113495bSYour Name uint32_t, 7943*5113495bSYour Name uint32_t*); 7944*5113495bSYour Name 7945*5113495bSYour Name uint32_t dot11f_get_packed_ie_TimeoutInterval( 7946*5113495bSYour Name tpAniSirGlobal, 7947*5113495bSYour Name tDot11fIETimeoutInterval *, 7948*5113495bSYour Name uint32_t*); 7949*5113495bSYour Name 7950*5113495bSYour Name #ifdef __cplusplus 7951*5113495bSYour Name }; /* End extern "C". */ 7952*5113495bSYour Name #endif /* C++ */ 7953*5113495bSYour Name 7954*5113495bSYour Name /* EID 193 (0xc1) */ 7955*5113495bSYour Name typedef struct sDot11fIEVHTExtBssLoad { 7956*5113495bSYour Name uint8_t present; 7957*5113495bSYour Name uint8_t muMIMOCapStaCount; 7958*5113495bSYour Name uint8_t ssUnderUtil; 7959*5113495bSYour Name uint8_t FortyMHzUtil; 7960*5113495bSYour Name uint8_t EightyMHzUtil; 7961*5113495bSYour Name uint8_t OneSixtyMHzUtil; 7962*5113495bSYour Name } tDot11fIEVHTExtBssLoad; 7963*5113495bSYour Name 7964*5113495bSYour Name #define DOT11F_EID_VHTEXTBSSLOAD (193) 7965*5113495bSYour Name 7966*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 7967*5113495bSYour Name #define DOT11F_IE_VHTEXTBSSLOAD_MIN_LEN (5) 7968*5113495bSYour Name 7969*5113495bSYour Name #define DOT11F_IE_VHTEXTBSSLOAD_MAX_LEN (5) 7970*5113495bSYour Name 7971*5113495bSYour Name #ifdef __cplusplus 7972*5113495bSYour Name extern "C" { 7973*5113495bSYour Name #endif /* C++ */ 7974*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_vht_ext_bss_load( 7975*5113495bSYour Name tpAniSirGlobal, 7976*5113495bSYour Name uint8_t *, 7977*5113495bSYour Name uint8_t, 7978*5113495bSYour Name tDot11fIEVHTExtBssLoad*, 7979*5113495bSYour Name bool); 7980*5113495bSYour Name 7981*5113495bSYour Name uint32_t dot11f_pack_ie_vht_ext_bss_load( 7982*5113495bSYour Name tpAniSirGlobal, 7983*5113495bSYour Name tDot11fIEVHTExtBssLoad *, 7984*5113495bSYour Name uint8_t *, 7985*5113495bSYour Name uint32_t, 7986*5113495bSYour Name uint32_t*); 7987*5113495bSYour Name 7988*5113495bSYour Name uint32_t dot11f_get_packed_ie_VHTExtBssLoad( 7989*5113495bSYour Name tpAniSirGlobal, 7990*5113495bSYour Name tDot11fIEVHTExtBssLoad *, 7991*5113495bSYour Name uint32_t*); 7992*5113495bSYour Name 7993*5113495bSYour Name #ifdef __cplusplus 7994*5113495bSYour Name }; /* End extern "C". */ 7995*5113495bSYour Name #endif /* C++ */ 7996*5113495bSYour Name 7997*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x10, 0x18} */ 7998*5113495bSYour Name typedef struct sDot11fIEVendor1IE { 7999*5113495bSYour Name uint8_t present; 8000*5113495bSYour Name } tDot11fIEVendor1IE; 8001*5113495bSYour Name 8002*5113495bSYour Name #define DOT11F_EID_VENDOR1IE (221) 8003*5113495bSYour Name 8004*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8005*5113495bSYour Name #define DOT11F_IE_VENDOR1IE_MIN_LEN (3) 8006*5113495bSYour Name 8007*5113495bSYour Name #define DOT11F_IE_VENDOR1IE_MAX_LEN (3) 8008*5113495bSYour Name 8009*5113495bSYour Name #ifdef __cplusplus 8010*5113495bSYour Name extern "C" { 8011*5113495bSYour Name #endif /* C++ */ 8012*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_vendor1_ie( 8013*5113495bSYour Name tpAniSirGlobal, 8014*5113495bSYour Name uint8_t *, 8015*5113495bSYour Name uint8_t, 8016*5113495bSYour Name tDot11fIEVendor1IE*, 8017*5113495bSYour Name bool); 8018*5113495bSYour Name 8019*5113495bSYour Name uint32_t dot11f_pack_ie_vendor1_ie( 8020*5113495bSYour Name tpAniSirGlobal, 8021*5113495bSYour Name tDot11fIEVendor1IE *, 8022*5113495bSYour Name uint8_t *, 8023*5113495bSYour Name uint32_t, 8024*5113495bSYour Name uint32_t*); 8025*5113495bSYour Name 8026*5113495bSYour Name uint32_t dot11f_get_packed_ie_Vendor1IE( 8027*5113495bSYour Name tpAniSirGlobal, 8028*5113495bSYour Name tDot11fIEVendor1IE *, 8029*5113495bSYour Name uint32_t*); 8030*5113495bSYour Name 8031*5113495bSYour Name #ifdef __cplusplus 8032*5113495bSYour Name }; /* End extern "C". */ 8033*5113495bSYour Name #endif /* C++ */ 8034*5113495bSYour Name 8035*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x16, 0x32} */ 8036*5113495bSYour Name typedef struct sDot11fIEVendor3IE { 8037*5113495bSYour Name uint8_t present; 8038*5113495bSYour Name } tDot11fIEVendor3IE; 8039*5113495bSYour Name 8040*5113495bSYour Name #define DOT11F_EID_VENDOR3IE (221) 8041*5113495bSYour Name 8042*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8043*5113495bSYour Name #define DOT11F_IE_VENDOR3IE_MIN_LEN (3) 8044*5113495bSYour Name 8045*5113495bSYour Name #define DOT11F_IE_VENDOR3IE_MAX_LEN (3) 8046*5113495bSYour Name 8047*5113495bSYour Name #ifdef __cplusplus 8048*5113495bSYour Name extern "C" { 8049*5113495bSYour Name #endif /* C++ */ 8050*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_vendor3_ie( 8051*5113495bSYour Name tpAniSirGlobal, 8052*5113495bSYour Name uint8_t *, 8053*5113495bSYour Name uint8_t, 8054*5113495bSYour Name tDot11fIEVendor3IE*, 8055*5113495bSYour Name bool); 8056*5113495bSYour Name 8057*5113495bSYour Name uint32_t dot11f_pack_ie_vendor3_ie( 8058*5113495bSYour Name tpAniSirGlobal, 8059*5113495bSYour Name tDot11fIEVendor3IE *, 8060*5113495bSYour Name uint8_t *, 8061*5113495bSYour Name uint32_t, 8062*5113495bSYour Name uint32_t*); 8063*5113495bSYour Name 8064*5113495bSYour Name uint32_t dot11f_get_packed_ie_Vendor3IE( 8065*5113495bSYour Name tpAniSirGlobal, 8066*5113495bSYour Name tDot11fIEVendor3IE *, 8067*5113495bSYour Name uint32_t*); 8068*5113495bSYour Name 8069*5113495bSYour Name #ifdef __cplusplus 8070*5113495bSYour Name }; /* End extern "C". */ 8071*5113495bSYour Name #endif /* C++ */ 8072*5113495bSYour Name 8073*5113495bSYour Name /* EID 68 (0x44) */ 8074*5113495bSYour Name typedef struct sDot11fIEWAPI { 8075*5113495bSYour Name uint8_t present; 8076*5113495bSYour Name uint16_t version /* Must be 1! */; 8077*5113495bSYour Name uint16_t akm_suite_count; 8078*5113495bSYour Name uint8_t akm_suites[4][4]; 8079*5113495bSYour Name uint16_t unicast_cipher_suite_count; 8080*5113495bSYour Name uint8_t unicast_cipher_suites[4][4]; 8081*5113495bSYour Name uint8_t multicast_cipher_suite[4]; 8082*5113495bSYour Name uint16_t preauth:1; 8083*5113495bSYour Name uint16_t reserved:15; 8084*5113495bSYour Name uint16_t bkid_count; 8085*5113495bSYour Name uint8_t bkid[4][16]; 8086*5113495bSYour Name } tDot11fIEWAPI; 8087*5113495bSYour Name 8088*5113495bSYour Name #define DOT11F_EID_WAPI (68) 8089*5113495bSYour Name 8090*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8091*5113495bSYour Name #define DOT11F_IE_WAPI_MIN_LEN (12) 8092*5113495bSYour Name 8093*5113495bSYour Name #define DOT11F_IE_WAPI_MAX_LEN (110) 8094*5113495bSYour Name 8095*5113495bSYour Name #ifdef __cplusplus 8096*5113495bSYour Name extern "C" { 8097*5113495bSYour Name #endif /* C++ */ 8098*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wapi( 8099*5113495bSYour Name tpAniSirGlobal, 8100*5113495bSYour Name uint8_t *, 8101*5113495bSYour Name uint8_t, 8102*5113495bSYour Name tDot11fIEWAPI*, 8103*5113495bSYour Name bool); 8104*5113495bSYour Name 8105*5113495bSYour Name uint32_t dot11f_pack_ie_wapi( 8106*5113495bSYour Name tpAniSirGlobal, 8107*5113495bSYour Name tDot11fIEWAPI *, 8108*5113495bSYour Name uint8_t *, 8109*5113495bSYour Name uint32_t, 8110*5113495bSYour Name uint32_t*); 8111*5113495bSYour Name 8112*5113495bSYour Name uint32_t dot11f_get_packed_iewapi( 8113*5113495bSYour Name tpAniSirGlobal, 8114*5113495bSYour Name tDot11fIEWAPI *, 8115*5113495bSYour Name uint32_t*); 8116*5113495bSYour Name 8117*5113495bSYour Name #ifdef __cplusplus 8118*5113495bSYour Name }; /* End extern "C". */ 8119*5113495bSYour Name #endif /* C++ */ 8120*5113495bSYour Name 8121*5113495bSYour Name /* EID 68 (0x44) */ 8122*5113495bSYour Name typedef struct sDot11fIEWAPIOpaque { 8123*5113495bSYour Name uint8_t present; 8124*5113495bSYour Name uint8_t num_data; 8125*5113495bSYour Name uint8_t data[253]; 8126*5113495bSYour Name } tDot11fIEWAPIOpaque; 8127*5113495bSYour Name 8128*5113495bSYour Name #define DOT11F_EID_WAPIOPAQUE (68) 8129*5113495bSYour Name 8130*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8131*5113495bSYour Name #define DOT11F_IE_WAPIOPAQUE_MIN_LEN (6) 8132*5113495bSYour Name 8133*5113495bSYour Name #define DOT11F_IE_WAPIOPAQUE_MAX_LEN (253) 8134*5113495bSYour Name 8135*5113495bSYour Name #ifdef __cplusplus 8136*5113495bSYour Name extern "C" { 8137*5113495bSYour Name #endif /* C++ */ 8138*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wapi_opaque( 8139*5113495bSYour Name tpAniSirGlobal, 8140*5113495bSYour Name uint8_t *, 8141*5113495bSYour Name uint8_t, 8142*5113495bSYour Name tDot11fIEWAPIOpaque*, 8143*5113495bSYour Name bool); 8144*5113495bSYour Name 8145*5113495bSYour Name uint32_t dot11f_pack_ie_wapi_opaque( 8146*5113495bSYour Name tpAniSirGlobal, 8147*5113495bSYour Name tDot11fIEWAPIOpaque *, 8148*5113495bSYour Name uint8_t *, 8149*5113495bSYour Name uint32_t, 8150*5113495bSYour Name uint32_t*); 8151*5113495bSYour Name 8152*5113495bSYour Name uint32_t dot11f_get_packed_iewapiOpaque( 8153*5113495bSYour Name tpAniSirGlobal, 8154*5113495bSYour Name tDot11fIEWAPIOpaque *, 8155*5113495bSYour Name uint32_t*); 8156*5113495bSYour Name 8157*5113495bSYour Name #ifdef __cplusplus 8158*5113495bSYour Name }; /* End extern "C". */ 8159*5113495bSYour Name #endif /* C++ */ 8160*5113495bSYour Name 8161*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x08, 0x00} */ 8162*5113495bSYour Name typedef struct sDot11fIEWFATPC { 8163*5113495bSYour Name uint8_t present; 8164*5113495bSYour Name uint8_t txPower; 8165*5113495bSYour Name uint8_t linkMargin; 8166*5113495bSYour Name } tDot11fIEWFATPC; 8167*5113495bSYour Name 8168*5113495bSYour Name #define DOT11F_EID_WFATPC (221) 8169*5113495bSYour Name 8170*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8171*5113495bSYour Name #define DOT11F_IE_WFATPC_MIN_LEN (7) 8172*5113495bSYour Name 8173*5113495bSYour Name #define DOT11F_IE_WFATPC_MAX_LEN (7) 8174*5113495bSYour Name 8175*5113495bSYour Name #ifdef __cplusplus 8176*5113495bSYour Name extern "C" { 8177*5113495bSYour Name #endif /* C++ */ 8178*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wfatpc( 8179*5113495bSYour Name tpAniSirGlobal, 8180*5113495bSYour Name uint8_t *, 8181*5113495bSYour Name uint8_t, 8182*5113495bSYour Name tDot11fIEWFATPC*, 8183*5113495bSYour Name bool); 8184*5113495bSYour Name 8185*5113495bSYour Name uint32_t dot11f_pack_ie_wfatpc( 8186*5113495bSYour Name tpAniSirGlobal, 8187*5113495bSYour Name tDot11fIEWFATPC *, 8188*5113495bSYour Name uint8_t *, 8189*5113495bSYour Name uint32_t, 8190*5113495bSYour Name uint32_t*); 8191*5113495bSYour Name 8192*5113495bSYour Name uint32_t dot11f_get_packed_ie_WFATPC( 8193*5113495bSYour Name tpAniSirGlobal, 8194*5113495bSYour Name tDot11fIEWFATPC *, 8195*5113495bSYour Name uint32_t*); 8196*5113495bSYour Name 8197*5113495bSYour Name #ifdef __cplusplus 8198*5113495bSYour Name }; /* End extern "C". */ 8199*5113495bSYour Name #endif /* C++ */ 8200*5113495bSYour Name 8201*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x0a} */ 8202*5113495bSYour Name typedef struct sDot11fIEWFDIEOpaque { 8203*5113495bSYour Name uint8_t present; 8204*5113495bSYour Name uint8_t num_data; 8205*5113495bSYour Name uint8_t data[249]; 8206*5113495bSYour Name } tDot11fIEWFDIEOpaque; 8207*5113495bSYour Name 8208*5113495bSYour Name #define DOT11F_EID_WFDIEOPAQUE (221) 8209*5113495bSYour Name 8210*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8211*5113495bSYour Name #define DOT11F_IE_WFDIEOPAQUE_MIN_LEN (6) 8212*5113495bSYour Name 8213*5113495bSYour Name #define DOT11F_IE_WFDIEOPAQUE_MAX_LEN (253) 8214*5113495bSYour Name 8215*5113495bSYour Name #ifdef __cplusplus 8216*5113495bSYour Name extern "C" { 8217*5113495bSYour Name #endif /* C++ */ 8218*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wfdie_opaque( 8219*5113495bSYour Name tpAniSirGlobal, 8220*5113495bSYour Name uint8_t *, 8221*5113495bSYour Name uint8_t, 8222*5113495bSYour Name tDot11fIEWFDIEOpaque*, 8223*5113495bSYour Name bool); 8224*5113495bSYour Name 8225*5113495bSYour Name uint32_t dot11f_pack_ie_wfdie_opaque( 8226*5113495bSYour Name tpAniSirGlobal, 8227*5113495bSYour Name tDot11fIEWFDIEOpaque *, 8228*5113495bSYour Name uint8_t *, 8229*5113495bSYour Name uint32_t, 8230*5113495bSYour Name uint32_t*); 8231*5113495bSYour Name 8232*5113495bSYour Name uint32_t dot11f_get_packed_ie_WFDIEOpaque( 8233*5113495bSYour Name tpAniSirGlobal, 8234*5113495bSYour Name tDot11fIEWFDIEOpaque *, 8235*5113495bSYour Name uint32_t*); 8236*5113495bSYour Name 8237*5113495bSYour Name #ifdef __cplusplus 8238*5113495bSYour Name }; /* End extern "C". */ 8239*5113495bSYour Name #endif /* C++ */ 8240*5113495bSYour Name 8241*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x05} */ 8242*5113495bSYour Name typedef struct sDot11fIEWMMCaps { 8243*5113495bSYour Name uint8_t present; 8244*5113495bSYour Name uint8_t version /* Must be 1! */; 8245*5113495bSYour Name uint8_t reserved:4; 8246*5113495bSYour Name uint8_t qack:1; 8247*5113495bSYour Name uint8_t queue_request:1; 8248*5113495bSYour Name uint8_t txop_request:1; 8249*5113495bSYour Name uint8_t more_ack:1; 8250*5113495bSYour Name } tDot11fIEWMMCaps; 8251*5113495bSYour Name 8252*5113495bSYour Name #define DOT11F_EID_WMMCAPS (221) 8253*5113495bSYour Name 8254*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8255*5113495bSYour Name #define DOT11F_IE_WMMCAPS_MIN_LEN (7) 8256*5113495bSYour Name 8257*5113495bSYour Name #define DOT11F_IE_WMMCAPS_MAX_LEN (7) 8258*5113495bSYour Name 8259*5113495bSYour Name #ifdef __cplusplus 8260*5113495bSYour Name extern "C" { 8261*5113495bSYour Name #endif /* C++ */ 8262*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wmm_caps( 8263*5113495bSYour Name tpAniSirGlobal, 8264*5113495bSYour Name uint8_t *, 8265*5113495bSYour Name uint8_t, 8266*5113495bSYour Name tDot11fIEWMMCaps*, 8267*5113495bSYour Name bool); 8268*5113495bSYour Name 8269*5113495bSYour Name uint32_t dot11f_pack_ie_wmm_caps( 8270*5113495bSYour Name tpAniSirGlobal, 8271*5113495bSYour Name tDot11fIEWMMCaps *, 8272*5113495bSYour Name uint8_t *, 8273*5113495bSYour Name uint32_t, 8274*5113495bSYour Name uint32_t*); 8275*5113495bSYour Name 8276*5113495bSYour Name uint32_t dot11f_get_packed_ie_WMMCaps( 8277*5113495bSYour Name tpAniSirGlobal, 8278*5113495bSYour Name tDot11fIEWMMCaps *, 8279*5113495bSYour Name uint32_t*); 8280*5113495bSYour Name 8281*5113495bSYour Name #ifdef __cplusplus 8282*5113495bSYour Name }; /* End extern "C". */ 8283*5113495bSYour Name #endif /* C++ */ 8284*5113495bSYour Name 8285*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x00} */ 8286*5113495bSYour Name typedef struct sDot11fIEWMMInfoAp { 8287*5113495bSYour Name uint8_t present; 8288*5113495bSYour Name uint8_t version; 8289*5113495bSYour Name uint8_t param_set_count:4; 8290*5113495bSYour Name uint8_t reserved:3; 8291*5113495bSYour Name uint8_t uapsd:1; 8292*5113495bSYour Name } tDot11fIEWMMInfoAp; 8293*5113495bSYour Name 8294*5113495bSYour Name #define DOT11F_EID_WMMINFOAP (221) 8295*5113495bSYour Name 8296*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8297*5113495bSYour Name #define DOT11F_IE_WMMINFOAP_MIN_LEN (7) 8298*5113495bSYour Name 8299*5113495bSYour Name #define DOT11F_IE_WMMINFOAP_MAX_LEN (7) 8300*5113495bSYour Name 8301*5113495bSYour Name #ifdef __cplusplus 8302*5113495bSYour Name extern "C" { 8303*5113495bSYour Name #endif /* C++ */ 8304*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wmm_info_ap( 8305*5113495bSYour Name tpAniSirGlobal, 8306*5113495bSYour Name uint8_t *, 8307*5113495bSYour Name uint8_t, 8308*5113495bSYour Name tDot11fIEWMMInfoAp*, 8309*5113495bSYour Name bool); 8310*5113495bSYour Name 8311*5113495bSYour Name uint32_t dot11f_pack_ie_wmm_info_ap( 8312*5113495bSYour Name tpAniSirGlobal, 8313*5113495bSYour Name tDot11fIEWMMInfoAp *, 8314*5113495bSYour Name uint8_t *, 8315*5113495bSYour Name uint32_t, 8316*5113495bSYour Name uint32_t*); 8317*5113495bSYour Name 8318*5113495bSYour Name uint32_t dot11f_get_packed_ie_WMMInfoAp( 8319*5113495bSYour Name tpAniSirGlobal, 8320*5113495bSYour Name tDot11fIEWMMInfoAp *, 8321*5113495bSYour Name uint32_t*); 8322*5113495bSYour Name 8323*5113495bSYour Name #ifdef __cplusplus 8324*5113495bSYour Name }; /* End extern "C". */ 8325*5113495bSYour Name #endif /* C++ */ 8326*5113495bSYour Name 8327*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x00} */ 8328*5113495bSYour Name typedef struct sDot11fIEWMMInfoStation { 8329*5113495bSYour Name uint8_t present; 8330*5113495bSYour Name uint8_t version; 8331*5113495bSYour Name uint8_t acvo_uapsd:1; 8332*5113495bSYour Name uint8_t acvi_uapsd:1; 8333*5113495bSYour Name uint8_t acbk_uapsd:1; 8334*5113495bSYour Name uint8_t acbe_uapsd:1; 8335*5113495bSYour Name uint8_t reserved1:1; 8336*5113495bSYour Name uint8_t max_sp_length:2; 8337*5113495bSYour Name uint8_t reserved2:1; 8338*5113495bSYour Name } tDot11fIEWMMInfoStation; 8339*5113495bSYour Name 8340*5113495bSYour Name #define DOT11F_EID_WMMINFOSTATION (221) 8341*5113495bSYour Name 8342*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8343*5113495bSYour Name #define DOT11F_IE_WMMINFOSTATION_MIN_LEN (7) 8344*5113495bSYour Name 8345*5113495bSYour Name #define DOT11F_IE_WMMINFOSTATION_MAX_LEN (7) 8346*5113495bSYour Name 8347*5113495bSYour Name #ifdef __cplusplus 8348*5113495bSYour Name extern "C" { 8349*5113495bSYour Name #endif /* C++ */ 8350*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wmm_info_station( 8351*5113495bSYour Name tpAniSirGlobal, 8352*5113495bSYour Name uint8_t *, 8353*5113495bSYour Name uint8_t, 8354*5113495bSYour Name tDot11fIEWMMInfoStation*, 8355*5113495bSYour Name bool); 8356*5113495bSYour Name 8357*5113495bSYour Name uint32_t dot11f_pack_ie_wmm_info_station( 8358*5113495bSYour Name tpAniSirGlobal, 8359*5113495bSYour Name tDot11fIEWMMInfoStation *, 8360*5113495bSYour Name uint8_t *, 8361*5113495bSYour Name uint32_t, 8362*5113495bSYour Name uint32_t*); 8363*5113495bSYour Name 8364*5113495bSYour Name uint32_t dot11f_get_packed_ie_WMMInfoStation( 8365*5113495bSYour Name tpAniSirGlobal, 8366*5113495bSYour Name tDot11fIEWMMInfoStation *, 8367*5113495bSYour Name uint32_t*); 8368*5113495bSYour Name 8369*5113495bSYour Name #ifdef __cplusplus 8370*5113495bSYour Name }; /* End extern "C". */ 8371*5113495bSYour Name #endif /* C++ */ 8372*5113495bSYour Name 8373*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x02, 0x01} */ 8374*5113495bSYour Name typedef struct sDot11fIEWMMParams { 8375*5113495bSYour Name uint8_t present; 8376*5113495bSYour Name uint8_t version /* Must be 1! */; 8377*5113495bSYour Name uint8_t qosInfo; 8378*5113495bSYour Name uint8_t reserved2; 8379*5113495bSYour Name uint8_t acbe_aifsn:4; 8380*5113495bSYour Name uint8_t acbe_acm:1; 8381*5113495bSYour Name uint8_t acbe_aci:2; 8382*5113495bSYour Name uint8_t unused1:1; 8383*5113495bSYour Name uint8_t acbe_acwmin:4; 8384*5113495bSYour Name uint8_t acbe_acwmax:4; 8385*5113495bSYour Name uint16_t acbe_txoplimit; 8386*5113495bSYour Name uint8_t acbk_aifsn:4; 8387*5113495bSYour Name uint8_t acbk_acm:1; 8388*5113495bSYour Name uint8_t acbk_aci:2; 8389*5113495bSYour Name uint8_t unused2:1; 8390*5113495bSYour Name uint8_t acbk_acwmin:4; 8391*5113495bSYour Name uint8_t acbk_acwmax:4; 8392*5113495bSYour Name uint16_t acbk_txoplimit; 8393*5113495bSYour Name uint8_t acvi_aifsn:4; 8394*5113495bSYour Name uint8_t acvi_acm:1; 8395*5113495bSYour Name uint8_t acvi_aci:2; 8396*5113495bSYour Name uint8_t unused3:1; 8397*5113495bSYour Name uint8_t acvi_acwmin:4; 8398*5113495bSYour Name uint8_t acvi_acwmax:4; 8399*5113495bSYour Name uint16_t acvi_txoplimit; 8400*5113495bSYour Name uint8_t acvo_aifsn:4; 8401*5113495bSYour Name uint8_t acvo_acm:1; 8402*5113495bSYour Name uint8_t acvo_aci:2; 8403*5113495bSYour Name uint8_t unused4:1; 8404*5113495bSYour Name uint8_t acvo_acwmin:4; 8405*5113495bSYour Name uint8_t acvo_acwmax:4; 8406*5113495bSYour Name uint16_t acvo_txoplimit; 8407*5113495bSYour Name } tDot11fIEWMMParams; 8408*5113495bSYour Name 8409*5113495bSYour Name #define DOT11F_EID_WMMPARAMS (221) 8410*5113495bSYour Name 8411*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8412*5113495bSYour Name #define DOT11F_IE_WMMPARAMS_MIN_LEN (24) 8413*5113495bSYour Name 8414*5113495bSYour Name #define DOT11F_IE_WMMPARAMS_MAX_LEN (24) 8415*5113495bSYour Name 8416*5113495bSYour Name #ifdef __cplusplus 8417*5113495bSYour Name extern "C" { 8418*5113495bSYour Name #endif /* C++ */ 8419*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wmm_params( 8420*5113495bSYour Name tpAniSirGlobal, 8421*5113495bSYour Name uint8_t *, 8422*5113495bSYour Name uint8_t, 8423*5113495bSYour Name tDot11fIEWMMParams*, 8424*5113495bSYour Name bool); 8425*5113495bSYour Name 8426*5113495bSYour Name uint32_t dot11f_pack_ie_wmm_params( 8427*5113495bSYour Name tpAniSirGlobal, 8428*5113495bSYour Name tDot11fIEWMMParams *, 8429*5113495bSYour Name uint8_t *, 8430*5113495bSYour Name uint32_t, 8431*5113495bSYour Name uint32_t*); 8432*5113495bSYour Name 8433*5113495bSYour Name uint32_t dot11f_get_packed_ie_WMMParams( 8434*5113495bSYour Name tpAniSirGlobal, 8435*5113495bSYour Name tDot11fIEWMMParams *, 8436*5113495bSYour Name uint32_t*); 8437*5113495bSYour Name 8438*5113495bSYour Name #ifdef __cplusplus 8439*5113495bSYour Name }; /* End extern "C". */ 8440*5113495bSYour Name #endif /* C++ */ 8441*5113495bSYour Name 8442*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x01} */ 8443*5113495bSYour Name typedef struct sDot11fIEWPA { 8444*5113495bSYour Name uint8_t present; 8445*5113495bSYour Name uint16_t version /* Must be 1! */; 8446*5113495bSYour Name /* field added to fix the bug in dot11fPackIEWPA */ 8447*5113495bSYour Name uint8_t multicast_cipher_present; 8448*5113495bSYour Name uint8_t multicast_cipher[4]; 8449*5113495bSYour Name uint16_t unicast_cipher_count; 8450*5113495bSYour Name uint8_t unicast_ciphers[4][4]; 8451*5113495bSYour Name uint16_t auth_suite_count; 8452*5113495bSYour Name uint8_t auth_suites[4][4]; 8453*5113495bSYour Name uint16_t caps; 8454*5113495bSYour Name } tDot11fIEWPA; 8455*5113495bSYour Name 8456*5113495bSYour Name #define DOT11F_EID_WPA (221) 8457*5113495bSYour Name 8458*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8459*5113495bSYour Name #define DOT11F_IE_WPA_MIN_LEN (6) 8460*5113495bSYour Name 8461*5113495bSYour Name #define DOT11F_IE_WPA_MAX_LEN (48) 8462*5113495bSYour Name 8463*5113495bSYour Name #ifdef __cplusplus 8464*5113495bSYour Name extern "C" { 8465*5113495bSYour Name #endif /* C++ */ 8466*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wpa( 8467*5113495bSYour Name tpAniSirGlobal, 8468*5113495bSYour Name uint8_t *, 8469*5113495bSYour Name uint8_t, 8470*5113495bSYour Name tDot11fIEWPA*, 8471*5113495bSYour Name bool); 8472*5113495bSYour Name 8473*5113495bSYour Name uint32_t dot11f_pack_ie_wpa( 8474*5113495bSYour Name tpAniSirGlobal, 8475*5113495bSYour Name tDot11fIEWPA *, 8476*5113495bSYour Name uint8_t *, 8477*5113495bSYour Name uint32_t, 8478*5113495bSYour Name uint32_t*); 8479*5113495bSYour Name 8480*5113495bSYour Name uint32_t dot11f_get_packed_iewpa( 8481*5113495bSYour Name tpAniSirGlobal, 8482*5113495bSYour Name tDot11fIEWPA *, 8483*5113495bSYour Name uint32_t*); 8484*5113495bSYour Name 8485*5113495bSYour Name #ifdef __cplusplus 8486*5113495bSYour Name }; /* End extern "C". */ 8487*5113495bSYour Name #endif /* C++ */ 8488*5113495bSYour Name 8489*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x01} */ 8490*5113495bSYour Name typedef struct sDot11fIEWPAOpaque { 8491*5113495bSYour Name uint8_t present; 8492*5113495bSYour Name uint8_t num_data; 8493*5113495bSYour Name uint8_t data[249]; 8494*5113495bSYour Name } tDot11fIEWPAOpaque; 8495*5113495bSYour Name 8496*5113495bSYour Name #define DOT11F_EID_WPAOPAQUE (221) 8497*5113495bSYour Name 8498*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8499*5113495bSYour Name #define DOT11F_IE_WPAOPAQUE_MIN_LEN (6) 8500*5113495bSYour Name 8501*5113495bSYour Name #define DOT11F_IE_WPAOPAQUE_MAX_LEN (253) 8502*5113495bSYour Name 8503*5113495bSYour Name #ifdef __cplusplus 8504*5113495bSYour Name extern "C" { 8505*5113495bSYour Name #endif /* C++ */ 8506*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wpa_opaque( 8507*5113495bSYour Name tpAniSirGlobal, 8508*5113495bSYour Name uint8_t *, 8509*5113495bSYour Name uint8_t, 8510*5113495bSYour Name tDot11fIEWPAOpaque*, 8511*5113495bSYour Name bool); 8512*5113495bSYour Name 8513*5113495bSYour Name uint32_t dot11f_pack_ie_wpa_opaque( 8514*5113495bSYour Name tpAniSirGlobal, 8515*5113495bSYour Name tDot11fIEWPAOpaque *, 8516*5113495bSYour Name uint8_t *, 8517*5113495bSYour Name uint32_t, 8518*5113495bSYour Name uint32_t*); 8519*5113495bSYour Name 8520*5113495bSYour Name uint32_t dot11f_get_packed_iewpaOpaque( 8521*5113495bSYour Name tpAniSirGlobal, 8522*5113495bSYour Name tDot11fIEWPAOpaque *, 8523*5113495bSYour Name uint32_t*); 8524*5113495bSYour Name 8525*5113495bSYour Name #ifdef __cplusplus 8526*5113495bSYour Name }; /* End extern "C". */ 8527*5113495bSYour Name #endif /* C++ */ 8528*5113495bSYour Name 8529*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE) */ 8530*5113495bSYour Name typedef struct sDot11fIEWSC { 8531*5113495bSYour Name uint8_t present; 8532*5113495bSYour Name tDot11fTLVVersion Version; 8533*5113495bSYour Name tDot11fTLVWPSState WPSState; 8534*5113495bSYour Name tDot11fTLVAPSetupLocked APSetupLocked; 8535*5113495bSYour Name tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods; 8536*5113495bSYour Name tDot11fTLVUUID_E UUID_E; 8537*5113495bSYour Name tDot11fTLVUUID_R UUID_R; 8538*5113495bSYour Name tDot11fTLVRFBands RFBands; 8539*5113495bSYour Name tDot11fTLVSelectedRegistrar SelectedRegistrar; 8540*5113495bSYour Name tDot11fTLVConfigMethods ConfigMethods; 8541*5113495bSYour Name tDot11fTLVAssociationState AssociationState; 8542*5113495bSYour Name tDot11fTLVConfigurationError ConfigurationError; 8543*5113495bSYour Name tDot11fTLVManufacturer Manufacturer; 8544*5113495bSYour Name tDot11fTLVModelName ModelName; 8545*5113495bSYour Name tDot11fTLVModelNumber ModelNumber; 8546*5113495bSYour Name tDot11fTLVSerialNumber SerialNumber; 8547*5113495bSYour Name tDot11fTLVDeviceName DeviceName; 8548*5113495bSYour Name tDot11fTLVDevicePasswordID DevicePasswordID; 8549*5113495bSYour Name tDot11fTLVPrimaryDeviceType PrimaryDeviceType; 8550*5113495bSYour Name tDot11fTLVRequestType RequestType; 8551*5113495bSYour Name tDot11fTLVResponseType ResponseType; 8552*5113495bSYour Name tDot11fTLVVendorExtension VendorExtension; 8553*5113495bSYour Name tDot11fTLVRequestDeviceType RequestDeviceType; 8554*5113495bSYour Name } tDot11fIEWSC; 8555*5113495bSYour Name 8556*5113495bSYour Name #define DOT11F_EID_WSC (221) 8557*5113495bSYour Name 8558*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8559*5113495bSYour Name #define DOT11F_IE_WSC_MIN_LEN (4) 8560*5113495bSYour Name 8561*5113495bSYour Name #define DOT11F_IE_WSC_MAX_LEN (366) 8562*5113495bSYour Name 8563*5113495bSYour Name #ifdef __cplusplus 8564*5113495bSYour Name extern "C" { 8565*5113495bSYour Name #endif /* C++ */ 8566*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wsc( 8567*5113495bSYour Name tpAniSirGlobal, 8568*5113495bSYour Name uint8_t *, 8569*5113495bSYour Name uint8_t, 8570*5113495bSYour Name tDot11fIEWSC*, 8571*5113495bSYour Name bool); 8572*5113495bSYour Name 8573*5113495bSYour Name uint32_t dot11f_pack_ie_wsc( 8574*5113495bSYour Name tpAniSirGlobal, 8575*5113495bSYour Name tDot11fIEWSC *, 8576*5113495bSYour Name uint8_t *, 8577*5113495bSYour Name uint32_t, 8578*5113495bSYour Name uint32_t*); 8579*5113495bSYour Name 8580*5113495bSYour Name uint32_t dot11f_get_packed_iewsc( 8581*5113495bSYour Name tpAniSirGlobal, 8582*5113495bSYour Name tDot11fIEWSC *, 8583*5113495bSYour Name uint32_t*); 8584*5113495bSYour Name 8585*5113495bSYour Name #ifdef __cplusplus 8586*5113495bSYour Name }; /* End extern "C". */ 8587*5113495bSYour Name #endif /* C++ */ 8588*5113495bSYour Name 8589*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE) */ 8590*5113495bSYour Name typedef struct sDot11fIEWscAssocReq { 8591*5113495bSYour Name uint8_t present; 8592*5113495bSYour Name tDot11fTLVVersion Version; 8593*5113495bSYour Name tDot11fTLVRequestType RequestType; 8594*5113495bSYour Name tDot11fTLVVendorExtension VendorExtension; 8595*5113495bSYour Name } tDot11fIEWscAssocReq; 8596*5113495bSYour Name 8597*5113495bSYour Name #define DOT11F_EID_WSCASSOCREQ (221) 8598*5113495bSYour Name 8599*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8600*5113495bSYour Name #define DOT11F_IE_WSCASSOCREQ_MIN_LEN (4) 8601*5113495bSYour Name 8602*5113495bSYour Name #define DOT11F_IE_WSCASSOCREQ_MAX_LEN (35) 8603*5113495bSYour Name 8604*5113495bSYour Name #ifdef __cplusplus 8605*5113495bSYour Name extern "C" { 8606*5113495bSYour Name #endif /* C++ */ 8607*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wsc_assoc_req( 8608*5113495bSYour Name tpAniSirGlobal, 8609*5113495bSYour Name uint8_t *, 8610*5113495bSYour Name uint8_t, 8611*5113495bSYour Name tDot11fIEWscAssocReq*, 8612*5113495bSYour Name bool); 8613*5113495bSYour Name 8614*5113495bSYour Name uint32_t dot11f_pack_ie_wsc_assoc_req( 8615*5113495bSYour Name tpAniSirGlobal, 8616*5113495bSYour Name tDot11fIEWscAssocReq *, 8617*5113495bSYour Name uint8_t *, 8618*5113495bSYour Name uint32_t, 8619*5113495bSYour Name uint32_t*); 8620*5113495bSYour Name 8621*5113495bSYour Name uint32_t dot11f_get_packed_ie_wsc_assoc_req( 8622*5113495bSYour Name tpAniSirGlobal, 8623*5113495bSYour Name tDot11fIEWscAssocReq *, 8624*5113495bSYour Name uint32_t*); 8625*5113495bSYour Name 8626*5113495bSYour Name #ifdef __cplusplus 8627*5113495bSYour Name }; /* End extern "C". */ 8628*5113495bSYour Name #endif /* C++ */ 8629*5113495bSYour Name 8630*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE) */ 8631*5113495bSYour Name typedef struct sDot11fIEWscAssocRes { 8632*5113495bSYour Name uint8_t present; 8633*5113495bSYour Name tDot11fTLVVersion Version; 8634*5113495bSYour Name tDot11fTLVResponseType ResponseType; 8635*5113495bSYour Name tDot11fTLVVendorExtension VendorExtension; 8636*5113495bSYour Name } tDot11fIEWscAssocRes; 8637*5113495bSYour Name 8638*5113495bSYour Name #define DOT11F_EID_WSCASSOCRES (221) 8639*5113495bSYour Name 8640*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8641*5113495bSYour Name #define DOT11F_IE_WSCASSOCRES_MIN_LEN (4) 8642*5113495bSYour Name 8643*5113495bSYour Name #define DOT11F_IE_WSCASSOCRES_MAX_LEN (35) 8644*5113495bSYour Name 8645*5113495bSYour Name #ifdef __cplusplus 8646*5113495bSYour Name extern "C" { 8647*5113495bSYour Name #endif /* C++ */ 8648*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wsc_assoc_res( 8649*5113495bSYour Name tpAniSirGlobal, 8650*5113495bSYour Name uint8_t *, 8651*5113495bSYour Name uint8_t, 8652*5113495bSYour Name tDot11fIEWscAssocRes*, 8653*5113495bSYour Name bool); 8654*5113495bSYour Name 8655*5113495bSYour Name uint32_t dot11f_pack_ie_wsc_assoc_res( 8656*5113495bSYour Name tpAniSirGlobal, 8657*5113495bSYour Name tDot11fIEWscAssocRes *, 8658*5113495bSYour Name uint8_t *, 8659*5113495bSYour Name uint32_t, 8660*5113495bSYour Name uint32_t*); 8661*5113495bSYour Name 8662*5113495bSYour Name uint32_t dot11f_get_packed_ie_wsc_assoc_res( 8663*5113495bSYour Name tpAniSirGlobal, 8664*5113495bSYour Name tDot11fIEWscAssocRes *, 8665*5113495bSYour Name uint32_t*); 8666*5113495bSYour Name 8667*5113495bSYour Name #ifdef __cplusplus 8668*5113495bSYour Name }; /* End extern "C". */ 8669*5113495bSYour Name #endif /* C++ */ 8670*5113495bSYour Name 8671*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE) */ 8672*5113495bSYour Name typedef struct sDot11fIEWscBeacon { 8673*5113495bSYour Name uint8_t present; 8674*5113495bSYour Name tDot11fTLVVersion Version; 8675*5113495bSYour Name tDot11fTLVWPSState WPSState; 8676*5113495bSYour Name tDot11fTLVAPSetupLocked APSetupLocked; 8677*5113495bSYour Name tDot11fTLVSelectedRegistrar SelectedRegistrar; 8678*5113495bSYour Name tDot11fTLVDevicePasswordID DevicePasswordID; 8679*5113495bSYour Name tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods; 8680*5113495bSYour Name tDot11fTLVUUID_E UUID_E; 8681*5113495bSYour Name tDot11fTLVRFBands RFBands; 8682*5113495bSYour Name tDot11fTLVVendorExtension VendorExtension; 8683*5113495bSYour Name } tDot11fIEWscBeacon; 8684*5113495bSYour Name 8685*5113495bSYour Name #define DOT11F_EID_WSCBEACON (221) 8686*5113495bSYour Name 8687*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8688*5113495bSYour Name #define DOT11F_IE_WSCBEACON_MIN_LEN (4) 8689*5113495bSYour Name 8690*5113495bSYour Name #define DOT11F_IE_WSCBEACON_MAX_LEN (82) 8691*5113495bSYour Name 8692*5113495bSYour Name #ifdef __cplusplus 8693*5113495bSYour Name extern "C" { 8694*5113495bSYour Name #endif /* C++ */ 8695*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wsc_beacon( 8696*5113495bSYour Name tpAniSirGlobal, 8697*5113495bSYour Name uint8_t *, 8698*5113495bSYour Name uint8_t, 8699*5113495bSYour Name tDot11fIEWscBeacon*, 8700*5113495bSYour Name bool); 8701*5113495bSYour Name 8702*5113495bSYour Name uint32_t dot11f_pack_ie_wsc_beacon( 8703*5113495bSYour Name tpAniSirGlobal, 8704*5113495bSYour Name tDot11fIEWscBeacon *, 8705*5113495bSYour Name uint8_t *, 8706*5113495bSYour Name uint32_t, 8707*5113495bSYour Name uint32_t*); 8708*5113495bSYour Name 8709*5113495bSYour Name uint32_t dot11f_get_packed_ie_wsc_beacon( 8710*5113495bSYour Name tpAniSirGlobal, 8711*5113495bSYour Name tDot11fIEWscBeacon *, 8712*5113495bSYour Name uint32_t*); 8713*5113495bSYour Name 8714*5113495bSYour Name #ifdef __cplusplus 8715*5113495bSYour Name }; /* End extern "C". */ 8716*5113495bSYour Name #endif /* C++ */ 8717*5113495bSYour Name 8718*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE) */ 8719*5113495bSYour Name typedef struct sDot11fIEWscBeaconProbeRes { 8720*5113495bSYour Name uint8_t present; 8721*5113495bSYour Name tDot11fTLVVersion Version; 8722*5113495bSYour Name tDot11fTLVWPSState WPSState; 8723*5113495bSYour Name tDot11fTLVAPSetupLocked APSetupLocked; 8724*5113495bSYour Name tDot11fTLVSelectedRegistrar SelectedRegistrar; 8725*5113495bSYour Name tDot11fTLVDevicePasswordID DevicePasswordID; 8726*5113495bSYour Name tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods; 8727*5113495bSYour Name tDot11fTLVResponseType ResponseType; 8728*5113495bSYour Name tDot11fTLVUUID_E UUID_E; 8729*5113495bSYour Name tDot11fTLVManufacturer Manufacturer; 8730*5113495bSYour Name tDot11fTLVModelName ModelName; 8731*5113495bSYour Name tDot11fTLVModelNumber ModelNumber; 8732*5113495bSYour Name tDot11fTLVSerialNumber SerialNumber; 8733*5113495bSYour Name tDot11fTLVPrimaryDeviceType PrimaryDeviceType; 8734*5113495bSYour Name tDot11fTLVDeviceName DeviceName; 8735*5113495bSYour Name tDot11fTLVConfigMethods ConfigMethods; 8736*5113495bSYour Name tDot11fTLVRFBands RFBands; 8737*5113495bSYour Name tDot11fTLVVendorExtension VendorExtension; 8738*5113495bSYour Name } tDot11fIEWscBeaconProbeRes; 8739*5113495bSYour Name 8740*5113495bSYour Name #define DOT11F_EID_WSCBEACONPROBERES (221) 8741*5113495bSYour Name 8742*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8743*5113495bSYour Name #define DOT11F_IE_WSCBEACONPROBERES_MIN_LEN (4) 8744*5113495bSYour Name 8745*5113495bSYour Name #define DOT11F_IE_WSCBEACONPROBERES_MAX_LEN (317) 8746*5113495bSYour Name 8747*5113495bSYour Name #ifdef __cplusplus 8748*5113495bSYour Name extern "C" { 8749*5113495bSYour Name #endif /* C++ */ 8750*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wsc_beacon_probe_res( 8751*5113495bSYour Name tpAniSirGlobal, 8752*5113495bSYour Name uint8_t *, 8753*5113495bSYour Name uint8_t, 8754*5113495bSYour Name tDot11fIEWscBeaconProbeRes*, 8755*5113495bSYour Name bool); 8756*5113495bSYour Name 8757*5113495bSYour Name uint32_t dot11f_pack_ie_wsc_beacon_probe_res( 8758*5113495bSYour Name tpAniSirGlobal, 8759*5113495bSYour Name tDot11fIEWscBeaconProbeRes *, 8760*5113495bSYour Name uint8_t *, 8761*5113495bSYour Name uint32_t, 8762*5113495bSYour Name uint32_t*); 8763*5113495bSYour Name 8764*5113495bSYour Name uint32_t dot11f_get_packed_ie_wsc_beacon_probe_res( 8765*5113495bSYour Name tpAniSirGlobal, 8766*5113495bSYour Name tDot11fIEWscBeaconProbeRes *, 8767*5113495bSYour Name uint32_t*); 8768*5113495bSYour Name 8769*5113495bSYour Name #ifdef __cplusplus 8770*5113495bSYour Name }; /* End extern "C". */ 8771*5113495bSYour Name #endif /* C++ */ 8772*5113495bSYour Name 8773*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} */ 8774*5113495bSYour Name typedef struct sDot11fIEWscIEOpaque { 8775*5113495bSYour Name uint8_t present; 8776*5113495bSYour Name uint8_t num_data; 8777*5113495bSYour Name uint8_t data[249]; 8778*5113495bSYour Name } tDot11fIEWscIEOpaque; 8779*5113495bSYour Name 8780*5113495bSYour Name #define DOT11F_EID_WSCIEOPAQUE (221) 8781*5113495bSYour Name 8782*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8783*5113495bSYour Name #define DOT11F_IE_WSCIEOPAQUE_MIN_LEN (6) 8784*5113495bSYour Name 8785*5113495bSYour Name #define DOT11F_IE_WSCIEOPAQUE_MAX_LEN (253) 8786*5113495bSYour Name 8787*5113495bSYour Name #ifdef __cplusplus 8788*5113495bSYour Name extern "C" { 8789*5113495bSYour Name #endif /* C++ */ 8790*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wsc_ie_opaque( 8791*5113495bSYour Name tpAniSirGlobal, 8792*5113495bSYour Name uint8_t *, 8793*5113495bSYour Name uint8_t, 8794*5113495bSYour Name tDot11fIEWscIEOpaque*, 8795*5113495bSYour Name bool); 8796*5113495bSYour Name 8797*5113495bSYour Name uint32_t dot11f_pack_ie_wsc_ie_opaque( 8798*5113495bSYour Name tpAniSirGlobal, 8799*5113495bSYour Name tDot11fIEWscIEOpaque *, 8800*5113495bSYour Name uint8_t *, 8801*5113495bSYour Name uint32_t, 8802*5113495bSYour Name uint32_t*); 8803*5113495bSYour Name 8804*5113495bSYour Name uint32_t dot11f_get_packed_ie_WscIEOpaque( 8805*5113495bSYour Name tpAniSirGlobal, 8806*5113495bSYour Name tDot11fIEWscIEOpaque *, 8807*5113495bSYour Name uint32_t*); 8808*5113495bSYour Name 8809*5113495bSYour Name #ifdef __cplusplus 8810*5113495bSYour Name }; /* End extern "C". */ 8811*5113495bSYour Name #endif /* C++ */ 8812*5113495bSYour Name 8813*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE) */ 8814*5113495bSYour Name typedef struct sDot11fIEWscProbeReq { 8815*5113495bSYour Name uint8_t present; 8816*5113495bSYour Name tDot11fTLVVersion Version; 8817*5113495bSYour Name tDot11fTLVRequestType RequestType; 8818*5113495bSYour Name tDot11fTLVConfigMethods ConfigMethods; 8819*5113495bSYour Name tDot11fTLVUUID_E UUID_E; 8820*5113495bSYour Name tDot11fTLVPrimaryDeviceType PrimaryDeviceType; 8821*5113495bSYour Name tDot11fTLVRFBands RFBands; 8822*5113495bSYour Name tDot11fTLVAssociationState AssociationState; 8823*5113495bSYour Name tDot11fTLVConfigurationError ConfigurationError; 8824*5113495bSYour Name tDot11fTLVDevicePasswordID DevicePasswordID; 8825*5113495bSYour Name tDot11fTLVManufacturer Manufacturer; 8826*5113495bSYour Name tDot11fTLVModelName ModelName; 8827*5113495bSYour Name tDot11fTLVModelNumber ModelNumber; 8828*5113495bSYour Name tDot11fTLVDeviceName DeviceName; 8829*5113495bSYour Name tDot11fTLVVendorExtension VendorExtension; 8830*5113495bSYour Name tDot11fTLVRequestDeviceType RequestDeviceType; 8831*5113495bSYour Name } tDot11fIEWscProbeReq; 8832*5113495bSYour Name 8833*5113495bSYour Name #define DOT11F_EID_WSCPROBEREQ (221) 8834*5113495bSYour Name 8835*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8836*5113495bSYour Name #define DOT11F_IE_WSCPROBEREQ_MIN_LEN (4) 8837*5113495bSYour Name 8838*5113495bSYour Name #define DOT11F_IE_WSCPROBEREQ_MAX_LEN (284) 8839*5113495bSYour Name 8840*5113495bSYour Name #ifdef __cplusplus 8841*5113495bSYour Name extern "C" { 8842*5113495bSYour Name #endif /* C++ */ 8843*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wsc_probe_req( 8844*5113495bSYour Name tpAniSirGlobal, 8845*5113495bSYour Name uint8_t *, 8846*5113495bSYour Name uint8_t, 8847*5113495bSYour Name tDot11fIEWscProbeReq*, 8848*5113495bSYour Name bool); 8849*5113495bSYour Name 8850*5113495bSYour Name uint32_t dot11f_pack_ie_wsc_probe_req( 8851*5113495bSYour Name tpAniSirGlobal, 8852*5113495bSYour Name tDot11fIEWscProbeReq *, 8853*5113495bSYour Name uint8_t *, 8854*5113495bSYour Name uint32_t, 8855*5113495bSYour Name uint32_t*); 8856*5113495bSYour Name 8857*5113495bSYour Name uint32_t dot11f_get_packed_ie_wsc_probe_req( 8858*5113495bSYour Name tpAniSirGlobal, 8859*5113495bSYour Name tDot11fIEWscProbeReq *, 8860*5113495bSYour Name uint32_t*); 8861*5113495bSYour Name 8862*5113495bSYour Name #ifdef __cplusplus 8863*5113495bSYour Name }; /* End extern "C". */ 8864*5113495bSYour Name #endif /* C++ */ 8865*5113495bSYour Name 8866*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE) */ 8867*5113495bSYour Name typedef struct sDot11fIEWscProbeRes { 8868*5113495bSYour Name uint8_t present; 8869*5113495bSYour Name tDot11fTLVVersion Version; 8870*5113495bSYour Name tDot11fTLVWPSState WPSState; 8871*5113495bSYour Name tDot11fTLVAPSetupLocked APSetupLocked; 8872*5113495bSYour Name tDot11fTLVSelectedRegistrar SelectedRegistrar; 8873*5113495bSYour Name tDot11fTLVDevicePasswordID DevicePasswordID; 8874*5113495bSYour Name tDot11fTLVSelectedRegistrarConfigMethods SelectedRegistrarConfigMethods; 8875*5113495bSYour Name tDot11fTLVResponseType ResponseType; 8876*5113495bSYour Name tDot11fTLVUUID_E UUID_E; 8877*5113495bSYour Name tDot11fTLVManufacturer Manufacturer; 8878*5113495bSYour Name tDot11fTLVModelName ModelName; 8879*5113495bSYour Name tDot11fTLVModelNumber ModelNumber; 8880*5113495bSYour Name tDot11fTLVSerialNumber SerialNumber; 8881*5113495bSYour Name tDot11fTLVPrimaryDeviceType PrimaryDeviceType; 8882*5113495bSYour Name tDot11fTLVDeviceName DeviceName; 8883*5113495bSYour Name tDot11fTLVConfigMethods ConfigMethods; 8884*5113495bSYour Name tDot11fTLVRFBands RFBands; 8885*5113495bSYour Name tDot11fTLVVendorExtension VendorExtension; 8886*5113495bSYour Name } tDot11fIEWscProbeRes; 8887*5113495bSYour Name 8888*5113495bSYour Name #define DOT11F_EID_WSCPROBERES (221) 8889*5113495bSYour Name 8890*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8891*5113495bSYour Name #define DOT11F_IE_WSCPROBERES_MIN_LEN (4) 8892*5113495bSYour Name 8893*5113495bSYour Name #define DOT11F_IE_WSCPROBERES_MAX_LEN (317) 8894*5113495bSYour Name 8895*5113495bSYour Name #ifdef __cplusplus 8896*5113495bSYour Name extern "C" { 8897*5113495bSYour Name #endif /* C++ */ 8898*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wsc_probe_res( 8899*5113495bSYour Name tpAniSirGlobal, 8900*5113495bSYour Name uint8_t *, 8901*5113495bSYour Name uint8_t, 8902*5113495bSYour Name tDot11fIEWscProbeRes*, 8903*5113495bSYour Name bool); 8904*5113495bSYour Name 8905*5113495bSYour Name uint32_t dot11f_pack_ie_wsc_probe_res( 8906*5113495bSYour Name tpAniSirGlobal, 8907*5113495bSYour Name tDot11fIEWscProbeRes *, 8908*5113495bSYour Name uint8_t *, 8909*5113495bSYour Name uint32_t, 8910*5113495bSYour Name uint32_t*); 8911*5113495bSYour Name 8912*5113495bSYour Name uint32_t dot11f_get_packed_ie_wsc_probe_res( 8913*5113495bSYour Name tpAniSirGlobal, 8914*5113495bSYour Name tDot11fIEWscProbeRes *, 8915*5113495bSYour Name uint32_t*); 8916*5113495bSYour Name 8917*5113495bSYour Name #ifdef __cplusplus 8918*5113495bSYour Name }; /* End extern "C". */ 8919*5113495bSYour Name #endif /* C++ */ 8920*5113495bSYour Name 8921*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x50, 0xf2, 0x04} (Multi-IE) */ 8922*5113495bSYour Name typedef struct sDot11fIEWscReassocRes { 8923*5113495bSYour Name uint8_t present; 8924*5113495bSYour Name tDot11fTLVVersion Version; 8925*5113495bSYour Name tDot11fTLVResponseType ResponseType; 8926*5113495bSYour Name tDot11fTLVVendorExtension VendorExtension; 8927*5113495bSYour Name } tDot11fIEWscReassocRes; 8928*5113495bSYour Name 8929*5113495bSYour Name #define DOT11F_EID_WSCREASSOCRES (221) 8930*5113495bSYour Name 8931*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8932*5113495bSYour Name #define DOT11F_IE_WSCREASSOCRES_MIN_LEN (4) 8933*5113495bSYour Name 8934*5113495bSYour Name #define DOT11F_IE_WSCREASSOCRES_MAX_LEN (35) 8935*5113495bSYour Name 8936*5113495bSYour Name #ifdef __cplusplus 8937*5113495bSYour Name extern "C" { 8938*5113495bSYour Name #endif /* C++ */ 8939*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_wsc_reassoc_res( 8940*5113495bSYour Name tpAniSirGlobal, 8941*5113495bSYour Name uint8_t *, 8942*5113495bSYour Name uint8_t, 8943*5113495bSYour Name tDot11fIEWscReassocRes*, 8944*5113495bSYour Name bool); 8945*5113495bSYour Name 8946*5113495bSYour Name uint32_t dot11f_pack_ie_wsc_reassoc_res( 8947*5113495bSYour Name tpAniSirGlobal, 8948*5113495bSYour Name tDot11fIEWscReassocRes *, 8949*5113495bSYour Name uint8_t *, 8950*5113495bSYour Name uint32_t, 8951*5113495bSYour Name uint32_t*); 8952*5113495bSYour Name 8953*5113495bSYour Name uint32_t dot11f_get_packed_ie_wsc_reassoc_res( 8954*5113495bSYour Name tpAniSirGlobal, 8955*5113495bSYour Name tDot11fIEWscReassocRes *, 8956*5113495bSYour Name uint32_t*); 8957*5113495bSYour Name 8958*5113495bSYour Name #ifdef __cplusplus 8959*5113495bSYour Name }; /* End extern "C". */ 8960*5113495bSYour Name #endif /* C++ */ 8961*5113495bSYour Name 8962*5113495bSYour Name /* EID 159 (0x9f) */ 8963*5113495bSYour Name typedef struct sDot11fIEaddba_extn_element { 8964*5113495bSYour Name uint8_t present; 8965*5113495bSYour Name uint8_t no_fragmentation:1; 8966*5113495bSYour Name uint8_t he_frag_operation:2; 8967*5113495bSYour Name uint8_t reserved:2; 8968*5113495bSYour Name uint8_t extd_buff_size:3; 8969*5113495bSYour Name } tDot11fIEaddba_extn_element; 8970*5113495bSYour Name 8971*5113495bSYour Name #define DOT11F_EID_ADDBA_EXTN_ELEMENT (159) 8972*5113495bSYour Name 8973*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 8974*5113495bSYour Name #define DOT11F_IE_ADDBA_EXTN_ELEMENT_MIN_LEN (1) 8975*5113495bSYour Name 8976*5113495bSYour Name #define DOT11F_IE_ADDBA_EXTN_ELEMENT_MAX_LEN (1) 8977*5113495bSYour Name 8978*5113495bSYour Name #ifdef __cplusplus 8979*5113495bSYour Name extern "C" { 8980*5113495bSYour Name #endif /* C++ */ 8981*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_addba_extn_element( 8982*5113495bSYour Name tpAniSirGlobal, 8983*5113495bSYour Name uint8_t *, 8984*5113495bSYour Name uint8_t, 8985*5113495bSYour Name tDot11fIEaddba_extn_element*, 8986*5113495bSYour Name bool); 8987*5113495bSYour Name 8988*5113495bSYour Name uint32_t dot11f_pack_ie_addba_extn_element( 8989*5113495bSYour Name tpAniSirGlobal, 8990*5113495bSYour Name tDot11fIEaddba_extn_element *, 8991*5113495bSYour Name uint8_t *, 8992*5113495bSYour Name uint32_t, 8993*5113495bSYour Name uint32_t*); 8994*5113495bSYour Name 8995*5113495bSYour Name uint32_t dot11f_get_packed_ie_addba_extn_element( 8996*5113495bSYour Name tpAniSirGlobal, 8997*5113495bSYour Name tDot11fIEaddba_extn_element *, 8998*5113495bSYour Name uint32_t*); 8999*5113495bSYour Name 9000*5113495bSYour Name #ifdef __cplusplus 9001*5113495bSYour Name }; /* End extern "C". */ 9002*5113495bSYour Name #endif /* C++ */ 9003*5113495bSYour Name 9004*5113495bSYour Name /* EID 255 (0xff) Extended EID 42 (0x2a) */ 9005*5113495bSYour Name typedef struct sDot11fIEbss_color_change { 9006*5113495bSYour Name uint8_t present; 9007*5113495bSYour Name uint8_t countdown; 9008*5113495bSYour Name uint8_t new_color:6; 9009*5113495bSYour Name uint8_t reserved:2; 9010*5113495bSYour Name } tDot11fIEbss_color_change; 9011*5113495bSYour Name 9012*5113495bSYour Name #define DOT11F_EID_BSS_COLOR_CHANGE (255) 9013*5113495bSYour Name 9014*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 9015*5113495bSYour Name #define DOT11F_IE_BSS_COLOR_CHANGE_MIN_LEN (2) 9016*5113495bSYour Name 9017*5113495bSYour Name #define DOT11F_IE_BSS_COLOR_CHANGE_MAX_LEN (2) 9018*5113495bSYour Name 9019*5113495bSYour Name #ifdef __cplusplus 9020*5113495bSYour Name extern "C" { 9021*5113495bSYour Name #endif /* C++ */ 9022*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_bss_color_change( 9023*5113495bSYour Name tpAniSirGlobal, 9024*5113495bSYour Name uint8_t *, 9025*5113495bSYour Name uint8_t, 9026*5113495bSYour Name tDot11fIEbss_color_change*, 9027*5113495bSYour Name bool); 9028*5113495bSYour Name 9029*5113495bSYour Name uint32_t dot11f_pack_ie_bss_color_change( 9030*5113495bSYour Name tpAniSirGlobal, 9031*5113495bSYour Name tDot11fIEbss_color_change *, 9032*5113495bSYour Name uint8_t *, 9033*5113495bSYour Name uint32_t, 9034*5113495bSYour Name uint32_t*); 9035*5113495bSYour Name 9036*5113495bSYour Name uint32_t dot11f_get_packed_ie_bss_color_change( 9037*5113495bSYour Name tpAniSirGlobal, 9038*5113495bSYour Name tDot11fIEbss_color_change *, 9039*5113495bSYour Name uint32_t*); 9040*5113495bSYour Name 9041*5113495bSYour Name #ifdef __cplusplus 9042*5113495bSYour Name }; /* End extern "C". */ 9043*5113495bSYour Name #endif /* C++ */ 9044*5113495bSYour Name 9045*5113495bSYour Name /* EID 90 (0x5a) */ 9046*5113495bSYour Name typedef struct sDot11fIEbss_max_idle_period { 9047*5113495bSYour Name uint8_t present; 9048*5113495bSYour Name uint16_t max_idle_period; 9049*5113495bSYour Name uint8_t prot_keep_alive_reqd:1; 9050*5113495bSYour Name uint8_t reserved:7; 9051*5113495bSYour Name } tDot11fIEbss_max_idle_period; 9052*5113495bSYour Name 9053*5113495bSYour Name #define DOT11F_EID_BSS_MAX_IDLE_PERIOD (90) 9054*5113495bSYour Name 9055*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 9056*5113495bSYour Name #define DOT11F_IE_BSS_MAX_IDLE_PERIOD_MIN_LEN (3) 9057*5113495bSYour Name 9058*5113495bSYour Name #define DOT11F_IE_BSS_MAX_IDLE_PERIOD_MAX_LEN (3) 9059*5113495bSYour Name 9060*5113495bSYour Name #ifdef __cplusplus 9061*5113495bSYour Name extern "C" { 9062*5113495bSYour Name #endif /* C++ */ 9063*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_bss_max_idle_period( 9064*5113495bSYour Name tpAniSirGlobal, 9065*5113495bSYour Name uint8_t *, 9066*5113495bSYour Name uint8_t, 9067*5113495bSYour Name tDot11fIEbss_max_idle_period*, 9068*5113495bSYour Name bool); 9069*5113495bSYour Name 9070*5113495bSYour Name uint32_t dot11f_pack_ie_bss_max_idle_period( 9071*5113495bSYour Name tpAniSirGlobal, 9072*5113495bSYour Name tDot11fIEbss_max_idle_period *, 9073*5113495bSYour Name uint8_t *, 9074*5113495bSYour Name uint32_t, 9075*5113495bSYour Name uint32_t*); 9076*5113495bSYour Name 9077*5113495bSYour Name uint32_t dot11f_get_packed_ie_bss_max_idle_period( 9078*5113495bSYour Name tpAniSirGlobal, 9079*5113495bSYour Name tDot11fIEbss_max_idle_period *, 9080*5113495bSYour Name uint32_t*); 9081*5113495bSYour Name 9082*5113495bSYour Name #ifdef __cplusplus 9083*5113495bSYour Name }; /* End extern "C". */ 9084*5113495bSYour Name #endif /* C++ */ 9085*5113495bSYour Name 9086*5113495bSYour Name /* EID 255 (0xff) Extended EID 88 (0x58) */ 9087*5113495bSYour Name typedef struct sDot11fIEdescriptor_element { 9088*5113495bSYour Name uint8_t present; 9089*5113495bSYour Name uint8_t request_type; 9090*5113495bSYour Name uint16_t user_priority_control; 9091*5113495bSYour Name uint32_t stream_timeout; 9092*5113495bSYour Name tDot11fIEtclas_mask tclas_mask; 9093*5113495bSYour Name tDot11fIEmscs_status mscs_status; 9094*5113495bSYour Name } tDot11fIEdescriptor_element; 9095*5113495bSYour Name 9096*5113495bSYour Name #define DOT11F_EID_DESCRIPTOR_ELEMENT (255) 9097*5113495bSYour Name 9098*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 9099*5113495bSYour Name #define DOT11F_IE_DESCRIPTOR_ELEMENT_MIN_LEN (7) 9100*5113495bSYour Name 9101*5113495bSYour Name #define DOT11F_IE_DESCRIPTOR_ELEMENT_MAX_LEN (30) 9102*5113495bSYour Name 9103*5113495bSYour Name #ifdef __cplusplus 9104*5113495bSYour Name extern "C" { 9105*5113495bSYour Name #endif /* C++ */ 9106*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_descriptor_element( 9107*5113495bSYour Name tpAniSirGlobal, 9108*5113495bSYour Name uint8_t *, 9109*5113495bSYour Name uint8_t, 9110*5113495bSYour Name tDot11fIEdescriptor_element*, 9111*5113495bSYour Name bool); 9112*5113495bSYour Name 9113*5113495bSYour Name uint32_t dot11f_pack_ie_descriptor_element( 9114*5113495bSYour Name tpAniSirGlobal, 9115*5113495bSYour Name tDot11fIEdescriptor_element *, 9116*5113495bSYour Name uint8_t *, 9117*5113495bSYour Name uint32_t, 9118*5113495bSYour Name uint32_t*); 9119*5113495bSYour Name 9120*5113495bSYour Name uint32_t dot11f_get_packed_ie_descriptor_element( 9121*5113495bSYour Name tpAniSirGlobal, 9122*5113495bSYour Name tDot11fIEdescriptor_element *, 9123*5113495bSYour Name uint32_t*); 9124*5113495bSYour Name 9125*5113495bSYour Name #ifdef __cplusplus 9126*5113495bSYour Name }; /* End extern "C". */ 9127*5113495bSYour Name #endif /* C++ */ 9128*5113495bSYour Name 9129*5113495bSYour Name /* EID 255 (0xff) Extended EID 32 (0x20) */ 9130*5113495bSYour Name typedef struct sDot11fIEdh_parameter_element { 9131*5113495bSYour Name uint8_t present; 9132*5113495bSYour Name uint8_t group[2]; 9133*5113495bSYour Name uint8_t num_public_key; 9134*5113495bSYour Name uint8_t public_key[255]; 9135*5113495bSYour Name } tDot11fIEdh_parameter_element; 9136*5113495bSYour Name 9137*5113495bSYour Name #define DOT11F_EID_DH_PARAMETER_ELEMENT (255) 9138*5113495bSYour Name 9139*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 9140*5113495bSYour Name #define DOT11F_IE_DH_PARAMETER_ELEMENT_MIN_LEN (2) 9141*5113495bSYour Name 9142*5113495bSYour Name #define DOT11F_IE_DH_PARAMETER_ELEMENT_MAX_LEN (257) 9143*5113495bSYour Name 9144*5113495bSYour Name #ifdef __cplusplus 9145*5113495bSYour Name extern "C" { 9146*5113495bSYour Name #endif /* C++ */ 9147*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_dh_parameter_element( 9148*5113495bSYour Name tpAniSirGlobal, 9149*5113495bSYour Name uint8_t *, 9150*5113495bSYour Name uint8_t, 9151*5113495bSYour Name tDot11fIEdh_parameter_element*, 9152*5113495bSYour Name bool); 9153*5113495bSYour Name 9154*5113495bSYour Name uint32_t dot11f_pack_ie_dh_parameter_element( 9155*5113495bSYour Name tpAniSirGlobal, 9156*5113495bSYour Name tDot11fIEdh_parameter_element *, 9157*5113495bSYour Name uint8_t *, 9158*5113495bSYour Name uint32_t, 9159*5113495bSYour Name uint32_t*); 9160*5113495bSYour Name 9161*5113495bSYour Name uint32_t dot11f_get_packed_ie_dh_parameter_element( 9162*5113495bSYour Name tpAniSirGlobal, 9163*5113495bSYour Name tDot11fIEdh_parameter_element *, 9164*5113495bSYour Name uint32_t*); 9165*5113495bSYour Name 9166*5113495bSYour Name #ifdef __cplusplus 9167*5113495bSYour Name }; /* End extern "C". */ 9168*5113495bSYour Name #endif /* C++ */ 9169*5113495bSYour Name 9170*5113495bSYour Name /* EID 255 (0xff) Extended EID 108 (0x6c) */ 9171*5113495bSYour Name typedef struct sDot11fIEeht_cap { 9172*5113495bSYour Name uint8_t present; 9173*5113495bSYour Name uint16_t epcs_pri_access:1; 9174*5113495bSYour Name uint16_t eht_om_ctl:1; 9175*5113495bSYour Name uint16_t triggered_txop_sharing_mode1:1; 9176*5113495bSYour Name uint16_t triggered_txop_sharing_mode2:1; 9177*5113495bSYour Name uint16_t restricted_twt:1; 9178*5113495bSYour Name uint16_t scs_traffic_desc:1; 9179*5113495bSYour Name uint16_t max_mpdu_len:2; 9180*5113495bSYour Name uint16_t max_a_mpdu_len_exponent_ext:1; 9181*5113495bSYour Name uint16_t eht_trs_support:1; 9182*5113495bSYour Name uint16_t txop_return_support_txop_share_m2:1; 9183*5113495bSYour Name uint16_t two_bqrs_support:1; 9184*5113495bSYour Name uint16_t eht_link_adaptation_support:2; 9185*5113495bSYour Name uint16_t reserved:2; 9186*5113495bSYour Name uint32_t reserved2:1; 9187*5113495bSYour Name uint32_t support_320mhz_6ghz:1; 9188*5113495bSYour Name uint32_t ru_242tone_wt_20mhz:1; 9189*5113495bSYour Name uint32_t ndp_4x_eht_ltf_3dot2_us_gi:1; 9190*5113495bSYour Name uint32_t partial_bw_mu_mimo:1; 9191*5113495bSYour Name uint32_t su_beamformer:1; 9192*5113495bSYour Name uint32_t su_beamformee:1; 9193*5113495bSYour Name uint32_t bfee_ss_le_80mhz:3; 9194*5113495bSYour Name uint32_t bfee_ss_160mhz:3; 9195*5113495bSYour Name uint32_t bfee_ss_320mhz:3; 9196*5113495bSYour Name uint32_t num_sounding_dim_le_80mhz:3; 9197*5113495bSYour Name uint32_t num_sounding_dim_160mhz:3; 9198*5113495bSYour Name uint32_t num_sounding_dim_320mhz:3; 9199*5113495bSYour Name uint32_t ng_16_su_feedback:1; 9200*5113495bSYour Name uint32_t ng_16_mu_feedback:1; 9201*5113495bSYour Name uint32_t cb_sz_4_2_su_feedback:1; 9202*5113495bSYour Name uint32_t cb_sz_7_5_su_feedback:1; 9203*5113495bSYour Name uint32_t trig_su_bforming_feedback:1; 9204*5113495bSYour Name uint32_t trig_mu_bforming_partial_bw_feedback:1; 9205*5113495bSYour Name uint32_t triggered_cqi_feedback:1; 9206*5113495bSYour Name uint32_t partial_bw_dl_mu_mimo:1; 9207*5113495bSYour Name uint32_t psr_based_sr:1; 9208*5113495bSYour Name uint32_t power_boost_factor:1; 9209*5113495bSYour Name uint32_t eht_mu_ppdu_4x_ltf_0_8_us_gi:1; 9210*5113495bSYour Name uint32_t max_nc:4; 9211*5113495bSYour Name uint32_t non_trig_cqi_feedback:1; 9212*5113495bSYour Name uint32_t tx_1024_4096_qam_lt_242_tone_ru:1; 9213*5113495bSYour Name uint32_t rx_1024_4096_qam_lt_242_tone_ru:1; 9214*5113495bSYour Name uint32_t ppet_present:1; 9215*5113495bSYour Name uint32_t common_nominal_pkt_padding:2; 9216*5113495bSYour Name uint32_t max_num_eht_ltf:5; 9217*5113495bSYour Name uint32_t mcs_15:4; 9218*5113495bSYour Name uint32_t eht_dup_6ghz:1; 9219*5113495bSYour Name uint32_t op_sta_rx_ndp_wider_bw_20mhz:1; 9220*5113495bSYour Name uint32_t non_ofdma_ul_mu_mimo_le_80mhz:1; 9221*5113495bSYour Name uint32_t non_ofdma_ul_mu_mimo_160mhz:1; 9222*5113495bSYour Name uint32_t non_ofdma_ul_mu_mimo_320mhz:1; 9223*5113495bSYour Name uint32_t mu_bformer_le_80mhz:1; 9224*5113495bSYour Name uint32_t mu_bformer_160mhz:1; 9225*5113495bSYour Name uint32_t mu_bformer_320mhz:1; 9226*5113495bSYour Name uint32_t tb_sounding_feedback_rl:1; 9227*5113495bSYour Name uint8_t rx_1k_qam_in_wider_bw_dl_ofdma:1; 9228*5113495bSYour Name uint8_t rx_4k_qam_in_wider_bw_dl_ofdma:1; 9229*5113495bSYour Name uint8_t limited_cap_support_20mhz:1; 9230*5113495bSYour Name uint8_t triggered_mu_bf_full_bw_fb_and_dl_mumimo:1; 9231*5113495bSYour Name uint8_t mru_support_20mhz:1; 9232*5113495bSYour Name uint8_t reserved3:3; 9233*5113495bSYour Name uint32_t bw_20_rx_max_nss_for_mcs_0_to_7:4; 9234*5113495bSYour Name uint32_t bw_20_tx_max_nss_for_mcs_0_to_7:4; 9235*5113495bSYour Name uint32_t bw_20_rx_max_nss_for_mcs_8_and_9:4; 9236*5113495bSYour Name uint32_t bw_20_tx_max_nss_for_mcs_8_and_9:4; 9237*5113495bSYour Name uint32_t bw_20_rx_max_nss_for_mcs_10_and_11:4; 9238*5113495bSYour Name uint32_t bw_20_tx_max_nss_for_mcs_10_and_11:4; 9239*5113495bSYour Name uint32_t bw_20_rx_max_nss_for_mcs_12_and_13:4; 9240*5113495bSYour Name uint32_t bw_20_tx_max_nss_for_mcs_12_and_13:4; 9241*5113495bSYour Name uint32_t bw_le_80_rx_max_nss_for_mcs_0_to_9:4; 9242*5113495bSYour Name uint32_t bw_le_80_tx_max_nss_for_mcs_0_to_9:4; 9243*5113495bSYour Name uint32_t bw_le_80_rx_max_nss_for_mcs_10_and_11:4; 9244*5113495bSYour Name uint32_t bw_le_80_tx_max_nss_for_mcs_10_and_11:4; 9245*5113495bSYour Name uint32_t bw_le_80_rx_max_nss_for_mcs_12_and_13:4; 9246*5113495bSYour Name uint32_t bw_le_80_tx_max_nss_for_mcs_12_and_13:4; 9247*5113495bSYour Name uint32_t bw_160_rx_max_nss_for_mcs_0_to_9:4; 9248*5113495bSYour Name uint32_t bw_160_tx_max_nss_for_mcs_0_to_9:4; 9249*5113495bSYour Name uint32_t bw_160_rx_max_nss_for_mcs_10_and_11:4; 9250*5113495bSYour Name uint32_t bw_160_tx_max_nss_for_mcs_10_and_11:4; 9251*5113495bSYour Name uint32_t bw_160_rx_max_nss_for_mcs_12_and_13:4; 9252*5113495bSYour Name uint32_t bw_160_tx_max_nss_for_mcs_12_and_13:4; 9253*5113495bSYour Name uint32_t bw_320_rx_max_nss_for_mcs_0_to_9:4; 9254*5113495bSYour Name uint32_t bw_320_tx_max_nss_for_mcs_0_to_9:4; 9255*5113495bSYour Name uint32_t bw_320_rx_max_nss_for_mcs_10_and_11:4; 9256*5113495bSYour Name uint32_t bw_320_tx_max_nss_for_mcs_10_and_11:4; 9257*5113495bSYour Name uint8_t bw_320_rx_max_nss_for_mcs_12_and_13:4; 9258*5113495bSYour Name uint8_t bw_320_tx_max_nss_for_mcs_12_and_13:4; 9259*5113495bSYour Name union { 9260*5113495bSYour Name struct { 9261*5113495bSYour Name uint8_t num_ppe_th; 9262*5113495bSYour Name uint8_t ppe_th[62]; 9263*5113495bSYour Name } ppe_threshold; /* ppet_present = 1 */ 9264*5113495bSYour Name } ppet; 9265*5113495bSYour Name } tDot11fIEeht_cap; 9266*5113495bSYour Name 9267*5113495bSYour Name #define DOT11F_EID_EHT_CAP (255) 9268*5113495bSYour Name 9269*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 9270*5113495bSYour Name #define DOT11F_IE_EHT_CAP_MIN_LEN (24) 9271*5113495bSYour Name 9272*5113495bSYour Name #define DOT11F_IE_EHT_CAP_MAX_LEN (86) 9273*5113495bSYour Name 9274*5113495bSYour Name #ifdef __cplusplus 9275*5113495bSYour Name extern "C" { 9276*5113495bSYour Name #endif /* C++ */ 9277*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_eht_cap( 9278*5113495bSYour Name tpAniSirGlobal, 9279*5113495bSYour Name uint8_t *, 9280*5113495bSYour Name uint8_t, 9281*5113495bSYour Name tDot11fIEeht_cap*, 9282*5113495bSYour Name bool); 9283*5113495bSYour Name 9284*5113495bSYour Name uint32_t dot11f_pack_ie_eht_cap( 9285*5113495bSYour Name tpAniSirGlobal, 9286*5113495bSYour Name tDot11fIEeht_cap *, 9287*5113495bSYour Name uint8_t *, 9288*5113495bSYour Name uint32_t, 9289*5113495bSYour Name uint32_t*); 9290*5113495bSYour Name 9291*5113495bSYour Name uint32_t dot11f_get_packed_ie_eht_cap( 9292*5113495bSYour Name tpAniSirGlobal, 9293*5113495bSYour Name tDot11fIEeht_cap *, 9294*5113495bSYour Name uint32_t*); 9295*5113495bSYour Name 9296*5113495bSYour Name #ifdef __cplusplus 9297*5113495bSYour Name }; /* End extern "C". */ 9298*5113495bSYour Name #endif /* C++ */ 9299*5113495bSYour Name 9300*5113495bSYour Name /* EID 255 (0xff) Extended EID 106 (0x6a) */ 9301*5113495bSYour Name typedef struct sDot11fIEeht_op { 9302*5113495bSYour Name uint8_t present; 9303*5113495bSYour Name uint8_t eht_op_information_present:1; 9304*5113495bSYour Name uint8_t disabled_sub_chan_bitmap_present:1; 9305*5113495bSYour Name uint8_t eht_default_pe_duration:1; 9306*5113495bSYour Name uint8_t group_addr_bu_indication_limit:1; 9307*5113495bSYour Name uint8_t group_addr_bu_indication_exponent:2; 9308*5113495bSYour Name uint8_t reserved:2; 9309*5113495bSYour Name uint32_t basic_rx_max_nss_for_mcs_0_to_7:4; 9310*5113495bSYour Name uint32_t basic_tx_max_nss_for_mcs_0_to_7:4; 9311*5113495bSYour Name uint32_t basic_rx_max_nss_for_mcs_8_and_9:4; 9312*5113495bSYour Name uint32_t basic_tx_max_nss_for_mcs_8_and_9:4; 9313*5113495bSYour Name uint32_t basic_rx_max_nss_for_mcs_10_and_11:4; 9314*5113495bSYour Name uint32_t basic_tx_max_nss_for_mcs_10_and_11:4; 9315*5113495bSYour Name uint32_t basic_rx_max_nss_for_mcs_12_and_13:4; 9316*5113495bSYour Name uint32_t basic_tx_max_nss_for_mcs_12_and_13:4; 9317*5113495bSYour Name uint8_t channel_width:3; 9318*5113495bSYour Name uint8_t reserved_1:5; 9319*5113495bSYour Name uint8_t ccfs0; 9320*5113495bSYour Name uint8_t ccfs1; 9321*5113495bSYour Name uint8_t disabled_sub_chan_bitmap[1][2]; 9322*5113495bSYour Name } tDot11fIEeht_op; 9323*5113495bSYour Name 9324*5113495bSYour Name #define DOT11F_EID_EHT_OP (255) 9325*5113495bSYour Name 9326*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 9327*5113495bSYour Name #define DOT11F_IE_EHT_OP_MIN_LEN (8) 9328*5113495bSYour Name 9329*5113495bSYour Name #define DOT11F_IE_EHT_OP_MAX_LEN (10) 9330*5113495bSYour Name 9331*5113495bSYour Name #ifdef __cplusplus 9332*5113495bSYour Name extern "C" { 9333*5113495bSYour Name #endif /* C++ */ 9334*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_eht_op( 9335*5113495bSYour Name tpAniSirGlobal, 9336*5113495bSYour Name uint8_t *, 9337*5113495bSYour Name uint8_t, 9338*5113495bSYour Name tDot11fIEeht_op*, 9339*5113495bSYour Name bool); 9340*5113495bSYour Name 9341*5113495bSYour Name uint32_t dot11f_pack_ie_eht_op( 9342*5113495bSYour Name tpAniSirGlobal, 9343*5113495bSYour Name tDot11fIEeht_op *, 9344*5113495bSYour Name uint8_t *, 9345*5113495bSYour Name uint32_t, 9346*5113495bSYour Name uint32_t*); 9347*5113495bSYour Name 9348*5113495bSYour Name uint32_t dot11f_get_packed_ie_eht_op( 9349*5113495bSYour Name tpAniSirGlobal, 9350*5113495bSYour Name tDot11fIEeht_op *, 9351*5113495bSYour Name uint32_t*); 9352*5113495bSYour Name 9353*5113495bSYour Name #ifdef __cplusplus 9354*5113495bSYour Name }; /* End extern "C". */ 9355*5113495bSYour Name #endif /* C++ */ 9356*5113495bSYour Name 9357*5113495bSYour Name /* EID 255 (0xff) Extended EID 11 (0x0b) */ 9358*5113495bSYour Name typedef struct sDot11fIEesp_information { 9359*5113495bSYour Name uint8_t present; 9360*5113495bSYour Name uint8_t num_data; 9361*5113495bSYour Name uint8_t data[96]; 9362*5113495bSYour Name } tDot11fIEesp_information; 9363*5113495bSYour Name 9364*5113495bSYour Name #define DOT11F_EID_ESP_INFORMATION (255) 9365*5113495bSYour Name 9366*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 9367*5113495bSYour Name #define DOT11F_IE_ESP_INFORMATION_MIN_LEN (0) 9368*5113495bSYour Name 9369*5113495bSYour Name #define DOT11F_IE_ESP_INFORMATION_MAX_LEN (96) 9370*5113495bSYour Name 9371*5113495bSYour Name #ifdef __cplusplus 9372*5113495bSYour Name extern "C" { 9373*5113495bSYour Name #endif /* C++ */ 9374*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_esp_information( 9375*5113495bSYour Name tpAniSirGlobal, 9376*5113495bSYour Name uint8_t *, 9377*5113495bSYour Name uint8_t, 9378*5113495bSYour Name tDot11fIEesp_information*, 9379*5113495bSYour Name bool); 9380*5113495bSYour Name 9381*5113495bSYour Name uint32_t dot11f_pack_ie_esp_information( 9382*5113495bSYour Name tpAniSirGlobal, 9383*5113495bSYour Name tDot11fIEesp_information *, 9384*5113495bSYour Name uint8_t *, 9385*5113495bSYour Name uint32_t, 9386*5113495bSYour Name uint32_t*); 9387*5113495bSYour Name 9388*5113495bSYour Name uint32_t dot11f_get_packed_ie_esp_information( 9389*5113495bSYour Name tpAniSirGlobal, 9390*5113495bSYour Name tDot11fIEesp_information *, 9391*5113495bSYour Name uint32_t*); 9392*5113495bSYour Name 9393*5113495bSYour Name #ifdef __cplusplus 9394*5113495bSYour Name }; /* End extern "C". */ 9395*5113495bSYour Name #endif /* C++ */ 9396*5113495bSYour Name 9397*5113495bSYour Name /* EID 60 (0x3c) */ 9398*5113495bSYour Name typedef struct sDot11fIEext_chan_switch_ann { 9399*5113495bSYour Name uint8_t present; 9400*5113495bSYour Name uint8_t switch_mode; 9401*5113495bSYour Name uint8_t new_reg_class; 9402*5113495bSYour Name uint8_t new_channel; 9403*5113495bSYour Name uint8_t switch_count; 9404*5113495bSYour Name } tDot11fIEext_chan_switch_ann; 9405*5113495bSYour Name 9406*5113495bSYour Name #define DOT11F_EID_EXT_CHAN_SWITCH_ANN (60) 9407*5113495bSYour Name 9408*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 9409*5113495bSYour Name #define DOT11F_IE_EXT_CHAN_SWITCH_ANN_MIN_LEN (4) 9410*5113495bSYour Name 9411*5113495bSYour Name #define DOT11F_IE_EXT_CHAN_SWITCH_ANN_MAX_LEN (4) 9412*5113495bSYour Name 9413*5113495bSYour Name #ifdef __cplusplus 9414*5113495bSYour Name extern "C" { 9415*5113495bSYour Name #endif /* C++ */ 9416*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ext_chan_switch_ann( 9417*5113495bSYour Name tpAniSirGlobal, 9418*5113495bSYour Name uint8_t *, 9419*5113495bSYour Name uint8_t, 9420*5113495bSYour Name tDot11fIEext_chan_switch_ann*, 9421*5113495bSYour Name bool); 9422*5113495bSYour Name 9423*5113495bSYour Name uint32_t dot11f_pack_ie_ext_chan_switch_ann( 9424*5113495bSYour Name tpAniSirGlobal, 9425*5113495bSYour Name tDot11fIEext_chan_switch_ann *, 9426*5113495bSYour Name uint8_t *, 9427*5113495bSYour Name uint32_t, 9428*5113495bSYour Name uint32_t*); 9429*5113495bSYour Name 9430*5113495bSYour Name uint32_t dot11f_get_packed_ie_ext_chan_switch_ann( 9431*5113495bSYour Name tpAniSirGlobal, 9432*5113495bSYour Name tDot11fIEext_chan_switch_ann *, 9433*5113495bSYour Name uint32_t*); 9434*5113495bSYour Name 9435*5113495bSYour Name #ifdef __cplusplus 9436*5113495bSYour Name }; /* End extern "C". */ 9437*5113495bSYour Name #endif /* C++ */ 9438*5113495bSYour Name 9439*5113495bSYour Name /* EID 255 (0xff) Extended EID 1 (0x01) */ 9440*5113495bSYour Name typedef struct sDot11fIEfils_assoc_delay_info { 9441*5113495bSYour Name uint8_t present; 9442*5113495bSYour Name uint8_t assoc_delay_info; 9443*5113495bSYour Name } tDot11fIEfils_assoc_delay_info; 9444*5113495bSYour Name 9445*5113495bSYour Name #define DOT11F_EID_FILS_ASSOC_DELAY_INFO (255) 9446*5113495bSYour Name 9447*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 9448*5113495bSYour Name #define DOT11F_IE_FILS_ASSOC_DELAY_INFO_MIN_LEN (1) 9449*5113495bSYour Name 9450*5113495bSYour Name #define DOT11F_IE_FILS_ASSOC_DELAY_INFO_MAX_LEN (1) 9451*5113495bSYour Name 9452*5113495bSYour Name #ifdef __cplusplus 9453*5113495bSYour Name extern "C" { 9454*5113495bSYour Name #endif /* C++ */ 9455*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_fils_assoc_delay_info( 9456*5113495bSYour Name tpAniSirGlobal, 9457*5113495bSYour Name uint8_t *, 9458*5113495bSYour Name uint8_t, 9459*5113495bSYour Name tDot11fIEfils_assoc_delay_info*, 9460*5113495bSYour Name bool); 9461*5113495bSYour Name 9462*5113495bSYour Name uint32_t dot11f_pack_ie_fils_assoc_delay_info( 9463*5113495bSYour Name tpAniSirGlobal, 9464*5113495bSYour Name tDot11fIEfils_assoc_delay_info *, 9465*5113495bSYour Name uint8_t *, 9466*5113495bSYour Name uint32_t, 9467*5113495bSYour Name uint32_t*); 9468*5113495bSYour Name 9469*5113495bSYour Name uint32_t dot11f_get_packed_ie_fils_assoc_delay_info( 9470*5113495bSYour Name tpAniSirGlobal, 9471*5113495bSYour Name tDot11fIEfils_assoc_delay_info *, 9472*5113495bSYour Name uint32_t*); 9473*5113495bSYour Name 9474*5113495bSYour Name #ifdef __cplusplus 9475*5113495bSYour Name }; /* End extern "C". */ 9476*5113495bSYour Name #endif /* C++ */ 9477*5113495bSYour Name 9478*5113495bSYour Name /* EID 255 (0xff) Extended EID 5 (0x05) */ 9479*5113495bSYour Name typedef struct sDot11fIEfils_hlp_container { 9480*5113495bSYour Name uint8_t present; 9481*5113495bSYour Name uint8_t dest_mac[6]; 9482*5113495bSYour Name uint8_t src_mac[6]; 9483*5113495bSYour Name uint8_t num_hlp_packet; 9484*5113495bSYour Name uint8_t hlp_packet[255]; 9485*5113495bSYour Name } tDot11fIEfils_hlp_container; 9486*5113495bSYour Name 9487*5113495bSYour Name #define DOT11F_EID_FILS_HLP_CONTAINER (255) 9488*5113495bSYour Name 9489*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 9490*5113495bSYour Name #define DOT11F_IE_FILS_HLP_CONTAINER_MIN_LEN (12) 9491*5113495bSYour Name 9492*5113495bSYour Name #define DOT11F_IE_FILS_HLP_CONTAINER_MAX_LEN (267) 9493*5113495bSYour Name 9494*5113495bSYour Name #ifdef __cplusplus 9495*5113495bSYour Name extern "C" { 9496*5113495bSYour Name #endif /* C++ */ 9497*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_fils_hlp_container( 9498*5113495bSYour Name tpAniSirGlobal, 9499*5113495bSYour Name uint8_t *, 9500*5113495bSYour Name uint8_t, 9501*5113495bSYour Name tDot11fIEfils_hlp_container*, 9502*5113495bSYour Name bool); 9503*5113495bSYour Name 9504*5113495bSYour Name uint32_t dot11f_pack_ie_fils_hlp_container( 9505*5113495bSYour Name tpAniSirGlobal, 9506*5113495bSYour Name tDot11fIEfils_hlp_container *, 9507*5113495bSYour Name uint8_t *, 9508*5113495bSYour Name uint32_t, 9509*5113495bSYour Name uint32_t*); 9510*5113495bSYour Name 9511*5113495bSYour Name uint32_t dot11f_get_packed_ie_fils_hlp_container( 9512*5113495bSYour Name tpAniSirGlobal, 9513*5113495bSYour Name tDot11fIEfils_hlp_container *, 9514*5113495bSYour Name uint32_t*); 9515*5113495bSYour Name 9516*5113495bSYour Name #ifdef __cplusplus 9517*5113495bSYour Name }; /* End extern "C". */ 9518*5113495bSYour Name #endif /* C++ */ 9519*5113495bSYour Name 9520*5113495bSYour Name /* EID 240 (0xf0) */ 9521*5113495bSYour Name typedef struct sDot11fIEfils_indication { 9522*5113495bSYour Name uint8_t present; 9523*5113495bSYour Name uint16_t public_key_identifiers_cnt:3; 9524*5113495bSYour Name uint16_t realm_identifiers_cnt:3; 9525*5113495bSYour Name uint16_t is_ip_config_supported:1; 9526*5113495bSYour Name uint16_t is_cache_id_present:1; 9527*5113495bSYour Name uint16_t is_hessid_present:1; 9528*5113495bSYour Name uint16_t is_fils_sk_auth_supported:1; 9529*5113495bSYour Name uint16_t is_fils_sk_auth_pfs_supported:1; 9530*5113495bSYour Name uint16_t is_pk_auth_supported:1; 9531*5113495bSYour Name uint16_t reserved:4; 9532*5113495bSYour Name uint8_t num_variable_data; 9533*5113495bSYour Name uint8_t variable_data[255]; 9534*5113495bSYour Name } tDot11fIEfils_indication; 9535*5113495bSYour Name 9536*5113495bSYour Name #define DOT11F_EID_FILS_INDICATION (240) 9537*5113495bSYour Name 9538*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 9539*5113495bSYour Name #define DOT11F_IE_FILS_INDICATION_MIN_LEN (4) 9540*5113495bSYour Name 9541*5113495bSYour Name #define DOT11F_IE_FILS_INDICATION_MAX_LEN (257) 9542*5113495bSYour Name 9543*5113495bSYour Name #ifdef __cplusplus 9544*5113495bSYour Name extern "C" { 9545*5113495bSYour Name #endif /* C++ */ 9546*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_fils_indication( 9547*5113495bSYour Name tpAniSirGlobal, 9548*5113495bSYour Name uint8_t *, 9549*5113495bSYour Name uint8_t, 9550*5113495bSYour Name tDot11fIEfils_indication*, 9551*5113495bSYour Name bool); 9552*5113495bSYour Name 9553*5113495bSYour Name uint32_t dot11f_pack_ie_fils_indication( 9554*5113495bSYour Name tpAniSirGlobal, 9555*5113495bSYour Name tDot11fIEfils_indication *, 9556*5113495bSYour Name uint8_t *, 9557*5113495bSYour Name uint32_t, 9558*5113495bSYour Name uint32_t*); 9559*5113495bSYour Name 9560*5113495bSYour Name uint32_t dot11f_get_packed_ie_fils_indication( 9561*5113495bSYour Name tpAniSirGlobal, 9562*5113495bSYour Name tDot11fIEfils_indication *, 9563*5113495bSYour Name uint32_t*); 9564*5113495bSYour Name 9565*5113495bSYour Name #ifdef __cplusplus 9566*5113495bSYour Name }; /* End extern "C". */ 9567*5113495bSYour Name #endif /* C++ */ 9568*5113495bSYour Name 9569*5113495bSYour Name /* EID 255 (0xff) Extended EID 7 (0x07) */ 9570*5113495bSYour Name typedef struct sDot11fIEfils_kde { 9571*5113495bSYour Name uint8_t present; 9572*5113495bSYour Name uint8_t key_rsc[8]; 9573*5113495bSYour Name uint8_t num_kde_list; 9574*5113495bSYour Name uint8_t kde_list[255]; 9575*5113495bSYour Name } tDot11fIEfils_kde; 9576*5113495bSYour Name 9577*5113495bSYour Name #define DOT11F_EID_FILS_KDE (255) 9578*5113495bSYour Name 9579*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 9580*5113495bSYour Name #define DOT11F_IE_FILS_KDE_MIN_LEN (8) 9581*5113495bSYour Name 9582*5113495bSYour Name #define DOT11F_IE_FILS_KDE_MAX_LEN (263) 9583*5113495bSYour Name 9584*5113495bSYour Name #ifdef __cplusplus 9585*5113495bSYour Name extern "C" { 9586*5113495bSYour Name #endif /* C++ */ 9587*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_fils_kde( 9588*5113495bSYour Name tpAniSirGlobal, 9589*5113495bSYour Name uint8_t *, 9590*5113495bSYour Name uint8_t, 9591*5113495bSYour Name tDot11fIEfils_kde*, 9592*5113495bSYour Name bool); 9593*5113495bSYour Name 9594*5113495bSYour Name uint32_t dot11f_pack_ie_fils_kde( 9595*5113495bSYour Name tpAniSirGlobal, 9596*5113495bSYour Name tDot11fIEfils_kde *, 9597*5113495bSYour Name uint8_t *, 9598*5113495bSYour Name uint32_t, 9599*5113495bSYour Name uint32_t*); 9600*5113495bSYour Name 9601*5113495bSYour Name uint32_t dot11f_get_packed_ie_fils_kde( 9602*5113495bSYour Name tpAniSirGlobal, 9603*5113495bSYour Name tDot11fIEfils_kde *, 9604*5113495bSYour Name uint32_t*); 9605*5113495bSYour Name 9606*5113495bSYour Name #ifdef __cplusplus 9607*5113495bSYour Name }; /* End extern "C". */ 9608*5113495bSYour Name #endif /* C++ */ 9609*5113495bSYour Name 9610*5113495bSYour Name /* EID 255 (0xff) Extended EID 3 (0x03) */ 9611*5113495bSYour Name typedef struct sDot11fIEfils_key_confirmation { 9612*5113495bSYour Name uint8_t present; 9613*5113495bSYour Name uint8_t num_key_auth; 9614*5113495bSYour Name uint8_t key_auth[255]; 9615*5113495bSYour Name } tDot11fIEfils_key_confirmation; 9616*5113495bSYour Name 9617*5113495bSYour Name #define DOT11F_EID_FILS_KEY_CONFIRMATION (255) 9618*5113495bSYour Name 9619*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 9620*5113495bSYour Name #define DOT11F_IE_FILS_KEY_CONFIRMATION_MIN_LEN (0) 9621*5113495bSYour Name 9622*5113495bSYour Name #define DOT11F_IE_FILS_KEY_CONFIRMATION_MAX_LEN (255) 9623*5113495bSYour Name 9624*5113495bSYour Name #ifdef __cplusplus 9625*5113495bSYour Name extern "C" { 9626*5113495bSYour Name #endif /* C++ */ 9627*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_fils_key_confirmation( 9628*5113495bSYour Name tpAniSirGlobal, 9629*5113495bSYour Name uint8_t *, 9630*5113495bSYour Name uint8_t, 9631*5113495bSYour Name tDot11fIEfils_key_confirmation*, 9632*5113495bSYour Name bool); 9633*5113495bSYour Name 9634*5113495bSYour Name uint32_t dot11f_pack_ie_fils_key_confirmation( 9635*5113495bSYour Name tpAniSirGlobal, 9636*5113495bSYour Name tDot11fIEfils_key_confirmation *, 9637*5113495bSYour Name uint8_t *, 9638*5113495bSYour Name uint32_t, 9639*5113495bSYour Name uint32_t*); 9640*5113495bSYour Name 9641*5113495bSYour Name uint32_t dot11f_get_packed_ie_fils_key_confirmation( 9642*5113495bSYour Name tpAniSirGlobal, 9643*5113495bSYour Name tDot11fIEfils_key_confirmation *, 9644*5113495bSYour Name uint32_t*); 9645*5113495bSYour Name 9646*5113495bSYour Name #ifdef __cplusplus 9647*5113495bSYour Name }; /* End extern "C". */ 9648*5113495bSYour Name #endif /* C++ */ 9649*5113495bSYour Name 9650*5113495bSYour Name /* EID 255 (0xff) Extended EID 13 (0x0d) */ 9651*5113495bSYour Name typedef struct sDot11fIEfils_nonce { 9652*5113495bSYour Name uint8_t present; 9653*5113495bSYour Name uint8_t nonce[16]; 9654*5113495bSYour Name } tDot11fIEfils_nonce; 9655*5113495bSYour Name 9656*5113495bSYour Name #define DOT11F_EID_FILS_NONCE (255) 9657*5113495bSYour Name 9658*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 9659*5113495bSYour Name #define DOT11F_IE_FILS_NONCE_MIN_LEN (16) 9660*5113495bSYour Name 9661*5113495bSYour Name #define DOT11F_IE_FILS_NONCE_MAX_LEN (16) 9662*5113495bSYour Name 9663*5113495bSYour Name #ifdef __cplusplus 9664*5113495bSYour Name extern "C" { 9665*5113495bSYour Name #endif /* C++ */ 9666*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_fils_nonce( 9667*5113495bSYour Name tpAniSirGlobal, 9668*5113495bSYour Name uint8_t *, 9669*5113495bSYour Name uint8_t, 9670*5113495bSYour Name tDot11fIEfils_nonce*, 9671*5113495bSYour Name bool); 9672*5113495bSYour Name 9673*5113495bSYour Name uint32_t dot11f_pack_ie_fils_nonce( 9674*5113495bSYour Name tpAniSirGlobal, 9675*5113495bSYour Name tDot11fIEfils_nonce *, 9676*5113495bSYour Name uint8_t *, 9677*5113495bSYour Name uint32_t, 9678*5113495bSYour Name uint32_t*); 9679*5113495bSYour Name 9680*5113495bSYour Name uint32_t dot11f_get_packed_ie_fils_nonce( 9681*5113495bSYour Name tpAniSirGlobal, 9682*5113495bSYour Name tDot11fIEfils_nonce *, 9683*5113495bSYour Name uint32_t*); 9684*5113495bSYour Name 9685*5113495bSYour Name #ifdef __cplusplus 9686*5113495bSYour Name }; /* End extern "C". */ 9687*5113495bSYour Name #endif /* C++ */ 9688*5113495bSYour Name 9689*5113495bSYour Name /* EID 255 (0xff) Extended EID 12 (0x0c) */ 9690*5113495bSYour Name typedef struct sDot11fIEfils_public_key { 9691*5113495bSYour Name uint8_t present; 9692*5113495bSYour Name uint8_t key_type; 9693*5113495bSYour Name uint8_t num_public_key; 9694*5113495bSYour Name uint8_t public_key[255]; 9695*5113495bSYour Name } tDot11fIEfils_public_key; 9696*5113495bSYour Name 9697*5113495bSYour Name #define DOT11F_EID_FILS_PUBLIC_KEY (255) 9698*5113495bSYour Name 9699*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 9700*5113495bSYour Name #define DOT11F_IE_FILS_PUBLIC_KEY_MIN_LEN (1) 9701*5113495bSYour Name 9702*5113495bSYour Name #define DOT11F_IE_FILS_PUBLIC_KEY_MAX_LEN (256) 9703*5113495bSYour Name 9704*5113495bSYour Name #ifdef __cplusplus 9705*5113495bSYour Name extern "C" { 9706*5113495bSYour Name #endif /* C++ */ 9707*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_fils_public_key( 9708*5113495bSYour Name tpAniSirGlobal, 9709*5113495bSYour Name uint8_t *, 9710*5113495bSYour Name uint8_t, 9711*5113495bSYour Name tDot11fIEfils_public_key*, 9712*5113495bSYour Name bool); 9713*5113495bSYour Name 9714*5113495bSYour Name uint32_t dot11f_pack_ie_fils_public_key( 9715*5113495bSYour Name tpAniSirGlobal, 9716*5113495bSYour Name tDot11fIEfils_public_key *, 9717*5113495bSYour Name uint8_t *, 9718*5113495bSYour Name uint32_t, 9719*5113495bSYour Name uint32_t*); 9720*5113495bSYour Name 9721*5113495bSYour Name uint32_t dot11f_get_packed_ie_fils_public_key( 9722*5113495bSYour Name tpAniSirGlobal, 9723*5113495bSYour Name tDot11fIEfils_public_key *, 9724*5113495bSYour Name uint32_t*); 9725*5113495bSYour Name 9726*5113495bSYour Name #ifdef __cplusplus 9727*5113495bSYour Name }; /* End extern "C". */ 9728*5113495bSYour Name #endif /* C++ */ 9729*5113495bSYour Name 9730*5113495bSYour Name /* EID 255 (0xff) Extended EID 4 (0x04) */ 9731*5113495bSYour Name typedef struct sDot11fIEfils_session { 9732*5113495bSYour Name uint8_t present; 9733*5113495bSYour Name uint8_t session[8]; 9734*5113495bSYour Name } tDot11fIEfils_session; 9735*5113495bSYour Name 9736*5113495bSYour Name #define DOT11F_EID_FILS_SESSION (255) 9737*5113495bSYour Name 9738*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 9739*5113495bSYour Name #define DOT11F_IE_FILS_SESSION_MIN_LEN (8) 9740*5113495bSYour Name 9741*5113495bSYour Name #define DOT11F_IE_FILS_SESSION_MAX_LEN (8) 9742*5113495bSYour Name 9743*5113495bSYour Name #ifdef __cplusplus 9744*5113495bSYour Name extern "C" { 9745*5113495bSYour Name #endif /* C++ */ 9746*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_fils_session( 9747*5113495bSYour Name tpAniSirGlobal, 9748*5113495bSYour Name uint8_t *, 9749*5113495bSYour Name uint8_t, 9750*5113495bSYour Name tDot11fIEfils_session*, 9751*5113495bSYour Name bool); 9752*5113495bSYour Name 9753*5113495bSYour Name uint32_t dot11f_pack_ie_fils_session( 9754*5113495bSYour Name tpAniSirGlobal, 9755*5113495bSYour Name tDot11fIEfils_session *, 9756*5113495bSYour Name uint8_t *, 9757*5113495bSYour Name uint32_t, 9758*5113495bSYour Name uint32_t*); 9759*5113495bSYour Name 9760*5113495bSYour Name uint32_t dot11f_get_packed_ie_fils_session( 9761*5113495bSYour Name tpAniSirGlobal, 9762*5113495bSYour Name tDot11fIEfils_session *, 9763*5113495bSYour Name uint32_t*); 9764*5113495bSYour Name 9765*5113495bSYour Name #ifdef __cplusplus 9766*5113495bSYour Name }; /* End extern "C". */ 9767*5113495bSYour Name #endif /* C++ */ 9768*5113495bSYour Name 9769*5113495bSYour Name /* EID 255 (0xff) Extended EID 8 (0x08) */ 9770*5113495bSYour Name typedef struct sDot11fIEfils_wrapped_data { 9771*5113495bSYour Name uint8_t present; 9772*5113495bSYour Name uint8_t num_wrapped_data; 9773*5113495bSYour Name uint8_t wrapped_data[255]; 9774*5113495bSYour Name } tDot11fIEfils_wrapped_data; 9775*5113495bSYour Name 9776*5113495bSYour Name #define DOT11F_EID_FILS_WRAPPED_DATA (255) 9777*5113495bSYour Name 9778*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 9779*5113495bSYour Name #define DOT11F_IE_FILS_WRAPPED_DATA_MIN_LEN (0) 9780*5113495bSYour Name 9781*5113495bSYour Name #define DOT11F_IE_FILS_WRAPPED_DATA_MAX_LEN (255) 9782*5113495bSYour Name 9783*5113495bSYour Name #ifdef __cplusplus 9784*5113495bSYour Name extern "C" { 9785*5113495bSYour Name #endif /* C++ */ 9786*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_fils_wrapped_data( 9787*5113495bSYour Name tpAniSirGlobal, 9788*5113495bSYour Name uint8_t *, 9789*5113495bSYour Name uint8_t, 9790*5113495bSYour Name tDot11fIEfils_wrapped_data*, 9791*5113495bSYour Name bool); 9792*5113495bSYour Name 9793*5113495bSYour Name uint32_t dot11f_pack_ie_fils_wrapped_data( 9794*5113495bSYour Name tpAniSirGlobal, 9795*5113495bSYour Name tDot11fIEfils_wrapped_data *, 9796*5113495bSYour Name uint8_t *, 9797*5113495bSYour Name uint32_t, 9798*5113495bSYour Name uint32_t*); 9799*5113495bSYour Name 9800*5113495bSYour Name uint32_t dot11f_get_packed_ie_fils_wrapped_data( 9801*5113495bSYour Name tpAniSirGlobal, 9802*5113495bSYour Name tDot11fIEfils_wrapped_data *, 9803*5113495bSYour Name uint32_t*); 9804*5113495bSYour Name 9805*5113495bSYour Name #ifdef __cplusplus 9806*5113495bSYour Name }; /* End extern "C". */ 9807*5113495bSYour Name #endif /* C++ */ 9808*5113495bSYour Name 9809*5113495bSYour Name /* EID 242 (0xf2) */ 9810*5113495bSYour Name typedef struct sDot11fIEfragment_ie { 9811*5113495bSYour Name uint8_t present; 9812*5113495bSYour Name uint8_t num_data; 9813*5113495bSYour Name uint8_t data[255]; 9814*5113495bSYour Name } tDot11fIEfragment_ie; 9815*5113495bSYour Name 9816*5113495bSYour Name #define DOT11F_EID_FRAGMENT_IE (242) 9817*5113495bSYour Name 9818*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 9819*5113495bSYour Name #define DOT11F_IE_FRAGMENT_IE_MIN_LEN (0) 9820*5113495bSYour Name 9821*5113495bSYour Name #define DOT11F_IE_FRAGMENT_IE_MAX_LEN (255) 9822*5113495bSYour Name 9823*5113495bSYour Name #ifdef __cplusplus 9824*5113495bSYour Name extern "C" { 9825*5113495bSYour Name #endif /* C++ */ 9826*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_fragment_ie( 9827*5113495bSYour Name tpAniSirGlobal, 9828*5113495bSYour Name uint8_t *, 9829*5113495bSYour Name uint8_t, 9830*5113495bSYour Name tDot11fIEfragment_ie*, 9831*5113495bSYour Name bool); 9832*5113495bSYour Name 9833*5113495bSYour Name uint32_t dot11f_pack_ie_fragment_ie( 9834*5113495bSYour Name tpAniSirGlobal, 9835*5113495bSYour Name tDot11fIEfragment_ie *, 9836*5113495bSYour Name uint8_t *, 9837*5113495bSYour Name uint32_t, 9838*5113495bSYour Name uint32_t*); 9839*5113495bSYour Name 9840*5113495bSYour Name uint32_t dot11f_get_packed_ie_fragment_ie( 9841*5113495bSYour Name tpAniSirGlobal, 9842*5113495bSYour Name tDot11fIEfragment_ie *, 9843*5113495bSYour Name uint32_t*); 9844*5113495bSYour Name 9845*5113495bSYour Name #ifdef __cplusplus 9846*5113495bSYour Name }; /* End extern "C". */ 9847*5113495bSYour Name #endif /* C++ */ 9848*5113495bSYour Name 9849*5113495bSYour Name /* EID 255 (0xff) Extended EID 59 (0x3b) */ 9850*5113495bSYour Name typedef struct sDot11fIEhe_6ghz_band_cap { 9851*5113495bSYour Name uint8_t present; 9852*5113495bSYour Name uint16_t min_mpdu_start_spacing:3; 9853*5113495bSYour Name uint16_t max_ampdu_len_exp:3; 9854*5113495bSYour Name uint16_t max_mpdu_len:3; 9855*5113495bSYour Name uint16_t sm_pow_save:2; 9856*5113495bSYour Name uint16_t rd_responder:1; 9857*5113495bSYour Name uint16_t rx_ant_pattern_consistency:1; 9858*5113495bSYour Name uint16_t tx_ant_pattern_consistency:1; 9859*5113495bSYour Name uint16_t reserved:2; 9860*5113495bSYour Name } tDot11fIEhe_6ghz_band_cap; 9861*5113495bSYour Name 9862*5113495bSYour Name #define DOT11F_EID_HE_6GHZ_BAND_CAP (255) 9863*5113495bSYour Name 9864*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 9865*5113495bSYour Name #define DOT11F_IE_HE_6GHZ_BAND_CAP_MIN_LEN (2) 9866*5113495bSYour Name 9867*5113495bSYour Name #define DOT11F_IE_HE_6GHZ_BAND_CAP_MAX_LEN (2) 9868*5113495bSYour Name 9869*5113495bSYour Name #ifdef __cplusplus 9870*5113495bSYour Name extern "C" { 9871*5113495bSYour Name #endif /* C++ */ 9872*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_he_6ghz_band_cap( 9873*5113495bSYour Name tpAniSirGlobal, 9874*5113495bSYour Name uint8_t *, 9875*5113495bSYour Name uint8_t, 9876*5113495bSYour Name tDot11fIEhe_6ghz_band_cap*, 9877*5113495bSYour Name bool); 9878*5113495bSYour Name 9879*5113495bSYour Name uint32_t dot11f_pack_ie_he_6ghz_band_cap( 9880*5113495bSYour Name tpAniSirGlobal, 9881*5113495bSYour Name tDot11fIEhe_6ghz_band_cap *, 9882*5113495bSYour Name uint8_t *, 9883*5113495bSYour Name uint32_t, 9884*5113495bSYour Name uint32_t*); 9885*5113495bSYour Name 9886*5113495bSYour Name uint32_t dot11f_get_packed_ie_he_6ghz_band_cap( 9887*5113495bSYour Name tpAniSirGlobal, 9888*5113495bSYour Name tDot11fIEhe_6ghz_band_cap *, 9889*5113495bSYour Name uint32_t*); 9890*5113495bSYour Name 9891*5113495bSYour Name #ifdef __cplusplus 9892*5113495bSYour Name }; /* End extern "C". */ 9893*5113495bSYour Name #endif /* C++ */ 9894*5113495bSYour Name 9895*5113495bSYour Name /* EID 255 (0xff) Extended EID 35 (0x23) */ 9896*5113495bSYour Name typedef struct sDot11fIEhe_cap { 9897*5113495bSYour Name uint8_t present; 9898*5113495bSYour Name uint32_t htc_he:1; 9899*5113495bSYour Name uint32_t twt_request:1; 9900*5113495bSYour Name uint32_t twt_responder:1; 9901*5113495bSYour Name uint32_t fragmentation:2; 9902*5113495bSYour Name uint32_t max_num_frag_msdu_amsdu_exp:3; 9903*5113495bSYour Name uint32_t min_frag_size:2; 9904*5113495bSYour Name uint32_t trigger_frm_mac_pad:2; 9905*5113495bSYour Name uint32_t multi_tid_aggr_rx_supp:3; 9906*5113495bSYour Name uint32_t he_link_adaptation:2; 9907*5113495bSYour Name uint32_t all_ack:1; 9908*5113495bSYour Name uint32_t trigd_rsp_sched:1; 9909*5113495bSYour Name uint32_t a_bsr:1; 9910*5113495bSYour Name uint32_t broadcast_twt:1; 9911*5113495bSYour Name uint32_t ba_32bit_bitmap:1; 9912*5113495bSYour Name uint32_t mu_cascade:1; 9913*5113495bSYour Name uint32_t ack_enabled_multitid:1; 9914*5113495bSYour Name uint32_t reserved:1; 9915*5113495bSYour Name uint32_t omi_a_ctrl:1; 9916*5113495bSYour Name uint32_t ofdma_ra:1; 9917*5113495bSYour Name uint32_t max_ampdu_len_exp_ext:2; 9918*5113495bSYour Name uint32_t amsdu_frag:1; 9919*5113495bSYour Name uint32_t flex_twt_sched:1; 9920*5113495bSYour Name uint32_t rx_ctrl_frame:1; 9921*5113495bSYour Name uint16_t bsrp_ampdu_aggr:1; 9922*5113495bSYour Name uint16_t qtp:1; 9923*5113495bSYour Name uint16_t a_bqr:1; 9924*5113495bSYour Name uint16_t spatial_reuse_param_rspder:1; 9925*5113495bSYour Name uint16_t ndp_feedback_supp:1; 9926*5113495bSYour Name uint16_t ops_supp:1; 9927*5113495bSYour Name uint16_t amsdu_in_ampdu:1; 9928*5113495bSYour Name uint16_t multi_tid_aggr_tx_supp:3; 9929*5113495bSYour Name uint16_t he_sub_ch_sel_tx_supp:1; 9930*5113495bSYour Name uint16_t ul_2x996_tone_ru_supp:1; 9931*5113495bSYour Name uint16_t om_ctrl_ul_mu_data_dis_rx:1; 9932*5113495bSYour Name uint16_t he_dynamic_smps:1; 9933*5113495bSYour Name uint16_t punctured_sounding_supp:1; 9934*5113495bSYour Name uint16_t ht_vht_trg_frm_rx_supp:1; 9935*5113495bSYour Name uint32_t reserved2:1; 9936*5113495bSYour Name uint32_t chan_width_0:1; 9937*5113495bSYour Name uint32_t chan_width_1:1; 9938*5113495bSYour Name uint32_t chan_width_2:1; 9939*5113495bSYour Name uint32_t chan_width_3:1; 9940*5113495bSYour Name uint32_t chan_width_4:1; 9941*5113495bSYour Name uint32_t chan_width_5:1; 9942*5113495bSYour Name uint32_t chan_width_6:1; 9943*5113495bSYour Name uint32_t rx_pream_puncturing:4; 9944*5113495bSYour Name uint32_t device_class:1; 9945*5113495bSYour Name uint32_t ldpc_coding:1; 9946*5113495bSYour Name uint32_t he_1x_ltf_800_gi_ppdu:1; 9947*5113495bSYour Name uint32_t midamble_tx_rx_max_nsts:2; 9948*5113495bSYour Name uint32_t he_4x_ltf_3200_gi_ndp:1; 9949*5113495bSYour Name uint32_t tb_ppdu_tx_stbc_lt_80mhz:1; 9950*5113495bSYour Name uint32_t rx_stbc_lt_80mhz:1; 9951*5113495bSYour Name uint32_t doppler:2; 9952*5113495bSYour Name uint32_t ul_mu:2; 9953*5113495bSYour Name uint32_t dcm_enc_tx:3; 9954*5113495bSYour Name uint32_t dcm_enc_rx:3; 9955*5113495bSYour Name uint32_t ul_he_mu:1; 9956*5113495bSYour Name uint32_t su_beamformer:1; 9957*5113495bSYour Name uint32_t su_beamformee:1; 9958*5113495bSYour Name uint32_t mu_beamformer:1; 9959*5113495bSYour Name uint32_t bfee_sts_lt_80:3; 9960*5113495bSYour Name uint32_t bfee_sts_gt_80:3; 9961*5113495bSYour Name uint32_t num_sounding_lt_80:3; 9962*5113495bSYour Name uint32_t num_sounding_gt_80:3; 9963*5113495bSYour Name uint32_t su_feedback_tone16:1; 9964*5113495bSYour Name uint32_t mu_feedback_tone16:1; 9965*5113495bSYour Name uint32_t codebook_su:1; 9966*5113495bSYour Name uint32_t codebook_mu:1; 9967*5113495bSYour Name uint32_t beamforming_feedback:3; 9968*5113495bSYour Name uint32_t he_er_su_ppdu:1; 9969*5113495bSYour Name uint32_t dl_mu_mimo_part_bw:1; 9970*5113495bSYour Name uint32_t ppet_present:1; 9971*5113495bSYour Name uint32_t srp:1; 9972*5113495bSYour Name uint32_t power_boost:1; 9973*5113495bSYour Name uint32_t he_ltf_800_gi_4x:1; 9974*5113495bSYour Name uint32_t max_nc:3; 9975*5113495bSYour Name uint32_t tb_ppdu_tx_stbc_gt_80mhz:1; 9976*5113495bSYour Name uint32_t rx_stbc_gt_80mhz:1; 9977*5113495bSYour Name uint16_t er_he_ltf_800_gi_4x:1; 9978*5113495bSYour Name uint16_t he_ppdu_20_in_40Mhz_2G:1; 9979*5113495bSYour Name uint16_t he_ppdu_20_in_160_80p80Mhz:1; 9980*5113495bSYour Name uint16_t he_ppdu_80_in_160_80p80Mhz:1; 9981*5113495bSYour Name uint16_t er_1x_he_ltf_gi:1; 9982*5113495bSYour Name uint16_t midamble_tx_rx_1x_he_ltf:1; 9983*5113495bSYour Name uint16_t dcm_max_bw:2; 9984*5113495bSYour Name uint16_t longer_than_16_he_sigb_ofdm_sym:1; 9985*5113495bSYour Name uint16_t non_trig_cqi_feedback:1; 9986*5113495bSYour Name uint16_t tx_1024_qam_lt_242_tone_ru:1; 9987*5113495bSYour Name uint16_t rx_1024_qam_lt_242_tone_ru:1; 9988*5113495bSYour Name uint16_t rx_full_bw_su_he_mu_compress_sigb:1; 9989*5113495bSYour Name uint16_t rx_full_bw_su_he_mu_non_cmpr_sigb:1; 9990*5113495bSYour Name uint16_t reserved3:2; 9991*5113495bSYour Name uint8_t reserved4; 9992*5113495bSYour Name uint16_t rx_he_mcs_map_lt_80; 9993*5113495bSYour Name uint16_t tx_he_mcs_map_lt_80; 9994*5113495bSYour Name uint8_t rx_he_mcs_map_160[1][2]; 9995*5113495bSYour Name uint8_t tx_he_mcs_map_160[1][2]; 9996*5113495bSYour Name uint8_t rx_he_mcs_map_80_80[1][2]; 9997*5113495bSYour Name uint8_t tx_he_mcs_map_80_80[1][2]; 9998*5113495bSYour Name union { 9999*5113495bSYour Name struct { 10000*5113495bSYour Name uint8_t num_ppe_th; 10001*5113495bSYour Name uint8_t ppe_th[25]; 10002*5113495bSYour Name } ppe_threshold; /* ppet_present = 1 */ 10003*5113495bSYour Name } ppet; 10004*5113495bSYour Name } tDot11fIEhe_cap; 10005*5113495bSYour Name 10006*5113495bSYour Name #define DOT11F_EID_HE_CAP (255) 10007*5113495bSYour Name 10008*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 10009*5113495bSYour Name #define DOT11F_IE_HE_CAP_MIN_LEN (21) 10010*5113495bSYour Name 10011*5113495bSYour Name #define DOT11F_IE_HE_CAP_MAX_LEN (54) 10012*5113495bSYour Name 10013*5113495bSYour Name #ifdef __cplusplus 10014*5113495bSYour Name extern "C" { 10015*5113495bSYour Name #endif /* C++ */ 10016*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_he_cap( 10017*5113495bSYour Name tpAniSirGlobal, 10018*5113495bSYour Name uint8_t *, 10019*5113495bSYour Name uint8_t, 10020*5113495bSYour Name tDot11fIEhe_cap*, 10021*5113495bSYour Name bool); 10022*5113495bSYour Name 10023*5113495bSYour Name uint32_t dot11f_pack_ie_he_cap( 10024*5113495bSYour Name tpAniSirGlobal, 10025*5113495bSYour Name tDot11fIEhe_cap *, 10026*5113495bSYour Name uint8_t *, 10027*5113495bSYour Name uint32_t, 10028*5113495bSYour Name uint32_t*); 10029*5113495bSYour Name 10030*5113495bSYour Name uint32_t dot11f_get_packed_ie_he_cap( 10031*5113495bSYour Name tpAniSirGlobal, 10032*5113495bSYour Name tDot11fIEhe_cap *, 10033*5113495bSYour Name uint32_t*); 10034*5113495bSYour Name 10035*5113495bSYour Name #ifdef __cplusplus 10036*5113495bSYour Name }; /* End extern "C". */ 10037*5113495bSYour Name #endif /* C++ */ 10038*5113495bSYour Name 10039*5113495bSYour Name /* EID 255 (0xff) Extended EID 36 (0x24) */ 10040*5113495bSYour Name typedef struct sDot11fIEhe_op { 10041*5113495bSYour Name uint8_t present; 10042*5113495bSYour Name uint16_t default_pe:3; 10043*5113495bSYour Name uint16_t twt_required:1; 10044*5113495bSYour Name uint16_t txop_rts_threshold:10; 10045*5113495bSYour Name uint16_t vht_oper_present:1; 10046*5113495bSYour Name uint16_t co_located_bss:1; 10047*5113495bSYour Name uint8_t er_su_disable:1; 10048*5113495bSYour Name uint8_t oper_info_6g_present:1; 10049*5113495bSYour Name uint8_t reserved2:6; 10050*5113495bSYour Name uint8_t bss_color:6; 10051*5113495bSYour Name uint8_t partial_bss_col:1; 10052*5113495bSYour Name uint8_t bss_col_disabled:1; 10053*5113495bSYour Name uint8_t basic_mcs_nss[2]; 10054*5113495bSYour Name union { 10055*5113495bSYour Name struct { 10056*5113495bSYour Name uint8_t chan_width; 10057*5113495bSYour Name uint8_t center_freq_seg0; 10058*5113495bSYour Name uint8_t center_freq_seg1; 10059*5113495bSYour Name } info; /* vht_oper_present = 1 */ 10060*5113495bSYour Name } vht_oper; 10061*5113495bSYour Name union { 10062*5113495bSYour Name struct { 10063*5113495bSYour Name uint8_t data; 10064*5113495bSYour Name } info; /* co_located_bss = 1 */ 10065*5113495bSYour Name } maxbssid_ind; 10066*5113495bSYour Name union { 10067*5113495bSYour Name struct { 10068*5113495bSYour Name uint8_t primary_ch; 10069*5113495bSYour Name uint8_t ch_width:2; 10070*5113495bSYour Name uint8_t dup_bcon:1; 10071*5113495bSYour Name uint8_t reg_info:3; 10072*5113495bSYour Name uint8_t reserved:2; 10073*5113495bSYour Name uint8_t center_freq_seg0; 10074*5113495bSYour Name uint8_t center_freq_seg1; 10075*5113495bSYour Name uint8_t min_rate; 10076*5113495bSYour Name } info; /* oper_info_6g_present = 1 */ 10077*5113495bSYour Name } oper_info_6g; 10078*5113495bSYour Name } tDot11fIEhe_op; 10079*5113495bSYour Name 10080*5113495bSYour Name #define DOT11F_EID_HE_OP (255) 10081*5113495bSYour Name 10082*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 10083*5113495bSYour Name #define DOT11F_IE_HE_OP_MIN_LEN (6) 10084*5113495bSYour Name 10085*5113495bSYour Name #define DOT11F_IE_HE_OP_MAX_LEN (15) 10086*5113495bSYour Name 10087*5113495bSYour Name #ifdef __cplusplus 10088*5113495bSYour Name extern "C" { 10089*5113495bSYour Name #endif /* C++ */ 10090*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_he_op( 10091*5113495bSYour Name tpAniSirGlobal, 10092*5113495bSYour Name uint8_t *, 10093*5113495bSYour Name uint8_t, 10094*5113495bSYour Name tDot11fIEhe_op*, 10095*5113495bSYour Name bool); 10096*5113495bSYour Name 10097*5113495bSYour Name uint32_t dot11f_pack_ie_he_op( 10098*5113495bSYour Name tpAniSirGlobal, 10099*5113495bSYour Name tDot11fIEhe_op *, 10100*5113495bSYour Name uint8_t *, 10101*5113495bSYour Name uint32_t, 10102*5113495bSYour Name uint32_t*); 10103*5113495bSYour Name 10104*5113495bSYour Name uint32_t dot11f_get_packed_ie_he_op( 10105*5113495bSYour Name tpAniSirGlobal, 10106*5113495bSYour Name tDot11fIEhe_op *, 10107*5113495bSYour Name uint32_t*); 10108*5113495bSYour Name 10109*5113495bSYour Name #ifdef __cplusplus 10110*5113495bSYour Name }; /* End extern "C". */ 10111*5113495bSYour Name #endif /* C++ */ 10112*5113495bSYour Name 10113*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x10} */ 10114*5113495bSYour Name typedef struct sDot11fIEhs20vendor_ie { 10115*5113495bSYour Name uint8_t present; 10116*5113495bSYour Name uint8_t dgaf_dis:1; 10117*5113495bSYour Name uint8_t hs_id_present:2; 10118*5113495bSYour Name uint8_t reserved:1; 10119*5113495bSYour Name uint8_t release_num:4; 10120*5113495bSYour Name union { 10121*5113495bSYour Name struct { 10122*5113495bSYour Name uint16_t pps_mo_id; 10123*5113495bSYour Name } pps_mo; /* hs_id_present = 1 */ 10124*5113495bSYour Name struct { 10125*5113495bSYour Name uint16_t anqp_domain_id; 10126*5113495bSYour Name } anqp_domain; /* hs_id_present = 2 */ 10127*5113495bSYour Name } hs_id; 10128*5113495bSYour Name } tDot11fIEhs20vendor_ie; 10129*5113495bSYour Name 10130*5113495bSYour Name #define DOT11F_EID_HS20VENDOR_IE (221) 10131*5113495bSYour Name 10132*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 10133*5113495bSYour Name #define DOT11F_IE_HS20VENDOR_IE_MIN_LEN (5) 10134*5113495bSYour Name 10135*5113495bSYour Name #define DOT11F_IE_HS20VENDOR_IE_MAX_LEN (7) 10136*5113495bSYour Name 10137*5113495bSYour Name #ifdef __cplusplus 10138*5113495bSYour Name extern "C" { 10139*5113495bSYour Name #endif /* C++ */ 10140*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_hs20vendor_ie( 10141*5113495bSYour Name tpAniSirGlobal, 10142*5113495bSYour Name uint8_t *, 10143*5113495bSYour Name uint8_t, 10144*5113495bSYour Name tDot11fIEhs20vendor_ie*, 10145*5113495bSYour Name bool); 10146*5113495bSYour Name 10147*5113495bSYour Name uint32_t dot11f_pack_ie_hs20vendor_ie( 10148*5113495bSYour Name tpAniSirGlobal, 10149*5113495bSYour Name tDot11fIEhs20vendor_ie *, 10150*5113495bSYour Name uint8_t *, 10151*5113495bSYour Name uint32_t, 10152*5113495bSYour Name uint32_t*); 10153*5113495bSYour Name 10154*5113495bSYour Name uint32_t dot11f_get_packed_ie_hs20vendor_ie( 10155*5113495bSYour Name tpAniSirGlobal, 10156*5113495bSYour Name tDot11fIEhs20vendor_ie *, 10157*5113495bSYour Name uint32_t*); 10158*5113495bSYour Name 10159*5113495bSYour Name #ifdef __cplusplus 10160*5113495bSYour Name }; /* End extern "C". */ 10161*5113495bSYour Name #endif /* C++ */ 10162*5113495bSYour Name 10163*5113495bSYour Name /* EID 72 (0x48) */ 10164*5113495bSYour Name typedef struct sDot11fIEht2040_bss_coexistence { 10165*5113495bSYour Name uint8_t present; 10166*5113495bSYour Name uint8_t info_request:1; 10167*5113495bSYour Name uint8_t forty_mhz_intolerant:1; 10168*5113495bSYour Name uint8_t twenty_mhz_bsswidth_req:1; 10169*5113495bSYour Name uint8_t obss_scan_exemption_req:1; 10170*5113495bSYour Name uint8_t obss_scan_exemption_grant:1; 10171*5113495bSYour Name uint8_t unused:3; 10172*5113495bSYour Name } tDot11fIEht2040_bss_coexistence; 10173*5113495bSYour Name 10174*5113495bSYour Name #define DOT11F_EID_HT2040_BSS_COEXISTENCE (72) 10175*5113495bSYour Name 10176*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 10177*5113495bSYour Name #define DOT11F_IE_HT2040_BSS_COEXISTENCE_MIN_LEN (1) 10178*5113495bSYour Name 10179*5113495bSYour Name #define DOT11F_IE_HT2040_BSS_COEXISTENCE_MAX_LEN (1) 10180*5113495bSYour Name 10181*5113495bSYour Name #ifdef __cplusplus 10182*5113495bSYour Name extern "C" { 10183*5113495bSYour Name #endif /* C++ */ 10184*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ht2040_bss_coexistence( 10185*5113495bSYour Name tpAniSirGlobal, 10186*5113495bSYour Name uint8_t *, 10187*5113495bSYour Name uint8_t, 10188*5113495bSYour Name tDot11fIEht2040_bss_coexistence*, 10189*5113495bSYour Name bool); 10190*5113495bSYour Name 10191*5113495bSYour Name uint32_t dot11f_pack_ie_ht2040_bss_coexistence( 10192*5113495bSYour Name tpAniSirGlobal, 10193*5113495bSYour Name tDot11fIEht2040_bss_coexistence *, 10194*5113495bSYour Name uint8_t *, 10195*5113495bSYour Name uint32_t, 10196*5113495bSYour Name uint32_t*); 10197*5113495bSYour Name 10198*5113495bSYour Name uint32_t dot11f_get_packed_ie_ht2040_bss_coexistence( 10199*5113495bSYour Name tpAniSirGlobal, 10200*5113495bSYour Name tDot11fIEht2040_bss_coexistence *, 10201*5113495bSYour Name uint32_t*); 10202*5113495bSYour Name 10203*5113495bSYour Name #ifdef __cplusplus 10204*5113495bSYour Name }; /* End extern "C". */ 10205*5113495bSYour Name #endif /* C++ */ 10206*5113495bSYour Name 10207*5113495bSYour Name /* EID 73 (0x49) */ 10208*5113495bSYour Name typedef struct sDot11fIEht2040_bss_intolerant_report { 10209*5113495bSYour Name uint8_t present; 10210*5113495bSYour Name uint8_t operating_class; 10211*5113495bSYour Name uint8_t num_channel_list; 10212*5113495bSYour Name uint8_t channel_list[50]; 10213*5113495bSYour Name } tDot11fIEht2040_bss_intolerant_report; 10214*5113495bSYour Name 10215*5113495bSYour Name #define DOT11F_EID_HT2040_BSS_INTOLERANT_REPORT (73) 10216*5113495bSYour Name 10217*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 10218*5113495bSYour Name #define DOT11F_IE_HT2040_BSS_INTOLERANT_REPORT_MIN_LEN (1) 10219*5113495bSYour Name 10220*5113495bSYour Name #define DOT11F_IE_HT2040_BSS_INTOLERANT_REPORT_MAX_LEN (51) 10221*5113495bSYour Name 10222*5113495bSYour Name #ifdef __cplusplus 10223*5113495bSYour Name extern "C" { 10224*5113495bSYour Name #endif /* C++ */ 10225*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_ht2040_bss_intolerant_report( 10226*5113495bSYour Name tpAniSirGlobal, 10227*5113495bSYour Name uint8_t *, 10228*5113495bSYour Name uint8_t, 10229*5113495bSYour Name tDot11fIEht2040_bss_intolerant_report*, 10230*5113495bSYour Name bool); 10231*5113495bSYour Name 10232*5113495bSYour Name uint32_t dot11f_pack_ie_ht2040_bss_intolerant_report( 10233*5113495bSYour Name tpAniSirGlobal, 10234*5113495bSYour Name tDot11fIEht2040_bss_intolerant_report *, 10235*5113495bSYour Name uint8_t *, 10236*5113495bSYour Name uint32_t, 10237*5113495bSYour Name uint32_t*); 10238*5113495bSYour Name 10239*5113495bSYour Name uint32_t dot11f_get_packed_ie_ht2040_bss_intolerant_report( 10240*5113495bSYour Name tpAniSirGlobal, 10241*5113495bSYour Name tDot11fIEht2040_bss_intolerant_report *, 10242*5113495bSYour Name uint32_t*); 10243*5113495bSYour Name 10244*5113495bSYour Name #ifdef __cplusplus 10245*5113495bSYour Name }; /* End extern "C". */ 10246*5113495bSYour Name #endif /* C++ */ 10247*5113495bSYour Name 10248*5113495bSYour Name /* EID 255 (0xff) Extended EID 52 (0x34) */ 10249*5113495bSYour Name typedef struct sDot11fIEmax_chan_switch_time { 10250*5113495bSYour Name uint8_t present; 10251*5113495bSYour Name uint8_t switch_time[3]; 10252*5113495bSYour Name } tDot11fIEmax_chan_switch_time; 10253*5113495bSYour Name 10254*5113495bSYour Name #define DOT11F_EID_MAX_CHAN_SWITCH_TIME (255) 10255*5113495bSYour Name 10256*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 10257*5113495bSYour Name #define DOT11F_IE_MAX_CHAN_SWITCH_TIME_MIN_LEN (3) 10258*5113495bSYour Name 10259*5113495bSYour Name #define DOT11F_IE_MAX_CHAN_SWITCH_TIME_MAX_LEN (3) 10260*5113495bSYour Name 10261*5113495bSYour Name #ifdef __cplusplus 10262*5113495bSYour Name extern "C" { 10263*5113495bSYour Name #endif /* C++ */ 10264*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_max_chan_switch_time( 10265*5113495bSYour Name tpAniSirGlobal, 10266*5113495bSYour Name uint8_t *, 10267*5113495bSYour Name uint8_t, 10268*5113495bSYour Name tDot11fIEmax_chan_switch_time*, 10269*5113495bSYour Name bool); 10270*5113495bSYour Name 10271*5113495bSYour Name uint32_t dot11f_pack_ie_max_chan_switch_time( 10272*5113495bSYour Name tpAniSirGlobal, 10273*5113495bSYour Name tDot11fIEmax_chan_switch_time *, 10274*5113495bSYour Name uint8_t *, 10275*5113495bSYour Name uint32_t, 10276*5113495bSYour Name uint32_t*); 10277*5113495bSYour Name 10278*5113495bSYour Name uint32_t dot11f_get_packed_ie_max_chan_switch_time( 10279*5113495bSYour Name tpAniSirGlobal, 10280*5113495bSYour Name tDot11fIEmax_chan_switch_time *, 10281*5113495bSYour Name uint32_t*); 10282*5113495bSYour Name 10283*5113495bSYour Name #ifdef __cplusplus 10284*5113495bSYour Name }; /* End extern "C". */ 10285*5113495bSYour Name #endif /* C++ */ 10286*5113495bSYour Name 10287*5113495bSYour Name /* EID 255 (0xff) Extended EID 107 (0x6b) */ 10288*5113495bSYour Name typedef struct sDot11fIEmlo_ie { 10289*5113495bSYour Name uint8_t present; 10290*5113495bSYour Name uint8_t num_data; 10291*5113495bSYour Name uint8_t data[255]; 10292*5113495bSYour Name } tDot11fIEmlo_ie; 10293*5113495bSYour Name 10294*5113495bSYour Name #define DOT11F_EID_MLO_IE (255) 10295*5113495bSYour Name 10296*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 10297*5113495bSYour Name #define DOT11F_IE_MLO_IE_MIN_LEN (9) 10298*5113495bSYour Name 10299*5113495bSYour Name #define DOT11F_IE_MLO_IE_MAX_LEN (255) 10300*5113495bSYour Name 10301*5113495bSYour Name #ifdef __cplusplus 10302*5113495bSYour Name extern "C" { 10303*5113495bSYour Name #endif /* C++ */ 10304*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_mlo_ie( 10305*5113495bSYour Name tpAniSirGlobal, 10306*5113495bSYour Name uint8_t *, 10307*5113495bSYour Name uint8_t, 10308*5113495bSYour Name tDot11fIEmlo_ie*, 10309*5113495bSYour Name bool); 10310*5113495bSYour Name 10311*5113495bSYour Name uint32_t dot11f_pack_ie_mlo_ie( 10312*5113495bSYour Name tpAniSirGlobal, 10313*5113495bSYour Name tDot11fIEmlo_ie *, 10314*5113495bSYour Name uint8_t *, 10315*5113495bSYour Name uint32_t, 10316*5113495bSYour Name uint32_t*); 10317*5113495bSYour Name 10318*5113495bSYour Name uint32_t dot11f_get_packed_ie_mlo_ie( 10319*5113495bSYour Name tpAniSirGlobal, 10320*5113495bSYour Name tDot11fIEmlo_ie *, 10321*5113495bSYour Name uint32_t*); 10322*5113495bSYour Name 10323*5113495bSYour Name #ifdef __cplusplus 10324*5113495bSYour Name }; /* End extern "C". */ 10325*5113495bSYour Name #endif /* C++ */ 10326*5113495bSYour Name 10327*5113495bSYour Name /* EID 255 (0xff) Extended EID 38 (0x26) */ 10328*5113495bSYour Name typedef struct sDot11fIEmu_edca_param_set { 10329*5113495bSYour Name uint8_t present; 10330*5113495bSYour Name uint8_t qos; 10331*5113495bSYour Name uint8_t acbe_aifsn:4; 10332*5113495bSYour Name uint8_t acbe_acm:1; 10333*5113495bSYour Name uint8_t acbe_aci:2; 10334*5113495bSYour Name uint8_t unused1:1; 10335*5113495bSYour Name uint8_t acbe_acwmin:4; 10336*5113495bSYour Name uint8_t acbe_acwmax:4; 10337*5113495bSYour Name uint8_t acbe_muedca_timer; 10338*5113495bSYour Name uint8_t acbk_aifsn:4; 10339*5113495bSYour Name uint8_t acbk_acm:1; 10340*5113495bSYour Name uint8_t acbk_aci:2; 10341*5113495bSYour Name uint8_t unused2:1; 10342*5113495bSYour Name uint8_t acbk_acwmin:4; 10343*5113495bSYour Name uint8_t acbk_acwmax:4; 10344*5113495bSYour Name uint8_t acbk_muedca_timer; 10345*5113495bSYour Name uint8_t acvi_aifsn:4; 10346*5113495bSYour Name uint8_t acvi_acm:1; 10347*5113495bSYour Name uint8_t acvi_aci:2; 10348*5113495bSYour Name uint8_t unused3:1; 10349*5113495bSYour Name uint8_t acvi_acwmin:4; 10350*5113495bSYour Name uint8_t acvi_acwmax:4; 10351*5113495bSYour Name uint8_t acvi_muedca_timer; 10352*5113495bSYour Name uint8_t acvo_aifsn:4; 10353*5113495bSYour Name uint8_t acvo_acm:1; 10354*5113495bSYour Name uint8_t acvo_aci:2; 10355*5113495bSYour Name uint8_t unused4:1; 10356*5113495bSYour Name uint8_t acvo_acwmin:4; 10357*5113495bSYour Name uint8_t acvo_acwmax:4; 10358*5113495bSYour Name uint8_t acvo_muedca_timer; 10359*5113495bSYour Name } tDot11fIEmu_edca_param_set; 10360*5113495bSYour Name 10361*5113495bSYour Name #define DOT11F_EID_MU_EDCA_PARAM_SET (255) 10362*5113495bSYour Name 10363*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 10364*5113495bSYour Name #define DOT11F_IE_MU_EDCA_PARAM_SET_MIN_LEN (13) 10365*5113495bSYour Name 10366*5113495bSYour Name #define DOT11F_IE_MU_EDCA_PARAM_SET_MAX_LEN (13) 10367*5113495bSYour Name 10368*5113495bSYour Name #ifdef __cplusplus 10369*5113495bSYour Name extern "C" { 10370*5113495bSYour Name #endif /* C++ */ 10371*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_mu_edca_param_set( 10372*5113495bSYour Name tpAniSirGlobal, 10373*5113495bSYour Name uint8_t *, 10374*5113495bSYour Name uint8_t, 10375*5113495bSYour Name tDot11fIEmu_edca_param_set*, 10376*5113495bSYour Name bool); 10377*5113495bSYour Name 10378*5113495bSYour Name uint32_t dot11f_pack_ie_mu_edca_param_set( 10379*5113495bSYour Name tpAniSirGlobal, 10380*5113495bSYour Name tDot11fIEmu_edca_param_set *, 10381*5113495bSYour Name uint8_t *, 10382*5113495bSYour Name uint32_t, 10383*5113495bSYour Name uint32_t*); 10384*5113495bSYour Name 10385*5113495bSYour Name uint32_t dot11f_get_packed_ie_mu_edca_param_set( 10386*5113495bSYour Name tpAniSirGlobal, 10387*5113495bSYour Name tDot11fIEmu_edca_param_set *, 10388*5113495bSYour Name uint32_t*); 10389*5113495bSYour Name 10390*5113495bSYour Name #ifdef __cplusplus 10391*5113495bSYour Name }; /* End extern "C". */ 10392*5113495bSYour Name #endif /* C++ */ 10393*5113495bSYour Name 10394*5113495bSYour Name /* EID 255 (0xff) Extended EID 56 (0x38) */ 10395*5113495bSYour Name typedef struct sDot11fIEnon_inheritance { 10396*5113495bSYour Name uint8_t present; 10397*5113495bSYour Name uint8_t num_data; 10398*5113495bSYour Name uint8_t data[255]; 10399*5113495bSYour Name } tDot11fIEnon_inheritance; 10400*5113495bSYour Name 10401*5113495bSYour Name #define DOT11F_EID_NON_INHERITANCE (255) 10402*5113495bSYour Name 10403*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 10404*5113495bSYour Name #define DOT11F_IE_NON_INHERITANCE_MIN_LEN (0) 10405*5113495bSYour Name 10406*5113495bSYour Name #define DOT11F_IE_NON_INHERITANCE_MAX_LEN (255) 10407*5113495bSYour Name 10408*5113495bSYour Name #ifdef __cplusplus 10409*5113495bSYour Name extern "C" { 10410*5113495bSYour Name #endif /* C++ */ 10411*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_non_inheritance( 10412*5113495bSYour Name tpAniSirGlobal, 10413*5113495bSYour Name uint8_t *, 10414*5113495bSYour Name uint8_t, 10415*5113495bSYour Name tDot11fIEnon_inheritance*, 10416*5113495bSYour Name bool); 10417*5113495bSYour Name 10418*5113495bSYour Name uint32_t dot11f_pack_ie_non_inheritance( 10419*5113495bSYour Name tpAniSirGlobal, 10420*5113495bSYour Name tDot11fIEnon_inheritance *, 10421*5113495bSYour Name uint8_t *, 10422*5113495bSYour Name uint32_t, 10423*5113495bSYour Name uint32_t*); 10424*5113495bSYour Name 10425*5113495bSYour Name uint32_t dot11f_get_packed_ie_non_inheritance( 10426*5113495bSYour Name tpAniSirGlobal, 10427*5113495bSYour Name tDot11fIEnon_inheritance *, 10428*5113495bSYour Name uint32_t*); 10429*5113495bSYour Name 10430*5113495bSYour Name #ifdef __cplusplus 10431*5113495bSYour Name }; /* End extern "C". */ 10432*5113495bSYour Name #endif /* C++ */ 10433*5113495bSYour Name 10434*5113495bSYour Name /* EID 255 (0xff) Extended EID 54 (0x36) */ 10435*5113495bSYour Name typedef struct sDot11fIEoci { 10436*5113495bSYour Name uint8_t present; 10437*5113495bSYour Name uint8_t op_class; 10438*5113495bSYour Name uint8_t prim_ch_num; 10439*5113495bSYour Name uint8_t freq_seg_1_ch_num; 10440*5113495bSYour Name } tDot11fIEoci; 10441*5113495bSYour Name 10442*5113495bSYour Name #define DOT11F_EID_OCI (255) 10443*5113495bSYour Name 10444*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 10445*5113495bSYour Name #define DOT11F_IE_OCI_MIN_LEN (3) 10446*5113495bSYour Name 10447*5113495bSYour Name #define DOT11F_IE_OCI_MAX_LEN (3) 10448*5113495bSYour Name 10449*5113495bSYour Name #ifdef __cplusplus 10450*5113495bSYour Name extern "C" { 10451*5113495bSYour Name #endif /* C++ */ 10452*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_oci( 10453*5113495bSYour Name tpAniSirGlobal, 10454*5113495bSYour Name uint8_t *, 10455*5113495bSYour Name uint8_t, 10456*5113495bSYour Name tDot11fIEoci*, 10457*5113495bSYour Name bool); 10458*5113495bSYour Name 10459*5113495bSYour Name uint32_t dot11f_pack_ie_oci( 10460*5113495bSYour Name tpAniSirGlobal, 10461*5113495bSYour Name tDot11fIEoci *, 10462*5113495bSYour Name uint8_t *, 10463*5113495bSYour Name uint32_t, 10464*5113495bSYour Name uint32_t*); 10465*5113495bSYour Name 10466*5113495bSYour Name uint32_t dot11f_get_packed_ie_oci( 10467*5113495bSYour Name tpAniSirGlobal, 10468*5113495bSYour Name tDot11fIEoci *, 10469*5113495bSYour Name uint32_t*); 10470*5113495bSYour Name 10471*5113495bSYour Name #ifdef __cplusplus 10472*5113495bSYour Name }; /* End extern "C". */ 10473*5113495bSYour Name #endif /* C++ */ 10474*5113495bSYour Name 10475*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x12} */ 10476*5113495bSYour Name typedef struct sDot11fIEosen_ie { 10477*5113495bSYour Name uint8_t present; 10478*5113495bSYour Name uint8_t num_data; 10479*5113495bSYour Name uint8_t data[255]; 10480*5113495bSYour Name } tDot11fIEosen_ie; 10481*5113495bSYour Name 10482*5113495bSYour Name #define DOT11F_EID_OSEN_IE (221) 10483*5113495bSYour Name 10484*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 10485*5113495bSYour Name #define DOT11F_IE_OSEN_IE_MIN_LEN (4) 10486*5113495bSYour Name 10487*5113495bSYour Name #define DOT11F_IE_OSEN_IE_MAX_LEN (259) 10488*5113495bSYour Name 10489*5113495bSYour Name #ifdef __cplusplus 10490*5113495bSYour Name extern "C" { 10491*5113495bSYour Name #endif /* C++ */ 10492*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_osen_ie( 10493*5113495bSYour Name tpAniSirGlobal, 10494*5113495bSYour Name uint8_t *, 10495*5113495bSYour Name uint8_t, 10496*5113495bSYour Name tDot11fIEosen_ie*, 10497*5113495bSYour Name bool); 10498*5113495bSYour Name 10499*5113495bSYour Name uint32_t dot11f_pack_ie_osen_ie( 10500*5113495bSYour Name tpAniSirGlobal, 10501*5113495bSYour Name tDot11fIEosen_ie *, 10502*5113495bSYour Name uint8_t *, 10503*5113495bSYour Name uint32_t, 10504*5113495bSYour Name uint32_t*); 10505*5113495bSYour Name 10506*5113495bSYour Name uint32_t dot11f_get_packed_ie_osen_ie( 10507*5113495bSYour Name tpAniSirGlobal, 10508*5113495bSYour Name tDot11fIEosen_ie *, 10509*5113495bSYour Name uint32_t*); 10510*5113495bSYour Name 10511*5113495bSYour Name #ifdef __cplusplus 10512*5113495bSYour Name }; /* End extern "C". */ 10513*5113495bSYour Name #endif /* C++ */ 10514*5113495bSYour Name 10515*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x8c, 0xfd, 0xf0, 0x01} (Multi-IE) */ 10516*5113495bSYour Name typedef struct sDot11fIEqcn_ie { 10517*5113495bSYour Name uint8_t present; 10518*5113495bSYour Name tDot11fTLVqcn_version qcn_version; 10519*5113495bSYour Name tDot11fTLVvht_mcs11_attr vht_mcs11_attr; 10520*5113495bSYour Name tDot11fTLVhe_400ns_sgi_attr he_400ns_sgi_attr; 10521*5113495bSYour Name tDot11fTLVhe_2xltf_160mhz_supp he_2xltf_160mhz_supp; 10522*5113495bSYour Name tDot11fTLVhe_dl_ofdma_attr he_dl_ofdma_attr; 10523*5113495bSYour Name tDot11fTLVtrans_reasonp_attr trans_reasonp_attr; 10524*5113495bSYour Name tDot11fTLVtrans_rejectp_attr trans_rejectp_attr; 10525*5113495bSYour Name tDot11fTLVhe_dl_mumimo_attr he_dl_mumimo_attr; 10526*5113495bSYour Name tDot11fTLVhe_mcs13_attr he_mcs13_attr; 10527*5113495bSYour Name tDot11fTLVedca_pifs_param_attr edca_pifs_param_attr; 10528*5113495bSYour Name tDot11fTLVecsa_target_tsf_info_attr ecsa_target_tsf_info_attr; 10529*5113495bSYour Name } tDot11fIEqcn_ie; 10530*5113495bSYour Name 10531*5113495bSYour Name #define DOT11F_EID_QCN_IE (221) 10532*5113495bSYour Name 10533*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 10534*5113495bSYour Name #define DOT11F_IE_QCN_IE_MIN_LEN (4) 10535*5113495bSYour Name 10536*5113495bSYour Name #define DOT11F_IE_QCN_IE_MAX_LEN (53) 10537*5113495bSYour Name 10538*5113495bSYour Name #ifdef __cplusplus 10539*5113495bSYour Name extern "C" { 10540*5113495bSYour Name #endif /* C++ */ 10541*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_qcn_ie( 10542*5113495bSYour Name tpAniSirGlobal, 10543*5113495bSYour Name uint8_t *, 10544*5113495bSYour Name uint8_t, 10545*5113495bSYour Name tDot11fIEqcn_ie*, 10546*5113495bSYour Name bool); 10547*5113495bSYour Name 10548*5113495bSYour Name uint32_t dot11f_pack_ie_qcn_ie( 10549*5113495bSYour Name tpAniSirGlobal, 10550*5113495bSYour Name tDot11fIEqcn_ie *, 10551*5113495bSYour Name uint8_t *, 10552*5113495bSYour Name uint32_t, 10553*5113495bSYour Name uint32_t*); 10554*5113495bSYour Name 10555*5113495bSYour Name uint32_t dot11f_get_packed_ie_qcn_ie( 10556*5113495bSYour Name tpAniSirGlobal, 10557*5113495bSYour Name tDot11fIEqcn_ie *, 10558*5113495bSYour Name uint32_t*); 10559*5113495bSYour Name 10560*5113495bSYour Name #ifdef __cplusplus 10561*5113495bSYour Name }; /* End extern "C". */ 10562*5113495bSYour Name #endif /* C++ */ 10563*5113495bSYour Name 10564*5113495bSYour Name /* EID 201 (0xc9) */ 10565*5113495bSYour Name typedef struct sDot11fIEreduced_neighbor_report { 10566*5113495bSYour Name uint8_t present; 10567*5113495bSYour Name uint16_t tbtt_type:2; 10568*5113495bSYour Name uint16_t filtered_neighbor_ap:1; 10569*5113495bSYour Name uint16_t reserved:1; 10570*5113495bSYour Name uint16_t tbtt_info_count:4; 10571*5113495bSYour Name uint16_t tbtt_info_len:8; 10572*5113495bSYour Name uint8_t op_class; 10573*5113495bSYour Name uint8_t channel_num; 10574*5113495bSYour Name union { 10575*5113495bSYour Name struct { 10576*5113495bSYour Name uint8_t tbtt_offset; 10577*5113495bSYour Name } tbtt_info_1; /* tbtt_info_len = 1 */ 10578*5113495bSYour Name struct { 10579*5113495bSYour Name uint8_t tbtt_offset; 10580*5113495bSYour Name uint8_t bss_params; 10581*5113495bSYour Name } tbtt_info_2; /* tbtt_info_len = 2 */ 10582*5113495bSYour Name struct { 10583*5113495bSYour Name uint8_t tbtt_offset; 10584*5113495bSYour Name uint32_t short_ssid; 10585*5113495bSYour Name } tbtt_info_5; /* tbtt_info_len = 5 */ 10586*5113495bSYour Name struct { 10587*5113495bSYour Name uint8_t tbtt_offset; 10588*5113495bSYour Name uint32_t short_ssid; 10589*5113495bSYour Name uint8_t bss_params; 10590*5113495bSYour Name } tbtt_info_6; /* tbtt_info_len = 6 */ 10591*5113495bSYour Name struct { 10592*5113495bSYour Name uint8_t tbtt_offset; 10593*5113495bSYour Name uint8_t bssid[6]; 10594*5113495bSYour Name } tbtt_info_7; /* tbtt_info_len = 7 */ 10595*5113495bSYour Name struct { 10596*5113495bSYour Name uint8_t tbtt_offset; 10597*5113495bSYour Name uint8_t bssid[6]; 10598*5113495bSYour Name uint8_t bss_params; 10599*5113495bSYour Name } tbtt_info_8; /* tbtt_info_len = 8 */ 10600*5113495bSYour Name struct { 10601*5113495bSYour Name uint8_t tbtt_offset; 10602*5113495bSYour Name uint8_t bssid[6]; 10603*5113495bSYour Name uint8_t bss_params; 10604*5113495bSYour Name uint8_t psd_20mhz; 10605*5113495bSYour Name } tbtt_info_9; /* tbtt_info_len = 9 */ 10606*5113495bSYour Name struct { 10607*5113495bSYour Name uint8_t tbtt_offset; 10608*5113495bSYour Name uint8_t bssid[6]; 10609*5113495bSYour Name uint32_t short_ssid; 10610*5113495bSYour Name } tbtt_info_11; /* tbtt_info_len = 11 */ 10611*5113495bSYour Name struct { 10612*5113495bSYour Name uint8_t tbtt_offset; 10613*5113495bSYour Name uint8_t bssid[6]; 10614*5113495bSYour Name uint32_t short_ssid; 10615*5113495bSYour Name uint8_t bss_params; 10616*5113495bSYour Name } tbtt_info_12; /* tbtt_info_len = 12 */ 10617*5113495bSYour Name struct { 10618*5113495bSYour Name uint8_t tbtt_offset; 10619*5113495bSYour Name uint8_t bssid[6]; 10620*5113495bSYour Name uint32_t short_ssid; 10621*5113495bSYour Name uint8_t bss_params; 10622*5113495bSYour Name uint8_t psd_20mhz; 10623*5113495bSYour Name } tbtt_info_13; /* tbtt_info_len = 13 */ 10624*5113495bSYour Name struct { 10625*5113495bSYour Name uint8_t tbtt_offset; 10626*5113495bSYour Name uint8_t bssid[6]; 10627*5113495bSYour Name uint32_t short_ssid; 10628*5113495bSYour Name uint8_t bss_params; 10629*5113495bSYour Name uint8_t psd_20mhz; 10630*5113495bSYour Name uint8_t mld_id; 10631*5113495bSYour Name uint16_t link_id:4; 10632*5113495bSYour Name uint16_t bss_param_change_cnt:8; 10633*5113495bSYour Name uint16_t all_updates_included:1; 10634*5113495bSYour Name uint16_t reserved:3; 10635*5113495bSYour Name } tbtt_info_16; /* tbtt_info_len = 16 */ 10636*5113495bSYour Name } tbtt_info; 10637*5113495bSYour Name } tDot11fIEreduced_neighbor_report; 10638*5113495bSYour Name 10639*5113495bSYour Name #define DOT11F_EID_REDUCED_NEIGHBOR_REPORT (201) 10640*5113495bSYour Name 10641*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 10642*5113495bSYour Name #define DOT11F_IE_REDUCED_NEIGHBOR_REPORT_MIN_LEN (5) 10643*5113495bSYour Name 10644*5113495bSYour Name #define DOT11F_IE_REDUCED_NEIGHBOR_REPORT_MAX_LEN (20) 10645*5113495bSYour Name 10646*5113495bSYour Name #ifdef __cplusplus 10647*5113495bSYour Name extern "C" { 10648*5113495bSYour Name #endif /* C++ */ 10649*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_reduced_neighbor_report( 10650*5113495bSYour Name tpAniSirGlobal, 10651*5113495bSYour Name uint8_t *, 10652*5113495bSYour Name uint8_t, 10653*5113495bSYour Name tDot11fIEreduced_neighbor_report*, 10654*5113495bSYour Name bool); 10655*5113495bSYour Name 10656*5113495bSYour Name uint32_t dot11f_pack_ie_reduced_neighbor_report( 10657*5113495bSYour Name tpAniSirGlobal, 10658*5113495bSYour Name tDot11fIEreduced_neighbor_report *, 10659*5113495bSYour Name uint8_t *, 10660*5113495bSYour Name uint32_t, 10661*5113495bSYour Name uint32_t*); 10662*5113495bSYour Name 10663*5113495bSYour Name uint32_t dot11f_get_packed_ie_reduced_neighbor_report( 10664*5113495bSYour Name tpAniSirGlobal, 10665*5113495bSYour Name tDot11fIEreduced_neighbor_report *, 10666*5113495bSYour Name uint32_t*); 10667*5113495bSYour Name 10668*5113495bSYour Name #ifdef __cplusplus 10669*5113495bSYour Name }; /* End extern "C". */ 10670*5113495bSYour Name #endif /* C++ */ 10671*5113495bSYour Name 10672*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x50, 0x6f, 0x9a, 0x1d} */ 10673*5113495bSYour Name typedef struct sDot11fIEroaming_consortium_sel { 10674*5113495bSYour Name uint8_t present; 10675*5113495bSYour Name uint8_t num_data; 10676*5113495bSYour Name uint8_t data[255]; 10677*5113495bSYour Name } tDot11fIEroaming_consortium_sel; 10678*5113495bSYour Name 10679*5113495bSYour Name #define DOT11F_EID_ROAMING_CONSORTIUM_SEL (221) 10680*5113495bSYour Name 10681*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 10682*5113495bSYour Name #define DOT11F_IE_ROAMING_CONSORTIUM_SEL_MIN_LEN (4) 10683*5113495bSYour Name 10684*5113495bSYour Name #define DOT11F_IE_ROAMING_CONSORTIUM_SEL_MAX_LEN (259) 10685*5113495bSYour Name 10686*5113495bSYour Name #ifdef __cplusplus 10687*5113495bSYour Name extern "C" { 10688*5113495bSYour Name #endif /* C++ */ 10689*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_roaming_consortium_sel( 10690*5113495bSYour Name tpAniSirGlobal, 10691*5113495bSYour Name uint8_t *, 10692*5113495bSYour Name uint8_t, 10693*5113495bSYour Name tDot11fIEroaming_consortium_sel*, 10694*5113495bSYour Name bool); 10695*5113495bSYour Name 10696*5113495bSYour Name uint32_t dot11f_pack_ie_roaming_consortium_sel( 10697*5113495bSYour Name tpAniSirGlobal, 10698*5113495bSYour Name tDot11fIEroaming_consortium_sel *, 10699*5113495bSYour Name uint8_t *, 10700*5113495bSYour Name uint32_t, 10701*5113495bSYour Name uint32_t*); 10702*5113495bSYour Name 10703*5113495bSYour Name uint32_t dot11f_get_packed_ie_roaming_consortium_sel( 10704*5113495bSYour Name tpAniSirGlobal, 10705*5113495bSYour Name tDot11fIEroaming_consortium_sel *, 10706*5113495bSYour Name uint32_t*); 10707*5113495bSYour Name 10708*5113495bSYour Name #ifdef __cplusplus 10709*5113495bSYour Name }; /* End extern "C". */ 10710*5113495bSYour Name #endif /* C++ */ 10711*5113495bSYour Name 10712*5113495bSYour Name /* EID 62 (0x3e) */ 10713*5113495bSYour Name typedef struct sDot11fIEsec_chan_offset_ele { 10714*5113495bSYour Name uint8_t present; 10715*5113495bSYour Name uint8_t secondaryChannelOffset; 10716*5113495bSYour Name } tDot11fIEsec_chan_offset_ele; 10717*5113495bSYour Name 10718*5113495bSYour Name #define DOT11F_EID_SEC_CHAN_OFFSET_ELE (62) 10719*5113495bSYour Name 10720*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 10721*5113495bSYour Name #define DOT11F_IE_SEC_CHAN_OFFSET_ELE_MIN_LEN (1) 10722*5113495bSYour Name 10723*5113495bSYour Name #define DOT11F_IE_SEC_CHAN_OFFSET_ELE_MAX_LEN (1) 10724*5113495bSYour Name 10725*5113495bSYour Name #ifdef __cplusplus 10726*5113495bSYour Name extern "C" { 10727*5113495bSYour Name #endif /* C++ */ 10728*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_sec_chan_offset_ele( 10729*5113495bSYour Name tpAniSirGlobal, 10730*5113495bSYour Name uint8_t *, 10731*5113495bSYour Name uint8_t, 10732*5113495bSYour Name tDot11fIEsec_chan_offset_ele*, 10733*5113495bSYour Name bool); 10734*5113495bSYour Name 10735*5113495bSYour Name uint32_t dot11f_pack_ie_sec_chan_offset_ele( 10736*5113495bSYour Name tpAniSirGlobal, 10737*5113495bSYour Name tDot11fIEsec_chan_offset_ele *, 10738*5113495bSYour Name uint8_t *, 10739*5113495bSYour Name uint32_t, 10740*5113495bSYour Name uint32_t*); 10741*5113495bSYour Name 10742*5113495bSYour Name uint32_t dot11f_get_packed_ie_sec_chan_offset_ele( 10743*5113495bSYour Name tpAniSirGlobal, 10744*5113495bSYour Name tDot11fIEsec_chan_offset_ele *, 10745*5113495bSYour Name uint32_t*); 10746*5113495bSYour Name 10747*5113495bSYour Name #ifdef __cplusplus 10748*5113495bSYour Name }; /* End extern "C". */ 10749*5113495bSYour Name #endif /* C++ */ 10750*5113495bSYour Name 10751*5113495bSYour Name /* EID 255 (0xff) Extended EID 39 (0x27) */ 10752*5113495bSYour Name typedef struct sDot11fIEspatial_reuse { 10753*5113495bSYour Name uint8_t present; 10754*5113495bSYour Name uint8_t psr_disallow:1; 10755*5113495bSYour Name uint8_t non_srg_pd_sr_disallow:1; 10756*5113495bSYour Name uint8_t non_srg_offset_present:1; 10757*5113495bSYour Name uint8_t srg_info_present:1; 10758*5113495bSYour Name uint8_t sr_value15_allow:1; 10759*5113495bSYour Name uint8_t reserved:3; 10760*5113495bSYour Name union { 10761*5113495bSYour Name struct { 10762*5113495bSYour Name uint8_t non_srg_pd_max_offset; 10763*5113495bSYour Name } info; /* non_srg_offset_present = 1 */ 10764*5113495bSYour Name } non_srg_offset; 10765*5113495bSYour Name union { 10766*5113495bSYour Name struct { 10767*5113495bSYour Name uint8_t srg_pd_min_offset; 10768*5113495bSYour Name uint8_t srg_pd_max_offset; 10769*5113495bSYour Name uint8_t srg_color[8]; 10770*5113495bSYour Name uint8_t srg_partial_bssid[8]; 10771*5113495bSYour Name } info; /* srg_info_present = 1 */ 10772*5113495bSYour Name } srg_info; 10773*5113495bSYour Name } tDot11fIEspatial_reuse; 10774*5113495bSYour Name 10775*5113495bSYour Name #define DOT11F_EID_SPATIAL_REUSE (255) 10776*5113495bSYour Name 10777*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 10778*5113495bSYour Name #define DOT11F_IE_SPATIAL_REUSE_MIN_LEN (1) 10779*5113495bSYour Name 10780*5113495bSYour Name #define DOT11F_IE_SPATIAL_REUSE_MAX_LEN (20) 10781*5113495bSYour Name 10782*5113495bSYour Name #ifdef __cplusplus 10783*5113495bSYour Name extern "C" { 10784*5113495bSYour Name #endif /* C++ */ 10785*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_spatial_reuse( 10786*5113495bSYour Name tpAniSirGlobal, 10787*5113495bSYour Name uint8_t *, 10788*5113495bSYour Name uint8_t, 10789*5113495bSYour Name tDot11fIEspatial_reuse*, 10790*5113495bSYour Name bool); 10791*5113495bSYour Name 10792*5113495bSYour Name uint32_t dot11f_pack_ie_spatial_reuse( 10793*5113495bSYour Name tpAniSirGlobal, 10794*5113495bSYour Name tDot11fIEspatial_reuse *, 10795*5113495bSYour Name uint8_t *, 10796*5113495bSYour Name uint32_t, 10797*5113495bSYour Name uint32_t*); 10798*5113495bSYour Name 10799*5113495bSYour Name uint32_t dot11f_get_packed_ie_spatial_reuse( 10800*5113495bSYour Name tpAniSirGlobal, 10801*5113495bSYour Name tDot11fIEspatial_reuse *, 10802*5113495bSYour Name uint32_t*); 10803*5113495bSYour Name 10804*5113495bSYour Name #ifdef __cplusplus 10805*5113495bSYour Name }; /* End extern "C". */ 10806*5113495bSYour Name #endif /* C++ */ 10807*5113495bSYour Name 10808*5113495bSYour Name /* EID 255 (0xff) Extended EID 109 (0x6d) */ 10809*5113495bSYour Name typedef struct sDot11fIEt2lm_ie { 10810*5113495bSYour Name uint8_t present; 10811*5113495bSYour Name uint8_t num_data; 10812*5113495bSYour Name uint8_t data[255]; 10813*5113495bSYour Name } tDot11fIEt2lm_ie; 10814*5113495bSYour Name 10815*5113495bSYour Name #define DOT11F_EID_T2LM_IE (255) 10816*5113495bSYour Name 10817*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 10818*5113495bSYour Name #define DOT11F_IE_T2LM_IE_MIN_LEN (3) 10819*5113495bSYour Name 10820*5113495bSYour Name #define DOT11F_IE_T2LM_IE_MAX_LEN (255) 10821*5113495bSYour Name 10822*5113495bSYour Name #ifdef __cplusplus 10823*5113495bSYour Name extern "C" { 10824*5113495bSYour Name #endif /* C++ */ 10825*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_t2lm_ie( 10826*5113495bSYour Name tpAniSirGlobal, 10827*5113495bSYour Name uint8_t *, 10828*5113495bSYour Name uint8_t, 10829*5113495bSYour Name tDot11fIEt2lm_ie*, 10830*5113495bSYour Name bool); 10831*5113495bSYour Name 10832*5113495bSYour Name uint32_t dot11f_pack_ie_t2lm_ie( 10833*5113495bSYour Name tpAniSirGlobal, 10834*5113495bSYour Name tDot11fIEt2lm_ie *, 10835*5113495bSYour Name uint8_t *, 10836*5113495bSYour Name uint32_t, 10837*5113495bSYour Name uint32_t*); 10838*5113495bSYour Name 10839*5113495bSYour Name uint32_t dot11f_get_packed_ie_t2lm_ie( 10840*5113495bSYour Name tpAniSirGlobal, 10841*5113495bSYour Name tDot11fIEt2lm_ie *, 10842*5113495bSYour Name uint32_t*); 10843*5113495bSYour Name 10844*5113495bSYour Name #ifdef __cplusplus 10845*5113495bSYour Name }; /* End extern "C". */ 10846*5113495bSYour Name #endif /* C++ */ 10847*5113495bSYour Name 10848*5113495bSYour Name /* EID 221 (0xdd) {OUI 0x00, 0x90, 0x4c, 0x04} */ 10849*5113495bSYour Name typedef struct sDot11fIEvendor_vht_ie { 10850*5113495bSYour Name uint8_t present; 10851*5113495bSYour Name uint8_t sub_type; 10852*5113495bSYour Name tDot11fIEVHTCaps VHTCaps; 10853*5113495bSYour Name tDot11fIEVHTOperation VHTOperation; 10854*5113495bSYour Name } tDot11fIEvendor_vht_ie; 10855*5113495bSYour Name 10856*5113495bSYour Name #define DOT11F_EID_VENDOR_VHT_IE (221) 10857*5113495bSYour Name 10858*5113495bSYour Name /* N.B. These #defines do *not* include the EID & length */ 10859*5113495bSYour Name #define DOT11F_IE_VENDOR_VHT_IE_MIN_LEN (5) 10860*5113495bSYour Name 10861*5113495bSYour Name #define DOT11F_IE_VENDOR_VHT_IE_MAX_LEN (26) 10862*5113495bSYour Name 10863*5113495bSYour Name #ifdef __cplusplus 10864*5113495bSYour Name extern "C" { 10865*5113495bSYour Name #endif /* C++ */ 10866*5113495bSYour Name __must_check uint32_t dot11f_unpack_ie_vendor_vht_ie( 10867*5113495bSYour Name tpAniSirGlobal, 10868*5113495bSYour Name uint8_t *, 10869*5113495bSYour Name uint8_t, 10870*5113495bSYour Name tDot11fIEvendor_vht_ie*, 10871*5113495bSYour Name bool); 10872*5113495bSYour Name 10873*5113495bSYour Name uint32_t dot11f_pack_ie_vendor_vht_ie( 10874*5113495bSYour Name tpAniSirGlobal, 10875*5113495bSYour Name tDot11fIEvendor_vht_ie *, 10876*5113495bSYour Name uint8_t *, 10877*5113495bSYour Name uint32_t, 10878*5113495bSYour Name uint32_t*); 10879*5113495bSYour Name 10880*5113495bSYour Name uint32_t dot11f_get_packed_ie_vendor_vht_ie( 10881*5113495bSYour Name tpAniSirGlobal, 10882*5113495bSYour Name tDot11fIEvendor_vht_ie *, 10883*5113495bSYour Name uint32_t*); 10884*5113495bSYour Name 10885*5113495bSYour Name #ifdef __cplusplus 10886*5113495bSYour Name }; /* End extern "C". */ 10887*5113495bSYour Name #endif /* C++ */ 10888*5113495bSYour Name /************************************************************************ 10889*5113495bSYour Name * Frames 10890*5113495bSYour Name **********************************************************************/ 10891*5113495bSYour Name 10892*5113495bSYour Name typedef struct sDot11fAddTSRequest{ 10893*5113495bSYour Name tDot11fFfCategory Category; 10894*5113495bSYour Name tDot11fFfAction Action; 10895*5113495bSYour Name tDot11fFfDialogToken DialogToken; 10896*5113495bSYour Name tDot11fIETSPEC TSPEC; 10897*5113495bSYour Name uint16_t num_TCLAS; 10898*5113495bSYour Name tDot11fIETCLAS TCLAS[2]; 10899*5113495bSYour Name tDot11fIETCLASSPROC TCLASSPROC; 10900*5113495bSYour Name tDot11fIEWMMTSPEC WMMTSPEC; 10901*5113495bSYour Name uint16_t num_WMMTCLAS; 10902*5113495bSYour Name tDot11fIEWMMTCLAS WMMTCLAS[2]; 10903*5113495bSYour Name tDot11fIEWMMTCLASPROC WMMTCLASPROC; 10904*5113495bSYour Name tDot11fIEESETrafStrmRateSet ESETrafStrmRateSet; 10905*5113495bSYour Name } tDot11fAddTSRequest; 10906*5113495bSYour Name 10907*5113495bSYour Name #define DOT11F_ADDTSREQUEST (1) 10908*5113495bSYour Name 10909*5113495bSYour Name #ifdef __cplusplus 10910*5113495bSYour Name extern "C" { 10911*5113495bSYour Name #endif /* C++ */ 10912*5113495bSYour Name 10913*5113495bSYour Name uint32_t dot11f_unpack_add_ts_request(tpAniSirGlobal pCtx, 10914*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 10915*5113495bSYour Name tDot11fAddTSRequest * pFrm, bool append_ie); 10916*5113495bSYour Name uint32_t dot11f_pack_add_ts_request(tpAniSirGlobal pCtx, 10917*5113495bSYour Name tDot11fAddTSRequest *pFrm, uint8_t *pBuf, 10918*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 10919*5113495bSYour Name uint32_t dot11f_get_packed_add_ts_request_size(tpAniSirGlobal pCtx, 10920*5113495bSYour Name tDot11fAddTSRequest *pFrm, 10921*5113495bSYour Name uint32_t *pnNeeded); 10922*5113495bSYour Name 10923*5113495bSYour Name #ifdef __cplusplus 10924*5113495bSYour Name } /* End extern "C". */ 10925*5113495bSYour Name #endif /* C++ */ 10926*5113495bSYour Name 10927*5113495bSYour Name typedef struct sDot11fAddTSResponse{ 10928*5113495bSYour Name tDot11fFfCategory Category; 10929*5113495bSYour Name tDot11fFfAction Action; 10930*5113495bSYour Name tDot11fFfDialogToken DialogToken; 10931*5113495bSYour Name tDot11fFfStatus Status; 10932*5113495bSYour Name tDot11fIETSDelay TSDelay; 10933*5113495bSYour Name tDot11fIETSPEC TSPEC; 10934*5113495bSYour Name uint16_t num_TCLAS; 10935*5113495bSYour Name tDot11fIETCLAS TCLAS[2]; 10936*5113495bSYour Name tDot11fIETCLASSPROC TCLASSPROC; 10937*5113495bSYour Name tDot11fIESchedule Schedule; 10938*5113495bSYour Name tDot11fIEWMMTSDelay WMMTSDelay; 10939*5113495bSYour Name tDot11fIEWMMSchedule WMMSchedule; 10940*5113495bSYour Name tDot11fIEWMMTSPEC WMMTSPEC; 10941*5113495bSYour Name uint16_t num_WMMTCLAS; 10942*5113495bSYour Name tDot11fIEWMMTCLAS WMMTCLAS[2]; 10943*5113495bSYour Name tDot11fIEWMMTCLASPROC WMMTCLASPROC; 10944*5113495bSYour Name tDot11fIEESETrafStrmMet ESETrafStrmMet; 10945*5113495bSYour Name } tDot11fAddTSResponse; 10946*5113495bSYour Name 10947*5113495bSYour Name #define DOT11F_ADDTSRESPONSE (2) 10948*5113495bSYour Name 10949*5113495bSYour Name #ifdef __cplusplus 10950*5113495bSYour Name extern "C" { 10951*5113495bSYour Name #endif /* C++ */ 10952*5113495bSYour Name 10953*5113495bSYour Name uint32_t dot11f_unpack_add_ts_response(tpAniSirGlobal pCtx, 10954*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 10955*5113495bSYour Name tDot11fAddTSResponse * pFrm, bool append_ie); 10956*5113495bSYour Name uint32_t dot11f_pack_add_ts_response(tpAniSirGlobal pCtx, 10957*5113495bSYour Name tDot11fAddTSResponse *pFrm, uint8_t *pBuf, 10958*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 10959*5113495bSYour Name uint32_t dot11f_get_packed_add_ts_response_size(tpAniSirGlobal pCtx, 10960*5113495bSYour Name tDot11fAddTSResponse *pFrm, 10961*5113495bSYour Name uint32_t *pnNeeded); 10962*5113495bSYour Name 10963*5113495bSYour Name #ifdef __cplusplus 10964*5113495bSYour Name } /* End extern "C". */ 10965*5113495bSYour Name #endif /* C++ */ 10966*5113495bSYour Name 10967*5113495bSYour Name typedef struct sDot11fAssocRequest{ 10968*5113495bSYour Name tDot11fFfCapabilities Capabilities; 10969*5113495bSYour Name tDot11fFfListenInterval ListenInterval; 10970*5113495bSYour Name tDot11fIESSID SSID; 10971*5113495bSYour Name tDot11fIESuppRates SuppRates; 10972*5113495bSYour Name tDot11fIEExtSuppRates ExtSuppRates; 10973*5113495bSYour Name tDot11fIEPowerCaps PowerCaps; 10974*5113495bSYour Name tDot11fIESuppChannels SuppChannels; 10975*5113495bSYour Name tDot11fIERSNOpaque RSNOpaque; 10976*5113495bSYour Name tDot11fIEQOSCapsStation QOSCapsStation; 10977*5113495bSYour Name tDot11fIERRMEnabledCap RRMEnabledCap; 10978*5113495bSYour Name tDot11fIEMobilityDomain MobilityDomain; 10979*5113495bSYour Name tDot11fIESuppOperatingClasses SuppOperatingClasses; 10980*5113495bSYour Name tDot11fIEHTCaps HTCaps; 10981*5113495bSYour Name tDot11fIEExtCap ExtCap; 10982*5113495bSYour Name tDot11fIEVHTCaps VHTCaps; 10983*5113495bSYour Name tDot11fIEOperatingMode OperatingMode; 10984*5113495bSYour Name tDot11fIEfils_session fils_session; 10985*5113495bSYour Name tDot11fIEfils_public_key fils_public_key; 10986*5113495bSYour Name tDot11fIEfils_key_confirmation fils_key_confirmation; 10987*5113495bSYour Name tDot11fIEfils_hlp_container fils_hlp_container; 10988*5113495bSYour Name tDot11fIEbss_max_idle_period bss_max_idle_period; 10989*5113495bSYour Name tDot11fIEFTInfo FTInfo; 10990*5113495bSYour Name tDot11fIEhe_cap he_cap; 10991*5113495bSYour Name tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; 10992*5113495bSYour Name tDot11fIEWAPIOpaque WAPIOpaque; 10993*5113495bSYour Name tDot11fIEWAPI WAPI; 10994*5113495bSYour Name tDot11fIEQosMapSet QosMapSet; 10995*5113495bSYour Name tDot11fIEfragment_ie fragment_ie; 10996*5113495bSYour Name tDot11fIEdh_parameter_element dh_parameter_element; 10997*5113495bSYour Name tDot11fIEeht_cap eht_cap; 10998*5113495bSYour Name tDot11fIEmlo_ie mlo_ie; 10999*5113495bSYour Name uint16_t num_t2lm_ie; 11000*5113495bSYour Name tDot11fIEt2lm_ie t2lm_ie[2]; 11001*5113495bSYour Name tDot11fIEWPAOpaque WPAOpaque; 11002*5113495bSYour Name tDot11fIEWMMCaps WMMCaps; 11003*5113495bSYour Name tDot11fIEWMMInfoStation WMMInfoStation; 11004*5113495bSYour Name tDot11fIEWscIEOpaque WscIEOpaque; 11005*5113495bSYour Name tDot11fIEESERadMgmtCap ESERadMgmtCap; 11006*5113495bSYour Name tDot11fIEESEVersion ESEVersion; 11007*5113495bSYour Name tDot11fIEP2PIEOpaque P2PIEOpaque; 11008*5113495bSYour Name tDot11fIEWFDIEOpaque WFDIEOpaque; 11009*5113495bSYour Name tDot11fIEvendor_vht_ie vendor_vht_ie; 11010*5113495bSYour Name tDot11fIEhs20vendor_ie hs20vendor_ie; 11011*5113495bSYour Name tDot11fIEqcn_ie qcn_ie; 11012*5113495bSYour Name tDot11fIEosen_ie osen_ie; 11013*5113495bSYour Name tDot11fIEroaming_consortium_sel roaming_consortium_sel; 11014*5113495bSYour Name } tDot11fAssocRequest; 11015*5113495bSYour Name 11016*5113495bSYour Name #define DOT11F_ASSOCREQUEST (3) 11017*5113495bSYour Name 11018*5113495bSYour Name #ifdef __cplusplus 11019*5113495bSYour Name extern "C" { 11020*5113495bSYour Name #endif /* C++ */ 11021*5113495bSYour Name 11022*5113495bSYour Name uint32_t dot11f_unpack_assoc_request(tpAniSirGlobal pCtx, 11023*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11024*5113495bSYour Name tDot11fAssocRequest * pFrm, bool append_ie); 11025*5113495bSYour Name uint32_t dot11f_pack_assoc_request(tpAniSirGlobal pCtx, 11026*5113495bSYour Name tDot11fAssocRequest *pFrm, uint8_t *pBuf, 11027*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11028*5113495bSYour Name uint32_t dot11f_get_packed_assoc_request_size(tpAniSirGlobal pCtx, 11029*5113495bSYour Name tDot11fAssocRequest *pFrm, 11030*5113495bSYour Name uint32_t *pnNeeded); 11031*5113495bSYour Name 11032*5113495bSYour Name #ifdef __cplusplus 11033*5113495bSYour Name } /* End extern "C". */ 11034*5113495bSYour Name #endif /* C++ */ 11035*5113495bSYour Name 11036*5113495bSYour Name typedef struct sDot11fAssocResponse{ 11037*5113495bSYour Name tDot11fFfCapabilities Capabilities; 11038*5113495bSYour Name tDot11fFfStatus Status; 11039*5113495bSYour Name tDot11fFfAID AID; 11040*5113495bSYour Name tDot11fIESuppRates SuppRates; 11041*5113495bSYour Name tDot11fIEExtSuppRates ExtSuppRates; 11042*5113495bSYour Name tDot11fIEEDCAParamSet EDCAParamSet; 11043*5113495bSYour Name tDot11fIERCPIIE RCPIIE; 11044*5113495bSYour Name tDot11fIERSNIIE RSNIIE; 11045*5113495bSYour Name tDot11fIERRMEnabledCap RRMEnabledCap; 11046*5113495bSYour Name tDot11fIEMobilityDomain MobilityDomain; 11047*5113495bSYour Name tDot11fIEFTInfo FTInfo; 11048*5113495bSYour Name tDot11fIETimeoutInterval TimeoutInterval; 11049*5113495bSYour Name tDot11fIEHTCaps HTCaps; 11050*5113495bSYour Name tDot11fIEHTInfo HTInfo; 11051*5113495bSYour Name tDot11fIEOBSSScanParameters OBSSScanParameters; 11052*5113495bSYour Name tDot11fIEExtCap ExtCap; 11053*5113495bSYour Name tDot11fIEbss_max_idle_period bss_max_idle_period; 11054*5113495bSYour Name tDot11fIEQosMapSet QosMapSet; 11055*5113495bSYour Name tDot11fIEVHTCaps VHTCaps; 11056*5113495bSYour Name tDot11fIEVHTOperation VHTOperation; 11057*5113495bSYour Name tDot11fIEOperatingMode OperatingMode; 11058*5113495bSYour Name tDot11fIEfils_session fils_session; 11059*5113495bSYour Name tDot11fIEfils_public_key fils_public_key; 11060*5113495bSYour Name tDot11fIEfils_key_confirmation fils_key_confirmation; 11061*5113495bSYour Name tDot11fIEfils_hlp_container fils_hlp_container; 11062*5113495bSYour Name tDot11fIEhe_cap he_cap; 11063*5113495bSYour Name tDot11fIEhe_op he_op; 11064*5113495bSYour Name tDot11fIEspatial_reuse spatial_reuse; 11065*5113495bSYour Name tDot11fIEbss_color_change bss_color_change; 11066*5113495bSYour Name tDot11fIEmu_edca_param_set mu_edca_param_set; 11067*5113495bSYour Name tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; 11068*5113495bSYour Name uint16_t num_RICDataDesc; 11069*5113495bSYour Name tDot11fIERICDataDesc RICDataDesc[2]; 11070*5113495bSYour Name tDot11fIEESETxmitPower ESETxmitPower; 11071*5113495bSYour Name tDot11fIEfragment_ie fragment_ie; 11072*5113495bSYour Name tDot11fIEfils_kde fils_kde; 11073*5113495bSYour Name tDot11fIEeht_cap eht_cap; 11074*5113495bSYour Name tDot11fIEeht_op eht_op; 11075*5113495bSYour Name tDot11fIEmlo_ie mlo_ie; 11076*5113495bSYour Name uint16_t num_t2lm_ie; 11077*5113495bSYour Name tDot11fIEt2lm_ie t2lm_ie[2]; 11078*5113495bSYour Name tDot11fIEWPA WPA; 11079*5113495bSYour Name tDot11fIEWMMParams WMMParams; 11080*5113495bSYour Name tDot11fIEWMMCaps WMMCaps; 11081*5113495bSYour Name tDot11fIEESERadMgmtCap ESERadMgmtCap; 11082*5113495bSYour Name tDot11fIEESETrafStrmMet ESETrafStrmMet; 11083*5113495bSYour Name uint16_t num_WMMTSPEC; 11084*5113495bSYour Name tDot11fIEWMMTSPEC WMMTSPEC[4]; 11085*5113495bSYour Name tDot11fIEWscAssocRes WscAssocRes; 11086*5113495bSYour Name tDot11fIEP2PAssocRes P2PAssocRes; 11087*5113495bSYour Name tDot11fIEvendor_vht_ie vendor_vht_ie; 11088*5113495bSYour Name tDot11fIEqcn_ie qcn_ie; 11089*5113495bSYour Name tDot11fIEMBO_IE MBO_IE; 11090*5113495bSYour Name tDot11fIEreduced_neighbor_report reduced_neighbor_report; 11091*5113495bSYour Name } tDot11fAssocResponse; 11092*5113495bSYour Name 11093*5113495bSYour Name #define DOT11F_ASSOCRESPONSE (4) 11094*5113495bSYour Name 11095*5113495bSYour Name #ifdef __cplusplus 11096*5113495bSYour Name extern "C" { 11097*5113495bSYour Name #endif /* C++ */ 11098*5113495bSYour Name 11099*5113495bSYour Name uint32_t dot11f_unpack_assoc_response(tpAniSirGlobal pCtx, 11100*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11101*5113495bSYour Name tDot11fAssocResponse * pFrm, bool append_ie); 11102*5113495bSYour Name uint32_t dot11f_pack_assoc_response(tpAniSirGlobal pCtx, 11103*5113495bSYour Name tDot11fAssocResponse *pFrm, uint8_t *pBuf, 11104*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11105*5113495bSYour Name uint32_t dot11f_get_packed_assoc_response_size(tpAniSirGlobal pCtx, 11106*5113495bSYour Name tDot11fAssocResponse *pFrm, 11107*5113495bSYour Name uint32_t *pnNeeded); 11108*5113495bSYour Name 11109*5113495bSYour Name #ifdef __cplusplus 11110*5113495bSYour Name } /* End extern "C". */ 11111*5113495bSYour Name #endif /* C++ */ 11112*5113495bSYour Name 11113*5113495bSYour Name typedef struct sDot11fAuthentication{ 11114*5113495bSYour Name tDot11fFfAuthAlgo AuthAlgo; 11115*5113495bSYour Name tDot11fFfAuthSeqNo AuthSeqNo; 11116*5113495bSYour Name tDot11fFfStatus Status; 11117*5113495bSYour Name tDot11fIEChallengeText ChallengeText; 11118*5113495bSYour Name tDot11fIERSNOpaque RSNOpaque; 11119*5113495bSYour Name tDot11fIEMobilityDomain MobilityDomain; 11120*5113495bSYour Name tDot11fIEFTInfo FTInfo; 11121*5113495bSYour Name tDot11fIETimeoutInterval TimeoutInterval; 11122*5113495bSYour Name uint16_t num_RICDataDesc; 11123*5113495bSYour Name tDot11fIERICDataDesc RICDataDesc[2]; 11124*5113495bSYour Name tDot11fIEfils_nonce fils_nonce; 11125*5113495bSYour Name tDot11fIEfils_session fils_session; 11126*5113495bSYour Name tDot11fIEfils_wrapped_data fils_wrapped_data; 11127*5113495bSYour Name tDot11fIEfils_assoc_delay_info fils_assoc_delay_info; 11128*5113495bSYour Name tDot11fIEmlo_ie mlo_ie; 11129*5113495bSYour Name } tDot11fAuthentication; 11130*5113495bSYour Name 11131*5113495bSYour Name #define DOT11F_AUTHENTICATION (5) 11132*5113495bSYour Name 11133*5113495bSYour Name #ifdef __cplusplus 11134*5113495bSYour Name extern "C" { 11135*5113495bSYour Name #endif /* C++ */ 11136*5113495bSYour Name 11137*5113495bSYour Name uint32_t dot11f_unpack_authentication(tpAniSirGlobal pCtx, 11138*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11139*5113495bSYour Name tDot11fAuthentication * pFrm, bool append_ie); 11140*5113495bSYour Name uint32_t dot11f_pack_authentication(tpAniSirGlobal pCtx, 11141*5113495bSYour Name tDot11fAuthentication *pFrm, uint8_t *pBuf, 11142*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11143*5113495bSYour Name uint32_t dot11f_get_packed_authentication_size(tpAniSirGlobal pCtx, 11144*5113495bSYour Name tDot11fAuthentication *pFrm, 11145*5113495bSYour Name uint32_t *pnNeeded); 11146*5113495bSYour Name 11147*5113495bSYour Name #ifdef __cplusplus 11148*5113495bSYour Name } /* End extern "C". */ 11149*5113495bSYour Name #endif /* C++ */ 11150*5113495bSYour Name 11151*5113495bSYour Name typedef struct sDot11fBeacon{ 11152*5113495bSYour Name tDot11fFfTimeStamp TimeStamp; 11153*5113495bSYour Name tDot11fFfBeaconInterval BeaconInterval; 11154*5113495bSYour Name tDot11fFfCapabilities Capabilities; 11155*5113495bSYour Name tDot11fIESSID SSID; 11156*5113495bSYour Name tDot11fIESuppRates SuppRates; 11157*5113495bSYour Name tDot11fIEFHParamSet FHParamSet; 11158*5113495bSYour Name tDot11fIEDSParams DSParams; 11159*5113495bSYour Name tDot11fIECFParams CFParams; 11160*5113495bSYour Name tDot11fIETIM TIM; 11161*5113495bSYour Name tDot11fIECountry Country; 11162*5113495bSYour Name tDot11fIEFHParams FHParams; 11163*5113495bSYour Name tDot11fIEFHPattTable FHPattTable; 11164*5113495bSYour Name tDot11fIEPowerConstraints PowerConstraints; 11165*5113495bSYour Name tDot11fIEChanSwitchAnn ChanSwitchAnn; 11166*5113495bSYour Name tDot11fIEQuiet Quiet; 11167*5113495bSYour Name tDot11fIETPCReport TPCReport; 11168*5113495bSYour Name tDot11fIEERPInfo ERPInfo; 11169*5113495bSYour Name tDot11fIEExtSuppRates ExtSuppRates; 11170*5113495bSYour Name tDot11fIERSN RSN; 11171*5113495bSYour Name tDot11fIEQBSSLoad QBSSLoad; 11172*5113495bSYour Name tDot11fIEEDCAParamSet EDCAParamSet; 11173*5113495bSYour Name tDot11fIEQOSCapsAp QOSCapsAp; 11174*5113495bSYour Name tDot11fIEAPChannelReport APChannelReport; 11175*5113495bSYour Name tDot11fIERRMEnabledCap RRMEnabledCap; 11176*5113495bSYour Name tDot11fIEMobilityDomain MobilityDomain; 11177*5113495bSYour Name tDot11fIEext_chan_switch_ann ext_chan_switch_ann; 11178*5113495bSYour Name tDot11fIESuppOperatingClasses SuppOperatingClasses; 11179*5113495bSYour Name tDot11fIEHTCaps HTCaps; 11180*5113495bSYour Name tDot11fIEHTInfo HTInfo; 11181*5113495bSYour Name tDot11fIEOBSSScanParameters OBSSScanParameters; 11182*5113495bSYour Name tDot11fIEExtCap ExtCap; 11183*5113495bSYour Name tDot11fIEVHTCaps VHTCaps; 11184*5113495bSYour Name tDot11fIEVHTOperation VHTOperation; 11185*5113495bSYour Name uint16_t num_transmit_power_env; 11186*5113495bSYour Name tDot11fIEtransmit_power_env transmit_power_env[8]; 11187*5113495bSYour Name tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper; 11188*5113495bSYour Name tDot11fIEVHTExtBssLoad VHTExtBssLoad; 11189*5113495bSYour Name tDot11fIEOperatingMode OperatingMode; 11190*5113495bSYour Name tDot11fIEfils_indication fils_indication; 11191*5113495bSYour Name tDot11fIEmax_chan_switch_time max_chan_switch_time; 11192*5113495bSYour Name tDot11fIEesp_information esp_information; 11193*5113495bSYour Name tDot11fIEhe_cap he_cap; 11194*5113495bSYour Name tDot11fIEhe_op he_op; 11195*5113495bSYour Name tDot11fIEspatial_reuse spatial_reuse; 11196*5113495bSYour Name tDot11fIEbss_color_change bss_color_change; 11197*5113495bSYour Name tDot11fIEmu_edca_param_set mu_edca_param_set; 11198*5113495bSYour Name tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; 11199*5113495bSYour Name tDot11fIEsec_chan_offset_ele sec_chan_offset_ele; 11200*5113495bSYour Name tDot11fIEWAPI WAPI; 11201*5113495bSYour Name tDot11fIEESETxmitPower ESETxmitPower; 11202*5113495bSYour Name tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; 11203*5113495bSYour Name tDot11fIEeht_cap eht_cap; 11204*5113495bSYour Name tDot11fIEeht_op eht_op; 11205*5113495bSYour Name tDot11fIEmlo_ie mlo_ie; 11206*5113495bSYour Name uint16_t num_t2lm_ie; 11207*5113495bSYour Name tDot11fIEt2lm_ie t2lm_ie[2]; 11208*5113495bSYour Name tDot11fIEWPA WPA; 11209*5113495bSYour Name tDot11fIEWMMInfoAp WMMInfoAp; 11210*5113495bSYour Name tDot11fIEWMMParams WMMParams; 11211*5113495bSYour Name tDot11fIEWMMCaps WMMCaps; 11212*5113495bSYour Name tDot11fIEESEVersion ESEVersion; 11213*5113495bSYour Name tDot11fIEESERadMgmtCap ESERadMgmtCap; 11214*5113495bSYour Name tDot11fIEESETrafStrmMet ESETrafStrmMet; 11215*5113495bSYour Name tDot11fIEWscBeacon WscBeacon; 11216*5113495bSYour Name tDot11fIEP2PBeacon P2PBeacon; 11217*5113495bSYour Name tDot11fIEVendor1IE Vendor1IE; 11218*5113495bSYour Name tDot11fIEvendor_vht_ie vendor_vht_ie; 11219*5113495bSYour Name tDot11fIEVendor3IE Vendor3IE; 11220*5113495bSYour Name tDot11fIEhs20vendor_ie hs20vendor_ie; 11221*5113495bSYour Name tDot11fIEQComVendorIE QComVendorIE; 11222*5113495bSYour Name tDot11fIEMBO_IE MBO_IE; 11223*5113495bSYour Name tDot11fIEqcn_ie qcn_ie; 11224*5113495bSYour Name tDot11fIEreduced_neighbor_report reduced_neighbor_report; 11225*5113495bSYour Name } tDot11fBeacon; 11226*5113495bSYour Name 11227*5113495bSYour Name #define DOT11F_BEACON (6) 11228*5113495bSYour Name 11229*5113495bSYour Name #ifdef __cplusplus 11230*5113495bSYour Name extern "C" { 11231*5113495bSYour Name #endif /* C++ */ 11232*5113495bSYour Name 11233*5113495bSYour Name uint32_t dot11f_unpack_beacon(tpAniSirGlobal pCtx, 11234*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11235*5113495bSYour Name tDot11fBeacon * pFrm, bool append_ie); 11236*5113495bSYour Name uint32_t dot11f_pack_beacon(tpAniSirGlobal pCtx, 11237*5113495bSYour Name tDot11fBeacon *pFrm, uint8_t *pBuf, 11238*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11239*5113495bSYour Name uint32_t dot11f_get_packed_beacon_size(tpAniSirGlobal pCtx, 11240*5113495bSYour Name tDot11fBeacon *pFrm, 11241*5113495bSYour Name uint32_t *pnNeeded); 11242*5113495bSYour Name 11243*5113495bSYour Name #ifdef __cplusplus 11244*5113495bSYour Name } /* End extern "C". */ 11245*5113495bSYour Name #endif /* C++ */ 11246*5113495bSYour Name 11247*5113495bSYour Name typedef struct sDot11fBeacon1{ 11248*5113495bSYour Name tDot11fFfTimeStamp TimeStamp; 11249*5113495bSYour Name tDot11fFfBeaconInterval BeaconInterval; 11250*5113495bSYour Name tDot11fFfCapabilities Capabilities; 11251*5113495bSYour Name tDot11fIESSID SSID; 11252*5113495bSYour Name tDot11fIESuppRates SuppRates; 11253*5113495bSYour Name tDot11fIEDSParams DSParams; 11254*5113495bSYour Name } tDot11fBeacon1; 11255*5113495bSYour Name 11256*5113495bSYour Name #define DOT11F_BEACON1 (7) 11257*5113495bSYour Name 11258*5113495bSYour Name #ifdef __cplusplus 11259*5113495bSYour Name extern "C" { 11260*5113495bSYour Name #endif /* C++ */ 11261*5113495bSYour Name 11262*5113495bSYour Name uint32_t dot11f_unpack_beacon1(tpAniSirGlobal pCtx, 11263*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11264*5113495bSYour Name tDot11fBeacon1 * pFrm, bool append_ie); 11265*5113495bSYour Name uint32_t dot11f_pack_beacon1(tpAniSirGlobal pCtx, 11266*5113495bSYour Name tDot11fBeacon1 *pFrm, uint8_t *pBuf, 11267*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11268*5113495bSYour Name uint32_t dot11f_get_packed_beacon1_size(tpAniSirGlobal pCtx, 11269*5113495bSYour Name tDot11fBeacon1 *pFrm, 11270*5113495bSYour Name uint32_t *pnNeeded); 11271*5113495bSYour Name 11272*5113495bSYour Name #ifdef __cplusplus 11273*5113495bSYour Name } /* End extern "C". */ 11274*5113495bSYour Name #endif /* C++ */ 11275*5113495bSYour Name 11276*5113495bSYour Name typedef struct sDot11fBeacon2{ 11277*5113495bSYour Name tDot11fIECountry Country; 11278*5113495bSYour Name tDot11fIEPowerConstraints PowerConstraints; 11279*5113495bSYour Name tDot11fIEChanSwitchAnn ChanSwitchAnn; 11280*5113495bSYour Name tDot11fIEQuiet Quiet; 11281*5113495bSYour Name tDot11fIETPCReport TPCReport; 11282*5113495bSYour Name tDot11fIEERPInfo ERPInfo; 11283*5113495bSYour Name tDot11fIEExtSuppRates ExtSuppRates; 11284*5113495bSYour Name tDot11fIERSNOpaque RSNOpaque; 11285*5113495bSYour Name tDot11fIEEDCAParamSet EDCAParamSet; 11286*5113495bSYour Name tDot11fIEAPChannelReport APChannelReport; 11287*5113495bSYour Name tDot11fIERRMEnabledCap RRMEnabledCap; 11288*5113495bSYour Name tDot11fIEMobilityDomain MobilityDomain; 11289*5113495bSYour Name tDot11fIEext_chan_switch_ann ext_chan_switch_ann; 11290*5113495bSYour Name tDot11fIESuppOperatingClasses SuppOperatingClasses; 11291*5113495bSYour Name tDot11fIEHTCaps HTCaps; 11292*5113495bSYour Name tDot11fIEHTInfo HTInfo; 11293*5113495bSYour Name tDot11fIEOBSSScanParameters OBSSScanParameters; 11294*5113495bSYour Name tDot11fIEExtCap ExtCap; 11295*5113495bSYour Name tDot11fIEVHTCaps VHTCaps; 11296*5113495bSYour Name tDot11fIEVHTOperation VHTOperation; 11297*5113495bSYour Name uint16_t num_transmit_power_env; 11298*5113495bSYour Name tDot11fIEtransmit_power_env transmit_power_env[8]; 11299*5113495bSYour Name tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper; 11300*5113495bSYour Name tDot11fIEVHTExtBssLoad VHTExtBssLoad; 11301*5113495bSYour Name tDot11fIEOperatingMode OperatingMode; 11302*5113495bSYour Name tDot11fIEfils_indication fils_indication; 11303*5113495bSYour Name tDot11fIEmax_chan_switch_time max_chan_switch_time; 11304*5113495bSYour Name tDot11fIEesp_information esp_information; 11305*5113495bSYour Name tDot11fIEhe_cap he_cap; 11306*5113495bSYour Name tDot11fIEhe_op he_op; 11307*5113495bSYour Name tDot11fIEspatial_reuse spatial_reuse; 11308*5113495bSYour Name tDot11fIEbss_color_change bss_color_change; 11309*5113495bSYour Name tDot11fIEmu_edca_param_set mu_edca_param_set; 11310*5113495bSYour Name tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; 11311*5113495bSYour Name tDot11fIEsec_chan_offset_ele sec_chan_offset_ele; 11312*5113495bSYour Name tDot11fIEWAPI WAPI; 11313*5113495bSYour Name tDot11fIEESETxmitPower ESETxmitPower; 11314*5113495bSYour Name tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; 11315*5113495bSYour Name tDot11fIEeht_cap eht_cap; 11316*5113495bSYour Name tDot11fIEeht_op eht_op; 11317*5113495bSYour Name tDot11fIEmlo_ie mlo_ie; 11318*5113495bSYour Name uint16_t num_t2lm_ie; 11319*5113495bSYour Name tDot11fIEt2lm_ie t2lm_ie[2]; 11320*5113495bSYour Name tDot11fIEWPA WPA; 11321*5113495bSYour Name tDot11fIEWMMInfoAp WMMInfoAp; 11322*5113495bSYour Name tDot11fIEWMMParams WMMParams; 11323*5113495bSYour Name tDot11fIEWMMCaps WMMCaps; 11324*5113495bSYour Name tDot11fIEESERadMgmtCap ESERadMgmtCap; 11325*5113495bSYour Name tDot11fIEESETrafStrmMet ESETrafStrmMet; 11326*5113495bSYour Name tDot11fIEWscBeacon WscBeacon; 11327*5113495bSYour Name tDot11fIEP2PBeacon P2PBeacon; 11328*5113495bSYour Name tDot11fIEVendor1IE Vendor1IE; 11329*5113495bSYour Name tDot11fIEvendor_vht_ie vendor_vht_ie; 11330*5113495bSYour Name tDot11fIEVendor3IE Vendor3IE; 11331*5113495bSYour Name tDot11fIEhs20vendor_ie hs20vendor_ie; 11332*5113495bSYour Name tDot11fIEQComVendorIE QComVendorIE; 11333*5113495bSYour Name tDot11fIEESEVersion ESEVersion; 11334*5113495bSYour Name tDot11fIEqcn_ie qcn_ie; 11335*5113495bSYour Name tDot11fIEreduced_neighbor_report reduced_neighbor_report; 11336*5113495bSYour Name } tDot11fBeacon2; 11337*5113495bSYour Name 11338*5113495bSYour Name #define DOT11F_BEACON2 (8) 11339*5113495bSYour Name 11340*5113495bSYour Name #ifdef __cplusplus 11341*5113495bSYour Name extern "C" { 11342*5113495bSYour Name #endif /* C++ */ 11343*5113495bSYour Name 11344*5113495bSYour Name uint32_t dot11f_unpack_beacon2(tpAniSirGlobal pCtx, 11345*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11346*5113495bSYour Name tDot11fBeacon2 * pFrm, bool append_ie); 11347*5113495bSYour Name uint32_t dot11f_pack_beacon2(tpAniSirGlobal pCtx, 11348*5113495bSYour Name tDot11fBeacon2 *pFrm, uint8_t *pBuf, 11349*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11350*5113495bSYour Name uint32_t dot11f_get_packed_beacon2_size(tpAniSirGlobal pCtx, 11351*5113495bSYour Name tDot11fBeacon2 *pFrm, 11352*5113495bSYour Name uint32_t *pnNeeded); 11353*5113495bSYour Name 11354*5113495bSYour Name #ifdef __cplusplus 11355*5113495bSYour Name } /* End extern "C". */ 11356*5113495bSYour Name #endif /* C++ */ 11357*5113495bSYour Name 11358*5113495bSYour Name typedef struct sDot11fBeaconIEs{ 11359*5113495bSYour Name tDot11fIESSID SSID; 11360*5113495bSYour Name tDot11fIESuppRates SuppRates; 11361*5113495bSYour Name tDot11fIEFHParamSet FHParamSet; 11362*5113495bSYour Name tDot11fIEDSParams DSParams; 11363*5113495bSYour Name tDot11fIECFParams CFParams; 11364*5113495bSYour Name tDot11fIETIM TIM; 11365*5113495bSYour Name tDot11fIECountry Country; 11366*5113495bSYour Name tDot11fIEFHParams FHParams; 11367*5113495bSYour Name tDot11fIEFHPattTable FHPattTable; 11368*5113495bSYour Name tDot11fIEPowerConstraints PowerConstraints; 11369*5113495bSYour Name tDot11fIEChanSwitchAnn ChanSwitchAnn; 11370*5113495bSYour Name tDot11fIEQuiet Quiet; 11371*5113495bSYour Name tDot11fIETPCReport TPCReport; 11372*5113495bSYour Name tDot11fIEERPInfo ERPInfo; 11373*5113495bSYour Name tDot11fIEExtSuppRates ExtSuppRates; 11374*5113495bSYour Name tDot11fIERSN RSN; 11375*5113495bSYour Name tDot11fIEQBSSLoad QBSSLoad; 11376*5113495bSYour Name tDot11fIEEDCAParamSet EDCAParamSet; 11377*5113495bSYour Name tDot11fIEQOSCapsAp QOSCapsAp; 11378*5113495bSYour Name tDot11fIEAPChannelReport APChannelReport; 11379*5113495bSYour Name tDot11fIERRMEnabledCap RRMEnabledCap; 11380*5113495bSYour Name tDot11fIEMobilityDomain MobilityDomain; 11381*5113495bSYour Name tDot11fIEext_chan_switch_ann ext_chan_switch_ann; 11382*5113495bSYour Name tDot11fIESuppOperatingClasses SuppOperatingClasses; 11383*5113495bSYour Name tDot11fIEHTCaps HTCaps; 11384*5113495bSYour Name tDot11fIEHTInfo HTInfo; 11385*5113495bSYour Name tDot11fIEOBSSScanParameters OBSSScanParameters; 11386*5113495bSYour Name tDot11fIEExtCap ExtCap; 11387*5113495bSYour Name tDot11fIEVHTCaps VHTCaps; 11388*5113495bSYour Name tDot11fIEVHTOperation VHTOperation; 11389*5113495bSYour Name uint16_t num_transmit_power_env; 11390*5113495bSYour Name tDot11fIEtransmit_power_env transmit_power_env[8]; 11391*5113495bSYour Name tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper; 11392*5113495bSYour Name tDot11fIEVHTExtBssLoad VHTExtBssLoad; 11393*5113495bSYour Name tDot11fIEOperatingMode OperatingMode; 11394*5113495bSYour Name tDot11fIEfils_indication fils_indication; 11395*5113495bSYour Name tDot11fIEmax_chan_switch_time max_chan_switch_time; 11396*5113495bSYour Name tDot11fIEesp_information esp_information; 11397*5113495bSYour Name tDot11fIEhe_cap he_cap; 11398*5113495bSYour Name tDot11fIEhe_op he_op; 11399*5113495bSYour Name tDot11fIEspatial_reuse spatial_reuse; 11400*5113495bSYour Name tDot11fIEbss_color_change bss_color_change; 11401*5113495bSYour Name tDot11fIEmu_edca_param_set mu_edca_param_set; 11402*5113495bSYour Name tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; 11403*5113495bSYour Name tDot11fIEsec_chan_offset_ele sec_chan_offset_ele; 11404*5113495bSYour Name tDot11fIEWAPI WAPI; 11405*5113495bSYour Name tDot11fIEESETxmitPower ESETxmitPower; 11406*5113495bSYour Name tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; 11407*5113495bSYour Name tDot11fIEeht_cap eht_cap; 11408*5113495bSYour Name tDot11fIEeht_op eht_op; 11409*5113495bSYour Name tDot11fIEmlo_ie mlo_ie; 11410*5113495bSYour Name uint16_t num_t2lm_ie; 11411*5113495bSYour Name tDot11fIEt2lm_ie t2lm_ie[2]; 11412*5113495bSYour Name tDot11fIEWPA WPA; 11413*5113495bSYour Name tDot11fIEWMMInfoAp WMMInfoAp; 11414*5113495bSYour Name tDot11fIEWMMParams WMMParams; 11415*5113495bSYour Name tDot11fIEWMMCaps WMMCaps; 11416*5113495bSYour Name tDot11fIEESEVersion ESEVersion; 11417*5113495bSYour Name tDot11fIEESERadMgmtCap ESERadMgmtCap; 11418*5113495bSYour Name tDot11fIEESETrafStrmMet ESETrafStrmMet; 11419*5113495bSYour Name tDot11fIEWscBeaconProbeRes WscBeaconProbeRes; 11420*5113495bSYour Name tDot11fIEP2PBeaconProbeRes P2PBeaconProbeRes; 11421*5113495bSYour Name tDot11fIEVendor1IE Vendor1IE; 11422*5113495bSYour Name tDot11fIEvendor_vht_ie vendor_vht_ie; 11423*5113495bSYour Name tDot11fIEVendor3IE Vendor3IE; 11424*5113495bSYour Name tDot11fIEhs20vendor_ie hs20vendor_ie; 11425*5113495bSYour Name tDot11fIEQComVendorIE QComVendorIE; 11426*5113495bSYour Name tDot11fIEMBO_IE MBO_IE; 11427*5113495bSYour Name tDot11fIEqcn_ie qcn_ie; 11428*5113495bSYour Name tDot11fIEreduced_neighbor_report reduced_neighbor_report; 11429*5113495bSYour Name } tDot11fBeaconIEs; 11430*5113495bSYour Name 11431*5113495bSYour Name #define DOT11F_BEACONIES (9) 11432*5113495bSYour Name 11433*5113495bSYour Name #ifdef __cplusplus 11434*5113495bSYour Name extern "C" { 11435*5113495bSYour Name #endif /* C++ */ 11436*5113495bSYour Name 11437*5113495bSYour Name uint32_t dot11f_unpack_beacon_i_es(tpAniSirGlobal pCtx, 11438*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11439*5113495bSYour Name tDot11fBeaconIEs * pFrm, bool append_ie); 11440*5113495bSYour Name uint32_t dot11f_pack_beacon_i_es(tpAniSirGlobal pCtx, 11441*5113495bSYour Name tDot11fBeaconIEs *pFrm, uint8_t *pBuf, 11442*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11443*5113495bSYour Name uint32_t dot11f_get_packed_beacon_i_es_size(tpAniSirGlobal pCtx, 11444*5113495bSYour Name tDot11fBeaconIEs *pFrm, 11445*5113495bSYour Name uint32_t *pnNeeded); 11446*5113495bSYour Name 11447*5113495bSYour Name #ifdef __cplusplus 11448*5113495bSYour Name } /* End extern "C". */ 11449*5113495bSYour Name #endif /* C++ */ 11450*5113495bSYour Name 11451*5113495bSYour Name typedef struct sDot11fChannelSwitch{ 11452*5113495bSYour Name tDot11fFfCategory Category; 11453*5113495bSYour Name tDot11fFfAction Action; 11454*5113495bSYour Name tDot11fIEChanSwitchAnn ChanSwitchAnn; 11455*5113495bSYour Name tDot11fIEsec_chan_offset_ele sec_chan_offset_ele; 11456*5113495bSYour Name tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; 11457*5113495bSYour Name } tDot11fChannelSwitch; 11458*5113495bSYour Name 11459*5113495bSYour Name #define DOT11F_CHANNELSWITCH (10) 11460*5113495bSYour Name 11461*5113495bSYour Name #ifdef __cplusplus 11462*5113495bSYour Name extern "C" { 11463*5113495bSYour Name #endif /* C++ */ 11464*5113495bSYour Name 11465*5113495bSYour Name uint32_t dot11f_unpack_channel_switch(tpAniSirGlobal pCtx, 11466*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11467*5113495bSYour Name tDot11fChannelSwitch * pFrm, bool append_ie); 11468*5113495bSYour Name uint32_t dot11f_pack_channel_switch(tpAniSirGlobal pCtx, 11469*5113495bSYour Name tDot11fChannelSwitch *pFrm, uint8_t *pBuf, 11470*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11471*5113495bSYour Name uint32_t dot11f_get_packed_channel_switch_size(tpAniSirGlobal pCtx, 11472*5113495bSYour Name tDot11fChannelSwitch *pFrm, 11473*5113495bSYour Name uint32_t *pnNeeded); 11474*5113495bSYour Name 11475*5113495bSYour Name #ifdef __cplusplus 11476*5113495bSYour Name } /* End extern "C". */ 11477*5113495bSYour Name #endif /* C++ */ 11478*5113495bSYour Name 11479*5113495bSYour Name typedef struct sDot11fDeAuth{ 11480*5113495bSYour Name tDot11fFfReason Reason; 11481*5113495bSYour Name tDot11fIEP2PDeAuth P2PDeAuth; 11482*5113495bSYour Name } tDot11fDeAuth; 11483*5113495bSYour Name 11484*5113495bSYour Name #define DOT11F_DEAUTH (11) 11485*5113495bSYour Name 11486*5113495bSYour Name #ifdef __cplusplus 11487*5113495bSYour Name extern "C" { 11488*5113495bSYour Name #endif /* C++ */ 11489*5113495bSYour Name 11490*5113495bSYour Name uint32_t dot11f_unpack_de_auth(tpAniSirGlobal pCtx, 11491*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11492*5113495bSYour Name tDot11fDeAuth * pFrm, bool append_ie); 11493*5113495bSYour Name uint32_t dot11f_pack_de_auth(tpAniSirGlobal pCtx, 11494*5113495bSYour Name tDot11fDeAuth *pFrm, uint8_t *pBuf, 11495*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11496*5113495bSYour Name uint32_t dot11f_get_packed_de_auth_size(tpAniSirGlobal pCtx, 11497*5113495bSYour Name tDot11fDeAuth *pFrm, 11498*5113495bSYour Name uint32_t *pnNeeded); 11499*5113495bSYour Name 11500*5113495bSYour Name #ifdef __cplusplus 11501*5113495bSYour Name } /* End extern "C". */ 11502*5113495bSYour Name #endif /* C++ */ 11503*5113495bSYour Name 11504*5113495bSYour Name typedef struct sDot11fDelTS{ 11505*5113495bSYour Name tDot11fFfCategory Category; 11506*5113495bSYour Name tDot11fFfAction Action; 11507*5113495bSYour Name tDot11fFfTSInfo TSInfo; 11508*5113495bSYour Name tDot11fFfReason Reason; 11509*5113495bSYour Name } tDot11fDelTS; 11510*5113495bSYour Name 11511*5113495bSYour Name #define DOT11F_DELTS (12) 11512*5113495bSYour Name 11513*5113495bSYour Name #ifdef __cplusplus 11514*5113495bSYour Name extern "C" { 11515*5113495bSYour Name #endif /* C++ */ 11516*5113495bSYour Name 11517*5113495bSYour Name uint32_t dot11f_unpack_del_ts(tpAniSirGlobal pCtx, 11518*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11519*5113495bSYour Name tDot11fDelTS * pFrm, bool append_ie); 11520*5113495bSYour Name uint32_t dot11f_pack_del_ts(tpAniSirGlobal pCtx, 11521*5113495bSYour Name tDot11fDelTS *pFrm, uint8_t *pBuf, 11522*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11523*5113495bSYour Name uint32_t dot11f_get_packed_del_ts_size(tpAniSirGlobal pCtx, 11524*5113495bSYour Name tDot11fDelTS *pFrm, 11525*5113495bSYour Name uint32_t *pnNeeded); 11526*5113495bSYour Name 11527*5113495bSYour Name #ifdef __cplusplus 11528*5113495bSYour Name } /* End extern "C". */ 11529*5113495bSYour Name #endif /* C++ */ 11530*5113495bSYour Name 11531*5113495bSYour Name typedef struct sDot11fDisassociation{ 11532*5113495bSYour Name tDot11fFfReason Reason; 11533*5113495bSYour Name tDot11fIEP2PDisAssoc P2PDisAssoc; 11534*5113495bSYour Name } tDot11fDisassociation; 11535*5113495bSYour Name 11536*5113495bSYour Name #define DOT11F_DISASSOCIATION (13) 11537*5113495bSYour Name 11538*5113495bSYour Name #ifdef __cplusplus 11539*5113495bSYour Name extern "C" { 11540*5113495bSYour Name #endif /* C++ */ 11541*5113495bSYour Name 11542*5113495bSYour Name uint32_t dot11f_unpack_disassociation(tpAniSirGlobal pCtx, 11543*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11544*5113495bSYour Name tDot11fDisassociation * pFrm, bool append_ie); 11545*5113495bSYour Name uint32_t dot11f_pack_disassociation(tpAniSirGlobal pCtx, 11546*5113495bSYour Name tDot11fDisassociation *pFrm, uint8_t *pBuf, 11547*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11548*5113495bSYour Name uint32_t dot11f_get_packed_disassociation_size(tpAniSirGlobal pCtx, 11549*5113495bSYour Name tDot11fDisassociation *pFrm, 11550*5113495bSYour Name uint32_t *pnNeeded); 11551*5113495bSYour Name 11552*5113495bSYour Name #ifdef __cplusplus 11553*5113495bSYour Name } /* End extern "C". */ 11554*5113495bSYour Name #endif /* C++ */ 11555*5113495bSYour Name 11556*5113495bSYour Name typedef struct sDot11fLinkMeasurementReport{ 11557*5113495bSYour Name tDot11fFfCategory Category; 11558*5113495bSYour Name tDot11fFfAction Action; 11559*5113495bSYour Name tDot11fFfDialogToken DialogToken; 11560*5113495bSYour Name tDot11fFfTPCEleID TPCEleID; 11561*5113495bSYour Name tDot11fFfTPCEleLen TPCEleLen; 11562*5113495bSYour Name tDot11fFfTxPower TxPower; 11563*5113495bSYour Name tDot11fFfLinkMargin LinkMargin; 11564*5113495bSYour Name tDot11fFfRxAntennaId RxAntennaId; 11565*5113495bSYour Name tDot11fFfTxAntennaId TxAntennaId; 11566*5113495bSYour Name tDot11fFfRCPI RCPI; 11567*5113495bSYour Name tDot11fFfRSNI RSNI; 11568*5113495bSYour Name } tDot11fLinkMeasurementReport; 11569*5113495bSYour Name 11570*5113495bSYour Name #define DOT11F_LINKMEASUREMENTREPORT (14) 11571*5113495bSYour Name 11572*5113495bSYour Name #ifdef __cplusplus 11573*5113495bSYour Name extern "C" { 11574*5113495bSYour Name #endif /* C++ */ 11575*5113495bSYour Name 11576*5113495bSYour Name uint32_t dot11f_unpack_link_measurement_report(tpAniSirGlobal pCtx, 11577*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11578*5113495bSYour Name tDot11fLinkMeasurementReport * pFrm, bool append_ie); 11579*5113495bSYour Name uint32_t dot11f_pack_link_measurement_report(tpAniSirGlobal pCtx, 11580*5113495bSYour Name tDot11fLinkMeasurementReport *pFrm, uint8_t *pBuf, 11581*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11582*5113495bSYour Name uint32_t dot11f_get_packed_link_measurement_report_size(tpAniSirGlobal pCtx, 11583*5113495bSYour Name tDot11fLinkMeasurementReport *pFrm, 11584*5113495bSYour Name uint32_t *pnNeeded); 11585*5113495bSYour Name 11586*5113495bSYour Name #ifdef __cplusplus 11587*5113495bSYour Name } /* End extern "C". */ 11588*5113495bSYour Name #endif /* C++ */ 11589*5113495bSYour Name 11590*5113495bSYour Name typedef struct sDot11fLinkMeasurementRequest{ 11591*5113495bSYour Name tDot11fFfCategory Category; 11592*5113495bSYour Name tDot11fFfAction Action; 11593*5113495bSYour Name tDot11fFfDialogToken DialogToken; 11594*5113495bSYour Name tDot11fFfTxPower TxPower; 11595*5113495bSYour Name tDot11fFfMaxTxPower MaxTxPower; 11596*5113495bSYour Name } tDot11fLinkMeasurementRequest; 11597*5113495bSYour Name 11598*5113495bSYour Name #define DOT11F_LINKMEASUREMENTREQUEST (15) 11599*5113495bSYour Name 11600*5113495bSYour Name #ifdef __cplusplus 11601*5113495bSYour Name extern "C" { 11602*5113495bSYour Name #endif /* C++ */ 11603*5113495bSYour Name 11604*5113495bSYour Name uint32_t dot11f_unpack_link_measurement_request(tpAniSirGlobal pCtx, 11605*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11606*5113495bSYour Name tDot11fLinkMeasurementRequest * pFrm, bool append_ie); 11607*5113495bSYour Name uint32_t dot11f_pack_link_measurement_request(tpAniSirGlobal pCtx, 11608*5113495bSYour Name tDot11fLinkMeasurementRequest *pFrm, uint8_t *pBuf, 11609*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11610*5113495bSYour Name uint32_t dot11f_get_packed_link_measurement_request_size(tpAniSirGlobal pCtx, 11611*5113495bSYour Name tDot11fLinkMeasurementRequest *pFrm, 11612*5113495bSYour Name uint32_t *pnNeeded); 11613*5113495bSYour Name 11614*5113495bSYour Name #ifdef __cplusplus 11615*5113495bSYour Name } /* End extern "C". */ 11616*5113495bSYour Name #endif /* C++ */ 11617*5113495bSYour Name 11618*5113495bSYour Name typedef struct sDot11fMeasurementReport{ 11619*5113495bSYour Name tDot11fFfCategory Category; 11620*5113495bSYour Name tDot11fFfAction Action; 11621*5113495bSYour Name tDot11fFfDialogToken DialogToken; 11622*5113495bSYour Name tDot11fIEMeasurementReport MeasurementReport; 11623*5113495bSYour Name } tDot11fMeasurementReport; 11624*5113495bSYour Name 11625*5113495bSYour Name #define DOT11F_MEASUREMENTREPORT (16) 11626*5113495bSYour Name 11627*5113495bSYour Name #ifdef __cplusplus 11628*5113495bSYour Name extern "C" { 11629*5113495bSYour Name #endif /* C++ */ 11630*5113495bSYour Name 11631*5113495bSYour Name uint32_t dot11f_unpack_measurement_report(tpAniSirGlobal pCtx, 11632*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11633*5113495bSYour Name tDot11fMeasurementReport * pFrm, bool append_ie); 11634*5113495bSYour Name uint32_t dot11f_pack_measurement_report(tpAniSirGlobal pCtx, 11635*5113495bSYour Name tDot11fMeasurementReport *pFrm, uint8_t *pBuf, 11636*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11637*5113495bSYour Name uint32_t dot11f_get_packed_measurement_report_size(tpAniSirGlobal pCtx, 11638*5113495bSYour Name tDot11fMeasurementReport *pFrm, 11639*5113495bSYour Name uint32_t *pnNeeded); 11640*5113495bSYour Name 11641*5113495bSYour Name #ifdef __cplusplus 11642*5113495bSYour Name } /* End extern "C". */ 11643*5113495bSYour Name #endif /* C++ */ 11644*5113495bSYour Name 11645*5113495bSYour Name typedef struct sDot11fMeasurementRequest{ 11646*5113495bSYour Name tDot11fFfCategory Category; 11647*5113495bSYour Name tDot11fFfAction Action; 11648*5113495bSYour Name tDot11fFfDialogToken DialogToken; 11649*5113495bSYour Name uint16_t num_MeasurementRequest; 11650*5113495bSYour Name tDot11fIEMeasurementRequest MeasurementRequest[4]; 11651*5113495bSYour Name } tDot11fMeasurementRequest; 11652*5113495bSYour Name 11653*5113495bSYour Name #define DOT11F_MEASUREMENTREQUEST (17) 11654*5113495bSYour Name 11655*5113495bSYour Name #ifdef __cplusplus 11656*5113495bSYour Name extern "C" { 11657*5113495bSYour Name #endif /* C++ */ 11658*5113495bSYour Name 11659*5113495bSYour Name uint32_t dot11f_unpack_measurement_request(tpAniSirGlobal pCtx, 11660*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11661*5113495bSYour Name tDot11fMeasurementRequest * pFrm, bool append_ie); 11662*5113495bSYour Name uint32_t dot11f_pack_measurement_request(tpAniSirGlobal pCtx, 11663*5113495bSYour Name tDot11fMeasurementRequest *pFrm, uint8_t *pBuf, 11664*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11665*5113495bSYour Name uint32_t dot11f_get_packed_measurement_request_size(tpAniSirGlobal pCtx, 11666*5113495bSYour Name tDot11fMeasurementRequest *pFrm, 11667*5113495bSYour Name uint32_t *pnNeeded); 11668*5113495bSYour Name 11669*5113495bSYour Name #ifdef __cplusplus 11670*5113495bSYour Name } /* End extern "C". */ 11671*5113495bSYour Name #endif /* C++ */ 11672*5113495bSYour Name 11673*5113495bSYour Name typedef struct sDot11fNeighborReportRequest{ 11674*5113495bSYour Name tDot11fFfCategory Category; 11675*5113495bSYour Name tDot11fFfAction Action; 11676*5113495bSYour Name tDot11fFfDialogToken DialogToken; 11677*5113495bSYour Name tDot11fIESSID SSID; 11678*5113495bSYour Name } tDot11fNeighborReportRequest; 11679*5113495bSYour Name 11680*5113495bSYour Name #define DOT11F_NEIGHBORREPORTREQUEST (18) 11681*5113495bSYour Name 11682*5113495bSYour Name #ifdef __cplusplus 11683*5113495bSYour Name extern "C" { 11684*5113495bSYour Name #endif /* C++ */ 11685*5113495bSYour Name 11686*5113495bSYour Name uint32_t dot11f_unpack_neighbor_report_request(tpAniSirGlobal pCtx, 11687*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11688*5113495bSYour Name tDot11fNeighborReportRequest * pFrm, bool append_ie); 11689*5113495bSYour Name uint32_t dot11f_pack_neighbor_report_request(tpAniSirGlobal pCtx, 11690*5113495bSYour Name tDot11fNeighborReportRequest *pFrm, uint8_t *pBuf, 11691*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11692*5113495bSYour Name uint32_t dot11f_get_packed_neighbor_report_request_size(tpAniSirGlobal pCtx, 11693*5113495bSYour Name tDot11fNeighborReportRequest *pFrm, 11694*5113495bSYour Name uint32_t *pnNeeded); 11695*5113495bSYour Name 11696*5113495bSYour Name #ifdef __cplusplus 11697*5113495bSYour Name } /* End extern "C". */ 11698*5113495bSYour Name #endif /* C++ */ 11699*5113495bSYour Name 11700*5113495bSYour Name typedef struct sDot11fNeighborReportResponse{ 11701*5113495bSYour Name tDot11fFfCategory Category; 11702*5113495bSYour Name tDot11fFfAction Action; 11703*5113495bSYour Name tDot11fFfDialogToken DialogToken; 11704*5113495bSYour Name uint16_t num_NeighborReport; 11705*5113495bSYour Name tDot11fIENeighborReport NeighborReport[15]; 11706*5113495bSYour Name } tDot11fNeighborReportResponse; 11707*5113495bSYour Name 11708*5113495bSYour Name #define DOT11F_NEIGHBORREPORTRESPONSE (19) 11709*5113495bSYour Name 11710*5113495bSYour Name #ifdef __cplusplus 11711*5113495bSYour Name extern "C" { 11712*5113495bSYour Name #endif /* C++ */ 11713*5113495bSYour Name 11714*5113495bSYour Name uint32_t dot11f_unpack_neighbor_report_response(tpAniSirGlobal pCtx, 11715*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11716*5113495bSYour Name tDot11fNeighborReportResponse * pFrm, bool append_ie); 11717*5113495bSYour Name uint32_t dot11f_pack_neighbor_report_response(tpAniSirGlobal pCtx, 11718*5113495bSYour Name tDot11fNeighborReportResponse *pFrm, uint8_t *pBuf, 11719*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11720*5113495bSYour Name uint32_t dot11f_get_packed_neighbor_report_response_size(tpAniSirGlobal pCtx, 11721*5113495bSYour Name tDot11fNeighborReportResponse *pFrm, 11722*5113495bSYour Name uint32_t *pnNeeded); 11723*5113495bSYour Name 11724*5113495bSYour Name #ifdef __cplusplus 11725*5113495bSYour Name } /* End extern "C". */ 11726*5113495bSYour Name #endif /* C++ */ 11727*5113495bSYour Name 11728*5113495bSYour Name typedef struct sDot11fOperatingMode{ 11729*5113495bSYour Name tDot11fFfCategory Category; 11730*5113495bSYour Name tDot11fFfAction Action; 11731*5113495bSYour Name tDot11fFfOperatingMode OperatingMode; 11732*5113495bSYour Name } tDot11fOperatingMode; 11733*5113495bSYour Name 11734*5113495bSYour Name #define DOT11F_OPERATINGMODE (20) 11735*5113495bSYour Name 11736*5113495bSYour Name #ifdef __cplusplus 11737*5113495bSYour Name extern "C" { 11738*5113495bSYour Name #endif /* C++ */ 11739*5113495bSYour Name 11740*5113495bSYour Name uint32_t dot11f_unpack_operating_mode(tpAniSirGlobal pCtx, 11741*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11742*5113495bSYour Name tDot11fOperatingMode * pFrm, bool append_ie); 11743*5113495bSYour Name uint32_t dot11f_pack_operating_mode(tpAniSirGlobal pCtx, 11744*5113495bSYour Name tDot11fOperatingMode *pFrm, uint8_t *pBuf, 11745*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11746*5113495bSYour Name uint32_t dot11f_get_packed_operating_mode_size(tpAniSirGlobal pCtx, 11747*5113495bSYour Name tDot11fOperatingMode *pFrm, 11748*5113495bSYour Name uint32_t *pnNeeded); 11749*5113495bSYour Name 11750*5113495bSYour Name #ifdef __cplusplus 11751*5113495bSYour Name } /* End extern "C". */ 11752*5113495bSYour Name #endif /* C++ */ 11753*5113495bSYour Name 11754*5113495bSYour Name typedef struct sDot11fProbeRequest{ 11755*5113495bSYour Name tDot11fIESSID SSID; 11756*5113495bSYour Name tDot11fIESuppRates SuppRates; 11757*5113495bSYour Name tDot11fIERequestedInfo RequestedInfo; 11758*5113495bSYour Name tDot11fIEExtSuppRates ExtSuppRates; 11759*5113495bSYour Name tDot11fIEDSParams DSParams; 11760*5113495bSYour Name tDot11fIEHTCaps HTCaps; 11761*5113495bSYour Name tDot11fIEExtCap ExtCap; 11762*5113495bSYour Name tDot11fIEVHTCaps VHTCaps; 11763*5113495bSYour Name tDot11fIEhe_cap he_cap; 11764*5113495bSYour Name tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; 11765*5113495bSYour Name tDot11fIEeht_cap eht_cap; 11766*5113495bSYour Name tDot11fIEmlo_ie mlo_ie; 11767*5113495bSYour Name tDot11fIEWscProbeReq WscProbeReq; 11768*5113495bSYour Name tDot11fIEWFATPC WFATPC; 11769*5113495bSYour Name tDot11fIEP2PProbeReq P2PProbeReq; 11770*5113495bSYour Name tDot11fIEqcn_ie qcn_ie; 11771*5113495bSYour Name } tDot11fProbeRequest; 11772*5113495bSYour Name 11773*5113495bSYour Name #define DOT11F_PROBEREQUEST (21) 11774*5113495bSYour Name 11775*5113495bSYour Name #ifdef __cplusplus 11776*5113495bSYour Name extern "C" { 11777*5113495bSYour Name #endif /* C++ */ 11778*5113495bSYour Name 11779*5113495bSYour Name uint32_t dot11f_unpack_probe_request(tpAniSirGlobal pCtx, 11780*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11781*5113495bSYour Name tDot11fProbeRequest * pFrm, bool append_ie); 11782*5113495bSYour Name uint32_t dot11f_pack_probe_request(tpAniSirGlobal pCtx, 11783*5113495bSYour Name tDot11fProbeRequest *pFrm, uint8_t *pBuf, 11784*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11785*5113495bSYour Name uint32_t dot11f_get_packed_probe_request_size(tpAniSirGlobal pCtx, 11786*5113495bSYour Name tDot11fProbeRequest *pFrm, 11787*5113495bSYour Name uint32_t *pnNeeded); 11788*5113495bSYour Name 11789*5113495bSYour Name #ifdef __cplusplus 11790*5113495bSYour Name } /* End extern "C". */ 11791*5113495bSYour Name #endif /* C++ */ 11792*5113495bSYour Name 11793*5113495bSYour Name typedef struct sDot11fProbeResponse{ 11794*5113495bSYour Name tDot11fFfTimeStamp TimeStamp; 11795*5113495bSYour Name tDot11fFfBeaconInterval BeaconInterval; 11796*5113495bSYour Name tDot11fFfCapabilities Capabilities; 11797*5113495bSYour Name tDot11fIESSID SSID; 11798*5113495bSYour Name tDot11fIESuppRates SuppRates; 11799*5113495bSYour Name tDot11fIEFHParamSet FHParamSet; 11800*5113495bSYour Name tDot11fIEDSParams DSParams; 11801*5113495bSYour Name tDot11fIECFParams CFParams; 11802*5113495bSYour Name tDot11fIECountry Country; 11803*5113495bSYour Name tDot11fIEFHParams FHParams; 11804*5113495bSYour Name tDot11fIEFHPattTable FHPattTable; 11805*5113495bSYour Name tDot11fIEPowerConstraints PowerConstraints; 11806*5113495bSYour Name tDot11fIEChanSwitchAnn ChanSwitchAnn; 11807*5113495bSYour Name tDot11fIEQuiet Quiet; 11808*5113495bSYour Name tDot11fIETPCReport TPCReport; 11809*5113495bSYour Name tDot11fIEERPInfo ERPInfo; 11810*5113495bSYour Name tDot11fIEExtSuppRates ExtSuppRates; 11811*5113495bSYour Name tDot11fIERSNOpaque RSNOpaque; 11812*5113495bSYour Name tDot11fIEQBSSLoad QBSSLoad; 11813*5113495bSYour Name tDot11fIEEDCAParamSet EDCAParamSet; 11814*5113495bSYour Name tDot11fIERRMEnabledCap RRMEnabledCap; 11815*5113495bSYour Name tDot11fIEAPChannelReport APChannelReport; 11816*5113495bSYour Name tDot11fIEMobilityDomain MobilityDomain; 11817*5113495bSYour Name tDot11fIEext_chan_switch_ann ext_chan_switch_ann; 11818*5113495bSYour Name tDot11fIESuppOperatingClasses SuppOperatingClasses; 11819*5113495bSYour Name tDot11fIEHTCaps HTCaps; 11820*5113495bSYour Name tDot11fIEHTInfo HTInfo; 11821*5113495bSYour Name tDot11fIEOBSSScanParameters OBSSScanParameters; 11822*5113495bSYour Name tDot11fIEExtCap ExtCap; 11823*5113495bSYour Name tDot11fIEVHTCaps VHTCaps; 11824*5113495bSYour Name tDot11fIEVHTOperation VHTOperation; 11825*5113495bSYour Name uint16_t num_transmit_power_env; 11826*5113495bSYour Name tDot11fIEtransmit_power_env transmit_power_env[8]; 11827*5113495bSYour Name tDot11fIEChannelSwitchWrapper ChannelSwitchWrapper; 11828*5113495bSYour Name tDot11fIEVHTExtBssLoad VHTExtBssLoad; 11829*5113495bSYour Name tDot11fIEfils_indication fils_indication; 11830*5113495bSYour Name tDot11fIEmax_chan_switch_time max_chan_switch_time; 11831*5113495bSYour Name tDot11fIEesp_information esp_information; 11832*5113495bSYour Name tDot11fIEhe_cap he_cap; 11833*5113495bSYour Name tDot11fIEhe_op he_op; 11834*5113495bSYour Name tDot11fIEspatial_reuse spatial_reuse; 11835*5113495bSYour Name tDot11fIEbss_color_change bss_color_change; 11836*5113495bSYour Name tDot11fIEmu_edca_param_set mu_edca_param_set; 11837*5113495bSYour Name tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; 11838*5113495bSYour Name tDot11fIEsec_chan_offset_ele sec_chan_offset_ele; 11839*5113495bSYour Name tDot11fIEWAPI WAPI; 11840*5113495bSYour Name tDot11fIEESETxmitPower ESETxmitPower; 11841*5113495bSYour Name tDot11fIEeht_cap eht_cap; 11842*5113495bSYour Name tDot11fIEeht_op eht_op; 11843*5113495bSYour Name tDot11fIEmlo_ie mlo_ie; 11844*5113495bSYour Name uint16_t num_t2lm_ie; 11845*5113495bSYour Name tDot11fIEt2lm_ie t2lm_ie[2]; 11846*5113495bSYour Name tDot11fIEWPA WPA; 11847*5113495bSYour Name tDot11fIEWMMInfoAp WMMInfoAp; 11848*5113495bSYour Name tDot11fIEWMMParams WMMParams; 11849*5113495bSYour Name tDot11fIEWMMCaps WMMCaps; 11850*5113495bSYour Name tDot11fIEESEVersion ESEVersion; 11851*5113495bSYour Name tDot11fIEESERadMgmtCap ESERadMgmtCap; 11852*5113495bSYour Name tDot11fIEESETrafStrmMet ESETrafStrmMet; 11853*5113495bSYour Name tDot11fIEWscProbeRes WscProbeRes; 11854*5113495bSYour Name tDot11fIEP2PProbeRes P2PProbeRes; 11855*5113495bSYour Name tDot11fIEVendor1IE Vendor1IE; 11856*5113495bSYour Name tDot11fIEvendor_vht_ie vendor_vht_ie; 11857*5113495bSYour Name tDot11fIEVendor3IE Vendor3IE; 11858*5113495bSYour Name tDot11fIEhs20vendor_ie hs20vendor_ie; 11859*5113495bSYour Name tDot11fIEQComVendorIE QComVendorIE; 11860*5113495bSYour Name tDot11fIEMBO_IE MBO_IE; 11861*5113495bSYour Name tDot11fIEqcn_ie qcn_ie; 11862*5113495bSYour Name tDot11fIEreduced_neighbor_report reduced_neighbor_report; 11863*5113495bSYour Name } tDot11fProbeResponse; 11864*5113495bSYour Name 11865*5113495bSYour Name #define DOT11F_PROBERESPONSE (22) 11866*5113495bSYour Name 11867*5113495bSYour Name #ifdef __cplusplus 11868*5113495bSYour Name extern "C" { 11869*5113495bSYour Name #endif /* C++ */ 11870*5113495bSYour Name 11871*5113495bSYour Name uint32_t dot11f_unpack_probe_response(tpAniSirGlobal pCtx, 11872*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11873*5113495bSYour Name tDot11fProbeResponse * pFrm, bool append_ie); 11874*5113495bSYour Name uint32_t dot11f_pack_probe_response(tpAniSirGlobal pCtx, 11875*5113495bSYour Name tDot11fProbeResponse *pFrm, uint8_t *pBuf, 11876*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11877*5113495bSYour Name uint32_t dot11f_get_packed_probe_response_size(tpAniSirGlobal pCtx, 11878*5113495bSYour Name tDot11fProbeResponse *pFrm, 11879*5113495bSYour Name uint32_t *pnNeeded); 11880*5113495bSYour Name 11881*5113495bSYour Name #ifdef __cplusplus 11882*5113495bSYour Name } /* End extern "C". */ 11883*5113495bSYour Name #endif /* C++ */ 11884*5113495bSYour Name 11885*5113495bSYour Name typedef struct sDot11fQosMapConfigure{ 11886*5113495bSYour Name tDot11fFfCategory Category; 11887*5113495bSYour Name tDot11fFfAction Action; 11888*5113495bSYour Name tDot11fIEQosMapSet QosMapSet; 11889*5113495bSYour Name } tDot11fQosMapConfigure; 11890*5113495bSYour Name 11891*5113495bSYour Name #define DOT11F_QOSMAPCONFIGURE (23) 11892*5113495bSYour Name 11893*5113495bSYour Name #ifdef __cplusplus 11894*5113495bSYour Name extern "C" { 11895*5113495bSYour Name #endif /* C++ */ 11896*5113495bSYour Name 11897*5113495bSYour Name uint32_t dot11f_unpack_qos_map_configure(tpAniSirGlobal pCtx, 11898*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11899*5113495bSYour Name tDot11fQosMapConfigure * pFrm, bool append_ie); 11900*5113495bSYour Name uint32_t dot11f_pack_qos_map_configure(tpAniSirGlobal pCtx, 11901*5113495bSYour Name tDot11fQosMapConfigure *pFrm, uint8_t *pBuf, 11902*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11903*5113495bSYour Name uint32_t dot11f_get_packed_qos_map_configure_size(tpAniSirGlobal pCtx, 11904*5113495bSYour Name tDot11fQosMapConfigure *pFrm, 11905*5113495bSYour Name uint32_t *pnNeeded); 11906*5113495bSYour Name 11907*5113495bSYour Name #ifdef __cplusplus 11908*5113495bSYour Name } /* End extern "C". */ 11909*5113495bSYour Name #endif /* C++ */ 11910*5113495bSYour Name 11911*5113495bSYour Name typedef struct sDot11fRadioMeasurementReport{ 11912*5113495bSYour Name tDot11fFfCategory Category; 11913*5113495bSYour Name tDot11fFfAction Action; 11914*5113495bSYour Name tDot11fFfDialogToken DialogToken; 11915*5113495bSYour Name uint16_t num_MeasurementReport; 11916*5113495bSYour Name tDot11fIEMeasurementReport MeasurementReport[1]; 11917*5113495bSYour Name } tDot11fRadioMeasurementReport; 11918*5113495bSYour Name 11919*5113495bSYour Name #define DOT11F_RADIOMEASUREMENTREPORT (24) 11920*5113495bSYour Name 11921*5113495bSYour Name #ifdef __cplusplus 11922*5113495bSYour Name extern "C" { 11923*5113495bSYour Name #endif /* C++ */ 11924*5113495bSYour Name 11925*5113495bSYour Name uint32_t dot11f_unpack_radio_measurement_report(tpAniSirGlobal pCtx, 11926*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11927*5113495bSYour Name tDot11fRadioMeasurementReport * pFrm, bool append_ie); 11928*5113495bSYour Name uint32_t dot11f_pack_radio_measurement_report(tpAniSirGlobal pCtx, 11929*5113495bSYour Name tDot11fRadioMeasurementReport *pFrm, uint8_t *pBuf, 11930*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11931*5113495bSYour Name uint32_t dot11f_get_packed_radio_measurement_report_size(tpAniSirGlobal pCtx, 11932*5113495bSYour Name tDot11fRadioMeasurementReport *pFrm, 11933*5113495bSYour Name uint32_t *pnNeeded); 11934*5113495bSYour Name 11935*5113495bSYour Name #ifdef __cplusplus 11936*5113495bSYour Name } /* End extern "C". */ 11937*5113495bSYour Name #endif /* C++ */ 11938*5113495bSYour Name 11939*5113495bSYour Name typedef struct sDot11fRadioMeasurementRequest{ 11940*5113495bSYour Name tDot11fFfCategory Category; 11941*5113495bSYour Name tDot11fFfAction Action; 11942*5113495bSYour Name tDot11fFfDialogToken DialogToken; 11943*5113495bSYour Name tDot11fFfNumOfRepetitions NumOfRepetitions; 11944*5113495bSYour Name uint16_t num_MeasurementRequest; 11945*5113495bSYour Name tDot11fIEMeasurementRequest MeasurementRequest[5]; 11946*5113495bSYour Name } tDot11fRadioMeasurementRequest; 11947*5113495bSYour Name 11948*5113495bSYour Name #define DOT11F_RADIOMEASUREMENTREQUEST (25) 11949*5113495bSYour Name 11950*5113495bSYour Name #ifdef __cplusplus 11951*5113495bSYour Name extern "C" { 11952*5113495bSYour Name #endif /* C++ */ 11953*5113495bSYour Name 11954*5113495bSYour Name uint32_t dot11f_unpack_radio_measurement_request(tpAniSirGlobal pCtx, 11955*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 11956*5113495bSYour Name tDot11fRadioMeasurementRequest * pFrm, bool append_ie); 11957*5113495bSYour Name uint32_t dot11f_pack_radio_measurement_request(tpAniSirGlobal pCtx, 11958*5113495bSYour Name tDot11fRadioMeasurementRequest *pFrm, uint8_t *pBuf, 11959*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 11960*5113495bSYour Name uint32_t dot11f_get_packed_radio_measurement_request_size(tpAniSirGlobal pCtx, 11961*5113495bSYour Name tDot11fRadioMeasurementRequest *pFrm, 11962*5113495bSYour Name uint32_t *pnNeeded); 11963*5113495bSYour Name 11964*5113495bSYour Name #ifdef __cplusplus 11965*5113495bSYour Name } /* End extern "C". */ 11966*5113495bSYour Name #endif /* C++ */ 11967*5113495bSYour Name 11968*5113495bSYour Name typedef struct sDot11fReAssocRequest{ 11969*5113495bSYour Name tDot11fFfCapabilities Capabilities; 11970*5113495bSYour Name tDot11fFfListenInterval ListenInterval; 11971*5113495bSYour Name tDot11fFfCurrentAPAddress CurrentAPAddress; 11972*5113495bSYour Name tDot11fIESSID SSID; 11973*5113495bSYour Name tDot11fIESuppRates SuppRates; 11974*5113495bSYour Name tDot11fIEExtSuppRates ExtSuppRates; 11975*5113495bSYour Name tDot11fIEPowerCaps PowerCaps; 11976*5113495bSYour Name tDot11fIESuppChannels SuppChannels; 11977*5113495bSYour Name tDot11fIERSNOpaque RSNOpaque; 11978*5113495bSYour Name tDot11fIEQOSCapsStation QOSCapsStation; 11979*5113495bSYour Name tDot11fIERRMEnabledCap RRMEnabledCap; 11980*5113495bSYour Name tDot11fIEMobilityDomain MobilityDomain; 11981*5113495bSYour Name tDot11fIEFTInfo FTInfo; 11982*5113495bSYour Name uint16_t num_RICDataDesc; 11983*5113495bSYour Name tDot11fIERICDataDesc RICDataDesc[2]; 11984*5113495bSYour Name tDot11fIESuppOperatingClasses SuppOperatingClasses; 11985*5113495bSYour Name tDot11fIEHTCaps HTCaps; 11986*5113495bSYour Name tDot11fIEExtCap ExtCap; 11987*5113495bSYour Name tDot11fIEVHTCaps VHTCaps; 11988*5113495bSYour Name tDot11fIEOperatingMode OperatingMode; 11989*5113495bSYour Name tDot11fIEbss_max_idle_period bss_max_idle_period; 11990*5113495bSYour Name tDot11fIEhe_cap he_cap; 11991*5113495bSYour Name tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; 11992*5113495bSYour Name tDot11fIEWAPIOpaque WAPIOpaque; 11993*5113495bSYour Name tDot11fIEWAPI WAPI; 11994*5113495bSYour Name tDot11fIEQosMapSet QosMapSet; 11995*5113495bSYour Name tDot11fIEESECckmOpaque ESECckmOpaque; 11996*5113495bSYour Name tDot11fIEeht_cap eht_cap; 11997*5113495bSYour Name tDot11fIEmlo_ie mlo_ie; 11998*5113495bSYour Name uint16_t num_t2lm_ie; 11999*5113495bSYour Name tDot11fIEt2lm_ie t2lm_ie[2]; 12000*5113495bSYour Name tDot11fIEWPAOpaque WPAOpaque; 12001*5113495bSYour Name tDot11fIEWMMCaps WMMCaps; 12002*5113495bSYour Name tDot11fIEWMMInfoStation WMMInfoStation; 12003*5113495bSYour Name tDot11fIEWscIEOpaque WscIEOpaque; 12004*5113495bSYour Name tDot11fIEESERadMgmtCap ESERadMgmtCap; 12005*5113495bSYour Name tDot11fIEESEVersion ESEVersion; 12006*5113495bSYour Name uint16_t num_WMMTSPEC; 12007*5113495bSYour Name tDot11fIEWMMTSPEC WMMTSPEC[4]; 12008*5113495bSYour Name tDot11fIEESETrafStrmRateSet ESETrafStrmRateSet; 12009*5113495bSYour Name tDot11fIEP2PIEOpaque P2PIEOpaque; 12010*5113495bSYour Name tDot11fIEWFDIEOpaque WFDIEOpaque; 12011*5113495bSYour Name tDot11fIEvendor_vht_ie vendor_vht_ie; 12012*5113495bSYour Name tDot11fIEhs20vendor_ie hs20vendor_ie; 12013*5113495bSYour Name } tDot11fReAssocRequest; 12014*5113495bSYour Name 12015*5113495bSYour Name #define DOT11F_REASSOCREQUEST (26) 12016*5113495bSYour Name 12017*5113495bSYour Name #ifdef __cplusplus 12018*5113495bSYour Name extern "C" { 12019*5113495bSYour Name #endif /* C++ */ 12020*5113495bSYour Name 12021*5113495bSYour Name uint32_t dot11f_unpack_re_assoc_request(tpAniSirGlobal pCtx, 12022*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12023*5113495bSYour Name tDot11fReAssocRequest * pFrm, bool append_ie); 12024*5113495bSYour Name uint32_t dot11f_pack_re_assoc_request(tpAniSirGlobal pCtx, 12025*5113495bSYour Name tDot11fReAssocRequest *pFrm, uint8_t *pBuf, 12026*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12027*5113495bSYour Name uint32_t dot11f_get_packed_re_assoc_request_size(tpAniSirGlobal pCtx, 12028*5113495bSYour Name tDot11fReAssocRequest *pFrm, 12029*5113495bSYour Name uint32_t *pnNeeded); 12030*5113495bSYour Name 12031*5113495bSYour Name #ifdef __cplusplus 12032*5113495bSYour Name } /* End extern "C". */ 12033*5113495bSYour Name #endif /* C++ */ 12034*5113495bSYour Name 12035*5113495bSYour Name typedef struct sDot11fReAssocResponse{ 12036*5113495bSYour Name tDot11fFfCapabilities Capabilities; 12037*5113495bSYour Name tDot11fFfStatus Status; 12038*5113495bSYour Name tDot11fFfAID AID; 12039*5113495bSYour Name tDot11fIESuppRates SuppRates; 12040*5113495bSYour Name tDot11fIEExtSuppRates ExtSuppRates; 12041*5113495bSYour Name tDot11fIEEDCAParamSet EDCAParamSet; 12042*5113495bSYour Name tDot11fIERCPIIE RCPIIE; 12043*5113495bSYour Name tDot11fIERSNIIE RSNIIE; 12044*5113495bSYour Name tDot11fIERRMEnabledCap RRMEnabledCap; 12045*5113495bSYour Name tDot11fIERSNOpaque RSNOpaque; 12046*5113495bSYour Name tDot11fIEMobilityDomain MobilityDomain; 12047*5113495bSYour Name tDot11fIEFTInfo FTInfo; 12048*5113495bSYour Name uint16_t num_RICDataDesc; 12049*5113495bSYour Name tDot11fIERICDataDesc RICDataDesc[2]; 12050*5113495bSYour Name tDot11fIETimeoutInterval TimeoutInterval; 12051*5113495bSYour Name tDot11fIEHTCaps HTCaps; 12052*5113495bSYour Name tDot11fIEHTInfo HTInfo; 12053*5113495bSYour Name tDot11fIEOBSSScanParameters OBSSScanParameters; 12054*5113495bSYour Name tDot11fIEExtCap ExtCap; 12055*5113495bSYour Name tDot11fIEbss_max_idle_period bss_max_idle_period; 12056*5113495bSYour Name tDot11fIEVHTCaps VHTCaps; 12057*5113495bSYour Name tDot11fIEVHTOperation VHTOperation; 12058*5113495bSYour Name tDot11fIEOperatingMode OperatingMode; 12059*5113495bSYour Name tDot11fIEhe_cap he_cap; 12060*5113495bSYour Name tDot11fIEhe_op he_op; 12061*5113495bSYour Name tDot11fIEspatial_reuse spatial_reuse; 12062*5113495bSYour Name tDot11fIEbss_color_change bss_color_change; 12063*5113495bSYour Name tDot11fIEmu_edca_param_set mu_edca_param_set; 12064*5113495bSYour Name tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; 12065*5113495bSYour Name tDot11fIEQosMapSet QosMapSet; 12066*5113495bSYour Name tDot11fIEESETxmitPower ESETxmitPower; 12067*5113495bSYour Name tDot11fIEeht_cap eht_cap; 12068*5113495bSYour Name tDot11fIEeht_op eht_op; 12069*5113495bSYour Name tDot11fIEmlo_ie mlo_ie; 12070*5113495bSYour Name uint16_t num_t2lm_ie; 12071*5113495bSYour Name tDot11fIEt2lm_ie t2lm_ie[2]; 12072*5113495bSYour Name tDot11fIEWPA WPA; 12073*5113495bSYour Name tDot11fIEWMMParams WMMParams; 12074*5113495bSYour Name tDot11fIEESERadMgmtCap ESERadMgmtCap; 12075*5113495bSYour Name tDot11fIEESETrafStrmMet ESETrafStrmMet; 12076*5113495bSYour Name uint16_t num_WMMTSPEC; 12077*5113495bSYour Name tDot11fIEWMMTSPEC WMMTSPEC[4]; 12078*5113495bSYour Name tDot11fIEESETrafStrmRateSet ESETrafStrmRateSet; 12079*5113495bSYour Name tDot11fIEWscReassocRes WscReassocRes; 12080*5113495bSYour Name tDot11fIEP2PAssocRes P2PAssocRes; 12081*5113495bSYour Name tDot11fIEvendor_vht_ie vendor_vht_ie; 12082*5113495bSYour Name tDot11fIEMBO_IE MBO_IE; 12083*5113495bSYour Name tDot11fIEreduced_neighbor_report reduced_neighbor_report; 12084*5113495bSYour Name } tDot11fReAssocResponse; 12085*5113495bSYour Name 12086*5113495bSYour Name #define DOT11F_REASSOCRESPONSE (27) 12087*5113495bSYour Name 12088*5113495bSYour Name #ifdef __cplusplus 12089*5113495bSYour Name extern "C" { 12090*5113495bSYour Name #endif /* C++ */ 12091*5113495bSYour Name 12092*5113495bSYour Name uint32_t dot11f_unpack_re_assoc_response(tpAniSirGlobal pCtx, 12093*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12094*5113495bSYour Name tDot11fReAssocResponse * pFrm, bool append_ie); 12095*5113495bSYour Name uint32_t dot11f_pack_re_assoc_response(tpAniSirGlobal pCtx, 12096*5113495bSYour Name tDot11fReAssocResponse *pFrm, uint8_t *pBuf, 12097*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12098*5113495bSYour Name uint32_t dot11f_get_packed_re_assoc_response_size(tpAniSirGlobal pCtx, 12099*5113495bSYour Name tDot11fReAssocResponse *pFrm, 12100*5113495bSYour Name uint32_t *pnNeeded); 12101*5113495bSYour Name 12102*5113495bSYour Name #ifdef __cplusplus 12103*5113495bSYour Name } /* End extern "C". */ 12104*5113495bSYour Name #endif /* C++ */ 12105*5113495bSYour Name 12106*5113495bSYour Name typedef struct sDot11fSMPowerSave{ 12107*5113495bSYour Name tDot11fFfCategory Category; 12108*5113495bSYour Name tDot11fFfAction Action; 12109*5113495bSYour Name tDot11fFfSMPowerModeSet SMPowerModeSet; 12110*5113495bSYour Name } tDot11fSMPowerSave; 12111*5113495bSYour Name 12112*5113495bSYour Name #define DOT11F_SMPOWERSAVE (28) 12113*5113495bSYour Name 12114*5113495bSYour Name #ifdef __cplusplus 12115*5113495bSYour Name extern "C" { 12116*5113495bSYour Name #endif /* C++ */ 12117*5113495bSYour Name 12118*5113495bSYour Name uint32_t dot11f_unpack_sm_power_save(tpAniSirGlobal pCtx, 12119*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12120*5113495bSYour Name tDot11fSMPowerSave * pFrm, bool append_ie); 12121*5113495bSYour Name uint32_t dot11f_pack_sm_power_save(tpAniSirGlobal pCtx, 12122*5113495bSYour Name tDot11fSMPowerSave *pFrm, uint8_t *pBuf, 12123*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12124*5113495bSYour Name uint32_t dot11f_get_packed_sm_power_save_size(tpAniSirGlobal pCtx, 12125*5113495bSYour Name tDot11fSMPowerSave *pFrm, 12126*5113495bSYour Name uint32_t *pnNeeded); 12127*5113495bSYour Name 12128*5113495bSYour Name #ifdef __cplusplus 12129*5113495bSYour Name } /* End extern "C". */ 12130*5113495bSYour Name #endif /* C++ */ 12131*5113495bSYour Name 12132*5113495bSYour Name typedef struct sDot11fSaQueryReq{ 12133*5113495bSYour Name tDot11fFfCategory Category; 12134*5113495bSYour Name tDot11fFfAction Action; 12135*5113495bSYour Name tDot11fFfTransactionId TransactionId; 12136*5113495bSYour Name tDot11fIEoci oci; 12137*5113495bSYour Name } tDot11fSaQueryReq; 12138*5113495bSYour Name 12139*5113495bSYour Name #define DOT11F_SAQUERYREQ (29) 12140*5113495bSYour Name 12141*5113495bSYour Name #ifdef __cplusplus 12142*5113495bSYour Name extern "C" { 12143*5113495bSYour Name #endif /* C++ */ 12144*5113495bSYour Name 12145*5113495bSYour Name uint32_t dot11f_unpack_sa_query_req(tpAniSirGlobal pCtx, 12146*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12147*5113495bSYour Name tDot11fSaQueryReq * pFrm, bool append_ie); 12148*5113495bSYour Name uint32_t dot11f_pack_sa_query_req(tpAniSirGlobal pCtx, 12149*5113495bSYour Name tDot11fSaQueryReq *pFrm, uint8_t *pBuf, 12150*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12151*5113495bSYour Name uint32_t dot11f_get_packed_sa_query_req_size(tpAniSirGlobal pCtx, 12152*5113495bSYour Name tDot11fSaQueryReq *pFrm, 12153*5113495bSYour Name uint32_t *pnNeeded); 12154*5113495bSYour Name 12155*5113495bSYour Name #ifdef __cplusplus 12156*5113495bSYour Name } /* End extern "C". */ 12157*5113495bSYour Name #endif /* C++ */ 12158*5113495bSYour Name 12159*5113495bSYour Name typedef struct sDot11fSaQueryRsp{ 12160*5113495bSYour Name tDot11fFfCategory Category; 12161*5113495bSYour Name tDot11fFfAction Action; 12162*5113495bSYour Name tDot11fFfTransactionId TransactionId; 12163*5113495bSYour Name tDot11fIEoci oci; 12164*5113495bSYour Name } tDot11fSaQueryRsp; 12165*5113495bSYour Name 12166*5113495bSYour Name #define DOT11F_SAQUERYRSP (30) 12167*5113495bSYour Name 12168*5113495bSYour Name #ifdef __cplusplus 12169*5113495bSYour Name extern "C" { 12170*5113495bSYour Name #endif /* C++ */ 12171*5113495bSYour Name 12172*5113495bSYour Name uint32_t dot11f_unpack_sa_query_rsp(tpAniSirGlobal pCtx, 12173*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12174*5113495bSYour Name tDot11fSaQueryRsp * pFrm, bool append_ie); 12175*5113495bSYour Name uint32_t dot11f_pack_sa_query_rsp(tpAniSirGlobal pCtx, 12176*5113495bSYour Name tDot11fSaQueryRsp *pFrm, uint8_t *pBuf, 12177*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12178*5113495bSYour Name uint32_t dot11f_get_packed_sa_query_rsp_size(tpAniSirGlobal pCtx, 12179*5113495bSYour Name tDot11fSaQueryRsp *pFrm, 12180*5113495bSYour Name uint32_t *pnNeeded); 12181*5113495bSYour Name 12182*5113495bSYour Name #ifdef __cplusplus 12183*5113495bSYour Name } /* End extern "C". */ 12184*5113495bSYour Name #endif /* C++ */ 12185*5113495bSYour Name 12186*5113495bSYour Name typedef struct sDot11fTDLSDisReq{ 12187*5113495bSYour Name tDot11fFfCategory Category; 12188*5113495bSYour Name tDot11fFfAction Action; 12189*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12190*5113495bSYour Name tDot11fIELinkIdentifier LinkIdentifier; 12191*5113495bSYour Name } tDot11fTDLSDisReq; 12192*5113495bSYour Name 12193*5113495bSYour Name #define DOT11F_TDLSDISREQ (31) 12194*5113495bSYour Name 12195*5113495bSYour Name #ifdef __cplusplus 12196*5113495bSYour Name extern "C" { 12197*5113495bSYour Name #endif /* C++ */ 12198*5113495bSYour Name 12199*5113495bSYour Name uint32_t dot11f_unpack_tdls_dis_req(tpAniSirGlobal pCtx, 12200*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12201*5113495bSYour Name tDot11fTDLSDisReq * pFrm, bool append_ie); 12202*5113495bSYour Name uint32_t dot11f_pack_tdls_dis_req(tpAniSirGlobal pCtx, 12203*5113495bSYour Name tDot11fTDLSDisReq *pFrm, uint8_t *pBuf, 12204*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12205*5113495bSYour Name uint32_t dot11f_get_packed_tdls_dis_req_size(tpAniSirGlobal pCtx, 12206*5113495bSYour Name tDot11fTDLSDisReq *pFrm, 12207*5113495bSYour Name uint32_t *pnNeeded); 12208*5113495bSYour Name 12209*5113495bSYour Name #ifdef __cplusplus 12210*5113495bSYour Name } /* End extern "C". */ 12211*5113495bSYour Name #endif /* C++ */ 12212*5113495bSYour Name 12213*5113495bSYour Name typedef struct sDot11fTDLSDisRsp{ 12214*5113495bSYour Name tDot11fFfCategory Category; 12215*5113495bSYour Name tDot11fFfAction Action; 12216*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12217*5113495bSYour Name tDot11fFfCapabilities Capabilities; 12218*5113495bSYour Name tDot11fIESuppRates SuppRates; 12219*5113495bSYour Name tDot11fIEExtSuppRates ExtSuppRates; 12220*5113495bSYour Name tDot11fIESuppChannels SuppChannels; 12221*5113495bSYour Name tDot11fIESuppOperatingClasses SuppOperatingClasses; 12222*5113495bSYour Name tDot11fIERSN RSN; 12223*5113495bSYour Name tDot11fIEExtCap ExtCap; 12224*5113495bSYour Name tDot11fIEFTInfo FTInfo; 12225*5113495bSYour Name tDot11fIETimeoutInterval TimeoutInterval; 12226*5113495bSYour Name tDot11fIERICData RICData; 12227*5113495bSYour Name tDot11fIEHTCaps HTCaps; 12228*5113495bSYour Name tDot11fIEht2040_bss_coexistence ht2040_bss_coexistence; 12229*5113495bSYour Name tDot11fIELinkIdentifier LinkIdentifier; 12230*5113495bSYour Name tDot11fIEVHTCaps VHTCaps; 12231*5113495bSYour Name tDot11fIEhe_cap he_cap; 12232*5113495bSYour Name } tDot11fTDLSDisRsp; 12233*5113495bSYour Name 12234*5113495bSYour Name #define DOT11F_TDLSDISRSP (32) 12235*5113495bSYour Name 12236*5113495bSYour Name #ifdef __cplusplus 12237*5113495bSYour Name extern "C" { 12238*5113495bSYour Name #endif /* C++ */ 12239*5113495bSYour Name 12240*5113495bSYour Name uint32_t dot11f_unpack_tdls_dis_rsp(tpAniSirGlobal pCtx, 12241*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12242*5113495bSYour Name tDot11fTDLSDisRsp * pFrm, bool append_ie); 12243*5113495bSYour Name uint32_t dot11f_pack_tdls_dis_rsp(tpAniSirGlobal pCtx, 12244*5113495bSYour Name tDot11fTDLSDisRsp *pFrm, uint8_t *pBuf, 12245*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12246*5113495bSYour Name uint32_t dot11f_get_packed_tdls_dis_rsp_size(tpAniSirGlobal pCtx, 12247*5113495bSYour Name tDot11fTDLSDisRsp *pFrm, 12248*5113495bSYour Name uint32_t *pnNeeded); 12249*5113495bSYour Name 12250*5113495bSYour Name #ifdef __cplusplus 12251*5113495bSYour Name } /* End extern "C". */ 12252*5113495bSYour Name #endif /* C++ */ 12253*5113495bSYour Name 12254*5113495bSYour Name typedef struct sDot11fTDLSPeerTrafficInd{ 12255*5113495bSYour Name tDot11fFfCategory Category; 12256*5113495bSYour Name tDot11fFfAction Action; 12257*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12258*5113495bSYour Name tDot11fIELinkIdentifier LinkIdentifier; 12259*5113495bSYour Name tDot11fIEPTIControl PTIControl; 12260*5113495bSYour Name tDot11fIEPUBufferStatus PUBufferStatus; 12261*5113495bSYour Name } tDot11fTDLSPeerTrafficInd; 12262*5113495bSYour Name 12263*5113495bSYour Name #define DOT11F_TDLSPEERTRAFFICIND (33) 12264*5113495bSYour Name 12265*5113495bSYour Name #ifdef __cplusplus 12266*5113495bSYour Name extern "C" { 12267*5113495bSYour Name #endif /* C++ */ 12268*5113495bSYour Name 12269*5113495bSYour Name uint32_t dot11f_unpack_tdls_peer_traffic_ind(tpAniSirGlobal pCtx, 12270*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12271*5113495bSYour Name tDot11fTDLSPeerTrafficInd * pFrm, bool append_ie); 12272*5113495bSYour Name uint32_t dot11f_pack_tdls_peer_traffic_ind(tpAniSirGlobal pCtx, 12273*5113495bSYour Name tDot11fTDLSPeerTrafficInd *pFrm, uint8_t *pBuf, 12274*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12275*5113495bSYour Name uint32_t dot11f_get_packed_tdls_peer_traffic_ind_size(tpAniSirGlobal pCtx, 12276*5113495bSYour Name tDot11fTDLSPeerTrafficInd *pFrm, 12277*5113495bSYour Name uint32_t *pnNeeded); 12278*5113495bSYour Name 12279*5113495bSYour Name #ifdef __cplusplus 12280*5113495bSYour Name } /* End extern "C". */ 12281*5113495bSYour Name #endif /* C++ */ 12282*5113495bSYour Name 12283*5113495bSYour Name typedef struct sDot11fTDLSPeerTrafficRsp{ 12284*5113495bSYour Name tDot11fFfCategory Category; 12285*5113495bSYour Name tDot11fFfAction Action; 12286*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12287*5113495bSYour Name tDot11fIELinkIdentifier LinkIdentifier; 12288*5113495bSYour Name } tDot11fTDLSPeerTrafficRsp; 12289*5113495bSYour Name 12290*5113495bSYour Name #define DOT11F_TDLSPEERTRAFFICRSP (34) 12291*5113495bSYour Name 12292*5113495bSYour Name #ifdef __cplusplus 12293*5113495bSYour Name extern "C" { 12294*5113495bSYour Name #endif /* C++ */ 12295*5113495bSYour Name 12296*5113495bSYour Name uint32_t dot11f_unpack_tdls_peer_traffic_rsp(tpAniSirGlobal pCtx, 12297*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12298*5113495bSYour Name tDot11fTDLSPeerTrafficRsp * pFrm, bool append_ie); 12299*5113495bSYour Name uint32_t dot11f_pack_tdls_peer_traffic_rsp(tpAniSirGlobal pCtx, 12300*5113495bSYour Name tDot11fTDLSPeerTrafficRsp *pFrm, uint8_t *pBuf, 12301*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12302*5113495bSYour Name uint32_t dot11f_get_packed_tdls_peer_traffic_rsp_size(tpAniSirGlobal pCtx, 12303*5113495bSYour Name tDot11fTDLSPeerTrafficRsp *pFrm, 12304*5113495bSYour Name uint32_t *pnNeeded); 12305*5113495bSYour Name 12306*5113495bSYour Name #ifdef __cplusplus 12307*5113495bSYour Name } /* End extern "C". */ 12308*5113495bSYour Name #endif /* C++ */ 12309*5113495bSYour Name 12310*5113495bSYour Name typedef struct sDot11fTDLSSetupCnf{ 12311*5113495bSYour Name tDot11fFfCategory Category; 12312*5113495bSYour Name tDot11fFfAction Action; 12313*5113495bSYour Name tDot11fFfStatus Status; 12314*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12315*5113495bSYour Name tDot11fIERSN RSN; 12316*5113495bSYour Name tDot11fIEEDCAParamSet EDCAParamSet; 12317*5113495bSYour Name tDot11fIEFTInfo FTInfo; 12318*5113495bSYour Name tDot11fIETimeoutInterval TimeoutInterval; 12319*5113495bSYour Name tDot11fIEHTInfo HTInfo; 12320*5113495bSYour Name tDot11fIELinkIdentifier LinkIdentifier; 12321*5113495bSYour Name tDot11fIEWMMParams WMMParams; 12322*5113495bSYour Name tDot11fIEVHTOperation VHTOperation; 12323*5113495bSYour Name tDot11fIEOperatingMode OperatingMode; 12324*5113495bSYour Name tDot11fIEhe_op he_op; 12325*5113495bSYour Name } tDot11fTDLSSetupCnf; 12326*5113495bSYour Name 12327*5113495bSYour Name #define DOT11F_TDLSSETUPCNF (35) 12328*5113495bSYour Name 12329*5113495bSYour Name #ifdef __cplusplus 12330*5113495bSYour Name extern "C" { 12331*5113495bSYour Name #endif /* C++ */ 12332*5113495bSYour Name 12333*5113495bSYour Name uint32_t dot11f_unpack_tdls_setup_cnf(tpAniSirGlobal pCtx, 12334*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12335*5113495bSYour Name tDot11fTDLSSetupCnf * pFrm, bool append_ie); 12336*5113495bSYour Name uint32_t dot11f_pack_tdls_setup_cnf(tpAniSirGlobal pCtx, 12337*5113495bSYour Name tDot11fTDLSSetupCnf *pFrm, uint8_t *pBuf, 12338*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12339*5113495bSYour Name uint32_t dot11f_get_packed_tdls_setup_cnf_size(tpAniSirGlobal pCtx, 12340*5113495bSYour Name tDot11fTDLSSetupCnf *pFrm, 12341*5113495bSYour Name uint32_t *pnNeeded); 12342*5113495bSYour Name 12343*5113495bSYour Name #ifdef __cplusplus 12344*5113495bSYour Name } /* End extern "C". */ 12345*5113495bSYour Name #endif /* C++ */ 12346*5113495bSYour Name 12347*5113495bSYour Name typedef struct sDot11fTDLSSetupReq{ 12348*5113495bSYour Name tDot11fFfCategory Category; 12349*5113495bSYour Name tDot11fFfAction Action; 12350*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12351*5113495bSYour Name tDot11fFfCapabilities Capabilities; 12352*5113495bSYour Name tDot11fIESuppRates SuppRates; 12353*5113495bSYour Name tDot11fIECountry Country; 12354*5113495bSYour Name tDot11fIEExtSuppRates ExtSuppRates; 12355*5113495bSYour Name tDot11fIESuppChannels SuppChannels; 12356*5113495bSYour Name tDot11fIERSN RSN; 12357*5113495bSYour Name tDot11fIEExtCap ExtCap; 12358*5113495bSYour Name tDot11fIESuppOperatingClasses SuppOperatingClasses; 12359*5113495bSYour Name tDot11fIEQOSCapsStation QOSCapsStation; 12360*5113495bSYour Name tDot11fIEFTInfo FTInfo; 12361*5113495bSYour Name tDot11fIETimeoutInterval TimeoutInterval; 12362*5113495bSYour Name tDot11fIERICData RICData; 12363*5113495bSYour Name tDot11fIEHTCaps HTCaps; 12364*5113495bSYour Name tDot11fIEht2040_bss_coexistence ht2040_bss_coexistence; 12365*5113495bSYour Name tDot11fIELinkIdentifier LinkIdentifier; 12366*5113495bSYour Name tDot11fIEWMMInfoStation WMMInfoStation; 12367*5113495bSYour Name tDot11fIEAID AID; 12368*5113495bSYour Name tDot11fIEVHTCaps VHTCaps; 12369*5113495bSYour Name tDot11fIEhe_cap he_cap; 12370*5113495bSYour Name tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; 12371*5113495bSYour Name } tDot11fTDLSSetupReq; 12372*5113495bSYour Name 12373*5113495bSYour Name #define DOT11F_TDLSSETUPREQ (36) 12374*5113495bSYour Name 12375*5113495bSYour Name #ifdef __cplusplus 12376*5113495bSYour Name extern "C" { 12377*5113495bSYour Name #endif /* C++ */ 12378*5113495bSYour Name 12379*5113495bSYour Name uint32_t dot11f_unpack_tdls_setup_req(tpAniSirGlobal pCtx, 12380*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12381*5113495bSYour Name tDot11fTDLSSetupReq * pFrm, bool append_ie); 12382*5113495bSYour Name uint32_t dot11f_pack_tdls_setup_req(tpAniSirGlobal pCtx, 12383*5113495bSYour Name tDot11fTDLSSetupReq *pFrm, uint8_t *pBuf, 12384*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12385*5113495bSYour Name uint32_t dot11f_get_packed_tdls_setup_req_size(tpAniSirGlobal pCtx, 12386*5113495bSYour Name tDot11fTDLSSetupReq *pFrm, 12387*5113495bSYour Name uint32_t *pnNeeded); 12388*5113495bSYour Name 12389*5113495bSYour Name #ifdef __cplusplus 12390*5113495bSYour Name } /* End extern "C". */ 12391*5113495bSYour Name #endif /* C++ */ 12392*5113495bSYour Name 12393*5113495bSYour Name typedef struct sDot11fTDLSSetupRsp{ 12394*5113495bSYour Name tDot11fFfCategory Category; 12395*5113495bSYour Name tDot11fFfAction Action; 12396*5113495bSYour Name tDot11fFfStatus Status; 12397*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12398*5113495bSYour Name tDot11fFfCapabilities Capabilities; 12399*5113495bSYour Name tDot11fIESuppRates SuppRates; 12400*5113495bSYour Name tDot11fIECountry Country; 12401*5113495bSYour Name tDot11fIEExtSuppRates ExtSuppRates; 12402*5113495bSYour Name tDot11fIESuppChannels SuppChannels; 12403*5113495bSYour Name tDot11fIERSN RSN; 12404*5113495bSYour Name tDot11fIEExtCap ExtCap; 12405*5113495bSYour Name tDot11fIESuppOperatingClasses SuppOperatingClasses; 12406*5113495bSYour Name tDot11fIEQOSCapsStation QOSCapsStation; 12407*5113495bSYour Name tDot11fIEFTInfo FTInfo; 12408*5113495bSYour Name tDot11fIETimeoutInterval TimeoutInterval; 12409*5113495bSYour Name tDot11fIERICData RICData; 12410*5113495bSYour Name tDot11fIEHTCaps HTCaps; 12411*5113495bSYour Name tDot11fIEht2040_bss_coexistence ht2040_bss_coexistence; 12412*5113495bSYour Name tDot11fIELinkIdentifier LinkIdentifier; 12413*5113495bSYour Name tDot11fIEWMMInfoStation WMMInfoStation; 12414*5113495bSYour Name tDot11fIEAID AID; 12415*5113495bSYour Name tDot11fIEVHTCaps VHTCaps; 12416*5113495bSYour Name tDot11fIEOperatingMode OperatingMode; 12417*5113495bSYour Name tDot11fIEhe_cap he_cap; 12418*5113495bSYour Name tDot11fIEhe_6ghz_band_cap he_6ghz_band_cap; 12419*5113495bSYour Name } tDot11fTDLSSetupRsp; 12420*5113495bSYour Name 12421*5113495bSYour Name #define DOT11F_TDLSSETUPRSP (37) 12422*5113495bSYour Name 12423*5113495bSYour Name #ifdef __cplusplus 12424*5113495bSYour Name extern "C" { 12425*5113495bSYour Name #endif /* C++ */ 12426*5113495bSYour Name 12427*5113495bSYour Name uint32_t dot11f_unpack_tdls_setup_rsp(tpAniSirGlobal pCtx, 12428*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12429*5113495bSYour Name tDot11fTDLSSetupRsp * pFrm, bool append_ie); 12430*5113495bSYour Name uint32_t dot11f_pack_tdls_setup_rsp(tpAniSirGlobal pCtx, 12431*5113495bSYour Name tDot11fTDLSSetupRsp *pFrm, uint8_t *pBuf, 12432*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12433*5113495bSYour Name uint32_t dot11f_get_packed_tdls_setup_rsp_size(tpAniSirGlobal pCtx, 12434*5113495bSYour Name tDot11fTDLSSetupRsp *pFrm, 12435*5113495bSYour Name uint32_t *pnNeeded); 12436*5113495bSYour Name 12437*5113495bSYour Name #ifdef __cplusplus 12438*5113495bSYour Name } /* End extern "C". */ 12439*5113495bSYour Name #endif /* C++ */ 12440*5113495bSYour Name 12441*5113495bSYour Name typedef struct sDot11fTDLSTeardown{ 12442*5113495bSYour Name tDot11fFfCategory Category; 12443*5113495bSYour Name tDot11fFfAction Action; 12444*5113495bSYour Name tDot11fFfReason Reason; 12445*5113495bSYour Name tDot11fIEFTInfo FTInfo; 12446*5113495bSYour Name tDot11fIELinkIdentifier LinkIdentifier; 12447*5113495bSYour Name } tDot11fTDLSTeardown; 12448*5113495bSYour Name 12449*5113495bSYour Name #define DOT11F_TDLSTEARDOWN (38) 12450*5113495bSYour Name 12451*5113495bSYour Name #ifdef __cplusplus 12452*5113495bSYour Name extern "C" { 12453*5113495bSYour Name #endif /* C++ */ 12454*5113495bSYour Name 12455*5113495bSYour Name uint32_t dot11f_unpack_tdls_teardown(tpAniSirGlobal pCtx, 12456*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12457*5113495bSYour Name tDot11fTDLSTeardown * pFrm, bool append_ie); 12458*5113495bSYour Name uint32_t dot11f_pack_tdls_teardown(tpAniSirGlobal pCtx, 12459*5113495bSYour Name tDot11fTDLSTeardown *pFrm, uint8_t *pBuf, 12460*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12461*5113495bSYour Name uint32_t dot11f_get_packed_tdls_teardown_size(tpAniSirGlobal pCtx, 12462*5113495bSYour Name tDot11fTDLSTeardown *pFrm, 12463*5113495bSYour Name uint32_t *pnNeeded); 12464*5113495bSYour Name 12465*5113495bSYour Name #ifdef __cplusplus 12466*5113495bSYour Name } /* End extern "C". */ 12467*5113495bSYour Name #endif /* C++ */ 12468*5113495bSYour Name 12469*5113495bSYour Name typedef struct sDot11fTPCReport{ 12470*5113495bSYour Name tDot11fFfCategory Category; 12471*5113495bSYour Name tDot11fFfAction Action; 12472*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12473*5113495bSYour Name tDot11fIETPCReport TPCReport; 12474*5113495bSYour Name } tDot11fTPCReport; 12475*5113495bSYour Name 12476*5113495bSYour Name #define DOT11F_TPCREPORT (39) 12477*5113495bSYour Name 12478*5113495bSYour Name #ifdef __cplusplus 12479*5113495bSYour Name extern "C" { 12480*5113495bSYour Name #endif /* C++ */ 12481*5113495bSYour Name 12482*5113495bSYour Name uint32_t dot11f_unpack_tpc_report(tpAniSirGlobal pCtx, 12483*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12484*5113495bSYour Name tDot11fTPCReport * pFrm, bool append_ie); 12485*5113495bSYour Name uint32_t dot11f_pack_tpc_report(tpAniSirGlobal pCtx, 12486*5113495bSYour Name tDot11fTPCReport *pFrm, uint8_t *pBuf, 12487*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12488*5113495bSYour Name uint32_t dot11f_get_packed_tpc_report_size(tpAniSirGlobal pCtx, 12489*5113495bSYour Name tDot11fTPCReport *pFrm, 12490*5113495bSYour Name uint32_t *pnNeeded); 12491*5113495bSYour Name 12492*5113495bSYour Name #ifdef __cplusplus 12493*5113495bSYour Name } /* End extern "C". */ 12494*5113495bSYour Name #endif /* C++ */ 12495*5113495bSYour Name 12496*5113495bSYour Name typedef struct sDot11fTPCRequest{ 12497*5113495bSYour Name tDot11fFfCategory Category; 12498*5113495bSYour Name tDot11fFfAction Action; 12499*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12500*5113495bSYour Name tDot11fIETPCRequest TPCRequest; 12501*5113495bSYour Name } tDot11fTPCRequest; 12502*5113495bSYour Name 12503*5113495bSYour Name #define DOT11F_TPCREQUEST (40) 12504*5113495bSYour Name 12505*5113495bSYour Name #ifdef __cplusplus 12506*5113495bSYour Name extern "C" { 12507*5113495bSYour Name #endif /* C++ */ 12508*5113495bSYour Name 12509*5113495bSYour Name uint32_t dot11f_unpack_tpc_request(tpAniSirGlobal pCtx, 12510*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12511*5113495bSYour Name tDot11fTPCRequest * pFrm, bool append_ie); 12512*5113495bSYour Name uint32_t dot11f_pack_tpc_request(tpAniSirGlobal pCtx, 12513*5113495bSYour Name tDot11fTPCRequest *pFrm, uint8_t *pBuf, 12514*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12515*5113495bSYour Name uint32_t dot11f_get_packed_tpc_request_size(tpAniSirGlobal pCtx, 12516*5113495bSYour Name tDot11fTPCRequest *pFrm, 12517*5113495bSYour Name uint32_t *pnNeeded); 12518*5113495bSYour Name 12519*5113495bSYour Name #ifdef __cplusplus 12520*5113495bSYour Name } /* End extern "C". */ 12521*5113495bSYour Name #endif /* C++ */ 12522*5113495bSYour Name 12523*5113495bSYour Name typedef struct sDot11fTimingAdvertisementFrame{ 12524*5113495bSYour Name tDot11fFfTimeStamp TimeStamp; 12525*5113495bSYour Name tDot11fFfCapabilities Capabilities; 12526*5113495bSYour Name tDot11fIECountry Country; 12527*5113495bSYour Name tDot11fIEPowerConstraints PowerConstraints; 12528*5113495bSYour Name tDot11fIETimeAdvertisement TimeAdvertisement; 12529*5113495bSYour Name tDot11fIEExtCap ExtCap; 12530*5113495bSYour Name tDot11fIEVendor1IE Vendor1IE; 12531*5113495bSYour Name tDot11fIEVendor3IE Vendor3IE; 12532*5113495bSYour Name } tDot11fTimingAdvertisementFrame; 12533*5113495bSYour Name 12534*5113495bSYour Name #define DOT11F_TIMINGADVERTISEMENTFRAME (41) 12535*5113495bSYour Name 12536*5113495bSYour Name #ifdef __cplusplus 12537*5113495bSYour Name extern "C" { 12538*5113495bSYour Name #endif /* C++ */ 12539*5113495bSYour Name 12540*5113495bSYour Name uint32_t dot11f_unpack_timing_advertisement_frame(tpAniSirGlobal pCtx, 12541*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12542*5113495bSYour Name tDot11fTimingAdvertisementFrame * pFrm, bool append_ie); 12543*5113495bSYour Name uint32_t dot11f_pack_timing_advertisement_frame(tpAniSirGlobal pCtx, 12544*5113495bSYour Name tDot11fTimingAdvertisementFrame *pFrm, uint8_t *pBuf, 12545*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12546*5113495bSYour Name uint32_t dot11f_get_packed_timing_advertisement_frame_size(tpAniSirGlobal pCtx, 12547*5113495bSYour Name tDot11fTimingAdvertisementFrame *pFrm, 12548*5113495bSYour Name uint32_t *pnNeeded); 12549*5113495bSYour Name 12550*5113495bSYour Name #ifdef __cplusplus 12551*5113495bSYour Name } /* End extern "C". */ 12552*5113495bSYour Name #endif /* C++ */ 12553*5113495bSYour Name 12554*5113495bSYour Name typedef struct sDot11fVHTGidManagementActionFrame{ 12555*5113495bSYour Name tDot11fFfCategory Category; 12556*5113495bSYour Name tDot11fFfAction Action; 12557*5113495bSYour Name tDot11fFfVhtMembershipStatusArray VhtMembershipStatusArray; 12558*5113495bSYour Name tDot11fFfVhtUserPositionArray VhtUserPositionArray; 12559*5113495bSYour Name } tDot11fVHTGidManagementActionFrame; 12560*5113495bSYour Name 12561*5113495bSYour Name #define DOT11F_VHTGIDMANAGEMENTACTIONFRAME (42) 12562*5113495bSYour Name 12563*5113495bSYour Name #ifdef __cplusplus 12564*5113495bSYour Name extern "C" { 12565*5113495bSYour Name #endif /* C++ */ 12566*5113495bSYour Name 12567*5113495bSYour Name uint32_t dot11f_unpack_vht_gid_management_action_frame(tpAniSirGlobal pCtx, 12568*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12569*5113495bSYour Name tDot11fVHTGidManagementActionFrame * pFrm, bool append_ie); 12570*5113495bSYour Name uint32_t dot11f_pack_vht_gid_management_action_frame(tpAniSirGlobal pCtx, 12571*5113495bSYour Name tDot11fVHTGidManagementActionFrame *pFrm, uint8_t *pBuf, 12572*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12573*5113495bSYour Name uint32_t dot11f_get_packed_vht_gid_management_action_frame_size(tpAniSirGlobal pCtx, 12574*5113495bSYour Name tDot11fVHTGidManagementActionFrame *pFrm, 12575*5113495bSYour Name uint32_t *pnNeeded); 12576*5113495bSYour Name 12577*5113495bSYour Name #ifdef __cplusplus 12578*5113495bSYour Name } /* End extern "C". */ 12579*5113495bSYour Name #endif /* C++ */ 12580*5113495bSYour Name 12581*5113495bSYour Name typedef struct sDot11fWMMAddTSRequest{ 12582*5113495bSYour Name tDot11fFfCategory Category; 12583*5113495bSYour Name tDot11fFfAction Action; 12584*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12585*5113495bSYour Name tDot11fFfStatusCode StatusCode; 12586*5113495bSYour Name tDot11fIEWMMTSPEC WMMTSPEC; 12587*5113495bSYour Name tDot11fIEESETrafStrmRateSet ESETrafStrmRateSet; 12588*5113495bSYour Name } tDot11fWMMAddTSRequest; 12589*5113495bSYour Name 12590*5113495bSYour Name #define DOT11F_WMMADDTSREQUEST (43) 12591*5113495bSYour Name 12592*5113495bSYour Name #ifdef __cplusplus 12593*5113495bSYour Name extern "C" { 12594*5113495bSYour Name #endif /* C++ */ 12595*5113495bSYour Name 12596*5113495bSYour Name uint32_t dot11f_unpack_wmm_add_ts_request(tpAniSirGlobal pCtx, 12597*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12598*5113495bSYour Name tDot11fWMMAddTSRequest * pFrm, bool append_ie); 12599*5113495bSYour Name uint32_t dot11f_pack_wmm_add_ts_request(tpAniSirGlobal pCtx, 12600*5113495bSYour Name tDot11fWMMAddTSRequest *pFrm, uint8_t *pBuf, 12601*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12602*5113495bSYour Name uint32_t dot11f_get_packed_wmm_add_ts_request_size(tpAniSirGlobal pCtx, 12603*5113495bSYour Name tDot11fWMMAddTSRequest *pFrm, 12604*5113495bSYour Name uint32_t *pnNeeded); 12605*5113495bSYour Name 12606*5113495bSYour Name #ifdef __cplusplus 12607*5113495bSYour Name } /* End extern "C". */ 12608*5113495bSYour Name #endif /* C++ */ 12609*5113495bSYour Name 12610*5113495bSYour Name typedef struct sDot11fWMMAddTSResponse{ 12611*5113495bSYour Name tDot11fFfCategory Category; 12612*5113495bSYour Name tDot11fFfAction Action; 12613*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12614*5113495bSYour Name tDot11fFfStatusCode StatusCode; 12615*5113495bSYour Name tDot11fIEWMMTSPEC WMMTSPEC; 12616*5113495bSYour Name tDot11fIEESETrafStrmMet ESETrafStrmMet; 12617*5113495bSYour Name } tDot11fWMMAddTSResponse; 12618*5113495bSYour Name 12619*5113495bSYour Name #define DOT11F_WMMADDTSRESPONSE (44) 12620*5113495bSYour Name 12621*5113495bSYour Name #ifdef __cplusplus 12622*5113495bSYour Name extern "C" { 12623*5113495bSYour Name #endif /* C++ */ 12624*5113495bSYour Name 12625*5113495bSYour Name uint32_t dot11f_unpack_wmm_add_ts_response(tpAniSirGlobal pCtx, 12626*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12627*5113495bSYour Name tDot11fWMMAddTSResponse * pFrm, bool append_ie); 12628*5113495bSYour Name uint32_t dot11f_pack_wmm_add_ts_response(tpAniSirGlobal pCtx, 12629*5113495bSYour Name tDot11fWMMAddTSResponse *pFrm, uint8_t *pBuf, 12630*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12631*5113495bSYour Name uint32_t dot11f_get_packed_wmm_add_ts_response_size(tpAniSirGlobal pCtx, 12632*5113495bSYour Name tDot11fWMMAddTSResponse *pFrm, 12633*5113495bSYour Name uint32_t *pnNeeded); 12634*5113495bSYour Name 12635*5113495bSYour Name #ifdef __cplusplus 12636*5113495bSYour Name } /* End extern "C". */ 12637*5113495bSYour Name #endif /* C++ */ 12638*5113495bSYour Name 12639*5113495bSYour Name typedef struct sDot11fWMMDelTS{ 12640*5113495bSYour Name tDot11fFfCategory Category; 12641*5113495bSYour Name tDot11fFfAction Action; 12642*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12643*5113495bSYour Name tDot11fFfStatusCode StatusCode; 12644*5113495bSYour Name tDot11fIEWMMTSPEC WMMTSPEC; 12645*5113495bSYour Name } tDot11fWMMDelTS; 12646*5113495bSYour Name 12647*5113495bSYour Name #define DOT11F_WMMDELTS (45) 12648*5113495bSYour Name 12649*5113495bSYour Name #ifdef __cplusplus 12650*5113495bSYour Name extern "C" { 12651*5113495bSYour Name #endif /* C++ */ 12652*5113495bSYour Name 12653*5113495bSYour Name uint32_t dot11f_unpack_wmm_del_ts(tpAniSirGlobal pCtx, 12654*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12655*5113495bSYour Name tDot11fWMMDelTS * pFrm, bool append_ie); 12656*5113495bSYour Name uint32_t dot11f_pack_wmm_del_ts(tpAniSirGlobal pCtx, 12657*5113495bSYour Name tDot11fWMMDelTS *pFrm, uint8_t *pBuf, 12658*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12659*5113495bSYour Name uint32_t dot11f_get_packed_wmm_del_ts_size(tpAniSirGlobal pCtx, 12660*5113495bSYour Name tDot11fWMMDelTS *pFrm, 12661*5113495bSYour Name uint32_t *pnNeeded); 12662*5113495bSYour Name 12663*5113495bSYour Name #ifdef __cplusplus 12664*5113495bSYour Name } /* End extern "C". */ 12665*5113495bSYour Name #endif /* C++ */ 12666*5113495bSYour Name 12667*5113495bSYour Name typedef struct sDot11faddba_req{ 12668*5113495bSYour Name tDot11fFfCategory Category; 12669*5113495bSYour Name tDot11fFfAction Action; 12670*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12671*5113495bSYour Name tDot11fFfaddba_param_set addba_param_set; 12672*5113495bSYour Name tDot11fFfba_timeout ba_timeout; 12673*5113495bSYour Name tDot11fFfba_start_seq_ctrl ba_start_seq_ctrl; 12674*5113495bSYour Name tDot11fIEaddba_extn_element addba_extn_element; 12675*5113495bSYour Name } tDot11faddba_req; 12676*5113495bSYour Name 12677*5113495bSYour Name #define DOT11F_ADDBA_REQ (46) 12678*5113495bSYour Name 12679*5113495bSYour Name #ifdef __cplusplus 12680*5113495bSYour Name extern "C" { 12681*5113495bSYour Name #endif /* C++ */ 12682*5113495bSYour Name 12683*5113495bSYour Name uint32_t dot11f_unpack_addba_req(tpAniSirGlobal pCtx, 12684*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12685*5113495bSYour Name tDot11faddba_req * pFrm, bool append_ie); 12686*5113495bSYour Name uint32_t dot11f_pack_addba_req(tpAniSirGlobal pCtx, 12687*5113495bSYour Name tDot11faddba_req *pFrm, uint8_t *pBuf, 12688*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12689*5113495bSYour Name uint32_t dot11f_get_packed_addba_req_size(tpAniSirGlobal pCtx, 12690*5113495bSYour Name tDot11faddba_req *pFrm, 12691*5113495bSYour Name uint32_t *pnNeeded); 12692*5113495bSYour Name 12693*5113495bSYour Name #ifdef __cplusplus 12694*5113495bSYour Name } /* End extern "C". */ 12695*5113495bSYour Name #endif /* C++ */ 12696*5113495bSYour Name 12697*5113495bSYour Name typedef struct sDot11faddba_rsp{ 12698*5113495bSYour Name tDot11fFfCategory Category; 12699*5113495bSYour Name tDot11fFfAction Action; 12700*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12701*5113495bSYour Name tDot11fFfStatus Status; 12702*5113495bSYour Name tDot11fFfaddba_param_set addba_param_set; 12703*5113495bSYour Name tDot11fFfba_timeout ba_timeout; 12704*5113495bSYour Name tDot11fIEaddba_extn_element addba_extn_element; 12705*5113495bSYour Name } tDot11faddba_rsp; 12706*5113495bSYour Name 12707*5113495bSYour Name #define DOT11F_ADDBA_RSP (47) 12708*5113495bSYour Name 12709*5113495bSYour Name #ifdef __cplusplus 12710*5113495bSYour Name extern "C" { 12711*5113495bSYour Name #endif /* C++ */ 12712*5113495bSYour Name 12713*5113495bSYour Name uint32_t dot11f_unpack_addba_rsp(tpAniSirGlobal pCtx, 12714*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12715*5113495bSYour Name tDot11faddba_rsp * pFrm, bool append_ie); 12716*5113495bSYour Name uint32_t dot11f_pack_addba_rsp(tpAniSirGlobal pCtx, 12717*5113495bSYour Name tDot11faddba_rsp *pFrm, uint8_t *pBuf, 12718*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12719*5113495bSYour Name uint32_t dot11f_get_packed_addba_rsp_size(tpAniSirGlobal pCtx, 12720*5113495bSYour Name tDot11faddba_rsp *pFrm, 12721*5113495bSYour Name uint32_t *pnNeeded); 12722*5113495bSYour Name 12723*5113495bSYour Name #ifdef __cplusplus 12724*5113495bSYour Name } /* End extern "C". */ 12725*5113495bSYour Name #endif /* C++ */ 12726*5113495bSYour Name 12727*5113495bSYour Name typedef struct sDot11fdelba_req{ 12728*5113495bSYour Name tDot11fFfCategory Category; 12729*5113495bSYour Name tDot11fFfAction Action; 12730*5113495bSYour Name tDot11fFfdelba_param_set delba_param_set; 12731*5113495bSYour Name tDot11fFfReason Reason; 12732*5113495bSYour Name } tDot11fdelba_req; 12733*5113495bSYour Name 12734*5113495bSYour Name #define DOT11F_DELBA_REQ (48) 12735*5113495bSYour Name 12736*5113495bSYour Name #ifdef __cplusplus 12737*5113495bSYour Name extern "C" { 12738*5113495bSYour Name #endif /* C++ */ 12739*5113495bSYour Name 12740*5113495bSYour Name uint32_t dot11f_unpack_delba_req(tpAniSirGlobal pCtx, 12741*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12742*5113495bSYour Name tDot11fdelba_req * pFrm, bool append_ie); 12743*5113495bSYour Name uint32_t dot11f_pack_delba_req(tpAniSirGlobal pCtx, 12744*5113495bSYour Name tDot11fdelba_req *pFrm, uint8_t *pBuf, 12745*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12746*5113495bSYour Name uint32_t dot11f_get_packed_delba_req_size(tpAniSirGlobal pCtx, 12747*5113495bSYour Name tDot11fdelba_req *pFrm, 12748*5113495bSYour Name uint32_t *pnNeeded); 12749*5113495bSYour Name 12750*5113495bSYour Name #ifdef __cplusplus 12751*5113495bSYour Name } /* End extern "C". */ 12752*5113495bSYour Name #endif /* C++ */ 12753*5113495bSYour Name 12754*5113495bSYour Name typedef struct sDot11fepcs_neg_req{ 12755*5113495bSYour Name tDot11fFfCategory Category; 12756*5113495bSYour Name tDot11fFfAction Action; 12757*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12758*5113495bSYour Name } tDot11fepcs_neg_req; 12759*5113495bSYour Name 12760*5113495bSYour Name #define DOT11F_EPCS_NEG_REQ (49) 12761*5113495bSYour Name 12762*5113495bSYour Name #ifdef __cplusplus 12763*5113495bSYour Name extern "C" { 12764*5113495bSYour Name #endif /* C++ */ 12765*5113495bSYour Name 12766*5113495bSYour Name uint32_t dot11f_unpack_epcs_neg_req(tpAniSirGlobal pCtx, 12767*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12768*5113495bSYour Name tDot11fepcs_neg_req * pFrm, bool append_ie); 12769*5113495bSYour Name uint32_t dot11f_pack_epcs_neg_req(tpAniSirGlobal pCtx, 12770*5113495bSYour Name tDot11fepcs_neg_req *pFrm, uint8_t *pBuf, 12771*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12772*5113495bSYour Name uint32_t dot11f_get_packed_epcs_neg_reqSize(tpAniSirGlobal pCtx, 12773*5113495bSYour Name tDot11fepcs_neg_req *pFrm, 12774*5113495bSYour Name uint32_t *pnNeeded); 12775*5113495bSYour Name 12776*5113495bSYour Name #ifdef __cplusplus 12777*5113495bSYour Name } /* End extern "C". */ 12778*5113495bSYour Name #endif /* C++ */ 12779*5113495bSYour Name 12780*5113495bSYour Name typedef struct sDot11fepcs_neg_rsp{ 12781*5113495bSYour Name tDot11fFfCategory Category; 12782*5113495bSYour Name tDot11fFfAction Action; 12783*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12784*5113495bSYour Name tDot11fFfStatus Status; 12785*5113495bSYour Name } tDot11fepcs_neg_rsp; 12786*5113495bSYour Name 12787*5113495bSYour Name #define DOT11F_EPCS_NEG_RSP (50) 12788*5113495bSYour Name 12789*5113495bSYour Name #ifdef __cplusplus 12790*5113495bSYour Name extern "C" { 12791*5113495bSYour Name #endif /* C++ */ 12792*5113495bSYour Name 12793*5113495bSYour Name uint32_t dot11f_unpack_epcs_neg_rsp(tpAniSirGlobal pCtx, 12794*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12795*5113495bSYour Name tDot11fepcs_neg_rsp * pFrm, bool append_ie); 12796*5113495bSYour Name uint32_t dot11f_pack_epcs_neg_rsp(tpAniSirGlobal pCtx, 12797*5113495bSYour Name tDot11fepcs_neg_rsp *pFrm, uint8_t *pBuf, 12798*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12799*5113495bSYour Name uint32_t dot11f_get_packed_epcs_neg_rspSize(tpAniSirGlobal pCtx, 12800*5113495bSYour Name tDot11fepcs_neg_rsp *pFrm, 12801*5113495bSYour Name uint32_t *pnNeeded); 12802*5113495bSYour Name 12803*5113495bSYour Name #ifdef __cplusplus 12804*5113495bSYour Name } /* End extern "C". */ 12805*5113495bSYour Name #endif /* C++ */ 12806*5113495bSYour Name 12807*5113495bSYour Name typedef struct sDot11fepcs_teardown{ 12808*5113495bSYour Name tDot11fFfCategory Category; 12809*5113495bSYour Name tDot11fFfAction Action; 12810*5113495bSYour Name } tDot11fepcs_teardown; 12811*5113495bSYour Name 12812*5113495bSYour Name #define DOT11F_EPCS_TEARDOWN (51) 12813*5113495bSYour Name 12814*5113495bSYour Name #ifdef __cplusplus 12815*5113495bSYour Name extern "C" { 12816*5113495bSYour Name #endif /* C++ */ 12817*5113495bSYour Name 12818*5113495bSYour Name uint32_t dot11f_unpack_epcs_teardown(tpAniSirGlobal pCtx, 12819*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12820*5113495bSYour Name tDot11fepcs_teardown * pFrm, bool append_ie); 12821*5113495bSYour Name uint32_t dot11f_pack_epcs_teardown(tpAniSirGlobal pCtx, 12822*5113495bSYour Name tDot11fepcs_teardown *pFrm, uint8_t *pBuf, 12823*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12824*5113495bSYour Name uint32_t dot11f_get_packed_epcs_teardownSize(tpAniSirGlobal pCtx, 12825*5113495bSYour Name tDot11fepcs_teardown *pFrm, 12826*5113495bSYour Name uint32_t *pnNeeded); 12827*5113495bSYour Name 12828*5113495bSYour Name #ifdef __cplusplus 12829*5113495bSYour Name } /* End extern "C". */ 12830*5113495bSYour Name #endif /* C++ */ 12831*5113495bSYour Name 12832*5113495bSYour Name typedef struct sDot11fext_channel_switch_action_frame{ 12833*5113495bSYour Name tDot11fFfCategory Category; 12834*5113495bSYour Name tDot11fFfAction Action; 12835*5113495bSYour Name tDot11fFfext_chan_switch_ann_action ext_chan_switch_ann_action; 12836*5113495bSYour Name tDot11fIEWiderBWChanSwitchAnn WiderBWChanSwitchAnn; 12837*5113495bSYour Name tDot11fIEqcn_ie qcn_ie; 12838*5113495bSYour Name tDot11fIEbw_ind_element bw_ind_element; 12839*5113495bSYour Name } tDot11fext_channel_switch_action_frame; 12840*5113495bSYour Name 12841*5113495bSYour Name #define DOT11F_EXT_CHANNEL_SWITCH_ACTION_FRAME (52) 12842*5113495bSYour Name 12843*5113495bSYour Name #ifdef __cplusplus 12844*5113495bSYour Name extern "C" { 12845*5113495bSYour Name #endif /* C++ */ 12846*5113495bSYour Name 12847*5113495bSYour Name uint32_t dot11f_unpack_ext_channel_switch_action_frame(tpAniSirGlobal pCtx, 12848*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12849*5113495bSYour Name tDot11fext_channel_switch_action_frame * pFrm, bool append_ie); 12850*5113495bSYour Name uint32_t dot11f_pack_ext_channel_switch_action_frame(tpAniSirGlobal pCtx, 12851*5113495bSYour Name tDot11fext_channel_switch_action_frame *pFrm, uint8_t *pBuf, 12852*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12853*5113495bSYour Name uint32_t dot11f_get_packed_ext_channel_switch_action_frame_size(tpAniSirGlobal pCtx, 12854*5113495bSYour Name tDot11fext_channel_switch_action_frame *pFrm, 12855*5113495bSYour Name uint32_t *pnNeeded); 12856*5113495bSYour Name 12857*5113495bSYour Name #ifdef __cplusplus 12858*5113495bSYour Name } /* End extern "C". */ 12859*5113495bSYour Name #endif /* C++ */ 12860*5113495bSYour Name 12861*5113495bSYour Name typedef struct sDot11fht2040_bss_coexistence_mgmt_action_frame{ 12862*5113495bSYour Name tDot11fFfCategory Category; 12863*5113495bSYour Name tDot11fFfAction Action; 12864*5113495bSYour Name tDot11fIEht2040_bss_coexistence ht2040_bss_coexistence; 12865*5113495bSYour Name tDot11fIEht2040_bss_intolerant_report ht2040_bss_intolerant_report; 12866*5113495bSYour Name } tDot11fht2040_bss_coexistence_mgmt_action_frame; 12867*5113495bSYour Name 12868*5113495bSYour Name #define DOT11F_HT2040_BSS_COEXISTENCE_MGMT_ACTION_FRAME (53) 12869*5113495bSYour Name 12870*5113495bSYour Name #ifdef __cplusplus 12871*5113495bSYour Name extern "C" { 12872*5113495bSYour Name #endif /* C++ */ 12873*5113495bSYour Name 12874*5113495bSYour Name uint32_t dot11f_unpack_ht2040_bss_coexistence_mgmt_action_frame(tpAniSirGlobal pCtx, 12875*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12876*5113495bSYour Name tDot11fht2040_bss_coexistence_mgmt_action_frame * pFrm, bool append_ie); 12877*5113495bSYour Name uint32_t dot11f_pack_ht2040_bss_coexistence_mgmt_action_frame(tpAniSirGlobal pCtx, 12878*5113495bSYour Name tDot11fht2040_bss_coexistence_mgmt_action_frame *pFrm, uint8_t *pBuf, 12879*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12880*5113495bSYour Name uint32_t dot11f_get_packed_ht2040_bss_coexistence_mgmt_action_frameSize(tpAniSirGlobal pCtx, 12881*5113495bSYour Name tDot11fht2040_bss_coexistence_mgmt_action_frame *pFrm, 12882*5113495bSYour Name uint32_t *pnNeeded); 12883*5113495bSYour Name 12884*5113495bSYour Name #ifdef __cplusplus 12885*5113495bSYour Name } /* End extern "C". */ 12886*5113495bSYour Name #endif /* C++ */ 12887*5113495bSYour Name 12888*5113495bSYour Name typedef struct sDot11fmscs_request_action_frame{ 12889*5113495bSYour Name tDot11fFfCategory Category; 12890*5113495bSYour Name tDot11fFfAction Action; 12891*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12892*5113495bSYour Name tDot11fIEdescriptor_element descriptor_element; 12893*5113495bSYour Name } tDot11fmscs_request_action_frame; 12894*5113495bSYour Name 12895*5113495bSYour Name #define DOT11F_MSCS_REQUEST_ACTION_FRAME (54) 12896*5113495bSYour Name 12897*5113495bSYour Name #ifdef __cplusplus 12898*5113495bSYour Name extern "C" { 12899*5113495bSYour Name #endif /* C++ */ 12900*5113495bSYour Name 12901*5113495bSYour Name uint32_t dot11f_unpack_mscs_request_action_frame(tpAniSirGlobal pCtx, 12902*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12903*5113495bSYour Name tDot11fmscs_request_action_frame * pFrm, bool append_ie); 12904*5113495bSYour Name uint32_t dot11f_pack_mscs_request_action_frame(tpAniSirGlobal pCtx, 12905*5113495bSYour Name tDot11fmscs_request_action_frame *pFrm, uint8_t *pBuf, 12906*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12907*5113495bSYour Name uint32_t dot11f_get_packed_mscs_request_action_frameSize(tpAniSirGlobal pCtx, 12908*5113495bSYour Name tDot11fmscs_request_action_frame *pFrm, 12909*5113495bSYour Name uint32_t *pnNeeded); 12910*5113495bSYour Name 12911*5113495bSYour Name #ifdef __cplusplus 12912*5113495bSYour Name } /* End extern "C". */ 12913*5113495bSYour Name #endif /* C++ */ 12914*5113495bSYour Name 12915*5113495bSYour Name typedef struct sDot11fp2p_oper_chan_change_confirm{ 12916*5113495bSYour Name tDot11fFfCategory Category; 12917*5113495bSYour Name tDot11fFfp2p_action_oui p2p_action_oui; 12918*5113495bSYour Name tDot11fFfp2p_action_subtype p2p_action_subtype; 12919*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12920*5113495bSYour Name tDot11fIEHTCaps HTCaps; 12921*5113495bSYour Name tDot11fIEVHTCaps VHTCaps; 12922*5113495bSYour Name tDot11fIEOperatingMode OperatingMode; 12923*5113495bSYour Name } tDot11fp2p_oper_chan_change_confirm; 12924*5113495bSYour Name 12925*5113495bSYour Name #define DOT11F_P2P_OPER_CHAN_CHANGE_CONFIRM (55) 12926*5113495bSYour Name 12927*5113495bSYour Name #ifdef __cplusplus 12928*5113495bSYour Name extern "C" { 12929*5113495bSYour Name #endif /* C++ */ 12930*5113495bSYour Name 12931*5113495bSYour Name uint32_t dot11f_unpack_p2p_oper_chan_change_confirm(tpAniSirGlobal pCtx, 12932*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12933*5113495bSYour Name tDot11fp2p_oper_chan_change_confirm * pFrm, bool append_ie); 12934*5113495bSYour Name uint32_t dot11f_pack_p2p_oper_chan_change_confirm(tpAniSirGlobal pCtx, 12935*5113495bSYour Name tDot11fp2p_oper_chan_change_confirm *pFrm, uint8_t *pBuf, 12936*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12937*5113495bSYour Name uint32_t dot11f_get_packed_p2p_oper_chan_change_confirmSize(tpAniSirGlobal pCtx, 12938*5113495bSYour Name tDot11fp2p_oper_chan_change_confirm *pFrm, 12939*5113495bSYour Name uint32_t *pnNeeded); 12940*5113495bSYour Name 12941*5113495bSYour Name #ifdef __cplusplus 12942*5113495bSYour Name } /* End extern "C". */ 12943*5113495bSYour Name #endif /* C++ */ 12944*5113495bSYour Name 12945*5113495bSYour Name typedef struct sDot11ft2lm_neg_req{ 12946*5113495bSYour Name tDot11fFfCategory Category; 12947*5113495bSYour Name tDot11fFfAction Action; 12948*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12949*5113495bSYour Name uint16_t num_t2lm_ie; 12950*5113495bSYour Name tDot11fIEt2lm_ie t2lm_ie[2]; 12951*5113495bSYour Name } tDot11ft2lm_neg_req; 12952*5113495bSYour Name 12953*5113495bSYour Name #define DOT11F_T2LM_NEG_REQ (56) 12954*5113495bSYour Name 12955*5113495bSYour Name #ifdef __cplusplus 12956*5113495bSYour Name extern "C" { 12957*5113495bSYour Name #endif /* C++ */ 12958*5113495bSYour Name 12959*5113495bSYour Name uint32_t dot11f_unpack_t2lm_neg_req(tpAniSirGlobal pCtx, 12960*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12961*5113495bSYour Name tDot11ft2lm_neg_req * pFrm, bool append_ie); 12962*5113495bSYour Name uint32_t dot11f_pack_t2lm_neg_req(tpAniSirGlobal pCtx, 12963*5113495bSYour Name tDot11ft2lm_neg_req *pFrm, uint8_t *pBuf, 12964*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12965*5113495bSYour Name uint32_t dot11f_get_packed_t2lm_neg_reqSize(tpAniSirGlobal pCtx, 12966*5113495bSYour Name tDot11ft2lm_neg_req *pFrm, 12967*5113495bSYour Name uint32_t *pnNeeded); 12968*5113495bSYour Name 12969*5113495bSYour Name #ifdef __cplusplus 12970*5113495bSYour Name } /* End extern "C". */ 12971*5113495bSYour Name #endif /* C++ */ 12972*5113495bSYour Name 12973*5113495bSYour Name typedef struct sDot11ft2lm_neg_rsp{ 12974*5113495bSYour Name tDot11fFfCategory Category; 12975*5113495bSYour Name tDot11fFfAction Action; 12976*5113495bSYour Name tDot11fFfDialogToken DialogToken; 12977*5113495bSYour Name tDot11fFfStatus Status; 12978*5113495bSYour Name } tDot11ft2lm_neg_rsp; 12979*5113495bSYour Name 12980*5113495bSYour Name #define DOT11F_T2LM_NEG_RSP (57) 12981*5113495bSYour Name 12982*5113495bSYour Name #ifdef __cplusplus 12983*5113495bSYour Name extern "C" { 12984*5113495bSYour Name #endif /* C++ */ 12985*5113495bSYour Name 12986*5113495bSYour Name uint32_t dot11f_unpack_t2lm_neg_rsp(tpAniSirGlobal pCtx, 12987*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 12988*5113495bSYour Name tDot11ft2lm_neg_rsp * pFrm, bool append_ie); 12989*5113495bSYour Name uint32_t dot11f_pack_t2lm_neg_rsp(tpAniSirGlobal pCtx, 12990*5113495bSYour Name tDot11ft2lm_neg_rsp *pFrm, uint8_t *pBuf, 12991*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 12992*5113495bSYour Name uint32_t dot11f_get_packed_t2lm_neg_rspSize(tpAniSirGlobal pCtx, 12993*5113495bSYour Name tDot11ft2lm_neg_rsp *pFrm, 12994*5113495bSYour Name uint32_t *pnNeeded); 12995*5113495bSYour Name 12996*5113495bSYour Name #ifdef __cplusplus 12997*5113495bSYour Name } /* End extern "C". */ 12998*5113495bSYour Name #endif /* C++ */ 12999*5113495bSYour Name 13000*5113495bSYour Name typedef struct sDot11ft2lm_teardown{ 13001*5113495bSYour Name tDot11fFfCategory Category; 13002*5113495bSYour Name tDot11fFfAction Action; 13003*5113495bSYour Name } tDot11ft2lm_teardown; 13004*5113495bSYour Name 13005*5113495bSYour Name #define DOT11F_T2LM_TEARDOWN (58) 13006*5113495bSYour Name 13007*5113495bSYour Name #ifdef __cplusplus 13008*5113495bSYour Name extern "C" { 13009*5113495bSYour Name #endif /* C++ */ 13010*5113495bSYour Name 13011*5113495bSYour Name uint32_t dot11f_unpack_t2lm_teardown(tpAniSirGlobal pCtx, 13012*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 13013*5113495bSYour Name tDot11ft2lm_teardown * pFrm, bool append_ie); 13014*5113495bSYour Name uint32_t dot11f_pack_t2lm_teardown(tpAniSirGlobal pCtx, 13015*5113495bSYour Name tDot11ft2lm_teardown *pFrm, uint8_t *pBuf, 13016*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 13017*5113495bSYour Name uint32_t dot11f_get_packed_t2lm_teardownSize(tpAniSirGlobal pCtx, 13018*5113495bSYour Name tDot11ft2lm_teardown *pFrm, 13019*5113495bSYour Name uint32_t *pnNeeded); 13020*5113495bSYour Name 13021*5113495bSYour Name #ifdef __cplusplus 13022*5113495bSYour Name } /* End extern "C". */ 13023*5113495bSYour Name #endif /* C++ */ 13024*5113495bSYour Name 13025*5113495bSYour Name typedef struct sDot11fvendor_action_frame{ 13026*5113495bSYour Name tDot11fFfCategory Category; 13027*5113495bSYour Name tDot11fFfvendor_oui vendor_oui; 13028*5113495bSYour Name tDot11fFfvendor_action_subtype vendor_action_subtype; 13029*5113495bSYour Name } tDot11fvendor_action_frame; 13030*5113495bSYour Name 13031*5113495bSYour Name #define DOT11F_VENDOR_ACTION_FRAME (59) 13032*5113495bSYour Name 13033*5113495bSYour Name #ifdef __cplusplus 13034*5113495bSYour Name extern "C" { 13035*5113495bSYour Name #endif /* C++ */ 13036*5113495bSYour Name 13037*5113495bSYour Name uint32_t dot11f_unpack_vendor_action_frame(tpAniSirGlobal pCtx, 13038*5113495bSYour Name uint8_t *pBuf, uint32_t nBuf, 13039*5113495bSYour Name tDot11fvendor_action_frame * pFrm, bool append_ie); 13040*5113495bSYour Name uint32_t dot11f_pack_vendor_action_frame(tpAniSirGlobal pCtx, 13041*5113495bSYour Name tDot11fvendor_action_frame *pFrm, uint8_t *pBuf, 13042*5113495bSYour Name uint32_t nBuf, uint32_t *pnConsumed); 13043*5113495bSYour Name uint32_t dot11f_get_packed_vendor_action_frameSize(tpAniSirGlobal pCtx, 13044*5113495bSYour Name tDot11fvendor_action_frame *pFrm, 13045*5113495bSYour Name uint32_t *pnNeeded); 13046*5113495bSYour Name 13047*5113495bSYour Name #ifdef __cplusplus 13048*5113495bSYour Name } /* End extern "C". */ 13049*5113495bSYour Name #endif /* C++ */ 13050*5113495bSYour Name 13051*5113495bSYour Name #endif /* DOT11F_H */ 13052