1*5113495bSYour Name/* 2*5113495bSYour Name * Copyright (c) 2006-2007, 2014-2018, 2020-2021 The Linux Foundation. 3*5113495bSYour Name * All rights reserved. 4*5113495bSYour Name * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved. 5*5113495bSYour Name * 6*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for 7*5113495bSYour Name * any purpose with or without fee is hereby granted, provided that the 8*5113495bSYour Name * above copyright notice and this permission notice appear in all 9*5113495bSYour Name * copies. 10*5113495bSYour Name * 11*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 12*5113495bSYour Name * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 13*5113495bSYour Name * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 14*5113495bSYour Name * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 15*5113495bSYour Name * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 16*5113495bSYour Name * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 17*5113495bSYour Name * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 18*5113495bSYour Name * PERFORMANCE OF THIS SOFTWARE. 19*5113495bSYour Name */ 20*5113495bSYour Name 21*5113495bSYour Name/** 22*5113495bSYour Name * \file dot11f.frms 23*5113495bSYour Name * 24*5113495bSYour Name * \brief Primary 'frames' file for the MAC parser 25*5113495bSYour Name * 26*5113495bSYour Name * 27*5113495bSYour Name * This file defines several 802.11 frames (along with their associated 28*5113495bSYour Name * constituents) in a little language called "frames". When run through the 29*5113495bSYour Name * 'framesc' program, it will generate C code for working with these frames: 30*5113495bSYour Name * C structs representing the 802.11 frame together with functions for 31*5113495bSYour Name * packing & unpacking them. 32*5113495bSYour Name * 33*5113495bSYour Name * For more information on the "frames" language, run 'framesc --help'... 34*5113495bSYour Name * 35*5113495bSYour Name * 36*5113495bSYour Name */ 37*5113495bSYour Name 38*5113495bSYour Name 39*5113495bSYour Name// Tell framesc what types to use for... 40*5113495bSYour Name%8-bit-type uint8_t // 8, 41*5113495bSYour Name%16-bit-type uint16_t // 16, 42*5113495bSYour Name%32-bit-type uint32_t // & 32-bit unsigned integral types. These can also 43*5113495bSYour Name // be specified on the command line. 44*5113495bSYour Name 45*5113495bSYour Name// Define some mnemonic constants; these are just for our use with the frames 46*5113495bSYour Name// files we're compiling. IOW, they won't result in any C code being 47*5113495bSYour Name// emitted. 48*5113495bSYour Name 49*5113495bSYour Nameconst EID_SSID = 0; 50*5113495bSYour Nameconst EID_SUPP_RATES = 1; 51*5113495bSYour Nameconst EID_FH_PARAM_SET = 2; 52*5113495bSYour Nameconst EID_DS_PARAM_SET = 3; 53*5113495bSYour Nameconst EID_CF_PARAM_SET = 4; 54*5113495bSYour Nameconst EID_TIM = 5; 55*5113495bSYour Nameconst EID_IBSS_PARAM_SET = 6; 56*5113495bSYour Nameconst EID_COUNTRY = 7; 57*5113495bSYour Nameconst EID_FH_PATTERN = 8; 58*5113495bSYour Nameconst EID_FH_PATT_TABLE = 9; 59*5113495bSYour Nameconst EID_REQUEST = 10; 60*5113495bSYour Nameconst EID_QBSS_LOAD = 11; 61*5113495bSYour Nameconst EID_EDCA_PARAM_SET = 12; 62*5113495bSYour Nameconst EID_TSPEC = 13; 63*5113495bSYour Nameconst EID_TCLAS = 14; 64*5113495bSYour Nameconst EID_SCHEDULE = 15; 65*5113495bSYour Nameconst EID_CHALLENGE_TEXT = 16; 66*5113495bSYour Nameconst EID_POWER_CONSTRAINTS = 32; 67*5113495bSYour Nameconst EID_POWER_CAPABILITY = 33; 68*5113495bSYour Nameconst EID_TPC_REQUEST = 34; 69*5113495bSYour Nameconst EID_TPC_REPORT = 35; 70*5113495bSYour Nameconst EID_SUPPORTED_CHANNELS = 36; 71*5113495bSYour Nameconst EID_CHANNEL_SWITCH_ANN = 37; 72*5113495bSYour Nameconst EID_MEAS_REQUEST = 38; 73*5113495bSYour Nameconst EID_MEAS_REPORT = 39; 74*5113495bSYour Nameconst EID_QUIET = 40; 75*5113495bSYour Nameconst EID_ERP_INFO = 42; 76*5113495bSYour Nameconst EID_TS_DELAY = 43; 77*5113495bSYour Nameconst EID_TCLASS_PROC = 44; 78*5113495bSYour Nameconst EID_HT_CAPABILITIES = 45; 79*5113495bSYour Nameconst EID_QOS_CAPABILITY = 46; 80*5113495bSYour Nameconst EID_RSN = 48; 81*5113495bSYour Nameconst EID_EXT_SUPP_RATES = 50; 82*5113495bSYour Nameconst EID_AP_CHAN_REPORT = 51; 83*5113495bSYour Nameconst EID_NEIGHBOR_REPORT = 52; 84*5113495bSYour Nameconst EID_RCPI = 53; 85*5113495bSYour Nameconst EID_FT_MOBILITY_DOMAIN = 54; 86*5113495bSYour Nameconst EID_FT_INFO = 55; 87*5113495bSYour Nameconst EID_TIMEOUT_INTERVAL = 56; 88*5113495bSYour Nameconst EID_FT_RIC_DATA = 57; 89*5113495bSYour Nameconst EID_SUPPORTED_OPER_CLASSES = 59; 90*5113495bSYour Nameconst EID_EXT_CHAN_SWITCH = 60; 91*5113495bSYour Nameconst EID_HT_INFO = 61; 92*5113495bSYour Nameconst EID_SEC_CHAN_OFFSET = 62; 93*5113495bSYour Nameconst EID_RSNI = 65; 94*5113495bSYour Nameconst EID_RRM_MEAS_PILOT_TX_INFO = 66; 95*5113495bSYour Nameconst EID_WAPI = 68; 96*5113495bSYour Nameconst EID_TIME_ADVERTISEMENT = 69; 97*5113495bSYour Nameconst EID_RRM_ENABLED_CAPS = 70; 98*5113495bSYour Nameconst EID_MULTIPLE_BSSID = 71; 99*5113495bSYour Nameconst EID_20_40_BSS_COEXISTENCE = 72; 100*5113495bSYour Nameconst EID_20_40_BSS_INTOLERANT_REPORT= 73; 101*5113495bSYour Nameconst EID_OBSS_SCAN_PARAMETERS = 74; 102*5113495bSYour Nameconst EID_FT_RIC_DESCRIPTOR = 75; 103*5113495bSYour Nameconst EID_MSCS_STATUS = 76; 104*5113495bSYour Nameconst EID_BSS_MAX_IDLE_PERIOD = 90; 105*5113495bSYour Nameconst EID_LINK_IDENTIFIER = 101; 106*5113495bSYour Nameconst EID_PTI_CONTROL = 105; 107*5113495bSYour Nameconst EID_PU_BUFFER_STATUS = 106; 108*5113495bSYour Nameconst EID_QOS_MAP_SET = 110; 109*5113495bSYour Nameconst EID_ESE_SPECIFIC = 150; 110*5113495bSYour Nameconst EID_ESE_CCKM_SPECIFIC = 156; 111*5113495bSYour Nameconst EID_ADDBA_EXTN_ELEMENT = 159; 112*5113495bSYour Nameconst EID_VHT_CAPABILITIES = 191; 113*5113495bSYour Nameconst EID_VHT_OPERATION_ELEMENT = 192; 114*5113495bSYour Nameconst EID_VHT_EXT_BSS_LOAD = 193; 115*5113495bSYour Nameconst EID_AID = 197; 116*5113495bSYour Nameconst EID_EXT_CAP = 127; 117*5113495bSYour Nameconst EID_OPERATING_MODE = 199; 118*5113495bSYour Nameconst EID_WIDER_BW_CHANNEL_SWITCH_ANN= 194; 119*5113495bSYour Nameconst EID_TRANSMIT_POWER_ENVELOPE = 195; 120*5113495bSYour Nameconst EID_CHANNEL_SWITCH_WRAPPER = 196; 121*5113495bSYour Nameconst EID_RNR_IE = 201; 122*5113495bSYour Nameconst EID_VENDOR_SPECIFIC = 221; 123*5113495bSYour Nameconst EID_FILS_INDICATION = 240; 124*5113495bSYour Nameconst EID_FRAGMENT_IE = 242; 125*5113495bSYour Name/** 126*5113495bSYour Name * Extended Element ID 127*5113495bSYour Name * 128*5113495bSYour Name * As part of IEEE-802.11-2016 spec, extended element ID is introduced(9.4.2.1) 129*5113495bSYour Name * Elements are defined to have a common general format consisting of a 1 octet 130*5113495bSYour Name * Element ID field, a 1 octet Length field, an optional 1 octet Element ID 131*5113495bSYour Name * Extension field, and a variable-length element-specific Information field. 132*5113495bSYour Name * Each element is identified by the contents of the Element ID and, when 133*5113495bSYour Name * present, Element ID Extension fields as defined in this standard. An Extended 134*5113495bSYour Name * Element ID is a combination of an Element ID and an Element ID Extension for 135*5113495bSYour Name * those elements that have a defined Element ID Extension. The Length field 136*5113495bSYour Name * specifies the number of octets following the Length field. The presence of 137*5113495bSYour Name * the Element ID Extension field is determined by the Element ID field having 138*5113495bSYour Name * value of 255 139*5113495bSYour Name */ 140*5113495bSYour Nameconst EID_EXTN_ID_ELEMENT = 255; 141*5113495bSYour Name 142*5113495bSYour Nameconst SIR_MAC_PROP_EXT_RATES_TYPE = 0; 143*5113495bSYour Nameconst SIR_MAC_PROP_AP_NAME_TYPE = 1; 144*5113495bSYour Nameconst SIR_MAC_PROP_HCF_TYPE = 2; 145*5113495bSYour Nameconst SIR_MAC_PROP_WDS_TYPE = 3; 146*5113495bSYour Nameconst SIR_MAC_PROP_BP_IND_TYPE = 4; 147*5113495bSYour Nameconst SIR_MAC_PROP_NEIGHBOR_BSS_TYPE = 5; 148*5113495bSYour Nameconst SIR_MAC_PROP_LOAD_INFO_TYPE = 6; 149*5113495bSYour Nameconst SIR_MAC_PROP_ASSOC_TYPE = 7; 150*5113495bSYour Nameconst SIR_MAC_PROP_LOAD_BALANCE_TYPE = 8; 151*5113495bSYour Nameconst SIR_MAC_PROP_LL_ATTR_TYPE = 9; 152*5113495bSYour Nameconst SIR_MAC_PROP_CAPABILITY = 10; 153*5113495bSYour Nameconst SIR_MAC_PROP_VERSION = 11; 154*5113495bSYour Nameconst SIR_MAC_PROP_EDCAPARAMS = 12; 155*5113495bSYour Nameconst SIR_MAC_PROP_CHANNEL_SWITCH = 15; 156*5113495bSYour Nameconst SIR_MAC_PROP_QUIET_BSS = 16; 157*5113495bSYour Nameconst SIR_MAC_PROP_TRIG_STA_BK_SCAN = 17; 158*5113495bSYour Name 159*5113495bSYour Nameconst ANI_WDS_INFO_MAX_LENGTH = 64; 160*5113495bSYour Nameconst SIR_MAC_MAX_NUMBER_OF_RATES = 12; 161*5113495bSYour Nameconst HT_MAX_SUPPORTED_MCS_SET = 16; 162*5113495bSYour Nameconst MAX_SUPPORTED_NEIGHBOR_RPT = 15; 163*5113495bSYour Nameconst MAX_QOS_DSCP_DATA_LEN = 58; 164*5113495bSYour Nameconst QOS_DSCP_RANGE_LEN = 16; 165*5113495bSYour Name 166*5113495bSYour Name///////////////////////////////////////////////////////////////////////////// 167*5113495bSYour Name// Wi-Fi Protected Setup TLV Identifiers // 168*5113495bSYour Name// WSC Version 2.0.0 Table 28 // 169*5113495bSYour Name///////////////////////////////////////////////////////////////////////////// 170*5113495bSYour Name///////////////////////////////////////////////////////////////////////////// 171*5113495bSYour Name// Wi-Fi Simple Configuration TLV Identifiers // 172*5113495bSYour Name// WFA Vendor Extension Subelements // 173*5113495bSYour Name///////////////////////////////////////////////////////////////////////////// 174*5113495bSYour Nameconst TLV_VERSION2 = 0; 175*5113495bSYour Nameconst TLV_AUTHORIZED_MAC = 1; 176*5113495bSYour Nameconst TLV_NETWORK_KEY_SHAREABLE = 2; 177*5113495bSYour Nameconst TLV_REQUEST_TO_ENROLL = 3; 178*5113495bSYour Nameconst TLV_SETTINGS_DELAY_TIME = 4; 179*5113495bSYour Name 180*5113495bSYour Nameconst TLV_VERSION = 0x104A; 181*5113495bSYour Nameconst TLV_WI_FI_SIMPLE_CONFIG_STATE = 0x1044; 182*5113495bSYour Nameconst TLV_AP_SETUP_LOCKED = 0x1057; 183*5113495bSYour Nameconst TLV_SELECTED_REGISTRAR_CONFIG_METHODS = 0x1053; 184*5113495bSYour Nameconst TLV_DEVICE_PASSWORD_ID = 0x1012; 185*5113495bSYour Nameconst TLV_UUID_E = 0x1047; 186*5113495bSYour Nameconst TLV_UUID_R = 0x1048; 187*5113495bSYour Nameconst TLV_RF_BANDS = 0x103C; 188*5113495bSYour Nameconst TLV_REQUEST_TYPE = 0x103A; 189*5113495bSYour Nameconst TLV_RESPONSE_TYPE = 0x103B; 190*5113495bSYour Nameconst TLV_CONFIG_METHODS = 0x1008; 191*5113495bSYour Nameconst TLV_PRIMARY_DEVICE_TYPE = 0x1054; 192*5113495bSYour Nameconst TLV_ASSOCIATION_STATE = 0x1002; 193*5113495bSYour Nameconst TLV_CONFIGURATION_ERROR = 0x1009; 194*5113495bSYour Nameconst TLV_MANUFACTURER = 0x1021; 195*5113495bSYour Nameconst TLV_MODEL_NAME = 0x1023; 196*5113495bSYour Nameconst TLV_MODEL_NUMBER = 0x1024; 197*5113495bSYour Nameconst TLV_SERIAL_NUMBER = 0x1042; 198*5113495bSYour Nameconst TLV_DEVICE_NAME = 0x1011; 199*5113495bSYour Nameconst TLV_SELECTED_REGISTRAR = 0x1041; 200*5113495bSYour Nameconst TLV_VENDOR_EXTENSION = 0x1049; 201*5113495bSYour Nameconst TLV_REQUESTED_DEVICE_TYPE = 0x106A; 202*5113495bSYour Name 203*5113495bSYour Name///////////////////////////////////////////////////////////////////////////// 204*5113495bSYour Name// Wi-Fi Direct/P2P TLV Identifiers // 205*5113495bSYour Name///////////////////////////////////////////////////////////////////////////// 206*5113495bSYour Nameconst TLV_P2P_STATUS = 0; 207*5113495bSYour Nameconst TLV_MINOR_REASON_CODE = 1; 208*5113495bSYour Nameconst TLV_P2P_CAPABILITY = 2; 209*5113495bSYour Nameconst TLV_P2P_DEVICE_ID = 3; 210*5113495bSYour Nameconst TLV_P2P_GROUP_OWNER_INTENT = 4; 211*5113495bSYour Nameconst TLV_CONFIGURATION_TIMEOUT = 5; 212*5113495bSYour Nameconst TLV_LISTEN_CHANNEL = 6; 213*5113495bSYour Nameconst TLV_P2P_GROUP_BSSID = 7; 214*5113495bSYour Nameconst TLV_EXTENDED_LISTEN_TIMING = 8; 215*5113495bSYour Nameconst TLV_INTENDED_P2P_INTERFACE_ADDRESS = 9; 216*5113495bSYour Nameconst TLV_P2P_MANAGEABILITY = 10; 217*5113495bSYour Nameconst TLV_CHANNEL_LIST = 11; 218*5113495bSYour Nameconst TLV_NOTICE_OF_ABSENCE = 12; 219*5113495bSYour Nameconst TLV_P2P_DEVICE_INFO = 13; 220*5113495bSYour Nameconst TLV_P2P_GROUP_INFO = 14; 221*5113495bSYour Nameconst TLV_P2P_GROUP_ID = 15; 222*5113495bSYour Nameconst TLV_P2P_INTERFACE = 16; 223*5113495bSYour Nameconst TLV_OPERATING_CHANNEL = 17; 224*5113495bSYour Nameconst TLV_INVITATION_FLAGS = 18; 225*5113495bSYour Nameconst TLV_P2P_VENDOR_SPECIFIC = 221; 226*5113495bSYour Name 227*5113495bSYour Name 228*5113495bSYour Name///////////////////////////////////////////////////////////////////////////// 229*5113495bSYour Name// MBO-OCE Attributes (0, 151-255: Reserved) // 230*5113495bSYour Name///////////////////////////////////////////////////////////////////////////// 231*5113495bSYour Nameconst TLV_MBO_AP_CAP_ATTR = 1; 232*5113495bSYour Nameconst TLV_NON_PREFERRED_CHAN_REPORT_ATTR = 2; 233*5113495bSYour Nameconst TLV_CELLULAR_DATA_CAP_ATTR = 3; 234*5113495bSYour Nameconst TLV_ASSOC_DISSALLOWED_ATTR = 4; 235*5113495bSYour Nameconst TLV_CELLULAR_DATA_CON_PREF_ATTR = 5; 236*5113495bSYour Nameconst TLV_TRANSITION_REASON_CODE_ATTR = 6; 237*5113495bSYour Nameconst TLV_TRANSITION_REJECT_REASON_CODE_ATTR = 7; 238*5113495bSYour Nameconst TLV_ASSOC_RETRY_DELAY_ATTR = 8; 239*5113495bSYour Name 240*5113495bSYour Name// 9-100 : Reserved for MBO // 241*5113495bSYour Name 242*5113495bSYour Name// OCE ATTRIBUTES // 243*5113495bSYour Nameconst TLV_OCE_CAP_IND_ATTR = 101; 244*5113495bSYour Nameconst TLV_RSSI_ASSOC_REJ_ATTR = 102; 245*5113495bSYour Nameconst TLV_REDUCED_WAN_METRICS_ATTR = 103; 246*5113495bSYour Name// 104-150 : Reserved for OCE 247*5113495bSYour Name 248*5113495bSYour Name 249*5113495bSYour Name 250*5113495bSYour Name///////////////////////////////////////////////////////////////////////////// 251*5113495bSYour Name// Fixed Fields 252*5113495bSYour Name 253*5113495bSYour NameFF AuthAlgo (2) // C.f. Sec. 7.3.1.1 254*5113495bSYour Name{ 255*5113495bSYour Name algo, 2; 256*5113495bSYour Name} 257*5113495bSYour Name 258*5113495bSYour NameFF AuthSeqNo (2) // 7.3.1.2 259*5113495bSYour Name{ 260*5113495bSYour Name no, 2; 261*5113495bSYour Name} 262*5113495bSYour Name 263*5113495bSYour NameFF BeaconInterval (2) // 7.3.1.3 264*5113495bSYour Name{ 265*5113495bSYour Name interval, 2; 266*5113495bSYour Name} 267*5113495bSYour Name 268*5113495bSYour NameFF Capabilities (2) // 7.3.1.4 269*5113495bSYour Name{ 270*5113495bSYour Name { 271*5113495bSYour Name ess: 1; 272*5113495bSYour Name ibss: 1; 273*5113495bSYour Name cfPollable: 1; 274*5113495bSYour Name cfPollReq: 1; 275*5113495bSYour Name privacy: 1; 276*5113495bSYour Name shortPreamble: 1; 277*5113495bSYour Name criticalUpdateFlag: 1; 278*5113495bSYour Name channelAgility: 1; 279*5113495bSYour Name spectrumMgt: 1; 280*5113495bSYour Name qos: 1; 281*5113495bSYour Name shortSlotTime: 1; 282*5113495bSYour Name apsd: 1; 283*5113495bSYour Name rrm: 1; 284*5113495bSYour Name dsssOfdm: 1; 285*5113495bSYour Name delayedBA: 1; 286*5113495bSYour Name immediateBA: 1; 287*5113495bSYour Name } 288*5113495bSYour Name} 289*5113495bSYour Name 290*5113495bSYour NameFF CurrentAPAddress(6) // 7.3.1.5 291*5113495bSYour Name{ 292*5113495bSYour Name mac[6]; 293*5113495bSYour Name} 294*5113495bSYour Name 295*5113495bSYour NameFF ListenInterval (2) // 7.3.1.6 296*5113495bSYour Name{ 297*5113495bSYour Name interval, 2; 298*5113495bSYour Name} 299*5113495bSYour Name 300*5113495bSYour NameFF Reason (2) // 7.3.1.7 301*5113495bSYour Name{ 302*5113495bSYour Name code, 2; 303*5113495bSYour Name} 304*5113495bSYour Name 305*5113495bSYour NameFF AID (2) // 7.3.1.8 306*5113495bSYour Name{ 307*5113495bSYour Name associd, 2; 308*5113495bSYour Name} 309*5113495bSYour Name 310*5113495bSYour NameFF Status (2) // 7.3.1.9 311*5113495bSYour Name{ 312*5113495bSYour Name status, 2; 313*5113495bSYour Name} 314*5113495bSYour Name 315*5113495bSYour NameFF TimeStamp (8) // 7.3.1.10 316*5113495bSYour Name{ 317*5113495bSYour Name timestamp, 8; 318*5113495bSYour Name} 319*5113495bSYour Name 320*5113495bSYour NameFF Category (1) // 7.3.1.11 321*5113495bSYour Name{ 322*5113495bSYour Name category, 1; 323*5113495bSYour Name} 324*5113495bSYour Name 325*5113495bSYour NameFF Action (1) // 7.3.1.11 326*5113495bSYour Name{ 327*5113495bSYour Name action, 1; 328*5113495bSYour Name} 329*5113495bSYour Name 330*5113495bSYour NameFF TransactionId (2) // 7.3.1.11 331*5113495bSYour Name{ 332*5113495bSYour Name transId[2]; 333*5113495bSYour Name} 334*5113495bSYour Name 335*5113495bSYour NameFF DialogToken (1) // 7.3.1.12 336*5113495bSYour Name{ 337*5113495bSYour Name token, 1; 338*5113495bSYour Name} 339*5113495bSYour Name 340*5113495bSYour NameFF StatusCode (1) // WMM Spec 2.2.10 341*5113495bSYour Name{ 342*5113495bSYour Name statusCode, 1; 343*5113495bSYour Name} 344*5113495bSYour Name 345*5113495bSYour NameFF p2p_action_oui (4) 346*5113495bSYour Name{ 347*5113495bSYour Name oui_data[4]; 348*5113495bSYour Name} 349*5113495bSYour Name 350*5113495bSYour NameFF p2p_action_subtype (1) 351*5113495bSYour Name{ 352*5113495bSYour Name subtype, 1; 353*5113495bSYour Name} 354*5113495bSYour Name 355*5113495bSYour NameFF OperatingMode (1) 356*5113495bSYour Name{ 357*5113495bSYour Name { 358*5113495bSYour Name //Operating Mode field 359*5113495bSYour Name chanWidth: 2; 360*5113495bSYour Name reserved: 2; 361*5113495bSYour Name rxNSS: 3; 362*5113495bSYour Name rxNSSType: 1; 363*5113495bSYour Name } 364*5113495bSYour Name} 365*5113495bSYour Name 366*5113495bSYour NameFF SMPowerModeSet (1) //7.3.1.25 367*5113495bSYour Name{ 368*5113495bSYour Name { 369*5113495bSYour Name PowerSave_En: 1; 370*5113495bSYour Name Mode: 1; 371*5113495bSYour Name reserved: 6; 372*5113495bSYour Name } 373*5113495bSYour Name} 374*5113495bSYour Name 375*5113495bSYour NameFF TSInfo (3) // 7.3.2.30 376*5113495bSYour Name{ 377*5113495bSYour Name { 378*5113495bSYour Name traffic_type: 1; 379*5113495bSYour Name tsid: 4; 380*5113495bSYour Name direction: 2; 381*5113495bSYour Name access_policy: 2; 382*5113495bSYour Name aggregation: 1; 383*5113495bSYour Name psb: 1; 384*5113495bSYour Name user_priority: 3; 385*5113495bSYour Name tsinfo_ack_pol: 2; 386*5113495bSYour Name schedule: 1; 387*5113495bSYour Name unused: 15; 388*5113495bSYour Name } 389*5113495bSYour Name} 390*5113495bSYour Name 391*5113495bSYour NameFF NumOfRepetitions (2) 392*5113495bSYour Name{ 393*5113495bSYour Name repetitions, 2; 394*5113495bSYour Name} 395*5113495bSYour Name 396*5113495bSYour NameFF TxPower (1) 397*5113495bSYour Name{ 398*5113495bSYour Name txPower, 1; 399*5113495bSYour Name} 400*5113495bSYour Name 401*5113495bSYour NameFF MaxTxPower (1) 402*5113495bSYour Name{ 403*5113495bSYour Name maxTxPower, 1; 404*5113495bSYour Name} 405*5113495bSYour NameFF TPCEleID (1) 406*5113495bSYour Name{ 407*5113495bSYour Name TPCId, 1; 408*5113495bSYour Name} 409*5113495bSYour NameFF TPCEleLen (1) 410*5113495bSYour Name{ 411*5113495bSYour Name TPCLen, 1; 412*5113495bSYour Name} 413*5113495bSYour NameFF LinkMargin (1) 414*5113495bSYour Name{ 415*5113495bSYour Name linkMargin, 1; 416*5113495bSYour Name} 417*5113495bSYour NameFF RxAntennaId (1) 418*5113495bSYour Name{ 419*5113495bSYour Name antennaId, 1; 420*5113495bSYour Name} 421*5113495bSYour NameFF TxAntennaId (1) 422*5113495bSYour Name{ 423*5113495bSYour Name antennaId, 1; 424*5113495bSYour Name} 425*5113495bSYour NameFF RCPI (1) 426*5113495bSYour Name{ 427*5113495bSYour Name rcpi, 1; 428*5113495bSYour Name} 429*5113495bSYour NameFF RSNI (1) 430*5113495bSYour Name{ 431*5113495bSYour Name rsni, 1; 432*5113495bSYour Name} 433*5113495bSYour Name 434*5113495bSYour NameFF VhtMembershipStatusArray(8) // 8.4.1.51 435*5113495bSYour Name{ 436*5113495bSYour Name membershipStatusArray[8]; 437*5113495bSYour Name} 438*5113495bSYour Name 439*5113495bSYour NameFF VhtUserPositionArray(16) // 8.4.1.52 440*5113495bSYour Name{ 441*5113495bSYour Name userPositionArray[16]; 442*5113495bSYour Name} 443*5113495bSYour Name 444*5113495bSYour NameFF ext_chan_switch_ann_action(4) 445*5113495bSYour Name{ 446*5113495bSYour Name { 447*5113495bSYour Name switch_mode: 8; 448*5113495bSYour Name op_class: 8; 449*5113495bSYour Name new_channel: 8; 450*5113495bSYour Name switch_count: 8; 451*5113495bSYour Name } 452*5113495bSYour Name} 453*5113495bSYour Name 454*5113495bSYour NameFF addba_param_set(2) 455*5113495bSYour Name{ 456*5113495bSYour Name { 457*5113495bSYour Name amsdu_supp: 1; 458*5113495bSYour Name policy: 1; 459*5113495bSYour Name tid: 4; 460*5113495bSYour Name buff_size: 10; 461*5113495bSYour Name } 462*5113495bSYour Name} 463*5113495bSYour Name 464*5113495bSYour NameFF ba_timeout(2) 465*5113495bSYour Name{ 466*5113495bSYour Name timeout, 2; 467*5113495bSYour Name} 468*5113495bSYour Name 469*5113495bSYour NameFF ba_start_seq_ctrl(2) 470*5113495bSYour Name{ 471*5113495bSYour Name { 472*5113495bSYour Name frag_number: 4; 473*5113495bSYour Name ssn: 12; 474*5113495bSYour Name } 475*5113495bSYour Name} 476*5113495bSYour Name 477*5113495bSYour NameFF vendor_oui (3) 478*5113495bSYour Name{ 479*5113495bSYour Name oui_data[3]; 480*5113495bSYour Name} 481*5113495bSYour Name 482*5113495bSYour NameFF vendor_action_subtype (1) 483*5113495bSYour Name{ 484*5113495bSYour Name subtype, 1; 485*5113495bSYour Name} 486*5113495bSYour Name 487*5113495bSYour NameIE addba_extn_element(EID_ADDBA_EXTN_ELEMENT) 488*5113495bSYour Name{ 489*5113495bSYour Name { 490*5113495bSYour Name no_fragmentation: 1; 491*5113495bSYour Name he_frag_operation: 2; 492*5113495bSYour Name reserved: 2; 493*5113495bSYour Name extd_buff_size: 3; 494*5113495bSYour Name } 495*5113495bSYour Name} 496*5113495bSYour Name 497*5113495bSYour NameFF delba_param_set(2) 498*5113495bSYour Name{ 499*5113495bSYour Name { 500*5113495bSYour Name reserved: 11; 501*5113495bSYour Name initiator: 1; 502*5113495bSYour Name tid: 4; 503*5113495bSYour Name } 504*5113495bSYour Name} 505*5113495bSYour Name 506*5113495bSYour Name///////////////////////////////////////////////////////////////////////////// 507*5113495bSYour Name// TLVs // 508*5113495bSYour Name///////////////////////////////////////////////////////////////////////////// 509*5113495bSYour Name 510*5113495bSYour Name/** 511*5113495bSYour Name * \brief Version 512*5113495bSYour Name * 513*5113495bSYour Name * WPS 1.0h 514*5113495bSYour Name * Version specifies the Easy Setup version. The one-byte field is broken 515*5113495bSYour Name * into a four-bit major part using the top MSBs and four-bit minor part 516*5113495bSYour Name * using the LSBs. As an example, version 3.2 would be 0x32. 517*5113495bSYour Name * 518*5113495bSYour Name * WSC 2.0.0 519*5113495bSYour Name * Deprecated Version mechanism. This attribute is always set to value 0x10 520*5113495bSYour Name * (version 1.0) for backwards compatibility. Version 1.0h of the specification 521*5113495bSYour Name * did not fully describe the version negotiation mechanism and version 2.0 522*5113495bSYour Name * introduced a new subelement (Version2) for indicating the version number 523*5113495bSYour Name * to avoid potential interoperability issues with deployed 1.0h-based devices. 524*5113495bSYour Name * 525*5113495bSYour Name */ 526*5113495bSYour Name 527*5113495bSYour NameTLV Version( TLV_VERSION ) ( 2 : 2 ) MSB 528*5113495bSYour Name{ 529*5113495bSYour Name { 530*5113495bSYour Name minor: 4; 531*5113495bSYour Name major: 4; 532*5113495bSYour Name } 533*5113495bSYour Name} 534*5113495bSYour Name 535*5113495bSYour Name/// Wi-Fi Protected Setup State 536*5113495bSYour NameTLV WPSState( TLV_WI_FI_SIMPLE_CONFIG_STATE ) ( 2 : 2 ) MSB 537*5113495bSYour Name{ 538*5113495bSYour Name state, 1; 539*5113495bSYour Name} 540*5113495bSYour Name 541*5113495bSYour Name/** 542*5113495bSYour Name * \brief AP Setup Locked 543*5113495bSYour Name * 544*5113495bSYour Name * 545*5113495bSYour Name * This variable indicates that the AP has entered a state in which it will 546*5113495bSYour Name * refuse to allow an external Registrar to attempt to run the Registration 547*5113495bSYour Name * Protocol using the AP?s PIN (with the AP acting as Enrollee). The AP 548*5113495bSYour Name * should enter this state if it believes a brute force attack is underway 549*5113495bSYour Name * against the AP?s PIN. 550*5113495bSYour Name * 551*5113495bSYour Name * When the AP is in this state, it MUST continue to allow other Enrollees to 552*5113495bSYour Name * connect and run the Registration Protocol with any external Registrars or 553*5113495bSYour Name * the AP's built-in Registrar (if any). It is only the use of the AP' PIN 554*5113495bSYour Name * for adding external Registrars that is disabled in this state. 555*5113495bSYour Name * 556*5113495bSYour Name * The AP Setup Locked state can be reset to FALSE through an authenticated 557*5113495bSYour Name * call to SetAPSettings. APs may provide other implementation-specific 558*5113495bSYour Name * methods of resetting the AP Setup Locked state as well. 559*5113495bSYour Name * 560*5113495bSYour Name * 561*5113495bSYour Name */ 562*5113495bSYour Name 563*5113495bSYour NameTLV APSetupLocked( TLV_AP_SETUP_LOCKED ) ( 2 : 2 ) MSB 564*5113495bSYour Name{ 565*5113495bSYour Name fLocked, 1; 566*5113495bSYour Name} 567*5113495bSYour Name 568*5113495bSYour Name/** 569*5113495bSYour Name * \brief Selected Registrar Config Methods 570*5113495bSYour Name * 571*5113495bSYour Name * 572*5113495bSYour Name * This attribute has the same values that Config Methods have. It is used in 573*5113495bSYour Name * Probe Response messages to convey the Config Methods of the selected 574*5113495bSYour Name * Registrar. 575*5113495bSYour Name * 576*5113495bSYour Name * 577*5113495bSYour Name */ 578*5113495bSYour Name 579*5113495bSYour NameTLV SelectedRegistrarConfigMethods ( TLV_SELECTED_REGISTRAR_CONFIG_METHODS ) ( 2 : 2 ) MSB 580*5113495bSYour Name{ 581*5113495bSYour Name methods, 2; 582*5113495bSYour Name} 583*5113495bSYour Name 584*5113495bSYour Name/** 585*5113495bSYour Name * \brief UUID-E 586*5113495bSYour Name * 587*5113495bSYour Name * 588*5113495bSYour Name * The universally unique identifier (UUID) element is a unique GUID 589*5113495bSYour Name * generated by the Enrollee. It uniquely identifies an operational device 590*5113495bSYour Name * and should survive reboots and resets. The UUID is provided in binary 591*5113495bSYour Name * format. If the device also supports UPnP, then the UUID corresponds to the 592*5113495bSYour Name * UPnP UUID. 593*5113495bSYour Name * 594*5113495bSYour Name * 595*5113495bSYour Name */ 596*5113495bSYour Name 597*5113495bSYour NameTLV UUID_E ( TLV_UUID_E ) ( 2 : 2 ) MSB 598*5113495bSYour Name{ 599*5113495bSYour Name uuid[ 16 ]; 600*5113495bSYour Name} 601*5113495bSYour Name 602*5113495bSYour Name/** 603*5113495bSYour Name * \brief UUID-R 604*5113495bSYour Name * 605*5113495bSYour Name * 606*5113495bSYour Name * The universally unique identifier (UUID) element is a unique GUID 607*5113495bSYour Name * generated by the Registrar. It uniquely identifies an operational device 608*5113495bSYour Name * and should survive reboots and resets. The UUID is provided in binary 609*5113495bSYour Name * format. If the device also supports UPnP, then the UUID corresponds to the 610*5113495bSYour Name * UPnP UUID. 611*5113495bSYour Name * 612*5113495bSYour Name * 613*5113495bSYour Name */ 614*5113495bSYour Name 615*5113495bSYour NameTLV UUID_R ( TLV_UUID_R ) ( 2 : 2 ) MSB 616*5113495bSYour Name{ 617*5113495bSYour Name uuid[ 16 ]; 618*5113495bSYour Name} 619*5113495bSYour Name 620*5113495bSYour Name/** 621*5113495bSYour Name * \brief RF Bands 622*5113495bSYour Name * 623*5113495bSYour Name * 624*5113495bSYour Name \code 625*5113495bSYour Name 626*5113495bSYour Name 0x01 2.4GHz 627*5113495bSYour Name 0x02 5.0GHz 628*5113495bSYour Name 629*5113495bSYour Name \endcode 630*5113495bSYour Name * 631*5113495bSYour Name * 632*5113495bSYour Name */ 633*5113495bSYour Name 634*5113495bSYour NameTLV RFBands ( TLV_RF_BANDS ) ( 2 : 2 ) MSB 635*5113495bSYour Name{ 636*5113495bSYour Name bands, 1; 637*5113495bSYour Name} 638*5113495bSYour Name 639*5113495bSYour Name 640*5113495bSYour Name/** 641*5113495bSYour Name * \brief Selected Registrar 642*5113495bSYour Name * 643*5113495bSYour Name * 644*5113495bSYour Name * This field indicates that a Registrar has been selected by a user and that 645*5113495bSYour Name * an Enrollee should proceed with setting up an 802.1X uncontrolled data 646*5113495bSYour Name * port with the Registrar. 647*5113495bSYour Name * 648*5113495bSYour Name * 649*5113495bSYour Name */ 650*5113495bSYour Name 651*5113495bSYour NameTLV SelectedRegistrar ( TLV_SELECTED_REGISTRAR ) ( 2 : 2 ) MSB 652*5113495bSYour Name{ 653*5113495bSYour Name selected, 1; 654*5113495bSYour Name} 655*5113495bSYour Name 656*5113495bSYour Name/** 657*5113495bSYour Name * \brief Config Methods 658*5113495bSYour Name * 659*5113495bSYour Name * 660*5113495bSYour Name * The Config Methods Data component lists the configuration methods the 661*5113495bSYour Name * Enrollee or Registrar supports. The list is a bitwise OR of values from 662*5113495bSYour Name * the table below. In addition to Config Methods, APs and STAs that support 663*5113495bSYour Name * the UPnP Management Interface must support the Permitted Config Methods 664*5113495bSYour Name * attribute, which is used to control the Config Methods that are enabled on 665*5113495bSYour Name * that AP. 666*5113495bSYour Name * 667*5113495bSYour Name \code 668*5113495bSYour Name 669*5113495bSYour Name Value Hardware Interface 670*5113495bSYour Name 0x0001 USBA (Flash Drive) 671*5113495bSYour Name 0x0002 Ethernet 672*5113495bSYour Name 0x0004 Label 673*5113495bSYour Name 0x0008 Display 674*5113495bSYour Name 0x0010 External NFC Token 675*5113495bSYour Name 0x0020 Integrated NFC Token 676*5113495bSYour Name 0x0040 NFC Interface 677*5113495bSYour Name 0x0080 PushButton 678*5113495bSYour Name 0x0100 Keypad 679*5113495bSYour Name 680*5113495bSYour Name \endcode 681*5113495bSYour Name * 682*5113495bSYour Name * 683*5113495bSYour Name */ 684*5113495bSYour Name 685*5113495bSYour NameTLV ConfigMethods ( TLV_CONFIG_METHODS ) ( 2 : 2 ) MSB 686*5113495bSYour Name{ 687*5113495bSYour Name methods, 2; 688*5113495bSYour Name} 689*5113495bSYour Name 690*5113495bSYour Name/** 691*5113495bSYour Name * \brief Association State 692*5113495bSYour Name * 693*5113495bSYour Name * 694*5113495bSYour Name * The Association State component shows the configuration and previous 695*5113495bSYour Name * association state of the wireless station when sending a Discovery 696*5113495bSYour Name * request. 697*5113495bSYour Name * 698*5113495bSYour Name \code 699*5113495bSYour Name 700*5113495bSYour Name Association State Description 701*5113495bSYour Name 0 Not Associated 702*5113495bSYour Name 1 Connection Success 703*5113495bSYour Name 2 Configuration Failure 704*5113495bSYour Name 3 Association Failure 705*5113495bSYour Name 4 IP Failure 706*5113495bSYour Name 707*5113495bSYour Name \endcode 708*5113495bSYour Name * 709*5113495bSYour Name * 710*5113495bSYour Name */ 711*5113495bSYour Name 712*5113495bSYour NameTLV AssociationState ( TLV_ASSOCIATION_STATE ) ( 2 : 2 ) MSB 713*5113495bSYour Name{ 714*5113495bSYour Name state, 2; 715*5113495bSYour Name} 716*5113495bSYour Name 717*5113495bSYour Name/** 718*5113495bSYour Name * \brief Configuration Error 719*5113495bSYour Name * 720*5113495bSYour Name * 721*5113495bSYour Name * The Configuration Error component shows the result of the device 722*5113495bSYour Name * attempting to configure itself and to associate with the WLAN. 723*5113495bSYour Name * 724*5113495bSYour Name \code 725*5113495bSYour Name 726*5113495bSYour Name Configuration Error Description 727*5113495bSYour Name 0 No Error 728*5113495bSYour Name 1 OOB Interface Read Error 729*5113495bSYour Name 2 Decryption CRC Failure 730*5113495bSYour Name 3 2.4 channel not supported 731*5113495bSYour Name 4 5.0 channel not supported 732*5113495bSYour Name 5 Signal too weak 733*5113495bSYour Name 6 Network auth failure 734*5113495bSYour Name 7 Network association failure 735*5113495bSYour Name 8 No DHCP response 736*5113495bSYour Name 9 Failed DHCP config 737*5113495bSYour Name 10 IP address conflict 738*5113495bSYour Name 11 Couldn't connect to Registrar 739*5113495bSYour Name 12 Multiple PBC sessions detected 740*5113495bSYour Name 13 Rogue activity suspected 741*5113495bSYour Name 14 Device busy 742*5113495bSYour Name 15 Setup locked 743*5113495bSYour Name 16 Message Timeout 744*5113495bSYour Name 17 Registration Session Timeout 745*5113495bSYour Name 18 Device Password Auth Failure 746*5113495bSYour Name 747*5113495bSYour Name \endcode 748*5113495bSYour Name * 749*5113495bSYour Name * The Device busy error is returned if the sending device is unable to 750*5113495bSYour Name * respond to the request due to some internal conflict or resource 751*5113495bSYour Name * contention issue. For example, if a device is only capable of performing a 752*5113495bSYour Name * single instance of the Registration Protocol at a time, it may return this 753*5113495bSYour Name * error in response to attempts to start another instance in the middle of 754*5113495bSYour Name * an active session. 755*5113495bSYour Name * 756*5113495bSYour Name * 757*5113495bSYour Name */ 758*5113495bSYour Name 759*5113495bSYour NameTLV ConfigurationError ( TLV_CONFIGURATION_ERROR ) ( 2 : 2 ) MSB 760*5113495bSYour Name{ 761*5113495bSYour Name error, 2; 762*5113495bSYour Name} 763*5113495bSYour Name 764*5113495bSYour NameTLV Manufacturer ( TLV_MANUFACTURER ) ( 2 : 2 ) MSB 765*5113495bSYour Name{ 766*5113495bSYour Name name[ 0..64 ]; 767*5113495bSYour Name} 768*5113495bSYour Name 769*5113495bSYour NameTLV ModelName ( TLV_MODEL_NAME ) ( 2 : 2 ) MSB 770*5113495bSYour Name{ 771*5113495bSYour Name text[ 0..32 ]; 772*5113495bSYour Name} 773*5113495bSYour Name 774*5113495bSYour NameTLV ModelNumber ( TLV_MODEL_NUMBER ) ( 2 : 2 ) MSB 775*5113495bSYour Name{ 776*5113495bSYour Name text[ 0..32 ]; 777*5113495bSYour Name} 778*5113495bSYour Name 779*5113495bSYour NameTLV SerialNumber ( TLV_SERIAL_NUMBER ) ( 2 : 2 ) MSB 780*5113495bSYour Name{ 781*5113495bSYour Name text[ 0..32 ]; 782*5113495bSYour Name} 783*5113495bSYour Name 784*5113495bSYour NameTLV DeviceName ( TLV_DEVICE_NAME ) ( 2 : 2 ) MSB 785*5113495bSYour Name{ 786*5113495bSYour Name text[ 0..32 ]; 787*5113495bSYour Name} 788*5113495bSYour Name 789*5113495bSYour Name/** 790*5113495bSYour Name * \brief Device Password ID 791*5113495bSYour Name * 792*5113495bSYour Name * 793*5113495bSYour Name * This attribute is used to identify a device password. There are six 794*5113495bSYour Name * predefined values and ten reserved values. If the Device Password ID is 795*5113495bSYour Name * Default, the Enrollee should use its PIN password (from the label or 796*5113495bSYour Name * display). This password may correspond to the label, display, or a 797*5113495bSYour Name * user-defined password that has been configured to replace the original 798*5113495bSYour Name * device password. 799*5113495bSYour Name * 800*5113495bSYour Name * User-specified indicates that the user has overridden the password with a 801*5113495bSYour Name * manually selected value. Machine-specified indicates that the original 802*5113495bSYour Name * PIN password has been overridden by a strong, machinegenerated device 803*5113495bSYour Name * password value. The Rekey value indicates that the device's 256-bit 804*5113495bSYour Name * rekeying password will be used. The PushButton value indicates that the 805*5113495bSYour Name * PIN is the all-zero value reserved for the PushButton Configuration 806*5113495bSYour Name * method. 807*5113495bSYour Name * 808*5113495bSYour Name * The Registrar-specified value indicates a PIN that has been obtained from 809*5113495bSYour Name * the Registrar (via a display or other out-of-band method). This value may 810*5113495bSYour Name * be further augmented with the optional 'Identity' attribute in M1. This 811*5113495bSYour Name * augmentation is useful when multiple predefined UserID/PIN pairs have been 812*5113495bSYour Name * established by a Registrar such as an authenticator used for Hotspot 813*5113495bSYour Name * access. If the Device Password ID in M1 is not one of the predefined or 814*5113495bSYour Name * reserved values, it corresponds to a password given to the Registrar as an 815*5113495bSYour Name * OOB Device Password. 816*5113495bSYour Name * 817*5113495bSYour Name \code 818*5113495bSYour Name 819*5113495bSYour Name Value Description 820*5113495bSYour Name 821*5113495bSYour Name 0x0000 Default (PIN) 822*5113495bSYour Name 0x0001 User-specified 823*5113495bSYour Name 0x0002 Machine-specified 824*5113495bSYour Name 0x0003 Rekey 825*5113495bSYour Name 0x0004 PushButton 826*5113495bSYour Name 0x0005 Registrar-specified 827*5113495bSYour Name 0x0006 - 0x000F Reserved 828*5113495bSYour Name 829*5113495bSYour Name \endcode 830*5113495bSYour Name * 831*5113495bSYour Name * 832*5113495bSYour Name */ 833*5113495bSYour Name 834*5113495bSYour NameTLV DevicePasswordID ( TLV_DEVICE_PASSWORD_ID ) ( 2 : 2 ) MSB 835*5113495bSYour Name{ 836*5113495bSYour Name id, 2; 837*5113495bSYour Name} 838*5113495bSYour Name 839*5113495bSYour Name 840*5113495bSYour Name/** 841*5113495bSYour Name * \brief Primary Device Type 842*5113495bSYour Name * 843*5113495bSYour Name * 844*5113495bSYour Name * This attribute contains the primary type of the device. Its format 845*5113495bSYour Name * follows: 846*5113495bSYour Name * 847*5113495bSYour Name \code 848*5113495bSYour Name 849*5113495bSYour Name 0 1 2 3 850*5113495bSYour Name 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 851*5113495bSYour Name +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 852*5113495bSYour Name | Attribute ID | Length | 853*5113495bSYour Name +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 854*5113495bSYour Name | Category ID | OUI (1-2) | 855*5113495bSYour Name +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 856*5113495bSYour Name | OUI (3-4) | Sub Category ID | 857*5113495bSYour Name +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 858*5113495bSYour Name 859*5113495bSYour Name \endcode 860*5113495bSYour Name * 861*5113495bSYour Name * Vendor-specific sub-categories are designated by setting the OUI to the 862*5113495bSYour Name * value associated with that vendor. Note that a four-byte subdivided OUI 863*5113495bSYour Name * is used. For the predefined values, the Wi-Fi Alliance OUI of 00 50 F2 04 864*5113495bSYour Name * is used. The predefined values for Category ID and Sub Category ID are 865*5113495bSYour Name * provided in the next table. There is no way to indicate a vendor-specific 866*5113495bSYour Name * main device category. The OUI applies only to the interpretation of the 867*5113495bSYour Name * Sub Category. If a vendor does not use sub categories for their OUI, the 868*5113495bSYour Name * three-byte OUI occupies the first three bytes of the OUI field and the 869*5113495bSYour Name * fourth byte is set to zero. 870*5113495bSYour Name * 871*5113495bSYour Name * 872*5113495bSYour Name \code 873*5113495bSYour Name 874*5113495bSYour Name Category ID Value Sub Category ID Value 875*5113495bSYour Name Computer 1 PC 1 876*5113495bSYour Name Server 2 877*5113495bSYour Name Media Center 3 878*5113495bSYour Name Input Device 2 879*5113495bSYour Name Printers, Scanners, Printer 1 880*5113495bSYour Name Faxes and Copiers 3 Scanner 2 881*5113495bSYour Name Camera 4 Digital Still Camera 1 882*5113495bSYour Name Storage 5 NAS 1 883*5113495bSYour Name Network AP 1 884*5113495bSYour Name Infrastructure 6 Router 2 885*5113495bSYour Name Switch 3 886*5113495bSYour Name Displays 7 Television 1 887*5113495bSYour Name Electronic Picture Frame 2 888*5113495bSYour Name Projector 3 889*5113495bSYour Name Multimedia Devices 8 DAR 1 890*5113495bSYour Name PVR 2 891*5113495bSYour Name MCX 3 892*5113495bSYour Name Gaming Devices 9 Xbox 1 893*5113495bSYour Name Xbox360 2 894*5113495bSYour Name Playstation 3 895*5113495bSYour Name Telephone 10 Windows Mobile 1 896*5113495bSYour Name 897*5113495bSYour Name \endcode 898*5113495bSYour Name * 899*5113495bSYour Name * 900*5113495bSYour Name */ 901*5113495bSYour Name 902*5113495bSYour NameTLV PrimaryDeviceType ( TLV_PRIMARY_DEVICE_TYPE ) ( 2 : 2 ) MSB 903*5113495bSYour Name{ 904*5113495bSYour Name primary_category, 2; 905*5113495bSYour Name oui[ 4 ]; 906*5113495bSYour Name sub_category, 2; 907*5113495bSYour Name} 908*5113495bSYour Name 909*5113495bSYour Name 910*5113495bSYour Name/** 911*5113495bSYour Name * \brief Request Type 912*5113495bSYour Name * 913*5113495bSYour Name * 914*5113495bSYour Name * The Request Type component specifies the mode in which the device will 915*5113495bSYour Name * operate in for this setup exchange. If the device is an Enrollee, it may 916*5113495bSYour Name * send only discovery messages or it may also request that the Registrar 917*5113495bSYour Name * proceed with opening a data connection. This protocol allows Enrollees to 918*5113495bSYour Name * more efficiently discover devices on the network. 919*5113495bSYour Name 920*5113495bSYour Name * If the device indicates that it intends to engage setup either as a 921*5113495bSYour Name * Registrar or an Enrollee, the Access Point continues to indicate that it 922*5113495bSYour Name * will operate as an AP in the response. The Request Type attribute is 923*5113495bSYour Name * carried throughout the 802.1X data channel setup process in the Wi-Fi 924*5113495bSYour Name * Protected Setup IE. There are two sub-types of Registrars: WLAN Manager 925*5113495bSYour Name * Registrar indicates that this Registrar intends to manage the AP or STA 926*5113495bSYour Name * settings using UPnP. It will derive a UPnP AP or STA Management key. The 927*5113495bSYour Name * ordinary Registrar type indicates that this Registrar does not intend to 928*5113495bSYour Name * subsequently manage the Enrollee's settings. APs must not derive AP 929*5113495bSYour Name * Management Keys for an ordinary Registrar. If a Registrar does not intend 930*5113495bSYour Name * to be a WLAN Manager Registrar, it should set the Request Type to 931*5113495bSYour Name * Registrar. Doing so avoids needlessly consuming resources on the AP. 932*5113495bSYour Name 933*5113495bSYour Name \code 934*5113495bSYour Name 935*5113495bSYour Name Request Type Value Description 936*5113495bSYour Name 0x00 Enrollee, Info only 937*5113495bSYour Name 0x01 Enrollee, open 802.1X 938*5113495bSYour Name 0x02 Registrar 939*5113495bSYour Name 0x03 WLAN Manager Registrar 940*5113495bSYour Name 941*5113495bSYour Name \endcode 942*5113495bSYour Name * 943*5113495bSYour Name * 944*5113495bSYour Name */ 945*5113495bSYour Name 946*5113495bSYour NameTLV RequestType ( TLV_REQUEST_TYPE ) ( 2 : 2 ) MSB 947*5113495bSYour Name{ 948*5113495bSYour Name reqType, 1; 949*5113495bSYour Name} 950*5113495bSYour Name 951*5113495bSYour Name/** 952*5113495bSYour Name * \brief Response Type 953*5113495bSYour Name * 954*5113495bSYour Name * 955*5113495bSYour Name * The Response Type component specifies the operational mode of the 956*5113495bSYour Name * device for this setup exchange. The Response Type IE is carried 957*5113495bSYour Name * throughout the 802.1X data channel setup process. 958*5113495bSYour Name 959*5113495bSYour Name \code 960*5113495bSYour Name 961*5113495bSYour Name Response Type Value Description 962*5113495bSYour Name 0x00 Enrollee, Info only 963*5113495bSYour Name 0x01 Enrollee, open 802.1X 964*5113495bSYour Name 0x02 Registrar 965*5113495bSYour Name 0x03 AP 966*5113495bSYour Name 967*5113495bSYour Name\endcode 968*5113495bSYour Name * 969*5113495bSYour Name * 970*5113495bSYour Name */ 971*5113495bSYour Name 972*5113495bSYour NameTLV ResponseType ( TLV_RESPONSE_TYPE ) ( 2 : 2 ) MSB 973*5113495bSYour Name{ 974*5113495bSYour Name resType, 1; 975*5113495bSYour Name} 976*5113495bSYour Name 977*5113495bSYour Name 978*5113495bSYour Name/////////////////////////////////////////////////////////////////////////// 979*5113495bSYour Name// WiFi Direct/P2P TLVs // 980*5113495bSYour Name/////////////////////////////////////////////////////////////////////////// 981*5113495bSYour Name 982*5113495bSYour Name/** 983*5113495bSYour Name * \brief P2P Status Attribute 984*5113495bSYour Name */ 985*5113495bSYour Name 986*5113495bSYour NameTLV P2PStatus ( TLV_P2P_STATUS ) ( 1 : 2 ) LSB 987*5113495bSYour Name{ 988*5113495bSYour Name status, 1; 989*5113495bSYour Name} 990*5113495bSYour Name 991*5113495bSYour Name 992*5113495bSYour Name/** 993*5113495bSYour Name * \brief Minor Reason Code Attribute 994*5113495bSYour Name */ 995*5113495bSYour Name 996*5113495bSYour NameTLV MinorReasonCode ( TLV_MINOR_REASON_CODE ) ( 1 : 2 ) LSB 997*5113495bSYour Name{ 998*5113495bSYour Name minorReasonCode, 1; 999*5113495bSYour Name} 1000*5113495bSYour Name 1001*5113495bSYour Name 1002*5113495bSYour Name/** 1003*5113495bSYour Name * \brief P2P Capability Attribute 1004*5113495bSYour Name */ 1005*5113495bSYour Name 1006*5113495bSYour NameTLV P2PCapability ( TLV_P2P_CAPABILITY ) ( 1 : 2 ) LSB 1007*5113495bSYour Name{ 1008*5113495bSYour Name deviceCapability, 1; 1009*5113495bSYour Name groupCapability, 1; 1010*5113495bSYour Name} 1011*5113495bSYour Name 1012*5113495bSYour Name 1013*5113495bSYour Name/** 1014*5113495bSYour Name * \brief P2P Device Id Attribute 1015*5113495bSYour Name */ 1016*5113495bSYour Name 1017*5113495bSYour NameTLV P2PDeviceId ( TLV_P2P_DEVICE_ID ) ( 1 : 2 ) LSB 1018*5113495bSYour Name{ 1019*5113495bSYour Name P2PDeviceAddress[6]; 1020*5113495bSYour Name} 1021*5113495bSYour Name 1022*5113495bSYour Name/** 1023*5113495bSYour Name * \brief Listen Channel Attribute 1024*5113495bSYour Name */ 1025*5113495bSYour Name 1026*5113495bSYour NameTLV ListenChannel ( TLV_LISTEN_CHANNEL ) ( 1 : 2 ) LSB 1027*5113495bSYour Name{ 1028*5113495bSYour Name countryString[3]; 1029*5113495bSYour Name regulatoryClass, 1; 1030*5113495bSYour Name channel, 1; 1031*5113495bSYour Name} 1032*5113495bSYour Name 1033*5113495bSYour Name/** 1034*5113495bSYour Name * \brief Extended Listen Attribute 1035*5113495bSYour Name */ 1036*5113495bSYour Name 1037*5113495bSYour NameTLV ExtendedListenTiming ( TLV_EXTENDED_LISTEN_TIMING ) ( 1 : 2 ) LSB 1038*5113495bSYour Name{ 1039*5113495bSYour Name availibilityPeriod, 2; 1040*5113495bSYour Name availibilityInterval, 2; 1041*5113495bSYour Name} 1042*5113495bSYour Name 1043*5113495bSYour Name 1044*5113495bSYour Name/** 1045*5113495bSYour Name * \brief P2P Manageability Attribute 1046*5113495bSYour Name */ 1047*5113495bSYour Name 1048*5113495bSYour NameTLV P2PManageability ( TLV_P2P_MANAGEABILITY ) ( 1 : 2 ) LSB 1049*5113495bSYour Name{ 1050*5113495bSYour Name manageability, 1; 1051*5113495bSYour Name} 1052*5113495bSYour Name 1053*5113495bSYour Name 1054*5113495bSYour Name/** 1055*5113495bSYour Name * \brief Notice of Absence 1056*5113495bSYour Name */ 1057*5113495bSYour Name 1058*5113495bSYour NameTLV NoticeOfAbsence ( TLV_NOTICE_OF_ABSENCE ) ( 1 : 2 ) LSB 1059*5113495bSYour Name{ 1060*5113495bSYour Name index, 1; 1061*5113495bSYour Name CTSWindowOppPS, 1; 1062*5113495bSYour Name NoADesc[0..36]; 1063*5113495bSYour Name} 1064*5113495bSYour Name 1065*5113495bSYour Name/** 1066*5113495bSYour Name * \brief P2P Device Info Attribute 1067*5113495bSYour Name */ 1068*5113495bSYour Name 1069*5113495bSYour NameTLV P2PDeviceInfo ( TLV_P2P_DEVICE_INFO ) ( 1 : 2 ) LSB 1070*5113495bSYour Name{ 1071*5113495bSYour Name P2PDeviceAddress[6]; 1072*5113495bSYour Name configMethod, 2 , FLIPBYTEORDER; 1073*5113495bSYour Name primaryDeviceType[8]; 1074*5113495bSYour Name MANDATORYTLV DeviceName; 1075*5113495bSYour Name} 1076*5113495bSYour Name 1077*5113495bSYour Name 1078*5113495bSYour Name/** 1079*5113495bSYour Name * \brief P2P Group Info Attribute 1080*5113495bSYour Name */ 1081*5113495bSYour Name 1082*5113495bSYour NameTLV P2PGroupInfo ( TLV_P2P_GROUP_INFO ) ( 1 : 2 ) LSB 1083*5113495bSYour Name{ 1084*5113495bSYour Name P2PClientInfoDesc[0..1024]; 1085*5113495bSYour Name} 1086*5113495bSYour Name 1087*5113495bSYour Name 1088*5113495bSYour Name/** 1089*5113495bSYour Name * \brief P2P Interface Attribute 1090*5113495bSYour Name */ 1091*5113495bSYour Name 1092*5113495bSYour NameTLV P2PInterface ( TLV_P2P_INTERFACE ) ( 1 : 2 ) LSB 1093*5113495bSYour Name{ 1094*5113495bSYour Name P2PDeviceAddress[6]; 1095*5113495bSYour Name} 1096*5113495bSYour Name 1097*5113495bSYour Name 1098*5113495bSYour Name/** 1099*5113495bSYour Name * \brief Operating Channel Attribute 1100*5113495bSYour Name */ 1101*5113495bSYour Name 1102*5113495bSYour NameTLV OperatingChannel ( TLV_OPERATING_CHANNEL ) ( 1 : 2 ) LSB 1103*5113495bSYour Name{ 1104*5113495bSYour Name countryString[3]; 1105*5113495bSYour Name regulatoryClass, 1; 1106*5113495bSYour Name channel, 1; 1107*5113495bSYour Name} 1108*5113495bSYour Name 1109*5113495bSYour Name/////////////////////////////////////////////////////////////////////////// 1110*5113495bSYour Name// MBO-OCE ATTR TLVs // 1111*5113495bSYour Name/////////////////////////////////////////////////////////////////////////// 1112*5113495bSYour Name 1113*5113495bSYour NameTLV mbo_ap_cap ( TLV_MBO_AP_CAP_ATTR ) ( 1 : 1 ) LSB 1114*5113495bSYour Name{ 1115*5113495bSYour Name mbo_cap_ind, 1; 1116*5113495bSYour Name} 1117*5113495bSYour Name 1118*5113495bSYour NameTLV non_prefferd_chan_rep ( TLV_NON_PREFERRED_CHAN_REPORT_ATTR ) ( 1 : 1 ) LSB 1119*5113495bSYour Name{ 1120*5113495bSYour Name oper_class, 1; 1121*5113495bSYour Name channel_report[3..254]; 1122*5113495bSYour Name} 1123*5113495bSYour Name 1124*5113495bSYour NameTLV cellular_data_cap ( TLV_CELLULAR_DATA_CAP_ATTR ) ( 1 : 1 ) LSB 1125*5113495bSYour Name{ 1126*5113495bSYour Name cellular_connectivity, 1; 1127*5113495bSYour Name} 1128*5113495bSYour Name 1129*5113495bSYour NameTLV assoc_disallowed ( TLV_ASSOC_DISSALLOWED_ATTR ) ( 1 : 1 ) LSB 1130*5113495bSYour Name{ 1131*5113495bSYour Name reason_code, 1; 1132*5113495bSYour Name} 1133*5113495bSYour Name 1134*5113495bSYour NameTLV cellular_data_con_pref ( TLV_CELLULAR_DATA_CON_PREF_ATTR ) ( 1 : 1 ) LSB 1135*5113495bSYour Name{ 1136*5113495bSYour Name cellular_preference, 1; 1137*5113495bSYour Name} 1138*5113495bSYour Name 1139*5113495bSYour NameTLV transition_reason ( TLV_TRANSITION_REASON_CODE_ATTR ) ( 1 : 1 ) LSB 1140*5113495bSYour Name{ 1141*5113495bSYour Name transition_reason_code, 1; 1142*5113495bSYour Name} 1143*5113495bSYour Name 1144*5113495bSYour NameTLV transition_reject_reason ( TLV_TRANSITION_REJECT_REASON_CODE_ATTR ) ( 1 : 1 ) LSB 1145*5113495bSYour Name{ 1146*5113495bSYour Name transition_reject_code, 1; 1147*5113495bSYour Name} 1148*5113495bSYour Name 1149*5113495bSYour NameTLV assoc_retry_delay ( TLV_ASSOC_RETRY_DELAY_ATTR ) ( 1 : 1 ) LSB 1150*5113495bSYour Name{ 1151*5113495bSYour Name delay, 2; 1152*5113495bSYour Name} 1153*5113495bSYour Name 1154*5113495bSYour Name// OCE Attributes // 1155*5113495bSYour Name 1156*5113495bSYour NameTLV oce_cap ( TLV_OCE_CAP_IND_ATTR ) ( 1 : 1 ) LSB 1157*5113495bSYour Name{ 1158*5113495bSYour Name { 1159*5113495bSYour Name oce_release: 3; 1160*5113495bSYour Name is_sta_cfon : 1; 1161*5113495bSYour Name non_oce_ap_present : 1; 1162*5113495bSYour Name reserved: 3; 1163*5113495bSYour Name } 1164*5113495bSYour Name} 1165*5113495bSYour Name 1166*5113495bSYour NameTLV rssi_assoc_rej ( TLV_RSSI_ASSOC_REJ_ATTR ) ( 1 : 1 ) LSB 1167*5113495bSYour Name{ 1168*5113495bSYour Name delta_rssi, 1; 1169*5113495bSYour Name retry_delay, 1; 1170*5113495bSYour Name} 1171*5113495bSYour Name 1172*5113495bSYour NameTLV reduced_wan_metrics ( TLV_REDUCED_WAN_METRICS_ATTR ) ( 1 : 1 ) LSB 1173*5113495bSYour Name{ 1174*5113495bSYour Name { 1175*5113495bSYour Name downlink_av_cap: 4; 1176*5113495bSYour Name uplink_av_cap : 4; 1177*5113495bSYour Name } 1178*5113495bSYour Name} 1179*5113495bSYour Name 1180*5113495bSYour Name/** 1181*5113495bSYour Name * \brief Vendor Extension 1182*5113495bSYour Name * 1183*5113495bSYour Name * This variable permits vendor extensions in the Wi-Fi Simple 1184*5113495bSYour Name * Configuration TLV framework. The Vendor Extension figure 1185*5113495bSYour Name * illustrates the implementation of vendor extensions. Vendor 1186*5113495bSYour Name * ID is the SMI network management private enterprise code 1187*5113495bSYour Name * 1188*5113495bSYour Name * +-----------+----------------------+ 1189*5113495bSYour Name * | Vendor ID | Vendor Data | 1190*5113495bSYour Name * +-----------+----------------------+ 1191*5113495bSYour Name * |<--- 3 --->|<----- 1 - 1021 ----->| 1192*5113495bSYour Name * 1193*5113495bSYour Name */ 1194*5113495bSYour Name 1195*5113495bSYour NameTLV VendorExtension ( TLV_VENDOR_EXTENSION ) ( 2 : 2 ) MSB 1196*5113495bSYour Name{ 1197*5113495bSYour Name /* 1198*5113495bSYour Name * vendorId is the SMI network management private enterprise code. 1199*5113495bSYour Name * WFA Vendor ID 0x00372A 1200*5113495bSYour Name * 1201*5113495bSYour Name */ 1202*5113495bSYour Name vendorId[ 3 ]; 1203*5113495bSYour Name 1204*5113495bSYour Name /** 1205*5113495bSYour Name * \brief Version2 1206*5113495bSYour Name * 1207*5113495bSYour Name * The Version2 field specifies the version Wi-Fi Simple 1208*5113495bSYour Name * Configuration implemented by the device sending this attribute. 1209*5113495bSYour Name * The one-byte field is broken into a four-bit major part using 1210*5113495bSYour Name * the top MSBs and four-bit minor part using the LSBs. As an example, 1211*5113495bSYour Name * version 3.2 would be 0x32. This subelement was added in the 1212*5113495bSYour Name * specification version 2.0 and if the subelement is not included 1213*5113495bSYour Name * in a message, the transmitter of the message is assumed to 1214*5113495bSYour Name * use version 1.0. 1215*5113495bSYour Name * 1216*5113495bSYour Name */ 1217*5113495bSYour Name OPTIONALTLV TLV Version2 ( TLV_VERSION2 ) ( 1 : 1 ) MSB 1218*5113495bSYour Name { 1219*5113495bSYour Name { 1220*5113495bSYour Name minor: 4; 1221*5113495bSYour Name major: 4; 1222*5113495bSYour Name } 1223*5113495bSYour Name } 1224*5113495bSYour Name /** 1225*5113495bSYour Name * \brief AuthorizedMACs 1226*5113495bSYour Name * 1227*5113495bSYour Name * This subelement contains a list of Enrollee MAC addresses (each 1228*5113495bSYour Name * being six bytes in length) that have been registered to start WSC. 1229*5113495bSYour Name * The AP includes this field in Beacon and Probe Response frames so 1230*5113495bSYour Name * Enrollees can tell if they have been registered to start WSC. There 1231*5113495bSYour Name * may be multiple Enrollees active on the network, but not all of them have 1232*5113495bSYour Name * been registered to start WSC. This element allows an Enrollee to detect 1233*5113495bSYour Name * if they should start WSC with the AP. The AuthorizedMACs field augments 1234*5113495bSYour Name * the use of the Selected Registrar. 1235*5113495bSYour Name * 1236*5113495bSYour Name */ 1237*5113495bSYour Name OPTIONALTLV TLV AuthorizedMACs ( TLV_AUTHORIZED_MAC ) ( 1 : 1 ) MSB 1238*5113495bSYour Name { 1239*5113495bSYour Name mac[6]; 1240*5113495bSYour Name } 1241*5113495bSYour Name 1242*5113495bSYour Name /** 1243*5113495bSYour Name * \brief Request to Enroll 1244*5113495bSYour Name * 1245*5113495bSYour Name * This optional subelement in the WSC IE in Probe Request or M1 indicates 1246*5113495bSYour Name * the desire to enroll in the network by setting its value to TRUE. If the 1247*5113495bSYour Name * Registrar gets this subelement it can use this as a trigger that a device 1248*5113495bSYour Name * wants to enroll (maybe an indication can be shown to the user). The device 1249*5113495bSYour Name * must set it to FALSE after the registration protocol completion. 1250*5113495bSYour Name * 1251*5113495bSYour Name */ 1252*5113495bSYour Name OPTIONALTLV TLV RequestToEnroll( TLV_REQUEST_TO_ENROLL ) ( 1 : 1 ) MSB 1253*5113495bSYour Name { 1254*5113495bSYour Name req, 1; 1255*5113495bSYour Name } 1256*5113495bSYour Name} 1257*5113495bSYour Name 1258*5113495bSYour Name/** 1259*5113495bSYour Name * \brief Requested Device Type 1260*5113495bSYour Name * 1261*5113495bSYour Name * This attribute contains the requested device type of a Wi-Fi 1262*5113495bSYour Name * Direct device. 1263*5113495bSYour Name * 1264*5113495bSYour Name * This attribute allows a device to specify the Primary Device Type 1265*5113495bSYour Name * or the Secondary Device Type of other devices it is interested in. 1266*5113495bSYour Name * Only a device that receives a Probe Request containing a WSC IE with 1267*5113495bSYour Name * this attribute and with a Primary Device Type or Secondary Device Type 1268*5113495bSYour Name * that matches the Requested Device Type will respond with a Probe Response. 1269*5113495bSYour Name * 1270*5113495bSYour Name * Its format and contents is identical to the 'Primary Device Type'. 1271*5113495bSYour Name * 1272*5113495bSYour Name * Both the Category ID and Sub Category ID can be used as a filter. If only 1273*5113495bSYour Name * looking for devices with a certain Category ID, the OUI and Sub Category ID 1274*5113495bSYour Name * fields will have to be set to zero. 1275*5113495bSYour Name * 1276*5113495bSYour Name */ 1277*5113495bSYour NameTLV RequestDeviceType ( TLV_REQUESTED_DEVICE_TYPE ) ( 2 : 2 ) MSB 1278*5113495bSYour Name{ 1279*5113495bSYour Name primary_category, 2; 1280*5113495bSYour Name oui[ 4 ]; 1281*5113495bSYour Name sub_category, 2; 1282*5113495bSYour Name} 1283*5113495bSYour Name 1284*5113495bSYour Name///////////////////////////////////////////////////////////////////////////// 1285*5113495bSYour Name// Information Elements 1286*5113495bSYour Name 1287*5113495bSYour NameIE SSID (EID_SSID) // C.f. Sec. 7.3.2.1 1288*5113495bSYour Name{ 1289*5113495bSYour Name ssid[0..32]; 1290*5113495bSYour Name} 1291*5113495bSYour Name 1292*5113495bSYour NameIE SuppRates (EID_SUPP_RATES) // 7.3.2.2 1293*5113495bSYour Name{ 1294*5113495bSYour Name rates[0..SIR_MAC_MAX_NUMBER_OF_RATES]; 1295*5113495bSYour Name} 1296*5113495bSYour Name 1297*5113495bSYour NameIE FHParamSet (EID_FH_PARAM_SET) // 7.3.2.3 1298*5113495bSYour Name{ 1299*5113495bSYour Name dwell_time, 2; 1300*5113495bSYour Name hop_set, 1; 1301*5113495bSYour Name hop_pattern, 1; 1302*5113495bSYour Name hop_index, 1; 1303*5113495bSYour Name} 1304*5113495bSYour Name 1305*5113495bSYour NameIE DSParams (EID_DS_PARAM_SET) // 7.3.2.4 1306*5113495bSYour Name{ 1307*5113495bSYour Name curr_channel, 1; 1308*5113495bSYour Name} 1309*5113495bSYour Name 1310*5113495bSYour NameIE CFParams (EID_CF_PARAM_SET) // 7.3.2.5 1311*5113495bSYour Name{ 1312*5113495bSYour Name cfp_count, 1; 1313*5113495bSYour Name cfp_period, 1; 1314*5113495bSYour Name cfp_maxduration, 2; 1315*5113495bSYour Name cfp_durremaining, 2; 1316*5113495bSYour Name} 1317*5113495bSYour Name 1318*5113495bSYour NameIE TIM (EID_TIM) // 7.3.2.6 1319*5113495bSYour Name{ 1320*5113495bSYour Name dtim_count, 1; 1321*5113495bSYour Name dtim_period, 1; 1322*5113495bSYour Name bmpctl, 1; 1323*5113495bSYour Name vbmp[1..251]; 1324*5113495bSYour Name} 1325*5113495bSYour Name 1326*5113495bSYour NameIE ChallengeText (EID_CHALLENGE_TEXT) // 7.3.2.8 1327*5113495bSYour Name{ 1328*5113495bSYour Name text[1..253]; 1329*5113495bSYour Name} 1330*5113495bSYour Name 1331*5113495bSYour NameIE RequestedInfo (EID_REQUEST) // 7.3.2.12 1332*5113495bSYour Name{ 1333*5113495bSYour Name requested_eids[0..255]; 1334*5113495bSYour Name} 1335*5113495bSYour Name 1336*5113495bSYour Nameconst EID_BCN_REQ_EXTENDED_INFO = 11; 1337*5113495bSYour NameIE ExtRequestedInfo (EID_BCN_REQ_EXTENDED_INFO) 1338*5113495bSYour Name{ 1339*5113495bSYour Name req_element_id, 1; 1340*5113495bSYour Name req_element_id_ext[0..255]; 1341*5113495bSYour Name} 1342*5113495bSYour Name 1343*5113495bSYour NameIE Country (EID_COUNTRY) // 7.3.2.9 1344*5113495bSYour Name{ 1345*5113495bSYour Name country[3]; 1346*5113495bSYour Name first_triplet[3]; 1347*5113495bSYour Name OPTIONAL more_triplets[3][0..80]; 1348*5113495bSYour Name} 1349*5113495bSYour Name 1350*5113495bSYour NameIE FHParams (EID_FH_PATTERN) // 7.3.2.10 1351*5113495bSYour Name{ 1352*5113495bSYour Name radix, 1; 1353*5113495bSYour Name nchannels, 1; 1354*5113495bSYour Name} 1355*5113495bSYour Name 1356*5113495bSYour NameIE FHPattTable (EID_FH_PATT_TABLE) // 7.3.2.11 1357*5113495bSYour Name{ 1358*5113495bSYour Name flag, 1; 1359*5113495bSYour Name nsets, 1; 1360*5113495bSYour Name modulus, 1; 1361*5113495bSYour Name offset, 1; 1362*5113495bSYour Name randtable[0..251]; 1363*5113495bSYour Name} 1364*5113495bSYour Name 1365*5113495bSYour NameIE ERPInfo (EID_ERP_INFO) // 7.3.2.13 1366*5113495bSYour Name{ 1367*5113495bSYour Name { 1368*5113495bSYour Name non_erp_present : 1; 1369*5113495bSYour Name use_prot: 1; 1370*5113495bSYour Name barker_preamble: 1; 1371*5113495bSYour Name unused: 5; 1372*5113495bSYour Name } 1373*5113495bSYour Name} 1374*5113495bSYour Name 1375*5113495bSYour NameIE ExtSuppRates (EID_EXT_SUPP_RATES) // 7.3.2.14 1376*5113495bSYour Name{ 1377*5113495bSYour Name rates[1..SIR_MAC_MAX_NUMBER_OF_RATES]; 1378*5113495bSYour Name} 1379*5113495bSYour Name 1380*5113495bSYour NameIE PowerConstraints (EID_POWER_CONSTRAINTS) // 7.3.2.15 1381*5113495bSYour Name{ 1382*5113495bSYour Name localPowerConstraints, 1; 1383*5113495bSYour Name} 1384*5113495bSYour Name 1385*5113495bSYour NameIE PowerCaps (EID_POWER_CAPABILITY) // 7.3.2.16 1386*5113495bSYour Name{ 1387*5113495bSYour Name minTxPower, 1; 1388*5113495bSYour Name maxTxPower, 1; 1389*5113495bSYour Name} 1390*5113495bSYour Name 1391*5113495bSYour NameIE TPCRequest (EID_TPC_REQUEST) // 7.3.2.17 1392*5113495bSYour Name{ } 1393*5113495bSYour Name 1394*5113495bSYour NameIE TPCReport (EID_TPC_REPORT) // 7.3.2.18 1395*5113495bSYour Name{ 1396*5113495bSYour Name tx_power, 1; 1397*5113495bSYour Name link_margin, 1; 1398*5113495bSYour Name} 1399*5113495bSYour Name 1400*5113495bSYour NameIE SuppChannels (EID_SUPPORTED_CHANNELS) // 7.2.3.19 1401*5113495bSYour Name{ 1402*5113495bSYour Name bands[2][0..48]; 1403*5113495bSYour Name} 1404*5113495bSYour Name 1405*5113495bSYour NameIE SuppOperatingClasses (EID_SUPPORTED_OPER_CLASSES) 1406*5113495bSYour Name{ 1407*5113495bSYour Name classes[1..32]; 1408*5113495bSYour Name} 1409*5113495bSYour Name 1410*5113495bSYour NameIE ChanSwitchAnn (EID_CHANNEL_SWITCH_ANN) // 7.3.2.20 1411*5113495bSYour Name{ 1412*5113495bSYour Name switchMode, 1; 1413*5113495bSYour Name newChannel, 1; 1414*5113495bSYour Name switchCount, 1; 1415*5113495bSYour Name} 1416*5113495bSYour Name 1417*5113495bSYour NameIE ext_chan_switch_ann (EID_EXT_CHAN_SWITCH) // 8.4.2.55 1418*5113495bSYour Name{ 1419*5113495bSYour Name switch_mode, 1; 1420*5113495bSYour Name new_reg_class, 1; 1421*5113495bSYour Name new_channel, 1; 1422*5113495bSYour Name switch_count, 1; 1423*5113495bSYour Name} 1424*5113495bSYour Name 1425*5113495bSYour NameIE max_chan_switch_time (EID_EXTN_ID_ELEMENT) OUI (0x34) 1426*5113495bSYour Name{ 1427*5113495bSYour Name switch_time[3]; 1428*5113495bSYour Name} 1429*5113495bSYour Name 1430*5113495bSYour NameIE sec_chan_offset_ele (EID_SEC_CHAN_OFFSET) // 7.3.2.20a 1431*5113495bSYour Name{ 1432*5113495bSYour Name secondaryChannelOffset, 1; 1433*5113495bSYour Name} 1434*5113495bSYour Name 1435*5113495bSYour NameIE Quiet (EID_QUIET) // 7.3.2.23 1436*5113495bSYour Name{ 1437*5113495bSYour Name count, 1; 1438*5113495bSYour Name period, 1; 1439*5113495bSYour Name duration, 2; 1440*5113495bSYour Name offset, 2; 1441*5113495bSYour Name} 1442*5113495bSYour Name 1443*5113495bSYour NameIE RSN (EID_RSN) // 7.3.2.25 1444*5113495bSYour Name{ 1445*5113495bSYour Name // The version is 2 octets, and we only support version 1. 1446*5113495bSYour Name version, 2 MUSTBE 1; 1447*5113495bSYour Name // The next four octets will be the Optional Group Cipher Suite 1448*5113495bSYour Name OPTIONAL gp_cipher_suite[4]; 1449*5113495bSYour Name // The IE *may* stop here; if there's any more, we should see two more 1450*5113495bSYour Name // octets giving the number of Pairwise Cipher Suites 1451*5113495bSYour Name OPTIONAL pwise_cipher_suite_count, 2; 1452*5113495bSYour Name // I don't see anything in the Standard limiting the number of Pairwise 1453*5113495bSYour Name // Cypher Suites, other than the maximum length of an IE, which limits us 1454*5113495bSYour Name // to 61. However, that seems needlessly wasteful of space. 1455*5113495bSYour Name pwise_cipher_suites[4][0..6] COUNTIS pwise_cipher_suite_count; 1456*5113495bSYour Name // Optional count of AKM suite selectors 1457*5113495bSYour Name OPTIONAL akm_suite_cnt, 2; 1458*5113495bSYour Name // Again, I see nothing in the Standard explicitly limiting the number of 1459*5113495bSYour Name // AKM suite selectors other than the maximum size of an IE. 1460*5113495bSYour Name akm_suite[4][0..6] COUNTIS akm_suite_cnt; 1461*5113495bSYour Name OPTIONAL RSN_Cap[2]; 1462*5113495bSYour Name // Finally, the IE may contain zero or more PMKIDs: 1463*5113495bSYour Name OPTIONAL pmkid_count, 2; 1464*5113495bSYour Name pmkid[16][0..4] COUNTIS pmkid_count; 1465*5113495bSYour Name OPTIONAL gp_mgmt_cipher_suite[4]; 1466*5113495bSYour Name} 1467*5113495bSYour Name 1468*5113495bSYour NameIE RSNOpaque (EID_RSN) // 7.3.2.25 1469*5113495bSYour Name{ 1470*5113495bSYour Name data[ 0..253 ]; 1471*5113495bSYour Name} 1472*5113495bSYour Name 1473*5113495bSYour NameIE WAPI (EID_WAPI) // 7.3.2.25 1474*5113495bSYour Name{ 1475*5113495bSYour Name // The version is 2 octets, and we only support version 1. 1476*5113495bSYour Name version, 2 MUSTBE 1; 1477*5113495bSYour Name // count of AKM suite selectors 1478*5113495bSYour Name akm_suite_count, 2; 1479*5113495bSYour Name // Again, I see nothing in the Standard explicitly limiting the number of 1480*5113495bSYour Name // AKM suite selectors other than the maximum size of an IE. 1481*5113495bSYour Name akm_suites[4][0..4] COUNTIS akm_suite_count; 1482*5113495bSYour Name // we should see two more 1483*5113495bSYour Name // octets giving the number of Unicast Cipher Suites 1484*5113495bSYour Name unicast_cipher_suite_count, 2; 1485*5113495bSYour Name // I don't see anything in the Standard limiting the number of Pairwise 1486*5113495bSYour Name // Cypher Suites, other than the maximum length of an IE, which limits us 1487*5113495bSYour Name // to 61. However, that seems needlessly wasteful of space. 1488*5113495bSYour Name unicast_cipher_suites[4][0..4] COUNTIS unicast_cipher_suite_count; 1489*5113495bSYour Name // The next four octets will be the Multicast Cipher Suite 1490*5113495bSYour Name multicast_cipher_suite[4]; 1491*5113495bSYour Name // WAPI capabilities 1492*5113495bSYour Name { 1493*5113495bSYour Name preauth: 1; 1494*5113495bSYour Name reserved: 15; 1495*5113495bSYour Name } 1496*5113495bSYour Name // Finally, the IE may contain zero or more BKIDs: 1497*5113495bSYour Name OPTIONAL bkid_count, 2; 1498*5113495bSYour Name bkid[16][0..4] COUNTIS bkid_count; 1499*5113495bSYour Name} 1500*5113495bSYour Name 1501*5113495bSYour NameIE WAPIOpaque (EID_WAPI) // 7.3.2.25 1502*5113495bSYour Name{ 1503*5113495bSYour Name data[ 6..253 ]; 1504*5113495bSYour Name} 1505*5113495bSYour Name 1506*5113495bSYour NameIE QBSSLoad (EID_QBSS_LOAD) // 7.3.2.28 1507*5113495bSYour Name{ 1508*5113495bSYour Name stacount, 2; 1509*5113495bSYour Name chautil, 1; 1510*5113495bSYour Name avail, 2; 1511*5113495bSYour Name} 1512*5113495bSYour Name 1513*5113495bSYour NameIE EDCAParamSet (EID_EDCA_PARAM_SET) // 7.3.2.29 1514*5113495bSYour Name{ 1515*5113495bSYour Name qos, 1; // ToDo: This is a bitfield whose format 1516*5113495bSYour Name // depends on whether this is from an AP 1517*5113495bSYour Name // or a STA, information which I'm not 1518*5113495bSYour Name // sure we have at parse time... 1519*5113495bSYour Name reserved, 1; 1520*5113495bSYour Name { 1521*5113495bSYour Name acbe_aifsn: 4; 1522*5113495bSYour Name acbe_acm: 1; 1523*5113495bSYour Name acbe_aci: 2; 1524*5113495bSYour Name unused1: 1; 1525*5113495bSYour Name } 1526*5113495bSYour Name { 1527*5113495bSYour Name acbe_acwmin: 4; 1528*5113495bSYour Name acbe_acwmax: 4; 1529*5113495bSYour Name } 1530*5113495bSYour Name acbe_txoplimit, 2; 1531*5113495bSYour Name { 1532*5113495bSYour Name acbk_aifsn: 4; 1533*5113495bSYour Name acbk_acm: 1; 1534*5113495bSYour Name acbk_aci: 2; 1535*5113495bSYour Name unused2: 1; 1536*5113495bSYour Name } 1537*5113495bSYour Name { 1538*5113495bSYour Name acbk_acwmin: 4; 1539*5113495bSYour Name acbk_acwmax: 4; 1540*5113495bSYour Name } 1541*5113495bSYour Name acbk_txoplimit, 2; 1542*5113495bSYour Name { 1543*5113495bSYour Name acvi_aifsn: 4; 1544*5113495bSYour Name acvi_acm: 1; 1545*5113495bSYour Name acvi_aci: 2; 1546*5113495bSYour Name unused3: 1; 1547*5113495bSYour Name } 1548*5113495bSYour Name { 1549*5113495bSYour Name acvi_acwmin: 4; 1550*5113495bSYour Name acvi_acwmax: 4; 1551*5113495bSYour Name } 1552*5113495bSYour Name acvi_txoplimit, 2; 1553*5113495bSYour Name { 1554*5113495bSYour Name acvo_aifsn: 4; 1555*5113495bSYour Name acvo_acm: 1; 1556*5113495bSYour Name acvo_aci: 2; 1557*5113495bSYour Name unused4: 1; 1558*5113495bSYour Name } 1559*5113495bSYour Name { 1560*5113495bSYour Name acvo_acwmin: 4; 1561*5113495bSYour Name acvo_acwmax: 4; 1562*5113495bSYour Name } 1563*5113495bSYour Name acvo_txoplimit, 2; 1564*5113495bSYour Name} 1565*5113495bSYour Name 1566*5113495bSYour NameIE TSPEC (EID_TSPEC) // 7.3.2.30 1567*5113495bSYour Name{ 1568*5113495bSYour Name 1569*5113495bSYour Name // TS Info 1570*5113495bSYour Name { 1571*5113495bSYour Name traffic_type: 1; 1572*5113495bSYour Name tsid: 4; 1573*5113495bSYour Name direction: 2; 1574*5113495bSYour Name access_policy: 2; 1575*5113495bSYour Name aggregation: 1; 1576*5113495bSYour Name psb: 1; 1577*5113495bSYour Name user_priority: 3; 1578*5113495bSYour Name tsinfo_ack_pol: 2; 1579*5113495bSYour Name } 1580*5113495bSYour Name { 1581*5113495bSYour Name schedule: 1; 1582*5113495bSYour Name unused: 7; 1583*5113495bSYour Name } 1584*5113495bSYour Name 1585*5113495bSYour Name // Nominal MSDU Size 1586*5113495bSYour Name { 1587*5113495bSYour Name size: 15; 1588*5113495bSYour Name fixed: 1; 1589*5113495bSYour Name } 1590*5113495bSYour Name 1591*5113495bSYour Name max_msdu_size, 2; 1592*5113495bSYour Name min_service_int, 4; 1593*5113495bSYour Name max_service_int, 4; 1594*5113495bSYour Name inactivity_int, 4; 1595*5113495bSYour Name suspension_int, 4; 1596*5113495bSYour Name service_start_time, 4; 1597*5113495bSYour Name min_data_rate, 4; 1598*5113495bSYour Name mean_data_rate, 4; 1599*5113495bSYour Name peak_data_rate, 4; 1600*5113495bSYour Name burst_size, 4; 1601*5113495bSYour Name delay_bound, 4; 1602*5113495bSYour Name min_phy_rate, 4; 1603*5113495bSYour Name surplus_bw_allowance, 2; 1604*5113495bSYour Name medium_time, 2; 1605*5113495bSYour Name 1606*5113495bSYour Name} // End IE TSPEC. 1607*5113495bSYour Name 1608*5113495bSYour NameIE TCLAS (EID_TCLAS) // 7.3.2.31 1609*5113495bSYour Name{ 1610*5113495bSYour Name user_priority, 1; 1611*5113495bSYour Name classifier_type, 1; 1612*5113495bSYour Name classifier_mask, 1; 1613*5113495bSYour Name UNION info (DISCRIMINATOR classifier_type) 1614*5113495bSYour Name { 1615*5113495bSYour Name EthParams (classifier_type IS 0) 1616*5113495bSYour Name { 1617*5113495bSYour Name source[6]; 1618*5113495bSYour Name dest[6]; 1619*5113495bSYour Name type, 2; 1620*5113495bSYour Name } 1621*5113495bSYour Name IpParams (classifier_type IS 1) 1622*5113495bSYour Name { 1623*5113495bSYour Name version, 1; 1624*5113495bSYour Name UNION params (DISCRIMINATOR version) 1625*5113495bSYour Name { 1626*5113495bSYour Name IpV4Params (version IS 4) 1627*5113495bSYour Name { 1628*5113495bSYour Name source[4]; 1629*5113495bSYour Name dest[4]; 1630*5113495bSYour Name src_port, 2; 1631*5113495bSYour Name dest_port, 2; 1632*5113495bSYour Name DSCP, 1; 1633*5113495bSYour Name proto, 1; 1634*5113495bSYour Name reserved, 1; 1635*5113495bSYour Name } 1636*5113495bSYour Name IpV6Params (version IS 6) 1637*5113495bSYour Name { 1638*5113495bSYour Name source[16]; 1639*5113495bSYour Name dest[16]; 1640*5113495bSYour Name src_port, 2; 1641*5113495bSYour Name dest_port, 2; 1642*5113495bSYour Name flow_label[3]; 1643*5113495bSYour Name } 1644*5113495bSYour Name }; 1645*5113495bSYour Name } 1646*5113495bSYour Name Params8021dq (classifier_type IS 2) 1647*5113495bSYour Name { 1648*5113495bSYour Name tag_type, 2; 1649*5113495bSYour Name } 1650*5113495bSYour Name }; 1651*5113495bSYour Name} // End IE TCLASS 1652*5113495bSYour Name 1653*5113495bSYour Nameconst EID_BCN_REPORT_FRAME_BODY = 1; 1654*5113495bSYour NameIE BeaconReportFrmBody (EID_BCN_REPORT_FRAME_BODY) 1655*5113495bSYour Name{ 1656*5113495bSYour Name reportedFields[0..224]; 1657*5113495bSYour Name} 1658*5113495bSYour Name 1659*5113495bSYour Nameconst EID_BCN_REPORT_FRAME_BODY_FRAGMENT_ID = 2; 1660*5113495bSYour NameIE beacon_report_frm_body_fragment_id (EID_BCN_REPORT_FRAME_BODY_FRAGMENT_ID) 1661*5113495bSYour Name{ 1662*5113495bSYour Name // Data 1663*5113495bSYour Name { 1664*5113495bSYour Name beacon_report_id: 8; 1665*5113495bSYour Name fragment_id_number: 7; 1666*5113495bSYour Name more_fragments: 1; 1667*5113495bSYour Name } 1668*5113495bSYour Name} 1669*5113495bSYour Name 1670*5113495bSYour Nameconst EID_BCN_REPORT_LAST_BEACON_REPORT_INDICATION = 164; 1671*5113495bSYour NameIE last_beacon_report_indication (EID_BCN_REPORT_LAST_BEACON_REPORT_INDICATION) 1672*5113495bSYour Name{ 1673*5113495bSYour Name last_fragment, 1; 1674*5113495bSYour Name} 1675*5113495bSYour Name 1676*5113495bSYour Nameconst EID_REPORTING_REASON = 1; 1677*5113495bSYour NameIE reporting_reason (EID_REPORTING_REASON) 1678*5113495bSYour Name{ 1679*5113495bSYour Name { 1680*5113495bSYour Name failed_count: 1; 1681*5113495bSYour Name fcs_error: 1; 1682*5113495bSYour Name multiple_retry: 1; 1683*5113495bSYour Name frame_duplicate: 1; 1684*5113495bSYour Name rts_failure: 1; 1685*5113495bSYour Name ack_failure: 1; 1686*5113495bSYour Name retry: 1; 1687*5113495bSYour Name reserved: 1; 1688*5113495bSYour Name } 1689*5113495bSYour Name} 1690*5113495bSYour Name 1691*5113495bSYour Nameconst SUB_EID_BANDWIDTH_INDICATION = 164; 1692*5113495bSYour NameIE bw_indication (SUB_EID_BANDWIDTH_INDICATION) 1693*5113495bSYour Name{ 1694*5113495bSYour Name { 1695*5113495bSYour Name reserved: 1; 1696*5113495bSYour Name disabled_sub_chan_bitmap_present: 1; 1697*5113495bSYour Name reserved_1: 6; 1698*5113495bSYour Name } 1699*5113495bSYour Name { 1700*5113495bSYour Name channel_width: 3; 1701*5113495bSYour Name reserved_2: 5; 1702*5113495bSYour Name } 1703*5113495bSYour Name ccfs0, 1; 1704*5113495bSYour Name ccfs1, 1; 1705*5113495bSYour Name disabled_sub_chan_bitmap[2][0..1] COUNTIS disabled_sub_chan_bitmap_present; 1706*5113495bSYour Name} 1707*5113495bSYour Name 1708*5113495bSYour Nameconst SUB_EID_WIDE_BW_CHANNEL_SWITCH = 163; 1709*5113495bSYour NameIE wide_bw_chan_switch (SUB_EID_WIDE_BW_CHANNEL_SWITCH) 1710*5113495bSYour Name{ 1711*5113495bSYour Name new_chan_width, 1; 1712*5113495bSYour Name new_center_chan_freq0, 1; 1713*5113495bSYour Name new_center_chan_freq1, 1; 1714*5113495bSYour Name} 1715*5113495bSYour Name 1716*5113495bSYour NameIE MeasurementReport (EID_MEAS_REPORT) // 7.3.2.22 1717*5113495bSYour Name{ 1718*5113495bSYour Name token, 1; 1719*5113495bSYour Name // Measurement Report Mode 1720*5113495bSYour Name { 1721*5113495bSYour Name late: 1; 1722*5113495bSYour Name incapable: 1; 1723*5113495bSYour Name refused: 1; 1724*5113495bSYour Name unused: 5; 1725*5113495bSYour Name } 1726*5113495bSYour Name type, 1; 1727*5113495bSYour Name OPTIONAL UNION report (DISCRIMINATOR type) 1728*5113495bSYour Name { 1729*5113495bSYour Name Basic (type IS 0) // 7.3.2.22.1 1730*5113495bSYour Name { 1731*5113495bSYour Name channel, 1; 1732*5113495bSYour Name meas_start_time, 8; 1733*5113495bSYour Name meas_duration, 2; 1734*5113495bSYour Name // Map 1735*5113495bSYour Name { 1736*5113495bSYour Name bss: 1; 1737*5113495bSYour Name ofdm_preamble: 1; 1738*5113495bSYour Name unid_signal: 1; 1739*5113495bSYour Name rader: 1; 1740*5113495bSYour Name unmeasured: 1; 1741*5113495bSYour Name unused: 3; 1742*5113495bSYour Name } 1743*5113495bSYour Name } 1744*5113495bSYour Name CCA (type IS 1) 1745*5113495bSYour Name { 1746*5113495bSYour Name channel, 1; 1747*5113495bSYour Name meas_start_time, 8; 1748*5113495bSYour Name meas_duration, 2; 1749*5113495bSYour Name cca_busy_fraction, 1; 1750*5113495bSYour Name } 1751*5113495bSYour Name RPIHistogram (type IS 2) 1752*5113495bSYour Name { 1753*5113495bSYour Name channel, 1; 1754*5113495bSYour Name meas_start_time, 8; 1755*5113495bSYour Name meas_duration, 2; 1756*5113495bSYour Name rpi0_density, 1; 1757*5113495bSYour Name rpi1_density, 1; 1758*5113495bSYour Name rpi2_density, 1; 1759*5113495bSYour Name rpi3_density, 1; 1760*5113495bSYour Name rpi4_density, 1; 1761*5113495bSYour Name rpi5_density, 1; 1762*5113495bSYour Name rpi6_density, 1; 1763*5113495bSYour Name rpi7_density, 1; 1764*5113495bSYour Name } 1765*5113495bSYour Name channel_load_report (type IS 3) 1766*5113495bSYour Name { 1767*5113495bSYour Name op_class, 1; 1768*5113495bSYour Name channel, 1; 1769*5113495bSYour Name meas_start_time, 8; 1770*5113495bSYour Name meas_duration, 2; 1771*5113495bSYour Name chan_load, 1; 1772*5113495bSYour Name OPTIE wide_bw_chan_switch; 1773*5113495bSYour Name OPTIE bw_indication; 1774*5113495bSYour Name } 1775*5113495bSYour Name Beacon (type IS 5) 1776*5113495bSYour Name { 1777*5113495bSYour Name regClass, 1; 1778*5113495bSYour Name channel, 1; 1779*5113495bSYour Name meas_start_time, 8; 1780*5113495bSYour Name meas_duration, 2; 1781*5113495bSYour Name // reported_frame_info, 1782*5113495bSYour Name { 1783*5113495bSYour Name condensed_PHY: 7; 1784*5113495bSYour Name reported_frame_type: 1; 1785*5113495bSYour Name } 1786*5113495bSYour Name RCPI, 1; 1787*5113495bSYour Name RSNI, 1; 1788*5113495bSYour Name BSSID[6]; 1789*5113495bSYour Name antenna_id, 1; 1790*5113495bSYour Name parent_TSF, 4; 1791*5113495bSYour Name OPTIE BeaconReportFrmBody; 1792*5113495bSYour Name OPTIE beacon_report_frm_body_fragment_id; 1793*5113495bSYour Name OPTIE last_beacon_report_indication; 1794*5113495bSYour Name //IE vendor_specific 1795*5113495bSYour Name } 1796*5113495bSYour Name sta_stats (type IS 7) 1797*5113495bSYour Name { 1798*5113495bSYour Name meas_duration, 2; 1799*5113495bSYour Name group_id, 1; 1800*5113495bSYour Name UNION statsgroupdata (DISCRIMINATOR group_id) 1801*5113495bSYour Name { 1802*5113495bSYour Name dot11_counter_stats (group_id IS 0) 1803*5113495bSYour Name { 1804*5113495bSYour Name transmitted_fragment_count, 4; 1805*5113495bSYour Name group_transmitted_frame_count, 4; 1806*5113495bSYour Name failed_count, 4; 1807*5113495bSYour Name received_fragment_count, 4; 1808*5113495bSYour Name group_received_frame_count, 4; 1809*5113495bSYour Name fcs_error_count, 4; 1810*5113495bSYour Name transmitted_frame_count, 4; 1811*5113495bSYour Name } 1812*5113495bSYour Name dot11_mac_stats (group_id IS 1) 1813*5113495bSYour Name { 1814*5113495bSYour Name retry_count, 4; 1815*5113495bSYour Name multiple_retry_count, 4; 1816*5113495bSYour Name frame_duplicate_count, 4; 1817*5113495bSYour Name rts_success_count, 4; 1818*5113495bSYour Name rts_failure_count, 4; 1819*5113495bSYour Name ack_failure_count, 4; 1820*5113495bSYour Name } 1821*5113495bSYour Name dot11_qos_counter (group_id IS 2) 1822*5113495bSYour Name { 1823*5113495bSYour Name qos_transmitted_fragment_count, 4; 1824*5113495bSYour Name qos_failed_count, 4; 1825*5113495bSYour Name qos_retry_count, 4; 1826*5113495bSYour Name qos_multiple_retry_count, 4; 1827*5113495bSYour Name qos_frame_duplicate_count, 4; 1828*5113495bSYour Name qos_rts_success_count, 4; 1829*5113495bSYour Name qos_rts_failure_count, 4; 1830*5113495bSYour Name qos_ack_failure_count, 4; 1831*5113495bSYour Name qos_received_fragment_count, 4; 1832*5113495bSYour Name qos_transmitted_frame_count, 4; 1833*5113495bSYour Name qos_discarded_frame_count, 4; 1834*5113495bSYour Name qos_mpdus_received_count, 4; 1835*5113495bSYour Name qos_retries_received_count, 4; 1836*5113495bSYour Name } 1837*5113495bSYour Name dot11_bss_average_access_delay (group_id IS 10) 1838*5113495bSYour Name { 1839*5113495bSYour Name ap_average_access_delay, 1; 1840*5113495bSYour Name average_access_delay_besteffort, 1; 1841*5113495bSYour Name average_access_delay_background, 1; 1842*5113495bSYour Name average_access_delay_video, 1; 1843*5113495bSYour Name average_access_delay_voice, 1; 1844*5113495bSYour Name station_count, 2; 1845*5113495bSYour Name channel_utilization, 1; 1846*5113495bSYour Name } 1847*5113495bSYour Name }; 1848*5113495bSYour Name OPTIE reporting_reason; 1849*5113495bSYour Name } 1850*5113495bSYour Name 1851*5113495bSYour Name }; 1852*5113495bSYour Name} 1853*5113495bSYour Name 1854*5113495bSYour NameIE TSDelay (EID_TS_DELAY) // 7.3.2.32 1855*5113495bSYour Name{ 1856*5113495bSYour Name delay, 4; 1857*5113495bSYour Name} 1858*5113495bSYour Name 1859*5113495bSYour NameIE TCLASSPROC (EID_TCLASS_PROC) // 7.3.2.33 1860*5113495bSYour Name{ 1861*5113495bSYour Name processing, 1; 1862*5113495bSYour Name} 1863*5113495bSYour Name 1864*5113495bSYour NameIE Schedule (EID_SCHEDULE) // 7.3.2.34 1865*5113495bSYour Name{ 1866*5113495bSYour Name { 1867*5113495bSYour Name aggregation: 1; 1868*5113495bSYour Name tsid: 4; 1869*5113495bSYour Name direction: 2; 1870*5113495bSYour Name reserved: 9; 1871*5113495bSYour Name } 1872*5113495bSYour Name service_start_time, 4; 1873*5113495bSYour Name service_interval, 4; 1874*5113495bSYour Name max_service_dur, 2; 1875*5113495bSYour Name spec_interval, 2; 1876*5113495bSYour Name} 1877*5113495bSYour Name 1878*5113495bSYour NameIE QOSCapsAp (EID_QOS_CAPABILITY) // 7.3.2.35 1879*5113495bSYour Name{ 1880*5113495bSYour Name { 1881*5113495bSYour Name count: 4; 1882*5113495bSYour Name qack: 1; 1883*5113495bSYour Name qreq: 1; 1884*5113495bSYour Name txopreq: 1; 1885*5113495bSYour Name reserved: 1; 1886*5113495bSYour Name } 1887*5113495bSYour Name} 1888*5113495bSYour Name 1889*5113495bSYour NameIE QOSCapsStation (EID_QOS_CAPABILITY) // 7.3.2.35 1890*5113495bSYour Name{ 1891*5113495bSYour Name { 1892*5113495bSYour Name acvo_uapsd: 1; 1893*5113495bSYour Name acvi_uapsd: 1; 1894*5113495bSYour Name acbk_uapsd: 1; 1895*5113495bSYour Name acbe_uapsd: 1; 1896*5113495bSYour Name qack: 1; 1897*5113495bSYour Name max_sp_length: 2; 1898*5113495bSYour Name more_data_ack: 1; 1899*5113495bSYour Name } 1900*5113495bSYour Name} 1901*5113495bSYour Name 1902*5113495bSYour NameIE LinkIdentifier (EID_LINK_IDENTIFIER) // 7.3.2.62 1903*5113495bSYour Name{ 1904*5113495bSYour Name bssid[6]; 1905*5113495bSYour Name InitStaAddr[6]; 1906*5113495bSYour Name RespStaAddr[6]; 1907*5113495bSYour Name} 1908*5113495bSYour Name 1909*5113495bSYour NameIE WPA (EID_VENDOR_SPECIFIC) OUI (0x00, 0x50, 0xF2, 0x01) 1910*5113495bSYour Name{ 1911*5113495bSYour Name // This IE's first two octets should be interpreted as a version number; 1912*5113495bSYour Name // we only support version 1. 1913*5113495bSYour Name version, 2 MUSTBE 1; 1914*5113495bSYour Name // A four-octet Multicast Cipher may or may not appear next (hence the 1915*5113495bSYour Name // OPTIONAL keyword) 1916*5113495bSYour Name OPTIONAL multicast_cipher[4]; 1917*5113495bSYour Name // Optional Unicast Cipher count 1918*5113495bSYour Name OPTIONAL unicast_cipher_count, 2; 1919*5113495bSYour Name // Next comes an array of four-octet Cipher Suite selectors; the COUNTIS 1920*5113495bSYour Name // clause indicates that the actual number of selectors seen is in the 1921*5113495bSYour Name // member 'unicast_cipher_count'. 1922*5113495bSYour Name unicast_ciphers[4][0..4] COUNTIS unicast_cipher_count; 1923*5113495bSYour Name // (Optional) Authentication suites: 1924*5113495bSYour Name OPTIONAL auth_suite_count, 2; 1925*5113495bSYour Name auth_suites[4][0..4] COUNTIS auth_suite_count; 1926*5113495bSYour Name // This field is declared optional as per bugs 15234, 14755, & 14991. 1927*5113495bSYour Name OPTIONAL caps, 2; 1928*5113495bSYour Name} 1929*5113495bSYour Name 1930*5113495bSYour NameIE WPAOpaque (EID_VENDOR_SPECIFIC) OUI (0x00, 0x50, 0xF2, 0x01) 1931*5113495bSYour Name{ 1932*5113495bSYour Name data[ 2..249 ]; 1933*5113495bSYour Name} 1934*5113495bSYour Name 1935*5113495bSYour NameIE WMMInfoStation (EID_VENDOR_SPECIFIC) OUI(0x00, 0x50, 0xF2, 0x02, 0x00) 1936*5113495bSYour Name{ 1937*5113495bSYour Name // This IE contains the QoS Info field when sent from WMM Station 1938*5113495bSYour Name version, 1; 1939*5113495bSYour Name { 1940*5113495bSYour Name acvo_uapsd: 1; 1941*5113495bSYour Name acvi_uapsd: 1; 1942*5113495bSYour Name acbk_uapsd: 1; 1943*5113495bSYour Name acbe_uapsd: 1; 1944*5113495bSYour Name reserved1: 1; 1945*5113495bSYour Name max_sp_length: 2; 1946*5113495bSYour Name reserved2: 1; 1947*5113495bSYour Name } 1948*5113495bSYour Name} 1949*5113495bSYour Name 1950*5113495bSYour NameIE WMMInfoAp (EID_VENDOR_SPECIFIC) OUI(0x00, 0x50, 0xF2, 0x02, 0x00) 1951*5113495bSYour Name{ 1952*5113495bSYour Name // This IE contains the QoS Info field when sent from WMM AP 1953*5113495bSYour Name version, 1; 1954*5113495bSYour Name { 1955*5113495bSYour Name param_set_count: 4; 1956*5113495bSYour Name reserved: 3; 1957*5113495bSYour Name uapsd: 1; 1958*5113495bSYour Name } 1959*5113495bSYour Name} 1960*5113495bSYour Name 1961*5113495bSYour Name 1962*5113495bSYour NameIE WMMParams (EID_VENDOR_SPECIFIC) OUI(0x00, 0x50, 0xF2, 0x02, 0x01) 1963*5113495bSYour Name{ 1964*5113495bSYour Name version, 1 MUSTBE 1; 1965*5113495bSYour Name qosInfo, 1; // ToDo: This is actually a 1966*5113495bSYour Name // bitfield, but it's format 1967*5113495bSYour Name // varies depending on whether 1968*5113495bSYour Name // the sender is a STA or AP... 1969*5113495bSYour Name reserved2, 1; 1970*5113495bSYour Name { 1971*5113495bSYour Name acbe_aifsn: 4; 1972*5113495bSYour Name acbe_acm: 1; 1973*5113495bSYour Name acbe_aci: 2; 1974*5113495bSYour Name unused1: 1; 1975*5113495bSYour Name } 1976*5113495bSYour Name { 1977*5113495bSYour Name acbe_acwmin: 4; 1978*5113495bSYour Name acbe_acwmax: 4; 1979*5113495bSYour Name } 1980*5113495bSYour Name acbe_txoplimit, 2; 1981*5113495bSYour Name { 1982*5113495bSYour Name acbk_aifsn: 4; 1983*5113495bSYour Name acbk_acm: 1; 1984*5113495bSYour Name acbk_aci: 2; 1985*5113495bSYour Name unused2: 1; 1986*5113495bSYour Name } 1987*5113495bSYour Name { 1988*5113495bSYour Name acbk_acwmin: 4; 1989*5113495bSYour Name acbk_acwmax: 4; 1990*5113495bSYour Name } 1991*5113495bSYour Name acbk_txoplimit, 2; 1992*5113495bSYour Name { 1993*5113495bSYour Name acvi_aifsn: 4; 1994*5113495bSYour Name acvi_acm: 1; 1995*5113495bSYour Name acvi_aci: 2; 1996*5113495bSYour Name unused3: 1; 1997*5113495bSYour Name } 1998*5113495bSYour Name { 1999*5113495bSYour Name acvi_acwmin: 4; 2000*5113495bSYour Name acvi_acwmax: 4; 2001*5113495bSYour Name } 2002*5113495bSYour Name acvi_txoplimit, 2; 2003*5113495bSYour Name { 2004*5113495bSYour Name acvo_aifsn: 4; 2005*5113495bSYour Name acvo_acm: 1; 2006*5113495bSYour Name acvo_aci: 2; 2007*5113495bSYour Name unused4: 1; 2008*5113495bSYour Name } 2009*5113495bSYour Name { 2010*5113495bSYour Name acvo_acwmin: 4; 2011*5113495bSYour Name acvo_acwmax: 4; 2012*5113495bSYour Name } 2013*5113495bSYour Name acvo_txoplimit, 2; 2014*5113495bSYour Name} 2015*5113495bSYour Name 2016*5113495bSYour NameIE WMMTSPEC (EID_VENDOR_SPECIFIC) OUI (0x00, 0x50, 0xf2, 0x02, 0x02) 2017*5113495bSYour Name{ 2018*5113495bSYour Name version, 1 MUSTBE 1; 2019*5113495bSYour Name 2020*5113495bSYour Name // TS Info 2021*5113495bSYour Name { 2022*5113495bSYour Name traffic_type: 1; 2023*5113495bSYour Name tsid: 4; 2024*5113495bSYour Name direction: 2; 2025*5113495bSYour Name access_policy: 2; 2026*5113495bSYour Name aggregation: 1; 2027*5113495bSYour Name psb: 1; 2028*5113495bSYour Name user_priority: 3; 2029*5113495bSYour Name tsinfo_ack_pol: 2; 2030*5113495bSYour Name } 2031*5113495bSYour Name { 2032*5113495bSYour Name tsinfo_rsvd: 7; 2033*5113495bSYour Name burst_size_defn: 1; 2034*5113495bSYour Name } 2035*5113495bSYour Name 2036*5113495bSYour Name // Nominal MSDU Size 2037*5113495bSYour Name { 2038*5113495bSYour Name size: 15; 2039*5113495bSYour Name fixed: 1; 2040*5113495bSYour Name } 2041*5113495bSYour Name 2042*5113495bSYour Name max_msdu_size, 2; 2043*5113495bSYour Name min_service_int, 4; 2044*5113495bSYour Name max_service_int, 4; 2045*5113495bSYour Name inactivity_int, 4; 2046*5113495bSYour Name suspension_int, 4; 2047*5113495bSYour Name service_start_time, 4; 2048*5113495bSYour Name min_data_rate, 4; 2049*5113495bSYour Name mean_data_rate, 4; 2050*5113495bSYour Name peak_data_rate, 4; 2051*5113495bSYour Name burst_size, 4; 2052*5113495bSYour Name delay_bound, 4; 2053*5113495bSYour Name min_phy_rate, 4; 2054*5113495bSYour Name surplus_bw_allowance, 2; 2055*5113495bSYour Name medium_time, 2; 2056*5113495bSYour Name 2057*5113495bSYour Name} // End IE WMMTSpec. 2058*5113495bSYour Name 2059*5113495bSYour NameIE WMMCaps (EID_VENDOR_SPECIFIC) OUI (0x00, 0x50, 0xF2, 0x02, 0x05) 2060*5113495bSYour Name{ 2061*5113495bSYour Name version, 1 MUSTBE 1; 2062*5113495bSYour Name { 2063*5113495bSYour Name reserved: 4; 2064*5113495bSYour Name qack: 1; 2065*5113495bSYour Name queue_request: 1; 2066*5113495bSYour Name txop_request: 1; 2067*5113495bSYour Name more_ack: 1; 2068*5113495bSYour Name } 2069*5113495bSYour Name} 2070*5113495bSYour Name 2071*5113495bSYour NameIE WMMTCLAS (EID_VENDOR_SPECIFIC) OUI (0x00, 0x50, 0xF2, 0x02, 0x06) 2072*5113495bSYour Name{ 2073*5113495bSYour Name version, 1 MUSTBE 1; 2074*5113495bSYour Name 2075*5113495bSYour Name user_priority, 1; 2076*5113495bSYour Name classifier_type, 1; 2077*5113495bSYour Name classifier_mask, 1; 2078*5113495bSYour Name UNION info (DISCRIMINATOR classifier_type) 2079*5113495bSYour Name { 2080*5113495bSYour Name EthParams (classifier_type IS 0) 2081*5113495bSYour Name { 2082*5113495bSYour Name source[6]; 2083*5113495bSYour Name dest[6]; 2084*5113495bSYour Name type, 2; 2085*5113495bSYour Name } 2086*5113495bSYour Name IpParams (classifier_type IS 1) 2087*5113495bSYour Name { 2088*5113495bSYour Name version, 1; 2089*5113495bSYour Name UNION params (DISCRIMINATOR version) 2090*5113495bSYour Name { 2091*5113495bSYour Name IpV4Params (version IS 4) 2092*5113495bSYour Name { 2093*5113495bSYour Name source[4]; 2094*5113495bSYour Name dest[4]; 2095*5113495bSYour Name src_port, 2; 2096*5113495bSYour Name dest_port, 2; 2097*5113495bSYour Name DSCP, 1; 2098*5113495bSYour Name proto, 1; 2099*5113495bSYour Name reserved, 1; 2100*5113495bSYour Name } 2101*5113495bSYour Name IpV6Params (version IS 6) 2102*5113495bSYour Name { 2103*5113495bSYour Name source[16]; 2104*5113495bSYour Name dest[16]; 2105*5113495bSYour Name src_port, 2; 2106*5113495bSYour Name dest_port, 2; 2107*5113495bSYour Name flow_label[3]; 2108*5113495bSYour Name } 2109*5113495bSYour Name }; 2110*5113495bSYour Name } 2111*5113495bSYour Name Params8021dq (classifier_type IS 2) 2112*5113495bSYour Name { 2113*5113495bSYour Name tag_type, 2; 2114*5113495bSYour Name } 2115*5113495bSYour Name }; 2116*5113495bSYour Name 2117*5113495bSYour Name} 2118*5113495bSYour Name 2119*5113495bSYour NameIE WMMTCLASPROC (EID_VENDOR_SPECIFIC) OUI (0x00, 0x50, 0xF2, 0x02, 0x07) 2120*5113495bSYour Name{ 2121*5113495bSYour Name version, 1 MUSTBE 1; 2122*5113495bSYour Name processing, 1; 2123*5113495bSYour Name} 2124*5113495bSYour Name 2125*5113495bSYour NameIE WMMTSDelay (EID_VENDOR_SPECIFIC) OUI (0x00, 0x50, 0xF2, 0x02, 0x08) 2126*5113495bSYour Name{ 2127*5113495bSYour Name version, 1 MUSTBE 1; 2128*5113495bSYour Name delay, 4; 2129*5113495bSYour Name} 2130*5113495bSYour Name 2131*5113495bSYour NameIE WMMSchedule (EID_VENDOR_SPECIFIC) OUI (0x00, 0x50, 0xF2, 0x02, 0x09) 2132*5113495bSYour Name{ 2133*5113495bSYour Name version, 1 MUSTBE 1; 2134*5113495bSYour Name 2135*5113495bSYour Name { 2136*5113495bSYour Name aggregation: 1; 2137*5113495bSYour Name tsid: 4; 2138*5113495bSYour Name direction: 2; 2139*5113495bSYour Name reserved: 9; 2140*5113495bSYour Name } 2141*5113495bSYour Name 2142*5113495bSYour Name service_start_time, 4; 2143*5113495bSYour Name service_interval, 4; 2144*5113495bSYour Name max_service_dur, 2; 2145*5113495bSYour Name spec_interval, 2; 2146*5113495bSYour Name} 2147*5113495bSYour Name 2148*5113495bSYour NameIE ESERadMgmtCap (EID_VENDOR_SPECIFIC) OUI (0x00, 0x40, 0x96, 0x01) 2149*5113495bSYour Name{ 2150*5113495bSYour Name 2151*5113495bSYour Name mgmt_state, 1; 2152*5113495bSYour Name 2153*5113495bSYour Name { 2154*5113495bSYour Name mbssid_mask: 3; 2155*5113495bSYour Name reserved: 5; 2156*5113495bSYour Name } 2157*5113495bSYour Name 2158*5113495bSYour Name} 2159*5113495bSYour Name 2160*5113495bSYour NameIE Vendor1IE (EID_VENDOR_SPECIFIC) OUI (0x00, 0x10, 0x18) 2161*5113495bSYour Name{ 2162*5113495bSYour Name} 2163*5113495bSYour Name 2164*5113495bSYour NameIE Vendor3IE (EID_VENDOR_SPECIFIC) OUI (0x00, 0x16, 0x32) 2165*5113495bSYour Name{ 2166*5113495bSYour Name} 2167*5113495bSYour Name 2168*5113495bSYour NameIE hs20vendor_ie (EID_VENDOR_SPECIFIC) OUI (0x50, 0x6F, 0x9A, 0x10) 2169*5113495bSYour Name{ 2170*5113495bSYour Name /* hotspot_configurations */ 2171*5113495bSYour Name { 2172*5113495bSYour Name dgaf_dis: 1; 2173*5113495bSYour Name hs_id_present: 2; 2174*5113495bSYour Name reserved: 1; 2175*5113495bSYour Name release_num: 4; 2176*5113495bSYour Name } 2177*5113495bSYour Name OPTIONAL UNION hs_id (DISCRIMINATOR hs_id_present) 2178*5113495bSYour Name { 2179*5113495bSYour Name pps_mo (hs_id_present IS 1) 2180*5113495bSYour Name { 2181*5113495bSYour Name pps_mo_id, 2; 2182*5113495bSYour Name } 2183*5113495bSYour Name anqp_domain (hs_id_present IS 2) 2184*5113495bSYour Name { 2185*5113495bSYour Name anqp_domain_id, 2; 2186*5113495bSYour Name } 2187*5113495bSYour Name }; 2188*5113495bSYour Name} 2189*5113495bSYour Name 2190*5113495bSYour NameIE osen_ie (EID_VENDOR_SPECIFIC) OUI (0x50, 0x6F, 0x9A, 0x12) 2191*5113495bSYour Name{ 2192*5113495bSYour Name data[0..255]; 2193*5113495bSYour Name} 2194*5113495bSYour Name 2195*5113495bSYour NameIE roaming_consortium_sel (EID_VENDOR_SPECIFIC) OUI (0x50, 0x6F, 0x9A, 0x1d) 2196*5113495bSYour Name{ 2197*5113495bSYour Name data[0..255]; 2198*5113495bSYour Name} 2199*5113495bSYour Name 2200*5113495bSYour NameIE QComVendorIE (EID_VENDOR_SPECIFIC) OUI (0x00, 0xA0, 0xC6) 2201*5113495bSYour Name{ 2202*5113495bSYour Name type, 1; 2203*5113495bSYour Name channel, 1; 2204*5113495bSYour Name} 2205*5113495bSYour Name 2206*5113495bSYour NameIE ESETrafStrmMet (EID_VENDOR_SPECIFIC) OUI (0x00, 0x40, 0x96, 0x07) 2207*5113495bSYour Name{ 2208*5113495bSYour Name tsid, 1; 2209*5113495bSYour Name state, 1; 2210*5113495bSYour Name msmt_interval, 2; 2211*5113495bSYour Name} 2212*5113495bSYour Name 2213*5113495bSYour NameIE ESETrafStrmRateSet (EID_VENDOR_SPECIFIC) OUI (0x00, 0x40, 0x96, 0x08) 2214*5113495bSYour Name{ 2215*5113495bSYour Name tsid, 1; 2216*5113495bSYour Name tsrates[0..8]; 2217*5113495bSYour Name} 2218*5113495bSYour Name 2219*5113495bSYour NameIE ESEVersion (EID_VENDOR_SPECIFIC) OUI (0x00, 0x40, 0x96, 0x03) 2220*5113495bSYour Name{ 2221*5113495bSYour Name version, 1; 2222*5113495bSYour Name} 2223*5113495bSYour Name 2224*5113495bSYour NameIE ESETxmitPower (EID_ESE_SPECIFIC) OUI (0x00, 0x40, 0x96, 0x00) 2225*5113495bSYour Name{ 2226*5113495bSYour Name power_limit, 1; 2227*5113495bSYour Name reserved, 1; 2228*5113495bSYour Name} 2229*5113495bSYour Name 2230*5113495bSYour NameIE ESECckmOpaque (EID_ESE_CCKM_SPECIFIC) OUI (0x00, 0x40, 0x96, 0x00) 2231*5113495bSYour Name{ 2232*5113495bSYour Name data[ 6..20 ]; 2233*5113495bSYour Name} 2234*5113495bSYour Name 2235*5113495bSYour NameIE RRMEnabledCap (EID_RRM_ENABLED_CAPS) 2236*5113495bSYour Name{ 2237*5113495bSYour Name //Capability bitmap 2238*5113495bSYour Name { 2239*5113495bSYour Name LinkMeasurement: 1; 2240*5113495bSYour Name NeighborRpt: 1; 2241*5113495bSYour Name parallel: 1; 2242*5113495bSYour Name repeated: 1; 2243*5113495bSYour Name BeaconPassive: 1; 2244*5113495bSYour Name BeaconActive: 1; 2245*5113495bSYour Name BeaconTable: 1; 2246*5113495bSYour Name BeaconRepCond: 1; 2247*5113495bSYour Name } 2248*5113495bSYour Name { 2249*5113495bSYour Name FrameMeasurement: 1; 2250*5113495bSYour Name ChannelLoad: 1; 2251*5113495bSYour Name NoiseHistogram: 1; 2252*5113495bSYour Name statistics: 1; 2253*5113495bSYour Name LCIMeasurement: 1; 2254*5113495bSYour Name LCIAzimuth: 1; 2255*5113495bSYour Name TCMCapability: 1; 2256*5113495bSYour Name triggeredTCM: 1; 2257*5113495bSYour Name } 2258*5113495bSYour Name { 2259*5113495bSYour Name APChanReport: 1; 2260*5113495bSYour Name RRMMIBEnabled: 1; 2261*5113495bSYour Name operatingChanMax: 3; 2262*5113495bSYour Name nonOperatinChanMax: 3; 2263*5113495bSYour Name } 2264*5113495bSYour Name { 2265*5113495bSYour Name MeasurementPilot: 3; 2266*5113495bSYour Name MeasurementPilotEnabled: 1; 2267*5113495bSYour Name NeighborTSFOffset: 1; 2268*5113495bSYour Name RCPIMeasurement: 1; 2269*5113495bSYour Name RSNIMeasurement: 1; 2270*5113495bSYour Name BssAvgAccessDelay: 1; 2271*5113495bSYour Name } 2272*5113495bSYour Name { 2273*5113495bSYour Name BSSAvailAdmission: 1; 2274*5113495bSYour Name AntennaInformation: 1; 2275*5113495bSYour Name fine_time_meas_rpt: 1; 2276*5113495bSYour Name lci_capability: 1; 2277*5113495bSYour Name reserved: 4; 2278*5113495bSYour Name } 2279*5113495bSYour Name} 2280*5113495bSYour Name 2281*5113495bSYour NameIE MeasurementPilot (EID_RRM_MEAS_PILOT_TX_INFO) 2282*5113495bSYour Name{ 2283*5113495bSYour Name measurementPilot, 1; 2284*5113495bSYour Name vendorSpecific[0..255]; //Should be an IE. But currently only one level of nesting allowed. Can ignore for now. 2285*5113495bSYour Name} 2286*5113495bSYour Name 2287*5113495bSYour NameIE MultiBssid (EID_MULTIPLE_BSSID) 2288*5113495bSYour Name{ 2289*5113495bSYour Name maxBSSIDIndicator, 1; 2290*5113495bSYour Name vendorSpecific[0..255]; 2291*5113495bSYour Name} 2292*5113495bSYour Name 2293*5113495bSYour NameIE OBSSScanParameters (EID_OBSS_SCAN_PARAMETERS) 2294*5113495bSYour Name{ 2295*5113495bSYour Name obssScanPassiveDwell, 2; 2296*5113495bSYour Name obssScanActiveDwell, 2; 2297*5113495bSYour Name bssChannelWidthTriggerScanInterval, 2; 2298*5113495bSYour Name obssScanPassiveTotalPerChannel, 2; 2299*5113495bSYour Name obssScanActiveTotalPerChannel, 2; 2300*5113495bSYour Name bssWidthChannelTransitionDelayFactor, 2; 2301*5113495bSYour Name obssScanActivityThreshold, 2; 2302*5113495bSYour Name} 2303*5113495bSYour Name 2304*5113495bSYour NameIE ht2040_bss_coexistence (EID_20_40_BSS_COEXISTENCE) 2305*5113495bSYour Name{ 2306*5113495bSYour Name // 20/40 BSS Coexistence Information 2307*5113495bSYour Name { 2308*5113495bSYour Name info_request: 1; 2309*5113495bSYour Name forty_mhz_intolerant: 1; 2310*5113495bSYour Name twenty_mhz_bsswidth_req: 1; 2311*5113495bSYour Name obss_scan_exemption_req: 1; 2312*5113495bSYour Name obss_scan_exemption_grant: 1; 2313*5113495bSYour Name unused: 3; 2314*5113495bSYour Name } 2315*5113495bSYour Name} 2316*5113495bSYour Name 2317*5113495bSYour NameIE ht2040_bss_intolerant_report (EID_20_40_BSS_INTOLERANT_REPORT) 2318*5113495bSYour Name{ 2319*5113495bSYour Name operating_class, 1; 2320*5113495bSYour Name channel_list[0..50]; 2321*5113495bSYour Name} 2322*5113495bSYour Name 2323*5113495bSYour Nameconst EID_RRM_NBR_RPT_TSF = 1; 2324*5113495bSYour Nameconst EID_RRM_NBR_CD_COUNTRY = 2; 2325*5113495bSYour Name 2326*5113495bSYour NameIE TSFInfo (EID_RRM_NBR_RPT_TSF) 2327*5113495bSYour Name{ 2328*5113495bSYour Name TsfOffset, 2; 2329*5113495bSYour Name BeaconIntvl, 2; 2330*5113495bSYour Name} 2331*5113495bSYour NameIE CondensedCountryStr (EID_RRM_NBR_CD_COUNTRY) 2332*5113495bSYour Name{ 2333*5113495bSYour Name countryStr[2]; 2334*5113495bSYour Name} 2335*5113495bSYour Name 2336*5113495bSYour NameIE NeighborReport (EID_NEIGHBOR_REPORT) 2337*5113495bSYour Name{ 2338*5113495bSYour Name bssid[6]; 2339*5113495bSYour Name //Bssid Info 2340*5113495bSYour Name { 2341*5113495bSYour Name APReachability: 2; 2342*5113495bSYour Name Security: 1; 2343*5113495bSYour Name KeyScope: 1; 2344*5113495bSYour Name //Capabilities 2345*5113495bSYour Name SpecMgmtCap: 1; 2346*5113495bSYour Name QosCap: 1; 2347*5113495bSYour Name apsd: 1; 2348*5113495bSYour Name rrm: 1; 2349*5113495bSYour Name } 2350*5113495bSYour Name //Capabilities contd. 2351*5113495bSYour Name { 2352*5113495bSYour Name DelayedBA: 1; 2353*5113495bSYour Name ImmBA: 1; 2354*5113495bSYour Name //Capabilities end. 2355*5113495bSYour Name MobilityDomain: 1; 2356*5113495bSYour Name reserved: 5; 2357*5113495bSYour Name } 2358*5113495bSYour Name 2359*5113495bSYour Name reserved1, 2; //part of BSSID Info. 2360*5113495bSYour Name 2361*5113495bSYour Name regulatoryClass, 1; 2362*5113495bSYour Name channel, 1; 2363*5113495bSYour Name PhyType, 1; 2364*5113495bSYour Name OPTIE IE TSFInfo; 2365*5113495bSYour Name OPTIE IE CondensedCountryStr; 2366*5113495bSYour Name OPTIE IE MeasurementPilot; 2367*5113495bSYour Name OPTIE IE RRMEnabledCap; 2368*5113495bSYour Name OPTIE IE MultiBssid; 2369*5113495bSYour Name //Ignoring vendor specific. 2370*5113495bSYour Name} 2371*5113495bSYour Name 2372*5113495bSYour NameIE RCPIIE (EID_RCPI) 2373*5113495bSYour Name{ 2374*5113495bSYour Name rcpi, 1; 2375*5113495bSYour Name} 2376*5113495bSYour Name 2377*5113495bSYour NameIE RSNIIE (EID_RSNI) 2378*5113495bSYour Name{ 2379*5113495bSYour Name rsni, 1; 2380*5113495bSYour Name} 2381*5113495bSYour Name 2382*5113495bSYour NameIE WFATPC (EID_VENDOR_SPECIFIC) OUI (0x00, 0x50, 0xF2, 0x08, 0x00) 2383*5113495bSYour Name{ 2384*5113495bSYour Name txPower, 1; 2385*5113495bSYour Name linkMargin, 1; 2386*5113495bSYour Name} 2387*5113495bSYour Name 2388*5113495bSYour NameIE MobilityDomain (EID_FT_MOBILITY_DOMAIN) 2389*5113495bSYour Name{ 2390*5113495bSYour Name MDID, 2; 2391*5113495bSYour Name //FT Capability and policy 2392*5113495bSYour Name { 2393*5113495bSYour Name overDSCap: 1; 2394*5113495bSYour Name resourceReqCap: 1; 2395*5113495bSYour Name reserved: 6; 2396*5113495bSYour Name } 2397*5113495bSYour Name} 2398*5113495bSYour Nameconst SUB_EID_FT_R1KH_ID = 1; 2399*5113495bSYour Nameconst SUB_EID_FT_GTK = 2; 2400*5113495bSYour Nameconst SUB_EID_FT_R0KH_ID = 3; 2401*5113495bSYour Nameconst SUB_EID_FT_IGTK = 4; 2402*5113495bSYour NameIE FTInfo (EID_FT_INFO) 2403*5113495bSYour Name{ 2404*5113495bSYour Name // MicControl, 2; 2405*5113495bSYour Name { 2406*5113495bSYour Name reserved: 8; 2407*5113495bSYour Name IECount: 8; 2408*5113495bSYour Name } 2409*5113495bSYour Name MIC[16]; 2410*5113495bSYour Name Anonce[32]; 2411*5113495bSYour Name Snonce[32]; 2412*5113495bSYour Name 2413*5113495bSYour Name OPTIE IE R1KH_ID (SUB_EID_FT_R1KH_ID) 2414*5113495bSYour Name { 2415*5113495bSYour Name PMK_R1_ID[6]; 2416*5113495bSYour Name } 2417*5113495bSYour Name 2418*5113495bSYour Name OPTIE IE GTK (SUB_EID_FT_GTK) 2419*5113495bSYour Name { 2420*5113495bSYour Name //Key Info 2421*5113495bSYour Name { 2422*5113495bSYour Name keyId: 2; 2423*5113495bSYour Name reserved: 14; 2424*5113495bSYour Name } 2425*5113495bSYour Name keyLength, 1; 2426*5113495bSYour Name RSC[8]; 2427*5113495bSYour Name key[5..32]; 2428*5113495bSYour Name } 2429*5113495bSYour Name 2430*5113495bSYour Name OPTIE IE R0KH_ID (SUB_EID_FT_R0KH_ID) 2431*5113495bSYour Name { 2432*5113495bSYour Name PMK_R0_ID[1..48]; 2433*5113495bSYour Name } 2434*5113495bSYour Name 2435*5113495bSYour Name OPTIE IE IGTK (SUB_EID_FT_IGTK) 2436*5113495bSYour Name { 2437*5113495bSYour Name //Key Info 2438*5113495bSYour Name keyID[2]; 2439*5113495bSYour Name IPN[6]; 2440*5113495bSYour Name keyLength, 1; 2441*5113495bSYour Name key[24]; 2442*5113495bSYour Name } 2443*5113495bSYour Name} 2444*5113495bSYour Name 2445*5113495bSYour NameIE TimeoutInterval (EID_TIMEOUT_INTERVAL) 2446*5113495bSYour Name{ 2447*5113495bSYour Name timeoutType, 1; 2448*5113495bSYour Name timeoutValue, 4; 2449*5113495bSYour Name} 2450*5113495bSYour Name 2451*5113495bSYour Name//TODO: need to define this properly. 2452*5113495bSYour NameIE RICData (EID_FT_RIC_DATA) 2453*5113495bSYour Name{ 2454*5113495bSYour Name Identifier, 1; 2455*5113495bSYour Name resourceDescCount, 1; 2456*5113495bSYour Name statusCode, 2; 2457*5113495bSYour Name} 2458*5113495bSYour Name 2459*5113495bSYour NameIE RICDescriptor (EID_FT_RIC_DESCRIPTOR) 2460*5113495bSYour Name{ 2461*5113495bSYour Name resourceType, 1; 2462*5113495bSYour Name variableData[0..255]; //Block ack param set...TODO: 2463*5113495bSYour Name} 2464*5113495bSYour Name 2465*5113495bSYour NameIE WscIEOpaque (EID_VENDOR_SPECIFIC) OUI ( 0x00, 0x50, 0xF2, 0x04 ) 2466*5113495bSYour Name{ 2467*5113495bSYour Name data[ 2..249 ]; 2468*5113495bSYour Name} 2469*5113495bSYour Name 2470*5113495bSYour NameIE P2PIEOpaque (EID_VENDOR_SPECIFIC) OUI ( 0x50, 0x6F, 0x9A, 0x09 ) 2471*5113495bSYour Name{ 2472*5113495bSYour Name data[ 2..249 ]; 2473*5113495bSYour Name} 2474*5113495bSYour Name 2475*5113495bSYour NameIE WFDIEOpaque (EID_VENDOR_SPECIFIC) OUI ( 0x50, 0x6F, 0x9A, 0x0A ) 2476*5113495bSYour Name{ 2477*5113495bSYour Name data[ 2..249 ]; 2478*5113495bSYour Name} 2479*5113495bSYour Name 2480*5113495bSYour NameIE PTIControl (EID_PTI_CONTROL) // 7.3.2.65 2481*5113495bSYour Name{ 2482*5113495bSYour Name tid, 1; 2483*5113495bSYour Name sequence_control, 2; 2484*5113495bSYour Name} 2485*5113495bSYour Name 2486*5113495bSYour NameIE oci (EID_EXTN_ID_ELEMENT) OUI ( 0x36 ) 2487*5113495bSYour Name{ 2488*5113495bSYour Name op_class, 1; 2489*5113495bSYour Name prim_ch_num, 1; 2490*5113495bSYour Name freq_seg_1_ch_num, 1; 2491*5113495bSYour Name} 2492*5113495bSYour Name 2493*5113495bSYour NameIE PUBufferStatus (EID_PU_BUFFER_STATUS) // 7.3.2.66 2494*5113495bSYour Name{ 2495*5113495bSYour Name { 2496*5113495bSYour Name ac_bk_traffic_aval: 1; 2497*5113495bSYour Name ac_be_traffic_aval: 1; 2498*5113495bSYour Name ac_vi_traffic_aval: 1; 2499*5113495bSYour Name ac_vo_traffic_aval: 1; 2500*5113495bSYour Name reserved: 4; 2501*5113495bSYour Name } 2502*5113495bSYour Name} 2503*5113495bSYour Name 2504*5113495bSYour Name 2505*5113495bSYour NameIE bss_max_idle_period (EID_BSS_MAX_IDLE_PERIOD) 2506*5113495bSYour Name{ 2507*5113495bSYour Name max_idle_period, 2; 2508*5113495bSYour Name { 2509*5113495bSYour Name prot_keep_alive_reqd: 1; 2510*5113495bSYour Name reserved: 7; 2511*5113495bSYour Name } 2512*5113495bSYour Name} 2513*5113495bSYour Name 2514*5113495bSYour NameIE VHTCaps (EID_VHT_CAPABILITIES) 2515*5113495bSYour Name{ 2516*5113495bSYour Name //VHT Capability Info 2517*5113495bSYour Name { 2518*5113495bSYour Name maxMPDULen: 2; 2519*5113495bSYour Name supportedChannelWidthSet: 2; 2520*5113495bSYour Name ldpcCodingCap: 1; 2521*5113495bSYour Name shortGI80MHz: 1; 2522*5113495bSYour Name shortGI160and80plus80MHz: 1; 2523*5113495bSYour Name txSTBC: 1; 2524*5113495bSYour Name rxSTBC: 3; 2525*5113495bSYour Name suBeamFormerCap: 1; 2526*5113495bSYour Name suBeamformeeCap: 1; 2527*5113495bSYour Name csnofBeamformerAntSup: 3; 2528*5113495bSYour Name numSoundingDim: 3; 2529*5113495bSYour Name muBeamformerCap: 1; 2530*5113495bSYour Name muBeamformeeCap: 1; 2531*5113495bSYour Name vhtTXOPPS: 1; 2532*5113495bSYour Name htcVHTCap: 1; 2533*5113495bSYour Name maxAMPDULenExp: 3; 2534*5113495bSYour Name vhtLinkAdaptCap: 2; 2535*5113495bSYour Name rxAntPattern: 1; 2536*5113495bSYour Name txAntPattern: 1; 2537*5113495bSYour Name extended_nss_bw_supp: 2; 2538*5113495bSYour Name } 2539*5113495bSYour Name rxMCSMap, 2; 2540*5113495bSYour Name { 2541*5113495bSYour Name rxHighSupDataRate: 13; 2542*5113495bSYour Name max_nsts_total: 3; 2543*5113495bSYour Name } 2544*5113495bSYour Name txMCSMap, 2; 2545*5113495bSYour Name { 2546*5113495bSYour Name txSupDataRate: 13; 2547*5113495bSYour Name vht_extended_nss_bw_cap: 1; 2548*5113495bSYour Name reserved: 2; 2549*5113495bSYour Name } 2550*5113495bSYour Name} 2551*5113495bSYour Name 2552*5113495bSYour NameIE VHTOperation (EID_VHT_OPERATION_ELEMENT) 2553*5113495bSYour Name{ 2554*5113495bSYour Name chanWidth, 1; 2555*5113495bSYour Name chan_center_freq_seg0, 1; 2556*5113495bSYour Name chan_center_freq_seg1, 1; 2557*5113495bSYour Name basicMCSSet, 2; 2558*5113495bSYour Name} 2559*5113495bSYour Name 2560*5113495bSYour NameIE VHTExtBssLoad (EID_VHT_EXT_BSS_LOAD) 2561*5113495bSYour Name{ 2562*5113495bSYour Name muMIMOCapStaCount, 1; 2563*5113495bSYour Name ssUnderUtil, 1; 2564*5113495bSYour Name FortyMHzUtil, 1; 2565*5113495bSYour Name EightyMHzUtil, 1; 2566*5113495bSYour Name OneSixtyMHzUtil, 1; 2567*5113495bSYour Name} 2568*5113495bSYour Name 2569*5113495bSYour NameIE AID (EID_AID) 2570*5113495bSYour Name{ 2571*5113495bSYour Name assocId, 2; 2572*5113495bSYour Name} 2573*5113495bSYour Name 2574*5113495bSYour NameIE WiderBWChanSwitchAnn (EID_WIDER_BW_CHANNEL_SWITCH_ANN) 2575*5113495bSYour Name{ 2576*5113495bSYour Name newChanWidth, 1; 2577*5113495bSYour Name newCenterChanFreq0, 1; 2578*5113495bSYour Name newCenterChanFreq1, 1; 2579*5113495bSYour Name} 2580*5113495bSYour Name 2581*5113495bSYour NameIE transmit_power_env (EID_TRANSMIT_POWER_ENVELOPE) 2582*5113495bSYour Name{ 2583*5113495bSYour Name { 2584*5113495bSYour Name max_tx_pwr_count: 3; 2585*5113495bSYour Name max_tx_pwr_interpret: 3; 2586*5113495bSYour Name max_tx_pwr_category: 2; 2587*5113495bSYour Name } 2588*5113495bSYour Name tx_power[1..8]; 2589*5113495bSYour Name OPTIONAL UNION ext_max_tx_power (DISCRIMINATOR max_tx_pwr_interpret) 2590*5113495bSYour Name { 2591*5113495bSYour Name ext_max_tx_power_local_eirp (max_tx_pwr_interpret IS 0) { 2592*5113495bSYour Name max_tx_power_for_320, 1; 2593*5113495bSYour Name } 2594*5113495bSYour Name ext_max_tx_power_local_psd (max_tx_pwr_interpret IS 1) { 2595*5113495bSYour Name //ext_transmit_psd_info, 1; 2596*5113495bSYour Name { 2597*5113495bSYour Name ext_count: 4; 2598*5113495bSYour Name reserved: 4; 2599*5113495bSYour Name } 2600*5113495bSYour Name max_tx_psd_power[8]; 2601*5113495bSYour Name } 2602*5113495bSYour Name ext_max_tx_power_reg_eirp (max_tx_pwr_interpret IS 2) { 2603*5113495bSYour Name max_tx_power_for_320, 1; 2604*5113495bSYour Name } 2605*5113495bSYour Name ext_max_tx_power_reg_psd (max_tx_pwr_interpret IS 3) { 2606*5113495bSYour Name //ext_transmit_psd_info, 1; 2607*5113495bSYour Name { 2608*5113495bSYour Name ext_count: 4; 2609*5113495bSYour Name reserved: 4; 2610*5113495bSYour Name } 2611*5113495bSYour Name max_tx_psd_power[8]; 2612*5113495bSYour Name } 2613*5113495bSYour Name 2614*5113495bSYour Name }; 2615*5113495bSYour Name} 2616*5113495bSYour Name 2617*5113495bSYour NameIE bw_ind_element (EID_EXTN_ID_ELEMENT) OUI (0x87) 2618*5113495bSYour Name{ 2619*5113495bSYour Name { 2620*5113495bSYour Name reserved: 1; 2621*5113495bSYour Name disabled_sub_chan_bitmap_present: 1; 2622*5113495bSYour Name reserved_1: 6; 2623*5113495bSYour Name } 2624*5113495bSYour Name { 2625*5113495bSYour Name channel_width: 3; 2626*5113495bSYour Name reserved_2: 5; 2627*5113495bSYour Name } 2628*5113495bSYour Name ccfs0, 1; 2629*5113495bSYour Name ccfs1, 1; 2630*5113495bSYour Name disabled_sub_chan_bitmap[2][0..1] COUNTIS disabled_sub_chan_bitmap_present; 2631*5113495bSYour Name} 2632*5113495bSYour Name 2633*5113495bSYour NameIE ChannelSwitchWrapper (EID_CHANNEL_SWITCH_WRAPPER) 2634*5113495bSYour Name{ 2635*5113495bSYour Name OPTIE IE WiderBWChanSwitchAnn; 2636*5113495bSYour Name OPTIE IE transmit_power_env; 2637*5113495bSYour Name OPTIE IE bw_ind_element; 2638*5113495bSYour Name} 2639*5113495bSYour Name 2640*5113495bSYour NameIE reduced_neighbor_report (EID_RNR_IE) 2641*5113495bSYour Name{ 2642*5113495bSYour Name // TBTT Information Header 2643*5113495bSYour Name { 2644*5113495bSYour Name tbtt_type: 2; 2645*5113495bSYour Name filtered_neighbor_ap: 1; 2646*5113495bSYour Name reserved: 1; 2647*5113495bSYour Name tbtt_info_count: 4; 2648*5113495bSYour Name tbtt_info_len: 8; 2649*5113495bSYour Name } 2650*5113495bSYour Name op_class, 1; 2651*5113495bSYour Name channel_num, 1; 2652*5113495bSYour Name // TBTT information field 2653*5113495bSYour Name UNION tbtt_info (DISCRIMINATOR tbtt_info_len) 2654*5113495bSYour Name { 2655*5113495bSYour Name tbtt_info_1 (tbtt_info_len IS 1) 2656*5113495bSYour Name { 2657*5113495bSYour Name tbtt_offset, 1; 2658*5113495bSYour Name } 2659*5113495bSYour Name tbtt_info_2 (tbtt_info_len IS 2) 2660*5113495bSYour Name { 2661*5113495bSYour Name tbtt_offset, 1; 2662*5113495bSYour Name bss_params, 1; 2663*5113495bSYour Name } 2664*5113495bSYour Name tbtt_info_5 (tbtt_info_len IS 5) 2665*5113495bSYour Name { 2666*5113495bSYour Name tbtt_offset, 1; 2667*5113495bSYour Name short_ssid, 4; 2668*5113495bSYour Name } 2669*5113495bSYour Name tbtt_info_6 (tbtt_info_len IS 6) 2670*5113495bSYour Name { 2671*5113495bSYour Name tbtt_offset, 1; 2672*5113495bSYour Name short_ssid, 4; 2673*5113495bSYour Name bss_params, 1; 2674*5113495bSYour Name } 2675*5113495bSYour Name tbtt_info_7 (tbtt_info_len IS 7) 2676*5113495bSYour Name { 2677*5113495bSYour Name tbtt_offset, 1; 2678*5113495bSYour Name bssid[6]; 2679*5113495bSYour Name } 2680*5113495bSYour Name tbtt_info_8 (tbtt_info_len IS 8) 2681*5113495bSYour Name { 2682*5113495bSYour Name tbtt_offset, 1; 2683*5113495bSYour Name bssid[6]; 2684*5113495bSYour Name bss_params, 1; 2685*5113495bSYour Name } 2686*5113495bSYour Name tbtt_info_9 (tbtt_info_len IS 9) 2687*5113495bSYour Name { 2688*5113495bSYour Name tbtt_offset, 1; 2689*5113495bSYour Name bssid[6]; 2690*5113495bSYour Name bss_params, 1; 2691*5113495bSYour Name psd_20mhz, 1; 2692*5113495bSYour Name } 2693*5113495bSYour Name tbtt_info_11 (tbtt_info_len IS 11) 2694*5113495bSYour Name { 2695*5113495bSYour Name tbtt_offset, 1; 2696*5113495bSYour Name bssid[6]; 2697*5113495bSYour Name short_ssid, 4; 2698*5113495bSYour Name } 2699*5113495bSYour Name tbtt_info_12 (tbtt_info_len IS 12) 2700*5113495bSYour Name { 2701*5113495bSYour Name tbtt_offset, 1; 2702*5113495bSYour Name bssid[6]; 2703*5113495bSYour Name short_ssid, 4; 2704*5113495bSYour Name bss_params, 1; 2705*5113495bSYour Name } 2706*5113495bSYour Name tbtt_info_13 (tbtt_info_len IS 13) 2707*5113495bSYour Name { 2708*5113495bSYour Name tbtt_offset, 1; 2709*5113495bSYour Name bssid[6]; 2710*5113495bSYour Name short_ssid, 4; 2711*5113495bSYour Name bss_params, 1; 2712*5113495bSYour Name psd_20mhz, 1; 2713*5113495bSYour Name } 2714*5113495bSYour Name tbtt_info_16 (tbtt_info_len IS 16) 2715*5113495bSYour Name { 2716*5113495bSYour Name tbtt_offset, 1; 2717*5113495bSYour Name bssid[6]; 2718*5113495bSYour Name short_ssid, 4; 2719*5113495bSYour Name bss_params, 1; 2720*5113495bSYour Name psd_20mhz, 1; 2721*5113495bSYour Name mld_id, 1; 2722*5113495bSYour Name { 2723*5113495bSYour Name link_id: 4; 2724*5113495bSYour Name bss_param_change_cnt: 8; 2725*5113495bSYour Name all_updates_included: 1; 2726*5113495bSYour Name reserved: 3; 2727*5113495bSYour Name } 2728*5113495bSYour Name } 2729*5113495bSYour Name }; 2730*5113495bSYour Name} 2731*5113495bSYour Name 2732*5113495bSYour NameIE ExtCap (EID_EXT_CAP) 2733*5113495bSYour Name{ 2734*5113495bSYour Name bytes[1..15]; 2735*5113495bSYour Name} 2736*5113495bSYour Name 2737*5113495bSYour NameIE HTCaps (EID_HT_CAPABILITIES) 2738*5113495bSYour Name{ 2739*5113495bSYour Name // HT Capability Info 2740*5113495bSYour Name { 2741*5113495bSYour Name advCodingCap: 1; 2742*5113495bSYour Name supportedChannelWidthSet: 1; 2743*5113495bSYour Name mimoPowerSave: 2; 2744*5113495bSYour Name greenField: 1; 2745*5113495bSYour Name shortGI20MHz: 1; 2746*5113495bSYour Name shortGI40MHz: 1; 2747*5113495bSYour Name txSTBC: 1; 2748*5113495bSYour Name rxSTBC: 2; 2749*5113495bSYour Name delayedBA: 1; 2750*5113495bSYour Name maximalAMSDUsize: 1; 2751*5113495bSYour Name dsssCckMode40MHz: 1; 2752*5113495bSYour Name psmp: 1; 2753*5113495bSYour Name stbcControlFrame: 1; 2754*5113495bSYour Name lsigTXOPProtection: 1; 2755*5113495bSYour Name } 2756*5113495bSYour Name // HT Parameters Info; 2757*5113495bSYour Name { 2758*5113495bSYour Name maxRxAMPDUFactor: 2; 2759*5113495bSYour Name mpduDensity: 3; 2760*5113495bSYour Name reserved1: 3; 2761*5113495bSYour Name } 2762*5113495bSYour Name 2763*5113495bSYour Name supportedMCSSet[ HT_MAX_SUPPORTED_MCS_SET ]; 2764*5113495bSYour Name 2765*5113495bSYour Name // Extended HT Capability Info 2766*5113495bSYour Name { 2767*5113495bSYour Name pco: 1; 2768*5113495bSYour Name transitionTime: 2; 2769*5113495bSYour Name reserved2: 5; 2770*5113495bSYour Name mcsFeedback: 2; 2771*5113495bSYour Name reserved3: 6; 2772*5113495bSYour Name } 2773*5113495bSYour Name // TXBF Capability Info 2774*5113495bSYour Name { 2775*5113495bSYour Name txBF: 1; 2776*5113495bSYour Name rxStaggeredSounding: 1; 2777*5113495bSYour Name txStaggeredSounding: 1; 2778*5113495bSYour Name rxZLF: 1; 2779*5113495bSYour Name txZLF: 1; 2780*5113495bSYour Name implicitTxBF: 1; 2781*5113495bSYour Name calibration: 2; 2782*5113495bSYour Name explicitCSITxBF: 1; 2783*5113495bSYour Name explicitUncompressedSteeringMatrix: 1; 2784*5113495bSYour Name explicitBFCSIFeedback: 3; 2785*5113495bSYour Name explicitUncompressedSteeringMatrixFeedback: 3; 2786*5113495bSYour Name explicitCompressedSteeringMatrixFeedback: 3; 2787*5113495bSYour Name csiNumBFAntennae: 2; 2788*5113495bSYour Name uncompressedSteeringMatrixBFAntennae: 2; 2789*5113495bSYour Name compressedSteeringMatrixBFAntennae: 2; 2790*5113495bSYour Name reserved4: 7; 2791*5113495bSYour Name } 2792*5113495bSYour Name // AS Capability Info 2793*5113495bSYour Name { 2794*5113495bSYour Name antennaSelection: 1; 2795*5113495bSYour Name explicitCSIFeedbackTx: 1; 2796*5113495bSYour Name antennaIndicesFeedbackTx: 1; 2797*5113495bSYour Name explicitCSIFeedback: 1; 2798*5113495bSYour Name antennaIndicesFeedback: 1; 2799*5113495bSYour Name rxAS: 1; 2800*5113495bSYour Name txSoundingPPDUs: 1; 2801*5113495bSYour Name reserved5: 1; 2802*5113495bSYour Name } 2803*5113495bSYour Name //TODO: take it out when generic fix to remove extra bytes in IE is available. 2804*5113495bSYour Name //This is required to interop with Dlink AP which is sending 2 bytes extra in HTInfo IE. 2805*5113495bSYour Name rsvd[0..32]; 2806*5113495bSYour Name 2807*5113495bSYour Name} // End IE HTCaps. 2808*5113495bSYour Name 2809*5113495bSYour NameIE HTInfo (EID_HT_INFO) 2810*5113495bSYour Name{ 2811*5113495bSYour Name primaryChannel, 1; 2812*5113495bSYour Name 2813*5113495bSYour Name // ahtInfoField1 2814*5113495bSYour Name { 2815*5113495bSYour Name secondaryChannelOffset: 2; 2816*5113495bSYour Name recommendedTxWidthSet: 1; 2817*5113495bSYour Name rifsMode: 1; 2818*5113495bSYour Name controlledAccessOnly: 1; 2819*5113495bSYour Name serviceIntervalGranularity: 3; 2820*5113495bSYour Name } 2821*5113495bSYour Name 2822*5113495bSYour Name // ahtInfoField2 2823*5113495bSYour Name 2824*5113495bSYour Name 2825*5113495bSYour Name // ahtInfoField2 2826*5113495bSYour Name { 2827*5113495bSYour Name opMode: 2; 2828*5113495bSYour Name nonGFDevicesPresent: 1; 2829*5113495bSYour Name transmitBurstLimit: 1; 2830*5113495bSYour Name obssNonHTStaPresent:1; 2831*5113495bSYour Name chan_center_freq_seg2:8; 2832*5113495bSYour Name reserved: 3; 2833*5113495bSYour Name } 2834*5113495bSYour Name 2835*5113495bSYour Name 2836*5113495bSYour Name // ahtInfoField3 2837*5113495bSYour Name { 2838*5113495bSYour Name basicSTBCMCS: 7; 2839*5113495bSYour Name dualCTSProtection: 1; 2840*5113495bSYour Name secondaryBeacon: 1; 2841*5113495bSYour Name lsigTXOPProtectionFullSupport: 1; 2842*5113495bSYour Name pcoActive: 1; 2843*5113495bSYour Name pcoPhase: 1; 2844*5113495bSYour Name reserved2: 4; 2845*5113495bSYour Name } 2846*5113495bSYour Name 2847*5113495bSYour Name basicMCSSet[ HT_MAX_SUPPORTED_MCS_SET ]; 2848*5113495bSYour Name 2849*5113495bSYour Name //TODO: take it out when generic fix to remove extra bytes in IE is available. 2850*5113495bSYour Name //This is required to interop with Dlink AP which is sending 2 bytes extra in HTInfo IE. 2851*5113495bSYour Name rsvd[0..32]; 2852*5113495bSYour Name 2853*5113495bSYour Name} // End IE HTInfo. 2854*5113495bSYour Name 2855*5113495bSYour Name 2856*5113495bSYour NameIE OperatingMode (EID_OPERATING_MODE) 2857*5113495bSYour Name{ 2858*5113495bSYour Name { //Operating Mode field 2859*5113495bSYour Name chanWidth: 2; 2860*5113495bSYour Name vht_160_80p80_supp: 1; 2861*5113495bSYour Name no_ldpc: 1; 2862*5113495bSYour Name rxNSS: 3; 2863*5113495bSYour Name rxNSSType: 1; 2864*5113495bSYour Name } 2865*5113495bSYour Name} 2866*5113495bSYour Name 2867*5113495bSYour NameIE QosMapSet (EID_QOS_MAP_SET) 2868*5113495bSYour Name{ 2869*5113495bSYour Name dscp_exceptions[QOS_DSCP_RANGE_LEN..MAX_QOS_DSCP_DATA_LEN]; 2870*5113495bSYour Name} 2871*5113495bSYour Name 2872*5113495bSYour NameCONTAINERIE RICDataDesc 2873*5113495bSYour Name{ 2874*5113495bSYour Name MANDIE RICData; 2875*5113495bSYour Name OPTIE RICDescriptor; 2876*5113495bSYour Name OPTIE TSPEC; 2877*5113495bSYour Name OPTIE TCLAS[0..2]; 2878*5113495bSYour Name OPTIE TCLASSPROC; 2879*5113495bSYour Name OPTIE TSDelay; 2880*5113495bSYour Name OPTIE Schedule; 2881*5113495bSYour Name OPTIE WMMTSPEC; 2882*5113495bSYour Name OPTIE WMMTCLAS[0..2]; 2883*5113495bSYour Name OPTIE WMMTCLASPROC; 2884*5113495bSYour Name OPTIE WMMTSDelay; 2885*5113495bSYour Name OPTIE WMMSchedule; 2886*5113495bSYour Name} 2887*5113495bSYour Name 2888*5113495bSYour NameIE TimeAdvertisement (EID_TIME_ADVERTISEMENT) // 8.4.2.63 2889*5113495bSYour Name{ 2890*5113495bSYour Name timing_capabilities, 1; 2891*5113495bSYour Name time_value[10]; 2892*5113495bSYour Name time_error[5]; 2893*5113495bSYour Name} 2894*5113495bSYour Name 2895*5113495bSYour Name/** 2896*5113495bSYour Name * This all attributes are defined under qcn_attribute_id enum of 2897*5113495bSYour Name * cmn code in wlan_cmn_ieee80211.h file. 2898*5113495bSYour Name */ 2899*5113495bSYour Nameconst TLV_VERSION_ATTR_ID = 1; 2900*5113495bSYour Nameconst TLV_VHT_MCS_10_11_ATTR_ID = 2; 2901*5113495bSYour Nameconst TLV_HE_400NS_SGI_SUPP_ATTR_ID = 3; 2902*5113495bSYour Nameconst TLV_HE_2XLTF_160_80P80_SUPP_ATTR_ID = 4; 2903*5113495bSYour Nameconst TLV_HE_DL_OFDMA_SUPPP_ATTR_ID = 5; 2904*5113495bSYour Nameconst TLV_TRANSITION_REASONP_ATTR_ID = 6; 2905*5113495bSYour Nameconst TLV_TRANSITION_REJECTIONP_ATTR_ID = 7; 2906*5113495bSYour Nameconst TLV_HE_DL_MUMIMO_SUPPP_ATTR_ID = 8; 2907*5113495bSYour Nameconst TLV_HE_MCS_11_12_ATTR_ID = 9; 2908*5113495bSYour Nameconst TLV_EDCA_PIFS_PARAM_ATTR_ID = 13; 2909*5113495bSYour Nameconst TLV_ECSA_TARGET_TSF_INFO_ATTR_ID = 14; 2910*5113495bSYour Name 2911*5113495bSYour NameTLV qcn_version(TLV_VERSION_ATTR_ID) ( 1 : 1 ) LSB 2912*5113495bSYour Name{ 2913*5113495bSYour Name version, 1; 2914*5113495bSYour Name sub_version, 1; 2915*5113495bSYour Name} 2916*5113495bSYour NameTLV vht_mcs11_attr (TLV_VHT_MCS_10_11_ATTR_ID) ( 1 : 1 ) LSB 2917*5113495bSYour Name{ 2918*5113495bSYour Name vht_mcs_10_11_supp, 1; 2919*5113495bSYour Name} 2920*5113495bSYour NameTLV he_400ns_sgi_attr (TLV_HE_400NS_SGI_SUPP_ATTR_ID) ( 1 : 1 ) LSB 2921*5113495bSYour Name{ 2922*5113495bSYour Name he_ltf1x_400ns_sgi, 1; 2923*5113495bSYour Name he_ltf2x_400ns_sgi, 1; 2924*5113495bSYour Name he_ltf4x_400ns_sgi, 1; 2925*5113495bSYour Name} 2926*5113495bSYour Name 2927*5113495bSYour NameTLV he_2xltf_160mhz_supp (TLV_HE_2XLTF_160_80P80_SUPP_ATTR_ID) ( 1 : 1 ) LSB 2928*5113495bSYour Name{ 2929*5113495bSYour Name he_2xltf_160MHz_supp, 1; 2930*5113495bSYour Name} 2931*5113495bSYour Name 2932*5113495bSYour NameTLV he_dl_ofdma_attr (TLV_HE_DL_OFDMA_SUPPP_ATTR_ID) ( 1 : 1 ) LSB 2933*5113495bSYour Name{ 2934*5113495bSYour Name he_dl_ofdma_supp, 1; 2935*5113495bSYour Name} 2936*5113495bSYour Name 2937*5113495bSYour NameTLV trans_reasonp_attr (TLV_TRANSITION_REASONP_ATTR_ID) ( 1 : 1 ) LSB 2938*5113495bSYour Name{ 2939*5113495bSYour Name transition_reasonp, 1; 2940*5113495bSYour Name} 2941*5113495bSYour Name 2942*5113495bSYour NameTLV trans_rejectp_attr (TLV_TRANSITION_REJECTIONP_ATTR_ID) ( 1 : 1 ) LSB 2943*5113495bSYour Name{ 2944*5113495bSYour Name transition_rejp, 1; 2945*5113495bSYour Name} 2946*5113495bSYour Name 2947*5113495bSYour NameTLV he_dl_mumimo_attr (TLV_HE_DL_MUMIMO_SUPPP_ATTR_ID) ( 1 : 1 ) LSB 2948*5113495bSYour Name{ 2949*5113495bSYour Name he_dl_mumimo_supp, 1; 2950*5113495bSYour Name} 2951*5113495bSYour Name 2952*5113495bSYour NameTLV he_mcs13_attr (TLV_HE_MCS_11_12_ATTR_ID) ( 1 : 1 ) LSB 2953*5113495bSYour Name{ 2954*5113495bSYour Name he_mcs_12_13_supp_80, 1; 2955*5113495bSYour Name he_mcs_12_13_supp_160, 1; 2956*5113495bSYour Name} 2957*5113495bSYour Name 2958*5113495bSYour NameTLV edca_pifs_param_attr (TLV_EDCA_PIFS_PARAM_ATTR_ID) ( 1 : 1 ) LSB 2959*5113495bSYour Name{ 2960*5113495bSYour Name // Configure EDCA or PIFS param based on edca_param_type 2961*5113495bSYour Name edca_param_type, 1; 2962*5113495bSYour Name data[3..4]; 2963*5113495bSYour Name} 2964*5113495bSYour Name 2965*5113495bSYour NameTLV ecsa_target_tsf_info_attr (TLV_ECSA_TARGET_TSF_INFO_ATTR_ID) ( 1 : 1 ) LSB 2966*5113495bSYour Name{ 2967*5113495bSYour Name twt_ch_sw_mode, 1; 2968*5113495bSYour Name target_tsf, 8; 2969*5113495bSYour Name} 2970*5113495bSYour Name 2971*5113495bSYour NameMULTIIE qcn_ie (EID_VENDOR_SPECIFIC) OUI ( 0x8C, 0xFD, 0xF0, 0x01 ) 2972*5113495bSYour Name{ 2973*5113495bSYour Name OPTIONALTLV qcn_version; 2974*5113495bSYour Name OPTIONALTLV vht_mcs11_attr; 2975*5113495bSYour Name OPTIONALTLV he_400ns_sgi_attr; 2976*5113495bSYour Name OPTIONALTLV he_2xltf_160mhz_supp; 2977*5113495bSYour Name OPTIONALTLV he_dl_ofdma_attr; 2978*5113495bSYour Name OPTIONALTLV trans_reasonp_attr; 2979*5113495bSYour Name OPTIONALTLV trans_rejectp_attr; 2980*5113495bSYour Name OPTIONALTLV he_dl_mumimo_attr; 2981*5113495bSYour Name OPTIONALTLV he_mcs13_attr; 2982*5113495bSYour Name OPTIONALTLV edca_pifs_param_attr; 2983*5113495bSYour Name OPTIONALTLV ecsa_target_tsf_info_attr; 2984*5113495bSYour Name} 2985*5113495bSYour Name 2986*5113495bSYour NameIE esp_information (EID_EXTN_ID_ELEMENT) OUI ( 0x0B ) 2987*5113495bSYour Name{ 2988*5113495bSYour Name data[0..96]; 2989*5113495bSYour Name} 2990*5113495bSYour NameIE fils_indication (EID_FILS_INDICATION) 2991*5113495bSYour Name{ 2992*5113495bSYour Name // FILS Information element 2993*5113495bSYour Name { 2994*5113495bSYour Name public_key_identifiers_cnt : 3; 2995*5113495bSYour Name realm_identifiers_cnt : 3; 2996*5113495bSYour Name is_ip_config_supported : 1; 2997*5113495bSYour Name is_cache_id_present : 1; 2998*5113495bSYour Name is_hessid_present : 1; 2999*5113495bSYour Name is_fils_sk_auth_supported : 1; 3000*5113495bSYour Name is_fils_sk_auth_pfs_supported : 1; 3001*5113495bSYour Name is_pk_auth_supported : 1; 3002*5113495bSYour Name reserved : 4; 3003*5113495bSYour Name } 3004*5113495bSYour Name // other FILS elements 3005*5113495bSYour Name variable_data[2..255]; 3006*5113495bSYour Name} 3007*5113495bSYour Name 3008*5113495bSYour NameIE fils_assoc_delay_info (EID_EXTN_ID_ELEMENT) OUI ( 0x01 ) 3009*5113495bSYour Name{ 3010*5113495bSYour Name assoc_delay_info, 1; 3011*5113495bSYour Name} 3012*5113495bSYour Name 3013*5113495bSYour NameIE fils_key_confirmation (EID_EXTN_ID_ELEMENT) OUI ( 0x03 ) 3014*5113495bSYour Name{ 3015*5113495bSYour Name key_auth[0..255]; 3016*5113495bSYour Name} 3017*5113495bSYour Name 3018*5113495bSYour NameIE fils_session (EID_EXTN_ID_ELEMENT) OUI ( 0x04 ) 3019*5113495bSYour Name{ 3020*5113495bSYour Name session[8]; 3021*5113495bSYour Name} 3022*5113495bSYour Name 3023*5113495bSYour NameIE fils_hlp_container (EID_EXTN_ID_ELEMENT) OUI ( 0x05 ) 3024*5113495bSYour Name{ 3025*5113495bSYour Name dest_mac[6]; 3026*5113495bSYour Name src_mac[6]; 3027*5113495bSYour Name hlp_packet[0..255]; 3028*5113495bSYour Name} 3029*5113495bSYour Name 3030*5113495bSYour NameIE fils_kde (EID_EXTN_ID_ELEMENT) OUI ( 0x07 ) 3031*5113495bSYour Name{ 3032*5113495bSYour Name key_rsc[8]; 3033*5113495bSYour Name kde_list[0..255]; 3034*5113495bSYour Name} 3035*5113495bSYour Name 3036*5113495bSYour NameIE fils_wrapped_data (EID_EXTN_ID_ELEMENT) OUI ( 0x08 ) 3037*5113495bSYour Name{ 3038*5113495bSYour Name wrapped_data[0..255]; 3039*5113495bSYour Name} 3040*5113495bSYour Name 3041*5113495bSYour NameIE fils_public_key (EID_EXTN_ID_ELEMENT) OUI ( 0x0C ) 3042*5113495bSYour Name{ 3043*5113495bSYour Name key_type, 1; 3044*5113495bSYour Name public_key[0..255]; 3045*5113495bSYour Name} 3046*5113495bSYour Name 3047*5113495bSYour NameIE fils_nonce (EID_EXTN_ID_ELEMENT) OUI ( 0x0D ) 3048*5113495bSYour Name{ 3049*5113495bSYour Name nonce[16]; 3050*5113495bSYour Name} 3051*5113495bSYour Name 3052*5113495bSYour NameIE fragment_ie (EID_FRAGMENT_IE) 3053*5113495bSYour Name{ 3054*5113495bSYour Name data[0..255]; 3055*5113495bSYour Name} 3056*5113495bSYour Name 3057*5113495bSYour NameIE dh_parameter_element (EID_EXTN_ID_ELEMENT) OUI ( 0x20 ) 3058*5113495bSYour Name{ 3059*5113495bSYour Name group[2]; 3060*5113495bSYour Name public_key[0..255]; 3061*5113495bSYour Name} 3062*5113495bSYour Name 3063*5113495bSYour Nameconst EID_RRM_REPORTING = 1; 3064*5113495bSYour Nameconst EID_RRM_BCN_REPORTING_DETAIL = 2; 3065*5113495bSYour Name 3066*5113495bSYour Nameconst SUB_EID_AZIMUTH_REQ = 1; 3067*5113495bSYour Nameconst SUB_EID_REQ_MAC_ADDR = 2; 3068*5113495bSYour Nameconst SUB_EID_TGT_MAC_ADDR = 3; 3069*5113495bSYour Nameconst SUB_EID_MAX_AGE = 4; 3070*5113495bSYour Nameconst SUB_EID_NEIGHBOR_RPT = 52; 3071*5113495bSYour Name//const SUB_EID_TRIGGERED_REPORTING = 1; 3072*5113495bSYour Name 3073*5113495bSYour NameIE rrm_reporting (EID_RRM_REPORTING) 3074*5113495bSYour Name{ 3075*5113495bSYour Name reporting_condition, 1; 3076*5113495bSYour Name threshold, 1; 3077*5113495bSYour Name} 3078*5113495bSYour Name 3079*5113495bSYour NameIE BcnReportingDetail (EID_RRM_BCN_REPORTING_DETAIL) 3080*5113495bSYour Name{ 3081*5113495bSYour Name reportingDetail, 1; 3082*5113495bSYour Name} 3083*5113495bSYour Name 3084*5113495bSYour NameIE APChannelReport (EID_AP_CHAN_REPORT) 3085*5113495bSYour Name{ 3086*5113495bSYour Name regulatoryClass, 1; 3087*5113495bSYour Name channelList[0..50]; 3088*5113495bSYour Name} 3089*5113495bSYour Name 3090*5113495bSYour NameIE azimuth_req (SUB_EID_AZIMUTH_REQ) 3091*5113495bSYour Name{ 3092*5113495bSYour Name request, 1; 3093*5113495bSYour Name} 3094*5113495bSYour Name 3095*5113495bSYour NameIE req_mac_addr (SUB_EID_REQ_MAC_ADDR) 3096*5113495bSYour Name{ 3097*5113495bSYour Name addr[6]; 3098*5113495bSYour Name} 3099*5113495bSYour Name 3100*5113495bSYour NameIE tgt_mac_addr (SUB_EID_TGT_MAC_ADDR) 3101*5113495bSYour Name{ 3102*5113495bSYour Name addr[6]; 3103*5113495bSYour Name} 3104*5113495bSYour Name 3105*5113495bSYour NameIE max_age (SUB_EID_MAX_AGE) 3106*5113495bSYour Name{ 3107*5113495bSYour Name max_age, 2; 3108*5113495bSYour Name} 3109*5113495bSYour Name 3110*5113495bSYour NameIE neighbor_rpt (SUB_EID_NEIGHBOR_RPT) 3111*5113495bSYour Name{ 3112*5113495bSYour Name bssid[6]; 3113*5113495bSYour Name //Bssid Info 3114*5113495bSYour Name { 3115*5113495bSYour Name APReachability: 2; 3116*5113495bSYour Name Security: 1; 3117*5113495bSYour Name KeyScope: 1; 3118*5113495bSYour Name //Capabilities 3119*5113495bSYour Name SpecMgmtCap: 1; 3120*5113495bSYour Name QosCap: 1; 3121*5113495bSYour Name apsd: 1; 3122*5113495bSYour Name rrm: 1; 3123*5113495bSYour Name } 3124*5113495bSYour Name //Capabilities contd. 3125*5113495bSYour Name { 3126*5113495bSYour Name DelayedBA: 1; 3127*5113495bSYour Name ImmBA: 1; 3128*5113495bSYour Name //Capabilities end. 3129*5113495bSYour Name MobilityDomain: 1; 3130*5113495bSYour Name reserved: 5; 3131*5113495bSYour Name } 3132*5113495bSYour Name reserved1, 2; //part of BSSID Info. 3133*5113495bSYour Name regulatoryClass, 1; 3134*5113495bSYour Name channel, 1; 3135*5113495bSYour Name PhyType, 1; 3136*5113495bSYour Name OPTIE IE TSFInfo; 3137*5113495bSYour Name OPTIE IE CondensedCountryStr; 3138*5113495bSYour Name OPTIE IE MeasurementPilot; 3139*5113495bSYour Name OPTIE IE RRMEnabledCap; 3140*5113495bSYour Name OPTIE IE MultiBssid; 3141*5113495bSYour Name} 3142*5113495bSYour Name 3143*5113495bSYour NameIE MeasurementRequest (EID_MEAS_REQUEST) // 7.3.2.21 3144*5113495bSYour Name{ 3145*5113495bSYour Name measurement_token, 1; 3146*5113495bSYour Name 3147*5113495bSYour Name // Measurement Request Mode 3148*5113495bSYour Name { 3149*5113495bSYour Name parallel: 1; 3150*5113495bSYour Name enable: 1; 3151*5113495bSYour Name request: 1; 3152*5113495bSYour Name report: 1; 3153*5113495bSYour Name durationMandatory: 1; 3154*5113495bSYour Name unused: 3; 3155*5113495bSYour Name } 3156*5113495bSYour Name 3157*5113495bSYour Name measurement_type, 1; 3158*5113495bSYour Name UNION measurement_request (DISCRIMINATOR measurement_type) 3159*5113495bSYour Name { 3160*5113495bSYour Name Basic (measurement_type IS 0) 3161*5113495bSYour Name { 3162*5113495bSYour Name channel_no, 1; 3163*5113495bSYour Name meas_start_time[8]; 3164*5113495bSYour Name meas_duration, 2; 3165*5113495bSYour Name } 3166*5113495bSYour Name CCA (measurement_type IS 1) 3167*5113495bSYour Name { 3168*5113495bSYour Name channel_no, 1; 3169*5113495bSYour Name meas_start_time[8]; 3170*5113495bSYour Name meas_duration, 2; 3171*5113495bSYour Name } 3172*5113495bSYour Name RPIHistogram (measurement_type IS 2) 3173*5113495bSYour Name { 3174*5113495bSYour Name channel_no, 1; 3175*5113495bSYour Name meas_start_time[8]; 3176*5113495bSYour Name meas_duration, 2; 3177*5113495bSYour Name } 3178*5113495bSYour Name channel_load (measurement_type IS 3) 3179*5113495bSYour Name { 3180*5113495bSYour Name op_class, 1; 3181*5113495bSYour Name channel, 1; 3182*5113495bSYour Name randomization_intv, 2; 3183*5113495bSYour Name meas_duration, 2; 3184*5113495bSYour Name OPTIE rrm_reporting; 3185*5113495bSYour Name OPTIE wide_bw_chan_switch; 3186*5113495bSYour Name OPTIE bw_indication; 3187*5113495bSYour Name } 3188*5113495bSYour Name Beacon (measurement_type IS 5) 3189*5113495bSYour Name { 3190*5113495bSYour Name regClass, 1; 3191*5113495bSYour Name channel, 1; 3192*5113495bSYour Name randomization, 2; 3193*5113495bSYour Name meas_duration, 2; 3194*5113495bSYour Name meas_mode, 1; 3195*5113495bSYour Name BSSID[6]; 3196*5113495bSYour Name OPTIE SSID; 3197*5113495bSYour Name OPTIE rrm_reporting; 3198*5113495bSYour Name OPTIE BcnReportingDetail; 3199*5113495bSYour Name OPTIE RequestedInfo; 3200*5113495bSYour Name OPTIE ExtRequestedInfo; 3201*5113495bSYour Name OPTIE APChannelReport[0..2]; 3202*5113495bSYour Name OPTIE last_beacon_report_indication; 3203*5113495bSYour Name //OPTIONAL vendor_specific[1..239]; 3204*5113495bSYour Name } 3205*5113495bSYour Name lci (measurement_type IS 8) 3206*5113495bSYour Name { 3207*5113495bSYour Name loc_subject, 1; 3208*5113495bSYour Name OPTIE azimuth_req; 3209*5113495bSYour Name OPTIE req_mac_addr; 3210*5113495bSYour Name OPTIE tgt_mac_addr; 3211*5113495bSYour Name OPTIE max_age; 3212*5113495bSYour Name } 3213*5113495bSYour Name ftmrr (measurement_type IS 16) 3214*5113495bSYour Name { 3215*5113495bSYour Name random_interval, 2; 3216*5113495bSYour Name min_ap_count, 1; 3217*5113495bSYour Name 3218*5113495bSYour Name OPTIE neighbor_rpt; 3219*5113495bSYour Name OPTIE max_age; 3220*5113495bSYour Name } 3221*5113495bSYour Name sta_stats (measurement_type IS 7) 3222*5113495bSYour Name { 3223*5113495bSYour Name peer_mac_addr[6]; 3224*5113495bSYour Name randomization, 2; 3225*5113495bSYour Name meas_duration, 2; 3226*5113495bSYour Name group_identity, 1; 3227*5113495bSYour Name //OPTIE triggered_reporting; 3228*5113495bSYour Name //OPTIONAL vendor_specific; 3229*5113495bSYour Name } 3230*5113495bSYour Name 3231*5113495bSYour Name }; 3232*5113495bSYour Name} 3233*5113495bSYour Name 3234*5113495bSYour NameIE tclas_mask (EID_EXTN_ID_ELEMENT) OUI (0x59) 3235*5113495bSYour Name{ 3236*5113495bSYour Name classifier_type, 1; 3237*5113495bSYour Name classifier_mask, 1; 3238*5113495bSYour Name UNION info (DISCRIMINATOR classifier_type) 3239*5113495bSYour Name { 3240*5113495bSYour Name ip_param (classifier_type IS 4) 3241*5113495bSYour Name { 3242*5113495bSYour Name reserved[16]; 3243*5113495bSYour Name } 3244*5113495bSYour Name }; 3245*5113495bSYour Name} 3246*5113495bSYour Name 3247*5113495bSYour NameIE mscs_status (EID_MSCS_STATUS) 3248*5113495bSYour Name{ 3249*5113495bSYour Name status_code, 1; 3250*5113495bSYour Name} 3251*5113495bSYour Name 3252*5113495bSYour NameIE descriptor_element (EID_EXTN_ID_ELEMENT) OUI (0x58) 3253*5113495bSYour Name{ 3254*5113495bSYour Name request_type, 1; 3255*5113495bSYour Name user_priority_control, 2; 3256*5113495bSYour Name stream_timeout, 4; 3257*5113495bSYour Name OPTIE IE tclas_mask; 3258*5113495bSYour Name OPTIE IE mscs_status; 3259*5113495bSYour Name //Optional Vendor specific IEs ... ignoring 3260*5113495bSYour Name} 3261*5113495bSYour Name 3262*5113495bSYour NameIE he_cap (EID_EXTN_ID_ELEMENT) OUI (0x23) 3263*5113495bSYour Name{ 3264*5113495bSYour Name { 3265*5113495bSYour Name htc_he:1; 3266*5113495bSYour Name twt_request:1; 3267*5113495bSYour Name twt_responder:1; 3268*5113495bSYour Name fragmentation:2; 3269*5113495bSYour Name max_num_frag_msdu_amsdu_exp:3; 3270*5113495bSYour Name min_frag_size:2; 3271*5113495bSYour Name trigger_frm_mac_pad:2; 3272*5113495bSYour Name multi_tid_aggr_rx_supp:3; 3273*5113495bSYour Name he_link_adaptation:2; 3274*5113495bSYour Name all_ack:1; 3275*5113495bSYour Name trigd_rsp_sched:1; 3276*5113495bSYour Name a_bsr:1; 3277*5113495bSYour Name broadcast_twt:1; 3278*5113495bSYour Name ba_32bit_bitmap:1; 3279*5113495bSYour Name mu_cascade:1; 3280*5113495bSYour Name ack_enabled_multitid:1; 3281*5113495bSYour Name reserved:1; 3282*5113495bSYour Name omi_a_ctrl:1; 3283*5113495bSYour Name ofdma_ra:1; 3284*5113495bSYour Name max_ampdu_len_exp_ext:2; 3285*5113495bSYour Name amsdu_frag:1; 3286*5113495bSYour Name flex_twt_sched:1; 3287*5113495bSYour Name rx_ctrl_frame:1; 3288*5113495bSYour Name } 3289*5113495bSYour Name { 3290*5113495bSYour Name bsrp_ampdu_aggr:1; 3291*5113495bSYour Name qtp:1; 3292*5113495bSYour Name a_bqr:1; 3293*5113495bSYour Name spatial_reuse_param_rspder:1; 3294*5113495bSYour Name ndp_feedback_supp:1; 3295*5113495bSYour Name ops_supp:1; 3296*5113495bSYour Name amsdu_in_ampdu:1; 3297*5113495bSYour Name multi_tid_aggr_tx_supp:3; 3298*5113495bSYour Name he_sub_ch_sel_tx_supp:1; 3299*5113495bSYour Name ul_2x996_tone_ru_supp:1; 3300*5113495bSYour Name om_ctrl_ul_mu_data_dis_rx:1; 3301*5113495bSYour Name he_dynamic_smps:1; 3302*5113495bSYour Name punctured_sounding_supp:1; 3303*5113495bSYour Name ht_vht_trg_frm_rx_supp:1; 3304*5113495bSYour Name } 3305*5113495bSYour Name { 3306*5113495bSYour Name reserved2:1; 3307*5113495bSYour Name chan_width_0:1; 3308*5113495bSYour Name chan_width_1:1; 3309*5113495bSYour Name chan_width_2:1; 3310*5113495bSYour Name chan_width_3:1; 3311*5113495bSYour Name chan_width_4:1; 3312*5113495bSYour Name chan_width_5:1; 3313*5113495bSYour Name chan_width_6:1; 3314*5113495bSYour Name rx_pream_puncturing:4; 3315*5113495bSYour Name device_class:1; 3316*5113495bSYour Name ldpc_coding:1; 3317*5113495bSYour Name he_1x_ltf_800_gi_ppdu:1; 3318*5113495bSYour Name midamble_tx_rx_max_nsts:2; 3319*5113495bSYour Name he_4x_ltf_3200_gi_ndp:1; 3320*5113495bSYour Name tb_ppdu_tx_stbc_lt_80mhz:1; 3321*5113495bSYour Name rx_stbc_lt_80mhz:1; 3322*5113495bSYour Name doppler:2; 3323*5113495bSYour Name ul_mu:2; 3324*5113495bSYour Name dcm_enc_tx:3; 3325*5113495bSYour Name dcm_enc_rx:3; 3326*5113495bSYour Name ul_he_mu:1; 3327*5113495bSYour Name su_beamformer:1; 3328*5113495bSYour Name } 3329*5113495bSYour Name { 3330*5113495bSYour Name su_beamformee:1; 3331*5113495bSYour Name mu_beamformer:1; 3332*5113495bSYour Name bfee_sts_lt_80:3; 3333*5113495bSYour Name bfee_sts_gt_80:3; 3334*5113495bSYour Name num_sounding_lt_80:3; 3335*5113495bSYour Name num_sounding_gt_80:3; 3336*5113495bSYour Name su_feedback_tone16:1; 3337*5113495bSYour Name mu_feedback_tone16:1; 3338*5113495bSYour Name codebook_su:1; 3339*5113495bSYour Name codebook_mu:1; 3340*5113495bSYour Name beamforming_feedback:3; 3341*5113495bSYour Name he_er_su_ppdu:1; 3342*5113495bSYour Name dl_mu_mimo_part_bw:1; 3343*5113495bSYour Name ppet_present:1; 3344*5113495bSYour Name srp:1; 3345*5113495bSYour Name power_boost:1; 3346*5113495bSYour Name he_ltf_800_gi_4x:1; 3347*5113495bSYour Name max_nc:3; 3348*5113495bSYour Name tb_ppdu_tx_stbc_gt_80mhz:1; 3349*5113495bSYour Name rx_stbc_gt_80mhz:1; 3350*5113495bSYour Name } 3351*5113495bSYour Name { 3352*5113495bSYour Name er_he_ltf_800_gi_4x:1; 3353*5113495bSYour Name he_ppdu_20_in_40Mhz_2G:1; 3354*5113495bSYour Name he_ppdu_20_in_160_80p80Mhz:1; 3355*5113495bSYour Name he_ppdu_80_in_160_80p80Mhz:1; 3356*5113495bSYour Name er_1x_he_ltf_gi:1; 3357*5113495bSYour Name midamble_tx_rx_1x_he_ltf:1; 3358*5113495bSYour Name dcm_max_bw:2; 3359*5113495bSYour Name longer_than_16_he_sigb_ofdm_sym:1; 3360*5113495bSYour Name non_trig_cqi_feedback:1; 3361*5113495bSYour Name tx_1024_qam_lt_242_tone_ru:1; 3362*5113495bSYour Name rx_1024_qam_lt_242_tone_ru:1; 3363*5113495bSYour Name rx_full_bw_su_he_mu_compress_sigb:1; 3364*5113495bSYour Name rx_full_bw_su_he_mu_non_cmpr_sigb:1; 3365*5113495bSYour Name reserved3:2; 3366*5113495bSYour Name } 3367*5113495bSYour Name reserved4, 1; 3368*5113495bSYour Name rx_he_mcs_map_lt_80, 2; 3369*5113495bSYour Name tx_he_mcs_map_lt_80, 2; 3370*5113495bSYour Name rx_he_mcs_map_160[2][0..1] COUNTIS chan_width_2; 3371*5113495bSYour Name tx_he_mcs_map_160[2][0..1] COUNTIS chan_width_2; 3372*5113495bSYour Name rx_he_mcs_map_80_80[2][0..1] COUNTIS chan_width_3; 3373*5113495bSYour Name tx_he_mcs_map_80_80[2][0..1] COUNTIS chan_width_3; 3374*5113495bSYour Name OPTIONAL UNION ppet (DISCRIMINATOR ppet_present) 3375*5113495bSYour Name { 3376*5113495bSYour Name ppe_threshold (ppet_present IS 1) 3377*5113495bSYour Name { 3378*5113495bSYour Name ppe_th[1..25]; 3379*5113495bSYour Name } 3380*5113495bSYour Name }; 3381*5113495bSYour Name} 3382*5113495bSYour Name 3383*5113495bSYour NameIE he_op (EID_EXTN_ID_ELEMENT) OUI (0x24) 3384*5113495bSYour Name{ 3385*5113495bSYour Name { 3386*5113495bSYour Name default_pe: 3; 3387*5113495bSYour Name twt_required: 1; 3388*5113495bSYour Name txop_rts_threshold: 10; 3389*5113495bSYour Name vht_oper_present: 1; 3390*5113495bSYour Name co_located_bss: 1; 3391*5113495bSYour Name } 3392*5113495bSYour Name { 3393*5113495bSYour Name er_su_disable: 1; 3394*5113495bSYour Name oper_info_6g_present: 1; 3395*5113495bSYour Name reserved2: 6; 3396*5113495bSYour Name } 3397*5113495bSYour Name { 3398*5113495bSYour Name bss_color:6; 3399*5113495bSYour Name partial_bss_col:1; 3400*5113495bSYour Name bss_col_disabled:1; 3401*5113495bSYour Name } 3402*5113495bSYour Name basic_mcs_nss[2]; 3403*5113495bSYour Name OPTIONAL UNION vht_oper (DISCRIMINATOR vht_oper_present) 3404*5113495bSYour Name { 3405*5113495bSYour Name info (vht_oper_present IS 1) 3406*5113495bSYour Name { 3407*5113495bSYour Name chan_width, 1; 3408*5113495bSYour Name center_freq_seg0, 1; 3409*5113495bSYour Name center_freq_seg1, 1; 3410*5113495bSYour Name } 3411*5113495bSYour Name }; 3412*5113495bSYour Name OPTIONAL UNION maxbssid_ind (DISCRIMINATOR co_located_bss) 3413*5113495bSYour Name { 3414*5113495bSYour Name info (co_located_bss IS 1) 3415*5113495bSYour Name { 3416*5113495bSYour Name data, 1; 3417*5113495bSYour Name } 3418*5113495bSYour Name }; 3419*5113495bSYour Name OPTIONAL UNION oper_info_6g (DISCRIMINATOR oper_info_6g_present) 3420*5113495bSYour Name { 3421*5113495bSYour Name info (oper_info_6g_present IS 1) 3422*5113495bSYour Name { 3423*5113495bSYour Name primary_ch, 1; 3424*5113495bSYour Name { // control 3425*5113495bSYour Name ch_width: 2; 3426*5113495bSYour Name dup_bcon: 1; 3427*5113495bSYour Name reg_info: 3; 3428*5113495bSYour Name reserved: 2; 3429*5113495bSYour Name } 3430*5113495bSYour Name center_freq_seg0, 1; 3431*5113495bSYour Name center_freq_seg1, 1; 3432*5113495bSYour Name min_rate, 1; 3433*5113495bSYour Name } 3434*5113495bSYour Name }; 3435*5113495bSYour Name} 3436*5113495bSYour Name 3437*5113495bSYour NameIE spatial_reuse (EID_EXTN_ID_ELEMENT) OUI (0x27) 3438*5113495bSYour Name{ 3439*5113495bSYour Name { 3440*5113495bSYour Name psr_disallow: 1; 3441*5113495bSYour Name non_srg_pd_sr_disallow: 1; 3442*5113495bSYour Name non_srg_offset_present: 1; 3443*5113495bSYour Name srg_info_present: 1; 3444*5113495bSYour Name sr_value15_allow: 1; 3445*5113495bSYour Name reserved: 3; 3446*5113495bSYour Name } 3447*5113495bSYour Name OPTIONAL UNION non_srg_offset (DISCRIMINATOR non_srg_offset_present) 3448*5113495bSYour Name { 3449*5113495bSYour Name info (non_srg_offset_present IS 1) 3450*5113495bSYour Name { 3451*5113495bSYour Name non_srg_pd_max_offset, 1; 3452*5113495bSYour Name } 3453*5113495bSYour Name }; 3454*5113495bSYour Name OPTIONAL UNION srg_info (DISCRIMINATOR srg_info_present) 3455*5113495bSYour Name { 3456*5113495bSYour Name info (srg_info_present IS 1) 3457*5113495bSYour Name { 3458*5113495bSYour Name srg_pd_min_offset, 1; 3459*5113495bSYour Name srg_pd_max_offset, 1; 3460*5113495bSYour Name srg_color[8]; 3461*5113495bSYour Name srg_partial_bssid[8]; 3462*5113495bSYour Name } 3463*5113495bSYour Name }; 3464*5113495bSYour Name} 3465*5113495bSYour Name 3466*5113495bSYour NameIE he_6ghz_band_cap (EID_EXTN_ID_ELEMENT) OUI (0x3B) 3467*5113495bSYour Name{ 3468*5113495bSYour Name { // capabilities_information 3469*5113495bSYour Name min_mpdu_start_spacing :3; 3470*5113495bSYour Name max_ampdu_len_exp: 3; 3471*5113495bSYour Name max_mpdu_len: 3; 3472*5113495bSYour Name sm_pow_save: 2; 3473*5113495bSYour Name rd_responder: 1; 3474*5113495bSYour Name rx_ant_pattern_consistency: 1; 3475*5113495bSYour Name tx_ant_pattern_consistency: 1; 3476*5113495bSYour Name reserved: 2; 3477*5113495bSYour Name } 3478*5113495bSYour Name} 3479*5113495bSYour Name 3480*5113495bSYour NameIE eht_cap (EID_EXTN_ID_ELEMENT) OUI (0x6C) 3481*5113495bSYour Name{ 3482*5113495bSYour Name { 3483*5113495bSYour Name epcs_pri_access: 1; 3484*5113495bSYour Name eht_om_ctl: 1; 3485*5113495bSYour Name triggered_txop_sharing_mode1: 1; 3486*5113495bSYour Name triggered_txop_sharing_mode2: 1; 3487*5113495bSYour Name restricted_twt: 1; 3488*5113495bSYour Name scs_traffic_desc: 1; 3489*5113495bSYour Name max_mpdu_len: 2; 3490*5113495bSYour Name max_a_mpdu_len_exponent_ext: 1; 3491*5113495bSYour Name eht_trs_support: 1; 3492*5113495bSYour Name txop_return_support_txop_share_m2: 1; 3493*5113495bSYour Name two_bqrs_support: 1; 3494*5113495bSYour Name eht_link_adaptation_support: 2; 3495*5113495bSYour Name reserved: 2; 3496*5113495bSYour Name } 3497*5113495bSYour Name { 3498*5113495bSYour Name reserved2: 1; 3499*5113495bSYour Name support_320mhz_6ghz: 1; 3500*5113495bSYour Name ru_242tone_wt_20mhz: 1; 3501*5113495bSYour Name ndp_4x_eht_ltf_3dot2_us_gi: 1; 3502*5113495bSYour Name partial_bw_mu_mimo: 1; 3503*5113495bSYour Name su_beamformer: 1; 3504*5113495bSYour Name su_beamformee: 1; 3505*5113495bSYour Name bfee_ss_le_80mhz: 3; 3506*5113495bSYour Name bfee_ss_160mhz: 3; 3507*5113495bSYour Name bfee_ss_320mhz: 3; 3508*5113495bSYour Name num_sounding_dim_le_80mhz: 3; 3509*5113495bSYour Name num_sounding_dim_160mhz: 3; 3510*5113495bSYour Name num_sounding_dim_320mhz: 3; 3511*5113495bSYour Name ng_16_su_feedback: 1; 3512*5113495bSYour Name ng_16_mu_feedback: 1; 3513*5113495bSYour Name cb_sz_4_2_su_feedback: 1; 3514*5113495bSYour Name cb_sz_7_5_su_feedback: 1; 3515*5113495bSYour Name trig_su_bforming_feedback: 1; 3516*5113495bSYour Name trig_mu_bforming_partial_bw_feedback: 1; 3517*5113495bSYour Name triggered_cqi_feedback: 1; 3518*5113495bSYour Name } 3519*5113495bSYour Name { 3520*5113495bSYour Name partial_bw_dl_mu_mimo: 1; 3521*5113495bSYour Name psr_based_sr: 1; 3522*5113495bSYour Name power_boost_factor: 1; 3523*5113495bSYour Name eht_mu_ppdu_4x_ltf_0_8_us_gi: 1; 3524*5113495bSYour Name max_nc: 4; 3525*5113495bSYour Name non_trig_cqi_feedback: 1; 3526*5113495bSYour Name tx_1024_4096_qam_lt_242_tone_ru: 1; 3527*5113495bSYour Name rx_1024_4096_qam_lt_242_tone_ru: 1; 3528*5113495bSYour Name ppet_present: 1; 3529*5113495bSYour Name common_nominal_pkt_padding: 2; 3530*5113495bSYour Name max_num_eht_ltf: 5; 3531*5113495bSYour Name mcs_15: 4; 3532*5113495bSYour Name eht_dup_6ghz: 1; 3533*5113495bSYour Name op_sta_rx_ndp_wider_bw_20mhz: 1; 3534*5113495bSYour Name non_ofdma_ul_mu_mimo_le_80mhz: 1; 3535*5113495bSYour Name non_ofdma_ul_mu_mimo_160mhz: 1; 3536*5113495bSYour Name non_ofdma_ul_mu_mimo_320mhz: 1; 3537*5113495bSYour Name mu_bformer_le_80mhz: 1; 3538*5113495bSYour Name mu_bformer_160mhz: 1; 3539*5113495bSYour Name mu_bformer_320mhz: 1; 3540*5113495bSYour Name tb_sounding_feedback_rl: 1; 3541*5113495bSYour Name } 3542*5113495bSYour Name { 3543*5113495bSYour Name rx_1k_qam_in_wider_bw_dl_ofdma: 1; 3544*5113495bSYour Name rx_4k_qam_in_wider_bw_dl_ofdma: 1; 3545*5113495bSYour Name limited_cap_support_20mhz: 1; 3546*5113495bSYour Name triggered_mu_bf_full_bw_fb_and_dl_mumimo: 1; 3547*5113495bSYour Name mru_support_20mhz: 1; 3548*5113495bSYour Name reserved3: 3; 3549*5113495bSYour Name } 3550*5113495bSYour Name { 3551*5113495bSYour Name bw_20_rx_max_nss_for_mcs_0_to_7: 4; 3552*5113495bSYour Name bw_20_tx_max_nss_for_mcs_0_to_7: 4; 3553*5113495bSYour Name bw_20_rx_max_nss_for_mcs_8_and_9: 4; 3554*5113495bSYour Name bw_20_tx_max_nss_for_mcs_8_and_9: 4; 3555*5113495bSYour Name bw_20_rx_max_nss_for_mcs_10_and_11: 4; 3556*5113495bSYour Name bw_20_tx_max_nss_for_mcs_10_and_11: 4; 3557*5113495bSYour Name bw_20_rx_max_nss_for_mcs_12_and_13: 4; 3558*5113495bSYour Name bw_20_tx_max_nss_for_mcs_12_and_13: 4; 3559*5113495bSYour Name 3560*5113495bSYour Name } 3561*5113495bSYour Name { 3562*5113495bSYour Name bw_le_80_rx_max_nss_for_mcs_0_to_9: 4; 3563*5113495bSYour Name bw_le_80_tx_max_nss_for_mcs_0_to_9: 4; 3564*5113495bSYour Name bw_le_80_rx_max_nss_for_mcs_10_and_11: 4; 3565*5113495bSYour Name bw_le_80_tx_max_nss_for_mcs_10_and_11: 4; 3566*5113495bSYour Name bw_le_80_rx_max_nss_for_mcs_12_and_13: 4; 3567*5113495bSYour Name bw_le_80_tx_max_nss_for_mcs_12_and_13: 4; 3568*5113495bSYour Name bw_160_rx_max_nss_for_mcs_0_to_9: 4; 3569*5113495bSYour Name bw_160_tx_max_nss_for_mcs_0_to_9: 4; 3570*5113495bSYour Name } 3571*5113495bSYour Name { 3572*5113495bSYour Name bw_160_rx_max_nss_for_mcs_10_and_11: 4; 3573*5113495bSYour Name bw_160_tx_max_nss_for_mcs_10_and_11: 4; 3574*5113495bSYour Name bw_160_rx_max_nss_for_mcs_12_and_13: 4; 3575*5113495bSYour Name bw_160_tx_max_nss_for_mcs_12_and_13: 4; 3576*5113495bSYour Name bw_320_rx_max_nss_for_mcs_0_to_9: 4; 3577*5113495bSYour Name bw_320_tx_max_nss_for_mcs_0_to_9: 4; 3578*5113495bSYour Name bw_320_rx_max_nss_for_mcs_10_and_11: 4; 3579*5113495bSYour Name bw_320_tx_max_nss_for_mcs_10_and_11: 4; 3580*5113495bSYour Name } 3581*5113495bSYour Name { 3582*5113495bSYour Name bw_320_rx_max_nss_for_mcs_12_and_13: 4; 3583*5113495bSYour Name bw_320_tx_max_nss_for_mcs_12_and_13: 4; 3584*5113495bSYour Name } 3585*5113495bSYour Name OPTIONAL UNION ppet (DISCRIMINATOR ppet_present) 3586*5113495bSYour Name { 3587*5113495bSYour Name ppe_threshold (ppet_present IS 1) 3588*5113495bSYour Name { 3589*5113495bSYour Name ppe_th[2..62]; 3590*5113495bSYour Name } 3591*5113495bSYour Name }; 3592*5113495bSYour Name} 3593*5113495bSYour Name 3594*5113495bSYour NameIE eht_op (EID_EXTN_ID_ELEMENT) OUI (0x6A) 3595*5113495bSYour Name{ 3596*5113495bSYour Name { 3597*5113495bSYour Name eht_op_information_present: 1; 3598*5113495bSYour Name disabled_sub_chan_bitmap_present: 1; 3599*5113495bSYour Name eht_default_pe_duration: 1; 3600*5113495bSYour Name group_addr_bu_indication_limit: 1; 3601*5113495bSYour Name group_addr_bu_indication_exponent: 2; 3602*5113495bSYour Name reserved: 2; 3603*5113495bSYour Name } 3604*5113495bSYour Name { 3605*5113495bSYour Name basic_rx_max_nss_for_mcs_0_to_7: 4; 3606*5113495bSYour Name basic_tx_max_nss_for_mcs_0_to_7: 4; 3607*5113495bSYour Name basic_rx_max_nss_for_mcs_8_and_9: 4; 3608*5113495bSYour Name basic_tx_max_nss_for_mcs_8_and_9: 4; 3609*5113495bSYour Name basic_rx_max_nss_for_mcs_10_and_11: 4; 3610*5113495bSYour Name basic_tx_max_nss_for_mcs_10_and_11: 4; 3611*5113495bSYour Name basic_rx_max_nss_for_mcs_12_and_13: 4; 3612*5113495bSYour Name basic_tx_max_nss_for_mcs_12_and_13: 4; 3613*5113495bSYour Name } 3614*5113495bSYour Name { 3615*5113495bSYour Name channel_width: 3; 3616*5113495bSYour Name reserved_1: 5; 3617*5113495bSYour Name } 3618*5113495bSYour Name ccfs0, 1; 3619*5113495bSYour Name ccfs1, 1; 3620*5113495bSYour Name disabled_sub_chan_bitmap[2][0..1] COUNTIS disabled_sub_chan_bitmap_present; 3621*5113495bSYour Name} 3622*5113495bSYour Name 3623*5113495bSYour NameIE mu_edca_param_set (EID_EXTN_ID_ELEMENT) OUI (0x26) 3624*5113495bSYour Name{ 3625*5113495bSYour Name qos, 1; 3626*5113495bSYour Name { 3627*5113495bSYour Name acbe_aifsn: 4; 3628*5113495bSYour Name acbe_acm: 1; 3629*5113495bSYour Name acbe_aci: 2; 3630*5113495bSYour Name unused1: 1; 3631*5113495bSYour Name } 3632*5113495bSYour Name { 3633*5113495bSYour Name acbe_acwmin: 4; 3634*5113495bSYour Name acbe_acwmax: 4; 3635*5113495bSYour Name } 3636*5113495bSYour Name acbe_muedca_timer, 1; 3637*5113495bSYour Name { 3638*5113495bSYour Name acbk_aifsn: 4; 3639*5113495bSYour Name acbk_acm: 1; 3640*5113495bSYour Name acbk_aci: 2; 3641*5113495bSYour Name unused2: 1; 3642*5113495bSYour Name } 3643*5113495bSYour Name { 3644*5113495bSYour Name acbk_acwmin: 4; 3645*5113495bSYour Name acbk_acwmax: 4; 3646*5113495bSYour Name } 3647*5113495bSYour Name acbk_muedca_timer, 1; 3648*5113495bSYour Name { 3649*5113495bSYour Name acvi_aifsn: 4; 3650*5113495bSYour Name acvi_acm: 1; 3651*5113495bSYour Name acvi_aci: 2; 3652*5113495bSYour Name unused3: 1; 3653*5113495bSYour Name } 3654*5113495bSYour Name { 3655*5113495bSYour Name acvi_acwmin: 4; 3656*5113495bSYour Name acvi_acwmax: 4; 3657*5113495bSYour Name } 3658*5113495bSYour Name acvi_muedca_timer, 1; 3659*5113495bSYour Name { 3660*5113495bSYour Name acvo_aifsn: 4; 3661*5113495bSYour Name acvo_acm: 1; 3662*5113495bSYour Name acvo_aci: 2; 3663*5113495bSYour Name unused4: 1; 3664*5113495bSYour Name } 3665*5113495bSYour Name { 3666*5113495bSYour Name acvo_acwmin: 4; 3667*5113495bSYour Name acvo_acwmax: 4; 3668*5113495bSYour Name } 3669*5113495bSYour Name acvo_muedca_timer, 1; 3670*5113495bSYour Name} 3671*5113495bSYour Name 3672*5113495bSYour NameIE bss_color_change (EID_EXTN_ID_ELEMENT) OUI (0x2A) 3673*5113495bSYour Name{ 3674*5113495bSYour Name countdown, 1; 3675*5113495bSYour Name { 3676*5113495bSYour Name new_color: 6; 3677*5113495bSYour Name reserved: 2; 3678*5113495bSYour Name } 3679*5113495bSYour Name} 3680*5113495bSYour Name 3681*5113495bSYour Name///////////////////////////////////////////////////////////////////////////// 3682*5113495bSYour Name// MULTIIEs // 3683*5113495bSYour Name///////////////////////////////////////////////////////////////////////////// 3684*5113495bSYour Name 3685*5113495bSYour NameMULTIIE WSC ( EID_VENDOR_SPECIFIC ) OUI( 0x00, 0x50, 0xF2, 0x04 ) 3686*5113495bSYour Name{ 3687*5113495bSYour Name MANDATORYTLV Version; // Must be 0x10 3688*5113495bSYour Name OPTIONALTLV WPSState; 3689*5113495bSYour Name OPTIONALTLV APSetupLocked; 3690*5113495bSYour Name OPTIONALTLV SelectedRegistrarConfigMethods; 3691*5113495bSYour Name OPTIONALTLV UUID_E; 3692*5113495bSYour Name OPTIONALTLV UUID_R; 3693*5113495bSYour Name OPTIONALTLV RFBands; 3694*5113495bSYour Name OPTIONALTLV SelectedRegistrar; 3695*5113495bSYour Name OPTIONALTLV ConfigMethods; 3696*5113495bSYour Name OPTIONALTLV AssociationState; 3697*5113495bSYour Name OPTIONALTLV ConfigurationError; 3698*5113495bSYour Name OPTIONALTLV Manufacturer; 3699*5113495bSYour Name OPTIONALTLV ModelName; 3700*5113495bSYour Name OPTIONALTLV ModelNumber; 3701*5113495bSYour Name OPTIONALTLV SerialNumber; 3702*5113495bSYour Name OPTIONALTLV DeviceName; 3703*5113495bSYour Name OPTIONALTLV DevicePasswordID; 3704*5113495bSYour Name OPTIONALTLV PrimaryDeviceType; 3705*5113495bSYour Name OPTIONALTLV RequestType; 3706*5113495bSYour Name OPTIONALTLV ResponseType; 3707*5113495bSYour Name OPTIONALTLV VendorExtension; 3708*5113495bSYour Name OPTIONALTLV RequestDeviceType; 3709*5113495bSYour Name} 3710*5113495bSYour Name 3711*5113495bSYour NameMULTIIE WscBeacon ( EID_VENDOR_SPECIFIC ) OUI( 0x00, 0x50, 0xF2, 0x04 ) 3712*5113495bSYour Name{ 3713*5113495bSYour Name MANDATORYTLV Version; // 0x10 = version 1.0, 0x11 3714*5113495bSYour Name // = version 1.1, etc. 3715*5113495bSYour Name MANDATORYTLV WPSState; // 1 = unconfigured, 2 = 3716*5113495bSYour Name // configured 3717*5113495bSYour Name OPTIONALTLV APSetupLocked; // Must be included if value 3718*5113495bSYour Name // is TRUE 3719*5113495bSYour Name OPTIONALTLV SelectedRegistrar; // BOOL: indicates if the 3720*5113495bSYour Name // user has recently 3721*5113495bSYour Name // activated a Registrar to 3722*5113495bSYour Name // add an Enrollee. 3723*5113495bSYour Name OPTIONALTLV DevicePasswordID; // Device Password ID 3724*5113495bSYour Name // indicates the method or 3725*5113495bSYour Name // identifies the specific 3726*5113495bSYour Name // password that the 3727*5113495bSYour Name // selected Registrar 3728*5113495bSYour Name // intends to use. 3729*5113495bSYour Name OPTIONALTLV SelectedRegistrarConfigMethods; // This attribute contains 3730*5113495bSYour Name // the config methods active 3731*5113495bSYour Name // on the selected 3732*5113495bSYour Name // Registrar. 3733*5113495bSYour Name OPTIONALTLV UUID_E; // The AP's UUID is provided 3734*5113495bSYour Name // only when the AP is a 3735*5113495bSYour Name // dual-band AP in push 3736*5113495bSYour Name // button mode and 3737*5113495bSYour Name // indicating push button 3738*5113495bSYour Name // mode on both radios 3739*5113495bSYour Name OPTIONALTLV RFBands; // Indicates all RF bands 3740*5113495bSYour Name // available on the AP. A 3741*5113495bSYour Name // dual-band AP must provide 3742*5113495bSYour Name // this attribute. 3743*5113495bSYour Name // WSC 2.0 3744*5113495bSYour Name OPTIONALTLV VendorExtension; // Version2 and AuthorizedMACs 3745*5113495bSYour Name 3746*5113495bSYour Name} // End Multi-IE WscBeacon. 3747*5113495bSYour Name 3748*5113495bSYour NameMULTIIE WscAssocReq ( EID_VENDOR_SPECIFIC ) OUI( 0x00, 0x50, 0xF2, 0x04 ) 3749*5113495bSYour Name{ 3750*5113495bSYour Name MANDATORYTLV Version; // 0x10 = version 1.0, 0x11 3751*5113495bSYour Name // = version 1.1, etc. 3752*5113495bSYour Name MANDATORYTLV RequestType; // 3753*5113495bSYour Name // 3754*5113495bSYour Name // WSC 2.0 3755*5113495bSYour Name OPTIONALTLV VendorExtension; // Version2 3756*5113495bSYour Name 3757*5113495bSYour Name} // End Multi-IE WscAssocReq. 3758*5113495bSYour Name 3759*5113495bSYour Name 3760*5113495bSYour NameMULTIIE WscAssocRes ( EID_VENDOR_SPECIFIC ) OUI( 0x00, 0x50, 0xF2, 0x04 ) 3761*5113495bSYour Name{ 3762*5113495bSYour Name MANDATORYTLV Version; // 0x10 = version 1.0, 0x11 3763*5113495bSYour Name // = version 1.1, etc. 3764*5113495bSYour Name MANDATORYTLV ResponseType; // 3765*5113495bSYour Name // 3766*5113495bSYour Name // WSC 2.0 3767*5113495bSYour Name OPTIONALTLV VendorExtension; // Version2 3768*5113495bSYour Name 3769*5113495bSYour Name} // End Multi-IE WscAssocRes. 3770*5113495bSYour Name 3771*5113495bSYour NameMULTIIE WscReassocRes ( 221 ) OUI( 0x00, 0x50, 0xF2, 0x04 ) 3772*5113495bSYour Name{ 3773*5113495bSYour Name MANDATORYTLV Version; // 0x10 = version 1.0, 0x11 3774*5113495bSYour Name // = version 1.1, etc. 3775*5113495bSYour Name MANDATORYTLV ResponseType; // 3776*5113495bSYour Name // 3777*5113495bSYour Name // WSC 2.0 3778*5113495bSYour Name OPTIONALTLV VendorExtension; // Version2 3779*5113495bSYour Name 3780*5113495bSYour Name} // End Multi-IE WscReassocRes 3781*5113495bSYour Name 3782*5113495bSYour NameMULTIIE WscProbeReq ( EID_VENDOR_SPECIFIC ) OUI( 0x00, 0x50, 0xF2, 0x04 ) 3783*5113495bSYour Name{ 3784*5113495bSYour Name MANDATORYTLV Version; // 0x10 = version 1.0, 0x11 3785*5113495bSYour Name // = version 1.1, etc. 3786*5113495bSYour Name MANDATORYTLV RequestType; // 3787*5113495bSYour Name // 3788*5113495bSYour Name MANDATORYTLV ConfigMethods; // Configuration methods the 3789*5113495bSYour Name // Enrollee or Registrar 3790*5113495bSYour Name // supports 3791*5113495bSYour Name MANDATORYTLV UUID_E; // unique GUID generated by 3792*5113495bSYour Name // the Enrollee. 3793*5113495bSYour Name MANDATORYTLV PrimaryDeviceType; 3794*5113495bSYour Name MANDATORYTLV RFBands; // Specific RF bands used 3795*5113495bSYour Name // for this message 3796*5113495bSYour Name MANDATORYTLV AssociationState; // Configuration and previous 3797*5113495bSYour Name // association state 3798*5113495bSYour Name MANDATORYTLV ConfigurationError; 3799*5113495bSYour Name MANDATORYTLV DevicePasswordID; 3800*5113495bSYour Name 3801*5113495bSYour Name // WSC 2.0 3802*5113495bSYour Name OPTIONALTLV Manufacturer; // Must be included in ver 2.0 3803*5113495bSYour Name // or higher. 3804*5113495bSYour Name OPTIONALTLV ModelName; // Must be included in ver 2.0 3805*5113495bSYour Name // or higher. 3806*5113495bSYour Name OPTIONALTLV ModelNumber; // Must be included in ver 2.0 3807*5113495bSYour Name // or higher. 3808*5113495bSYour Name OPTIONALTLV DeviceName; // Must be included in ver 2.0 3809*5113495bSYour Name // or higher. 3810*5113495bSYour Name OPTIONALTLV VendorExtension; // Version2 and RequestToEntroll 3811*5113495bSYour Name 3812*5113495bSYour Name OPTIONALTLV RequestDeviceType; // When a device receives a Probe 3813*5113495bSYour Name // Request containing this type, 3814*5113495bSYour Name // It will only respond if Primary 3815*5113495bSYour Name // or Secondary Device Type matches. 3816*5113495bSYour Name 3817*5113495bSYour Name} // End Multi-IE WscProbeReq. 3818*5113495bSYour Name 3819*5113495bSYour NameMULTIIE WscProbeRes ( EID_VENDOR_SPECIFIC ) OUI( 0x00, 0x50, 0xF2, 0x04 ) 3820*5113495bSYour Name{ 3821*5113495bSYour Name MANDATORYTLV Version; // 0x10 = version 1.0, 0x11 3822*5113495bSYour Name // = version 1.1, etc. 3823*5113495bSYour Name MANDATORYTLV WPSState; // 1 = unconfigured, 2 = 3824*5113495bSYour Name // configured 3825*5113495bSYour Name OPTIONALTLV APSetupLocked; // Must be included if value 3826*5113495bSYour Name // is TRUE 3827*5113495bSYour Name OPTIONALTLV SelectedRegistrar; // BOOL: indicates if the 3828*5113495bSYour Name // user has recently 3829*5113495bSYour Name // activated a Registrar to 3830*5113495bSYour Name // add an Enrollee. 3831*5113495bSYour Name OPTIONALTLV DevicePasswordID; // Device Password ID 3832*5113495bSYour Name // indicates the method or 3833*5113495bSYour Name // identifies the specific 3834*5113495bSYour Name // password that the 3835*5113495bSYour Name // selected Registrar 3836*5113495bSYour Name // intends to use. 3837*5113495bSYour Name OPTIONALTLV SelectedRegistrarConfigMethods; // This attribute contains 3838*5113495bSYour Name // the config methods active 3839*5113495bSYour Name // on the selected 3840*5113495bSYour Name // Registrar. 3841*5113495bSYour Name MANDATORYTLV ResponseType; 3842*5113495bSYour Name MANDATORYTLV UUID_E; // unique identifier of AP 3843*5113495bSYour Name MANDATORYTLV Manufacturer; 3844*5113495bSYour Name MANDATORYTLV ModelName; 3845*5113495bSYour Name MANDATORYTLV ModelNumber; 3846*5113495bSYour Name MANDATORYTLV SerialNumber; 3847*5113495bSYour Name MANDATORYTLV PrimaryDeviceType; 3848*5113495bSYour Name MANDATORYTLV DeviceName; // User-friendly description 3849*5113495bSYour Name // of device 3850*5113495bSYour Name MANDATORYTLV ConfigMethods; // Config Methods corresponds 3851*5113495bSYour Name // to the methods the AP 3852*5113495bSYour Name // supports as an Enrollee 3853*5113495bSYour Name // for adding external 3854*5113495bSYour Name // Registrars. 3855*5113495bSYour Name OPTIONALTLV RFBands; // Indicates all RF bands 3856*5113495bSYour Name // available on the AP. A 3857*5113495bSYour Name // dual-band AP must provide 3858*5113495bSYour Name // this attribute. 3859*5113495bSYour Name // WSC 2.0 3860*5113495bSYour Name OPTIONALTLV VendorExtension; // Version2 and AuthorizedMACs 3861*5113495bSYour Name 3862*5113495bSYour Name} // WscProbeRes. 3863*5113495bSYour Name 3864*5113495bSYour Name// This MULTIIE combines the fields from the WSC IEs as they appear in 3865*5113495bSYour Name// Beacons *and* in Probe Responses, with the difference that they're all 3866*5113495bSYour Name// optional. In our device drivers, we combine Probe Responses and Beacons 3867*5113495bSYour Name// into one list, and parse their IEs later (c.f. frame BeaconIEs). Because 3868*5113495bSYour Name// the WSC IE differs in those two frames, we'd often see warning messages 3869*5113495bSYour Name// about either unexpected fields showing up (if we thought we were parsing a 3870*5113495bSYour Name// Beacon, and we in fact had data from a Probe Response) or mandatory fields 3871*5113495bSYour Name// missing (if we thought we were parsing a Probe Response, and in fact had 3872*5113495bSYour Name// data from a Beacon). 3873*5113495bSYour Name 3874*5113495bSYour Name// I created this MULTIIE to stuff into the BeaconIEs frames to avoid this. 3875*5113495bSYour Name// It's intended to be used on unpack only, and to do so in a very forgiving 3876*5113495bSYour Name// way. 3877*5113495bSYour Name 3878*5113495bSYour NameMULTIIE WscBeaconProbeRes ( EID_VENDOR_SPECIFIC ) OUI( 0x00, 0x50, 0xF2, 0x04 ) 3879*5113495bSYour Name{ 3880*5113495bSYour Name OPTIONALTLV Version; // 0x10 = version 1.0, 0x11 3881*5113495bSYour Name // = version 1.1, etc. 3882*5113495bSYour Name OPTIONALTLV WPSState; // 1 = unconfigured, 2 = 3883*5113495bSYour Name // configured 3884*5113495bSYour Name OPTIONALTLV APSetupLocked; // Must be included if value 3885*5113495bSYour Name // is TRUE 3886*5113495bSYour Name OPTIONALTLV SelectedRegistrar; // BOOL: indicates if the 3887*5113495bSYour Name // user has recently 3888*5113495bSYour Name // activated a Registrar to 3889*5113495bSYour Name // add an Enrollee. 3890*5113495bSYour Name OPTIONALTLV DevicePasswordID; // Device Password ID 3891*5113495bSYour Name // indicates the method or 3892*5113495bSYour Name // identifies the specific 3893*5113495bSYour Name // password that the 3894*5113495bSYour Name // selected Registrar 3895*5113495bSYour Name // intends to use. 3896*5113495bSYour Name OPTIONALTLV SelectedRegistrarConfigMethods; // This attribute contains 3897*5113495bSYour Name // the config methods active 3898*5113495bSYour Name // on the selected 3899*5113495bSYour Name // Registrar. 3900*5113495bSYour Name OPTIONALTLV ResponseType; 3901*5113495bSYour Name OPTIONALTLV UUID_E; // unique identifier of AP 3902*5113495bSYour Name OPTIONALTLV Manufacturer; 3903*5113495bSYour Name OPTIONALTLV ModelName; 3904*5113495bSYour Name OPTIONALTLV ModelNumber; 3905*5113495bSYour Name OPTIONALTLV SerialNumber; 3906*5113495bSYour Name OPTIONALTLV PrimaryDeviceType; 3907*5113495bSYour Name OPTIONALTLV DeviceName; // User-friendly description 3908*5113495bSYour Name // of device 3909*5113495bSYour Name OPTIONALTLV ConfigMethods; // Config Methods corresponds 3910*5113495bSYour Name // to the methods the AP 3911*5113495bSYour Name // supports as an Enrollee 3912*5113495bSYour Name // for adding external 3913*5113495bSYour Name // Registrars. 3914*5113495bSYour Name OPTIONALTLV RFBands; // Indicates all RF bands 3915*5113495bSYour Name // available on the AP. A 3916*5113495bSYour Name // dual-band AP must provide 3917*5113495bSYour Name // this attribute. 3918*5113495bSYour Name // WSC 2.0 3919*5113495bSYour Name OPTIONALTLV VendorExtension; // Version2 and AuthorizedMACs 3920*5113495bSYour Name 3921*5113495bSYour Name} // WscProbeRes. 3922*5113495bSYour Name///////////////////////////////////////////////////////////////////////////// 3923*5113495bSYour Name// MULTIIEs // 3924*5113495bSYour Name///////////////////////////////////////////////////////////////////////////// 3925*5113495bSYour Name 3926*5113495bSYour NameMULTIIE P2PBeacon ( EID_VENDOR_SPECIFIC ) OUI( 0x50, 0x6F, 0x9A, 0x09 ) 3927*5113495bSYour Name{ 3928*5113495bSYour Name MANDATORYTLV P2PCapability; // Contains P2P Device 3929*5113495bSYour Name // and P2P Group Capability 3930*5113495bSYour Name MANDATORYTLV P2PDeviceId; // Contains P2P Device 3931*5113495bSYour Name // Address 3932*5113495bSYour Name OPTIONALTLV NoticeOfAbsence; // Indicates Notice of 3933*5113495bSYour Name // Absence schedule and 3934*5113495bSYour Name // CT Window 3935*5113495bSYour Name 3936*5113495bSYour Name} // End P2PBeacon 3937*5113495bSYour Name 3938*5113495bSYour Name 3939*5113495bSYour NameMULTIIE P2PAssocReq ( EID_VENDOR_SPECIFIC ) OUI( 0x50, 0x6F, 0x9A, 0x09 ) 3940*5113495bSYour Name{ 3941*5113495bSYour Name MANDATORYTLV P2PCapability; // Contains P2P Device 3942*5113495bSYour Name // and P2P Group Capability 3943*5113495bSYour Name OPTIONALTLV ExtendedListenTiming; 3944*5113495bSYour Name MANDATORYTLV P2PDeviceInfo; 3945*5113495bSYour Name 3946*5113495bSYour Name} // End P2PAssocReq 3947*5113495bSYour Name 3948*5113495bSYour Name 3949*5113495bSYour NameMULTIIE P2PAssocRes ( EID_VENDOR_SPECIFIC ) OUI( 0x50, 0x6F, 0x9A, 0x09 ) 3950*5113495bSYour Name{ 3951*5113495bSYour Name MANDATORYTLV P2PStatus; 3952*5113495bSYour Name OPTIONALTLV ExtendedListenTiming; 3953*5113495bSYour Name 3954*5113495bSYour Name} // End P2PAssocRes 3955*5113495bSYour Name 3956*5113495bSYour Name 3957*5113495bSYour NameMULTIIE P2PProbeReq ( EID_VENDOR_SPECIFIC ) OUI( 0x50, 0x6F, 0x9A, 0x09 ) 3958*5113495bSYour Name{ 3959*5113495bSYour Name MANDATORYTLV P2PCapability; 3960*5113495bSYour Name OPTIONALTLV P2PDeviceId; 3961*5113495bSYour Name MANDATORYTLV ListenChannel; 3962*5113495bSYour Name OPTIONALTLV ExtendedListenTiming; 3963*5113495bSYour Name OPTIONALTLV OperatingChannel; 3964*5113495bSYour Name} // End P2PProbeReq 3965*5113495bSYour Name 3966*5113495bSYour Name 3967*5113495bSYour NameMULTIIE P2PProbeRes ( EID_VENDOR_SPECIFIC ) OUI( 0x50, 0x6F, 0x9A, 0x09 ) 3968*5113495bSYour Name{ 3969*5113495bSYour Name MANDATORYTLV P2PCapability; 3970*5113495bSYour Name OPTIONALTLV ExtendedListenTiming; 3971*5113495bSYour Name OPTIONALTLV NoticeOfAbsence; 3972*5113495bSYour Name MANDATORYTLV P2PDeviceInfo; 3973*5113495bSYour Name OPTIONALTLV P2PGroupInfo; 3974*5113495bSYour Name 3975*5113495bSYour Name} // End P2PProbeRes 3976*5113495bSYour Name 3977*5113495bSYour Name 3978*5113495bSYour NameMULTIIE P2PBeaconProbeRes ( EID_VENDOR_SPECIFIC ) OUI( 0x50, 0x6F, 0x9A, 0x09 ) 3979*5113495bSYour Name{ 3980*5113495bSYour Name OPTIONALTLV P2PCapability; 3981*5113495bSYour Name OPTIONALTLV P2PDeviceId; 3982*5113495bSYour Name OPTIONALTLV ExtendedListenTiming; 3983*5113495bSYour Name OPTIONALTLV NoticeOfAbsence; 3984*5113495bSYour Name OPTIONALTLV P2PDeviceInfo; 3985*5113495bSYour Name OPTIONALTLV P2PGroupInfo; 3986*5113495bSYour Name 3987*5113495bSYour Name} // End P2PBeaconProbeRes 3988*5113495bSYour Name 3989*5113495bSYour Name 3990*5113495bSYour NameMULTIIE P2PDeAuth ( EID_VENDOR_SPECIFIC ) OUI( 0x50, 0x6F, 0x9A, 0x09 ) 3991*5113495bSYour Name{ 3992*5113495bSYour Name MANDATORYTLV MinorReasonCode; 3993*5113495bSYour Name} 3994*5113495bSYour Name 3995*5113495bSYour Name 3996*5113495bSYour NameMULTIIE P2PDisAssoc ( EID_VENDOR_SPECIFIC ) OUI( 0x50, 0x6F, 0x9A, 0x09 ) 3997*5113495bSYour Name{ 3998*5113495bSYour Name MANDATORYTLV MinorReasonCode; 3999*5113495bSYour Name} 4000*5113495bSYour Name 4001*5113495bSYour NameMULTIIE MBO_IE (EID_VENDOR_SPECIFIC) OUI ( 0x50, 0x6F, 0x9A, 0x16 ) 4002*5113495bSYour Name{ 4003*5113495bSYour Name OPTIONALTLV mbo_ap_cap; 4004*5113495bSYour Name OPTIONALTLV non_prefferd_chan_rep; 4005*5113495bSYour Name OPTIONALTLV cellular_data_cap ; 4006*5113495bSYour Name OPTIONALTLV assoc_disallowed; 4007*5113495bSYour Name OPTIONALTLV cellular_data_con_pref; 4008*5113495bSYour Name OPTIONALTLV transition_reason; 4009*5113495bSYour Name OPTIONALTLV transition_reject_reason; 4010*5113495bSYour Name OPTIONALTLV assoc_retry_delay; 4011*5113495bSYour Name OPTIONALTLV oce_cap; 4012*5113495bSYour Name OPTIONALTLV rssi_assoc_rej; 4013*5113495bSYour Name OPTIONALTLV reduced_wan_metrics; 4014*5113495bSYour Name} 4015*5113495bSYour Name 4016*5113495bSYour NameIE vendor_vht_ie (EID_VENDOR_SPECIFIC) OUI (0x00, 0x90, 0x4c, 0x04) 4017*5113495bSYour Name{ 4018*5113495bSYour Name sub_type, 1; 4019*5113495bSYour Name OPTIE IE VHTCaps; 4020*5113495bSYour Name OPTIE IE VHTOperation; 4021*5113495bSYour Name} 4022*5113495bSYour Name 4023*5113495bSYour NameIE non_inheritance (EID_EXTN_ID_ELEMENT) OUI (0x38) 4024*5113495bSYour Name{ 4025*5113495bSYour Name data[0..255]; 4026*5113495bSYour Name} 4027*5113495bSYour Name 4028*5113495bSYour NameIE mlo_ie (EID_EXTN_ID_ELEMENT) OUI (0x6B) 4029*5113495bSYour Name{ 4030*5113495bSYour Name data[9..255]; 4031*5113495bSYour Name} 4032*5113495bSYour Name 4033*5113495bSYour NameIE t2lm_ie (EID_EXTN_ID_ELEMENT) OUI (0x6D) 4034*5113495bSYour Name{ 4035*5113495bSYour Name data[3..255]; 4036*5113495bSYour Name} 4037*5113495bSYour Name 4038*5113495bSYour Name///////////////////////////////////////////////////////////////////////////// 4039*5113495bSYour Name// Frames 4040*5113495bSYour Name 4041*5113495bSYour NameFRAME Beacon // C.f. Sec. 7.2.3.1 4042*5113495bSYour Name{ 4043*5113495bSYour Name FF TimeStamp; 4044*5113495bSYour Name FF BeaconInterval; 4045*5113495bSYour Name FF Capabilities; 4046*5113495bSYour Name MANDIE SSID; 4047*5113495bSYour Name MANDIE SuppRates; 4048*5113495bSYour Name OPTIE FHParamSet; 4049*5113495bSYour Name OPTIE DSParams; 4050*5113495bSYour Name OPTIE CFParams; 4051*5113495bSYour Name OPTIE TIM; 4052*5113495bSYour Name OPTIE Country; 4053*5113495bSYour Name OPTIE FHParams; 4054*5113495bSYour Name OPTIE FHPattTable; 4055*5113495bSYour Name OPTIE PowerConstraints; 4056*5113495bSYour Name OPTIE ChanSwitchAnn; 4057*5113495bSYour Name OPTIE Quiet; 4058*5113495bSYour Name OPTIE TPCReport; 4059*5113495bSYour Name OPTIE ERPInfo; 4060*5113495bSYour Name OPTIE ExtSuppRates; 4061*5113495bSYour Name OPTIE RSN; 4062*5113495bSYour Name OPTIE QBSSLoad; 4063*5113495bSYour Name OPTIE EDCAParamSet; 4064*5113495bSYour Name OPTIE QOSCapsAp; 4065*5113495bSYour Name OPTIE APChannelReport; 4066*5113495bSYour Name OPTIE RRMEnabledCap; 4067*5113495bSYour Name OPTIE MobilityDomain; 4068*5113495bSYour Name OPTIE ext_chan_switch_ann; 4069*5113495bSYour Name OPTIE SuppOperatingClasses; 4070*5113495bSYour Name OPTIE HTCaps; 4071*5113495bSYour Name OPTIE HTInfo; 4072*5113495bSYour Name OPTIE OBSSScanParameters; 4073*5113495bSYour Name OPTIE ExtCap; 4074*5113495bSYour Name OPTIE VHTCaps; 4075*5113495bSYour Name OPTIE VHTOperation; 4076*5113495bSYour Name OPTIE transmit_power_env[0..8]; 4077*5113495bSYour Name OPTIE ChannelSwitchWrapper; 4078*5113495bSYour Name OPTIE VHTExtBssLoad; 4079*5113495bSYour Name OPTIE OperatingMode; 4080*5113495bSYour Name OPTIE fils_indication; 4081*5113495bSYour Name OPTIE max_chan_switch_time; 4082*5113495bSYour Name OPTIE esp_information; 4083*5113495bSYour Name OPTIE he_cap; 4084*5113495bSYour Name OPTIE he_op; 4085*5113495bSYour Name OPTIE spatial_reuse; 4086*5113495bSYour Name OPTIE bss_color_change; 4087*5113495bSYour Name OPTIE mu_edca_param_set; 4088*5113495bSYour Name OPTIE he_6ghz_band_cap; 4089*5113495bSYour Name 4090*5113495bSYour Name OPTIE sec_chan_offset_ele; 4091*5113495bSYour Name OPTIE WAPI; 4092*5113495bSYour Name OPTIE ESETxmitPower; 4093*5113495bSYour Name OPTIE WiderBWChanSwitchAnn; 4094*5113495bSYour Name OPTIE eht_cap; 4095*5113495bSYour Name OPTIE eht_op; 4096*5113495bSYour Name OPTIE mlo_ie; 4097*5113495bSYour Name OPTIE t2lm_ie[0..2]; 4098*5113495bSYour Name 4099*5113495bSYour Name OPTIE WPA; 4100*5113495bSYour Name OPTIE WMMInfoAp; 4101*5113495bSYour Name OPTIE WMMParams; 4102*5113495bSYour Name OPTIE WMMCaps; 4103*5113495bSYour Name OPTIE ESEVersion; 4104*5113495bSYour Name OPTIE ESERadMgmtCap; 4105*5113495bSYour Name OPTIE ESETrafStrmMet; 4106*5113495bSYour Name OPTIE WscBeacon; 4107*5113495bSYour Name OPTIE P2PBeacon; 4108*5113495bSYour Name OPTIE Vendor1IE; 4109*5113495bSYour Name OPTIE vendor_vht_ie; 4110*5113495bSYour Name OPTIE Vendor3IE; 4111*5113495bSYour Name OPTIE hs20vendor_ie; 4112*5113495bSYour Name OPTIE QComVendorIE; 4113*5113495bSYour Name OPTIE MBO_IE; 4114*5113495bSYour Name OPTIE qcn_ie; 4115*5113495bSYour Name OPTIE reduced_neighbor_report; 4116*5113495bSYour Name} // End frame Beacon. 4117*5113495bSYour Name 4118*5113495bSYour Name// Ok, here's the story on Beacon1 & Beacon2. We presumably beacon a lot 4119*5113495bSYour Name// more than we change configuration. So it makes sense to keep the beacon 4120*5113495bSYour Name// we plan to send next in serialized format. We do this in struct schMisc. 4121*5113495bSYour Name// Whenever our config changes in a way that would affect our beacons, we 4122*5113495bSYour Name// just update our internal datastructures & re-generate the serialized 4123*5113495bSYour Name// beacon. 4124*5113495bSYour Name 4125*5113495bSYour Name// The problem is that there are *some* fields that need to be updated at 4126*5113495bSYour Name// send time, specifically the CF Param Set & the TIM. So, what we do is 4127*5113495bSYour Name// this: whenever our config changes, call schSetFixedBeaconFields. There, 4128*5113495bSYour Name// we serialize the following Beacon fields into gSchBeaconFrameBegin (after 4129*5113495bSYour Name// the power template & MAC header): TimeStamp, BeaconInterval, Capabilities, 4130*5113495bSYour Name// SSID, SuppRates, DSParams. It sets gSchBeaconOffsetBegin to 4131*5113495bSYour Name// the length of this buffer (incl. power template & MAC header). 4132*5113495bSYour Name 4133*5113495bSYour Name// Next, it serializes the following fields into gSchBeaconFrameEnd: Country, 4134*5113495bSYour Name// EDCAParamSet, PowerConstraints, TPCReport, ChannelSwitchAnn, Quiet, 4135*5113495bSYour Name// ERPInfo, HTCaps, HTInfo, ExtSuppRates, WPA, RSN, WMMInfo, 4136*5113495bSYour Name// WMMParams, WMMCaps. 4137*5113495bSYour Name// The length of *this* buffer is kept in gSchBeaconOffsetEnd. 4138*5113495bSYour Name 4139*5113495bSYour Name// Then, in 'schBeaconInterruptHandler', we write CFParams & TIM at the end 4140*5113495bSYour Name// of gSchBeaconFrameBegin, keeping track of the (new) size of this buffer in 4141*5113495bSYour Name// the local 'beaconSize'. 4142*5113495bSYour Name 4143*5113495bSYour Name// After that, we call 'specialBeaconProcessing'. Note that this may 4144*5113495bSYour Name// actually call schSetFixedBeaconFields repeatedly! The comments say they 4145*5113495bSYour Name// try to avoid this, but... 4146*5113495bSYour Name 4147*5113495bSYour Name// Finally, we call writeBeaconToTFP, where the first thing we do is copy the 4148*5113495bSYour Name// gSchBeaconFrameEnd buffer after the end of gSchBeaconFrameBegin. 4149*5113495bSYour Name 4150*5113495bSYour NameFRAME Beacon1 4151*5113495bSYour Name{ 4152*5113495bSYour Name FF TimeStamp; 4153*5113495bSYour Name FF BeaconInterval; 4154*5113495bSYour Name FF Capabilities; 4155*5113495bSYour Name MANDIE SSID; 4156*5113495bSYour Name MANDIE SuppRates; 4157*5113495bSYour Name OPTIE DSParams; 4158*5113495bSYour Name} 4159*5113495bSYour Name 4160*5113495bSYour NameFRAME Beacon2 4161*5113495bSYour Name{ 4162*5113495bSYour Name OPTIE Country; 4163*5113495bSYour Name OPTIE PowerConstraints; 4164*5113495bSYour Name OPTIE ChanSwitchAnn; 4165*5113495bSYour Name OPTIE Quiet; 4166*5113495bSYour Name OPTIE TPCReport; 4167*5113495bSYour Name OPTIE ERPInfo; 4168*5113495bSYour Name OPTIE ExtSuppRates; 4169*5113495bSYour Name OPTIE RSNOpaque; 4170*5113495bSYour Name OPTIE EDCAParamSet; 4171*5113495bSYour Name OPTIE APChannelReport; 4172*5113495bSYour Name OPTIE RRMEnabledCap; 4173*5113495bSYour Name OPTIE MobilityDomain; 4174*5113495bSYour Name OPTIE ext_chan_switch_ann; 4175*5113495bSYour Name OPTIE SuppOperatingClasses; 4176*5113495bSYour Name OPTIE HTCaps; 4177*5113495bSYour Name OPTIE HTInfo; 4178*5113495bSYour Name OPTIE OBSSScanParameters; 4179*5113495bSYour Name OPTIE ExtCap; 4180*5113495bSYour Name OPTIE VHTCaps; 4181*5113495bSYour Name OPTIE VHTOperation; 4182*5113495bSYour Name OPTIE transmit_power_env[0..8]; 4183*5113495bSYour Name OPTIE ChannelSwitchWrapper; 4184*5113495bSYour Name OPTIE VHTExtBssLoad; 4185*5113495bSYour Name OPTIE OperatingMode; 4186*5113495bSYour Name OPTIE fils_indication; 4187*5113495bSYour Name OPTIE max_chan_switch_time; 4188*5113495bSYour Name OPTIE esp_information; 4189*5113495bSYour Name OPTIE he_cap; 4190*5113495bSYour Name OPTIE he_op; 4191*5113495bSYour Name OPTIE spatial_reuse; 4192*5113495bSYour Name OPTIE bss_color_change; 4193*5113495bSYour Name OPTIE mu_edca_param_set; 4194*5113495bSYour Name OPTIE he_6ghz_band_cap; 4195*5113495bSYour Name 4196*5113495bSYour Name OPTIE sec_chan_offset_ele; 4197*5113495bSYour Name OPTIE WAPI; 4198*5113495bSYour Name OPTIE ESETxmitPower; 4199*5113495bSYour Name OPTIE WiderBWChanSwitchAnn; 4200*5113495bSYour Name OPTIE eht_cap; 4201*5113495bSYour Name OPTIE eht_op; 4202*5113495bSYour Name OPTIE mlo_ie; 4203*5113495bSYour Name OPTIE t2lm_ie[0..2]; 4204*5113495bSYour Name 4205*5113495bSYour Name OPTIE WPA; 4206*5113495bSYour Name OPTIE WMMInfoAp; 4207*5113495bSYour Name OPTIE WMMParams; 4208*5113495bSYour Name OPTIE WMMCaps; 4209*5113495bSYour Name OPTIE ESERadMgmtCap; 4210*5113495bSYour Name OPTIE ESETrafStrmMet; 4211*5113495bSYour Name OPTIE WscBeacon; 4212*5113495bSYour Name OPTIE P2PBeacon; 4213*5113495bSYour Name OPTIE Vendor1IE; 4214*5113495bSYour Name OPTIE vendor_vht_ie; 4215*5113495bSYour Name OPTIE Vendor3IE; 4216*5113495bSYour Name OPTIE hs20vendor_ie; 4217*5113495bSYour Name OPTIE QComVendorIE; 4218*5113495bSYour Name OPTIE ESEVersion; 4219*5113495bSYour Name OPTIE qcn_ie; 4220*5113495bSYour Name OPTIE reduced_neighbor_report; 4221*5113495bSYour Name} 4222*5113495bSYour Name 4223*5113495bSYour Name// This frame is just Beacon with its Fixed Fields stripped out. It's handy 4224*5113495bSYour Name// for use with struct 'tSirBssDescription', which has members corresponding 4225*5113495bSYour Name// to some fixed fields, but keeps its IEs in un-parsed format. 4226*5113495bSYour Name 4227*5113495bSYour Name// Note that it also includes the IE 'WscBeaconProbeRes'. 4228*5113495bSYour Name 4229*5113495bSYour NameFRAME BeaconIEs 4230*5113495bSYour Name{ 4231*5113495bSYour Name 4232*5113495bSYour Name MANDIE SSID; 4233*5113495bSYour Name MANDIE SuppRates; 4234*5113495bSYour Name OPTIE FHParamSet; 4235*5113495bSYour Name OPTIE DSParams; 4236*5113495bSYour Name OPTIE CFParams; 4237*5113495bSYour Name OPTIE TIM; 4238*5113495bSYour Name OPTIE Country; 4239*5113495bSYour Name OPTIE FHParams; 4240*5113495bSYour Name OPTIE FHPattTable; 4241*5113495bSYour Name OPTIE PowerConstraints; 4242*5113495bSYour Name OPTIE ChanSwitchAnn; 4243*5113495bSYour Name OPTIE Quiet; 4244*5113495bSYour Name OPTIE TPCReport; 4245*5113495bSYour Name OPTIE ERPInfo; 4246*5113495bSYour Name OPTIE ExtSuppRates; 4247*5113495bSYour Name OPTIE RSN; 4248*5113495bSYour Name OPTIE QBSSLoad; 4249*5113495bSYour Name OPTIE EDCAParamSet; 4250*5113495bSYour Name OPTIE QOSCapsAp; 4251*5113495bSYour Name OPTIE APChannelReport; 4252*5113495bSYour Name OPTIE RRMEnabledCap; 4253*5113495bSYour Name OPTIE MobilityDomain; 4254*5113495bSYour Name OPTIE ext_chan_switch_ann; 4255*5113495bSYour Name OPTIE SuppOperatingClasses; 4256*5113495bSYour Name OPTIE HTCaps; 4257*5113495bSYour Name OPTIE HTInfo; 4258*5113495bSYour Name OPTIE OBSSScanParameters; 4259*5113495bSYour Name OPTIE ExtCap; 4260*5113495bSYour Name OPTIE VHTCaps; 4261*5113495bSYour Name OPTIE VHTOperation; 4262*5113495bSYour Name OPTIE transmit_power_env[0..8]; 4263*5113495bSYour Name OPTIE ChannelSwitchWrapper; 4264*5113495bSYour Name OPTIE VHTExtBssLoad; 4265*5113495bSYour Name OPTIE OperatingMode; 4266*5113495bSYour Name OPTIE fils_indication; 4267*5113495bSYour Name OPTIE max_chan_switch_time; 4268*5113495bSYour Name OPTIE esp_information; 4269*5113495bSYour Name OPTIE he_cap; 4270*5113495bSYour Name OPTIE he_op; 4271*5113495bSYour Name OPTIE spatial_reuse; 4272*5113495bSYour Name OPTIE bss_color_change; 4273*5113495bSYour Name OPTIE mu_edca_param_set; 4274*5113495bSYour Name OPTIE he_6ghz_band_cap; 4275*5113495bSYour Name 4276*5113495bSYour Name OPTIE sec_chan_offset_ele; 4277*5113495bSYour Name OPTIE WAPI; 4278*5113495bSYour Name OPTIE ESETxmitPower; 4279*5113495bSYour Name OPTIE WiderBWChanSwitchAnn; 4280*5113495bSYour Name OPTIE eht_cap; 4281*5113495bSYour Name OPTIE eht_op; 4282*5113495bSYour Name OPTIE mlo_ie; 4283*5113495bSYour Name OPTIE t2lm_ie[0..2]; 4284*5113495bSYour Name 4285*5113495bSYour Name OPTIE WPA; 4286*5113495bSYour Name OPTIE WMMInfoAp; 4287*5113495bSYour Name OPTIE WMMParams; 4288*5113495bSYour Name OPTIE WMMCaps; 4289*5113495bSYour Name OPTIE ESEVersion; 4290*5113495bSYour Name OPTIE ESERadMgmtCap; 4291*5113495bSYour Name OPTIE ESETrafStrmMet; 4292*5113495bSYour Name OPTIE WscBeaconProbeRes; 4293*5113495bSYour Name OPTIE P2PBeaconProbeRes; 4294*5113495bSYour Name OPTIE Vendor1IE; 4295*5113495bSYour Name OPTIE vendor_vht_ie; 4296*5113495bSYour Name OPTIE Vendor3IE; 4297*5113495bSYour Name OPTIE hs20vendor_ie; 4298*5113495bSYour Name OPTIE QComVendorIE; 4299*5113495bSYour Name OPTIE MBO_IE; 4300*5113495bSYour Name OPTIE qcn_ie; 4301*5113495bSYour Name OPTIE reduced_neighbor_report; 4302*5113495bSYour Name} // End frame BeaconIEs. 4303*5113495bSYour Name 4304*5113495bSYour NameFRAME Disassociation // 7.3.3.3 4305*5113495bSYour Name{ 4306*5113495bSYour Name FF Reason; 4307*5113495bSYour Name OPTIE P2PDisAssoc; 4308*5113495bSYour Name} 4309*5113495bSYour Name 4310*5113495bSYour NameFRAME AssocRequest // 7.2.3.4 4311*5113495bSYour Name{ 4312*5113495bSYour Name FF Capabilities; 4313*5113495bSYour Name FF ListenInterval; 4314*5113495bSYour Name MANDIE SSID; 4315*5113495bSYour Name MANDIE SuppRates; 4316*5113495bSYour Name OPTIE ExtSuppRates; 4317*5113495bSYour Name OPTIE PowerCaps; 4318*5113495bSYour Name OPTIE SuppChannels; 4319*5113495bSYour Name OPTIE RSNOpaque; 4320*5113495bSYour Name OPTIE QOSCapsStation; 4321*5113495bSYour Name OPTIE RRMEnabledCap; 4322*5113495bSYour Name OPTIE MobilityDomain; 4323*5113495bSYour Name OPTIE SuppOperatingClasses; 4324*5113495bSYour Name OPTIE HTCaps; 4325*5113495bSYour Name OPTIE ExtCap; 4326*5113495bSYour Name OPTIE VHTCaps; 4327*5113495bSYour Name OPTIE OperatingMode; 4328*5113495bSYour Name OPTIE fils_session; 4329*5113495bSYour Name OPTIE fils_public_key; 4330*5113495bSYour Name OPTIE fils_key_confirmation; 4331*5113495bSYour Name OPTIE fils_hlp_container; 4332*5113495bSYour Name OPTIE bss_max_idle_period; 4333*5113495bSYour Name OPTIE FTInfo; 4334*5113495bSYour Name OPTIE he_cap; 4335*5113495bSYour Name OPTIE he_6ghz_band_cap; 4336*5113495bSYour Name 4337*5113495bSYour Name OPTIE WAPIOpaque; 4338*5113495bSYour Name OPTIE WAPI; 4339*5113495bSYour Name OPTIE QosMapSet; 4340*5113495bSYour Name OPTIE fragment_ie; 4341*5113495bSYour Name OPTIE dh_parameter_element; 4342*5113495bSYour Name OPTIE eht_cap; 4343*5113495bSYour Name OPTIE mlo_ie; 4344*5113495bSYour Name OPTIE t2lm_ie[0..2]; 4345*5113495bSYour Name 4346*5113495bSYour Name OPTIE WPAOpaque; 4347*5113495bSYour Name OPTIE WMMCaps; 4348*5113495bSYour Name OPTIE WMMInfoStation; 4349*5113495bSYour Name OPTIE WscIEOpaque; 4350*5113495bSYour Name OPTIE ESERadMgmtCap; 4351*5113495bSYour Name OPTIE ESEVersion; 4352*5113495bSYour Name OPTIE P2PIEOpaque; 4353*5113495bSYour Name OPTIE WFDIEOpaque; 4354*5113495bSYour Name OPTIE vendor_vht_ie; 4355*5113495bSYour Name OPTIE hs20vendor_ie; 4356*5113495bSYour Name OPTIE qcn_ie; 4357*5113495bSYour Name OPTIE osen_ie; 4358*5113495bSYour Name OPTIE roaming_consortium_sel; 4359*5113495bSYour Name} // End frame AssocRequest. 4360*5113495bSYour Name 4361*5113495bSYour NameFRAME AssocResponse // 7.2.3.5 4362*5113495bSYour Name{ 4363*5113495bSYour Name FF Capabilities; 4364*5113495bSYour Name FF Status; 4365*5113495bSYour Name FF AID; 4366*5113495bSYour Name MANDIE SuppRates; 4367*5113495bSYour Name OPTIE ExtSuppRates; 4368*5113495bSYour Name OPTIE EDCAParamSet; 4369*5113495bSYour Name OPTIE RCPIIE; 4370*5113495bSYour Name OPTIE RSNIIE; 4371*5113495bSYour Name OPTIE RRMEnabledCap; 4372*5113495bSYour Name OPTIE MobilityDomain; 4373*5113495bSYour Name OPTIE FTInfo; 4374*5113495bSYour Name OPTIE TimeoutInterval; 4375*5113495bSYour Name OPTIE HTCaps; 4376*5113495bSYour Name OPTIE HTInfo; 4377*5113495bSYour Name OPTIE OBSSScanParameters; 4378*5113495bSYour Name OPTIE ExtCap; 4379*5113495bSYour Name OPTIE bss_max_idle_period; 4380*5113495bSYour Name OPTIE QosMapSet; 4381*5113495bSYour Name OPTIE VHTCaps; 4382*5113495bSYour Name OPTIE VHTOperation; 4383*5113495bSYour Name OPTIE OperatingMode; 4384*5113495bSYour Name OPTIE fils_session; 4385*5113495bSYour Name OPTIE fils_public_key; 4386*5113495bSYour Name OPTIE fils_key_confirmation; 4387*5113495bSYour Name OPTIE fils_hlp_container; 4388*5113495bSYour Name OPTIE he_cap; 4389*5113495bSYour Name OPTIE he_op; 4390*5113495bSYour Name OPTIE spatial_reuse; 4391*5113495bSYour Name OPTIE bss_color_change; 4392*5113495bSYour Name OPTIE mu_edca_param_set; 4393*5113495bSYour Name OPTIE he_6ghz_band_cap; 4394*5113495bSYour Name 4395*5113495bSYour Name OPTIE RICDataDesc[2]; 4396*5113495bSYour Name OPTIE ESETxmitPower; 4397*5113495bSYour Name OPTIE fragment_ie; 4398*5113495bSYour Name OPTIE fils_kde; 4399*5113495bSYour Name OPTIE eht_cap; 4400*5113495bSYour Name OPTIE eht_op; 4401*5113495bSYour Name OPTIE mlo_ie; 4402*5113495bSYour Name OPTIE t2lm_ie[0..2]; 4403*5113495bSYour Name 4404*5113495bSYour Name OPTIE WPA; 4405*5113495bSYour Name OPTIE WMMParams; 4406*5113495bSYour Name OPTIE WMMCaps; 4407*5113495bSYour Name OPTIE ESERadMgmtCap; 4408*5113495bSYour Name OPTIE ESETrafStrmMet; 4409*5113495bSYour Name OPTIE WMMTSPEC[0..4]; 4410*5113495bSYour Name OPTIE WscAssocRes; 4411*5113495bSYour Name OPTIE P2PAssocRes; 4412*5113495bSYour Name OPTIE vendor_vht_ie; 4413*5113495bSYour Name OPTIE qcn_ie; 4414*5113495bSYour Name OPTIE MBO_IE; 4415*5113495bSYour Name OPTIE reduced_neighbor_report; 4416*5113495bSYour Name} // End frame AssocResponse. 4417*5113495bSYour Name 4418*5113495bSYour NameFRAME ReAssocRequest // 7.2.3.6 4419*5113495bSYour Name{ 4420*5113495bSYour Name FF Capabilities; 4421*5113495bSYour Name FF ListenInterval; 4422*5113495bSYour Name FF CurrentAPAddress; 4423*5113495bSYour Name MANDIE SSID; 4424*5113495bSYour Name MANDIE SuppRates; 4425*5113495bSYour Name OPTIE ExtSuppRates; 4426*5113495bSYour Name OPTIE PowerCaps; 4427*5113495bSYour Name OPTIE SuppChannels; 4428*5113495bSYour Name OPTIE RSNOpaque; 4429*5113495bSYour Name OPTIE QOSCapsStation; 4430*5113495bSYour Name OPTIE RRMEnabledCap; 4431*5113495bSYour Name OPTIE MobilityDomain; 4432*5113495bSYour Name OPTIE FTInfo; 4433*5113495bSYour Name OPTIE RICDataDesc[2]; 4434*5113495bSYour Name OPTIE SuppOperatingClasses; 4435*5113495bSYour Name OPTIE HTCaps; 4436*5113495bSYour Name OPTIE ExtCap; 4437*5113495bSYour Name OPTIE VHTCaps; 4438*5113495bSYour Name OPTIE OperatingMode; 4439*5113495bSYour Name OPTIE bss_max_idle_period; 4440*5113495bSYour Name OPTIE he_cap; 4441*5113495bSYour Name OPTIE he_6ghz_band_cap; 4442*5113495bSYour Name 4443*5113495bSYour Name OPTIE WAPIOpaque; 4444*5113495bSYour Name OPTIE WAPI; 4445*5113495bSYour Name OPTIE QosMapSet; 4446*5113495bSYour Name OPTIE ESECckmOpaque; 4447*5113495bSYour Name OPTIE eht_cap; 4448*5113495bSYour Name OPTIE mlo_ie; 4449*5113495bSYour Name OPTIE t2lm_ie[0..2]; 4450*5113495bSYour Name 4451*5113495bSYour Name OPTIE WPAOpaque; 4452*5113495bSYour Name OPTIE WMMCaps; 4453*5113495bSYour Name OPTIE WMMInfoStation; 4454*5113495bSYour Name OPTIE WscIEOpaque; 4455*5113495bSYour Name OPTIE ESERadMgmtCap; 4456*5113495bSYour Name OPTIE ESEVersion; 4457*5113495bSYour Name OPTIE WMMTSPEC[0..4]; 4458*5113495bSYour Name OPTIE ESETrafStrmRateSet; 4459*5113495bSYour Name OPTIE P2PIEOpaque; 4460*5113495bSYour Name OPTIE WFDIEOpaque; 4461*5113495bSYour Name OPTIE vendor_vht_ie; 4462*5113495bSYour Name OPTIE hs20vendor_ie; 4463*5113495bSYour Name} // End frame ReAssocRequest. 4464*5113495bSYour Name 4465*5113495bSYour NameFRAME ReAssocResponse // 7.2.3.7 4466*5113495bSYour Name{ 4467*5113495bSYour Name FF Capabilities; 4468*5113495bSYour Name FF Status; 4469*5113495bSYour Name FF AID; 4470*5113495bSYour Name MANDIE SuppRates; 4471*5113495bSYour Name OPTIE ExtSuppRates; 4472*5113495bSYour Name OPTIE EDCAParamSet; 4473*5113495bSYour Name OPTIE RCPIIE; 4474*5113495bSYour Name OPTIE RSNIIE; 4475*5113495bSYour Name OPTIE RRMEnabledCap; 4476*5113495bSYour Name OPTIE RSNOpaque; 4477*5113495bSYour Name OPTIE MobilityDomain; 4478*5113495bSYour Name OPTIE FTInfo; 4479*5113495bSYour Name OPTIE RICDataDesc[2]; 4480*5113495bSYour Name OPTIE TimeoutInterval; 4481*5113495bSYour Name OPTIE HTCaps; 4482*5113495bSYour Name OPTIE HTInfo; 4483*5113495bSYour Name OPTIE OBSSScanParameters; 4484*5113495bSYour Name OPTIE ExtCap; 4485*5113495bSYour Name OPTIE bss_max_idle_period; 4486*5113495bSYour Name OPTIE VHTCaps; 4487*5113495bSYour Name OPTIE VHTOperation; 4488*5113495bSYour Name OPTIE OperatingMode; 4489*5113495bSYour Name OPTIE he_cap; 4490*5113495bSYour Name OPTIE he_op; 4491*5113495bSYour Name OPTIE spatial_reuse; 4492*5113495bSYour Name OPTIE bss_color_change; 4493*5113495bSYour Name OPTIE mu_edca_param_set; 4494*5113495bSYour Name OPTIE he_6ghz_band_cap; 4495*5113495bSYour Name 4496*5113495bSYour Name OPTIE QosMapSet; 4497*5113495bSYour Name OPTIE ESETxmitPower; 4498*5113495bSYour Name OPTIE eht_cap; 4499*5113495bSYour Name OPTIE eht_op; 4500*5113495bSYour Name OPTIE mlo_ie; 4501*5113495bSYour Name OPTIE t2lm_ie[0..2]; 4502*5113495bSYour Name 4503*5113495bSYour Name OPTIE WPA; 4504*5113495bSYour Name OPTIE WMMParams; 4505*5113495bSYour Name OPTIE ESERadMgmtCap; 4506*5113495bSYour Name OPTIE ESETrafStrmMet; 4507*5113495bSYour Name OPTIE WMMTSPEC[0..4]; 4508*5113495bSYour Name OPTIE ESETrafStrmRateSet; 4509*5113495bSYour Name OPTIE WscReassocRes; 4510*5113495bSYour Name OPTIE P2PAssocRes; 4511*5113495bSYour Name OPTIE vendor_vht_ie; 4512*5113495bSYour Name OPTIE MBO_IE; 4513*5113495bSYour Name OPTIE reduced_neighbor_report; 4514*5113495bSYour Name} // End frame ReAssocResponse. 4515*5113495bSYour Name 4516*5113495bSYour NameFRAME ProbeRequest // 7.2.3.8 4517*5113495bSYour Name{ 4518*5113495bSYour Name MANDIE SSID; 4519*5113495bSYour Name MANDIE SuppRates; 4520*5113495bSYour Name OPTIE RequestedInfo; 4521*5113495bSYour Name OPTIE ExtSuppRates; 4522*5113495bSYour Name OPTIE DSParams; 4523*5113495bSYour Name OPTIE HTCaps; 4524*5113495bSYour Name OPTIE ExtCap; 4525*5113495bSYour Name OPTIE VHTCaps; 4526*5113495bSYour Name OPTIE he_cap; 4527*5113495bSYour Name OPTIE he_6ghz_band_cap; 4528*5113495bSYour Name 4529*5113495bSYour Name OPTIE eht_cap; 4530*5113495bSYour Name OPTIE mlo_ie; 4531*5113495bSYour Name 4532*5113495bSYour Name OPTIE WscProbeReq; 4533*5113495bSYour Name OPTIE WFATPC; 4534*5113495bSYour Name OPTIE P2PProbeReq; 4535*5113495bSYour Name OPTIE qcn_ie; 4536*5113495bSYour Name} // End frame ProbeRequest. 4537*5113495bSYour Name 4538*5113495bSYour NameFRAME ProbeResponse // 7.2.3.9 4539*5113495bSYour Name{ 4540*5113495bSYour Name FF TimeStamp; 4541*5113495bSYour Name FF BeaconInterval; 4542*5113495bSYour Name FF Capabilities; 4543*5113495bSYour Name MANDIE SSID; 4544*5113495bSYour Name MANDIE SuppRates; 4545*5113495bSYour Name OPTIE FHParamSet; 4546*5113495bSYour Name OPTIE DSParams; 4547*5113495bSYour Name OPTIE CFParams; 4548*5113495bSYour Name OPTIE Country; 4549*5113495bSYour Name OPTIE FHParams; 4550*5113495bSYour Name OPTIE FHPattTable; 4551*5113495bSYour Name OPTIE PowerConstraints; 4552*5113495bSYour Name OPTIE ChanSwitchAnn; 4553*5113495bSYour Name OPTIE Quiet; 4554*5113495bSYour Name OPTIE TPCReport; 4555*5113495bSYour Name OPTIE ERPInfo; 4556*5113495bSYour Name OPTIE ExtSuppRates; 4557*5113495bSYour Name OPTIE RSNOpaque; 4558*5113495bSYour Name OPTIE QBSSLoad; 4559*5113495bSYour Name OPTIE EDCAParamSet; 4560*5113495bSYour Name OPTIE RRMEnabledCap; 4561*5113495bSYour Name OPTIE APChannelReport; 4562*5113495bSYour Name OPTIE MobilityDomain; 4563*5113495bSYour Name OPTIE ext_chan_switch_ann; 4564*5113495bSYour Name OPTIE SuppOperatingClasses; 4565*5113495bSYour Name OPTIE HTCaps; 4566*5113495bSYour Name OPTIE HTInfo; 4567*5113495bSYour Name OPTIE OBSSScanParameters; 4568*5113495bSYour Name OPTIE ExtCap; 4569*5113495bSYour Name OPTIE VHTCaps; 4570*5113495bSYour Name OPTIE VHTOperation; 4571*5113495bSYour Name OPTIE transmit_power_env[0..8]; 4572*5113495bSYour Name OPTIE ChannelSwitchWrapper; 4573*5113495bSYour Name OPTIE VHTExtBssLoad; 4574*5113495bSYour Name OPTIE fils_indication; 4575*5113495bSYour Name OPTIE max_chan_switch_time; 4576*5113495bSYour Name OPTIE esp_information; 4577*5113495bSYour Name OPTIE he_cap; 4578*5113495bSYour Name OPTIE he_op; 4579*5113495bSYour Name OPTIE spatial_reuse; 4580*5113495bSYour Name OPTIE bss_color_change; 4581*5113495bSYour Name OPTIE mu_edca_param_set; 4582*5113495bSYour Name OPTIE he_6ghz_band_cap; 4583*5113495bSYour Name 4584*5113495bSYour Name OPTIE sec_chan_offset_ele; 4585*5113495bSYour Name OPTIE WAPI; 4586*5113495bSYour Name OPTIE ESETxmitPower; 4587*5113495bSYour Name OPTIE eht_cap; 4588*5113495bSYour Name OPTIE eht_op; 4589*5113495bSYour Name OPTIE mlo_ie; 4590*5113495bSYour Name OPTIE t2lm_ie[0..2]; 4591*5113495bSYour Name 4592*5113495bSYour Name OPTIE WPA; 4593*5113495bSYour Name OPTIE WMMInfoAp; 4594*5113495bSYour Name OPTIE WMMParams; 4595*5113495bSYour Name OPTIE WMMCaps; 4596*5113495bSYour Name OPTIE ESEVersion; 4597*5113495bSYour Name OPTIE ESERadMgmtCap; 4598*5113495bSYour Name OPTIE ESETrafStrmMet; 4599*5113495bSYour Name OPTIE WscProbeRes; 4600*5113495bSYour Name OPTIE P2PProbeRes; 4601*5113495bSYour Name OPTIE Vendor1IE; 4602*5113495bSYour Name OPTIE vendor_vht_ie; 4603*5113495bSYour Name OPTIE Vendor3IE; 4604*5113495bSYour Name OPTIE hs20vendor_ie; 4605*5113495bSYour Name OPTIE QComVendorIE; 4606*5113495bSYour Name OPTIE MBO_IE; 4607*5113495bSYour Name OPTIE qcn_ie; 4608*5113495bSYour Name OPTIE reduced_neighbor_report; 4609*5113495bSYour Name} // End frame ProbeResponse. 4610*5113495bSYour Name 4611*5113495bSYour NameFRAME Authentication // 7.2.3.10 4612*5113495bSYour Name{ 4613*5113495bSYour Name FF AuthAlgo; 4614*5113495bSYour Name FF AuthSeqNo; 4615*5113495bSYour Name FF Status; 4616*5113495bSYour Name OPTIE ChallengeText; 4617*5113495bSYour Name OPTIE RSNOpaque; 4618*5113495bSYour Name OPTIE MobilityDomain; 4619*5113495bSYour Name OPTIE FTInfo; 4620*5113495bSYour Name OPTIE TimeoutInterval; 4621*5113495bSYour Name OPTIE RICDataDesc[2]; 4622*5113495bSYour Name OPTIE fils_nonce; 4623*5113495bSYour Name OPTIE fils_session; 4624*5113495bSYour Name OPTIE fils_wrapped_data; 4625*5113495bSYour Name OPTIE fils_assoc_delay_info; 4626*5113495bSYour Name OPTIE mlo_ie; 4627*5113495bSYour Name} // End frame Auth. 4628*5113495bSYour Name 4629*5113495bSYour NameFRAME DeAuth // 7.2.3.11 4630*5113495bSYour Name{ 4631*5113495bSYour Name FF Reason; 4632*5113495bSYour Name OPTIE P2PDeAuth; 4633*5113495bSYour Name} 4634*5113495bSYour Name 4635*5113495bSYour Name 4636*5113495bSYour NameFRAME AddTSRequest // 7.4.2.1 4637*5113495bSYour Name{ 4638*5113495bSYour Name 4639*5113495bSYour Name FF Category; 4640*5113495bSYour Name FF Action; 4641*5113495bSYour Name FF DialogToken; 4642*5113495bSYour Name MANDIE TSPEC; 4643*5113495bSYour Name OPTIE TCLAS[0..2]; 4644*5113495bSYour Name OPTIE TCLASSPROC; 4645*5113495bSYour Name 4646*5113495bSYour Name // These IEs aren't in the spec, but our extant code *will* parse them if 4647*5113495bSYour Name // they're present. I included them to preserve that capability 4648*5113495bSYour Name 4649*5113495bSYour Name OPTIE WMMTSPEC; 4650*5113495bSYour Name OPTIE WMMTCLAS[0..2]; 4651*5113495bSYour Name OPTIE WMMTCLASPROC; 4652*5113495bSYour Name OPTIE ESETrafStrmRateSet; 4653*5113495bSYour Name 4654*5113495bSYour Name} // End frame AddTSRequest. 4655*5113495bSYour Name 4656*5113495bSYour NameFRAME WMMAddTSRequest 4657*5113495bSYour Name{ 4658*5113495bSYour Name FF Category; 4659*5113495bSYour Name FF Action; 4660*5113495bSYour Name FF DialogToken; 4661*5113495bSYour Name FF StatusCode; 4662*5113495bSYour Name MANDIE WMMTSPEC; 4663*5113495bSYour Name OPTIE ESETrafStrmRateSet; 4664*5113495bSYour Name} // End Frame WMMAddTSRequest 4665*5113495bSYour Name 4666*5113495bSYour NameFRAME AddTSResponse // 7.4.2.2 4667*5113495bSYour Name{ 4668*5113495bSYour Name 4669*5113495bSYour Name FF Category; 4670*5113495bSYour Name FF Action; 4671*5113495bSYour Name FF DialogToken; 4672*5113495bSYour Name FF Status; 4673*5113495bSYour Name MANDIE TSDelay; 4674*5113495bSYour Name MANDIE TSPEC; 4675*5113495bSYour Name OPTIE TCLAS[0..2]; 4676*5113495bSYour Name OPTIE TCLASSPROC; 4677*5113495bSYour Name OPTIE Schedule; 4678*5113495bSYour Name 4679*5113495bSYour Name // These IEs aren't in the spec, but our extant code *will* parse them if 4680*5113495bSYour Name // they're present. I included them to preserve that capability 4681*5113495bSYour Name OPTIE WMMTSDelay; 4682*5113495bSYour Name OPTIE WMMSchedule; 4683*5113495bSYour Name OPTIE WMMTSPEC; 4684*5113495bSYour Name OPTIE WMMTCLAS[0..2]; 4685*5113495bSYour Name OPTIE WMMTCLASPROC; 4686*5113495bSYour Name OPTIE ESETrafStrmMet; 4687*5113495bSYour Name 4688*5113495bSYour Name} // End frame AddTSResponse. 4689*5113495bSYour Name 4690*5113495bSYour NameFRAME WMMAddTSResponse 4691*5113495bSYour Name{ 4692*5113495bSYour Name 4693*5113495bSYour Name FF Category; 4694*5113495bSYour Name FF Action; 4695*5113495bSYour Name FF DialogToken; 4696*5113495bSYour Name FF StatusCode; 4697*5113495bSYour Name OPTIE WMMTSPEC; 4698*5113495bSYour Name OPTIE ESETrafStrmMet; 4699*5113495bSYour Name 4700*5113495bSYour Name} // End frame WMMAddTSResponse. 4701*5113495bSYour Name 4702*5113495bSYour NameFRAME DelTS // 7.4.2.3 4703*5113495bSYour Name{ 4704*5113495bSYour Name FF Category; 4705*5113495bSYour Name FF Action; 4706*5113495bSYour Name FF TSInfo; 4707*5113495bSYour Name FF Reason; 4708*5113495bSYour Name} 4709*5113495bSYour Name 4710*5113495bSYour NameFRAME WMMDelTS 4711*5113495bSYour Name{ 4712*5113495bSYour Name FF Category; 4713*5113495bSYour Name FF Action; 4714*5113495bSYour Name FF DialogToken; 4715*5113495bSYour Name FF StatusCode; 4716*5113495bSYour Name MANDIE WMMTSPEC; 4717*5113495bSYour Name} 4718*5113495bSYour Name 4719*5113495bSYour NameFRAME TPCRequest 4720*5113495bSYour Name{ 4721*5113495bSYour Name FF Category; 4722*5113495bSYour Name FF Action; 4723*5113495bSYour Name FF DialogToken; 4724*5113495bSYour Name MANDIE TPCRequest; 4725*5113495bSYour Name} 4726*5113495bSYour Name 4727*5113495bSYour NameFRAME TPCReport 4728*5113495bSYour Name{ 4729*5113495bSYour Name FF Category; 4730*5113495bSYour Name FF Action; 4731*5113495bSYour Name FF DialogToken; 4732*5113495bSYour Name MANDIE TPCReport; 4733*5113495bSYour Name} 4734*5113495bSYour Name 4735*5113495bSYour NameFRAME ChannelSwitch 4736*5113495bSYour Name{ 4737*5113495bSYour Name FF Category; 4738*5113495bSYour Name FF Action; 4739*5113495bSYour Name MANDIE ChanSwitchAnn; 4740*5113495bSYour Name OPTIE sec_chan_offset_ele; 4741*5113495bSYour Name OPTIE WiderBWChanSwitchAnn; 4742*5113495bSYour Name} 4743*5113495bSYour Name 4744*5113495bSYour NameFRAME MeasurementRequest 4745*5113495bSYour Name{ 4746*5113495bSYour Name FF Category; 4747*5113495bSYour Name FF Action; 4748*5113495bSYour Name FF DialogToken; 4749*5113495bSYour Name MANDIE MeasurementRequest[1..4]; 4750*5113495bSYour Name} 4751*5113495bSYour Name 4752*5113495bSYour NameFRAME MeasurementReport 4753*5113495bSYour Name{ 4754*5113495bSYour Name FF Category; 4755*5113495bSYour Name FF Action; 4756*5113495bSYour Name FF DialogToken; 4757*5113495bSYour Name MANDIE MeasurementReport; 4758*5113495bSYour Name} 4759*5113495bSYour Name 4760*5113495bSYour NameFRAME SMPowerSave 4761*5113495bSYour Name{ 4762*5113495bSYour Name FF Category; 4763*5113495bSYour Name FF Action; 4764*5113495bSYour Name FF SMPowerModeSet; 4765*5113495bSYour Name} 4766*5113495bSYour Name 4767*5113495bSYour NameFRAME RadioMeasurementRequest 4768*5113495bSYour Name{ 4769*5113495bSYour Name FF Category; 4770*5113495bSYour Name FF Action; 4771*5113495bSYour Name FF DialogToken; 4772*5113495bSYour Name FF NumOfRepetitions; 4773*5113495bSYour Name //Measurement Request IE. 4774*5113495bSYour Name MANDIE MeasurementRequest[1..5]; 4775*5113495bSYour Name} 4776*5113495bSYour Name 4777*5113495bSYour NameFRAME RadioMeasurementReport 4778*5113495bSYour Name{ 4779*5113495bSYour Name FF Category; 4780*5113495bSYour Name FF Action; 4781*5113495bSYour Name FF DialogToken; 4782*5113495bSYour Name //Measurement Report elements. 4783*5113495bSYour Name MANDIE MeasurementReport[1]; 4784*5113495bSYour Name} 4785*5113495bSYour Name 4786*5113495bSYour NameFRAME LinkMeasurementRequest 4787*5113495bSYour Name{ 4788*5113495bSYour Name FF Category; 4789*5113495bSYour Name FF Action; 4790*5113495bSYour Name FF DialogToken; 4791*5113495bSYour Name FF TxPower; 4792*5113495bSYour Name FF MaxTxPower; 4793*5113495bSYour Name //Optional Sub Ies 4794*5113495bSYour Name} 4795*5113495bSYour Name 4796*5113495bSYour NameFRAME LinkMeasurementReport 4797*5113495bSYour Name{ 4798*5113495bSYour Name FF Category; 4799*5113495bSYour Name FF Action; 4800*5113495bSYour Name FF DialogToken; 4801*5113495bSYour Name FF TPCEleID; 4802*5113495bSYour Name FF TPCEleLen; 4803*5113495bSYour Name FF TxPower; 4804*5113495bSYour Name FF LinkMargin; 4805*5113495bSYour Name FF RxAntennaId; 4806*5113495bSYour Name FF TxAntennaId; 4807*5113495bSYour Name FF RCPI; 4808*5113495bSYour Name FF RSNI; 4809*5113495bSYour Name //Optional Vendor specific IEs ... ignoring 4810*5113495bSYour Name} 4811*5113495bSYour Name 4812*5113495bSYour NameFRAME NeighborReportRequest 4813*5113495bSYour Name{ 4814*5113495bSYour Name FF Category; 4815*5113495bSYour Name FF Action; 4816*5113495bSYour Name FF DialogToken; 4817*5113495bSYour Name OPTIE SSID; 4818*5113495bSYour Name //Optional vendor specific IE...ignoring. 4819*5113495bSYour Name} 4820*5113495bSYour Name 4821*5113495bSYour NameFRAME NeighborReportResponse 4822*5113495bSYour Name{ 4823*5113495bSYour Name FF Category; 4824*5113495bSYour Name FF Action; 4825*5113495bSYour Name FF DialogToken; 4826*5113495bSYour Name OPTIE NeighborReport[1..MAX_SUPPORTED_NEIGHBOR_RPT]; 4827*5113495bSYour Name} 4828*5113495bSYour Name 4829*5113495bSYour NameFRAME OperatingMode 4830*5113495bSYour Name{ 4831*5113495bSYour Name FF Category; 4832*5113495bSYour Name FF Action; 4833*5113495bSYour Name //Operating Mode field 4834*5113495bSYour Name FF OperatingMode; 4835*5113495bSYour Name} 4836*5113495bSYour Name 4837*5113495bSYour NameFRAME TDLSDisReq 4838*5113495bSYour Name{ 4839*5113495bSYour Name FF Category; 4840*5113495bSYour Name FF Action; 4841*5113495bSYour Name FF DialogToken; 4842*5113495bSYour Name MANDIE LinkIdentifier; 4843*5113495bSYour Name} 4844*5113495bSYour Name 4845*5113495bSYour NameFRAME TDLSDisRsp 4846*5113495bSYour Name{ 4847*5113495bSYour Name FF Category; 4848*5113495bSYour Name FF Action; 4849*5113495bSYour Name FF DialogToken; 4850*5113495bSYour Name FF Capabilities; 4851*5113495bSYour Name MANDIE SuppRates; 4852*5113495bSYour Name OPTIE ExtSuppRates; 4853*5113495bSYour Name OPTIE SuppChannels; 4854*5113495bSYour Name OPTIE SuppOperatingClasses; 4855*5113495bSYour Name OPTIE RSN; 4856*5113495bSYour Name OPTIE ExtCap; 4857*5113495bSYour Name OPTIE FTInfo; 4858*5113495bSYour Name OPTIE TimeoutInterval; 4859*5113495bSYour Name OPTIE RICData; 4860*5113495bSYour Name OPTIE HTCaps; 4861*5113495bSYour Name OPTIE ht2040_bss_coexistence; 4862*5113495bSYour Name MANDIE LinkIdentifier; 4863*5113495bSYour Name OPTIE VHTCaps; 4864*5113495bSYour Name OPTIE he_cap; 4865*5113495bSYour Name} 4866*5113495bSYour Name 4867*5113495bSYour NameFRAME TDLSSetupReq 4868*5113495bSYour Name{ 4869*5113495bSYour Name FF Category; 4870*5113495bSYour Name FF Action; 4871*5113495bSYour Name FF DialogToken; 4872*5113495bSYour Name FF Capabilities; 4873*5113495bSYour Name MANDIE SuppRates; 4874*5113495bSYour Name OPTIE Country; 4875*5113495bSYour Name OPTIE ExtSuppRates; 4876*5113495bSYour Name OPTIE SuppChannels; 4877*5113495bSYour Name OPTIE RSN; 4878*5113495bSYour Name OPTIE ExtCap; 4879*5113495bSYour Name OPTIE SuppOperatingClasses; 4880*5113495bSYour Name OPTIE QOSCapsStation; 4881*5113495bSYour Name OPTIE FTInfo; 4882*5113495bSYour Name OPTIE TimeoutInterval; 4883*5113495bSYour Name OPTIE RICData; 4884*5113495bSYour Name OPTIE HTCaps; 4885*5113495bSYour Name OPTIE ht2040_bss_coexistence; 4886*5113495bSYour Name MANDIE LinkIdentifier; 4887*5113495bSYour Name OPTIE WMMInfoStation; 4888*5113495bSYour Name OPTIE AID; 4889*5113495bSYour Name OPTIE VHTCaps; 4890*5113495bSYour Name OPTIE he_cap; 4891*5113495bSYour Name OPTIE he_6ghz_band_cap; 4892*5113495bSYour Name} 4893*5113495bSYour Name 4894*5113495bSYour NameFRAME TDLSSetupRsp 4895*5113495bSYour Name{ 4896*5113495bSYour Name FF Category; 4897*5113495bSYour Name FF Action; 4898*5113495bSYour Name FF Status; 4899*5113495bSYour Name FF DialogToken; 4900*5113495bSYour Name FF Capabilities ; 4901*5113495bSYour Name OPTIE SuppRates; 4902*5113495bSYour Name OPTIE Country; 4903*5113495bSYour Name OPTIE ExtSuppRates; 4904*5113495bSYour Name OPTIE SuppChannels; 4905*5113495bSYour Name OPTIE RSN; 4906*5113495bSYour Name OPTIE ExtCap; 4907*5113495bSYour Name OPTIE SuppOperatingClasses; 4908*5113495bSYour Name OPTIE QOSCapsStation; 4909*5113495bSYour Name OPTIE FTInfo; 4910*5113495bSYour Name OPTIE TimeoutInterval; 4911*5113495bSYour Name OPTIE RICData; 4912*5113495bSYour Name OPTIE HTCaps; 4913*5113495bSYour Name OPTIE ht2040_bss_coexistence; 4914*5113495bSYour Name OPTIE LinkIdentifier; 4915*5113495bSYour Name OPTIE WMMInfoStation; 4916*5113495bSYour Name OPTIE AID; 4917*5113495bSYour Name OPTIE VHTCaps; 4918*5113495bSYour Name OPTIE OperatingMode; 4919*5113495bSYour Name OPTIE he_cap; 4920*5113495bSYour Name OPTIE he_6ghz_band_cap; 4921*5113495bSYour Name} 4922*5113495bSYour Name 4923*5113495bSYour NameFRAME TDLSSetupCnf 4924*5113495bSYour Name{ 4925*5113495bSYour Name FF Category; 4926*5113495bSYour Name FF Action; 4927*5113495bSYour Name FF Status; 4928*5113495bSYour Name FF DialogToken; 4929*5113495bSYour Name OPTIE RSN; 4930*5113495bSYour Name OPTIE EDCAParamSet; 4931*5113495bSYour Name OPTIE FTInfo; 4932*5113495bSYour Name OPTIE TimeoutInterval; 4933*5113495bSYour Name OPTIE HTInfo; 4934*5113495bSYour Name OPTIE LinkIdentifier; 4935*5113495bSYour Name OPTIE WMMParams; 4936*5113495bSYour Name OPTIE VHTOperation; 4937*5113495bSYour Name OPTIE OperatingMode; 4938*5113495bSYour Name OPTIE he_op; 4939*5113495bSYour Name} 4940*5113495bSYour NameFRAME TDLSTeardown 4941*5113495bSYour Name{ 4942*5113495bSYour Name FF Category; 4943*5113495bSYour Name FF Action; 4944*5113495bSYour Name FF Reason; 4945*5113495bSYour Name OPTIE FTInfo; 4946*5113495bSYour Name MANDIE LinkIdentifier; 4947*5113495bSYour Name} 4948*5113495bSYour Name 4949*5113495bSYour NameFRAME TDLSPeerTrafficInd 4950*5113495bSYour Name{ 4951*5113495bSYour Name FF Category; 4952*5113495bSYour Name FF Action; 4953*5113495bSYour Name FF DialogToken; 4954*5113495bSYour Name MANDIE LinkIdentifier; 4955*5113495bSYour Name OPTIE PTIControl; 4956*5113495bSYour Name MANDIE PUBufferStatus; 4957*5113495bSYour Name} 4958*5113495bSYour Name 4959*5113495bSYour NameFRAME TDLSPeerTrafficRsp 4960*5113495bSYour Name{ 4961*5113495bSYour Name FF Category; 4962*5113495bSYour Name FF Action; 4963*5113495bSYour Name FF DialogToken; 4964*5113495bSYour Name MANDIE LinkIdentifier; 4965*5113495bSYour Name} 4966*5113495bSYour Name 4967*5113495bSYour NameFRAME SaQueryReq 4968*5113495bSYour Name{ 4969*5113495bSYour Name FF Category; 4970*5113495bSYour Name FF Action; 4971*5113495bSYour Name FF TransactionId; 4972*5113495bSYour Name OPTIE oci; 4973*5113495bSYour Name} 4974*5113495bSYour Name 4975*5113495bSYour NameFRAME SaQueryRsp 4976*5113495bSYour Name{ 4977*5113495bSYour Name FF Category; 4978*5113495bSYour Name FF Action; 4979*5113495bSYour Name FF TransactionId; 4980*5113495bSYour Name OPTIE oci; 4981*5113495bSYour Name} 4982*5113495bSYour Name 4983*5113495bSYour NameFRAME QosMapConfigure 4984*5113495bSYour Name{ 4985*5113495bSYour Name FF Category; 4986*5113495bSYour Name FF Action; 4987*5113495bSYour Name MANDIE QosMapSet; 4988*5113495bSYour Name} 4989*5113495bSYour Name 4990*5113495bSYour NameFRAME VHTGidManagementActionFrame 4991*5113495bSYour Name{ 4992*5113495bSYour Name FF Category; 4993*5113495bSYour Name FF Action; 4994*5113495bSYour Name FF VhtMembershipStatusArray; 4995*5113495bSYour Name FF VhtUserPositionArray; 4996*5113495bSYour Name} 4997*5113495bSYour Name 4998*5113495bSYour NameFRAME ht2040_bss_coexistence_mgmt_action_frame 4999*5113495bSYour Name{ 5000*5113495bSYour Name FF Category; 5001*5113495bSYour Name FF Action; 5002*5113495bSYour Name MANDIE ht2040_bss_coexistence; 5003*5113495bSYour Name MANDIE ht2040_bss_intolerant_report; 5004*5113495bSYour Name} 5005*5113495bSYour Name 5006*5113495bSYour NameFRAME TimingAdvertisementFrame // 8.3.3.15 5007*5113495bSYour Name{ 5008*5113495bSYour Name FF TimeStamp; 5009*5113495bSYour Name FF Capabilities; 5010*5113495bSYour Name OPTIE Country; 5011*5113495bSYour Name OPTIE PowerConstraints; 5012*5113495bSYour Name OPTIE TimeAdvertisement; 5013*5113495bSYour Name OPTIE ExtCap; 5014*5113495bSYour Name OPTIE Vendor1IE; 5015*5113495bSYour Name OPTIE Vendor3IE; 5016*5113495bSYour Name} 5017*5113495bSYour Name 5018*5113495bSYour NameFRAME ext_channel_switch_action_frame 5019*5113495bSYour Name{ 5020*5113495bSYour Name FF Category; 5021*5113495bSYour Name FF Action; 5022*5113495bSYour Name FF ext_chan_switch_ann_action; 5023*5113495bSYour Name OPTIE WiderBWChanSwitchAnn; 5024*5113495bSYour Name OPTIE qcn_ie; 5025*5113495bSYour Name OPTIE bw_ind_element; 5026*5113495bSYour Name} 5027*5113495bSYour Name 5028*5113495bSYour NameFRAME p2p_oper_chan_change_confirm 5029*5113495bSYour Name{ 5030*5113495bSYour Name FF Category; 5031*5113495bSYour Name FF p2p_action_oui; 5032*5113495bSYour Name FF p2p_action_subtype; 5033*5113495bSYour Name FF DialogToken; 5034*5113495bSYour Name OPTIE HTCaps; 5035*5113495bSYour Name OPTIE VHTCaps; 5036*5113495bSYour Name OPTIE OperatingMode; 5037*5113495bSYour Name} 5038*5113495bSYour Name 5039*5113495bSYour NameFRAME addba_req 5040*5113495bSYour Name{ 5041*5113495bSYour Name FF Category; 5042*5113495bSYour Name FF Action; 5043*5113495bSYour Name FF DialogToken; 5044*5113495bSYour Name FF addba_param_set; 5045*5113495bSYour Name FF ba_timeout; 5046*5113495bSYour Name FF ba_start_seq_ctrl; 5047*5113495bSYour Name OPTIE addba_extn_element; 5048*5113495bSYour Name} 5049*5113495bSYour Name 5050*5113495bSYour NameFRAME addba_rsp 5051*5113495bSYour Name{ 5052*5113495bSYour Name FF Category; 5053*5113495bSYour Name FF Action; 5054*5113495bSYour Name FF DialogToken; 5055*5113495bSYour Name FF Status; 5056*5113495bSYour Name FF addba_param_set; 5057*5113495bSYour Name FF ba_timeout; 5058*5113495bSYour Name OPTIE addba_extn_element; 5059*5113495bSYour Name} 5060*5113495bSYour Name 5061*5113495bSYour NameFRAME delba_req 5062*5113495bSYour Name{ 5063*5113495bSYour Name FF Category; 5064*5113495bSYour Name FF Action; 5065*5113495bSYour Name FF delba_param_set; 5066*5113495bSYour Name FF Reason; 5067*5113495bSYour Name} 5068*5113495bSYour Name 5069*5113495bSYour NameFRAME t2lm_neg_req 5070*5113495bSYour Name{ 5071*5113495bSYour Name FF Category; 5072*5113495bSYour Name FF Action; 5073*5113495bSYour Name FF DialogToken; 5074*5113495bSYour Name OPTIE t2lm_ie[0..2]; 5075*5113495bSYour Name} 5076*5113495bSYour Name 5077*5113495bSYour NameFRAME t2lm_neg_rsp 5078*5113495bSYour Name{ 5079*5113495bSYour Name FF Category; 5080*5113495bSYour Name FF Action; 5081*5113495bSYour Name FF DialogToken; 5082*5113495bSYour Name FF Status; 5083*5113495bSYour Name} 5084*5113495bSYour Name 5085*5113495bSYour NameFRAME t2lm_teardown 5086*5113495bSYour Name{ 5087*5113495bSYour Name FF Category; 5088*5113495bSYour Name FF Action; 5089*5113495bSYour Name} 5090*5113495bSYour Name 5091*5113495bSYour NameFRAME vendor_action_frame 5092*5113495bSYour Name{ 5093*5113495bSYour Name FF Category; 5094*5113495bSYour Name FF vendor_oui; 5095*5113495bSYour Name FF vendor_action_subtype; 5096*5113495bSYour Name} 5097*5113495bSYour Name 5098*5113495bSYour NameFRAME mscs_request_action_frame 5099*5113495bSYour Name{ 5100*5113495bSYour Name FF Category; 5101*5113495bSYour Name FF Action; 5102*5113495bSYour Name FF DialogToken; 5103*5113495bSYour Name MANDIE descriptor_element; 5104*5113495bSYour Name} 5105*5113495bSYour Name 5106*5113495bSYour NameFRAME epcs_neg_req 5107*5113495bSYour Name{ 5108*5113495bSYour Name FF Category; 5109*5113495bSYour Name FF Action; 5110*5113495bSYour Name FF DialogToken; 5111*5113495bSYour Name} 5112*5113495bSYour Name 5113*5113495bSYour NameFRAME epcs_neg_rsp 5114*5113495bSYour Name{ 5115*5113495bSYour Name FF Category; 5116*5113495bSYour Name FF Action; 5117*5113495bSYour Name FF DialogToken; 5118*5113495bSYour Name FF Status; 5119*5113495bSYour Name} 5120*5113495bSYour Name 5121*5113495bSYour NameFRAME epcs_teardown 5122*5113495bSYour Name{ 5123*5113495bSYour Name FF Category; 5124*5113495bSYour Name FF Action; 5125*5113495bSYour Name} 5126*5113495bSYour Name 5127*5113495bSYour Name// Local Variables: 5128*5113495bSYour Name// mode: c++ 5129*5113495bSYour Name// fill-column: 77 5130*5113495bSYour Name// comment-column: 42 5131*5113495bSYour Name// indent-tabs-mode: nil 5132*5113495bSYour Name// show-trailing-whitespace: t 5133*5113495bSYour Name// End: 5134*5113495bSYour Name 5135*5113495bSYour Name// parser.frms ends here. 5136