1 /* packet-wimaxmacphy.c
2 * Routines for wimaxmacphy (WiMAX MAX PHY over Ethernet) packet dissection
3 * Copyright 2008, Mobile Metrics - http://mobilemetrics.net/
5 * Wireshark - Network traffic analyzer
6 * By Gerald Combs <gerald@wireshark.org>
7 * Copyright 1998 Gerald Combs
9 * SPDX-License-Identifier: GPL-2.0-or-later
14 #include <epan/packet.h>
15 #include <epan/expert.h>
17 #include <wsutil/array.h>
19 /* IF PROTO exposes code to other dissectors, then it must be exported
20 in a header file. If not, a header file is not needed at all. */
21 #include "packet-wimaxmacphy.h"
23 /* Initialize the protocol and registered fields */
25 static dissector_handle_t wimaxmacphy_handle
;
26 static int proto_wimaxmacphy
;
27 static int hf_wimaxmacphy_hdr_phy_entity_id
;
28 static int hf_wimaxmacphy_hdr_message_segmentation
;
29 static int hf_wimaxmacphy_hdr_message_type
;
30 static int hf_wimaxmacphy_unknown
;
31 static int hf_wimaxmacphy_prim_length_of_txvector
;
32 static int hf_wimaxmacphy_prim_length_of_rxvector
;
33 static int hf_wimaxmacphy_prim_status
;
34 static int hf_wimaxmacphy_prim_txstart_indication_status
;
35 static int hf_wimaxmacphy_prim_reserved1
;
36 static int hf_wimaxmacphy_prim_reserved2
;
37 static int hf_wimaxmacphy_prim_reserved3
;
38 static int hf_wimaxmacphy_prim_reserved4
;
39 static int hf_wimaxmacphy_prim_reserved5
;
40 static int hf_wimaxmacphy_prim_next_frame_number
;
41 static int hf_wimaxmacphy_prim_extended_frame_number
;
42 static int hf_wimaxmacphy_prim_current_frame_number_lsn
;
43 static int hf_wimaxmacphy_prim_initial_frame_number
;
44 static int hf_wimaxmacphy_prim_dl_zone_number
;
45 static int hf_wimaxmacphy_prim_sub_burst_burst_split_point
;
46 static int hf_wimaxmacphy_prim_dl_sub_burst_burst_number
;
47 static int hf_wimaxmacphy_prim_phy_sdu
;
48 static int hf_wimaxmacphy_prim_phy_request
;
49 static int hf_wimaxmacphy_prim_requested_aas_calibration_zone_size
;
50 static int hf_wimaxmacphy_prim_requested_aas_calibration_zone_alloc
;
51 static int hf_wimaxmacphy_prim_number_of_consecutive_frames_with_aas
;
52 static int hf_wimaxmacphy_prim_frame_number
;
53 static int hf_wimaxmacphy_prim_issid
;
54 static int hf_wimaxmacphy_prim_integrity
;
55 static int hf_wimaxmacphy_prim_number_of_bytes_received
;
56 static int hf_wimaxmacphy_prim_rssi_per_subcarrier_level
;
57 static int hf_wimaxmacphy_prim_cinr
;
58 static int hf_wimaxmacphy_prim_power_offset
;
59 static int hf_wimaxmacphy_prim_current_frame_number_msn
;
60 static int hf_wimaxmacphy_prim_acid_for_harq_data_bursts
;
61 static int hf_wimaxmacphy_prim_indication_type
;
62 static int hf_wimaxmacphy_prim_zone_permutation_type
;
63 static int hf_wimaxmacphy_prim_update_aas_handle_in_mac
;
64 static int hf_wimaxmacphy_prim_aas_handle
;
65 static int hf_wimaxmacphy_prim_time_deviation
;
66 static int hf_wimaxmacphy_prim_frequency_deviation
;
67 static int hf_wimaxmacphy_prim_phy_aas_report_present
;
68 static int hf_wimaxmacphy_prim_number_of_affected_ss
;
69 static int hf_wimaxmacphy_prim_zonexid
;
70 static int hf_wimaxmacphy_prim_cdma_code
;
71 static int hf_wimaxmacphy_prim_cdma_symbol
;
72 static int hf_wimaxmacphy_prim_cdma_subchannel
;
73 static int hf_wimaxmacphy_prim_harq_ack_issid
;
74 static int hf_wimaxmacphy_prim_harq_ack_acid
;
75 static int hf_wimaxmacphy_prim_harq_ack_reserved1
;
76 static int hf_wimaxmacphy_prim_harq_ack_ack_valid
;
77 static int hf_wimaxmacphy_prim_harq_ack_unnamed
;
78 static int hf_wimaxmacphy_prim_harq_ack_reserved2
;
79 static int hf_wimaxmacphy_prim_fast_issid
;
80 static int hf_wimaxmacphy_prim_fast_cqich_id
;
81 static int hf_wimaxmacphy_prim_fast_feedback_type_coding
;
82 static int hf_wimaxmacphy_prim_fast_feedback_type_coding_bit0
;
83 static int hf_wimaxmacphy_prim_fast_feedback_type_coding_bit1
;
84 static int hf_wimaxmacphy_prim_fast_feedback_type_coding_bit2
;
85 static int hf_wimaxmacphy_prim_fast_feedback_type_coding_bit3
;
86 static int hf_wimaxmacphy_prim_fast_feedback_type_coding_bit4
;
87 static int hf_wimaxmacphy_prim_fast_feedback_type_coding_bit5
;
88 static int hf_wimaxmacphy_prim_fast_feedback_type_coding_bit6
;
89 static int hf_wimaxmacphy_prim_fast_feedback_type_coding_bit7
;
90 static int hf_wimaxmacphy_prim_fast_feedback_valid
;
91 static int hf_wimaxmacphy_prim_fast_feedback_sub_type
;
92 static int hf_wimaxmacphy_prim_fast_reserved
;
93 static int hf_wimaxmacphy_prim_fast_feedback_value
;
94 static int hf_wimaxmacphy_subframe_subframe_type
;
95 static int hf_wimaxmacphy_subframe_frame_number
;
96 static int hf_wimaxmacphy_subframe_downlink_reserved1
;
97 static int hf_wimaxmacphy_subframe_phy_sap_version_number
;
98 static int hf_wimaxmacphy_subframe_downlink_reserved2
;
99 static int hf_wimaxmacphy_subframe_allocation_start_time
;
100 static int hf_wimaxmacphy_number_of_zone_descriptors
;
101 static int hf_wimaxmacphy_zone_padding
;
102 static int hf_wimaxmacphy_dl_zone_type
;
103 static int hf_wimaxmacphy_ul_zone_type
;
104 static int hf_wimaxmacphy_zone_number
;
105 static int hf_wimaxmacphy_zone_start_symbol_offset
;
106 static int hf_wimaxmacphy_zone_end_symbol_offset
;
107 static int hf_wimaxmacphy_dl_zone_permutation_type
;
108 static int hf_wimaxmacphy_ul_zone_permutation_type
;
109 static int hf_wimaxmacphy_dl_zone_use_all_subchannels_indicator
;
110 static int hf_wimaxmacphy_ul_zone_use_all_subchannels_indicator
;
111 static int hf_wimaxmacphy_ul_zone_disable_pusc_subchannel_rotation
;
112 static int hf_wimaxmacphy_zone_dl_perm_base
;
113 static int hf_wimaxmacphy_zone_ul_perm_base
;
114 static int hf_wimaxmacphy_zone_prbs_id
;
115 static int hf_wimaxmacphy_zone_agc_range_extension
;
116 static int hf_wimaxmacphy_zone_dedicated_pilots
;
117 static int hf_wimaxmacphy_zone_reserved
;
118 static int hf_wimaxmacphy_zone_stc_type
;
119 static int hf_wimaxmacphy_zone_matrix_indicator
;
120 static int hf_wimaxmacphy_zone_midamble_presence
;
121 static int hf_wimaxmacphy_zone_midamble_boosting
;
122 static int hf_wimaxmacphy_zone_preamble_configuration
;
123 static int hf_wimaxmacphy_zone_sdma_supported_indication
;
124 static int hf_wimaxmacphy_zone_preamble_type
;
125 static int hf_wimaxmacphy_dl_zone_aas_reserved
;
126 static int hf_wimaxmacphy_ul_zone_aas_reserved
;
127 static int hf_wimaxmacphy_number_of_burst_descriptors
;
128 static int hf_wimaxmacphy_burst_padding
;
129 static int hf_wimaxmacphy_dl_burst_type
;
130 static int hf_wimaxmacphy_ul_burst_type
;
131 static int hf_wimaxmacphy_burst_type_extension
;
132 static int hf_wimaxmacphy_burst_number
;
133 static int hf_wimaxmacphy_burst_modulation_fec_code_type
;
134 static int hf_wimaxmacphy_burst_data_length
;
135 static int hf_wimaxmacphy_burst_ofdma_symbol_offset
;
136 static int hf_wimaxmacphy_burst_subchannel_offset
;
137 static int hf_wimaxmacphy_burst_boosting
;
138 static int hf_wimaxmacphy_burst_reserved
;
139 static int hf_wimaxmacphy_burst_repetition_coding_indication
;
140 static int hf_wimaxmacphy_burst_issid
;
141 static int hf_wimaxmacphy_burst_aas_handle
;
142 static int hf_wimaxmacphy_dl_burst_map_number_of_slots
;
143 static int hf_wimaxmacphy_dl_burst_map_reserved
;
144 static int hf_wimaxmacphy_dl_burst_normal_number_of_symbols
;
145 static int hf_wimaxmacphy_dl_burst_normal_number_of_subchannels
;
146 static int hf_wimaxmacphy_dl_burst_normal_aas_handle
;
147 static int hf_wimaxmacphy_ul_burst_normal_number_of_slots
;
148 static int hf_wimaxmacphy_ul_burst_normal_reserved
;
149 static int hf_wimaxmacphy_burst_papr_number_of_symbols
;
150 static int hf_wimaxmacphy_burst_papr_number_of_subchannels
;
151 static int hf_wimaxmacphy_burst_papr_reserved
;
152 static int hf_wimaxmacphy_ul_burst_papr_unnamed
;
153 static int hf_wimaxmacphy_ul_burst_harq_ack_number_of_symbols
;
154 static int hf_wimaxmacphy_ul_burst_harq_ack_number_of_subchannels
;
155 static int hf_wimaxmacphy_ul_burst_harq_ack_reserved
;
156 static int hf_wimaxmacphy_ul_burst_fast_number_of_symbols
;
157 static int hf_wimaxmacphy_ul_burst_fast_number_of_subchannels
;
158 static int hf_wimaxmacphy_ul_burst_fast_reserved
;
159 static int hf_wimaxmacphy_ul_burst_initial_number_of_symbols
;
160 static int hf_wimaxmacphy_ul_burst_initial_number_of_subchannels
;
161 static int hf_wimaxmacphy_ul_burst_initial_ranging_method
;
162 static int hf_wimaxmacphy_ul_burst_initial_reserved1
;
163 static int hf_wimaxmacphy_ul_burst_initial_zone_xid
;
164 static int hf_wimaxmacphy_ul_burst_initial_reserved2
;
165 static int hf_wimaxmacphy_ul_burst_periodic_number_of_symbols
;
166 static int hf_wimaxmacphy_ul_burst_periodic_number_of_subchannels
;
167 static int hf_wimaxmacphy_ul_burst_periodic_ranging_method
;
168 static int hf_wimaxmacphy_ul_burst_periodic_reserved1
;
169 static int hf_wimaxmacphy_ul_burst_periodic_zone_xid
;
170 static int hf_wimaxmacphy_ul_burst_periodic_reserved2
;
171 static int hf_wimaxmacphy_ul_burst_sounding_number_of_symbols
;
172 static int hf_wimaxmacphy_ul_burst_sounding_number_of_subchannels
;
173 static int hf_wimaxmacphy_ul_burst_sounding_type
;
174 static int hf_wimaxmacphy_ul_burst_sounding_separability_type
;
175 static int hf_wimaxmacphy_ul_burst_sounding_max_cyclic_shift_indx
;
176 static int hf_wimaxmacphy_ul_burst_sounding_decimation_value
;
177 static int hf_wimaxmacphy_ul_burst_sounding_decimation_offset_rand
;
178 static int hf_wimaxmacphy_ul_burst_sounding_reserved
;
179 static int hf_wimaxmacphy_ul_burst_noise_number_of_symbols
;
180 static int hf_wimaxmacphy_ul_burst_noise_number_of_subchannels
;
181 static int hf_wimaxmacphy_ul_burst_noise_reserved
;
182 static int hf_wimaxmacphy_burst_opt_aas_preamble_modifier_type
;
183 static int hf_wimaxmacphy_burst_opt_aas_preamble_shift_index
;
184 static int hf_wimaxmacphy_burst_opt_aas_reserved
;
185 static int hf_wimaxmacphy_burst_opt_mimo_matrix_indicator
;
186 static int hf_wimaxmacphy_burst_opt_mimo_layer_index
;
187 static int hf_wimaxmacphy_dl_burst_opt_mimo_reserved
;
188 static int hf_wimaxmacphy_ul_burst_opt_mimo_matrix_indicator
;
189 static int hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns
;
190 static int hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit0
;
191 static int hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit1
;
192 static int hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit2
;
193 static int hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit3
;
194 static int hf_wimaxmacphy_ul_burst_opt_mimo_collaborative
;
195 static int hf_wimaxmacphy_ul_burst_opt_mimo_antenna_unnamed
;
196 static int hf_wimaxmacphy_number_of_sub_burst_descriptors
;
197 static int hf_wimaxmacphy_sub_burst_padding
;
198 static int hf_wimaxmacphy_dl_sub_burst_type
;
199 static int hf_wimaxmacphy_ul_sub_burst_type
;
200 static int hf_wimaxmacphy_sub_burst_number
;
201 static int hf_wimaxmacphy_sub_burst_symbol_offset
;
202 static int hf_wimaxmacphy_sub_burst_subchannel_offset
;
203 static int hf_wimaxmacphy_sub_burst_number_of_slots
;
204 static int hf_wimaxmacphy_sub_burst_reserved1
;
205 static int hf_wimaxmacphy_sub_burst_reserved2
;
206 static int hf_wimaxmacphy_sub_burst_modulation_fec_code_type
;
207 static int hf_wimaxmacphy_sub_burst_issid
;
208 static int hf_wimaxmacphy_sub_burst_aas_handle
;
209 static int hf_wimaxmacphy_sub_burst_boosting
;
210 static int hf_wimaxmacphy_sub_burst_repetition_coding_indication
;
211 static int hf_wimaxmacphy_sub_burst_data_length
;
212 static int hf_wimaxmacphy_sub_burst_harq_chase_harq_channel_id
;
213 static int hf_wimaxmacphy_sub_burst_harq_chase_harq_sequence_number
;
214 static int hf_wimaxmacphy_sub_burst_harq_chase_flush_unnamed
;
215 static int hf_wimaxmacphy_sub_burst_harq_chase_reserved
;
216 static int hf_wimaxmacphy_sub_burst_mimo_chase_harq_channel_id
;
217 static int hf_wimaxmacphy_sub_burst_mimo_chase_harq_sequence_number
;
218 static int hf_wimaxmacphy_sub_burst_mimo_chase_flush_unnamed
;
219 static int hf_wimaxmacphy_sub_burst_mimo_chase_layer_index
;
220 static int hf_wimaxmacphy_ul_sub_burst_ctype
;
221 static int hf_wimaxmacphy_ul_sub_burst_mini_subchannel_index
;
222 static int hf_wimaxmacphy_ul_sub_burst_mini_reserved
;
223 static int hf_wimaxmacphy_ul_sub_burst_feedback_type_coding
;
224 static int hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit0
;
225 static int hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit1
;
226 static int hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit2
;
227 static int hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit3
;
228 static int hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit4
;
229 static int hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit5
;
230 static int hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit6
;
231 static int hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit7
;
232 static int hf_wimaxmacphy_ul_sub_burst_feedback_reserved1
;
233 static int hf_wimaxmacphy_ul_sub_burst_feedback_sub_type
;
234 static int hf_wimaxmacphy_ul_sub_burst_feedback_cqich_id
;
235 static int hf_wimaxmacphy_ul_sub_burst_feedback_reserved2
;
236 static int hf_wimaxmacphy_ul_sub_burst_feedback_slot_offset
;
237 static int hf_wimaxmacphy_ul_sub_burst_harq_ack_acid
;
238 static int hf_wimaxmacphy_ul_sub_burst_harq_ack_reserved
;
239 static int hf_wimaxmacphy_ul_sub_burst_sounding_symbol_index
;
240 static int hf_wimaxmacphy_ul_sub_burst_sounding_power_assignment
;
241 static int hf_wimaxmacphy_ul_sub_burst_sounding_power_boost
;
242 static int hf_wimaxmacphy_ul_sub_burst_sounding_allocation_mode
;
243 static int hf_wimaxmacphy_ul_sub_burst_sounding_start_freq_band
;
244 static int hf_wimaxmacphy_ul_sub_burst_sounding_num_freq_bands
;
245 static int hf_wimaxmacphy_ul_sub_burst_sounding_band_bit_map
;
246 static int hf_wimaxmacphy_ul_sub_burst_sounding_cyclic_time_shift
;
247 static int hf_wimaxmacphy_ul_sub_burst_sounding_decimation_offset
;
248 static int hf_wimaxmacphy_ul_sub_burst_sounding_reserved
;
249 static int hf_wimaxmacphy_ul_sub_burst_mimo_chase_matrix
;
251 /* Initialize the subtree pointers */
252 static int ett_wimaxmacphy
;
253 static int ett_wimaxmacphy_primitive
;
254 static int ett_wimaxmacphy_prim_harq_ack
;
255 static int ett_wimaxmacphy_prim_fast_feedback
;
256 static int ett_wimaxmacphy_prim_fast_feedback_type_coding
;
257 static int ett_wimaxmacphy_dl_zone_descriptor
;
258 static int ett_wimaxmacphy_dl_zone_stc
;
259 static int ett_wimaxmacphy_dl_zone_aas
;
260 static int ett_wimaxmacphy_dl_burst_descriptor
;
261 static int ett_wimaxmacphy_dl_burst_map
;
262 static int ett_wimaxmacphy_dl_burst_normal
;
263 static int ett_wimaxmacphy_dl_burst_papr
;
264 static int ett_wimaxmacphy_dl_sub_burst_descriptor
;
265 static int ett_wimaxmacphy_dl_sub_burst_harq_chase
;
266 static int ett_wimaxmacphy_dl_sub_burst_mimo_chase
;
267 static int ett_wimaxmacphy_dl_burst_opt_aas
;
268 static int ett_wimaxmacphy_dl_burst_opt_mimo
;
269 static int ett_wimaxmacphy_ul_zone_descriptor
;
270 static int ett_wimaxmacphy_ul_zone_aas
;
271 static int ett_wimaxmacphy_ul_burst_descriptor
;
272 static int ett_wimaxmacphy_ul_burst_harq_ack
;
273 static int ett_wimaxmacphy_ul_burst_fast_feedback
;
274 static int ett_wimaxmacphy_ul_burst_initial_ranging
;
275 static int ett_wimaxmacphy_ul_burst_periodic_ranging
;
276 static int ett_wimaxmacphy_ul_burst_papr_safety_zone
;
277 static int ett_wimaxmacphy_ul_burst_sounding_zone
;
278 static int ett_wimaxmacphy_ul_burst_noise_floor
;
279 static int ett_wimaxmacphy_ul_burst_normal_data
;
280 static int ett_wimaxmacphy_ul_burst_opt_aas
;
281 static int ett_wimaxmacphy_ul_burst_opt_mimo
;
282 static int ett_wimaxmacphy_ul_sub_burst_descriptor
;
283 static int ett_wimaxmacphy_ul_pilot_patterns
;
284 static int ett_wimaxmacphy_ul_feedback_type_coding
;
285 static int ett_wimaxmacphy_ul_sub_burst_mini_subchannel
;
286 static int ett_wimaxmacphy_ul_sub_burst_fast_feedback
;
287 static int ett_wimaxmacphy_ul_sub_burst_harq_ack
;
288 static int ett_wimaxmacphy_ul_sub_burst_sounding_signal
;
289 static int ett_wimaxmacphy_ul_sub_burst_harq_chase
;
290 static int ett_wimaxmacphy_ul_sub_burst_mimo_chase
;
291 static int ett_wimaxmacphy_ul_sub_burst_sub_allocation_specific
;
293 static expert_field ei_wimaxmacphy_unknown
;
295 /* PHY SAP message header size */
296 #define WIMAXMACPHY_HEADER_SIZE 2
298 #define WIMAXMACPHY_BIT(n) (1 << (n))
300 #define WIMAXMACPHY_PHY_TXSTART_REQUEST 1
301 #define WIMAXMACPHY_PHY_TXSTART_CONFIRMATION 2
302 #define WIMAXMACPHY_PHY_TXSTART_INDICATION 3
303 #define WIMAXMACPHY_PHY_TXSDU_REQUEST 4
304 #define WIMAXMACPHY_PHY_TXSDU_CONFIRMATION 5
305 #define WIMAXMACPHY_PHY_TXEND_INDICATION 6
306 #define WIMAXMACPHY_PHY_RXSTART_REQUEST 7
307 #define WIMAXMACPHY_PHY_RXSTART_CONFIRMATION 8
308 #define WIMAXMACPHY_PHY_RXSTART_INDICATION 9
309 #define WIMAXMACPHY_PHY_RXSDU_INDICATION 10
310 #define WIMAXMACPHY_PHY_RXEND_INDICATION 11
311 #define WIMAXMACPHY_PHY_RXCDMA_INDICATION 15
313 /* ------------------------------------------------------------------------- */
315 static const value_string wimaxmacphy_message_segmentation_vals
[] =
317 { 0x00, "Middle segment of the message segment sequence"},
318 { 0x01, "Last segment of the message segment sequence"},
319 { 0x02, "First segment of the message segment sequence"},
320 { 0x03, "The entire message is contained in this segment"},
324 /* ------------------------------------------------------------------------- */
326 static const value_string wimaxmacphy_message_type_vals
[] =
329 { 1, "PHY_TXSTART.request"},
330 { 2, "PHY_TXSTART.confirmation"},
331 { 3, "PHY_TXSTART.indication"},
332 { 4, "PHY_TXSDU.request"},
333 { 5, "PHY_TXSDU.confirmation"},
334 { 6, "PHY_TXEND.indication"},
335 { 7, "PHY_RXSTART.request"},
336 { 8, "PHY_RXSTART.confirmation"},
337 { 9, "PHY_RXSTART.indication"},
338 { 10, "PHY_RXSDU.indication"},
339 { 11, "PHY_RXEND.indication"},
340 { 12, "Reserved (OFDM)"},
341 { 13, "Reserved (OFDM)"},
342 { 14, "Reserved (OFDM)"},
343 { 15, "PHY_RXCDMA.indication"},
344 { 16, "Reserved (OFDMA SS)"},
345 { 17, "Reserved (OFDMA SS)"},
348 #if 0 /* XXX: 'tshark -G values' gives warning on Windows' */
349 static value_string_ext wimaxmacphy_message_type_vals_ext
= VALUE_STRING_EXT_INIT(wimaxmacphy_message_type_vals
);
352 /* ------------------------------------------------------------------------- */
353 /* error code field coding, for all but TXSTART.indication
355 static const value_string wimaxmacphy_prim_status_vals
[]=
358 { 1, "Primitive is not supported"},
359 { 2, "FEC code type is not supported"},
362 { 5, "Transport Media Error"},
363 { 6, "TX data size do not match TXVECTOR"},
364 { 7, "Invalid RX/TX VECTOR format"},
368 /* ---------------------------------------------------------------------------
369 * error code field coding, TXSTART.indication specific, delta is description
373 static const value_string wimaxmacphy_prim_txstart_indication_status_vals
[]=
376 { 1, "Restart flag"},
377 { 2, "FEC code type is not supported"},
380 { 5, "Transport Media Error"},
381 { 6, "TX data size do not match TXVECTOR"},
382 { 7, "Invalid RX/TX VECTOR format"},
386 /* ------------------------------------------------------------------------- */
389 static const value_string wimaxmacphy_prim_sub_burst_burst_split_point_vals
[]=
391 { 0x00, "all 10 bits for burst number"},
392 { 0x01, "1 bit sub-burst and 9 bits burst number"},
393 { 0x02, "2 bit sub-burst and 8 bits burst number"},
394 { 0x03, "3 bit sub-burst and 7 bits burst number"},
395 { 0x04, "4 bit sub-burst and 6 bits burst number"},
396 { 0x05, "5 bit sub-burst and 5 bits burst number"},
397 { 0x06, "6 bit sub-burst and 4 bits burst number"},
398 { 0x07, "7 bit sub-burst and 3 bits burst number"},
403 /* ------------------------------------------------------------------------- */
406 static const value_string wimaxmacphy_prim_phy_request_vals
[]=
408 { 0x0, "LW 1 not present"},
409 { 0x1, "AAS calibration request present in LW 1"},
414 /* ------------------------------------------------------------------------- */
416 static const value_string wimaxmacphy_prim_integrity_vals
[]=
419 { 1, "invalid data"},
423 /* ------------------------------------------------------------------------- */
425 static const value_string wimaxmacphy_prim_indication_type_vals
[]=
428 { 1, "HARQ ACK channel"},
429 { 2, "Fast Feedback Channel"},
430 { 3, "HARQ data burst"},
431 { 4, "MIMO data burst"},
432 { 5, "MIMO HARQ data burst"},
436 /* ------------------------------------------------------------------------- */
438 static const value_string wimaxmacphy_prim_zone_permutation_type_vals
[]=
441 { 0x1, "Optional PUSC"},
442 { 0x2, "AMC - 1 x 6"},
443 { 0x3, "AMC - 2 x 3"},
444 { 0x4, "AMC - 3 x 2"},
448 /* ------------------------------------------------------------------------- */
450 static const value_string wimaxmacphy_prim_phy_aas_report_present_vals
[]=
452 { 0x0, " not present (only LW 0 is significant)"},
453 { 0x1, "AAS info aged out report present"},
457 /* ------------------------------------------------------------------------- */
459 static const value_string wimaxmacphy_prim_harq_ack_ack_valid_vals
[]=
462 { 1, "invalid data"},
466 static const true_false_string set_notset
= {
471 /* ------------------------------------------------------------------------- */
473 static const value_string wimaxmacphy_prim_harq_ack_unnamed_vals
[]=
480 /* ------------------------------------------------------------------------- */
482 static const value_string wimaxmacphy_prim_fast_feedback_valid_vals
[]=
485 { 1, "invalid data"},
489 /* ------------------------------------------------------------------------- */
492 const value_string wimaxmacphy_prim_fast_feedback_sub_type_vals
[]=
494 { 0, "CQI (CINR) measurement"},
495 { 1, "Control feedback"},
499 /* ------------------------------------------------------------------------- */
501 static const value_string wimaxmacphy_subframe_type_vals
[]=
503 { 1, "Downlink Subframe"},
504 { 2, "Uplink Subframe"},
508 /* ------------------------------------------------------------------------- */
510 static const value_string wimaxmacphy_dl_zone_type_vals
[]=
512 { 0x20, "Normal Zone Parameters"},
513 { 0x21, "STC Zone Parameters"},
514 { 0x22, "AAS Zone Parameters"},
515 { 0x23, "Common Sync Symbol Parameters"},
516 { 0x24, "AAS Calibration Zone"},
520 /* ------------------------------------------------------------------------- */
522 static const value_string wimaxmacphy_ul_zone_type_vals
[]=
524 { 0x20, "Normal Zone Parameters"},
526 { 0x22, "AAS Zone Parameters"},
532 /* ------------------------------------------------------------------------- */
534 static const value_string wimaxmacphy_dl_zone_permutation_type_vals
[]=
538 { 0x02, "Optional FUSC"},
539 { 0x03, "AMC - 1 x 6"},
540 { 0x04, "AMC - 2 x 3"},
541 { 0x05, "AMC - 3 x 2"},
547 /* ------------------------------------------------------------------------- */
549 static const value_string wimaxmacphy_ul_zone_permutation_type_vals
[]=
553 { 0x02, "Optional FUSC"},
554 { 0x03, "AMC - 1 x 6"},
555 { 0x04, "AMC - 2 x 3"},
556 { 0x05, "AMC - 3 x 2"},
562 /* ------------------------------------------------------------------------- */
565 const value_string wimaxmacphy_zone_use_all_subchannels_indicator_vals
[]=
567 { 0, "use only subchannels specified in PHY configuration register"},
568 { 1, "use all subchannels"},
572 /* ------------------------------------------------------------------------- */
575 const value_string wimaxmacphy_ul_zone_disable_pusc_subchannel_rotation_vals
[]=
577 { 0, "rotation enabled"},
578 { 1, "rotation disabled"},
582 /* ------------------------------------------------------------------------- */
584 static const value_string wimaxmacphy_zone_dedicated_pilots_vals
[]=
586 { 0, "pilots are broadcast"},
587 { 1, "pilots are dedicated"},
591 /* ------------------------------------------------------------------------- */
593 static const value_string wimaxmacphy_zone_agc_range_extension_vals
[]=
595 { 0, "default range"},
596 { 1, "range to cover SS very close to BS"},
600 /* ------------------------------------------------------------------------- */
602 static const value_string wimaxmacphy_zone_stc_type_vals
[]=
604 { 0x00, "STC using 2 antennas"},
605 { 0x01, "STC using 3 antennas"},
606 { 0x02, "STC using 4 antennas"},
607 { 0x03, "FHDC using 2 antennas"},
611 /* ------------------------------------------------------------------------- */
613 static const value_string wimaxmacphy_matrix_indicator_vals
[]=
621 /* ------------------------------------------------------------------------- */
623 static const value_string wimaxmacphy_zone_midamble_presence_vals
[]=
630 /* ------------------------------------------------------------------------- */
632 static const value_string wimaxmacphy_zone_midamble_boosting_vals
[]=
639 /* ------------------------------------------------------------------------- */
641 static const value_string wimaxmacphy_zone_preamble_configuration_vals
[]=
643 { 0x00, "0 symbols (preambles not supported)"},
645 { 0x02, "2 symbols"},
646 { 0x03, "3 symbols"},
650 /* ------------------------------------------------------------------------- */
652 static const value_string wimaxmacphy_zone_sdma_supported_indication_vals
[]=
654 { 0, "SDMA not supported"},
655 { 1, "SDMA supported"},
659 /* ------------------------------------------------------------------------- */
661 static const value_string wimaxmacphy_zone_preamble_type_vals
[]=
663 { 0, "frequency shifted preamble"},
664 { 1, "time shifted preamble"},
668 /* ------------------------------------------------------------------------- */
670 static const value_string wimaxmacphy_dl_burst_type_vals
[]=
672 { 0x40, "Map Data Burst"},
673 { 0x41, "Normal Data Burst"},
674 { 0x42, "Control Command"},
675 { 0x43, "PAPR Allocation"},
679 /* ------------------------------------------------------------------------- */
681 static const value_string wimaxmacphy_ul_burst_type_vals
[]=
683 { 0x40, "HARQ ACK Channel allocation"},
684 { 0x41, "Fast Feedback Channel allocation"},
685 { 0x42, "Initial Ranging/Handover Ranging region"},
686 { 0x43, "Periodic Ranging/Bandwidth Request region"},
687 { 0x44, "PAPR/Safety Zone allocation"},
688 { 0x45, "Sounding Zone allocation"},
689 { 0x46, "Noise Floor Calculation allocation"},
690 { 0x47, "Normal Data burst"},
691 { 0x48, "Control Command"},
696 /* ------------------------------------------------------------------------- */
698 static const value_string wimaxmacphy_burst_type_extension_vals
[]=
700 { 0x00, "no extended data:"},
706 /* ------------------------------------------------------------------------- */
708 static const value_string wimaxmacphy_modulation_fec_code_type_vals
[]=
710 { 0, "QPSK (CC) 1/2"},
711 { 1, "QPSK (CC) 3/4"},
712 { 2, "16-QAM (CC) 1/2"},
713 { 3, "16-QAM (CC) 3/4"},
714 { 4, "64-QAM (CC) 1/2"},
715 { 5, "64-QAM (CC) 2/3"},
716 { 6, "64-QAM (CC) 3/4"},
717 { 7, "QPSK (BTC) 1/2"},
718 { 8, "QPSK (BTC) 3/4"},
719 { 9, "16-QAM (BTC) 3/5"},
720 { 10, "16-QAM (BTC) 4/5"},
721 { 11, "64-QAM (BTC) 5/8"},
722 { 12, "64-QAM (BTC) 4/5"},
723 { 13, "QPSK (CTC) 1/2"},
725 { 15, "QPSK (CTC) 3/4"},
726 { 16, "16-QAM (CTC) 1/2"},
727 { 17, "16-QAM (CTC) 3/4"},
728 { 18, "64-QAM (CTC) 1/2"},
729 { 19, "64-QAM (CTC) 2/3"},
730 { 20, "64-QAM (CTC) 3/4"},
731 { 21, "64-QAM (CTC) 5/6"},
732 { 22, "QPSK (ZT CC) 1/2"},
733 { 23, "QPSK (ZT CC) 3/4"},
734 { 24, "16-QAM (ZT CC) 1/2"},
735 { 25, "16-QAM (ZT CC) 3/4"},
736 { 26, "64-QAM (ZT CC) 1/2"},
737 { 27, "64-QAM (ZT CC) 2/3"},
738 { 28, "64-QAM (ZT CC) 3/4"},
739 { 29, "QPSK (LDPC) 1/2"},
740 { 30, "QPSK (LDPC) 2/3 A code"},
741 { 31, "QPSK (LDPC) 3/4 A code"},
742 { 32, "16-QAM (LDPC) 1/2"},
743 { 33, "16-QAM (LDPC) 2/3 A code"},
744 { 34, "16-QAM (LDPC) 3/4 A code"},
745 { 35, "64-QAM (LDPC) 1/2"},
746 { 36, "64-QAM (LDPC) 2/3 A code"},
747 { 37, "64-QAM (LDPC) 3/4 A code"},
748 { 38, "QPSK (LDPC) 2/3 B code"},
749 { 39, "QPSK (LDPC) 3/4 B code"},
750 { 40, "16-QAM (LDPC) 2/3 B code"},
751 { 41, "16-QAM (LDPC) 3/4 B code"},
752 { 42, "64-QAM (LDPC) 2/3 B code"},
753 { 43, "64-QAM (LDPC) 3/4 B code"},
754 { 44, "QPSK (CC with optional interleaver) 1/2"},
755 { 45, "QPSK (CC with optional interleaver) 3/4"},
756 { 46, "16-QAM (CC with optional interleaver) 1/2"},
757 { 47, "16-QAM (CC with optional interleaver) 3/4"},
758 { 48, "64-QAM (CC with optional interleaver) 2/3"},
759 { 49, "64-QAM (CC with optional interleaver) 3/4"},
760 { 50, "QPSK (LDPC) 5/6"},
761 { 51, "16-QAM(LDPC) 5/6"},
762 { 52, "64-QAM(LDPC) 5/6"},
765 #if 0 /* XXX: 'tshark -G values' gives warning on Windows' */
766 static value_string_ext wimaxmacphy_modulation_fec_code_type_vals_ext
=
767 VALUE_STRING_EXT_INIT(wimaxmacphy_modulation_fec_code_type_vals
);
770 /* ------------------------------------------------------------------------- */
772 static const value_string wimaxmacphy_burst_boosting_vals
[]=
785 /* ------------------------------------------------------------------------- */
788 const value_string wimaxmacphy_burst_repetition_coding_indication_vals
[]=
790 { 0x00, "No repetition coding"},
791 { 0x01, "Repetition coding of 2"},
792 { 0x02, "Repetition coding of 4"},
793 { 0x03, "Repetition coding of 6"},
797 /* ------------------------------------------------------------------------- */
799 static const value_string wimaxmacphy_dl_sub_burst_type_vals
[]=
802 { 0x61, "HARQ Chase Combining"},
803 { 0x62, "HARQ IR-CTC"},
804 { 0x63, "HARQ IR-CC"},
805 { 0x64, "MIMO Chase Combining"},
806 { 0x65, "MIMO IR-CTC"},
807 { 0x66, "MIMO IR-CC"},
812 /* ------------------------------------------------------------------------- */
814 static const value_string wimaxmacphy_ul_sub_burst_type_vals
[]=
817 { 0x61, "HARQ Chase Combining"},
818 { 0x62, "HARQ IR-CTC"},
819 { 0x63, "HARQ IR-CC"},
820 { 0x64, "MIMO Chase Combining"},
821 { 0x65, "MIMO IR-CTC"},
822 { 0x66, "MIMO IR-CC"},
824 { 0x68, "Mini-subchannel"},
825 { 0x69, "Fast Feedback channel"},
826 { 0x6A, "HARQ ACK subchannel"},
827 { 0x6B, "Sounding signal"},
831 /* ------------------------------------------------------------------------- */
833 static const value_string wimaxmacphy_sub_burst_flush_unnamed_vals
[]=
835 { 0x00, "no flush action"},
836 { 0x02, "flush request to PHY for the ISSID/ACID"},
837 { 0x03, "flush request to PHY for the given ISSID"},
841 /* ------------------------------------------------------------------------- */
843 static const value_string wimaxmacphy_ul_burst_papr_unnamed_vals
[]=
845 { 0, "UL PAPR reduction"},
846 { 1, "UL Safety zone"},
850 /* ------------------------------------------------------------------------- */
852 static const value_string wimaxmacphy_ul_burst_ranging_method_vals
[]=
854 { 0, "ranging over 2 symbols"},
855 { 1, "ranging over 4 symbols"},
859 /* ------------------------------------------------------------------------- */
861 static const value_string wimaxmacphy_ul_burst_sounding_type_vals
[]=
868 /* ------------------------------------------------------------------------- */
871 const value_string wimaxmacphy_ul_burst_sounding_separability_type_vals
[]=
873 { 0, "all subcarriers"},
874 { 1, "decimated subcarriers in a band"},
878 /* ------------------------------------------------------------------------- */
881 const value_string wimaxmacphy_ul_burst_sounding_max_cyclic_shift_indx_vals
[]=
892 /* ------------------------------------------------------------------------- */
895 const value_string wimaxmacphy_ul_burst_sounding_decimation_offset_rand_vals
[]=
897 { 0, "no randomization"},
898 { 1, "randomization"},
902 /* ------------------------------------------------------------------------- */
905 const value_string wimaxmacphy_ul_burst_opt_mimo_matrix_indicator_vals
[]=
907 { 0x00, "Matrix A (STTD)"},
908 { 0x01, "Matrix B (SM)"},
914 /* ------------------------------------------------------------------------- */
916 static const value_string wimaxmacphy_ul_burst_opt_mimo_collaborative_vals
[]=
918 { 0, "non-collaborative"},
919 { 1, "collaborative"},
923 /* ------------------------------------------------------------------------- */
925 static const value_string wimaxmacphy_ul_burst_opt_mimo_antenna_unnamed_vals
[]=
927 { 0, "Single TX antenna SS"},
928 { 1, "Dual TX antenna SS"},
932 /* ------------------------------------------------------------------------- */
934 static const value_string wimaxmacphy_ul_sub_burst_ctype_vals
[]=
936 { 0x00, "2 mini-subchannels adjacent tiles"},
937 { 0x01, "2 mini subchannels interleaved tiles"},
938 { 0x02, "3 mini subchannels"},
939 { 0x03, "6 mini subchannels"},
943 /* ------------------------------------------------------------------------- */
946 static const value_string wimaxmacphy_ul_sub_burst_feedback_sub_type_vals
[]=
948 { 0, "CQI (CINR) measurement"},
949 { 1, "Control feedback"},
954 /* ------------------------------------------------------------------------- */
957 const value_string wimaxmacphy_ul_sub_burst_sounding_power_assignment_vals
[]=
959 { 0x00, "Equal power"},
961 { 0x02, "Interference dependent. Per subcarrier power limit."},
962 { 0x03, "Interference dependent. Total power limit."},
966 /* ------------------------------------------------------------------------- */
968 static const value_string wimaxmacphy_ul_sub_burst_sounding_power_boost_vals
[]=
975 /* ------------------------------------------------------------------------- */
978 const value_string wimaxmacphy_ul_sub_burst_sounding_allocation_mode_vals
[]=
985 /* ------------------------------------------------------------------------- */
987 static const value_string wimaxmacphy_ul_sub_burst_mimo_chase_matrix_vals
[]=
994 static int dissect_wimaxmacphy_dl_sub_burst_descriptor(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo _U_
, proto_tree
*tree
)
996 unsigned start_offset
= offset
;
997 uint8_t sub_burst_type
;
1000 sub_burst_type
= tvb_get_uint8(tvb
, offset
);
1001 proto_tree_add_item(tree
, hf_wimaxmacphy_dl_sub_burst_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1004 proto_tree_add_item(tree
, hf_wimaxmacphy_sub_burst_number
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1007 proto_tree_add_item(tree
, hf_wimaxmacphy_sub_burst_symbol_offset
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1010 proto_tree_add_item(tree
, hf_wimaxmacphy_sub_burst_subchannel_offset
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1013 proto_tree_add_item(tree
, hf_wimaxmacphy_sub_burst_number_of_slots
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1016 proto_tree_add_item(tree
, hf_wimaxmacphy_sub_burst_reserved1
, tvb
, offset
, 2, ENC_NA
);
1019 proto_tree_add_item(tree
, hf_wimaxmacphy_sub_burst_reserved2
, tvb
, offset
, 1, ENC_NA
);
1022 proto_tree_add_item(tree
, hf_wimaxmacphy_sub_burst_modulation_fec_code_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1025 proto_tree_add_item(tree
, hf_wimaxmacphy_sub_burst_issid
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1028 proto_tree_add_item(tree
, hf_wimaxmacphy_sub_burst_aas_handle
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1031 proto_tree_add_item(tree
, hf_wimaxmacphy_sub_burst_boosting
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1034 proto_tree_add_item(tree
, hf_wimaxmacphy_sub_burst_repetition_coding_indication
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1037 proto_tree_add_item(tree
, hf_wimaxmacphy_sub_burst_data_length
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1040 /* sub-burst-specific parts */
1041 switch (sub_burst_type
)
1043 case 0x61: /* HARQ chase combining */
1045 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_dl_sub_burst_harq_chase
, NULL
, "HARQ Chase Specific");
1047 proto_tree_add_item(subtree
, hf_wimaxmacphy_sub_burst_harq_chase_harq_channel_id
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1050 proto_tree_add_item(subtree
, hf_wimaxmacphy_sub_burst_harq_chase_harq_sequence_number
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1053 proto_tree_add_item(subtree
, hf_wimaxmacphy_sub_burst_harq_chase_flush_unnamed
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1056 proto_tree_add_item(subtree
, hf_wimaxmacphy_sub_burst_harq_chase_reserved
, tvb
, offset
, 1, ENC_NA
);
1060 case 0x64: /* MIMO chase combining */
1062 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_dl_sub_burst_mimo_chase
, NULL
, "MIMO Chase Specific");
1064 proto_tree_add_item(subtree
, hf_wimaxmacphy_sub_burst_mimo_chase_harq_channel_id
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1067 proto_tree_add_item(subtree
, hf_wimaxmacphy_sub_burst_mimo_chase_harq_sequence_number
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1070 proto_tree_add_item(subtree
, hf_wimaxmacphy_sub_burst_mimo_chase_flush_unnamed
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1073 proto_tree_add_item(subtree
, hf_wimaxmacphy_sub_burst_mimo_chase_layer_index
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1082 return offset
- start_offset
;
1085 static unsigned dissect_wimaxmacphy_dl_burst_descriptor(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo
, proto_tree
*tree
)
1087 unsigned start_offset
= offset
;
1088 uint8_t burst_type
, burst_type_extension
, sub_burst_descriptor_count
, sub_burst
;
1090 proto_tree
*subtree
, *opt_tree
;
1092 burst_type
= tvb_get_uint8(tvb
, offset
);
1093 proto_tree_add_item(tree
, hf_wimaxmacphy_dl_burst_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1096 burst_type_extension
= tvb_get_uint8(tvb
, offset
);
1097 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_type_extension
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1100 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_number
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1103 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_modulation_fec_code_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1106 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_data_length
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1109 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_ofdma_symbol_offset
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1112 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_subchannel_offset
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1115 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_boosting
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1118 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_repetition_coding_indication
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1121 /* burst-specific parts */
1124 case 0x40: /* map */
1126 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_dl_burst_map
, NULL
, "MAP Data Burst Specific");
1128 proto_tree_add_item(subtree
, hf_wimaxmacphy_dl_burst_map_number_of_slots
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1131 proto_tree_add_item(subtree
, hf_wimaxmacphy_dl_burst_map_reserved
, tvb
, offset
, 2, ENC_NA
);
1135 case 0x41: /* normal */
1137 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_dl_burst_normal
, NULL
, "Normal Data Burst Specific");
1139 proto_tree_add_item(subtree
, hf_wimaxmacphy_dl_burst_normal_number_of_symbols
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1142 proto_tree_add_item(subtree
, hf_wimaxmacphy_dl_burst_normal_number_of_subchannels
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1145 proto_tree_add_item(subtree
, hf_wimaxmacphy_dl_burst_normal_aas_handle
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1149 switch (burst_type_extension
)
1151 case 0x01: /* AAS v1 */
1153 opt_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_dl_burst_opt_aas
, NULL
, "Optional AAS Specific");
1155 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_burst_opt_aas_preamble_modifier_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1158 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_burst_opt_aas_preamble_shift_index
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1161 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_burst_opt_aas_reserved
, tvb
, offset
, 2, ENC_NA
);
1164 /* ??? Algorithm specific Information (per Burst Type extension) */
1167 case 0x02: /* MIMO v1 */
1169 opt_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_dl_burst_opt_mimo
, NULL
, "Optional MIMO Specific");
1171 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_burst_opt_mimo_matrix_indicator
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1174 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_burst_opt_mimo_layer_index
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1177 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_dl_burst_opt_mimo_reserved
, tvb
, offset
, 2, ENC_NA
);
1181 /* ??? Algorithm specific Information (per Burst Type extension) */
1191 case 0x43: /* PAPR */
1193 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_dl_burst_papr
, NULL
, "PAPR Allocation Specific");
1195 proto_tree_add_item(subtree
, hf_wimaxmacphy_burst_papr_number_of_symbols
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1198 proto_tree_add_item(subtree
, hf_wimaxmacphy_burst_papr_number_of_subchannels
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1201 proto_tree_add_item(subtree
, hf_wimaxmacphy_burst_papr_reserved
, tvb
, offset
, 2, ENC_NA
);
1210 /* sub-burst portion */
1211 sub_burst_descriptor_count
= tvb_get_uint8(tvb
, offset
);
1212 proto_tree_add_item(tree
, hf_wimaxmacphy_number_of_sub_burst_descriptors
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1215 proto_tree_add_item(tree
, hf_wimaxmacphy_sub_burst_padding
, tvb
, offset
, 3, ENC_NA
);
1218 /* sub-burst descriptors */
1219 for (sub_burst
= 0; sub_burst
< sub_burst_descriptor_count
; ++sub_burst
)
1221 proto_tree
*sub_burst_descriptor_tree
;
1222 unsigned sub_burst_descriptor_length
;
1224 sub_burst_descriptor_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 1,
1225 ett_wimaxmacphy_dl_sub_burst_descriptor
, &item
, "Sub-Burst Descriptor %u", sub_burst
);
1227 sub_burst_descriptor_length
= dissect_wimaxmacphy_dl_sub_burst_descriptor(tvb
, offset
,
1228 pinfo
, sub_burst_descriptor_tree
);
1230 proto_item_set_len(item
, sub_burst_descriptor_length
);
1231 offset
+= sub_burst_descriptor_length
;
1234 return offset
- start_offset
;
1237 static unsigned dissect_wimaxmacphy_dl_zone_descriptor(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo
, proto_tree
*tree
)
1239 unsigned start_offset
= offset
;
1240 uint8_t zone_type
, burst_descriptor_count
, burst
;
1242 proto_tree
*subtree
;
1244 zone_type
= tvb_get_uint8(tvb
, offset
);
1245 proto_tree_add_item(tree
, hf_wimaxmacphy_dl_zone_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1248 proto_tree_add_item(tree
, hf_wimaxmacphy_zone_number
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1251 proto_tree_add_item(tree
, hf_wimaxmacphy_zone_start_symbol_offset
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1254 proto_tree_add_item(tree
, hf_wimaxmacphy_zone_end_symbol_offset
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1257 proto_tree_add_item(tree
, hf_wimaxmacphy_dl_zone_permutation_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1260 proto_tree_add_item(tree
, hf_wimaxmacphy_dl_zone_use_all_subchannels_indicator
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1263 proto_tree_add_item(tree
, hf_wimaxmacphy_zone_dl_perm_base
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1266 proto_tree_add_item(tree
, hf_wimaxmacphy_zone_prbs_id
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1269 proto_tree_add_item(tree
, hf_wimaxmacphy_zone_dedicated_pilots
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1272 proto_tree_add_item(tree
, hf_wimaxmacphy_zone_reserved
, tvb
, offset
, 3, ENC_NA
);
1275 /* zone-specific parts */
1278 case 0x21: /* STC */
1280 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_dl_zone_stc
, NULL
, "STC Zone Specific");
1282 proto_tree_add_item(subtree
, hf_wimaxmacphy_zone_stc_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1285 proto_tree_add_item(subtree
, hf_wimaxmacphy_zone_matrix_indicator
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1288 proto_tree_add_item(subtree
, hf_wimaxmacphy_zone_midamble_presence
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1291 proto_tree_add_item(subtree
, hf_wimaxmacphy_zone_midamble_boosting
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1295 case 0x22: /* AAS */
1297 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_dl_zone_aas
, NULL
, "AAS Zone Specific");
1299 proto_tree_add_item(subtree
, hf_wimaxmacphy_zone_preamble_configuration
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1302 proto_tree_add_item(subtree
, hf_wimaxmacphy_zone_sdma_supported_indication
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1305 proto_tree_add_item(subtree
, hf_wimaxmacphy_dl_zone_aas_reserved
, tvb
, offset
, 2, ENC_NA
);
1308 /* ??? Algorithm Specific Information (per Zone Type) */
1317 burst_descriptor_count
= tvb_get_uint8(tvb
, offset
);
1318 proto_tree_add_item(tree
, hf_wimaxmacphy_number_of_burst_descriptors
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1321 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_padding
, tvb
, offset
, 3, ENC_NA
);
1324 /* burst descriptors */
1325 for (burst
= 0; burst
< burst_descriptor_count
; ++burst
)
1327 proto_tree
*burst_descriptor_tree
;
1328 unsigned burst_descriptor_length
;
1330 /* note: we'll adjust the length later */
1331 burst_descriptor_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 1,
1332 ett_wimaxmacphy_dl_burst_descriptor
, &item
, "Burst Descriptor %u", burst
);
1334 burst_descriptor_length
= dissect_wimaxmacphy_dl_burst_descriptor(
1335 tvb
, offset
, pinfo
, burst_descriptor_tree
);
1337 proto_item_set_len(item
, burst_descriptor_length
);
1339 offset
+= burst_descriptor_length
;
1342 return offset
- start_offset
;
1345 static unsigned dissect_wimaxmacphy_dl_subframe_descriptor(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo
, proto_tree
*tree
)
1347 unsigned start_offset
= offset
;
1348 uint8_t zone_descriptor_count
;
1351 proto_tree_add_item(tree
, hf_wimaxmacphy_subframe_subframe_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1354 proto_tree_add_item(tree
, hf_wimaxmacphy_subframe_frame_number
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1357 proto_tree_add_item(tree
, hf_wimaxmacphy_subframe_downlink_reserved1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1360 proto_tree_add_item(tree
, hf_wimaxmacphy_subframe_phy_sap_version_number
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1363 proto_tree_add_item(tree
, hf_wimaxmacphy_subframe_downlink_reserved2
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1367 zone_descriptor_count
= tvb_get_uint8(tvb
, offset
);
1368 proto_tree_add_item(tree
, hf_wimaxmacphy_number_of_zone_descriptors
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1371 proto_tree_add_item(tree
, hf_wimaxmacphy_number_of_zone_descriptors
, tvb
, offset
, 3, ENC_BIG_ENDIAN
);
1374 /* zone descriptors */
1375 for (zone
= 0; zone
< zone_descriptor_count
; ++zone
)
1378 proto_tree
*zone_descriptor_tree
;
1379 unsigned zone_descriptor_length
;
1381 zone_descriptor_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 1, ett_wimaxmacphy_dl_zone_descriptor
, &item
, "Zone Descriptor %u", zone
);
1383 zone_descriptor_length
= dissect_wimaxmacphy_dl_zone_descriptor(
1384 tvb
, offset
, pinfo
, zone_descriptor_tree
);
1386 proto_item_set_len(item
, zone_descriptor_length
);
1388 offset
+= zone_descriptor_length
;
1391 return offset
- start_offset
;
1394 static int dissect_wimaxmacphy_ul_sub_burst_sub_allocation_specific_part(tvbuff_t
*tvb
, unsigned offset
,
1395 packet_info
*pinfo _U_
, proto_tree
*tree
, uint8_t sub_burst_type
)
1397 unsigned start_offset
= offset
;
1398 proto_item
*item
, *opt_item
;
1399 proto_tree
*subtree
, *opt_tree
;
1401 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 1, ett_wimaxmacphy_ul_sub_burst_sub_allocation_specific
, &item
, "Sub-Allocation Specific");
1403 proto_tree_add_item(subtree
, hf_wimaxmacphy_sub_burst_symbol_offset
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1406 proto_tree_add_item(subtree
, hf_wimaxmacphy_sub_burst_subchannel_offset
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1409 proto_tree_add_item(subtree
, hf_wimaxmacphy_sub_burst_number_of_slots
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1412 proto_tree_add_item(subtree
, hf_wimaxmacphy_sub_burst_data_length
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1415 proto_tree_add_item(subtree
, hf_wimaxmacphy_sub_burst_repetition_coding_indication
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1418 proto_tree_add_item(subtree
, hf_wimaxmacphy_sub_burst_modulation_fec_code_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1421 proto_tree_add_item(subtree
, hf_wimaxmacphy_sub_burst_reserved1
, tvb
, offset
, 2, ENC_NA
);
1424 /* HARQ chase and MIMO chase specific parts */
1425 switch (sub_burst_type
)
1427 case 0x61: /* HARQ chase combining */
1429 opt_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_ul_sub_burst_harq_chase
, &opt_item
, "HARQ Chase Specific");
1431 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_sub_burst_harq_chase_harq_channel_id
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1434 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_sub_burst_harq_chase_harq_sequence_number
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1437 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_sub_burst_harq_chase_flush_unnamed
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1440 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_sub_burst_harq_chase_reserved
, tvb
, offset
, 1, ENC_NA
);
1444 case 0x64: /* MIMO chase combining */
1446 opt_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_ul_sub_burst_mimo_chase
, NULL
, "MIMO Chase Specific");
1448 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_sub_burst_mimo_chase_harq_channel_id
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1451 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_sub_burst_mimo_chase_harq_sequence_number
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1454 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_sub_burst_mimo_chase_flush_unnamed
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1457 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_ul_sub_burst_mimo_chase_matrix
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1466 proto_item_set_len(item
, offset
- start_offset
);
1468 return offset
- start_offset
;
1471 static int dissect_wimaxmacphy_ul_sub_burst_descriptor(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo _U_
, proto_tree
*tree
)
1473 uint8_t sub_burst_type
;
1474 proto_item
*feedback_item
;
1475 proto_tree
*subtree
, *feedback_tree
;
1476 unsigned start_offset
= offset
;
1478 sub_burst_type
= tvb_get_uint8(tvb
, offset
);
1479 proto_tree_add_item(tree
, hf_wimaxmacphy_ul_sub_burst_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1482 proto_tree_add_item(tree
, hf_wimaxmacphy_sub_burst_number
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1485 proto_tree_add_item(tree
, hf_wimaxmacphy_sub_burst_issid
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1488 proto_tree_add_item(tree
, hf_wimaxmacphy_sub_burst_aas_handle
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1491 proto_tree_add_item(tree
, hf_wimaxmacphy_sub_burst_reserved1
, tvb
, offset
, 2, ENC_NA
);
1494 /* sub-burst-specific parts */
1495 switch (sub_burst_type
)
1497 case 0x68: /* mini-subchannel */
1499 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_ul_sub_burst_mini_subchannel
, NULL
, "Mini-Subchannel Allocation Specific");
1501 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_ctype
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1504 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_mini_subchannel_index
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1507 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_mini_reserved
, tvb
, offset
, 2, ENC_NA
);
1511 case 0x69: /* fast feedback */
1513 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_ul_sub_burst_fast_feedback
, NULL
, "Fast Feedback Allocation Specific");
1515 feedback_item
= proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_feedback_type_coding
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1516 feedback_tree
= proto_item_add_subtree(feedback_item
, ett_wimaxmacphy_ul_feedback_type_coding
);
1517 proto_tree_add_item(feedback_tree
, hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit0
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1518 proto_tree_add_item(feedback_tree
, hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1519 proto_tree_add_item(feedback_tree
, hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1520 proto_tree_add_item(feedback_tree
, hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit3
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1521 proto_tree_add_item(feedback_tree
, hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit4
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1522 proto_tree_add_item(feedback_tree
, hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit5
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1523 proto_tree_add_item(feedback_tree
, hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit6
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1524 proto_tree_add_item(feedback_tree
, hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit7
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1527 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_feedback_reserved1
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1528 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_feedback_sub_type
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1529 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_feedback_cqich_id
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1532 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_feedback_reserved2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1533 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_feedback_slot_offset
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1537 case 0x6a: /* HARQ ACK */
1539 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_ul_sub_burst_harq_ack
, NULL
, "HARQ ACK Subchannel Allocation Specific");
1541 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_harq_ack_acid
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1542 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_harq_ack_reserved
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1546 case 0x6b: /* sounding signal */
1548 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 11, ett_wimaxmacphy_ul_sub_burst_sounding_signal
, NULL
, "Sounding Signal Specific");
1550 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_sounding_symbol_index
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1553 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_sounding_power_assignment
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1556 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_sounding_power_boost
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1559 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_sounding_allocation_mode
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1562 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_sounding_start_freq_band
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1565 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_sounding_num_freq_bands
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1568 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_sounding_band_bit_map
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1571 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_sounding_cyclic_time_shift
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1574 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_sounding_decimation_offset
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1577 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_sub_burst_sounding_reserved
, tvb
, offset
, 1, ENC_NA
);
1582 offset
+= dissect_wimaxmacphy_ul_sub_burst_sub_allocation_specific_part(
1583 tvb
, offset
, pinfo
, tree
, sub_burst_type
);
1587 return offset
- start_offset
;
1590 static unsigned dissect_wimaxmacphy_ul_burst_descriptor(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo
, proto_tree
*tree
)
1592 uint8_t burst_type
, burst_type_extension
;
1593 uint8_t sub_burst_descriptor_count
, sub_burst
;
1594 proto_item
*item
, *pilot_patterns_item
;
1595 proto_tree
*subtree
, *opt_tree
, *pilot_patterns_tree
;
1596 unsigned start_offset
= offset
;
1598 burst_type
= tvb_get_uint8(tvb
, offset
);
1599 proto_tree_add_item(tree
, hf_wimaxmacphy_ul_burst_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1602 burst_type_extension
= tvb_get_uint8(tvb
, offset
);
1603 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_type_extension
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1606 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_number
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1609 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_modulation_fec_code_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1612 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_data_length
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1615 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_ofdma_symbol_offset
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1618 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_subchannel_offset
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1621 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_reserved
, tvb
, offset
, 1, ENC_NA
);
1624 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_repetition_coding_indication
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1627 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_issid
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1630 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_aas_handle
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1633 /* burst-specific parts */
1636 case 0x40: /* HARQ ACK channel */
1638 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_ul_burst_harq_ack
, NULL
, "HARQ ACK Channel Specific");
1640 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_harq_ack_number_of_symbols
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1643 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_harq_ack_number_of_subchannels
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1646 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_harq_ack_reserved
, tvb
, offset
, 2, ENC_NA
);
1650 case 0x41: /* fast feedback channel */
1652 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_ul_burst_fast_feedback
, NULL
, "Fast Feedback Channel Specific");
1654 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_fast_number_of_symbols
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1657 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_fast_number_of_subchannels
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1660 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_fast_reserved
, tvb
, offset
, 2, ENC_NA
);
1664 case 0x42: /* initial ranging/handover ranging */
1666 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 8, ett_wimaxmacphy_ul_burst_initial_ranging
, NULL
, "Initial Ranging/Handover Ranging Allocation Specific");
1668 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_initial_number_of_symbols
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1671 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_initial_number_of_subchannels
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1674 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_initial_ranging_method
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1677 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_initial_reserved1
, tvb
, offset
, 1, ENC_NA
);
1680 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_initial_zone_xid
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1683 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_initial_reserved2
, tvb
, offset
, 2, ENC_NA
);
1687 case 0x43: /* periodic ranging/bandwidth request */
1689 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 8, ett_wimaxmacphy_ul_burst_periodic_ranging
, NULL
, "Periodic Ranging/Bandwidth Request Allocation Specific");
1691 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_periodic_number_of_symbols
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1694 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_periodic_number_of_subchannels
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1697 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_periodic_ranging_method
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1700 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_periodic_reserved1
, tvb
, offset
, 1, ENC_NA
);
1703 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_periodic_zone_xid
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1706 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_periodic_reserved2
, tvb
, offset
, 2, ENC_NA
);
1710 case 0x44: /* PAPR/safety zone */
1712 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_ul_burst_papr_safety_zone
, NULL
, "PAPR/Safety Zone Channel Specific");
1714 proto_tree_add_item(subtree
, hf_wimaxmacphy_burst_papr_number_of_symbols
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1717 proto_tree_add_item(subtree
, hf_wimaxmacphy_burst_papr_number_of_subchannels
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1720 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_papr_unnamed
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1723 proto_tree_add_item(subtree
, hf_wimaxmacphy_burst_papr_reserved
, tvb
, offset
, 1, ENC_NA
);
1727 case 0x45: /* sounding zone */
1729 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 8, ett_wimaxmacphy_ul_burst_sounding_zone
, NULL
, "Sounding Zone Allocation Specific");
1731 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_sounding_number_of_symbols
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1734 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_sounding_number_of_subchannels
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1737 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_sounding_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1740 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_sounding_separability_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1743 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_sounding_max_cyclic_shift_indx
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1746 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_sounding_decimation_value
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1749 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_sounding_decimation_offset_rand
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1752 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_sounding_reserved
, tvb
, offset
, 1, ENC_NA
);
1756 case 0x46: /* noise floor calculation */
1758 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_ul_burst_noise_floor
, NULL
, "Noise Floor Calculation Allocation Specific");
1760 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_noise_number_of_symbols
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1763 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_noise_number_of_subchannels
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1766 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_noise_reserved
, tvb
, offset
, 2, ENC_NA
);
1770 case 0x47: /* normal data */
1772 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_ul_burst_normal_data
, NULL
, "Normal Data Burst Specific");
1774 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_normal_number_of_slots
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1777 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_burst_normal_reserved
, tvb
, offset
, 2, ENC_NA
);
1781 switch (burst_type_extension
)
1783 case 0x01: /* AAS v1 */
1785 opt_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_ul_burst_opt_aas
, NULL
, "Optional AAS Specific");
1787 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_burst_opt_aas_preamble_modifier_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1790 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_burst_opt_aas_reserved
, tvb
, offset
, 2, ENC_NA
);
1793 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_burst_opt_aas_preamble_shift_index
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1796 /* ??? Algorithm specific Information (per Burst Type extension) */
1799 case 0x02: /* MIMO v1 */
1801 opt_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_ul_burst_opt_mimo
, NULL
, "Optional MIMO Specific");
1803 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_ul_burst_opt_mimo_matrix_indicator
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1806 /* optional MIMO-specific - pilot patterns */
1807 pilot_patterns_item
= proto_tree_add_item(opt_tree
, hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1808 pilot_patterns_tree
= proto_item_add_subtree(pilot_patterns_item
, ett_wimaxmacphy_ul_pilot_patterns
);
1809 proto_tree_add_item(pilot_patterns_tree
, hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit0
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1810 proto_tree_add_item(pilot_patterns_tree
, hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1811 proto_tree_add_item(pilot_patterns_tree
, hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1812 proto_tree_add_item(pilot_patterns_tree
, hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit3
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1815 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_ul_burst_opt_mimo_collaborative
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1816 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_ul_burst_opt_mimo_antenna_unnamed
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1819 proto_tree_add_item(opt_tree
, hf_wimaxmacphy_burst_opt_mimo_layer_index
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1822 /* ??? Algorithm specific Information (per Burst Type extension) */
1837 /* sub-burst portion */
1838 sub_burst_descriptor_count
= tvb_get_uint8(tvb
, offset
);
1839 proto_tree_add_item(tree
, hf_wimaxmacphy_number_of_sub_burst_descriptors
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1842 proto_tree_add_item(tree
, hf_wimaxmacphy_sub_burst_padding
, tvb
, offset
, 3, ENC_NA
);
1845 /* sub-burst descriptors */
1846 for (sub_burst
= 0; sub_burst
< sub_burst_descriptor_count
; ++sub_burst
)
1848 proto_tree
*sub_burst_descriptor_tree
;
1849 unsigned sub_burst_descriptor_length
;
1851 sub_burst_descriptor_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 1, ett_wimaxmacphy_ul_sub_burst_descriptor
, &item
, "Sub-Burst Descriptor %u", sub_burst
);
1853 sub_burst_descriptor_length
= dissect_wimaxmacphy_ul_sub_burst_descriptor(tvb
, offset
,
1854 pinfo
, sub_burst_descriptor_tree
);
1856 proto_item_set_len(item
, sub_burst_descriptor_length
);
1858 offset
+= sub_burst_descriptor_length
;
1861 return offset
- start_offset
;
1864 static unsigned dissect_wimaxmacphy_ul_zone_descriptor(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo
, proto_tree
*tree
)
1866 unsigned start_offset
= offset
;
1867 uint8_t zone_type
, burst_descriptor_count
, burst
;
1870 zone_type
= tvb_get_uint8(tvb
, offset
);
1871 proto_tree_add_item(tree
, hf_wimaxmacphy_ul_zone_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1874 proto_tree_add_item(tree
, hf_wimaxmacphy_zone_number
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1877 proto_tree_add_item(tree
, hf_wimaxmacphy_zone_start_symbol_offset
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1880 proto_tree_add_item(tree
, hf_wimaxmacphy_zone_end_symbol_offset
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1883 proto_tree_add_item(tree
, hf_wimaxmacphy_ul_zone_permutation_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1886 proto_tree_add_item(tree
, hf_wimaxmacphy_ul_zone_use_all_subchannels_indicator
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1887 proto_tree_add_item(tree
, hf_wimaxmacphy_ul_zone_disable_pusc_subchannel_rotation
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1890 proto_tree_add_item(tree
, hf_wimaxmacphy_zone_ul_perm_base
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1893 proto_tree_add_item(tree
, hf_wimaxmacphy_zone_agc_range_extension
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1896 /* zone-specific parts */
1899 case 0x22: /* AAS */
1901 proto_tree
*subtree
;
1903 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_ul_zone_aas
, NULL
, "AAS Zone Specific");
1905 proto_tree_add_item(subtree
, hf_wimaxmacphy_zone_preamble_configuration
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1908 proto_tree_add_item(subtree
, hf_wimaxmacphy_zone_preamble_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1911 proto_tree_add_item(subtree
, hf_wimaxmacphy_zone_sdma_supported_indication
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1914 proto_tree_add_item(subtree
, hf_wimaxmacphy_ul_zone_aas_reserved
, tvb
, offset
, 1, ENC_NA
);
1917 /* ??? Algorithm Specific Information (per Zone Type) */
1926 burst_descriptor_count
= tvb_get_uint8(tvb
, offset
);
1927 proto_tree_add_item(tree
, hf_wimaxmacphy_number_of_burst_descriptors
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1930 proto_tree_add_item(tree
, hf_wimaxmacphy_burst_padding
, tvb
, offset
, 3, ENC_NA
);
1933 /* burst descriptors */
1934 for (burst
= 0; burst
< burst_descriptor_count
; ++burst
)
1936 proto_tree
*burst_descriptor_tree
;
1937 unsigned burst_descriptor_length
;
1939 burst_descriptor_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 1, ett_wimaxmacphy_ul_burst_descriptor
, &item
, "Burst Descriptor %u", burst
);
1941 burst_descriptor_length
= dissect_wimaxmacphy_ul_burst_descriptor(
1942 tvb
, offset
, pinfo
, burst_descriptor_tree
);
1943 proto_item_set_len(item
, burst_descriptor_length
);
1945 offset
+= burst_descriptor_length
;
1948 return offset
- start_offset
;
1951 static unsigned dissect_wimaxmacphy_ul_subframe_descriptor(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo
, proto_tree
*tree
)
1953 unsigned start_offset
= offset
;
1954 uint8_t zone_descriptor_count
;
1957 proto_tree_add_item(tree
, hf_wimaxmacphy_subframe_subframe_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1960 proto_tree_add_item(tree
, hf_wimaxmacphy_subframe_frame_number
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1963 proto_tree_add_item(tree
, hf_wimaxmacphy_subframe_downlink_reserved1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1966 proto_tree_add_item(tree
, hf_wimaxmacphy_subframe_phy_sap_version_number
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1969 proto_tree_add_item(tree
, hf_wimaxmacphy_subframe_allocation_start_time
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1972 zone_descriptor_count
= tvb_get_uint8(tvb
, offset
);
1973 proto_tree_add_item(tree
, hf_wimaxmacphy_number_of_zone_descriptors
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1976 proto_tree_add_item(tree
, hf_wimaxmacphy_zone_padding
, tvb
, offset
, 3, ENC_NA
);
1979 /* -----------------------------------------------------------------------
1981 * -----------------------------------------------------------------------
1984 for (zone
= 0; zone
< zone_descriptor_count
; ++zone
)
1987 proto_tree
*zone_descriptor_tree
;
1988 unsigned zone_descriptor_length
;
1990 zone_descriptor_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 1, ett_wimaxmacphy_ul_zone_descriptor
, &item
, "Zone Descriptor %u", zone
);
1992 zone_descriptor_length
= dissect_wimaxmacphy_ul_zone_descriptor(
1993 tvb
, offset
, pinfo
, zone_descriptor_tree
);
1995 proto_item_set_len(item
, zone_descriptor_length
);
1996 offset
+= zone_descriptor_length
;
1999 return offset
- start_offset
;
2002 static unsigned dissect_wimaxmacphy_phy_txstart_request(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo
, proto_tree
*tree
)
2004 uint16_t txvector_length
;
2005 unsigned subframe_descriptor_length
;
2007 txvector_length
= tvb_get_ntohs(tvb
, offset
);
2008 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_length_of_txvector
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2011 subframe_descriptor_length
= dissect_wimaxmacphy_dl_subframe_descriptor(
2012 tvb
, offset
, pinfo
, tree
);
2014 offset
+= subframe_descriptor_length
;
2016 if (subframe_descriptor_length
< txvector_length
)
2017 proto_tree_add_item(tree
, hf_wimaxmacphy_unknown
, tvb
, offset
, txvector_length
- subframe_descriptor_length
, ENC_NA
);
2019 return txvector_length
+ 2;
2022 static unsigned dissect_wimaxmacphy_phy_txstart_confirmation(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2024 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_status
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2027 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_reserved2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2028 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_next_frame_number
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2034 static unsigned dissect_wimaxmacphy_phy_txstart_indication(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2036 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_txstart_indication_status
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2039 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_extended_frame_number
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2040 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_current_frame_number_lsn
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2043 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_reserved1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2046 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_initial_frame_number
, tvb
, offset
, 3, ENC_BIG_ENDIAN
);
2052 static unsigned dissect_wimaxmacphy_phy_txsdu_request(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2056 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_dl_zone_number
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2057 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_sub_burst_burst_split_point
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2058 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_dl_sub_burst_burst_number
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2061 length
= tvb_reported_length_remaining(tvb
, offset
);
2062 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_phy_sdu
, tvb
, offset
, length
, ENC_NA
);
2067 static unsigned dissect_wimaxmacphy_phy_txsdu_confirmation(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2069 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_dl_zone_number
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2070 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_sub_burst_burst_split_point
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2071 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_dl_sub_burst_burst_number
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2074 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_reserved5
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2077 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_status
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2080 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_reserved2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2081 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_next_frame_number
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2087 static unsigned dissect_wimaxmacphy_phy_txend_indication(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2089 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_status
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2092 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_phy_request
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2093 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_current_frame_number_lsn
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2096 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_requested_aas_calibration_zone_size
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2099 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_requested_aas_calibration_zone_alloc
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2100 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_number_of_consecutive_frames_with_aas
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2103 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_reserved5
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2109 static unsigned dissect_wimaxmacphy_phy_rxstart_request(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo
, proto_tree
*tree
)
2111 uint16_t rxvector_length
;
2112 unsigned subframe_descriptor_length
;
2114 rxvector_length
= tvb_get_ntohs(tvb
, offset
);
2115 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_length_of_rxvector
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2118 subframe_descriptor_length
= dissect_wimaxmacphy_ul_subframe_descriptor(
2119 tvb
, offset
, pinfo
, tree
);
2121 offset
+= subframe_descriptor_length
;
2123 /* check for unprocessed bytes */
2124 if (subframe_descriptor_length
< rxvector_length
)
2125 proto_tree_add_item(tree
, hf_wimaxmacphy_unknown
, tvb
, offset
, rxvector_length
- subframe_descriptor_length
, ENC_NA
);
2127 return rxvector_length
+ 2;
2130 static unsigned dissect_wimaxmacphy_phy_rxstart_confirmation(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2132 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_status
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2135 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_reserved2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2136 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_frame_number
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2142 static unsigned dissect_wimaxmacphy_phy_rxstart_indication(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2144 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_status
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2147 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_reserved2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2148 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_current_frame_number_lsn
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2154 static unsigned dissect_wimaxmacphy_phy_rxsdu_indication(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2156 uint8_t indication_type
;
2157 proto_item
*feedback_item
;
2158 proto_tree
*subtree
, *feedback_tree
;
2159 unsigned length
, start_offset
= offset
;
2161 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_issid
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2164 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_integrity
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2165 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_number_of_bytes_received
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2168 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_rssi_per_subcarrier_level
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2171 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_cinr
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2174 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_reserved1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2177 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_power_offset
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2180 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_current_frame_number_msn
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2181 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_acid_for_harq_data_bursts
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2184 indication_type
= (tvb_get_uint8(tvb
, offset
) >> 4) & 0x0F;
2185 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_indication_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2186 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_zone_permutation_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2187 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_update_aas_handle_in_mac
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2190 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_aas_handle
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2193 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_time_deviation
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2196 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_frequency_deviation
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2199 switch (indication_type
)
2201 case 0: /* data burst */
2203 length
= tvb_reported_length_remaining(tvb
, offset
);
2204 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_phy_sdu
, tvb
, offset
, length
, ENC_NA
);
2208 case 1: /* HARQ ACK */
2210 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 4, ett_wimaxmacphy_prim_harq_ack
, NULL
, "HARQ ACK channel data format");
2212 proto_tree_add_item(subtree
, hf_wimaxmacphy_prim_harq_ack_issid
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2215 proto_tree_add_item(subtree
, hf_wimaxmacphy_prim_harq_ack_acid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2216 proto_tree_add_item(subtree
, hf_wimaxmacphy_prim_harq_ack_reserved1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2217 proto_tree_add_item(subtree
, hf_wimaxmacphy_prim_harq_ack_ack_valid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2218 proto_tree_add_item(subtree
, hf_wimaxmacphy_prim_harq_ack_unnamed
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2221 proto_tree_add_item(subtree
, hf_wimaxmacphy_prim_harq_ack_reserved2
, tvb
, offset
, 1, ENC_NA
);
2225 case 2: /* fast feedback */
2227 subtree
= proto_tree_add_subtree(tree
, tvb
, offset
, 8, ett_wimaxmacphy_prim_harq_ack
, NULL
, "Fast Feedback channel data format");
2229 proto_tree_add_item(subtree
, hf_wimaxmacphy_prim_fast_issid
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2232 proto_tree_add_item(subtree
, hf_wimaxmacphy_prim_fast_cqich_id
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2235 feedback_item
= proto_tree_add_item(subtree
, hf_wimaxmacphy_prim_fast_feedback_type_coding
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2236 feedback_tree
= proto_item_add_subtree(feedback_item
, ett_wimaxmacphy_prim_fast_feedback_type_coding
);
2237 proto_tree_add_item(feedback_tree
, hf_wimaxmacphy_prim_fast_feedback_type_coding_bit0
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2238 proto_tree_add_item(feedback_tree
, hf_wimaxmacphy_prim_fast_feedback_type_coding_bit1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2239 proto_tree_add_item(feedback_tree
, hf_wimaxmacphy_prim_fast_feedback_type_coding_bit2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2240 proto_tree_add_item(feedback_tree
, hf_wimaxmacphy_prim_fast_feedback_type_coding_bit3
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2241 proto_tree_add_item(feedback_tree
, hf_wimaxmacphy_prim_fast_feedback_type_coding_bit4
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2242 proto_tree_add_item(feedback_tree
, hf_wimaxmacphy_prim_fast_feedback_type_coding_bit5
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2243 proto_tree_add_item(feedback_tree
, hf_wimaxmacphy_prim_fast_feedback_type_coding_bit6
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2244 proto_tree_add_item(feedback_tree
, hf_wimaxmacphy_prim_fast_feedback_type_coding_bit7
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2247 proto_tree_add_item(subtree
, hf_wimaxmacphy_prim_fast_feedback_valid
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2248 proto_tree_add_item(subtree
, hf_wimaxmacphy_prim_fast_feedback_sub_type
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2249 proto_tree_add_item(subtree
, hf_wimaxmacphy_prim_fast_reserved
, tvb
, offset
, 2, ENC_NA
);
2252 proto_tree_add_item(subtree
, hf_wimaxmacphy_prim_fast_feedback_value
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2260 return offset
- start_offset
;
2263 static unsigned dissect_wimaxmacphy_phy_rxend_indication(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2265 unsigned start_offset
= offset
;
2267 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_status
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2270 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_phy_aas_report_present
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2271 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_current_frame_number_lsn
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2274 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_number_of_affected_ss
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2277 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_reserved1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2282 /* list of ISSIDs (at least one required) */
2283 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_issid
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2286 while (tvb_reported_length_remaining(tvb
, offset
));
2288 return offset
- start_offset
;
2291 static unsigned dissect_wimaxmacphy_phy_rxcdma_indication(tvbuff_t
*tvb
, unsigned offset
, packet_info
*pinfo _U_
, proto_tree
*tree
)
2293 unsigned start_offset
= offset
;
2295 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_zonexid
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2298 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_cdma_code
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2301 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_cdma_symbol
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2304 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_reserved1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2307 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_cdma_subchannel
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2310 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_rssi_per_subcarrier_level
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2313 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_cinr
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2316 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_reserved3
, tvb
, offset
, 1, ENC_NA
);
2319 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_power_offset
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2322 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_current_frame_number_msn
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2323 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_reserved4
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2326 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_aas_handle
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2329 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_time_deviation
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2332 proto_tree_add_item(tree
, hf_wimaxmacphy_prim_frequency_deviation
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2335 return offset
- start_offset
;
2339 dissect_wimaxmacphy(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
2341 /* Set up structures needed to add the protocol subtree and manage it */
2342 proto_tree
*wimaxmacphy_tree
, *primitive_tree
;
2345 unsigned offset
= 0;
2346 uint8_t message_type
;
2348 /* Ensure minimum size */
2349 if (tvb_reported_length(tvb
) < WIMAXMACPHY_HEADER_SIZE
)
2352 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "wimaxmacphy");
2353 col_clear(pinfo
->cinfo
, COL_INFO
);
2355 item
= proto_tree_add_item(tree
, proto_wimaxmacphy
, tvb
, 0, -1, ENC_NA
);
2356 wimaxmacphy_tree
= proto_item_add_subtree(item
, ett_wimaxmacphy
);
2358 proto_tree_add_item(wimaxmacphy_tree
, hf_wimaxmacphy_hdr_phy_entity_id
,
2359 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2360 proto_tree_add_item(wimaxmacphy_tree
, hf_wimaxmacphy_hdr_message_segmentation
,
2361 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2364 message_type
= tvb_get_uint8(tvb
, offset
);
2365 item
= proto_tree_add_item(wimaxmacphy_tree
, hf_wimaxmacphy_hdr_message_type
,
2366 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2368 primitive_tree
= proto_item_add_subtree(item
, ett_wimaxmacphy_primitive
);
2370 col_set_str(pinfo
->cinfo
, COL_INFO
, val_to_str_ext_const(message_type
, &wimaxmacphy_message_type_vals_ext
, "Unknown"));
2372 col_set_str(pinfo
->cinfo
, COL_INFO
, val_to_str_const(message_type
, wimaxmacphy_message_type_vals
, "Unknown"));
2375 switch(message_type
)
2377 case WIMAXMACPHY_PHY_TXSTART_REQUEST
:
2378 offset
+= dissect_wimaxmacphy_phy_txstart_request(
2379 tvb
, offset
, pinfo
, primitive_tree
);
2381 case WIMAXMACPHY_PHY_TXSTART_CONFIRMATION
:
2382 offset
+= dissect_wimaxmacphy_phy_txstart_confirmation(
2383 tvb
, offset
, pinfo
, primitive_tree
);
2385 case WIMAXMACPHY_PHY_TXSTART_INDICATION
:
2386 offset
+= dissect_wimaxmacphy_phy_txstart_indication(
2387 tvb
, offset
, pinfo
, primitive_tree
);
2389 case WIMAXMACPHY_PHY_TXSDU_REQUEST
:
2390 offset
+= dissect_wimaxmacphy_phy_txsdu_request(
2391 tvb
, offset
, pinfo
, primitive_tree
);
2393 case WIMAXMACPHY_PHY_TXSDU_CONFIRMATION
:
2394 offset
+= dissect_wimaxmacphy_phy_txsdu_confirmation(
2395 tvb
, offset
, pinfo
, primitive_tree
);
2397 case WIMAXMACPHY_PHY_TXEND_INDICATION
:
2398 offset
+= dissect_wimaxmacphy_phy_txend_indication(
2399 tvb
, offset
, pinfo
, primitive_tree
);
2401 case WIMAXMACPHY_PHY_RXSTART_REQUEST
:
2402 offset
+= dissect_wimaxmacphy_phy_rxstart_request(
2403 tvb
, offset
, pinfo
, primitive_tree
);
2405 case WIMAXMACPHY_PHY_RXSTART_CONFIRMATION
:
2406 offset
+= dissect_wimaxmacphy_phy_rxstart_confirmation(
2407 tvb
, offset
, pinfo
, primitive_tree
);
2409 case WIMAXMACPHY_PHY_RXSTART_INDICATION
:
2410 offset
+= dissect_wimaxmacphy_phy_rxstart_indication(
2411 tvb
, offset
, pinfo
, primitive_tree
);
2413 case WIMAXMACPHY_PHY_RXSDU_INDICATION
:
2414 offset
+= dissect_wimaxmacphy_phy_rxsdu_indication(
2415 tvb
, offset
, pinfo
, primitive_tree
);
2417 case WIMAXMACPHY_PHY_RXEND_INDICATION
:
2418 offset
+= dissect_wimaxmacphy_phy_rxend_indication(
2419 tvb
, offset
, pinfo
, primitive_tree
);
2421 case WIMAXMACPHY_PHY_RXCDMA_INDICATION
:
2422 offset
+= dissect_wimaxmacphy_phy_rxcdma_indication(
2423 tvb
, offset
, pinfo
, primitive_tree
);
2426 proto_tree_add_item(primitive_tree
, hf_wimaxmacphy_unknown
,
2427 tvb
, offset
, tvb_reported_length_remaining(tvb
, offset
), ENC_NA
);
2428 offset
+= tvb_reported_length_remaining(tvb
, offset
);
2432 if (tvb_reported_length_remaining(tvb
, offset
) > 0)
2434 /* Incorporate any "extra" bytes */
2435 item
= proto_tree_add_item(wimaxmacphy_tree
, hf_wimaxmacphy_unknown
,
2436 tvb
, offset
, tvb_reported_length_remaining(tvb
, offset
), ENC_NA
);
2438 expert_add_info(pinfo
, item
, &ei_wimaxmacphy_unknown
);
2441 return tvb_captured_length(tvb
);
2445 proto_register_wimaxmacphy(void)
2447 static hf_register_info hf
[] = {
2449 &hf_wimaxmacphy_hdr_phy_entity_id
,
2452 "wimaxmacphy.hdr_phy_entity_id",
2462 &hf_wimaxmacphy_hdr_message_segmentation
,
2464 "Message Segmentation",
2465 "wimaxmacphy.hdr_message_segmentation",
2468 VALS(wimaxmacphy_message_segmentation_vals
),
2475 &hf_wimaxmacphy_hdr_message_type
,
2478 "wimaxmacphy.hdr_message_type",
2481 BASE_HEX
| BASE_EXT_STRING
,
2482 &wimaxmacphy_message_type_vals_ext
,
2485 VALS(wimaxmacphy_message_type_vals
),
2492 &hf_wimaxmacphy_unknown
,
2495 "wimaxmacphy.unknown_primitive",
2505 &hf_wimaxmacphy_prim_length_of_txvector
,
2507 "Length of TXVECTOR",
2508 "wimaxmacphy.prim_length_of_txvector",
2518 &hf_wimaxmacphy_prim_length_of_rxvector
,
2520 "Length of RXVECTOR",
2521 "wimaxmacphy.prim_length_of_rxvector",
2531 &hf_wimaxmacphy_prim_status
,
2534 "wimaxmacphy.prim_status",
2537 VALS(wimaxmacphy_prim_status_vals
),
2544 &hf_wimaxmacphy_prim_txstart_indication_status
,
2547 "wimaxmacphy.prim_status",
2550 VALS(wimaxmacphy_prim_txstart_indication_status_vals
),
2557 &hf_wimaxmacphy_prim_reserved1
,
2560 "wimaxmacphy.prim_reserved1",
2570 &hf_wimaxmacphy_prim_reserved2
,
2573 "wimaxmacphy.prim_reserved2",
2583 &hf_wimaxmacphy_prim_reserved3
,
2586 "wimaxmacphy.prim_reserved3",
2596 &hf_wimaxmacphy_prim_reserved4
,
2599 "wimaxmacphy.prim_reserved4",
2609 &hf_wimaxmacphy_prim_reserved5
,
2612 "wimaxmacphy.prim_reserved5",
2622 &hf_wimaxmacphy_prim_next_frame_number
,
2624 "Next Frame Number (lsb)",
2625 "wimaxmacphy.prim_next_frame_number",
2635 &hf_wimaxmacphy_prim_extended_frame_number
,
2637 "Extended frame number",
2638 "wimaxmacphy.prim_extended_frame_number",
2648 &hf_wimaxmacphy_prim_current_frame_number_lsn
,
2650 "Current Frame Number (lsb)",
2651 "wimaxmacphy.prim_current_frame_number",
2661 &hf_wimaxmacphy_prim_initial_frame_number
,
2663 "Initial Frame Number (from PHY)",
2664 "wimaxmacphy.prim_initial_frame_number",
2674 &hf_wimaxmacphy_prim_dl_zone_number
,
2677 "wimaxmacphy.prim_dl_zone_number",
2687 &hf_wimaxmacphy_prim_sub_burst_burst_split_point
,
2689 "Sub-burst/burst split point",
2690 "wimaxmacphy.prim_sub_burst_burst_split_point",
2700 &hf_wimaxmacphy_prim_dl_sub_burst_burst_number
,
2702 "DL sub-burst/burst number in this zone",
2703 "wimaxmacphy.prim_dl_sub_burst_burst_number",
2713 &hf_wimaxmacphy_prim_phy_sdu
,
2716 "wimaxmacphy.prim_phy_sdu",
2726 &hf_wimaxmacphy_prim_phy_request
,
2728 "PHY request (LW 1)",
2729 "wimaxmacphy.prim_phy_request",
2739 &hf_wimaxmacphy_prim_requested_aas_calibration_zone_size
,
2741 "Requested AAS Calibration Zone size",
2742 "wimaxmacphy.prim_requested_aas_calibration_zone_size",
2752 &hf_wimaxmacphy_prim_requested_aas_calibration_zone_alloc
,
2754 "Requested AAS Calibration Zone allocation deadline",
2755 "wimaxmacphy.prim_requested_aas_calibration_zone_alloc",
2765 &hf_wimaxmacphy_prim_number_of_consecutive_frames_with_aas
,
2767 "Number of consecutive frames with AAS Calibration Zone allocation",
2768 "wimaxmacphy.prim_number_of_consecutive_frames_with_aas",
2778 &hf_wimaxmacphy_prim_frame_number
,
2780 "Frame Number (lsb)",
2781 "wimaxmacphy.prim_frame_number",
2791 &hf_wimaxmacphy_prim_issid
,
2794 "wimaxmacphy.prim_issid",
2804 &hf_wimaxmacphy_prim_integrity
,
2807 "wimaxmacphy.prim_integrity",
2810 VALS(wimaxmacphy_prim_integrity_vals
),
2817 &hf_wimaxmacphy_prim_number_of_bytes_received
,
2819 "Number of bytes received",
2820 "wimaxmacphy.prim_number_of_bytes_received",
2830 &hf_wimaxmacphy_prim_rssi_per_subcarrier_level
,
2832 "RSSI per subcarrier level",
2833 "wimaxmacphy.prim_rssi_per_subcarrier_level",
2843 &hf_wimaxmacphy_prim_cinr
,
2846 "wimaxmacphy.prim_cinr",
2856 &hf_wimaxmacphy_prim_power_offset
,
2859 "wimaxmacphy.prim_power_offset",
2869 &hf_wimaxmacphy_prim_current_frame_number_msn
,
2871 "Current Frame Number (lsb)",
2872 "wimaxmacphy.prim_current_frame_number",
2882 &hf_wimaxmacphy_prim_acid_for_harq_data_bursts
,
2884 "ACID for HARQ data bursts",
2885 "wimaxmacphy.prim_acid_for_harq_data_bursts",
2895 &hf_wimaxmacphy_prim_indication_type
,
2898 "wimaxmacphy.prim_indication_type",
2901 VALS(wimaxmacphy_prim_indication_type_vals
),
2908 &hf_wimaxmacphy_prim_zone_permutation_type
,
2910 "Zone Permutation Type",
2911 "wimaxmacphy.prim_zone_permutation_type",
2914 VALS(wimaxmacphy_prim_zone_permutation_type_vals
),
2921 &hf_wimaxmacphy_prim_update_aas_handle_in_mac
,
2923 "Update AAS handle in MAC",
2924 "wimaxmacphy.prim_update_aas_handle_in_mac",
2934 &hf_wimaxmacphy_prim_aas_handle
,
2937 "wimaxmacphy.prim_aas_handle",
2947 &hf_wimaxmacphy_prim_time_deviation
,
2949 "Time deviation in units of 1/Fs",
2950 "wimaxmacphy.prim_time_deviation",
2960 &hf_wimaxmacphy_prim_frequency_deviation
,
2962 "Frequency deviation in Hz",
2963 "wimaxmacphy.prim_frequency_deviation",
2973 &hf_wimaxmacphy_prim_harq_ack_issid
,
2976 "wimaxmacphy.prim_harq_ack_issid",
2986 &hf_wimaxmacphy_prim_harq_ack_acid
,
2989 "wimaxmacphy.prim_harq_ack_acid",
2999 &hf_wimaxmacphy_prim_harq_ack_reserved1
,
3002 "wimaxmacphy.prim_harq_ack_reserved1",
3012 &hf_wimaxmacphy_prim_harq_ack_ack_valid
,
3015 "wimaxmacphy.prim_harq_ack_ack_valid",
3018 VALS(wimaxmacphy_prim_harq_ack_ack_valid_vals
),
3025 &hf_wimaxmacphy_prim_harq_ack_unnamed
,
3028 "wimaxmacphy.prim_harq_ack_unnamed",
3031 VALS(wimaxmacphy_prim_harq_ack_unnamed_vals
),
3038 &hf_wimaxmacphy_prim_harq_ack_reserved2
,
3041 "wimaxmacphy.prim_harq_ack_reserved2",
3051 &hf_wimaxmacphy_prim_fast_issid
,
3054 "wimaxmacphy.prim_fast_issid",
3064 &hf_wimaxmacphy_prim_fast_cqich_id
,
3067 "wimaxmacphy.prim_fast_cqich_id",
3077 &hf_wimaxmacphy_prim_fast_feedback_type_coding
,
3079 "Feedback type coding",
3080 "wimaxmacphy.prim_fast_type_coding",
3090 &hf_wimaxmacphy_prim_fast_feedback_type_coding_bit0
,
3092 "3 bit-MIMO Fast-feedback",
3093 "wimaxmacphy.prim_fast_type_coding.bit0",
3103 &hf_wimaxmacphy_prim_fast_feedback_type_coding_bit1
,
3105 "Enhanced FAST_FEEDBACK",
3106 "wimaxmacphy.prim_fast_type_coding.bit1",
3116 &hf_wimaxmacphy_prim_fast_feedback_type_coding_bit2
,
3119 "wimaxmacphy.prim_fast_type_coding.bit2",
3129 &hf_wimaxmacphy_prim_fast_feedback_type_coding_bit3
,
3132 "wimaxmacphy.prim_fast_type_coding.bit3",
3142 &hf_wimaxmacphy_prim_fast_feedback_type_coding_bit4
,
3144 "UEP fast-feedback",
3145 "wimaxmacphy.prim_fast_type_coding.bit4",
3155 &hf_wimaxmacphy_prim_fast_feedback_type_coding_bit5
,
3157 "A measurement report performed on the last DL burst",
3158 "wimaxmacphy.prim_fast_type_coding.bit5",
3168 &hf_wimaxmacphy_prim_fast_feedback_type_coding_bit6
,
3170 "Primary/Secondary FAST_FEEDBACK",
3171 "wimaxmacphy.prim_fast_type_coding.bit6",
3181 &hf_wimaxmacphy_prim_fast_feedback_type_coding_bit7
,
3183 "DIUC-CQI Fast-feedback",
3184 "wimaxmacphy.prim_fast_type_coding.bit7",
3194 &hf_wimaxmacphy_prim_fast_feedback_valid
,
3197 "wimaxmacphy.prim_fast_feedback_valid",
3200 VALS(wimaxmacphy_prim_fast_feedback_valid_vals
),
3207 &hf_wimaxmacphy_prim_fast_feedback_sub_type
,
3209 "Feedback sub-type",
3210 "wimaxmacphy.prim_fast_feedback_sub_type",
3213 VALS(wimaxmacphy_prim_fast_feedback_sub_type_vals
),
3220 &hf_wimaxmacphy_prim_fast_reserved
,
3223 "wimaxmacphy.prim_fast_reserved",
3233 &hf_wimaxmacphy_prim_fast_feedback_value
,
3236 "wimaxmacphy.prim_fast_feedback_value",
3246 &hf_wimaxmacphy_prim_phy_aas_report_present
,
3248 "PHY AAS report present",
3249 "wimaxmacphy.prim_phy_aas_report_present",
3252 VALS(wimaxmacphy_prim_phy_aas_report_present_vals
),
3259 &hf_wimaxmacphy_prim_number_of_affected_ss
,
3261 "Number of affected SS",
3262 "wimaxmacphy.prim_number_of_affected_ss",
3272 &hf_wimaxmacphy_prim_zonexid
,
3275 "wimaxmacphy.prim_zonexid",
3285 &hf_wimaxmacphy_prim_cdma_code
,
3288 "wimaxmacphy.prim_cdma_code",
3298 &hf_wimaxmacphy_prim_cdma_symbol
,
3301 "wimaxmacphy.prim_cdma_symbol",
3311 &hf_wimaxmacphy_prim_cdma_subchannel
,
3314 "wimaxmacphy.prim_cdma_subchannel",
3324 &hf_wimaxmacphy_subframe_subframe_type
,
3327 "wimaxmacphy.subframe_subframe_type",
3330 VALS(wimaxmacphy_subframe_type_vals
),
3337 &hf_wimaxmacphy_subframe_frame_number
,
3340 "wimaxmacphy.subframe_frame_number",
3350 &hf_wimaxmacphy_subframe_downlink_reserved1
,
3353 "wimaxmacphy.subframe_downlink_reserved1",
3363 &hf_wimaxmacphy_subframe_phy_sap_version_number
,
3365 "PHY SAP version number",
3366 "wimaxmacphy.subframe_phy_sap_version_number",
3376 &hf_wimaxmacphy_subframe_downlink_reserved2
,
3378 "Downlink reserved",
3379 "wimaxmacphy.subframe_downlink_reserved2",
3389 &hf_wimaxmacphy_subframe_allocation_start_time
,
3391 "Allocation start time",
3392 "wimaxmacphy.subframe_allocation_start_time",
3402 &hf_wimaxmacphy_number_of_zone_descriptors
,
3404 "Number of Zone Descriptors",
3405 "wimaxmacphy.number_of_zone_descriptors",
3415 &hf_wimaxmacphy_zone_padding
,
3418 "wimaxmacphy.zone_padding",
3428 &hf_wimaxmacphy_dl_zone_type
,
3431 "wimaxmacphy.zone_type",
3434 VALS(wimaxmacphy_dl_zone_type_vals
),
3441 &hf_wimaxmacphy_ul_zone_type
,
3444 "wimaxmacphy.zone_type",
3447 VALS(wimaxmacphy_ul_zone_type_vals
),
3454 &hf_wimaxmacphy_zone_number
,
3457 "wimaxmacphy.zone_number",
3467 &hf_wimaxmacphy_zone_start_symbol_offset
,
3469 "Start Symbol Offset",
3470 "wimaxmacphy.zone_start_symbol_offset",
3480 &hf_wimaxmacphy_zone_end_symbol_offset
,
3482 "End Symbol Offset",
3483 "wimaxmacphy.zone_end_symbol_offset",
3493 &hf_wimaxmacphy_dl_zone_permutation_type
,
3496 "wimaxmacphy.zone_permutation_type",
3499 VALS(wimaxmacphy_dl_zone_permutation_type_vals
),
3506 &hf_wimaxmacphy_ul_zone_permutation_type
,
3509 "wimaxmacphy.zone_permutation_type",
3512 VALS(wimaxmacphy_ul_zone_permutation_type_vals
),
3519 &hf_wimaxmacphy_dl_zone_use_all_subchannels_indicator
,
3521 "Use all subchannels indicator",
3522 "wimaxmacphy.zone_use_all_subchannels_indicator",
3525 VALS(wimaxmacphy_zone_use_all_subchannels_indicator_vals
),
3532 &hf_wimaxmacphy_ul_zone_use_all_subchannels_indicator
,
3534 "Use all subchannels indicator",
3535 "wimaxmacphy.zone_use_all_subchannels_indicator",
3538 VALS(wimaxmacphy_zone_use_all_subchannels_indicator_vals
),
3545 &hf_wimaxmacphy_ul_zone_disable_pusc_subchannel_rotation
,
3547 "Disable PUSC subchannel rotation",
3548 "wimaxmacphy.zone_disable_pusc_subchannel_rotation",
3551 VALS(wimaxmacphy_ul_zone_disable_pusc_subchannel_rotation_vals
),
3558 &hf_wimaxmacphy_zone_dl_perm_base
,
3561 "wimaxmacphy.zone_dl_perm_base",
3571 &hf_wimaxmacphy_zone_ul_perm_base
,
3574 "wimaxmacphy.zone_ul_perm_base",
3584 &hf_wimaxmacphy_zone_prbs_id
,
3587 "wimaxmacphy.zone_prbs_id",
3597 &hf_wimaxmacphy_zone_dedicated_pilots
,
3600 "wimaxmacphy.zone_dedicated_pilots",
3603 VALS(wimaxmacphy_zone_dedicated_pilots_vals
),
3610 &hf_wimaxmacphy_zone_agc_range_extension
,
3612 "Rx AGC range extension",
3613 "wimaxmacphy.zone_agc_range_extension",
3616 VALS(wimaxmacphy_zone_agc_range_extension_vals
),
3623 &hf_wimaxmacphy_zone_reserved
,
3626 "wimaxmacphy.zone_reserved",
3636 &hf_wimaxmacphy_zone_stc_type
,
3639 "wimaxmacphy.zone_stc_type",
3642 VALS(wimaxmacphy_zone_stc_type_vals
),
3649 &hf_wimaxmacphy_zone_matrix_indicator
,
3652 "wimaxmacphy.zone_matrix_indicator",
3655 VALS(wimaxmacphy_matrix_indicator_vals
),
3662 &hf_wimaxmacphy_zone_midamble_presence
,
3664 "Midamble presence",
3665 "wimaxmacphy.zone_midamble_presence",
3668 VALS(wimaxmacphy_zone_midamble_presence_vals
),
3675 &hf_wimaxmacphy_zone_midamble_boosting
,
3677 "Midamble boosting",
3678 "wimaxmacphy.zone_midamble_boosting",
3681 VALS(wimaxmacphy_zone_midamble_boosting_vals
),
3688 &hf_wimaxmacphy_zone_preamble_configuration
,
3690 "Preamble configuration",
3691 "wimaxmacphy.zone_preamble_configuration",
3694 VALS(wimaxmacphy_zone_preamble_configuration_vals
),
3701 &hf_wimaxmacphy_zone_sdma_supported_indication
,
3703 "SDMA supported indication",
3704 "wimaxmacphy.zone_sdma_supported_indication",
3707 VALS(wimaxmacphy_zone_sdma_supported_indication_vals
),
3714 &hf_wimaxmacphy_zone_preamble_type
,
3717 "wimaxmacphy.zone_preamble_type",
3720 VALS(wimaxmacphy_zone_preamble_type_vals
),
3727 &hf_wimaxmacphy_dl_zone_aas_reserved
,
3730 "wimaxmacphy.zone_aas_reserved",
3740 &hf_wimaxmacphy_ul_zone_aas_reserved
,
3743 "wimaxmacphy.zone_aas_reserved",
3753 &hf_wimaxmacphy_number_of_burst_descriptors
,
3755 "Number of Burst Descriptors",
3756 "wimaxmacphy.number_of_burst_descriptors",
3766 &hf_wimaxmacphy_burst_padding
,
3769 "wimaxmacphy.burst_padding",
3779 &hf_wimaxmacphy_dl_burst_type
,
3782 "wimaxmacphy.burst_type",
3785 VALS(wimaxmacphy_dl_burst_type_vals
),
3792 &hf_wimaxmacphy_ul_burst_type
,
3795 "wimaxmacphy.dl_burst_type",
3798 VALS(wimaxmacphy_ul_burst_type_vals
),
3805 &hf_wimaxmacphy_burst_type_extension
,
3807 "Burst Type extension",
3808 "wimaxmacphy.burst_type_extension",
3811 VALS(wimaxmacphy_burst_type_extension_vals
),
3818 &hf_wimaxmacphy_burst_number
,
3821 "wimaxmacphy.burst_number",
3831 &hf_wimaxmacphy_burst_modulation_fec_code_type
,
3833 "Modulation/FEC Code Type",
3834 "wimaxmacphy.burst_modulation_fec_code_type",
3837 BASE_DEC
| BASE_EXT_STRING
,
3838 &wimaxmacphy_modulation_fec_code_type_vals_ext
,
3841 VALS(wimaxmacphy_modulation_fec_code_type_vals
),
3848 &hf_wimaxmacphy_burst_data_length
,
3850 "Burst Data Length",
3851 "wimaxmacphy.burst_data_length",
3861 &hf_wimaxmacphy_burst_ofdma_symbol_offset
,
3863 "OFDMA Symbol offset",
3864 "wimaxmacphy.burst_ofdma_symbol_offset",
3874 &hf_wimaxmacphy_burst_subchannel_offset
,
3876 "Subchannel offset",
3877 "wimaxmacphy.burst_subchannel_offset",
3887 &hf_wimaxmacphy_burst_boosting
,
3890 "wimaxmacphy.burst_boosting",
3893 VALS(wimaxmacphy_burst_boosting_vals
),
3900 &hf_wimaxmacphy_burst_reserved
,
3903 "wimaxmacphy.burst_reserved",
3913 &hf_wimaxmacphy_burst_repetition_coding_indication
,
3915 "Repetition coding indication",
3916 "wimaxmacphy.burst_repetition_coding_indication",
3919 VALS(wimaxmacphy_burst_repetition_coding_indication_vals
),
3926 &hf_wimaxmacphy_burst_issid
,
3929 "wimaxmacphy.burst_issid",
3939 &hf_wimaxmacphy_burst_aas_handle
,
3942 "wimaxmacphy.burst_aas_handle",
3952 &hf_wimaxmacphy_dl_burst_map_number_of_slots
,
3954 "Number of slots (duration) after repetition code is applied",
3955 "wimaxmacphy.burst_map_number_of_slots",
3965 &hf_wimaxmacphy_dl_burst_map_reserved
,
3968 "wimaxmacphy.burst_map_reserved",
3978 &hf_wimaxmacphy_dl_burst_normal_number_of_symbols
,
3980 "Number of Symbols",
3981 "wimaxmacphy.burst_normal_number_of_symbols",
3991 &hf_wimaxmacphy_dl_burst_normal_number_of_subchannels
,
3993 "Number of Subchannels",
3994 "wimaxmacphy.burst_normal_number_of_subchannels",
4004 &hf_wimaxmacphy_dl_burst_normal_aas_handle
,
4007 "wimaxmacphy.burst_normal_aas_handle",
4017 &hf_wimaxmacphy_ul_burst_normal_number_of_slots
,
4020 "wimaxmacphy.burst_normal_number_of_slots",
4030 &hf_wimaxmacphy_ul_burst_normal_reserved
,
4033 "wimaxmacphy.burst_normal_reserved",
4043 &hf_wimaxmacphy_burst_papr_number_of_symbols
,
4045 "Number of Symbols",
4046 "wimaxmacphy.burst_papr_number_of_symbols",
4056 &hf_wimaxmacphy_burst_papr_number_of_subchannels
,
4058 "Number of Subchannels",
4059 "wimaxmacphy.burst_papr_number_of_subchannels",
4069 &hf_wimaxmacphy_burst_papr_reserved
,
4072 "wimaxmacphy.burst_papr_reserved",
4082 &hf_wimaxmacphy_ul_burst_papr_unnamed
,
4085 "wimaxmacphy.burst_papr_unnamed",
4088 VALS(wimaxmacphy_ul_burst_papr_unnamed_vals
),
4095 &hf_wimaxmacphy_ul_burst_harq_ack_number_of_symbols
,
4097 "Number of Symbols",
4098 "wimaxmacphy.burst_harq_ack_number_of_symbols",
4108 &hf_wimaxmacphy_ul_burst_harq_ack_number_of_subchannels
,
4110 "Number of Subchannels",
4111 "wimaxmacphy.burst_harq_ack_number_of_subchannels",
4121 &hf_wimaxmacphy_ul_burst_harq_ack_reserved
,
4124 "wimaxmacphy.burst_harq_ack_reserved",
4134 &hf_wimaxmacphy_ul_burst_fast_number_of_symbols
,
4136 "Number of Symbols",
4137 "wimaxmacphy.burst_fast_number_of_symbols",
4147 &hf_wimaxmacphy_ul_burst_fast_number_of_subchannels
,
4149 "Number of Subchannels",
4150 "wimaxmacphy.burst_fast_number_of_subchannels",
4160 &hf_wimaxmacphy_ul_burst_fast_reserved
,
4163 "wimaxmacphy.burst_fast_reserved",
4173 &hf_wimaxmacphy_ul_burst_initial_number_of_symbols
,
4175 "Number of Symbols",
4176 "wimaxmacphy.burst_initial_number_of_symbols",
4186 &hf_wimaxmacphy_ul_burst_initial_number_of_subchannels
,
4188 "Number of Subchannels",
4189 "wimaxmacphy.burst_initial_number_of_subchannels",
4199 &hf_wimaxmacphy_ul_burst_initial_ranging_method
,
4202 "wimaxmacphy.burst_initial_ranging_method",
4205 VALS(wimaxmacphy_ul_burst_ranging_method_vals
),
4212 &hf_wimaxmacphy_ul_burst_initial_reserved1
,
4215 "wimaxmacphy.burst_initial_reserved1",
4225 &hf_wimaxmacphy_ul_burst_initial_zone_xid
,
4228 "wimaxmacphy.burst_initial_zone_xid",
4238 &hf_wimaxmacphy_ul_burst_initial_reserved2
,
4241 "wimaxmacphy.burst_initial_reserved2",
4251 &hf_wimaxmacphy_ul_burst_periodic_number_of_symbols
,
4253 "Number of Symbols",
4254 "wimaxmacphy.burst_periodic_number_of_symbols",
4264 &hf_wimaxmacphy_ul_burst_periodic_number_of_subchannels
,
4266 "Number of Subchannels",
4267 "wimaxmacphy.burst_periodic_number_of_subchannels",
4277 &hf_wimaxmacphy_ul_burst_periodic_ranging_method
,
4280 "wimaxmacphy.burst_periodic_ranging_method",
4283 VALS(wimaxmacphy_ul_burst_ranging_method_vals
),
4290 &hf_wimaxmacphy_ul_burst_periodic_reserved1
,
4293 "wimaxmacphy.burst_periodic_reserved1",
4303 &hf_wimaxmacphy_ul_burst_periodic_zone_xid
,
4306 "wimaxmacphy.burst_periodic_zone_xid",
4316 &hf_wimaxmacphy_ul_burst_periodic_reserved2
,
4319 "wimaxmacphy.burst_periodic_reserved2",
4329 &hf_wimaxmacphy_ul_burst_noise_number_of_symbols
,
4331 "Number of Symbols",
4332 "wimaxmacphy.burst_noise_number_of_symbols",
4342 &hf_wimaxmacphy_ul_burst_noise_number_of_subchannels
,
4344 "Number of Subchannels",
4345 "wimaxmacphy.burst_noise_number_of_subchannels",
4355 &hf_wimaxmacphy_ul_burst_noise_reserved
,
4358 "wimaxmacphy.burst_noise_reserved",
4368 &hf_wimaxmacphy_ul_burst_sounding_number_of_symbols
,
4370 "Number of Symbols",
4371 "wimaxmacphy.burst_sounding_number_of_symbols",
4381 &hf_wimaxmacphy_ul_burst_sounding_number_of_subchannels
,
4383 "Number of Subchannels",
4384 "wimaxmacphy.burst_sounding_number_of_subchannels",
4394 &hf_wimaxmacphy_ul_burst_sounding_type
,
4397 "wimaxmacphy.burst_sounding_type",
4400 VALS(wimaxmacphy_ul_burst_sounding_type_vals
),
4407 &hf_wimaxmacphy_ul_burst_sounding_separability_type
,
4409 "Separability type",
4410 "wimaxmacphy.burst_sounding_separability_type",
4413 VALS(wimaxmacphy_ul_burst_sounding_separability_type_vals
),
4420 &hf_wimaxmacphy_ul_burst_sounding_max_cyclic_shift_indx
,
4422 "Max Cyclic Shift Indx",
4423 "wimaxmacphy.burst_sounding_max_cyclic_shift_indx",
4426 VALS(wimaxmacphy_ul_burst_sounding_max_cyclic_shift_indx_vals
),
4433 &hf_wimaxmacphy_ul_burst_sounding_decimation_value
,
4436 "wimaxmacphy.burst_sounding_decimation_value",
4446 &hf_wimaxmacphy_ul_burst_sounding_decimation_offset_rand
,
4448 "Decimation offset randomization",
4449 "wimaxmacphy.burst_sounding_decimation_offset_rand",
4452 VALS(wimaxmacphy_ul_burst_sounding_decimation_offset_rand_vals
),
4459 &hf_wimaxmacphy_ul_burst_sounding_reserved
,
4462 "wimaxmacphy.burst_sounding_reserved",
4472 &hf_wimaxmacphy_burst_opt_aas_preamble_modifier_type
,
4474 "Preamble Modifier Type",
4475 "wimaxmacphy.burst_opt_aas_preamble_modifier_type",
4485 &hf_wimaxmacphy_burst_opt_aas_preamble_shift_index
,
4487 "Preamble Shift index",
4488 "wimaxmacphy.burst_opt_aas_preamble_shift_index",
4498 &hf_wimaxmacphy_burst_opt_aas_reserved
,
4501 "wimaxmacphy.burst_opt_aas_reserved",
4511 &hf_wimaxmacphy_burst_opt_mimo_matrix_indicator
,
4514 "wimaxmacphy.burst_opt_mimo_matrix_indicator",
4517 VALS(wimaxmacphy_matrix_indicator_vals
),
4524 &hf_wimaxmacphy_burst_opt_mimo_layer_index
,
4527 "wimaxmacphy.burst_opt_mimo_layer_index",
4537 &hf_wimaxmacphy_dl_burst_opt_mimo_reserved
,
4540 "wimaxmacphy.burst_opt_mimo_reserved",
4550 &hf_wimaxmacphy_ul_burst_opt_mimo_matrix_indicator
,
4552 "Matrix indicator (dual antenna SS)",
4553 "wimaxmacphy.burst_opt_mimo_matrix_indicator",
4556 VALS(wimaxmacphy_ul_burst_opt_mimo_matrix_indicator_vals
),
4563 &hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns
,
4566 "wimaxmacphy.burst_opt_mimo_pilot_patterns",
4576 &hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit0
,
4579 "wimaxmacphy.burst_opt_mimo_pilot_patterns.A",
4589 &hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit1
,
4592 "wimaxmacphy.burst_opt_mimo_pilot_patterns.B",
4602 &hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit2
,
4605 "wimaxmacphy.burst_opt_mimo_pilot_patterns.C",
4615 &hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit3
,
4618 "wimaxmacphy.burst_opt_mimo_pilot_patterns.D",
4628 &hf_wimaxmacphy_ul_burst_opt_mimo_collaborative
,
4630 "Collaborative MIMO control",
4631 "wimaxmacphy.burst_opt_mimo_collaborative",
4634 VALS(wimaxmacphy_ul_burst_opt_mimo_collaborative_vals
),
4641 &hf_wimaxmacphy_ul_burst_opt_mimo_antenna_unnamed
,
4644 "wimaxmacphy.burst_opt_mimo_antenna_unnamed",
4647 VALS(wimaxmacphy_ul_burst_opt_mimo_antenna_unnamed_vals
),
4654 &hf_wimaxmacphy_number_of_sub_burst_descriptors
,
4656 "Number of Sub-Burst Descriptors",
4657 "wimaxmacphy.number_of_sub_burst_descriptors",
4667 &hf_wimaxmacphy_sub_burst_padding
,
4670 "wimaxmacphy.sub_burst_padding",
4680 &hf_wimaxmacphy_dl_sub_burst_type
,
4683 "wimaxmacphy.sub_burst_type",
4686 VALS(wimaxmacphy_dl_sub_burst_type_vals
),
4693 &hf_wimaxmacphy_ul_sub_burst_type
,
4696 "wimaxmacphy.sub_burst_type",
4699 VALS(wimaxmacphy_ul_sub_burst_type_vals
),
4706 &hf_wimaxmacphy_sub_burst_number
,
4709 "wimaxmacphy.sub_burst_number",
4719 &hf_wimaxmacphy_sub_burst_symbol_offset
,
4722 "wimaxmacphy.sub_burst_symbol_offset",
4732 &hf_wimaxmacphy_sub_burst_subchannel_offset
,
4734 "Subchannel Offset",
4735 "wimaxmacphy.sub_burst_subchannel_offset",
4745 &hf_wimaxmacphy_sub_burst_number_of_slots
,
4747 "Number of slots in this sub-burst",
4748 "wimaxmacphy.sub_burst_number_of_slots",
4758 &hf_wimaxmacphy_sub_burst_reserved1
,
4761 "wimaxmacphy.sub_burst_reserved1",
4771 &hf_wimaxmacphy_sub_burst_reserved2
,
4774 "wimaxmacphy.sub_burst_reserved2",
4784 &hf_wimaxmacphy_sub_burst_modulation_fec_code_type
,
4786 "Modulation/FEC Code Type",
4787 "wimaxmacphy.sub_burst_modulation_fec_code_type",
4790 VALS(wimaxmacphy_modulation_fec_code_type_vals
),
4797 &hf_wimaxmacphy_sub_burst_issid
,
4800 "wimaxmacphy.sub_burst_issid",
4810 &hf_wimaxmacphy_sub_burst_aas_handle
,
4813 "wimaxmacphy.sub_burst_aas_handle",
4823 &hf_wimaxmacphy_sub_burst_boosting
,
4826 "wimaxmacphy.sub_burst_boosting",
4829 VALS(wimaxmacphy_burst_boosting_vals
),
4836 &hf_wimaxmacphy_sub_burst_repetition_coding_indication
,
4838 "Repetition coding indication",
4839 "wimaxmacphy.sub_burst_repetition_coding_indication",
4842 VALS(wimaxmacphy_burst_repetition_coding_indication_vals
),
4849 &hf_wimaxmacphy_sub_burst_data_length
,
4851 "Sub-Burst Data Length",
4852 "wimaxmacphy.sub_burst_data_length",
4862 &hf_wimaxmacphy_sub_burst_harq_chase_harq_channel_id
,
4864 "HARQ channel id (ACID)",
4865 "wimaxmacphy.sub_burst_harq_chase_harq_channel_id",
4875 &hf_wimaxmacphy_sub_burst_harq_chase_harq_sequence_number
,
4877 "HARQ sequence number (AI_SN)",
4878 "wimaxmacphy.sub_burst_harq_chase_harq_sequence_number",
4888 &hf_wimaxmacphy_sub_burst_harq_chase_flush_unnamed
,
4891 "wimaxmacphy.sub_burst_harq_chase_flush_unnamed",
4894 VALS(wimaxmacphy_sub_burst_flush_unnamed_vals
),
4901 &hf_wimaxmacphy_sub_burst_harq_chase_reserved
,
4904 "wimaxmacphy.sub_burst_harq_chase_reserved",
4914 &hf_wimaxmacphy_sub_burst_mimo_chase_harq_channel_id
,
4916 "HARQ channel id (ACID)",
4917 "wimaxmacphy.sub_burst_mimo_chase_harq_channel_id",
4927 &hf_wimaxmacphy_sub_burst_mimo_chase_harq_sequence_number
,
4929 "HARQ sequence number (AI_SN)",
4930 "wimaxmacphy.sub_burst_mimo_chase_harq_sequence_number",
4940 &hf_wimaxmacphy_sub_burst_mimo_chase_flush_unnamed
,
4943 "wimaxmacphy.sub_burst_mimo_chase_flush_unnamed",
4946 VALS(wimaxmacphy_sub_burst_flush_unnamed_vals
),
4953 &hf_wimaxmacphy_sub_burst_mimo_chase_layer_index
,
4956 "wimaxmacphy.sub_burst_mimo_chase_layer_index",
4966 &hf_wimaxmacphy_ul_sub_burst_ctype
,
4969 "wimaxmacphy.sub_burst_ctype",
4972 VALS(wimaxmacphy_ul_sub_burst_ctype_vals
),
4979 &hf_wimaxmacphy_ul_sub_burst_mini_subchannel_index
,
4981 "Mini-subchannel Index",
4982 "wimaxmacphy.sub_burst_mini_subchannel_index",
4992 &hf_wimaxmacphy_ul_sub_burst_mini_reserved
,
4995 "wimaxmacphy.sub_burst_mini_reserved",
5005 &hf_wimaxmacphy_ul_sub_burst_feedback_type_coding
,
5007 "Feedback type coding",
5008 "wimaxmacphy.sub_burst_feedback_type_coding",
5018 &hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit0
,
5020 "3 bit-MIMO Fast-feedback",
5021 "wimaxmacphy.sub_burst_feedback_type_coding.bit0",
5031 &hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit1
,
5033 "Enhanced FAST_FEEDBACK",
5034 "wimaxmacphy.sub_burst_feedback_type_coding.bit1",
5044 &hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit2
,
5047 "wimaxmacphy.sub_burst_feedback_type_coding.bit2",
5057 &hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit3
,
5060 "wimaxmacphy.sub_burst_feedback_type_coding.bit3",
5070 &hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit4
,
5072 "UEP fast-feedback",
5073 "wimaxmacphy.sub_burst_feedback_type_coding.bit4",
5083 &hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit5
,
5085 "A measurement report performed on the last DL burst",
5086 "wimaxmacphy.sub_burst_feedback_type_coding.bit5",
5096 &hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit6
,
5098 "Primary/Secondary FAST_FEEDBACK",
5099 "wimaxmacphy.sub_burst_feedback_type_coding.bit6",
5109 &hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit7
,
5111 "DIUC-CQI Fast-feedback",
5112 "wimaxmacphy.sub_burst_feedback_type_coding.bit7",
5122 &hf_wimaxmacphy_ul_sub_burst_feedback_reserved1
,
5125 "wimaxmacphy.sub_burst_feedback_reserved1",
5135 &hf_wimaxmacphy_ul_sub_burst_feedback_sub_type
,
5137 "Feedback sub-type",
5138 "wimaxmacphy.sub_burst_feedback_sub_type",
5148 &hf_wimaxmacphy_ul_sub_burst_feedback_cqich_id
,
5151 "wimaxmacphy.sub_burst_feedback_cqich_id",
5161 &hf_wimaxmacphy_ul_sub_burst_feedback_reserved2
,
5164 "wimaxmacphy.sub_burst_feedback_reserved2",
5174 &hf_wimaxmacphy_ul_sub_burst_feedback_slot_offset
,
5177 "wimaxmacphy.sub_burst_feedback_slot_offset",
5187 &hf_wimaxmacphy_ul_sub_burst_harq_ack_acid
,
5190 "wimaxmacphy.sub_burst_harq_ack_acid",
5200 &hf_wimaxmacphy_ul_sub_burst_harq_ack_reserved
,
5203 "wimaxmacphy.sub_burst_harq_ack_reserved",
5213 &hf_wimaxmacphy_ul_sub_burst_sounding_symbol_index
,
5215 "Sounding symbol index within Sounding zone",
5216 "wimaxmacphy.sub_burst_sounding_symbol_index",
5226 &hf_wimaxmacphy_ul_sub_burst_sounding_power_assignment
,
5228 "Power assignment method",
5229 "wimaxmacphy.sub_burst_sounding_power_assignment_method",
5232 VALS(wimaxmacphy_ul_sub_burst_sounding_power_assignment_vals
),
5239 &hf_wimaxmacphy_ul_sub_burst_sounding_power_boost
,
5242 "wimaxmacphy.sub_burst_sounding_power_boost",
5245 VALS(wimaxmacphy_ul_sub_burst_sounding_power_boost_vals
),
5252 &hf_wimaxmacphy_ul_sub_burst_sounding_allocation_mode
,
5255 "wimaxmacphy.sub_burst_sounding_allocation_mode",
5258 VALS(wimaxmacphy_ul_sub_burst_sounding_allocation_mode_vals
),
5265 &hf_wimaxmacphy_ul_sub_burst_sounding_start_freq_band
,
5267 "Start frequency band",
5268 "wimaxmacphy.sub_burst_sounding_start_freq_band",
5278 &hf_wimaxmacphy_ul_sub_burst_sounding_num_freq_bands
,
5280 "Number of frequency bands",
5281 "wimaxmacphy.ub_burst_sounding_num_freq_bands",
5291 &hf_wimaxmacphy_ul_sub_burst_sounding_band_bit_map
,
5294 "wimaxmacphy.sub_burst_sounding_band_bit_map",
5304 &hf_wimaxmacphy_ul_sub_burst_sounding_cyclic_time_shift
,
5306 "Cyclic time shift index",
5307 "wimaxmacphy.sub_burst_sounding_cyclic_time_shift_index",
5317 &hf_wimaxmacphy_ul_sub_burst_sounding_decimation_offset
,
5319 "Decimation offset",
5320 "wimaxmacphy.sub_burst_sounding_decimation_offset",
5330 &hf_wimaxmacphy_ul_sub_burst_sounding_reserved
,
5333 "wimaxmacphy.sub_burst_sounding_reserved",
5343 &hf_wimaxmacphy_ul_sub_burst_mimo_chase_matrix
,
5345 "Matrix (dual antenna SS)",
5346 "wimaxmacphy.sub_burst_mimo_chase_matrix",
5349 VALS(wimaxmacphy_ul_sub_burst_mimo_chase_matrix_vals
),
5357 /* Protocol subtree array */
5358 static int *ett
[] = {
5360 &ett_wimaxmacphy_primitive
,
5361 &ett_wimaxmacphy_prim_harq_ack
,
5362 &ett_wimaxmacphy_prim_fast_feedback
,
5363 &ett_wimaxmacphy_prim_fast_feedback_type_coding
,
5364 &ett_wimaxmacphy_dl_zone_descriptor
,
5365 &ett_wimaxmacphy_dl_zone_stc
,
5366 &ett_wimaxmacphy_dl_zone_aas
,
5367 &ett_wimaxmacphy_dl_burst_descriptor
,
5368 &ett_wimaxmacphy_dl_burst_map
,
5369 &ett_wimaxmacphy_dl_burst_normal
,
5370 &ett_wimaxmacphy_dl_burst_papr
,
5371 &ett_wimaxmacphy_dl_burst_opt_aas
,
5372 &ett_wimaxmacphy_dl_burst_opt_mimo
,
5373 &ett_wimaxmacphy_dl_sub_burst_descriptor
,
5374 &ett_wimaxmacphy_dl_sub_burst_harq_chase
,
5375 &ett_wimaxmacphy_dl_sub_burst_mimo_chase
,
5376 &ett_wimaxmacphy_ul_zone_descriptor
,
5377 &ett_wimaxmacphy_ul_zone_aas
,
5378 &ett_wimaxmacphy_ul_burst_descriptor
,
5379 &ett_wimaxmacphy_ul_burst_harq_ack
,
5380 &ett_wimaxmacphy_ul_burst_fast_feedback
,
5381 &ett_wimaxmacphy_ul_burst_initial_ranging
,
5382 &ett_wimaxmacphy_ul_burst_periodic_ranging
,
5383 &ett_wimaxmacphy_ul_burst_papr_safety_zone
,
5384 &ett_wimaxmacphy_ul_burst_sounding_zone
,
5385 &ett_wimaxmacphy_ul_burst_noise_floor
,
5386 &ett_wimaxmacphy_ul_burst_normal_data
,
5387 &ett_wimaxmacphy_ul_burst_opt_aas
,
5388 &ett_wimaxmacphy_ul_burst_opt_mimo
,
5389 &ett_wimaxmacphy_ul_sub_burst_descriptor
,
5390 &ett_wimaxmacphy_ul_sub_burst_mini_subchannel
,
5391 &ett_wimaxmacphy_ul_sub_burst_fast_feedback
,
5392 &ett_wimaxmacphy_ul_sub_burst_harq_ack
,
5393 &ett_wimaxmacphy_ul_sub_burst_sounding_signal
,
5394 &ett_wimaxmacphy_ul_sub_burst_harq_chase
,
5395 &ett_wimaxmacphy_ul_sub_burst_mimo_chase
,
5396 &ett_wimaxmacphy_ul_pilot_patterns
,
5397 &ett_wimaxmacphy_ul_feedback_type_coding
,
5398 &ett_wimaxmacphy_ul_sub_burst_sub_allocation_specific
5401 static ei_register_info ei
[] = {
5402 { &ei_wimaxmacphy_unknown
, { "wimaxmacphy.unexpected_bytes", PI_MALFORMED
, PI_ERROR
, "Unexpected bytes", EXPFILL
}},
5405 expert_module_t
* expert_wimaxmacphy
;
5407 /* Register the protocol name and description */
5408 proto_wimaxmacphy
= proto_register_protocol("WiMAX MAC-PHY over Ethernet", "WiMAX MAC-PHY", "wimaxmacphy");
5409 wimaxmacphy_handle
= register_dissector("wimaxmacphy", dissect_wimaxmacphy
, proto_wimaxmacphy
);
5411 /* Required function calls to register the header fields and subtrees
5413 proto_register_field_array(proto_wimaxmacphy
, hf
, array_length(hf
));
5414 proto_register_subtree_array(ett
, array_length(ett
));
5415 expert_wimaxmacphy
= expert_register_protocol(proto_wimaxmacphy
);
5416 expert_register_field_array(expert_wimaxmacphy
, ei
, array_length(ei
));
5420 proto_reg_handoff_wimaxmacphy(void)
5422 dissector_add_for_decode_as_with_preference("udp.port", wimaxmacphy_handle
);
5426 * Editor modelines - https://www.wireshark.org/tools/modelines.html
5431 * indent-tabs-mode: nil
5434 * vi: set shiftwidth=4 tabstop=8 expandtab:
5435 * :indentSize=4:tabSize=8:noTabs=true: