dcerpc-netlogon: all netr_LogonControl[2[Ex]] calls have the same reply values
[wireshark-sm.git] / plugins / epan / wimaxmacphy / packet-wimaxmacphy.c
blob790515183000dffd1698c09126cc543131b5d7b8
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
12 #include "config.h"
14 #include <epan/packet.h>
15 #include <epan/expert.h>
16 #include <epan/tfs.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"},
321 { 0, NULL}
324 /* ------------------------------------------------------------------------- */
326 static const value_string wimaxmacphy_message_type_vals[] =
328 { 0, "Reserved"},
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)"},
346 { 0, NULL}
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);
350 #endif
352 /* ------------------------------------------------------------------------- */
353 /* error code field coding, for all but TXSTART.indication
355 static const value_string wimaxmacphy_prim_status_vals[]=
357 { 0, "Success"},
358 { 1, "Primitive is not supported"},
359 { 2, "FEC code type is not supported"},
360 { 3, "Overrun"},
361 { 4, "Underrun"},
362 { 5, "Transport Media Error"},
363 { 6, "TX data size do not match TXVECTOR"},
364 { 7, "Invalid RX/TX VECTOR format"},
365 { 0, NULL}
368 /* ---------------------------------------------------------------------------
369 * error code field coding, TXSTART.indication specific, delta is description
370 * for value 1
373 static const value_string wimaxmacphy_prim_txstart_indication_status_vals[]=
375 { 0, "Success"},
376 { 1, "Restart flag"},
377 { 2, "FEC code type is not supported"},
378 { 3, "Overrun"},
379 { 4, "Underrun"},
380 { 5, "Transport Media Error"},
381 { 6, "TX data size do not match TXVECTOR"},
382 { 7, "Invalid RX/TX VECTOR format"},
383 { 0, NULL}
386 /* ------------------------------------------------------------------------- */
388 #if 0
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"},
399 { 0, NULL}
401 #endif
403 /* ------------------------------------------------------------------------- */
405 #if 0
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"},
410 { 0, NULL}
412 #endif
414 /* ------------------------------------------------------------------------- */
416 static const value_string wimaxmacphy_prim_integrity_vals[]=
418 { 0, "valid data"},
419 { 1, "invalid data"},
420 { 0, NULL}
423 /* ------------------------------------------------------------------------- */
425 static const value_string wimaxmacphy_prim_indication_type_vals[]=
427 { 0, "Data burst"},
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"},
433 { 0, NULL}
436 /* ------------------------------------------------------------------------- */
438 static const value_string wimaxmacphy_prim_zone_permutation_type_vals[]=
440 { 0x0, "PUSC"},
441 { 0x1, "Optional PUSC"},
442 { 0x2, "AMC - 1 x 6"},
443 { 0x3, "AMC - 2 x 3"},
444 { 0x4, "AMC - 3 x 2"},
445 { 0, NULL}
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"},
454 { 0, NULL}
457 /* ------------------------------------------------------------------------- */
459 static const value_string wimaxmacphy_prim_harq_ack_ack_valid_vals[]=
461 { 0, "valid data"},
462 { 1, "invalid data"},
463 { 0, NULL}
466 static const true_false_string set_notset = {
467 "Set",
468 "Not set"
471 /* ------------------------------------------------------------------------- */
473 static const value_string wimaxmacphy_prim_harq_ack_unnamed_vals[]=
475 { 0, "ACK"},
476 { 1, "NAK"},
477 { 0, NULL}
480 /* ------------------------------------------------------------------------- */
482 static const value_string wimaxmacphy_prim_fast_feedback_valid_vals[]=
484 { 0, "valid data"},
485 { 1, "invalid data"},
486 { 0, NULL}
489 /* ------------------------------------------------------------------------- */
491 static
492 const value_string wimaxmacphy_prim_fast_feedback_sub_type_vals[]=
494 { 0, "CQI (CINR) measurement"},
495 { 1, "Control feedback"},
496 { 0, NULL}
499 /* ------------------------------------------------------------------------- */
501 static const value_string wimaxmacphy_subframe_type_vals[]=
503 { 1, "Downlink Subframe"},
504 { 2, "Uplink Subframe"},
505 { 0, NULL}
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"},
517 { 0, NULL}
520 /* ------------------------------------------------------------------------- */
522 static const value_string wimaxmacphy_ul_zone_type_vals[]=
524 { 0x20, "Normal Zone Parameters"},
525 { 0x21, "Reserved"},
526 { 0x22, "AAS Zone Parameters"},
527 { 0x23, "Reserved"},
528 { 0x24, "Reserved"},
529 { 0, NULL}
532 /* ------------------------------------------------------------------------- */
534 static const value_string wimaxmacphy_dl_zone_permutation_type_vals[]=
536 { 0x00, "PUSC"},
537 { 0x01, "FUSC"},
538 { 0x02, "Optional FUSC"},
539 { 0x03, "AMC - 1 x 6"},
540 { 0x04, "AMC - 2 x 3"},
541 { 0x05, "AMC - 3 x 2"},
542 { 0x06, "TUSC1"},
543 { 0x07, "TUSC2"},
544 { 0, NULL}
547 /* ------------------------------------------------------------------------- */
549 static const value_string wimaxmacphy_ul_zone_permutation_type_vals[]=
551 { 0x00, "PUSC"},
552 { 0x01, "FUSC"},
553 { 0x02, "Optional FUSC"},
554 { 0x03, "AMC - 1 x 6"},
555 { 0x04, "AMC - 2 x 3"},
556 { 0x05, "AMC - 3 x 2"},
557 { 0x06, "Reserved"},
558 { 0x07, "Reserved"},
559 { 0, NULL}
562 /* ------------------------------------------------------------------------- */
564 static
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"},
569 { 0, NULL}
572 /* ------------------------------------------------------------------------- */
574 static
575 const value_string wimaxmacphy_ul_zone_disable_pusc_subchannel_rotation_vals[]=
577 { 0, "rotation enabled"},
578 { 1, "rotation disabled"},
579 { 0, NULL}
582 /* ------------------------------------------------------------------------- */
584 static const value_string wimaxmacphy_zone_dedicated_pilots_vals[]=
586 { 0, "pilots are broadcast"},
587 { 1, "pilots are dedicated"},
588 { 0, NULL}
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"},
597 { 0, NULL}
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"},
608 { 0, NULL}
611 /* ------------------------------------------------------------------------- */
613 static const value_string wimaxmacphy_matrix_indicator_vals[]=
615 { 0x00, "Matrix A"},
616 { 0x01, "Matrix B"},
617 { 0x02, "Matrix C"},
618 { 0, NULL}
621 /* ------------------------------------------------------------------------- */
623 static const value_string wimaxmacphy_zone_midamble_presence_vals[]=
625 { 0, "not present"},
626 { 1, "present"},
627 { 0, NULL}
630 /* ------------------------------------------------------------------------- */
632 static const value_string wimaxmacphy_zone_midamble_boosting_vals[]=
634 { 0, "no boosting"},
635 { 1, "boosting"},
636 { 0, NULL}
639 /* ------------------------------------------------------------------------- */
641 static const value_string wimaxmacphy_zone_preamble_configuration_vals[]=
643 { 0x00, "0 symbols (preambles not supported)"},
644 { 0x01, "1 symbol"},
645 { 0x02, "2 symbols"},
646 { 0x03, "3 symbols"},
647 { 0, NULL}
650 /* ------------------------------------------------------------------------- */
652 static const value_string wimaxmacphy_zone_sdma_supported_indication_vals[]=
654 { 0, "SDMA not supported"},
655 { 1, "SDMA supported"},
656 { 0, NULL}
659 /* ------------------------------------------------------------------------- */
661 static const value_string wimaxmacphy_zone_preamble_type_vals[]=
663 { 0, "frequency shifted preamble"},
664 { 1, "time shifted preamble"},
665 { 0, NULL}
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"},
676 { 0, NULL}
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"},
692 { 0x49, "Reserved"},
693 { 0, NULL}
696 /* ------------------------------------------------------------------------- */
698 static const value_string wimaxmacphy_burst_type_extension_vals[]=
700 { 0x00, "no extended data:"},
701 { 0x01, "AAS v1"},
702 { 0x02, "MIMO v1"},
703 { 0, NULL}
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"},
724 { 14, "Reserved"},
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"},
763 { 0, NULL}
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);
768 #endif
770 /* ------------------------------------------------------------------------- */
772 static const value_string wimaxmacphy_burst_boosting_vals[]=
774 { 0x00, "normal"},
775 { 0x01, "+6dB"},
776 { 0x02, "-6dB"},
777 { 0x03, "+9dB"},
778 { 0x04, "+3dB"},
779 { 0x05, "-3dB"},
780 { 0x06, "-9 dB"},
781 { 0x07, "-12 dB"},
782 { 0, NULL}
785 /* ------------------------------------------------------------------------- */
787 static
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"},
794 { 0, NULL}
797 /* ------------------------------------------------------------------------- */
799 static const value_string wimaxmacphy_dl_sub_burst_type_vals[]=
801 { 0x60, "No HARQ"},
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"},
808 { 0x67, "MIMO-STC"},
809 { 0, NULL}
812 /* ------------------------------------------------------------------------- */
814 static const value_string wimaxmacphy_ul_sub_burst_type_vals[]=
816 { 0x60, "No HARQ"},
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"},
823 { 0x67, "MIMO-STC"},
824 { 0x68, "Mini-subchannel"},
825 { 0x69, "Fast Feedback channel"},
826 { 0x6A, "HARQ ACK subchannel"},
827 { 0x6B, "Sounding signal"},
828 { 0, NULL}
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"},
838 { 0, NULL}
841 /* ------------------------------------------------------------------------- */
843 static const value_string wimaxmacphy_ul_burst_papr_unnamed_vals[]=
845 { 0, "UL PAPR reduction"},
846 { 1, "UL Safety zone"},
847 { 0, NULL}
850 /* ------------------------------------------------------------------------- */
852 static const value_string wimaxmacphy_ul_burst_ranging_method_vals[]=
854 { 0, "ranging over 2 symbols"},
855 { 1, "ranging over 4 symbols"},
856 { 0, NULL}
859 /* ------------------------------------------------------------------------- */
861 static const value_string wimaxmacphy_ul_burst_sounding_type_vals[]=
863 { 0, "Type A"},
864 { 1, "Type B"},
865 { 0, NULL}
868 /* ------------------------------------------------------------------------- */
870 static
871 const value_string wimaxmacphy_ul_burst_sounding_separability_type_vals[]=
873 { 0, "all subcarriers"},
874 { 1, "decimated subcarriers in a band"},
875 { 0, NULL}
878 /* ------------------------------------------------------------------------- */
880 static
881 const value_string wimaxmacphy_ul_burst_sounding_max_cyclic_shift_indx_vals[]=
883 { 0x00, "P=4"},
884 { 0x01, "P=8;"},
885 { 0x02, "P=16"},
886 { 0x03, "P=32"},
887 { 0x04, "P=9"},
888 { 0x05, "P=18"},
889 { 0, NULL}
892 /* ------------------------------------------------------------------------- */
894 static
895 const value_string wimaxmacphy_ul_burst_sounding_decimation_offset_rand_vals[]=
897 { 0, "no randomization"},
898 { 1, "randomization"},
899 { 0, NULL}
902 /* ------------------------------------------------------------------------- */
904 static
905 const value_string wimaxmacphy_ul_burst_opt_mimo_matrix_indicator_vals[]=
907 { 0x00, "Matrix A (STTD)"},
908 { 0x01, "Matrix B (SM)"},
909 { 0x02, "Reserved"},
910 { 0x03, "Reserved"},
911 { 0, NULL}
914 /* ------------------------------------------------------------------------- */
916 static const value_string wimaxmacphy_ul_burst_opt_mimo_collaborative_vals[]=
918 { 0, "non-collaborative"},
919 { 1, "collaborative"},
920 { 0, NULL}
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"},
929 { 0, NULL}
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"},
940 { 0, NULL}
943 /* ------------------------------------------------------------------------- */
945 #if 0
946 static const value_string wimaxmacphy_ul_sub_burst_feedback_sub_type_vals[]=
948 { 0, "CQI (CINR) measurement"},
949 { 1, "Control feedback"},
950 { 0, NULL}
952 #endif
954 /* ------------------------------------------------------------------------- */
956 static
957 const value_string wimaxmacphy_ul_sub_burst_sounding_power_assignment_vals[]=
959 { 0x00, "Equal power"},
960 { 0x01, "Reserved"},
961 { 0x02, "Interference dependent. Per subcarrier power limit."},
962 { 0x03, "Interference dependent. Total power limit."},
963 { 0, NULL}
966 /* ------------------------------------------------------------------------- */
968 static const value_string wimaxmacphy_ul_sub_burst_sounding_power_boost_vals[]=
970 { 0, "no boost"},
971 { 1, "boost"},
972 { 0, NULL}
975 /* ------------------------------------------------------------------------- */
977 static
978 const value_string wimaxmacphy_ul_sub_burst_sounding_allocation_mode_vals[]=
980 { 0, "Normal"},
981 { 1, "Band AMC"},
982 { 0, NULL}
985 /* ------------------------------------------------------------------------- */
987 static const value_string wimaxmacphy_ul_sub_burst_mimo_chase_matrix_vals[]=
989 { 0, "Matrix A"},
990 { 1, "Matrix B"},
991 { 0, NULL}
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;
998 proto_tree *subtree;
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);
1002 offset += 1;
1004 proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_number, tvb, offset, 1, ENC_BIG_ENDIAN);
1005 offset += 1;
1007 proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_symbol_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
1008 offset += 1;
1010 proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_subchannel_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
1011 offset += 1;
1013 proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_number_of_slots, tvb, offset, 2, ENC_BIG_ENDIAN);
1014 offset += 2;
1016 proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_reserved1, tvb, offset, 2, ENC_NA);
1017 offset += 2;
1019 proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_reserved2, tvb, offset, 1, ENC_NA);
1020 offset += 1;
1022 proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_modulation_fec_code_type, tvb, offset, 1, ENC_BIG_ENDIAN);
1023 offset += 1;
1025 proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_issid, tvb, offset, 2, ENC_BIG_ENDIAN);
1026 offset += 2;
1028 proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_aas_handle, tvb, offset, 2, ENC_BIG_ENDIAN);
1029 offset += 2;
1031 proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_boosting, tvb, offset, 1, ENC_BIG_ENDIAN);
1032 offset += 1;
1034 proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_repetition_coding_indication, tvb, offset, 1, ENC_BIG_ENDIAN);
1035 offset += 1;
1037 proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_data_length, tvb, offset, 4, ENC_BIG_ENDIAN);
1038 offset += 4;
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);
1048 offset += 1;
1050 proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_harq_chase_harq_sequence_number, tvb, offset, 1, ENC_BIG_ENDIAN);
1051 offset += 1;
1053 proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_harq_chase_flush_unnamed, tvb, offset, 1, ENC_BIG_ENDIAN);
1054 offset += 1;
1056 proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_harq_chase_reserved, tvb, offset, 1, ENC_NA);
1057 offset += 1;
1058 break;
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);
1065 offset += 1;
1067 proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_mimo_chase_harq_sequence_number, tvb, offset, 1, ENC_BIG_ENDIAN);
1068 offset += 1;
1070 proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_mimo_chase_flush_unnamed, tvb, offset, 1, ENC_BIG_ENDIAN);
1071 offset += 1;
1073 proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_mimo_chase_layer_index, tvb, offset, 1, ENC_BIG_ENDIAN);
1074 offset += 1;
1075 break;
1077 default:
1078 /* do nothing */
1079 break;
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;
1089 proto_item *item;
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);
1094 offset += 1;
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);
1098 offset += 1;
1100 proto_tree_add_item(tree, hf_wimaxmacphy_burst_number, tvb, offset, 1, ENC_BIG_ENDIAN);
1101 offset += 1;
1103 proto_tree_add_item(tree, hf_wimaxmacphy_burst_modulation_fec_code_type, tvb, offset, 1, ENC_BIG_ENDIAN);
1104 offset += 1;
1106 proto_tree_add_item(tree, hf_wimaxmacphy_burst_data_length, tvb, offset, 4, ENC_BIG_ENDIAN);
1107 offset += 4;
1109 proto_tree_add_item(tree, hf_wimaxmacphy_burst_ofdma_symbol_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
1110 offset += 1;
1112 proto_tree_add_item(tree, hf_wimaxmacphy_burst_subchannel_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
1113 offset += 1;
1115 proto_tree_add_item(tree, hf_wimaxmacphy_burst_boosting, tvb, offset, 1, ENC_BIG_ENDIAN);
1116 offset += 1;
1118 proto_tree_add_item(tree, hf_wimaxmacphy_burst_repetition_coding_indication, tvb, offset, 1, ENC_BIG_ENDIAN);
1119 offset += 1;
1121 /* burst-specific parts */
1122 switch (burst_type)
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);
1129 offset += 2;
1131 proto_tree_add_item(subtree, hf_wimaxmacphy_dl_burst_map_reserved, tvb, offset, 2, ENC_NA);
1132 offset += 2;
1133 break;
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);
1140 offset += 1;
1142 proto_tree_add_item(subtree, hf_wimaxmacphy_dl_burst_normal_number_of_subchannels, tvb, offset, 1, ENC_BIG_ENDIAN);
1143 offset += 1;
1145 proto_tree_add_item(subtree, hf_wimaxmacphy_dl_burst_normal_aas_handle, tvb, offset, 2, ENC_BIG_ENDIAN);
1146 offset += 2;
1148 /* extensions */
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);
1156 offset += 1;
1158 proto_tree_add_item(opt_tree, hf_wimaxmacphy_burst_opt_aas_preamble_shift_index, tvb, offset, 1, ENC_BIG_ENDIAN);
1159 offset += 1;
1161 proto_tree_add_item(opt_tree, hf_wimaxmacphy_burst_opt_aas_reserved, tvb, offset, 2, ENC_NA);
1162 offset += 2;
1164 /* ??? Algorithm specific Information (per Burst Type extension) */
1165 break;
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);
1172 offset += 1;
1174 proto_tree_add_item(opt_tree, hf_wimaxmacphy_burst_opt_mimo_layer_index, tvb, offset, 1, ENC_BIG_ENDIAN);
1175 offset += 1;
1177 proto_tree_add_item(opt_tree, hf_wimaxmacphy_dl_burst_opt_mimo_reserved, tvb, offset, 2, ENC_NA);
1178 offset += 2;
1181 /* ??? Algorithm specific Information (per Burst Type extension) */
1182 break;
1184 default:
1185 /* do nothing */
1186 break;
1189 break;
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);
1196 offset += 1;
1198 proto_tree_add_item(subtree, hf_wimaxmacphy_burst_papr_number_of_subchannels, tvb, offset, 1, ENC_BIG_ENDIAN);
1199 offset += 1;
1201 proto_tree_add_item(subtree, hf_wimaxmacphy_burst_papr_reserved, tvb, offset, 2, ENC_NA);
1202 offset += 2;
1203 break;
1205 default:
1206 /* do nothing */
1207 break;
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);
1213 offset += 1;
1215 proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_padding, tvb, offset, 3, ENC_NA);
1216 offset += 3;
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;
1241 proto_item *item;
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);
1246 offset += 1;
1248 proto_tree_add_item(tree, hf_wimaxmacphy_zone_number, tvb, offset, 1, ENC_BIG_ENDIAN);
1249 offset += 1;
1251 proto_tree_add_item(tree, hf_wimaxmacphy_zone_start_symbol_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
1252 offset += 1;
1254 proto_tree_add_item(tree, hf_wimaxmacphy_zone_end_symbol_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
1255 offset += 1;
1257 proto_tree_add_item(tree, hf_wimaxmacphy_dl_zone_permutation_type, tvb, offset, 1, ENC_BIG_ENDIAN);
1258 offset += 1;
1260 proto_tree_add_item(tree, hf_wimaxmacphy_dl_zone_use_all_subchannels_indicator, tvb, offset, 1, ENC_BIG_ENDIAN);
1261 offset += 1;
1263 proto_tree_add_item(tree, hf_wimaxmacphy_zone_dl_perm_base, tvb, offset, 1, ENC_BIG_ENDIAN);
1264 offset += 1;
1266 proto_tree_add_item(tree, hf_wimaxmacphy_zone_prbs_id, tvb, offset, 1, ENC_BIG_ENDIAN);
1267 offset += 1;
1269 proto_tree_add_item(tree, hf_wimaxmacphy_zone_dedicated_pilots, tvb, offset, 1, ENC_BIG_ENDIAN);
1270 offset += 1;
1272 proto_tree_add_item(tree, hf_wimaxmacphy_zone_reserved, tvb, offset, 3, ENC_NA);
1273 offset += 3;
1275 /* zone-specific parts */
1276 switch (zone_type)
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);
1283 offset += 1;
1285 proto_tree_add_item(subtree, hf_wimaxmacphy_zone_matrix_indicator, tvb, offset, 1, ENC_BIG_ENDIAN);
1286 offset += 1;
1288 proto_tree_add_item(subtree, hf_wimaxmacphy_zone_midamble_presence, tvb, offset, 1, ENC_BIG_ENDIAN);
1289 offset += 1;
1291 proto_tree_add_item(subtree, hf_wimaxmacphy_zone_midamble_boosting, tvb, offset, 1, ENC_BIG_ENDIAN);
1292 offset += 1;
1293 break;
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);
1300 offset += 1;
1302 proto_tree_add_item(subtree, hf_wimaxmacphy_zone_sdma_supported_indication, tvb, offset, 1, ENC_BIG_ENDIAN);
1303 offset += 1;
1305 proto_tree_add_item(subtree, hf_wimaxmacphy_dl_zone_aas_reserved, tvb, offset, 2, ENC_NA);
1306 offset += 2;
1308 /* ??? Algorithm Specific Information (per Zone Type) */
1309 break;
1311 default:
1312 /* do nothing */
1313 break;
1316 /* burst portion */
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);
1319 offset += 1;
1321 proto_tree_add_item(tree, hf_wimaxmacphy_burst_padding, tvb, offset, 3, ENC_NA);
1322 offset += 3;
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;
1349 uint8_t zone;
1351 proto_tree_add_item(tree, hf_wimaxmacphy_subframe_subframe_type, tvb, offset, 1, ENC_BIG_ENDIAN);
1352 offset += 1;
1354 proto_tree_add_item(tree, hf_wimaxmacphy_subframe_frame_number, tvb, offset, 1, ENC_BIG_ENDIAN);
1355 offset += 1;
1357 proto_tree_add_item(tree, hf_wimaxmacphy_subframe_downlink_reserved1, tvb, offset, 1, ENC_BIG_ENDIAN);
1358 offset += 1;
1360 proto_tree_add_item(tree, hf_wimaxmacphy_subframe_phy_sap_version_number, tvb, offset, 1, ENC_BIG_ENDIAN);
1361 offset += 1;
1363 proto_tree_add_item(tree, hf_wimaxmacphy_subframe_downlink_reserved2, tvb, offset, 4, ENC_BIG_ENDIAN);
1364 offset += 4;
1366 /* zone portion */
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);
1369 offset += 1;
1371 proto_tree_add_item(tree, hf_wimaxmacphy_number_of_zone_descriptors, tvb, offset, 3, ENC_BIG_ENDIAN);
1372 offset += 3;
1374 /* zone descriptors */
1375 for (zone = 0; zone < zone_descriptor_count; ++zone)
1377 proto_item *item;
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);
1404 offset += 1;
1406 proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_subchannel_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
1407 offset += 1;
1409 proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_number_of_slots, tvb, offset, 2, ENC_BIG_ENDIAN);
1410 offset += 2;
1412 proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_data_length, tvb, offset, 4, ENC_BIG_ENDIAN);
1413 offset += 4;
1415 proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_repetition_coding_indication, tvb, offset, 1, ENC_BIG_ENDIAN);
1416 offset += 1;
1418 proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_modulation_fec_code_type, tvb, offset, 1, ENC_BIG_ENDIAN);
1419 offset += 1;
1421 proto_tree_add_item(subtree, hf_wimaxmacphy_sub_burst_reserved1, tvb, offset, 2, ENC_NA);
1422 offset += 2;
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);
1432 offset += 1;
1434 proto_tree_add_item(opt_tree, hf_wimaxmacphy_sub_burst_harq_chase_harq_sequence_number, tvb, offset, 1, ENC_BIG_ENDIAN);
1435 offset += 1;
1437 proto_tree_add_item(opt_tree, hf_wimaxmacphy_sub_burst_harq_chase_flush_unnamed, tvb, offset, 1, ENC_BIG_ENDIAN);
1438 offset += 1;
1440 proto_tree_add_item(opt_tree, hf_wimaxmacphy_sub_burst_harq_chase_reserved, tvb, offset, 1, ENC_NA);
1441 offset += 1;
1442 break;
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);
1449 offset += 1;
1451 proto_tree_add_item(opt_tree, hf_wimaxmacphy_sub_burst_mimo_chase_harq_sequence_number, tvb, offset, 1, ENC_BIG_ENDIAN);
1452 offset += 1;
1454 proto_tree_add_item(opt_tree, hf_wimaxmacphy_sub_burst_mimo_chase_flush_unnamed, tvb, offset, 1, ENC_BIG_ENDIAN);
1455 offset += 1;
1457 proto_tree_add_item(opt_tree, hf_wimaxmacphy_ul_sub_burst_mimo_chase_matrix, tvb, offset, 1, ENC_BIG_ENDIAN);
1458 offset += 1;
1459 break;
1461 default:
1462 /* do nothing */
1463 break;
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);
1480 offset += 1;
1482 proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_number, tvb, offset, 1, ENC_BIG_ENDIAN);
1483 offset += 1;
1485 proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_issid, tvb, offset, 2, ENC_BIG_ENDIAN);
1486 offset += 2;
1488 proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_aas_handle, tvb, offset, 2, ENC_BIG_ENDIAN);
1489 offset += 2;
1491 proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_reserved1, tvb, offset, 2, ENC_NA);
1492 offset += 2;
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);
1502 offset += 1;
1504 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_mini_subchannel_index, tvb, offset, 1, ENC_BIG_ENDIAN);
1505 offset += 1;
1507 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_mini_reserved, tvb, offset, 2, ENC_NA);
1508 offset += 2;
1509 break;
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);
1525 offset += 1;
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);
1530 offset += 2;
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);
1534 offset += 1;
1535 break;
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);
1543 offset += 4;
1544 break;
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);
1551 offset += 1;
1553 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_sounding_power_assignment, tvb, offset, 1, ENC_BIG_ENDIAN);
1554 offset += 1;
1556 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_sounding_power_boost, tvb, offset, 1, ENC_BIG_ENDIAN);
1557 offset += 1;
1559 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_sounding_allocation_mode, tvb, offset, 1, ENC_BIG_ENDIAN);
1560 offset += 1;
1562 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_sounding_start_freq_band, tvb, offset, 1, ENC_BIG_ENDIAN);
1563 offset += 1;
1565 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_sounding_num_freq_bands, tvb, offset, 1, ENC_BIG_ENDIAN);
1566 offset += 1;
1568 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_sounding_band_bit_map, tvb, offset, 2, ENC_BIG_ENDIAN);
1569 offset += 2;
1571 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_sounding_cyclic_time_shift, tvb, offset, 1, ENC_BIG_ENDIAN);
1572 offset += 1;
1574 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_sounding_decimation_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
1575 offset += 1;
1577 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_sub_burst_sounding_reserved, tvb, offset, 1, ENC_NA);
1578 offset += 1;
1579 break;
1581 default:
1582 offset += dissect_wimaxmacphy_ul_sub_burst_sub_allocation_specific_part(
1583 tvb, offset, pinfo, tree, sub_burst_type);
1584 break;
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);
1600 offset += 1;
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);
1604 offset += 1;
1606 proto_tree_add_item(tree, hf_wimaxmacphy_burst_number, tvb, offset, 1, ENC_BIG_ENDIAN);
1607 offset += 1;
1609 proto_tree_add_item(tree, hf_wimaxmacphy_burst_modulation_fec_code_type, tvb, offset, 1, ENC_BIG_ENDIAN);
1610 offset += 1;
1612 proto_tree_add_item(tree, hf_wimaxmacphy_burst_data_length, tvb, offset, 4, ENC_BIG_ENDIAN);
1613 offset += 4;
1615 proto_tree_add_item(tree, hf_wimaxmacphy_burst_ofdma_symbol_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
1616 offset += 1;
1618 proto_tree_add_item(tree, hf_wimaxmacphy_burst_subchannel_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
1619 offset += 1;
1621 proto_tree_add_item(tree, hf_wimaxmacphy_burst_reserved, tvb, offset, 1, ENC_NA);
1622 offset += 1;
1624 proto_tree_add_item(tree, hf_wimaxmacphy_burst_repetition_coding_indication, tvb, offset, 1, ENC_BIG_ENDIAN);
1625 offset += 1;
1627 proto_tree_add_item(tree, hf_wimaxmacphy_burst_issid, tvb, offset, 2, ENC_BIG_ENDIAN);
1628 offset += 2;
1630 proto_tree_add_item(tree, hf_wimaxmacphy_burst_aas_handle, tvb, offset, 2, ENC_BIG_ENDIAN);
1631 offset += 2;
1633 /* burst-specific parts */
1634 switch (burst_type)
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);
1641 offset += 1;
1643 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_harq_ack_number_of_subchannels, tvb, offset, 1, ENC_BIG_ENDIAN);
1644 offset += 1;
1646 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_harq_ack_reserved, tvb, offset, 2, ENC_NA);
1647 offset += 2;
1648 break;
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);
1655 offset += 1;
1657 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_fast_number_of_subchannels, tvb, offset, 1, ENC_BIG_ENDIAN);
1658 offset += 1;
1660 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_fast_reserved, tvb, offset, 2, ENC_NA);
1661 offset += 2;
1662 break;
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);
1669 offset += 1;
1671 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_initial_number_of_subchannels, tvb, offset, 1, ENC_BIG_ENDIAN);
1672 offset += 1;
1674 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_initial_ranging_method, tvb, offset, 1, ENC_BIG_ENDIAN);
1675 offset += 1;
1677 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_initial_reserved1, tvb, offset, 1, ENC_NA);
1678 offset += 1;
1680 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_initial_zone_xid, tvb, offset, 2, ENC_BIG_ENDIAN);
1681 offset += 2;
1683 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_initial_reserved2, tvb, offset, 2, ENC_NA);
1684 offset += 2;
1685 break;
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);
1692 offset += 1;
1694 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_periodic_number_of_subchannels, tvb, offset, 1, ENC_BIG_ENDIAN);
1695 offset += 1;
1697 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_periodic_ranging_method, tvb, offset, 1, ENC_BIG_ENDIAN);
1698 offset += 1;
1700 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_periodic_reserved1, tvb, offset, 1, ENC_NA);
1701 offset += 1;
1703 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_periodic_zone_xid, tvb, offset, 2, ENC_BIG_ENDIAN);
1704 offset += 2;
1706 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_periodic_reserved2, tvb, offset, 2, ENC_NA);
1707 offset += 2;
1708 break;
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);
1715 offset += 1;
1717 proto_tree_add_item(subtree, hf_wimaxmacphy_burst_papr_number_of_subchannels, tvb, offset, 1, ENC_BIG_ENDIAN);
1718 offset += 1;
1720 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_papr_unnamed, tvb, offset, 1, ENC_BIG_ENDIAN);
1721 offset += 1;
1723 proto_tree_add_item(subtree, hf_wimaxmacphy_burst_papr_reserved, tvb, offset, 1, ENC_NA);
1724 offset += 1;
1725 break;
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);
1732 offset += 1;
1734 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_sounding_number_of_subchannels, tvb, offset, 1, ENC_BIG_ENDIAN);
1735 offset += 1;
1737 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_sounding_type, tvb, offset, 1, ENC_BIG_ENDIAN);
1738 offset += 1;
1740 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_sounding_separability_type, tvb, offset, 1, ENC_BIG_ENDIAN);
1741 offset += 1;
1743 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_sounding_max_cyclic_shift_indx, tvb, offset, 1, ENC_BIG_ENDIAN);
1744 offset += 1;
1746 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_sounding_decimation_value, tvb, offset, 1, ENC_BIG_ENDIAN);
1747 offset += 1;
1749 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_sounding_decimation_offset_rand, tvb, offset, 1, ENC_BIG_ENDIAN);
1750 offset += 1;
1752 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_sounding_reserved, tvb, offset, 1, ENC_NA);
1753 offset += 1;
1754 break;
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);
1761 offset += 1;
1763 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_noise_number_of_subchannels, tvb, offset, 1, ENC_BIG_ENDIAN);
1764 offset += 1;
1766 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_noise_reserved, tvb, offset, 2, ENC_NA);
1767 offset += 2;
1768 break;
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);
1775 offset += 2;
1777 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_burst_normal_reserved, tvb, offset, 2, ENC_NA);
1778 offset += 2;
1780 /* extensions */
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);
1788 offset += 1;
1790 proto_tree_add_item(opt_tree, hf_wimaxmacphy_burst_opt_aas_reserved, tvb, offset, 2, ENC_NA);
1791 offset += 2;
1793 proto_tree_add_item(opt_tree, hf_wimaxmacphy_burst_opt_aas_preamble_shift_index, tvb, offset, 1, ENC_BIG_ENDIAN);
1794 offset += 1;
1796 /* ??? Algorithm specific Information (per Burst Type extension) */
1797 break;
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);
1804 offset += 1;
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);
1813 offset += 1;
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);
1817 offset += 1;
1819 proto_tree_add_item(opt_tree, hf_wimaxmacphy_burst_opt_mimo_layer_index, tvb, offset, 1, ENC_BIG_ENDIAN);
1820 offset += 1;
1822 /* ??? Algorithm specific Information (per Burst Type extension) */
1823 break;
1825 default:
1826 /* do nothing */
1827 break;
1830 break;
1832 default:
1833 /* do nothing */
1834 break;
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);
1840 offset += 1;
1842 proto_tree_add_item(tree, hf_wimaxmacphy_sub_burst_padding, tvb, offset, 3, ENC_NA);
1843 offset += 3;
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;
1868 proto_item *item;
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);
1872 offset += 1;
1874 proto_tree_add_item(tree, hf_wimaxmacphy_zone_number, tvb, offset, 1, ENC_BIG_ENDIAN);
1875 offset += 1;
1877 proto_tree_add_item(tree, hf_wimaxmacphy_zone_start_symbol_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
1878 offset += 1;
1880 proto_tree_add_item(tree, hf_wimaxmacphy_zone_end_symbol_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
1881 offset += 1;
1883 proto_tree_add_item(tree, hf_wimaxmacphy_ul_zone_permutation_type, tvb, offset, 1, ENC_BIG_ENDIAN);
1884 offset += 1;
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);
1888 offset += 1;
1890 proto_tree_add_item(tree, hf_wimaxmacphy_zone_ul_perm_base, tvb, offset, 1, ENC_BIG_ENDIAN);
1891 offset += 1;
1893 proto_tree_add_item(tree, hf_wimaxmacphy_zone_agc_range_extension, tvb, offset, 1, ENC_BIG_ENDIAN);
1894 offset += 1;
1896 /* zone-specific parts */
1897 switch (zone_type)
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);
1906 offset += 1;
1908 proto_tree_add_item(subtree, hf_wimaxmacphy_zone_preamble_type, tvb, offset, 1, ENC_BIG_ENDIAN);
1909 offset += 1;
1911 proto_tree_add_item(subtree, hf_wimaxmacphy_zone_sdma_supported_indication, tvb, offset, 1, ENC_BIG_ENDIAN);
1912 offset += 1;
1914 proto_tree_add_item(subtree, hf_wimaxmacphy_ul_zone_aas_reserved, tvb, offset, 1, ENC_NA);
1915 offset += 1;
1917 /* ??? Algorithm Specific Information (per Zone Type) */
1918 break;
1920 default:
1921 /* do nothing */
1922 break;
1925 /* burst portion */
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);
1928 offset += 1;
1930 proto_tree_add_item(tree, hf_wimaxmacphy_burst_padding, tvb, offset, 3, ENC_NA);
1931 offset += 3;
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;
1955 uint8_t zone;
1957 proto_tree_add_item(tree, hf_wimaxmacphy_subframe_subframe_type, tvb, offset, 1, ENC_BIG_ENDIAN);
1958 offset += 1;
1960 proto_tree_add_item(tree, hf_wimaxmacphy_subframe_frame_number, tvb, offset, 1, ENC_BIG_ENDIAN);
1961 offset += 1;
1963 proto_tree_add_item(tree, hf_wimaxmacphy_subframe_downlink_reserved1, tvb, offset, 1, ENC_BIG_ENDIAN);
1964 offset += 1;
1966 proto_tree_add_item(tree, hf_wimaxmacphy_subframe_phy_sap_version_number, tvb, offset, 1, ENC_BIG_ENDIAN);
1967 offset += 1;
1969 proto_tree_add_item(tree, hf_wimaxmacphy_subframe_allocation_start_time, tvb, offset, 4, ENC_BIG_ENDIAN);
1970 offset += 4;
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);
1974 offset += 1;
1976 proto_tree_add_item(tree, hf_wimaxmacphy_zone_padding, tvb, offset, 3, ENC_NA);
1977 offset += 3;
1979 /* -----------------------------------------------------------------------
1980 * zone descriptors
1981 * -----------------------------------------------------------------------
1984 for (zone = 0; zone < zone_descriptor_count; ++zone)
1986 proto_item *item;
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);
2009 offset += 2;
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);
2025 offset += 1;
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);
2029 /* offset += 1; */
2031 return 2;
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);
2037 offset += 1;
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);
2041 offset += 1;
2043 proto_tree_add_item(tree, hf_wimaxmacphy_prim_reserved1, tvb, offset, 1, ENC_BIG_ENDIAN);
2044 offset += 1;
2046 proto_tree_add_item(tree, hf_wimaxmacphy_prim_initial_frame_number, tvb, offset, 3, ENC_BIG_ENDIAN);
2047 /* offset += 3; */
2049 return 6;
2052 static unsigned dissect_wimaxmacphy_phy_txsdu_request(tvbuff_t *tvb, unsigned offset, packet_info *pinfo _U_, proto_tree *tree)
2054 unsigned length;
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);
2059 offset += 2;
2061 length = tvb_reported_length_remaining(tvb, offset);
2062 proto_tree_add_item(tree, hf_wimaxmacphy_prim_phy_sdu, tvb, offset, length, ENC_NA);
2064 return length + 2;
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);
2072 offset += 2;
2074 proto_tree_add_item(tree, hf_wimaxmacphy_prim_reserved5, tvb, offset, 2, ENC_BIG_ENDIAN);
2075 offset += 2;
2077 proto_tree_add_item(tree, hf_wimaxmacphy_prim_status, tvb, offset, 1, ENC_BIG_ENDIAN);
2078 offset += 1;
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);
2082 /* offset += 1; */
2084 return 6;
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);
2090 offset += 1;
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);
2094 offset += 1;
2096 proto_tree_add_item(tree, hf_wimaxmacphy_prim_requested_aas_calibration_zone_size, tvb, offset, 1, ENC_BIG_ENDIAN);
2097 offset += 1;
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);
2101 offset += 1;
2103 proto_tree_add_item(tree, hf_wimaxmacphy_prim_reserved5, tvb, offset, 2, ENC_BIG_ENDIAN);
2104 /* offset += 2; */
2106 return 6;
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);
2116 offset += 2;
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);
2133 offset += 1;
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);
2137 /* offset += 1; */
2139 return 2;
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);
2145 offset += 1;
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);
2149 /* offset += 1; */
2151 return 2;
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);
2162 offset += 2;
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);
2166 offset += 4;
2168 proto_tree_add_item(tree, hf_wimaxmacphy_prim_rssi_per_subcarrier_level, tvb, offset, 1, ENC_BIG_ENDIAN);
2169 offset += 1;
2171 proto_tree_add_item(tree, hf_wimaxmacphy_prim_cinr, tvb, offset, 1, ENC_BIG_ENDIAN);
2172 offset += 1;
2174 proto_tree_add_item(tree, hf_wimaxmacphy_prim_reserved1, tvb, offset, 1, ENC_BIG_ENDIAN);
2175 offset += 1;
2177 proto_tree_add_item(tree, hf_wimaxmacphy_prim_power_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
2178 offset += 1;
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);
2182 offset += 1;
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);
2188 offset += 1;
2190 proto_tree_add_item(tree, hf_wimaxmacphy_prim_aas_handle, tvb, offset, 2, ENC_BIG_ENDIAN);
2191 offset += 2;
2193 proto_tree_add_item(tree, hf_wimaxmacphy_prim_time_deviation, tvb, offset, 4, ENC_BIG_ENDIAN);
2194 offset += 4;
2196 proto_tree_add_item(tree, hf_wimaxmacphy_prim_frequency_deviation, tvb, offset, 4, ENC_BIG_ENDIAN);
2197 offset += 4;
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);
2205 offset += length;
2206 break;
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);
2213 offset += 2;
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);
2219 offset += 1;
2221 proto_tree_add_item(subtree, hf_wimaxmacphy_prim_harq_ack_reserved2, tvb, offset, 1, ENC_NA);
2222 offset += 1;
2223 break;
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);
2230 offset += 2;
2232 proto_tree_add_item(subtree, hf_wimaxmacphy_prim_fast_cqich_id, tvb, offset, 2, ENC_BIG_ENDIAN);
2233 offset += 2;
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);
2245 offset += 1;
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);
2250 offset += 2;
2252 proto_tree_add_item(subtree, hf_wimaxmacphy_prim_fast_feedback_value, tvb, offset, 1, ENC_BIG_ENDIAN);
2253 offset += 1;
2254 break;
2256 default:
2257 break;
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);
2268 offset += 1;
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);
2272 offset += 1;
2274 proto_tree_add_item(tree, hf_wimaxmacphy_prim_number_of_affected_ss, tvb, offset, 1, ENC_BIG_ENDIAN);
2275 offset += 1;
2277 proto_tree_add_item(tree, hf_wimaxmacphy_prim_reserved1, tvb, offset, 1, ENC_BIG_ENDIAN);
2278 offset += 1;
2282 /* list of ISSIDs (at least one required) */
2283 proto_tree_add_item(tree, hf_wimaxmacphy_prim_issid, tvb, offset, 2, ENC_BIG_ENDIAN);
2284 offset += 2;
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);
2296 offset += 2;
2298 proto_tree_add_item(tree, hf_wimaxmacphy_prim_cdma_code, tvb, offset, 1, ENC_BIG_ENDIAN);
2299 offset += 1;
2301 proto_tree_add_item(tree, hf_wimaxmacphy_prim_cdma_symbol, tvb, offset, 1, ENC_BIG_ENDIAN);
2302 offset += 1;
2304 proto_tree_add_item(tree, hf_wimaxmacphy_prim_reserved1, tvb, offset, 1, ENC_BIG_ENDIAN);
2305 offset += 1;
2307 proto_tree_add_item(tree, hf_wimaxmacphy_prim_cdma_subchannel, tvb, offset, 1, ENC_BIG_ENDIAN);
2308 offset += 1;
2310 proto_tree_add_item(tree, hf_wimaxmacphy_prim_rssi_per_subcarrier_level, tvb, offset, 1, ENC_BIG_ENDIAN);
2311 offset += 1;
2313 proto_tree_add_item(tree, hf_wimaxmacphy_prim_cinr, tvb, offset, 1, ENC_BIG_ENDIAN);
2314 offset += 1;
2316 proto_tree_add_item(tree, hf_wimaxmacphy_prim_reserved3, tvb, offset, 1, ENC_NA);
2317 offset += 1;
2319 proto_tree_add_item(tree, hf_wimaxmacphy_prim_power_offset, tvb, offset, 1, ENC_BIG_ENDIAN);
2320 offset += 1;
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);
2324 offset += 2;
2326 proto_tree_add_item(tree, hf_wimaxmacphy_prim_aas_handle, tvb, offset, 2, ENC_BIG_ENDIAN);
2327 offset += 2;
2329 proto_tree_add_item(tree, hf_wimaxmacphy_prim_time_deviation, tvb, offset, 4, ENC_BIG_ENDIAN);
2330 offset += 4;
2332 proto_tree_add_item(tree, hf_wimaxmacphy_prim_frequency_deviation, tvb, offset, 4, ENC_BIG_ENDIAN);
2333 offset += 4;
2335 return offset - start_offset;
2338 static int
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;
2343 proto_item *item;
2345 unsigned offset = 0;
2346 uint8_t message_type;
2348 /* Ensure minimum size */
2349 if (tvb_reported_length(tvb) < WIMAXMACPHY_HEADER_SIZE)
2350 return 0;
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);
2362 offset += 1;
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);
2369 #if 0
2370 col_set_str(pinfo->cinfo, COL_INFO, val_to_str_ext_const(message_type, &wimaxmacphy_message_type_vals_ext, "Unknown"));
2371 #endif
2372 col_set_str(pinfo->cinfo, COL_INFO, val_to_str_const(message_type, wimaxmacphy_message_type_vals, "Unknown"));
2373 offset += 1;
2375 switch(message_type)
2377 case WIMAXMACPHY_PHY_TXSTART_REQUEST:
2378 offset += dissect_wimaxmacphy_phy_txstart_request(
2379 tvb, offset, pinfo, primitive_tree);
2380 break;
2381 case WIMAXMACPHY_PHY_TXSTART_CONFIRMATION:
2382 offset += dissect_wimaxmacphy_phy_txstart_confirmation(
2383 tvb, offset, pinfo, primitive_tree);
2384 break;
2385 case WIMAXMACPHY_PHY_TXSTART_INDICATION:
2386 offset += dissect_wimaxmacphy_phy_txstart_indication(
2387 tvb, offset, pinfo, primitive_tree);
2388 break;
2389 case WIMAXMACPHY_PHY_TXSDU_REQUEST:
2390 offset += dissect_wimaxmacphy_phy_txsdu_request(
2391 tvb, offset, pinfo, primitive_tree);
2392 break;
2393 case WIMAXMACPHY_PHY_TXSDU_CONFIRMATION:
2394 offset += dissect_wimaxmacphy_phy_txsdu_confirmation(
2395 tvb, offset, pinfo, primitive_tree);
2396 break;
2397 case WIMAXMACPHY_PHY_TXEND_INDICATION:
2398 offset += dissect_wimaxmacphy_phy_txend_indication(
2399 tvb, offset, pinfo, primitive_tree);
2400 break;
2401 case WIMAXMACPHY_PHY_RXSTART_REQUEST:
2402 offset += dissect_wimaxmacphy_phy_rxstart_request(
2403 tvb, offset, pinfo, primitive_tree);
2404 break;
2405 case WIMAXMACPHY_PHY_RXSTART_CONFIRMATION:
2406 offset += dissect_wimaxmacphy_phy_rxstart_confirmation(
2407 tvb, offset, pinfo, primitive_tree);
2408 break;
2409 case WIMAXMACPHY_PHY_RXSTART_INDICATION:
2410 offset += dissect_wimaxmacphy_phy_rxstart_indication(
2411 tvb, offset, pinfo, primitive_tree);
2412 break;
2413 case WIMAXMACPHY_PHY_RXSDU_INDICATION:
2414 offset += dissect_wimaxmacphy_phy_rxsdu_indication(
2415 tvb, offset, pinfo, primitive_tree);
2416 break;
2417 case WIMAXMACPHY_PHY_RXEND_INDICATION:
2418 offset += dissect_wimaxmacphy_phy_rxend_indication(
2419 tvb, offset, pinfo, primitive_tree);
2420 break;
2421 case WIMAXMACPHY_PHY_RXCDMA_INDICATION:
2422 offset += dissect_wimaxmacphy_phy_rxcdma_indication(
2423 tvb, offset, pinfo, primitive_tree);
2424 break;
2425 default:
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);
2429 break;
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);
2444 void
2445 proto_register_wimaxmacphy(void)
2447 static hf_register_info hf[] = {
2449 &hf_wimaxmacphy_hdr_phy_entity_id,
2451 "PHY entity ID",
2452 "wimaxmacphy.hdr_phy_entity_id",
2453 FT_UINT8,
2454 BASE_DEC,
2455 NULL,
2456 0xfc,
2457 NULL,
2458 HFILL
2462 &hf_wimaxmacphy_hdr_message_segmentation,
2464 "Message Segmentation",
2465 "wimaxmacphy.hdr_message_segmentation",
2466 FT_UINT8,
2467 BASE_HEX,
2468 VALS(wimaxmacphy_message_segmentation_vals),
2469 0x03,
2470 NULL,
2471 HFILL
2475 &hf_wimaxmacphy_hdr_message_type,
2477 "Message Type",
2478 "wimaxmacphy.hdr_message_type",
2479 FT_UINT8,
2480 #if 0
2481 BASE_HEX | BASE_EXT_STRING,
2482 &wimaxmacphy_message_type_vals_ext,
2483 #endif
2484 BASE_HEX,
2485 VALS(wimaxmacphy_message_type_vals),
2486 0x0,
2487 NULL,
2488 HFILL
2492 &hf_wimaxmacphy_unknown,
2494 "Unknown(!)",
2495 "wimaxmacphy.unknown_primitive",
2496 FT_BYTES,
2497 BASE_NONE,
2498 NULL,
2499 0x0,
2500 NULL,
2501 HFILL
2505 &hf_wimaxmacphy_prim_length_of_txvector,
2507 "Length of TXVECTOR",
2508 "wimaxmacphy.prim_length_of_txvector",
2509 FT_UINT16,
2510 BASE_DEC,
2511 NULL,
2512 0x0,
2513 NULL,
2514 HFILL
2518 &hf_wimaxmacphy_prim_length_of_rxvector,
2520 "Length of RXVECTOR",
2521 "wimaxmacphy.prim_length_of_rxvector",
2522 FT_UINT16,
2523 BASE_DEC,
2524 NULL,
2525 0x0,
2526 NULL,
2527 HFILL
2531 &hf_wimaxmacphy_prim_status,
2533 "Status",
2534 "wimaxmacphy.prim_status",
2535 FT_UINT8,
2536 BASE_DEC,
2537 VALS(wimaxmacphy_prim_status_vals),
2538 0x0,
2539 NULL,
2540 HFILL
2544 &hf_wimaxmacphy_prim_txstart_indication_status,
2546 "Status",
2547 "wimaxmacphy.prim_status",
2548 FT_UINT8,
2549 BASE_DEC,
2550 VALS(wimaxmacphy_prim_txstart_indication_status_vals),
2551 0x0,
2552 NULL,
2553 HFILL
2557 &hf_wimaxmacphy_prim_reserved1,
2559 "Reserved",
2560 "wimaxmacphy.prim_reserved1",
2561 FT_UINT8,
2562 BASE_HEX,
2563 NULL,
2564 0x0,
2565 NULL,
2566 HFILL
2570 &hf_wimaxmacphy_prim_reserved2,
2572 "Reserved",
2573 "wimaxmacphy.prim_reserved2",
2574 FT_UINT8,
2575 BASE_HEX,
2576 NULL,
2577 0xF0,
2578 NULL,
2579 HFILL
2583 &hf_wimaxmacphy_prim_reserved3,
2585 "Reserved",
2586 "wimaxmacphy.prim_reserved3",
2587 FT_BYTES,
2588 BASE_NONE,
2589 NULL,
2590 0x0,
2591 NULL,
2592 HFILL
2596 &hf_wimaxmacphy_prim_reserved4,
2598 "Reserved",
2599 "wimaxmacphy.prim_reserved4",
2600 FT_UINT16,
2601 BASE_HEX,
2602 NULL,
2603 0x0FFF,
2604 NULL,
2605 HFILL
2609 &hf_wimaxmacphy_prim_reserved5,
2611 "Reserved",
2612 "wimaxmacphy.prim_reserved5",
2613 FT_UINT16,
2614 BASE_HEX,
2615 NULL,
2617 NULL,
2618 HFILL
2622 &hf_wimaxmacphy_prim_next_frame_number,
2624 "Next Frame Number (lsb)",
2625 "wimaxmacphy.prim_next_frame_number",
2626 FT_UINT8,
2627 BASE_DEC,
2628 NULL,
2629 0x0,
2630 NULL,
2631 HFILL
2635 &hf_wimaxmacphy_prim_extended_frame_number,
2637 "Extended frame number",
2638 "wimaxmacphy.prim_extended_frame_number",
2639 FT_UINT8,
2640 BASE_DEC,
2641 NULL,
2642 0xf0,
2643 NULL,
2644 HFILL
2648 &hf_wimaxmacphy_prim_current_frame_number_lsn,
2650 "Current Frame Number (lsb)",
2651 "wimaxmacphy.prim_current_frame_number",
2652 FT_UINT8,
2653 BASE_DEC,
2654 NULL,
2655 0x0f,
2656 NULL,
2657 HFILL
2661 &hf_wimaxmacphy_prim_initial_frame_number,
2663 "Initial Frame Number (from PHY)",
2664 "wimaxmacphy.prim_initial_frame_number",
2665 FT_UINT24,
2666 BASE_DEC,
2667 NULL,
2668 0x0,
2669 NULL,
2670 HFILL
2674 &hf_wimaxmacphy_prim_dl_zone_number,
2676 "DL zone number",
2677 "wimaxmacphy.prim_dl_zone_number",
2678 FT_UINT16,
2679 BASE_DEC,
2680 NULL,
2681 0xe000,
2682 NULL,
2683 HFILL
2687 &hf_wimaxmacphy_prim_sub_burst_burst_split_point,
2689 "Sub-burst/burst split point",
2690 "wimaxmacphy.prim_sub_burst_burst_split_point",
2691 FT_UINT16,
2692 BASE_DEC,
2693 NULL,
2694 0x1c00,
2695 NULL,
2696 HFILL
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",
2704 FT_UINT16,
2705 BASE_DEC,
2706 NULL,
2707 0x03ff,
2708 NULL,
2709 HFILL
2713 &hf_wimaxmacphy_prim_phy_sdu,
2715 "PHY SDU",
2716 "wimaxmacphy.prim_phy_sdu",
2717 FT_BYTES,
2718 BASE_NONE,
2719 NULL,
2720 0x0,
2721 NULL,
2722 HFILL
2726 &hf_wimaxmacphy_prim_phy_request,
2728 "PHY request (LW 1)",
2729 "wimaxmacphy.prim_phy_request",
2730 FT_UINT8,
2731 BASE_HEX,
2732 NULL,
2733 0xf0,
2734 NULL,
2735 HFILL
2739 &hf_wimaxmacphy_prim_requested_aas_calibration_zone_size,
2741 "Requested AAS Calibration Zone size",
2742 "wimaxmacphy.prim_requested_aas_calibration_zone_size",
2743 FT_UINT8,
2744 BASE_DEC,
2745 NULL,
2746 0x0,
2747 NULL,
2748 HFILL
2752 &hf_wimaxmacphy_prim_requested_aas_calibration_zone_alloc,
2754 "Requested AAS Calibration Zone allocation deadline",
2755 "wimaxmacphy.prim_requested_aas_calibration_zone_alloc",
2756 FT_UINT8,
2757 BASE_DEC,
2758 NULL,
2759 0xf0,
2760 NULL,
2761 HFILL
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",
2769 FT_UINT8,
2770 BASE_DEC,
2771 NULL,
2772 0x0f,
2773 NULL,
2774 HFILL
2778 &hf_wimaxmacphy_prim_frame_number,
2780 "Frame Number (lsb)",
2781 "wimaxmacphy.prim_frame_number",
2782 FT_UINT8,
2783 BASE_DEC,
2784 NULL,
2785 0x0f,
2786 NULL,
2787 HFILL
2791 &hf_wimaxmacphy_prim_issid,
2793 "ISSID",
2794 "wimaxmacphy.prim_issid",
2795 FT_INT16,
2796 BASE_DEC,
2797 NULL,
2798 0x0,
2799 NULL,
2800 HFILL
2804 &hf_wimaxmacphy_prim_integrity,
2806 "Integrity",
2807 "wimaxmacphy.prim_integrity",
2808 FT_UINT32,
2809 BASE_DEC,
2810 VALS(wimaxmacphy_prim_integrity_vals),
2811 0x80000000,
2812 NULL,
2813 HFILL
2817 &hf_wimaxmacphy_prim_number_of_bytes_received,
2819 "Number of bytes received",
2820 "wimaxmacphy.prim_number_of_bytes_received",
2821 FT_UINT32,
2822 BASE_DEC,
2823 NULL,
2824 0x7fffffff,
2825 NULL,
2826 HFILL
2830 &hf_wimaxmacphy_prim_rssi_per_subcarrier_level,
2832 "RSSI per subcarrier level",
2833 "wimaxmacphy.prim_rssi_per_subcarrier_level",
2834 FT_UINT8,
2835 BASE_DEC,
2836 NULL,
2837 0x0,
2838 NULL,
2839 HFILL
2843 &hf_wimaxmacphy_prim_cinr,
2845 "CINR",
2846 "wimaxmacphy.prim_cinr",
2847 FT_UINT8,
2848 BASE_DEC,
2849 NULL,
2850 0x0,
2851 NULL,
2852 HFILL
2856 &hf_wimaxmacphy_prim_power_offset,
2858 "Power Offset",
2859 "wimaxmacphy.prim_power_offset",
2860 FT_UINT8,
2861 BASE_DEC,
2862 NULL,
2863 0x0,
2864 NULL,
2865 HFILL
2869 &hf_wimaxmacphy_prim_current_frame_number_msn,
2871 "Current Frame Number (lsb)",
2872 "wimaxmacphy.prim_current_frame_number",
2873 FT_UINT16,
2874 BASE_DEC,
2875 NULL,
2876 0x00f0,
2877 NULL,
2878 HFILL
2882 &hf_wimaxmacphy_prim_acid_for_harq_data_bursts,
2884 "ACID for HARQ data bursts",
2885 "wimaxmacphy.prim_acid_for_harq_data_bursts",
2886 FT_UINT16,
2887 BASE_DEC,
2888 NULL,
2889 0x000f,
2890 NULL,
2891 HFILL
2895 &hf_wimaxmacphy_prim_indication_type,
2897 "Indication Type",
2898 "wimaxmacphy.prim_indication_type",
2899 FT_UINT8,
2900 BASE_DEC,
2901 VALS(wimaxmacphy_prim_indication_type_vals),
2902 0xf0,
2903 NULL,
2904 HFILL
2908 &hf_wimaxmacphy_prim_zone_permutation_type,
2910 "Zone Permutation Type",
2911 "wimaxmacphy.prim_zone_permutation_type",
2912 FT_UINT8,
2913 BASE_HEX,
2914 VALS(wimaxmacphy_prim_zone_permutation_type_vals),
2915 0x0e,
2916 NULL,
2917 HFILL
2921 &hf_wimaxmacphy_prim_update_aas_handle_in_mac,
2923 "Update AAS handle in MAC",
2924 "wimaxmacphy.prim_update_aas_handle_in_mac",
2925 FT_UINT8,
2926 BASE_HEX,
2927 NULL,
2928 0x1,
2929 NULL,
2930 HFILL
2934 &hf_wimaxmacphy_prim_aas_handle,
2936 "AAS Handle",
2937 "wimaxmacphy.prim_aas_handle",
2938 FT_UINT16,
2939 BASE_HEX,
2940 NULL,
2941 0x0,
2942 NULL,
2943 HFILL
2947 &hf_wimaxmacphy_prim_time_deviation,
2949 "Time deviation in units of 1/Fs",
2950 "wimaxmacphy.prim_time_deviation",
2951 FT_INT32,
2952 BASE_DEC,
2953 NULL,
2954 0x0,
2955 NULL,
2956 HFILL
2960 &hf_wimaxmacphy_prim_frequency_deviation,
2962 "Frequency deviation in Hz",
2963 "wimaxmacphy.prim_frequency_deviation",
2964 FT_INT32,
2965 BASE_DEC,
2966 NULL,
2967 0x0,
2968 NULL,
2969 HFILL
2973 &hf_wimaxmacphy_prim_harq_ack_issid,
2975 "ISSID",
2976 "wimaxmacphy.prim_harq_ack_issid",
2977 FT_INT16,
2978 BASE_DEC,
2979 NULL,
2980 0x0,
2981 NULL,
2982 HFILL
2986 &hf_wimaxmacphy_prim_harq_ack_acid,
2988 "ACID",
2989 "wimaxmacphy.prim_harq_ack_acid",
2990 FT_UINT8,
2991 BASE_DEC,
2992 NULL,
2993 0xf0,
2994 NULL,
2995 HFILL
2999 &hf_wimaxmacphy_prim_harq_ack_reserved1,
3001 "Reserved",
3002 "wimaxmacphy.prim_harq_ack_reserved1",
3003 FT_UINT8,
3004 BASE_HEX,
3005 NULL,
3006 0x0c,
3007 NULL,
3008 HFILL
3012 &hf_wimaxmacphy_prim_harq_ack_ack_valid,
3014 "ACK Valid",
3015 "wimaxmacphy.prim_harq_ack_ack_valid",
3016 FT_UINT8,
3017 BASE_DEC,
3018 VALS(wimaxmacphy_prim_harq_ack_ack_valid_vals),
3019 0x2,
3020 NULL,
3021 HFILL
3025 &hf_wimaxmacphy_prim_harq_ack_unnamed,
3027 "Unnamed",
3028 "wimaxmacphy.prim_harq_ack_unnamed",
3029 FT_UINT8,
3030 BASE_DEC,
3031 VALS(wimaxmacphy_prim_harq_ack_unnamed_vals),
3032 0x1,
3033 NULL,
3034 HFILL
3038 &hf_wimaxmacphy_prim_harq_ack_reserved2,
3040 "Reserved",
3041 "wimaxmacphy.prim_harq_ack_reserved2",
3042 FT_BYTES,
3043 BASE_NONE,
3044 NULL,
3045 0x0,
3046 NULL,
3047 HFILL
3051 &hf_wimaxmacphy_prim_fast_issid,
3053 "ISSID",
3054 "wimaxmacphy.prim_fast_issid",
3055 FT_INT16,
3056 BASE_DEC,
3057 NULL,
3058 0x0,
3059 NULL,
3060 HFILL
3064 &hf_wimaxmacphy_prim_fast_cqich_id,
3066 "CQICH_ID",
3067 "wimaxmacphy.prim_fast_cqich_id",
3068 FT_UINT16,
3069 BASE_DEC,
3070 NULL,
3071 0x0,
3072 NULL,
3073 HFILL
3077 &hf_wimaxmacphy_prim_fast_feedback_type_coding,
3079 "Feedback type coding",
3080 "wimaxmacphy.prim_fast_type_coding",
3081 FT_UINT8,
3082 BASE_HEX,
3083 NULL,
3084 0x0,
3085 NULL,
3086 HFILL
3090 &hf_wimaxmacphy_prim_fast_feedback_type_coding_bit0,
3092 "3 bit-MIMO Fast-feedback",
3093 "wimaxmacphy.prim_fast_type_coding.bit0",
3094 FT_BOOLEAN,
3096 TFS(&set_notset),
3097 0x01,
3098 NULL,
3099 HFILL
3103 &hf_wimaxmacphy_prim_fast_feedback_type_coding_bit1,
3105 "Enhanced FAST_FEEDBACK",
3106 "wimaxmacphy.prim_fast_type_coding.bit1",
3107 FT_BOOLEAN,
3109 TFS(&set_notset),
3110 0x02,
3111 NULL,
3112 HFILL
3116 &hf_wimaxmacphy_prim_fast_feedback_type_coding_bit2,
3118 "Reserved",
3119 "wimaxmacphy.prim_fast_type_coding.bit2",
3120 FT_BOOLEAN,
3122 TFS(&set_notset),
3123 0x04,
3124 NULL,
3125 HFILL
3129 &hf_wimaxmacphy_prim_fast_feedback_type_coding_bit3,
3131 "Reserved",
3132 "wimaxmacphy.prim_fast_type_coding.bit3",
3133 FT_BOOLEAN,
3135 TFS(&set_notset),
3136 0x08,
3137 NULL,
3138 HFILL
3142 &hf_wimaxmacphy_prim_fast_feedback_type_coding_bit4,
3144 "UEP fast-feedback",
3145 "wimaxmacphy.prim_fast_type_coding.bit4",
3146 FT_BOOLEAN,
3148 TFS(&set_notset),
3149 0x10,
3150 NULL,
3151 HFILL
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",
3159 FT_BOOLEAN,
3161 TFS(&set_notset),
3162 0x20,
3163 NULL,
3164 HFILL
3168 &hf_wimaxmacphy_prim_fast_feedback_type_coding_bit6,
3170 "Primary/Secondary FAST_FEEDBACK",
3171 "wimaxmacphy.prim_fast_type_coding.bit6",
3172 FT_BOOLEAN,
3174 TFS(&set_notset),
3175 0x40,
3176 NULL,
3177 HFILL
3181 &hf_wimaxmacphy_prim_fast_feedback_type_coding_bit7,
3183 "DIUC-CQI Fast-feedback",
3184 "wimaxmacphy.prim_fast_type_coding.bit7",
3185 FT_BOOLEAN,
3187 TFS(&set_notset),
3188 0x80,
3189 NULL,
3190 HFILL
3194 &hf_wimaxmacphy_prim_fast_feedback_valid,
3196 "Feedback Valid",
3197 "wimaxmacphy.prim_fast_feedback_valid",
3198 FT_UINT16,
3199 BASE_DEC,
3200 VALS(wimaxmacphy_prim_fast_feedback_valid_vals),
3201 0x8000,
3202 NULL,
3203 HFILL
3207 &hf_wimaxmacphy_prim_fast_feedback_sub_type,
3209 "Feedback sub-type",
3210 "wimaxmacphy.prim_fast_feedback_sub_type",
3211 FT_UINT16,
3212 BASE_DEC,
3213 VALS(wimaxmacphy_prim_fast_feedback_sub_type_vals),
3214 0x7000,
3215 NULL,
3216 HFILL
3220 &hf_wimaxmacphy_prim_fast_reserved,
3222 "Reserved",
3223 "wimaxmacphy.prim_fast_reserved",
3224 FT_BYTES,
3225 BASE_NONE,
3226 NULL,
3227 0x0,
3228 NULL,
3229 HFILL
3233 &hf_wimaxmacphy_prim_fast_feedback_value,
3235 "Feedback value",
3236 "wimaxmacphy.prim_fast_feedback_value",
3237 FT_UINT8,
3238 BASE_DEC,
3239 NULL,
3240 0x0,
3241 NULL,
3242 HFILL
3246 &hf_wimaxmacphy_prim_phy_aas_report_present,
3248 "PHY AAS report present",
3249 "wimaxmacphy.prim_phy_aas_report_present",
3250 FT_UINT8,
3251 BASE_HEX,
3252 VALS(wimaxmacphy_prim_phy_aas_report_present_vals),
3253 0xf0,
3254 NULL,
3255 HFILL
3259 &hf_wimaxmacphy_prim_number_of_affected_ss,
3261 "Number of affected SS",
3262 "wimaxmacphy.prim_number_of_affected_ss",
3263 FT_UINT8,
3264 BASE_DEC,
3265 NULL,
3266 0x0,
3267 NULL,
3268 HFILL
3272 &hf_wimaxmacphy_prim_zonexid,
3274 "ZoneXID",
3275 "wimaxmacphy.prim_zonexid",
3276 FT_UINT16,
3277 BASE_DEC,
3278 NULL,
3279 0x0,
3280 NULL,
3281 HFILL
3285 &hf_wimaxmacphy_prim_cdma_code,
3287 "CDMA code",
3288 "wimaxmacphy.prim_cdma_code",
3289 FT_UINT8,
3290 BASE_DEC,
3291 NULL,
3292 0x0,
3293 NULL,
3294 HFILL
3298 &hf_wimaxmacphy_prim_cdma_symbol,
3300 "CDMA symbol",
3301 "wimaxmacphy.prim_cdma_symbol",
3302 FT_UINT8,
3303 BASE_DEC,
3304 NULL,
3305 0x0,
3306 NULL,
3307 HFILL
3311 &hf_wimaxmacphy_prim_cdma_subchannel,
3313 "CDMA subchannel",
3314 "wimaxmacphy.prim_cdma_subchannel",
3315 FT_UINT8,
3316 BASE_DEC,
3317 NULL,
3318 0x0,
3319 NULL,
3320 HFILL
3324 &hf_wimaxmacphy_subframe_subframe_type,
3326 "Subframe Type",
3327 "wimaxmacphy.subframe_subframe_type",
3328 FT_UINT8,
3329 BASE_HEX,
3330 VALS(wimaxmacphy_subframe_type_vals),
3331 0x0,
3332 NULL,
3333 HFILL
3337 &hf_wimaxmacphy_subframe_frame_number,
3339 "Frame Number",
3340 "wimaxmacphy.subframe_frame_number",
3341 FT_UINT8,
3342 BASE_DEC,
3343 NULL,
3344 0x0,
3345 NULL,
3346 HFILL
3350 &hf_wimaxmacphy_subframe_downlink_reserved1,
3352 "Reserved",
3353 "wimaxmacphy.subframe_downlink_reserved1",
3354 FT_UINT8,
3355 BASE_DEC,
3356 NULL,
3357 0x0,
3358 NULL,
3359 HFILL
3363 &hf_wimaxmacphy_subframe_phy_sap_version_number,
3365 "PHY SAP version number",
3366 "wimaxmacphy.subframe_phy_sap_version_number",
3367 FT_UINT8,
3368 BASE_DEC,
3369 NULL,
3370 0x0,
3371 NULL,
3372 HFILL
3376 &hf_wimaxmacphy_subframe_downlink_reserved2,
3378 "Downlink reserved",
3379 "wimaxmacphy.subframe_downlink_reserved2",
3380 FT_UINT32,
3381 BASE_HEX,
3382 NULL,
3383 0x0,
3384 NULL,
3385 HFILL
3389 &hf_wimaxmacphy_subframe_allocation_start_time,
3391 "Allocation start time",
3392 "wimaxmacphy.subframe_allocation_start_time",
3393 FT_UINT32,
3394 BASE_DEC,
3395 NULL,
3396 0x0,
3397 NULL,
3398 HFILL
3402 &hf_wimaxmacphy_number_of_zone_descriptors,
3404 "Number of Zone Descriptors",
3405 "wimaxmacphy.number_of_zone_descriptors",
3406 FT_UINT24,
3407 BASE_DEC,
3408 NULL,
3409 0x0,
3410 NULL,
3411 HFILL
3415 &hf_wimaxmacphy_zone_padding,
3417 "Padding",
3418 "wimaxmacphy.zone_padding",
3419 FT_BYTES,
3420 BASE_NONE,
3421 NULL,
3422 0x0,
3423 NULL,
3424 HFILL
3428 &hf_wimaxmacphy_dl_zone_type,
3430 "Zone Type",
3431 "wimaxmacphy.zone_type",
3432 FT_UINT8,
3433 BASE_HEX,
3434 VALS(wimaxmacphy_dl_zone_type_vals),
3435 0x0,
3436 NULL,
3437 HFILL
3441 &hf_wimaxmacphy_ul_zone_type,
3443 "Zone Type",
3444 "wimaxmacphy.zone_type",
3445 FT_UINT8,
3446 BASE_HEX,
3447 VALS(wimaxmacphy_ul_zone_type_vals),
3448 0x0,
3449 NULL,
3450 HFILL
3454 &hf_wimaxmacphy_zone_number,
3456 "Zone Number",
3457 "wimaxmacphy.zone_number",
3458 FT_UINT8,
3459 BASE_DEC,
3460 NULL,
3461 0x0,
3462 NULL,
3463 HFILL
3467 &hf_wimaxmacphy_zone_start_symbol_offset,
3469 "Start Symbol Offset",
3470 "wimaxmacphy.zone_start_symbol_offset",
3471 FT_UINT8,
3472 BASE_DEC,
3473 NULL,
3474 0x0,
3475 NULL,
3476 HFILL
3480 &hf_wimaxmacphy_zone_end_symbol_offset,
3482 "End Symbol Offset",
3483 "wimaxmacphy.zone_end_symbol_offset",
3484 FT_UINT8,
3485 BASE_DEC,
3486 NULL,
3487 0x0,
3488 NULL,
3489 HFILL
3493 &hf_wimaxmacphy_dl_zone_permutation_type,
3495 "Permutation Type",
3496 "wimaxmacphy.zone_permutation_type",
3497 FT_UINT8,
3498 BASE_HEX,
3499 VALS(wimaxmacphy_dl_zone_permutation_type_vals),
3500 0x0,
3501 NULL,
3502 HFILL
3506 &hf_wimaxmacphy_ul_zone_permutation_type,
3508 "Permutation Type",
3509 "wimaxmacphy.zone_permutation_type",
3510 FT_UINT8,
3511 BASE_HEX,
3512 VALS(wimaxmacphy_ul_zone_permutation_type_vals),
3513 0x0,
3514 NULL,
3515 HFILL
3519 &hf_wimaxmacphy_dl_zone_use_all_subchannels_indicator,
3521 "Use all subchannels indicator",
3522 "wimaxmacphy.zone_use_all_subchannels_indicator",
3523 FT_UINT8,
3524 BASE_DEC,
3525 VALS(wimaxmacphy_zone_use_all_subchannels_indicator_vals),
3526 0x0,
3527 NULL,
3528 HFILL
3532 &hf_wimaxmacphy_ul_zone_use_all_subchannels_indicator,
3534 "Use all subchannels indicator",
3535 "wimaxmacphy.zone_use_all_subchannels_indicator",
3536 FT_UINT8,
3537 BASE_DEC,
3538 VALS(wimaxmacphy_zone_use_all_subchannels_indicator_vals),
3539 0xf0,
3540 NULL,
3541 HFILL
3545 &hf_wimaxmacphy_ul_zone_disable_pusc_subchannel_rotation,
3547 "Disable PUSC subchannel rotation",
3548 "wimaxmacphy.zone_disable_pusc_subchannel_rotation",
3549 FT_UINT8,
3550 BASE_DEC,
3551 VALS(wimaxmacphy_ul_zone_disable_pusc_subchannel_rotation_vals),
3552 0x0f,
3553 NULL,
3554 HFILL
3558 &hf_wimaxmacphy_zone_dl_perm_base,
3560 "DL_PermBase",
3561 "wimaxmacphy.zone_dl_perm_base",
3562 FT_UINT8,
3563 BASE_DEC,
3564 NULL,
3565 0x0,
3566 NULL,
3567 HFILL
3571 &hf_wimaxmacphy_zone_ul_perm_base,
3573 "UL_PermBase",
3574 "wimaxmacphy.zone_ul_perm_base",
3575 FT_UINT8,
3576 BASE_DEC,
3577 NULL,
3578 0x0,
3579 NULL,
3580 HFILL
3584 &hf_wimaxmacphy_zone_prbs_id,
3586 "PRBS_ID",
3587 "wimaxmacphy.zone_prbs_id",
3588 FT_UINT8,
3589 BASE_DEC,
3590 NULL,
3591 0x0,
3592 NULL,
3593 HFILL
3597 &hf_wimaxmacphy_zone_dedicated_pilots,
3599 "Dedicated pilots",
3600 "wimaxmacphy.zone_dedicated_pilots",
3601 FT_UINT8,
3602 BASE_DEC,
3603 VALS(wimaxmacphy_zone_dedicated_pilots_vals),
3604 0x0,
3605 NULL,
3606 HFILL
3610 &hf_wimaxmacphy_zone_agc_range_extension,
3612 "Rx AGC range extension",
3613 "wimaxmacphy.zone_agc_range_extension",
3614 FT_UINT8,
3615 BASE_DEC,
3616 VALS(wimaxmacphy_zone_agc_range_extension_vals),
3617 0x0,
3618 NULL,
3619 HFILL
3623 &hf_wimaxmacphy_zone_reserved,
3625 "Reserved",
3626 "wimaxmacphy.zone_reserved",
3627 FT_BYTES,
3628 BASE_NONE,
3629 NULL,
3630 0x0,
3631 NULL,
3632 HFILL
3636 &hf_wimaxmacphy_zone_stc_type,
3638 "STC type",
3639 "wimaxmacphy.zone_stc_type",
3640 FT_UINT8,
3641 BASE_HEX,
3642 VALS(wimaxmacphy_zone_stc_type_vals),
3643 0x0,
3644 NULL,
3645 HFILL
3649 &hf_wimaxmacphy_zone_matrix_indicator,
3651 "Matrix Indicator",
3652 "wimaxmacphy.zone_matrix_indicator",
3653 FT_UINT8,
3654 BASE_HEX,
3655 VALS(wimaxmacphy_matrix_indicator_vals),
3656 0x0,
3657 NULL,
3658 HFILL
3662 &hf_wimaxmacphy_zone_midamble_presence,
3664 "Midamble presence",
3665 "wimaxmacphy.zone_midamble_presence",
3666 FT_UINT8,
3667 BASE_DEC,
3668 VALS(wimaxmacphy_zone_midamble_presence_vals),
3669 0x0,
3670 NULL,
3671 HFILL
3675 &hf_wimaxmacphy_zone_midamble_boosting,
3677 "Midamble boosting",
3678 "wimaxmacphy.zone_midamble_boosting",
3679 FT_UINT8,
3680 BASE_DEC,
3681 VALS(wimaxmacphy_zone_midamble_boosting_vals),
3682 0x0,
3683 NULL,
3684 HFILL
3688 &hf_wimaxmacphy_zone_preamble_configuration,
3690 "Preamble configuration",
3691 "wimaxmacphy.zone_preamble_configuration",
3692 FT_UINT8,
3693 BASE_HEX,
3694 VALS(wimaxmacphy_zone_preamble_configuration_vals),
3695 0x0,
3696 NULL,
3697 HFILL
3701 &hf_wimaxmacphy_zone_sdma_supported_indication,
3703 "SDMA supported indication",
3704 "wimaxmacphy.zone_sdma_supported_indication",
3705 FT_UINT8,
3706 BASE_DEC,
3707 VALS(wimaxmacphy_zone_sdma_supported_indication_vals),
3708 0x0,
3709 NULL,
3710 HFILL
3714 &hf_wimaxmacphy_zone_preamble_type,
3716 "Preamble type",
3717 "wimaxmacphy.zone_preamble_type",
3718 FT_UINT8,
3719 BASE_DEC,
3720 VALS(wimaxmacphy_zone_preamble_type_vals),
3721 0x0,
3722 NULL,
3723 HFILL
3727 &hf_wimaxmacphy_dl_zone_aas_reserved,
3729 "Reserved",
3730 "wimaxmacphy.zone_aas_reserved",
3731 FT_BYTES,
3732 BASE_NONE,
3733 NULL,
3734 0x0,
3735 NULL,
3736 HFILL
3740 &hf_wimaxmacphy_ul_zone_aas_reserved,
3742 "Reserved",
3743 "wimaxmacphy.zone_aas_reserved",
3744 FT_BYTES,
3745 BASE_NONE,
3746 NULL,
3747 0x0,
3748 NULL,
3749 HFILL
3753 &hf_wimaxmacphy_number_of_burst_descriptors,
3755 "Number of Burst Descriptors",
3756 "wimaxmacphy.number_of_burst_descriptors",
3757 FT_UINT8,
3758 BASE_DEC,
3759 NULL,
3760 0x0,
3761 NULL,
3762 HFILL
3766 &hf_wimaxmacphy_burst_padding,
3768 "Padding",
3769 "wimaxmacphy.burst_padding",
3770 FT_BYTES,
3771 BASE_NONE,
3772 NULL,
3773 0x0,
3774 NULL,
3775 HFILL
3779 &hf_wimaxmacphy_dl_burst_type,
3781 "Burst Type",
3782 "wimaxmacphy.burst_type",
3783 FT_UINT8,
3784 BASE_HEX,
3785 VALS(wimaxmacphy_dl_burst_type_vals),
3786 0x0,
3787 NULL,
3788 HFILL
3792 &hf_wimaxmacphy_ul_burst_type,
3794 "Burst Type",
3795 "wimaxmacphy.dl_burst_type",
3796 FT_UINT8,
3797 BASE_HEX,
3798 VALS(wimaxmacphy_ul_burst_type_vals),
3799 0x0,
3800 NULL,
3801 HFILL
3805 &hf_wimaxmacphy_burst_type_extension,
3807 "Burst Type extension",
3808 "wimaxmacphy.burst_type_extension",
3809 FT_UINT8,
3810 BASE_HEX,
3811 VALS(wimaxmacphy_burst_type_extension_vals),
3812 0x0,
3813 NULL,
3814 HFILL
3818 &hf_wimaxmacphy_burst_number,
3820 "Burst Number",
3821 "wimaxmacphy.burst_number",
3822 FT_UINT8,
3823 BASE_DEC,
3824 NULL,
3825 0x0,
3826 NULL,
3827 HFILL
3831 &hf_wimaxmacphy_burst_modulation_fec_code_type,
3833 "Modulation/FEC Code Type",
3834 "wimaxmacphy.burst_modulation_fec_code_type",
3835 FT_UINT8,
3836 #if 0
3837 BASE_DEC | BASE_EXT_STRING,
3838 &wimaxmacphy_modulation_fec_code_type_vals_ext,
3839 #endif
3840 BASE_DEC,
3841 VALS(wimaxmacphy_modulation_fec_code_type_vals),
3842 0x0,
3843 NULL,
3844 HFILL
3848 &hf_wimaxmacphy_burst_data_length,
3850 "Burst Data Length",
3851 "wimaxmacphy.burst_data_length",
3852 FT_UINT32,
3853 BASE_DEC,
3854 NULL,
3855 0x0,
3856 NULL,
3857 HFILL
3861 &hf_wimaxmacphy_burst_ofdma_symbol_offset,
3863 "OFDMA Symbol offset",
3864 "wimaxmacphy.burst_ofdma_symbol_offset",
3865 FT_UINT8,
3866 BASE_DEC,
3867 NULL,
3868 0x0,
3869 NULL,
3870 HFILL
3874 &hf_wimaxmacphy_burst_subchannel_offset,
3876 "Subchannel offset",
3877 "wimaxmacphy.burst_subchannel_offset",
3878 FT_UINT8,
3879 BASE_DEC,
3880 NULL,
3881 0x0,
3882 NULL,
3883 HFILL
3887 &hf_wimaxmacphy_burst_boosting,
3889 "Boosting",
3890 "wimaxmacphy.burst_boosting",
3891 FT_UINT8,
3892 BASE_HEX,
3893 VALS(wimaxmacphy_burst_boosting_vals),
3894 0x0,
3895 NULL,
3896 HFILL
3900 &hf_wimaxmacphy_burst_reserved,
3902 "Reserved",
3903 "wimaxmacphy.burst_reserved",
3904 FT_BYTES,
3905 BASE_NONE,
3906 NULL,
3907 0x0,
3908 NULL,
3909 HFILL
3913 &hf_wimaxmacphy_burst_repetition_coding_indication,
3915 "Repetition coding indication",
3916 "wimaxmacphy.burst_repetition_coding_indication",
3917 FT_UINT8,
3918 BASE_HEX,
3919 VALS(wimaxmacphy_burst_repetition_coding_indication_vals),
3920 0x0,
3921 NULL,
3922 HFILL
3926 &hf_wimaxmacphy_burst_issid,
3928 "ISSID",
3929 "wimaxmacphy.burst_issid",
3930 FT_INT16,
3931 BASE_DEC,
3932 NULL,
3933 0x0,
3934 NULL,
3935 HFILL
3939 &hf_wimaxmacphy_burst_aas_handle,
3941 "AAS Handle",
3942 "wimaxmacphy.burst_aas_handle",
3943 FT_UINT16,
3944 BASE_HEX,
3945 NULL,
3946 0x0,
3947 NULL,
3948 HFILL
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",
3956 FT_UINT16,
3957 BASE_DEC,
3958 NULL,
3959 0x0,
3960 NULL,
3961 HFILL
3965 &hf_wimaxmacphy_dl_burst_map_reserved,
3967 "Reserved",
3968 "wimaxmacphy.burst_map_reserved",
3969 FT_BYTES,
3970 BASE_NONE,
3971 NULL,
3972 0x0,
3973 NULL,
3974 HFILL
3978 &hf_wimaxmacphy_dl_burst_normal_number_of_symbols,
3980 "Number of Symbols",
3981 "wimaxmacphy.burst_normal_number_of_symbols",
3982 FT_UINT8,
3983 BASE_DEC,
3984 NULL,
3985 0x0,
3986 NULL,
3987 HFILL
3991 &hf_wimaxmacphy_dl_burst_normal_number_of_subchannels,
3993 "Number of Subchannels",
3994 "wimaxmacphy.burst_normal_number_of_subchannels",
3995 FT_UINT8,
3996 BASE_DEC,
3997 NULL,
3998 0x0,
3999 NULL,
4000 HFILL
4004 &hf_wimaxmacphy_dl_burst_normal_aas_handle,
4006 "AAS Handle",
4007 "wimaxmacphy.burst_normal_aas_handle",
4008 FT_UINT16,
4009 BASE_HEX,
4010 NULL,
4011 0x0,
4012 NULL,
4013 HFILL
4017 &hf_wimaxmacphy_ul_burst_normal_number_of_slots,
4019 "Number of slots",
4020 "wimaxmacphy.burst_normal_number_of_slots",
4021 FT_UINT16,
4022 BASE_DEC,
4023 NULL,
4024 0x0,
4025 NULL,
4026 HFILL
4030 &hf_wimaxmacphy_ul_burst_normal_reserved,
4032 "Reserved",
4033 "wimaxmacphy.burst_normal_reserved",
4034 FT_BYTES,
4035 BASE_NONE,
4036 NULL,
4037 0x0,
4038 NULL,
4039 HFILL
4043 &hf_wimaxmacphy_burst_papr_number_of_symbols,
4045 "Number of Symbols",
4046 "wimaxmacphy.burst_papr_number_of_symbols",
4047 FT_UINT8,
4048 BASE_DEC,
4049 NULL,
4050 0x0,
4051 NULL,
4052 HFILL
4056 &hf_wimaxmacphy_burst_papr_number_of_subchannels,
4058 "Number of Subchannels",
4059 "wimaxmacphy.burst_papr_number_of_subchannels",
4060 FT_UINT8,
4061 BASE_DEC,
4062 NULL,
4063 0x0,
4064 NULL,
4065 HFILL
4069 &hf_wimaxmacphy_burst_papr_reserved,
4071 "Reserved",
4072 "wimaxmacphy.burst_papr_reserved",
4073 FT_BYTES,
4074 BASE_NONE,
4075 NULL,
4076 0x0,
4077 NULL,
4078 HFILL
4082 &hf_wimaxmacphy_ul_burst_papr_unnamed,
4084 "Unnamed",
4085 "wimaxmacphy.burst_papr_unnamed",
4086 FT_UINT8,
4087 BASE_DEC,
4088 VALS(wimaxmacphy_ul_burst_papr_unnamed_vals),
4089 0x0,
4090 NULL,
4091 HFILL
4095 &hf_wimaxmacphy_ul_burst_harq_ack_number_of_symbols,
4097 "Number of Symbols",
4098 "wimaxmacphy.burst_harq_ack_number_of_symbols",
4099 FT_UINT8,
4100 BASE_DEC,
4101 NULL,
4102 0x0,
4103 NULL,
4104 HFILL
4108 &hf_wimaxmacphy_ul_burst_harq_ack_number_of_subchannels,
4110 "Number of Subchannels",
4111 "wimaxmacphy.burst_harq_ack_number_of_subchannels",
4112 FT_UINT8,
4113 BASE_DEC,
4114 NULL,
4115 0x0,
4116 NULL,
4117 HFILL
4121 &hf_wimaxmacphy_ul_burst_harq_ack_reserved,
4123 "Reserved",
4124 "wimaxmacphy.burst_harq_ack_reserved",
4125 FT_BYTES,
4126 BASE_NONE,
4127 NULL,
4128 0x0,
4129 NULL,
4130 HFILL
4134 &hf_wimaxmacphy_ul_burst_fast_number_of_symbols,
4136 "Number of Symbols",
4137 "wimaxmacphy.burst_fast_number_of_symbols",
4138 FT_UINT8,
4139 BASE_DEC,
4140 NULL,
4141 0x0,
4142 NULL,
4143 HFILL
4147 &hf_wimaxmacphy_ul_burst_fast_number_of_subchannels,
4149 "Number of Subchannels",
4150 "wimaxmacphy.burst_fast_number_of_subchannels",
4151 FT_UINT8,
4152 BASE_DEC,
4153 NULL,
4154 0x0,
4155 NULL,
4156 HFILL
4160 &hf_wimaxmacphy_ul_burst_fast_reserved,
4162 "Reserved",
4163 "wimaxmacphy.burst_fast_reserved",
4164 FT_BYTES,
4165 BASE_NONE,
4166 NULL,
4167 0x0,
4168 NULL,
4169 HFILL
4173 &hf_wimaxmacphy_ul_burst_initial_number_of_symbols,
4175 "Number of Symbols",
4176 "wimaxmacphy.burst_initial_number_of_symbols",
4177 FT_UINT8,
4178 BASE_DEC,
4179 NULL,
4180 0x0,
4181 NULL,
4182 HFILL
4186 &hf_wimaxmacphy_ul_burst_initial_number_of_subchannels,
4188 "Number of Subchannels",
4189 "wimaxmacphy.burst_initial_number_of_subchannels",
4190 FT_UINT8,
4191 BASE_DEC,
4192 NULL,
4193 0x0,
4194 NULL,
4195 HFILL
4199 &hf_wimaxmacphy_ul_burst_initial_ranging_method,
4201 "Ranging method",
4202 "wimaxmacphy.burst_initial_ranging_method",
4203 FT_UINT8,
4204 BASE_DEC,
4205 VALS(wimaxmacphy_ul_burst_ranging_method_vals),
4206 0x0,
4207 NULL,
4208 HFILL
4212 &hf_wimaxmacphy_ul_burst_initial_reserved1,
4214 "Reserved",
4215 "wimaxmacphy.burst_initial_reserved1",
4216 FT_BYTES,
4217 BASE_NONE,
4218 NULL,
4219 0x0,
4220 NULL,
4221 HFILL
4225 &hf_wimaxmacphy_ul_burst_initial_zone_xid,
4227 "Zone XID",
4228 "wimaxmacphy.burst_initial_zone_xid",
4229 FT_UINT16,
4230 BASE_HEX,
4231 NULL,
4232 0x0,
4233 NULL,
4234 HFILL
4238 &hf_wimaxmacphy_ul_burst_initial_reserved2,
4240 "Reserved",
4241 "wimaxmacphy.burst_initial_reserved2",
4242 FT_BYTES,
4243 BASE_NONE,
4244 NULL,
4245 0x0,
4246 NULL,
4247 HFILL
4251 &hf_wimaxmacphy_ul_burst_periodic_number_of_symbols,
4253 "Number of Symbols",
4254 "wimaxmacphy.burst_periodic_number_of_symbols",
4255 FT_UINT8,
4256 BASE_DEC,
4257 NULL,
4258 0x0,
4259 NULL,
4260 HFILL
4264 &hf_wimaxmacphy_ul_burst_periodic_number_of_subchannels,
4266 "Number of Subchannels",
4267 "wimaxmacphy.burst_periodic_number_of_subchannels",
4268 FT_UINT8,
4269 BASE_DEC,
4270 NULL,
4271 0x0,
4272 NULL,
4273 HFILL
4277 &hf_wimaxmacphy_ul_burst_periodic_ranging_method,
4279 "Ranging method",
4280 "wimaxmacphy.burst_periodic_ranging_method",
4281 FT_UINT8,
4282 BASE_DEC,
4283 VALS(wimaxmacphy_ul_burst_ranging_method_vals),
4284 0x0,
4285 NULL,
4286 HFILL
4290 &hf_wimaxmacphy_ul_burst_periodic_reserved1,
4292 "Reserved",
4293 "wimaxmacphy.burst_periodic_reserved1",
4294 FT_BYTES,
4295 BASE_NONE,
4296 NULL,
4297 0x0,
4298 NULL,
4299 HFILL
4303 &hf_wimaxmacphy_ul_burst_periodic_zone_xid,
4305 "Zone XID",
4306 "wimaxmacphy.burst_periodic_zone_xid",
4307 FT_UINT16,
4308 BASE_HEX,
4309 NULL,
4310 0x0,
4311 NULL,
4312 HFILL
4316 &hf_wimaxmacphy_ul_burst_periodic_reserved2,
4318 "Reserved",
4319 "wimaxmacphy.burst_periodic_reserved2",
4320 FT_BYTES,
4321 BASE_NONE,
4322 NULL,
4323 0x0,
4324 NULL,
4325 HFILL
4329 &hf_wimaxmacphy_ul_burst_noise_number_of_symbols,
4331 "Number of Symbols",
4332 "wimaxmacphy.burst_noise_number_of_symbols",
4333 FT_UINT8,
4334 BASE_DEC,
4335 NULL,
4336 0x0,
4337 NULL,
4338 HFILL
4342 &hf_wimaxmacphy_ul_burst_noise_number_of_subchannels,
4344 "Number of Subchannels",
4345 "wimaxmacphy.burst_noise_number_of_subchannels",
4346 FT_UINT8,
4347 BASE_DEC,
4348 NULL,
4349 0x0,
4350 NULL,
4351 HFILL
4355 &hf_wimaxmacphy_ul_burst_noise_reserved,
4357 "Reserved",
4358 "wimaxmacphy.burst_noise_reserved",
4359 FT_BYTES,
4360 BASE_NONE,
4361 NULL,
4362 0x0,
4363 NULL,
4364 HFILL
4368 &hf_wimaxmacphy_ul_burst_sounding_number_of_symbols,
4370 "Number of Symbols",
4371 "wimaxmacphy.burst_sounding_number_of_symbols",
4372 FT_UINT8,
4373 BASE_DEC,
4374 NULL,
4375 0x0,
4376 NULL,
4377 HFILL
4381 &hf_wimaxmacphy_ul_burst_sounding_number_of_subchannels,
4383 "Number of Subchannels",
4384 "wimaxmacphy.burst_sounding_number_of_subchannels",
4385 FT_UINT8,
4386 BASE_DEC,
4387 NULL,
4388 0x0,
4389 NULL,
4390 HFILL
4394 &hf_wimaxmacphy_ul_burst_sounding_type,
4396 "Sounding type",
4397 "wimaxmacphy.burst_sounding_type",
4398 FT_UINT8,
4399 BASE_DEC,
4400 VALS(wimaxmacphy_ul_burst_sounding_type_vals),
4401 0x0,
4402 NULL,
4403 HFILL
4407 &hf_wimaxmacphy_ul_burst_sounding_separability_type,
4409 "Separability type",
4410 "wimaxmacphy.burst_sounding_separability_type",
4411 FT_UINT8,
4412 BASE_DEC,
4413 VALS(wimaxmacphy_ul_burst_sounding_separability_type_vals),
4414 0x0,
4415 NULL,
4416 HFILL
4420 &hf_wimaxmacphy_ul_burst_sounding_max_cyclic_shift_indx,
4422 "Max Cyclic Shift Indx",
4423 "wimaxmacphy.burst_sounding_max_cyclic_shift_indx",
4424 FT_UINT8,
4425 BASE_DEC,
4426 VALS(wimaxmacphy_ul_burst_sounding_max_cyclic_shift_indx_vals),
4427 0x0,
4428 NULL,
4429 HFILL
4433 &hf_wimaxmacphy_ul_burst_sounding_decimation_value,
4435 "Decimation value",
4436 "wimaxmacphy.burst_sounding_decimation_value",
4437 FT_UINT8,
4438 BASE_DEC,
4439 NULL,
4440 0x0,
4441 NULL,
4442 HFILL
4446 &hf_wimaxmacphy_ul_burst_sounding_decimation_offset_rand,
4448 "Decimation offset randomization",
4449 "wimaxmacphy.burst_sounding_decimation_offset_rand",
4450 FT_UINT8,
4451 BASE_DEC,
4452 VALS(wimaxmacphy_ul_burst_sounding_decimation_offset_rand_vals),
4453 0x0,
4454 NULL,
4455 HFILL
4459 &hf_wimaxmacphy_ul_burst_sounding_reserved,
4461 "Reserved",
4462 "wimaxmacphy.burst_sounding_reserved",
4463 FT_BYTES,
4464 BASE_NONE,
4465 NULL,
4466 0x0,
4467 NULL,
4468 HFILL
4472 &hf_wimaxmacphy_burst_opt_aas_preamble_modifier_type,
4474 "Preamble Modifier Type",
4475 "wimaxmacphy.burst_opt_aas_preamble_modifier_type",
4476 FT_UINT8,
4477 BASE_DEC,
4478 NULL,
4479 0x0,
4480 NULL,
4481 HFILL
4485 &hf_wimaxmacphy_burst_opt_aas_preamble_shift_index,
4487 "Preamble Shift index",
4488 "wimaxmacphy.burst_opt_aas_preamble_shift_index",
4489 FT_UINT8,
4490 BASE_DEC,
4491 NULL,
4492 0x0,
4493 NULL,
4494 HFILL
4498 &hf_wimaxmacphy_burst_opt_aas_reserved,
4500 "Reserved",
4501 "wimaxmacphy.burst_opt_aas_reserved",
4502 FT_BYTES,
4503 BASE_NONE,
4504 NULL,
4505 0x0,
4506 NULL,
4507 HFILL
4511 &hf_wimaxmacphy_burst_opt_mimo_matrix_indicator,
4513 "Matrix indicator",
4514 "wimaxmacphy.burst_opt_mimo_matrix_indicator",
4515 FT_UINT8,
4516 BASE_HEX,
4517 VALS(wimaxmacphy_matrix_indicator_vals),
4518 0x0,
4519 NULL,
4520 HFILL
4524 &hf_wimaxmacphy_burst_opt_mimo_layer_index,
4526 "Layer index",
4527 "wimaxmacphy.burst_opt_mimo_layer_index",
4528 FT_UINT8,
4529 BASE_HEX,
4530 NULL,
4531 0x0,
4532 NULL,
4533 HFILL
4537 &hf_wimaxmacphy_dl_burst_opt_mimo_reserved,
4539 "Reserved",
4540 "wimaxmacphy.burst_opt_mimo_reserved",
4541 FT_BYTES,
4542 BASE_NONE,
4543 NULL,
4544 0x0,
4545 NULL,
4546 HFILL
4550 &hf_wimaxmacphy_ul_burst_opt_mimo_matrix_indicator,
4552 "Matrix indicator (dual antenna SS)",
4553 "wimaxmacphy.burst_opt_mimo_matrix_indicator",
4554 FT_UINT8,
4555 BASE_HEX,
4556 VALS(wimaxmacphy_ul_burst_opt_mimo_matrix_indicator_vals),
4557 0x0,
4558 NULL,
4559 HFILL
4563 &hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns,
4565 "Pilot patterns",
4566 "wimaxmacphy.burst_opt_mimo_pilot_patterns",
4567 FT_UINT8,
4568 BASE_HEX,
4569 NULL,
4570 0x0,
4571 NULL,
4572 HFILL
4576 &hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit0,
4578 "Pattern A",
4579 "wimaxmacphy.burst_opt_mimo_pilot_patterns.A",
4580 FT_BOOLEAN,
4582 TFS(&set_notset),
4583 0x01,
4584 NULL,
4585 HFILL
4589 &hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit1,
4591 "Pattern B",
4592 "wimaxmacphy.burst_opt_mimo_pilot_patterns.B",
4593 FT_BOOLEAN,
4595 TFS(&set_notset),
4596 0x02,
4597 NULL,
4598 HFILL
4602 &hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit2,
4604 "Pattern C",
4605 "wimaxmacphy.burst_opt_mimo_pilot_patterns.C",
4606 FT_BOOLEAN,
4608 TFS(&set_notset),
4609 0x04,
4610 NULL,
4611 HFILL
4615 &hf_wimaxmacphy_ul_burst_opt_mimo_pilot_patterns_bit3,
4617 "Pattern D",
4618 "wimaxmacphy.burst_opt_mimo_pilot_patterns.D",
4619 FT_BOOLEAN,
4621 TFS(&set_notset),
4622 0x08,
4623 NULL,
4624 HFILL
4628 &hf_wimaxmacphy_ul_burst_opt_mimo_collaborative,
4630 "Collaborative MIMO control",
4631 "wimaxmacphy.burst_opt_mimo_collaborative",
4632 FT_UINT8,
4633 BASE_DEC,
4634 VALS(wimaxmacphy_ul_burst_opt_mimo_collaborative_vals),
4635 0xf0,
4636 NULL,
4637 HFILL
4641 &hf_wimaxmacphy_ul_burst_opt_mimo_antenna_unnamed,
4643 "Antenna(?)",
4644 "wimaxmacphy.burst_opt_mimo_antenna_unnamed",
4645 FT_UINT8,
4646 BASE_DEC,
4647 VALS(wimaxmacphy_ul_burst_opt_mimo_antenna_unnamed_vals),
4648 0x0f,
4649 NULL,
4650 HFILL
4654 &hf_wimaxmacphy_number_of_sub_burst_descriptors,
4656 "Number of Sub-Burst Descriptors",
4657 "wimaxmacphy.number_of_sub_burst_descriptors",
4658 FT_UINT8,
4659 BASE_DEC,
4660 NULL,
4661 0x0,
4662 NULL,
4663 HFILL
4667 &hf_wimaxmacphy_sub_burst_padding,
4669 "Padding",
4670 "wimaxmacphy.sub_burst_padding",
4671 FT_BYTES,
4672 BASE_NONE,
4673 NULL,
4674 0x0,
4675 NULL,
4676 HFILL
4680 &hf_wimaxmacphy_dl_sub_burst_type,
4682 "Sub-Burst Type",
4683 "wimaxmacphy.sub_burst_type",
4684 FT_UINT8,
4685 BASE_HEX,
4686 VALS(wimaxmacphy_dl_sub_burst_type_vals),
4687 0x0,
4688 NULL,
4689 HFILL
4693 &hf_wimaxmacphy_ul_sub_burst_type,
4695 "Sub-Burst Type",
4696 "wimaxmacphy.sub_burst_type",
4697 FT_UINT8,
4698 BASE_HEX,
4699 VALS(wimaxmacphy_ul_sub_burst_type_vals),
4700 0x0,
4701 NULL,
4702 HFILL
4706 &hf_wimaxmacphy_sub_burst_number,
4708 "Sub-Burst number",
4709 "wimaxmacphy.sub_burst_number",
4710 FT_UINT8,
4711 BASE_DEC,
4712 NULL,
4713 0x0,
4714 NULL,
4715 HFILL
4719 &hf_wimaxmacphy_sub_burst_symbol_offset,
4721 "Symbol Offset",
4722 "wimaxmacphy.sub_burst_symbol_offset",
4723 FT_UINT8,
4724 BASE_DEC,
4725 NULL,
4726 0x0,
4727 NULL,
4728 HFILL
4732 &hf_wimaxmacphy_sub_burst_subchannel_offset,
4734 "Subchannel Offset",
4735 "wimaxmacphy.sub_burst_subchannel_offset",
4736 FT_UINT8,
4737 BASE_DEC,
4738 NULL,
4739 0x0,
4740 NULL,
4741 HFILL
4745 &hf_wimaxmacphy_sub_burst_number_of_slots,
4747 "Number of slots in this sub-burst",
4748 "wimaxmacphy.sub_burst_number_of_slots",
4749 FT_UINT16,
4750 BASE_DEC,
4751 NULL,
4752 0x0,
4753 NULL,
4754 HFILL
4758 &hf_wimaxmacphy_sub_burst_reserved1,
4760 "Reserved",
4761 "wimaxmacphy.sub_burst_reserved1",
4762 FT_BYTES,
4763 BASE_NONE,
4764 NULL,
4765 0x0,
4766 NULL,
4767 HFILL
4771 &hf_wimaxmacphy_sub_burst_reserved2,
4773 "Reserved",
4774 "wimaxmacphy.sub_burst_reserved2",
4775 FT_BYTES,
4776 BASE_NONE,
4777 NULL,
4778 0x0,
4779 NULL,
4780 HFILL
4784 &hf_wimaxmacphy_sub_burst_modulation_fec_code_type,
4786 "Modulation/FEC Code Type",
4787 "wimaxmacphy.sub_burst_modulation_fec_code_type",
4788 FT_UINT8,
4789 BASE_DEC,
4790 VALS(wimaxmacphy_modulation_fec_code_type_vals),
4791 0x0,
4792 NULL,
4793 HFILL
4797 &hf_wimaxmacphy_sub_burst_issid,
4799 "ISSID",
4800 "wimaxmacphy.sub_burst_issid",
4801 FT_INT16,
4802 BASE_DEC,
4803 NULL,
4804 0x0,
4805 NULL,
4806 HFILL
4810 &hf_wimaxmacphy_sub_burst_aas_handle,
4812 "AAS Handle",
4813 "wimaxmacphy.sub_burst_aas_handle",
4814 FT_UINT16,
4815 BASE_HEX,
4816 NULL,
4817 0x0,
4818 NULL,
4819 HFILL
4823 &hf_wimaxmacphy_sub_burst_boosting,
4825 "Boosting",
4826 "wimaxmacphy.sub_burst_boosting",
4827 FT_UINT8,
4828 BASE_HEX,
4829 VALS(wimaxmacphy_burst_boosting_vals),
4830 0x0,
4831 NULL,
4832 HFILL
4836 &hf_wimaxmacphy_sub_burst_repetition_coding_indication,
4838 "Repetition coding indication",
4839 "wimaxmacphy.sub_burst_repetition_coding_indication",
4840 FT_UINT8,
4841 BASE_HEX,
4842 VALS(wimaxmacphy_burst_repetition_coding_indication_vals),
4843 0x0,
4844 NULL,
4845 HFILL
4849 &hf_wimaxmacphy_sub_burst_data_length,
4851 "Sub-Burst Data Length",
4852 "wimaxmacphy.sub_burst_data_length",
4853 FT_UINT32,
4854 BASE_DEC,
4855 NULL,
4856 0x0,
4857 NULL,
4858 HFILL
4862 &hf_wimaxmacphy_sub_burst_harq_chase_harq_channel_id,
4864 "HARQ channel id (ACID)",
4865 "wimaxmacphy.sub_burst_harq_chase_harq_channel_id",
4866 FT_UINT8,
4867 BASE_DEC,
4868 NULL,
4869 0x0,
4870 NULL,
4871 HFILL
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",
4879 FT_UINT8,
4880 BASE_DEC,
4881 NULL,
4882 0x0,
4883 NULL,
4884 HFILL
4888 &hf_wimaxmacphy_sub_burst_harq_chase_flush_unnamed,
4890 "Flush(?)",
4891 "wimaxmacphy.sub_burst_harq_chase_flush_unnamed",
4892 FT_UINT8,
4893 BASE_HEX,
4894 VALS(wimaxmacphy_sub_burst_flush_unnamed_vals),
4895 0x0,
4896 NULL,
4897 HFILL
4901 &hf_wimaxmacphy_sub_burst_harq_chase_reserved,
4903 "Reserved",
4904 "wimaxmacphy.sub_burst_harq_chase_reserved",
4905 FT_BYTES,
4906 BASE_NONE,
4907 NULL,
4908 0x0,
4909 NULL,
4910 HFILL
4914 &hf_wimaxmacphy_sub_burst_mimo_chase_harq_channel_id,
4916 "HARQ channel id (ACID)",
4917 "wimaxmacphy.sub_burst_mimo_chase_harq_channel_id",
4918 FT_UINT8,
4919 BASE_DEC,
4920 NULL,
4921 0x0,
4922 NULL,
4923 HFILL
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",
4931 FT_UINT8,
4932 BASE_DEC,
4933 NULL,
4934 0x0,
4935 NULL,
4936 HFILL
4940 &hf_wimaxmacphy_sub_burst_mimo_chase_flush_unnamed,
4942 "Flush(?)",
4943 "wimaxmacphy.sub_burst_mimo_chase_flush_unnamed",
4944 FT_UINT8,
4945 BASE_HEX,
4946 VALS(wimaxmacphy_sub_burst_flush_unnamed_vals),
4947 0x0,
4948 NULL,
4949 HFILL
4953 &hf_wimaxmacphy_sub_burst_mimo_chase_layer_index,
4955 "Layer index",
4956 "wimaxmacphy.sub_burst_mimo_chase_layer_index",
4957 FT_UINT8,
4958 BASE_DEC,
4959 NULL,
4960 0x0,
4961 NULL,
4962 HFILL
4966 &hf_wimaxmacphy_ul_sub_burst_ctype,
4968 "CType",
4969 "wimaxmacphy.sub_burst_ctype",
4970 FT_UINT8,
4971 BASE_HEX,
4972 VALS(wimaxmacphy_ul_sub_burst_ctype_vals),
4973 0x0,
4974 NULL,
4975 HFILL
4979 &hf_wimaxmacphy_ul_sub_burst_mini_subchannel_index,
4981 "Mini-subchannel Index",
4982 "wimaxmacphy.sub_burst_mini_subchannel_index",
4983 FT_UINT8,
4984 BASE_DEC,
4985 NULL,
4986 0x0,
4987 NULL,
4988 HFILL
4992 &hf_wimaxmacphy_ul_sub_burst_mini_reserved,
4994 "Reserved",
4995 "wimaxmacphy.sub_burst_mini_reserved",
4996 FT_BYTES,
4997 BASE_NONE,
4998 NULL,
4999 0x0,
5000 NULL,
5001 HFILL
5005 &hf_wimaxmacphy_ul_sub_burst_feedback_type_coding,
5007 "Feedback type coding",
5008 "wimaxmacphy.sub_burst_feedback_type_coding",
5009 FT_UINT8,
5010 BASE_HEX,
5011 NULL,
5012 0x0,
5013 NULL,
5014 HFILL
5018 &hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit0,
5020 "3 bit-MIMO Fast-feedback",
5021 "wimaxmacphy.sub_burst_feedback_type_coding.bit0",
5022 FT_BOOLEAN,
5024 TFS(&set_notset),
5025 0x01,
5026 NULL,
5027 HFILL
5031 &hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit1,
5033 "Enhanced FAST_FEEDBACK",
5034 "wimaxmacphy.sub_burst_feedback_type_coding.bit1",
5035 FT_BOOLEAN,
5037 TFS(&set_notset),
5038 0x02,
5039 NULL,
5040 HFILL
5044 &hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit2,
5046 "Reserved",
5047 "wimaxmacphy.sub_burst_feedback_type_coding.bit2",
5048 FT_BOOLEAN,
5050 TFS(&set_notset),
5051 0x04,
5052 NULL,
5053 HFILL
5057 &hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit3,
5059 "Reserved",
5060 "wimaxmacphy.sub_burst_feedback_type_coding.bit3",
5061 FT_BOOLEAN,
5063 TFS(&set_notset),
5064 0x08,
5065 NULL,
5066 HFILL
5070 &hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit4,
5072 "UEP fast-feedback",
5073 "wimaxmacphy.sub_burst_feedback_type_coding.bit4",
5074 FT_BOOLEAN,
5076 TFS(&set_notset),
5077 0x10,
5078 NULL,
5079 HFILL
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",
5087 FT_BOOLEAN,
5089 TFS(&set_notset),
5090 0x20,
5091 NULL,
5092 HFILL
5096 &hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit6,
5098 "Primary/Secondary FAST_FEEDBACK",
5099 "wimaxmacphy.sub_burst_feedback_type_coding.bit6",
5100 FT_BOOLEAN,
5102 TFS(&set_notset),
5103 0x40,
5104 NULL,
5105 HFILL
5109 &hf_wimaxmacphy_ul_sub_burst_feedback_type_coding_bit7,
5111 "DIUC-CQI Fast-feedback",
5112 "wimaxmacphy.sub_burst_feedback_type_coding.bit7",
5113 FT_BOOLEAN,
5115 TFS(&set_notset),
5116 0x80,
5117 NULL,
5118 HFILL
5122 &hf_wimaxmacphy_ul_sub_burst_feedback_reserved1,
5124 "Reserved",
5125 "wimaxmacphy.sub_burst_feedback_reserved1",
5126 FT_UINT16,
5127 BASE_DEC,
5128 NULL,
5129 0x8000,
5130 NULL,
5131 HFILL
5135 &hf_wimaxmacphy_ul_sub_burst_feedback_sub_type,
5137 "Feedback sub-type",
5138 "wimaxmacphy.sub_burst_feedback_sub_type",
5139 FT_UINT16,
5140 BASE_DEC,
5141 NULL,
5142 0x7000,
5143 NULL,
5144 HFILL
5148 &hf_wimaxmacphy_ul_sub_burst_feedback_cqich_id,
5150 "CQICH_ID",
5151 "wimaxmacphy.sub_burst_feedback_cqich_id",
5152 FT_UINT16,
5153 BASE_DEC,
5154 NULL,
5155 0x0fff,
5156 NULL,
5157 HFILL
5161 &hf_wimaxmacphy_ul_sub_burst_feedback_reserved2,
5163 "Reserved",
5164 "wimaxmacphy.sub_burst_feedback_reserved2",
5165 FT_UINT8,
5166 BASE_DEC,
5167 NULL,
5168 0xc0,
5169 NULL,
5170 HFILL
5174 &hf_wimaxmacphy_ul_sub_burst_feedback_slot_offset,
5176 "Slot offset",
5177 "wimaxmacphy.sub_burst_feedback_slot_offset",
5178 FT_UINT8,
5179 BASE_DEC,
5180 NULL,
5181 0x3f,
5182 NULL,
5183 HFILL
5187 &hf_wimaxmacphy_ul_sub_burst_harq_ack_acid,
5189 "ACID",
5190 "wimaxmacphy.sub_burst_harq_ack_acid",
5191 FT_UINT32,
5192 BASE_DEC,
5193 NULL,
5194 0x000000f0,
5195 NULL,
5196 HFILL
5200 &hf_wimaxmacphy_ul_sub_burst_harq_ack_reserved,
5202 "Reserved",
5203 "wimaxmacphy.sub_burst_harq_ack_reserved",
5204 FT_UINT32,
5205 BASE_HEX,
5206 NULL,
5207 0x00000fff,
5208 NULL,
5209 HFILL
5213 &hf_wimaxmacphy_ul_sub_burst_sounding_symbol_index,
5215 "Sounding symbol index within Sounding zone",
5216 "wimaxmacphy.sub_burst_sounding_symbol_index",
5217 FT_UINT8,
5218 BASE_DEC,
5219 NULL,
5220 0x0,
5221 NULL,
5222 HFILL
5226 &hf_wimaxmacphy_ul_sub_burst_sounding_power_assignment,
5228 "Power assignment method",
5229 "wimaxmacphy.sub_burst_sounding_power_assignment_method",
5230 FT_UINT8,
5231 BASE_HEX,
5232 VALS(wimaxmacphy_ul_sub_burst_sounding_power_assignment_vals),
5233 0x0,
5234 NULL,
5235 HFILL
5239 &hf_wimaxmacphy_ul_sub_burst_sounding_power_boost,
5241 "Power boost",
5242 "wimaxmacphy.sub_burst_sounding_power_boost",
5243 FT_UINT8,
5244 BASE_DEC,
5245 VALS(wimaxmacphy_ul_sub_burst_sounding_power_boost_vals),
5246 0x0,
5247 NULL,
5248 HFILL
5252 &hf_wimaxmacphy_ul_sub_burst_sounding_allocation_mode,
5254 "Allocation mode",
5255 "wimaxmacphy.sub_burst_sounding_allocation_mode",
5256 FT_UINT8,
5257 BASE_DEC,
5258 VALS(wimaxmacphy_ul_sub_burst_sounding_allocation_mode_vals),
5259 0x0,
5260 NULL,
5261 HFILL
5265 &hf_wimaxmacphy_ul_sub_burst_sounding_start_freq_band,
5267 "Start frequency band",
5268 "wimaxmacphy.sub_burst_sounding_start_freq_band",
5269 FT_UINT8,
5270 BASE_DEC,
5271 NULL,
5272 0x0,
5273 NULL,
5274 HFILL
5278 &hf_wimaxmacphy_ul_sub_burst_sounding_num_freq_bands,
5280 "Number of frequency bands",
5281 "wimaxmacphy.ub_burst_sounding_num_freq_bands",
5282 FT_UINT8,
5283 BASE_DEC,
5284 NULL,
5285 0x0,
5286 NULL,
5287 HFILL
5291 &hf_wimaxmacphy_ul_sub_burst_sounding_band_bit_map,
5293 "Band bit map",
5294 "wimaxmacphy.sub_burst_sounding_band_bit_map",
5295 FT_UINT16,
5296 BASE_HEX,
5297 NULL,
5298 0x0,
5299 NULL,
5300 HFILL
5304 &hf_wimaxmacphy_ul_sub_burst_sounding_cyclic_time_shift,
5306 "Cyclic time shift index",
5307 "wimaxmacphy.sub_burst_sounding_cyclic_time_shift_index",
5308 FT_UINT8,
5309 BASE_DEC,
5310 NULL,
5311 0x0,
5312 NULL,
5313 HFILL
5317 &hf_wimaxmacphy_ul_sub_burst_sounding_decimation_offset,
5319 "Decimation offset",
5320 "wimaxmacphy.sub_burst_sounding_decimation_offset",
5321 FT_UINT8,
5322 BASE_DEC,
5323 NULL,
5324 0x0,
5325 NULL,
5326 HFILL
5330 &hf_wimaxmacphy_ul_sub_burst_sounding_reserved,
5332 "Reserved",
5333 "wimaxmacphy.sub_burst_sounding_reserved",
5334 FT_BYTES,
5335 BASE_NONE,
5336 NULL,
5337 0x0,
5338 NULL,
5339 HFILL
5343 &hf_wimaxmacphy_ul_sub_burst_mimo_chase_matrix,
5345 "Matrix (dual antenna SS)",
5346 "wimaxmacphy.sub_burst_mimo_chase_matrix",
5347 FT_UINT8,
5348 BASE_DEC,
5349 VALS(wimaxmacphy_ul_sub_burst_mimo_chase_matrix_vals),
5350 0x0,
5351 NULL,
5352 HFILL
5357 /* Protocol subtree array */
5358 static int *ett[] = {
5359 &ett_wimaxmacphy,
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
5412 * used */
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));
5419 void
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
5428 * Local variables:
5429 * c-basic-offset: 4
5430 * tab-width: 8
5431 * indent-tabs-mode: nil
5432 * End:
5434 * vi: set shiftwidth=4 tabstop=8 expandtab:
5435 * :indentSize=4:tabSize=8:noTabs=true: