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