16#include "ws_symbol_export.h"
23 bool association_has_mobility_domain_element;
24 bool has_ft_akm_suite;
25 bool has_non_ft_akm_suite;
26 bool has_fils_session;
27 uint32_t last_akm_suite;
35 uint16_t discovered_key_mic_len;
36 bool last_akm_suite_set;
37 uint32_t last_akm_suite;
42 bool last_akm_suite_set;
43 uint32_t last_akm_suite;
54} ieee80211_tagged_field_data_t;
57ieee_80211_add_tagged_parameters(tvbuff_t *tvb,
int offset,
packet_info *pinfo,
58 proto_tree *tree,
int tagged_parameters_len,
int ftype,
61int add_tagged_field(
packet_info *pinfo, proto_tree *tree,
62 tvbuff_t *tvb,
int offset,
int ftype,
63 const uint8_t *valid_element_ids,
64 unsigned valid_element_ids_count,
67int add_tagged_field_with_validation(
packet_info *pinfo, proto_tree *tree,
68 tvbuff_t *tvb,
int offset,
int ftype,
69 const uint8_t *element_ids,
70 unsigned element_ids_count,
71 bool elements_ids_assume_invalid,
72 const uint8_t *ext_element_ids,
73 unsigned ext_element_ids_count,
74 bool ext_element_ids_assume_invalid,
77int dissect_wifi_dpp_config_proto(
packet_info *pinfo, proto_tree *query,
78 tvbuff_t *tvb,
int offset);
79#define MAX_SSID_LEN 32
80#define MAX_PROTECT_LEN 10
86#define MAX_MCS_INDEX 76
88WS_DLL_PUBLIC
const uint16_t ieee80211_ht_Dbps[MAX_MCS_INDEX+1];
89float ieee80211_htrate(
int mcs_index,
bool bandwidth,
bool short_gi);
91WS_DLL_PUBLIC value_string_ext ieee80211_supported_rates_vals_ext;
93extern value_string_ext ieee80211_reason_code_ext;
94extern value_string_ext ieee80211_status_code_ext;
101#define FCF_PROT_VERSION(x) ((x) & 0x3)
111#define FCF_FRAME_TYPE(x) (((x) & 0xC) >> 2)
112#define FCF_PV1_TYPE(x) (((x) >> 2) & 0x7)
117#define FCF_FRAME_SUBTYPE(x) (((x) & 0xF0) >> 4)
118#define FCF_PV1_SUBTYPE(x) (((x) >> 5) & 0x7)
123#define FCF_FRAME_EXTENSION(x) (((x) & 0xF00) >> 8)
128#define IS_FRAME_EXTENSION(x) ((FCF_FRAME_TYPE(x) == 0x1 && FCF_FRAME_SUBTYPE(x) == 0x6) ? 1 : 0)
133#define MGT_TO_FCF(x) (((x) & 0x0F) << 4)
140#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)))
147#define DATA_FRAME_IS_CF_ACK(x) ((x) & 0x01)
148#define DATA_FRAME_IS_CF_POLL(x) ((x) & 0x02)
149#define DATA_FRAME_IS_NULL(x) ((x) & 0x04)
150#define DATA_FRAME_IS_QOS(x) ((x) & 0x08)
156#define FCF_FLAGS(x) ((FCF_FRAME_TYPE(x) == 0x1 && FCF_FRAME_SUBTYPE(x) == 0x6) ? (((x) & 0xF000) >> 12) : (((x) & 0xFF00) >> 8))
161#define FLAG_TO_DS 0x01
162#define FLAG_FROM_DS 0x02
163#define FLAG_MORE_FRAGMENTS 0x04
164#define FLAG_RETRY 0x08
165#define FLAG_POWER_MGT 0x10
166#define FLAG_MORE_DATA 0x20
167#define FLAG_PROTECTED 0x40
168#define FLAG_ORDER 0x80
177#define IS_TO_DS(x) ((x) & FLAG_TO_DS)
178#define IS_FROM_DS(x) ((x) & FLAG_FROM_DS)
179#define HAVE_FRAGMENTS(x) ((x) & FLAG_MORE_FRAGMENTS)
180#define IS_RETRY(x) ((x) & FLAG_RETRY)
181#define POWER_MGT_STATUS(x) ((x) & FLAG_POWER_MGT)
182#define HAS_MORE_DATA(x) ((x) & FLAG_MORE_DATA)
183#define IS_PROTECTED(x) ((x) & FLAG_PROTECTED)
184#define IS_STRICTLY_ORDERED(x) ((x) & FLAG_ORDER)
185#define HAS_HT_CONTROL(x) ((x) & FLAG_ORDER)
190#define FLAGS_DS_STATUS(x) ((x) & (FLAG_FROM_DS|FLAG_TO_DS))
196#define FCF_ADDR_SELECTOR(x) ((x) & ((FLAG_TO_DS|FLAG_FROM_DS) << 8))
198#define DATA_ADDR_T1 0
199#define DATA_ADDR_T2 (FLAG_FROM_DS << 8)
200#define DATA_ADDR_T3 (FLAG_TO_DS << 8)
201#define DATA_ADDR_T4 ((FLAG_TO_DS|FLAG_FROM_DS) << 8)
206#define MGT_ASSOC_REQ 0x00
207#define MGT_ASSOC_RESP 0x01
208#define MGT_REASSOC_REQ 0x02
209#define MGT_REASSOC_RESP 0x03
210#define MGT_PROBE_REQ 0x04
211#define MGT_PROBE_RESP 0x05
212#define MGT_MEASUREMENT_PILOT 0x06
213#define MGT_BEACON 0x08
215#define MGT_DISASS 0x0A
216#define MGT_AUTHENTICATION 0x0B
217#define MGT_DEAUTHENTICATION 0x0C
218#define MGT_ACTION 0x0D
219#define MGT_ACTION_NO_ACK 0x0E
220#define MGT_ARUBA_WLAN 0x0F
226#define CTRL_TRIGGER 0x12
227#define CTRL_TACK 0x13
228#define CTRL_BEAMFORM_RPT_POLL 0x14
229#define CTRL_VHT_NDP_ANNC 0x15
230#define CTRL_POLL 0x162
231#define CTRL_SPR 0x163
232#define CTRL_GRANT 0x164
233#define CTRL_DMG_CTS 0x165
234#define CTRL_DMG_DTS 0x166
235#define CTRL_GRANT_ACK 0x167
236#define CTRL_SSW 0x168
237#define CTRL_SSW_FEEDBACK 0x169
238#define CTRL_SSW_ACK 0x16A
239#define CTRL_CONTROL_WRAPPER 0x17
240#define CTRL_BLOCK_ACK_REQ 0x18
241#define CTRL_BLOCK_ACK 0x19
242#define CTRL_PS_POLL 0x1A
245#define CTRL_ACKNOWLEDGEMENT 0x1D
246#define CTRL_CFP_END 0x1E
247#define CTRL_CFP_ENDACK 0x1F
253#define DATA_CF_ACK 0x21
254#define DATA_CF_POLL 0x22
255#define DATA_CF_ACK_POLL 0x23
256#define DATA_NULL_FUNCTION 0x24
257#define DATA_CF_ACK_NOD 0x25
258#define DATA_CF_POLL_NOD 0x26
259#define DATA_CF_ACK_POLL_NOD 0x27
261#define DATA_QOS_DATA 0x28
262#define DATA_QOS_DATA_CF_ACK 0x29
263#define DATA_QOS_DATA_CF_POLL 0x2A
264#define DATA_QOS_DATA_CF_ACK_POLL 0x2B
265#define DATA_QOS_NULL 0x2C
266#define DATA_QOS_CF_POLL_NOD 0x2E
267#define DATA_QOS_CF_ACK_POLL_NOD 0x2F
272#define EXTENSION_DMG_BEACON 0x30
273#define EXTENSION_S1G_BEACON 0x31
278#define PV1_QOS_DATA_1MAC 0x00
279#define PV1_MANAGEMENT 0x01
280#define PV1_CONTROL 0x02
281#define PV1_QOS_DATA_2MAC 0x03
286#define PV1_CONTROL_STACK 0x00
287#define PV1_CONTROL_BAT 0x01
289#define PV1_MANAGEMENT_ACTION 0x00
290#define PV1_MANAGEMENT_ACTION_NO_ACK 0x01
291#define PV1_MANAGEMENT_PROBE_RESPONSE 0x02
292#define PV1_MANAGEMENT_RESOURCE_ALLOC 0x03
297#define SID_AID_MASK 0x1FFF
298#define SID_A3_PRESENT 0x2000
299#define SID_A4_PRESENT 0x4000
300#define SID_A_MSDU 0x8000
302#define TBTT_INFO(x) (((x) & 0x3) >> 0)
303#define TBTT_INFO_COUNT(x) (((x) & (0xf<<4)) >> 4)
304#define TBTT_INFO_LENGTH(x) (((x) & (0xff<<8)) >> 8)
309 unsigned char ssid[MAX_SSID_LEN];
310 char protection[MAX_PROTECT_LEN];
322#define WLANCAP_MAGIC_COOKIE_BASE 0x80211000
323#define WLANCAP_MAGIC_COOKIE_V1 0x80211001
324#define WLANCAP_MAGIC_COOKIE_V2 0x80211002
332#define ADV_PROTO_ID_ANQP 0
333#define ANV_PROTO_ID_MIH_IS 1
334#define ADV_PROTO_ID_MIH_CESCD 2
335#define ADV_PROTO_ID_EAS 3
336#define ADV_PROTO_ID_RLQP 4
337#define ADV_PROTO_ID_VS 221
342} anqp_info_dissector_data_t;
345#define WFA_SUBTYPE_SUBSCRIPTION_REMEDIATION 0
346#define WFA_SUBTYPE_DEAUTHENTICATION_IMMINENT 1
347#define WFA_SUBTYPE_P2P 9
348#define WFA_SUBTYPE_WIFI_DISPLAY 10
349#define WFA_SUBTYPE_HS20_INDICATION 16
350#define WFA_SUBTYPE_NAN_IE 19
351#define WFA_SUBTYPE_OSEN 20
352#define WFA_SUBTYPE_MBO_OCE 22
353#define WFA_SUBTYPE_WIFI_60G 23
354#define WFA_SUBTYPE_NAN_ACTION 24
355#define WFA_SUBTYPE_DPP 26
356#define WFA_SUBTYPE_IEEE1905_MULTI_AP 27
357#define WFA_SUBTYPE_OWE_TRANSITION_MODE 28
358#define WFA_SUBTYPE_TRANSITION_DISABLE_KDE 32
359#define WFA_SUBTYPE_QOS_MGMT 34
360#define WFA_SUBTYPE_WFA_CAPA 35
361#define WFA_SUBTYPE_RSN_OVERRIDE 41
362#define WFA_SUBTYPE_RSN_OVERRIDE_2 42
363#define WFA_SUBTYPE_RSNX_OVERRIDE 43
364#define WFA_SUBTYPE_RSN_SELECTION 44
365#define WFA_SUBTYPE_RSN_OVERRIDE_LINK_KDE 45
368#define WFA_SUBTYPE_ACTION_QOS_MGMT 0x1A
369#define WFA_SUBTYPE_ACTION_CAPABILITIES 0x1B
372#define WFA_ANQP_SUBTYPE_HS20 17
373#define WFA_ANQP_SUBTYPE_MBO 18
376#define WFA_WNM_SUBTYPE_NON_PREF_CHAN_REPORT 2
377#define WFA_WNM_SUBTYPE_CELL_DATA_CAPABILITIES 3
381#define TAG_SUPP_RATES 1
382#define TAG_FH_PARAMETER 2
383#define TAG_DS_PARAMETER 3
384#define TAG_CF_PARAMETER 4
386#define TAG_IBSS_PARAMETER 6
387#define TAG_COUNTRY_INFO 7
388#define TAG_FH_HOPPING_PARAMETER 8
389#define TAG_FH_HOPPING_TABLE 9
390#define TAG_REQUEST 10
391#define TAG_QBSS_LOAD 11
392#define TAG_EDCA_PARAM_SET 12
395#define TAG_SCHEDULE 15
396#define TAG_CHALLENGE_TEXT 16
398#define TAG_POWER_CONSTRAINT 32
399#define TAG_POWER_CAPABILITY 33
400#define TAG_TPC_REQUEST 34
401#define TAG_TPC_REPORT 35
402#define TAG_SUPPORTED_CHANNELS 36
403#define TAG_CHANNEL_SWITCH_ANN 37
404#define TAG_MEASURE_REQ 38
405#define TAG_MEASURE_REP 39
407#define TAG_IBSS_DFS 41
408#define TAG_ERP_INFO 42
409#define TAG_TS_DELAY 43
410#define TAG_TCLAS_PROCESS 44
411#define TAG_HT_CAPABILITY 45
412#define TAG_QOS_CAPABILITY 46
413#define TAG_ERP_INFO_OLD 47
416#define TAG_EXT_SUPP_RATES 50
417#define TAG_AP_CHANNEL_REPORT 51
418#define TAG_NEIGHBOR_REPORT 52
420#define TAG_MOBILITY_DOMAIN 54
421#define TAG_FAST_BSS_TRANSITION 55
422#define TAG_TIMEOUT_INTERVAL 56
423#define TAG_RIC_DATA 57
424#define TAG_DSE_REG_LOCATION 58
425#define TAG_SUPPORTED_OPERATING_CLASSES 59
426#define TAG_EXTENDED_CHANNEL_SWITCH_ANNOUNCEMENT 60
427#define TAG_HT_OPERATION 61
428#define TAG_SECONDARY_CHANNEL_OFFSET 62
429#define TAG_BSS_AVG_ACCESS_DELAY 63
430#define TAG_ANTENNA 64
432#define TAG_MEASURE_PILOT_TRANS 66
433#define TAG_BSS_AVB_ADM_CAPACITY 67
434#define TAG_IE_68_CONFLICT 68
435#define TAG_WAPI_PARAM_SET 68
436#define TAG_BSS_AC_ACCESS_DELAY 68
437#define TAG_TIME_ADV 69
438#define TAG_RM_ENABLED_CAPABILITY 70
439#define TAG_MULTIPLE_BSSID 71
440#define TAG_20_40_BSS_CO_EX 72
441#define TAG_20_40_BSS_INTOL_CH_REP 73
442#define TAG_OVERLAP_BSS_SCAN_PAR 74
443#define TAG_RIC_DESCRIPTOR 75
445#define TAG_EVENT_REQUEST 78
446#define TAG_EVENT_REPORT 79
447#define TAG_DIAGNOSTIC_REQUEST 80
448#define TAG_DIAGNOSTIC_REPORT 81
449#define TAG_LOCATION_PARAMETERS 82
450#define TAG_NO_BSSID_CAPABILITY 83
451#define TAG_SSID_LIST 84
452#define TAG_MULTIPLE_BSSID_INDEX 85
453#define TAG_FMS_DESCRIPTOR 86
454#define TAG_FMS_REQUEST 87
455#define TAG_FMS_RESPONSE 88
456#define TAG_QOS_TRAFFIC_CAPABILITY 89
457#define TAG_BSS_MAX_IDLE_PERIOD 90
458#define TAG_TFS_REQUEST 91
459#define TAG_TFS_RESPONSE 92
460#define TAG_WNM_SLEEP_MODE 93
461#define TAG_TIM_BROADCAST_REQUEST 94
462#define TAG_TIM_BROADCAST_RESPONSE 95
463#define TAG_COLLOCATED_INTER_REPORT 96
464#define TAG_CHANNEL_USAGE 97
465#define TAG_TIME_ZONE 98
466#define TAG_DMS_REQUEST 99
467#define TAG_DMS_RESPONSE 100
468#define TAG_LINK_IDENTIFIER 101
469#define TAG_WAKEUP_SCHEDULE 102
470#define TAG_CHANNEL_SWITCH_TIMING 104
471#define TAG_PTI_CONTROL 105
472#define TAG_PU_BUFFER_STATUS 106
473#define TAG_INTERWORKING 107
474#define TAG_ADVERTISEMENT_PROTOCOL 108
475#define TAG_EXPIDITED_BANDWIDTH_REQ 109
476#define TAG_QOS_MAP_SET 110
477#define TAG_ROAMING_CONSORTIUM 111
478#define TAG_EMERGENCY_ALERT_ID 112
479#define TAG_MESH_CONFIGURATION 113
480#define TAG_MESH_ID 114
481#define TAG_MESH_LINK_METRIC_REPORT 115
482#define TAG_CONGESTION_NOTIFICATION 116
483#define TAG_MESH_PEERING_MGMT 117
484#define TAG_MESH_CHANNEL_SWITCH 118
485#define TAG_MESH_AWAKE_WINDOW 119
486#define TAG_BEACON_TIMING 120
487#define TAG_MCCAOP_SETUP_REQUEST 121
488#define TAG_MCCAOP_SETUP_REPLY 122
489#define TAG_MCCAOP_ADVERTISEMENT 123
490#define TAG_MCCAOP_TEARDOWN 124
493#define TAG_EXTENDED_CAPABILITIES 127
494#define TAG_AGERE_PROPRIETARY 128
495#define TAG_MESH_PREQ 130
496#define TAG_MESH_PREP 131
497#define TAG_MESH_PERR 132
498#define TAG_CISCO_CCX1_CKIP 133
499#define TAG_CISCO_CCX2 136
502#define TAG_AUTH_MESH_PEERING_EXCH 139
504#define TAG_DESTINATION_URI 141
505#define TAG_U_APSD_COEX 142
506#define TAG_WAKEUP_SCHEDULE_AD 143
507#define TAG_EXTENDED_SCHEDULE 144
508#define TAG_STA_AVAILABILITY 145
509#define TAG_DMG_TSPEC 146
510#define TAG_NEXT_DMG_ATI 147
511#define TAG_DMG_CAPABILITIES 148
512#define TAG_CISCO_CCX3 149
513#define TAG_CISCO_VENDOR_SPECIFIC 150
514#define TAG_DMG_OPERATION 151
515#define TAG_DMG_BSS_PARAMETER_CHANGE 152
516#define TAG_DMG_BEAM_REFINEMENT 153
517#define TAG_CHANNEL_MEASURMENT_FB 154
518#define TAG_AWAKE_WINDOW 157
519#define TAG_MULTI_BAND 158
520#define TAG_ADDBA_EXT 159
521#define TAG_NEXTPCP_LIST 160
522#define TAG_PCP_HANDOVER 161
523#define TAG_DMG_LINK_MARGIN 162
524#define TAG_SWITCHING_STREAM 163
525#define TAG_SESSION_TRANSMISSION 164
526#define TAG_DYN_TONE_PAIR_REP 165
527#define TAG_CLUSTER_REP 166
528#define TAG_RELAY_CAPABILITIES 167
529#define TAG_RELAY_TRANSFER_PARAM 168
530#define TAG_BEAMLINK_MAINTENANCE 169
531#define TAG_MULTIPLE_MAC_SUBLAYERS 170
533#define TAG_DMG_LINK_ADAPTION_ACK 172
534#define TAG_SYMBOL_PROPRIETARY 173
535#define TAG_MCCAOP_ADVERTISEMENT_OV 174
536#define TAG_QUIET_PERIOD_REQ 175
537#define TAG_QUIET_PERIOD_RES 177
538#define TAG_ECAPC_POLICY 182
539#define TAG_CLUSTER_TIME_OFFSET 183
540#define TAG_INTRA_ACCESS_CAT_PRIO 184
541#define TAG_SCS_DESCRIPTOR 185
542#define TAG_ANTENNA_SECTOR_ID 190
543#define TAG_VHT_CAPABILITY 191
544#define TAG_VHT_OPERATION 192
545#define TAG_EXT_BSS_LOAD 193
546#define TAG_WIDE_BW_CHANNEL_SWITCH 194
547#define TAG_TX_PWR_ENVELOPE 195
548#define TAG_CHANNEL_SWITCH_WRAPPER 196
549#define TAG_OPERATING_MODE_NOTIFICATION 199
550#define TAG_REDUCED_NEIGHBOR_REPORT 201
551#define TAG_FINE_TIME_MEASUREMENT_PARAM 206
552#define TAG_S1G_OPEN_LOOP_LINK_MARGIN_INDEX 207
554#define TAG_PAGE_SLICE 209
555#define TAG_AID_REQUEST 210
556#define TAG_AID_RESPONSE 211
557#define TAG_S1G_SECTOR_OPERATION 212
558#define TAG_S1G_BEACON_COMPATIBILITY 213
559#define TAG_SHORT_BEACON_INTERVAL 214
560#define TAG_CHANGE_SEQUENCE 215
562#define TAG_S1G_CAPABILITIES 217
563#define TAG_SUBCHANNEL_SELECTIVE_TRANSMISSION 220
564#define TAG_VENDOR_SPECIFIC_IE 221
565#define TAG_AUTHENTICATION_CONTROL 222
566#define TAG_TSF_TIMER_ACCURACY 223
567#define TAG_S1G_RELAY 224
568#define TAG_REACHABLE_ADDRESS 225
569#define TAG_S1G_RELAY_DISCOVERY 226
570#define TAG_AID_ANNOUNCEMENT 228
571#define TAG_PV1_PROBE_RESPONSE_OPTION 229
572#define TAG_EL_OPERATION 230
573#define TAG_SECTORIZED_GROUP_ID_LIST 231
574#define TAG_S1G_OPERATION 232
575#define TAG_HEADER_COMPRESSION 233
576#define TAG_SST_OPERATION 234
578#define TAG_S1G_RELAY_ACTIVATION 236
579#define TAG_CAG_NUMBER 237
580#define TAG_AP_CSN 239
581#define TAG_FILS_INDICATION 240
582#define TAG_DIFF_INITIAL_LINK_SETUP 241
583#define TAG_FRAGMENT 242
585#define TAG_ELEMENT_ID_EXTENSION 255
588extern value_string_ext ff_pa_action_codes_ext;
592add_ff_action(proto_tree *tree, tvbuff_t *tvb,
packet_info *pinfo,
int offset,
596add_ff_action_public_fields(proto_tree *tree, tvbuff_t *tvb,
packet_info *pinfo,
597 int offset, uint8_t code);
600dissect_ieee80211_mgt(uint16_t fcf, tvbuff_t *tvb,
packet_info *pinfo, proto_tree *tree);
603dissect_mcs_set(proto_tree *tree,
packet_info* pinfo, tvbuff_t *tvb,
int offset,
bool basic,
bool vendorspecific);
606dissect_vht_mcs_set(proto_tree *tree, tvbuff_t *tvb,
int offset);
609dissect_ht_capabilities(proto_tree *tree, tvbuff_t *tvb,
int offset,
bool vendorspecific);
612dissect_vht_capabilities(proto_tree *tree, tvbuff_t *tvb,
int offset);
struct _address address
Holds a network or link-layer address of any supported type.
struct _packet_info packet_info
Represents the metadata and indexing information for a single captured frame.
struct _proto_node proto_node
proto_node proto_item
Definition proto.h:927
Definition packet-ieee80211.h:314
Definition packet-ieee80211.h:306
Definition packet-ieee80211.h:339
Definition packet-ieee80211.h:22
Definition packet-ieee80211.h:34
Definition packet-ieee80211.h:41
Definition packet-ieee80211.h:48
Definition packet-ieee80211.h:327
struct _value_string value_string
Mapping between a 32-bit integer value and its string representation.