1 /* packet-dvb-s2-table.c
2 * Routines for DVB-RCS2 Table dissection
3 * Copyright 2015-2020, Thales Alenia Space
4 * Copyright 2015-2020, Viveris Technologies <adrien.destugues@opensource.viveris.fr>
6 * Wireshark - Network traffic analyzer
7 * By Gerald Combs <gerald@wireshark.org>
8 * Copyright 1998 Gerald Combs
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
20 * You should have received a copy of the GNU General Public License along
21 * with this program; if not, write to the Free Software Foundation, Inc.,
22 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
28 #include <epan/packet.h>
29 #include <epan/prefs.h>
30 #include <epan/etypes.h>
31 #include "packet-snmp.h"
33 void proto_register_dvb_s2_table(void);
34 void proto_reg_handoff_dvb_s2_table(void);
38 #define DVB_S2_RCS_TABLE_DECODING 0
39 #define DVB_S2_RCS2_TABLE_DECODING 1
41 static int dvb_s2_rcs_version
= DVB_S2_RCS2_TABLE_DECODING
;
43 /* Initialize the protocol and registered fields */
44 static int proto_dvb_s2_table
;
45 static int hf_dvb_s2_table_id
;
46 static int hf_dvb_s2_table_section
;
47 static int hf_dvb_s2_table_private
;
48 static int hf_dvb_s2_table_reserved
;
49 static int hf_dvb_s2_table_msb_len
;
50 static int hf_dvb_s2_table_lsb_len
;
51 static int hf_dvb_s2_table_network_interactive_id
;
52 static int hf_dvb_s2_table_reserved2
;
53 static int hf_dvb_s2_table_version_number
;
54 static int hf_dvb_s2_table_current_next_indicator
;
55 static int hf_dvb_s2_table_section_number
;
56 static int hf_dvb_s2_table_last_section_number
;
58 static int hf_dvb_s2_table_smt_id
;
59 static int hf_dvb_s2_table_smt_section_syntax_indicator
;
60 static int hf_dvb_s2_table_smt_futur_use
;
61 static int hf_dvb_s2_table_smt_reserved
;
62 static int hf_dvb_s2_table_smt_section_length
;
63 static int hf_dvb_s2_table_smt_esn0
;
64 static int hf_dvb_s2_table_smt_modcod
;
67 static int hf_dvb_s2_section_syntax_indic
;
68 static int hf_dvb_s2_private_indicator
;
69 static int hf_dvb_s2_reserved_1
;
70 static int hf_dvb_s2_section_length
;
71 static int hf_dvb_s2_mac_addres_6
;
72 static int hf_dvb_s2_mac_addres_5
;
73 static int hf_dvb_s2_mac_addres_4
;
74 static int hf_dvb_s2_mac_addres_3
;
75 static int hf_dvb_s2_mac_addres_2
;
76 static int hf_dvb_s2_mac_addres_1
;
77 static int hf_dvb_s2_reserved_2
;
78 static int hf_dvb_s2_payload_scrambling_control
;
79 static int hf_dvb_s2_address_scrambling_control
;
80 static int hf_dvb_s2_LLC_SNAP_flag
;
81 static int hf_dvb_s2_current_next_indicator
;
82 static int hf_dvb_s2_section_number
;
83 static int hf_dvb_s2_last_section_number
;
86 static int hf_dvb_s2_table_superframe_loop_count
;
87 static int hf_dvb_s2_table_superframe
;
88 static int hf_dvb_s2_table_sf_sequence
;
89 static int hf_dvb_s2_table_sf_id
;
90 static int hf_dvb_s2_table_sf_large_timing_uncertainty_flag
;
91 static int hf_dvb_s2_table_sf_uplink_polarization
;
92 static int hf_dvb_s2_table_sf_absolute_time
;
93 static int hf_dvb_s2_table_sf_duration
;
94 static int hf_dvb_s2_table_sf_centre_frequency
;
95 static int hf_dvb_s2_table_sf_count
;
96 static int hf_dvb_s2_table_sf_frame_loop_count
;
97 static int hf_dvb_s2_table_sf_frame
;
98 static int hf_dvb_s2_table_sf_frame_type
;
99 static int hf_dvb_s2_table_sf_frame_id
;
100 static int hf_dvb_s2_table_sf_frame_start_time
;
101 static int hf_dvb_s2_table_sf_frame_centre_frequency_offset
;
103 static int hf_dvb_s2_table_rcst_status
;
104 static int hf_dvb_s2_table_network_status
;
105 static int hf_dvb_s2_table_desc_loop_count
;
107 static int hf_dvb_s2_tbtp_group_id
;
108 static int hf_dvb_s2_tbtp_superframe_count
;
109 static int hf_dvb_s2_tbtp_frame_loop_count
;
110 static int hf_dvb_s2_tbtp_sf_frame
;
111 static int hf_dvb_s2_tbtp_frame_number
;
112 static int hf_dvb_s2_tbtp_btb_loop_count
;
113 static int hf_dvb_s2_tbtp_btp
;
114 static int hf_dvb_s2_tbtp_multiple_channel_flag
;
115 static int hf_dvb_s2_tbtp_assignment_type
;
116 static int hf_dvb_s2_tbtp_frame_vbdc_queue_empty_flag
;
117 static int hf_dvb_s2_tbtp_start_slot
;
118 static int hf_dvb_s2_tbtp_channel_id
;
119 static int hf_dvb_s2_tbtp_logon_id
;
120 static int hf_dvb_s2_tbtp_assignment_count
;
122 static int hf_dvb_s2_table_group_id
;
123 static int hf_dvb_s2_table_assign_context
;
124 static int hf_dvb_s2_table_superframe_count
;
125 static int hf_dvb_s2_table_assign_format
;
126 static int hf_dvb_s2_table_frame_loop_count
;
127 static int hf_dvb_s2_table_frame_number
;
128 static int hf_dvb_s2_table_frame_assign_offset
;
129 static int hf_dvb_s2_table_frame_assign_loop_count
;
130 static int hf_dvb_s2_table_frame_assignment
;
131 static int hf_dvb_s2_table_frame_assign_id48
;
132 static int hf_dvb_s2_table_frame_assign_id8
;
133 static int hf_dvb_s2_table_frame_assign_id16
;
134 static int hf_dvb_s2_table_frame_assign_id24
;
135 static int hf_dvb_s2_table_frame_dynamic_tx_type
;
137 static int hf_dvb_s2_table_entry_loop_count
;
138 static int hf_dvb_s2_table_entry
;
139 static int hf_dvb_s2_table_entry_login_id
;
141 static int hf_dvb_s2_table_common_sytem_margin
;
142 static int hf_dvb_s2_table_tx_mode_count
;
143 static int hf_dvb_s2_table_tx_mode
;
144 static int hf_dvb_s2_table_tx_mode_frame_length
;
145 static int hf_dvb_s2_table_tx_mode_pilot_symbols
;
146 static int hf_dvb_s2_table_tx_mode_modcod
;
147 static int hf_dvb_s2_table_tx_mode_modcod_system_margin
;
148 static int hf_dvb_s2_table_tx_mode_isi
;
150 static int hf_dvb_s2_table_frame_type_loop_count
;
151 static int hf_dvb_s2_table_frame_type_branch
;
152 static int hf_dvb_s2_table_frame_type
;
153 static int hf_dvb_s2_table_frame_type_frame_duration
;
154 static int hf_dvb_s2_table_frame_type_tx_format_class
;
155 static int hf_dvb_s2_table_frame_type_btu_duration
;
156 static int hf_dvb_s2_table_frame_type_btu_carrier_bw
;
157 static int hf_dvb_s2_table_frame_type_btu_symbol_rate
;
158 static int hf_dvb_s2_table_frame_type_time_unit_count
;
159 static int hf_dvb_s2_table_frame_type_grid_repeat_count
;
160 static int hf_dvb_s2_table_frame_type_grid_frequency_offset
;
161 static int hf_dvb_s2_table_frame_type_section_loop_count
;
162 static int hf_dvb_s2_table_frame_type_section
;
163 static int hf_dvb_s2_table_frame_type_section_default_tx_type
;
164 static int hf_dvb_s2_table_frame_type_section_fix_acc_method
;
165 static int hf_dvb_s2_table_frame_type_section_repeat_count
;
167 static int hf_dvb_s2_table_frame_ID_loop_count
;
168 static int hf_dvb_s2_table_frame_ID_branch
;
169 static int hf_dvb_s2_table_frame_ID
;
170 static int hf_dvb_s2_table_frame_ID_frame_duration
;
171 static int hf_dvb_s2_table_frame_ID_total_timeslot_count
;
172 static int hf_dvb_s2_table_frame_ID_start_timeslot_number
;
173 static int hf_dvb_s2_table_frame_ID_timeslot_loop_count
;
174 static int hf_dvb_s2_table_frame_ID_timeslot
;
175 static int hf_dvb_s2_table_frame_ID_timeslot_timeslot_frequency_offset
;
176 static int hf_dvb_s2_table_frame_ID_timeslot_timeslot_time_offset
;
177 static int hf_dvb_s2_table_frame_ID_timeslot_timeslot_id
;
178 static int hf_dvb_s2_table_frame_ID_timeslot_repeat_count
;
180 static int hf_dvb_s2_table_tx_type_loop_count
;
181 static int hf_dvb_s2_table_tx_type_branch
;
182 static int hf_dvb_s2_table_tx_type
;
183 static int hf_dvb_s2_table_tx_type_tx_content_type
;
184 static int hf_dvb_s2_table_tx_type_tx_format_class
;
185 static int hf_dvb_s2_table_tx_type_tx_format_data_length
;
186 static int hf_dvb_s2_table_tx_type_tx_format_data
;
188 static int hf_dvb_s2_table_tx_type_tx_block_size
;
189 static int hf_dvb_s2_table_tx_type_threshold_es_n0
;
190 static int hf_dvb_s2_table_tx_type_payload_size
;
191 static int hf_dvb_s2_table_tx_type_modulation_scheme
;
192 static int hf_dvb_s2_table_tx_type_p
;
193 static int hf_dvb_s2_table_tx_type_q0
;
194 static int hf_dvb_s2_table_tx_type_q1
;
195 static int hf_dvb_s2_table_tx_type_q2
;
196 static int hf_dvb_s2_table_tx_type_q3
;
197 static int hf_dvb_s2_table_tx_type_y_period
;
198 static int hf_dvb_s2_table_tx_type_w_period
;
199 static int hf_dvb_s2_table_tx_type_y_pattern
;
200 static int hf_dvb_s2_table_tx_type_y_pattern_bit
;
201 static int hf_dvb_s2_table_tx_type_w_pattern
;
202 static int hf_dvb_s2_table_tx_type_w_pattern_bit
;
203 static int hf_dvb_s2_table_tx_type_preamble_len
;
204 static int hf_dvb_s2_table_tx_type_postamble_len
;
205 static int hf_dvb_s2_table_tx_type_pilot_period
;
206 static int hf_dvb_s2_table_tx_type_pilot_block_len
;
207 static int hf_dvb_s2_table_tx_type_pilot_sum
;
208 static int hf_dvb_s2_table_tx_type_uw_symbol
;
209 static int hf_dvb_s2_table_tx_type_uw_symbol_unit
;
210 static int hf_dvb_s2_table_tx_type_uw_symbol_qpsk
;
211 static int hf_dvb_s2_table_tx_type_uw_symbol_8psk
;
212 static int hf_dvb_s2_table_tx_type_uw_symbol_16qam
;
213 static int hf_dvb_s2_table_tx_type_waveform_id
;
214 static int hf_dvb_s2_table_tx_type_tx_start_offset
;
216 static int hf_dvb_s2_table_tx_type_tx_start_offset_1
;
217 static int hf_dvb_s2_table_tx_type_tx_start_offset_2
;
219 static int hf_dvb_s2_table_tx_type_modulation_mh
;
220 static int hf_dvb_s2_table_tx_type_modulation_ph
;
221 static int hf_dvb_s2_table_tx_type_modulation_type
;
222 static int hf_dvb_s2_table_tx_type_alpha_rc
;
223 static int hf_dvb_s2_table_tx_type_code_rate
;
224 static int hf_dvb_s2_table_tx_type_constraint_length_k
;
225 static int hf_dvb_s2_table_tx_type_uw_length
;
226 static int hf_dvb_s2_table_tx_type_nbr_uw_segments
;
227 static int hf_dvb_s2_table_tx_type_uw_segment
;
228 static int hf_dvb_s2_table_tx_type_uw_segment_start
;
229 static int hf_dvb_s2_table_tx_type_uw_segment_length
;
230 static int hf_dvb_s2_table_tx_type_param_interleaver
;
231 static int hf_dvb_s2_table_tx_type_n
;
232 static int hf_dvb_s2_table_tx_type_s
;
233 static int hf_dvb_s2_table_tx_type_p_interleaver
;
234 static int hf_dvb_s2_table_tx_type_n1_12
;
235 static int hf_dvb_s2_table_tx_type_k1_12
;
236 static int hf_dvb_s2_table_tx_type_K2_12
;
237 static int hf_dvb_s2_table_tx_type_K3_12
;
238 static int hf_dvb_s2_table_tx_type_pi_i
;
240 static int hf_dvb_s2_table_satellite_loop_count
;
241 static int hf_dvb_s2_table_satellite
;
242 static int hf_dvb_s2_table_satellite_id
;
243 static int hf_dvb_s2_table_satellite_x_coordinate
;
244 static int hf_dvb_s2_table_satellite_y_coordinate
;
245 static int hf_dvb_s2_table_satellite_z_coordinate
;
247 static int hf_dvb_s2_table_network_descriptors_length
;
248 static int hf_dvb_s2_table_multiplex_streams_spec_length
;
249 static int hf_dvb_s2_table_multiplex
;
250 static int hf_dvb_s2_table_multiplex_forward_multiplex
;
251 static int hf_dvb_s2_table_multiplex_reward_multiplex
;
252 static int hf_dvb_s2_table_multiplex_original_network_id
;
253 static int hf_dvb_s2_table_multiplex_transport_descriptors_length
;
255 static int hf_dvb_s2_reserved_future_use
;
256 static int hf_dvb_s2_reserved_tdt
;
257 static int hf_dvb_s2_tdt_date
;
258 static int hf_dvb_s2_tdt_hour
;
259 static int hf_dvb_s2_tdt_minute
;
260 static int hf_dvb_s2_tdt_second
;
262 static int hf_dvb_s2_table_svn_number
;
263 static int hf_dvb_s2_table_svn_prefix_size
;
264 static int hf_dvb_s2_table_pt_count
;
265 static int hf_dvb_s2_table_protocol
;
266 static int hf_dvb_s2_table_pt_protocol_type
;
267 static int hf_dvb_s2_table_pt_address_size
;
268 static int hf_dvb_s2_table_pt_mapping_sections
;
269 static int hf_dvb_s2_table_pt_mapping_section
;
270 static int hf_dvb_s2_table_pt_ms_inclusion_start
;
271 static int hf_dvb_s2_table_pt_ms_inclusion_end
;
272 static int hf_dvb_s2_table_pt_ms_exclusions
;
273 static int hf_dvb_s2_table_pt_ms_exclusion
;
274 static int hf_dvb_s2_table_pt_ms_exclusion_start
;
275 static int hf_dvb_s2_table_pt_ms_exclusion_end
;
276 static int hf_dvb_s2_table_pt_ms_mac24_base
;
277 static int hf_dvb_s2_table_pt_ms_mcast_prefix_size
;
280 static int hf_dvb_s2_table_descriptor
;
281 static int hf_dvb_s2_table_desc_tag
;
282 static int hf_dvb_s2_table_desc_length
;
283 static int hf_dvb_s2_table_nnd_char
;
284 /* Linkage Descriptor */
285 static int hf_dvb_s2_table_ld_fm_id
;
286 static int hf_dvb_s2_table_ld_on_id
;
287 static int hf_dvb_s2_table_ld_rm_id
;
288 static int hf_dvb_s2_table_ld_service_id
;
289 static int hf_dvb_s2_table_ld_linkage_type
;
290 static int hf_dvb_s2_table_ld_ho_type
;
291 static int hf_dvb_s2_table_ld_reserved_future_use
;
292 static int hf_dvb_s2_table_ld_origin_type
;
293 static int hf_dvb_s2_table_ld_network_id
;
294 static int hf_dvb_s2_table_ld_initial_service_id
;
295 static int hf_dvb_s2_table_ld_target_event_id
;
296 static int hf_dvb_s2_table_ld_target_listed
;
297 static int hf_dvb_s2_table_ld_event_simulcast
;
298 static int hf_dvb_s2_table_ld_reserved
;
299 static int hf_dvb_s2_table_ld_private_data
;
300 static int hf_dvb_s2_table_ld_population_id_loop_count
;
301 static int hf_dvb_s2_table_ld_population_id_base
;
302 static int hf_dvb_s2_table_ld_population_id_mask
;
304 /* Satellite Return Link Descriptor */
305 static int hf_dvb_s2_table_srld_satellite_id
;
306 static int hf_dvb_s2_table_srld_beam_id
;
307 static int hf_dvb_s2_table_srld_gateway_id
;
308 static int hf_dvb_s2_table_srld_reserved
;
309 static int hf_dvb_s2_table_srld_orbital_position
;
310 static int hf_dvb_s2_table_srld_west_east_flag
;
311 static int hf_dvb_s2_table_srld_superframe_sequence
;
312 static int hf_dvb_s2_table_srld_tx_frequency_offset
;
313 static int hf_dvb_s2_table_srld_zero_frequency_offset
;
314 static int hf_dvb_s2_table_srld_private_data
;
315 /* Logon Initialize Descriptor */
316 static int hf_dvb_s2_table_lid_group_id
;
317 static int hf_dvb_s2_table_lid_logon_id
;
318 static int hf_dvb_s2_table_lid_continuous_carrier
;
319 static int hf_dvb_s2_table_lid_security_handshake
;
320 static int hf_dvb_s2_table_lid_prefix_flag
;
321 static int hf_dvb_s2_table_lid_data_unit_label_flag
;
322 static int hf_dvb_s2_table_lid_mini_slot_flag
;
323 static int hf_dvb_s2_table_lid_contention_based_mini_slot_flag
;
324 static int hf_dvb_s2_table_lid_capacity_type_flag
;
325 static int hf_dvb_s2_table_lid_traffic_burst_type
;
326 static int hf_dvb_s2_table_lid_connectivity
;
327 static int hf_dvb_s2_table_lid_return_vpi
;
328 static int hf_dvb_s2_table_lid_return_vci
;
329 static int hf_dvb_s2_table_lid_return_signalling_vpi
;
330 static int hf_dvb_s2_table_lid_return_signalling_vci
;
331 static int hf_dvb_s2_table_lid_forward_signalling_vpi
;
332 static int hf_dvb_s2_table_lid_forward_signalling_vci
;
333 static int hf_dvb_s2_table_lid_return_trf_pid
;
334 static int hf_dvb_s2_table_lid_return_ctrl_mngm_pid
;
335 static int hf_dvb_s2_table_lid_cra_level
;
336 static int hf_dvb_s2_table_lid_vbdc_max
;
337 static int hf_dvb_s2_table_lid_rbdc_max
;
338 static int hf_dvb_s2_table_lid_rbdc_timeout
;
339 /* Forward Interaction Path Descriptor */
340 static int hf_dvb_s2_table_fipd_original_network_id
;
341 static int hf_dvb_s2_table_fipd_transport_stream_id
;
342 static int hf_dvb_s2_table_fipd_pid_loop_count
;
343 static int hf_dvb_s2_table_fipd_pid
;
344 /* Return Interaction Path Descriptor */
345 static int hf_dvb_s2_table_ripd_continuous_carrier
;
346 static int hf_dvb_s2_table_ripd_network_routing_label_loop_count
;
347 static int hf_dvb_s2_table_ripd_allocation_desallocation_flag
;
348 static int hf_dvb_s2_table_ripd_pid_flag
;
349 static int hf_dvb_s2_table_ripd_pid_loop_count
;
350 static int hf_dvb_s2_table_ripd_pid
;
351 static int hf_dvb_s2_table_ripd_vpi_vci_flag
;
352 static int hf_dvb_s2_table_ripd_vpi_vci_loop_count
;
353 static int hf_dvb_s2_table_ripd_vpi
;
354 static int hf_dvb_s2_table_ripd_vci
;
355 static int hf_dvb_s2_table_ripd_route_id_flag
;
356 static int hf_dvb_s2_table_ripd_route_id_loop_count
;
357 static int hf_dvb_s2_table_ripd_route_id
;
358 static int hf_dvb_s2_table_ripd_channel_id
;
359 static int hf_dvb_s2_desc_network_routing
;
360 /* Correction Control Descriptor */
361 static int hf_dvb_s2_table_corcd_acq_response_timeout
;
362 static int hf_dvb_s2_table_corcd_sync_response_timeout
;
363 static int hf_dvb_s2_table_corcd_acq_max_losses
;
364 static int hf_dvb_s2_table_corcd_sync_max_losses
;
365 /* Contention Control Descriptor */
366 static int hf_dvb_s2_table_concd_superframe_id
;
367 static int hf_dvb_s2_table_concd_csc_response_timeout
;
368 static int hf_dvb_s2_table_concd_csc_max_losses
;
369 static int hf_dvb_s2_table_concd_max_time_before_retry
;
371 /* Control assign descriptor */
372 static int hf_dvb_s2_table_desc_sync_achieved_time_threshold
;
373 static int hf_dvb_s2_table_desc_max_sync_tries
;
374 static int hf_dvb_s2_table_desc_sync_achieved_freq_threshold
;
375 static int hf_dvb_s2_table_desc_ctrl_start_superframe_count
;
376 static int hf_dvb_s2_table_desc_ctrl_frame_nbr
;
377 static int hf_dvb_s2_table_desc_ctrl_repeat_period
;
378 static int hf_dvb_s2_table_desc_ctrl_timeslot_nbr
;
379 static int hf_dvb_s2_table_desc_sync_start_superframe
;
380 static int hf_dvb_s2_table_desc_sync_frame_nbr
;
381 static int hf_dvb_s2_table_desc_sync_repeat_period
;
382 static int hf_dvb_s2_table_desc_sync_slot_nbr
;
383 /* Correction message descriptor */
384 static int hf_dvb_s2_table_desc_time_correct_flag
;
385 static int hf_dvb_s2_table_desc_power_correct_flag
;
386 static int hf_dvb_s2_table_desc_freq_correct_flag
;
387 static int hf_dvb_s2_table_desc_slot_type
;
388 static int hf_dvb_s2_table_desc_burst_time_scaling
;
389 static int hf_dvb_s2_table_desc_burst_time_correct
;
390 static int hf_dvb_s2_table_desc_power_ctrl_flag
;
391 static int hf_dvb_s2_table_desc_power_correction
;
392 static int hf_dvb_s2_table_desc_power_esn0
;
393 static int hf_dvb_s2_table_desc_freq_correction
;
394 /* Correction message extension descriptor */
395 static int hf_dvb_s2_table_desc_slot_nbr
;
396 static int hf_dvb_s2_table_desc_sf_sequence
;
397 static int hf_dvb_s2_table_desc_frame_number
;
398 /* Logon response descriptor */
399 static int hf_dvb_s2_table_desc_keep_id_after_logoff
;
400 static int hf_dvb_s2_table_desc_power_ctrl_mode
;
401 static int hf_dvb_s2_table_desc_rcst_access_status
;
402 static int hf_dvb_s2_table_desc_logon_id
;
403 static int hf_dvb_s2_table_desc_lowest_assign_id
;
404 static int hf_dvb_s2_table_desc_assign_id_count
;
405 static int hf_dvb_s2_table_desc_unicast_mac24_count
;
406 /* Satellite Forward Link Descriptor */
407 static int hf_dvb_s2_table_sfld_satellite_id
;
408 static int hf_dvb_s2_table_sfld_beam_id
;
409 static int hf_dvb_s2_table_sfld_ncc_id
;
410 static int hf_dvb_s2_table_sfld_multiplex_usage
;
411 static int hf_dvb_s2_table_sfld_local_multiplex_id
;
412 static int hf_dvb_s2_table_sfld_frequency
;
413 static int hf_dvb_s2_table_sfld_orbital_position
;
414 static int hf_dvb_s2_table_sfld_west_east_flag
;
415 static int hf_dvb_s2_table_sfld_polarization
;
416 static int hf_dvb_s2_table_sfld_transmission_standard
;
417 static int hf_dvb_s2_table_sfld_scrambling_sequence_selector
;
418 static int hf_dvb_s2_table_sfld_roll_off
;
419 static int hf_dvb_s2_table_sfld_symbol_rate
;
420 static int hf_dvb_s2_table_sfld_fec_inner
;
421 static int hf_dvb_s2_table_sfld_input_stream_identifier
;
422 static int hf_dvb_s2_table_sfld_reserved_for_forward_spreading
;
423 static int hf_dvb_s2_table_sfld_scrambling_sequence_index
;
424 static int hf_dvb_s2_table_sfld_private_data
;
425 static int hf_dvb_s2_table_sfld_ncr_private_data
;
426 static int hf_dvb_s2_table_sfld_ncr_base_private_data
;
427 static int hf_dvb_s2_table_sfld_ncr_ext_private_data
;
429 static int hf_dvb_s2_table_mac24
;
430 static int hf_dvb_s2_table_mac24_prefix_size
;
431 static int hf_dvb_s2_table_mac24_unicast
;
432 static int hf_dvb_s2_table_mac24_mcast_mapping_method
;
433 static int hf_dvb_s2_table_mac24_mcast_ip_version_ind_pres
;
434 static int hf_dvb_s2_table_mac24_mcast_synthesis_field_size
;
435 static int hf_dvb_s2_table_desc_default_svn_number
;
436 static int hf_dvb_s2_table_desc_reserved
;
437 /* Lower layer service descriptor */
438 static int hf_dvb_s2_table_desc_default_ctrl_random_interval
;
439 static int hf_dvb_s2_table_desc_dynamic_rate_persistence
;
440 static int hf_dvb_s2_table_desc_volume_backlog_persistence
;
441 static int hf_dvb_s2_table_desc_lls_count
;
442 static int hf_dvb_s2_table_desc_rc_count
;
443 static int hf_dvb_s2_table_desc_ra_ac_count
;
445 static int hf_dvb_s2_table_lls
;
446 static int hf_dvb_s2_table_lls_index
;
447 static int hf_dvb_s2_table_lls_random_access
;
448 static int hf_dvb_s2_table_lls_dedicated_access
;
449 static int hf_dvb_s2_table_lls_nominal_rc_index
;
450 static int hf_dvb_s2_table_lls_nominal_da_ac_index
;
451 static int hf_dvb_s2_table_lls_conditional_demand_rc_map
;
452 static int hf_dvb_s2_table_lls_conditional_scheduler_da_ac_map
;
453 static int hf_dvb_s2_table_lls_nominal_ra_ac_index
;
454 static int hf_dvb_s2_table_lls_conditional_scheduler_ra_ac_map
;
456 /* Mobility Control descriptor */
457 static int hf_dvb_s2_table_mc_command_value
;
458 static int hf_dvb_s2_table_mc_command_parameter
;
460 static int hf_dvb_s2_table_lsvd_group_count
;
461 static int hf_dvb_s2_table_lsvd_oui
;
462 static int hf_dvb_s2_table_lsvd_mcast_address
;
463 static int hf_dvb_s2_table_lsvd_mcast_port
;
464 static int hf_dvb_s2_table_lsvd_version_field_length
;
465 static int hf_dvb_s2_table_lsvd_version_bytes
;
467 static int hf_dvb_s2_table_rc
;
468 static int hf_dvb_s2_table_rc_index
;
469 static int hf_dvb_s2_table_rc_constant_assignment_provided
;
470 static int hf_dvb_s2_table_rc_volume_allowed
;
471 static int hf_dvb_s2_table_rc_rbdc_allowed
;
472 static int hf_dvb_s2_table_rc_maximum_service_rate
;
473 static int hf_dvb_s2_table_rc_minimum_service_rate
;
474 static int hf_dvb_s2_table_rc_constant_service_rate
;
475 static int hf_dvb_s2_table_rc_maximum_backlog
;
477 static int hf_dvb_s2_table_ra_ac
;
478 static int hf_dvb_s2_table_ra_ac_index
;
479 static int hf_dvb_s2_table_ra_ac_max_unique_payload_per_block
;
480 static int hf_dvb_s2_table_ra_ac_max_consecutive_block_accessed
;
481 static int hf_dvb_s2_table_ra_ac_min_idle_block
;
482 static int hf_dvb_s2_table_ra_ac_defaults_field_size
;
483 static int hf_dvb_s2_table_ra_ac_defaults_for_ra_load_control
;
485 static int hf_dvb_s2_table_crc32
;
487 /* Initialize the subtree pointers */
488 static int ett_dvb_s2_hdr_table_network_routing
;
489 static int ett_dvb_s2_hdr_table
;
490 static int ett_dvb_s2_hdr_table_sf
;
491 static int ett_dvb_s2_hdr_table_sf_frame
;
492 static int ett_dvb_s2_hdr_table_desc
;
493 static int ett_dvb_s2_hdr_table_frame
;
494 static int ett_dvb_s2_hdr_table_frame_assign
;
495 static int ett_dvb_s2_hdr_table_entry
;
496 static int ett_dvb_s2_hdr_table_mac24
;
497 static int ett_dvb_s2_hdr_table_frametype
;
498 static int ett_dvb_s2_hdr_table_frame_ID
;
499 static int ett_dvb_s2_hdr_table_frame_ID_timeslot
;
500 static int ett_dvb_s2_hdr_table_frametype_section
;
501 static int ett_dvb_s2_hdr_table_lls
;
502 static int ett_dvb_s2_hdr_table_rc
;
503 static int ett_dvb_s2_hdr_table_raac
;
504 static int ett_dvb_s2_hdr_table_txmode
;
505 static int ett_dvb_s2_hdr_table_txtype
;
506 static int ett_dvb_s2_hdr_table_txtype_ypattern
;
507 static int ett_dvb_s2_hdr_table_txtype_wpattern
;
508 static int ett_dvb_s2_hdr_table_txtype_uwsymbol
;
509 static int ett_dvb_s2_hdr_table_txtype_uwsegment
;
510 static int ett_dvb_s2_hdr_table_satellite
;
511 static int ett_dvb_s2_hdr_table_multiplex
;
512 static int ett_dvb_s2_hdr_table_pt
;
513 static int ett_dvb_s2_hdr_table_pt_ms
;
514 static int ett_dvb_s2_hdr_table_pt_ms_exclusion
;
515 static int ett_dvb_s2_hdr_tbtp_frame
;
516 static int ett_dvb_s2_hdr_tbtp_frame_btp
;
518 static const value_string table_modcods
[] = {
519 { 0, "DUMMY PLFRAME"},
554 #define DVB_S2_TABLE_SECTION_MASK 0x80
555 #define DVB_S2_TABLE_PRIVATE_MASK 0x40
556 #define DVB_S2_TABLE_RESERVED_MASK 0x30
557 #define DVB_S2_TABLE_MSB_LEN_MASK 0x0F
558 #define DVB_S2_TABLE_RESERVED2_MASK 0xC0
559 #define DVB_S2_TABLE_VERSION_NUMBER_MASK 0x3E
560 #define DVB_S2_TABLE_CURRENT_NEXT_INDICATOR_MASK 0x01
562 #define DVB_S2_TABLE_SECTION_SYNTAX_INDIC_MASK 0x80
563 #define DVB_S2_TABLE_PRIVATE_INDICATOR_MASK 0x40
564 #define DVB_S2_TABLE_RESERVED_ONE_MASK 0x30
565 #define DVB_S2_TABLE_SECTION_LENGTH_MASK 0x0FFF
566 #define DVB_S2_TABLE_RESERVED_TWO_MASK 0xC0
567 #define DVB_S2_TABLE_PAYLOAD_SCRAMBLING_MASK 0x30
568 #define DVB_S2_TABLE_ADDRESS_SCRAMBLING_MASK 0x0C
569 #define DVB_S2_TABLE_LLC_SNAP_MASK 0x02
571 #define DVB_S2_TABLE_SMT_SECTION_INDICATOR_MASK 0x8000
572 #define DVB_S2_TABLE_SMT_FUTUR_USE_MASK 0x4000
573 #define DVB_S2_TABLE_SMT_RESERVED_MASK 0x3000
574 #define DVB_S2_TABLE_SMT_SECTION_LENGTH_MASK 0x0FFF
576 #define DVB_S2_TABLE_SCT_LARGE_TIMING_FLAG_MASK 0x80
577 #define DVB_S2_TABLE_SCT_UPLINK_POLARIZATION_MASK 0x03
578 #define DVB_S2_TABLE_SCT_START_TIME_BASE_MASK 0x8000
579 #define DVB_S2_TABLE_SCT_START_TIME_EXT_MASK 0x01FF
580 #define DVB_S2_TABLE_SCT_FRAME_LOOP_COUNT_MASK 0x1F
581 #define DVB_S2_TABLE_TBTP_BTP_LOOP_COUNT_MASK 0x07FF
582 #define DVB_S2_TABLE_TBTP_FRAME_NUMBER_MASK 0x1F
583 #define DVB_S2_TABLE_TBTP_MULTIPLE_CHANNEL_FLAG_MASK 0x80
584 #define DVB_S2_TABLE_TBTP_ASSIGNMENT_TYPE_MASK 0x60
585 #define DVB_S2_TABLE_TBTP_VBDC_FLAG_MASK 0x10
586 #define DVB_S2_TABLE_TBTP_START_SLOT_MASK 0x07FF
588 #define DVB_S2_TABLE_FRAME_TYPE_SECTION_FAM_MASK 0xC
589 #define DVB_S2_TABLE_FRAME_ID_TOT_TIME_COUNT_MASK 0x07FF
590 #define DVB_S2_TABLE_NETWORK_DESC_LENGTH_MASK 0x0FFF
591 #define DVB_S2_TABLE_MULTIPLEX_STREAMS_LENGTH_MASK 0x0FFF
592 #define DVB_S2_TABLE_MULTIPLEX_TRANSPORT_DESC_LENGTH_MASK 0x0FFF
593 #define DVB_S2_TABLE_SVN_PREFIX_SIZE_MASK 0x1F
594 #define DVB_S2_TABLE_PT_MS_MCAST_PREFIX_SIZE_MASK 0x1F
595 #define DVB_S2_TABLE_TX_TYPE_TX_START_OFFSET_MASK 0x0FFFFF
596 #define DVB_S2_TABLE_TX_TYPE_QX_MASK 0x0F
597 #define DVB_S2_TABLE_TX_TYPE_W_Y_PERIOD_MASK 0x1F
598 #define DVB_S2_TABLE_TX_TYPE_PILOT_PERIOD_MASK 0x0FFF
599 #define DVB_S2_TABLE_TX_TYPE_W_Y_PATTERN_BIT_MASK 0x80
600 #define DVB_S2_TABLE_TX_TYPE_MODULATION_MH_MASK 0xE0
601 #define DVB_S2_TABLE_TX_TYPE_MODULATION_PH_MASK 0x1C
602 #define DVB_S2_TABLE_TX_TYPE_MODULATION_TYPE_MASK 0x01
603 #define DVB_S2_TABLE_TX_TYPE_CODE_RATE_MASK 0x1C
604 #define DVB_S2_TABLE_TX_TYPE_CONSTRAINT_LENGTH_K_MASK 0x01
605 #define DVB_S2_TABLE_TX_TYPE_PARAM_INTERLEAVER_MASK 0x01
606 #define DVB_S2_TABLE_TX_TYPE_N_MASK 0xFFF0
607 #define DVB_S2_TABLE_TX_TYPE_S_MASK 0x0FC0
608 #define DVB_S2_TABLE_TX_TYPE_P_MASK 0x3FF0
609 #define DVB_S2_TABLE_TX_TYPE_N1_12_MASK 0x0FF8
610 #define DVB_S2_TABLE_TX_TYPE_K1_12_MASK 0x07FC
611 #define DVB_S2_TABLE_TX_TYPE_K2_12_MASK 0x03FE
612 #define DVB_S2_TABLE_TX_TYPE_K3_12_MASK 0x01FF
613 #define DVB_S2_TABLE_TX_TYPE_UW_SYMBOL_QPSK_MASK 0xC0
614 #define DVB_S2_TABLE_TX_TYPE_UW_SYMBOL_8PSK_MASK 0xE0
615 #define DVB_S2_TABLE_TX_TYPE_UW_SYMBOL_16QAM_MASK 0xF0
617 #define DVB_S2_TABLE_DESC_TIME_CORRECT_FLAG_MASK 0x80
618 #define DVB_S2_TABLE_DESC_POWER_CORRECT_FLAG_MASK 0x40
619 #define DVB_S2_TABLE_DESC_FREQ_CORRECT_FLAG_MASK 0x20
620 #define DVB_S2_TABLE_DESC_SLOT_TYPE_MASK 0x18
621 #define DVB_S2_TABLE_DESC_BURST_TIME_SCALING_MASK 0x7
622 #define DVB_S2_TABLE_DESC_POWER_CTRL_FLAG_MASK 0x80
623 #define DVB_S2_TABLE_DESC_POWER_CORRECTION_MASK 0x7F
624 #define DVB_S2_TABLE_DESC_KEEP_ID_AFTER_LOGOFF_MASK 0x40
625 #define DVB_S2_TABLE_DESC_POWER_CTRLMODE_MASK 0x30
626 #define DVB_S2_TABLE_DESC_RCST_ACCESS_STATUS_MASK 0x0F
627 #define DVB_S2_TABLE_DESC_ASSIGN_ID_COUNT_MASK 0xF0
628 #define DVB_S2_TABLE_DESC_UNICAST_MAC24_COUNT_MASK 0x0F
629 #define DVB_S2_TABLE_DESC_LLS_COUNT_MASK 0x0F
630 #define DVB_S2_TABLE_DESC_RC_COUNT_MASK 0x0F
631 #define DVB_S2_TABLE_DESC_RA_AC_COUNT_MASK 0x0F
632 #define DVB_S2_TABLE_DESC_CTRL_TIMESLOT_NBR_MASK 0x07FF
633 #define DVB_S2_TABLE_DESC_SYNC_FRAME_NBR_MASK 0x07FF
634 #define DVB_S2_TABLE_DESC_PID_LOOP_COUNT 0x0F
636 #define DVB_S2_TABLE_DESC_HAND_OVER_TYPE_MASK 0xF0
637 #define DVB_S2_TABLE_DESC_ORIGIN_TYPE_MASK 0x01
638 #define DVB_S2_TABLE_DESC_RESERVED_FOR_FUTURE_USE_MASK 0x0E
639 #define DVB_S2_TABLE_DESC_CAPCITY_TYPE_FLAG_MASK 0x40
640 #define DVB_S2_TABLE_DESC_TRAFFIC_BURST_TYPE_MASK 0x20
641 #define DVB_S2_TABLE_DESC_CONNECTIVITY_MASK 0x10
642 #define DVB_S2_TABLE_DESC_TRANSMISSION_STANDARD_MASK 0x18
643 #define DVB_S2_TABLE_DESC_SCRAMBLING_SEQUENCE_SELECTOR_MASK 0x04
645 #define DVB_S2_TABLE_DESC_NETWORK_ROUTING_LABEL 0x0F
646 #define DVB_S2_TABLE_DESC_PID_FLAG_MASK 0x01
647 #define DVB_S2_TABLE_DESC_VPI_VCI_FLAG_MASK 0x01
648 #define DVB_S2_TABLE_DESC_ROUTE_ID_FLAG_MASK 0x01
650 #define DVB_S2_TABLE_RA_AC_INDEX_MASK 0x0F
651 #define DVB_S2_TABLE_RC_RBDC_ALLOWED_MASK 0x01
652 #define DVB_S2_TABLE_RC_VOLUME_ALLOWED_MASK 0x02
653 #define DVB_S2_TABLE_RC_CONSTANT_ASSIGN_MASK 0x04
654 #define DVB_S2_TABLE_RC_INDEX_MASK 0xF0
655 #define DVB_S2_TABLE_LLS_NOMINAL_RA_AC_INDEX_MASK 0x0F
656 #define DVB_S2_TABLE_LLS_NOMINAL_DA_AC_INDEX_MASK 0x0F
657 #define DVB_S2_TABLE_LLS_NOMINAL_RC_INDEX_MASK 0xF0
658 #define DVB_S2_TABLE_LLS_DEDICATED_ACCESS_MASK 0x01
659 #define DVB_S2_TABLE_LLS_RANDOM_ACCESS_MASK 0x02
660 #define DVB_S2_TABLE_LLS_INDEX_MASK 0x3C
662 #define DVB_S2_TABLE_MAC24_PREFIX_SIZE_MASK 0x1F
663 #define DVB_S2_TABLE_MAC24_MAPPING_METHOD_MASK 0x40
664 #define DVB_S2_TABLE_MAC24_MCAST_IP_VERSION_IND_PRES_MASK 0x20
665 #define DVB_S2_TABLE_MAC24_MCAST_SYNTHESIS_FIELD_SIZE_MASK 0x1F
667 #define DVB_S2_TABLE_TX_MODE_FRAME_LENGTH_MASK 0xC0
668 #define DVB_S2_TABLE_TX_MODE_PILOT_SYMBOLS_MASK 0x20
669 #define DVB_S2_TABLE_TX_MODE_MODCOD_MASK 0x1F
671 #define DVB_S2_TABLE_ENTRY_SIZE 8
672 #define DVB_S2_TABLE_TX_MODE_SIZE 3
673 #define DVB_S2_TABLE_SAT_SIZE 13
674 #define DVB_S2_TABLE_TX_TYPE_UW_SEGMENT_SIZE 3
676 #define DVB_S2_TABLE_PAT 0x00
677 #define DVB_S2_TABLE_CAT 0x01
678 #define DVB_S2_TABLE_PMT 0x02
679 #define DVB_S2_TABLE_NIT 0x40
680 #define DVB_S2_TABLE_RMT 0x41
681 #define DVB_S2_TABLE_SDT 0x42
682 #define DVB_S2_TABLE_TDT 0x70
683 #define DVB_S2_TABLE_SCT 0xA0
684 #define DVB_S2_TABLE_FCT 0xA1
685 #define DVB_S2_TABLE_TCT 0xA2
686 #define DVB_S2_TABLE_SPT 0xA3
687 #define DVB_S2_TABLE_CMT 0xA4
688 #define DVB_S2_TABLE_TBTP 0xA5
689 #define DVB_S2_TABLE_PCR 0xA6
690 #define DVB_S2_TABLE_TMST 0xAA
691 #define DVB_S2_TABLE_TCTE 0xAB
692 #define DVB_S2_TABLE_FCT2 0xAB
693 #define DVB_S2_TABLE_BCT 0xAC
694 #define DVB_S2_TABLE_TBTP2 0xAD
695 #define DVB_S2_TABLE_TMST2 0xAE
696 #define DVB_S2_TABLE_FAT 0xAF
697 #define DVB_S2_TABLE_TIM 0xB0
698 #define DVB_S2_TABLE_MMT2 0xB2
699 #define DVB_S2_TABLE_MMT 0xC0
700 #define DVB_S2_TABLE_SMT 0x80
701 #define DVB_S2_TABLE_TIMB 0xFE
703 #define DVB_S2_NCR_SIZE 6
705 static const value_string tabletype
[] = {
706 {DVB_S2_TABLE_PAT
, "PAT"}, /**< Program Association Table */
707 {DVB_S2_TABLE_CAT
, "CAT"}, /**< Conditional Access Table */
708 {DVB_S2_TABLE_PMT
, "PMT"}, /**< Program Map Table */
709 {DVB_S2_TABLE_NIT
, "NIT"}, /**< Network Information Table */
710 {DVB_S2_TABLE_RMT
, "RMT"}, /**< RCS Mapping Table */
711 {DVB_S2_TABLE_SDT
, "SDT"}, /**< Service Description Table */
712 {DVB_S2_TABLE_TDT
, "TDT"}, /**< Time and Date Table */
713 {DVB_S2_TABLE_SCT
, "SCT"}, /**< Superframe Composition Table */
714 {DVB_S2_TABLE_FCT
, "FCT"}, /**< Frame Composition Table */
715 {DVB_S2_TABLE_TCT
, "TCT"}, /**< Timeslot Composition Table*/
716 {DVB_S2_TABLE_SPT
, "SPT"}, /**< Satellite Position Table */
717 {DVB_S2_TABLE_CMT
, "CMT"}, /**< Correction Message Table */
718 {DVB_S2_TABLE_TBTP
, "TBTP"}, /**< Terminal Burst Time Plan Table */
719 {DVB_S2_TABLE_PCR
, "PCR"}, /**< PCR Packet Payload */
720 {DVB_S2_TABLE_TMST
, "TMST"}, /**< Transmission Mode Support Table */
721 {DVB_S2_TABLE_TCTE
, "TCTE(RCS)-FCT2(RCS2)"}, /**< Timeslot Composition Table extended */
722 // {DVB_S2_TABLE_FCT2, "FCT2"}, /**< Frame Composition Table RCS2 */
723 {DVB_S2_TABLE_BCT
, "BCT"}, /**< Broadcast Configuration Table RCS2 */
724 {DVB_S2_TABLE_TBTP2
, "TBTP2"}, /**< Terminal Burst Time Plan Table RCS2 */
725 {DVB_S2_TABLE_TMST2
, "TMST2"}, /**< Transmission Mode Support Table RCS2 */
726 {DVB_S2_TABLE_FAT
, "FAT"}, /**< Fast Access Table RCS2 */
727 {DVB_S2_TABLE_TIM
, "TIM"}, /**< Terminal Information Message Table */
728 {DVB_S2_TABLE_MMT
, "MMT"}, /**< Multicast Mapping Table */
729 {DVB_S2_TABLE_MMT2
, "MMT2"}, /**< Multicast Mapping Table RCS2*/
730 {DVB_S2_TABLE_SMT
, "SMT"}, /**< Signal Measurement Table */
731 {DVB_S2_TABLE_TIMB
, "TIMB"}, /**< Broadcast TIM, for internal use only */
735 #define DVB_S2_TABLE_DESC_CTRL_ASSIGN 0xA4
736 #define DVB_S2_TABLE_DESC_CORRECTION_MSG 0xA1
737 #define DVB_S2_TABLE_DESC_CORRECTION_MSG_EXT 0xB1
738 #define DVB_S2_TABLE_DESC_LOGON_RESPONSE 0xB9
739 #define DVB_S2_TABLE_DESC_LOWER_LAYER_SERVICE 0xBB
741 #define DVB_S2_TABLE_DESC_NETWORK_NAME 0x40
742 #define DVB_S2_TABLE_DESC_LINKAGE 0x4A
743 #define DVB_S2_TABLE_DESC_SATELLITE_RETURN_LINK 0xA9
744 #define DVB_S2_TABLE_DESC_LOGON_INITIALIZE 0xA2
745 #define DVB_S2_TABLE_DESC_FORWARD_INTERACTION_PATH 0xAD
746 #define DVB_S2_TABLE_DESC_RETURN_INTERACTION_PATH 0xAE
747 #define DVB_S2_TABLE_DESC_NETWORK_LAYER_INFO 0xA0
748 #define DVB_S2_TABLE_DESC_CORRECTION_CONTROL 0xAC
749 #define DVB_S2_TABLE_DESC_CONTENTION_CONTROL 0xAB
750 #define DVB_S2_TABLE_DESC_SATELLITE_FORWARD_LINK 0xA8
751 #define DVB_S2_TABLE_DESC_MOBILITY_CONTROL 0xB0
752 #define DVB_S2_TABLE_DESC_LOWEST_SOFTWARE_VERSION 0xC5
754 static const value_string table_desc_type
[] = {
755 {DVB_S2_TABLE_DESC_LINKAGE
, "Linkage_descriptor"},
756 {DVB_S2_TABLE_DESC_LOGON_INITIALIZE
, "Logon Initialize Descriptor"},
757 {DVB_S2_TABLE_DESC_NETWORK_LAYER_INFO
, "Network_layer_info_descriptor"},
758 {DVB_S2_TABLE_DESC_CORRECTION_MSG
, "Correction_message_descriptor"},
759 {DVB_S2_TABLE_DESC_CTRL_ASSIGN
, "SYNC_assign_descriptor (RCS) - control_assign_descriptor (RCS2)"},
760 {0xA6, "Echo_value_descriptor"},
761 {0xA7, "RCS_content_descriptor"},
762 {DVB_S2_TABLE_DESC_SATELLITE_FORWARD_LINK
, "Satellite_forward_link_descriptor"},
763 {DVB_S2_TABLE_DESC_SATELLITE_RETURN_LINK
, "Satellite_return_link_descriptor"},
764 {DVB_S2_TABLE_DESC_CONTENTION_CONTROL
, "Contention_Control_descriptor (RCS) - logon_contention_descriptor (RCS2)"},
765 {DVB_S2_TABLE_DESC_CORRECTION_CONTROL
, "Correction_Control_descriptor"},
766 {DVB_S2_TABLE_DESC_FORWARD_INTERACTION_PATH
, "Forward Interaction Path Descriptor"},
767 {DVB_S2_TABLE_DESC_RETURN_INTERACTION_PATH
, "Return Interaction Path Descriptor"},
768 {0xB0, "Mobility_control_descriptor"},
769 {DVB_S2_TABLE_DESC_CORRECTION_MSG_EXT
, "Correction_message_extension_descriptor"},
770 {0xB2, "Return_Transmission_Modes_descriptor"},
771 {0xB5, "Implementation_type_descriptor"},
772 {0xB6, "LL_FEC_identifier_descriptor"},
773 {0xB7, "Frame_payload_format_descriptor"},
774 {0xB8, "Pointing_alignment_support_descriptor"},
775 {DVB_S2_TABLE_DESC_LOGON_RESPONSE
, "Logon_response_descriptor"},
776 {0xBA, "DHCP_option_descriptor"},
777 {DVB_S2_TABLE_DESC_LOWER_LAYER_SERVICE
, "lower_layer_service_descriptor"},
778 {0xBC, "TRANSEC_message_descriptor"},
779 {0xBD, "Forward_link_streams_descriptor"},
780 {0xBE, "Logon_Security_descriptor"},
781 {0xBF, "Transmission_offset_descriptor"},
782 {0xC0, "Random_assess_load_control_descriptor"},
783 {0xC1, "CLI_instruction_descriptor"},
784 {0xC2, "random_access_traffic_method_descriptor"},
785 {0xC4, "higher_layers_initialize_descriptor"},
786 {0xC5, "lowest_sw_version_descriptor"},
787 {0xC6, "Mesh_system_descriptor"},
788 {0xC7, "Extension_protocol_descriptor"},
789 {0xC8, "Continuous_carrier_control_descriptor"},
790 {DVB_S2_TABLE_DESC_NETWORK_NAME
, "Network Name Descriptor"},
794 static const value_string table_uplinkPolarization
[] = {
795 {0, "linear - horizontal"},
796 {1, "linear - vertical"},
797 {2, "circular - left"},
798 {3, "circular - right"},
802 #define DVB_S2_TABLE_TXFORMAT_LMBT 0x1
803 #define DVB_S2_TABLE_TXFORMAT_CPMBT 0x2
804 #define DVB_S2_TABLE_TXFORMAT_CT 0x3
805 #define DVB_S2_TABLE_TXFORMAT_SSLMBT 0x4
806 static const value_string table_frameType_txFormatClass
[] = {
808 {DVB_S2_TABLE_TXFORMAT_LMBT
, "Linear Modulation Burst Transmission"},
809 {DVB_S2_TABLE_TXFORMAT_CPMBT
, "Continuous Phase Modulation Burst Transmission"},
810 {DVB_S2_TABLE_TXFORMAT_CT
, "Continuous Transmission"},
811 {DVB_S2_TABLE_TXFORMAT_SSLMBT
, "Spread-Spectrum Linear Modulation Burst Transmission"},
815 static const value_string table_assignContext
[] = {
816 {0, "All traffic context"},
817 {1, "Transparent star traffic"},
819 {3, "Transparent mesh traffic"},
820 {4, "Continuous carrier"},
825 static const value_string table_timeslotContent
[] = {
833 static const value_string table_txType_contentType
[] = {
835 {1, "Logon payload"},
836 {2, "Control payload"},
837 {3, "Traffic and control payload"},
838 {4, "Traffic payload"},
842 #define DVB_S2_TABLE_MODULATION_SCHEME_BPSK 0x0
843 #define DVB_S2_TABLE_MODULATION_SCHEME_QPSK 0x1
844 #define DVB_S2_TABLE_MODULATION_SCHEME_8PSK 0x2
845 #define DVB_S2_TABLE_MODULATION_SCHEME_16QAM 0x3
846 #define DVB_S2_TABLE_MODULATION_SCHEME_PI2BPSK 0x5
847 static const value_string table_txType_modulationScheme
[] = {
848 {DVB_S2_TABLE_MODULATION_SCHEME_BPSK
, "Reserved (BPSK)"},
849 {DVB_S2_TABLE_MODULATION_SCHEME_QPSK
, "QPSK"},
850 {DVB_S2_TABLE_MODULATION_SCHEME_8PSK
, "8PSK"},
851 {DVB_S2_TABLE_MODULATION_SCHEME_16QAM
, "16QAM"},
853 {DVB_S2_TABLE_MODULATION_SCHEME_PI2BPSK
, "pi/2-BPSK"},
857 static const value_string table_txType_modulationType
[] = {
858 {0, "Quaternary - Linear mapping"},
859 {1, "Quaternary - Gray mapping"},
863 static const value_string table_txType_codeRate
[] = {
871 static const value_string table_txType_constraintLengthK
[] = {
877 static const value_string table_mobility_command_value
[] = {
878 {0x0000, "No Command"},
879 {0x0001, "Execute Forward And Return Link Handover"},
880 {0x0002, "Execute Forward Link Handover"},
881 {0x0003, "Execute Return Link Handover"},
882 {0x0005, "Send Transmitter Status Report"},
883 {0x0006, "Send Position Report"},
884 {0x0007, "Maximum NCR Time"},
888 #define DVB_S2_TABLE_HEADER_LEN 8
889 #define DVB_S2_TABLE_HEADER_RCS2_LEN 4
890 #define DVB_S2_TABLE_CRC32_LEN 4
891 #define DVB_S2_TABLE_SCT_FRAME_LEN 8
893 /* *** Code to actually dissect the packets *** */
894 static int dissect_dvb_s2_table_correct_msg(tvbuff_t
*tvb
, int cur_off
, proto_tree
*dvb_s2_hdr_table_tree
)
897 uint8_t time_correction_flag
, frequency_correction_flag
, power_correction_flag
, power_control_flag
;
899 time_correction_flag
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_DESC_TIME_CORRECT_FLAG_MASK
;
900 frequency_correction_flag
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_DESC_FREQ_CORRECT_FLAG_MASK
;
901 power_correction_flag
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_DESC_POWER_CORRECT_FLAG_MASK
;
902 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_desc_time_correct_flag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
903 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_desc_power_correct_flag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
904 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_desc_freq_correct_flag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
905 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_desc_slot_type
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
906 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_desc_burst_time_scaling
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
908 if(time_correction_flag
)
910 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_desc_burst_time_correct
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
913 if(power_correction_flag
)
915 power_control_flag
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_DESC_POWER_CTRL_FLAG_MASK
;
916 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_desc_power_ctrl_flag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
917 if(power_control_flag
)
918 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_desc_power_correction
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
920 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_desc_power_esn0
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
923 if(frequency_correction_flag
)
925 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_desc_freq_correction
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
933 static int dissect_dvb_s2_table_desc(tvbuff_t
*tvb
, int cur_off
, proto_tree
*dvb_s2_hdr_table_tree
, int desc_loop_count
, int table_id
, packet_info
*pinfo
)
936 int cur_desc
, lls_size
, rc_size
, raac_size
, new_off
= 0;
938 int linkage_type
= 0;
939 uint32_t hand_over_type
= 0;
940 uint32_t origin_type
= 0;
941 int remaning_data
= 0;
942 int capacity_type_flag
= 0;
943 int traffic_burst_type
= 0;
944 int connectivity
= 0;
945 int pid_loop_count
= 0;
947 int network_routing_label_loop_count
= 0;
950 int vpi_vci_flag
= 0;
951 int vpi_vci_loop_count
= 0;
954 int route_id_flag
= 0;
955 int route_id_loop_count
= 0;
956 int population_id_loop_count
= 0;
957 int transmission_standard
= 0;
958 int scrambling_sequence_selector
= 0;
960 int version_length
= 0;
962 uint8_t desc_tag
, desc_length
;
963 proto_tree
*dvb_s2_hdr_table_desc_tree
, *dvb_s2_hdr_table_mac24_tree
, *dvb_s2_hdr_table_lls_tree
,
964 *dvb_s2_hdr_table_rc_tree
, *dvb_s2_hdr_table_raac_tree
, *dvb_s2_hdr_table_network_routing_tree
;
967 uint8_t mac24_count
, cur_mac24
, lls_count
, cur_lls
, rc_count
, cur_rc
, raac_count
, cur_raac
;
968 uint8_t dedicated_access
, random_access
, constant_assign_provided
, volume_allowed
, defaults_field_size
;
970 for(cur_desc
=0 ; cur_desc
<=desc_loop_count
; cur_desc
++)
972 desc_length
= tvb_get_uint8(tvb
, cur_off
+ new_off
+ 1);
973 ti
= proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_descriptor
, tvb
, cur_off
+ new_off
, desc_length
+ 2, ENC_NA
);
974 dvb_s2_hdr_table_desc_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_desc
);
975 desc_tag
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
976 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_tag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
978 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_length
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
981 case(DVB_S2_TABLE_DESC_CTRL_ASSIGN
):
982 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_sync_achieved_time_threshold
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
984 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_max_sync_tries
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
986 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_sync_achieved_freq_threshold
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
988 if (dvb_s2_rcs_version
== DVB_S2_RCS_TABLE_DECODING
)
990 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_sync_start_superframe
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
992 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_sync_frame_nbr
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
994 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_sync_repeat_period
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
996 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_sync_slot_nbr
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
999 if (dvb_s2_rcs_version
== DVB_S2_RCS2_TABLE_DECODING
)
1001 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_ctrl_start_superframe_count
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1003 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_ctrl_frame_nbr
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1005 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_ctrl_repeat_period
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1007 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_ctrl_timeslot_nbr
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1011 case(DVB_S2_TABLE_DESC_CORRECTION_MSG
):
1012 new_off
+= dissect_dvb_s2_table_correct_msg(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_desc_tree
);
1014 case(DVB_S2_TABLE_DESC_CORRECTION_MSG_EXT
):
1015 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_sf_sequence
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1017 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sf_count
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1019 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_frame_number
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1021 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_slot_nbr
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1024 case(DVB_S2_TABLE_DESC_LOGON_RESPONSE
):
1025 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_keep_id_after_logoff
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1026 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_power_ctrl_mode
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1027 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_rcst_access_status
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1029 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_group_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1031 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_logon_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1033 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_lowest_assign_id
, tvb
, cur_off
+ new_off
, 3, ENC_NA
);
1035 mac24_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_DESC_UNICAST_MAC24_COUNT_MASK
;
1036 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_assign_id_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1037 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_unicast_mac24_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1039 for(cur_mac24
=0 ; cur_mac24
<mac24_count
; cur_mac24
++)
1041 ti
= proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_mac24
, tvb
, cur_off
+ new_off
, 5, ENC_NA
);
1042 dvb_s2_hdr_table_mac24_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_desc
);
1043 proto_tree_add_item(dvb_s2_hdr_table_mac24_tree
, hf_dvb_s2_table_mac24_prefix_size
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1045 proto_tree_add_item(dvb_s2_hdr_table_mac24_tree
, hf_dvb_s2_table_mac24_unicast
, tvb
, cur_off
+ new_off
, 3, ENC_NA
);
1047 proto_tree_add_item(dvb_s2_hdr_table_mac24_tree
, hf_dvb_s2_table_mac24_mcast_mapping_method
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1048 proto_tree_add_item(dvb_s2_hdr_table_mac24_tree
, hf_dvb_s2_table_mac24_mcast_ip_version_ind_pres
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1049 proto_tree_add_item(dvb_s2_hdr_table_mac24_tree
, hf_dvb_s2_table_mac24_mcast_synthesis_field_size
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1052 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_default_svn_number
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1054 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_reserved
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1057 case(DVB_S2_TABLE_DESC_LOWER_LAYER_SERVICE
):
1058 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_default_ctrl_random_interval
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1060 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_dynamic_rate_persistence
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1062 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_volume_backlog_persistence
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1064 lls_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_DESC_LLS_COUNT_MASK
;
1065 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_lls_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1067 for(cur_lls
=0 ; cur_lls
<lls_count
; cur_lls
++)
1069 dedicated_access
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_LLS_DEDICATED_ACCESS_MASK
;
1070 random_access
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_LLS_RANDOM_ACCESS_MASK
;
1072 if(dedicated_access
) lls_size
+= 5;
1073 if(random_access
) lls_size
+= 2;
1074 ti
= proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lls
, tvb
, cur_off
+ new_off
, lls_size
, ENC_NA
);
1075 dvb_s2_hdr_table_lls_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_desc
);
1076 proto_tree_add_item(dvb_s2_hdr_table_lls_tree
, hf_dvb_s2_table_lls_index
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1077 proto_tree_add_item(dvb_s2_hdr_table_lls_tree
, hf_dvb_s2_table_lls_random_access
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1078 proto_tree_add_item(dvb_s2_hdr_table_lls_tree
, hf_dvb_s2_table_lls_dedicated_access
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1080 if(dedicated_access
)
1082 proto_tree_add_item(dvb_s2_hdr_table_lls_tree
, hf_dvb_s2_table_lls_nominal_rc_index
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1083 proto_tree_add_item(dvb_s2_hdr_table_lls_tree
, hf_dvb_s2_table_lls_nominal_da_ac_index
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1085 proto_tree_add_item(dvb_s2_hdr_table_lls_tree
, hf_dvb_s2_table_lls_conditional_demand_rc_map
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1087 proto_tree_add_item(dvb_s2_hdr_table_lls_tree
, hf_dvb_s2_table_lls_conditional_scheduler_da_ac_map
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1092 proto_tree_add_item(dvb_s2_hdr_table_lls_tree
, hf_dvb_s2_table_lls_nominal_ra_ac_index
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1094 proto_tree_add_item(dvb_s2_hdr_table_lls_tree
, hf_dvb_s2_table_lls_conditional_scheduler_ra_ac_map
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1098 rc_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_DESC_RC_COUNT_MASK
;
1099 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_rc_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1101 for(cur_rc
=0 ; cur_rc
<rc_count
; cur_rc
++)
1103 constant_assign_provided
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_RC_CONSTANT_ASSIGN_MASK
;
1104 volume_allowed
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_RC_VOLUME_ALLOWED_MASK
;
1106 if(constant_assign_provided
) rc_size
+= 2;
1107 if(volume_allowed
) rc_size
+= 1;
1108 ti
= proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_rc
, tvb
, cur_off
+ new_off
, rc_size
, ENC_NA
);
1109 dvb_s2_hdr_table_rc_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_desc
);
1110 proto_tree_add_item(dvb_s2_hdr_table_rc_tree
, hf_dvb_s2_table_rc_index
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1111 proto_tree_add_item(dvb_s2_hdr_table_rc_tree
, hf_dvb_s2_table_rc_constant_assignment_provided
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1112 proto_tree_add_item(dvb_s2_hdr_table_rc_tree
, hf_dvb_s2_table_rc_volume_allowed
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1113 proto_tree_add_item(dvb_s2_hdr_table_rc_tree
, hf_dvb_s2_table_rc_rbdc_allowed
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1115 proto_tree_add_item(dvb_s2_hdr_table_rc_tree
, hf_dvb_s2_table_rc_maximum_service_rate
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1117 proto_tree_add_item(dvb_s2_hdr_table_rc_tree
, hf_dvb_s2_table_rc_minimum_service_rate
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1119 if(constant_assign_provided
)
1121 proto_tree_add_item(dvb_s2_hdr_table_rc_tree
, hf_dvb_s2_table_rc_constant_service_rate
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1126 proto_tree_add_item(dvb_s2_hdr_table_rc_tree
, hf_dvb_s2_table_rc_maximum_backlog
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1130 raac_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_DESC_RA_AC_COUNT_MASK
;
1131 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_desc_ra_ac_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1133 for(cur_raac
=0 ; cur_raac
<raac_count
; cur_raac
++)
1135 defaults_field_size
= tvb_get_uint8(tvb
, cur_off
+ new_off
+ 4);
1136 raac_size
= 5 + defaults_field_size
;
1137 ti
= proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ra_ac
, tvb
, cur_off
+ new_off
, raac_size
, ENC_NA
);
1138 dvb_s2_hdr_table_raac_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_desc
);
1139 proto_tree_add_item(dvb_s2_hdr_table_raac_tree
, hf_dvb_s2_table_ra_ac_index
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1141 proto_tree_add_item(dvb_s2_hdr_table_raac_tree
, hf_dvb_s2_table_ra_ac_max_unique_payload_per_block
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1143 proto_tree_add_item(dvb_s2_hdr_table_raac_tree
, hf_dvb_s2_table_ra_ac_max_consecutive_block_accessed
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1145 proto_tree_add_item(dvb_s2_hdr_table_raac_tree
, hf_dvb_s2_table_ra_ac_min_idle_block
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1147 proto_tree_add_item(dvb_s2_hdr_table_raac_tree
, hf_dvb_s2_table_ra_ac_defaults_field_size
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1149 proto_tree_add_item(dvb_s2_hdr_table_raac_tree
, hf_dvb_s2_table_ra_ac_defaults_for_ra_load_control
,
1150 tvb
, cur_off
+ new_off
, defaults_field_size
, ENC_NA
);
1151 new_off
+= defaults_field_size
;
1154 case (DVB_S2_TABLE_DESC_NETWORK_NAME
):
1155 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_nnd_char
, tvb
, cur_off
+ new_off
, desc_length
, ENC_NA
);
1156 new_off
+= desc_length
;
1158 case (DVB_S2_TABLE_DESC_LINKAGE
):
1159 start_off
= new_off
;
1160 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ld_fm_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1162 linkage_type
= tvb_get_uint8(tvb
, cur_off
+ new_off
+ 4);
1163 if (linkage_type
== 0x82 || linkage_type
== 0x81) {
1164 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ld_rm_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1166 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ld_on_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1169 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ld_service_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1171 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ld_linkage_type
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1173 if (linkage_type
== 0x08) {
1174 proto_tree_add_item_ret_uint(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ld_ho_type
, tvb
, cur_off
+ new_off
, 1, ENC_NA
, &hand_over_type
);
1175 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ld_reserved_future_use
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1176 proto_tree_add_item_ret_uint(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ld_origin_type
, tvb
, cur_off
+ new_off
, 1, ENC_NA
, &origin_type
);
1178 if ((hand_over_type
== 0x01) || (hand_over_type
== 0x02) || (hand_over_type
== 0x03)) {
1179 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ld_network_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1183 if (origin_type
== 0x00) {
1184 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ld_initial_service_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1189 if (linkage_type
== 0x0D) {
1190 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ld_target_event_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1192 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ld_target_listed
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1193 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ld_event_simulcast
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1194 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ld_reserved
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1198 if (linkage_type
== 0x82 || linkage_type
== 0x81) {
1199 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ld_network_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1201 population_id_loop_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1202 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ld_population_id_loop_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1204 for (i
= 0 ; i
<= population_id_loop_count
; i
++) {
1205 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ld_population_id_base
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1207 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ld_population_id_mask
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1212 remaning_data
= desc_length
- (new_off
- start_off
);
1213 if (remaning_data
> 0 ) {
1214 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ld_private_data
, tvb
, cur_off
+ new_off
, remaning_data
, ENC_NA
);
1215 new_off
+= remaning_data
;
1219 case (DVB_S2_TABLE_DESC_SATELLITE_RETURN_LINK
):
1220 start_off
= new_off
;
1221 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_srld_satellite_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1223 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_srld_beam_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1225 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_srld_gateway_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1227 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_srld_reserved
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1229 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_srld_orbital_position
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1231 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_srld_west_east_flag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1233 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_srld_superframe_sequence
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1235 if (table_id
== DVB_S2_TABLE_TIM
) {
1236 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_srld_tx_frequency_offset
, tvb
, cur_off
+ new_off
, 3, ENC_NA
);
1238 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_srld_zero_frequency_offset
, tvb
, cur_off
+ new_off
, 3, ENC_NA
);
1241 remaning_data
= desc_length
- (new_off
- start_off
);
1242 if (remaning_data
> 0 ) {
1243 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_srld_private_data
, tvb
, cur_off
+ new_off
, remaning_data
, ENC_NA
);
1244 new_off
+= remaning_data
;
1247 case (DVB_S2_TABLE_DESC_LOGON_INITIALIZE
):
1248 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_group_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1250 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_logon_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1252 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_continuous_carrier
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1253 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_security_handshake
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1254 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_prefix_flag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1255 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_data_unit_label_flag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1256 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_mini_slot_flag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1257 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_contention_based_mini_slot_flag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1259 capacity_type_flag
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_DESC_CAPCITY_TYPE_FLAG_MASK
;
1260 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_capacity_type_flag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1261 traffic_burst_type
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_DESC_TRAFFIC_BURST_TYPE_MASK
;
1262 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_traffic_burst_type
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1263 if (traffic_burst_type
== 0) {
1264 connectivity
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_DESC_CONNECTIVITY_MASK
;
1265 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_connectivity
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1266 if (connectivity
== 0) {
1268 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_return_vpi
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1270 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_return_vci
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1274 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_return_signalling_vpi
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1276 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_return_signalling_vci
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1278 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_forward_signalling_vpi
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1280 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_forward_signalling_vci
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1284 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_return_trf_pid
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1286 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_return_ctrl_mngm_pid
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1289 if (capacity_type_flag
== 0) {
1290 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_cra_level
, tvb
, cur_off
+ new_off
, 3, ENC_NA
);
1292 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_vbdc_max
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1294 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_rbdc_max
, tvb
, cur_off
+ new_off
, 3, ENC_NA
);
1296 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lid_rbdc_timeout
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1300 case (DVB_S2_TABLE_DESC_FORWARD_INTERACTION_PATH
):
1301 start_off
= new_off
;
1302 remaning_data
= desc_length
- (new_off
- start_off
);
1303 while (remaning_data
> 0) {
1304 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_fipd_original_network_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1306 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_fipd_transport_stream_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1308 pid_loop_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_DESC_PID_LOOP_COUNT
;
1309 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_fipd_pid_loop_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1311 for (k
= 0 ; k
<= pid_loop_count
; k
++) {
1312 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_fipd_pid
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1315 remaning_data
= desc_length
- (new_off
- start_off
);
1318 case (DVB_S2_TABLE_DESC_RETURN_INTERACTION_PATH
):
1319 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ripd_continuous_carrier
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1320 network_routing_label_loop_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_DESC_NETWORK_ROUTING_LABEL
;
1321 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_ripd_network_routing_label_loop_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1323 for (k
= 0 ; k
<= network_routing_label_loop_count
; k
++) {
1324 ti
= proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_desc_network_routing
, tvb
, cur_off
+ new_off
, -1, ENC_NA
);
1325 dvb_s2_hdr_table_network_routing_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_network_routing
);
1326 proto_tree_add_item(dvb_s2_hdr_table_network_routing_tree
, hf_dvb_s2_table_ripd_allocation_desallocation_flag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1327 pid_flag
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_DESC_PID_FLAG_MASK
;
1328 proto_tree_add_item(dvb_s2_hdr_table_network_routing_tree
, hf_dvb_s2_table_ripd_pid_flag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1330 if (pid_flag
== 1) {
1331 pid_loop_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1332 proto_tree_add_item(dvb_s2_hdr_table_network_routing_tree
, hf_dvb_s2_table_ripd_pid_loop_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1334 for (j
= 0 ; j
<= pid_loop_count
; j
++) {
1335 proto_tree_add_item(dvb_s2_hdr_table_network_routing_tree
, hf_dvb_s2_table_ripd_pid
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1339 vpi_vci_flag
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_DESC_VPI_VCI_FLAG_MASK
;
1340 proto_tree_add_item(dvb_s2_hdr_table_network_routing_tree
, hf_dvb_s2_table_ripd_vpi_vci_flag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1342 if (vpi_vci_flag
== 1) {
1343 vpi_vci_loop_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1344 proto_tree_add_item(dvb_s2_hdr_table_network_routing_tree
, hf_dvb_s2_table_ripd_vpi_vci_loop_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1346 for (i
= 0 ; i
<= vpi_vci_loop_count
; i
++) {
1347 proto_tree_add_item(dvb_s2_hdr_table_network_routing_tree
, hf_dvb_s2_table_ripd_vpi
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1349 proto_tree_add_item(dvb_s2_hdr_table_network_routing_tree
, hf_dvb_s2_table_ripd_vci
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1353 route_id_flag
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_DESC_ROUTE_ID_FLAG_MASK
;
1354 proto_tree_add_item(dvb_s2_hdr_table_network_routing_tree
, hf_dvb_s2_table_ripd_route_id_flag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1356 if (route_id_flag
== 1) {
1357 route_id_loop_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1358 proto_tree_add_item(dvb_s2_hdr_table_network_routing_tree
, hf_dvb_s2_table_ripd_route_id_loop_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1360 for (l
= 0 ; l
<= route_id_loop_count
; l
++) {
1361 proto_tree_add_item(dvb_s2_hdr_table_network_routing_tree
, hf_dvb_s2_table_ripd_route_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1365 proto_tree_add_item(dvb_s2_hdr_table_network_routing_tree
, hf_dvb_s2_table_ripd_channel_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1369 case (DVB_S2_TABLE_DESC_NETWORK_LAYER_INFO
):
1370 dissect_snmp_pdu(tvb
, cur_off
+ new_off
, pinfo
, dvb_s2_hdr_table_desc_tree
, 1, ett_dvb_s2_hdr_table_desc
, false);
1371 new_off
+= desc_length
;
1373 case (DVB_S2_TABLE_DESC_CORRECTION_CONTROL
):
1374 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_corcd_acq_response_timeout
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
1376 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_corcd_sync_response_timeout
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
1378 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_corcd_acq_max_losses
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1380 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_corcd_sync_max_losses
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1383 case (DVB_S2_TABLE_DESC_CONTENTION_CONTROL
):
1384 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_concd_superframe_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1386 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_concd_csc_response_timeout
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
1388 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_concd_csc_max_losses
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1390 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_concd_max_time_before_retry
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
1393 case (DVB_S2_TABLE_DESC_SATELLITE_FORWARD_LINK
):
1394 start_off
= new_off
;
1395 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sfld_satellite_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1397 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sfld_beam_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1399 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sfld_ncc_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1401 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sfld_multiplex_usage
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1402 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sfld_local_multiplex_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1404 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sfld_frequency
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
1406 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sfld_orbital_position
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1408 transmission_standard
= (tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_DESC_TRANSMISSION_STANDARD_MASK
) /8;
1409 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sfld_west_east_flag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1410 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sfld_polarization
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1411 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sfld_transmission_standard
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1412 if (transmission_standard
== 0) {
1414 } else if (transmission_standard
== 1 || transmission_standard
== 2) {
1415 scrambling_sequence_selector
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_DESC_SCRAMBLING_SEQUENCE_SELECTOR_MASK
;
1416 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sfld_scrambling_sequence_selector
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1417 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sfld_roll_off
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1420 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sfld_symbol_rate
, tvb
, cur_off
+ new_off
, 3, ENC_NA
);
1422 if (transmission_standard
== 0) {
1423 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sfld_fec_inner
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1425 } else if (transmission_standard
== 1 || transmission_standard
== 2) {
1426 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sfld_input_stream_identifier
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1428 if (scrambling_sequence_selector
== 0) {
1429 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sfld_reserved_for_forward_spreading
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1430 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sfld_scrambling_sequence_index
, tvb
, cur_off
+ new_off
, 3, ENC_NA
);
1434 remaning_data
= desc_length
- (new_off
- start_off
);
1435 if (remaning_data
> 0 ) {
1436 if (table_id
== DVB_S2_TABLE_TIMB
&& remaning_data
== DVB_S2_NCR_SIZE
) {
1437 proto_tree
*dvb_s2_hdr_table_ncr_subtree
;
1439 ti_ncr
= proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sfld_ncr_private_data
, tvb
, cur_off
+ new_off
, 6, ENC_NA
);
1440 dvb_s2_hdr_table_ncr_subtree
= proto_item_add_subtree(ti_ncr
, ett_dvb_s2_hdr_table_desc
);
1442 proto_tree_add_bits_item(dvb_s2_hdr_table_ncr_subtree
, hf_dvb_s2_table_sfld_ncr_base_private_data
, tvb
, (cur_off
+ new_off
) * 8, 33, ENC_NA
);
1443 proto_tree_add_item(dvb_s2_hdr_table_ncr_subtree
, hf_dvb_s2_table_sfld_ncr_ext_private_data
, tvb
, cur_off
+ new_off
+ 4, 2, ENC_NA
);
1445 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_sfld_private_data
, tvb
, cur_off
+ new_off
, remaning_data
, ENC_NA
);
1447 new_off
+= remaning_data
;
1451 case (DVB_S2_TABLE_DESC_MOBILITY_CONTROL
):
1452 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_mc_command_value
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1454 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_mc_command_parameter
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1457 case (DVB_S2_TABLE_DESC_LOWEST_SOFTWARE_VERSION
):
1458 group_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1459 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lsvd_group_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1461 for (k
= 0 ; k
< group_count
; k
++) {
1462 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lsvd_oui
, tvb
, cur_off
+ new_off
, 3, ENC_NA
);
1464 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lsvd_mcast_address
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
1466 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lsvd_mcast_port
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1468 version_length
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1469 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lsvd_version_field_length
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1471 proto_tree_add_item(dvb_s2_hdr_table_desc_tree
, hf_dvb_s2_table_lsvd_version_bytes
, tvb
, cur_off
+ new_off
, version_length
, ENC_NA
);
1472 new_off
+= version_length
;
1476 new_off
+= desc_length
;
1484 static int dissect_dvb_s2_table_sct(tvbuff_t
*tvb
, int cur_off
, proto_tree
*dvb_s2_hdr_table_tree
)
1486 int sf_start_offset
, new_off
= 0;
1487 uint8_t superframe_loop_count
, frame_loop_count
;
1488 int cur_sf
, cur_frame
;
1489 proto_item
*ti
, *tf
;
1491 proto_tree
*dvb_s2_hdr_table_sf_tree
, *dvb_s2_hdr_table_sf_frame_tree
;
1493 superframe_loop_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1494 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_superframe_loop_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1497 for(cur_sf
=0 ; cur_sf
<=superframe_loop_count
; cur_sf
++)
1499 sf_start_offset
= new_off
;
1500 ti
= proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_superframe
, tvb
, cur_off
+ new_off
, -1, ENC_NA
);
1501 dvb_s2_hdr_table_sf_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_sf
);
1502 if (dvb_s2_rcs_version
== DVB_S2_RCS_TABLE_DECODING
)
1503 proto_tree_add_item(dvb_s2_hdr_table_sf_tree
, hf_dvb_s2_table_sf_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1504 else if (dvb_s2_rcs_version
== DVB_S2_RCS2_TABLE_DECODING
)
1505 proto_tree_add_item(dvb_s2_hdr_table_sf_tree
, hf_dvb_s2_table_sf_sequence
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1507 proto_tree_add_item(dvb_s2_hdr_table_sf_tree
, hf_dvb_s2_table_sf_large_timing_uncertainty_flag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1508 proto_tree_add_item(dvb_s2_hdr_table_sf_tree
, hf_dvb_s2_table_sf_uplink_polarization
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1510 proto_tree_add_item(dvb_s2_hdr_table_sf_tree
, hf_dvb_s2_table_sf_absolute_time
, tvb
, cur_off
+ new_off
, 6, ENC_NA
);
1512 proto_tree_add_item(dvb_s2_hdr_table_sf_tree
, hf_dvb_s2_table_sf_duration
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
1514 proto_tree_add_item(dvb_s2_hdr_table_sf_tree
, hf_dvb_s2_table_sf_centre_frequency
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
1516 proto_tree_add_item(dvb_s2_hdr_table_sf_tree
, hf_dvb_s2_table_sf_count
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1518 frame_loop_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_SCT_FRAME_LOOP_COUNT_MASK
;
1519 proto_tree_add_item(dvb_s2_hdr_table_sf_tree
, hf_dvb_s2_table_sf_frame_loop_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1522 for(cur_frame
=0 ; cur_frame
<=frame_loop_count
; cur_frame
++)
1524 tf
= proto_tree_add_item(dvb_s2_hdr_table_sf_tree
, hf_dvb_s2_table_sf_frame
, tvb
, cur_off
+ new_off
,
1525 DVB_S2_TABLE_SCT_FRAME_LEN
, ENC_NA
);
1526 dvb_s2_hdr_table_sf_frame_tree
= proto_item_add_subtree(tf
, ett_dvb_s2_hdr_table_sf_frame
);
1527 if (dvb_s2_rcs_version
== DVB_S2_RCS_TABLE_DECODING
)
1528 proto_tree_add_item(dvb_s2_hdr_table_sf_frame_tree
, hf_dvb_s2_table_sf_frame_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1529 if (dvb_s2_rcs_version
== DVB_S2_RCS2_TABLE_DECODING
)
1530 proto_tree_add_item(dvb_s2_hdr_table_sf_frame_tree
, hf_dvb_s2_table_sf_frame_type
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1532 proto_tree_add_item(dvb_s2_hdr_table_sf_frame_tree
, hf_dvb_s2_table_sf_frame_start_time
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
1534 proto_tree_add_item(dvb_s2_hdr_table_sf_frame_tree
, hf_dvb_s2_table_sf_frame_centre_frequency_offset
, tvb
, cur_off
+ new_off
, 3, ENC_NA
);
1537 proto_item_set_len(ti
, new_off
- sf_start_offset
);
1539 if (dvb_s2_rcs_version
== DVB_S2_RCS_TABLE_DECODING
)
1541 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_crc32
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
1548 static int dissect_dvb_s2_table_tim(tvbuff_t
*tvb
, int cur_off
, proto_tree
*dvb_s2_hdr_table_tree
, bool isUnicast
, packet_info
*pinfo
)
1550 int desc_loop_count
, new_off
= 0;
1554 table_id
= DVB_S2_TABLE_TIM
;
1555 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_rcst_status
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1557 table_id
= DVB_S2_TABLE_TIMB
;
1558 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_network_status
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1561 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_desc_loop_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1562 desc_loop_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1565 new_off
+= dissect_dvb_s2_table_desc(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_tree
, desc_loop_count
, table_id
, pinfo
);
1567 if (dvb_s2_rcs_version
== DVB_S2_RCS_TABLE_DECODING
)
1569 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_crc32
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
1577 static int dissect_dvb_s2_table_tbtp(tvbuff_t
*tvb
, int cur_off
, proto_tree
*dvb_s2_hdr_table_tree
, uint16_t table_len
)
1579 int frame_loop_count
, frame_start_offset
, btp_start_offset
, cur_frame
, btp_loop_count
, btp
, new_off
= 0;
1580 uint8_t multiple_channel_flag
= 0;
1581 proto_item
*ti
, *tf
;
1582 proto_tree
*dvb_s2_hdr_tbtp_frame_tree
, *dvb_s2_hdr_tbtp_frame_btp_tree
;
1583 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_tbtp_group_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1585 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_tbtp_superframe_count
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1587 frame_loop_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_SCT_FRAME_LOOP_COUNT_MASK
;
1588 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_tbtp_frame_loop_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1590 for(cur_frame
=0 ; cur_frame
<=frame_loop_count
; cur_frame
++)
1592 frame_start_offset
= new_off
;
1593 ti
= proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_tbtp_sf_frame
, tvb
, cur_off
+ new_off
, -1, ENC_NA
);
1594 dvb_s2_hdr_tbtp_frame_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_tbtp_frame
);
1596 proto_tree_add_item(dvb_s2_hdr_tbtp_frame_tree
, hf_dvb_s2_tbtp_frame_number
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1598 btp_loop_count
= tvb_get_ntohs(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_TBTP_BTP_LOOP_COUNT_MASK
;
1599 proto_tree_add_item(dvb_s2_hdr_tbtp_frame_tree
, hf_dvb_s2_tbtp_btb_loop_count
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1601 for(btp
=0 ; btp
<=btp_loop_count
; btp
++)
1603 btp_start_offset
= new_off
;
1604 tf
= proto_tree_add_item(dvb_s2_hdr_tbtp_frame_tree
, hf_dvb_s2_tbtp_btp
, tvb
, cur_off
+ new_off
, -1, ENC_NA
);
1605 dvb_s2_hdr_tbtp_frame_btp_tree
= proto_item_add_subtree(tf
, ett_dvb_s2_hdr_tbtp_frame_btp
);
1606 proto_tree_add_item(dvb_s2_hdr_tbtp_frame_btp_tree
, hf_dvb_s2_tbtp_logon_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1608 multiple_channel_flag
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & 0x80;
1609 proto_tree_add_item(dvb_s2_hdr_tbtp_frame_btp_tree
, hf_dvb_s2_tbtp_multiple_channel_flag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1610 proto_tree_add_item(dvb_s2_hdr_tbtp_frame_btp_tree
, hf_dvb_s2_tbtp_assignment_type
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1611 proto_tree_add_item(dvb_s2_hdr_tbtp_frame_btp_tree
, hf_dvb_s2_tbtp_frame_vbdc_queue_empty_flag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1612 proto_tree_add_item(dvb_s2_hdr_tbtp_frame_btp_tree
, hf_dvb_s2_tbtp_start_slot
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1614 if (multiple_channel_flag
) {
1615 proto_tree_add_item(dvb_s2_hdr_tbtp_frame_btp_tree
, hf_dvb_s2_tbtp_channel_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1618 proto_tree_add_item(dvb_s2_hdr_tbtp_frame_btp_tree
, hf_dvb_s2_tbtp_assignment_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1620 proto_item_set_len(tf
, new_off
- btp_start_offset
);
1622 proto_item_set_len(ti
, new_off
- frame_start_offset
);
1625 if (dvb_s2_rcs_version
== DVB_S2_RCS_TABLE_DECODING
)
1627 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_crc32
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
1630 return (table_len
- DVB_S2_TABLE_HEADER_RCS2_LEN
);
1634 static int dissect_dvb_s2_table_tbtp2(tvbuff_t
*tvb
, int cur_off
, proto_tree
*dvb_s2_hdr_table_tree
, uint16_t table_len
)
1636 int frame_loop_count
, frame_start_offset
, assign_start_offset
, cur_frame
, cur_assign
, new_off
= 0;
1637 uint16_t assignment_loop_count
;
1638 uint8_t assignment_format
= 0;
1639 proto_item
*ti
, *tf
;
1640 proto_tree
*dvb_s2_hdr_table_frame_tree
, *dvb_s2_hdr_table_frame_assign_tree
;
1642 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_group_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1644 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_sf_sequence
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1646 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_assign_context
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1648 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_superframe_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1650 assignment_format
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1651 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_assign_format
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1653 frame_loop_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1654 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_frame_loop_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1657 for(cur_frame
=0 ; cur_frame
<=frame_loop_count
; cur_frame
++)
1659 frame_start_offset
= new_off
;
1660 ti
= proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_sf_frame
, tvb
, cur_off
+ new_off
, -1, ENC_NA
);
1661 dvb_s2_hdr_table_frame_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_frame
);
1662 proto_tree_add_item(dvb_s2_hdr_table_frame_tree
, hf_dvb_s2_table_frame_number
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1664 proto_tree_add_item(dvb_s2_hdr_table_frame_tree
,hf_dvb_s2_table_frame_assign_offset
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1666 assignment_loop_count
= tvb_get_ntohs(tvb
, cur_off
+ new_off
);
1667 proto_tree_add_item(dvb_s2_hdr_table_frame_tree
, hf_dvb_s2_table_frame_assign_loop_count
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1669 for(cur_assign
=0 ; cur_assign
<=assignment_loop_count
; cur_assign
++)
1671 assign_start_offset
= new_off
;
1672 tf
= proto_tree_add_item(dvb_s2_hdr_table_frame_tree
, hf_dvb_s2_table_frame_assignment
, tvb
, cur_off
+ new_off
, -1, ENC_NA
);
1673 dvb_s2_hdr_table_frame_assign_tree
= proto_item_add_subtree(tf
, ett_dvb_s2_hdr_table_frame_assign
);
1674 switch (assignment_format
) {
1676 proto_tree_add_item(dvb_s2_hdr_table_frame_assign_tree
, hf_dvb_s2_table_frame_assign_id48
, tvb
, cur_off
+ new_off
, 6, ENC_NA
);
1680 proto_tree_add_item(dvb_s2_hdr_table_frame_assign_tree
, hf_dvb_s2_table_frame_assign_id8
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1684 proto_tree_add_item(dvb_s2_hdr_table_frame_assign_tree
, hf_dvb_s2_table_frame_assign_id16
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1688 proto_tree_add_item(dvb_s2_hdr_table_frame_assign_tree
, hf_dvb_s2_table_frame_assign_id24
, tvb
, cur_off
+ new_off
, 3, ENC_NA
);
1692 proto_tree_add_item(dvb_s2_hdr_table_frame_assign_tree
, hf_dvb_s2_table_frame_dynamic_tx_type
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1694 proto_tree_add_item(dvb_s2_hdr_table_frame_assign_tree
, hf_dvb_s2_table_frame_assign_id8
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1698 proto_tree_add_item(dvb_s2_hdr_table_frame_assign_tree
, hf_dvb_s2_table_frame_dynamic_tx_type
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1700 proto_tree_add_item(dvb_s2_hdr_table_frame_assign_tree
, hf_dvb_s2_table_frame_assign_id16
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1704 proto_tree_add_item(dvb_s2_hdr_table_frame_assign_tree
, hf_dvb_s2_table_frame_dynamic_tx_type
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1706 proto_tree_add_item(dvb_s2_hdr_table_frame_assign_tree
, hf_dvb_s2_table_frame_assign_id24
, tvb
, cur_off
+ new_off
, 3, ENC_NA
);
1710 proto_item_set_len(tf
, new_off
- assign_start_offset
);
1712 proto_item_set_len(ti
, new_off
- frame_start_offset
);
1714 return (table_len
- DVB_S2_TABLE_HEADER_RCS2_LEN
);
1717 static int dissect_dvb_s2_table_cmt(tvbuff_t
*tvb
, int cur_off
, proto_tree
*dvb_s2_hdr_table_tree
)
1719 int entry_loop_count
, cur_entry
, entry_start_offset
, new_off
= 0;
1721 proto_tree
*dvb_s2_hdr_table_entry_tree
;
1723 entry_loop_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1724 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_entry_loop_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1727 for(cur_entry
=0 ; cur_entry
<=entry_loop_count
; cur_entry
++)
1729 entry_start_offset
= new_off
;
1730 ti
= proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_entry
, tvb
, cur_off
+ new_off
, -1, ENC_NA
);
1731 dvb_s2_hdr_table_entry_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_entry
);
1732 proto_tree_add_item(dvb_s2_hdr_table_entry_tree
, hf_dvb_s2_table_group_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1734 proto_tree_add_item(dvb_s2_hdr_table_entry_tree
, hf_dvb_s2_table_entry_login_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1737 new_off
+= dissect_dvb_s2_table_correct_msg(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_entry_tree
);
1738 proto_item_set_len(ti
, new_off
- entry_start_offset
);
1741 if (dvb_s2_rcs_version
== DVB_S2_RCS_TABLE_DECODING
)
1743 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_crc32
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
1750 static int dissect_dvb_s2_table_tmst(tvbuff_t
*tvb
, int cur_off
, proto_tree
*dvb_s2_hdr_table_tree
)
1752 int txmode_count
, cur_txmode
, new_off
= 0;
1754 proto_tree
*dvb_s2_hdr_table_txmode_tree
;
1756 txmode_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1757 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_tx_mode_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1760 for(cur_txmode
=0 ; cur_txmode
<txmode_count
; cur_txmode
++)
1762 ti
= proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_tx_mode
, tvb
, cur_off
+ new_off
, DVB_S2_TABLE_TX_MODE_SIZE
, ENC_NA
);
1763 dvb_s2_hdr_table_txmode_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_txmode
);
1764 proto_tree_add_item(dvb_s2_hdr_table_txmode_tree
, hf_dvb_s2_table_tx_mode_frame_length
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1765 proto_tree_add_item(dvb_s2_hdr_table_txmode_tree
, hf_dvb_s2_table_tx_mode_pilot_symbols
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1766 proto_tree_add_item(dvb_s2_hdr_table_txmode_tree
, hf_dvb_s2_table_tx_mode_modcod
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1770 if (dvb_s2_rcs_version
== DVB_S2_RCS_TABLE_DECODING
)
1772 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_crc32
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
1778 static int dissect_dvb_s2_table_tmst2(tvbuff_t
*tvb
, int cur_off
, proto_tree
*dvb_s2_hdr_table_tree
)
1780 int txmode_count
, cur_txmode
, new_off
= 0;
1782 proto_tree
*dvb_s2_hdr_table_txmode_tree
;
1784 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_common_sytem_margin
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1786 txmode_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1787 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_tx_mode_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1790 for(cur_txmode
=0 ; cur_txmode
<txmode_count
; cur_txmode
++)
1792 ti
= proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_tx_mode
, tvb
, cur_off
+ new_off
, DVB_S2_TABLE_TX_MODE_SIZE
, ENC_NA
);
1793 dvb_s2_hdr_table_txmode_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_txmode
);
1794 proto_tree_add_item(dvb_s2_hdr_table_txmode_tree
, hf_dvb_s2_table_tx_mode_frame_length
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1795 proto_tree_add_item(dvb_s2_hdr_table_txmode_tree
, hf_dvb_s2_table_tx_mode_pilot_symbols
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1796 proto_tree_add_item(dvb_s2_hdr_table_txmode_tree
, hf_dvb_s2_table_tx_mode_modcod
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1798 proto_tree_add_item(dvb_s2_hdr_table_txmode_tree
, hf_dvb_s2_table_tx_mode_modcod_system_margin
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1800 proto_tree_add_item(dvb_s2_hdr_table_txmode_tree
, hf_dvb_s2_table_tx_mode_isi
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1806 static int dissect_dvb_s2_table_bct(tvbuff_t
*tvb
, int cur_off
, proto_tree
*dvb_s2_hdr_table_tree
)
1808 int txtype_count
, cur_txtype
, tx_format_data_length
, uw_symbol_len
, cur_uwsymbol
, uwsegment_count
, cur_uwsegment
, cur_period
, cpm_offset
, new_off
= 0;
1810 proto_tree
*dvb_s2_hdr_table_txtype_tree
, *dvb_s2_hdr_table_txtype_uwsegment_tree
,
1811 *dvb_s2_hdr_table_txtype_ypattern_tree
, *dvb_s2_hdr_table_txtype_wpattern_tree
,
1812 *dvb_s2_hdr_table_txtype_uwsymbol_tree
;
1813 uint8_t tx_format
, tx_type
, y_period
, w_period
, modulation_scheme
, param_interleaver
;
1815 txtype_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1816 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_tx_type_loop_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1819 for(cur_txtype
=0 ; cur_txtype
<txtype_count
; cur_txtype
++)
1821 tx_format_data_length
= tvb_get_uint8(tvb
, cur_off
+ new_off
+ 3);
1822 ti
= proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_tx_type_branch
, tvb
, cur_off
+ new_off
, tx_format_data_length
+ 4, ENC_NA
);
1823 dvb_s2_hdr_table_txtype_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_txtype
);
1824 tx_type
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1825 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1827 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_tx_content_type
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1829 tx_format
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1830 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_tx_format_class
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1832 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_tx_format_data_length
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1836 case DVB_S2_TABLE_TXFORMAT_LMBT
:
1837 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_tx_block_size
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1839 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_threshold_es_n0
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1841 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_tx_start_offset_1
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1843 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_tx_start_offset_2
, tvb
, cur_off
+ new_off
, 3, ENC_NA
);
1847 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_payload_size
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1849 modulation_scheme
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1850 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_modulation_scheme
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1852 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_p
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1854 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_q0
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1856 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_q1
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1858 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_q2
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1860 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_q3
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1862 y_period
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_TX_TYPE_W_Y_PERIOD_MASK
;
1863 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_y_period
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1865 w_period
= tvb_get_uint8(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_TX_TYPE_W_Y_PERIOD_MASK
;
1866 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_w_period
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1868 ti
= proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_y_pattern
, tvb
, cur_off
+ new_off
, y_period
, ENC_NA
);
1869 dvb_s2_hdr_table_txtype_ypattern_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_txtype_ypattern
);
1870 for(cur_period
=0 ; cur_period
<y_period
; cur_period
++)
1872 proto_tree_add_item(dvb_s2_hdr_table_txtype_ypattern_tree
, hf_dvb_s2_table_tx_type_y_pattern_bit
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1875 ti
= proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_w_pattern
, tvb
, cur_off
+ new_off
, w_period
, ENC_NA
);
1876 dvb_s2_hdr_table_txtype_wpattern_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_txtype_wpattern
);
1877 for(cur_period
=0 ; cur_period
<w_period
; cur_period
++)
1879 proto_tree_add_item(dvb_s2_hdr_table_txtype_wpattern_tree
, hf_dvb_s2_table_tx_type_w_pattern_bit
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1883 uw_symbol_len
+= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1884 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_preamble_len
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1886 uw_symbol_len
+= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1887 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_postamble_len
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1889 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_pilot_period
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1891 uw_symbol_len
+= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1892 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_pilot_block_len
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1894 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_pilot_sum
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1896 ti
= proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_uw_symbol
, tvb
, cur_off
+ new_off
, uw_symbol_len
, ENC_NA
);
1897 dvb_s2_hdr_table_txtype_uwsymbol_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_txtype_uwsymbol
);
1898 for(cur_uwsymbol
=0 ; cur_uwsymbol
<uw_symbol_len
; cur_uwsymbol
++)
1900 switch(modulation_scheme
)
1902 case DVB_S2_TABLE_MODULATION_SCHEME_QPSK
:
1903 proto_tree_add_item(dvb_s2_hdr_table_txtype_uwsymbol_tree
, hf_dvb_s2_table_tx_type_uw_symbol_qpsk
,
1904 tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1907 case DVB_S2_TABLE_MODULATION_SCHEME_8PSK
:
1908 proto_tree_add_item(dvb_s2_hdr_table_txtype_uwsymbol_tree
, hf_dvb_s2_table_tx_type_uw_symbol_8psk
,
1909 tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1912 case DVB_S2_TABLE_MODULATION_SCHEME_16QAM
:
1913 proto_tree_add_item(dvb_s2_hdr_table_txtype_uwsymbol_tree
, hf_dvb_s2_table_tx_type_uw_symbol_16qam
,
1914 tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1918 proto_tree_add_item(dvb_s2_hdr_table_txtype_uwsymbol_tree
, hf_dvb_s2_table_tx_type_uw_symbol_unit
,
1919 tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1927 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_waveform_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1931 case DVB_S2_TABLE_TXFORMAT_CPMBT
:
1932 cpm_offset
= new_off
;
1933 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_tx_block_size
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1935 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_threshold_es_n0
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1937 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_tx_start_offset
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
1941 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_modulation_mh
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1942 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_modulation_ph
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1943 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_modulation_type
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1945 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_alpha_rc
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1947 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_code_rate
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1948 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_constraint_length_k
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1950 uw_symbol_len
= ( tvb_get_uint8(tvb
, cur_off
+ new_off
) * 2 ) / 8 + 1;
1951 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_uw_length
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1953 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_uw_symbol
, tvb
, cur_off
+ new_off
, uw_symbol_len
, ENC_NA
);
1954 new_off
+= uw_symbol_len
;
1955 uwsegment_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1956 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_nbr_uw_segments
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1958 for(cur_uwsegment
=0 ; cur_uwsegment
<uwsegment_count
; cur_uwsegment
++)
1960 ti
= proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_uw_segment
, tvb
, cur_off
+ new_off
,
1961 DVB_S2_TABLE_TX_TYPE_UW_SEGMENT_SIZE
, ENC_NA
);
1962 dvb_s2_hdr_table_txtype_uwsegment_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_txtype_uwsegment
);
1963 proto_tree_add_item(dvb_s2_hdr_table_txtype_uwsegment_tree
, hf_dvb_s2_table_tx_type_uw_segment_start
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
1965 proto_tree_add_item(dvb_s2_hdr_table_txtype_uwsegment_tree
, hf_dvb_s2_table_tx_type_uw_segment_length
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1968 param_interleaver
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
1969 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_param_interleaver
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1971 if(param_interleaver
)
1973 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_n
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1975 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_s
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1977 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_p_interleaver
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1979 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_n1_12
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1981 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_k1_12
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1983 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_K2_12
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1985 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_K3_12
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
1990 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_pi_i
, tvb
, cur_off
+ new_off
,
1991 tx_format_data_length
- (new_off
- cpm_offset
), ENC_NA
);
1992 new_off
+= tx_format_data_length
- (new_off
- cpm_offset
);
1996 case DVB_S2_TABLE_TXFORMAT_CT
:
1997 case DVB_S2_TABLE_TXFORMAT_SSLMBT
:
1999 proto_tree_add_item(dvb_s2_hdr_table_txtype_tree
, hf_dvb_s2_table_tx_type_tx_format_data
, tvb
, cur_off
+ new_off
, tx_format_data_length
, ENC_NA
);
2000 new_off
+= tx_format_data_length
;
2007 static int dissect_dvb_s2_table_fat(tvbuff_t
*tvb
, int cur_off
, proto_tree
*dvb_s2_hdr_table_tree
, packet_info
*pinfo
)
2009 int desc_loop_count
, new_off
= 0;
2011 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_desc_loop_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2012 desc_loop_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
2015 new_off
+= dissect_dvb_s2_table_desc(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_tree
, desc_loop_count
, DVB_S2_TABLE_FAT
, pinfo
);
2020 static int dissect_dvb_s2_table_fct2(tvbuff_t
*tvb
, int cur_off
, proto_tree
*dvb_s2_hdr_table_tree
)
2022 int frametype_count
, cur_frametype
, frame_type_start_off
, gridrepeat_count
, cur_gridrepeat
, section_count
, cur_section
, new_off
= 0;
2023 proto_item
*ti
, *tf
;
2024 proto_tree
*dvb_s2_hdr_table_frametype_tree
, *dvb_s2_hdr_table_frametype_section_tree
;
2026 frametype_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
2027 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_frame_type_loop_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2030 for(cur_frametype
=0 ; cur_frametype
<=frametype_count
; cur_frametype
++)
2032 frame_type_start_off
= new_off
;
2033 ti
= proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_frame_type_branch
, tvb
, cur_off
+ new_off
, -1, ENC_NA
);
2034 dvb_s2_hdr_table_frametype_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_frametype
);
2035 proto_tree_add_item(dvb_s2_hdr_table_frametype_tree
, hf_dvb_s2_table_frame_type
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2037 proto_tree_add_item(dvb_s2_hdr_table_frametype_tree
, hf_dvb_s2_table_frame_type_frame_duration
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
2039 proto_tree_add_item(dvb_s2_hdr_table_frametype_tree
, hf_dvb_s2_table_frame_type_tx_format_class
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2041 proto_tree_add_item(dvb_s2_hdr_table_frametype_tree
, hf_dvb_s2_table_frame_type_btu_duration
, tvb
, cur_off
+ new_off
, 3, ENC_NA
);
2043 proto_tree_add_item(dvb_s2_hdr_table_frametype_tree
, hf_dvb_s2_table_frame_type_btu_carrier_bw
, tvb
, cur_off
+ new_off
, 3, ENC_NA
);
2045 proto_tree_add_item(dvb_s2_hdr_table_frametype_tree
, hf_dvb_s2_table_frame_type_btu_symbol_rate
, tvb
, cur_off
+ new_off
, 3, ENC_NA
);
2047 proto_tree_add_item(dvb_s2_hdr_table_frametype_tree
, hf_dvb_s2_table_frame_type_time_unit_count
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2049 gridrepeat_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
2050 proto_tree_add_item(dvb_s2_hdr_table_frametype_tree
, hf_dvb_s2_table_frame_type_grid_repeat_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2052 for(cur_gridrepeat
=0 ; cur_gridrepeat
<gridrepeat_count
; cur_gridrepeat
++)
2054 proto_tree_add_item(dvb_s2_hdr_table_frametype_tree
, hf_dvb_s2_table_frame_type_grid_frequency_offset
, tvb
, cur_off
+ new_off
, 3, ENC_NA
);
2057 section_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
2058 proto_tree_add_item(dvb_s2_hdr_table_frametype_tree
, hf_dvb_s2_table_frame_type_section_loop_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2060 for(cur_section
=0 ; cur_section
<=section_count
; cur_section
++)
2062 tf
= proto_tree_add_item(dvb_s2_hdr_table_frametype_tree
, hf_dvb_s2_table_frame_type_section
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
2063 dvb_s2_hdr_table_frametype_section_tree
= proto_item_add_subtree(tf
, ett_dvb_s2_hdr_table_frametype_section
);
2064 proto_tree_add_item(dvb_s2_hdr_table_frametype_section_tree
, hf_dvb_s2_table_frame_type_section_default_tx_type
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2066 proto_tree_add_item(dvb_s2_hdr_table_frametype_section_tree
, hf_dvb_s2_table_frame_type_section_fix_acc_method
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2068 proto_tree_add_item(dvb_s2_hdr_table_frametype_section_tree
, hf_dvb_s2_table_frame_type_section_repeat_count
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2071 proto_item_set_len(ti
, new_off
- frame_type_start_off
);
2077 static int dissect_dvb_s2_table_fct(tvbuff_t
*tvb
, int cur_off
, proto_tree
*dvb_s2_hdr_table_tree
)
2079 int frame_ID_count
, cur_frame_ID
, frame_type_start_off
, timeslot_loop_count
, cur_timeslot
, new_off
= 0;
2080 proto_item
*ti
, *tf
;
2081 proto_tree
*dvb_s2_hdr_table_frame_ID_tree
, *dvb_s2_hdr_table_frame_ID_timeslot_tree
;
2083 frame_ID_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
2084 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_frame_ID_loop_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2086 for(cur_frame_ID
=0 ; cur_frame_ID
<=frame_ID_count
; cur_frame_ID
++)
2088 frame_type_start_off
= new_off
;
2089 ti
= proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_frame_ID_branch
, tvb
, cur_off
+ new_off
, -1, ENC_NA
);
2090 dvb_s2_hdr_table_frame_ID_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_frame_ID
);
2091 proto_tree_add_item(dvb_s2_hdr_table_frame_ID_tree
, hf_dvb_s2_table_frame_ID
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2093 proto_tree_add_item(dvb_s2_hdr_table_frame_ID_tree
, hf_dvb_s2_table_frame_ID_frame_duration
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
2095 proto_tree_add_item(dvb_s2_hdr_table_frame_ID_tree
, hf_dvb_s2_table_frame_ID_total_timeslot_count
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2097 proto_tree_add_item(dvb_s2_hdr_table_frame_ID_tree
, hf_dvb_s2_table_frame_ID_start_timeslot_number
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2099 timeslot_loop_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
2100 proto_tree_add_item(dvb_s2_hdr_table_frame_ID_tree
, hf_dvb_s2_table_frame_ID_timeslot_loop_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2102 for(cur_timeslot
=0 ; cur_timeslot
<=timeslot_loop_count
; cur_timeslot
++)
2104 tf
= proto_tree_add_item(dvb_s2_hdr_table_frame_ID_tree
, hf_dvb_s2_table_frame_ID_timeslot
, tvb
, cur_off
+ new_off
, 9, ENC_NA
);
2105 dvb_s2_hdr_table_frame_ID_timeslot_tree
= proto_item_add_subtree(tf
, ett_dvb_s2_hdr_table_frame_ID_timeslot
);
2106 proto_tree_add_item(dvb_s2_hdr_table_frame_ID_timeslot_tree
, hf_dvb_s2_table_frame_ID_timeslot_timeslot_frequency_offset
, tvb
, cur_off
+ new_off
, 3, ENC_NA
);
2108 proto_tree_add_item(dvb_s2_hdr_table_frame_ID_timeslot_tree
, hf_dvb_s2_table_frame_ID_timeslot_timeslot_time_offset
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
2110 proto_tree_add_item(dvb_s2_hdr_table_frame_ID_timeslot_tree
, hf_dvb_s2_table_frame_ID_timeslot_timeslot_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2112 proto_tree_add_item(dvb_s2_hdr_table_frame_ID_timeslot_tree
, hf_dvb_s2_table_frame_ID_timeslot_repeat_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2115 proto_item_set_len(ti
, new_off
- frame_type_start_off
);
2117 if (dvb_s2_rcs_version
== DVB_S2_RCS_TABLE_DECODING
)
2119 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_crc32
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
2125 static int dissect_dvb_s2_table_spt(tvbuff_t
*tvb
, int cur_off
, proto_tree
*dvb_s2_hdr_table_tree
)
2127 int satellite_count
, cur_satellite
, new_off
= 0;
2129 proto_tree
*dvb_s2_hdr_table_satellite_tree
;
2131 satellite_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
2132 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_satellite_loop_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2135 for(cur_satellite
=0 ; cur_satellite
<=satellite_count
; cur_satellite
++)
2137 ti
= proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_satellite
, tvb
, cur_off
+ new_off
, DVB_S2_TABLE_SAT_SIZE
, ENC_NA
);
2138 dvb_s2_hdr_table_satellite_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_satellite
);
2139 proto_tree_add_item(dvb_s2_hdr_table_satellite_tree
, hf_dvb_s2_table_satellite_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2141 proto_tree_add_item(dvb_s2_hdr_table_satellite_tree
, hf_dvb_s2_table_satellite_x_coordinate
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
2143 proto_tree_add_item(dvb_s2_hdr_table_satellite_tree
, hf_dvb_s2_table_satellite_y_coordinate
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
2145 proto_tree_add_item(dvb_s2_hdr_table_satellite_tree
, hf_dvb_s2_table_satellite_z_coordinate
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
2148 if (dvb_s2_rcs_version
== DVB_S2_RCS_TABLE_DECODING
)
2150 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_crc32
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
2156 static int dissect_dvb_s2_table_smt(tvbuff_t
*tvb
, int cur_off
, proto_tree
*dvb_s2_hdr_table_tree
)
2160 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_smt_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2162 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_smt_section_syntax_indicator
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2163 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_smt_futur_use
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2164 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_smt_reserved
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2165 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_smt_section_length
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2167 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_smt_esn0
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2169 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_smt_modcod
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2171 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_crc32
, tvb
, cur_off
+ new_off
, DVB_S2_TABLE_CRC32_LEN
, ENC_NA
);
2177 static int dissect_dvb_s2_table_nit_rmt(tvbuff_t
*tvb
, int cur_off
, proto_tree
*dvb_s2_hdr_table_tree
, uint8_t table_id
, packet_info
*pinfo
)
2179 int desc_off
, desc_count
, max_multiplex_off
, mux_start_off
, new_off
= 0;
2180 uint16_t network_descriptors_length
, multiplex_streams_spec_length
, transport_descriptors_length
;
2182 proto_tree
*dvb_s2_hdr_table_multiplex_tree
;
2184 network_descriptors_length
= tvb_get_ntohs(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_NETWORK_DESC_LENGTH_MASK
;
2185 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_network_descriptors_length
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2187 //proto_tree_add_item(dvb_s2_hdr_table_tree, hf_dvb_s2_table_network_descriptors, tvb, cur_off + new_off, network_descriptors_length, ENC_NA);
2188 //new_off += network_descriptors_length;
2190 /* calculate descriptors_count */
2192 for(desc_count
=0 ; desc_off
<network_descriptors_length
; desc_count
++){
2193 desc_off
+= tvb_get_uint8(tvb
, cur_off
+ new_off
+ desc_off
+ 1) + 2;
2196 new_off
+= dissect_dvb_s2_table_desc(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_tree
, desc_count
- 1, table_id
, pinfo
);
2198 multiplex_streams_spec_length
= tvb_get_ntohs(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_MULTIPLEX_STREAMS_LENGTH_MASK
;
2199 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_multiplex_streams_spec_length
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2201 //proto_tree_add_item(dvb_s2_hdr_table_tree, hf_dvb_s2_table_multiplex_streams_spec, tvb, cur_off + new_off, multiplex_streams_spec_length, ENC_NA);
2202 //new_off += multiplex_streams_spec_length;
2204 max_multiplex_off
= new_off
+ multiplex_streams_spec_length
;
2205 while(new_off
< max_multiplex_off
)
2207 mux_start_off
= new_off
;
2208 ti
= proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_multiplex
, tvb
, cur_off
+ new_off
, -1, ENC_NA
);
2209 dvb_s2_hdr_table_multiplex_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table_multiplex
);
2210 proto_tree_add_item(dvb_s2_hdr_table_multiplex_tree
, hf_dvb_s2_table_multiplex_forward_multiplex
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2212 if(table_id
== DVB_S2_TABLE_NIT
)
2214 proto_tree_add_item(dvb_s2_hdr_table_multiplex_tree
, hf_dvb_s2_table_multiplex_original_network_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2219 proto_tree_add_item(dvb_s2_hdr_table_multiplex_tree
, hf_dvb_s2_table_multiplex_reward_multiplex
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2222 transport_descriptors_length
= tvb_get_ntohs(tvb
, cur_off
+ new_off
) & DVB_S2_TABLE_MULTIPLEX_TRANSPORT_DESC_LENGTH_MASK
;
2223 proto_tree_add_item(dvb_s2_hdr_table_multiplex_tree
, hf_dvb_s2_table_multiplex_transport_descriptors_length
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2225 /* calculate descriptors_count */
2227 for(desc_count
=0 ; desc_off
<transport_descriptors_length
; desc_count
++)
2228 desc_off
+= tvb_get_uint8(tvb
, cur_off
+ new_off
+ desc_off
+ 1) + 2;
2229 new_off
+= dissect_dvb_s2_table_desc(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_multiplex_tree
, desc_count
- 1, table_id
, pinfo
);
2230 proto_item_set_len(ti
, new_off
- mux_start_off
);
2233 if (dvb_s2_rcs_version
== DVB_S2_RCS_TABLE_DECODING
)
2235 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_crc32
, tvb
, cur_off
+ new_off
, 4, ENC_NA
);
2242 static int dissect_dvb_s2_table_mmt2(tvbuff_t
*tvb
, int cur_off
, proto_tree
*dvb_s2_hdr_table_tree
)
2244 int protocol_count
, cur_protocol
, pt_start_off
, ms_count
, cur_ms
, ms_start_off
, exclusion_count
, cur_exclusion
, new_off
= 0;
2245 proto_item
*ti_pt
, *ti_ms
, *ti_exc
;
2246 proto_tree
*dvb_s2_hdr_table_protocol_tree
, *dvb_s2_hdr_table_protocol_ms_tree
, *dvb_s2_hdr_table_protocol_ms_excl_tree
;
2247 uint8_t address_size
;
2249 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_svn_number
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2251 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_svn_prefix_size
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2253 protocol_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
2254 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_pt_count
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2257 for(cur_protocol
=0 ; cur_protocol
<=protocol_count
; cur_protocol
++)
2259 pt_start_off
= new_off
;
2260 ti_pt
= proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_protocol
, tvb
, cur_off
+ new_off
, -1, ENC_NA
);
2261 dvb_s2_hdr_table_protocol_tree
= proto_item_add_subtree(ti_pt
, ett_dvb_s2_hdr_table_pt
);
2262 proto_tree_add_item(dvb_s2_hdr_table_protocol_tree
, hf_dvb_s2_table_pt_protocol_type
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2264 address_size
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
2265 proto_tree_add_item(dvb_s2_hdr_table_protocol_tree
, hf_dvb_s2_table_pt_address_size
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2267 ms_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
2268 proto_tree_add_item(dvb_s2_hdr_table_protocol_tree
, hf_dvb_s2_table_pt_mapping_sections
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2270 for(cur_ms
=0 ; cur_ms
<=ms_count
; cur_ms
++)
2272 ms_start_off
= new_off
;
2273 ti_ms
= proto_tree_add_item(dvb_s2_hdr_table_protocol_tree
, hf_dvb_s2_table_pt_mapping_section
, tvb
, cur_off
+ new_off
, -1, ENC_NA
);
2274 dvb_s2_hdr_table_protocol_ms_tree
= proto_item_add_subtree(ti_ms
, ett_dvb_s2_hdr_table_pt_ms
);
2275 proto_tree_add_item(dvb_s2_hdr_table_protocol_ms_tree
, hf_dvb_s2_table_pt_ms_inclusion_start
, tvb
, cur_off
+ new_off
, address_size
, ENC_NA
);
2276 new_off
+= address_size
;
2277 proto_tree_add_item(dvb_s2_hdr_table_protocol_ms_tree
, hf_dvb_s2_table_pt_ms_inclusion_end
, tvb
, cur_off
+ new_off
, address_size
, ENC_NA
);
2278 new_off
+= address_size
;
2279 exclusion_count
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
2280 proto_tree_add_item(dvb_s2_hdr_table_protocol_ms_tree
, hf_dvb_s2_table_pt_ms_exclusions
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2282 for(cur_exclusion
=0 ; cur_exclusion
<=exclusion_count
; cur_exclusion
++)
2284 ti_exc
= proto_tree_add_item(dvb_s2_hdr_table_protocol_ms_tree
, hf_dvb_s2_table_pt_ms_exclusion
, tvb
, cur_off
+ new_off
, 2 * address_size
, ENC_NA
);
2285 dvb_s2_hdr_table_protocol_ms_excl_tree
= proto_item_add_subtree(ti_exc
, ett_dvb_s2_hdr_table_pt_ms_exclusion
);
2286 proto_tree_add_item(dvb_s2_hdr_table_protocol_ms_excl_tree
, hf_dvb_s2_table_pt_ms_exclusion_start
, tvb
, cur_off
+ new_off
, address_size
, ENC_NA
);
2287 new_off
+= address_size
;
2288 proto_tree_add_item(dvb_s2_hdr_table_protocol_ms_excl_tree
, hf_dvb_s2_table_pt_ms_exclusion_end
, tvb
, cur_off
+ new_off
, address_size
, ENC_NA
);
2289 new_off
+= address_size
;
2291 proto_tree_add_item(dvb_s2_hdr_table_protocol_ms_tree
, hf_dvb_s2_table_pt_ms_mac24_base
, tvb
, cur_off
+ new_off
, 3, ENC_NA
);
2293 proto_tree_add_item(dvb_s2_hdr_table_protocol_ms_tree
, hf_dvb_s2_table_pt_ms_mcast_prefix_size
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2295 proto_item_set_len(ti_ms
, new_off
- ms_start_off
);
2297 proto_item_set_len(ti_pt
, new_off
- pt_start_off
);
2302 static int dissect_dvb_s2_table(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
2306 uint16_t data_len
= 0;
2307 uint8_t table_id
= 0;
2314 bool dvb_s2_isUnicast
= true;
2316 proto_item
*ti
= NULL
;
2317 proto_tree
*dvb_s2_hdr_table_tree
;
2319 ti
= proto_tree_add_item(tree
, proto_dvb_s2_table
, tvb
, 0, -1, ENC_NA
);
2320 dvb_s2_hdr_table_tree
= proto_item_add_subtree(ti
, ett_dvb_s2_hdr_table
);
2321 table_id
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
2322 col_append_str(pinfo
->cinfo
, COL_INFO
, val_to_str_const(table_id
, tabletype
, "Unknown table id" ));
2323 col_append_str(pinfo
->cinfo
, COL_INFO
, " ");
2324 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_id
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2327 /* parse GSE table structure header for all RCS2 tables */
2328 if (dvb_s2_rcs_version
== DVB_S2_RCS2_TABLE_DECODING
) {
2329 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_network_interactive_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2331 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_reserved2
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2332 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_version_number
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2333 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_current_next_indicator
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2337 if (table_id
== DVB_S2_TABLE_TDT
) {
2339 /* parse DSM-CC header only for RCS */
2340 if (dvb_s2_rcs_version
== DVB_S2_RCS_TABLE_DECODING
) {
2341 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_section_syntax_indic
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2342 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_reserved_future_use
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2343 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_reserved_tdt
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2344 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_section_length
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2347 /* parse the TDT table itself for both RCS and RCS2 */
2348 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_tdt_date
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2350 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_tdt_hour
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2352 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_tdt_minute
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2354 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_tdt_second
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2356 }else if (table_id
== DVB_S2_TABLE_TIM
&& dvb_s2_rcs_version
== DVB_S2_RCS_TABLE_DECODING
) {
2357 /* parse TIMu with DSM-CC header only for RCS */
2358 /* parse DSM-CC header */
2359 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_section_syntax_indic
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2360 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_private_indicator
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2361 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_reserved_1
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2362 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_section_length
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2364 mac_6
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
2365 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_mac_addres_6
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2367 mac_5
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
2368 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_mac_addres_5
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2370 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_reserved_2
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2371 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_payload_scrambling_control
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2372 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_address_scrambling_control
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2373 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_LLC_SNAP_flag
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2374 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_current_next_indicator
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2376 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_section_number
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2378 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_last_section_number
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2380 mac_4
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
2381 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_mac_addres_4
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2383 mac_3
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
2384 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_mac_addres_3
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2386 mac_2
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
2387 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_mac_addres_2
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2389 mac_1
= tvb_get_uint8(tvb
, cur_off
+ new_off
);
2390 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_mac_addres_1
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2392 if ((mac_1
== 0xff) && (mac_2
== 0xff) && (mac_3
== 0xff) && (mac_4
== 0xff) && (mac_5
== 0xff) && (mac_6
== 0xff)) {
2393 table_id
= DVB_S2_TABLE_TIMB
;
2396 /* parse SI section header only for RCS tables
2397 * (except TIMu and TDT that use DSM-CC instead) */
2398 if (dvb_s2_rcs_version
== DVB_S2_RCS_TABLE_DECODING
)
2400 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_section
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2401 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_private
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2402 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_reserved
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2403 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_msb_len
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2405 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_lsb_len
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2407 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_network_interactive_id
, tvb
, cur_off
+ new_off
, 2, ENC_NA
);
2409 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_reserved2
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2410 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_version_number
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2411 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_current_next_indicator
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2413 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_section_number
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2415 proto_tree_add_item(dvb_s2_hdr_table_tree
, hf_dvb_s2_table_last_section_number
, tvb
, cur_off
+ new_off
, 1, ENC_NA
);
2420 if (dvb_s2_rcs_version
== DVB_S2_RCS_TABLE_DECODING
)
2421 data_len
= tvb_captured_length(tvb
);
2422 else if (dvb_s2_rcs_version
== DVB_S2_RCS2_TABLE_DECODING
)
2423 data_len
= tvb_captured_length(tvb
);
2426 case DVB_S2_TABLE_SMT
:
2427 dissect_dvb_s2_table_smt(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_tree
);
2429 case DVB_S2_TABLE_SCT
:
2430 dissect_dvb_s2_table_sct(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_tree
);
2432 case DVB_S2_TABLE_TIMB
:
2433 dissect_dvb_s2_table_tim(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_tree
, !dvb_s2_isUnicast
, pinfo
);
2435 case DVB_S2_TABLE_TIM
:
2436 dissect_dvb_s2_table_tim(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_tree
, dvb_s2_isUnicast
, pinfo
);
2438 case DVB_S2_TABLE_TBTP2
:
2439 dissect_dvb_s2_table_tbtp2(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_tree
, data_len
);
2441 case DVB_S2_TABLE_TBTP
:
2442 dissect_dvb_s2_table_tbtp(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_tree
, data_len
);
2444 case DVB_S2_TABLE_CMT
:
2445 dissect_dvb_s2_table_cmt(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_tree
);
2447 case DVB_S2_TABLE_FAT
:
2448 dissect_dvb_s2_table_fat(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_tree
, pinfo
);
2450 case DVB_S2_TABLE_FCT
:
2451 dissect_dvb_s2_table_fct(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_tree
);
2453 case DVB_S2_TABLE_TMST2
:
2454 dissect_dvb_s2_table_tmst2(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_tree
);
2456 case DVB_S2_TABLE_TMST
:
2457 dissect_dvb_s2_table_tmst(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_tree
);
2459 case DVB_S2_TABLE_TCTE
:
2460 if (dvb_s2_rcs_version
== DVB_S2_RCS2_TABLE_DECODING
)
2462 dissect_dvb_s2_table_fct2(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_tree
);
2465 case DVB_S2_TABLE_BCT
:
2466 dissect_dvb_s2_table_bct(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_tree
);
2468 case DVB_S2_TABLE_SPT
:
2469 dissect_dvb_s2_table_spt(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_tree
);
2471 case DVB_S2_TABLE_NIT
:
2472 case DVB_S2_TABLE_RMT
:
2473 dissect_dvb_s2_table_nit_rmt(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_tree
, table_id
, pinfo
);
2475 case DVB_S2_TABLE_MMT2
:
2476 dissect_dvb_s2_table_mmt2(tvb
, cur_off
+ new_off
, dvb_s2_hdr_table_tree
);
2478 case DVB_S2_TABLE_TDT
:
2479 /* already parsed above */
2481 case DVB_S2_TABLE_PAT
:
2482 case DVB_S2_TABLE_CAT
:
2483 case DVB_S2_TABLE_PMT
:
2484 case DVB_S2_TABLE_SDT
:
2485 case DVB_S2_TABLE_TCT
:
2486 case DVB_S2_TABLE_PCR
:
2487 case DVB_S2_TABLE_MMT
:
2490 if (dvb_s2_rcs_version
== DVB_S2_RCS_TABLE_DECODING
)
2491 new_off
+= data_len
- DVB_S2_TABLE_HEADER_LEN
;
2492 else if (dvb_s2_rcs_version
== DVB_S2_RCS2_TABLE_DECODING
)
2493 new_off
+= data_len
- DVB_S2_TABLE_HEADER_RCS2_LEN
;
2498 /* Register the protocol with Wireshark */
2499 void proto_register_dvb_s2_table(void)
2501 module_t
*dvb_s2_table_module
;
2504 static hf_register_info hf_table
[] = {
2505 {&hf_dvb_s2_table_id
, {
2506 "Table ID", "dvb-s2_table.id",
2507 FT_UINT8
, BASE_HEX
, VALS(tabletype
), 0x0,
2510 {&hf_dvb_s2_table_section
, {
2511 "Table Section", "dvb-s2_table.section",
2512 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_SECTION_MASK
,
2515 {&hf_dvb_s2_table_private
, {
2516 "Table private indicator", "dvb-s2_table.private_indicator",
2517 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_PRIVATE_MASK
,
2520 {&hf_dvb_s2_table_reserved
, {
2521 "Table reserved field", "dvb-s2_table.reserved",
2522 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_RESERVED_MASK
,
2525 {&hf_dvb_s2_table_msb_len
, {
2526 "Table length MSB", "dvb-s2_table.len.msb",
2527 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_MSB_LEN_MASK
,
2530 {&hf_dvb_s2_table_lsb_len
, {
2531 "Table length LSB", "dvb-s2_table.len.lsb",
2532 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2535 {&hf_dvb_s2_table_network_interactive_id
, {
2536 "Table network interactive id", "dvb-s2_table.network_interactive_id",
2537 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
2540 {&hf_dvb_s2_table_reserved2
, {
2541 "Table reserved field 2", "dvb-s2_table.reserved2",
2542 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_RESERVED2_MASK
,
2545 {&hf_dvb_s2_table_version_number
, {
2546 "Table version number", "dvb-s2_table.version_number",
2547 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_VERSION_NUMBER_MASK
,
2550 {&hf_dvb_s2_table_current_next_indicator
, {
2551 "Table current next indicator", "dvb-s2_table.current_next_indicator",
2552 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_CURRENT_NEXT_INDICATOR_MASK
,
2555 {&hf_dvb_s2_table_section_number
, {
2556 "Table section number", "dvb-s2_table.section_number",
2557 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2560 {&hf_dvb_s2_table_last_section_number
, {
2561 "Table last section number", "dvb-s2_table.len",
2562 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2565 {&hf_dvb_s2_table_smt_id
, {
2566 "Table ID", "dvb-s2_table.id",
2567 FT_UINT8
, BASE_HEX
, VALS(tabletype
), 0x0,
2570 {&hf_dvb_s2_table_smt_section_syntax_indicator
, {
2571 "Table section", "dvb-s2_table.section",
2572 FT_UINT16
, BASE_HEX
, NULL
, DVB_S2_TABLE_SMT_SECTION_INDICATOR_MASK
,
2575 {&hf_dvb_s2_table_smt_futur_use
, {
2576 "Table future use", "dvb-s2_table.future_use",
2577 FT_UINT16
, BASE_HEX
, NULL
, DVB_S2_TABLE_SMT_FUTUR_USE_MASK
,
2580 {&hf_dvb_s2_table_smt_reserved
, {
2581 "Table reserved", "dvb-s2_table.reserved",
2582 FT_UINT16
, BASE_HEX
, NULL
, DVB_S2_TABLE_SMT_RESERVED_MASK
,
2585 {&hf_dvb_s2_table_smt_section_length
, {
2586 "Table section length", "dvb-s2_table.section_length",
2587 FT_UINT16
, BASE_DEC
, NULL
, DVB_S2_TABLE_SMT_SECTION_LENGTH_MASK
,
2590 {&hf_dvb_s2_table_smt_esn0
, {
2591 "Table Es/N0", "dvb-s2_table.esn0",
2592 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
2595 {&hf_dvb_s2_table_smt_modcod
, {
2596 "Table modcod", "dvb-s2_table.modcod",
2597 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2602 {&hf_dvb_s2_section_syntax_indic
, {
2603 "Table section syntax indicator", "dvb-s2_table.section_syntax_indic",
2604 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_SECTION_SYNTAX_INDIC_MASK
,
2607 {&hf_dvb_s2_private_indicator
, {
2608 "Table private indicator", "dvb-s2_table.private_indicator",
2609 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_PRIVATE_INDICATOR_MASK
,
2612 {&hf_dvb_s2_reserved_1
, {
2613 "Table reserved field 1", "dvb-s2_table.reserved_1",
2614 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_RESERVED_ONE_MASK
,
2617 {&hf_dvb_s2_section_length
, {
2618 "Table section length", "dvb-s2_table.section_length",
2619 FT_UINT16
, BASE_DEC
, NULL
, DVB_S2_TABLE_SECTION_LENGTH_MASK
,
2622 {&hf_dvb_s2_mac_addres_6
, {
2623 "Table MAC address 6", "dvb-s2_table.mac_address_6",
2624 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
2627 {&hf_dvb_s2_mac_addres_5
, {
2628 "Table MAC address 5", "dvb-s2_table.mac_address_5",
2629 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
2632 {&hf_dvb_s2_mac_addres_4
, {
2633 "Table MAC address 4", "dvb-s2_table.mac_address_4",
2634 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
2637 {&hf_dvb_s2_mac_addres_3
, {
2638 "Table MAC address 3", "dvb-s2_table.mac_address_3",
2639 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
2642 {&hf_dvb_s2_mac_addres_2
, {
2643 "Table MAC address 2", "dvb-s2_table.mac_address_2",
2644 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
2647 {&hf_dvb_s2_mac_addres_1
, {
2648 "Table MAC address 1", "dvb-s2_table.mac_address_1",
2649 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
2652 {&hf_dvb_s2_reserved_2
, {
2653 "Table reserved field 2", "dvb-s2_table.reserved_2",
2654 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_RESERVED_TWO_MASK
,
2657 {&hf_dvb_s2_payload_scrambling_control
, {
2658 "Table payload scrambling control", "dvb-s2_table.payload_scrambling_control",
2659 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_PAYLOAD_SCRAMBLING_MASK
,
2662 {&hf_dvb_s2_address_scrambling_control
, {
2663 "Table address scrambling control", "dvb-s2_table.address_scrambling_control",
2664 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_ADDRESS_SCRAMBLING_MASK
,
2667 {&hf_dvb_s2_LLC_SNAP_flag
, {
2668 "Table LLC SNAP flag", "dvb-s2_table.LLC_SNAP_flag",
2669 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_LLC_SNAP_MASK
,
2672 {&hf_dvb_s2_current_next_indicator
, {
2673 "Table current next indicator", "dvb-s2_table.current_next_indicator",
2674 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_CURRENT_NEXT_INDICATOR_MASK
,
2677 {&hf_dvb_s2_section_number
, {
2678 "Table section number", "dvb-s2_table.section_number",
2679 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2682 {&hf_dvb_s2_last_section_number
, {
2683 "Table last section number", "dvb-s2_table.last_section_number",
2684 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2689 {&hf_dvb_s2_table_superframe_loop_count
, {
2690 "Table superframe loop count", "dvb-s2_table.superframe_loop_count",
2691 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2694 {&hf_dvb_s2_table_superframe
, {
2695 "Superframe", "dvb-s2_table.superframe",
2696 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
2697 "Superframe definition", HFILL
}
2699 {&hf_dvb_s2_table_sf_sequence
, {
2700 "Superframe sequence", "dvb-s2_table.sf.sequence",
2701 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
2704 {&hf_dvb_s2_table_sf_id
, {
2705 "Superframe id", "dvb-s2_table.sf.id",
2706 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
2709 {&hf_dvb_s2_table_sf_large_timing_uncertainty_flag
, {
2710 "Superframe large timing uncertainty flag", "dvb-s2_table.sf.large_timing_uncertainty_flag",
2711 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_SCT_LARGE_TIMING_FLAG_MASK
,
2714 {&hf_dvb_s2_table_sf_uplink_polarization
, {
2715 "Superframe uplink polarization", "dvb-s2_table.sf.uplink_polarization",
2716 FT_UINT8
, BASE_HEX
, VALS(table_uplinkPolarization
), DVB_S2_TABLE_SCT_UPLINK_POLARIZATION_MASK
,
2719 {&hf_dvb_s2_table_sf_absolute_time
, {
2720 "Superframe absolute time (NCR format)", "dvb-s2_table.sf.absolute",
2721 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
2724 {&hf_dvb_s2_table_sf_duration
, {
2725 "Superframe duration", "dvb-s2_table.sf.duration",
2726 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
2729 {&hf_dvb_s2_table_sf_centre_frequency
, {
2730 "Superframe center frequency", "dvb-s2_table.sf.center_frequency",
2731 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
2734 {&hf_dvb_s2_table_sf_count
, {
2735 "Superframe count", "dvb-s2_table.sf.count",
2736 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
2739 {&hf_dvb_s2_table_sf_frame_loop_count
, {
2740 "Superframe frame loop count", "dvb-s2_table.sf.frame_loop_count",
2741 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_SCT_FRAME_LOOP_COUNT_MASK
,
2744 {&hf_dvb_s2_table_sf_frame
, {
2745 "Frame", "dvb-s2_table.sf.frame",
2746 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
2747 "Frame definition", HFILL
}
2749 {&hf_dvb_s2_table_sf_frame_type
, {
2750 "Frame type", "dvb-s2_table.sf.frame.type",
2751 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2754 {&hf_dvb_s2_table_sf_frame_id
, {
2755 "Frame id", "dvb-s2_table.sf.frame.id",
2756 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2759 {&hf_dvb_s2_table_sf_frame_start_time
, {
2760 "Frame start time", "dvb-s2_table.sf.frame.start_time",
2761 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
2764 {&hf_dvb_s2_table_sf_frame_centre_frequency_offset
, {
2765 "Frame center frequency offset", "dvb-s2_table.sf.frame.center_frequency_offset",
2766 FT_INT24
, BASE_DEC
, NULL
, 0x0,
2770 {&hf_dvb_s2_table_rcst_status
, {
2771 "Table RCST status", "dvb-s2_table.rcst_status",
2772 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
2775 {&hf_dvb_s2_table_network_status
, {
2776 "Table network status", "dvb-s2_table.network_status",
2777 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
2780 {&hf_dvb_s2_table_desc_loop_count
, {
2781 "Table descriptor loop count", "dvb-s2_table.desc_loop_count",
2782 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2786 {&hf_dvb_s2_tbtp_group_id
, {
2787 "Group ID", "dvb-s2_table.group_id",
2788 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
2791 {&hf_dvb_s2_tbtp_superframe_count
, {
2792 "Superframe count", "dvb-s2_table.superframe_count",
2793 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
2796 {&hf_dvb_s2_tbtp_frame_loop_count
, {
2797 "Frame loop count", "dvb-s2_table.frame_loop_count",
2798 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_SCT_FRAME_LOOP_COUNT_MASK
,
2801 {&hf_dvb_s2_tbtp_sf_frame
, {
2802 "Frame", "dvb-s2_table.frame_branch",
2803 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
2806 {&hf_dvb_s2_tbtp_frame_number
, {
2807 "Frame number", "dvb-s2_table.frame.number",
2808 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_TBTP_FRAME_NUMBER_MASK
,
2811 {&hf_dvb_s2_tbtp_btb_loop_count
, {
2812 "Btp loop count", "dvb-s2_table.frame.btp_loop_count",
2813 FT_UINT16
, BASE_DEC
, NULL
, DVB_S2_TABLE_TBTP_BTP_LOOP_COUNT_MASK
,
2816 {&hf_dvb_s2_tbtp_assignment_count
, {
2817 "Assignment count", "dvb-s2_table.frame.btp.assignment_count",
2818 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2821 {&hf_dvb_s2_tbtp_btp
, {
2822 "BTP", "dvb-s2_table.frame.btp_branch",
2823 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
2826 {&hf_dvb_s2_tbtp_logon_id
, {
2827 "Logon Id", "dvb-s2_table.frame.btp.logon_id",
2828 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
2831 {&hf_dvb_s2_tbtp_multiple_channel_flag
, {
2832 "Multiple channel flag", "dvb-s2_table.frame.btp.multiple_channel_flag",
2833 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_TBTP_MULTIPLE_CHANNEL_FLAG_MASK
,
2836 {&hf_dvb_s2_tbtp_assignment_type
, {
2837 "Assignment type", "dvb-s2_table.frame.btp.assignment_type",
2838 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_TBTP_ASSIGNMENT_TYPE_MASK
,
2841 {&hf_dvb_s2_tbtp_frame_vbdc_queue_empty_flag
, {
2842 "VBDC queue empty flag", "dvb-s2_table.frame.btp.vbdc_queue_empty_flag",
2843 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_TBTP_VBDC_FLAG_MASK
,
2846 {&hf_dvb_s2_tbtp_start_slot
, {
2847 "Start slot", "dvb-s2_table.frame.btp.start_slot",
2848 FT_UINT16
, BASE_DEC
, NULL
, DVB_S2_TABLE_TBTP_START_SLOT_MASK
,
2851 {&hf_dvb_s2_tbtp_channel_id
, {
2852 "Channel id", "dvb-s2_table.frame.btp.channel_id",
2853 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2857 {&hf_dvb_s2_table_group_id
, {
2858 "Table Group ID", "dvb-s2_table.group_id",
2859 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
2862 {&hf_dvb_s2_table_assign_context
, {
2863 "Table assignment context", "dvb-s2_table.assign_context",
2864 FT_UINT8
, BASE_HEX
, VALS(table_assignContext
), 0x0,
2867 {&hf_dvb_s2_table_superframe_count
, {
2868 "Superframe count", "dvb-s2_table.superframe_count",
2869 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2872 {&hf_dvb_s2_table_assign_format
, {
2873 "Table assignment Format", "dvb-s2_table.assign_format",
2874 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2877 {&hf_dvb_s2_table_frame_loop_count
, {
2878 "Table frame loop count", "dvb-s2_table.frame_loop_count",
2879 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2882 {&hf_dvb_s2_table_frame_number
, {
2883 "Frame number", "dvb-s2_table.frame.number",
2884 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2887 {&hf_dvb_s2_table_frame_assign_offset
, {
2888 "Frame assignment offset", "dvb-s2_table.frame.assign_offset",
2889 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
2892 {&hf_dvb_s2_table_frame_assign_loop_count
, {
2893 "Frame assignment loop count", "dvb-s2_table.frame.assign_loop_count",
2894 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
2897 {&hf_dvb_s2_table_frame_assignment
, {
2898 "Frame assignment", "dvb-s2_table.frame.assignment",
2899 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
2902 {&hf_dvb_s2_table_frame_assign_id8
, {
2903 "Frame assignment ID", "dvb-s2_table.frame.assign_id8",
2904 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
2907 {&hf_dvb_s2_table_frame_assign_id16
, {
2908 "Frame assignment ID", "dvb-s2_table.frame.assign_id16",
2909 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
2912 {&hf_dvb_s2_table_frame_assign_id24
, {
2913 "Frame assignment ID", "dvb-s2_table.frame.assign_id24",
2914 FT_UINT24
, BASE_HEX
, NULL
, 0x0,
2917 {&hf_dvb_s2_table_frame_assign_id48
, {
2918 "Frame assignment ID", "dvb-s2_table.frame.assign_id48",
2919 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
2922 {&hf_dvb_s2_table_frame_dynamic_tx_type
, {
2923 "Frame dynamic tx_type", "dvb-s2_table.frame.dynamic_tx_type",
2924 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
2928 {&hf_dvb_s2_table_entry_loop_count
, {
2929 "Table entry loop count", "dvb-s2_table.entry_loop_count",
2930 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2933 {&hf_dvb_s2_table_entry
, {
2934 "Entry Correction Message", "dvb-s2_table.entry",
2935 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
2938 {&hf_dvb_s2_table_entry_login_id
, {
2939 "Entry login ID", "dvb-s2_table.entry.login_id",
2940 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
2944 {&hf_dvb_s2_table_common_sytem_margin
, {
2945 "Table common system margin", "dvb-s2_table.common_system_margin",
2946 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2949 {&hf_dvb_s2_table_tx_mode_count
, {
2950 "Table transmission mode count", "dvb-s2_table.tx_mode_count",
2951 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2954 {&hf_dvb_s2_table_tx_mode
, {
2955 "Transmission mode", "dvb-s2_table.tx_mode",
2956 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
2959 {&hf_dvb_s2_table_tx_mode_frame_length
, {
2960 "tx mode frame length", "dvb-s2_table.tx_mode.frame_length",
2961 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_TX_MODE_FRAME_LENGTH_MASK
,
2964 {&hf_dvb_s2_table_tx_mode_pilot_symbols
, {
2965 "tx mode pilot_symbols", "dvb-s2_table.tx_mode.pilot_symbols",
2966 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_TX_MODE_PILOT_SYMBOLS_MASK
,
2969 {&hf_dvb_s2_table_tx_mode_modcod
, {
2970 "tx mode MODCOD", "dvb-s2_table.tx_mode.modcod",
2971 FT_UINT8
, BASE_HEX
, VALS(table_modcods
), DVB_S2_TABLE_TX_MODE_MODCOD_MASK
,
2974 {&hf_dvb_s2_table_tx_mode_modcod_system_margin
, {
2975 "tx mode modcod system margin", "dvb-s2_table.tx_mode.modcod_system_margin",
2976 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2979 {&hf_dvb_s2_table_tx_mode_isi
, {
2980 "tx mode ISI", "dvb-s2_table.tx_mode.isi",
2981 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
2985 {&hf_dvb_s2_table_frame_type_loop_count
, {
2986 "Table frame type loop count", "dvb-s2_table.frame_type_loop_count",
2987 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
2990 {&hf_dvb_s2_table_frame_type_branch
, {
2991 "Frame type", "dvb-s2_table.frame_type_branch",
2992 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
2995 {&hf_dvb_s2_table_frame_type
, {
2996 "Frame type", "dvb-s2_table.frame_type.id",
2997 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
3000 {&hf_dvb_s2_table_frame_type_frame_duration
, {
3001 "Frame type frame duration", "dvb-s2_table.frame_type.frame_duration",
3002 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3005 {&hf_dvb_s2_table_frame_type_tx_format_class
, {
3006 "Frame type tx format class", "dvb-s2_table.frame_type.tx_format_class",
3007 FT_UINT8
, BASE_HEX
, VALS(table_frameType_txFormatClass
), 0x0,
3010 {&hf_dvb_s2_table_frame_type_btu_duration
, {
3011 "Frame type btu duration", "dvb-s2_table.frame_type.btu_duration",
3012 FT_UINT24
, BASE_DEC
, NULL
, 0x0,
3015 {&hf_dvb_s2_table_frame_type_btu_carrier_bw
, {
3016 "Frame type btu carrier bw", "dvb-s2_table.frame_type.btu_carrier_bw",
3017 FT_UINT24
, BASE_DEC
, NULL
, 0x0,
3020 {&hf_dvb_s2_table_frame_type_btu_symbol_rate
, {
3021 "Frame type btu symbol rate", "dvb-s2_table.frame_type.btu_symbol_rate",
3022 FT_UINT24
, BASE_DEC
, NULL
, 0x0,
3025 {&hf_dvb_s2_table_frame_type_time_unit_count
, {
3026 "Frame type time unit count", "dvb-s2_table.frame_type.time_unit_count",
3027 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3030 {&hf_dvb_s2_table_frame_type_grid_repeat_count
, {
3031 "Frame type grid repeat count", "dvb-s2_table.frame_type.grid_repeat_count",
3032 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3035 {&hf_dvb_s2_table_frame_type_grid_frequency_offset
, {
3036 "Frame type grid frequency offset", "dvb-s2_table.frame_type.grid_frequency_offset",
3037 FT_INT24
, BASE_DEC
, NULL
, 0x0,
3040 {&hf_dvb_s2_table_frame_type_section_loop_count
, {
3041 "Frame type section loop count", "dvb-s2_table.frame_type.section_loop_count",
3042 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3045 {&hf_dvb_s2_table_frame_type_section
, {
3046 "Section", "dvb-s2_table.frame_type.section",
3047 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3050 {&hf_dvb_s2_table_frame_type_section_default_tx_type
, {
3051 "Section default tx type", "dvb-s2_table.frame_type.section.default_tx_type",
3052 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
3055 {&hf_dvb_s2_table_frame_type_section_fix_acc_method
, {
3056 "Section fixed access method", "dvb-s2_table.frame_type.section.fixed_access_method",
3057 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_FRAME_TYPE_SECTION_FAM_MASK
,
3060 {&hf_dvb_s2_table_frame_type_section_repeat_count
, {
3061 "Section repeat count", "dvb-s2_table.frame_type.section.repeat_count",
3062 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3066 {&hf_dvb_s2_table_frame_ID_loop_count
, {
3067 "Frame loop count", "dvb-s2_table.frame_ID_loop_count",
3068 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3071 {&hf_dvb_s2_table_frame_ID_branch
, {
3072 "Frame", "dvb-s2_table.frame_ID_branch",
3073 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3076 {&hf_dvb_s2_table_frame_ID
, {
3077 "Frame ID", "dvb-s2_table.frame_ID.frame_ID.id",
3078 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3081 {&hf_dvb_s2_table_frame_ID_frame_duration
, {
3082 "Frame duration", "dvb-s2_table.frame_ID.frame_duration",
3083 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3086 {&hf_dvb_s2_table_frame_ID_total_timeslot_count
, {
3087 "Frame timeslot count", "dvb-s2_table.frame_ID.total_timeslot_count",
3088 FT_UINT16
, BASE_DEC
, NULL
, DVB_S2_TABLE_FRAME_ID_TOT_TIME_COUNT_MASK
,
3091 {&hf_dvb_s2_table_frame_ID_start_timeslot_number
, {
3092 "Frame timeslot start number", "dvb-s2_table.frame_ID.start_timeslot_number",
3093 FT_UINT16
, BASE_DEC
, NULL
, DVB_S2_TABLE_FRAME_ID_TOT_TIME_COUNT_MASK
,
3096 {&hf_dvb_s2_table_frame_ID_timeslot_loop_count
, {
3097 "Frame timeslot loop count", "dvb-s2_table.frame_ID.timeslot_loop_count",
3098 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3101 {&hf_dvb_s2_table_frame_ID_timeslot
, {
3102 "Frame timeslot", "dvb-s2_table.frame_ID.timeslot",
3103 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3106 {&hf_dvb_s2_table_frame_ID_timeslot_timeslot_frequency_offset
, {
3107 "Frame timeslot frequency offset", "dvb-s2_table.frame_ID.timeslot.frequency_offset",
3108 FT_INT24
, BASE_DEC
, NULL
, 0x0,
3111 {&hf_dvb_s2_table_frame_ID_timeslot_timeslot_time_offset
, {
3112 "Frame timeslot time offset", "dvb-s2_table.frame_ID.timeslot.time_offset",
3113 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3116 {&hf_dvb_s2_table_frame_ID_timeslot_timeslot_id
, {
3117 "Frame timeslot id", "dvb-s2_table.frame_ID.timeslot.id",
3118 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3121 {&hf_dvb_s2_table_frame_ID_timeslot_repeat_count
, {
3122 "Frame timeslot repeat count", "dvb-s2_table.frame_ID.timeslot.repeat_count",
3123 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3127 {&hf_dvb_s2_table_tx_type_loop_count
, {
3128 "Table tx type loop count", "dvb-s2_table.tx_type_loop_count",
3129 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3132 {&hf_dvb_s2_table_tx_type_branch
, {
3133 "Tx type", "dvb-s2_table.tx_type",
3134 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3137 {&hf_dvb_s2_table_tx_type
, {
3138 "Tx type", "dvb-s2_table.tx_type.id",
3139 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
3142 {&hf_dvb_s2_table_tx_type_tx_content_type
, {
3143 "Tx type tx content type", "dvb-s2_table.tx_type.tx_content_type",
3144 FT_UINT8
, BASE_HEX
, VALS(table_txType_contentType
), 0x0,
3147 {&hf_dvb_s2_table_tx_type_tx_format_class
, {
3148 "Tx type tx format class", "dvb-s2_table.tx_type.tx_format_class",
3149 FT_UINT8
, BASE_HEX
, VALS(table_frameType_txFormatClass
), 0x0,
3152 {&hf_dvb_s2_table_tx_type_tx_format_data_length
, {
3153 "Tx type tx format data length", "dvb-s2_table.tx_type.tx_format_data_length",
3154 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
3157 {&hf_dvb_s2_table_tx_type_tx_format_data
, {
3158 "Tx type format data", "dvb-s2_table.tx_type.format_data",
3159 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3163 {&hf_dvb_s2_table_tx_type_tx_block_size
, {
3164 "Tx type tx block size", "dvb-s2_table.tx_type.tx_block_size",
3165 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3168 {&hf_dvb_s2_table_tx_type_threshold_es_n0
, {
3169 "Tx type threshold Es/N0", "dvb-s2_table.tx_type.threshold_es_n0",
3170 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3173 {&hf_dvb_s2_table_tx_type_payload_size
, {
3174 "Tx type payload size", "dvb-s2_table.tx_type.payload_size",
3175 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3178 {&hf_dvb_s2_table_tx_type_modulation_scheme
, {
3179 "Tx type modulation scheme", "dvb-s2_table.tx_type.modulation_scheme",
3180 FT_UINT8
, BASE_HEX
, VALS(table_txType_modulationScheme
), 0x0,
3183 {&hf_dvb_s2_table_tx_type_p
, {
3184 "Tx type P", "dvb-s2_table.tx_type.p",
3185 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
3186 "Tx type P permutation parameter", HFILL
}
3188 {&hf_dvb_s2_table_tx_type_q0
, {
3189 "Tx type Q0", "dvb-s2_table.tx_type.q0",
3190 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_TX_TYPE_QX_MASK
,
3191 "Tx type Q0 permutation parameter", HFILL
}
3193 {&hf_dvb_s2_table_tx_type_q1
, {
3194 "Tx type Q1", "dvb-s2_table.tx_type.q1",
3195 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_TX_TYPE_QX_MASK
,
3196 "Tx type Q1 permutation parameter", HFILL
}
3198 {&hf_dvb_s2_table_tx_type_q2
, {
3199 "Tx type Q2", "dvb-s2_table.tx_type.q2",
3200 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_TX_TYPE_QX_MASK
,
3201 "Tx type Q2 permutation parameter", HFILL
}
3203 {&hf_dvb_s2_table_tx_type_q3
, {
3204 "Tx type Q3", "dvb-s2_table.tx_type.q3",
3205 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_TX_TYPE_QX_MASK
,
3206 "Tx type Q3 permutation parameter", HFILL
}
3208 {&hf_dvb_s2_table_tx_type_y_period
, {
3209 "Tx type Y period", "dvb-s2_table.tx_type.y_period",
3210 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_TX_TYPE_W_Y_PERIOD_MASK
,
3213 {&hf_dvb_s2_table_tx_type_w_period
, {
3214 "Tx type W period", "dvb-s2_table.tx_type.w_period",
3215 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_TX_TYPE_W_Y_PERIOD_MASK
,
3218 {&hf_dvb_s2_table_tx_type_y_pattern
, {
3219 "Y patterns", "dvb-s2_table.tx_type.y_pattern",
3220 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3223 {&hf_dvb_s2_table_tx_type_y_pattern_bit
, {
3224 "Y pattern bit", "dvb-s2_table.tx_type.y_pattern_bit",
3225 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_TX_TYPE_W_Y_PATTERN_BIT_MASK
,
3228 {&hf_dvb_s2_table_tx_type_w_pattern
, {
3229 "W patterns", "dvb-s2_table.tx_type.w_pattern",
3230 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3233 {&hf_dvb_s2_table_tx_type_w_pattern_bit
, {
3234 "W pattern bit", "dvb-s2_table.tx_type.w_pattern_bit",
3235 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_TX_TYPE_W_Y_PATTERN_BIT_MASK
,
3238 {&hf_dvb_s2_table_tx_type_preamble_len
, {
3239 "Tx type preamble len", "dvb-s2_table.tx_type.preamble_len",
3240 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3243 {&hf_dvb_s2_table_tx_type_postamble_len
, {
3244 "Tx type postamble len", "dvb-s2_table.tx_type.postamble_len",
3245 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3248 {&hf_dvb_s2_table_tx_type_pilot_period
, {
3249 "Tx type pilot period", "dvb-s2_table.tx_type.pilot_period",
3250 FT_UINT16
, BASE_DEC
, NULL
, DVB_S2_TABLE_TX_TYPE_PILOT_PERIOD_MASK
,
3253 {&hf_dvb_s2_table_tx_type_pilot_block_len
, {
3254 "Tx type pilot block length", "dvb-s2_table.tx_type.pilot_block_len",
3255 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3258 {&hf_dvb_s2_table_tx_type_pilot_sum
, {
3259 "Tx type pilot sum", "dvb-s2_table.tx_type.pilot_sum",
3260 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3263 {&hf_dvb_s2_table_tx_type_uw_symbol
, {
3264 "Tx type UW symbols", "dvb-s2_table.tx_type.uw_symbol",
3265 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3268 {&hf_dvb_s2_table_tx_type_uw_symbol_unit
, {
3269 "UW symbol unit", "dvb-s2_table.tx_type.uw_symbol_unit",
3270 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
3273 {&hf_dvb_s2_table_tx_type_uw_symbol_qpsk
, {
3274 "UW symbol QPSK", "dvb-s2_table.tx_type.uw_symbol_qpsk",
3275 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_TX_TYPE_UW_SYMBOL_QPSK_MASK
,
3278 {&hf_dvb_s2_table_tx_type_uw_symbol_8psk
, {
3279 "UW symbol 8PSK", "dvb-s2_table.tx_type.uw_symbol_8psk",
3280 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_TX_TYPE_UW_SYMBOL_8PSK_MASK
,
3283 {&hf_dvb_s2_table_tx_type_uw_symbol_16qam
, {
3284 "UW symbol 16QAM", "dvb-s2_table.tx_type.uw_symbol_16qam",
3285 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_TX_TYPE_UW_SYMBOL_16QAM_MASK
,
3288 {&hf_dvb_s2_table_tx_type_waveform_id
, {
3289 "Tx type waveform id", "dvb-s2_table.tx_type.waveform_id",
3290 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
3293 {&hf_dvb_s2_table_tx_type_tx_start_offset
, {
3294 "Tx type tx start offset 1", "dvb-s2_table.tx_type.tx_start_offset",
3295 FT_UINT32
, BASE_DEC
, NULL
, DVB_S2_TABLE_TX_TYPE_TX_START_OFFSET_MASK
,
3299 {&hf_dvb_s2_table_tx_type_tx_start_offset_1
, {
3300 "Tx type tx start offset 1", "dvb-s2_table.tx_type.tx_start_offset_1",
3301 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3304 {&hf_dvb_s2_table_tx_type_tx_start_offset_2
, {
3305 "Tx type tx start offset 1", "dvb-s2_table.tx_type.tx_start_offset_1",
3306 FT_UINT24
, BASE_DEC
, NULL
, DVB_S2_TABLE_TX_TYPE_TX_START_OFFSET_MASK
,
3310 {&hf_dvb_s2_table_tx_type_modulation_mh
, {
3311 "Tx type modulation mh", "dvb-s2_table.tx_type.modulation_mh",
3312 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_TX_TYPE_MODULATION_MH_MASK
,
3315 {&hf_dvb_s2_table_tx_type_modulation_ph
, {
3316 "Tx type modulation ph", "dvb-s2_table.tx_type.modulation_ph",
3317 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_TX_TYPE_MODULATION_PH_MASK
,
3320 {&hf_dvb_s2_table_tx_type_modulation_type
, {
3321 "Tx type modulation type", "dvb-s2_table.tx_type.modulation_type",
3322 FT_UINT8
, BASE_DEC
, VALS(table_txType_modulationType
), DVB_S2_TABLE_TX_TYPE_MODULATION_TYPE_MASK
,
3325 {&hf_dvb_s2_table_tx_type_alpha_rc
, {
3326 "Tx type alpha_rc", "dvb-s2_table.tx_type.alpha_rc",
3327 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3330 {&hf_dvb_s2_table_tx_type_code_rate
, {
3331 "Tx type code rate", "dvb-s2_table.tx_type.code_rate",
3332 FT_UINT8
, BASE_HEX
, VALS(table_txType_codeRate
), DVB_S2_TABLE_TX_TYPE_CODE_RATE_MASK
,
3335 {&hf_dvb_s2_table_tx_type_constraint_length_k
, {
3336 "Tx type constraint length K", "dvb-s2_table.tx_type.constraint_length_k",
3337 FT_UINT8
, BASE_HEX
, VALS(table_txType_constraintLengthK
), DVB_S2_TABLE_TX_TYPE_CONSTRAINT_LENGTH_K_MASK
,
3340 {&hf_dvb_s2_table_tx_type_uw_length
, {
3341 "Tx type UW length", "dvb-s2_table.tx_type.uw_length",
3342 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3345 {&hf_dvb_s2_table_tx_type_nbr_uw_segments
, {
3346 "Tx type number UW segments", "dvb-s2_table.tx_type.nbr_uw_segments",
3347 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3350 {&hf_dvb_s2_table_tx_type_uw_segment
, {
3351 "UW segment", "dvb-s2_table.tx_type.uw_segment",
3352 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3355 {&hf_dvb_s2_table_tx_type_uw_segment_start
, {
3356 "UW segment start", "dvb-s2_table.tx_type.uw_segment.start",
3357 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3360 {&hf_dvb_s2_table_tx_type_uw_segment_length
, {
3361 "UW segment length", "dvb-s2_table.tx_type.uw_segment.length",
3362 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3365 {&hf_dvb_s2_table_tx_type_param_interleaver
, {
3366 "Tx type parameterized interleaver", "dvb-s2_table.tx_type.param_interleaver",
3367 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_TX_TYPE_PARAM_INTERLEAVER_MASK
,
3370 {&hf_dvb_s2_table_tx_type_n
, {
3371 "Tx type N", "dvb-s2_table.tx_type.n",
3372 FT_UINT16
, BASE_DEC
, NULL
, DVB_S2_TABLE_TX_TYPE_N_MASK
,
3375 {&hf_dvb_s2_table_tx_type_s
, {
3376 "Tx type s", "dvb-s2_table.tx_type.s",
3377 FT_UINT16
, BASE_DEC
, NULL
, DVB_S2_TABLE_TX_TYPE_S_MASK
,
3380 {&hf_dvb_s2_table_tx_type_p_interleaver
, {
3381 "Tx type p", "dvb-s2_table.tx_type.p",
3382 FT_UINT16
, BASE_DEC
, NULL
, DVB_S2_TABLE_TX_TYPE_P_MASK
,
3385 {&hf_dvb_s2_table_tx_type_n1_12
, {
3386 "Tx type N1/12", "dvb-s2_table.tx_type.n1_12",
3387 FT_UINT16
, BASE_DEC
, NULL
, DVB_S2_TABLE_TX_TYPE_N1_12_MASK
,
3390 {&hf_dvb_s2_table_tx_type_k1_12
, {
3391 "Tx type K1/12", "dvb-s2_table.tx_type.k1_12",
3392 FT_UINT16
, BASE_DEC
, NULL
, DVB_S2_TABLE_TX_TYPE_K1_12_MASK
,
3395 {&hf_dvb_s2_table_tx_type_K2_12
, {
3396 "Tx type K2/12", "dvb-s2_table.tx_type.k2_12",
3397 FT_UINT16
, BASE_DEC
, NULL
, DVB_S2_TABLE_TX_TYPE_K2_12_MASK
,
3400 {&hf_dvb_s2_table_tx_type_K3_12
, {
3401 "Tx type K3/12", "dvb-s2_table.tx_type.k3_12",
3402 FT_UINT16
, BASE_DEC
, NULL
, DVB_S2_TABLE_TX_TYPE_K3_12_MASK
,
3405 {&hf_dvb_s2_table_tx_type_pi_i
, {
3406 "Tx type PI(i)", "dvb-s2_table.tx_type.pi_i",
3407 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3411 {&hf_dvb_s2_table_satellite_loop_count
, {
3412 "Table satellite loop count", "dvb-s2_table.satellite_loop_count",
3413 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3416 {&hf_dvb_s2_table_satellite
, {
3417 "Satellite", "dvb-s2_table.satellite",
3418 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3421 {&hf_dvb_s2_table_satellite_id
, {
3422 "Satellite id", "dvb-s2_table.satellite.id",
3423 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
3426 {&hf_dvb_s2_table_satellite_x_coordinate
, {
3427 "Satellite X coordinate", "dvb-s2_table.satellite.x_coordinate",
3428 FT_FLOAT
, BASE_NONE
, NULL
, 0x0,
3431 {&hf_dvb_s2_table_satellite_y_coordinate
, {
3432 "Satellite Y coordinate", "dvb-s2_table.satellite.y_coordinate",
3433 FT_FLOAT
, BASE_NONE
, NULL
, 0x0,
3436 {&hf_dvb_s2_table_satellite_z_coordinate
, {
3437 "Satellite Z coordinate", "dvb-s2_table.satellite.z_coordinate",
3438 FT_FLOAT
, BASE_NONE
, NULL
, 0x0,
3442 {&hf_dvb_s2_table_network_descriptors_length
, {
3443 "Network descriptors length", "dvb-s2_table.network_descriptors_length",
3444 FT_UINT16
, BASE_DEC
, NULL
, DVB_S2_TABLE_NETWORK_DESC_LENGTH_MASK
,
3447 {&hf_dvb_s2_table_multiplex_streams_spec_length
, {
3448 "Multiplex streams spec loop length", "dvb-s2_table.multiplex_streams_spec_length",
3449 FT_UINT16
, BASE_DEC
, NULL
, DVB_S2_TABLE_MULTIPLEX_STREAMS_LENGTH_MASK
,
3452 {&hf_dvb_s2_table_multiplex
, {
3453 "Multiplex stream", "dvb-s2_table.multiplex",
3454 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3457 {&hf_dvb_s2_table_multiplex_forward_multiplex
, {
3458 "Forward multiplex", "dvb-s2_table.multiplex.forward_multiplex",
3459 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3462 {&hf_dvb_s2_table_multiplex_reward_multiplex
, {
3463 "Return Multiplex", "dvb-s2_table.multiplex.reward_multiplex",
3464 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3467 {&hf_dvb_s2_table_multiplex_original_network_id
, {
3468 "Multiplex stream original network id", "dvb-s2_table.multiplex.original_network_id",
3469 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3472 {&hf_dvb_s2_table_multiplex_transport_descriptors_length
, {
3473 "Multiplex stream transport descriptors length", "dvb-s2_table.multiplex.transport_descriptors_length",
3474 FT_UINT16
, BASE_DEC
, NULL
, DVB_S2_TABLE_MULTIPLEX_TRANSPORT_DESC_LENGTH_MASK
,
3478 {&hf_dvb_s2_reserved_future_use
, {
3479 "Reserved for future use", "dvb-s2_table.reserved_future_use",
3480 FT_UINT8
, BASE_HEX
, NULL
, 0x40,
3483 {&hf_dvb_s2_reserved_tdt
, {
3484 "Reserved", "dvb-s2_table.reserved",
3485 FT_UINT8
, BASE_HEX
, NULL
, 0x30,
3488 {&hf_dvb_s2_tdt_date
, {
3489 "Date", "dvb-s2_table.date",
3490 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
3493 {&hf_dvb_s2_tdt_hour
, {
3494 "Hour", "dvb-s2_table.hour",
3495 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
3498 {&hf_dvb_s2_tdt_minute
, {
3499 "Minute", "dvb-s2_table.minute",
3500 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
3503 {&hf_dvb_s2_tdt_second
, {
3504 "Second", "dvb-s2_table.second",
3505 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
3509 {&hf_dvb_s2_table_svn_number
, {
3510 "Table svn number", "dvb-s2_table.svn_number",
3511 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3514 {&hf_dvb_s2_table_svn_prefix_size
, {
3515 "Table svn prefix size", "dvb-s2_table.svn_prefix_size",
3516 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_SVN_PREFIX_SIZE_MASK
,
3519 {&hf_dvb_s2_table_pt_count
, {
3520 "Table pt count", "dvb-s2_table.pt_count",
3521 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3524 {&hf_dvb_s2_table_protocol
, {
3525 "Protocol", "dvb-s2_table.protocol",
3526 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3529 {&hf_dvb_s2_table_pt_protocol_type
, {
3530 "Protocol type", "dvb-s2_table.pt.protocol_type",
3531 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
3534 {&hf_dvb_s2_table_pt_address_size
, {
3535 "Protocol address size", "dvb-s2_table.pt.address_size",
3536 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3539 {&hf_dvb_s2_table_pt_mapping_sections
, {
3540 "Protocol mapping sections", "dvb-s2_table.pt.mapping_sections",
3541 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3544 {&hf_dvb_s2_table_pt_mapping_section
, {
3545 "Mapping section", "dvb-s2_table.pt.mapping_section",
3546 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3549 {&hf_dvb_s2_table_pt_ms_inclusion_start
, {
3550 "Mapping section inclusion start", "dvb-s2_table.pt.ms.inclusion_start",
3551 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3554 {&hf_dvb_s2_table_pt_ms_inclusion_end
, {
3555 "Mapping section inclusion end", "dvb-s2_table.pt.ms.inclusion_end",
3556 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3559 {&hf_dvb_s2_table_pt_ms_exclusions
, {
3560 "Mapping section exclusions", "dvb-s2_table.pt.ms.exclusions",
3561 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3564 {&hf_dvb_s2_table_pt_ms_exclusion
, {
3565 "Exclusion", "dvb-s2_table.pt.ms.exclusion",
3566 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3569 {&hf_dvb_s2_table_pt_ms_exclusion_start
, {
3570 "Exclusion start", "dvb-s2_table.pt.ms.exclusion.start",
3571 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3574 {&hf_dvb_s2_table_pt_ms_exclusion_end
, {
3575 "Exclusion end", "dvb-s2_table.pt.ms.exclusion.end",
3576 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3579 {&hf_dvb_s2_table_pt_ms_mac24_base
, {
3580 "Mapping section mac24 base", "dvb-s2_table.pt.ms.mac24_base",
3581 FT_UINT24
, BASE_HEX
, NULL
, 0x0,
3584 {&hf_dvb_s2_table_pt_ms_mcast_prefix_size
, {
3585 "Mapping section multicast prefix size", "dvb-s2_table.pt.ms.mcast_prefix_size",
3586 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_PT_MS_MCAST_PREFIX_SIZE_MASK
,
3591 {&hf_dvb_s2_table_descriptor
, {
3592 "Descriptor", "dvb-s2_table.descriptor",
3593 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3596 {&hf_dvb_s2_table_desc_tag
, {
3597 "Descriptor tag", "dvb-s2_table.desc.tag",
3598 FT_UINT8
, BASE_HEX
, VALS(table_desc_type
), 0x0,
3601 {&hf_dvb_s2_table_desc_length
, {
3602 "Descriptor length", "dvb-s2_table.desc.length",
3603 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3606 {&hf_dvb_s2_table_nnd_char
, {
3607 "Name", "dvb-s2_table.desc.nnd_name",
3608 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3611 {&hf_dvb_s2_table_ld_fm_id
, {
3612 "Forward Multiplex", "dvb-s2_table.desc.ld_fm_id",
3613 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
3616 {&hf_dvb_s2_table_ld_on_id
, {
3617 "Original network id", "dvb-s2_table.desc.ld_on_id",
3618 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
3621 {&hf_dvb_s2_table_ld_rm_id
, {
3622 "Return Multiplex", "dvb-s2_table.desc.ld_rm_id",
3623 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
3626 {&hf_dvb_s2_table_ld_service_id
, {
3627 "Service id", "dvb-s2_table.desc.ld_service_id",
3628 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
3631 {&hf_dvb_s2_table_ld_linkage_type
, {
3632 "Linkage type", "dvb-s2_table.desc.ld_linkage_type",
3633 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
3636 {&hf_dvb_s2_table_ld_ho_type
, {
3637 "Hand-over type", "dvb-s2_table.desc.ld_hand_over_type",
3638 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_DESC_HAND_OVER_TYPE_MASK
,
3641 {&hf_dvb_s2_table_ld_reserved_future_use
, {
3642 "Reserved for future use", "dvb-s2_table.desc.ld_reserved_future_use",
3643 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_DESC_RESERVED_FOR_FUTURE_USE_MASK
,
3646 {&hf_dvb_s2_table_ld_origin_type
, {
3647 "Origin type", "dvb-s2_table.desc.ld_origin_type",
3648 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_DESC_ORIGIN_TYPE_MASK
,
3651 {&hf_dvb_s2_table_ld_network_id
, {
3652 "Network Id", "dvb-s2_table.desc.ld_network_id",
3653 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
3656 {&hf_dvb_s2_table_ld_initial_service_id
, {
3657 "Initial service Id", "dvb-s2_table.desc.ld_initial_service_id",
3658 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
3661 {&hf_dvb_s2_table_ld_target_event_id
, {
3662 "Target event id", "dvb-s2_table.desc.ld_target_event_id",
3663 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
3666 {&hf_dvb_s2_table_ld_target_listed
, {
3667 "Target listed", "dvb-s2_table.desc.ld_target_listed",
3668 FT_UINT8
, BASE_HEX
, NULL
, 0x80,
3671 {&hf_dvb_s2_table_ld_event_simulcast
, {
3672 "Event simulcast", "dvb-s2_table.desc.ld_event_simulcast",
3673 FT_UINT8
, BASE_HEX
, NULL
, 0x40,
3676 {&hf_dvb_s2_table_ld_reserved
, {
3677 "Reserved", "dvb-s2_table.desc.ld_reserved",
3678 FT_UINT8
, BASE_HEX
, NULL
, 0x3F,
3681 {&hf_dvb_s2_table_ld_private_data
, {
3682 "Private data", "dvb-s2_table.desc.ld_private_data",
3683 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3686 {&hf_dvb_s2_table_ld_population_id_loop_count
, {
3687 "Population id loop count", "dvb-s2_table.desc.ld_population_id_loop_count",
3688 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3691 {&hf_dvb_s2_table_ld_population_id_base
, {
3692 "Population id base", "dvb-s2_table.desc.ld_population_id_base",
3693 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3696 {&hf_dvb_s2_table_ld_population_id_mask
, {
3697 "Population id mask", "dvb-s2_table.desc.ld_population_id_mask",
3698 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3701 /* Satellite Return Link Descriptor */
3702 {&hf_dvb_s2_table_srld_satellite_id
, {
3703 "Satellite Id", "dvb-s2_table.desc.srld_satellite_id",
3704 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3707 {&hf_dvb_s2_table_srld_beam_id
, {
3708 "Beam Id", "dvb-s2_table.desc.srld_beam_id",
3709 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3712 {&hf_dvb_s2_table_srld_gateway_id
, {
3713 "Gateway Id", "dvb-s2_table.desc.srld_gateway_id",
3714 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3717 {&hf_dvb_s2_table_srld_reserved
, {
3718 "Reserved data", "dvb-s2_table.desc.srld_reserved",
3719 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3722 {&hf_dvb_s2_table_srld_orbital_position
, {
3723 "Orbital position", "dvb-s2_table.desc.srld_orbital_position",
3724 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
3727 {&hf_dvb_s2_table_srld_west_east_flag
, {
3728 "West east flag", "dvb-s2_table.desc.srld_west_east_flag",
3729 FT_UINT8
, BASE_DEC
, NULL
, 0x01,
3732 {&hf_dvb_s2_table_srld_superframe_sequence
, {
3733 "Superframe sequence", "dvb-s2_table.desc.srld_superframe_sequence",
3734 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3737 {&hf_dvb_s2_table_srld_tx_frequency_offset
, {
3738 "Tx frequency offset", "dvb-s2_table.desc.srld_tx_frequency_offset",
3739 FT_UINT24
, BASE_DEC
, NULL
, 0x0,
3742 {&hf_dvb_s2_table_srld_zero_frequency_offset
, {
3743 "Zero frequency offset", "dvb-s2_table.desc.srld_zero_frequency_offset",
3744 FT_UINT24
, BASE_DEC
, NULL
, 0x0,
3747 {&hf_dvb_s2_table_srld_private_data
, {
3748 "Private data", "dvb-s2_table.desc.srld_private_data",
3749 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3752 /* Logon Initialize Descriptor */
3753 {&hf_dvb_s2_table_lid_group_id
, {
3754 "Group Id", "dvb-s2_table.desc.lid_group_id",
3755 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3758 {&hf_dvb_s2_table_lid_logon_id
, {
3759 "Logon Id", "dvb-s2_table.desc.lid_logon_id",
3760 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3763 {&hf_dvb_s2_table_lid_continuous_carrier
, {
3764 "Continuous carrier", "dvb-s2_table.desc.lid_continuous_carrier",
3765 FT_UINT8
, BASE_HEX
, NULL
, 0x20,
3768 {&hf_dvb_s2_table_lid_security_handshake
, {
3769 "Security handsake required", "dvb-s2_table.desc.lid_security_handshake",
3770 FT_UINT8
, BASE_HEX
, NULL
, 0x10,
3773 {&hf_dvb_s2_table_lid_prefix_flag
, {
3774 "Prefix flag", "dvb-s2_table.desc.lid_prefix_flag",
3775 FT_UINT8
, BASE_HEX
, NULL
, 0x08,
3778 {&hf_dvb_s2_table_lid_data_unit_label_flag
, {
3779 "Data unit label flag", "dvb-s2_table.desc.lid_data_unit_label_flag",
3780 FT_UINT8
, BASE_HEX
, NULL
, 0x04,
3783 {&hf_dvb_s2_table_lid_mini_slot_flag
, {
3784 "Mini slot flag", "dvb-s2_table.desc.lid_mini_slot_flag",
3785 FT_UINT8
, BASE_HEX
, NULL
, 0x02,
3788 {&hf_dvb_s2_table_lid_contention_based_mini_slot_flag
, {
3789 "Contention based mini slot flag", "dvb-s2_table.desc.lid_contention_based_mini_slot_flag",
3790 FT_UINT8
, BASE_HEX
, NULL
, 0x01,
3793 {&hf_dvb_s2_table_lid_capacity_type_flag
, {
3794 "Capacity type flag", "dvb-s2_table.desc.lid_capacity_type_flag",
3795 FT_UINT8
, BASE_HEX
, NULL
, 0x40,
3798 {&hf_dvb_s2_table_lid_traffic_burst_type
, {
3799 "Traffic burst type", "dvb-s2_table.desc.lid_traffic_burst_type",
3800 FT_UINT8
, BASE_HEX
, NULL
, 0x20,
3803 {&hf_dvb_s2_table_lid_connectivity
, {
3804 "Connectivity", "dvb-s2_table.desc.lid_connectivity",
3805 FT_UINT8
, BASE_HEX
, NULL
, 0x10,
3808 {&hf_dvb_s2_table_lid_return_vpi
, {
3809 "Return vpi", "dvb-s2_table.desc.lid_return_vpi",
3810 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3813 {&hf_dvb_s2_table_lid_return_vci
, {
3814 "Return vci", "dvb-s2_table.desc.lid_return_vci",
3815 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3818 {&hf_dvb_s2_table_lid_return_signalling_vpi
, {
3819 "Return signalling vpi", "dvb-s2_table.desc.lid_return_signalling_vpi",
3820 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3823 {&hf_dvb_s2_table_lid_return_signalling_vci
, {
3824 "Return signalling vci", "dvb-s2_table.desc.lid_return_signalling_vci",
3825 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3828 {&hf_dvb_s2_table_lid_forward_signalling_vpi
, {
3829 "Forward signalling vpi", "dvb-s2_table.desc.lid_forward_signalling_vpi",
3830 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3833 {&hf_dvb_s2_table_lid_forward_signalling_vci
, {
3834 "Forward signalling vci", "dvb-s2_table.desc.lid_forward_signalling_vci",
3835 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3838 {&hf_dvb_s2_table_lid_return_trf_pid
, {
3839 "Return trf pid", "dvb-s2_table.desc.lid_return_trf_pid",
3840 FT_UINT16
, BASE_DEC
, NULL
, 0x1FFF,
3843 {&hf_dvb_s2_table_lid_return_ctrl_mngm_pid
, {
3844 "Return ctrl mngm pid", "dvb-s2_table.desc.lid_return_ctrl_mngm_pid",
3845 FT_UINT16
, BASE_DEC
, NULL
, 0x1FFF,
3848 {&hf_dvb_s2_table_lid_cra_level
, {
3849 "Cra level", "dvb-s2_table.desc.lid_cra_level",
3850 FT_UINT24
, BASE_DEC
, NULL
, 0x0,
3853 {&hf_dvb_s2_table_lid_vbdc_max
, {
3854 "VBDC max", "dvb-s2_table.desc.lid_vbdc_max",
3855 FT_UINT16
, BASE_DEC
, NULL
, 0x07FF,
3858 {&hf_dvb_s2_table_lid_rbdc_max
, {
3859 "RBDC max", "dvb-s2_table.desc.lid_rbdc_max",
3860 FT_UINT24
, BASE_DEC
, NULL
, 0x0,
3863 {&hf_dvb_s2_table_lid_rbdc_timeout
, {
3864 "RBDC timeout", "dvb-s2_table.desc.lid_rbdc_timeout",
3865 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3868 /* Forward Interaction Path Descriptor */
3869 {&hf_dvb_s2_table_fipd_original_network_id
, {
3870 "Original network id", "dvb-s2_table.desc.fipd_original_network_id",
3871 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3874 {&hf_dvb_s2_table_fipd_transport_stream_id
, {
3875 "Transport stream id", "dvb-s2_table.desc.fipd_transport_stream_id",
3876 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3879 {&hf_dvb_s2_table_fipd_pid_loop_count
, {
3880 "PID loop count", "dvb-s2_table.desc.fipd_pid_loop_count",
3881 FT_UINT8
, BASE_DEC
, NULL
, 0x0F,
3884 {&hf_dvb_s2_table_fipd_pid
, {
3885 "PID", "dvb-s2_table.desc.fipd_pid",
3886 FT_UINT16
, BASE_DEC
, NULL
, 0x1FFF,
3889 /* Return Interaction Path Descriptor */
3890 {&hf_dvb_s2_table_ripd_continuous_carrier
, {
3891 "Continuous carrier", "dvb-s2_table.desc.ripd_continuous_carrier",
3892 FT_UINT8
, BASE_DEC
, NULL
, 0x10,
3895 {&hf_dvb_s2_desc_network_routing
, {
3896 "Network routing", "dvb-s2_table.desc.ripd_network_routing",
3897 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
3900 {&hf_dvb_s2_table_ripd_network_routing_label_loop_count
, {
3901 "Network routing label loop count", "dvb-s2_table.desc.ripd_network_routing_label_loop_count",
3902 FT_UINT8
, BASE_DEC
, NULL
, 0x0F,
3905 {&hf_dvb_s2_table_ripd_allocation_desallocation_flag
, {
3906 "Allocation desallocation flag", "dvb-s2_table.desc.network_touing.ripd_allocation_desallocation_flag",
3907 FT_UINT8
, BASE_DEC
, NULL
, 0x02,
3910 {&hf_dvb_s2_table_ripd_pid_flag
, {
3911 "PID flag", "dvb-s2_table.desc.network_touing.ripd_pid_flag",
3912 FT_UINT8
, BASE_DEC
, NULL
, 0x01,
3915 {&hf_dvb_s2_table_ripd_pid_loop_count
, {
3916 "PID loop count", "dvb-s2_table.desc.network_touing.ripd_pid_loop_count",
3917 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3920 {&hf_dvb_s2_table_ripd_pid
, {
3921 "PID", "dvb-s2_table.desc.network_touing.ripd_pid",
3922 FT_UINT16
, BASE_DEC
, NULL
, 0x1FFF,
3925 {&hf_dvb_s2_table_ripd_vpi_vci_flag
, {
3926 "VPI VCI flag", "dvb-s2_table.desc.network_touing.ripd_vpi_vci_flag",
3927 FT_UINT8
, BASE_DEC
, NULL
, 0x01,
3930 {&hf_dvb_s2_table_ripd_vpi_vci_loop_count
, {
3931 "VPI VCI loop count", "dvb-s2_table.desc.network_touing.ripd_vpi_vci_loop_count",
3932 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3935 {&hf_dvb_s2_table_ripd_vpi
, {
3936 "VPI", "dvb-s2_table.desc.network_touing.ripd_vpi",
3937 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3940 {&hf_dvb_s2_table_ripd_vci
, {
3941 "VCI", "dvb-s2_table.desc.network_touing.ripd_vci",
3942 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3945 {&hf_dvb_s2_table_ripd_route_id_flag
, {
3946 "Route id flag", "dvb-s2_table.desc.network_touing.ripd_route_id_flag",
3947 FT_UINT8
, BASE_DEC
, NULL
, 0x01,
3950 {&hf_dvb_s2_table_ripd_route_id_loop_count
, {
3951 "Route id loop count", "dvb-s2_table.desc.network_touing.ripd_route_id_loop_count",
3952 FT_UINT8
, BASE_DEC
, NULL
, 0x01,
3955 {&hf_dvb_s2_table_ripd_route_id
, {
3956 "Route id", "dvb-s2_table.desc.network_touing.ripd_route_id",
3957 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3960 {&hf_dvb_s2_table_ripd_channel_id
, {
3961 "Channel id", "dvb-s2_table.desc.network_touing.ripd_channel_id",
3962 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
3965 /* Correction Control Descriptor */
3966 {&hf_dvb_s2_table_corcd_acq_response_timeout
, {
3967 "ACQ response timeout", "dvb-s2_table.desc.corcd_acq_response_timeout",
3968 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3971 {&hf_dvb_s2_table_corcd_sync_response_timeout
, {
3972 "SYNC response timeout", "dvb-s2_table.desc.corcd_sync_response_timeout",
3973 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3976 {&hf_dvb_s2_table_corcd_acq_max_losses
, {
3977 "ACQ max losses", "dvb-s2_table.desc.corcd_acq_max_losses",
3978 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3981 {&hf_dvb_s2_table_corcd_sync_max_losses
, {
3982 "SYNC max losses", "dvb-s2_table.desc.corcd_sync_max_losses",
3983 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3986 /* Contention Control Descriptor */
3987 {&hf_dvb_s2_table_concd_superframe_id
, {
3988 "Superframe id/sequence", "dvb-s2_table.desc.concd_superframe_id",
3989 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
3992 {&hf_dvb_s2_table_concd_csc_response_timeout
, {
3993 "CSC/Logon response timeout", "dvb-s2_table.desc.concd_csc_response_timeout",
3994 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
3997 {&hf_dvb_s2_table_concd_csc_max_losses
, {
3998 "CSC/Logon max losses", "dvb-s2_table.desc.concd_csc_max_losses",
3999 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4002 {&hf_dvb_s2_table_concd_max_time_before_retry
, {
4003 "Max time before retry", "dvb-s2_table.desc.concd_max_time_before_retry",
4004 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
4007 /* Satellite Forward Link Descriptor */
4008 {&hf_dvb_s2_table_sfld_satellite_id
, {
4009 "Satellite ID", "dvb-s2_table.desc.sfld_satellite_id",
4010 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4013 {&hf_dvb_s2_table_sfld_beam_id
, {
4014 "Beam ID", "dvb-s2_table.desc.sfld_beam_id",
4015 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4018 {&hf_dvb_s2_table_sfld_ncc_id
, {
4019 "NCC ID", "dvb-s2_table.desc.sfld_ncc_id",
4020 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4023 {&hf_dvb_s2_table_sfld_multiplex_usage
, {
4024 "Multiplex usage", "dvb-s2_table.desc.sfld_multiplex_usage",
4025 FT_UINT8
, BASE_DEC
, NULL
, 0xE0,
4028 {&hf_dvb_s2_table_sfld_local_multiplex_id
, {
4029 "Local multiplex id", "dvb-s2_table.desc.sfld_local_multiplex_id",
4030 FT_UINT8
, BASE_DEC
, NULL
, 0x1F,
4033 {&hf_dvb_s2_table_sfld_frequency
, {
4034 "Frequency", "dvb-s2_table.desc.sfld_frequency",
4035 FT_INT32
, BASE_DEC
, NULL
, 0x0,
4038 {&hf_dvb_s2_table_sfld_orbital_position
, {
4039 "Orbital position", "dvb-s2_table.desc.sfld_orbital_position",
4040 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
4043 {&hf_dvb_s2_table_sfld_west_east_flag
, {
4044 "West east flag", "dvb-s2_table.desc.sfld_west_east_flag",
4045 FT_UINT8
, BASE_DEC
, NULL
, 0x80,
4048 {&hf_dvb_s2_table_sfld_polarization
, {
4049 "Polarization", "dvb-s2_table.desc.sfld_polarization",
4050 FT_UINT8
, BASE_DEC
, NULL
, 0x60,
4053 {&hf_dvb_s2_table_sfld_transmission_standard
, {
4054 "Transmission standard", "dvb-s2_table.desc.sfld_transmission_standard",
4055 FT_UINT8
, BASE_DEC
, NULL
, 0x18,
4058 {&hf_dvb_s2_table_sfld_scrambling_sequence_selector
, {
4059 "Scrambling sequence selector", "dvb-s2_table.desc.sfld_scrambling_sequence_selector",
4060 FT_UINT8
, BASE_DEC
, NULL
, 0x04,
4063 {&hf_dvb_s2_table_sfld_roll_off
, {
4064 "Roll-off", "dvb-s2_table.desc.sfld_roll_off",
4065 FT_UINT8
, BASE_DEC
, NULL
, 0x03,
4068 {&hf_dvb_s2_table_sfld_symbol_rate
, {
4069 "Symbol rate", "dvb-s2_table.desc.sfld_symbol_rate",
4070 FT_UINT24
, BASE_DEC
, NULL
, 0x0,
4073 {&hf_dvb_s2_table_sfld_fec_inner
, {
4074 "FEC Inner", "dvb-s2_table.desc.sfld_fec_inner",
4075 FT_UINT8
, BASE_DEC
, NULL
, 0xF0,
4078 {&hf_dvb_s2_table_sfld_input_stream_identifier
, {
4079 "Input stream identifier", "dvb-s2_table.desc.sfld_input_stream_identifier",
4080 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4083 {&hf_dvb_s2_table_sfld_reserved_for_forward_spreading
, {
4084 "Reserved for forward link spreading", "dvb-s2_table.desc.sfld_reserved_for_forward_spreading",
4085 FT_UINT8
, BASE_DEC
, NULL
, 0xE0,
4088 {&hf_dvb_s2_table_sfld_scrambling_sequence_index
, {
4089 "Scrambling sequence index", "dvb-s2_table.desc.sfld_scrambling_sequence_index",
4090 FT_UINT24
, BASE_DEC
, NULL
, 0x03FFFF,
4093 {&hf_dvb_s2_table_sfld_private_data
, {
4094 "Private data", "dvb-s2_table.desc.sfld_private_data",
4095 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
4098 {&hf_dvb_s2_table_sfld_ncr_private_data
, {
4099 "NCR (Private data)", "dvb-s2_table.desc.sfld_ncr_private_data",
4100 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
4103 {&hf_dvb_s2_table_sfld_ncr_base_private_data
, {
4104 "NCR BASE", "dvb-s2_table.desc.sfld_ncr_base_private_data",
4105 FT_UINT64
, BASE_DEC
, NULL
, 0x0,
4108 {&hf_dvb_s2_table_sfld_ncr_ext_private_data
, {
4109 "NCR EXT", "dvb-s2_table.desc.sfld_ncr_ext_private_data",
4110 FT_UINT16
, BASE_DEC
, NULL
, 0x01FF,
4113 /* Control assign descriptor */
4114 {&hf_dvb_s2_table_desc_sync_achieved_time_threshold
, {
4115 "Descriptor sync achieved time threshold", "dvb-s2_table.desc.sync_achieved_time_threshold",
4116 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4119 {&hf_dvb_s2_table_desc_max_sync_tries
, {
4120 "Descriptor max sync tries", "dvb-s2_table.desc.max_sync_tries",
4121 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4124 {&hf_dvb_s2_table_desc_sync_achieved_freq_threshold
, {
4125 "Descriptor sync achieved frequency threshold", "dvb-s2_table.desc.sync_achieved_freq_threshold",
4126 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4129 {&hf_dvb_s2_table_desc_ctrl_start_superframe_count
, {
4130 "Descriptor control start superframe count", "dvb-s2_table.desc.control_start_superframe_count",
4131 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4134 {&hf_dvb_s2_table_desc_ctrl_frame_nbr
, {
4135 "Descriptor control frame number", "dvb-s2_table.desc.control_frame_number",
4136 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4139 {&hf_dvb_s2_table_desc_ctrl_repeat_period
, {
4140 "Descriptor control repeat period", "dvb-s2_table.desc.control_repeat_period",
4141 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4144 {&hf_dvb_s2_table_desc_ctrl_timeslot_nbr
, {
4145 "Descriptor control timeslot number", "dvb-s2_table.desc.control_timeslot_number",
4146 FT_UINT16
, BASE_DEC
, NULL
, DVB_S2_TABLE_DESC_CTRL_TIMESLOT_NBR_MASK
,
4149 {&hf_dvb_s2_table_desc_sync_start_superframe
, {
4150 "Descriptor SYNC start superframe", "dvb-s2_table.desc.sync_start_superframe",
4151 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4154 {&hf_dvb_s2_table_desc_sync_frame_nbr
, {
4155 "Descriptor SYNC frame number", "dvb-s2_table.desc.sync_frame_number",
4156 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4159 {&hf_dvb_s2_table_desc_sync_repeat_period
, {
4160 "Descriptor SYNC repeat period", "dvb-s2_table.desc.sync_repeat_period",
4161 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4164 {&hf_dvb_s2_table_desc_sync_slot_nbr
, {
4165 "Descriptor SYNC timeslot number", "dvb-s2_table.desc.sync_timeslot_number",
4166 FT_UINT16
, BASE_DEC
, NULL
, DVB_S2_TABLE_DESC_CTRL_TIMESLOT_NBR_MASK
,
4169 /* Correction message descriptor */
4170 {&hf_dvb_s2_table_desc_time_correct_flag
, {
4171 "Descriptor time correction flag", "dvb-s2_table.desc.time_correct_flag",
4172 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_DESC_TIME_CORRECT_FLAG_MASK
,
4175 {&hf_dvb_s2_table_desc_power_correct_flag
, {
4176 "Descriptor power correction flag", "dvb-s2_table.desc.power_correct_flag",
4177 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_DESC_POWER_CORRECT_FLAG_MASK
,
4180 {&hf_dvb_s2_table_desc_freq_correct_flag
, {
4181 "Descriptor frequency correction flag", "dvb-s2_table.desc.freq_correct_flag",
4182 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_DESC_FREQ_CORRECT_FLAG_MASK
,
4185 {&hf_dvb_s2_table_desc_slot_type
, {
4186 "Descriptor slot type", "dvb-s2_table.desc.slot_type",
4187 FT_UINT8
, BASE_HEX
, VALS(table_timeslotContent
), DVB_S2_TABLE_DESC_SLOT_TYPE_MASK
,
4190 {&hf_dvb_s2_table_desc_burst_time_scaling
, {
4191 "Descriptor burst time scaling", "dvb-s2_table.desc.burst_time_scaling",
4192 FT_UINT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_DESC_BURST_TIME_SCALING_MASK
,
4195 {&hf_dvb_s2_table_desc_burst_time_correct
, {
4196 "Descriptor burst time correction", "dvb-s2_table.desc.burst_time_correct",
4197 FT_INT8
, BASE_DEC
, NULL
, 0x0,
4200 {&hf_dvb_s2_table_desc_power_ctrl_flag
, {
4201 "Descriptor power control flag", "dvb-s2_table.desc.power_ctrl_flag",
4202 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_DESC_POWER_CTRL_FLAG_MASK
,
4205 {&hf_dvb_s2_table_desc_power_correction
, {
4206 "Descriptor power correction", "dvb-s2_table.desc.power_correction",
4207 FT_INT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_DESC_POWER_CORRECTION_MASK
,
4210 {&hf_dvb_s2_table_desc_power_esn0
, {
4211 "Descriptor EsN0", "dvb-s2_table.desc.esn0",
4212 FT_INT8
, BASE_DEC
, NULL
, DVB_S2_TABLE_DESC_POWER_CORRECTION_MASK
,
4215 {&hf_dvb_s2_table_desc_freq_correction
, {
4216 "Descriptor frequency correction", "dvb-s2_table.desc.freq_correction",
4217 FT_INT16
, BASE_DEC
, NULL
, 0x0,
4220 /* Correction message extension descriptor */
4221 {&hf_dvb_s2_table_desc_slot_nbr
, {
4222 "Descriptor slot number", "dvb-s2_table.desc.slot_number",
4223 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4226 {&hf_dvb_s2_table_desc_sf_sequence
, {
4227 "Superframe sequence", "dvb-s2_table.desc.cmed.sf.sequence",
4228 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
4231 {&hf_dvb_s2_table_desc_frame_number
, {
4232 "Frame number", "dvb-s2_table.desc.cmed.frame.number",
4233 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4236 /* Logon response descriptor */
4237 {&hf_dvb_s2_table_desc_keep_id_after_logoff
, {
4238 "Descriptor keep identifiers after logoff", "dvb-s2_table.desc.keep_id_after_logoff",
4239 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_DESC_KEEP_ID_AFTER_LOGOFF_MASK
,
4242 {&hf_dvb_s2_table_desc_power_ctrl_mode
, {
4243 "Descriptor power control mode", "dvb-s2_table.desc.power_ctrl_mode",
4244 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_DESC_POWER_CTRLMODE_MASK
,
4247 {&hf_dvb_s2_table_desc_rcst_access_status
, {
4248 "Descriptor RCST access status", "dvb-s2_table.desc.rcst_access_status",
4249 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_DESC_RCST_ACCESS_STATUS_MASK
,
4252 {&hf_dvb_s2_table_desc_logon_id
, {
4253 "Descriptor logon id", "dvb-s2_table.desc.logon_id",
4254 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
4257 {&hf_dvb_s2_table_desc_lowest_assign_id
, {
4258 "Descriptor lowest_assignment_id", "dvb-s2_table.desc.lowest_assign_id",
4259 FT_UINT24
, BASE_HEX
, NULL
, 0x0,
4262 {&hf_dvb_s2_table_desc_assign_id_count
, {
4263 "Descriptor assignment id count", "dvb-s2_table.desc.assign_id_count",
4264 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_DESC_ASSIGN_ID_COUNT_MASK
,
4267 {&hf_dvb_s2_table_desc_unicast_mac24_count
, {
4268 "Descriptor unicast_mac24_count", "dvb-s2_table.desc.unicast_mac24_count",
4269 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_DESC_UNICAST_MAC24_COUNT_MASK
,
4272 {&hf_dvb_s2_table_mac24
, {
4273 "MAC24", "dvb-s2_table.desc.mac24",
4274 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
4277 {&hf_dvb_s2_table_mac24_prefix_size
, {
4278 "MAC24 prefix size", "dvb-s2_table.desc.mac24.prefix_size",
4279 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_MAC24_PREFIX_SIZE_MASK
,
4282 {&hf_dvb_s2_table_mac24_unicast
, {
4283 "MAC24 unicast", "dvb-s2_table.mac24.unicast",
4284 FT_UINT24
, BASE_HEX
, NULL
, 0x0,
4287 {&hf_dvb_s2_table_mac24_mcast_mapping_method
, {
4288 "MAC24 mcast mapping method", "dvb-s2_table.mac24.mcast_mapping_method",
4289 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_MAC24_MAPPING_METHOD_MASK
,
4292 {&hf_dvb_s2_table_mac24_mcast_ip_version_ind_pres
, {
4293 "MAC24 mcast ip version indicator presence", "dvb-s2_table.mac24.mcast_ip_version_ind_pres",
4294 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_MAC24_MCAST_IP_VERSION_IND_PRES_MASK
,
4297 {&hf_dvb_s2_table_mac24_mcast_synthesis_field_size
, {
4298 "MAC24 mcast synthesis field size", "dvb-s2_table.mac24.mcast_synthesis_field_size",
4299 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_MAC24_MCAST_SYNTHESIS_FIELD_SIZE_MASK
,
4302 {&hf_dvb_s2_table_desc_default_svn_number
, {
4303 "Descriptor default svn number", "dvb-s2_table.desc.default_svn_number",
4304 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
4307 {&hf_dvb_s2_table_desc_reserved
, {
4308 "Descriptor reserved", "dvb-s2_table.desc.reserved",
4309 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
4312 /* Mobility Control descriptor */
4313 {&hf_dvb_s2_table_mc_command_value
, {
4314 "Descriptor command value", "dvb-s2_table.desc.mc_command_value",
4315 FT_UINT16
, BASE_HEX
, VALS(table_mobility_command_value
), 0x0,
4318 {&hf_dvb_s2_table_mc_command_parameter
, {
4319 "Descriptor command parameter", "dvb-s2_table.desc.mc_command_parameter",
4320 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
4323 /* Lowest Software Version Descriptor */
4324 {&hf_dvb_s2_table_lsvd_group_count
, {
4325 "Descriptor Group count", "dvb-s2_table.desc.lsvd_group_count",
4326 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4329 {&hf_dvb_s2_table_lsvd_oui
, {
4330 "Descriptor modem OUI", "dvb-s2_table.desc.lsvd_oui",
4331 FT_UINT32
, BASE_DEC
, NULL
, 0x00FFFFFF,
4334 {&hf_dvb_s2_table_lsvd_mcast_address
, {
4335 "Descriptor multicast service address", "dvb-s2_table.desc.lsvd_mcast_address",
4336 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4339 {&hf_dvb_s2_table_lsvd_mcast_port
, {
4340 "Descriptor multicast service port", "dvb-s2_table.desc.lsvd_mcast_port",
4341 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4344 {&hf_dvb_s2_table_lsvd_version_field_length
, {
4345 "Descriptor version field length", "dvb-s2_table.desc.lsvd_version_field_length",
4346 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4349 {&hf_dvb_s2_table_lsvd_version_bytes
, {
4350 "Descriptor version bytes", "dvb-s2_table.desc.lsvd_version_bytes",
4351 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
4354 /* Lower layer service descriptor */
4355 {&hf_dvb_s2_table_desc_default_ctrl_random_interval
, {
4356 "Descriptor default control randomization interval", "dvb-s2_table.desc.default_ctrl_random_interval",
4357 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
4360 {&hf_dvb_s2_table_desc_dynamic_rate_persistence
, {
4361 "Descriptor dynamic rate persistence", "dvb-s2_table.desc.dynamic_rate_persistence",
4362 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
4365 {&hf_dvb_s2_table_desc_volume_backlog_persistence
, {
4366 "Descriptor volume backlog persistence", "dvb-s2_table.desc.volume_backlog_persistence",
4367 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
4370 {&hf_dvb_s2_table_desc_lls_count
, {
4371 "Descriptor lower layer service count", "dvb-s2_table.desc.lower_layer_service_count",
4372 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_DESC_LLS_COUNT_MASK
,
4375 {&hf_dvb_s2_table_desc_rc_count
, {
4376 "Descriptor rc count", "dvb-s2_table.desc.rc_count",
4377 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_DESC_RC_COUNT_MASK
,
4380 {&hf_dvb_s2_table_desc_ra_ac_count
, {
4381 "Descriptor ra_ac count", "dvb-s2_table.desc.ra_ac_count",
4382 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_DESC_RA_AC_COUNT_MASK
,
4385 {&hf_dvb_s2_table_lls
, {
4386 "lower layer service", "dvb-s2_table.lls",
4387 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
4390 {&hf_dvb_s2_table_lls_index
, {
4391 "lls index", "dvb-s2_table.lls.index",
4392 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_LLS_INDEX_MASK
,
4395 {&hf_dvb_s2_table_lls_random_access
, {
4396 "lls random access", "dvb-s2_table.lls.random_access",
4397 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_LLS_RANDOM_ACCESS_MASK
,
4400 {&hf_dvb_s2_table_lls_dedicated_access
, {
4401 "lls dedicated access", "dvb-s2_table.lls.dedicated_access",
4402 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_LLS_DEDICATED_ACCESS_MASK
,
4405 {&hf_dvb_s2_table_lls_nominal_rc_index
, {
4406 "lls nominal rc index", "dvb-s2_table.lls.nominal_rc_index",
4407 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_LLS_NOMINAL_RC_INDEX_MASK
,
4410 {&hf_dvb_s2_table_lls_nominal_da_ac_index
, {
4411 "lls nominal da_ac index", "dvb-s2_table.lls.nominal_da_ac_index",
4412 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_LLS_NOMINAL_DA_AC_INDEX_MASK
,
4415 {&hf_dvb_s2_table_lls_conditional_demand_rc_map
, {
4416 "lls conditional demand rc map", "dvb-s2_table.lls.conditional_demand_rc_map",
4417 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
4420 {&hf_dvb_s2_table_lls_conditional_scheduler_da_ac_map
, {
4421 "lls conditional scheduler da ac map", "dvb-s2_table.lls.conditional_scheduler_da_ac_map",
4422 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
4425 {&hf_dvb_s2_table_lls_nominal_ra_ac_index
, {
4426 "lls nominal ra_ac index", "dvb-s2_table.lls.nominal_ra_ac_index",
4427 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_LLS_NOMINAL_RA_AC_INDEX_MASK
,
4430 {&hf_dvb_s2_table_lls_conditional_scheduler_ra_ac_map
, {
4431 "lls nominal ra_ac map", "dvb-s2_table.lls.nominal_ra_ac_map",
4432 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
4435 {&hf_dvb_s2_table_rc
, {
4436 "request class", "dvb-s2_table.rc",
4437 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
4440 {&hf_dvb_s2_table_rc_index
, {
4441 "rc index", "dvb-s2_table.rc.index",
4442 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_RC_INDEX_MASK
,
4445 {&hf_dvb_s2_table_rc_constant_assignment_provided
, {
4446 "rc constant assignment provided", "dvb-s2_table.rc.constant_assignment_provided",
4447 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_RC_CONSTANT_ASSIGN_MASK
,
4450 {&hf_dvb_s2_table_rc_volume_allowed
, {
4451 "rc volume allowed", "dvb-s2_table.rc.volume_allowed",
4452 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_RC_VOLUME_ALLOWED_MASK
,
4455 {&hf_dvb_s2_table_rc_rbdc_allowed
, {
4456 "rc rbdc allowed", "dvb-s2_table.rc.rbdc_allowed",
4457 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_RC_RBDC_ALLOWED_MASK
,
4460 {&hf_dvb_s2_table_rc_maximum_service_rate
, {
4461 "rc maximum service rate", "dvb-s2_table.rc.maximum_service_rate",
4462 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4465 {&hf_dvb_s2_table_rc_minimum_service_rate
, {
4466 "rc minimum service rate", "dvb-s2_table.rc.minimum_service_rate",
4467 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4470 {&hf_dvb_s2_table_rc_constant_service_rate
, {
4471 "rc minimum constant rate", "dvb-s2_table.rc.constant_service_rate",
4472 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
4475 {&hf_dvb_s2_table_rc_maximum_backlog
, {
4476 "rc maximum_backlog", "dvb-s2_table.rc.maximum_backlog",
4477 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4480 {&hf_dvb_s2_table_ra_ac
, {
4481 "random access allocation channel", "dvb-s2_table.ra_ac",
4482 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
4485 {&hf_dvb_s2_table_ra_ac_index
, {
4486 "ra_ac index", "dvb-s2_table.ra_ac.index",
4487 FT_UINT8
, BASE_HEX
, NULL
, DVB_S2_TABLE_RA_AC_INDEX_MASK
,
4490 {&hf_dvb_s2_table_ra_ac_max_unique_payload_per_block
, {
4491 "ra_ac max unique payload per block", "dvb-s2_table.ra_ac.max_unique_payload_per_block",
4492 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4495 {&hf_dvb_s2_table_ra_ac_max_consecutive_block_accessed
, {
4496 "ra_ac max consecutive block accessed", "dvb-s2_table.ra_ac.max_consecutive_block_accessed",
4497 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4500 {&hf_dvb_s2_table_ra_ac_min_idle_block
, {
4501 "ra_ac min idle block", "dvb-s2_table.ra_ac.min_idle_block",
4502 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4505 {&hf_dvb_s2_table_ra_ac_defaults_field_size
, {
4506 "ra_ac defaults field size", "dvb-s2_table.ra_ac.default_field_size",
4507 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
4510 {&hf_dvb_s2_table_ra_ac_defaults_for_ra_load_control
, {
4511 "ra_ac defaults for ra load control", "dvb-s2_table.ra_ac.defaults_for_ra_load_control",
4512 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
4515 {&hf_dvb_s2_table_crc32
, {
4516 "Table crc32", "dvb-s2_table.crc32",
4517 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
4522 static int *ett_table
[] = {
4523 &ett_dvb_s2_hdr_table
,
4524 &ett_dvb_s2_hdr_table_sf
,
4525 &ett_dvb_s2_hdr_table_network_routing
,
4526 &ett_dvb_s2_hdr_table_sf_frame
,
4527 &ett_dvb_s2_hdr_table_desc
,
4528 &ett_dvb_s2_hdr_tbtp_frame
,
4529 &ett_dvb_s2_hdr_tbtp_frame_btp
,
4530 &ett_dvb_s2_hdr_table_frame
,
4531 &ett_dvb_s2_hdr_table_frame_assign
,
4532 &ett_dvb_s2_hdr_table_entry
,
4533 &ett_dvb_s2_hdr_table_frametype
,
4534 &ett_dvb_s2_hdr_table_frametype_section
,
4535 &ett_dvb_s2_hdr_table_frame_ID
,
4536 &ett_dvb_s2_hdr_table_frame_ID_timeslot
,
4537 &ett_dvb_s2_hdr_table_mac24
,
4538 &ett_dvb_s2_hdr_table_lls
,
4539 &ett_dvb_s2_hdr_table_rc
,
4540 &ett_dvb_s2_hdr_table_raac
,
4541 &ett_dvb_s2_hdr_table_txmode
,
4542 &ett_dvb_s2_hdr_table_txtype
,
4543 &ett_dvb_s2_hdr_table_txtype_uwsegment
,
4544 &ett_dvb_s2_hdr_table_txtype_ypattern
,
4545 &ett_dvb_s2_hdr_table_txtype_wpattern
,
4546 &ett_dvb_s2_hdr_table_txtype_uwsymbol
,
4547 &ett_dvb_s2_hdr_table_satellite
,
4548 &ett_dvb_s2_hdr_table_multiplex
,
4549 &ett_dvb_s2_hdr_table_pt
,
4550 &ett_dvb_s2_hdr_table_pt_ms
,
4551 &ett_dvb_s2_hdr_table_pt_ms_exclusion
,
4554 static const enum_val_t rcs_version
[] = {
4555 { "RCS", "RCS protocol" , DVB_S2_RCS_TABLE_DECODING
},
4556 { "RCS2", "RCS2 protocol", DVB_S2_RCS2_TABLE_DECODING
},
4560 proto_dvb_s2_table
= proto_register_protocol("DVB-S2 Signalization Table", "DVB-S2-TABLE", "dvb-s2_table");
4561 register_dissector("dvb-s2_table", dissect_dvb_s2_table
, proto_dvb_s2_table
);
4563 proto_register_field_array(proto_dvb_s2_table
, hf_table
, array_length(hf_table
));
4564 proto_register_subtree_array(ett_table
, array_length(ett_table
));
4566 dvb_s2_table_module
= prefs_register_protocol(proto_dvb_s2_table
, proto_reg_handoff_dvb_s2_table
);
4568 prefs_register_enum_preference(dvb_s2_table_module
, "rcs_protocol",
4569 "defines RCS protocol version",
4570 "defines the RCS protocol version used in table dissection",
4571 &dvb_s2_rcs_version
,
4572 rcs_version
, false);
4575 void proto_reg_handoff_dvb_s2_table(void)
4581 * Editor modelines - http://www.wireshark.org/tools/modelines.html
4586 * indent-tabs-mode: nil
4589 * vi: set shiftwidth=4 tabstop=8 expandtab:
4590 * :indentSize=4:tabSize=8:noTabs=true: