1 /* packet-ieee80211.h 2 * Routines for Wireless LAN (IEEE 802.11) dissection 3 * 4 * Copyright 2000, Axis Communications AB 5 * Inquiries/bugreports should be sent to Johan.Jorgensen@axis.com 6 * 7 * Wireshark - Network traffic analyzer 8 * By Gerald Combs <gerald@wireshark.org> 9 * Copyright 1998 Gerald Combs 10 * 11 * Copied from README.developer 12 * 13 * SPDX-License-Identifier: GPL-2.0-or-later 14 */ 15 16 #include "ws_symbol_export.h" 17 18 #ifdef __cplusplus 19 extern "C" { 20 #endif /* __cplusplus */ 21 22 typedef struct { 23 gboolean association_has_mobility_domain_element; 24 gboolean has_ft_akm_suite; 25 gboolean has_non_ft_akm_suite; 26 gboolean has_fils_session; 27 guint32 last_akm_suite; 28 guint16 owe_group; 29 proto_node *rsn_first_ft_akm_suite; 30 proto_node *rsn_first_non_ft_akm_suite; 31 guint8 ampe_frame; 32 } association_sanity_check_t; 33 34 typedef struct { 35 guint16 discovered_key_mic_len; /* Discovered from the first EAPOL frame */ 36 gboolean last_akm_suite_set; /* Have we set this? */ 37 guint32 last_akm_suite; 38 guint16 owe_group; 39 } ieee80211_conversation_data_t; 40 41 typedef struct { 42 gboolean last_akm_suite_set; 43 guint32 last_akm_suite; 44 guint16 owe_group; 45 } ieee80211_packet_data_t; 46 47 typedef struct ieee80211_tagged_field_data 48 { 49 int ftype; 50 association_sanity_check_t* sanity_check; 51 gboolean isDMG; 52 proto_item* item_tag; 53 proto_item* item_tag_length; 54 } ieee80211_tagged_field_data_t; 55 56 int add_tagged_field(packet_info *pinfo, proto_tree *tree, 57 tvbuff_t *tvb, int offset, int ftype, 58 const guint8 *valid_element_ids, 59 guint valid_element_ids_count, 60 association_sanity_check_t *association_sanity_check); 61 62 int add_tagged_field_with_validation(packet_info *pinfo, proto_tree *tree, 63 tvbuff_t *tvb, int offset, int ftype, 64 const guint8 *element_ids, 65 guint element_ids_count, 66 gboolean elements_ids_assume_invalid, 67 const guint8 *ext_element_ids, 68 guint ext_element_ids_count, 69 gboolean ext_element_ids_assume_invalid, 70 association_sanity_check_t *association_sanity_check); 71 72 int dissect_wifi_dpp_config_proto(packet_info *pinfo, proto_tree *query, 73 tvbuff_t *tvb, int offset); 74 #define MAX_SSID_LEN 32 75 #define MAX_PROTECT_LEN 10 76 77 /* 78 * Table of data rates, indexed by MCS index, bandwidth (0 for 20, 1 for 40), 79 * amd guard interval (0 for long, 1 for short). 80 */ 81 #define MAX_MCS_INDEX 76 82 83 WS_DLL_PUBLIC const guint16 ieee80211_ht_Dbps[MAX_MCS_INDEX+1]; 84 float ieee80211_htrate(int mcs_index, gboolean bandwidth, gboolean short_gi); 85 86 WS_DLL_PUBLIC value_string_ext ieee80211_supported_rates_vals_ext; 87 88 WS_DLL_PUBLIC 89 gboolean is_broadcast_bssid(const address *bssid); 90 91 #ifdef __cplusplus 92 } 93 #endif /* __cplusplus */ 94 95 /* 96 * Extract the protocol version from the frame control field 97 */ 98 #define FCF_PROT_VERSION(x) ((x) & 0x3) 99 100 #define PV0 0x0 101 #define PV1 0x1 102 #define PC2 0x2 103 #define PV3 0x3 104 105 /* 106 * Extract the frame type from the frame control field. 107 */ 108 #define FCF_FRAME_TYPE(x) (((x) & 0xC) >> 2) 109 #define FCF_PV1_TYPE(x) (((x) >> 2) & 0x7) 110 111 /* 112 * Extract the frame subtype from the frame control field. 113 */ 114 #define FCF_FRAME_SUBTYPE(x) (((x) & 0xF0) >> 4) 115 #define FCF_PV1_SUBTYPE(x) (((x) >> 5) & 0x7) 116 117 /* 118 * Extract the control frame extension from the frame control field. 119 */ 120 #define FCF_FRAME_EXTENSION(x) (((x) & 0xF00) >> 8) 121 122 /* 123 * Checks if the frame is control frame extension. 124 */ 125 #define IS_FRAME_EXTENSION(x) ((FCF_FRAME_TYPE(x) == 0x1 && FCF_FRAME_SUBTYPE(x) == 0x6) ? 1 : 0) 126 127 /* 128 * Convert the frame type and subtype from the frame control field into 129 * one of the MGT_, CTRL_, or DATA_ values. 130 * Now includes extension subtype in case present. 131 */ 132 #define COMPOSE_FRAME_TYPE(x) ((FCF_FRAME_TYPE(x) == 0x1 && FCF_FRAME_SUBTYPE(x) == 0x6) ? (((x & 0x0C)<< 6) + ((x) & 0xF0) + FCF_FRAME_EXTENSION(x)) : (((x & 0x0C)<< 2)+FCF_FRAME_SUBTYPE(x))) /* Create key to (sub)type */ 133 134 /* 135 * The subtype field of a data frame is, in effect, composed of 4 flag 136 * bits - CF-Ack, CF-Poll, Null (means the frame doesn't actually have 137 * any data), and QoS. 138 */ 139 #define DATA_FRAME_IS_CF_ACK(x) ((x) & 0x01) 140 #define DATA_FRAME_IS_CF_POLL(x) ((x) & 0x02) 141 #define DATA_FRAME_IS_NULL(x) ((x) & 0x04) 142 #define DATA_FRAME_IS_QOS(x) ((x) & 0x08) 143 144 /* 145 * Extract the flags from the frame control field. 146 * Now includes subset of flags when the subtype is control frame extension. 147 */ 148 #define FCF_FLAGS(x) ((FCF_FRAME_TYPE(x) == 0x1 && FCF_FRAME_SUBTYPE(x) == 0x6) ? (((x) & 0xF000) >> 12) : (((x) & 0xFF00) >> 8)) 149 150 /* 151 * Bits from the flags field. 152 */ 153 #define FLAG_TO_DS 0x01 154 #define FLAG_FROM_DS 0x02 155 #define FLAG_MORE_FRAGMENTS 0x04 156 #define FLAG_RETRY 0x08 157 #define FLAG_POWER_MGT 0x10 158 #define FLAG_MORE_DATA 0x20 159 #define FLAG_PROTECTED 0x40 160 #define FLAG_ORDER 0x80 /* overloaded for "has HT control" */ 161 162 /* 163 * Test bits in the flags field. 164 */ 165 /* 166 * XXX - Only HAVE_FRAGMENTS, IS_PROTECTED, and HAS_HT_CONTROL 167 * are in use. Should the rest be removed? 168 */ 169 #define IS_TO_DS(x) ((x) & FLAG_TO_DS) 170 #define IS_FROM_DS(x) ((x) & FLAG_FROM_DS) 171 #define HAVE_FRAGMENTS(x) ((x) & FLAG_MORE_FRAGMENTS) 172 #define IS_RETRY(x) ((x) & FLAG_RETRY) 173 #define POWER_MGT_STATUS(x) ((x) & FLAG_POWER_MGT) 174 #define HAS_MORE_DATA(x) ((x) & FLAG_MORE_DATA) 175 #define IS_PROTECTED(x) ((x) & FLAG_PROTECTED) 176 #define IS_STRICTLY_ORDERED(x) ((x) & FLAG_ORDER) /* for non-QoS data frames */ 177 #define HAS_HT_CONTROL(x) ((x) & FLAG_ORDER) /* for management and QoS data frames */ 178 179 /* 180 * Extract subfields from the flags field. 181 */ 182 #define FLAGS_DS_STATUS(x) ((x) & (FLAG_FROM_DS|FLAG_TO_DS)) 183 184 /* 185 * Extract an indication of the types of addresses in a data frame from 186 * the frame control field. 187 */ 188 #define FCF_ADDR_SELECTOR(x) ((x) & ((FLAG_TO_DS|FLAG_FROM_DS) << 8)) 189 190 #define DATA_ADDR_T1 0 191 #define DATA_ADDR_T2 (FLAG_FROM_DS << 8) 192 #define DATA_ADDR_T3 (FLAG_TO_DS << 8) 193 #define DATA_ADDR_T4 ((FLAG_TO_DS|FLAG_FROM_DS) << 8) 194 195 /* 196 * COMPOSE_FRAME_TYPE() values for management frames. 197 */ 198 #define MGT_ASSOC_REQ 0x00 /* association request */ 199 #define MGT_ASSOC_RESP 0x01 /* association response */ 200 #define MGT_REASSOC_REQ 0x02 /* reassociation request */ 201 #define MGT_REASSOC_RESP 0x03 /* reassociation response */ 202 #define MGT_PROBE_REQ 0x04 /* Probe request */ 203 #define MGT_PROBE_RESP 0x05 /* Probe response */ 204 #define MGT_MEASUREMENT_PILOT 0x06 /* Measurement Pilot */ 205 #define MGT_BEACON 0x08 /* Beacon frame */ 206 #define MGT_ATIM 0x09 /* ATIM */ 207 #define MGT_DISASS 0x0A /* Disassociation */ 208 #define MGT_AUTHENTICATION 0x0B /* Authentication */ 209 #define MGT_DEAUTHENTICATION 0x0C /* Deauthentication */ 210 #define MGT_ACTION 0x0D /* Action */ 211 #define MGT_ACTION_NO_ACK 0x0E /* Action No Ack */ 212 #define MGT_ARUBA_WLAN 0x0F /* Aruba WLAN Specific */ 213 214 /* 215 * COMPOSE_FRAME_TYPE() values for control frames. 216 * 0x160 - 0x16A are for control frame extension where type = 1 and subtype =6. 217 */ 218 #define CTRL_TRIGGER 0x12 /* HE Trigger */ 219 #define CTRL_TACK 0x13 /* S1G TWT Ack */ 220 #define CTRL_BEAMFORM_RPT_POLL 0x14 /* Beamforming Report */ 221 #define CTRL_VHT_NDP_ANNC 0x15 /* VHT NDP Announcement */ 222 #define CTRL_POLL 0x162 /* Poll */ 223 #define CTRL_SPR 0x163 /* Service Period Request */ 224 #define CTRL_GRANT 0x164 /* Grant */ 225 #define CTRL_DMG_CTS 0x165 /* DMG Clear to Send */ 226 #define CTRL_DMG_DTS 0x166 /* DMG Denial to Send */ 227 #define CTRL_GRANT_ACK 0x167 /* Grant Acknowledgment */ 228 #define CTRL_SSW 0x168 /* Sector Sweep */ 229 #define CTRL_SSW_FEEDBACK 0x169 /* Sector Sweep Feedback */ 230 #define CTRL_SSW_ACK 0x16A /* Sector Sweep Acknowledgment */ 231 #define CTRL_CONTROL_WRAPPER 0x17 /* Control Wrapper */ 232 #define CTRL_BLOCK_ACK_REQ 0x18 /* Block ack Request */ 233 #define CTRL_BLOCK_ACK 0x19 /* Block ack */ 234 #define CTRL_PS_POLL 0x1A /* power-save poll */ 235 #define CTRL_RTS 0x1B /* request to send */ 236 #define CTRL_CTS 0x1C /* clear to send */ 237 #define CTRL_ACKNOWLEDGEMENT 0x1D /* acknowledgement */ 238 #define CTRL_CFP_END 0x1E /* contention-free period end */ 239 #define CTRL_CFP_ENDACK 0x1F /* contention-free period end/ack */ 240 241 /* 242 * COMPOSE_FRAME_TYPE() values for data frames. 243 */ 244 #define DATA 0x20 /* Data */ 245 #define DATA_CF_ACK 0x21 /* Data + CF-Ack */ 246 #define DATA_CF_POLL 0x22 /* Data + CF-Poll */ 247 #define DATA_CF_ACK_POLL 0x23 /* Data + CF-Ack + CF-Poll */ 248 #define DATA_NULL_FUNCTION 0x24 /* Null function (no data) */ 249 #define DATA_CF_ACK_NOD 0x25 /* CF-Ack (no data) */ 250 #define DATA_CF_POLL_NOD 0x26 /* CF-Poll (No data) */ 251 #define DATA_CF_ACK_POLL_NOD 0x27 /* CF-Ack + CF-Poll (no data) */ 252 253 #define DATA_QOS_DATA 0x28 /* QoS Data */ 254 #define DATA_QOS_DATA_CF_ACK 0x29 /* QoS Data + CF-Ack */ 255 #define DATA_QOS_DATA_CF_POLL 0x2A /* QoS Data + CF-Poll */ 256 #define DATA_QOS_DATA_CF_ACK_POLL 0x2B /* QoS Data + CF-Ack + CF-Poll */ 257 #define DATA_QOS_NULL 0x2C /* QoS Null */ 258 #define DATA_QOS_CF_POLL_NOD 0x2E /* QoS CF-Poll (No Data) */ 259 #define DATA_QOS_CF_ACK_POLL_NOD 0x2F /* QoS CF-Ack + CF-Poll (No Data) */ 260 261 /* 262 * COMPOSE_FRAME_TYPE() values for extension frames. 263 */ 264 #define EXTENSION_DMG_BEACON 0x30 /* Extension DMG beacon */ 265 #define EXTENSION_S1G_BEACON 0x31 /* Extension S1G beacon */ 266 267 /* 268 * PV1 frame types 269 */ 270 #define PV1_QOS_DATA_1MAC 0x00 /* QoS data, one SID, one MAC */ 271 #define PV1_MANAGEMENT 0x01 /* PV1 Management frame */ 272 #define PV1_CONTROL 0x02 /* PV1 Control frame */ 273 #define PV1_QOS_DATA_2MAC 0x03 /* QoS data, two MAC addresses */ 274 275 /* 276 * PV1 frame subtypes 277 */ 278 #define PV1_CONTROL_STACK 0x00 /* Control STACK */ 279 #define PV1_CONTROL_BAT 0x01 /* Control BAT */ 280 281 #define PV1_MANAGEMENT_ACTION 0x00 282 #define PV1_MANAGEMENT_ACTION_NO_ACK 0x01 283 #define PV1_MANAGEMENT_PROBE_RESPONSE 0x02 284 #define PV1_MANAGEMENT_RESOURCE_ALLOC 0x03 285 286 /* 287 * PV1 SID constants 288 */ 289 #define SID_AID_MASK 0x1FFF 290 #define SID_A3_PRESENT 0x2000 291 #define SID_A4_PRESENT 0x4000 292 #define SID_A_MSDU 0x8000 293 294 #define TBTT_INFO(x) (((x) & 0x3) >> 0) 295 #define TBTT_INFO_COUNT(x) (((x) & (0xf<<4)) >> 4) 296 #define TBTT_INFO_LENGTH(x) (((x) & (0xff<<8)) >> 8) 297 298 typedef struct _wlan_stats { 299 guint8 channel; 300 guint8 ssid_len; 301 guchar ssid[MAX_SSID_LEN]; 302 gchar protection[MAX_PROTECT_LEN]; 303 gboolean fc_retry; 304 } wlan_stats_t; 305 306 typedef struct _wlan_hdr { 307 address bssid; 308 address src; 309 address dst; 310 guint16 type; 311 struct _wlan_stats stats; 312 } wlan_hdr_t; 313 314 #define WLANCAP_MAGIC_COOKIE_BASE 0x80211000 315 #define WLANCAP_MAGIC_COOKIE_V1 0x80211001 316 #define WLANCAP_MAGIC_COOKIE_V2 0x80211002 317 318 /* UAT entry structure. */ 319 typedef struct { 320 guint8 key; 321 gchar *string; 322 } uat_wep_key_record_t; 323 324 #define ADV_PROTO_ID_ANQP 0 325 #define ANV_PROTO_ID_MIH_IS 1 326 #define ADV_PROTO_ID_MIH_CESCD 2 327 #define ADV_PROTO_ID_EAS 3 328 #define ADV_PROTO_ID_RLQP 4 329 #define ADV_PROTO_ID_VS 221 330 331 typedef struct anqp_info_dissector_data { 332 gboolean request; 333 int idx; 334 } anqp_info_dissector_data_t; 335 336 /* WFA vendor specific element subtypes */ 337 #define WFA_SUBTYPE_SUBSCRIPTION_REMEDIATION 0 338 #define WFA_SUBTYPE_DEAUTHENTICATION_IMMINENT 1 339 #define WFA_SUBTYPE_P2P 9 340 #define WFA_SUBTYPE_WIFI_DISPLAY 10 341 #define WFA_SUBTYPE_HS20_INDICATION 16 342 #define WFA_SUBTYPE_OSEN 18 343 #define WFA_SUBTYPE_NAN_IE 19 344 #define WFA_SUBTYPE_MBO_OCE 22 345 #define WFA_SUBTYPE_WIFI_60G 23 346 #define WFA_SUBTYPE_NAN_ACTION 24 347 #define WFA_SUBTYPE_DPP 26 348 #define WFA_SUBTYPE_IEEE1905_MULTI_AP 27 /* ox1B */ 349 #define WFA_SUBTYPE_OWE_TRANSITION_MODE 28 350 #define WFA_SUBTYPE_QOS_MGMT 33 /* 0x21 */ 351 352 /* WFA Public Action Types */ 353 #define WFA_SUBTYPE_ACTION_QOS_MGMT 0x1A 354 355 /* WFA vendor specific ANQP subtypes */ 356 #define WFA_ANQP_SUBTYPE_HS20 17 357 #define WFA_ANQP_SUBTYPE_MBO 18 358 359 /* WFA WNM notification request subtypes */ 360 #define WFA_WNM_SUBTYPE_NON_PREF_CHAN_REPORT 2 361 #define WFA_WNM_SUBTYPE_CELL_DATA_CAPABILITIES 3 362 363 /* Information Element tags */ 364 #define TAG_SSID 0 365 #define TAG_SUPP_RATES 1 366 #define TAG_FH_PARAMETER 2 367 #define TAG_DS_PARAMETER 3 368 #define TAG_CF_PARAMETER 4 369 #define TAG_TIM 5 370 #define TAG_IBSS_PARAMETER 6 371 #define TAG_COUNTRY_INFO 7 372 #define TAG_FH_HOPPING_PARAMETER 8 373 #define TAG_FH_HOPPING_TABLE 9 374 #define TAG_REQUEST 10 375 #define TAG_QBSS_LOAD 11 376 #define TAG_EDCA_PARAM_SET 12 377 #define TAG_TSPEC 13 378 #define TAG_TCLAS 14 379 #define TAG_SCHEDULE 15 380 #define TAG_CHALLENGE_TEXT 16 381 382 #define TAG_POWER_CONSTRAINT 32 383 #define TAG_POWER_CAPABILITY 33 384 #define TAG_TPC_REQUEST 34 385 #define TAG_TPC_REPORT 35 386 #define TAG_SUPPORTED_CHANNELS 36 387 #define TAG_CHANNEL_SWITCH_ANN 37 388 #define TAG_MEASURE_REQ 38 389 #define TAG_MEASURE_REP 39 390 #define TAG_QUIET 40 391 #define TAG_IBSS_DFS 41 392 #define TAG_ERP_INFO 42 393 #define TAG_TS_DELAY 43 394 #define TAG_TCLAS_PROCESS 44 395 #define TAG_HT_CAPABILITY 45 /* IEEE Stc 802.11n/D2.0 */ 396 #define TAG_QOS_CAPABILITY 46 397 #define TAG_ERP_INFO_OLD 47 /* IEEE Std 802.11g/D4.0 */ 398 #define TAG_RSN_IE 48 399 /* Reserved 49 */ 400 #define TAG_EXT_SUPP_RATES 50 401 #define TAG_AP_CHANNEL_REPORT 51 402 #define TAG_NEIGHBOR_REPORT 52 403 #define TAG_RCPI 53 404 #define TAG_MOBILITY_DOMAIN 54 /* IEEE Std 802.11r-2008 */ 405 #define TAG_FAST_BSS_TRANSITION 55 /* IEEE Std 802.11r-2008 */ 406 #define TAG_TIMEOUT_INTERVAL 56 /* IEEE Std 802.11r-2008 */ 407 #define TAG_RIC_DATA 57 /* IEEE Std 802.11r-2008 */ 408 #define TAG_DSE_REG_LOCATION 58 409 #define TAG_SUPPORTED_OPERATING_CLASSES 59 /* IEEE Std 802.11w-2009 */ 410 #define TAG_EXTENDED_CHANNEL_SWITCH_ANNOUNCEMENT 60 /* IEEE Std 802.11w-2009 */ 411 #define TAG_HT_INFO 61 /* IEEE Stc 802.11n/D2.0 */ 412 #define TAG_SECONDARY_CHANNEL_OFFSET 62 /* IEEE Stc 802.11n/D1.10/D2.0 */ 413 #define TAG_BSS_AVG_ACCESS_DELAY 63 414 #define TAG_ANTENNA 64 415 #define TAG_RSNI 65 416 #define TAG_MEASURE_PILOT_TRANS 66 417 #define TAG_BSS_AVB_ADM_CAPACITY 67 418 #define TAG_IE_68_CONFLICT 68 /* Conflict: WAPI Vs. IEEE */ 419 #define TAG_WAPI_PARAM_SET 68 420 #define TAG_BSS_AC_ACCESS_DELAY 68 421 #define TAG_TIME_ADV 69 /* IEEE Std 802.11p-2010 */ 422 #define TAG_RM_ENABLED_CAPABILITY 70 423 #define TAG_MULTIPLE_BSSID 71 424 #define TAG_20_40_BSS_CO_EX 72 /* IEEE P802.11n/D6.0 */ 425 #define TAG_20_40_BSS_INTOL_CH_REP 73 /* IEEE P802.11n/D6.0 */ 426 #define TAG_OVERLAP_BSS_SCAN_PAR 74 /* IEEE P802.11n/D6.0 */ 427 #define TAG_RIC_DESCRIPTOR 75 /* IEEE Std 802.11r-2008 */ 428 #define TAG_MMIE 76 /* IEEE Std 802.11w-2009 */ 429 #define TAG_EVENT_REQUEST 78 430 #define TAG_EVENT_REPORT 79 431 #define TAG_DIAGNOSTIC_REQUEST 80 432 #define TAG_DIAGNOSTIC_REPORT 81 433 #define TAG_LOCATION_PARAMETERS 82 434 #define TAG_NO_BSSID_CAPABILITY 83 435 #define TAG_SSID_LIST 84 436 #define TAG_MULTIPLE_BSSID_INDEX 85 437 #define TAG_FMS_DESCRIPTOR 86 438 #define TAG_FMS_REQUEST 87 439 #define TAG_FMS_RESPONSE 88 440 #define TAG_QOS_TRAFFIC_CAPABILITY 89 441 #define TAG_BSS_MAX_IDLE_PERIOD 90 442 #define TAG_TFS_REQUEST 91 443 #define TAG_TFS_RESPONSE 92 444 #define TAG_WNM_SLEEP_MODE 93 445 #define TAG_TIM_BROADCAST_REQUEST 94 446 #define TAG_TIM_BROADCAST_RESPONSE 95 447 #define TAG_COLLOCATED_INTER_REPORT 96 448 #define TAG_CHANNEL_USAGE 97 449 #define TAG_TIME_ZONE 98 /* IEEE Std 802.11v-2011 */ 450 #define TAG_DMS_REQUEST 99 451 #define TAG_DMS_RESPONSE 100 452 #define TAG_LINK_IDENTIFIER 101 /* IEEE Std 802.11z-2010 */ 453 #define TAG_WAKEUP_SCHEDULE 102 /* IEEE Std 802.11z-2010 */ 454 #define TAG_CHANNEL_SWITCH_TIMING 104 /* IEEE Std 802.11z-2010 */ 455 #define TAG_PTI_CONTROL 105 /* IEEE Std 802.11z-2010 */ 456 #define TAG_PU_BUFFER_STATUS 106 /* IEEE Std 802.11z-2010 */ 457 #define TAG_INTERWORKING 107 /* IEEE Std 802.11u-2011 */ 458 #define TAG_ADVERTISEMENT_PROTOCOL 108 /* IEEE Std 802.11u-2011 */ 459 #define TAG_EXPIDITED_BANDWIDTH_REQ 109 /* IEEE Std 802.11u-2011 */ 460 #define TAG_QOS_MAP_SET 110 /* IEEE Std 802.11u-2011 */ 461 #define TAG_ROAMING_CONSORTIUM 111 /* IEEE Std 802.11u-2011 */ 462 #define TAG_EMERGENCY_ALERT_ID 112 /* IEEE Std 802.11u-2011 */ 463 #define TAG_MESH_CONFIGURATION 113 /* IEEE Std 802.11s-2011 */ 464 #define TAG_MESH_ID 114 /* IEEE Std 802.11s-2011 */ 465 #define TAG_MESH_LINK_METRIC_REPORT 115 466 #define TAG_CONGESTION_NOTIFICATION 116 467 #define TAG_MESH_PEERING_MGMT 117 /* IEEE Std 802.11s-2011 */ 468 #define TAG_MESH_CHANNEL_SWITCH 118 469 #define TAG_MESH_AWAKE_WINDOW 119 /* IEEE Std 802.11s-2011 */ 470 #define TAG_BEACON_TIMING 120 471 #define TAG_MCCAOP_SETUP_REQUEST 121 472 #define TAG_MCCAOP_SETUP_REPLY 122 473 #define TAG_MCCAOP_ADVERTISEMENT 123 474 #define TAG_MCCAOP_TEARDOWN 124 475 #define TAG_GANN 125 476 #define TAG_RANN 126 /* IEEE Std 802.11s-2011 */ 477 #define TAG_EXTENDED_CAPABILITIES 127 /* IEEE Stc 802.11n/D1.10/D2.0 */ 478 #define TAG_AGERE_PROPRIETARY 128 479 #define TAG_MESH_PREQ 130 /* IEEE Std 802.11s-2011 */ 480 #define TAG_MESH_PREP 131 /* IEEE Std 802.11s-2011 */ 481 #define TAG_MESH_PERR 132 /* IEEE Std 802.11s-2011 */ 482 #define TAG_CISCO_CCX1_CKIP 133 /* Cisco Compatible eXtensions v1 */ 483 #define TAG_CISCO_CCX2 136 /* Cisco Compatible eXtensions v2 */ 484 #define TAG_PXU 137 485 #define TAG_PXUC 138 486 #define TAG_AUTH_MESH_PEERING_EXCH 139 487 #define TAG_MIC 140 488 #define TAG_DESTINATION_URI 141 489 #define TAG_U_APSD_COEX 142 490 #define TAG_WAKEUP_SCHEDULE_AD 143 /* IEEE Std 802.11ad */ 491 #define TAG_EXTENDED_SCHEDULE 144 /* IEEE Std 802.11ad */ 492 #define TAG_STA_AVAILABILITY 145 /* IEEE Std 802.11ad */ 493 #define TAG_DMG_TSPEC 146 /* IEEE Std 802.11ad */ 494 #define TAG_NEXT_DMG_ATI 147 /* IEEE Std 802.11ad */ 495 #define TAG_DMG_CAPABILITIES 148 /* IEEE Std 802.11ad */ 496 #define TAG_CISCO_CCX3 149 /* Cisco Compatible eXtensions v3 */ 497 #define TAG_CISCO_VENDOR_SPECIFIC 150 /* Cisco Compatible eXtensions */ 498 #define TAG_DMG_OPERATION 151 /* IEEE Std 802.11ad */ 499 #define TAG_DMG_BSS_PARAMETER_CHANGE 152 /* IEEE Std 802.11ad */ 500 #define TAG_DMG_BEAM_REFINEMENT 153 /* IEEE Std 802.11ad */ 501 #define TAG_CHANNEL_MEASURMENT_FB 154 /* IEEE Std 802.11ad */ 502 #define TAG_AWAKE_WINDOW 157 /* IEEE Std 802.11ad */ 503 #define TAG_MULTI_BAND 158 /* IEEE Std 802.11ad */ 504 #define TAG_ADDBA_EXT 159 /* IEEE Std 802.11ad */ 505 #define TAG_NEXTPCP_LIST 160 /* IEEE Std 802.11ad */ 506 #define TAG_PCP_HANDOVER 161 /* IEEE Std 802.11ad */ 507 #define TAG_DMG_LINK_MARGIN 162 /* IEEE Std 802.11ad */ 508 #define TAG_SWITCHING_STREAM 163 /* IEEE Std 802.11ad */ 509 #define TAG_SESSION_TRANSMISSION 164 /* IEEE Std 802.11ad */ 510 #define TAG_DYN_TONE_PAIR_REP 165 /* IEEE Std 802.11ad */ 511 #define TAG_CLUSTER_REP 166 /* IEEE Std 802.11ad */ 512 #define TAG_RELAY_CAPABILITIES 167 /* IEEE Std 802.11ad */ 513 #define TAG_RELAY_TRANSFER_PARAM 168 /* IEEE Std 802.11ad */ 514 #define TAG_BEAMLINK_MAINTENANCE 169 /* IEEE Std 802.11ad */ 515 #define TAG_MULTIPLE_MAC_SUBLAYERS 170 /* IEEE Std 802.11ad */ 516 #define TAG_U_PID 171 /* IEEE Std 802.11ad */ 517 #define TAG_DMG_LINK_ADAPTION_ACK 172 /* IEEE Std 802.11ad */ 518 #define TAG_SYMBOL_PROPRIETARY 173 519 #define TAG_MCCAOP_ADVERTISEMENT_OV 174 520 #define TAG_QUIET_PERIOD_REQ 175 /* IEEE Std 802.11ad */ 521 #define TAG_QUIET_PERIOD_RES 177 /* IEEE Std 802.11ad */ 522 #define TAG_ECAPC_POLICY 182 /* IEEE Std 802.11ad */ 523 #define TAG_CLUSTER_TIME_OFFSET 183 /* IEEE Std 802.11ad */ 524 #define TAG_INTRA_ACCESS_CAT_PRIO 184 525 #define TAG_SCS_DESCRIPTOR 185 /* IEEE Std 802.11 */ 526 #define TAG_ANTENNA_SECTOR_ID 190 /* IEEE Std 802.11ad */ 527 #define TAG_VHT_CAPABILITY 191 /* IEEE Std 802.11ac/D3.1 */ 528 #define TAG_VHT_OPERATION 192 /* IEEE Std 802.11ac/D3.1 */ 529 #define TAG_EXT_BSS_LOAD 193 /* IEEE Std 802.11ac */ 530 #define TAG_WIDE_BW_CHANNEL_SWITCH 194 /* IEEE Std 802.11ac */ 531 #define TAG_TX_PWR_ENVELOPE 195 /* IEEE Std 802.11-2020 */ 532 #define TAG_CHANNEL_SWITCH_WRAPPER 196 /* IEEE Std 802.11ac */ 533 #define TAG_OPERATING_MODE_NOTIFICATION 199 /* IEEE Std 802.11ac */ 534 #define TAG_REDUCED_NEIGHBOR_REPORT 201 535 #define TAG_FINE_TIME_MEASUREMENT_PARAM 206 /* IEEE Std 802.11-REVmd/D2.0 */ 536 #define TAG_S1G_OPEN_LOOP_LINK_MARGIN_INDEX 207 /* IEEE Std 802.11ah */ 537 #define TAG_RPS 208 /* IEEE Stf 802.11ah */ 538 #define TAG_PAGE_SLICE 209 /* IEEE Stf 802.11ah */ 539 #define TAG_AID_REQUEST 210 /* IEEE Stf 802.11ah */ 540 #define TAG_AID_RESPONSE 211 /* IEEE Stf 802.11ah */ 541 #define TAG_S1G_SECTOR_OPERATION 212 /* IEEE Stf 802.11ah */ 542 #define TAG_S1G_BEACON_COMPATIBILITY 213 /* IEEE Stf 802.11ah */ 543 #define TAG_SHORT_BEACON_INTERVAL 214 /* IEEE Stf 802.11ah */ 544 #define TAG_CHANGE_SEQUENCE 215 /* IEEE Stf 802.11ah */ 545 #define TAG_TWT 216 /* IEEE Std 802.11ah */ 546 #define TAG_S1G_CAPABILITIES 217 /* IEEE Stf 802.11ah */ 547 #define TAG_SUBCHANNEL_SELECTIVE_TRANSMISSION 220 /* IEEE Stf 802.11ah */ 548 #define TAG_VENDOR_SPECIFIC_IE 221 549 #define TAG_AUTHENTICATION_CONTROL 222 /* IEEE Stf 802.11ah */ 550 #define TAG_TSF_TIMER_ACCURACY 223 /* IEEE Stf 802.11ah */ 551 #define TAG_S1G_RELAY 224 /* IEEE Stf 802.11ah */ 552 #define TAG_REACHABLE_ADDRESS 225 /* IEEE Stf 802.11ah */ 553 #define TAG_S1G_RELAY_DISCOVERY 226 /* IEEE Stf 802.11ah */ 554 #define TAG_AID_ANNOUNCEMENT 228 /* IEEE Stf 802.11ah */ 555 #define TAG_PV1_PROBE_RESPONSE_OPTION 229 /* IEEE Stf 802.11ah */ 556 #define TAG_EL_OPERATION 230 /* IEEE Stf 802.11ah */ 557 #define TAG_SECTORIZED_GROUP_ID_LIST 231 /* IEEE Stf 802.11ah */ 558 #define TAG_S1G_OPERATION 232 /* IEEE Stf 802.11ah */ 559 #define TAG_HEADER_COMPRESSION 233 /* IEEE Stf 802.11ah */ 560 #define TAG_SST_OPERATION 234 /* IEEE Stf 802.11ah */ 561 #define TAG_MAD 235 /* IEEE Stf 802.11ah */ 562 #define TAG_S1G_RELAY_ACTIVATION 236 /* IEEE Stf 802.11ah */ 563 #define TAG_CAG_NUMBER 237 /* IEEE Std 802.11ai */ 564 #define TAG_AP_CSN 239 /* IEEE Std 802.11ai */ 565 #define TAG_FILS_INDICATION 240 /* IEEE Std 802.11ai */ 566 #define TAG_DIFF_INITIAL_LINK_SETUP 241 /* IEEE Std 802.11ai */ 567 #define TAG_FRAGMENT 242 /* IEEE Std 802.11ai */ 568 #define TAG_RSNX 244 569 #define TAG_ELEMENT_ID_EXTENSION 255 /* IEEE Std 802.11ai */ 570 571 extern const value_string ie_tag_num_vals[]; 572 573 guint 574 add_ff_action(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int offset, 575 association_sanity_check_t *association_sanity_check ); 576 577 guint 578 add_ff_action_public_fields(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, 579 int offset, guint8 code); 580 581 /* 582 * Editor modelines 583 * 584 * Local Variables: 585 * c-basic-offset: 2 586 * tab-width: 8 587 * indent-tabs-mode: nil 588 * End: 589 * 590 * ex: set shiftwidth=2 tabstop=8 expandtab: 591 * :indentSize=2:tabSize=8:noTabs=true: 592 */ 593