2 * Routines for FF-HSE packet disassembly
4 * FF-588-1.3: HSE Field Device Access Agent
5 * 6. Field Device Access Agent Interface
7 * (c) Copyright 2008, Yukiyo Akisada <Yukiyo.Akisada@jp.yokogawa.com>
11 * Wireshark - Network traffic analyzer
12 * By Gerald Combs <gerald@wireshark.org>
13 * Copyright 1998 Gerald Combs
15 * This program is free software; you can redistribute it and/or
16 * modify it under the terms of the GNU General Public License
17 * as published by the Free Software Foundation; either version 2
18 * of the License, or (at your option) any later version.
20 * This program is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
25 * You should have received a copy of the GNU General Public License
26 * along with this program; if not, write to the Free Software
27 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
32 * ---------------------------------------------------------------------
33 * ff-annunc 1089/tcp # FF Annunciation
34 * ff-annunc 1089/udp # FF Annunciation
35 * ff-fms 1090/tcp # FF Fieldbus Message Specification
36 * ff-fms 1090/udp # FF Fieldbus Message Specification
37 * ff-sm 1091/tcp # FF System Management
38 * ff-sm 1091/udp # FF System Management
39 * ff-lr-port 3622/tcp # FF LAN Redundancy Port
40 * ff-lr-port 3622/udp # FF LAN Redundancy Port
41 * ---------------------------------------------------------------------
48 #include <epan/packet.h>
49 #include "packet-ff.h"
50 #include "packet-tcp.h"
54 static int proto_ff
= -1;
55 static gint ett_ff
= -1;
57 static gboolean ff_desegment
= TRUE
; /* desegmentation of FF over TCP */
59 static dissector_handle_t ff_udp_handle
;
60 static dissector_handle_t ff_tcp_handle
;
67 static int hf_ff_fda_msg_hdr
= -1;
69 static int hf_ff_fda_msg_hdr_ver
= -1;
70 static int hf_ff_fda_msg_hdr_fda_addr
= -1;
71 static int hf_ff_fda_msg_hdr_len
= -1;
73 static gint ett_ff_fda_msg_hdr
= -1;
74 static gint ett_ff_fda_msg_hdr_proto_and_type
= -1;
75 static gint ett_ff_fda_msg_hdr_opts
= -1;
76 static gint ett_ff_fda_msg_hdr_srv
= -1;
81 * 6.4. Message Trailer
83 static int hf_ff_fda_msg_trailer
= -1;
85 static int hf_ff_fda_msg_trailer_msg_num
= -1;
86 static int hf_ff_fda_msg_trailer_invoke_id
= -1;
87 static int hf_ff_fda_msg_trailer_time_stamp
= -1;
88 static int hf_ff_fda_msg_trailer_extended_control_field
= -1;
90 static gint ett_ff_fda_msg_trailer
= -1;
95 * 6.5.1 FDA Session Management Services
97 static int hf_ff_fda
= -1;
98 static int hf_ff_hdr_srv_confirm_flag
= -1;
99 static int hf_ff_hdr_srv_service_id
= -1;
100 static int hf_ff_hdr_srv_fda_service_id_confirm
= -1;
101 static int hf_ff_hdr_srv_fda_service_id_unconfirm
= -1;
102 static int hf_ff_hdr_srv_sm_service_id_confirm
= -1;
103 static int hf_ff_hdr_srv_sm_service_id_unconfirm
= -1;
104 static int hf_ff_hdr_srv_fms_service_id_confirm
= -1;
105 static int hf_ff_hdr_srv_fms_service_id_unconfirm
= -1;
106 static int hf_ff_hdr_srv_lan_service_id_confirm
= -1;
107 static int hf_ff_hdr_srv_lan_service_id_unconfirm
= -1;
108 static int hf_ff_hdr_proto_id
= -1;
109 static int hf_ff_hdr_confirm_msg_type
= -1;
110 static int hf_ff_hdr_opts_msg_num
= -1;
111 static int hf_ff_hdr_opts_invoke_id
= -1;
112 static int hf_ff_hdr_opts_timestamp
= -1;
113 static int hf_ff_hdr_opts_reserved
= -1;
114 static int hf_ff_hdr_opts_ext_ctrl
= -1;
115 static int hf_ff_hdr_opts_pad
= -1;
118 * 6.5.1.1. FDA Open Session (Confirmed Service Id = 1)
120 static int hf_ff_fda_open_sess
= -1;
122 static int hf_ff_fda_open_sess_req
= -1;
123 static int hf_ff_fda_open_sess_req_sess_idx
= -1;
124 static int hf_ff_fda_open_sess_req_max_buf_siz
= -1;
125 static int hf_ff_fda_open_sess_req_max_msg_len
= -1;
126 static int hf_ff_fda_open_sess_req_reserved
= -1;
127 static int hf_ff_fda_open_sess_req_nma_conf_use
= -1;
128 static int hf_ff_fda_open_sess_req_inactivity_close_time
= -1;
129 static int hf_ff_fda_open_sess_req_transmit_delay_time
= -1;
130 static int hf_ff_fda_open_sess_req_pd_tag
= -1;
132 static int hf_ff_fda_open_sess_rsp
= -1;
133 static int hf_ff_fda_open_sess_rsp_sess_idx
= -1;
134 static int hf_ff_fda_open_sess_rsp_max_buf_siz
= -1;
135 static int hf_ff_fda_open_sess_rsp_max_msg_len
= -1;
136 static int hf_ff_fda_open_sess_rsp_reserved
= -1;
137 static int hf_ff_fda_open_sess_rsp_nma_conf_use
= -1;
138 static int hf_ff_fda_open_sess_rsp_inactivity_close_time
= -1;
139 static int hf_ff_fda_open_sess_rsp_transmit_delay_time
= -1;
140 static int hf_ff_fda_open_sess_rsp_pd_tag
= -1;
142 static int hf_ff_fda_open_sess_err
= -1;
143 static int hf_ff_fda_open_sess_err_err_class
= -1;
144 static int hf_ff_fda_open_sess_err_err_code
= -1;
145 static int hf_ff_fda_open_sess_err_additional_code
= -1;
146 static int hf_ff_fda_open_sess_err_additional_desc
= -1;
148 static gint ett_ff_fda_open_sess_req
= -1;
149 static gint ett_ff_fda_open_sess_rsp
= -1;
150 static gint ett_ff_fda_open_sess_err
= -1;
155 * 6.5.1.2. FDA Idle (Confirmed Service Id = 3)
157 static int hf_ff_fda_idle
= -1;
159 static int hf_ff_fda_idle_req
= -1;
161 static int hf_ff_fda_idle_rsp
= -1;
163 static int hf_ff_fda_idle_err
= -1;
164 static int hf_ff_fda_idle_err_err_class
= -1;
165 static int hf_ff_fda_idle_err_err_code
= -1;
166 static int hf_ff_fda_idle_err_additional_code
= -1;
167 static int hf_ff_fda_idle_err_additional_desc
= -1;
169 static gint ett_ff_fda_idle_req
= -1;
170 static gint ett_ff_fda_idle_rsp
= -1;
171 static gint ett_ff_fda_idle_err
= -1;
178 static int hf_ff_sm
= -1;
183 * 6.5.2.1. SM Find Tag Query (Unconfirmed Service Id = 1)
185 static int hf_ff_sm_find_tag_query
= -1;
187 static int hf_ff_sm_find_tag_query_req
= -1;
188 static int hf_ff_sm_find_tag_query_req_query_type
= -1;
189 static int hf_ff_sm_find_tag_query_req_idx
= -1;
190 static int hf_ff_sm_find_tag_query_req_tag
= -1;
191 static int hf_ff_sm_find_tag_query_req_vfd_tag
= -1;
193 static gint ett_ff_sm_find_tag_query_req
= -1;
198 * 6.5.2.2. SM Find Tag Reply (Unconfirmed Service Id = 2)
200 static int hf_ff_sm_find_tag_reply
= -1;
202 static int hf_ff_sm_find_tag_reply_req
= -1;
203 static int hf_ff_sm_find_tag_reply_req_query_type
= -1;
204 static int hf_ff_sm_find_tag_reply_req_h1_node_addr
= -1;
205 static int hf_ff_sm_find_tag_reply_req_fda_addr_link_id
= -1;
206 static int hf_ff_sm_find_tag_reply_req_vfd_ref
= -1;
207 static int hf_ff_sm_find_tag_reply_req_od_idx
= -1;
208 static int hf_ff_sm_find_tag_reply_req_ip_addr
= -1;
209 static int hf_ff_sm_find_tag_reply_req_od_ver
= -1;
210 static int hf_ff_sm_find_tag_reply_req_dev_id
= -1;
211 static int hf_ff_sm_find_tag_reply_req_pd_tag
= -1;
212 static int hf_ff_sm_find_tag_reply_req_reserved
= -1;
213 static int hf_ff_sm_find_tag_reply_req_num_of_fda_addr_selectors
= -1;
214 static int hf_ff_sm_find_tag_reply_req_fda_addr_selector
= -1;
215 static int hf_ff_sm_find_tag_reply_dup_reserved
= -1;
216 static int hf_ff_sm_find_tag_reply_dup_pd_tag
= -1;
217 static int hf_ff_sm_find_tag_reply_dup_device
= -1;
219 static gint ett_ff_sm_find_tag_reply_req
= -1;
220 static gint ett_ff_sm_find_tag_reply_req_dup_detection_state
= -1;
221 static gint ett_ff_sm_find_tag_reply_req_list_of_fda_addr_selectors
= -1;
226 * 6.5.2.3. SM Identify (Confirmed Service Id = 3)
228 static int hf_ff_sm_id
= -1;
230 static int hf_ff_sm_id_req
= -1;
232 static int hf_ff_sm_id_rsp
= -1;
233 static int hf_ff_sm_id_rsp_dev_idx
= -1;
234 static int hf_ff_sm_id_rsp_max_dev_idx
= -1;
235 static int hf_ff_sm_id_rsp_operational_ip_addr
= -1;
236 static int hf_ff_sm_id_rsp_dev_id
= -1;
237 static int hf_ff_sm_id_rsp_pd_tag
= -1;
238 static int hf_ff_sm_id_rsp_hse_repeat_time
= -1;
239 static int hf_ff_sm_id_rsp_lr_port
= -1;
240 static int hf_ff_sm_id_rsp_reserved
= -1;
241 static int hf_ff_sm_id_rsp_annunc_ver_num
= -1;
242 static int hf_ff_sm_id_rsp_hse_dev_ver_num
= -1;
243 static int hf_ff_sm_id_rsp_num_of_entries
= -1;
244 static int hf_ff_sm_id_rsp_h1_live_list_h1_link_id
= -1;
245 static int hf_ff_sm_id_rsp_h1_live_list_reserved
= -1;
246 static int hf_ff_sm_id_rsp_h1_live_list_ver_num
= -1;
247 static int hf_ff_sm_id_rsp_h1_node_addr_ver_num_h1_node_addr
= -1;
248 static int hf_ff_sm_id_rsp_h1_node_addr_ver_num_ver_num
= -1;
249 static int hf_ff_sm_id_rsp_smk_state_name
= -1;
250 static int hf_ff_sm_id_rsp_smk_state_sync
= -1;
251 static int hf_ff_sm_id_rsp_dev_type_link
= -1;
252 static int hf_ff_sm_id_rsp_dev_type_iogateway
= -1;
253 static int hf_ff_sm_id_rsp_dev_type_hse
= -1;
254 static int hf_ff_sm_id_rsp_dev_type_h1
= -1;
255 static int hf_ff_sm_id_rsp_dev_type_reserved
= -1;
256 static int hf_ff_sm_id_rsp_dev_type_redundant_caps
= -1;
257 static int hf_ff_sm_id_rsp_dev_redundancy_state_reserved
= -1;
258 static int hf_ff_sm_id_rsp_dev_redundancy_state_role
= -1;
259 static int hf_ff_sm_id_rsp_dev_redundancy_state_type
= -1;
260 static int hf_ff_sm_id_rsp_dup_detection_state_reserved
= -1;
261 static int hf_ff_sm_id_rsp_dup_detection_state_pd_tag
= -1;
262 static int hf_ff_sm_id_rsp_dup_detection_state_device
= -1;
264 static int hf_ff_sm_id_err
= -1;
265 static int hf_ff_sm_id_err_err_class
= -1;
266 static int hf_ff_sm_id_err_err_code
= -1;
267 static int hf_ff_sm_id_err_additional_code
= -1;
268 static int hf_ff_sm_id_err_additional_desc
= -1;
270 static gint ett_ff_sm_id_req
= -1;
271 static gint ett_ff_sm_id_rsp
= -1;
272 static gint ett_ff_sm_id_rsp_smk_state
= -1;
273 static gint ett_ff_sm_id_rsp_dev_type
= -1;
274 static gint ett_ff_sm_id_rsp_dev_redundancy_state
= -1;
275 static gint ett_ff_sm_id_rsp_dup_detection_state
= -1;
276 static gint ett_ff_sm_id_rsp_entries_h1_live_list
= -1;
277 static gint ett_ff_sm_id_rsp_h1_live_list
= -1;
278 static gint ett_ff_sm_id_rsp_entries_node_addr
= -1;
279 static gint ett_ff_sm_id_rsp_h1_node_addr
= -1;
280 static gint ett_ff_sm_id_err
= -1;
285 * 6.5.2.4. SM Clear Address (Confirmed Service Id = 12)
287 static int hf_ff_sm_clear_addr
= -1;
289 static int hf_ff_sm_clear_addr_req
= -1;
290 static int hf_ff_sm_clear_addr_req_dev_id
= -1;
291 static int hf_ff_sm_clear_addr_req_pd_tag
= -1;
292 static int hf_ff_sm_clear_addr_req_interface_to_clear
= -1;
294 static int hf_ff_sm_clear_addr_rsp
= -1;
296 static int hf_ff_sm_clear_addr_err
= -1;
297 static int hf_ff_sm_clear_addr_err_err_class
= -1;
298 static int hf_ff_sm_clear_addr_err_err_code
= -1;
299 static int hf_ff_sm_clear_addr_err_additional_code
= -1;
300 static int hf_ff_sm_clear_addr_err_additional_desc
= -1;
302 static gint ett_ff_sm_clear_addr_req
= -1;
303 static gint ett_ff_sm_clear_addr_rsp
= -1;
304 static gint ett_ff_sm_clear_addr_err
= -1;
309 * 6.5.2.5. SM Set Assignment Info (Confirmed Service Id = 14)
311 static int hf_ff_sm_set_assign_info
= -1;
313 static int hf_ff_sm_set_assign_info_req_dev_redundancy_state_reserved
= -1;
314 static int hf_ff_sm_set_assign_info_req_dev_redundancy_state_role
= -1;
315 static int hf_ff_sm_set_assign_info_req_dev_redundancy_state_type
= -1;
316 static int hf_ff_sm_set_assign_info_req_clear_dup_detection_state_reserved
= -1;
317 static int hf_ff_sm_set_assign_info_req_clear_dup_detection_state_pd_tag
= -1;
318 static int hf_ff_sm_set_assign_info_req_clear_dup_detection_state_device_index
= -1;
320 static int hf_ff_sm_set_assign_info_req
= -1;
321 static int hf_ff_sm_set_assign_info_req_dev_id
= -1;
322 static int hf_ff_sm_set_assign_info_req_pd_tag
= -1;
323 static int hf_ff_sm_set_assign_info_req_h1_new_addr
= -1;
324 static int hf_ff_sm_set_assign_info_req_lr_port
= -1;
325 static int hf_ff_sm_set_assign_info_req_hse_repeat_time
= -1;
326 static int hf_ff_sm_set_assign_info_req_dev_idx
= -1;
327 static int hf_ff_sm_set_assign_info_req_max_dev_idx
= -1;
328 static int hf_ff_sm_set_assign_info_req_operational_ip_addr
= -1;
330 static int hf_ff_sm_set_assign_info_rsp
= -1;
331 static int hf_ff_sm_set_assign_info_rsp_reserved
= -1;
332 static int hf_ff_sm_set_assign_info_rsp_max_dev_idx
= -1;
333 static int hf_ff_sm_set_assign_info_rsp_hse_repeat_time
= -1;
335 static int hf_ff_sm_set_assign_info_err
= -1;
336 static int hf_ff_sm_set_assign_info_err_err_class
= -1;
337 static int hf_ff_sm_set_assign_info_err_err_code
= -1;
338 static int hf_ff_sm_set_assign_info_err_additional_code
= -1;
339 static int hf_ff_sm_set_assign_info_err_additional_desc
= -1;
341 static gint ett_ff_sm_set_assign_info_req
= -1;
342 static gint ett_ff_sm_set_assign_info_req_dev_redundancy_state
= -1;
343 static gint ett_ff_sm_set_assign_info_req_clear_dup_detection_state
= -1;
344 static gint ett_ff_sm_set_assign_info_rsp
= -1;
345 static gint ett_ff_sm_set_assign_info_err
= -1;
350 * 6.5.2.6. SM Clear Assignment Info (Confirmed Service Id = 15)
352 static int hf_ff_sm_clear_assign_info
= -1;
354 static int hf_ff_sm_clear_assign_info_req
= -1;
355 static int hf_ff_sm_clear_assign_info_req_dev_id
= -1;
356 static int hf_ff_sm_clear_assign_info_req_pd_tag
= -1;
358 static int hf_ff_sm_clear_assign_info_rsp
= -1;
360 static int hf_ff_sm_clear_assign_info_err
= -1;
361 static int hf_ff_sm_clear_assign_info_err_err_class
= -1;
362 static int hf_ff_sm_clear_assign_info_err_err_code
= -1;
363 static int hf_ff_sm_clear_assign_info_err_additional_code
= -1;
364 static int hf_ff_sm_clear_assign_info_err_additional_desc
= -1;
366 static gint ett_ff_sm_clear_assign_info_req
= -1;
367 static gint ett_ff_sm_clear_assign_info_rsp
= -1;
368 static gint ett_ff_sm_clear_assign_info_err
= -1;
373 * 6.5.2.7. SM Device Annunciation (Unconfirmed Service Id = 16)
375 static int hf_ff_sm_dev_annunc
= -1;
377 static int hf_ff_sm_dev_annunc_req
= -1;
378 static int hf_ff_sm_dev_annunc_req_dev_idx
= -1;
379 static int hf_ff_sm_dev_annunc_req_max_dev_idx
= -1;
380 static int hf_ff_sm_dev_annunc_req_operational_ip_addr
= -1;
381 static int hf_ff_sm_dev_annunc_req_dev_id
= -1;
382 static int hf_ff_sm_dev_annunc_req_pd_tag
= -1;
383 static int hf_ff_sm_dev_annunc_req_hse_repeat_time
= -1;
384 static int hf_ff_sm_dev_annunc_req_lr_port
= -1;
385 static int hf_ff_sm_dev_annunc_req_reserved
= -1;
386 static int hf_ff_sm_dev_annunc_req_annunc_ver_num
= -1;
387 static int hf_ff_sm_dev_annunc_req_hse_dev_ver_num
= -1;
388 static int hf_ff_sm_dev_annunc_req_num_of_entries
= -1;
389 static int hf_ff_sm_dev_annunc_req_h1_live_list_h1_link_id
= -1;
390 static int hf_ff_sm_dev_annunc_req_h1_live_list_reserved
= -1;
391 static int hf_ff_sm_dev_annunc_req_h1_live_list_ver_num
= -1;
392 static int hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_h1_node_addr
= -1;
393 static int hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_ver_num
= -1;
394 static int hf_ff_sm_dev_annunc_req_smk_state_name
= -1;
395 static int hf_ff_sm_dev_annunc_req_smk_state_sync
= -1;
396 static int hf_ff_sm_dev_annunc_req_dev_type_link
= -1;
397 static int hf_ff_sm_dev_annunc_req_dev_type_iogateway
= -1;
398 static int hf_ff_sm_dev_annunc_req_dev_type_hse
= -1;
399 static int hf_ff_sm_dev_annunc_req_dev_type_h1
= -1;
400 static int hf_ff_sm_dev_annunc_req_dev_type_reserved
= -1;
401 static int hf_ff_sm_dev_annunc_req_dev_type_redundant_caps
= -1;
402 static int hf_ff_sm_dev_annunc_req_dev_redundancy_state_reserved
= -1;
403 static int hf_ff_sm_dev_annunc_req_dev_redundancy_state_role
= -1;
404 static int hf_ff_sm_dev_annunc_req_dev_redundancy_state_type
= -1;
405 static int hf_ff_sm_dev_annunc_req_dup_detection_state_reserved
= -1;
406 static int hf_ff_sm_dev_annunc_req_dup_detection_state_pd_tag
= -1;
407 static int hf_ff_sm_dev_annunc_req_dup_detection_state_device
= -1;
409 static gint ett_ff_sm_dev_annunc_req
= -1;
410 static gint ett_ff_sm_dev_annunc_req_smk_state
= -1;
411 static gint ett_ff_sm_dev_annunc_req_dev_type
= -1;
412 static gint ett_ff_sm_dev_annunc_req_dev_redundancy_state
= -1;
413 static gint ett_ff_sm_dev_annunc_req_dup_detection_state
= -1;
414 static gint ett_ff_sm_dev_annunc_req_entries_h1_live_list
= -1;
415 static gint ett_ff_sm_dev_annunc_req_h1_live_list
= -1;
416 static gint ett_ff_sm_dev_annunc_req_entries_node_addr
= -1;
417 static gint ett_ff_sm_dev_annunc_req_h1_node_addr
= -1;
422 * 6.5.3. FMS Services
424 static int hf_ff_fms
= -1;
429 * 6.5.3.2. FMS Initiate (Confirmed Service Id = 96)
431 static int hf_ff_fms_init
= -1;
433 static int hf_ff_fms_init_req
= -1;
434 static int hf_ff_fms_init_req_conn_opt
= -1;
435 static int hf_ff_fms_init_req_access_protection_supported_calling
= -1;
436 static int hf_ff_fms_init_req_passwd_and_access_grps_calling
= -1;
437 static int hf_ff_fms_init_req_ver_od_calling
= -1;
438 static int hf_ff_fms_init_req_prof_num_calling
= -1;
439 static int hf_ff_fms_init_req_pd_tag
= -1;
441 static int hf_ff_fms_init_rsp
= -1;
442 static int hf_ff_fms_init_rsp_ver_od_called
= -1;
443 static int hf_ff_fms_init_rsp_prof_num_called
= -1;
445 static int hf_ff_fms_init_err
= -1;
446 static int hf_ff_fms_init_err_err_class
= -1;
447 static int hf_ff_fms_init_err_err_code
= -1;
448 static int hf_ff_fms_init_err_additional_code
= -1;
449 static int hf_ff_fms_init_err_additional_desc
= -1;
451 static gint ett_ff_fms_init_req
= -1;
452 static gint ett_ff_fms_init_rep
= -1;
453 static gint ett_ff_fms_init_err
= -1;
458 * 6.5.3.3. FMS Abort (Unconfirmed Service Id = 112)
460 static int hf_ff_fms_abort
= -1;
462 static int hf_ff_fms_abort_req
= -1;
463 static int hf_ff_fms_abort_req_abort_id
= -1;
464 static int hf_ff_fms_abort_req_reason_code
= -1;
465 static int hf_ff_fms_abort_req_reserved
= -1;
467 static gint ett_ff_fms_abort_req
= -1;
472 * 6.5.3.4. FMS Status (Confirmed Service Id = 0)
474 static int hf_ff_fms_status
= -1;
476 static int hf_ff_fms_status_req
= -1;
478 static int hf_ff_fms_status_rsp
= -1;
479 static int hf_ff_fms_status_rsp_logical_status
= -1;
480 static int hf_ff_fms_status_rsp_physical_status
= -1;
481 static int hf_ff_fms_status_rsp_reserved
= -1;
483 static int hf_ff_fms_status_err
= -1;
484 static int hf_ff_fms_status_err_err_class
= -1;
485 static int hf_ff_fms_status_err_err_code
= -1;
486 static int hf_ff_fms_status_err_additional_code
= -1;
487 static int hf_ff_fms_status_err_additional_desc
= -1;
489 static gint ett_ff_fms_status_req
= -1;
490 static gint ett_ff_fms_status_rsp
= -1;
491 static gint ett_ff_fms_status_err
= -1;
496 * 6.5.3.5. FMS Unsolicited Status (Unconfirmed Service Id = 1)
498 static int hf_ff_fms_unsolicited_status
= -1;
500 static int hf_ff_fms_unsolicited_status_req
= -1;
501 static int hf_ff_fms_unsolicited_status_req_logical_status
= -1;
502 static int hf_ff_fms_unsolicited_status_req_physical_status
= -1;
503 static int hf_ff_fms_unsolicited_status_req_reserved
= -1;
505 static gint ett_ff_fms_unsolicited_status_req
= -1;
510 * 6.5.3.6. FMS Identify (Confirmed Service Id = 1)
512 static int hf_ff_fms_id
= -1;
514 static int hf_ff_fms_id_req
= -1;
516 static int hf_ff_fms_id_rsp
= -1;
517 static int hf_ff_fms_id_rsp_vendor_name
= -1;
518 static int hf_ff_fms_id_rsp_model_name
= -1;
519 static int hf_ff_fms_id_rsp_revision
= -1;
521 static int hf_ff_fms_id_err
= -1;
522 static int hf_ff_fms_id_err_err_class
= -1;
523 static int hf_ff_fms_id_err_err_code
= -1;
524 static int hf_ff_fms_id_err_additional_code
= -1;
525 static int hf_ff_fms_id_err_additional_desc
= -1;
527 static gint ett_ff_fms_id_req
= -1;
528 static gint ett_ff_fms_id_rsp
= -1;
529 static gint ett_ff_fms_id_err
= -1;
534 * 6.5.3.7. FMS Get OD (Confirmed Service Id = 4)
536 static int hf_ff_fms_get_od
= -1;
538 static int hf_ff_fms_get_od_req
= -1;
539 static int hf_ff_fms_get_od_req_all_attrs
= -1;
540 static int hf_ff_fms_get_od_req_start_idx_flag
= -1;
541 static int hf_ff_fms_get_od_req_reserved
= -1;
542 static int hf_ff_fms_get_od_req_idx
= -1;
544 static int hf_ff_fms_get_od_rsp
= -1;
545 static int hf_ff_fms_get_od_rsp_more_follows
= -1;
546 static int hf_ff_fms_get_od_rsp_num_of_obj_desc
= -1;
547 static int hf_ff_fms_get_od_rsp_reserved
= -1;
549 static int hf_ff_fms_get_od_err
= -1;
550 static int hf_ff_fms_get_od_err_err_class
= -1;
551 static int hf_ff_fms_get_od_err_err_code
= -1;
552 static int hf_ff_fms_get_od_err_additional_code
= -1;
553 static int hf_ff_fms_get_od_err_additional_desc
= -1;
555 static gint ett_ff_fms_get_od_req
= -1;
556 static gint ett_ff_fms_get_od_rsp
= -1;
557 static gint ett_ff_fms_get_od_err
= -1;
562 * 6.5.3.8. FMS Initiate Put OD (Confirmed Service Id = 28)
564 static int hf_ff_fms_init_put_od
= -1;
566 static int hf_ff_fms_init_put_od_req
= -1;
567 static int hf_ff_fms_init_put_od_req_reserved
= -1;
568 static int hf_ff_fms_init_put_od_req_consequence
= -1;
570 static int hf_ff_fms_init_put_od_rsp
= -1;
572 static int hf_ff_fms_init_put_od_err
= -1;
573 static int hf_ff_fms_init_put_od_err_err_class
= -1;
574 static int hf_ff_fms_init_put_od_err_err_code
= -1;
575 static int hf_ff_fms_init_put_od_err_additional_code
= -1;
576 static int hf_ff_fms_init_put_od_err_additional_desc
= -1;
578 static gint ett_ff_fms_init_put_od_req
= -1;
579 static gint ett_ff_fms_init_put_od_rsp
= -1;
580 static gint ett_ff_fms_init_put_od_err
= -1;
585 * 6.5.3.9. FMS Put OD (Confirmed Service Id = 29)
587 static int hf_ff_fms_put_od
= -1;
589 static int hf_ff_fms_put_od_req
= -1;
590 static int hf_ff_fms_put_od_req_num_of_obj_desc
= -1;
592 static int hf_ff_fms_put_od_rsp
= -1;
594 static int hf_ff_fms_put_od_err
= -1;
595 static int hf_ff_fms_put_od_err_err_class
= -1;
596 static int hf_ff_fms_put_od_err_err_code
= -1;
597 static int hf_ff_fms_put_od_err_additional_code
= -1;
598 static int hf_ff_fms_put_od_err_additional_desc
= -1;
600 static gint ett_ff_fms_put_od_req
= -1;
601 static gint ett_ff_fms_put_od_rsp
= -1;
602 static gint ett_ff_fms_put_od_err
= -1;
607 * 6.5.3.10. FMS Terminate Put OD (Confirmed Service Id = 30)
609 static int hf_ff_fms_terminate_put_od
= -1;
611 static int hf_ff_fms_terminate_put_od_req
= -1;
613 static int hf_ff_fms_terminate_put_od_rsp
= -1;
615 static int hf_ff_fms_terminate_put_od_err
= -1;
616 static int hf_ff_fms_terminate_put_od_err_index
= -1;
617 static int hf_ff_fms_terminate_put_od_err_err_class
= -1;
618 static int hf_ff_fms_terminate_put_od_err_err_code
= -1;
619 static int hf_ff_fms_terminate_put_od_err_additional_code
= -1;
620 static int hf_ff_fms_terminate_put_od_err_additional_desc
= -1;
622 static gint ett_ff_fms_terminate_put_od_req
= -1;
623 static gint ett_ff_fms_terminate_put_od_rsp
= -1;
624 static gint ett_ff_fms_terminate_put_od_err
= -1;
629 * 6.5.3.11. FMS Generic Initiate Download Sequence (Confirmed Service Id = 31)
631 static int hf_ff_fms_gen_init_download_seq
= -1;
633 static int hf_ff_fms_gen_init_download_seq_req
= -1;
634 static int hf_ff_fms_gen_init_download_seq_req_idx
= -1;
636 static int hf_ff_fms_gen_init_download_seq_rsp
= -1;
638 static int hf_ff_fms_gen_init_download_seq_err
= -1;
639 static int hf_ff_fms_gen_init_download_seq_err_err_class
= -1;
640 static int hf_ff_fms_gen_init_download_seq_err_err_code
= -1;
641 static int hf_ff_fms_gen_init_download_seq_err_additional_code
= -1;
642 static int hf_ff_fms_gen_init_download_seq_err_additional_desc
= -1;
644 static gint ett_ff_fms_gen_init_download_seq_req
= -1;
645 static gint ett_ff_fms_gen_init_download_seq_rep
= -1;
646 static gint ett_ff_fms_gen_init_download_seq_err
= -1;
651 * 6.5.3.12. FMS Generic Download Segment (Confirmed Service Id = 32)
653 static int hf_ff_fms_gen_download_seg
= -1;
655 static int hf_ff_fms_gen_download_seg_req
= -1;
656 static int hf_ff_fms_gen_download_seg_req_idx
= -1;
657 static int hf_ff_fms_gen_download_seg_req_more_follows
= -1;
659 static int hf_ff_fms_gen_download_seg_rsp
= -1;
661 static int hf_ff_fms_gen_download_seg_err
= -1;
662 static int hf_ff_fms_gen_download_seg_err_err_class
= -1;
663 static int hf_ff_fms_gen_download_seg_err_err_code
= -1;
664 static int hf_ff_fms_gen_download_seg_err_additional_code
= -1;
665 static int hf_ff_fms_gen_download_seg_err_additional_desc
= -1;
667 static gint ett_ff_fms_gen_download_seg_req
= -1;
668 static gint ett_ff_fms_gen_download_seg_rsp
= -1;
669 static gint ett_ff_fms_gen_download_seg_err
= -1;
674 * 6.5.3.13. FMS Generic Terminate Download Sequence (Confirmed Service Id = 33)
676 static int hf_ff_fms_gen_terminate_download_seq
= -1;
678 static int hf_ff_fms_gen_terminate_download_seq_req
= -1;
679 static int hf_ff_fms_gen_terminate_download_seq_req_idx
= -1;
681 static int hf_ff_fms_gen_terminate_download_seq_rsp
= -1;
682 static int hf_ff_fms_gen_terminate_download_seq_rsp_final_result
= -1;
684 static int hf_ff_fms_gen_terminate_download_seq_err
= -1;
685 static int hf_ff_fms_gen_terminate_download_seq_err_err_class
= -1;
686 static int hf_ff_fms_gen_terminate_download_seq_err_err_code
= -1;
687 static int hf_ff_fms_gen_terminate_download_seq_err_additional_code
= -1;
688 static int hf_ff_fms_gen_terminate_download_seq_err_additional_desc
= -1;
690 static gint ett_ff_fms_gen_terminate_download_seq_req
= -1;
691 static gint ett_ff_fms_gen_terminate_download_seq_rsp
= -1;
692 static gint ett_ff_fms_gen_terminate_download_seq_err
= -1;
697 * 6.5.3.14. FMS Initiate Download Sequence (Confirmed Service Id = 9)
699 static int hf_ff_fms_init_download_seq
= -1;
701 static int hf_ff_fms_init_download_seq_req
= -1;
702 static int hf_ff_fms_init_download_seq_req_idx
= -1;
704 static int hf_ff_fms_init_download_seq_rsp
= -1;
706 static int hf_ff_fms_init_download_seq_err
= -1;
707 static int hf_ff_fms_init_download_seq_err_err_class
= -1;
708 static int hf_ff_fms_init_download_seq_err_err_code
= -1;
709 static int hf_ff_fms_init_download_seq_err_additional_code
= -1;
710 static int hf_ff_fms_init_download_seq_err_additional_desc
= -1;
712 static gint ett_ff_fms_init_download_seq_req
= -1;
713 static gint ett_ff_fms_init_download_seq_rsp
= -1;
714 static gint ett_ff_fms_init_download_seq_err
= -1;
719 * 6.5.3.15. FMS Download Segment (Confirmed Service Id = 10)
721 static int hf_ff_fms_download_seg
= -1;
722 static int hf_ff_fms_download_seg_req
= -1;
723 static int hf_ff_fms_download_seg_req_idx
= -1;
725 static int hf_ff_fms_download_seg_rsp
= -1;
726 static int hf_ff_fms_download_seg_rsp_more_follows
= -1;
728 static int hf_ff_fms_download_seg_err
= -1;
729 static int hf_ff_fms_download_seg_err_err_class
= -1;
730 static int hf_ff_fms_download_seg_err_err_code
= -1;
731 static int hf_ff_fms_download_seg_err_additional_code
= -1;
732 static int hf_ff_fms_download_seg_err_additional_desc
= -1;
734 static gint ett_ff_fms_download_seg_req
= -1;
735 static gint ett_ff_fms_download_seg_rsp
= -1;
736 static gint ett_ff_fms_download_seg_err
= -1;
741 * 6.5.3.16. FMS Terminate Download Sequence (Confirmed Service Id = 11)
743 static int hf_ff_fms_terminate_download_seq
= -1;
745 static int hf_ff_fms_terminate_download_seq_req
= -1;
746 static int hf_ff_fms_terminate_download_seq_req_idx
= -1;
747 static int hf_ff_fms_terminate_download_seq_req_final_result
= -1;
749 static int hf_ff_fms_terminate_download_seq_rsp
= -1;
751 static int hf_ff_fms_terminate_download_seq_err
= -1;
752 static int hf_ff_fms_terminate_download_seq_err_err_class
= -1;
753 static int hf_ff_fms_terminate_download_seq_err_err_code
= -1;
754 static int hf_ff_fms_terminate_download_seq_err_additional_code
= -1;
755 static int hf_ff_fms_terminate_download_seq_err_additional_desc
= -1;
757 static gint ett_ff_fms_terminate_download_seq_req
= -1;
758 static gint ett_ff_fms_terminate_download_seq_rsp
= -1;
759 static gint ett_ff_fms_terminate_download_seq_err
= -1;
764 * 6.5.3.17. FMS Initiate Upload Sequence (Confirmed Service Id = 12)
766 static int hf_ff_fms_init_upload_seq
= -1;
768 static int hf_ff_fms_init_upload_seq_req
= -1;
769 static int hf_ff_fms_init_upload_seq_req_idx
= -1;
771 static int hf_ff_fms_init_upload_seq_rsp
= -1;
773 static int hf_ff_fms_init_upload_seq_err
= -1;
774 static int hf_ff_fms_init_upload_seq_err_err_class
= -1;
775 static int hf_ff_fms_init_upload_seq_err_err_code
= -1;
776 static int hf_ff_fms_init_upload_seq_err_additional_code
= -1;
777 static int hf_ff_fms_init_upload_seq_err_additional_desc
= -1;
779 static gint ett_ff_fms_init_upload_seq_req
= -1;
780 static gint ett_ff_fms_init_upload_seq_rsp
= -1;
781 static gint ett_ff_fms_init_upload_seq_err
= -1;
786 * 6.5.3.18. FMS Upload Segment (Confirmed Service Id = 13)
788 static int hf_ff_fms_upload_seg
= -1;
790 static int hf_ff_fms_upload_seg_req
= -1;
791 static int hf_ff_fms_upload_seg_req_idx
= -1;
793 static int hf_ff_fms_upload_seg_rsp
= -1;
794 static int hf_ff_fms_upload_seg_rsp_more_follows
= -1;
796 static int hf_ff_fms_upload_seg_err
= -1;
797 static int hf_ff_fms_upload_seg_err_err_class
= -1;
798 static int hf_ff_fms_upload_seg_err_err_code
= -1;
799 static int hf_ff_fms_upload_seg_err_additional_code
= -1;
800 static int hf_ff_fms_upload_seg_err_additional_desc
= -1;
802 static gint ett_ff_fms_upload_seg_req
= -1;
803 static gint ett_ff_fms_upload_seg_rsp
= -1;
804 static gint ett_ff_fms_upload_seg_err
= -1;
809 * 6.5.3.19. FMS Terminate Upload Sequence (Confirmed Service Id = 14)
811 static int hf_ff_fms_terminate_upload_seq
= -1;
813 static int hf_ff_fms_terminate_upload_seq_req
= -1;
814 static int hf_ff_fms_terminate_upload_seq_req_idx
= -1;
816 static int hf_ff_fms_terminate_upload_seq_rsp
= -1;
818 static int hf_ff_fms_terminate_upload_seq_err
= -1;
819 static int hf_ff_fms_terminate_upload_seq_err_err_class
= -1;
820 static int hf_ff_fms_terminate_upload_seq_err_err_code
= -1;
821 static int hf_ff_fms_terminate_upload_seq_err_additional_code
= -1;
822 static int hf_ff_fms_terminate_upload_seq_err_additional_desc
= -1;
824 static gint ett_ff_fms_terminate_upload_seq_req
= -1;
825 static gint ett_ff_fms_terminate_upload_seq_rsp
= -1;
826 static gint ett_ff_fms_terminate_upload_seq_err
= -1;
831 * 6.5.3.20. FMS Request Domain Download (Confirmed Service Id = 15)
833 static int hf_ff_fms_req_dom_download
= -1;
835 static int hf_ff_fms_req_dom_download_req
= -1;
836 static int hf_ff_fms_req_dom_download_req_idx
= -1;
837 static int hf_ff_fms_req_dom_download_req_additional_info
= -1;
839 static int hf_ff_fms_req_dom_download_rsp
= -1;
841 static int hf_ff_fms_req_dom_download_err
= -1;
842 static int hf_ff_fms_req_dom_download_err_err_class
= -1;
843 static int hf_ff_fms_req_dom_download_err_err_code
= -1;
844 static int hf_ff_fms_req_dom_download_err_additional_code
= -1;
845 static int hf_ff_fms_req_dom_download_err_additional_desc
= -1;
847 static gint ett_ff_fms_req_dom_download_req
= -1;
848 static gint ett_ff_fms_req_dom_download_rsp
= -1;
849 static gint ett_ff_fms_req_dom_download_err
= -1;
854 * 6.5.3.21. FMS Request Domain Upload (Confirmed Service Id = 16)
856 static int hf_ff_fms_req_dom_upload
= -1;
858 static int hf_ff_fms_req_dom_upload_req
= -1;
859 static int hf_ff_fms_req_dom_upload_req_idx
= -1;
860 static int hf_ff_fms_req_dom_upload_req_additional_info
= -1;
862 static int hf_ff_fms_req_dom_upload_rsp
= -1;
864 static int hf_ff_fms_req_dom_upload_err
= -1;
865 static int hf_ff_fms_req_dom_upload_err_err_class
= -1;
866 static int hf_ff_fms_req_dom_upload_err_err_code
= -1;
867 static int hf_ff_fms_req_dom_upload_err_additional_code
= -1;
868 static int hf_ff_fms_req_dom_upload_err_additional_desc
= -1;
870 static gint ett_ff_fms_req_dom_upload_req
= -1;
871 static gint ett_ff_fms_req_dom_upload_rsp
= -1;
872 static gint ett_ff_fms_req_dom_upload_err
= -1;
877 * 6.5.3.22. FMS Create Program Invocation (Confirmed Service Id = 17)
879 static int hf_ff_fms_create_pi
= -1;
881 static int hf_ff_fms_create_pi_req
= -1;
882 static int hf_ff_fms_create_pi_req_reusable
= -1;
883 static int hf_ff_fms_create_pi_req_reserved
= -1;
884 static int hf_ff_fms_create_pi_req_num_of_dom_idxes
= -1;
885 static int hf_ff_fms_create_pi_req_dom_idx
= -1;
887 static int hf_ff_fms_create_pi_rsp
= -1;
888 static int hf_ff_fms_create_pi_rsp_idx
= -1;
890 static int hf_ff_fms_create_pi_err
= -1;
891 static int hf_ff_fms_create_pi_err_err_class
= -1;
892 static int hf_ff_fms_create_pi_err_err_code
= -1;
893 static int hf_ff_fms_create_pi_err_additional_code
= -1;
894 static int hf_ff_fms_create_pi_err_additional_desc
= -1;
896 static gint ett_ff_fms_create_pi_req
= -1;
897 static gint ett_ff_fms_create_pi_req_list_of_dom_idxes
= -1;
898 static gint ett_ff_fms_create_pi_rsp
= -1;
899 static gint ett_ff_fms_create_pi_err
= -1;
904 * 6.5.3.23. FMS Delete Program Invocation (Confirmed Service Id = 18)
906 static int hf_ff_fms_del_pi
= -1;
907 static int hf_ff_fms_del_pi_req
= -1;
908 static int hf_ff_fms_del_pi_req_idx
= -1;
910 static int hf_ff_fms_del_pi_rsp
= -1;
912 static int hf_ff_fms_del_pi_err
= -1;
913 static int hf_ff_fms_del_pi_err_err_class
= -1;
914 static int hf_ff_fms_del_pi_err_err_code
= -1;
915 static int hf_ff_fms_del_pi_err_additional_code
= -1;
916 static int hf_ff_fms_del_pi_err_additional_desc
= -1;
918 static gint ett_ff_fms_del_pi_req
= -1;
919 static gint ett_ff_fms_del_pi_rsp
= -1;
920 static gint ett_ff_fms_del_pi_err
= -1;
925 * 6.5.3.24. FMS Start (Confirmed Service Id = 19)
927 static int hf_ff_fms_start
= -1;
928 static int hf_ff_fms_start_req
= -1;
929 static int hf_ff_fms_start_req_idx
= -1;
931 static int hf_ff_fms_start_rsp
= -1;
933 static int hf_ff_fms_start_err
= -1;
934 static int hf_ff_fms_start_err_pi_state
= -1;
935 static int hf_ff_fms_start_err_err_class
= -1;
936 static int hf_ff_fms_start_err_err_code
= -1;
937 static int hf_ff_fms_start_err_additional_code
= -1;
938 static int hf_ff_fms_start_err_additional_desc
= -1;
940 static gint ett_ff_fms_start_req
= -1;
941 static gint ett_ff_fms_start_rsp
= -1;
942 static gint ett_ff_fms_start_err
= -1;
947 * 6.5.3.25. FMS Stop (Confirmed Service Id = 20)
949 static int hf_ff_fms_stop
= -1;
951 static int hf_ff_fms_stop_req
= -1;
952 static int hf_ff_fms_stop_req_idx
= -1;
954 static int hf_ff_fms_stop_rsp
= -1;
956 static int hf_ff_fms_stop_err
= -1;
957 static int hf_ff_fms_stop_err_pi_state
= -1;
958 static int hf_ff_fms_stop_err_err_class
= -1;
959 static int hf_ff_fms_stop_err_err_code
= -1;
960 static int hf_ff_fms_stop_err_additional_code
= -1;
961 static int hf_ff_fms_stop_err_additional_desc
= -1;
963 static gint ett_ff_fms_stop_req
= -1;
964 static gint ett_ff_fms_stop_rsp
= -1;
965 static gint ett_ff_fms_stop_err
= -1;
970 * 6.5.3.26. FMS Resume (Confirmed Service Id = 21)
972 static int hf_ff_fms_resume
= -1;
973 static int hf_ff_fms_resume_req
= -1;
974 static int hf_ff_fms_resume_req_idx
= -1;
976 static int hf_ff_fms_resume_rsp
= -1;
978 static int hf_ff_fms_resume_err
= -1;
979 static int hf_ff_fms_resume_err_pi_state
= -1;
980 static int hf_ff_fms_resume_err_err_class
= -1;
981 static int hf_ff_fms_resume_err_err_code
= -1;
982 static int hf_ff_fms_resume_err_additional_code
= -1;
983 static int hf_ff_fms_resume_err_additional_desc
= -1;
985 static gint ett_ff_fms_resume_req
= -1;
986 static gint ett_ff_fms_resume_rsp
= -1;
987 static gint ett_ff_fms_resume_err
= -1;
992 * 6.5.3.27. FMS Reset (Confirmed Service Id = 22)
994 static int hf_ff_fms_reset
= -1;
995 static int hf_ff_fms_reset_req
= -1;
996 static int hf_ff_fms_reset_req_idx
= -1;
998 static int hf_ff_fms_reset_rsp
= -1;
1000 static int hf_ff_fms_reset_err
= -1;
1001 static int hf_ff_fms_reset_err_pi_state
= -1;
1002 static int hf_ff_fms_reset_err_err_class
= -1;
1003 static int hf_ff_fms_reset_err_err_code
= -1;
1004 static int hf_ff_fms_reset_err_additional_code
= -1;
1005 static int hf_ff_fms_reset_err_additional_desc
= -1;
1007 static gint ett_ff_fms_reset_req
= -1;
1008 static gint ett_ff_fms_reset_rsp
= -1;
1009 static gint ett_ff_fms_reset_err
= -1;
1014 * 6.5.3.28. FMS Kill (Confirmed Service Id = 23)
1016 static int hf_ff_fms_kill
= -1;
1017 static int hf_ff_fms_kill_req
= -1;
1018 static int hf_ff_fms_kill_req_idx
= -1;
1020 static int hf_ff_fms_kill_rsp
= -1;
1022 static int hf_ff_fms_kill_err
= -1;
1023 static int hf_ff_fms_kill_err_err_class
= -1;
1024 static int hf_ff_fms_kill_err_err_code
= -1;
1025 static int hf_ff_fms_kill_err_additional_code
= -1;
1026 static int hf_ff_fms_kill_err_additional_desc
= -1;
1028 static gint ett_ff_fms_kill_req
= -1;
1029 static gint ett_ff_fms_kill_rsp
= -1;
1030 static gint ett_ff_fms_kill_err
= -1;
1035 * 6.5.3.29. FMS Read (Confirmed Service Id = 2)
1037 static int hf_ff_fms_read
= -1;
1039 static int hf_ff_fms_read_req
= -1;
1040 static int hf_ff_fms_read_req_idx
= -1;
1042 static int hf_ff_fms_read_rsp
= -1;
1044 static int hf_ff_fms_read_err
= -1;
1045 static int hf_ff_fms_read_err_err_class
= -1;
1046 static int hf_ff_fms_read_err_err_code
= -1;
1047 static int hf_ff_fms_read_err_additional_code
= -1;
1048 static int hf_ff_fms_read_err_additional_desc
= -1;
1050 static gint ett_ff_fms_read_req
= -1;
1051 static gint ett_ff_fms_read_rsp
= -1;
1052 static gint ett_ff_fms_read_err
= -1;
1057 * 6.5.3.30. FMS Read with Subindex (Confirmed Service Id = 82)
1059 static int hf_ff_fms_read_with_subidx
= -1;
1061 static int hf_ff_fms_read_with_subidx_req
= -1;
1062 static int hf_ff_fms_read_with_subidx_req_idx
= -1;
1063 static int hf_ff_fms_read_with_subidx_req_subidx
= -1;
1065 static int hf_ff_fms_read_with_subidx_rsp
= -1;
1067 static int hf_ff_fms_read_with_subidx_err
= -1;
1068 static int hf_ff_fms_read_with_subidx_err_err_class
= -1;
1069 static int hf_ff_fms_read_with_subidx_err_err_code
= -1;
1070 static int hf_ff_fms_read_with_subidx_err_additional_code
= -1;
1071 static int hf_ff_fms_read_with_subidx_err_additional_desc
= -1;
1073 static gint ett_ff_fms_read_with_subidx_req
= -1;
1074 static gint ett_ff_fms_read_with_subidx_rsp
= -1;
1075 static gint ett_ff_fms_read_with_subidx_err
= -1;
1080 * 6.5.3.31. FMS Write (Confirmed Service Id = 3)
1082 static int hf_ff_fms_write
= -1;
1083 static int hf_ff_fms_write_req
= -1;
1084 static int hf_ff_fms_write_req_idx
= -1;
1086 static int hf_ff_fms_write_rsp
= -1;
1088 static int hf_ff_fms_write_err
= -1;
1089 static int hf_ff_fms_write_err_err_class
= -1;
1090 static int hf_ff_fms_write_err_err_code
= -1;
1091 static int hf_ff_fms_write_err_additional_code
= -1;
1092 static int hf_ff_fms_write_err_additional_desc
= -1;
1094 static gint ett_ff_fms_write_req
= -1;
1095 static gint ett_ff_fms_write_rsp
= -1;
1096 static gint ett_ff_fms_write_err
= -1;
1101 * 6.5.3.32. FMS Write with Subindex (Confirmed Service Id = 83)
1103 static int hf_ff_fms_write_with_subidx
= -1;
1105 static int hf_ff_fms_write_with_subidx_req
= -1;
1106 static int hf_ff_fms_write_with_subidx_req_idx
= -1;
1107 static int hf_ff_fms_write_with_subidx_req_subidx
= -1;
1109 static int hf_ff_fms_write_with_subidx_rsp
= -1;
1111 static int hf_ff_fms_write_with_subidx_err
= -1;
1112 static int hf_ff_fms_write_with_subidx_err_err_class
= -1;
1113 static int hf_ff_fms_write_with_subidx_err_err_code
= -1;
1114 static int hf_ff_fms_write_with_subidx_err_additional_code
= -1;
1115 static int hf_ff_fms_write_with_subidx_err_additional_desc
= -1;
1117 static gint ett_ff_fms_write_with_subidx_req
= -1;
1118 static gint ett_ff_fms_write_with_subidx_rsp
= -1;
1119 static gint ett_ff_fms_write_with_subidx_err
= -1;
1124 * 6.5.3.33. FMS Define Variable List (Confirmed Service Id = 7)
1126 static int hf_ff_fms_def_variable_list
= -1;
1128 static int hf_ff_fms_def_variable_list_req
= -1;
1129 static int hf_ff_fms_def_variable_list_req_num_of_idxes
= -1;
1130 static int hf_ff_fms_def_variable_list_req_idx
= -1;
1132 static int hf_ff_fms_def_variable_list_rsp
= -1;
1133 static int hf_ff_fms_def_variable_list_rsp_idx
= -1;
1135 static int hf_ff_fms_def_variable_list_err
= -1;
1136 static int hf_ff_fms_def_variable_list_err_err_class
= -1;
1137 static int hf_ff_fms_def_variable_list_err_err_code
= -1;
1138 static int hf_ff_fms_def_variable_list_err_additional_code
= -1;
1139 static int hf_ff_fms_def_variable_list_err_additional_desc
= -1;
1141 static gint ett_ff_fms_def_variable_list_req
= -1;
1142 static gint ett_ff_fms_def_variable_list_req_list_of_idxes
= -1;
1143 static gint ett_ff_fms_def_variable_list_rsp
= -1;
1144 static gint ett_ff_fms_def_variable_list_err
= -1;
1149 * 6.5.3.34. FMS Delete Variable List (Confirmed Service Id = 8)
1151 static int hf_ff_fms_del_variable_list
= -1;
1153 static int hf_ff_fms_del_variable_list_req
= -1;
1154 static int hf_ff_fms_del_variable_list_req_idx
= -1;
1156 static int hf_ff_fms_del_variable_list_rsp
= -1;
1158 static int hf_ff_fms_del_variable_list_err
= -1;
1159 static int hf_ff_fms_del_variable_list_err_err_class
= -1;
1160 static int hf_ff_fms_del_variable_list_err_err_code
= -1;
1161 static int hf_ff_fms_del_variable_list_err_additional_code
= -1;
1162 static int hf_ff_fms_del_variable_list_err_additional_desc
= -1;
1164 static gint ett_ff_fms_del_variable_list_req
= -1;
1165 static gint ett_ff_fms_del_variable_list_rsp
= -1;
1166 static gint ett_ff_fms_del_variable_list_err
= -1;
1171 * 6.5.3.35. FMS Information Report (Unconfirmed Service Id = 0)
1173 static int hf_ff_fms_info_report
= -1;
1175 static int hf_ff_fms_info_report_req
= -1;
1176 static int hf_ff_fms_info_report_req_idx
= -1;
1178 static gint ett_ff_fms_info_report_req
= -1;
1183 * 6.5.3.36. FMS Information Report with Subindex (Unconfirmed Service Id = 16)
1185 static int hf_ff_fms_info_report_with_subidx
= -1;
1187 static int hf_ff_fms_info_report_with_subidx_req
= -1;
1188 static int hf_ff_fms_info_report_with_subidx_req_idx
= -1;
1189 static int hf_ff_fms_info_report_with_subidx_req_subidx
= -1;
1191 static gint ett_ff_fms_info_report_with_subidx_req
= -1;
1196 * 6.5.3.37. FMS Information Report On Change (Unconfirmed Service Id = 17)
1198 static int hf_ff_fms_info_report_on_change
= -1;
1200 static int hf_ff_fms_info_report_on_change_req
= -1;
1201 static int hf_ff_fms_info_report_on_change_req_idx
= -1;
1203 static gint ett_ff_fms_info_report_on_change_req
= -1;
1208 * 6.5.3.38. FMS Information Report On Change with Subindex
1209 * (Unconfirmed Service Id = 18)
1211 static int hf_ff_fms_info_report_on_change_with_subidx
= -1;
1213 static int hf_ff_fms_info_report_on_change_with_subidx_req
= -1;
1214 static int hf_ff_fms_info_report_on_change_with_subidx_req_idx
= -1;
1215 static int hf_ff_fms_info_report_on_change_with_subidx_req_subidx
= -1;
1217 static gint ett_ff_fms_info_report_on_change_with_subidx_req
= -1;
1222 * 6.5.3.39. FMS Event Notification (Unconfirmed Service Id = 2)
1224 static int hf_ff_fms_ev_notification
= -1;
1226 static int hf_ff_fms_ev_notification_req
= -1;
1227 static int hf_ff_fms_ev_notification_req_idx
= -1;
1228 static int hf_ff_fms_ev_notification_req_ev_num
= -1;
1230 static gint ett_ff_fms_ev_notification_req
= -1;
1235 * 6.5.3.40. FMS Alter Event Condition Monitoring (Confirmed Service Id = 24)
1237 static int hf_ff_fms_alter_ev_condition_monitoring
= -1;
1239 static int hf_ff_fms_alter_ev_condition_monitoring_req
= -1;
1240 static int hf_ff_fms_alter_ev_condition_monitoring_req_idx
= -1;
1241 static int hf_ff_fms_alter_ev_condition_monitoring_req_enabled
= -1;
1243 static int hf_ff_fms_alter_ev_condition_monitoring_rsp
= -1;
1245 static int hf_ff_fms_alter_ev_condition_monitoring_err
= -1;
1246 static int hf_ff_fms_alter_ev_condition_monitoring_err_err_class
= -1;
1247 static int hf_ff_fms_alter_ev_condition_monitoring_err_err_code
= -1;
1248 static int hf_ff_fms_alter_ev_condition_monitoring_err_additional_code
= -1;
1249 static int hf_ff_fms_alter_ev_condition_monitoring_err_additional_desc
= -1;
1251 static gint ett_ff_fms_alter_ev_condition_monitoring_req
= -1;
1252 static gint ett_ff_fms_alter_ev_condition_monitoring_rsp
= -1;
1253 static gint ett_ff_fms_alter_ev_condition_monitoring_err
= -1;
1258 * 6.5.3.41. FMS Acknowledge Event Notification (Confirmed Service Id = 25)
1260 static int hf_ff_fms_ack_ev_notification
= -1;
1262 static int hf_ff_fms_ack_ev_notification_req
= -1;
1263 static int hf_ff_fms_ack_ev_notification_req_idx
= -1;
1264 static int hf_ff_fms_ack_ev_notification_req_ev_num
= -1;
1266 static int hf_ff_fms_ack_ev_notification_rsp
= -1;
1268 static int hf_ff_fms_ack_ev_notification_err
= -1;
1269 static int hf_ff_fms_ack_ev_notification_err_err_class
= -1;
1270 static int hf_ff_fms_ack_ev_notification_err_err_code
= -1;
1271 static int hf_ff_fms_ack_ev_notification_err_additional_code
= -1;
1272 static int hf_ff_fms_ack_ev_notification_err_additional_desc
= -1;
1274 static gint ett_ff_fms_ack_ev_notification_req
= -1;
1275 static gint ett_ff_fms_ack_ev_notification_rsp
= -1;
1276 static gint ett_ff_fms_ack_ev_notification_err
= -1;
1281 * 6.5.4. LAN Redundancy Services
1283 static int hf_ff_lr
= -1;
1288 * 6.5.4.1. LAN Redundancy Get Information (Confirmed Service Id = 1)
1290 static int hf_ff_lr_get_info
= -1;
1292 static int hf_ff_lr_get_info_req
= -1;
1294 static int hf_ff_lr_get_info_rsp
= -1;
1295 static int hf_ff_lr_get_info_rsp_lr_attrs_ver
= -1;
1296 static int hf_ff_lr_get_info_rsp_lr_max_msg_num_diff
= -1;
1297 static int hf_ff_lr_get_info_rsp_reserved
= -1;
1298 static int hf_ff_lr_get_info_rsp_diagnostic_msg_intvl
= -1;
1299 static int hf_ff_lr_get_info_rsp_aging_time
= -1;
1300 static int hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_send_addr
= -1;
1301 static int hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_recv_addr
= -1;
1302 static int hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_send_addr
= -1;
1303 static int hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_recv_addr
= -1;
1304 static int hf_ff_lr_get_info_rsp_lr_flags_reserved
= -1;
1305 static int hf_ff_lr_get_info_rsp_lr_flags_load_balance
= -1;
1306 static int hf_ff_lr_get_info_rsp_lr_flags_diag
= -1;
1307 static int hf_ff_lr_get_info_rsp_lr_flags_multi_recv
= -1;
1308 static int hf_ff_lr_get_info_rsp_lr_flags_cross_cable
= -1;
1309 static int hf_ff_lr_get_info_rsp_lr_flags_multi_trans
= -1;
1311 static int hf_ff_lr_get_info_err
= -1;
1312 static int hf_ff_lr_get_info_err_err_class
= -1;
1313 static int hf_ff_lr_get_info_err_err_code
= -1;
1314 static int hf_ff_lr_get_info_err_additional_code
= -1;
1315 static int hf_ff_lr_get_info_err_additional_desc
= -1;
1317 static gint ett_ff_lr_get_info_req
= -1;
1318 static gint ett_ff_lr_get_info_rsp
= -1;
1319 static gint ett_ff_lr_get_info_rsp_lr_flags
= -1;
1320 static gint ett_ff_lr_get_info_err
= -1;
1325 * 6.5.4.2. LAN Redundancy Put Information (Confirmed Service Id = 2)
1327 static int hf_ff_lr_put_info
= -1;
1329 static int hf_ff_lr_put_info_req
= -1;
1330 static int hf_ff_lr_put_info_req_lr_attrs_ver
= -1;
1331 static int hf_ff_lr_put_info_req_lr_max_msg_num_diff
= -1;
1332 static int hf_ff_lr_put_info_req_reserved
= -1;
1333 static int hf_ff_lr_put_info_req_diagnostic_msg_intvl
= -1;
1334 static int hf_ff_lr_put_info_req_aging_time
= -1;
1335 static int hf_ff_lr_put_info_req_diagnostic_msg_if_a_send_addr
= -1;
1336 static int hf_ff_lr_put_info_req_diagnostic_msg_if_a_recv_addr
= -1;
1337 static int hf_ff_lr_put_info_req_diagnostic_msg_if_b_send_addr
= -1;
1338 static int hf_ff_lr_put_info_req_diagnostic_msg_if_b_recv_addr
= -1;
1339 static int hf_ff_lr_put_info_req_lr_flags_reserved
= -1;
1340 static int hf_ff_lr_put_info_req_lr_flags_load_balance
= -1;
1341 static int hf_ff_lr_put_info_req_lr_flags_diag
= -1;
1342 static int hf_ff_lr_put_info_req_lr_flags_multi_recv
= -1;
1343 static int hf_ff_lr_put_info_req_lr_flags_cross_cable
= -1;
1344 static int hf_ff_lr_put_info_req_lr_flags_multi_trans
= -1;
1346 static int hf_ff_lr_put_info_rsp
= -1;
1347 static int hf_ff_lr_put_info_rsp_lr_attrs_ver
= -1;
1348 static int hf_ff_lr_put_info_rsp_lr_max_msg_num_diff
= -1;
1349 static int hf_ff_lr_put_info_rsp_reserved
= -1;
1350 static int hf_ff_lr_put_info_rsp_diagnostic_msg_intvl
= -1;
1351 static int hf_ff_lr_put_info_rsp_aging_time
= -1;
1352 static int hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_send_addr
= -1;
1353 static int hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_recv_addr
= -1;
1354 static int hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_send_addr
= -1;
1355 static int hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_recv_addr
= -1;
1356 static int hf_ff_lr_put_info_rsp_lr_flags_reserved
= -1;
1357 static int hf_ff_lr_put_info_rsp_lr_flags_load_balance
= -1;
1358 static int hf_ff_lr_put_info_rsp_lr_flags_diag
= -1;
1359 static int hf_ff_lr_put_info_rsp_lr_flags_multi_recv
= -1;
1360 static int hf_ff_lr_put_info_rsp_lr_flags_cross_cable
= -1;
1361 static int hf_ff_lr_put_info_rsp_lr_flags_multi_trans
= -1;
1363 static int hf_ff_lr_put_info_err
= -1;
1364 static int hf_ff_lr_put_info_err_err_class
= -1;
1365 static int hf_ff_lr_put_info_err_err_code
= -1;
1366 static int hf_ff_lr_put_info_err_additional_code
= -1;
1367 static int hf_ff_lr_put_info_err_additional_desc
= -1;
1369 static gint ett_ff_lr_put_info_req
= -1;
1370 static gint ett_ff_lr_put_info_req_lr_flags
= -1;
1371 static gint ett_ff_lr_put_info_rsp
= -1;
1372 static gint ett_ff_lr_put_info_rsp_lr_flags
= -1;
1373 static gint ett_ff_lr_put_info_err
= -1;
1378 * 6.5.4.3. LAN Redundancy Get Statistics (Confirmed Service Id = 3)
1380 static int hf_ff_lr_get_statistics
= -1;
1382 static int hf_ff_lr_get_statistics_req
= -1;
1384 static int hf_ff_lr_get_statistics_rsp
= -1;
1385 static int hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_a
= -1;
1386 static int hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_a
= -1;
1387 static int hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_a
= -1;
1388 static int hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_b
= -1;
1389 static int hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_b
= -1;
1390 static int hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_b
= -1;
1391 static int hf_ff_lr_get_statistics_rsp_num_x_cable_stat
= -1;
1392 static int hf_ff_lr_get_statistics_rsp_x_cable_stat
= -1;
1394 static int hf_ff_lr_get_statistics_err
= -1;
1395 static int hf_ff_lr_get_statistics_err_err_class
= -1;
1396 static int hf_ff_lr_get_statistics_err_err_code
= -1;
1397 static int hf_ff_lr_get_statistics_err_additional_code
= -1;
1398 static int hf_ff_lr_get_statistics_err_additional_desc
= -1;
1400 static gint ett_ff_lr_get_statistics_req
= -1;
1401 static gint ett_ff_lr_get_statistics_rsp
= -1;
1402 static gint ett_ff_lr_get_statistics_rsp_list_of_x_cable_stat
= -1;
1403 static gint ett_ff_lr_get_statistics_err
= -1;
1408 * 6.5.4.4. Diagnostic Message (Unconfirmed Service Id = 1)
1410 static int hf_ff_lr_diagnostic_msg
= -1;
1412 static int hf_ff_lr_diagnostic_msg_req
= -1;
1413 static int hf_ff_lr_diagnostic_msg_req_dev_idx
= -1;
1414 static int hf_ff_lr_diagnostic_msg_req_num_of_network_ifs
= -1;
1415 static int hf_ff_lr_diagnostic_msg_req_transmission_if
= -1;
1416 static int hf_ff_lr_diagnostic_msg_req_diagnostic_msg_intvl
= -1;
1417 static int hf_ff_lr_diagnostic_msg_req_pd_tag
= -1;
1418 static int hf_ff_lr_diagnostic_msg_req_reserved
= -1;
1419 static int hf_ff_lr_diagnostic_msg_req_num_of_if_statuses
= -1;
1420 static int hf_ff_lr_diagnostic_msg_req_if_a_to_a_status
= -1;
1421 static int hf_ff_lr_diagnostic_msg_req_if_b_to_a_status
= -1;
1422 static int hf_ff_lr_diagnostic_msg_req_if_a_to_b_status
= -1;
1423 static int hf_ff_lr_diagnostic_msg_req_if_b_to_b_status
= -1;
1424 static int hf_ff_lr_diagnostic_msg_req_dup_detection_state_reserved
= -1;
1425 static int hf_ff_lr_diagnostic_msg_req_dup_detection_state_pd_tag
= -1;
1426 static int hf_ff_lr_diagnostic_msg_req_dup_detection_state_device
= -1;
1428 static gint ett_ff_lr_diagnostic_msg_req
= -1;
1429 static gint ett_ff_lr_diagnostic_msg_req_dup_detection_stat
= -1;
1430 static gint ett_ff_lr_diagnostic_msg_req_a_to_a_status
= -1;
1431 static gint ett_ff_lr_diagnostic_msg_req_b_to_a_status
= -1;
1432 static gint ett_ff_lr_diagnostic_msg_req_a_to_b_status
= -1;
1433 static gint ett_ff_lr_diagnostic_msg_req_b_to_b_status
= -1;
1438 static const value_string names_pad_len
[] = {
1439 { 0x00, "No padding" },
1440 { OPTION_PAD_4BYTE
, "pad to 4 byte boundary" },
1441 { OPTION_PAD_8BYTE
, "pad to 8 byte boundary" },
1447 static const value_string names_proto
[] = {
1449 { PROTOCOL_FDA
, "FDA Session Management" },
1450 { PROTOCOL_SM
, "SM" },
1451 { PROTOCOL_FMS
, "FMS" },
1452 { PROTOCOL_LAN
, "LAN Redundancy" },
1458 static const value_string names_type
[] = {
1459 { TYPE_REQUEST
, "Request Message" },
1460 { TYPE_RESPONSE
, "Response Message" },
1461 { TYPE_ERROR
, "Error Message" },
1467 static const value_string names_nma_conf_use
[] = {
1468 { 0, "NMA Configuration Not Permitted" },
1469 { 1, "NMA Configuration Permitted" },
1475 static const value_string names_query_type
[] = {
1476 { 0, "PD Tag query for primary device" },
1477 { 1, "VFD tag query" },
1478 { 2, "Function-Block tag query" },
1479 { 3, "Element Id query" },
1480 { 4, "PD Tag/VFD Reference query" },
1481 { 5, "Device Index query" },
1482 { 6, "PD Tag query for secondary or member of redundant set" },
1488 static const value_string names_smk_state
[] = {
1489 { 0x02, "NO_TAG" }, /* 0000 0010 */
1490 { 0x04, "OPERATIONAL" }, /* 0000 0100 */
1496 static const value_string names_dev_type
[] = {
1497 { 0x00, "Type D-1 Device" }, /* 0000 0000 */
1498 { 0x01, "Type D-2 Device" }, /* 0000 0001 */
1499 { 0x02, "Type D-3 Device" }, /* 0000 0010 */
1500 { 0x03, "Type D-3 and Type D-2 Device" }, /* 0000 0011 */
1501 { 0x04, "Not used" }, /* 0000 0100 */
1502 { 0x05, "Type D-2 and Type D-1 Device" }, /* 0000 0101 */
1503 { 0x06, "Type D-3 and Type D-1 Device" }, /* 0000 0110 */
1504 { 0x07, "Type D-3 and D-2 and Type D-1 Device" }, /* 0000 0111 */
1510 static const value_string names_dev_redundancy_role
[] = {
1511 { 0x04, "Primary" }, /* 0000 0100 */
1512 { 0x08, "Secondary" }, /* 0000 1000 */
1518 static const value_string names_assigned_redundant_dev_type
[] = {
1519 { 0x00, "Type D-1 Device" }, /* 0000 0000 */
1520 { 0x01, "Type D-2 Device" }, /* 0000 0001 */
1521 { 0x02, "Type D-3 Device" }, /* 0000 0010 */
1527 static const value_string names_type_d2_dev_redundancy_role
[] = {
1528 { 0x00, "Not used" }, /* 0000 0000 */
1529 { 0x04, "Type D-2 Device Primary" }, /* 0000 0100 */
1530 { 0x08, "Type D-2 Device Secondary" }, /* 0000 1000 */
1536 static const value_string names_conn_opt
[] = {
1537 { 1, "VCR Selector" },
1538 { 2, "NMA Access" },
1539 { 3, "FBAP Access" },
1545 static const value_string names_fda_unconfirmed
[] = {
1551 static const value_string names_fda_confirmed
[] = {
1552 { FDA_OPEN_SESSION
, "FDA Open Session" },
1553 { FDA_IDLE
, "FDA Idle" },
1559 static const value_string names_sm_unconfirmed
[] = {
1560 { HSE_SM_FIND_TAG_QUERY
, "SM Find Tag Query" },
1561 { HSE_SM_FIND_TAG_REPLY
, "SM Find Tag Reply" },
1562 { HSE_SM_DEVICE_ANNUNCIATION
, "SM Device Annunciation" },
1568 static const value_string names_sm_confirmed
[] = {
1569 { HSE_SM_IDENTIFY
, "SM Identify" },
1570 { HSE_SM_CLEAR_ADDRESS
, "SM Clear Address" },
1571 { HSE_SM_SET_ASSIGNMENT
, "SM Set Assignment Info" },
1572 { HSE_SM_CLEAR_ASSIGNMENT
, "SM Clear Assignment Info" },
1578 static const value_string names_fms_unconfirmed
[] = {
1579 { HSE_FMS_INFORMATION_REPORT
, "FMS Information Report" },
1580 { HSE_FMS_UNSOLICITED_STATUS
, "FMS Unsolicited Status" },
1581 { HSE_FMS_EVENT_NOTIFICATION
, "FMS Event Notification" },
1582 { HSE_FMS_INFORMATION_REPORT_WITH_SUBINDEX
,
1583 "FMS Information Report with Subindex" },
1584 { HSE_FMS_INFORMATION_REPORT_ON_CHANGE
,
1585 "FMS Information Report On Change" },
1586 { HSE_FMS_INFORMATION_REPORT_ON_CHANGE_WITH_SUBINDEX
,
1587 "FMS Information Report On Change with Subindex" },
1588 { HSE_FMS_ABORT
, "FMS Abort" },
1594 static const value_string names_fms_confirmed
[] = {
1595 { HSE_FMS_STATUS
, "FMS Status" },
1596 { HSE_FMS_IDENTIFY
, "FMS Identify" },
1597 { HSE_FMS_READ
, "FMS Read" },
1598 { HSE_FMS_WRITE
, "FMS Write" },
1599 { HSE_FMS_GET_OD
, "FMS Get OD" },
1600 { HSE_FMS_DEFINE_VARIABLE_LIST
, "FMS Define Variable List" },
1601 { HSE_FMS_DELETE_VARIABLE_LIST
, "FMS Delete Variable List" },
1602 { HSE_FMS_INITIATE_DOWNLOAD_SEQUENCE
, "FMS Initiate Download Sequence" },
1603 { HSE_FMS_DOWNLOAD_SEGMENT
, "FMS Download Segment" },
1604 { HSE_FMS_TERMINATE_DOWNLOAD_SEQUENCE
, "FMS Terminate Download Sequence" },
1605 { HSE_FMS_INITIATE_UPLOAD_SEQUENCE
, "FMS Initiate Upload Sequence" },
1606 { HSE_FMS_UPLOAD_SEGMENT
, "FMS Upload Segment" },
1607 { HSE_FMS_TERMINATE_UPLOAD_SEQUENCE
, "FMS Terminate Upload Sequence" },
1608 { HSE_FMS_REQUEST_DOMAIN_DOWNLOAD
, "FMS Request Domain Download" },
1609 { HSE_FMS_REQUEST_DOMAIN_UPLOAD
, "FMS Request Domain Upload" },
1610 { HSE_FMS_CREATE_PROGRAM_INVOCATION
, "FMS Create Program Invocation" },
1611 { HSE_FMS_DELETE_PROGRAM_INVOCATION
, "FMS Delete Program Invocation" },
1612 { HSE_FMS_START
, "FMS Start" },
1613 { HSE_FMS_STOP
, "FMS Stop" },
1614 { HSE_FMS_RESUME
, "FMS Resume" },
1615 { HSE_FMS_RESET
, "FMS Reset" },
1616 { HSE_FMS_KILL
, "FMS Kill" },
1617 { HSE_FMS_ALTER_EVENT_CONDITION_MONITORING
,
1618 "FMS Alter Event Condition Monitoring" },
1619 { HSE_FMS_ACKNOWLEDGE_EVENT_NOTIFICATION
,
1620 "FMS Acknowledge Event Notification" },
1621 { HSE_FMS_INITIATE_PUT_OD
, "FMS Initiate Put OD" },
1622 { HSE_FMS_PUT_OD
, "FMS Put OD" },
1623 { HSE_FMS_TERMINATE_PUT_OD
, "FMS Terminate Put OD" },
1624 { HSE_FMS_GENERIC_INITIATE_DOWNLOAD_SEQUENCE
,
1625 "FMS Generic Initiate Download Sequence" },
1626 { HSE_FMS_GENERIC_DOWNLOAD_SEGMENT
, "FMS Generic Download Segment" },
1627 { HSE_FMS_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE
,
1628 "FMS Generic Terminate Download Sequence" },
1629 { HSE_FMS_READ_WITH_SUBINDEX
, "FMS Read with Subindex" },
1630 { HSE_FMS_WRITE_WITH_SUBINDEX
, "FMS Write with Subindex" },
1631 { HSE_FMS_INITIATE
, "FMS Initiate" },
1634 static value_string_ext names_fms_confirmed_ext
= VALUE_STRING_EXT_INIT(names_fms_confirmed
);
1637 static const value_string names_lan_unconfirmed
[] = {
1638 { LAN_DIAG
, "Diagnostic Message" },
1644 static const value_string names_lan_confirmed
[] = {
1645 { LAN_GET_INFO
, "LAN Redundancy Get Information" },
1646 { LAN_PUT_INFO
, "LAN Redundancy Put Information" },
1647 { LAN_GET_STATISTICS
, "LAN Redundancy Get Statistics" },
1653 static const value_string names_transmission_interface
[] = {
1654 { 0, "Interface A" },
1655 { 1, "Interface B" },
1661 static const value_string names_err_class
[] = {
1663 { 2, "application reference" },
1664 { 3, "definition" },
1671 { 10, "h1 sm reason code" },
1672 { 11, "fms initiate" },
1675 static value_string_ext names_err_class_ext
= VALUE_STRING_EXT_INIT(names_err_class
);
1678 static const value_string names_err_code_vfd_state
[] = {
1685 static const value_string names_err_code_appl_ref
[] = {
1687 { 1, "object undefined" },
1688 { 2, "object attributes inconsistent" },
1689 { 3, "name already exists" },
1695 static const value_string names_err_code_def
[] = {
1697 { 1, "application unreachable" },
1703 static const value_string names_err_code_res
[] = {
1705 { 1, "memory unavailable" },
1706 { 2, "max outstanding requests per session exceeded" },
1707 { 3, "max sessions exceeded" },
1708 { 4, "object creation failure" },
1714 static const value_string names_err_code_srv
[] = {
1716 { 1, "object state conflict" },
1718 { 3, "object constraint conflict" },
1719 { 4, "parameter inconsistent" },
1720 { 5, "illegal parameter" },
1721 { 6, "unsupported service" },
1722 { 7, "unsupported version" },
1723 { 8, "invalid options" },
1724 { 9, "unsupported protocol" },
1726 { 11, "key parameter mismatch" },
1727 { 12, "assignments already made" },
1728 { 13, "unsupported device redundancy state" },
1729 { 14, "response time-out" },
1730 { 15, "duplicate PD Tag detected" },
1733 static value_string_ext names_err_code_srv_ext
= VALUE_STRING_EXT_INIT(names_err_code_srv
);
1736 static const value_string names_err_code_access
[] = {
1738 { 1, "object invalidated" },
1739 { 2, "hardware fault" },
1740 { 3, "object access denied" },
1741 { 4, "invalid address" },
1742 { 5, "object attribute inconsistent" },
1743 { 6, "object access unsupported" },
1744 { 7, "object non existent" },
1745 { 8, "type conflict" },
1746 { 9, "named access unsupported" },
1747 { 10, "access to element unsupported" },
1748 { 11, "config access already open" },
1750 { 13, "unrecognized FDA Address" },
1753 static value_string_ext names_err_code_access_ext
= VALUE_STRING_EXT_INIT(names_err_code_access
);
1757 static const value_string names_err_code_od
[] = {
1759 { 1, "name length overflow" },
1760 { 2, "od overflow" },
1761 { 3, "od write protected" },
1762 { 4, "extension length overflow" },
1763 { 5, "od description length overflow" },
1764 { 6, "operational problem" },
1765 { 7, "hse to h1 format conversion not supported" },
1771 static const value_string names_err_code_other
[] = {
1778 static const value_string names_err_code_reject
[] = {
1785 static const value_string names_err_code_h1_sm_reason_code
[] = {
1787 { 1, "DLL Error - insufficient resources" },
1788 { 2, "DLL Error - sending queue full" },
1789 { 3, "DLL Error - time-out before transmission" },
1790 { 4, "DLL Error - reason unspecified" },
1791 { 5, "Device failed to respond to SET_PD_TAG" },
1792 { 6, "Device failed to respond to WHO_HAS_PD_TAG" },
1793 { 7, "Device failed to respond to SET_ADDR" },
1794 { 8, "Device failed to respond to IDENTIFY" },
1795 { 9, "Device failed to respond to ENABLE_SM_OP" },
1796 { 10, "Device failed to respond to CLEAR_ADDRESS" },
1797 { 11, "Multiple Response from WHO_HAS_PD_TAG" },
1798 { 12, "Non-Matching PD_TAG from WHO_HAS_PD_TAG" },
1799 { 13, "Non-Matching PD_TAG from IDENTIFY" },
1800 { 14, "Non-Matching DEV_ID from IDENTIFY" },
1801 { 15, "Remote Error Invalid State" },
1802 { 16, "Remote Error PD-Tag doesn't match" },
1803 { 17, "Remote Error Dev-ID doesn't match" },
1804 { 18, "Remote Error SMIB object write failed" },
1805 { 19, "Remote Error Starting SM Operational" },
1808 static value_string_ext names_err_code_h1_sm_reason_code_ext
= VALUE_STRING_EXT_INIT(names_err_code_h1_sm_reason_code
);
1811 static const value_string names_err_code_fms_init
[] = {
1813 { 1, "max-fms-pdu-size-insufficient" },
1814 { 2, "feature-not-supported" },
1815 { 3, "version-od-incompatible" },
1816 { 4, "user-initiate-denied" },
1817 { 5, "password-error" },
1818 { 6, "profile-number-incompatible" },
1823 val_to_str_err_code(guint8 errclass
, guint8 code
)
1827 return (val_to_str_const(code
, names_err_code_vfd_state
, "Unknown"));
1830 return (val_to_str_const(code
, names_err_code_appl_ref
, "Unknown"));
1833 return (val_to_str_const(code
, names_err_code_def
, "Unknown"));
1836 return (val_to_str_const(code
, names_err_code_res
, "Unknown"));
1839 return (val_to_str_ext_const(code
, &names_err_code_srv_ext
, "Unknown"));
1842 return (val_to_str_ext_const(code
, &names_err_code_access_ext
, "Unknown"));
1845 return (val_to_str_const(code
, names_err_code_od
, "Unknown"));
1848 return (val_to_str_const(code
, names_err_code_other
, "Unknown"));
1851 return (val_to_str_const(code
, names_err_code_reject
, "Unknown"));
1854 return (val_to_str_ext_const(code
,
1855 &names_err_code_h1_sm_reason_code_ext
, "Unknown"));
1858 return (val_to_str_const(code
, names_err_code_fms_init
, "Unknown"));
1868 * 6.5.1.1. FDA Open Session (Confirmed Service Id = 1)
1869 * 6.5.1.1.1. Request Message Parameters
1872 dissect_ff_msg_fda_open_sess_req(tvbuff_t
*tvb
, gint offset
,
1873 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
1875 proto_tree
*sub_tree
;
1878 col_set_str(pinfo
->cinfo
, COL_INFO
, "FDA Open Session Request");
1884 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
1885 "FDA Open Session Request");
1886 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fda_open_sess_req
);
1888 proto_tree_add_item(sub_tree
,
1889 hf_ff_fda_open_sess_req_sess_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1893 proto_tree_add_item(sub_tree
,
1894 hf_ff_fda_open_sess_req_max_buf_siz
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1898 proto_tree_add_item(sub_tree
,
1899 hf_ff_fda_open_sess_req_max_msg_len
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1903 proto_tree_add_item(sub_tree
,
1904 hf_ff_fda_open_sess_req_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1908 proto_tree_add_item(sub_tree
,
1909 hf_ff_fda_open_sess_req_nma_conf_use
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1913 proto_tree_add_item(sub_tree
,
1914 hf_ff_fda_open_sess_req_inactivity_close_time
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1918 proto_tree_add_item(sub_tree
,
1919 hf_ff_fda_open_sess_req_transmit_delay_time
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1923 proto_tree_add_item(sub_tree
,
1924 hf_ff_fda_open_sess_req_pd_tag
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
1929 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
1930 "[Unknown] (%u bytes)", length
);
1939 * 6.5.1.1.2. Response Message Parameters
1942 dissect_ff_msg_fda_open_sess_rsp(tvbuff_t
*tvb
, gint offset
,
1943 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
1945 proto_tree
*sub_tree
;
1948 col_set_str(pinfo
->cinfo
, COL_INFO
, "FDA Open Session Response");
1954 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
1955 "FDA Open Session Response");
1956 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fda_open_sess_rsp
);
1958 proto_tree_add_item(sub_tree
,
1959 hf_ff_fda_open_sess_rsp_sess_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1963 proto_tree_add_item(sub_tree
,
1964 hf_ff_fda_open_sess_rsp_max_buf_siz
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1968 proto_tree_add_item(sub_tree
,
1969 hf_ff_fda_open_sess_rsp_max_msg_len
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1973 proto_tree_add_item(sub_tree
,
1974 hf_ff_fda_open_sess_rsp_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1978 proto_tree_add_item(sub_tree
,
1979 hf_ff_fda_open_sess_rsp_nma_conf_use
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1983 proto_tree_add_item(sub_tree
,
1984 hf_ff_fda_open_sess_rsp_inactivity_close_time
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1988 proto_tree_add_item(sub_tree
,
1989 hf_ff_fda_open_sess_rsp_transmit_delay_time
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1993 proto_tree_add_item(sub_tree
,
1994 hf_ff_fda_open_sess_rsp_pd_tag
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
1999 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
2000 "[Unknown] (%u bytes)", length
);
2009 * 6.5.1.1.3. Error Message Parameters
2012 dissect_ff_msg_fda_open_sess_err(tvbuff_t
*tvb
, gint offset
,
2013 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
2015 proto_tree
*sub_tree
;
2019 const char *error_code
;
2021 col_set_str(pinfo
->cinfo
, COL_INFO
, "FDA Open Session Error");
2027 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
2028 "FDA Open Session Error");
2029 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fda_open_sess_err
);
2031 ErrorClass
= tvb_get_guint8(tvb
, offset
);
2032 proto_tree_add_item(sub_tree
,
2033 hf_ff_fda_open_sess_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2037 ErrorCode
= tvb_get_guint8(tvb
, offset
);
2038 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
2039 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fda_open_sess_err_err_code
,
2040 tvb
, offset
, 1, ErrorCode
,
2041 "%s (%u)", error_code
, ErrorCode
);
2045 proto_tree_add_item(sub_tree
,
2046 hf_ff_fda_open_sess_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2050 proto_tree_add_item(sub_tree
,
2051 hf_ff_fda_open_sess_err_additional_desc
, tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
2056 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
2057 "[Unknown] (%u bytes)", length
);
2066 * 6.5.1.2. FDA Idle (Confirmed Service Id = 3)
2067 * 6.5.1.2.1. Request Message Parameters
2070 dissect_ff_msg_fda_idle_req(tvbuff_t
*tvb
, gint offset
,
2071 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
2073 proto_tree
*sub_tree
;
2076 col_set_str(pinfo
->cinfo
, COL_INFO
, "FDA Idle Request");
2083 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
2084 "FDA Idle Request");
2085 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fda_idle_req
);
2087 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
2088 "[Unknown] (%u bytes)", length
);
2097 * 6.5.1.2.2. Response Message Parameters
2100 dissect_ff_msg_fda_idle_rsp(tvbuff_t
*tvb
, gint offset
,
2101 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
2103 proto_tree
*sub_tree
;
2106 col_set_str(pinfo
->cinfo
, COL_INFO
, "FDA Idle Response");
2113 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
2114 "FDA Idle Response");
2115 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fda_idle_rsp
);
2117 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
2118 "[Unknown] (%u bytes)", length
);
2127 * 6.5.1.2.3. Error Message Parameters
2130 dissect_ff_msg_fda_idle_err(tvbuff_t
*tvb
, gint offset
,
2131 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
2133 proto_tree
*sub_tree
;
2137 const char *error_code
;
2139 col_set_str(pinfo
->cinfo
, COL_INFO
, "FDA Idle Error");
2145 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
2147 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fda_idle_err
);
2149 ErrorClass
= tvb_get_guint8(tvb
, offset
);
2150 proto_tree_add_item(sub_tree
,
2151 hf_ff_fda_idle_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2155 ErrorCode
= tvb_get_guint8(tvb
, offset
);
2156 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
2157 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fda_idle_err_err_code
,
2158 tvb
, offset
, 1, ErrorCode
,
2159 "%s (%u)", error_code
, ErrorCode
);
2163 proto_tree_add_item(sub_tree
,
2164 hf_ff_fda_idle_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2168 proto_tree_add_item(sub_tree
,
2169 hf_ff_fda_idle_err_additional_desc
, tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
2174 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
2175 "[Unknown] (%u bytes)", length
);
2184 * 6.5.2.1. SM Find Tag Query (Unconfirmed Service Id = 1)
2185 * 6.5.2.1.1. Request Message Parameters
2188 dissect_ff_msg_sm_find_tag_query_req(tvbuff_t
*tvb
, gint offset
,
2189 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
2191 proto_tree
*sub_tree
;
2194 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Find Tag Query Request");
2200 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
2201 "SM Find Tag Query Request");
2202 sub_tree
= proto_item_add_subtree(ti
, ett_ff_sm_find_tag_query_req
);
2204 proto_tree_add_item(sub_tree
,
2205 hf_ff_sm_find_tag_query_req_query_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2209 proto_tree_add_text(sub_tree
, tvb
, offset
, 3, "Reserved (%u bytes)", 3);
2213 proto_tree_add_item(sub_tree
,
2214 hf_ff_sm_find_tag_query_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2218 proto_tree_add_item(sub_tree
,
2219 hf_ff_sm_find_tag_query_req_tag
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
2223 proto_tree_add_item(sub_tree
,
2224 hf_ff_sm_find_tag_query_req_vfd_tag
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
2229 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
2230 "[Unknown] (%u bytes)", length
);
2239 * 6.5.2.2. SM Find Tag Reply (Unconfirmed Service Id = 2)
2240 * 6.5.2.2.1. Request Message Parameters
2243 dissect_ff_msg_sm_find_tag_reply_req_dup_detection_state(tvbuff_t
*tvb
,
2244 gint offset
, proto_tree
*tree
, guint8 value
)
2246 proto_tree
*sub_tree
;
2253 ti
= proto_tree_add_text(tree
, tvb
, offset
, 1,
2254 "Duplicate Detection State: 0x%02x", value
);
2255 sub_tree
= proto_item_add_subtree(ti
,
2256 ett_ff_sm_find_tag_reply_req_dup_detection_state
);
2259 * Bits 3-8: Reserved, set to 0.
2260 * Bit 2: 1 = Duplicate PD Tag Detected
2261 * 0 = Duplicate PD Tag Not Detected
2262 * Bit 1: 1 = Duplicate Device Index Detected
2263 * 0 = Duplicate Device Index Not Detected
2265 proto_tree_add_item(sub_tree
, hf_ff_sm_find_tag_reply_dup_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2266 proto_tree_add_item(sub_tree
, hf_ff_sm_find_tag_reply_dup_pd_tag
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2267 proto_tree_add_item(sub_tree
, hf_ff_sm_find_tag_reply_dup_device
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2273 dissect_ff_msg_sm_find_tag_reply_req_list_of_fda_addr_selectors(tvbuff_t
*tvb
,
2274 gint offset
, proto_tree
*tree
, guint16 value
)
2276 proto_tree
*sub_tree
;
2284 ti
= proto_tree_add_text(tree
, tvb
, offset
, 2 * value
,
2285 "List of FDA Address Selectors (%u bytes)", 2 * value
);
2286 sub_tree
= proto_item_add_subtree(ti
,
2287 ett_ff_sm_find_tag_reply_req_list_of_fda_addr_selectors
);
2289 for (d
= 0; d
< value
; d
++) {
2290 proto_tree_add_item(sub_tree
,
2291 hf_ff_sm_find_tag_reply_req_fda_addr_selector
,
2292 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2303 dissect_ff_msg_sm_find_tag_reply_req(tvbuff_t
*tvb
, gint offset
,
2304 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
2306 proto_tree
*sub_tree
;
2308 guint8 DuplicateDetectionState
;
2309 guint16 NumOfFDAAddrSelectors
;
2311 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Find Tag Reply Request");
2317 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
2318 "SM Find Tag Reply Request");
2319 sub_tree
= proto_item_add_subtree(ti
, ett_ff_sm_find_tag_reply_req
);
2321 proto_tree_add_item(sub_tree
,
2322 hf_ff_sm_find_tag_reply_req_query_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2326 proto_tree_add_item(sub_tree
,
2327 hf_ff_sm_find_tag_reply_req_h1_node_addr
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2331 proto_tree_add_item(sub_tree
,
2332 hf_ff_sm_find_tag_reply_req_fda_addr_link_id
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2336 proto_tree_add_item(sub_tree
,
2337 hf_ff_sm_find_tag_reply_req_vfd_ref
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2341 proto_tree_add_item(sub_tree
,
2342 hf_ff_sm_find_tag_reply_req_od_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2346 proto_tree_add_item(sub_tree
,
2347 hf_ff_sm_find_tag_reply_req_ip_addr
, tvb
, offset
, 16, ENC_NA
);
2351 proto_tree_add_item(sub_tree
,
2352 hf_ff_sm_find_tag_reply_req_od_ver
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2356 proto_tree_add_item(sub_tree
,
2357 hf_ff_sm_find_tag_reply_req_dev_id
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
2361 proto_tree_add_item(sub_tree
,
2362 hf_ff_sm_find_tag_reply_req_pd_tag
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
2366 DuplicateDetectionState
= tvb_get_guint8(tvb
, offset
);
2367 dissect_ff_msg_sm_find_tag_reply_req_dup_detection_state(tvb
,
2368 offset
, sub_tree
, DuplicateDetectionState
);
2372 proto_tree_add_item(sub_tree
,
2373 hf_ff_sm_find_tag_reply_req_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2377 NumOfFDAAddrSelectors
= tvb_get_ntohs(tvb
, offset
);
2378 proto_tree_add_item(sub_tree
,
2379 hf_ff_sm_find_tag_reply_req_num_of_fda_addr_selectors
,
2380 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2384 if (NumOfFDAAddrSelectors
) {
2385 dissect_ff_msg_sm_find_tag_reply_req_list_of_fda_addr_selectors(tvb
,
2386 offset
, sub_tree
, NumOfFDAAddrSelectors
);
2387 offset
+= 2 * NumOfFDAAddrSelectors
;
2388 length
-= 2 * NumOfFDAAddrSelectors
;
2392 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
2393 "[Unknown] (%u bytes)", length
);
2402 * 6.5.2.3. SM Identify (Confirmed Service Id = 3)
2403 * 6.5.2.3.1. Request Message Parameters
2406 dissect_ff_msg_sm_id_req(tvbuff_t
*tvb
, gint offset
,
2407 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
2409 proto_tree
*sub_tree
;
2412 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Identify Request");
2419 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
2420 "SM Identify Request");
2421 sub_tree
= proto_item_add_subtree(ti
, ett_ff_sm_id_req
);
2423 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
2424 "[Unknown] (%u bytes)", length
);
2433 * 6.5.2.3.2. Response Message Parameters
2436 dissect_ff_msg_sm_id_rsp_h1_node_addr(tvbuff_t
*tvb
,
2437 gint offset
, proto_tree
*tree
)
2439 proto_tree
*sub_tree
;
2446 ti
= proto_tree_add_text(tree
, tvb
, offset
, 2,
2447 "H1 Node Address Version Number (%u bytes)", 2);
2448 sub_tree
= proto_item_add_subtree(ti
,
2449 ett_ff_sm_id_rsp_h1_node_addr
);
2451 proto_tree_add_item(sub_tree
,
2452 hf_ff_sm_id_rsp_h1_node_addr_ver_num_h1_node_addr
,
2453 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2456 proto_tree_add_item(sub_tree
,
2457 hf_ff_sm_id_rsp_h1_node_addr_ver_num_ver_num
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2466 dissect_ff_msg_sm_id_rsp_entries_node_addr(tvbuff_t
*tvb
,
2467 gint offset
, proto_tree
*tree
, guint32 value
)
2469 proto_tree
*sub_tree
;
2477 ti
= proto_tree_add_text(tree
, tvb
, offset
, 4 * value
,
2478 "Version Number List (%u bytes)", 4 * value
);
2479 sub_tree
= proto_item_add_subtree(ti
,
2480 ett_ff_sm_id_rsp_entries_node_addr
);
2482 for (d
= 0; d
< value
* 2; d
++) {
2483 dissect_ff_msg_sm_id_rsp_h1_node_addr(tvb
, offset
, sub_tree
);
2493 dissect_ff_msg_sm_id_rsp_h1_live_list(tvbuff_t
*tvb
,
2494 gint offset
, proto_tree
*tree
)
2496 proto_tree
*sub_tree
;
2503 ti
= proto_tree_add_text(tree
, tvb
, offset
, 4,
2504 "H1 Live-list Version Number (%u bytes)", 4);
2505 sub_tree
= proto_item_add_subtree(ti
,
2506 ett_ff_sm_id_rsp_h1_live_list
);
2508 proto_tree_add_item(sub_tree
,
2509 hf_ff_sm_id_rsp_h1_live_list_h1_link_id
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2512 proto_tree_add_item(sub_tree
,
2513 hf_ff_sm_id_rsp_h1_live_list_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2516 proto_tree_add_item(sub_tree
,
2517 hf_ff_sm_id_rsp_h1_live_list_ver_num
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2526 dissect_ff_msg_sm_id_rsp_entries_link_id(tvbuff_t
*tvb
,
2527 gint offset
, proto_tree
*tree
, guint32 value
)
2529 proto_tree
*sub_tree
;
2537 ti
= proto_tree_add_text(tree
, tvb
, offset
, 4 * value
,
2538 "Version Number List (%u bytes)", 4 * value
);
2539 sub_tree
= proto_item_add_subtree(ti
,
2540 ett_ff_sm_id_rsp_entries_h1_live_list
);
2542 for (d
= 0; d
< value
; d
++) {
2543 dissect_ff_msg_sm_id_rsp_h1_live_list(tvb
, offset
, sub_tree
);
2553 dissect_ff_msg_sm_id_rsp_smk_state(tvbuff_t
*tvb
,
2554 gint offset
, proto_tree
*tree
, guint8 value
)
2556 proto_tree
*sub_tree
;
2563 ti
= proto_tree_add_text(tree
, tvb
, offset
, 1,
2564 "SMK State: 0x%02x", value
);
2565 sub_tree
= proto_item_add_subtree(ti
,
2566 ett_ff_sm_id_rsp_smk_state
);
2575 * 0 = Not Synchronized with SNTP Time Server
2576 * 1 = Synchronized with SNTP Time Server
2578 proto_tree_add_item(sub_tree
, hf_ff_sm_id_rsp_smk_state_name
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2579 proto_tree_add_item(sub_tree
, hf_ff_sm_id_rsp_smk_state_sync
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2585 dissect_ff_msg_sm_id_rsp_dev_type(tvbuff_t
*tvb
,
2586 gint offset
, proto_tree
*tree
, guint8 value
)
2588 proto_tree
*sub_tree
;
2595 ti
= proto_tree_add_text(tree
, tvb
, offset
, 1,
2596 "Device Type: 0x%02x", value
);
2597 sub_tree
= proto_item_add_subtree(ti
,
2598 ett_ff_sm_id_rsp_dev_type
);
2601 * Bit 8 = Linking Device
2602 * Bit 7 = I/O Gateway
2603 * Bit 6 = HSE Field Device
2606 * Bits 1 - 3 Redundant Device Type Capability*
2607 * 0 = Type D-1 Device
2608 * 1 = Type D-2 Device
2609 * 2 = Type D-3 Device
2610 * 3 = Type D-3 and Type D-2 Device
2612 * 5 = Type D-2 and Type D-1 Device
2613 * 6 = Type D-3 and Type D-1 Device
2614 * 7 = Type D-3 and D-2 and Type D-1 Device
2616 proto_tree_add_item(sub_tree
, hf_ff_sm_id_rsp_dev_type_link
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2617 proto_tree_add_item(sub_tree
, hf_ff_sm_id_rsp_dev_type_iogateway
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2618 proto_tree_add_item(sub_tree
, hf_ff_sm_id_rsp_dev_type_hse
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2619 proto_tree_add_item(sub_tree
, hf_ff_sm_id_rsp_dev_type_h1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2620 proto_tree_add_item(sub_tree
, hf_ff_sm_id_rsp_dev_type_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2621 proto_tree_add_item(sub_tree
, hf_ff_sm_id_rsp_dev_type_redundant_caps
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2627 dissect_ff_msg_sm_id_rsp_dev_redundancy_state(tvbuff_t
*tvb
,
2628 gint offset
, proto_tree
*tree
, guint8 value
)
2630 proto_tree
*sub_tree
;
2637 ti
= proto_tree_add_text(tree
, tvb
, offset
, 1,
2638 "Device Redundancy State: 0x%02x", value
);
2639 sub_tree
= proto_item_add_subtree(ti
,
2640 ett_ff_sm_id_rsp_dev_redundancy_state
);
2643 * Bits 5-8 = Reserved, set to 0
2644 * Bits 3 & 4 Device Redundancy Role
2648 * Bits 1 & 2 Assigned Redundant Device Type*
2649 * 0 = Type D-1 Device
2650 * 1 = Type D-2 Device
2651 * 2 = Type D-3 Device
2654 proto_tree_add_item(sub_tree
, hf_ff_sm_id_rsp_dev_redundancy_state_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2655 proto_tree_add_item(sub_tree
, hf_ff_sm_id_rsp_dev_redundancy_state_role
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2656 proto_tree_add_item(sub_tree
, hf_ff_sm_id_rsp_dev_redundancy_state_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2662 dissect_ff_msg_sm_id_rsp_dup_detection_state(tvbuff_t
*tvb
,
2663 gint offset
, proto_tree
*tree
, guint8 value
)
2665 proto_tree
*sub_tree
;
2672 ti
= proto_tree_add_text(tree
, tvb
, offset
, 1,
2673 "Duplicate Detection State: 0x%02x", value
);
2674 sub_tree
= proto_item_add_subtree(ti
,
2675 ett_ff_sm_id_rsp_dup_detection_state
);
2678 * Bits 3-8: Reserved, set to 0.
2679 * Bit 2: 1 = Duplicate PD Tag Detected
2680 * 0 = Duplicate PD Tag Not Detected
2681 * Bit 1: 1 = Duplicate Device Index Detected
2682 * 0 = Duplicate Device Index Not Detected
2685 proto_tree_add_item(sub_tree
, hf_ff_sm_id_rsp_dup_detection_state_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2686 proto_tree_add_item(sub_tree
, hf_ff_sm_id_rsp_dup_detection_state_pd_tag
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2687 proto_tree_add_item(sub_tree
, hf_ff_sm_id_rsp_dup_detection_state_device
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2693 dissect_ff_msg_sm_id_rsp(tvbuff_t
*tvb
, gint offset
,
2694 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
, guint32 FDAAddress
)
2696 proto_tree
*sub_tree
;
2701 guint8 DeviceRedundancyState
;
2702 guint8 DuplicateDetectionState
;
2703 guint32 NumOfEntriesInVerNumList
;
2705 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Identify Response");
2711 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "SM Identify Response");
2712 sub_tree
= proto_item_add_subtree(ti
,
2715 SMKState
= tvb_get_guint8(tvb
, offset
);
2716 dissect_ff_msg_sm_id_rsp_smk_state(tvb
, offset
, sub_tree
, SMKState
);
2720 DeviceType
= tvb_get_guint8(tvb
, offset
);
2721 dissect_ff_msg_sm_id_rsp_dev_type(tvb
, offset
, sub_tree
, DeviceType
);
2725 DeviceRedundancyState
= tvb_get_guint8(tvb
, offset
);
2726 dissect_ff_msg_sm_id_rsp_dev_redundancy_state(tvb
,
2727 offset
, sub_tree
, DeviceRedundancyState
);
2731 DuplicateDetectionState
= tvb_get_guint8(tvb
, offset
);
2732 dissect_ff_msg_sm_id_rsp_dup_detection_state(tvb
,
2733 offset
, sub_tree
, DuplicateDetectionState
);
2737 proto_tree_add_item(sub_tree
,
2738 hf_ff_sm_id_rsp_dev_idx
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2742 proto_tree_add_item(sub_tree
,
2743 hf_ff_sm_id_rsp_max_dev_idx
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2747 proto_tree_add_item(sub_tree
,
2748 hf_ff_sm_id_rsp_operational_ip_addr
, tvb
, offset
, 16, ENC_NA
);
2752 proto_tree_add_item(sub_tree
,
2753 hf_ff_sm_id_rsp_dev_id
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
2757 proto_tree_add_item(sub_tree
,
2758 hf_ff_sm_id_rsp_pd_tag
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
2762 proto_tree_add_item(sub_tree
,
2763 hf_ff_sm_id_rsp_hse_repeat_time
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2767 proto_tree_add_item(sub_tree
,
2768 hf_ff_sm_id_rsp_lr_port
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2772 proto_tree_add_item(sub_tree
,
2773 hf_ff_sm_id_rsp_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2777 proto_tree_add_item(sub_tree
,
2778 hf_ff_sm_id_rsp_annunc_ver_num
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2782 proto_tree_add_item(sub_tree
,
2783 hf_ff_sm_id_rsp_hse_dev_ver_num
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2787 NumOfEntriesInVerNumList
= tvb_get_ntohl(tvb
, offset
);
2788 proto_tree_add_item(sub_tree
,
2789 hf_ff_sm_id_rsp_num_of_entries
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2793 if (NumOfEntriesInVerNumList
) {
2795 /* 11111111 11111111 00000000 00000000 */
2796 LinkId
= (guint16
)(FDAAddress
>> 16);
2798 dissect_ff_msg_sm_id_rsp_entries_node_addr(tvb
,
2799 offset
, sub_tree
, NumOfEntriesInVerNumList
);
2801 dissect_ff_msg_sm_id_rsp_entries_link_id(tvb
,
2802 offset
, sub_tree
, NumOfEntriesInVerNumList
);
2805 offset
+= 4 * NumOfEntriesInVerNumList
;
2806 length
-= 4 * NumOfEntriesInVerNumList
;
2810 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
2811 "[Unknown] (%u bytes)", length
);
2820 * 6.5.2.3.3. Error Message Parameters
2823 dissect_ff_msg_sm_id_err(tvbuff_t
*tvb
, gint offset
,
2824 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
2826 proto_tree
*sub_tree
;
2830 const char *error_code
;
2832 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Identify Error");
2838 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "SM Identify Error");
2839 sub_tree
= proto_item_add_subtree(ti
, ett_ff_sm_id_err
);
2841 ErrorClass
= tvb_get_guint8(tvb
, offset
);
2842 proto_tree_add_item(sub_tree
,
2843 hf_ff_sm_id_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2847 ErrorCode
= tvb_get_guint8(tvb
, offset
);
2848 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
2849 proto_tree_add_uint_format_value(sub_tree
, hf_ff_sm_id_err_err_code
,
2850 tvb
, offset
, 1, ErrorCode
,
2851 "%s (%u)", error_code
, ErrorCode
);
2855 proto_tree_add_item(sub_tree
,
2856 hf_ff_sm_id_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2860 proto_tree_add_item(sub_tree
,
2861 hf_ff_sm_id_err_additional_desc
, tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
2866 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
2867 "[Unknown] (%u bytes)", length
);
2876 * 6.5.2.4. SM Clear Address (Confirmed Service Id = 12)
2877 * 6.5.2.4.1. Request Message Parameters
2880 dissect_ff_msg_sm_clear_addr_req(tvbuff_t
*tvb
, gint offset
,
2881 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
2883 proto_tree
*sub_tree
;
2886 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Clear Address Request");
2892 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
2893 "SM Clear Address Request");
2894 sub_tree
= proto_item_add_subtree(ti
, ett_ff_sm_id_err
);
2896 proto_tree_add_item(sub_tree
,
2897 hf_ff_sm_clear_addr_req_dev_id
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
2901 proto_tree_add_item(sub_tree
,
2902 hf_ff_sm_clear_addr_req_pd_tag
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
2906 proto_tree_add_item(sub_tree
,
2907 hf_ff_sm_clear_addr_req_interface_to_clear
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2911 proto_tree_add_text(sub_tree
, tvb
, offset
, 3, "Reserved (%u bytes)", 3);
2916 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
2917 "[Unknown] (%u bytes)", length
);
2926 * 6.5.2.4.2. Response Message Parameters
2929 dissect_ff_msg_sm_clear_addr_rsp(tvbuff_t
*tvb
, gint offset
,
2930 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
2932 proto_tree
*sub_tree
;
2935 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Clear Address Response");
2942 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
2943 "SM Clear Address Response");
2944 sub_tree
= proto_item_add_subtree(ti
, ett_ff_sm_clear_addr_rsp
);
2946 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
2947 "[Unknown] (%u bytes)", length
);
2956 * 6.5.2.4.3. Error Message Parameters
2959 dissect_ff_msg_sm_clear_addr_err(tvbuff_t
*tvb
, gint offset
,
2960 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
2962 proto_tree
*sub_tree
;
2966 const char *error_code
;
2968 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Clear Address Error");
2974 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
2975 "SM Clear Address Error");
2976 sub_tree
= proto_item_add_subtree(ti
, ett_ff_sm_clear_addr_err
);
2978 ErrorClass
= tvb_get_guint8(tvb
, offset
);
2979 proto_tree_add_item(sub_tree
,
2980 hf_ff_sm_clear_addr_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2984 ErrorCode
= tvb_get_guint8(tvb
, offset
);
2985 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
2986 proto_tree_add_uint_format_value(sub_tree
, hf_ff_sm_clear_addr_err_err_code
,
2987 tvb
, offset
, 1, ErrorCode
,
2988 "%s (%u)", error_code
, ErrorCode
);
2992 proto_tree_add_item(sub_tree
,
2993 hf_ff_sm_clear_addr_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2997 proto_tree_add_item(sub_tree
,
2998 hf_ff_sm_clear_addr_err_additional_desc
, tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
3003 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
3004 "[Unknown] (%u bytes)", length
);
3013 * 6.5.2.5. SM Set Assignment Info (Confirmed Service Id = 14)
3014 * 6.5.2.5.1. Request Message Parameters
3017 dissect_ff_msg_sm_set_assign_info_req_dev_redundancy_state(tvbuff_t
*tvb
,
3018 gint offset
, proto_tree
*tree
, guint8 value
)
3020 proto_tree
*sub_tree
;
3027 ti
= proto_tree_add_text(tree
, tvb
, offset
, 1,
3028 "Device Redundancy State: 0x%02x", value
);
3029 sub_tree
= proto_item_add_subtree(ti
,
3030 ett_ff_sm_set_assign_info_req_dev_redundancy_state
);
3033 * Bits 5-8 = Reserved, set to 0
3034 * Bits 3 & 4 Type D-2 Device Redundancy Role
3036 * 1 = Type D-2 Device Primary
3037 * 2 = Type D-2 Device Secondary
3038 * Bits 1 & 2 Assigned Device Redundancy Type
3039 * 0 = Type D-1 Device
3040 * 1 = Type D-2 Device
3041 * 2 = Type D-3 Device
3043 proto_tree_add_item(sub_tree
, hf_ff_sm_set_assign_info_req_dev_redundancy_state_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3044 proto_tree_add_item(sub_tree
, hf_ff_sm_set_assign_info_req_dev_redundancy_state_role
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3045 proto_tree_add_item(sub_tree
, hf_ff_sm_set_assign_info_req_dev_redundancy_state_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3051 dissect_ff_msg_sm_set_assign_info_req_clear_dup_detection_state(tvbuff_t
*tvb
,
3052 gint offset
, proto_tree
*tree
, guint8 value
)
3054 proto_tree
*sub_tree
;
3061 ti
= proto_tree_add_text(tree
, tvb
, offset
, 1,
3062 "Clear Duplicate Detection State: 0x%02x", value
);
3063 sub_tree
= proto_item_add_subtree(ti
,
3064 ett_ff_sm_set_assign_info_req_clear_dup_detection_state
);
3067 * Bits 3-8: Reserved, set to 0.
3068 * Bit 2: 1 = Do not clear Duplicate PD Tag Detected
3069 * 0 = Clear Duplicate PD Tag Detected
3070 * Bit 1: 1 = Do not clear Duplicate Device Index Detected
3071 * 0 = Clear Duplicate Device Index Detected
3073 proto_tree_add_item(sub_tree
, hf_ff_sm_set_assign_info_req_clear_dup_detection_state_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3074 proto_tree_add_item(sub_tree
, hf_ff_sm_set_assign_info_req_clear_dup_detection_state_pd_tag
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3075 proto_tree_add_item(sub_tree
, hf_ff_sm_set_assign_info_req_clear_dup_detection_state_device_index
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3081 dissect_ff_msg_sm_set_assign_info_req(tvbuff_t
*tvb
, gint offset
,
3082 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
3084 proto_tree
*sub_tree
;
3086 guint8 DeviceRedundancyState
;
3087 guint8 ClearDuplicateDetectionState
;
3089 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Set Assignment Info Request");
3095 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
3096 "SM Set Assignment Info Request");
3097 sub_tree
= proto_item_add_subtree(ti
,
3098 ett_ff_sm_set_assign_info_req
);
3100 proto_tree_add_item(sub_tree
,
3101 hf_ff_sm_set_assign_info_req_dev_id
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
3105 proto_tree_add_item(sub_tree
,
3106 hf_ff_sm_set_assign_info_req_pd_tag
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
3110 proto_tree_add_item(sub_tree
,
3111 hf_ff_sm_set_assign_info_req_h1_new_addr
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3115 DeviceRedundancyState
= tvb_get_guint8(tvb
, offset
);
3116 dissect_ff_msg_sm_set_assign_info_req_dev_redundancy_state(tvb
,
3117 offset
, sub_tree
, DeviceRedundancyState
);
3121 proto_tree_add_item(sub_tree
,
3122 hf_ff_sm_set_assign_info_req_lr_port
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3126 proto_tree_add_item(sub_tree
,
3127 hf_ff_sm_set_assign_info_req_hse_repeat_time
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
3131 proto_tree_add_item(sub_tree
,
3132 hf_ff_sm_set_assign_info_req_dev_idx
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3136 proto_tree_add_item(sub_tree
,
3137 hf_ff_sm_set_assign_info_req_max_dev_idx
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3141 proto_tree_add_item(sub_tree
,
3142 hf_ff_sm_set_assign_info_req_operational_ip_addr
,
3143 tvb
, offset
, 16, ENC_NA
);
3147 proto_tree_add_text(sub_tree
, tvb
, offset
, 3, "Reserved (%u bytes)", 3);
3151 ClearDuplicateDetectionState
= tvb_get_guint8(tvb
, offset
);
3152 dissect_ff_msg_sm_set_assign_info_req_clear_dup_detection_state(tvb
,
3153 offset
, sub_tree
, ClearDuplicateDetectionState
);
3158 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
3159 "[Unknown] (%u bytes)", length
);
3168 * 6.5.2.5.2. Response Message Parameters
3171 dissect_ff_msg_sm_set_assign_info_rsp(tvbuff_t
*tvb
, gint offset
,
3172 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
3174 proto_tree
*sub_tree
;
3177 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Set Assignment Info Response");
3183 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
3184 "SM Set Assignment Info Response");
3185 sub_tree
= proto_item_add_subtree(ti
,
3186 ett_ff_sm_set_assign_info_rsp
);
3188 proto_tree_add_item(sub_tree
,
3189 hf_ff_sm_set_assign_info_rsp_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3193 proto_tree_add_item(sub_tree
,
3194 hf_ff_sm_set_assign_info_rsp_max_dev_idx
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3198 proto_tree_add_item(sub_tree
,
3199 hf_ff_sm_set_assign_info_rsp_hse_repeat_time
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
3204 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
3205 "[Unknown] (%u bytes)", length
);
3214 * 6.5.2.5.3. Error Message Parameters
3217 dissect_ff_msg_sm_set_assign_info_err(tvbuff_t
*tvb
, gint offset
,
3218 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
3220 proto_tree
*sub_tree
;
3224 const char *error_code
;
3226 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Set Assignment Info Error");
3232 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
3233 "SM Set Assignment Info Error");
3234 sub_tree
= proto_item_add_subtree(ti
, ett_ff_sm_set_assign_info_err
);
3236 ErrorClass
= tvb_get_guint8(tvb
, offset
);
3237 proto_tree_add_item(sub_tree
,
3238 hf_ff_sm_set_assign_info_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3242 ErrorCode
= tvb_get_guint8(tvb
, offset
);
3243 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
3244 proto_tree_add_uint_format_value(sub_tree
,
3245 hf_ff_sm_set_assign_info_err_err_code
,
3246 tvb
, offset
, 1, ErrorCode
,
3247 "%s (%u)", error_code
, ErrorCode
);
3251 proto_tree_add_item(sub_tree
,
3252 hf_ff_sm_set_assign_info_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3256 proto_tree_add_item(sub_tree
,
3257 hf_ff_sm_set_assign_info_err_additional_desc
, tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
3262 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
3263 "[Unknown] (%u bytes)", length
);
3272 * 6.5.2.6. SM Clear Assignment Info (Confirmed Service Id = 15)
3273 * 6.5.2.6.1. Request Message Parameters
3276 dissect_ff_msg_sm_clear_assign_info_req(tvbuff_t
*tvb
, gint offset
,
3277 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
3279 proto_tree
*sub_tree
;
3282 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Clear Assignment Info Request");
3288 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
3289 "SM Clear Assignment Info Request");
3290 sub_tree
= proto_item_add_subtree(ti
,
3291 ett_ff_sm_clear_assign_info_req
);
3293 proto_tree_add_item(sub_tree
,
3294 hf_ff_sm_clear_assign_info_req_dev_id
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
3298 proto_tree_add_item(sub_tree
,
3299 hf_ff_sm_clear_assign_info_req_pd_tag
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
3304 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
3305 "[Unknown] (%u bytes)", length
);
3314 * 6.5.2.6.2. Response Message Parameters
3317 dissect_ff_msg_sm_clear_assign_info_rsp(tvbuff_t
*tvb
, gint offset
,
3318 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
3320 proto_tree
*sub_tree
;
3323 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Clear Assignment Info Response");
3330 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
3331 "SM Clear Assignment Info Response");
3332 sub_tree
= proto_item_add_subtree(ti
,
3333 ett_ff_sm_clear_assign_info_rsp
);
3335 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
3336 "[Unknown] (%u bytes)", length
);
3345 * 6.5.2.6.3. Error Message Parameters
3348 dissect_ff_msg_sm_clear_assign_info_err(tvbuff_t
*tvb
, gint offset
,
3349 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
3351 proto_tree
*sub_tree
;
3355 const char *error_code
;
3357 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Clear Assignment Info Error");
3363 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
3364 "SM Clear Assignment Info Error");
3365 sub_tree
= proto_item_add_subtree(ti
,
3366 ett_ff_sm_clear_assign_info_err
);
3368 ErrorClass
= tvb_get_guint8(tvb
, offset
);
3369 proto_tree_add_item(sub_tree
,
3370 hf_ff_sm_clear_assign_info_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3374 ErrorCode
= tvb_get_guint8(tvb
, offset
);
3375 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
3376 proto_tree_add_uint_format_value(sub_tree
,
3377 hf_ff_sm_clear_assign_info_err_err_code
,
3378 tvb
, offset
, 1, ErrorCode
,
3379 "%s (%u)", error_code
, ErrorCode
);
3383 proto_tree_add_item(sub_tree
,
3384 hf_ff_sm_clear_assign_info_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3388 proto_tree_add_item(sub_tree
,
3389 hf_ff_sm_clear_assign_info_err_additional_desc
, tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
3394 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
3395 "[Unknown] (%u bytes)", length
);
3404 * 6.5.2.7. SM Device Annunciation (Unconfirmed Service Id = 16)
3405 * 6.5.2.7.1. Request Message Parameters
3408 dissect_ff_msg_sm_dev_annunc_req_h1_node_addr(tvbuff_t
*tvb
,
3409 gint offset
, proto_tree
*tree
)
3411 proto_tree
*sub_tree
;
3418 ti
= proto_tree_add_text(tree
, tvb
, offset
, 2,
3419 "H1 Node Address Version Number (%u bytes)", 2);
3420 sub_tree
= proto_item_add_subtree(ti
,
3421 ett_ff_sm_dev_annunc_req_h1_node_addr
);
3423 proto_tree_add_item(sub_tree
,
3424 hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_h1_node_addr
,
3425 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3428 proto_tree_add_item(sub_tree
,
3429 hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_ver_num
,
3430 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3439 dissect_ff_msg_sm_dev_annunc_req_entries_node_addr(tvbuff_t
*tvb
,
3440 gint offset
, proto_tree
*tree
, guint32 value
)
3442 proto_tree
*sub_tree
;
3450 ti
= proto_tree_add_text(tree
, tvb
, offset
, 4 * value
,
3451 "Version Number List (%u bytes)", 4 * value
);
3452 sub_tree
= proto_item_add_subtree(ti
,
3453 ett_ff_sm_dev_annunc_req_entries_node_addr
);
3455 for (d
= 0; d
< value
* 2; d
++) {
3456 dissect_ff_msg_sm_dev_annunc_req_h1_node_addr(tvb
, offset
, sub_tree
);
3466 dissect_ff_msg_sm_dev_annunc_req_h1_live_list(tvbuff_t
*tvb
,
3467 gint offset
, proto_tree
*tree
)
3469 proto_tree
*sub_tree
;
3476 ti
= proto_tree_add_text(tree
, tvb
, offset
, 4,
3477 "H1 Live-list Version Number (%u bytes)", 4);
3478 sub_tree
= proto_item_add_subtree(ti
,
3479 ett_ff_sm_dev_annunc_req_h1_live_list
);
3481 proto_tree_add_item(sub_tree
,
3482 hf_ff_sm_dev_annunc_req_h1_live_list_h1_link_id
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3485 proto_tree_add_item(sub_tree
,
3486 hf_ff_sm_dev_annunc_req_h1_live_list_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3489 proto_tree_add_item(sub_tree
,
3490 hf_ff_sm_dev_annunc_req_h1_live_list_ver_num
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3499 dissect_ff_msg_sm_dev_annunc_req_entries_link_id(tvbuff_t
*tvb
,
3500 gint offset
, proto_tree
*tree
, guint32 value
)
3502 proto_tree
*sub_tree
;
3510 ti
= proto_tree_add_text(tree
, tvb
, offset
, 4 * value
,
3511 "Version Number List (%u bytes)", 4 * value
);
3512 sub_tree
= proto_item_add_subtree(ti
,
3513 ett_ff_sm_dev_annunc_req_entries_h1_live_list
);
3515 for (d
= 0; d
< value
; d
++) {
3516 dissect_ff_msg_sm_dev_annunc_req_h1_live_list(tvb
, offset
, sub_tree
);
3526 dissect_ff_msg_sm_dev_annunc_req_smk_state(tvbuff_t
*tvb
,
3527 gint offset
, proto_tree
*tree
, guint8 value
)
3529 proto_tree
*sub_tree
;
3536 ti
= proto_tree_add_text(tree
, tvb
, offset
, 1,
3537 "SMK State: 0x%02x", value
);
3538 sub_tree
= proto_item_add_subtree(ti
,
3539 ett_ff_sm_dev_annunc_req_smk_state
);
3548 * 0 = Not Synchronized with SNTP Time Server
3549 * 1 = Synchronized with SNTP Time Server
3551 proto_tree_add_item(sub_tree
, hf_ff_sm_dev_annunc_req_smk_state_name
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3552 proto_tree_add_item(sub_tree
, hf_ff_sm_dev_annunc_req_smk_state_sync
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3558 dissect_ff_msg_sm_dev_annunc_req_dev_type(tvbuff_t
*tvb
,
3559 gint offset
, proto_tree
*tree
, guint8 value
)
3561 proto_tree
*sub_tree
;
3568 ti
= proto_tree_add_text(tree
, tvb
, offset
, 1,
3569 "Device Type: 0x%02x", value
);
3570 sub_tree
= proto_item_add_subtree(ti
,
3571 ett_ff_sm_dev_annunc_req_dev_type
);
3574 * Bit 8 = Linking Device
3575 * Bit 7 = I/O Gateway
3576 * Bit 6 = HSE Field Device
3579 * Bits 1 - 3 Redundant Device Type Capability*
3580 * 0 = Type D-1 Device
3581 * 1 = Type D-2 Device
3582 * 2 = Type D-3 Device
3583 * 3 = Type D-3 and Type D-2 Device
3585 * 5 = Type D-2 and Type D-1 Device
3586 * 6 = Type D-3 and Type D-1 Device
3587 * 7 = Type D-3 and D-2 and Type D-1 Device
3589 proto_tree_add_item(sub_tree
, hf_ff_sm_dev_annunc_req_dev_type_link
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3590 proto_tree_add_item(sub_tree
, hf_ff_sm_dev_annunc_req_dev_type_iogateway
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3591 proto_tree_add_item(sub_tree
, hf_ff_sm_dev_annunc_req_dev_type_hse
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3592 proto_tree_add_item(sub_tree
, hf_ff_sm_dev_annunc_req_dev_type_h1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3593 proto_tree_add_item(sub_tree
, hf_ff_sm_dev_annunc_req_dev_type_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3594 proto_tree_add_item(sub_tree
, hf_ff_sm_dev_annunc_req_dev_type_redundant_caps
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3600 dissect_ff_msg_sm_dev_annunc_req_dev_redundancy_state(tvbuff_t
*tvb
,
3601 gint offset
, proto_tree
*tree
, guint8 value
)
3603 proto_tree
*sub_tree
;
3610 ti
= proto_tree_add_text(tree
, tvb
, offset
, 1,
3611 "Device Redundancy State: 0x%02x", value
);
3612 sub_tree
= proto_item_add_subtree(ti
,
3613 ett_ff_sm_dev_annunc_req_dev_redundancy_state
);
3616 * Bits 5-8 = Reserved, set to 0
3617 * Bits 3 & 4 Device Redundancy Role
3621 * Bits 1 & 2 Assigned Redundant Device Type*
3622 * 0 = Type D-1 Device
3623 * 1 = Type D-2 Device
3624 * 2 = Type D-3 Device
3626 proto_tree_add_item(sub_tree
, hf_ff_sm_dev_annunc_req_dev_redundancy_state_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3627 proto_tree_add_item(sub_tree
, hf_ff_sm_dev_annunc_req_dev_redundancy_state_role
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3628 proto_tree_add_item(sub_tree
, hf_ff_sm_dev_annunc_req_dev_redundancy_state_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3634 dissect_ff_msg_sm_dev_annunc_req_dup_detection_state(tvbuff_t
*tvb
,
3635 gint offset
, proto_tree
*tree
, guint8 value
)
3637 proto_tree
*sub_tree
;
3644 ti
= proto_tree_add_text(tree
, tvb
, offset
, 1,
3645 "Duplicate Detection State: 0x%02x", value
);
3646 sub_tree
= proto_item_add_subtree(ti
,
3647 ett_ff_sm_dev_annunc_req_dup_detection_state
);
3650 * Bits 3-8: Reserved, set to 0.
3651 * Bit 2: 1 = Duplicate PD Tag Detected
3652 * 0 = Duplicate PD Tag Not Detected
3653 * Bit 1: 1 = Duplicate Device Index Detected
3654 * 0 = Duplicate Device Index Not Detected
3656 proto_tree_add_item(sub_tree
, hf_ff_sm_dev_annunc_req_dup_detection_state_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3657 proto_tree_add_item(sub_tree
, hf_ff_sm_dev_annunc_req_dup_detection_state_pd_tag
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3658 proto_tree_add_item(sub_tree
, hf_ff_sm_dev_annunc_req_dup_detection_state_device
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3664 dissect_ff_msg_sm_dev_annunc_req(tvbuff_t
*tvb
, gint offset
,
3665 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
, guint32 FDAAddress
)
3667 proto_tree
*sub_tree
;
3672 guint8 DeviceRedundancyState
;
3673 guint8 DuplicateDetectionState
;
3674 guint32 NumOfEntriesInVerNumList
;
3676 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Device Annunciation Request");
3682 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
3683 "SM Device Annunciation Request");
3684 sub_tree
= proto_item_add_subtree(ti
,
3685 ett_ff_sm_dev_annunc_req
);
3687 SMKState
= tvb_get_guint8(tvb
, offset
);
3688 dissect_ff_msg_sm_dev_annunc_req_smk_state(tvb
, offset
, sub_tree
, SMKState
);
3692 DeviceType
= tvb_get_guint8(tvb
, offset
);
3693 dissect_ff_msg_sm_dev_annunc_req_dev_type(tvb
,
3694 offset
, sub_tree
, DeviceType
);
3698 DeviceRedundancyState
= tvb_get_guint8(tvb
, offset
);
3699 dissect_ff_msg_sm_dev_annunc_req_dev_redundancy_state(tvb
,
3700 offset
, sub_tree
, DeviceRedundancyState
);
3704 DuplicateDetectionState
= tvb_get_guint8(tvb
, offset
);
3705 dissect_ff_msg_sm_dev_annunc_req_dup_detection_state(tvb
,
3706 offset
, sub_tree
, DuplicateDetectionState
);
3710 proto_tree_add_item(sub_tree
,
3711 hf_ff_sm_dev_annunc_req_dev_idx
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3715 proto_tree_add_item(sub_tree
,
3716 hf_ff_sm_dev_annunc_req_max_dev_idx
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3720 proto_tree_add_item(sub_tree
,
3721 hf_ff_sm_dev_annunc_req_operational_ip_addr
, tvb
, offset
, 16, ENC_NA
);
3725 proto_tree_add_item(sub_tree
,
3726 hf_ff_sm_dev_annunc_req_dev_id
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
3730 proto_tree_add_item(sub_tree
,
3731 hf_ff_sm_dev_annunc_req_pd_tag
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
3735 proto_tree_add_item(sub_tree
,
3736 hf_ff_sm_dev_annunc_req_hse_repeat_time
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
3740 proto_tree_add_item(sub_tree
,
3741 hf_ff_sm_dev_annunc_req_lr_port
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3745 proto_tree_add_item(sub_tree
,
3746 hf_ff_sm_dev_annunc_req_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3750 proto_tree_add_item(sub_tree
,
3751 hf_ff_sm_dev_annunc_req_annunc_ver_num
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
3755 proto_tree_add_item(sub_tree
,
3756 hf_ff_sm_dev_annunc_req_hse_dev_ver_num
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
3760 NumOfEntriesInVerNumList
= tvb_get_ntohl(tvb
, offset
);
3761 proto_tree_add_item(sub_tree
,
3762 hf_ff_sm_dev_annunc_req_num_of_entries
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
3766 if (NumOfEntriesInVerNumList
) {
3768 /* 11111111 11111111 00000000 00000000 */
3769 LinkId
= (guint16
)(FDAAddress
>> 16);
3771 dissect_ff_msg_sm_dev_annunc_req_entries_node_addr(tvb
,
3772 offset
, sub_tree
, NumOfEntriesInVerNumList
);
3774 dissect_ff_msg_sm_dev_annunc_req_entries_link_id(tvb
,
3775 offset
, sub_tree
, NumOfEntriesInVerNumList
);
3778 offset
+= 4 * NumOfEntriesInVerNumList
;
3779 length
-= 4 * NumOfEntriesInVerNumList
;
3783 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
3784 "[Unknown] (%u bytes)", length
);
3793 * 6.5.3.2. FMS Initiate (Confirmed Service Id = 96)
3794 * 6.5.3.2.1. Request Message Parameters
3797 dissect_ff_msg_fms_init_req(tvbuff_t
*tvb
, gint offset
,
3798 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
3800 proto_tree
*sub_tree
;
3803 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Request");
3809 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Initiate Request");
3810 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_init_req
);
3812 proto_tree_add_item(sub_tree
,
3813 hf_ff_fms_init_req_conn_opt
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3817 proto_tree_add_item(sub_tree
,
3818 hf_ff_fms_init_req_access_protection_supported_calling
,
3819 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3823 proto_tree_add_item(sub_tree
,
3824 hf_ff_fms_init_req_passwd_and_access_grps_calling
,
3825 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3829 proto_tree_add_item(sub_tree
,
3830 hf_ff_fms_init_req_ver_od_calling
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3834 proto_tree_add_item(sub_tree
,
3835 hf_ff_fms_init_req_prof_num_calling
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3839 proto_tree_add_item(sub_tree
,
3840 hf_ff_fms_init_req_pd_tag
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
3845 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
3846 "[Unknown] (%u bytes)", length
);
3855 * 6.5.3.2.2. Response Message Parameters
3858 dissect_ff_msg_fms_init_rsp(tvbuff_t
*tvb
, gint offset
,
3859 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
3861 proto_tree
*sub_tree
;
3864 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Response");
3870 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
3871 "FMS Initiate Response");
3872 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_init_rep
);
3874 proto_tree_add_item(sub_tree
,
3875 hf_ff_fms_init_rsp_ver_od_called
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3879 proto_tree_add_item(sub_tree
,
3880 hf_ff_fms_init_rsp_prof_num_called
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3885 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
3886 "[Unknown] (%u bytes)", length
);
3895 * 6.5.3.2.3. Error Message Parameters
3898 dissect_ff_msg_fms_init_err(tvbuff_t
*tvb
, gint offset
,
3899 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
3901 proto_tree
*sub_tree
;
3905 const char *error_code
;
3907 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Error");
3913 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Initiate Error");
3914 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_init_err
);
3916 ErrorClass
= tvb_get_guint8(tvb
, offset
);
3917 proto_tree_add_item(sub_tree
,
3918 hf_ff_fms_init_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3922 ErrorCode
= tvb_get_guint8(tvb
, offset
);
3923 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
3924 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_init_err_err_code
,
3925 tvb
, offset
, 1, ErrorCode
,
3926 "%s (%u)", error_code
, ErrorCode
);
3930 proto_tree_add_item(sub_tree
,
3931 hf_ff_fms_init_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3935 proto_tree_add_item(sub_tree
,
3936 hf_ff_fms_init_err_additional_desc
, tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
3941 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
3942 "[Unknown] (%u bytes)", length
);
3951 * 6.5.3.3. FMS Abort (Unconfirmed Service Id = 112)
3952 * 6.5.3.3.1. Request Message Parameters
3955 dissect_ff_msg_fms_abort_req(tvbuff_t
*tvb
, gint offset
,
3956 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
3958 proto_tree
*sub_tree
;
3961 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Abort Request");
3967 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Abort Request");
3968 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_abort_req
);
3970 proto_tree_add_text(sub_tree
, tvb
, offset
, 16,
3971 "Abort Detail (%u bytes)", 16);
3975 proto_tree_add_item(sub_tree
,
3976 hf_ff_fms_abort_req_abort_id
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3980 proto_tree_add_item(sub_tree
,
3981 hf_ff_fms_abort_req_reason_code
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3985 proto_tree_add_item(sub_tree
,
3986 hf_ff_fms_abort_req_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3991 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
3992 "[Unknown] (%u bytes)", length
);
4001 * 6.5.3.4. FMS Status (Confirmed Service Id = 0)
4002 * 6.5.3.4.1. Request Message Parameters
4005 dissect_ff_msg_fms_status_req(tvbuff_t
*tvb
, gint offset
,
4006 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4008 proto_tree
*sub_tree
;
4011 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Status Request");
4018 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
4019 "FMS Status Request");
4020 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_status_req
);
4022 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4023 "[Unknown] (%u bytes)", length
);
4032 * 6.5.3.4.2. Response Message Parameters
4035 dissect_ff_msg_fms_status_rsp(tvbuff_t
*tvb
, gint offset
,
4036 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4038 proto_tree
*sub_tree
;
4041 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Status Response");
4047 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Status Response");
4048 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_status_rsp
);
4050 proto_tree_add_item(sub_tree
,
4051 hf_ff_fms_status_rsp_logical_status
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4055 proto_tree_add_item(sub_tree
,
4056 hf_ff_fms_status_rsp_physical_status
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4060 proto_tree_add_item(sub_tree
,
4061 hf_ff_fms_status_rsp_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4065 proto_tree_add_text(sub_tree
, tvb
, offset
, 4,
4066 "Local Detail (%u bytes)", 4);
4071 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4072 "[Unknown] (%u bytes)", length
);
4081 * 6.5.3.4.3. Error Message Parameters
4084 dissect_ff_msg_fms_status_err(tvbuff_t
*tvb
, gint offset
,
4085 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4087 proto_tree
*sub_tree
;
4091 const char *error_code
;
4093 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Status Error");
4099 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Status Error");
4100 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_status_err
);
4102 ErrorClass
= tvb_get_guint8(tvb
, offset
);
4103 proto_tree_add_item(sub_tree
,
4104 hf_ff_fms_status_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4108 ErrorCode
= tvb_get_guint8(tvb
, offset
);
4109 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
4110 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_status_err_err_code
,
4111 tvb
, offset
, 1, ErrorCode
,
4112 "%s (%u)", error_code
, ErrorCode
);
4116 proto_tree_add_item(sub_tree
,
4117 hf_ff_fms_status_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4121 proto_tree_add_item(sub_tree
,
4122 hf_ff_fms_status_err_additional_desc
, tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
4127 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4128 "[Unknown] (%u bytes)", length
);
4137 * 6.5.3.5. FMS Unsolicited Status (Unconfirmed Service Id = 1)
4138 * 6.5.3.5.1. Request Message Parameters
4141 dissect_ff_msg_fms_unsolicited_status_req(tvbuff_t
*tvb
, gint offset
,
4142 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4144 proto_tree
*sub_tree
;
4147 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Unsolicited Status Request");
4153 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
4154 "FMS Unsolicited Status Request");
4155 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_unsolicited_status_req
);
4157 proto_tree_add_item(sub_tree
,
4158 hf_ff_fms_unsolicited_status_req_logical_status
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4162 proto_tree_add_item(sub_tree
,
4163 hf_ff_fms_unsolicited_status_req_physical_status
,
4164 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4168 proto_tree_add_item(sub_tree
,
4169 hf_ff_fms_unsolicited_status_req_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4173 proto_tree_add_text(sub_tree
, tvb
, offset
, 4,
4174 "Local Detail (%u bytes)", 4);
4179 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4180 "[Unknown] (%u bytes)", length
);
4189 * 6.5.3.6. FMS Identify (Confirmed Service Id = 1)
4190 * 6.5.3.6.1. Request Message Parameters
4193 dissect_ff_msg_fms_id_req(tvbuff_t
*tvb
, gint offset
,
4194 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4196 proto_tree
*sub_tree
;
4199 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Identify Request");
4206 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
4207 "FMS Identify Request");
4208 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_id_req
);
4210 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4211 "[Unknown] (%u bytes)", length
);
4220 * 6.5.3.6.2. Response Message Parameters
4223 dissect_ff_msg_fms_id_rsp(tvbuff_t
*tvb
, gint offset
,
4224 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4226 proto_tree
*sub_tree
;
4229 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Identify Response");
4235 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
4236 "FMS Identify Response");
4237 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_id_rsp
);
4239 proto_tree_add_item(sub_tree
,
4240 hf_ff_fms_id_rsp_vendor_name
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
4244 proto_tree_add_item(sub_tree
,
4245 hf_ff_fms_id_rsp_model_name
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
4249 proto_tree_add_item(sub_tree
,
4250 hf_ff_fms_id_rsp_revision
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
4255 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4256 "[Unknown] (%u bytes)", length
);
4265 * 6.5.3.6.3. Error Message Parameters
4268 dissect_ff_msg_fms_id_err(tvbuff_t
*tvb
, gint offset
,
4269 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4271 proto_tree
*sub_tree
;
4275 const char *error_code
;
4277 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Identify Error");
4283 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Identify Error");
4284 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_id_err
);
4286 ErrorClass
= tvb_get_guint8(tvb
, offset
);
4287 proto_tree_add_item(sub_tree
,
4288 hf_ff_fms_id_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4292 ErrorCode
= tvb_get_guint8(tvb
, offset
);
4293 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
4294 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_id_err_err_code
,
4295 tvb
, offset
, 1, ErrorCode
,
4296 "%s (%u)", error_code
, ErrorCode
);
4300 proto_tree_add_item(sub_tree
,
4301 hf_ff_fms_id_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4305 proto_tree_add_item(sub_tree
, hf_ff_fms_id_err_additional_desc
,
4306 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
4311 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4312 "[Unknown] (%u bytes)", length
);
4321 * 6.5.3.7. FMS Get OD (Confirmed Service Id = 4)
4322 * 6.5.3.7.1. Request Message Parameters
4325 dissect_ff_msg_fms_get_od_req(tvbuff_t
*tvb
, gint offset
,
4326 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4328 proto_tree
*sub_tree
;
4331 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Get OD Request");
4337 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Get OD Request");
4338 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_get_od_req
);
4340 proto_tree_add_item(sub_tree
,
4341 hf_ff_fms_get_od_req_all_attrs
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4345 proto_tree_add_item(sub_tree
,
4346 hf_ff_fms_get_od_req_start_idx_flag
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4350 proto_tree_add_item(sub_tree
,
4351 hf_ff_fms_get_od_req_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4355 proto_tree_add_item(sub_tree
,
4356 hf_ff_fms_get_od_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
4361 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4362 "[Unknown] (%u bytes)", length
);
4371 * 6.5.3.7.2. Response Message Parameters
4374 dissect_ff_msg_fms_get_od_rsp(tvbuff_t
*tvb
, gint offset
,
4375 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4377 proto_tree
*sub_tree
;
4380 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Get OD Response");
4386 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Get OD Response");
4387 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_get_od_rsp
);
4389 proto_tree_add_item(sub_tree
,
4390 hf_ff_fms_get_od_rsp_more_follows
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4394 proto_tree_add_item(sub_tree
,
4395 hf_ff_fms_get_od_rsp_num_of_obj_desc
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4399 proto_tree_add_item(sub_tree
,
4400 hf_ff_fms_get_od_rsp_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4405 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4406 "List of Object Descriptions (%u bytes)", length
);
4415 * 6.5.3.7.3. Error Message Parameters
4418 dissect_ff_msg_fms_get_od_err(tvbuff_t
*tvb
, gint offset
,
4419 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4421 proto_tree
*sub_tree
;
4425 const char *error_code
;
4427 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Get OD Error");
4433 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Get OD Error");
4434 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_get_od_err
);
4436 ErrorClass
= tvb_get_guint8(tvb
, offset
);
4437 proto_tree_add_item(sub_tree
,
4438 hf_ff_fms_get_od_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4442 ErrorCode
= tvb_get_guint8(tvb
, offset
);
4443 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
4444 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_get_od_err_err_code
,
4445 tvb
, offset
, 1, ErrorCode
,
4446 "%s (%u)", error_code
, ErrorCode
);
4450 proto_tree_add_item(sub_tree
,
4451 hf_ff_fms_get_od_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4455 proto_tree_add_item(sub_tree
, hf_ff_fms_get_od_err_additional_desc
,
4456 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
4461 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4462 "[Unknown] (%u bytes)", length
);
4471 * 6.5.3.8. FMS Initiate Put OD (Confirmed Service Id = 28)
4472 * 6.5.3.8.1. Request Message Parameters
4475 dissect_ff_msg_fms_init_put_od_req(tvbuff_t
*tvb
, gint offset
,
4476 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4478 proto_tree
*sub_tree
;
4481 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Put OD Request");
4487 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
4488 "FMS Initiate Put OD Request");
4489 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_init_put_od_req
);
4491 proto_tree_add_item(sub_tree
,
4492 hf_ff_fms_init_put_od_req_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4496 proto_tree_add_item(sub_tree
,
4497 hf_ff_fms_init_put_od_req_consequence
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4502 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4503 "[Unknown] (%u bytes)", length
);
4512 * 6.5.3.8.2. Response Message Parameters
4515 dissect_ff_msg_fms_init_put_od_rsp(tvbuff_t
*tvb
, gint offset
,
4516 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4518 proto_tree
*sub_tree
;
4521 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Put OD Response");
4528 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
4529 "FMS Initiate Put OD Response");
4530 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_init_put_od_rsp
);
4532 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4533 "[Unknown] (%u bytes)", length
);
4542 * 6.5.3.8.3. Error Message Parameters
4545 dissect_ff_msg_fms_init_put_od_err(tvbuff_t
*tvb
, gint offset
,
4546 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4548 proto_tree
*sub_tree
;
4552 const char *error_code
;
4554 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Put OD Error");
4560 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
4561 "FMS Initiate Put OD Error");
4562 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_init_put_od_err
);
4564 ErrorClass
= tvb_get_guint8(tvb
, offset
);
4565 proto_tree_add_item(sub_tree
,
4566 hf_ff_fms_init_put_od_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4570 ErrorCode
= tvb_get_guint8(tvb
, offset
);
4571 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
4572 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_init_put_od_err_err_code
,
4573 tvb
, offset
, 1, ErrorCode
,
4574 "%s (%u)", error_code
, ErrorCode
);
4578 proto_tree_add_item(sub_tree
,
4579 hf_ff_fms_init_put_od_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4583 proto_tree_add_item(sub_tree
, hf_ff_fms_init_put_od_err_additional_desc
,
4584 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
4589 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4590 "[Unknown] (%u bytes)", length
);
4599 * 6.5.3.9. FMS Put OD (Confirmed Service Id = 29)
4600 * 6.5.3.9.1. Request Message Parameters
4603 dissect_ff_msg_fms_put_od_req(tvbuff_t
*tvb
, gint offset
,
4604 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4606 proto_tree
*sub_tree
;
4609 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Put OD Request");
4615 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Put OD Request");
4616 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_put_od_req
);
4618 proto_tree_add_item(sub_tree
,
4619 hf_ff_fms_put_od_req_num_of_obj_desc
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4623 proto_tree_add_text(sub_tree
, tvb
, offset
, 3, "Reserved (%u bytes)", 3);
4627 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4628 "List of Object Descriptions (%u bytes)", length
);
4636 * 6.5.3.9.2. Response Message Parameters
4639 dissect_ff_msg_fms_put_od_rsp(tvbuff_t
*tvb
, gint offset
,
4640 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4642 proto_tree
*sub_tree
;
4645 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Put OD Response");
4652 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
4653 "FMS Put OD Response");
4654 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_put_od_rsp
);
4656 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4657 "[Unknown] (%u bytes)", length
);
4666 * 6.5.3.9.3. Error Message Parameters
4669 dissect_ff_msg_fms_put_od_err(tvbuff_t
*tvb
, gint offset
,
4670 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4672 proto_tree
*sub_tree
;
4676 const char *error_code
;
4678 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Put OD Error");
4684 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
4685 "FMS Put OD Error");
4686 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_put_od_err
);
4688 ErrorClass
= tvb_get_guint8(tvb
, offset
);
4689 proto_tree_add_item(sub_tree
,
4690 hf_ff_fms_put_od_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4694 ErrorCode
= tvb_get_guint8(tvb
, offset
);
4695 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
4696 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_put_od_err_err_code
,
4697 tvb
, offset
, 1, ErrorCode
,
4698 "%s (%u)", error_code
, ErrorCode
);
4702 proto_tree_add_item(sub_tree
,
4703 hf_ff_fms_put_od_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4707 proto_tree_add_item(sub_tree
, hf_ff_fms_put_od_err_additional_desc
,
4708 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
4713 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4714 "[Unknown] (%u bytes)", length
);
4723 * 6.5.3.10. FMS Terminate Put OD (Confirmed Service Id = 30)
4724 * 6.5.3.10.1. Request Message Parameters
4727 dissect_ff_msg_fms_terminate_put_od_req(tvbuff_t
*tvb
, gint offset
,
4728 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4730 proto_tree
*sub_tree
;
4733 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Terminate Put OD Request");
4740 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
4741 "FMS Terminate Put OD Request");
4742 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_terminate_put_od_req
);
4744 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4745 "[Unknown] (%u bytes)", length
);
4754 * 6.5.3.10.2. Response Message Parameters
4757 dissect_ff_msg_fms_terminate_put_od_rsp(tvbuff_t
*tvb
, gint offset
,
4758 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4760 proto_tree
*sub_tree
;
4763 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Terminate Put OD Response");
4770 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
4771 "FMS Terminate Put OD Response");
4772 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_terminate_put_od_rsp
);
4774 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4775 "[Unknown] (%u bytes)", length
);
4784 * 6.5.3.10.3. Error Message Parameters
4787 dissect_ff_msg_fms_terminate_put_od_err(tvbuff_t
*tvb
, gint offset
,
4788 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4790 proto_tree
*sub_tree
;
4794 const char *error_code
;
4796 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Terminate Put OD Error");
4802 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
4803 "FMS Terminate Put OD Error");
4804 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_terminate_put_od_err
);
4806 proto_tree_add_item(sub_tree
,
4807 hf_ff_fms_terminate_put_od_err_index
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
4811 ErrorClass
= tvb_get_guint8(tvb
, offset
);
4812 proto_tree_add_item(sub_tree
,
4813 hf_ff_fms_terminate_put_od_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4817 ErrorCode
= tvb_get_guint8(tvb
, offset
);
4818 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
4819 proto_tree_add_uint_format_value(sub_tree
,
4820 hf_ff_fms_terminate_put_od_err_err_code
,
4821 tvb
, offset
, 1, ErrorCode
,
4822 "%s (%u)", error_code
, ErrorCode
);
4826 proto_tree_add_item(sub_tree
,
4827 hf_ff_fms_terminate_put_od_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4831 proto_tree_add_item(sub_tree
,
4832 hf_ff_fms_terminate_put_od_err_additional_desc
,
4833 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
4838 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4839 "[Unknown] (%u bytes)", length
);
4848 * 6.5.3.11. FMS Generic Initiate Download Sequence
4849 * (Confirmed Service Id = 31)
4850 * 6.5.3.11.1. Request Message Parameters
4853 dissect_ff_msg_fms_generic_init_download_sequence_req(
4854 tvbuff_t
*tvb
, gint offset
,
4855 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4857 proto_tree
*sub_tree
;
4860 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Generic Initiate Download Sequence Request");
4866 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
4867 "FMS Generic Initiate Download Sequence Request");
4868 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_gen_init_download_seq_req
);
4870 proto_tree_add_item(sub_tree
,
4871 hf_ff_fms_gen_init_download_seq_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
4876 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4877 "[Unknown] (%u bytes)", length
);
4886 * 6.5.3.11.2. Response Message Parameters
4889 dissect_ff_msg_fms_generic_init_download_sequence_rsp(
4890 tvbuff_t
*tvb
, gint offset
,
4891 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4893 proto_tree
*sub_tree
;
4896 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Generic Initiate Download Sequence Response");
4903 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
4904 "FMS Generic Initiate Download Sequence Response");
4905 sub_tree
= proto_item_add_subtree(ti
,
4906 ett_ff_fms_gen_init_download_seq_rep
);
4908 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4909 "[Unknown] (%u bytes)", length
);
4918 * 6.5.3.11.3. Error Message Parameters
4921 dissect_ff_msg_fms_generic_init_download_sequence_err(
4922 tvbuff_t
*tvb
, gint offset
,
4923 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4925 proto_tree
*sub_tree
;
4929 const char *error_code
;
4931 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Generic Initiate Download Sequence Error");
4937 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
4938 "FMS Generic Initiate Download Sequence Error");
4939 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_gen_init_download_seq_err
);
4941 ErrorClass
= tvb_get_guint8(tvb
, offset
);
4942 proto_tree_add_item(sub_tree
,
4943 hf_ff_fms_gen_init_download_seq_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4947 ErrorCode
= tvb_get_guint8(tvb
, offset
);
4948 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
4949 proto_tree_add_uint_format_value(sub_tree
,
4950 hf_ff_fms_gen_init_download_seq_err_err_code
,
4951 tvb
, offset
, 1, ErrorCode
,
4952 "%s (%u)", error_code
, ErrorCode
);
4956 proto_tree_add_item(sub_tree
,
4957 hf_ff_fms_gen_init_download_seq_err_additional_code
,
4958 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4962 proto_tree_add_item(sub_tree
,
4963 hf_ff_fms_gen_init_download_seq_err_additional_desc
,
4964 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
4969 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
4970 "[Unknown] (%u bytes)", length
);
4979 * 6.5.3.12. FMS Generic Download Segment (Confirmed Service Id = 32)
4980 * 6.5.3.12.1. Request Message Parameters
4983 dissect_ff_msg_fms_generic_download_segment_req(
4984 tvbuff_t
*tvb
, gint offset
,
4985 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
4987 proto_tree
*sub_tree
;
4990 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Generic Download Segment Request");
4996 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
4997 "FMS Generic Download Segment Request");
4998 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_gen_download_seg_req
);
5000 proto_tree_add_item(sub_tree
,
5001 hf_ff_fms_gen_download_seg_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
5005 proto_tree_add_item(sub_tree
,
5006 hf_ff_fms_gen_download_seg_req_more_follows
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5010 proto_tree_add_text(sub_tree
, tvb
, offset
, 3, "Reserved (%u bytes)", 3);
5015 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5016 "Load Data (%u bytes)", length
);
5025 * 6.5.3.12.2. Response Message Parameters
5028 dissect_ff_msg_fms_generic_download_segment_rsp(
5029 tvbuff_t
*tvb
, gint offset
,
5030 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5032 proto_tree
*sub_tree
;
5035 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Generic Download Segment Response");
5042 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5043 "FMS Generic Download Segment Response");
5044 sub_tree
= proto_item_add_subtree(ti
,
5045 ett_ff_fms_gen_download_seg_rsp
);
5047 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5048 "[Unknown] (%u bytes)", length
);
5057 * 6.5.3.12.3. Error Message Parameters
5060 dissect_ff_msg_fms_generic_download_segment_err(
5061 tvbuff_t
*tvb
, gint offset
,
5062 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5064 proto_tree
*sub_tree
;
5068 const char *error_code
;
5070 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Generic Download Segment Error");
5076 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5077 "FMS Generic Download Segment Error");
5078 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_gen_download_seg_err
);
5080 ErrorClass
= tvb_get_guint8(tvb
, offset
);
5081 proto_tree_add_item(sub_tree
,
5082 hf_ff_fms_gen_download_seg_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5086 ErrorCode
= tvb_get_guint8(tvb
, offset
);
5087 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
5088 proto_tree_add_uint_format_value(sub_tree
,
5089 hf_ff_fms_gen_download_seg_err_err_code
,
5090 tvb
, offset
, 1, ErrorCode
,
5091 "%s (%u)", error_code
, ErrorCode
);
5095 proto_tree_add_item(sub_tree
,
5096 hf_ff_fms_gen_download_seg_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
5100 proto_tree_add_item(sub_tree
,
5101 hf_ff_fms_gen_download_seg_err_additional_desc
,
5102 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
5107 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5108 "[Unknown] (%u bytes)", length
);
5117 * 6.5.3.13. FMS Generic Terminate Download Sequence
5118 * (Confirmed Service Id = 33)
5119 * 6.5.3.13.1. Request Message Parameters
5122 dissect_ff_msg_fms_generic_terminate_download_sequence_req(
5123 tvbuff_t
*tvb
, gint offset
,
5124 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5126 proto_tree
*sub_tree
;
5129 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Generic Terminate Download Sequence Request");
5135 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5136 "FMS Generic Terminate Download Sequence Request");
5137 sub_tree
= proto_item_add_subtree(ti
,
5138 ett_ff_fms_gen_terminate_download_seq_req
);
5140 proto_tree_add_item(sub_tree
,
5141 hf_ff_fms_gen_terminate_download_seq_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
5146 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5147 "[Unknown] (%u bytes)", length
);
5156 * 6.5.3.13.2. Response Message Parameters
5159 dissect_ff_msg_fms_generic_terminate_download_sequence_rsp(
5160 tvbuff_t
*tvb
, gint offset
,
5161 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5163 proto_tree
*sub_tree
;
5166 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Generic Terminate Download Sequence Response");
5172 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5173 "FMS Generic Terminate Download Sequence Response");
5174 sub_tree
= proto_item_add_subtree(ti
,
5175 ett_ff_fms_gen_terminate_download_seq_rsp
);
5177 proto_tree_add_item(sub_tree
,
5178 hf_ff_fms_gen_terminate_download_seq_rsp_final_result
,
5179 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5183 proto_tree_add_text(sub_tree
, tvb
, offset
, 3, "Reserved (%u bytes)", 3);
5188 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5189 "[Unknown] (%u bytes)", length
);
5198 * 6.5.3.13.3. Error Message Parameters
5201 dissect_ff_msg_fms_generic_terminate_download_sequence_err(
5202 tvbuff_t
*tvb
, gint offset
,
5203 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5205 proto_tree
*sub_tree
;
5209 const char *error_code
;
5211 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Generic Terminate Download Sequence Error");
5217 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5218 "FMS Generic Terminate Download Sequence Error");
5219 sub_tree
= proto_item_add_subtree(ti
,
5220 ett_ff_fms_gen_terminate_download_seq_err
);
5222 ErrorClass
= tvb_get_guint8(tvb
, offset
);
5223 proto_tree_add_item(sub_tree
,
5224 hf_ff_fms_gen_terminate_download_seq_err_err_class
,
5225 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5229 ErrorCode
= tvb_get_guint8(tvb
, offset
);
5230 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
5231 proto_tree_add_uint_format_value(sub_tree
,
5232 hf_ff_fms_gen_terminate_download_seq_err_err_code
,
5233 tvb
, offset
, 1, ErrorCode
,
5234 "%s (%u)", error_code
, ErrorCode
);
5238 proto_tree_add_item(sub_tree
,
5239 hf_ff_fms_gen_terminate_download_seq_err_additional_code
,
5240 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
5244 proto_tree_add_item(sub_tree
,
5245 hf_ff_fms_gen_terminate_download_seq_err_additional_desc
,
5246 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
5251 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5252 "[Unknown] (%u bytes)", length
);
5261 * 6.5.3.14. FMS Initiate Download Sequence (Confirmed Service Id = 9)
5262 * 6.5.3.14.1. Request Message Parameters
5265 dissect_ff_msg_fms_init_download_sequence_req(
5266 tvbuff_t
*tvb
, gint offset
,
5267 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5269 proto_tree
*sub_tree
;
5272 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Download Sequence Request");
5278 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5279 "FMS Initiate Download Sequence Request");
5280 sub_tree
= proto_item_add_subtree(ti
,
5281 ett_ff_fms_init_download_seq_req
);
5283 proto_tree_add_item(sub_tree
,
5284 hf_ff_fms_init_download_seq_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
5289 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5290 "[Unknown] (%u bytes)", length
);
5299 * 6.5.3.14.2. Response Message Parameters
5302 dissect_ff_msg_fms_init_download_sequence_rsp(
5303 tvbuff_t
*tvb
, gint offset
,
5304 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5306 proto_tree
*sub_tree
;
5309 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Download Sequence Response");
5316 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5317 "FMS Initiate Download Sequence Response");
5318 sub_tree
= proto_item_add_subtree(ti
,
5319 ett_ff_fms_init_download_seq_rsp
);
5321 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5322 "[Unknown] (%u bytes)", length
);
5331 * 6.5.3.14.3. Error Message Parameters
5334 dissect_ff_msg_fms_init_download_sequence_err(
5335 tvbuff_t
*tvb
, gint offset
,
5336 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5338 proto_tree
*sub_tree
;
5342 const char *error_code
;
5344 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Download Sequence Error");
5350 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5351 "FMS Initiate Download Sequence Error");
5352 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_init_download_seq_err
);
5354 ErrorClass
= tvb_get_guint8(tvb
, offset
);
5355 proto_tree_add_item(sub_tree
,
5356 hf_ff_fms_init_download_seq_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5360 ErrorCode
= tvb_get_guint8(tvb
, offset
);
5361 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
5362 proto_tree_add_uint_format_value(sub_tree
,
5363 hf_ff_fms_init_download_seq_err_err_code
,
5364 tvb
, offset
, 1, ErrorCode
,
5365 "%s (%u)", error_code
, ErrorCode
);
5369 proto_tree_add_item(sub_tree
,
5370 hf_ff_fms_init_download_seq_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
5374 proto_tree_add_item(sub_tree
,
5375 hf_ff_fms_init_download_seq_err_additional_desc
,
5376 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
5381 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5382 "[Unknown] (%u bytes)", length
);
5391 * 6.5.3.15. FMS Download Segment (Confirmed Service Id = 10)
5392 * 6.5.3.15.1. Request Message Parameters
5395 dissect_ff_msg_fms_download_segment_req(tvbuff_t
*tvb
, gint offset
,
5396 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5398 proto_tree
*sub_tree
;
5401 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Download Segment Request");
5407 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5408 "FMS Download Segment Request");
5409 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_download_seg_req
);
5411 proto_tree_add_item(sub_tree
,
5412 hf_ff_fms_download_seg_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
5417 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5418 "[Unknown] (%u bytes)", length
);
5427 * 6.5.3.15.2. Response Message Parameters
5430 dissect_ff_msg_fms_download_segment_rsp(tvbuff_t
*tvb
, gint offset
,
5431 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5433 proto_tree
*sub_tree
;
5436 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Download Segment Response");
5442 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5443 "FMS Download Segment Response");
5444 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_download_seg_rsp
);
5446 proto_tree_add_item(sub_tree
,
5447 hf_ff_fms_download_seg_rsp_more_follows
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5451 proto_tree_add_text(sub_tree
, tvb
, offset
, 3, "Reserved (%u bytes)", 3);
5456 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5457 "Load Data (%u bytes)", length
);
5466 * 6.5.3.15.3. Error Message Parameters
5469 dissect_ff_msg_fms_download_segment_err(tvbuff_t
*tvb
, gint offset
,
5470 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5472 proto_tree
*sub_tree
;
5476 const char *error_code
;
5478 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Download Segment Error");
5484 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5485 "FMS Download Segment Error");
5486 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_download_seg_err
);
5488 ErrorClass
= tvb_get_guint8(tvb
, offset
);
5489 proto_tree_add_item(sub_tree
,
5490 hf_ff_fms_download_seg_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5494 ErrorCode
= tvb_get_guint8(tvb
, offset
);
5495 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
5496 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_download_seg_err_err_code
,
5497 tvb
, offset
, 1, ErrorCode
,
5498 "%s (%u)", error_code
, ErrorCode
);
5502 proto_tree_add_item(sub_tree
,
5503 hf_ff_fms_download_seg_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
5507 proto_tree_add_item(sub_tree
,
5508 hf_ff_fms_download_seg_err_additional_desc
,
5509 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
5514 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5515 "[Unknown] (%u bytes)", length
);
5524 * 6.5.3.16. FMS Terminate Download Sequence (Confirmed Service Id = 11)
5525 * 6.5.3.16.1. Request Message Parameters
5528 dissect_ff_msg_fms_terminate_download_sequence_req(
5529 tvbuff_t
*tvb
, gint offset
,
5530 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5532 proto_tree
*sub_tree
;
5535 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Terminate Download Sequence Request");
5541 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5542 "FMS Terminate Download Sequence Request");
5543 sub_tree
= proto_item_add_subtree(ti
,
5544 ett_ff_fms_terminate_download_seq_req
);
5546 proto_tree_add_item(sub_tree
,
5547 hf_ff_fms_terminate_download_seq_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
5551 proto_tree_add_text(sub_tree
, tvb
, offset
, 3, "Reserved (%u bytes)", 3);
5555 proto_tree_add_item(sub_tree
,
5556 hf_ff_fms_terminate_download_seq_req_final_result
,
5557 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5562 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5563 "[Unknown] (%u bytes)", length
);
5572 * 6.5.3.16.2. Response Message Parameters
5575 dissect_ff_msg_fms_terminate_download_sequence_rsp(
5576 tvbuff_t
*tvb
, gint offset
,
5577 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5579 proto_tree
*sub_tree
;
5582 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Terminate Download Sequence Response");
5589 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5590 "FMS Terminate Download Sequence Response");
5591 sub_tree
= proto_item_add_subtree(ti
,
5592 ett_ff_fms_terminate_download_seq_rsp
);
5594 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5595 "[Unknown] (%u bytes)", length
);
5604 * 6.5.3.16.3. Error Message Parameters
5607 dissect_ff_msg_fms_terminate_download_sequence_err(
5608 tvbuff_t
*tvb
, gint offset
,
5609 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5611 proto_tree
*sub_tree
;
5615 const char *error_code
;
5617 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Terminate Download Sequence Error");
5623 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5624 "FMS Terminate Download Sequence Error");
5625 sub_tree
= proto_item_add_subtree(ti
,
5626 ett_ff_fms_terminate_download_seq_err
);
5628 ErrorClass
= tvb_get_guint8(tvb
, offset
);
5629 proto_tree_add_item(sub_tree
,
5630 hf_ff_fms_terminate_download_seq_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5634 ErrorCode
= tvb_get_guint8(tvb
, offset
);
5635 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
5636 proto_tree_add_uint_format_value(sub_tree
,
5637 hf_ff_fms_terminate_download_seq_err_err_code
,
5638 tvb
, offset
, 1, ErrorCode
,
5639 "%s (%u)", error_code
, ErrorCode
);
5643 proto_tree_add_item(sub_tree
,
5644 hf_ff_fms_terminate_download_seq_err_additional_code
,
5645 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
5649 proto_tree_add_item(sub_tree
,
5650 hf_ff_fms_terminate_download_seq_err_additional_desc
,
5651 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
5656 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5657 "[Unknown] (%u bytes)", length
);
5666 * 6.5.3.17. FMS Initiate Upload Sequence (Confirmed Service Id = 12)
5667 * 6.5.3.17.1. Request Message Parameters
5670 dissect_ff_msg_fms_init_upload_seq_req(
5671 tvbuff_t
*tvb
, gint offset
,
5672 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5674 proto_tree
*sub_tree
;
5677 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Upload Sequence Request");
5683 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5684 "FMS Initiate Upload Sequence Request");
5685 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_init_upload_seq_req
);
5687 proto_tree_add_item(sub_tree
,
5688 hf_ff_fms_init_upload_seq_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
5693 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5694 "[Unknown] (%u bytes)", length
);
5703 * 6.5.3.17.2. Response Message Parameters
5706 dissect_ff_msg_fms_init_upload_seq_rsp(
5707 tvbuff_t
*tvb
, gint offset
,
5708 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5710 proto_tree
*sub_tree
;
5713 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Upload Sequence Response");
5720 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5721 "FMS Initiate Upload Sequence Response");
5722 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_init_upload_seq_rsp
);
5724 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5725 "[Unknown] (%u bytes)", length
);
5734 * 6.5.3.17.3. Error Message Parameters
5737 dissect_ff_msg_fms_init_upload_seq_err(
5738 tvbuff_t
*tvb
, gint offset
,
5739 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5741 proto_tree
*sub_tree
;
5745 const char *error_code
;
5747 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Upload Sequence Error");
5753 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5754 "FMS Initiate Upload Sequence Error");
5755 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_init_upload_seq_err
);
5757 ErrorClass
= tvb_get_guint8(tvb
, offset
);
5758 proto_tree_add_item(sub_tree
,
5759 hf_ff_fms_init_upload_seq_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5763 ErrorCode
= tvb_get_guint8(tvb
, offset
);
5764 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
5765 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_init_upload_seq_err_err_code
,
5766 tvb
, offset
, 1, ErrorCode
,
5767 "%s (%u)", error_code
, ErrorCode
);
5771 proto_tree_add_item(sub_tree
,
5772 hf_ff_fms_init_upload_seq_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
5776 proto_tree_add_item(sub_tree
, hf_ff_fms_init_upload_seq_err_additional_desc
,
5777 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
5782 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5783 "[Unknown] (%u bytes)", length
);
5792 * 6.5.3.18. FMS Upload Segment (Confirmed Service Id = 13)
5793 * 6.5.3.18.1. Request Message Parameters
5796 dissect_ff_msg_fms_upload_segment_req(tvbuff_t
*tvb
, gint offset
,
5797 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5799 proto_tree
*sub_tree
;
5802 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Upload Segment Request");
5808 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5809 "FMS Upload Segment Request");
5810 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_upload_seg_req
);
5812 proto_tree_add_item(sub_tree
,
5813 hf_ff_fms_upload_seg_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
5818 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5819 "[Unknown] (%u bytes)", length
);
5828 * 6.5.3.18.2. Response Message Parameters
5831 dissect_ff_msg_fms_upload_segment_rsp(tvbuff_t
*tvb
, gint offset
,
5832 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5834 proto_tree
*sub_tree
;
5837 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Upload Segment Response");
5843 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5844 "FMS Upload Segment Response");
5845 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_upload_seg_rsp
);
5847 proto_tree_add_item(sub_tree
,
5848 hf_ff_fms_upload_seg_rsp_more_follows
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5852 proto_tree_add_text(sub_tree
, tvb
, offset
, 3, "Reserved (%u bytes)", 3);
5857 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5858 "Final Result (%u bytes)", length
);
5867 * 6.5.3.18.3. Error Message Parameters
5870 dissect_ff_msg_fms_upload_segment_err(tvbuff_t
*tvb
, gint offset
,
5871 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5873 proto_tree
*sub_tree
;
5877 const char *error_code
;
5879 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Upload Segment Error");
5885 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5886 "FMS Upload Segment Error");
5887 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_upload_seg_err
);
5889 ErrorClass
= tvb_get_guint8(tvb
, offset
);
5890 proto_tree_add_item(sub_tree
,
5891 hf_ff_fms_upload_seg_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5895 ErrorCode
= tvb_get_guint8(tvb
, offset
);
5896 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
5897 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_upload_seg_err_err_code
,
5898 tvb
, offset
, 1, ErrorCode
,
5899 "%s (%u)", error_code
, ErrorCode
);
5903 proto_tree_add_item(sub_tree
,
5904 hf_ff_fms_upload_seg_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
5908 proto_tree_add_item(sub_tree
,
5909 hf_ff_fms_upload_seg_err_additional_desc
,
5910 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
5915 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5916 "[Unknown] (%u bytes)", length
);
5925 * 6.5.3.19. FMS Terminate Upload Sequence (Confirmed Service Id = 14)
5926 * 6.5.3.19.1. Request Message Parameters
5929 dissect_ff_msg_fms_terminate_upload_seq_req(
5930 tvbuff_t
*tvb
, gint offset
,
5931 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5933 proto_tree
*sub_tree
;
5936 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Terminate Upload Sequence Request");
5942 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5943 "FMS Terminate Upload Sequence Request");
5944 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_terminate_upload_seq_req
);
5946 proto_tree_add_item(sub_tree
,
5947 hf_ff_fms_terminate_upload_seq_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
5952 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5953 "[Unknown] (%u bytes)", length
);
5962 * 6.5.3.19.2. Response Message Parameters
5965 dissect_ff_msg_fms_terminate_upload_seq_rsp(
5966 tvbuff_t
*tvb
, gint offset
,
5967 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
5969 proto_tree
*sub_tree
;
5972 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Terminate Upload Sequence Response");
5979 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
5980 "FMS Terminate Upload Sequence Response");
5981 sub_tree
= proto_item_add_subtree(ti
,
5982 ett_ff_fms_terminate_upload_seq_rsp
);
5984 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
5985 "[Unknown] (%u bytes)", length
);
5994 * 6.5.3.19.3. Error Message Parameters
5997 dissect_ff_msg_fms_terminate_upload_seq_err(
5998 tvbuff_t
*tvb
, gint offset
,
5999 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6001 proto_tree
*sub_tree
;
6005 const char *error_code
;
6007 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Terminate Upload Sequence Error");
6013 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
6014 "FMS Terminate Upload Sequence Error");
6015 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_terminate_upload_seq_err
);
6017 ErrorClass
= tvb_get_guint8(tvb
, offset
);
6018 proto_tree_add_item(sub_tree
,
6019 hf_ff_fms_terminate_upload_seq_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6023 ErrorCode
= tvb_get_guint8(tvb
, offset
);
6024 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
6025 proto_tree_add_uint_format_value(sub_tree
,
6026 hf_ff_fms_terminate_upload_seq_err_err_code
,
6027 tvb
, offset
, 1, ErrorCode
,
6028 "%s (%u)", error_code
, ErrorCode
);
6032 proto_tree_add_item(sub_tree
,
6033 hf_ff_fms_terminate_upload_seq_err_additional_code
,
6034 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
6038 proto_tree_add_item(sub_tree
,
6039 hf_ff_fms_terminate_upload_seq_err_additional_desc
,
6040 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
6045 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
6046 "[Unknown] (%u bytes)", length
);
6055 * 6.5.3.20. FMS Request Domain Download (Confirmed Service Id = 15)
6056 * 6.5.3.20.1. Request Message Parameters
6059 dissect_ff_msg_fms_req_dom_download_req(
6060 tvbuff_t
*tvb
, gint offset
,
6061 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6063 proto_tree
*sub_tree
;
6066 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Request Domain Download Request");
6072 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
6073 "FMS Request Domain Download Request");
6074 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_req_dom_download_req
);
6076 proto_tree_add_item(sub_tree
,
6077 hf_ff_fms_req_dom_download_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
6082 proto_tree_add_item(sub_tree
,
6083 hf_ff_fms_req_dom_download_req_additional_info
,
6084 tvb
, offset
, length
, ENC_ASCII
|ENC_NA
);
6093 * 6.5.3.20.2. Response Message Parameters
6096 dissect_ff_msg_fms_req_dom_download_rsp(
6097 tvbuff_t
*tvb
, gint offset
,
6098 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6100 proto_tree
*sub_tree
;
6103 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Request Domain Download Response");
6110 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
6111 "FMS Request Domain Download Response");
6112 sub_tree
= proto_item_add_subtree(ti
,
6113 ett_ff_fms_req_dom_download_rsp
);
6115 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
6116 "[Unknown] (%u bytes)", length
);
6125 * 6.5.3.20.3. Error Message Parameters
6128 dissect_ff_msg_fms_req_dom_download_err(
6129 tvbuff_t
*tvb
, gint offset
,
6130 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6132 proto_tree
*sub_tree
;
6136 const char *error_code
;
6138 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Request Domain Download Error");
6144 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
6145 "FMS Request Domain Download Error");
6146 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_req_dom_download_err
);
6148 ErrorClass
= tvb_get_guint8(tvb
, offset
);
6149 proto_tree_add_item(sub_tree
,
6150 hf_ff_fms_req_dom_download_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6154 ErrorCode
= tvb_get_guint8(tvb
, offset
);
6155 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
6156 proto_tree_add_uint_format_value(sub_tree
,
6157 hf_ff_fms_req_dom_download_err_err_code
,
6158 tvb
, offset
, 1, ErrorCode
,
6159 "%s (%u)", error_code
, ErrorCode
);
6163 proto_tree_add_item(sub_tree
,
6164 hf_ff_fms_req_dom_download_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
6168 proto_tree_add_item(sub_tree
,
6169 hf_ff_fms_req_dom_download_err_additional_desc
,
6170 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
6175 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
6176 "[Unknown] (%u bytes)", length
);
6185 * 6.5.3.21. FMS Request Domain Upload (Confirmed Service Id = 16)
6186 * 6.5.3.21.1. Request Message Parameters
6189 dissect_ff_msg_fms_req_dom_upload_req(
6190 tvbuff_t
*tvb
, gint offset
,
6191 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6193 proto_tree
*sub_tree
;
6196 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Request Domain Upload Request");
6202 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
6203 "FMS Request Domain Upload Request");
6204 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_req_dom_upload_req
);
6206 proto_tree_add_item(sub_tree
,
6207 hf_ff_fms_req_dom_upload_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
6212 proto_tree_add_item(sub_tree
,
6213 hf_ff_fms_req_dom_upload_req_additional_info
,
6214 tvb
, offset
, length
, ENC_ASCII
|ENC_NA
);
6223 * 6.5.3.21.2. Response Message Parameters
6226 dissect_ff_msg_fms_req_dom_upload_rsp(
6227 tvbuff_t
*tvb
, gint offset
,
6228 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6230 proto_tree
*sub_tree
;
6233 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Request Domain Upload Response");
6240 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
6241 "FMS Request Domain Upload Response");
6242 sub_tree
= proto_item_add_subtree(ti
,
6243 ett_ff_fms_req_dom_upload_rsp
);
6245 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
6246 "[Unknown] (%u bytes)", length
);
6255 * 6.5.3.21.3. Error Message Parameters
6258 dissect_ff_msg_fms_req_dom_upload_err(
6259 tvbuff_t
*tvb
, gint offset
,
6260 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6262 proto_tree
*sub_tree
;
6266 const char *error_code
;
6268 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Request Domain Upload Error");
6274 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
6275 "FMS Request Domain Upload Error");
6276 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_req_dom_upload_err
);
6278 ErrorClass
= tvb_get_guint8(tvb
, offset
);
6279 proto_tree_add_item(sub_tree
,
6280 hf_ff_fms_req_dom_upload_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6284 ErrorCode
= tvb_get_guint8(tvb
, offset
);
6285 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
6286 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_req_dom_upload_err_err_code
,
6287 tvb
, offset
, 1, ErrorCode
,
6288 "%s (%u)", error_code
, ErrorCode
);
6292 proto_tree_add_item(sub_tree
,
6293 hf_ff_fms_req_dom_upload_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
6297 proto_tree_add_item(sub_tree
,
6298 hf_ff_fms_req_dom_upload_err_additional_desc
,
6299 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
6304 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
6305 "[Unknown] (%u bytes)", length
);
6314 * 6.5.3.22. FMS Create Program Invocation (Confirmed Service Id = 17)
6315 * 6.5.3.22.1. Request Message Parameters
6318 dissect_ff_msg_fms_create_pi_req_dom_idxes(tvbuff_t
*tvb
,
6319 gint offset
, proto_tree
*tree
, guint16 value
)
6321 proto_tree
*sub_tree
;
6329 ti
= proto_tree_add_text(tree
, tvb
, offset
, 4 * value
,
6330 "List Of Domain Indexes (%u bytes)", 4 * value
);
6331 sub_tree
= proto_item_add_subtree(ti
,
6332 ett_ff_fms_create_pi_req_list_of_dom_idxes
);
6334 for (d
= 0; d
< value
; d
++) {
6335 proto_tree_add_item(sub_tree
,
6336 hf_ff_fms_create_pi_req_dom_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
6347 dissect_ff_msg_fms_create_pi_req(tvbuff_t
*tvb
, gint offset
,
6348 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6350 proto_tree
*sub_tree
;
6352 guint16 NumOfDomIdxes
;
6354 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Create Program Invocation Request");
6360 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
6361 "FMS Create Program Invocation Request");
6362 sub_tree
= proto_item_add_subtree(ti
,
6363 ett_ff_fms_create_pi_req
);
6365 proto_tree_add_item(sub_tree
,
6366 hf_ff_fms_create_pi_req_reusable
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6370 proto_tree_add_item(sub_tree
,
6371 hf_ff_fms_create_pi_req_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6375 NumOfDomIdxes
= tvb_get_ntohs(tvb
, offset
);
6376 proto_tree_add_item(sub_tree
,
6377 hf_ff_fms_create_pi_req_num_of_dom_idxes
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
6381 if (NumOfDomIdxes
) {
6382 dissect_ff_msg_fms_create_pi_req_dom_idxes(tvb
,
6383 offset
, sub_tree
, NumOfDomIdxes
);
6385 offset
+= 4 * NumOfDomIdxes
;
6386 length
-= 4 * NumOfDomIdxes
;
6390 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
6391 "[Unknown] (%u bytes)", length
);
6400 * 6.5.3.22.2. Response Message Parameters
6403 dissect_ff_msg_fms_create_pi_rsp(tvbuff_t
*tvb
, gint offset
,
6404 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6406 proto_tree
*sub_tree
;
6409 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Create Program Invocation Response");
6415 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
6416 "FMS Create Program Invocation Response");
6417 sub_tree
= proto_item_add_subtree(ti
,
6418 ett_ff_fms_create_pi_rsp
);
6420 proto_tree_add_item(sub_tree
,
6421 hf_ff_fms_create_pi_rsp_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
6426 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
6427 "[Unknown] (%u bytes)", length
);
6436 * 6.5.3.22.3. Error Message Parameters
6439 dissect_ff_msg_fms_create_pi_err(tvbuff_t
*tvb
, gint offset
,
6440 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6442 proto_tree
*sub_tree
;
6446 const char *error_code
;
6448 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Create Program Invocation Error");
6454 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
6455 "FMS Create Program Invocation Error");
6456 sub_tree
= proto_item_add_subtree(ti
,
6457 ett_ff_fms_create_pi_err
);
6459 ErrorClass
= tvb_get_guint8(tvb
, offset
);
6460 proto_tree_add_item(sub_tree
,
6461 hf_ff_fms_create_pi_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6465 ErrorCode
= tvb_get_guint8(tvb
, offset
);
6466 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
6467 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_create_pi_err_err_code
,
6468 tvb
, offset
, 1, ErrorCode
,
6469 "%s (%u)", error_code
, ErrorCode
);
6473 proto_tree_add_item(sub_tree
,
6474 hf_ff_fms_create_pi_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
6478 proto_tree_add_item(sub_tree
,
6479 hf_ff_fms_create_pi_err_additional_desc
,
6480 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
6485 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
6486 "[Unknown] (%u bytes)", length
);
6495 * 6.5.3.23. FMS Delete Program Invocation (Confirmed Service Id = 18)
6496 * 6.5.3.23.1. Request Message Parameters
6499 dissect_ff_msg_fms_del_pi_req(tvbuff_t
*tvb
, gint offset
,
6500 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6502 proto_tree
*sub_tree
;
6505 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Delete Program Invocation Request");
6511 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
6512 "FMS Delete Program Invocation Request");
6513 sub_tree
= proto_item_add_subtree(ti
,
6514 ett_ff_fms_del_pi_req
);
6516 proto_tree_add_item(sub_tree
,
6517 hf_ff_fms_del_pi_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
6522 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
6523 "[Unknown] (%u bytes)", length
);
6532 * 6.5.3.23.2. Response Message Parameters
6535 dissect_ff_msg_fms_del_pi_rsp(tvbuff_t
*tvb
, gint offset
,
6536 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6538 proto_tree
*sub_tree
;
6541 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Delete Program Invocation Response");
6548 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
6549 "FMS Delete Program Invocation Response");
6550 sub_tree
= proto_item_add_subtree(ti
,
6551 ett_ff_fms_del_pi_rsp
);
6553 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
6554 "[Unknown] (%u bytes)", length
);
6563 * 6.5.3.23.3. Error Message Parameters
6566 dissect_ff_msg_fms_del_pi_err(tvbuff_t
*tvb
, gint offset
,
6567 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6569 proto_tree
*sub_tree
;
6573 const char *error_code
;
6575 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Delete Program Invocation Error");
6581 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
6582 "FMS Delete Program Invocation Error");
6583 sub_tree
= proto_item_add_subtree(ti
,
6584 ett_ff_fms_del_pi_err
);
6586 ErrorClass
= tvb_get_guint8(tvb
, offset
);
6587 proto_tree_add_item(sub_tree
,
6588 hf_ff_fms_del_pi_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6592 ErrorCode
= tvb_get_guint8(tvb
, offset
);
6593 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
6594 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_del_pi_err_err_code
,
6595 tvb
, offset
, 1, ErrorCode
,
6596 "%s (%u)", error_code
, ErrorCode
);
6600 proto_tree_add_item(sub_tree
,
6601 hf_ff_fms_del_pi_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
6605 proto_tree_add_item(sub_tree
,
6606 hf_ff_fms_del_pi_err_additional_desc
,
6607 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
6612 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
6613 "[Unknown] (%u bytes)", length
);
6622 * 6.5.3.24. FMS Start (Confirmed Service Id = 19)
6623 * 6.5.3.24.1. Request Message Parameters
6626 dissect_ff_msg_fms_start_pi_req(tvbuff_t
*tvb
, gint offset
,
6627 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6629 proto_tree
*sub_tree
;
6632 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Start Request");
6638 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Start Request");
6639 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_start_req
);
6641 proto_tree_add_item(sub_tree
,
6642 hf_ff_fms_start_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
6647 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
6648 "Execution Argument (%u bytes)", length
);
6657 * 6.5.3.24.2. Response Message Parameters
6660 dissect_ff_msg_fms_start_pi_rsp(tvbuff_t
*tvb
, gint offset
,
6661 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6663 proto_tree
*sub_tree
;
6666 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Start Response");
6673 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
6674 "FMS Start Response");
6675 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_start_rsp
);
6677 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
6678 "[Unknown] (%u bytes)", length
);
6687 * 6.5.3.24.3. PI Error Message Parameters
6690 dissect_ff_msg_fms_start_pi_err(tvbuff_t
*tvb
, gint offset
,
6691 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6693 proto_tree
*sub_tree
;
6697 const char *error_code
;
6699 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Start Error");
6705 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Start Error");
6706 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_start_err
);
6708 proto_tree_add_item(sub_tree
,
6709 hf_ff_fms_start_err_pi_state
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6713 proto_tree_add_text(sub_tree
, tvb
, offset
, 3, "Reserved (%u bytes)", 3);
6717 ErrorClass
= tvb_get_guint8(tvb
, offset
);
6718 proto_tree_add_item(sub_tree
,
6719 hf_ff_fms_start_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6723 ErrorCode
= tvb_get_guint8(tvb
, offset
);
6724 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
6725 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_start_err_err_code
,
6726 tvb
, offset
, 1, ErrorCode
,
6727 "%s (%u)", error_code
, ErrorCode
);
6731 proto_tree_add_item(sub_tree
,
6732 hf_ff_fms_start_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
6736 proto_tree_add_item(sub_tree
, hf_ff_fms_start_err_additional_desc
,
6737 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
6742 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
6743 "[Unknown] (%u bytes)", length
);
6752 * 6.5.3.25. FMS Stop (Confirmed Service Id = 20)
6753 * 6.5.3.25.1. Request Message Parameters
6756 dissect_ff_msg_fms_stop_pi_req(tvbuff_t
*tvb
, gint offset
,
6757 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6759 proto_tree
*sub_tree
;
6762 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Stop Request");
6768 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Stop Request");
6769 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_stop_req
);
6771 proto_tree_add_item(sub_tree
,
6772 hf_ff_fms_stop_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
6777 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
6778 "[Unknown] (%u bytes)", length
);
6787 * 6.5.3.25.2. Response Message Parameters
6790 dissect_ff_msg_fms_stop_pi_rsp(tvbuff_t
*tvb
, gint offset
,
6791 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6793 proto_tree
*sub_tree
;
6796 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Stop Response");
6803 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
6804 "FMS Stop Response");
6805 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_stop_rsp
);
6807 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
6808 "[Unknown] (%u bytes)", length
);
6817 * 6.5.3.25.3. Error Message Parameters
6820 dissect_ff_msg_fms_stop_pi_err(tvbuff_t
*tvb
, gint offset
,
6821 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6823 proto_tree
*sub_tree
;
6827 const char *error_code
;
6829 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Stop Error");
6835 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Stop Error");
6836 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_stop_err
);
6838 proto_tree_add_item(sub_tree
,
6839 hf_ff_fms_stop_err_pi_state
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6843 proto_tree_add_text(sub_tree
, tvb
, offset
, 3, "Reserved (%u bytes)", 3);
6847 ErrorClass
= tvb_get_guint8(tvb
, offset
);
6848 proto_tree_add_item(sub_tree
,
6849 hf_ff_fms_stop_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6853 ErrorCode
= tvb_get_guint8(tvb
, offset
);
6854 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
6855 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_stop_err_err_code
,
6856 tvb
, offset
, 1, ErrorCode
,
6857 "%s (%u)", error_code
, ErrorCode
);
6861 proto_tree_add_item(sub_tree
,
6862 hf_ff_fms_stop_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
6866 proto_tree_add_item(sub_tree
, hf_ff_fms_stop_err_additional_desc
,
6867 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
6872 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
6873 "[Unknown] (%u bytes)", length
);
6882 * 6.5.3.26. FMS Resume (Confirmed Service Id = 21)
6883 * 6.5.3.26.1. Request Message Parameters
6886 dissect_ff_msg_fms_resume_pi_req(tvbuff_t
*tvb
, gint offset
,
6887 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6889 proto_tree
*sub_tree
;
6892 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Resume Request");
6898 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Resume Request");
6899 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_resume_req
);
6901 proto_tree_add_item(sub_tree
,
6902 hf_ff_fms_resume_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
6907 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
6908 "Execution Argument (%u bytes)", length
);
6917 * 6.5.3.26.2. Response Message Parameters
6920 dissect_ff_msg_fms_resume_pi_rsp(tvbuff_t
*tvb
, gint offset
,
6921 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6923 proto_tree
*sub_tree
;
6926 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Resume Response");
6933 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
6934 "FMS Resume Response");
6935 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_resume_rsp
);
6937 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
6938 "[Unknown] (%u bytes)", length
);
6947 * 6.5.3.26.3. Error Message Parameters
6950 dissect_ff_msg_fms_resume_pi_err(tvbuff_t
*tvb
, gint offset
,
6951 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
6953 proto_tree
*sub_tree
;
6957 const char *error_code
;
6959 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Resume Error");
6965 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Resume Error");
6966 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_resume_err
);
6968 proto_tree_add_item(sub_tree
,
6969 hf_ff_fms_resume_err_pi_state
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6973 proto_tree_add_text(sub_tree
, tvb
, offset
, 3, "Reserved (%u bytes)", 3);
6977 ErrorClass
= tvb_get_guint8(tvb
, offset
);
6978 proto_tree_add_item(sub_tree
,
6979 hf_ff_fms_resume_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6983 ErrorCode
= tvb_get_guint8(tvb
, offset
);
6984 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
6985 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_resume_err_err_code
,
6986 tvb
, offset
, 1, ErrorCode
,
6987 "%s (%u)", error_code
, ErrorCode
);
6991 proto_tree_add_item(sub_tree
,
6992 hf_ff_fms_resume_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
6996 proto_tree_add_item(sub_tree
, hf_ff_fms_resume_err_additional_desc
,
6997 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
7002 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7003 "[Unknown] (%u bytes)", length
);
7012 * 6.5.3.27. FMS Reset (Confirmed Service Id = 22)
7013 * 6.5.3.27.1. Request Message Parameters
7016 dissect_ff_msg_fms_reset_pi_req(tvbuff_t
*tvb
, gint offset
,
7017 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7019 proto_tree
*sub_tree
;
7022 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Reset Request");
7028 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Reset Request");
7029 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_reset_req
);
7031 proto_tree_add_item(sub_tree
,
7032 hf_ff_fms_reset_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7037 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7038 "[Unknown] (%u bytes)", length
);
7047 * 6.5.3.27.2. Response Message Parameters
7050 dissect_ff_msg_fms_reset_pi_rsp(tvbuff_t
*tvb
, gint offset
,
7051 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7053 proto_tree
*sub_tree
;
7056 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Reset Response");
7063 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
7064 "FMS Reset Response");
7065 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_reset_rsp
);
7067 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7068 "[Unknown] (%u bytes)", length
);
7077 * 6.5.3.27.3. Error Message Parameters
7080 dissect_ff_msg_fms_reset_pi_err(tvbuff_t
*tvb
, gint offset
,
7081 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7083 proto_tree
*sub_tree
;
7087 const char *error_code
;
7089 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Reset Error");
7095 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Reset Error");
7096 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_reset_err
);
7098 proto_tree_add_item(sub_tree
,
7099 hf_ff_fms_reset_err_pi_state
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
7103 proto_tree_add_text(sub_tree
, tvb
, offset
, 3, "Reserved (%u bytes)", 3);
7107 ErrorClass
= tvb_get_guint8(tvb
, offset
);
7108 proto_tree_add_item(sub_tree
,
7109 hf_ff_fms_reset_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
7113 ErrorCode
= tvb_get_guint8(tvb
, offset
);
7114 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
7115 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_reset_err_err_code
,
7116 tvb
, offset
, 1, ErrorCode
,
7117 "%s (%u)", error_code
, ErrorCode
);
7121 proto_tree_add_item(sub_tree
,
7122 hf_ff_fms_reset_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
7126 proto_tree_add_item(sub_tree
, hf_ff_fms_reset_err_additional_desc
,
7127 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
7132 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7133 "[Unknown] (%u bytes)", length
);
7142 * 6.5.3.28. FMS Kill (Confirmed Service Id = 23)
7143 * 6.5.3.28.1. Request Message Parameters
7146 dissect_ff_msg_fms_kill_pi_req(tvbuff_t
*tvb
, gint offset
,
7147 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7149 proto_tree
*sub_tree
;
7152 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Kill Request");
7158 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Kill Request");
7159 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_kill_req
);
7161 proto_tree_add_item(sub_tree
,
7162 hf_ff_fms_kill_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7167 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7168 "[Unknown] (%u bytes)", length
);
7177 * 6.5.3.28.2. Response Message Parameters
7180 dissect_ff_msg_fms_kill_pi_rsp(tvbuff_t
*tvb
, gint offset
,
7181 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7183 proto_tree
*sub_tree
;
7186 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Kill Response");
7193 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
7194 "FMS Kill Response");
7195 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_kill_rsp
);
7197 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7198 "[Unknown] (%u bytes)", length
);
7207 * 6.5.3.28.3. Error Message Parameters
7210 dissect_ff_msg_fms_kill_pi_err(tvbuff_t
*tvb
, gint offset
,
7211 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7213 proto_tree
*sub_tree
;
7217 const char *error_code
;
7219 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Kill Error");
7225 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Kill Error");
7226 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_kill_err
);
7228 ErrorClass
= tvb_get_guint8(tvb
, offset
);
7229 proto_tree_add_item(sub_tree
,
7230 hf_ff_fms_kill_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
7234 ErrorCode
= tvb_get_guint8(tvb
, offset
);
7235 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
7236 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_kill_err_err_code
,
7237 tvb
, offset
, 1, ErrorCode
,
7238 "%s (%u)", error_code
, ErrorCode
);
7242 proto_tree_add_item(sub_tree
,
7243 hf_ff_fms_kill_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
7247 proto_tree_add_item(sub_tree
, hf_ff_fms_kill_err_additional_desc
,
7248 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
7253 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7254 "[Unknown] (%u bytes)", length
);
7263 * 6.5.3.29. FMS Read (Confirmed Service Id = 2)
7264 * 6.5.3.29.1. Request Message Parameters
7267 dissect_ff_msg_fms_read_req(tvbuff_t
*tvb
, gint offset
,
7268 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7270 proto_tree
*sub_tree
;
7273 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Read Request");
7279 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Read Request");
7280 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_read_req
);
7282 proto_tree_add_item(sub_tree
,
7283 hf_ff_fms_read_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7288 proto_tree_add_text(tree
, tvb
, offset
, length
,
7289 "[Unknown] (%u bytes)", length
);
7298 * 6.5.3.29.2. Response Message Parameters
7301 dissect_ff_msg_fms_read_rsp(tvbuff_t
*tvb
, gint offset
,
7302 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7304 proto_tree
*sub_tree
;
7307 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Read Response");
7313 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Read Response");
7314 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_read_rsp
);
7316 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7317 "Data (%u bytes)", length
);
7325 * 6.5.3.29.3. Error Message Parameters
7328 dissect_ff_msg_fms_read_err(tvbuff_t
*tvb
, gint offset
,
7329 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7331 proto_tree
*sub_tree
;
7335 const char *error_code
;
7337 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Read Error");
7343 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Read Error");
7344 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_read_err
);
7346 ErrorClass
= tvb_get_guint8(tvb
, offset
);
7347 proto_tree_add_item(sub_tree
,
7348 hf_ff_fms_read_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
7352 ErrorCode
= tvb_get_guint8(tvb
, offset
);
7353 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
7354 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_read_err_err_code
,
7355 tvb
, offset
, 1, ErrorCode
,
7356 "%s (%u)", error_code
, ErrorCode
);
7360 proto_tree_add_item(sub_tree
,
7361 hf_ff_fms_read_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
7365 proto_tree_add_item(sub_tree
, hf_ff_fms_read_err_additional_desc
,
7366 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
7371 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7372 "[Unknown] (%u bytes)", length
);
7381 * 6.5.3.30. FMS Read with Subindex (Confirmed Service Id = 82)
7382 * 6.5.3.30.1. Request Message Parameters
7385 dissect_ff_msg_fms_read_subindex_req(tvbuff_t
*tvb
, gint offset
,
7386 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7388 proto_tree
*sub_tree
;
7391 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Read with Subindex Request");
7397 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
7398 "FMS Read with Subindex Request");
7399 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_read_with_subidx_req
);
7401 proto_tree_add_item(sub_tree
,
7402 hf_ff_fms_read_with_subidx_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7406 proto_tree_add_item(sub_tree
,
7407 hf_ff_fms_read_with_subidx_req_subidx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7412 proto_tree_add_text(tree
, tvb
, offset
, length
,
7413 "[Unknown] (%u bytes)", length
);
7422 * 6.5.3.30.2. Response Message Parameters
7425 dissect_ff_msg_fms_read_subindex_rsp(tvbuff_t
*tvb
, gint offset
,
7426 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7428 proto_tree
*sub_tree
;
7431 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Read with Subindex Response");
7437 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
7438 "FMS Read with Subindex Response");
7439 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_read_with_subidx_rsp
);
7441 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7442 "Data (%u bytes)", length
);
7450 * 6.5.3.30.3. Error Message Parameters
7453 dissect_ff_msg_fms_read_subindex_err(tvbuff_t
*tvb
, gint offset
,
7454 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7456 proto_tree
*sub_tree
;
7460 const char *error_code
;
7462 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Read with Subindex Error");
7468 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
7469 "FMS Read with Subindex Error");
7470 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_read_with_subidx_err
);
7472 ErrorClass
= tvb_get_guint8(tvb
, offset
);
7473 proto_tree_add_item(sub_tree
,
7474 hf_ff_fms_read_with_subidx_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
7478 ErrorCode
= tvb_get_guint8(tvb
, offset
);
7479 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
7480 proto_tree_add_uint_format_value(sub_tree
,
7481 hf_ff_fms_read_with_subidx_err_err_code
,
7482 tvb
, offset
, 1, ErrorCode
,
7483 "%s (%u)", error_code
, ErrorCode
);
7487 proto_tree_add_item(sub_tree
,
7488 hf_ff_fms_read_with_subidx_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
7492 proto_tree_add_item(sub_tree
,
7493 hf_ff_fms_read_with_subidx_err_additional_desc
,
7494 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
7499 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7500 "[Unknown] (%u bytes)", length
);
7509 * 6.5.3.31. FMS Write (Confirmed Service Id = 3)
7510 * 6.5.3.31.1. Request Message Parameters
7513 dissect_ff_msg_fms_write_req(tvbuff_t
*tvb
, gint offset
,
7514 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7516 proto_tree
*sub_tree
;
7519 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Write Request");
7525 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Write Request");
7526 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_write_req
);
7528 proto_tree_add_item(sub_tree
,
7529 hf_ff_fms_write_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7534 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7535 "Data (%u bytes)", length
);
7544 * 6.5.3.31.2. Response Message Parameters
7547 dissect_ff_msg_fms_write_rsp(tvbuff_t
*tvb
, gint offset
,
7548 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7550 proto_tree
*sub_tree
;
7553 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Write Response");
7560 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
7561 "FMS Write Response");
7562 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_write_rsp
);
7564 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7565 "[Unknown] (%u bytes)", length
);
7574 * 6.5.3.31.3. Error Message Parameters
7577 dissect_ff_msg_fms_write_err(tvbuff_t
*tvb
, gint offset
,
7578 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7580 proto_tree
*sub_tree
;
7584 const char *error_code
;
7586 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Write Error");
7592 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
, "FMS Write Error");
7593 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_write_err
);
7595 ErrorClass
= tvb_get_guint8(tvb
, offset
);
7596 proto_tree_add_item(sub_tree
,
7597 hf_ff_fms_write_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
7601 ErrorCode
= tvb_get_guint8(tvb
, offset
);
7602 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
7603 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_write_err_err_code
,
7604 tvb
, offset
, 1, ErrorCode
,
7605 "%s (%u)", error_code
, ErrorCode
);
7609 proto_tree_add_item(sub_tree
,
7610 hf_ff_fms_write_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
7614 proto_tree_add_item(sub_tree
, hf_ff_fms_write_err_additional_desc
,
7615 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
7620 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7621 "[Unknown] (%u bytes)", length
);
7630 * 6.5.3.32. FMS Write with Subindex (Confirmed Service Id = 83)
7631 * 6.5.3.32.1. Request Message Parameters
7634 dissect_ff_msg_fms_write_subindex_req(tvbuff_t
*tvb
, gint offset
,
7635 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7637 proto_tree
*sub_tree
;
7640 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Write with Subindex Request");
7646 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
7647 "FMS Write with Subindex Request");
7648 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_write_with_subidx_req
);
7650 proto_tree_add_item(sub_tree
,
7651 hf_ff_fms_write_with_subidx_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7655 proto_tree_add_item(sub_tree
,
7656 hf_ff_fms_write_with_subidx_req_subidx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7661 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7662 "Data (%u bytes)", length
);
7671 * 6.5.3.32.2. Response Message Parameters
7674 dissect_ff_msg_fms_write_subindex_rsp(tvbuff_t
*tvb
, gint offset
,
7675 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7677 proto_tree
*sub_tree
;
7680 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Write with Subindex Response");
7687 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
7688 "FMS Write with Subindex Response");
7689 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_write_with_subidx_rsp
);
7691 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7692 "[Unknown] (%u bytes)", length
);
7701 * 6.5.3.32.3. Error Message Parameters
7704 dissect_ff_msg_fms_write_subindex_err(tvbuff_t
*tvb
, gint offset
,
7705 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7707 proto_tree
*sub_tree
;
7711 const char *error_code
;
7713 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Write with Subindex Error");
7719 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
7720 "FMS Write with Subindex Error");
7721 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_write_with_subidx_err
);
7723 ErrorClass
= tvb_get_guint8(tvb
, offset
);
7724 proto_tree_add_item(sub_tree
,
7725 hf_ff_fms_write_with_subidx_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
7729 ErrorCode
= tvb_get_guint8(tvb
, offset
);
7730 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
7731 proto_tree_add_uint_format_value(sub_tree
,
7732 hf_ff_fms_write_with_subidx_err_err_code
,
7733 tvb
, offset
, 1, ErrorCode
,
7734 "%s (%u)", error_code
, ErrorCode
);
7738 proto_tree_add_item(sub_tree
,
7739 hf_ff_fms_write_with_subidx_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
7743 proto_tree_add_item(sub_tree
,
7744 hf_ff_fms_write_with_subidx_err_additional_desc
,
7745 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
7750 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7751 "[Unknown] (%u bytes)", length
);
7760 * 6.5.3.33. FMS Define Variable List (Confirmed Service Id = 7)
7761 * 6.5.3.33.1. Request Message Parameters
7764 dissect_ff_msg_fms_def_variable_list_req_list_of_idxes(tvbuff_t
*tvb
,
7765 gint offset
, proto_tree
*tree
, guint32 value
)
7767 proto_tree
*sub_tree
;
7775 ti
= proto_tree_add_text(tree
, tvb
, offset
, 4 * value
,
7776 "List Of Indexes (%u bytes)", 4 * value
);
7777 sub_tree
= proto_item_add_subtree(ti
,
7778 ett_ff_fms_def_variable_list_req_list_of_idxes
);
7780 for (d
= 0; d
< value
; d
++) {
7781 proto_tree_add_item(sub_tree
,
7782 hf_ff_fms_def_variable_list_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7792 dissect_ff_msg_fms_def_variable_list_req(tvbuff_t
*tvb
, gint offset
,
7793 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7795 proto_tree
*sub_tree
;
7797 guint32 NumOfIndexes
;
7799 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Define Variable List Request");
7805 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
7806 "FMS Define Variable List Request");
7807 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_def_variable_list_req
);
7809 NumOfIndexes
= tvb_get_ntohl(tvb
, offset
);
7810 proto_tree_add_item(sub_tree
,
7811 hf_ff_fms_def_variable_list_req_num_of_idxes
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7816 dissect_ff_msg_fms_def_variable_list_req_list_of_idxes(tvb
,
7817 offset
, sub_tree
, NumOfIndexes
);
7818 offset
+= 4 * NumOfIndexes
;
7819 length
-= 4 * NumOfIndexes
;
7823 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7824 "[Unknown] (%u bytes)", length
);
7833 * 6.5.3.33.2. Response Message Parameters
7836 dissect_ff_msg_fms_def_variable_list_rsp(tvbuff_t
*tvb
, gint offset
,
7837 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7839 proto_tree
*sub_tree
;
7842 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Define Variable List Response");
7848 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
7849 "FMS Define Variable List Response");
7850 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_def_variable_list_rsp
);
7852 proto_tree_add_item(sub_tree
,
7853 hf_ff_fms_def_variable_list_rsp_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7858 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7859 "[Unknown] (%u bytes)", length
);
7868 * 6.5.3.33.3. Error Message Parameters
7871 dissect_ff_msg_fms_def_variable_list_err(tvbuff_t
*tvb
, gint offset
,
7872 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7874 proto_tree
*sub_tree
;
7878 const char *error_code
;
7880 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Define Variable List Error");
7886 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
7887 "FMS Define Variable List Error");
7888 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_def_variable_list_err
);
7890 ErrorClass
= tvb_get_guint8(tvb
, offset
);
7891 proto_tree_add_item(sub_tree
,
7892 hf_ff_fms_def_variable_list_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
7896 ErrorCode
= tvb_get_guint8(tvb
, offset
);
7897 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
7898 proto_tree_add_uint_format_value(sub_tree
,
7899 hf_ff_fms_def_variable_list_err_err_code
,
7900 tvb
, offset
, 1, ErrorCode
,
7901 "%s (%u)", error_code
, ErrorCode
);
7905 proto_tree_add_item(sub_tree
,
7906 hf_ff_fms_def_variable_list_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
7910 proto_tree_add_item(sub_tree
,
7911 hf_ff_fms_def_variable_list_err_additional_desc
,
7912 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
7917 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7918 "[Unknown] (%u bytes)", length
);
7927 * 6.5.3.34. FMS Delete Variable List (Confirmed Service Id = 8)
7928 * 6.5.3.34.1. Request Message Parameters
7931 dissect_ff_msg_fms_del_variable_list_req(tvbuff_t
*tvb
, gint offset
,
7932 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7934 proto_tree
*sub_tree
;
7937 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Delete Variable List Request");
7943 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
7944 "FMS Delete Variable List Request");
7945 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_del_variable_list_req
);
7947 proto_tree_add_item(sub_tree
,
7948 hf_ff_fms_del_variable_list_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7953 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7954 "[Unknown] (%u bytes)", length
);
7963 * 6.5.3.34.2. Response Message Parameters
7966 dissect_ff_msg_fms_del_variable_list_rsp(tvbuff_t
*tvb
, gint offset
,
7967 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7969 proto_tree
*sub_tree
;
7972 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Delete Variable List Response");
7979 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
7980 "FMS Delete Variable List Response");
7981 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_del_variable_list_rsp
);
7983 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
7984 "[Unknown] (%u bytes)", length
);
7993 * 6.5.3.34.3. Error Message Parameters
7996 dissect_ff_msg_fms_del_variable_list_err(tvbuff_t
*tvb
, gint offset
,
7997 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
7999 proto_tree
*sub_tree
;
8003 const char *error_code
;
8005 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Delete Variable List Error");
8011 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
8012 "FMS Delete Variable List Error");
8013 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_del_variable_list_err
);
8015 ErrorClass
= tvb_get_guint8(tvb
, offset
);
8016 proto_tree_add_item(sub_tree
,
8017 hf_ff_fms_del_variable_list_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8021 ErrorCode
= tvb_get_guint8(tvb
, offset
);
8022 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
8023 proto_tree_add_uint_format_value(sub_tree
,
8024 hf_ff_fms_del_variable_list_err_err_code
,
8025 tvb
, offset
, 1, ErrorCode
,
8026 "%s (%u)", error_code
, ErrorCode
);
8030 proto_tree_add_item(sub_tree
,
8031 hf_ff_fms_del_variable_list_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
8035 proto_tree_add_item(sub_tree
,
8036 hf_ff_fms_del_variable_list_err_additional_desc
,
8037 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
8042 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
8043 "[Unknown] (%u bytes)", length
);
8052 * 6.5.3.35. FMS Information Report (Unconfirmed Service Id = 0)
8053 * 6.5.3.35.1. Request Message Parameters
8056 dissect_ff_msg_fms_info_report_req(tvbuff_t
*tvb
, gint offset
,
8057 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
8059 proto_tree
*sub_tree
;
8062 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Information Report Request");
8068 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
8069 "FMS Information Report Request");
8070 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_info_report_req
);
8072 proto_tree_add_item(sub_tree
,
8073 hf_ff_fms_info_report_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8078 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
8079 "Data (%u bytes)", length
);
8088 * 6.5.3.36. FMS Information Report with Subindex
8089 * (Unconfirmed Service Id = 16)
8090 * 6.5.3.36.1. Request Message Parameters
8093 dissect_ff_msg_fms_info_report_subindex_req(tvbuff_t
*tvb
, gint offset
,
8094 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
8096 proto_tree
*sub_tree
;
8099 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Information Report with Subindex Request");
8105 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
8106 "FMS Information Report with Subindex Request");
8107 sub_tree
= proto_item_add_subtree(ti
,
8108 ett_ff_fms_info_report_with_subidx_req
);
8110 proto_tree_add_item(sub_tree
,
8111 hf_ff_fms_info_report_with_subidx_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8115 proto_tree_add_item(sub_tree
,
8116 hf_ff_fms_info_report_with_subidx_req_subidx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8121 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
8122 "Data (%u bytes)", length
);
8131 * 6.5.3.37. FMS Information Report On Change (Unconfirmed Service Id = 17)
8132 * 6.5.3.37.1. Request Message Parameters
8135 dissect_ff_msg_fms_info_report_change_req(tvbuff_t
*tvb
, gint offset
,
8136 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
8138 proto_tree
*sub_tree
;
8141 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Information Report On Change Request");
8147 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
8148 "FMS Information Report On Change Request");
8149 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_info_report_on_change_req
);
8151 proto_tree_add_item(sub_tree
,
8152 hf_ff_fms_info_report_on_change_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8157 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
8158 "Data (%u bytes)", length
);
8167 * 6.5.3.38. FMS Information Report On Change with Subindex
8168 * (Unconfirmed Service Id = 18)
8169 * 6.5.3.38.1. Request Message Parameters
8172 dissect_ff_msg_fms_info_report_change_subindex_req(
8173 tvbuff_t
*tvb
, gint offset
,
8174 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
8176 proto_tree
*sub_tree
;
8179 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Information Report On Change with Subindex Request");
8185 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
8186 "FMS Information Report On Change with Subindex Request");
8187 sub_tree
= proto_item_add_subtree(ti
,
8188 ett_ff_fms_info_report_on_change_with_subidx_req
);
8190 proto_tree_add_item(sub_tree
,
8191 hf_ff_fms_info_report_on_change_with_subidx_req_idx
,
8192 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8196 proto_tree_add_item(sub_tree
,
8197 hf_ff_fms_info_report_on_change_with_subidx_req_subidx
,
8198 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8203 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
8204 "Data (%u bytes)", length
);
8213 * 6.5.3.39. FMS Event Notification (Unconfirmed Service Id = 2)
8214 * 6.5.3.39.1. Request Message Parameters
8217 dissect_ff_msg_fms_ev_notification_req(
8218 tvbuff_t
*tvb
, gint offset
,
8219 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
8221 proto_tree
*sub_tree
;
8224 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Event Notification Request");
8230 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
8231 "FMS Event Notification Request");
8232 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_ev_notification_req
);
8234 proto_tree_add_item(sub_tree
,
8235 hf_ff_fms_ev_notification_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8239 proto_tree_add_item(sub_tree
,
8240 hf_ff_fms_ev_notification_req_ev_num
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8245 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
8246 "Data (%u bytes)", length
);
8255 * 6.5.3.40. FMS Alter Event Condition Monitoring (Confirmed Service Id = 24)
8256 * 6.5.3.40.1. Request Message Parameters
8259 dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_req(
8260 tvbuff_t
*tvb
, gint offset
,
8261 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
8263 proto_tree
*sub_tree
;
8266 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Alter Event Condition Monitoring Request");
8272 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
8273 "FMS Alter Event Condition Monitoring Request");
8274 sub_tree
= proto_item_add_subtree(ti
,
8275 ett_ff_fms_alter_ev_condition_monitoring_req
);
8277 proto_tree_add_item(sub_tree
,
8278 hf_ff_fms_alter_ev_condition_monitoring_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8282 proto_tree_add_text(sub_tree
, tvb
, offset
, 3, "Reserved (%u bytes)", 3);
8286 proto_tree_add_item(sub_tree
,
8287 hf_ff_fms_alter_ev_condition_monitoring_req_enabled
,
8288 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8293 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
8294 "[Unknown] (%u bytes)", length
);
8303 * 6.5.3.40.2. Response Message Parameters
8306 dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_rsp(
8307 tvbuff_t
*tvb
, gint offset
,
8308 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
8310 proto_tree
*sub_tree
;
8313 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Alter Event Condition Monitoring Response");
8320 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
8321 "FMS Alter Event Condition Monitoring Response");
8322 sub_tree
= proto_item_add_subtree(ti
,
8323 ett_ff_fms_alter_ev_condition_monitoring_rsp
);
8325 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
8326 "[Unknown] (%u bytes)", length
);
8335 * 6.5.3.40.3. Error Message Parameters
8338 dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_err(
8339 tvbuff_t
*tvb
, gint offset
,
8340 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
8342 proto_tree
*sub_tree
;
8346 const char *error_code
;
8348 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Alter Event Condition Monitoring Error");
8354 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
8355 "FMS Alter Event Condition Monitoring Error");
8356 sub_tree
= proto_item_add_subtree(ti
,
8357 ett_ff_fms_alter_ev_condition_monitoring_err
);
8359 ErrorClass
= tvb_get_guint8(tvb
, offset
);
8360 proto_tree_add_item(sub_tree
,
8361 hf_ff_fms_alter_ev_condition_monitoring_err_err_class
,
8362 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8366 ErrorCode
= tvb_get_guint8(tvb
, offset
);
8367 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
8368 proto_tree_add_uint_format_value(sub_tree
,
8369 hf_ff_fms_alter_ev_condition_monitoring_err_err_code
,
8370 tvb
, offset
, 1, ErrorCode
,
8371 "%s (%u)", error_code
, ErrorCode
);
8375 proto_tree_add_item(sub_tree
,
8376 hf_ff_fms_alter_ev_condition_monitoring_err_additional_code
,
8377 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
8381 proto_tree_add_item(sub_tree
,
8382 hf_ff_fms_alter_ev_condition_monitoring_err_additional_desc
,
8383 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
8388 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
8389 "[Unknown] (%u bytes)", length
);
8398 * 6.5.3.41. FMS Acknowledge Event Notification (Confirmed Service Id = 25)
8399 * 6.5.3.41.1. Request Message Parameters
8402 dissect_ff_msg_fms_ack_ev_notification_req(
8403 tvbuff_t
*tvb
, gint offset
,
8404 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
8406 proto_tree
*sub_tree
;
8409 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Acknowledge Event Notification Request");
8415 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
8416 "FMS Acknowledge Event Notification Request");
8417 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_ack_ev_notification_req
);
8419 proto_tree_add_item(sub_tree
,
8420 hf_ff_fms_ack_ev_notification_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8424 proto_tree_add_item(sub_tree
,
8425 hf_ff_fms_ack_ev_notification_req_ev_num
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8430 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
8431 "[Unknown] (%u bytes)", length
);
8440 * 6.5.3.41.2. Response Message Parameters
8443 dissect_ff_msg_fms_ack_ev_notification_rsp(
8444 tvbuff_t
*tvb
, gint offset
,
8445 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
8447 proto_tree
*sub_tree
;
8450 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Acknowledge Event Notification Response");
8457 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
8458 "FMS Acknowledge Event Notification Response");
8459 sub_tree
= proto_item_add_subtree(ti
,
8460 ett_ff_fms_ack_ev_notification_rsp
);
8462 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
8463 "[Unknown] (%u bytes)", length
);
8472 * 6.5.3.41.3. Error Message Parameters
8475 dissect_ff_msg_fms_ack_ev_notification_err(
8476 tvbuff_t
*tvb
, gint offset
,
8477 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
8479 proto_tree
*sub_tree
;
8483 const char *error_code
;
8485 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Acknowledge Event Notification Error");
8491 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
8492 "FMS Acknowledge Event Notification Error");
8493 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fms_ack_ev_notification_err
);
8495 ErrorClass
= tvb_get_guint8(tvb
, offset
);
8496 proto_tree_add_item(sub_tree
,
8497 hf_ff_fms_ack_ev_notification_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8501 ErrorCode
= tvb_get_guint8(tvb
, offset
);
8502 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
8503 proto_tree_add_uint_format_value(sub_tree
,
8504 hf_ff_fms_ack_ev_notification_err_err_code
,
8505 tvb
, offset
, 1, ErrorCode
,
8506 "%s (%u)", error_code
, ErrorCode
);
8510 proto_tree_add_item(sub_tree
,
8511 hf_ff_fms_ack_ev_notification_err_additional_code
,
8512 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
8516 proto_tree_add_item(sub_tree
,
8517 hf_ff_fms_ack_ev_notification_err_additional_desc
,
8518 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
8523 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
8524 "[Unknown] (%u bytes)", length
);
8533 * 6.5.4.1. LAN Redundancy Get Information (Confirmed Service Id = 1)
8534 * 6.5.4.1.1. Request Message Parameters
8537 dissect_ff_msg_lr_get_info_req(
8538 tvbuff_t
*tvb
, gint offset
,
8539 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
8541 proto_tree
*sub_tree
;
8544 col_set_str(pinfo
->cinfo
, COL_INFO
, "LAN Redundancy Get Information Request");
8551 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
8552 "LAN Redundancy Get Information Request");
8553 sub_tree
= proto_item_add_subtree(ti
,
8554 ett_ff_lr_get_info_req
);
8556 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
8557 "[Unknown] (%u bytes)", length
);
8566 * 6.5.4.1.2. Response Message Parameters
8569 dissect_ff_msg_lr_get_info_rsp_lr_flags(tvbuff_t
*tvb
,
8570 gint offset
, proto_tree
*tree
, guint8 value
)
8572 proto_tree
*sub_tree
;
8579 ti
= proto_tree_add_text(tree
, tvb
, offset
, 1,
8580 "LAN Redundancy Flags: 0x%02x", value
);
8581 sub_tree
= proto_item_add_subtree(ti
, ett_ff_lr_get_info_rsp_lr_flags
);
8584 * Bits 6-8: Reserved (not used) = 0
8585 * Bit 5: Load Balancing Enabled
8586 * 0 = False Do not do load balancing
8587 * 1 = True Do load balancing
8588 * Bit 4: Diagnosis Using Own Messages Enabled
8589 * 0 = False Do not use own diagnostic messages for diagnosis
8590 * 1 = True Use own diagnostic messages for diagnosis
8591 * Bit 3: Single Multicast Message Reception Interface Enabled
8592 * 0 = False Listen for multicast addresses
8593 * on both interfaces
8594 * 1 = True Listen for multicast addresses
8596 * if zero or one fault detected
8597 * in network status table
8598 * Bit 2: Crossed Cable Detection Enabled
8599 * 0 = False Do not detect crossed cables
8600 * 1 = True Detect crossed cables
8601 * B1 (lsb): Single Multicast Message Transmission Interface Enabled
8602 * 0 = False Transmit on both interfaces
8603 * 1 = True Transmit on one interface
8605 proto_tree_add_item(sub_tree
, hf_ff_lr_get_info_rsp_lr_flags_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8606 proto_tree_add_item(sub_tree
, hf_ff_lr_get_info_rsp_lr_flags_load_balance
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8607 proto_tree_add_item(sub_tree
, hf_ff_lr_get_info_rsp_lr_flags_diag
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8608 proto_tree_add_item(sub_tree
, hf_ff_lr_get_info_rsp_lr_flags_multi_recv
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8609 proto_tree_add_item(sub_tree
, hf_ff_lr_get_info_rsp_lr_flags_cross_cable
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8610 proto_tree_add_item(sub_tree
, hf_ff_lr_get_info_rsp_lr_flags_multi_trans
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8616 dissect_ff_msg_lr_get_info_rsp(
8617 tvbuff_t
*tvb
, gint offset
,
8618 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
8620 proto_tree
*sub_tree
;
8622 guint8 MaxMsgNumDiff
;
8625 col_set_str(pinfo
->cinfo
, COL_INFO
, "LAN Redundancy Get Information Response");
8631 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
8632 "LAN Redundancy Get Information Response");
8633 sub_tree
= proto_item_add_subtree(ti
, ett_ff_lr_get_info_rsp
);
8635 proto_tree_add_item(sub_tree
,
8636 hf_ff_lr_get_info_rsp_lr_attrs_ver
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8640 MaxMsgNumDiff
= tvb_get_guint8(tvb
, offset
);
8641 switch (MaxMsgNumDiff
) {
8644 proto_tree_add_uint_format_value(sub_tree
,
8645 hf_ff_lr_get_info_rsp_lr_max_msg_num_diff
,
8646 tvb
, offset
, 1, MaxMsgNumDiff
,
8647 "Do not detect a fault (%u)",
8652 proto_tree_add_item(sub_tree
,
8653 hf_ff_lr_get_info_rsp_lr_max_msg_num_diff
,
8654 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8659 LRFlags
= tvb_get_guint8(tvb
, offset
);
8660 dissect_ff_msg_lr_get_info_rsp_lr_flags(tvb
, offset
, sub_tree
, LRFlags
);
8664 proto_tree_add_item(sub_tree
,
8665 hf_ff_lr_get_info_rsp_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
8669 proto_tree_add_item(sub_tree
,
8670 hf_ff_lr_get_info_rsp_diagnostic_msg_intvl
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8674 proto_tree_add_item(sub_tree
,
8675 hf_ff_lr_get_info_rsp_aging_time
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8679 proto_tree_add_item(sub_tree
,
8680 hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_send_addr
,
8681 tvb
, offset
, 16, ENC_NA
);
8685 proto_tree_add_item(sub_tree
,
8686 hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_recv_addr
,
8687 tvb
, offset
, 16, ENC_NA
);
8691 proto_tree_add_item(sub_tree
,
8692 hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_send_addr
,
8693 tvb
, offset
, 16, ENC_NA
);
8697 proto_tree_add_item(sub_tree
,
8698 hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_recv_addr
,
8699 tvb
, offset
, 16, ENC_NA
);
8704 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
8705 "[Unknown] (%u bytes)", length
);
8714 * 6.5.4.1.3. Error Message Parameters
8717 dissect_ff_msg_lr_get_info_err(
8718 tvbuff_t
*tvb
, gint offset
,
8719 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
8721 proto_tree
*sub_tree
;
8725 const char *error_code
;
8727 col_set_str(pinfo
->cinfo
, COL_INFO
, "LAN Redundancy Get Information Error");
8733 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
8734 "LAN Redundancy Get Information Error");
8735 sub_tree
= proto_item_add_subtree(ti
, ett_ff_lr_get_info_err
);
8737 ErrorClass
= tvb_get_guint8(tvb
, offset
);
8738 proto_tree_add_item(sub_tree
,
8739 hf_ff_lr_get_info_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8743 ErrorCode
= tvb_get_guint8(tvb
, offset
);
8744 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
8745 proto_tree_add_uint_format_value(sub_tree
, hf_ff_lr_get_info_err_err_code
,
8746 tvb
, offset
, 1, ErrorCode
,
8747 "%s (%u)", error_code
, ErrorCode
);
8751 proto_tree_add_item(sub_tree
,
8752 hf_ff_lr_get_info_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
8756 proto_tree_add_item(sub_tree
,
8757 hf_ff_lr_get_info_err_additional_desc
,
8758 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
8763 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
8764 "[Unknown] (%u bytes)", length
);
8773 * 6.5.4.2. LAN Redundancy Put Information (Confirmed Service Id = 2)
8774 * 6.5.4.2.1. Request Message Parameters
8777 dissect_ff_msg_lr_put_info_req_lr_flags(tvbuff_t
*tvb
,
8778 gint offset
, proto_tree
*tree
, guint8 value
)
8780 proto_tree
*sub_tree
;
8787 ti
= proto_tree_add_text(tree
, tvb
, offset
, 1,
8788 "LAN Redundancy Flags: 0x%02x", value
);
8789 sub_tree
= proto_item_add_subtree(ti
, ett_ff_lr_put_info_req_lr_flags
);
8792 * Bits 6-8: Reserved (not used) = 0
8793 * Bit 5: Load Balancing Enabled
8794 * 0 = False Do not do load balancing
8795 * 1 = True Do load balancing
8796 * Bit 4: Diagnosis Using Own Messages Enabled
8797 * 0 = False Do not use own diagnostic messages for diagnosis
8798 * 1 = True Use own diagnostic messages for diagnosis
8799 * Bit 3: Single Multicast Message Reception Interface Enabled
8800 * 0 = False Listen for multicast addresses
8801 * on both interfaces
8802 * 1 = True Listen for multicast addresses
8804 * if zero or one fault detected
8805 * in network status table
8806 * Bit 2: Crossed Cable Detection Enabled
8807 * 0 = False Do not detect crossed cables
8808 * 1 = True Detect crossed cables
8809 * B1 (lsb): Single Multicast Message Transmission Interface Enabled
8810 * 0 = False Transmit on both interfaces
8811 * 1 = True Transmit on one interface
8813 proto_tree_add_item(sub_tree
, hf_ff_lr_put_info_req_lr_flags_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8814 proto_tree_add_item(sub_tree
, hf_ff_lr_put_info_req_lr_flags_load_balance
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8815 proto_tree_add_item(sub_tree
, hf_ff_lr_put_info_req_lr_flags_diag
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8816 proto_tree_add_item(sub_tree
, hf_ff_lr_put_info_req_lr_flags_multi_recv
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8817 proto_tree_add_item(sub_tree
, hf_ff_lr_put_info_req_lr_flags_cross_cable
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8818 proto_tree_add_item(sub_tree
, hf_ff_lr_put_info_req_lr_flags_multi_trans
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8824 dissect_ff_msg_lr_put_info_req(
8825 tvbuff_t
*tvb
, gint offset
,
8826 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
8828 proto_tree
*sub_tree
;
8830 guint8 MaxMsgNumDiff
;
8833 col_set_str(pinfo
->cinfo
, COL_INFO
, "LAN Redundancy Put Information Request");
8839 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
8840 "LAN Redundancy Put Information Request");
8841 sub_tree
= proto_item_add_subtree(ti
, ett_ff_lr_put_info_req
);
8843 proto_tree_add_item(sub_tree
,
8844 hf_ff_lr_put_info_req_lr_attrs_ver
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8848 MaxMsgNumDiff
= tvb_get_guint8(tvb
, offset
);
8849 switch (MaxMsgNumDiff
) {
8852 proto_tree_add_uint_format_value(sub_tree
,
8853 hf_ff_lr_put_info_req_lr_max_msg_num_diff
,
8854 tvb
, offset
, 1, MaxMsgNumDiff
,
8855 "Do not detect a fault (%u)",
8860 proto_tree_add_item(sub_tree
,
8861 hf_ff_lr_put_info_req_lr_max_msg_num_diff
,
8862 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8867 LRFlags
= tvb_get_guint8(tvb
, offset
);
8868 dissect_ff_msg_lr_put_info_req_lr_flags(tvb
, offset
, sub_tree
, LRFlags
);
8872 proto_tree_add_item(sub_tree
,
8873 hf_ff_lr_put_info_req_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
8877 proto_tree_add_item(sub_tree
,
8878 hf_ff_lr_put_info_req_diagnostic_msg_intvl
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8882 proto_tree_add_item(sub_tree
,
8883 hf_ff_lr_put_info_req_aging_time
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8887 proto_tree_add_item(sub_tree
,
8888 hf_ff_lr_put_info_req_diagnostic_msg_if_a_send_addr
,
8889 tvb
, offset
, 16, ENC_NA
);
8893 proto_tree_add_item(sub_tree
,
8894 hf_ff_lr_put_info_req_diagnostic_msg_if_a_recv_addr
,
8895 tvb
, offset
, 16, ENC_NA
);
8899 proto_tree_add_item(sub_tree
,
8900 hf_ff_lr_put_info_req_diagnostic_msg_if_b_send_addr
,
8901 tvb
, offset
, 16, ENC_NA
);
8905 proto_tree_add_item(sub_tree
,
8906 hf_ff_lr_put_info_req_diagnostic_msg_if_b_recv_addr
,
8907 tvb
, offset
, 16, ENC_NA
);
8912 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
8913 "[Unknown] (%u bytes)", length
);
8922 * 6.5.4.2.2. Response Message Parameters
8925 dissect_ff_msg_lr_put_info_rsp_lr_flags(tvbuff_t
*tvb
,
8926 gint offset
, proto_tree
*tree
, guint8 value
)
8928 proto_tree
*sub_tree
;
8935 ti
= proto_tree_add_text(tree
, tvb
, offset
, 1,
8936 "LAN Redundancy Flags: 0x%02x", value
);
8937 sub_tree
= proto_item_add_subtree(ti
, ett_ff_lr_put_info_rsp_lr_flags
);
8940 * Bits 6-8: Reserved (not used) = 0
8941 * Bit 5: Load Balancing Enabled
8942 * 0 = False Do not do load balancing
8943 * 1 = True Do load balancing
8944 * Bit 4: Diagnosis Using Own Messages Enabled
8945 * 0 = False Do not use own diagnostic messages for diagnosis
8946 * 1 = True Use own diagnostic messages for diagnosis
8947 * Bit 3: Single Multicast Message Reception Interface Enabled
8948 * 0 = False Listen for multicast addresses
8949 * on both interfaces
8950 * 1 = True Listen for multicast addresses
8952 * if zero or one fault detected
8953 * in network status table
8954 * Bit 2: Crossed Cable Detection Enabled
8955 * 0 = False Do not detect crossed cables
8956 * 1 = True Detect crossed cables
8957 * B1 (lsb): Single Multicast Message Transmission Interface Enabled
8958 * 0 = False Transmit on both interfaces
8959 * 1 = True Transmit on one interface
8961 proto_tree_add_item(sub_tree
, hf_ff_lr_put_info_rsp_lr_flags_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8962 proto_tree_add_item(sub_tree
, hf_ff_lr_put_info_rsp_lr_flags_load_balance
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8963 proto_tree_add_item(sub_tree
, hf_ff_lr_put_info_rsp_lr_flags_diag
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8964 proto_tree_add_item(sub_tree
, hf_ff_lr_put_info_rsp_lr_flags_multi_recv
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8965 proto_tree_add_item(sub_tree
, hf_ff_lr_put_info_rsp_lr_flags_cross_cable
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8966 proto_tree_add_item(sub_tree
, hf_ff_lr_put_info_rsp_lr_flags_multi_trans
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8972 dissect_ff_msg_lr_put_info_rsp(
8973 tvbuff_t
*tvb
, gint offset
,
8974 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
8976 proto_tree
*sub_tree
;
8978 guint8 MaxMsgNumDiff
;
8981 col_set_str(pinfo
->cinfo
, COL_INFO
, "LAN Redundancy Put Information Response");
8987 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
8988 "LAN Redundancy Put Information Response");
8989 sub_tree
= proto_item_add_subtree(ti
, ett_ff_lr_put_info_rsp
);
8991 proto_tree_add_item(sub_tree
,
8992 hf_ff_lr_put_info_rsp_lr_attrs_ver
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8996 MaxMsgNumDiff
= tvb_get_guint8(tvb
, offset
);
8997 switch (MaxMsgNumDiff
) {
9000 proto_tree_add_uint_format_value(sub_tree
,
9001 hf_ff_lr_put_info_rsp_lr_max_msg_num_diff
,
9002 tvb
, offset
, 1, MaxMsgNumDiff
,
9003 "Do not detect a fault (%u)",
9008 proto_tree_add_item(sub_tree
,
9009 hf_ff_lr_put_info_rsp_lr_max_msg_num_diff
,
9010 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
9015 LRFlags
= tvb_get_guint8(tvb
, offset
);
9016 dissect_ff_msg_lr_put_info_rsp_lr_flags(tvb
, offset
, sub_tree
, LRFlags
);
9020 proto_tree_add_item(sub_tree
,
9021 hf_ff_lr_put_info_rsp_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
9025 proto_tree_add_item(sub_tree
,
9026 hf_ff_lr_put_info_rsp_diagnostic_msg_intvl
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
9030 proto_tree_add_item(sub_tree
,
9031 hf_ff_lr_put_info_rsp_aging_time
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
9035 proto_tree_add_item(sub_tree
,
9036 hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_send_addr
,
9037 tvb
, offset
, 16, ENC_NA
);
9041 proto_tree_add_item(sub_tree
,
9042 hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_recv_addr
,
9043 tvb
, offset
, 16, ENC_NA
);
9047 proto_tree_add_item(sub_tree
,
9048 hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_send_addr
,
9049 tvb
, offset
, 16, ENC_NA
);
9053 proto_tree_add_item(sub_tree
,
9054 hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_recv_addr
,
9055 tvb
, offset
, 16, ENC_NA
);
9060 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
9061 "[Unknown] (%u bytes)", length
);
9070 * 6.5.4.2.3. Error Message Parameters
9073 dissect_ff_msg_lr_put_info_err(
9074 tvbuff_t
*tvb
, gint offset
,
9075 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
9077 proto_tree
*sub_tree
;
9081 const char *error_code
;
9083 col_set_str(pinfo
->cinfo
, COL_INFO
, "LAN Redundancy Put Information Error");
9089 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
9090 "LAN Redundancy Put Information Error");
9091 sub_tree
= proto_item_add_subtree(ti
, ett_ff_lr_put_info_err
);
9093 ErrorClass
= tvb_get_guint8(tvb
, offset
);
9094 proto_tree_add_item(sub_tree
,
9095 hf_ff_lr_put_info_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
9099 ErrorCode
= tvb_get_guint8(tvb
, offset
);
9100 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
9101 proto_tree_add_uint_format_value(sub_tree
, hf_ff_lr_put_info_err_err_code
,
9102 tvb
, offset
, 1, ErrorCode
,
9103 "%s (%u)", error_code
, ErrorCode
);
9107 proto_tree_add_item(sub_tree
,
9108 hf_ff_lr_put_info_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
9112 proto_tree_add_item(sub_tree
,
9113 hf_ff_lr_put_info_err_additional_desc
,
9114 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
9119 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
9120 "[Unknown] (%u bytes)", length
);
9129 * 6.5.4.3. LAN Redundancy Get Statistics (Confirmed Service Id = 3)
9130 * 6.5.4.3.1. Request Message Parameters
9133 dissect_ff_msg_lr_get_statistics_req(
9134 tvbuff_t
*tvb
, gint offset
,
9135 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
9137 proto_tree
*sub_tree
;
9140 col_set_str(pinfo
->cinfo
, COL_INFO
, "LAN Redundancy Get Statistics Request");
9147 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
9148 "LAN Redundancy Get Statistics Request");
9149 sub_tree
= proto_item_add_subtree(ti
, ett_ff_lr_get_statistics_req
);
9151 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
9152 "[Unknown] (%u bytes)", length
);
9161 * 6.5.4.3.2. Response Message Parameters
9164 dissect_ff_msg_lr_get_statistics_rsp_x_cable_stat(tvbuff_t
*tvb
,
9165 gint offset
, proto_tree
*tree
, guint32 value
)
9167 proto_tree
*sub_tree
;
9175 ti
= proto_tree_add_text(tree
, tvb
, offset
, 4 * value
,
9176 "List of Crossed Cable Status (%u bytes)", 4 * value
);
9177 sub_tree
= proto_item_add_subtree(ti
,
9178 ett_ff_lr_get_statistics_rsp_list_of_x_cable_stat
);
9180 for (d
= 0; d
< value
; d
++) {
9181 proto_tree_add_item(sub_tree
,
9182 hf_ff_lr_get_statistics_rsp_x_cable_stat
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
9193 dissect_ff_msg_lr_get_statistics_rsp(
9194 tvbuff_t
*tvb
, gint offset
,
9195 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
9197 proto_tree
*sub_tree
;
9199 guint32 NumXcableStat
;
9201 col_set_str(pinfo
->cinfo
, COL_INFO
, "LAN Redundancy Get Statistics Response");
9207 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
9208 "LAN Redundancy Get Statistics Response");
9209 sub_tree
= proto_item_add_subtree(ti
, ett_ff_lr_get_statistics_rsp
);
9211 proto_tree_add_item(sub_tree
,
9212 hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_a
,
9213 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
9217 proto_tree_add_item(sub_tree
,
9218 hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_a
,
9219 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
9223 proto_tree_add_item(sub_tree
,
9224 hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_a
,
9225 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
9229 proto_tree_add_item(sub_tree
,
9230 hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_b
,
9231 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
9235 proto_tree_add_item(sub_tree
,
9236 hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_b
,
9237 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
9241 proto_tree_add_item(sub_tree
,
9242 hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_b
,
9243 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
9247 NumXcableStat
= tvb_get_ntohl(tvb
, offset
);
9248 proto_tree_add_item(sub_tree
,
9249 hf_ff_lr_get_statistics_rsp_num_x_cable_stat
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
9253 if (NumXcableStat
) {
9254 dissect_ff_msg_lr_get_statistics_rsp_x_cable_stat(tvb
,
9255 offset
, sub_tree
, NumXcableStat
);
9256 offset
+= 4 * NumXcableStat
;
9257 length
-= 4 * NumXcableStat
;
9261 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
9262 "[Unknown] (%u bytes)", length
);
9271 * 6.5.4.3.3. Error Message Parameters
9274 dissect_ff_msg_lr_get_statistics_err(
9275 tvbuff_t
*tvb
, gint offset
,
9276 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
9278 proto_tree
*sub_tree
;
9282 const char *error_code
;
9284 col_set_str(pinfo
->cinfo
, COL_INFO
, "LAN Redundancy Get Statistics Error");
9290 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
9291 "LAN Redundancy Get Statistics Error");
9292 sub_tree
= proto_item_add_subtree(ti
,
9293 ett_ff_lr_get_statistics_err
);
9295 ErrorClass
= tvb_get_guint8(tvb
, offset
);
9296 proto_tree_add_item(sub_tree
,
9297 hf_ff_lr_get_statistics_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
9301 ErrorCode
= tvb_get_guint8(tvb
, offset
);
9302 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
9303 proto_tree_add_uint_format_value(sub_tree
,
9304 hf_ff_lr_get_statistics_err_err_code
,
9305 tvb
, offset
, 1, ErrorCode
,
9306 "%s (%u)", error_code
, ErrorCode
);
9310 proto_tree_add_item(sub_tree
,
9311 hf_ff_lr_get_statistics_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
9315 proto_tree_add_item(sub_tree
,
9316 hf_ff_lr_get_statistics_err_additional_desc
,
9317 tvb
, offset
, 16, ENC_ASCII
|ENC_NA
);
9322 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
9323 "[Unknown] (%u bytes)", length
);
9332 * 6.5.4.4. Diagnostic Message (Unconfirmed Service Id = 1)
9333 * 6.5.4.4.1. Request Message Parameters
9336 dissect_ff_msg_diagnostic_msg_req_dup_detection_stat(tvbuff_t
*tvb
,
9337 gint offset
, proto_tree
*tree
, guint8 value
)
9339 proto_tree
*sub_tree
;
9346 ti
= proto_tree_add_text(tree
, tvb
, offset
, 1,
9347 "Duplicate Detection State: 0x%02x", value
);
9348 sub_tree
= proto_item_add_subtree(ti
,
9349 ett_ff_lr_diagnostic_msg_req_dup_detection_stat
);
9352 * Bits 3-8: Reserved, set to 0.
9353 * Bit 2: 1 = Duplicate PD Tag Detected
9354 * 0 = Duplicate PD Tag Not Detected
9355 * Bit 18: 1 = Duplicate Device Index Detected
9356 * 0 = Duplicate Device Index Not Detected
9358 proto_tree_add_item(sub_tree
, hf_ff_lr_diagnostic_msg_req_dup_detection_state_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
9359 proto_tree_add_item(sub_tree
, hf_ff_lr_diagnostic_msg_req_dup_detection_state_pd_tag
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
9360 proto_tree_add_item(sub_tree
, hf_ff_lr_diagnostic_msg_req_dup_detection_state_device
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
9366 dissect_ff_msg_diagnostic_msg_req_if_a_to_a_status(tvbuff_t
*tvb
,
9367 gint offset
, proto_tree
*tree
, guint32 value
)
9369 proto_tree
*sub_tree
;
9377 ti
= proto_tree_add_text(tree
, tvb
, offset
, 4 * value
,
9378 "List of Interface AtoA Statuses (%u bytes)", 4 * value
);
9379 sub_tree
= proto_item_add_subtree(ti
,
9380 ett_ff_lr_diagnostic_msg_req_a_to_a_status
);
9382 for (d
= 0; d
< value
; d
++) {
9383 proto_tree_add_item(sub_tree
,
9384 hf_ff_lr_diagnostic_msg_req_if_a_to_a_status
,
9385 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
9396 dissect_ff_msg_diagnostic_msg_req_if_b_to_a_status(tvbuff_t
*tvb
,
9397 gint offset
, proto_tree
*tree
, guint32 value
)
9399 proto_tree
*sub_tree
;
9407 ti
= proto_tree_add_text(tree
, tvb
, offset
, 4 * value
,
9408 "List of Interface BtoA Statuses (%u bytes)", 4 * value
);
9409 sub_tree
= proto_item_add_subtree(ti
,
9410 ett_ff_lr_diagnostic_msg_req_b_to_a_status
);
9412 for (d
= 0; d
< value
; d
++) {
9413 proto_tree_add_item(sub_tree
,
9414 hf_ff_lr_diagnostic_msg_req_if_b_to_a_status
,
9415 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
9426 dissect_ff_msg_diagnostic_msg_req_if_a_to_b_status(tvbuff_t
*tvb
,
9427 gint offset
, proto_tree
*tree
, guint32 value
)
9429 proto_tree
*sub_tree
;
9437 ti
= proto_tree_add_text(tree
, tvb
, offset
, 4 * value
,
9438 "List of Interface AtoB Statuses (%u bytes)", 4 * value
);
9439 sub_tree
= proto_item_add_subtree(ti
,
9440 ett_ff_lr_diagnostic_msg_req_a_to_b_status
);
9442 for (d
= 0; d
< value
; d
++) {
9443 proto_tree_add_item(sub_tree
,
9444 hf_ff_lr_diagnostic_msg_req_if_a_to_b_status
,
9445 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
9456 dissect_ff_msg_diagnostic_msg_req_if_b_to_b_status(tvbuff_t
*tvb
,
9457 gint offset
, proto_tree
*tree
, guint32 value
)
9459 proto_tree
*sub_tree
;
9467 ti
= proto_tree_add_text(tree
, tvb
, offset
, 4 * value
,
9468 "List of Interface BtoB Statuses (%u bytes)", 4 * value
);
9469 sub_tree
= proto_item_add_subtree(ti
,
9470 ett_ff_lr_diagnostic_msg_req_b_to_b_status
);
9472 for (d
= 0; d
< value
; d
++) {
9473 proto_tree_add_item(sub_tree
,
9474 hf_ff_lr_diagnostic_msg_req_if_b_to_b_status
,
9475 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
9486 dissect_ff_msg_diagnostic_msg_req(
9487 tvbuff_t
*tvb
, gint offset
,
9488 guint32 length
, packet_info
*pinfo
, proto_tree
*tree
)
9490 proto_tree
*sub_tree
;
9492 guint16 DeviceIndex
;
9493 guint8 DuplicateDetectionState
;
9494 guint16 NumOfInterfaceStatuses
;
9496 col_set_str(pinfo
->cinfo
, COL_INFO
, "Diagnostic Message Request");
9502 ti
= proto_tree_add_text(tree
, tvb
, offset
, length
,
9503 "Diagnostic Message Request");
9504 sub_tree
= proto_item_add_subtree(ti
, ett_ff_lr_diagnostic_msg_req
);
9506 DeviceIndex
= tvb_get_ntohs(tvb
, offset
);
9508 proto_tree_add_item(sub_tree
,
9509 hf_ff_lr_diagnostic_msg_req_dev_idx
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
9511 proto_tree_add_uint_format_value(sub_tree
,
9512 hf_ff_lr_diagnostic_msg_req_dev_idx
,
9513 tvb
, offset
, 2, DeviceIndex
,
9514 "Index not assigned (%u)", DeviceIndex
);
9519 proto_tree_add_item(sub_tree
,
9520 hf_ff_lr_diagnostic_msg_req_num_of_network_ifs
,
9521 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
9525 proto_tree_add_item(sub_tree
,
9526 hf_ff_lr_diagnostic_msg_req_transmission_if
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
9530 proto_tree_add_item(sub_tree
,
9531 hf_ff_lr_diagnostic_msg_req_diagnostic_msg_intvl
,
9532 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
9536 proto_tree_add_item(sub_tree
,
9537 hf_ff_lr_diagnostic_msg_req_pd_tag
, tvb
, offset
, 32, ENC_ASCII
|ENC_NA
);
9541 proto_tree_add_item(sub_tree
,
9542 hf_ff_lr_diagnostic_msg_req_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
9546 DuplicateDetectionState
= tvb_get_guint8(tvb
, offset
);
9547 dissect_ff_msg_diagnostic_msg_req_dup_detection_stat(tvb
,
9548 offset
, sub_tree
, DuplicateDetectionState
);
9552 NumOfInterfaceStatuses
= tvb_get_ntohs(tvb
, offset
);
9553 proto_tree_add_item(sub_tree
,
9554 hf_ff_lr_diagnostic_msg_req_num_of_if_statuses
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
9558 if (NumOfInterfaceStatuses
) {
9559 dissect_ff_msg_diagnostic_msg_req_if_a_to_a_status(tvb
,
9560 offset
, sub_tree
, NumOfInterfaceStatuses
);
9561 offset
+= 4 * NumOfInterfaceStatuses
;
9562 length
-= 4 * NumOfInterfaceStatuses
;
9564 dissect_ff_msg_diagnostic_msg_req_if_b_to_a_status(tvb
,
9565 offset
, sub_tree
, NumOfInterfaceStatuses
);
9566 offset
+= 4 * NumOfInterfaceStatuses
;
9567 length
-= 4 * NumOfInterfaceStatuses
;
9569 dissect_ff_msg_diagnostic_msg_req_if_a_to_b_status(tvb
,
9570 offset
, sub_tree
, NumOfInterfaceStatuses
);
9571 offset
+= 4 * NumOfInterfaceStatuses
;
9572 length
-= 4 * NumOfInterfaceStatuses
;
9574 dissect_ff_msg_diagnostic_msg_req_if_b_to_b_status(tvb
,
9575 offset
, sub_tree
, NumOfInterfaceStatuses
);
9576 offset
+= 4 * NumOfInterfaceStatuses
;
9577 length
-= 4 * NumOfInterfaceStatuses
;
9581 proto_tree_add_text(sub_tree
, tvb
, offset
, length
,
9582 "[Unknown] (%u bytes)", length
);
9591 * 6.5. Service-Specific Parameters
9594 dissect_ff_msg_body(tvbuff_t
*tvb
, gint offset
, guint32 length
,
9595 packet_info
*pinfo
, proto_tree
*tree
,
9596 guint8 ProtocolAndType
, guint8 Service
, guint32 FDAAddress
)
9598 proto_item
*hidden_item
;
9599 guint16 message
= 0;
9601 message
= ((guint16
)ProtocolAndType
) << 8;
9602 message
|= (guint16
)Service
;
9605 case FDA_MSG_SESSION_OPEN_REQ
:
9606 hidden_item
= proto_tree_add_boolean(tree
,
9607 hf_ff_fda
, tvb
, 0, 0, 1);
9608 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9609 hidden_item
= proto_tree_add_boolean(tree
,
9610 hf_ff_fda_open_sess
, tvb
, 0, 0, 1);
9611 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9612 hidden_item
= proto_tree_add_boolean(tree
,
9613 hf_ff_fda_open_sess_req
, tvb
, 0, 0, 1);
9614 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9616 dissect_ff_msg_fda_open_sess_req(tvb
, offset
, length
,
9620 case FDA_MSG_SESSION_OPEN_RSP
:
9621 hidden_item
= proto_tree_add_boolean(tree
,
9622 hf_ff_fda
, tvb
, 0, 0, 1);
9623 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9624 hidden_item
= proto_tree_add_boolean(tree
,
9625 hf_ff_fda_open_sess
, tvb
, 0, 0, 1);
9626 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9627 hidden_item
= proto_tree_add_boolean(tree
,
9628 hf_ff_fda_open_sess_rsp
, tvb
, 0, 0, 1);
9629 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9631 dissect_ff_msg_fda_open_sess_rsp(tvb
, offset
, length
,
9635 case FDA_MSG_SESSION_OPEN_ERR
:
9636 hidden_item
= proto_tree_add_boolean(tree
,
9637 hf_ff_fda
, tvb
, 0, 0, 1);
9638 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9639 hidden_item
= proto_tree_add_boolean(tree
,
9640 hf_ff_fda_open_sess
, tvb
, 0, 0, 1);
9641 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9642 hidden_item
= proto_tree_add_boolean(tree
,
9643 hf_ff_fda_open_sess_err
, tvb
, 0, 0, 1);
9644 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9646 dissect_ff_msg_fda_open_sess_err(tvb
, offset
, length
,
9650 case FDA_MSG_SESSION_IDLE_REQ
:
9651 hidden_item
= proto_tree_add_boolean(tree
,
9652 hf_ff_fda
, tvb
, 0, 0, 1);
9653 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9654 hidden_item
= proto_tree_add_boolean(tree
,
9655 hf_ff_fda_idle
, tvb
, 0, 0, 1);
9656 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9657 hidden_item
= proto_tree_add_boolean(tree
,
9658 hf_ff_fda_idle_req
, tvb
, 0, 0, 1);
9659 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9661 dissect_ff_msg_fda_idle_req(tvb
, offset
, length
,
9665 case FDA_MSG_SESSION_IDLE_RSP
:
9666 hidden_item
= proto_tree_add_boolean(tree
,
9667 hf_ff_fda
, tvb
, 0, 0, 1);
9668 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9669 hidden_item
= proto_tree_add_boolean(tree
,
9670 hf_ff_fda_idle
, tvb
, 0, 0, 1);
9671 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9672 hidden_item
= proto_tree_add_boolean(tree
,
9673 hf_ff_fda_idle_rsp
, tvb
, 0, 0, 1);
9674 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9676 dissect_ff_msg_fda_idle_rsp(tvb
, offset
, length
,
9680 case FDA_MSG_SESSION_IDLE_ERR
:
9681 hidden_item
= proto_tree_add_boolean(tree
,
9682 hf_ff_fda
, tvb
, 0, 0, 1);
9683 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9684 hidden_item
= proto_tree_add_boolean(tree
,
9685 hf_ff_fda_idle
, tvb
, 0, 0, 1);
9686 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9687 hidden_item
= proto_tree_add_boolean(tree
,
9688 hf_ff_fda_idle_err
, tvb
, 0, 0, 1);
9689 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9691 dissect_ff_msg_fda_idle_err(tvb
, offset
, length
,
9695 case SM_MSG_FIND_TAG_QUERY_REQ
:
9696 hidden_item
= proto_tree_add_boolean(tree
,
9697 hf_ff_sm
, tvb
, 0, 0, 1);
9698 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9699 hidden_item
= proto_tree_add_boolean(tree
,
9700 hf_ff_sm_find_tag_query
, tvb
, 0, 0, 1);
9701 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9702 hidden_item
= proto_tree_add_boolean(tree
,
9703 hf_ff_sm_find_tag_query_req
, tvb
, 0, 0, 1);
9704 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9706 dissect_ff_msg_sm_find_tag_query_req(tvb
, offset
, length
,
9710 case SM_MSG_FIND_TAG_REPLY_REQ
:
9711 hidden_item
= proto_tree_add_boolean(tree
,
9712 hf_ff_sm
, tvb
, 0, 0, 1);
9713 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9714 hidden_item
= proto_tree_add_boolean(tree
,
9715 hf_ff_sm_find_tag_reply
, tvb
, 0, 0, 1);
9716 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9717 hidden_item
= proto_tree_add_boolean(tree
,
9718 hf_ff_sm_find_tag_reply_req
, tvb
, 0, 0, 1);
9719 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9721 dissect_ff_msg_sm_find_tag_reply_req(tvb
, offset
, length
,
9725 case SM_MSG_IDENTIFY_REQ
:
9726 hidden_item
= proto_tree_add_boolean(tree
,
9727 hf_ff_sm
, tvb
, 0, 0, 1);
9728 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9729 hidden_item
= proto_tree_add_boolean(tree
,
9730 hf_ff_sm_id
, tvb
, 0, 0, 1);
9731 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9732 hidden_item
= proto_tree_add_boolean(tree
,
9733 hf_ff_sm_id_req
, tvb
, 0, 0, 1);
9734 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9736 dissect_ff_msg_sm_id_req(tvb
, offset
, length
,
9740 case SM_MSG_IDENTIFY_RSP
:
9741 hidden_item
= proto_tree_add_boolean(tree
,
9742 hf_ff_sm
, tvb
, 0, 0, 1);
9743 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9744 hidden_item
= proto_tree_add_boolean(tree
,
9745 hf_ff_sm_id
, tvb
, 0, 0, 1);
9746 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9747 hidden_item
= proto_tree_add_boolean(tree
,
9748 hf_ff_sm_id_rsp
, tvb
, 0, 0, 1);
9749 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9751 dissect_ff_msg_sm_id_rsp(tvb
, offset
, length
,
9752 pinfo
, tree
, FDAAddress
);
9755 case SM_MSG_IDENTIFY_ERR
:
9756 hidden_item
= proto_tree_add_boolean(tree
,
9757 hf_ff_sm
, tvb
, 0, 0, 1);
9758 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9759 hidden_item
= proto_tree_add_boolean(tree
,
9760 hf_ff_sm_id
, tvb
, 0, 0, 1);
9761 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9762 hidden_item
= proto_tree_add_boolean(tree
,
9763 hf_ff_sm_id_err
, tvb
, 0, 0, 1);
9764 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9766 dissect_ff_msg_sm_id_err(tvb
, offset
, length
,
9770 case SM_MSG_CLEAR_ADDRESS_REQ
:
9771 hidden_item
= proto_tree_add_boolean(tree
,
9772 hf_ff_sm
, tvb
, 0, 0, 1);
9773 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9774 hidden_item
= proto_tree_add_boolean(tree
,
9775 hf_ff_sm_clear_addr
, tvb
, 0, 0, 1);
9776 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9777 hidden_item
= proto_tree_add_boolean(tree
,
9778 hf_ff_sm_clear_addr_req
, tvb
, 0, 0, 1);
9779 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9781 dissect_ff_msg_sm_clear_addr_req(tvb
, offset
, length
,
9785 case SM_MSG_CLEAR_ADDRESS_RSP
:
9786 hidden_item
= proto_tree_add_boolean(tree
,
9787 hf_ff_sm
, tvb
, 0, 0, 1);
9788 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9789 hidden_item
= proto_tree_add_boolean(tree
,
9790 hf_ff_sm_clear_addr
, tvb
, 0, 0, 1);
9791 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9792 hidden_item
= proto_tree_add_boolean(tree
,
9793 hf_ff_sm_clear_addr_rsp
, tvb
, 0, 0, 1);
9794 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9796 dissect_ff_msg_sm_clear_addr_rsp(tvb
, offset
, length
,
9800 case SM_MSG_CLEAR_ADDRESS_ERR
:
9801 hidden_item
= proto_tree_add_boolean(tree
,
9802 hf_ff_sm
, tvb
, 0, 0, 1);
9803 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9804 hidden_item
= proto_tree_add_boolean(tree
,
9805 hf_ff_sm_clear_addr
, tvb
, 0, 0, 1);
9806 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9807 hidden_item
= proto_tree_add_boolean(tree
,
9808 hf_ff_sm_clear_addr_err
, tvb
, 0, 0, 1);
9809 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9811 dissect_ff_msg_sm_clear_addr_err(tvb
, offset
, length
,
9815 case SM_MSG_SET_ASSIGNMENT_REQ
:
9816 hidden_item
= proto_tree_add_boolean(tree
,
9817 hf_ff_sm
, tvb
, 0, 0, 1);
9818 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9819 hidden_item
= proto_tree_add_boolean(tree
,
9820 hf_ff_sm_set_assign_info
, tvb
, 0, 0, 1);
9821 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9822 hidden_item
= proto_tree_add_boolean(tree
,
9823 hf_ff_sm_set_assign_info_req
, tvb
, 0, 0, 1);
9824 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9826 dissect_ff_msg_sm_set_assign_info_req(tvb
, offset
,
9827 length
, pinfo
, tree
);
9830 case SM_MSG_SET_ASSIGNMENT_RSP
:
9831 hidden_item
= proto_tree_add_boolean(tree
,
9832 hf_ff_sm
, tvb
, 0, 0, 1);
9833 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9834 hidden_item
= proto_tree_add_boolean(tree
,
9835 hf_ff_sm_set_assign_info
, tvb
, 0, 0, 1);
9836 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9837 hidden_item
= proto_tree_add_boolean(tree
,
9838 hf_ff_sm_set_assign_info_rsp
, tvb
, 0, 0, 1);
9839 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9841 dissect_ff_msg_sm_set_assign_info_rsp(tvb
, offset
,
9842 length
, pinfo
, tree
);
9845 case SM_MSG_SET_ASSIGNMENT_ERR
:
9846 hidden_item
= proto_tree_add_boolean(tree
,
9847 hf_ff_sm
, tvb
, 0, 0, 1);
9848 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9849 hidden_item
= proto_tree_add_boolean(tree
,
9850 hf_ff_sm_set_assign_info
, tvb
, 0, 0, 1);
9851 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9852 hidden_item
= proto_tree_add_boolean(tree
,
9853 hf_ff_sm_set_assign_info_err
, tvb
, 0, 0, 1);
9854 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9856 dissect_ff_msg_sm_set_assign_info_err(tvb
, offset
,
9857 length
, pinfo
, tree
);
9860 case SM_MSG_CLEAR_ASSIGNMENT_REQ
:
9861 hidden_item
= proto_tree_add_boolean(tree
,
9862 hf_ff_sm
, tvb
, 0, 0, 1);
9863 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9864 hidden_item
= proto_tree_add_boolean(tree
,
9865 hf_ff_sm_clear_assign_info
, tvb
, 0, 0, 1);
9866 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9867 hidden_item
= proto_tree_add_boolean(tree
,
9868 hf_ff_sm_clear_assign_info_req
, tvb
, 0, 0, 1);
9869 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9871 dissect_ff_msg_sm_clear_assign_info_req(tvb
, offset
,
9872 length
, pinfo
, tree
);
9875 case SM_MSG_CLEAR_ASSIGNMENT_RSP
:
9876 hidden_item
= proto_tree_add_boolean(tree
,
9877 hf_ff_sm
, tvb
, 0, 0, 1);
9878 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9879 hidden_item
= proto_tree_add_boolean(tree
,
9880 hf_ff_sm_clear_assign_info
, tvb
, 0, 0, 1);
9881 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9882 hidden_item
= proto_tree_add_boolean(tree
,
9883 hf_ff_sm_clear_assign_info_rsp
, tvb
, 0, 0, 1);
9884 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9886 dissect_ff_msg_sm_clear_assign_info_rsp(tvb
, offset
,
9887 length
, pinfo
, tree
);
9890 case SM_MSG_CLEAR_ASSIGNMENT_ERR
:
9891 hidden_item
= proto_tree_add_boolean(tree
,
9892 hf_ff_sm
, tvb
, 0, 0, 1);
9893 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9894 hidden_item
= proto_tree_add_boolean(tree
,
9895 hf_ff_sm_clear_assign_info
, tvb
, 0, 0, 1);
9896 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9897 hidden_item
= proto_tree_add_boolean(tree
,
9898 hf_ff_sm_clear_assign_info_err
, tvb
, 0, 0, 1);
9899 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9901 dissect_ff_msg_sm_clear_assign_info_err(tvb
, offset
,
9902 length
, pinfo
, tree
);
9905 case SM_MSG_DEVICE_ANNUNCIATION_REQ
:
9906 hidden_item
= proto_tree_add_boolean(tree
,
9907 hf_ff_sm
, tvb
, 0, 0, 1);
9908 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9909 hidden_item
= proto_tree_add_boolean(tree
,
9910 hf_ff_sm_dev_annunc
, tvb
, 0, 0, 1);
9911 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9912 hidden_item
= proto_tree_add_boolean(tree
,
9913 hf_ff_sm_dev_annunc_req
, tvb
, 0, 0, 1);
9914 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9916 dissect_ff_msg_sm_dev_annunc_req(tvb
, offset
,
9917 length
, pinfo
, tree
, FDAAddress
);
9920 case FMS_MSG_INITIATE_REQ
:
9921 hidden_item
= proto_tree_add_boolean(tree
,
9922 hf_ff_fms
, tvb
, 0, 0, 1);
9923 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9924 hidden_item
= proto_tree_add_boolean(tree
,
9925 hf_ff_fms_init
, tvb
, 0, 0, 1);
9926 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9927 hidden_item
= proto_tree_add_boolean(tree
,
9928 hf_ff_fms_init_req
, tvb
, 0, 0, 1);
9929 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9931 dissect_ff_msg_fms_init_req(tvb
, offset
,
9932 length
, pinfo
, tree
);
9935 case FMS_MSG_INITIATE_RSP
:
9936 hidden_item
= proto_tree_add_boolean(tree
,
9937 hf_ff_fms
, tvb
, 0, 0, 1);
9938 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9939 hidden_item
= proto_tree_add_boolean(tree
,
9940 hf_ff_fms_init
, tvb
, 0, 0, 1);
9941 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9942 hidden_item
= proto_tree_add_boolean(tree
,
9943 hf_ff_fms_init_rsp
, tvb
, 0, 0, 1);
9944 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9946 dissect_ff_msg_fms_init_rsp(tvb
, offset
,
9947 length
, pinfo
, tree
);
9950 case FMS_MSG_INITIATE_ERR
:
9951 hidden_item
= proto_tree_add_boolean(tree
,
9952 hf_ff_fms
, tvb
, 0, 0, 1);
9953 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9954 hidden_item
= proto_tree_add_boolean(tree
,
9955 hf_ff_fms_init
, tvb
, 0, 0, 1);
9956 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9957 hidden_item
= proto_tree_add_boolean(tree
,
9958 hf_ff_fms_init_err
, tvb
, 0, 0, 1);
9959 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9961 dissect_ff_msg_fms_init_err(tvb
, offset
,
9962 length
, pinfo
, tree
);
9965 case FMS_MSG_ABORT_REQ
:
9966 hidden_item
= proto_tree_add_boolean(tree
,
9967 hf_ff_fms
, tvb
, 0, 0, 1);
9968 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9969 hidden_item
= proto_tree_add_boolean(tree
,
9970 hf_ff_fms_abort
, tvb
, 0, 0, 1);
9971 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9972 hidden_item
= proto_tree_add_boolean(tree
,
9973 hf_ff_fms_abort_req
, tvb
, 0, 0, 1);
9974 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9976 dissect_ff_msg_fms_abort_req(tvb
, offset
,
9977 length
, pinfo
, tree
);
9980 case FMS_MSG_STATUS_REQ
:
9981 hidden_item
= proto_tree_add_boolean(tree
,
9982 hf_ff_fms
, tvb
, 0, 0, 1);
9983 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9984 hidden_item
= proto_tree_add_boolean(tree
,
9985 hf_ff_fms_status
, tvb
, 0, 0, 1);
9986 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9987 hidden_item
= proto_tree_add_boolean(tree
,
9988 hf_ff_fms_status_req
, tvb
, 0, 0, 1);
9989 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9991 dissect_ff_msg_fms_status_req(tvb
, offset
,
9992 length
, pinfo
, tree
);
9995 case FMS_MSG_STATUS_RSP
:
9996 hidden_item
= proto_tree_add_boolean(tree
,
9997 hf_ff_fms
, tvb
, 0, 0, 1);
9998 PROTO_ITEM_SET_HIDDEN(hidden_item
);
9999 hidden_item
= proto_tree_add_boolean(tree
,
10000 hf_ff_fms_status
, tvb
, 0, 0, 1);
10001 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10002 hidden_item
= proto_tree_add_boolean(tree
,
10003 hf_ff_fms_status_rsp
, tvb
, 0, 0, 1);
10004 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10006 dissect_ff_msg_fms_status_rsp(tvb
, offset
,
10007 length
, pinfo
, tree
);
10010 case FMS_MSG_STATUS_ERR
:
10011 hidden_item
= proto_tree_add_boolean(tree
,
10012 hf_ff_fms
, tvb
, 0, 0, 1);
10013 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10014 hidden_item
= proto_tree_add_boolean(tree
,
10015 hf_ff_fms_status
, tvb
, 0, 0, 1);
10016 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10017 hidden_item
= proto_tree_add_boolean(tree
,
10018 hf_ff_fms_status_err
, tvb
, 0, 0, 1);
10019 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10021 dissect_ff_msg_fms_status_err(tvb
, offset
,
10022 length
, pinfo
, tree
);
10025 case FMS_MSG_UNSOLICITED_STATUS_REQ
:
10026 hidden_item
= proto_tree_add_boolean(tree
,
10027 hf_ff_fms
, tvb
, 0, 0, 1);
10028 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10029 hidden_item
= proto_tree_add_boolean(tree
,
10030 hf_ff_fms_unsolicited_status
, tvb
, 0, 0, 1);
10031 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10032 hidden_item
= proto_tree_add_boolean(tree
,
10033 hf_ff_fms_unsolicited_status_req
, tvb
, 0, 0, 1);
10034 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10036 dissect_ff_msg_fms_unsolicited_status_req(tvb
, offset
,
10037 length
, pinfo
, tree
);
10040 case FMS_MSG_IDENTIFY_REQ
:
10041 hidden_item
= proto_tree_add_boolean(tree
,
10042 hf_ff_fms
, tvb
, 0, 0, 1);
10043 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10044 hidden_item
= proto_tree_add_boolean(tree
,
10045 hf_ff_fms_id
, tvb
, 0, 0, 1);
10046 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10047 hidden_item
= proto_tree_add_boolean(tree
,
10048 hf_ff_fms_id_req
, tvb
, 0, 0, 1);
10049 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10051 dissect_ff_msg_fms_id_req(tvb
, offset
,
10052 length
, pinfo
, tree
);
10055 case FMS_MSG_IDENTIFY_RSP
:
10056 hidden_item
= proto_tree_add_boolean(tree
,
10057 hf_ff_fms
, tvb
, 0, 0, 1);
10058 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10059 hidden_item
= proto_tree_add_boolean(tree
,
10060 hf_ff_fms_id
, tvb
, 0, 0, 1);
10061 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10062 hidden_item
= proto_tree_add_boolean(tree
,
10063 hf_ff_fms_id_rsp
, tvb
, 0, 0, 1);
10064 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10066 dissect_ff_msg_fms_id_rsp(tvb
, offset
,
10067 length
, pinfo
, tree
);
10070 case FMS_MSG_IDENTIFY_ERR
:
10071 hidden_item
= proto_tree_add_boolean(tree
,
10072 hf_ff_fms
, tvb
, 0, 0, 1);
10073 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10074 hidden_item
= proto_tree_add_boolean(tree
,
10075 hf_ff_fms_id
, tvb
, 0, 0, 1);
10076 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10077 hidden_item
= proto_tree_add_boolean(tree
,
10078 hf_ff_fms_id_err
, tvb
, 0, 0, 1);
10079 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10081 dissect_ff_msg_fms_id_err(tvb
, offset
,
10082 length
, pinfo
, tree
);
10085 case FMS_MSG_GET_OD_REQ
:
10086 hidden_item
= proto_tree_add_boolean(tree
,
10087 hf_ff_fms
, tvb
, 0, 0, 1);
10088 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10089 hidden_item
= proto_tree_add_boolean(tree
,
10090 hf_ff_fms_get_od
, tvb
, 0, 0, 1);
10091 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10092 hidden_item
= proto_tree_add_boolean(tree
,
10093 hf_ff_fms_get_od_req
, tvb
, 0, 0, 1);
10094 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10096 dissect_ff_msg_fms_get_od_req(tvb
, offset
,
10097 length
, pinfo
, tree
);
10100 case FMS_MSG_GET_OD_RSP
:
10101 hidden_item
= proto_tree_add_boolean(tree
,
10102 hf_ff_fms
, tvb
, 0, 0, 1);
10103 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10104 hidden_item
= proto_tree_add_boolean(tree
,
10105 hf_ff_fms_get_od
, tvb
, 0, 0, 1);
10106 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10107 hidden_item
= proto_tree_add_boolean(tree
,
10108 hf_ff_fms_get_od_rsp
, tvb
, 0, 0, 1);
10109 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10111 dissect_ff_msg_fms_get_od_rsp(tvb
, offset
,
10112 length
, pinfo
, tree
);
10115 case FMS_MSG_GET_OD_ERR
:
10116 hidden_item
= proto_tree_add_boolean(tree
,
10117 hf_ff_fms
, tvb
, 0, 0, 1);
10118 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10119 hidden_item
= proto_tree_add_boolean(tree
,
10120 hf_ff_fms_get_od
, tvb
, 0, 0, 1);
10121 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10122 hidden_item
= proto_tree_add_boolean(tree
,
10123 hf_ff_fms_get_od_err
, tvb
, 0, 0, 1);
10124 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10126 dissect_ff_msg_fms_get_od_err(tvb
, offset
,
10127 length
, pinfo
, tree
);
10130 case FMS_MSG_INITIATE_PUT_OD_REQ
:
10131 hidden_item
= proto_tree_add_boolean(tree
,
10132 hf_ff_fms
, tvb
, 0, 0, 1);
10133 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10134 hidden_item
= proto_tree_add_boolean(tree
,
10135 hf_ff_fms_init_put_od
, tvb
, 0, 0, 1);
10136 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10137 hidden_item
= proto_tree_add_boolean(tree
,
10138 hf_ff_fms_init_put_od_req
, tvb
, 0, 0, 1);
10139 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10141 dissect_ff_msg_fms_init_put_od_req(tvb
, offset
,
10142 length
, pinfo
, tree
);
10145 case FMS_MSG_INITIATE_PUT_OD_RSP
:
10146 hidden_item
= proto_tree_add_boolean(tree
,
10147 hf_ff_fms
, tvb
, 0, 0, 1);
10148 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10149 hidden_item
= proto_tree_add_boolean(tree
,
10150 hf_ff_fms_init_put_od
, tvb
, 0, 0, 1);
10151 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10152 hidden_item
= proto_tree_add_boolean(tree
,
10153 hf_ff_fms_init_put_od_rsp
, tvb
, 0, 0, 1);
10154 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10156 dissect_ff_msg_fms_init_put_od_rsp(tvb
, offset
,
10157 length
, pinfo
, tree
);
10160 case FMS_MSG_INITIATE_PUT_OD_ERR
:
10161 hidden_item
= proto_tree_add_boolean(tree
,
10162 hf_ff_fms
, tvb
, 0, 0, 1);
10163 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10164 hidden_item
= proto_tree_add_boolean(tree
,
10165 hf_ff_fms_init_put_od
, tvb
, 0, 0, 1);
10166 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10167 hidden_item
= proto_tree_add_boolean(tree
,
10168 hf_ff_fms_init_put_od_err
, tvb
, 0, 0, 1);
10169 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10171 dissect_ff_msg_fms_init_put_od_err(tvb
, offset
,
10172 length
, pinfo
, tree
);
10175 case FMS_MSG_PUT_OD_REQ
:
10176 hidden_item
= proto_tree_add_boolean(tree
,
10177 hf_ff_fms
, tvb
, 0, 0, 1);
10178 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10179 hidden_item
= proto_tree_add_boolean(tree
,
10180 hf_ff_fms_put_od
, tvb
, 0, 0, 1);
10181 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10182 hidden_item
= proto_tree_add_boolean(tree
,
10183 hf_ff_fms_put_od_req
, tvb
, 0, 0, 1);
10184 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10186 dissect_ff_msg_fms_put_od_req(tvb
, offset
,
10187 length
, pinfo
, tree
);
10190 case FMS_MSG_PUT_OD_RSP
:
10191 hidden_item
= proto_tree_add_boolean(tree
,
10192 hf_ff_fms
, tvb
, 0, 0, 1);
10193 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10194 hidden_item
= proto_tree_add_boolean(tree
,
10195 hf_ff_fms_put_od
, tvb
, 0, 0, 1);
10196 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10197 hidden_item
= proto_tree_add_boolean(tree
,
10198 hf_ff_fms_put_od_rsp
, tvb
, 0, 0, 1);
10199 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10201 dissect_ff_msg_fms_put_od_rsp(tvb
, offset
,
10202 length
, pinfo
, tree
);
10205 case FMS_MSG_PUT_OD_ERR
:
10206 hidden_item
= proto_tree_add_boolean(tree
,
10207 hf_ff_fms
, tvb
, 0, 0, 1);
10208 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10209 hidden_item
= proto_tree_add_boolean(tree
,
10210 hf_ff_fms_put_od
, tvb
, 0, 0, 1);
10211 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10212 hidden_item
= proto_tree_add_boolean(tree
,
10213 hf_ff_fms_put_od_err
, tvb
, 0, 0, 1);
10214 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10216 dissect_ff_msg_fms_put_od_err(tvb
, offset
,
10217 length
, pinfo
, tree
);
10220 case FMS_MSG_TERMINATE_PUT_OD_REQ
:
10221 hidden_item
= proto_tree_add_boolean(tree
,
10222 hf_ff_fms
, tvb
, 0, 0, 1);
10223 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10224 hidden_item
= proto_tree_add_boolean(tree
,
10225 hf_ff_fms_terminate_put_od
, tvb
, 0, 0, 1);
10226 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10227 hidden_item
= proto_tree_add_boolean(tree
,
10228 hf_ff_fms_terminate_put_od_req
, tvb
, 0, 0, 1);
10229 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10231 dissect_ff_msg_fms_terminate_put_od_req(tvb
, offset
,
10232 length
, pinfo
, tree
);
10235 case FMS_MSG_TERMINATE_PUT_OD_RSP
:
10236 hidden_item
= proto_tree_add_boolean(tree
,
10237 hf_ff_fms
, tvb
, 0, 0, 1);
10238 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10239 hidden_item
= proto_tree_add_boolean(tree
,
10240 hf_ff_fms_terminate_put_od
, tvb
, 0, 0, 1);
10241 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10242 hidden_item
= proto_tree_add_boolean(tree
,
10243 hf_ff_fms_terminate_put_od_rsp
, tvb
, 0, 0, 1);
10244 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10246 dissect_ff_msg_fms_terminate_put_od_rsp(tvb
, offset
,
10247 length
, pinfo
, tree
);
10250 case FMS_MSG_TERMINATE_PUT_OD_ERR
:
10251 hidden_item
= proto_tree_add_boolean(tree
,
10252 hf_ff_fms
, tvb
, 0, 0, 1);
10253 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10254 hidden_item
= proto_tree_add_boolean(tree
,
10255 hf_ff_fms_terminate_put_od
, tvb
, 0, 0, 1);
10256 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10257 hidden_item
= proto_tree_add_boolean(tree
,
10258 hf_ff_fms_terminate_put_od_err
, tvb
, 0, 0, 1);
10259 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10261 dissect_ff_msg_fms_terminate_put_od_err(tvb
, offset
,
10262 length
, pinfo
, tree
);
10265 case FMS_MSG_GENERIC_INITIATE_DOWNLOAD_SEQUENCE_REQ
:
10266 hidden_item
= proto_tree_add_boolean(tree
,
10267 hf_ff_fms
, tvb
, 0, 0, 1);
10268 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10269 hidden_item
= proto_tree_add_boolean(tree
,
10270 hf_ff_fms_gen_init_download_seq
, tvb
, 0, 0, 1);
10271 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10272 hidden_item
= proto_tree_add_boolean(tree
,
10273 hf_ff_fms_gen_init_download_seq_req
, tvb
, 0, 0, 1);
10274 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10276 dissect_ff_msg_fms_generic_init_download_sequence_req(
10277 tvb
, offset
, length
, pinfo
, tree
);
10280 case FMS_MSG_GENERIC_INITIATE_DOWNLOAD_SEQUENCE_RSP
:
10281 hidden_item
= proto_tree_add_boolean(tree
,
10282 hf_ff_fms
, tvb
, 0, 0, 1);
10283 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10284 hidden_item
= proto_tree_add_boolean(tree
,
10285 hf_ff_fms_gen_init_download_seq
, tvb
, 0, 0, 1);
10286 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10287 hidden_item
= proto_tree_add_boolean(tree
,
10288 hf_ff_fms_gen_init_download_seq_rsp
, tvb
, 0, 0, 1);
10289 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10291 dissect_ff_msg_fms_generic_init_download_sequence_rsp(
10292 tvb
, offset
, length
, pinfo
, tree
);
10295 case FMS_MSG_GENERIC_INITIATE_DOWNLOAD_SEQUENCE_ERR
:
10296 hidden_item
= proto_tree_add_boolean(tree
,
10297 hf_ff_fms
, tvb
, 0, 0, 1);
10298 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10299 hidden_item
= proto_tree_add_boolean(tree
,
10300 hf_ff_fms_gen_init_download_seq
, tvb
, 0, 0, 1);
10301 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10302 hidden_item
= proto_tree_add_boolean(tree
,
10303 hf_ff_fms_gen_init_download_seq_err
, tvb
, 0, 0, 1);
10304 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10306 dissect_ff_msg_fms_generic_init_download_sequence_err(
10307 tvb
, offset
, length
, pinfo
, tree
);
10310 case FMS_MSG_GENERIC_DOWNLOAD_SEGMENT_REQ
:
10311 hidden_item
= proto_tree_add_boolean(tree
,
10312 hf_ff_fms
, tvb
, 0, 0, 1);
10313 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10314 hidden_item
= proto_tree_add_boolean(tree
,
10315 hf_ff_fms_gen_download_seg
, tvb
, 0, 0, 1);
10316 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10317 hidden_item
= proto_tree_add_boolean(tree
,
10318 hf_ff_fms_gen_download_seg_req
, tvb
, 0, 0, 1);
10319 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10321 dissect_ff_msg_fms_generic_download_segment_req(tvb
,
10322 offset
, length
, pinfo
, tree
);
10325 case FMS_MSG_GENERIC_DOWNLOAD_SEGMENT_RSP
:
10326 hidden_item
= proto_tree_add_boolean(tree
,
10327 hf_ff_fms
, tvb
, 0, 0, 1);
10328 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10329 hidden_item
= proto_tree_add_boolean(tree
,
10330 hf_ff_fms_gen_download_seg
, tvb
, 0, 0, 1);
10331 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10332 hidden_item
= proto_tree_add_boolean(tree
,
10333 hf_ff_fms_gen_download_seg_rsp
, tvb
, 0, 0, 1);
10334 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10336 dissect_ff_msg_fms_generic_download_segment_rsp(tvb
,
10337 offset
, length
, pinfo
, tree
);
10340 case FMS_MSG_GENERIC_DOWNLOAD_SEGMENT_ERR
:
10341 hidden_item
= proto_tree_add_boolean(tree
,
10342 hf_ff_fms
, tvb
, 0, 0, 1);
10343 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10344 hidden_item
= proto_tree_add_boolean(tree
,
10345 hf_ff_fms_gen_download_seg
, tvb
, 0, 0, 1);
10346 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10347 hidden_item
= proto_tree_add_boolean(tree
,
10348 hf_ff_fms_gen_download_seg_err
, tvb
, 0, 0, 1);
10349 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10351 dissect_ff_msg_fms_generic_download_segment_err(tvb
,
10352 offset
, length
, pinfo
, tree
);
10355 case FMS_MSG_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE_REQ
:
10356 hidden_item
= proto_tree_add_boolean(tree
,
10357 hf_ff_fms
, tvb
, 0, 0, 1);
10358 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10359 hidden_item
= proto_tree_add_boolean(tree
,
10360 hf_ff_fms_gen_terminate_download_seq
, tvb
, 0, 0, 1);
10361 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10362 hidden_item
= proto_tree_add_boolean(tree
,
10363 hf_ff_fms_gen_terminate_download_seq_req
, tvb
, 0, 0, 1);
10364 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10366 dissect_ff_msg_fms_generic_terminate_download_sequence_req(
10367 tvb
, offset
, length
, pinfo
, tree
);
10370 case FMS_MSG_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE_RSP
:
10371 hidden_item
= proto_tree_add_boolean(tree
,
10372 hf_ff_fms
, tvb
, 0, 0, 1);
10373 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10374 hidden_item
= proto_tree_add_boolean(tree
,
10375 hf_ff_fms_gen_terminate_download_seq
, tvb
, 0, 0, 1);
10376 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10377 hidden_item
= proto_tree_add_boolean(tree
,
10378 hf_ff_fms_gen_terminate_download_seq_rsp
, tvb
, 0, 0, 1);
10379 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10381 dissect_ff_msg_fms_generic_terminate_download_sequence_rsp(
10382 tvb
, offset
, length
, pinfo
, tree
);
10385 case FMS_MSG_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE_ERR
:
10386 hidden_item
= proto_tree_add_boolean(tree
,
10387 hf_ff_fms
, tvb
, 0, 0, 1);
10388 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10389 hidden_item
= proto_tree_add_boolean(tree
,
10390 hf_ff_fms_gen_terminate_download_seq
, tvb
, 0, 0, 1);
10391 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10392 hidden_item
= proto_tree_add_boolean(tree
,
10393 hf_ff_fms_gen_terminate_download_seq_err
, tvb
, 0, 0, 1);
10394 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10396 dissect_ff_msg_fms_generic_terminate_download_sequence_err(
10397 tvb
, offset
, length
, pinfo
, tree
);
10400 case FMS_MSG_INITIATE_DOWNLOAD_SEQUENCE_REQ
:
10401 hidden_item
= proto_tree_add_boolean(tree
,
10402 hf_ff_fms
, tvb
, 0, 0, 1);
10403 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10404 hidden_item
= proto_tree_add_boolean(tree
,
10405 hf_ff_fms_init_download_seq
, tvb
, 0, 0, 1);
10406 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10407 hidden_item
= proto_tree_add_boolean(tree
,
10408 hf_ff_fms_init_download_seq_req
, tvb
, 0, 0, 1);
10409 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10411 dissect_ff_msg_fms_init_download_sequence_req(tvb
,
10412 offset
, length
, pinfo
, tree
);
10415 case FMS_MSG_INITIATE_DOWNLOAD_SEQUENCE_RSP
:
10416 hidden_item
= proto_tree_add_boolean(tree
,
10417 hf_ff_fms
, tvb
, 0, 0, 1);
10418 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10419 hidden_item
= proto_tree_add_boolean(tree
,
10420 hf_ff_fms_init_download_seq
, tvb
, 0, 0, 1);
10421 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10422 hidden_item
= proto_tree_add_boolean(tree
,
10423 hf_ff_fms_init_download_seq_rsp
, tvb
, 0, 0, 1);
10424 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10426 dissect_ff_msg_fms_init_download_sequence_rsp(tvb
,
10427 offset
, length
, pinfo
, tree
);
10430 case FMS_MSG_INITIATE_DOWNLOAD_SEQUENCE_ERR
:
10431 hidden_item
= proto_tree_add_boolean(tree
,
10432 hf_ff_fms
, tvb
, 0, 0, 1);
10433 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10434 hidden_item
= proto_tree_add_boolean(tree
,
10435 hf_ff_fms_init_download_seq
, tvb
, 0, 0, 1);
10436 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10437 hidden_item
= proto_tree_add_boolean(tree
,
10438 hf_ff_fms_init_download_seq_err
, tvb
, 0, 0, 1);
10439 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10441 dissect_ff_msg_fms_init_download_sequence_err(tvb
,
10442 offset
, length
, pinfo
, tree
);
10445 case FMS_MSG_DOWNLOAD_SEGMENT_REQ
:
10446 hidden_item
= proto_tree_add_boolean(tree
,
10447 hf_ff_fms
, tvb
, 0, 0, 1);
10448 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10449 hidden_item
= proto_tree_add_boolean(tree
,
10450 hf_ff_fms_download_seg
, tvb
, 0, 0, 1);
10451 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10452 hidden_item
= proto_tree_add_boolean(tree
,
10453 hf_ff_fms_download_seg_req
, tvb
, 0, 0, 1);
10454 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10456 dissect_ff_msg_fms_download_segment_req(tvb
, offset
,
10457 length
, pinfo
, tree
);
10460 case FMS_MSG_DOWNLOAD_SEGMENT_RSP
:
10461 hidden_item
= proto_tree_add_boolean(tree
,
10462 hf_ff_fms
, tvb
, 0, 0, 1);
10463 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10464 hidden_item
= proto_tree_add_boolean(tree
,
10465 hf_ff_fms_download_seg
, tvb
, 0, 0, 1);
10466 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10467 hidden_item
= proto_tree_add_boolean(tree
,
10468 hf_ff_fms_download_seg_rsp
, tvb
, 0, 0, 1);
10469 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10471 dissect_ff_msg_fms_download_segment_rsp(tvb
, offset
,
10472 length
, pinfo
, tree
);
10475 case FMS_MSG_DOWNLOAD_SEGMENT_ERR
:
10476 hidden_item
= proto_tree_add_boolean(tree
,
10477 hf_ff_fms
, tvb
, 0, 0, 1);
10478 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10479 hidden_item
= proto_tree_add_boolean(tree
,
10480 hf_ff_fms_download_seg
, tvb
, 0, 0, 1);
10481 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10482 hidden_item
= proto_tree_add_boolean(tree
,
10483 hf_ff_fms_download_seg_err
, tvb
, 0, 0, 1);
10484 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10486 dissect_ff_msg_fms_download_segment_err(tvb
, offset
,
10487 length
, pinfo
, tree
);
10490 case FMS_MSG_TERMINATE_DOWNLOAD_SEQUENCE_REQ
:
10491 hidden_item
= proto_tree_add_boolean(tree
,
10492 hf_ff_fms
, tvb
, 0, 0, 1);
10493 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10494 hidden_item
= proto_tree_add_boolean(tree
,
10495 hf_ff_fms_terminate_download_seq
, tvb
, 0, 0, 1);
10496 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10497 hidden_item
= proto_tree_add_boolean(tree
,
10498 hf_ff_fms_terminate_download_seq_req
, tvb
, 0, 0, 1);
10499 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10501 dissect_ff_msg_fms_terminate_download_sequence_req(tvb
,
10502 offset
, length
, pinfo
, tree
);
10505 case FMS_MSG_TERMINATE_DOWNLOAD_SEQUENCE_RSP
:
10506 hidden_item
= proto_tree_add_boolean(tree
,
10507 hf_ff_fms
, tvb
, 0, 0, 1);
10508 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10509 hidden_item
= proto_tree_add_boolean(tree
,
10510 hf_ff_fms_terminate_download_seq
, tvb
, 0, 0, 1);
10511 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10512 hidden_item
= proto_tree_add_boolean(tree
,
10513 hf_ff_fms_terminate_download_seq_rsp
, tvb
, 0, 0, 1);
10514 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10516 dissect_ff_msg_fms_terminate_download_sequence_rsp(tvb
,
10517 offset
, length
, pinfo
, tree
);
10520 case FMS_MSG_TERMINATE_DOWNLOAD_SEQUENCE_ERR
:
10521 hidden_item
= proto_tree_add_boolean(tree
,
10522 hf_ff_fms
, tvb
, 0, 0, 1);
10523 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10524 hidden_item
= proto_tree_add_boolean(tree
,
10525 hf_ff_fms_terminate_download_seq
, tvb
, 0, 0, 1);
10526 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10527 hidden_item
= proto_tree_add_boolean(tree
,
10528 hf_ff_fms_terminate_download_seq_err
, tvb
, 0, 0, 1);
10529 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10531 dissect_ff_msg_fms_terminate_download_sequence_err(tvb
,
10532 offset
, length
, pinfo
, tree
);
10535 case FMS_MSG_INITIATE_UPLOAD_SEQUENCE_REQ
:
10536 hidden_item
= proto_tree_add_boolean(tree
,
10537 hf_ff_fms
, tvb
, 0, 0, 1);
10538 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10539 hidden_item
= proto_tree_add_boolean(tree
,
10540 hf_ff_fms_init_upload_seq
, tvb
, 0, 0, 1);
10541 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10542 hidden_item
= proto_tree_add_boolean(tree
,
10543 hf_ff_fms_init_upload_seq_req
, tvb
, 0, 0, 1);
10544 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10546 dissect_ff_msg_fms_init_upload_seq_req(tvb
,
10547 offset
, length
, pinfo
, tree
);
10550 case FMS_MSG_INITIATE_UPLOAD_SEQUENCE_RSP
:
10551 hidden_item
= proto_tree_add_boolean(tree
,
10552 hf_ff_fms
, tvb
, 0, 0, 1);
10553 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10554 hidden_item
= proto_tree_add_boolean(tree
,
10555 hf_ff_fms_init_upload_seq
, tvb
, 0, 0, 1);
10556 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10557 hidden_item
= proto_tree_add_boolean(tree
,
10558 hf_ff_fms_init_upload_seq_rsp
, tvb
, 0, 0, 1);
10559 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10561 dissect_ff_msg_fms_init_upload_seq_rsp(tvb
,
10562 offset
, length
, pinfo
, tree
);
10565 case FMS_MSG_INITIATE_UPLOAD_SEQUENCE_ERR
:
10566 hidden_item
= proto_tree_add_boolean(tree
,
10567 hf_ff_fms
, tvb
, 0, 0, 1);
10568 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10569 hidden_item
= proto_tree_add_boolean(tree
,
10570 hf_ff_fms_init_upload_seq
, tvb
, 0, 0, 1);
10571 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10572 hidden_item
= proto_tree_add_boolean(tree
,
10573 hf_ff_fms_init_upload_seq_err
, tvb
, 0, 0, 1);
10574 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10576 dissect_ff_msg_fms_init_upload_seq_err(tvb
,
10577 offset
, length
, pinfo
, tree
);
10580 case FMS_MSG_UPLOAD_SEGMENT_REQ
:
10581 hidden_item
= proto_tree_add_boolean(tree
,
10582 hf_ff_fms
, tvb
, 0, 0, 1);
10583 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10584 hidden_item
= proto_tree_add_boolean(tree
,
10585 hf_ff_fms_upload_seg
, tvb
, 0, 0, 1);
10586 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10587 hidden_item
= proto_tree_add_boolean(tree
,
10588 hf_ff_fms_upload_seg_req
, tvb
, 0, 0, 1);
10589 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10591 dissect_ff_msg_fms_upload_segment_req(tvb
, offset
,
10592 length
, pinfo
, tree
);
10595 case FMS_MSG_UPLOAD_SEGMENT_RSP
:
10596 hidden_item
= proto_tree_add_boolean(tree
,
10597 hf_ff_fms
, tvb
, 0, 0, 1);
10598 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10599 hidden_item
= proto_tree_add_boolean(tree
,
10600 hf_ff_fms_upload_seg
, tvb
, 0, 0, 1);
10601 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10602 hidden_item
= proto_tree_add_boolean(tree
,
10603 hf_ff_fms_upload_seg_rsp
, tvb
, 0, 0, 1);
10604 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10606 dissect_ff_msg_fms_upload_segment_rsp(tvb
, offset
,
10607 length
, pinfo
, tree
);
10610 case FMS_MSG_UPLOAD_SEGMENT_ERR
:
10611 hidden_item
= proto_tree_add_boolean(tree
,
10612 hf_ff_fms
, tvb
, 0, 0, 1);
10613 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10614 hidden_item
= proto_tree_add_boolean(tree
,
10615 hf_ff_fms_upload_seg
, tvb
, 0, 0, 1);
10616 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10617 hidden_item
= proto_tree_add_boolean(tree
,
10618 hf_ff_fms_upload_seg_err
, tvb
, 0, 0, 1);
10619 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10621 dissect_ff_msg_fms_upload_segment_err(tvb
, offset
,
10622 length
, pinfo
, tree
);
10625 case FMS_MSG_TERMINATE_UPLOAD_SEQUENCE_REQ
:
10626 hidden_item
= proto_tree_add_boolean(tree
,
10627 hf_ff_fms
, tvb
, 0, 0, 1);
10628 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10629 hidden_item
= proto_tree_add_boolean(tree
,
10630 hf_ff_fms_terminate_upload_seq
, tvb
, 0, 0, 1);
10631 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10632 hidden_item
= proto_tree_add_boolean(tree
,
10633 hf_ff_fms_terminate_upload_seq_req
, tvb
, 0, 0, 1);
10634 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10636 dissect_ff_msg_fms_terminate_upload_seq_req(tvb
,
10637 offset
, length
, pinfo
, tree
);
10640 case FMS_MSG_TERMINATE_UPLOAD_SEQUENCE_RSP
:
10641 hidden_item
= proto_tree_add_boolean(tree
,
10642 hf_ff_fms
, tvb
, 0, 0, 1);
10643 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10644 hidden_item
= proto_tree_add_boolean(tree
,
10645 hf_ff_fms_terminate_upload_seq
, tvb
, 0, 0, 1);
10646 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10647 hidden_item
= proto_tree_add_boolean(tree
,
10648 hf_ff_fms_terminate_upload_seq_rsp
, tvb
, 0, 0, 1);
10649 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10651 dissect_ff_msg_fms_terminate_upload_seq_rsp(tvb
,
10652 offset
, length
, pinfo
, tree
);
10655 case FMS_MSG_TERMINATE_UPLOAD_SEQUENCE_ERR
:
10656 hidden_item
= proto_tree_add_boolean(tree
,
10657 hf_ff_fms
, tvb
, 0, 0, 1);
10658 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10659 hidden_item
= proto_tree_add_boolean(tree
,
10660 hf_ff_fms_terminate_upload_seq
, tvb
, 0, 0, 1);
10661 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10662 hidden_item
= proto_tree_add_boolean(tree
,
10663 hf_ff_fms_terminate_upload_seq_err
, tvb
, 0, 0, 1);
10664 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10666 dissect_ff_msg_fms_terminate_upload_seq_err(tvb
,
10667 offset
, length
, pinfo
, tree
);
10670 case FMS_MSG_REQUEST_DOMAIN_DOWNLOAD_REQ
:
10671 hidden_item
= proto_tree_add_boolean(tree
,
10672 hf_ff_fms
, tvb
, 0, 0, 1);
10673 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10674 hidden_item
= proto_tree_add_boolean(tree
,
10675 hf_ff_fms_req_dom_download
, tvb
, 0, 0, 1);
10676 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10677 hidden_item
= proto_tree_add_boolean(tree
,
10678 hf_ff_fms_req_dom_download_req
, tvb
, 0, 0, 1);
10679 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10681 dissect_ff_msg_fms_req_dom_download_req(tvb
, offset
,
10682 length
, pinfo
, tree
);
10685 case FMS_MSG_REQUEST_DOMAIN_DOWNLOAD_RSP
:
10686 hidden_item
= proto_tree_add_boolean(tree
,
10687 hf_ff_fms
, tvb
, 0, 0, 1);
10688 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10689 hidden_item
= proto_tree_add_boolean(tree
,
10690 hf_ff_fms_req_dom_download
, tvb
, 0, 0, 1);
10691 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10692 hidden_item
= proto_tree_add_boolean(tree
,
10693 hf_ff_fms_req_dom_download_rsp
, tvb
, 0, 0, 1);
10694 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10696 dissect_ff_msg_fms_req_dom_download_rsp(tvb
, offset
,
10697 length
, pinfo
, tree
);
10700 case FMS_MSG_REQUEST_DOMAIN_DOWNLOAD_ERR
:
10701 hidden_item
= proto_tree_add_boolean(tree
,
10702 hf_ff_fms
, tvb
, 0, 0, 1);
10703 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10704 hidden_item
= proto_tree_add_boolean(tree
,
10705 hf_ff_fms_req_dom_download
, tvb
, 0, 0, 1);
10706 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10707 hidden_item
= proto_tree_add_boolean(tree
,
10708 hf_ff_fms_req_dom_download_err
, tvb
, 0, 0, 1);
10709 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10711 dissect_ff_msg_fms_req_dom_download_err(tvb
, offset
,
10712 length
, pinfo
, tree
);
10715 case FMS_MSG_REQUEST_DOMAIN_UPLOAD_REQ
:
10716 hidden_item
= proto_tree_add_boolean(tree
,
10717 hf_ff_fms
, tvb
, 0, 0, 1);
10718 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10719 hidden_item
= proto_tree_add_boolean(tree
,
10720 hf_ff_fms_req_dom_upload
, tvb
, 0, 0, 1);
10721 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10722 hidden_item
= proto_tree_add_boolean(tree
,
10723 hf_ff_fms_req_dom_upload_req
, tvb
, 0, 0, 1);
10724 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10726 dissect_ff_msg_fms_req_dom_upload_req(tvb
, offset
,
10727 length
, pinfo
, tree
);
10730 case FMS_MSG_REQUEST_DOMAIN_UPLOAD_RSP
:
10731 hidden_item
= proto_tree_add_boolean(tree
,
10732 hf_ff_fms
, tvb
, 0, 0, 1);
10733 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10734 hidden_item
= proto_tree_add_boolean(tree
,
10735 hf_ff_fms_req_dom_upload
, tvb
, 0, 0, 1);
10736 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10737 hidden_item
= proto_tree_add_boolean(tree
,
10738 hf_ff_fms_req_dom_upload_rsp
, tvb
, 0, 0, 1);
10739 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10741 dissect_ff_msg_fms_req_dom_upload_rsp(tvb
, offset
,
10742 length
, pinfo
, tree
);
10745 case FMS_MSG_REQUEST_DOMAIN_UPLOAD_ERR
:
10746 hidden_item
= proto_tree_add_boolean(tree
,
10747 hf_ff_fms
, tvb
, 0, 0, 1);
10748 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10749 hidden_item
= proto_tree_add_boolean(tree
,
10750 hf_ff_fms_req_dom_upload
, tvb
, 0, 0, 1);
10751 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10752 hidden_item
= proto_tree_add_boolean(tree
,
10753 hf_ff_fms_req_dom_upload_err
, tvb
, 0, 0, 1);
10754 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10756 dissect_ff_msg_fms_req_dom_upload_err(tvb
, offset
,
10757 length
, pinfo
, tree
);
10760 case FMS_MSG_CREATE_PI_REQ
:
10761 hidden_item
= proto_tree_add_boolean(tree
,
10762 hf_ff_fms
, tvb
, 0, 0, 1);
10763 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10764 hidden_item
= proto_tree_add_boolean(tree
,
10765 hf_ff_fms_create_pi
, tvb
, 0, 0, 1);
10766 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10767 hidden_item
= proto_tree_add_boolean(tree
,
10768 hf_ff_fms_create_pi_req
, tvb
, 0, 0, 1);
10769 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10771 dissect_ff_msg_fms_create_pi_req(tvb
, offset
,
10772 length
, pinfo
, tree
);
10775 case FMS_MSG_CREATE_PI_RSP
:
10776 hidden_item
= proto_tree_add_boolean(tree
,
10777 hf_ff_fms
, tvb
, 0, 0, 1);
10778 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10779 hidden_item
= proto_tree_add_boolean(tree
,
10780 hf_ff_fms_create_pi
, tvb
, 0, 0, 1);
10781 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10782 hidden_item
= proto_tree_add_boolean(tree
,
10783 hf_ff_fms_create_pi_rsp
, tvb
, 0, 0, 1);
10784 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10786 dissect_ff_msg_fms_create_pi_rsp(tvb
, offset
,
10787 length
, pinfo
, tree
);
10790 case FMS_MSG_CREATE_PI_ERR
:
10791 hidden_item
= proto_tree_add_boolean(tree
,
10792 hf_ff_fms
, tvb
, 0, 0, 1);
10793 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10794 hidden_item
= proto_tree_add_boolean(tree
,
10795 hf_ff_fms_create_pi
, tvb
, 0, 0, 1);
10796 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10797 hidden_item
= proto_tree_add_boolean(tree
,
10798 hf_ff_fms_create_pi_err
, tvb
, 0, 0, 1);
10799 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10801 dissect_ff_msg_fms_create_pi_err(tvb
, offset
,
10802 length
, pinfo
, tree
);
10805 case FMS_MSG_DELETE_PI_REQ
:
10806 hidden_item
= proto_tree_add_boolean(tree
,
10807 hf_ff_fms
, tvb
, 0, 0, 1);
10808 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10809 hidden_item
= proto_tree_add_boolean(tree
,
10810 hf_ff_fms_del_pi
, tvb
, 0, 0, 1);
10811 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10812 hidden_item
= proto_tree_add_boolean(tree
,
10813 hf_ff_fms_del_pi_req
, tvb
, 0, 0, 1);
10814 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10816 dissect_ff_msg_fms_del_pi_req(tvb
, offset
,
10817 length
, pinfo
, tree
);
10820 case FMS_MSG_DELETE_PI_RSP
:
10821 hidden_item
= proto_tree_add_boolean(tree
,
10822 hf_ff_fms
, tvb
, 0, 0, 1);
10823 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10824 hidden_item
= proto_tree_add_boolean(tree
,
10825 hf_ff_fms_del_pi
, tvb
, 0, 0, 1);
10826 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10827 hidden_item
= proto_tree_add_boolean(tree
,
10828 hf_ff_fms_del_pi_rsp
, tvb
, 0, 0, 1);
10829 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10831 dissect_ff_msg_fms_del_pi_rsp(tvb
, offset
,
10832 length
, pinfo
, tree
);
10835 case FMS_MSG_DELETE_PI_ERR
:
10836 hidden_item
= proto_tree_add_boolean(tree
,
10837 hf_ff_fms
, tvb
, 0, 0, 1);
10838 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10839 hidden_item
= proto_tree_add_boolean(tree
,
10840 hf_ff_fms_del_pi
, tvb
, 0, 0, 1);
10841 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10842 hidden_item
= proto_tree_add_boolean(tree
,
10843 hf_ff_fms_del_pi_err
, tvb
, 0, 0, 1);
10844 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10846 dissect_ff_msg_fms_del_pi_err(tvb
, offset
,
10847 length
, pinfo
, tree
);
10850 case FMS_MSG_START_PI_REQ
:
10851 hidden_item
= proto_tree_add_boolean(tree
,
10852 hf_ff_fms
, tvb
, 0, 0, 1);
10853 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10854 hidden_item
= proto_tree_add_boolean(tree
,
10855 hf_ff_fms_start
, tvb
, 0, 0, 1);
10856 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10857 hidden_item
= proto_tree_add_boolean(tree
,
10858 hf_ff_fms_start_req
, tvb
, 0, 0, 1);
10859 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10861 dissect_ff_msg_fms_start_pi_req(tvb
, offset
,
10862 length
, pinfo
, tree
);
10865 case FMS_MSG_START_PI_RSP
:
10866 hidden_item
= proto_tree_add_boolean(tree
,
10867 hf_ff_fms
, tvb
, 0, 0, 1);
10868 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10869 hidden_item
= proto_tree_add_boolean(tree
,
10870 hf_ff_fms_start
, tvb
, 0, 0, 1);
10871 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10872 hidden_item
= proto_tree_add_boolean(tree
,
10873 hf_ff_fms_start_rsp
, tvb
, 0, 0, 1);
10874 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10876 dissect_ff_msg_fms_start_pi_rsp(tvb
, offset
,
10877 length
, pinfo
, tree
);
10880 case FMS_MSG_START_PI_ERR
:
10881 hidden_item
= proto_tree_add_boolean(tree
,
10882 hf_ff_fms
, tvb
, 0, 0, 1);
10883 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10884 hidden_item
= proto_tree_add_boolean(tree
,
10885 hf_ff_fms_start
, tvb
, 0, 0, 1);
10886 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10887 hidden_item
= proto_tree_add_boolean(tree
,
10888 hf_ff_fms_start_err
, tvb
, 0, 0, 1);
10889 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10891 dissect_ff_msg_fms_start_pi_err(tvb
, offset
,
10892 length
, pinfo
, tree
);
10895 case FMS_MSG_STOP_PI_REQ
:
10896 hidden_item
= proto_tree_add_boolean(tree
,
10897 hf_ff_fms
, tvb
, 0, 0, 1);
10898 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10899 hidden_item
= proto_tree_add_boolean(tree
,
10900 hf_ff_fms_stop
, tvb
, 0, 0, 1);
10901 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10902 hidden_item
= proto_tree_add_boolean(tree
,
10903 hf_ff_fms_stop_req
, tvb
, 0, 0, 1);
10904 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10906 dissect_ff_msg_fms_stop_pi_req(tvb
, offset
,
10907 length
, pinfo
, tree
);
10910 case FMS_MSG_STOP_PI_RSP
:
10911 hidden_item
= proto_tree_add_boolean(tree
,
10912 hf_ff_fms
, tvb
, 0, 0, 1);
10913 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10914 hidden_item
= proto_tree_add_boolean(tree
,
10915 hf_ff_fms_stop
, tvb
, 0, 0, 1);
10916 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10917 hidden_item
= proto_tree_add_boolean(tree
,
10918 hf_ff_fms_stop_rsp
, tvb
, 0, 0, 1);
10919 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10921 dissect_ff_msg_fms_stop_pi_rsp(tvb
, offset
,
10922 length
, pinfo
, tree
);
10925 case FMS_MSG_STOP_PI_ERR
:
10926 hidden_item
= proto_tree_add_boolean(tree
,
10927 hf_ff_fms
, tvb
, 0, 0, 1);
10928 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10929 hidden_item
= proto_tree_add_boolean(tree
,
10930 hf_ff_fms_stop
, tvb
, 0, 0, 1);
10931 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10932 hidden_item
= proto_tree_add_boolean(tree
,
10933 hf_ff_fms_stop_err
, tvb
, 0, 0, 1);
10934 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10936 dissect_ff_msg_fms_stop_pi_err(tvb
, offset
,
10937 length
, pinfo
, tree
);
10940 case FMS_MSG_RESUME_PI_REQ
:
10941 hidden_item
= proto_tree_add_boolean(tree
,
10942 hf_ff_fms
, tvb
, 0, 0, 1);
10943 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10944 hidden_item
= proto_tree_add_boolean(tree
,
10945 hf_ff_fms_resume
, tvb
, 0, 0, 1);
10946 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10947 hidden_item
= proto_tree_add_boolean(tree
,
10948 hf_ff_fms_resume_req
, tvb
, 0, 0, 1);
10949 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10951 dissect_ff_msg_fms_resume_pi_req(tvb
, offset
,
10952 length
, pinfo
, tree
);
10955 case FMS_MSG_RESUME_PI_RSP
:
10956 hidden_item
= proto_tree_add_boolean(tree
,
10957 hf_ff_fms
, tvb
, 0, 0, 1);
10958 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10959 hidden_item
= proto_tree_add_boolean(tree
,
10960 hf_ff_fms_resume
, tvb
, 0, 0, 1);
10961 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10962 hidden_item
= proto_tree_add_boolean(tree
,
10963 hf_ff_fms_resume_rsp
, tvb
, 0, 0, 1);
10964 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10966 dissect_ff_msg_fms_resume_pi_rsp(tvb
, offset
,
10967 length
, pinfo
, tree
);
10970 case FMS_MSG_RESUME_PI_ERR
:
10971 hidden_item
= proto_tree_add_boolean(tree
,
10972 hf_ff_fms
, tvb
, 0, 0, 1);
10973 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10974 hidden_item
= proto_tree_add_boolean(tree
,
10975 hf_ff_fms_resume
, tvb
, 0, 0, 1);
10976 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10977 hidden_item
= proto_tree_add_boolean(tree
,
10978 hf_ff_fms_resume_err
, tvb
, 0, 0, 1);
10979 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10981 dissect_ff_msg_fms_resume_pi_err(tvb
, offset
,
10982 length
, pinfo
, tree
);
10985 case FMS_MSG_RESET_PI_REQ
:
10986 hidden_item
= proto_tree_add_boolean(tree
,
10987 hf_ff_fms
, tvb
, 0, 0, 1);
10988 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10989 hidden_item
= proto_tree_add_boolean(tree
,
10990 hf_ff_fms_reset
, tvb
, 0, 0, 1);
10991 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10992 hidden_item
= proto_tree_add_boolean(tree
,
10993 hf_ff_fms_reset_req
, tvb
, 0, 0, 1);
10994 PROTO_ITEM_SET_HIDDEN(hidden_item
);
10996 dissect_ff_msg_fms_reset_pi_req(tvb
, offset
,
10997 length
, pinfo
, tree
);
11000 case FMS_MSG_RESET_PI_RSP
:
11001 hidden_item
= proto_tree_add_boolean(tree
,
11002 hf_ff_fms
, tvb
, 0, 0, 1);
11003 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11004 hidden_item
= proto_tree_add_boolean(tree
,
11005 hf_ff_fms_reset
, tvb
, 0, 0, 1);
11006 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11007 hidden_item
= proto_tree_add_boolean(tree
,
11008 hf_ff_fms_reset_rsp
, tvb
, 0, 0, 1);
11009 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11011 dissect_ff_msg_fms_reset_pi_rsp(tvb
, offset
,
11012 length
, pinfo
, tree
);
11015 case FMS_MSG_RESET_PI_ERR
:
11016 hidden_item
= proto_tree_add_boolean(tree
,
11017 hf_ff_fms
, tvb
, 0, 0, 1);
11018 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11019 hidden_item
= proto_tree_add_boolean(tree
,
11020 hf_ff_fms_reset
, tvb
, 0, 0, 1);
11021 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11022 hidden_item
= proto_tree_add_boolean(tree
,
11023 hf_ff_fms_reset_err
, tvb
, 0, 0, 1);
11024 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11026 dissect_ff_msg_fms_reset_pi_err(tvb
, offset
,
11027 length
, pinfo
, tree
);
11030 case FMS_MSG_KILL_PI_REQ
:
11031 hidden_item
= proto_tree_add_boolean(tree
,
11032 hf_ff_fms
, tvb
, 0, 0, 1);
11033 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11034 hidden_item
= proto_tree_add_boolean(tree
,
11035 hf_ff_fms_kill
, tvb
, 0, 0, 1);
11036 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11037 hidden_item
= proto_tree_add_boolean(tree
,
11038 hf_ff_fms_kill_req
, tvb
, 0, 0, 1);
11039 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11041 dissect_ff_msg_fms_kill_pi_req(tvb
, offset
,
11042 length
, pinfo
, tree
);
11045 case FMS_MSG_KILL_PI_RSP
:
11046 hidden_item
= proto_tree_add_boolean(tree
,
11047 hf_ff_fms
, tvb
, 0, 0, 1);
11048 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11049 hidden_item
= proto_tree_add_boolean(tree
,
11050 hf_ff_fms_kill
, tvb
, 0, 0, 1);
11051 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11052 hidden_item
= proto_tree_add_boolean(tree
,
11053 hf_ff_fms_kill_rsp
, tvb
, 0, 0, 1);
11054 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11056 dissect_ff_msg_fms_kill_pi_rsp(tvb
, offset
,
11057 length
, pinfo
, tree
);
11060 case FMS_MSG_KILL_PI_ERR
:
11061 hidden_item
= proto_tree_add_boolean(tree
,
11062 hf_ff_fms
, tvb
, 0, 0, 1);
11063 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11064 hidden_item
= proto_tree_add_boolean(tree
,
11065 hf_ff_fms_kill
, tvb
, 0, 0, 1);
11066 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11067 hidden_item
= proto_tree_add_boolean(tree
,
11068 hf_ff_fms_kill_err
, tvb
, 0, 0, 1);
11069 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11071 dissect_ff_msg_fms_kill_pi_err(tvb
, offset
,
11072 length
, pinfo
, tree
);
11075 case FMS_MSG_READ_REQ
:
11076 hidden_item
= proto_tree_add_boolean(tree
,
11077 hf_ff_fms
, tvb
, 0, 0, 1);
11078 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11079 hidden_item
= proto_tree_add_boolean(tree
,
11080 hf_ff_fms_read
, tvb
, 0, 0, 1);
11081 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11082 hidden_item
= proto_tree_add_boolean(tree
,
11083 hf_ff_fms_read_req
, tvb
, 0, 0, 1);
11084 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11086 dissect_ff_msg_fms_read_req(tvb
, offset
,
11087 length
, pinfo
, tree
);
11090 case FMS_MSG_READ_RSP
:
11091 hidden_item
= proto_tree_add_boolean(tree
,
11092 hf_ff_fms
, tvb
, 0, 0, 1);
11093 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11094 hidden_item
= proto_tree_add_boolean(tree
,
11095 hf_ff_fms_read
, tvb
, 0, 0, 1);
11096 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11097 hidden_item
= proto_tree_add_boolean(tree
,
11098 hf_ff_fms_read_rsp
, tvb
, 0, 0, 1);
11099 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11101 dissect_ff_msg_fms_read_rsp(tvb
, offset
,
11102 length
, pinfo
, tree
);
11105 case FMS_MSG_READ_ERR
:
11106 hidden_item
= proto_tree_add_boolean(tree
,
11107 hf_ff_fms
, tvb
, 0, 0, 1);
11108 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11109 hidden_item
= proto_tree_add_boolean(tree
,
11110 hf_ff_fms_read
, tvb
, 0, 0, 1);
11111 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11112 hidden_item
= proto_tree_add_boolean(tree
,
11113 hf_ff_fms_read_err
, tvb
, 0, 0, 1);
11114 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11116 dissect_ff_msg_fms_read_err(tvb
, offset
,
11117 length
, pinfo
, tree
);
11120 case FMS_MSG_READ_SUBINDEX_REQ
:
11121 hidden_item
= proto_tree_add_boolean(tree
,
11122 hf_ff_fms
, tvb
, 0, 0, 1);
11123 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11124 hidden_item
= proto_tree_add_boolean(tree
,
11125 hf_ff_fms_read_with_subidx
, tvb
, 0, 0, 1);
11126 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11127 hidden_item
= proto_tree_add_boolean(tree
,
11128 hf_ff_fms_read_with_subidx_req
, tvb
, 0, 0, 1);
11129 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11131 dissect_ff_msg_fms_read_subindex_req(tvb
, offset
,
11132 length
, pinfo
, tree
);
11135 case FMS_MSG_READ_SUBINDEX_RSP
:
11136 hidden_item
= proto_tree_add_boolean(tree
,
11137 hf_ff_fms
, tvb
, 0, 0, 1);
11138 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11139 hidden_item
= proto_tree_add_boolean(tree
,
11140 hf_ff_fms_read_with_subidx
, tvb
, 0, 0, 1);
11141 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11142 hidden_item
= proto_tree_add_boolean(tree
,
11143 hf_ff_fms_read_with_subidx_rsp
, tvb
, 0, 0, 1);
11144 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11146 dissect_ff_msg_fms_read_subindex_rsp(tvb
, offset
,
11147 length
, pinfo
, tree
);
11150 case FMS_MSG_READ_SUBINDEX_ERR
:
11151 hidden_item
= proto_tree_add_boolean(tree
,
11152 hf_ff_fms
, tvb
, 0, 0, 1);
11153 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11154 hidden_item
= proto_tree_add_boolean(tree
,
11155 hf_ff_fms_read_with_subidx
, tvb
, 0, 0, 1);
11156 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11157 hidden_item
= proto_tree_add_boolean(tree
,
11158 hf_ff_fms_read_with_subidx_err
, tvb
, 0, 0, 1);
11159 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11161 dissect_ff_msg_fms_read_subindex_err(tvb
, offset
,
11162 length
, pinfo
, tree
);
11165 case FMS_MSG_WRITE_REQ
:
11166 hidden_item
= proto_tree_add_boolean(tree
,
11167 hf_ff_fms
, tvb
, 0, 0, 1);
11168 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11169 hidden_item
= proto_tree_add_boolean(tree
,
11170 hf_ff_fms_write
, tvb
, 0, 0, 1);
11171 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11172 hidden_item
= proto_tree_add_boolean(tree
,
11173 hf_ff_fms_write_req
, tvb
, 0, 0, 1);
11174 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11176 dissect_ff_msg_fms_write_req(tvb
, offset
,
11177 length
, pinfo
, tree
);
11180 case FMS_MSG_WRITE_RSP
:
11181 hidden_item
= proto_tree_add_boolean(tree
,
11182 hf_ff_fms
, tvb
, 0, 0, 1);
11183 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11184 hidden_item
= proto_tree_add_boolean(tree
,
11185 hf_ff_fms_write
, tvb
, 0, 0, 1);
11186 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11187 hidden_item
= proto_tree_add_boolean(tree
,
11188 hf_ff_fms_write_rsp
, tvb
, 0, 0, 1);
11189 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11191 dissect_ff_msg_fms_write_rsp(tvb
, offset
,
11192 length
, pinfo
, tree
);
11195 case FMS_MSG_WRITE_ERR
:
11196 hidden_item
= proto_tree_add_boolean(tree
,
11197 hf_ff_fms
, tvb
, 0, 0, 1);
11198 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11199 hidden_item
= proto_tree_add_boolean(tree
,
11200 hf_ff_fms_write
, tvb
, 0, 0, 1);
11201 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11202 hidden_item
= proto_tree_add_boolean(tree
,
11203 hf_ff_fms_write_err
, tvb
, 0, 0, 1);
11204 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11206 dissect_ff_msg_fms_write_err(tvb
, offset
,
11207 length
, pinfo
, tree
);
11210 case FMS_MSG_WRITE_SUBINDEX_REQ
:
11211 hidden_item
= proto_tree_add_boolean(tree
,
11212 hf_ff_fms
, tvb
, 0, 0, 1);
11213 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11214 hidden_item
= proto_tree_add_boolean(tree
,
11215 hf_ff_fms_write_with_subidx
, tvb
, 0, 0, 1);
11216 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11217 hidden_item
= proto_tree_add_boolean(tree
,
11218 hf_ff_fms_write_with_subidx_req
, tvb
, 0, 0, 1);
11219 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11221 dissect_ff_msg_fms_write_subindex_req(tvb
, offset
,
11222 length
, pinfo
, tree
);
11225 case FMS_MSG_WRITE_SUBINDEX_RSP
:
11226 hidden_item
= proto_tree_add_boolean(tree
,
11227 hf_ff_fms
, tvb
, 0, 0, 1);
11228 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11229 hidden_item
= proto_tree_add_boolean(tree
,
11230 hf_ff_fms_write_with_subidx
, tvb
, 0, 0, 1);
11231 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11232 hidden_item
= proto_tree_add_boolean(tree
,
11233 hf_ff_fms_write_with_subidx_rsp
, tvb
, 0, 0, 1);
11234 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11236 dissect_ff_msg_fms_write_subindex_rsp(tvb
, offset
,
11237 length
, pinfo
, tree
);
11240 case FMS_MSG_WRITE_SUBINDEX_ERR
:
11241 hidden_item
= proto_tree_add_boolean(tree
,
11242 hf_ff_fms
, tvb
, 0, 0, 1);
11243 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11244 hidden_item
= proto_tree_add_boolean(tree
,
11245 hf_ff_fms_write_with_subidx
, tvb
, 0, 0, 1);
11246 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11247 hidden_item
= proto_tree_add_boolean(tree
,
11248 hf_ff_fms_write_with_subidx_err
, tvb
, 0, 0, 1);
11249 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11251 dissect_ff_msg_fms_write_subindex_err(tvb
, offset
,
11252 length
, pinfo
, tree
);
11255 case FMS_MSG_DEFINE_VARIABLE_LIST_REQ
:
11256 hidden_item
= proto_tree_add_boolean(tree
,
11257 hf_ff_fms
, tvb
, 0, 0, 1);
11258 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11259 hidden_item
= proto_tree_add_boolean(tree
,
11260 hf_ff_fms_def_variable_list
, tvb
, 0, 0, 1);
11261 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11262 hidden_item
= proto_tree_add_boolean(tree
,
11263 hf_ff_fms_def_variable_list_req
, tvb
, 0, 0, 1);
11264 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11266 dissect_ff_msg_fms_def_variable_list_req(tvb
, offset
,
11267 length
, pinfo
, tree
);
11270 case FMS_MSG_DEFINE_VARIABLE_LIST_RSP
:
11271 hidden_item
= proto_tree_add_boolean(tree
,
11272 hf_ff_fms
, tvb
, 0, 0, 1);
11273 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11274 hidden_item
= proto_tree_add_boolean(tree
,
11275 hf_ff_fms_def_variable_list
, tvb
, 0, 0, 1);
11276 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11277 hidden_item
= proto_tree_add_boolean(tree
,
11278 hf_ff_fms_def_variable_list_rsp
, tvb
, 0, 0, 1);
11279 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11281 dissect_ff_msg_fms_def_variable_list_rsp(tvb
, offset
,
11282 length
, pinfo
, tree
);
11285 case FMS_MSG_DEFINE_VARIABLE_LIST_ERR
:
11286 hidden_item
= proto_tree_add_boolean(tree
,
11287 hf_ff_fms
, tvb
, 0, 0, 1);
11288 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11289 hidden_item
= proto_tree_add_boolean(tree
,
11290 hf_ff_fms_def_variable_list
, tvb
, 0, 0, 1);
11291 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11292 hidden_item
= proto_tree_add_boolean(tree
,
11293 hf_ff_fms_def_variable_list_err
, tvb
, 0, 0, 1);
11294 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11296 dissect_ff_msg_fms_def_variable_list_err(tvb
, offset
,
11297 length
, pinfo
, tree
);
11300 case FMS_MSG_DELETE_VARIABLE_LIST_REQ
:
11301 hidden_item
= proto_tree_add_boolean(tree
,
11302 hf_ff_fms
, tvb
, 0, 0, 1);
11303 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11304 hidden_item
= proto_tree_add_boolean(tree
,
11305 hf_ff_fms_del_variable_list
, tvb
, 0, 0, 1);
11306 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11307 hidden_item
= proto_tree_add_boolean(tree
,
11308 hf_ff_fms_del_variable_list_req
, tvb
, 0, 0, 1);
11309 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11311 dissect_ff_msg_fms_del_variable_list_req(tvb
, offset
,
11312 length
, pinfo
, tree
);
11315 case FMS_MSG_DELETE_VARIABLE_LIST_RSP
:
11316 hidden_item
= proto_tree_add_boolean(tree
,
11317 hf_ff_fms
, tvb
, 0, 0, 1);
11318 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11319 hidden_item
= proto_tree_add_boolean(tree
,
11320 hf_ff_fms_del_variable_list
, tvb
, 0, 0, 1);
11321 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11322 hidden_item
= proto_tree_add_boolean(tree
,
11323 hf_ff_fms_del_variable_list_rsp
, tvb
, 0, 0, 1);
11324 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11326 dissect_ff_msg_fms_del_variable_list_rsp(tvb
, offset
,
11327 length
, pinfo
, tree
);
11330 case FMS_MSG_DELETE_VARIABLE_LIST_ERR
:
11331 hidden_item
= proto_tree_add_boolean(tree
,
11332 hf_ff_fms
, tvb
, 0, 0, 1);
11333 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11334 hidden_item
= proto_tree_add_boolean(tree
,
11335 hf_ff_fms_del_variable_list
, tvb
, 0, 0, 1);
11336 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11337 hidden_item
= proto_tree_add_boolean(tree
,
11338 hf_ff_fms_del_variable_list_err
, tvb
, 0, 0, 1);
11339 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11341 dissect_ff_msg_fms_del_variable_list_err(tvb
, offset
,
11342 length
, pinfo
, tree
);
11345 case FMS_MSG_INFO_REPORT_REQ
:
11346 hidden_item
= proto_tree_add_boolean(tree
,
11347 hf_ff_fms
, tvb
, 0, 0, 1);
11348 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11349 hidden_item
= proto_tree_add_boolean(tree
,
11350 hf_ff_fms_info_report
, tvb
, 0, 0, 1);
11351 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11352 hidden_item
= proto_tree_add_boolean(tree
,
11353 hf_ff_fms_info_report_req
, tvb
, 0, 0, 1);
11354 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11356 dissect_ff_msg_fms_info_report_req(tvb
, offset
,
11357 length
, pinfo
, tree
);
11360 case FMS_MSG_INFO_REPORT_SUBINDEX_REQ
:
11361 hidden_item
= proto_tree_add_boolean(tree
,
11362 hf_ff_fms
, tvb
, 0, 0, 1);
11363 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11364 hidden_item
= proto_tree_add_boolean(tree
,
11365 hf_ff_fms_info_report_with_subidx
, tvb
, 0, 0, 1);
11366 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11367 hidden_item
= proto_tree_add_boolean(tree
,
11368 hf_ff_fms_info_report_with_subidx_req
, tvb
, 0, 0, 1);
11369 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11371 dissect_ff_msg_fms_info_report_subindex_req(tvb
, offset
,
11372 length
, pinfo
, tree
);
11375 case FMS_MSG_INFO_REPORT_CHANGE_REQ
:
11376 hidden_item
= proto_tree_add_boolean(tree
,
11377 hf_ff_fms
, tvb
, 0, 0, 1);
11378 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11379 hidden_item
= proto_tree_add_boolean(tree
,
11380 hf_ff_fms_info_report_on_change
, tvb
, 0, 0, 1);
11381 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11382 hidden_item
= proto_tree_add_boolean(tree
,
11383 hf_ff_fms_info_report_on_change_req
, tvb
, 0, 0, 1);
11384 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11386 dissect_ff_msg_fms_info_report_change_req(tvb
, offset
,
11387 length
, pinfo
, tree
);
11390 case FMS_MSG_INFO_REPORT_CHANGE_SUBINDEX_REQ
:
11391 hidden_item
= proto_tree_add_boolean(tree
,
11392 hf_ff_fms
, tvb
, 0, 0, 1);
11393 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11394 hidden_item
= proto_tree_add_boolean(tree
,
11395 hf_ff_fms_info_report_on_change_with_subidx
, tvb
, 0, 0, 1);
11396 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11397 hidden_item
= proto_tree_add_boolean(tree
,
11398 hf_ff_fms_info_report_on_change_with_subidx_req
, tvb
, 0, 0, 1);
11399 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11401 dissect_ff_msg_fms_info_report_change_subindex_req(tvb
,
11402 offset
, length
, pinfo
, tree
);
11405 case FMS_MSG_EVENT_NOTIFICATION_REQ
:
11406 hidden_item
= proto_tree_add_boolean(tree
,
11407 hf_ff_fms
, tvb
, 0, 0, 1);
11408 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11409 hidden_item
= proto_tree_add_boolean(tree
,
11410 hf_ff_fms_ev_notification
, tvb
, 0, 0, 1);
11411 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11412 hidden_item
= proto_tree_add_boolean(tree
,
11413 hf_ff_fms_ev_notification_req
, tvb
, 0, 0, 1);
11414 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11416 dissect_ff_msg_fms_ev_notification_req(tvb
, offset
,
11417 length
, pinfo
, tree
);
11420 case FMS_MSG_ALTER_EVENT_CONDITION_MONITORING_REQ
:
11421 hidden_item
= proto_tree_add_boolean(tree
,
11422 hf_ff_fms
, tvb
, 0, 0, 1);
11423 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11424 hidden_item
= proto_tree_add_boolean(tree
,
11425 hf_ff_fms_alter_ev_condition_monitoring
, tvb
, 0, 0, 1);
11426 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11427 hidden_item
= proto_tree_add_boolean(tree
,
11428 hf_ff_fms_alter_ev_condition_monitoring_req
, tvb
, 0, 0, 1);
11429 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11431 dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_req(
11432 tvb
, offset
, length
, pinfo
, tree
);
11435 case FMS_MSG_ALTER_EVENT_CONDITION_MONITORING_RSP
:
11436 hidden_item
= proto_tree_add_boolean(tree
,
11437 hf_ff_fms
, tvb
, 0, 0, 1);
11438 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11439 hidden_item
= proto_tree_add_boolean(tree
,
11440 hf_ff_fms_alter_ev_condition_monitoring
, tvb
, 0, 0, 1);
11441 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11442 hidden_item
= proto_tree_add_boolean(tree
,
11443 hf_ff_fms_alter_ev_condition_monitoring_rsp
, tvb
, 0, 0, 1);
11444 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11446 dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_rsp(
11447 tvb
, offset
, length
, pinfo
, tree
);
11450 case FMS_MSG_ALTER_EVENT_CONDITION_MONITORING_ERR
:
11451 hidden_item
= proto_tree_add_boolean(tree
,
11452 hf_ff_fms
, tvb
, 0, 0, 1);
11453 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11454 hidden_item
= proto_tree_add_boolean(tree
,
11455 hf_ff_fms_alter_ev_condition_monitoring
, tvb
, 0, 0, 1);
11456 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11457 hidden_item
= proto_tree_add_boolean(tree
,
11458 hf_ff_fms_alter_ev_condition_monitoring_err
, tvb
, 0, 0, 1);
11459 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11461 dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_err(
11462 tvb
, offset
, length
, pinfo
, tree
);
11465 case FMS_MSG_ACKNOWLEDGE_EVENT_NOTIFICATION_REQ
:
11466 hidden_item
= proto_tree_add_boolean(tree
,
11467 hf_ff_fms
, tvb
, 0, 0, 1);
11468 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11469 hidden_item
= proto_tree_add_boolean(tree
,
11470 hf_ff_fms_ack_ev_notification
, tvb
, 0, 0, 1);
11471 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11472 hidden_item
= proto_tree_add_boolean(tree
,
11473 hf_ff_fms_ack_ev_notification_req
, tvb
, 0, 0, 1);
11474 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11476 dissect_ff_msg_fms_ack_ev_notification_req(tvb
,
11477 offset
, length
, pinfo
, tree
);
11480 case FMS_MSG_ACKNOWLEDGE_EVENT_NOTIFICATION_RSP
:
11481 hidden_item
= proto_tree_add_boolean(tree
,
11482 hf_ff_fms
, tvb
, 0, 0, 1);
11483 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11484 hidden_item
= proto_tree_add_boolean(tree
,
11485 hf_ff_fms_ack_ev_notification
, tvb
, 0, 0, 1);
11486 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11487 hidden_item
= proto_tree_add_boolean(tree
,
11488 hf_ff_fms_ack_ev_notification_rsp
, tvb
, 0, 0, 1);
11489 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11491 dissect_ff_msg_fms_ack_ev_notification_rsp(tvb
,
11492 offset
, length
, pinfo
, tree
);
11495 case FMS_MSG_ACKNOWLEDGE_EVENT_NOTIFICATION_ERR
:
11496 hidden_item
= proto_tree_add_boolean(tree
,
11497 hf_ff_fms
, tvb
, 0, 0, 1);
11498 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11499 hidden_item
= proto_tree_add_boolean(tree
,
11500 hf_ff_fms_ack_ev_notification
, tvb
, 0, 0, 1);
11501 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11502 hidden_item
= proto_tree_add_boolean(tree
,
11503 hf_ff_fms_ack_ev_notification_err
, tvb
, 0, 0, 1);
11504 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11506 dissect_ff_msg_fms_ack_ev_notification_err(tvb
,
11507 offset
, length
, pinfo
, tree
);
11510 case LAN_MSG_GET_INFO_REQ
:
11511 hidden_item
= proto_tree_add_boolean(tree
,
11512 hf_ff_lr
, tvb
, 0, 0, 1);
11513 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11514 hidden_item
= proto_tree_add_boolean(tree
,
11515 hf_ff_lr_get_info
, tvb
, 0, 0, 1);
11516 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11517 hidden_item
= proto_tree_add_boolean(tree
,
11518 hf_ff_lr_get_info_req
, tvb
, 0, 0, 1);
11519 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11521 dissect_ff_msg_lr_get_info_req(tvb
,
11522 offset
, length
, pinfo
, tree
);
11525 case LAN_MSG_GET_INFO_RSP
:
11526 hidden_item
= proto_tree_add_boolean(tree
,
11527 hf_ff_lr
, tvb
, 0, 0, 1);
11528 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11529 hidden_item
= proto_tree_add_boolean(tree
,
11530 hf_ff_lr_get_info
, tvb
, 0, 0, 1);
11531 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11532 hidden_item
= proto_tree_add_boolean(tree
,
11533 hf_ff_lr_get_info_rsp
, tvb
, 0, 0, 1);
11534 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11536 dissect_ff_msg_lr_get_info_rsp(tvb
,
11537 offset
, length
, pinfo
, tree
);
11540 case LAN_MSG_GET_INFO_ERR
:
11541 hidden_item
= proto_tree_add_boolean(tree
,
11542 hf_ff_lr
, tvb
, 0, 0, 1);
11543 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11544 hidden_item
= proto_tree_add_boolean(tree
,
11545 hf_ff_lr_get_info
, tvb
, 0, 0, 1);
11546 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11547 hidden_item
= proto_tree_add_boolean(tree
,
11548 hf_ff_lr_get_info_err
, tvb
, 0, 0, 1);
11549 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11551 dissect_ff_msg_lr_get_info_err(tvb
,
11552 offset
, length
, pinfo
, tree
);
11555 case LAN_MSG_PUT_INFO_REQ
:
11556 hidden_item
= proto_tree_add_boolean(tree
,
11557 hf_ff_lr
, tvb
, 0, 0, 1);
11558 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11559 hidden_item
= proto_tree_add_boolean(tree
,
11560 hf_ff_lr_put_info
, tvb
, 0, 0, 1);
11561 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11562 hidden_item
= proto_tree_add_boolean(tree
,
11563 hf_ff_lr_put_info_req
, tvb
, 0, 0, 1);
11564 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11566 dissect_ff_msg_lr_put_info_req(tvb
,
11567 offset
, length
, pinfo
, tree
);
11570 case LAN_MSG_PUT_INFO_RSP
:
11571 hidden_item
= proto_tree_add_boolean(tree
,
11572 hf_ff_lr
, tvb
, 0, 0, 1);
11573 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11574 hidden_item
= proto_tree_add_boolean(tree
,
11575 hf_ff_lr_put_info
, tvb
, 0, 0, 1);
11576 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11577 hidden_item
= proto_tree_add_boolean(tree
,
11578 hf_ff_lr_put_info_rsp
, tvb
, 0, 0, 1);
11579 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11581 dissect_ff_msg_lr_put_info_rsp(tvb
,
11582 offset
, length
, pinfo
, tree
);
11585 case LAN_MSG_PUT_INFO_ERR
:
11586 hidden_item
= proto_tree_add_boolean(tree
,
11587 hf_ff_lr
, tvb
, 0, 0, 1);
11588 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11589 hidden_item
= proto_tree_add_boolean(tree
,
11590 hf_ff_lr_put_info
, tvb
, 0, 0, 1);
11591 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11592 hidden_item
= proto_tree_add_boolean(tree
,
11593 hf_ff_lr_put_info_err
, tvb
, 0, 0, 1);
11594 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11596 dissect_ff_msg_lr_put_info_err(tvb
,
11597 offset
, length
, pinfo
, tree
);
11600 case LAN_MSG_GET_STATISTICS_REQ
:
11601 hidden_item
= proto_tree_add_boolean(tree
,
11602 hf_ff_lr
, tvb
, 0, 0, 1);
11603 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11604 hidden_item
= proto_tree_add_boolean(tree
,
11605 hf_ff_lr_get_statistics
, tvb
, 0, 0, 1);
11606 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11607 hidden_item
= proto_tree_add_boolean(tree
,
11608 hf_ff_lr_get_statistics_req
, tvb
, 0, 0, 1);
11609 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11611 dissect_ff_msg_lr_get_statistics_req(tvb
,
11612 offset
, length
, pinfo
, tree
);
11615 case LAN_MSG_GET_STATISTICS_RSP
:
11616 hidden_item
= proto_tree_add_boolean(tree
,
11617 hf_ff_lr
, tvb
, 0, 0, 1);
11618 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11619 hidden_item
= proto_tree_add_boolean(tree
,
11620 hf_ff_lr_get_statistics
, tvb
, 0, 0, 1);
11621 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11622 hidden_item
= proto_tree_add_boolean(tree
,
11623 hf_ff_lr_get_statistics_rsp
, tvb
, 0, 0, 1);
11624 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11626 dissect_ff_msg_lr_get_statistics_rsp(tvb
,
11627 offset
, length
, pinfo
, tree
);
11630 case LAN_MSG_GET_STATISTICS_ERR
:
11631 hidden_item
= proto_tree_add_boolean(tree
,
11632 hf_ff_lr
, tvb
, 0, 0, 1);
11633 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11634 hidden_item
= proto_tree_add_boolean(tree
,
11635 hf_ff_lr_get_statistics
, tvb
, 0, 0, 1);
11636 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11637 hidden_item
= proto_tree_add_boolean(tree
,
11638 hf_ff_lr_get_statistics_err
, tvb
, 0, 0, 1);
11639 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11641 dissect_ff_msg_lr_get_statistics_err(tvb
,
11642 offset
, length
, pinfo
, tree
);
11645 case LAN_MSG_DIAG_REQ
:
11646 hidden_item
= proto_tree_add_boolean(tree
,
11647 hf_ff_lr
, tvb
, 0, 0, 1);
11648 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11649 hidden_item
= proto_tree_add_boolean(tree
,
11650 hf_ff_lr_diagnostic_msg
, tvb
, 0, 0, 1);
11651 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11652 hidden_item
= proto_tree_add_boolean(tree
,
11653 hf_ff_lr_diagnostic_msg_req
, tvb
, 0, 0, 1);
11654 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11656 dissect_ff_msg_diagnostic_msg_req(tvb
,
11657 offset
, length
, pinfo
, tree
);
11661 col_add_fstr(pinfo
->cinfo
, COL_INFO
,
11662 "Unknown Service (Protocol Id: %u, Confirmed Msg Type: %u) "
11663 "(%s Service Id = %u)",
11664 (ProtocolAndType
& PROTOCOL_MASK
) >> 2,
11665 ProtocolAndType
& TYPE_MASK
,
11666 (Service
& SERVICE_CONFIRMED_FLAG_MASK
)?
11667 "Confirmed": "Unconfirmed",
11668 Service
& SERVICE_SERVICE_ID_MASK
);
11671 proto_tree_add_text(tree
, tvb
, offset
, length
,
11672 "[Unknown Service] (%u bytes)", length
);
11682 * 6.4. Message Trailer
11685 dissect_ff_msg_trailer(tvbuff_t
*tvb
,
11686 gint offset
, guint32 length
, proto_tree
*tree
, guint8 Options
)
11688 proto_tree
*sub_tree
;
11690 proto_item
*hidden_item
;
11696 hidden_item
= proto_tree_add_boolean(tree
, hf_ff_fda_msg_trailer
, tvb
, 0, 0, 1);
11697 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11699 ti
= proto_tree_add_text(tree
,
11700 tvb
, offset
, length
, "FDA Message Trailer");
11701 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fda_msg_trailer
);
11703 if (Options
& OPTION_MESSAGE_NUMBER_MASK
) {
11704 proto_tree_add_item(sub_tree
,
11705 hf_ff_fda_msg_trailer_msg_num
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
11709 if (Options
& OPTION_INVOKE_ID_MASK
) {
11710 proto_tree_add_item(sub_tree
,
11711 hf_ff_fda_msg_trailer_invoke_id
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
11715 if (Options
& OPTION_TIME_STAMP_MASK
) {
11716 proto_tree_add_item(sub_tree
,
11717 hf_ff_fda_msg_trailer_time_stamp
, tvb
, offset
, 8, ENC_BIG_ENDIAN
);
11721 if (Options
& OPTION_EXTENDED_CNTRL_MASK
) {
11722 proto_tree_add_item(sub_tree
,
11723 hf_ff_fda_msg_trailer_extended_control_field
,
11724 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
11738 dissect_ff_msg_hdr_srv(tvbuff_t
*tvb
,
11739 gint offset
, proto_tree
*tree
, guint8 proto_and_type
, guint8 service
)
11741 proto_tree
*sub_tree
;
11748 ti
= proto_tree_add_text(tree
, tvb
, offset
, 1, "Service: 0x%02x", service
);
11749 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fda_msg_hdr_srv
);
11751 /* Bit 8: Confirmed Flag */
11752 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_confirm_flag
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
11754 /* Bits 1-7 Service Id of the service */
11755 switch (proto_and_type
& PROTOCOL_MASK
) {
11757 if (service
& SERVICE_CONFIRMED_FLAG_MASK
) {
11758 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_fda_service_id_confirm
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
11760 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_fda_service_id_unconfirm
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
11766 if (service
& SERVICE_CONFIRMED_FLAG_MASK
) {
11767 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_sm_service_id_confirm
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
11769 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_sm_service_id_unconfirm
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
11775 if (service
& SERVICE_CONFIRMED_FLAG_MASK
) {
11776 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_fms_service_id_confirm
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
11778 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_fms_service_id_unconfirm
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
11784 if (service
& SERVICE_CONFIRMED_FLAG_MASK
) {
11785 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_lan_service_id_confirm
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
11787 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_lan_service_id_unconfirm
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
11793 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_service_id
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
11802 * Protocol Id And Confirmed Msg Type
11806 dissect_ff_msg_hdr_proto_and_type(tvbuff_t
*tvb
,
11807 gint offset
, proto_tree
*tree
, guint8 value
)
11809 proto_tree
*sub_tree
;
11816 ti
= proto_tree_add_text(tree
, tvb
, offset
, 1,
11817 "Protocol Id And Confirmed Msg Type: 0x%02x", value
);
11818 sub_tree
= proto_item_add_subtree(ti
,
11819 ett_ff_fda_msg_hdr_proto_and_type
);
11825 proto_tree_add_item(sub_tree
, hf_ff_hdr_proto_id
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
11826 proto_tree_add_item(sub_tree
, hf_ff_hdr_confirm_msg_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
11836 dissect_ff_msg_hdr_opts(tvbuff_t
*tvb
,
11837 gint offset
, proto_tree
*tree
, guint8 value
)
11839 proto_tree
*sub_tree
;
11846 ti
= proto_tree_add_text(tree
, tvb
, offset
, 1, "Options: 0x%02x", value
);
11847 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fda_msg_hdr_opts
);
11849 proto_tree_add_item(sub_tree
, hf_ff_hdr_opts_msg_num
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
11850 proto_tree_add_item(sub_tree
, hf_ff_hdr_opts_invoke_id
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
11851 proto_tree_add_item(sub_tree
, hf_ff_hdr_opts_timestamp
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
11852 proto_tree_add_item(sub_tree
, hf_ff_hdr_opts_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
11853 proto_tree_add_item(sub_tree
, hf_ff_hdr_opts_ext_ctrl
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
11854 proto_tree_add_item(sub_tree
, hf_ff_hdr_opts_pad
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
11860 * 6.3. Message Header
11863 dissect_ff_msg_hdr(tvbuff_t
*tvb
,
11864 proto_tree
*tree
, guint8 Options
, guint8 ProtocolAndType
, guint8 Service
)
11866 proto_tree
*sub_tree
;
11868 proto_item
*hidden_item
;
11875 hidden_item
= proto_tree_add_boolean(tree
, hf_ff_fda_msg_hdr
, tvb
, 0, 0, 1);
11876 PROTO_ITEM_SET_HIDDEN(hidden_item
);
11878 ti
= proto_tree_add_text(tree
,
11879 tvb
, offset
, 12, "FDA Message Header");
11880 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fda_msg_hdr
);
11882 /* FDA Message Version */
11883 proto_tree_add_item(sub_tree
,
11884 hf_ff_fda_msg_hdr_ver
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
11888 dissect_ff_msg_hdr_opts(tvb
, offset
, sub_tree
, Options
);
11891 /* Protocol Id And Confirmed Msg Type */
11892 dissect_ff_msg_hdr_proto_and_type(tvb
,
11893 offset
, sub_tree
, ProtocolAndType
);
11897 dissect_ff_msg_hdr_srv(tvb
,
11898 offset
, sub_tree
, ProtocolAndType
, Service
);
11902 proto_tree_add_item(sub_tree
,
11903 hf_ff_fda_msg_hdr_fda_addr
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
11906 /* Message Length */
11907 proto_tree_add_item(sub_tree
,
11908 hf_ff_fda_msg_hdr_len
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
11917 dissect_ff(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
11919 proto_tree
*sub_tree
= NULL
;
11920 proto_item
*ti
= NULL
;
11923 guint8 Options
= 0; /* Options */
11924 guint8 ProtocolAndType
= 0; /* Protocol Id And Confirmed Msg Type */
11925 guint8 Service
= 0; /* Service */
11926 guint32 FDAAddress
= 0; /* FDA Address */
11927 guint32 length
= 0; /* Message Length */
11929 guint32 trailer_len
= 0;
11931 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "FF");
11933 Options
= tvb_get_guint8(tvb
, 1);
11934 ProtocolAndType
= tvb_get_guint8(tvb
, 2);
11935 Service
= tvb_get_guint8(tvb
, 3);
11936 FDAAddress
= tvb_get_ntohl(tvb
, 4);
11937 length
= tvb_get_ntohl(tvb
, 8);
11940 ti
= proto_tree_add_item(tree
, proto_ff
, tvb
, offset
, length
, ENC_NA
);
11941 sub_tree
= proto_item_add_subtree(ti
, ett_ff
);
11944 if (Options
& OPTION_MESSAGE_NUMBER_MASK
) {
11949 if (Options
& OPTION_INVOKE_ID_MASK
) {
11954 if (Options
& OPTION_TIME_STAMP_MASK
) {
11959 if (Options
& OPTION_EXTENDED_CNTRL_MASK
) {
11967 dissect_ff_msg_hdr(tvb
, sub_tree
, Options
, ProtocolAndType
, Service
);
11972 * Service-Specific Parameters + User Data (optional)
11974 dissect_ff_msg_body(tvb
, offset
, length
, pinfo
, sub_tree
,
11975 ProtocolAndType
, Service
, FDAAddress
);
11979 * Trailer (optional)
11982 dissect_ff_msg_trailer(tvb
,
11983 offset
, trailer_len
, sub_tree
, Options
);
11984 /*offset += trailer_len;*/
11987 return tvb_length(tvb
);
11992 get_ff_pdu_len(packet_info
*pinfo _U_
, tvbuff_t
*tvb
, int offset
)
11994 return (tvb_get_ntohl(tvb
, offset
+ 8));
12000 dissect_ff_tcp(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data
)
12004 * 6.3. Message Header
12007 * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
12008 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12009 * | Version | Options | Protocol/Type | Service |
12010 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12012 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12013 * | Message Length |
12014 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12018 tcp_dissect_pdus(tvb
, pinfo
, tree
, ff_desegment
,
12019 12, get_ff_pdu_len
, dissect_ff
, data
);
12021 return tvb_reported_length(tvb
);
12027 dissect_ff_udp(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data
)
12031 /* Make sure at least the header is there */
12032 if (tvb_length(tvb
) < 12)
12035 length
= tvb_get_ntohl(tvb
, 8);
12037 /* Make sure the length field is valid */
12038 if ((length
> tvb_reported_length(tvb
)) ||
12042 dissect_ff(tvb
, pinfo
, tree
, data
);
12043 return tvb_reported_length(tvb
);
12049 proto_register_ff(void)
12051 static hf_register_info hf
[] = {
12053 * 6.3. Message Header
12055 { &hf_ff_fda_msg_hdr
,
12056 { "Message Header", "ff.hdr",
12057 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12059 { &hf_ff_fda_msg_hdr_ver
,
12060 { "FDA Message Version", "ff.hdr.ver",
12061 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12063 { &hf_ff_fda_msg_hdr_fda_addr
,
12064 { "FDA Address", "ff.hdr.fda_addr",
12065 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
12067 { &hf_ff_fda_msg_hdr_len
,
12068 { "Message Length", "ff.hdr.len",
12069 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12074 * 6.4. Message Trailer
12076 { &hf_ff_fda_msg_trailer
,
12077 { "Message Trailer", "ff.trailer",
12078 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12080 { &hf_ff_fda_msg_trailer_msg_num
,
12081 { "Message Number", "ff.trailer.msg_num",
12082 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12084 { &hf_ff_fda_msg_trailer_invoke_id
,
12085 { "Invoke Id", "ff.trailer.invoke_id",
12086 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12088 { &hf_ff_fda_msg_trailer_time_stamp
,
12089 { "Time Stamp", "ff.trailer.time_stamp",
12090 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12092 { &hf_ff_fda_msg_trailer_extended_control_field
,
12093 { "Extended Control Field", "ff.trailer.extended_control_field",
12094 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12099 * 6.5.1. FDA Session Management Services
12102 { "FDA Session Management Service", "ff.fda",
12103 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12105 { &hf_ff_hdr_srv_confirm_flag
,
12106 { "Confirmed Flag", "ff.hdr_srv.confirm_flag",
12107 FT_BOOLEAN
, 8, TFS(&tfs_confirmed_unconfirmed
), SERVICE_CONFIRMED_FLAG_MASK
, NULL
, HFILL
} },
12109 { &hf_ff_hdr_srv_service_id
,
12110 { "Service Id (Unknown)", "ff.hdr_srv.service_id",
12111 FT_UINT8
, BASE_DEC
, NULL
, SERVICE_SERVICE_ID_MASK
, NULL
, HFILL
} },
12113 { &hf_ff_hdr_srv_fda_service_id_confirm
,
12114 { "Service Id", "ff.hdr_srv.fda.service_id.confirm",
12115 FT_UINT8
, BASE_DEC
, VALS(names_fda_confirmed
), SERVICE_SERVICE_ID_MASK
, NULL
, HFILL
} },
12117 { &hf_ff_hdr_srv_fda_service_id_unconfirm
,
12118 { "Service Id", "ff.hdr_srv.fda.service_id.unconfirm",
12119 FT_UINT8
, BASE_DEC
, VALS(names_fda_unconfirmed
), SERVICE_SERVICE_ID_MASK
, NULL
, HFILL
} },
12121 { &hf_ff_hdr_srv_sm_service_id_confirm
,
12122 { "Service Id", "ff.hdr_srv.sm.service_id.confirm",
12123 FT_UINT8
, BASE_DEC
, VALS(names_sm_confirmed
), SERVICE_SERVICE_ID_MASK
, NULL
, HFILL
} },
12125 { &hf_ff_hdr_srv_sm_service_id_unconfirm
,
12126 { "Service Id", "ff.hdr_srv.sm.service_id.unconfirm",
12127 FT_UINT8
, BASE_DEC
, VALS(names_sm_unconfirmed
), SERVICE_SERVICE_ID_MASK
, NULL
, HFILL
} },
12129 { &hf_ff_hdr_srv_fms_service_id_confirm
,
12130 { "Service Id", "ff.hdr_srv.fms.service_id.confirm",
12131 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_fms_confirmed_ext
, SERVICE_SERVICE_ID_MASK
, NULL
, HFILL
} },
12133 { &hf_ff_hdr_srv_fms_service_id_unconfirm
,
12134 { "Service Id", "ff.hdr_srv.fms.service_id.unconfirm",
12135 FT_UINT8
, BASE_DEC
, VALS(names_fms_unconfirmed
), SERVICE_SERVICE_ID_MASK
, NULL
, HFILL
} },
12137 { &hf_ff_hdr_srv_lan_service_id_confirm
,
12138 { "Service Id", "ff.hdr_srv.lan.service_id.confirm",
12139 FT_UINT8
, BASE_DEC
, VALS(names_lan_confirmed
), SERVICE_SERVICE_ID_MASK
, NULL
, HFILL
} },
12141 { &hf_ff_hdr_srv_lan_service_id_unconfirm
,
12142 { "Service Id", "ff.hdr_srv.lan.service_id.unconfirm",
12143 FT_UINT8
, BASE_DEC
, VALS(names_lan_unconfirmed
), SERVICE_SERVICE_ID_MASK
, NULL
, HFILL
} },
12145 { &hf_ff_hdr_proto_id
,
12146 { "Service Id", "ff.hdr.proto_id",
12147 FT_UINT8
, BASE_DEC
, VALS(names_proto
), PROTOCOL_MASK
, NULL
, HFILL
} },
12149 { &hf_ff_hdr_confirm_msg_type
,
12150 { "Service Id", "ff.hdr.confirm_msg_type",
12151 FT_UINT8
, BASE_DEC
, VALS(names_type
), TYPE_MASK
, NULL
, HFILL
} },
12153 { &hf_ff_hdr_opts_msg_num
,
12154 { "Message Number in the Trailer", "ff.hdr.opts.msg_num",
12155 FT_BOOLEAN
, 8, TFS(&tfs_present_not_present
), OPTION_MESSAGE_NUMBER_MASK
, NULL
, HFILL
} },
12157 { &hf_ff_hdr_opts_invoke_id
,
12158 { "Invoke Id in the Trailer", "ff.hdr.opts.invoke_id",
12159 FT_BOOLEAN
, 8, TFS(&tfs_present_not_present
), OPTION_INVOKE_ID_MASK
, NULL
, HFILL
} },
12161 { &hf_ff_hdr_opts_timestamp
,
12162 { "Time Stamp in the Trailer", "ff.hdr.opts.timestamp",
12163 FT_BOOLEAN
, 8, TFS(&tfs_present_not_present
), OPTION_TIME_STAMP_MASK
, NULL
, HFILL
} },
12165 { &hf_ff_hdr_opts_reserved
,
12166 { "Reserved", "ff.hdr.opts.reserved",
12167 FT_UINT8
, BASE_HEX
, NULL
, OPTION_RESERVED_MASK
, NULL
, HFILL
} },
12169 { &hf_ff_hdr_opts_ext_ctrl
,
12170 { "Extended Control in the Trailer", "ff.hdr.opts.ext_ctrl",
12171 FT_BOOLEAN
, 8, TFS(&tfs_present_not_present
), OPTION_EXTENDED_CNTRL_MASK
, NULL
, HFILL
} },
12173 { &hf_ff_hdr_opts_pad
,
12174 { "Pad Length", "ff.hdr.opts.pad",
12175 FT_UINT8
, BASE_HEX
, NULL
, OPTION_PAD_LENGTH_MASK
, NULL
, HFILL
} },
12179 * 6.5.1.1. FDA Open Session (Confirmed Service Id = 1)
12181 { &hf_ff_fda_open_sess
,
12182 { "FDA Open Session", "ff.fda.open_sess",
12183 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12188 * 6.5.1.1.1. Request Message Parameters
12190 { &hf_ff_fda_open_sess_req
,
12191 { "FDA Open Session Request", "ff.fda.open_sess.req",
12192 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12194 { &hf_ff_fda_open_sess_req_sess_idx
,
12195 { "Session Index", "ff.fda.open_sess.req.sess_idx",
12196 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12198 { &hf_ff_fda_open_sess_req_max_buf_siz
,
12199 { "Max Buffer Size", "ff.fda.open_sess.req.max_buf_siz",
12200 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12202 { &hf_ff_fda_open_sess_req_max_msg_len
,
12203 { "Max Message Length", "ff.fda.open_sess.req.max_msg_len",
12204 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12206 { &hf_ff_fda_open_sess_req_reserved
,
12207 { "Reserved", "ff.fda.open_sess.req.reserved",
12208 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12210 { &hf_ff_fda_open_sess_req_nma_conf_use
,
12211 { "NMA Configuration Use", "ff.fda.open_sess.req.nma_conf_use",
12212 FT_UINT8
, BASE_DEC
, VALS(names_nma_conf_use
), 0x0, NULL
, HFILL
} },
12214 { &hf_ff_fda_open_sess_req_inactivity_close_time
,
12215 { "Inactivity Close Time",
12216 "ff.fda.open_sess.req.inactivity_close_time",
12217 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12219 { &hf_ff_fda_open_sess_req_transmit_delay_time
,
12220 { "Transmit Delay Time", "ff.fda.open_sess.req.transmit_delay_time",
12221 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12223 { &hf_ff_fda_open_sess_req_pd_tag
,
12224 { "PD Tag", "ff.fda.open_sess.req.pd_tag",
12225 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12230 * 6.5.1.1.2. Response Message Parameters
12232 { &hf_ff_fda_open_sess_rsp
,
12233 { "FDA Open Session Response", "ff.fda.open_sess.rsp",
12234 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12236 { &hf_ff_fda_open_sess_rsp_sess_idx
,
12237 { "Session Index", "ff.fda.open_sess.rsp.sess_idx",
12238 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12240 { &hf_ff_fda_open_sess_rsp_max_buf_siz
,
12241 { "Max Buffer Size", "ff.fda.open_sess.rsp.max_buf_siz",
12242 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12244 { &hf_ff_fda_open_sess_rsp_max_msg_len
,
12245 { "Max Message Length", "ff.fda.open_sess.rsp.max_msg_len",
12246 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12248 { &hf_ff_fda_open_sess_rsp_reserved
,
12249 { "Reserved", "ff.fda.open_sess.rsp.reserved",
12250 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12252 { &hf_ff_fda_open_sess_rsp_nma_conf_use
,
12253 { "NMA Configuration Use", "ff.fda.open_sess.rsp.nma_conf_use",
12254 FT_UINT8
, BASE_DEC
, VALS(names_nma_conf_use
), 0x0, NULL
, HFILL
} },
12256 { &hf_ff_fda_open_sess_rsp_inactivity_close_time
,
12257 { "Inactivity Close Time",
12258 "ff.fda.open_sess.rsp.inactivity_close_time",
12259 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12261 { &hf_ff_fda_open_sess_rsp_transmit_delay_time
,
12262 { "Transmit Delay Time", "ff.fda.open_sess.rsp.transmit_delay_time",
12263 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12265 { &hf_ff_fda_open_sess_rsp_pd_tag
,
12266 { "PD Tag", "ff.fda.open_sess.rsp.pd_tag",
12267 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12272 * 6.5.1.1.3. Error Message Parameters
12274 { &hf_ff_fda_open_sess_err
,
12275 { "FDA Open Session Error", "ff.fda.open_sess.err",
12276 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12278 { &hf_ff_fda_open_sess_err_err_class
,
12279 { "Error Class", "ff.fda.open_sess.err.err_class",
12280 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
12282 { &hf_ff_fda_open_sess_err_err_code
,
12283 { "Error Code", "ff.fda.open_sess.err.err_code",
12284 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12286 { &hf_ff_fda_open_sess_err_additional_code
,
12287 { "Additional Code", "ff.fda.open_sess.err.additional_code",
12288 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12290 { &hf_ff_fda_open_sess_err_additional_desc
,
12291 { "Additional Description", "ff.fda.open_sess.err.additional_desc",
12292 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12297 * 6.5.1.2. FDA Idle (Confirmed Service Id = 3)
12300 { "FDA Idle", "ff.fda.idle",
12301 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12306 * 6.5.1.2.1. Request Message Parameters
12308 { &hf_ff_fda_idle_req
,
12309 { "FDA Idle Request", "ff.fda.idle.req",
12310 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12315 * 6.5.1.2.2. Response Message Parameters
12317 { &hf_ff_fda_idle_rsp
,
12318 { "FDA Idle Response", "ff.fda.idle.rsp",
12319 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12324 * 6.5.1.2.3. Error Message Parameters
12326 { &hf_ff_fda_idle_err
,
12327 { "FDA Idle Error", "ff.fda.idle.err",
12328 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12330 { &hf_ff_fda_idle_err_err_class
,
12331 { "Error Class", "ff.fda.idle.err.err_class",
12332 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
12334 { &hf_ff_fda_idle_err_err_code
,
12335 { "Error Code", "ff.fda.idle.err.err_code",
12336 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12338 { &hf_ff_fda_idle_err_additional_code
,
12339 { "Additional Code", "ff.fda.idle.err.additional_code",
12340 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12342 { &hf_ff_fda_idle_err_additional_desc
,
12343 { "Additional Description", "ff.fda.idle.err.additional_desc",
12344 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12349 * 6.5.2. SM Services
12352 { "SM Service", "ff.sm",
12353 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12358 * 6.5.2.1. SM Find Tag Query (Unconfirmed Service Id = 1)
12360 { &hf_ff_sm_find_tag_query
,
12361 { "SM Find Tag Query", "ff.sm.find_tag_query",
12362 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12367 * 6.5.2.1.1. Request Message Parameters
12369 { &hf_ff_sm_find_tag_query_req
,
12370 { "SM Find Tag Query Request", "ff.sm.find_tag_query.req",
12371 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12373 { &hf_ff_sm_find_tag_query_req_query_type
,
12374 { "Query Type", "ff.sm.find_tag_query.req.query_type",
12375 FT_UINT8
, BASE_DEC
, VALS(names_query_type
), 0x0, NULL
, HFILL
} },
12377 { &hf_ff_sm_find_tag_query_req_idx
,
12378 { "Element Id or VFD Reference or Device Index",
12379 "ff.sm.find_tag_query.req.idx",
12380 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12382 { &hf_ff_sm_find_tag_query_req_tag
,
12383 { "PD Tag or Function Block Tag", "ff.sm.find_tag_query.req.tag",
12384 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12386 { &hf_ff_sm_find_tag_query_req_vfd_tag
,
12387 { "VFD Tag", "ff.sm.find_tag_query.req.vfd_tag",
12388 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12393 * 6.5.2.2. SM Find Tag Reply (Unconfirmed Service Id = 2)
12395 { &hf_ff_sm_find_tag_reply
,
12396 { "SM Find Tag Reply", "ff.sm.find_tag_reply",
12397 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12402 * 6.5.2.2.1. Request Message Parameters
12404 { &hf_ff_sm_find_tag_reply_req
,
12405 { "SM Find Tag Reply Request", "ff.sm.find_tag_reply.req",
12406 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12408 { &hf_ff_sm_find_tag_reply_req_query_type
,
12409 { "Query Type", "ff.sm.find_tag_reply.req.query_type",
12410 FT_UINT8
, BASE_DEC
, VALS(names_query_type
), 0x0, NULL
, HFILL
} },
12412 { &hf_ff_sm_find_tag_reply_req_h1_node_addr
,
12413 { "Queried Object H1 Node Address",
12414 "ff.sm.find_tag_reply.req.h1_node_addr",
12415 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12417 { &hf_ff_sm_find_tag_reply_req_fda_addr_link_id
,
12418 { "Queried Object FDA Address Link Id",
12419 "ff.sm.find_tag_reply.req.fda_addr_link_id",
12420 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12422 { &hf_ff_sm_find_tag_reply_req_vfd_ref
,
12423 { "Queried Object VFD Reference",
12424 "ff.sm.find_tag_reply.req.vfd_ref",
12425 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12427 { &hf_ff_sm_find_tag_reply_req_od_idx
,
12428 { "Queried Object OD Index", "ff.sm.find_tag_reply.req.od_idx",
12429 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12431 { &hf_ff_sm_find_tag_reply_req_ip_addr
,
12432 { "Queried Object IP Address", "ff.sm.find_tag_reply.req.ip_addr",
12433 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12435 { &hf_ff_sm_find_tag_reply_req_od_ver
,
12436 { "Queried Object OD Version", "ff.sm.find_tag_reply.req.od_ver",
12437 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12439 { &hf_ff_sm_find_tag_reply_req_dev_id
,
12440 { "Queried Object Device ID", "ff.sm.find_tag_reply.req.dev_id",
12441 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12443 { &hf_ff_sm_find_tag_reply_req_pd_tag
,
12444 { "Queried Object PD Tag", "ff.sm.find_tag_reply.req.pd_tag",
12445 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12447 { &hf_ff_sm_find_tag_reply_req_reserved
,
12448 { "Reserved", "ff.sm.find_tag_reply.req.reserved",
12449 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12451 { &hf_ff_sm_find_tag_reply_req_num_of_fda_addr_selectors
,
12452 { "Number Of FDA Address Selectors",
12453 "ff.sm.find_tag_reply.req.num_of_fda_addr_selectors",
12454 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12456 { &hf_ff_sm_find_tag_reply_req_fda_addr_selector
,
12457 { "FDA Address Selector",
12458 "ff.sm.find_tag_reply.req.fda_addr_selector.fda_addr_selector",
12459 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12461 { &hf_ff_sm_find_tag_reply_dup_reserved
,
12463 "ff.sm.find_tag_reply.dup_reserved",
12464 FT_UINT8
, BASE_HEX
, NULL
, 0xFC, NULL
, HFILL
} },
12466 { &hf_ff_sm_find_tag_reply_dup_pd_tag
,
12467 { "Duplicate PD Tag",
12468 "ff.sm.find_tag_reply.dup_pd_tag",
12469 FT_BOOLEAN
, 8, TFS(&tfs_detected_not_detected
), 0x02, NULL
, HFILL
} },
12471 { &hf_ff_sm_find_tag_reply_dup_device
,
12472 { "Duplicate Device Index",
12473 "ff.sm.find_tag_reply.dup_device",
12474 FT_BOOLEAN
, 8, TFS(&tfs_detected_not_detected
), 0x01, NULL
, HFILL
} },
12478 * 6.5.2.7. SM Identify (Unconfirmed Service Id = 16)
12481 { "SM Identify", "ff.sm.id",
12482 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12486 * 6.5.2.3.1. Request Message Parameters
12488 { &hf_ff_sm_id_req
,
12489 { "SM Identify Request", "ff.sm.id.req",
12490 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12495 * 6.5.2.3.2. Response Message Parameters
12497 { &hf_ff_sm_id_rsp
,
12498 { "SM Identify Response", "ff.sm.id.rsp",
12499 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12501 { &hf_ff_sm_id_rsp_dev_idx
,
12502 { "Device Index", "ff.sm.id.rsp.dev_idx",
12503 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12505 { &hf_ff_sm_id_rsp_max_dev_idx
,
12506 { "Max Device Index", "ff.sm.id.rsp.max_dev_idx",
12507 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12509 { &hf_ff_sm_id_rsp_operational_ip_addr
,
12510 { "Operational IP Address", "ff.sm.id.rsp.operational_ip_addr",
12511 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12513 { &hf_ff_sm_id_rsp_dev_id
,
12514 { "Device ID", "ff.sm.id.rsp.dev_id",
12515 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12517 { &hf_ff_sm_id_rsp_pd_tag
,
12518 { "PD Tag", "ff.sm.id.rsp.pd_tag",
12519 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12521 { &hf_ff_sm_id_rsp_hse_repeat_time
,
12522 { "HSE Repeat Time", "ff.sm.id.rsp.hse_repeat_time",
12523 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12525 { &hf_ff_sm_id_rsp_lr_port
,
12526 { "LAN Redundancy Port", "ff.sm.id.rsp.lr_port",
12527 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12529 { &hf_ff_sm_id_rsp_reserved
,
12530 { "Reserved", "ff.sm.id.rsp.reserved",
12531 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12533 { &hf_ff_sm_id_rsp_annunc_ver_num
,
12534 { "Annunciation Version Number", "ff.sm.id.rsp.annunc_ver_num",
12535 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12537 { &hf_ff_sm_id_rsp_hse_dev_ver_num
,
12538 { "HSE Device Version Number", "ff.sm.id.rsp.hse_dev_ver_num",
12539 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12541 { &hf_ff_sm_id_rsp_num_of_entries
,
12542 { "Number of Entries in Version Number List",
12543 "ff.sm.id.rsp.num_of_entries",
12544 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12546 { &hf_ff_sm_id_rsp_h1_live_list_h1_link_id
,
12547 { "H1 Link Id", "ff.sm.id.rsp.h1_live_list.h1_link_id",
12548 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12550 { &hf_ff_sm_id_rsp_h1_live_list_reserved
,
12551 { "Reserved", "ff.sm.id.rsp.h1_live_list.reserved",
12552 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12554 { &hf_ff_sm_id_rsp_h1_live_list_ver_num
,
12555 { "Version Number", "ff.sm.id.rsp.h1_live_list.ver_num",
12556 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12558 { &hf_ff_sm_id_rsp_h1_node_addr_ver_num_h1_node_addr
,
12559 { "H1 Node Address",
12560 "ff.sm.id.rsp.h1_node_addr_ver_num.h1_node_addr",
12561 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12563 { &hf_ff_sm_id_rsp_h1_node_addr_ver_num_ver_num
,
12564 { "Version Number", "ff.sm.id.rsp.h1_node_addr_ver_num.ver_num",
12565 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12567 { &hf_ff_sm_id_rsp_smk_state_name
,
12568 { "Name", "ff.sm.id.rsp.smk_state_name",
12569 FT_UINT8
, BASE_DEC
, VALS(names_smk_state
), 0xFE, NULL
, HFILL
} },
12571 { &hf_ff_sm_id_rsp_smk_state_sync
,
12572 { "Synchronized with SNTP Time Server", "ff.sm.id.rsp.smk_state_sync",
12573 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x01, NULL
, HFILL
} },
12575 { &hf_ff_sm_id_rsp_dev_type_link
,
12576 { "Linking Device", "ff.sm.id.rsp.dev_type.link",
12577 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x80, NULL
, HFILL
} },
12579 { &hf_ff_sm_id_rsp_dev_type_iogateway
,
12580 { "I/O Gateway", "ff.sm.id.rsp.dev_type.iogateway",
12581 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x40, NULL
, HFILL
} },
12583 { &hf_ff_sm_id_rsp_dev_type_hse
,
12584 { "HSE Field Device", "ff.sm.id.rsp.dev_type.hse",
12585 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x20, NULL
, HFILL
} },
12587 { &hf_ff_sm_id_rsp_dev_type_h1
,
12588 { "H1 Device", "ff.sm.id.rsp.dev_type.h1",
12589 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x10, NULL
, HFILL
} },
12591 { &hf_ff_sm_id_rsp_dev_type_reserved
,
12592 { "Reserved", "ff.sm.id.rsp.dev_type.reserved",
12593 FT_UINT8
, BASE_HEX
, NULL
, 0x08, NULL
, HFILL
} },
12595 { &hf_ff_sm_id_rsp_dev_type_redundant_caps
,
12596 { "Redundant Device Type Capability", "ff.sm.id.rsp.dev_type.redundant_caps",
12597 FT_UINT8
, BASE_DEC
, VALS(names_dev_type
), 0x07, NULL
, HFILL
} },
12599 { &hf_ff_sm_id_rsp_dev_redundancy_state_reserved
,
12600 { "Reserved", "ff.sm.id.rsp.dev_redundancy_state.reserved",
12601 FT_UINT8
, BASE_HEX
, NULL
, 0xF0, NULL
, HFILL
} },
12603 { &hf_ff_sm_id_rsp_dev_redundancy_state_role
,
12604 { "Device Redundancy Role", "ff.sm.id.rsp.dev_redundancy_state.role",
12605 FT_UINT8
, BASE_DEC
, VALS(names_dev_redundancy_role
), 0x0C, NULL
, HFILL
} },
12607 { &hf_ff_sm_id_rsp_dev_redundancy_state_type
,
12608 { "Assigned Redundant Device Type", "ff.sm.id.rsp.dev_redundancy_state.type",
12609 FT_UINT8
, BASE_DEC
, VALS(names_assigned_redundant_dev_type
), 0x03, NULL
, HFILL
} },
12611 { &hf_ff_sm_id_rsp_dup_detection_state_reserved
,
12612 { "Reserved", "ff.sm.id.rsp.dup_detection_state.reserved",
12613 FT_UINT8
, BASE_HEX
, NULL
, 0xFC, NULL
, HFILL
} },
12615 { &hf_ff_sm_id_rsp_dup_detection_state_pd_tag
,
12616 { "Duplicate PD Tag", "ff.sm.id.rsp.dup_detection_state.pd_tag",
12617 FT_BOOLEAN
, 8, TFS(&tfs_detected_not_detected
), 0x02, NULL
, HFILL
} },
12619 { &hf_ff_sm_id_rsp_dup_detection_state_device
,
12620 { "Duplicate Device Index", "ff.sm.id.rsp.dup_detection_state.device",
12621 FT_BOOLEAN
, 8, TFS(&tfs_detected_not_detected
), 0x01, NULL
, HFILL
} },
12625 * 6.5.2.3.3. Error Message Parameters
12627 { &hf_ff_sm_id_err
,
12628 { "SM Identify Error", "ff.sm.id.err",
12629 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12631 { &hf_ff_sm_id_err_err_class
,
12632 { "Error Class", "ff.sm.id.err.err_class",
12633 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
12635 { &hf_ff_sm_id_err_err_code
,
12636 { "Error Code", "ff.sm.id.err.err_code",
12637 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12639 { &hf_ff_sm_id_err_additional_code
,
12640 { "Additional Code", "ff.sm.id.err.additional_code",
12641 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12643 { &hf_ff_sm_id_err_additional_desc
,
12644 { "Additional Description", "ff.sm.id.err.additional_desc",
12645 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12650 * 6.5.2.4. SM Clear Address (Confirmed Service Id = 12)
12652 { &hf_ff_sm_clear_addr
,
12653 { "SM Clear Address", "ff.sm.clear_addr",
12654 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12659 * 6.5.2.4.1. Request Message Parameters
12661 { &hf_ff_sm_clear_addr_req
,
12662 { "SM Clear Address Request", "ff.sm.clear_addr.req",
12663 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12665 { &hf_ff_sm_clear_addr_req_dev_id
,
12666 { "Device ID", "ff.sm.clear_addr.req.dev_id",
12667 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12669 { &hf_ff_sm_clear_addr_req_pd_tag
,
12670 { "PD Tag", "ff.sm.clear_addr.req.pd_tag",
12671 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12673 { &hf_ff_sm_clear_addr_req_interface_to_clear
,
12674 { "Interface to Clear", "ff.sm.clear_addr.req.interface_to_clear",
12675 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12680 * 6.5.2.4.2. Response Message Parameters
12682 { &hf_ff_sm_clear_addr_rsp
,
12683 { "SM Clear Address Response", "ff.sm.clear_addr.rsp",
12684 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12689 * 6.5.2.4.3. Error Message Parameters
12691 { &hf_ff_sm_clear_addr_err
,
12692 { "SM Clear Address Error", "ff.sm.clear_addr.err",
12693 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12695 { &hf_ff_sm_clear_addr_err_err_class
,
12696 { "Error Class", "ff.sm.clear_addr.err.err_class",
12697 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
12699 { &hf_ff_sm_clear_addr_err_err_code
,
12700 { "Error Code", "ff.sm.clear_addr.err.err_code",
12701 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12703 { &hf_ff_sm_clear_addr_err_additional_code
,
12704 { "Additional Code", "ff.sm.clear_addr.err.additional_code",
12705 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12707 { &hf_ff_sm_clear_addr_err_additional_desc
,
12708 { "Additional Description", "ff.sm.clear_addr.err.additional_desc",
12709 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12714 * 6.5.2.5. SM Set Assignment Info (Confirmed Service Id = 14)
12716 { &hf_ff_sm_set_assign_info
,
12717 { "SM Set Assignment Info", "ff.sm.set_assign_info",
12718 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12723 * 6.5.2.5.1. Request Message Parameters
12725 { &hf_ff_sm_set_assign_info_req_dev_redundancy_state_reserved
,
12726 { "Reserved", "ff.sm.set_assign_info.req_dev_redundancy_state.reserved",
12727 FT_UINT8
, BASE_HEX
, NULL
, 0xF0, NULL
, HFILL
} },
12729 { &hf_ff_sm_set_assign_info_req_dev_redundancy_state_role
,
12730 { "Type D-2 Device Redundancy Role", "ff.sm.set_assign_info.req_dev_redundancy_state.role",
12731 FT_UINT8
, BASE_DEC
, VALS(names_type_d2_dev_redundancy_role
), 0x0C, NULL
, HFILL
} },
12733 { &hf_ff_sm_set_assign_info_req_dev_redundancy_state_type
,
12734 { "Assigned Device Redundancy Type", "ff.sm.set_assign_info.req_dev_redundancy_state.type",
12735 FT_UINT8
, BASE_DEC
, VALS(names_assigned_redundant_dev_type
), 0x03, NULL
, HFILL
} },
12737 { &hf_ff_sm_set_assign_info_req_clear_dup_detection_state_reserved
,
12738 { "Reserved", "ff.sm.set_assign_info.req_clear_dup_detection_state.reserved",
12739 FT_UINT8
, BASE_HEX
, NULL
, 0xFC, NULL
, HFILL
} },
12741 { &hf_ff_sm_set_assign_info_req_clear_dup_detection_state_pd_tag
,
12742 { "Duplicate PD Tag Detected", "ff.sm.set_assign_info.req_clear_dup_detection_state.pd_tag",
12743 FT_BOOLEAN
, 8, TFS(&tfs_do_not_clear_clear
), 0x02, NULL
, HFILL
} },
12745 { &hf_ff_sm_set_assign_info_req_clear_dup_detection_state_device_index
,
12746 { "Duplicate Device Index Detected", "ff.sm.set_assign_info.req_clear_dup_detection_state.device_index",
12747 FT_BOOLEAN
, 8, TFS(&tfs_do_not_clear_clear
), 0x01, NULL
, HFILL
} },
12749 { &hf_ff_sm_set_assign_info_req
,
12750 { "SM Set Assignment Info Request", "ff.sm.set_assign_info.req",
12751 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12753 { &hf_ff_sm_set_assign_info_req_dev_id
,
12754 { "Device ID", "ff.sm.set_assign_info.req.dev_id",
12755 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12757 { &hf_ff_sm_set_assign_info_req_pd_tag
,
12758 { "PD Tag", "ff.sm.set_assign_info.req.pd_tag",
12759 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12761 { &hf_ff_sm_set_assign_info_req_h1_new_addr
,
12762 { "H1 New Address", "ff.sm.set_assign_info.req.h1_new_addr",
12763 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12765 { &hf_ff_sm_set_assign_info_req_lr_port
,
12766 { "LAN Redundancy Port",
12767 "ff.sm.set_assign_info.req.lr_port",
12768 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12770 { &hf_ff_sm_set_assign_info_req_hse_repeat_time
,
12771 { "HSE Repeat Time", "ff.sm.set_assign_info.req.hse_repeat_time",
12772 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12774 { &hf_ff_sm_set_assign_info_req_dev_idx
,
12775 { "Device Index", "ff.sm.set_assign_info.req.dev_idx",
12776 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12778 { &hf_ff_sm_set_assign_info_req_max_dev_idx
,
12779 { "Max Device Index", "ff.sm.set_assign_info.req.max_dev_idx",
12780 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12782 { &hf_ff_sm_set_assign_info_req_operational_ip_addr
,
12783 { "Operational IP Address",
12784 "ff.sm.set_assign_info.req.operational_ip_addr",
12785 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12790 * 6.5.2.5.2. Response Message Parameters
12792 { &hf_ff_sm_set_assign_info_rsp
,
12793 { "SM Set Assignment Info Response", "ff.sm.set_assign_info.rsp",
12794 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12796 { &hf_ff_sm_set_assign_info_rsp_reserved
,
12797 { "Reserved", "ff.sm.set_assign_info.rsp.reserved",
12798 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12800 { &hf_ff_sm_set_assign_info_rsp_max_dev_idx
,
12801 { "Max Device Index", "ff.sm.set_assign_info.rsp.max_dev_idx",
12802 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12804 { &hf_ff_sm_set_assign_info_rsp_hse_repeat_time
,
12805 { "HSE Repeat Time", "ff.sm.set_assign_info.rsp.hse_repeat_time",
12806 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12811 * 6.5.2.5.3. Error Message Parameters
12813 { &hf_ff_sm_set_assign_info_err
,
12814 { "SM Set Assignment Info Error", "ff.sm.set_assign_info.err",
12815 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12817 { &hf_ff_sm_set_assign_info_err_err_class
,
12818 { "Error Class", "ff.sm.set_assign_info.err.err_class",
12819 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
12821 { &hf_ff_sm_set_assign_info_err_err_code
,
12822 { "Error Code", "ff.sm.set_assign_info.err.err_code",
12823 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12825 { &hf_ff_sm_set_assign_info_err_additional_code
,
12826 { "Additional Code", "ff.sm.set_assign_info.err.additional_code",
12827 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12829 { &hf_ff_sm_set_assign_info_err_additional_desc
,
12830 { "Additional Description",
12831 "ff.sm.set_assign_info.err.additional_desc",
12832 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12837 * 6.5.2.6. SM Clear Assignment Info (Confirmed Service Id = 15)
12839 { &hf_ff_sm_clear_assign_info
,
12840 { "SM Clear Assignment Info", "ff.sm.clear_assign_info",
12841 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12846 * 6.5.2.6.1. Request Message Parameters
12848 { &hf_ff_sm_clear_assign_info_req
,
12849 { "SM Clear Assignment Info Request", "ff.sm.clear_assign_info.req",
12850 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12852 { &hf_ff_sm_clear_assign_info_req_dev_id
,
12853 { "Device ID", "ff.sm.clear_assign_info.req.dev_id",
12854 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12856 { &hf_ff_sm_clear_assign_info_req_pd_tag
,
12857 { "PD Tag", "ff.sm.clear_assign_info.req.pd_tag",
12858 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12863 * 6.5.2.6.2. Response Message Parameters
12865 { &hf_ff_sm_clear_assign_info_rsp
,
12866 { "SM Clear Assignment Info Response",
12867 "ff.sm.clear_assign_info.rsp",
12868 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12873 * 6.5.2.6.3. Error Message Parameters
12875 { &hf_ff_sm_clear_assign_info_err
,
12876 { "SM Clear Assignment Info Error", "ff.sm.clear_assign_info.err",
12877 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12879 { &hf_ff_sm_clear_assign_info_err_err_class
,
12880 { "Error Class", "ff.sm.clear_assign_info.err.err_class",
12881 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
12883 { &hf_ff_sm_clear_assign_info_err_err_code
,
12884 { "Error Code", "ff.sm.clear_assign_info.err.err_code",
12885 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12887 { &hf_ff_sm_clear_assign_info_err_additional_code
,
12888 { "Additional Code", "ff.sm.clear_assign_info.err.additional_code",
12889 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12891 { &hf_ff_sm_clear_assign_info_err_additional_desc
,
12892 { "Additional Description",
12893 "ff.sm.clear_assign_info.err.additional_desc",
12894 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12899 * 6.5.2.7. SM Device Annunciation (Unconfirmed Service Id = 16)
12901 { &hf_ff_sm_dev_annunc
,
12902 { "SM Device Annunciation", "ff.sm.dev_annunc",
12903 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12908 * 6.5.2.7.1. Request Message Parameters
12910 { &hf_ff_sm_dev_annunc_req
,
12911 { "SM Device Annunciation Request", "ff.sm.dev_annunc.req",
12912 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12914 { &hf_ff_sm_dev_annunc_req_dev_idx
,
12915 { "Device Index", "ff.sm.dev_annunc.req.dev_idx",
12916 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12918 { &hf_ff_sm_dev_annunc_req_max_dev_idx
,
12919 { "Max Device Index", "ff.sm.dev_annunc.req.max_dev_idx",
12920 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12922 { &hf_ff_sm_dev_annunc_req_operational_ip_addr
,
12923 { "Operational IP Address",
12924 "ff.sm.dev_annunc.req.operational_ip_addr",
12925 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12927 { &hf_ff_sm_dev_annunc_req_dev_id
,
12928 { "Device ID", "ff.sm.dev_annunc.req.dev_id",
12929 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12931 { &hf_ff_sm_dev_annunc_req_pd_tag
,
12932 { "PD Tag", "ff.sm.dev_annunc.req.pd_tag",
12933 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12935 { &hf_ff_sm_dev_annunc_req_hse_repeat_time
,
12936 { "HSE Repeat Time", "ff.sm.dev_annunc.req.hse_repeat_time",
12937 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12939 { &hf_ff_sm_dev_annunc_req_lr_port
,
12940 { "LAN Redundancy Port", "ff.sm.dev_annunc.req.lr_port",
12941 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12943 { &hf_ff_sm_dev_annunc_req_reserved
,
12944 { "Reserved", "ff.sm.dev_annunc.req.reserved",
12945 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12947 { &hf_ff_sm_dev_annunc_req_annunc_ver_num
,
12948 { "Annunciation Version Number",
12949 "ff.sm.dev_annunc.req.annunc_ver_num",
12950 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12952 { &hf_ff_sm_dev_annunc_req_hse_dev_ver_num
,
12953 { "HSE Device Version Number",
12954 "ff.sm.dev_annunc.req.hse_dev_ver_num",
12955 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12957 { &hf_ff_sm_dev_annunc_req_num_of_entries
,
12958 { "Number of Entries in Version Number List",
12959 "ff.sm.dev_annunc.req.num_of_entries",
12960 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12962 { &hf_ff_sm_dev_annunc_req_h1_live_list_h1_link_id
,
12963 { "H1 Link Id", "ff.sm.dev_annunc.req.h1_live_list.h1_link_id",
12964 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12966 { &hf_ff_sm_dev_annunc_req_h1_live_list_reserved
,
12967 { "Reserved", "ff.sm.dev_annunc.req.h1_live_list.reserved",
12968 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12970 { &hf_ff_sm_dev_annunc_req_h1_live_list_ver_num
,
12971 { "Version Number", "ff.sm.dev_annunc.req.h1_live_list.ver_num",
12972 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12974 { &hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_h1_node_addr
,
12975 { "H1 Node Address",
12976 "ff.sm.dev_annunc.req.h1_node_addr_ver_num.h1_node_addr",
12977 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12979 { &hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_ver_num
,
12980 { "Version Number",
12981 "ff.sm.dev_annunc.req.h1_node_addr_ver_num.ver_num",
12982 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12984 { &hf_ff_sm_dev_annunc_req_smk_state_name
,
12985 { "Name", "ff.sm.dev_annunc.req.smk_state_name",
12986 FT_UINT8
, BASE_DEC
, VALS(names_smk_state
), 0xFE, NULL
, HFILL
} },
12988 { &hf_ff_sm_dev_annunc_req_smk_state_sync
,
12989 { "Synchronized with SNTP Time Server", "ff.sm.dev_annunc.req.smk_state_sync",
12990 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x01, NULL
, HFILL
} },
12992 { &hf_ff_sm_dev_annunc_req_dev_type_link
,
12993 { "Linking Device", "ff.sm.dev_annunc.req.dev_type.link",
12994 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x80, NULL
, HFILL
} },
12996 { &hf_ff_sm_dev_annunc_req_dev_type_iogateway
,
12997 { "I/O Gateway", "ff.sm.dev_annunc.req.dev_type.iogateway",
12998 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x40, NULL
, HFILL
} },
13000 { &hf_ff_sm_dev_annunc_req_dev_type_hse
,
13001 { "HSE Field Device", "ff.sm.dev_annunc.req.dev_type.hse",
13002 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x20, NULL
, HFILL
} },
13004 { &hf_ff_sm_dev_annunc_req_dev_type_h1
,
13005 { "H1 Device", "ff.sm.dev_annunc.req.dev_type.h1",
13006 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x10, NULL
, HFILL
} },
13008 { &hf_ff_sm_dev_annunc_req_dev_type_reserved
,
13009 { "Reserved", "ff.sm.dev_annunc.req.dev_type.reserved",
13010 FT_UINT8
, BASE_HEX
, NULL
, 0x08, NULL
, HFILL
} },
13012 { &hf_ff_sm_dev_annunc_req_dev_type_redundant_caps
,
13013 { "Redundant Device Type Capability", "ff.sm.dev_annunc.req.dev_type.redundant_caps",
13014 FT_UINT8
, BASE_DEC
, VALS(names_dev_type
), 0x07, NULL
, HFILL
} },
13016 { &hf_ff_sm_dev_annunc_req_dev_redundancy_state_reserved
,
13017 { "Reserved", "ff.sm.dev_annunc.req_dev_redundancy_state.reserved",
13018 FT_UINT8
, BASE_HEX
, NULL
, 0xF0, NULL
, HFILL
} },
13020 { &hf_ff_sm_dev_annunc_req_dev_redundancy_state_role
,
13021 { "Type D-2 Device Redundancy Role", "ff.sm.dev_annunc.req_dev_redundancy_state.role",
13022 FT_UINT8
, BASE_DEC
, VALS(names_type_d2_dev_redundancy_role
), 0x0C, NULL
, HFILL
} },
13024 { &hf_ff_sm_dev_annunc_req_dev_redundancy_state_type
,
13025 { "Assigned Device Redundancy Type", "ff.sm.dev_annunc.req_dev_redundancy_state.type",
13026 FT_UINT8
, BASE_DEC
, VALS(names_assigned_redundant_dev_type
), 0x03, NULL
, HFILL
} },
13028 { &hf_ff_sm_dev_annunc_req_dup_detection_state_reserved
,
13029 { "Reserved", "ff.sm.dev_annunc.req.dup_detection_state.reserved",
13030 FT_UINT8
, BASE_HEX
, NULL
, 0xFC, NULL
, HFILL
} },
13032 { &hf_ff_sm_dev_annunc_req_dup_detection_state_pd_tag
,
13033 { "Duplicate PD Tag", "ff.sm.dev_annunc.req.dup_detection_state.pd_tag",
13034 FT_BOOLEAN
, 8, TFS(&tfs_detected_not_detected
), 0x02, NULL
, HFILL
} },
13036 { &hf_ff_sm_dev_annunc_req_dup_detection_state_device
,
13037 { "Duplicate Device Index", "ff.sm.dev_annunc.req.dup_detection_state.device",
13038 FT_BOOLEAN
, 8, TFS(&tfs_detected_not_detected
), 0x01, NULL
, HFILL
} },
13042 * 6.5.3. FMS Services
13045 { "FMS Service", "ff.fms",
13046 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13051 * 6.5.3.2. FMS Initiate (Confirmed Service Id = 96)
13054 { "FMS Initiate", "ff.fms.init",
13055 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13060 * 6.5.3.2.1. Request Message Parameters
13062 { &hf_ff_fms_init_req
,
13063 { "FMS Initiate Request", "ff.fms.init.req",
13064 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13066 { &hf_ff_fms_init_req_conn_opt
,
13067 { "Connect Option", "ff.fms.init.req.conn_opt",
13068 FT_UINT8
, BASE_DEC
, VALS(names_conn_opt
), 0x0, NULL
, HFILL
} },
13070 { &hf_ff_fms_init_req_access_protection_supported_calling
,
13071 { "Access Protection Supported Calling",
13072 "ff.fms.init.req.access_protection_supported_calling",
13073 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13075 { &hf_ff_fms_init_req_passwd_and_access_grps_calling
,
13076 { "Password and Access Groups Calling",
13077 "ff.fms.init.req.passwd_and_access_grps_calling",
13078 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13080 { &hf_ff_fms_init_req_ver_od_calling
,
13081 { "Version OD Calling", "ff.fms.init.req.ver_od_calling",
13082 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13084 { &hf_ff_fms_init_req_prof_num_calling
,
13085 { "Profile Number Calling", "ff.fms.init.req.prof_num_calling",
13086 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13088 { &hf_ff_fms_init_req_pd_tag
,
13089 { "PD Tag", "ff.fms.init.req.pd_tag",
13090 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13095 * 6.5.3.2.2. Response Message Parameters
13097 { &hf_ff_fms_init_rsp
,
13098 { "FMS Initiate Response", "ff.fms.init.rsp",
13099 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13101 { &hf_ff_fms_init_rsp_ver_od_called
,
13102 { "Version OD Called", "ff.fms.init.rsp.ver_od_called",
13103 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13105 { &hf_ff_fms_init_rsp_prof_num_called
,
13106 { "Profile Number Called", "ff.fms.init.rsp.prof_num_called",
13107 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13112 * 6.5.3.2.3. Error Message Parameters
13114 { &hf_ff_fms_init_err
,
13115 { "FMS Initiate Error", "ff.fms.init.err",
13116 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13118 { &hf_ff_fms_init_err_err_class
,
13119 { "Error Class", "ff.fms.init.err.err_class",
13120 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13122 { &hf_ff_fms_init_err_err_code
,
13123 { "Error Code", "ff.fms.init.err.err_code",
13124 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13126 { &hf_ff_fms_init_err_additional_code
,
13127 { "Additional Code", "ff.fms.init.err.additional_code",
13128 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13130 { &hf_ff_fms_init_err_additional_desc
,
13131 { "Additional Description", "ff.fms.init.err.additional_desc",
13132 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13137 * 6.5.3.3. FMS Abort (Unconfirmed Service Id = 112)
13139 { &hf_ff_fms_abort
,
13140 { "FMS Abort", "ff.fms.abort",
13141 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13146 * 6.5.3.3.1. Request Message Parameters
13148 { &hf_ff_fms_abort_req
,
13149 { "FMS Abort Request", "ff.fms.abort.req",
13150 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13152 { &hf_ff_fms_abort_req_abort_id
,
13153 { "Abort Identifier", "ff.fms.abort.req.abort_id",
13154 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13156 { &hf_ff_fms_abort_req_reason_code
,
13157 { "Reason Code", "ff.fms.abort.req.reason_code",
13158 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13160 { &hf_ff_fms_abort_req_reserved
,
13161 { "Reserved", "ff.fms.abort.req.reserved",
13162 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13167 * 6.5.3.4. FMS Status (Confirmed Service Id = 0)
13169 { &hf_ff_fms_status
,
13170 { "FMS Status", "ff.fms.status",
13171 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13176 * 6.5.3.4.1. Request Message Parameters
13178 { &hf_ff_fms_status_req
,
13179 { "FMS Status Request", "ff.fms.status.req",
13180 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13185 * 6.5.3.4.2. Response Message Parameters
13187 { &hf_ff_fms_status_rsp
,
13188 { "FMS Status Response", "ff.fms.status.rsp",
13189 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13191 { &hf_ff_fms_status_rsp_logical_status
,
13192 { "Logical Status", "ff.fms.status.rsp.logical_status",
13193 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13195 { &hf_ff_fms_status_rsp_physical_status
,
13196 { "Physical Status", "ff.fms.status.rsp.physical_status",
13197 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13199 { &hf_ff_fms_status_rsp_reserved
,
13200 { "Reserved", "ff.fms.status.rsp.reserved",
13201 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13206 * 6.5.3.4.3. Error Message Parameters
13208 { &hf_ff_fms_status_err
,
13209 { "FMS Status Error", "ff.fms.status.err",
13210 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13212 { &hf_ff_fms_status_err_err_class
,
13213 { "Error Class", "ff.fms.status.err.err_class",
13214 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13216 { &hf_ff_fms_status_err_err_code
,
13217 { "Error Code", "ff.fms.status.err.err_code",
13218 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13220 { &hf_ff_fms_status_err_additional_code
,
13221 { "Additional Code", "ff.fms.status.err.additional_code",
13222 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13224 { &hf_ff_fms_status_err_additional_desc
,
13225 { "Additional Description", "ff.fms.status.err.additional_desc",
13226 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13231 * 6.5.3.5. FMS Unsolicited Status (Unconfirmed Service Id = 1)
13233 { &hf_ff_fms_unsolicited_status
,
13234 { "FMS Unsolicited Status", "ff.fms.unsolicited_status",
13235 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13240 * 6.5.3.5.1. Request Message Parameters
13242 { &hf_ff_fms_unsolicited_status_req
,
13243 { "FMS Unsolicited Status Request", "ff.fms.unsolicited_status.req",
13244 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13246 { &hf_ff_fms_unsolicited_status_req_logical_status
,
13247 { "Logical Status", "ff.fms.unsolicited_status.req.logical_status",
13248 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13250 { &hf_ff_fms_unsolicited_status_req_physical_status
,
13251 { "Physical Status",
13252 "ff.fms.unsolicited_status.req.physical_status",
13253 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13255 { &hf_ff_fms_unsolicited_status_req_reserved
,
13256 { "Reserved", "ff.fms.unsolicited_status.req.reserved",
13257 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13262 * 6.5.3.6. FMS Identify (Confirmed Service Id = 1)
13265 { "FMS Identify", "ff.fms.id",
13266 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13271 * 6.5.3.6.1. Request Message Parameters
13273 { &hf_ff_fms_id_req
,
13274 { "FMS Identify Request", "ff.fms.id.req",
13275 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13280 * 6.5.3.6.2. Response Message Parameters
13282 { &hf_ff_fms_id_rsp
,
13283 { "FMS Identify Response", "ff.fms.id.rsp",
13284 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13286 { &hf_ff_fms_id_rsp_vendor_name
,
13287 { "Vendor Name", "ff.fms.id.rsp.vendor_name",
13288 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13290 { &hf_ff_fms_id_rsp_model_name
,
13291 { "Model Name", "ff.fms.id.rsp.model_name",
13292 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13294 { &hf_ff_fms_id_rsp_revision
,
13295 { "Revision", "ff.fms.id.rsp.revision",
13296 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13301 * 6.5.3.6.3. Error Message Parameters
13303 { &hf_ff_fms_id_err
,
13304 { "FMS Identify Error", "ff.fms.id.err",
13305 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13307 { &hf_ff_fms_id_err_err_class
,
13308 { "Error Class", "ff.fms.id.err.err_class",
13309 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13311 { &hf_ff_fms_id_err_err_code
,
13312 { "Error Code", "ff.fms.id.err.err_code",
13313 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13315 { &hf_ff_fms_id_err_additional_code
,
13316 { "Additional Code", "ff.fms.id.err.additional_code",
13317 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13319 { &hf_ff_fms_id_err_additional_desc
,
13320 { "Additional Description", "ff.fms.id.err.additional_desc",
13321 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13326 * 6.5.3.7. FMS Get OD (Confirmed Service Id = 4)
13328 { &hf_ff_fms_get_od
,
13329 { "FMS Get OD", "ff.fms.get_od",
13330 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13335 * 6.5.3.7.1. Request Message Parameters
13337 { &hf_ff_fms_get_od_req
,
13338 { "FMS Get OD Request", "ff.fms.get_od.req",
13339 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13341 { &hf_ff_fms_get_od_req_all_attrs
,
13342 { "All Attributes", "ff.fms.get_od.req.all_attrs",
13343 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13345 { &hf_ff_fms_get_od_req_start_idx_flag
,
13346 { "Start Index Flag", "ff.fms.get_od.req.start_idx_flag",
13347 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13349 { &hf_ff_fms_get_od_req_reserved
,
13350 { "Reserved", "ff.fms.get_od.req.reserved",
13351 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13353 { &hf_ff_fms_get_od_req_idx
,
13354 { "Index", "ff.fms.get_od.req.idx",
13355 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13360 * 6.5.3.7.2. Response Message Parameters
13362 { &hf_ff_fms_get_od_rsp
,
13363 { "FMS Get OD Response", "ff.fms.get_od.rsp",
13364 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13366 { &hf_ff_fms_get_od_rsp_more_follows
,
13367 { "More Follows", "ff.fms.get_od.rsp.more_follows",
13368 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13370 { &hf_ff_fms_get_od_rsp_num_of_obj_desc
,
13371 { "Number of Object Descriptions",
13372 "ff.fms.get_od.rsp.num_of_obj_desc",
13373 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13375 { &hf_ff_fms_get_od_rsp_reserved
,
13376 { "Reserved", "ff.fms.get_od.rsp.reserved",
13377 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13382 * 6.5.3.7.3. Error Message Parameters
13384 { &hf_ff_fms_get_od_err
,
13385 { "FMS Get OD Error", "ff.fms.get_od.err",
13386 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13388 { &hf_ff_fms_get_od_err_err_class
,
13389 { "Error Class", "ff.fms.get_od.err.err_class",
13390 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13392 { &hf_ff_fms_get_od_err_err_code
,
13393 { "Error Code", "ff.fms.get_od.err.err_code",
13394 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13396 { &hf_ff_fms_get_od_err_additional_code
,
13397 { "Additional Code", "ff.fms.get_od.err.additional_code",
13398 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13400 { &hf_ff_fms_get_od_err_additional_desc
,
13401 { "Additional Description", "ff.fms.get_od.err.additional_desc",
13402 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13407 * 6.5.3.8. FMS Initiate Put OD (Confirmed Service Id = 28)
13409 { &hf_ff_fms_init_put_od
,
13410 { "FMS Initiate Put OD", "ff.fms.init_put_od",
13411 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13416 * 6.5.3.8.1. Request Message Parameters
13418 { &hf_ff_fms_init_put_od_req
,
13419 { "FMS Initiate Put OD Request", "ff.fms.init_put_od.req",
13420 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13422 { &hf_ff_fms_init_put_od_req_reserved
,
13423 { "Reserved", "ff.fms.init_put_od.req.reserved",
13424 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13426 { &hf_ff_fms_init_put_od_req_consequence
,
13427 { "Consequence", "ff.fms.init_put_od.req.consequence",
13428 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13433 * 6.5.3.8.2. Response Message Parameters
13435 { &hf_ff_fms_init_put_od_rsp
,
13436 { "FMS Initiate Put OD Response", "ff.fms.init_put_od.rsp",
13437 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13442 * 6.5.3.8.3. Error Message Parameters
13444 { &hf_ff_fms_init_put_od_err
,
13445 { "FMS Initiate Put OD Error", "ff.fms.init_put_od.err",
13446 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13448 { &hf_ff_fms_init_put_od_err_err_class
,
13449 { "Error Class", "ff.fms.init_put_od.err.err_class",
13450 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13452 { &hf_ff_fms_init_put_od_err_err_code
,
13453 { "Error Code", "ff.fms.init_put_od.err.err_code",
13454 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13456 { &hf_ff_fms_init_put_od_err_additional_code
,
13457 { "Additional Code", "ff.fms.init_put_od.err.additional_code",
13458 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13460 { &hf_ff_fms_init_put_od_err_additional_desc
,
13461 { "Additional Description",
13462 "ff.fms.init_put_od.err.additional_desc",
13463 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13468 * 6.5.3.9. FMS Put OD (Confirmed Service Id = 29)
13470 { &hf_ff_fms_put_od
,
13471 { "FMS Put OD", "ff.fms.put_od",
13472 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13477 * 6.5.3.9.1. Request Message Parameters
13479 { &hf_ff_fms_put_od_req
,
13480 { "FMS Put OD Request", "ff.fms.put_od.req",
13481 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13483 { &hf_ff_fms_put_od_req_num_of_obj_desc
,
13484 { "Number of Object Descriptions",
13485 "ff.fms.put_od.req.num_of_obj_desc",
13486 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13491 * 6.5.3.9.2. Response Message Parameters
13493 { &hf_ff_fms_put_od_rsp
,
13494 { "FMS Put OD Response", "ff.fms.put_od.rsp",
13495 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13500 * 6.5.3.9.3. Error Message Parameters
13502 { &hf_ff_fms_put_od_err
,
13503 { "FMS Put OD Error", "ff.fms.put_od.err",
13504 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13506 { &hf_ff_fms_put_od_err_err_class
,
13507 { "Error Class", "ff.fms.put_od.err.err_class",
13508 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13510 { &hf_ff_fms_put_od_err_err_code
,
13511 { "Error Code", "ff.fms.put_od.err.err_code",
13512 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13514 { &hf_ff_fms_put_od_err_additional_code
,
13515 { "Additional Code", "ff.fms.put_od.err.additional_code",
13516 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13518 { &hf_ff_fms_put_od_err_additional_desc
,
13519 { "Additional Description", "ff.fms.put_od.err.additional_desc",
13520 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13525 * 6.5.3.10. FMS Terminate Put OD (Confirmed Service Id = 30)
13527 { &hf_ff_fms_terminate_put_od
,
13528 { "FMS Terminate Put OD", "ff.fms.terminate_put_od",
13529 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13534 * 6.5.3.10.1. Request Message Parameters
13536 { &hf_ff_fms_terminate_put_od_req
,
13537 { "FMS Terminate Put OD Request", "ff.fms.terminate_put_od.req",
13538 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13543 * 6.5.3.10.2. Response Message Parameters
13545 { &hf_ff_fms_terminate_put_od_rsp
,
13546 { "FMS Terminate Put OD Response", "ff.fms.terminate_put_od.rsp",
13547 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13552 * 6.5.3.10.3. Error Message Parameters
13554 { &hf_ff_fms_terminate_put_od_err
,
13555 { "FMS Terminate Put OD Error", "ff.fms.terminate_put_od.err",
13556 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13558 { &hf_ff_fms_terminate_put_od_err_index
,
13559 { "Index", "ff.fms.terminate_put_od.err.index",
13560 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13562 { &hf_ff_fms_terminate_put_od_err_err_class
,
13563 { "Error Class", "ff.fms.terminate_put_od.err.err_class",
13564 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13566 { &hf_ff_fms_terminate_put_od_err_err_code
,
13567 { "Error Code", "ff.fms.terminate_put_od.err.err_code",
13568 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13570 { &hf_ff_fms_terminate_put_od_err_additional_code
,
13571 { "Additional Code", "ff.fms.terminate_put_od.err.additional_code",
13572 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13574 { &hf_ff_fms_terminate_put_od_err_additional_desc
,
13575 { "Additional Description",
13576 "ff.fms.terminate_put_od.err.additional_desc",
13577 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13582 * 6.5.3.11. FMS Generic Initiate Download Sequence
13583 * (Confirmed Service Id = 31)
13585 { &hf_ff_fms_gen_init_download_seq
,
13586 { "FMS Generic Initiate Download Sequence",
13587 "ff.fms.gen_init_download_seq",
13588 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13593 * 6.5.3.11.1. Request Message Parameters
13595 { &hf_ff_fms_gen_init_download_seq_req
,
13596 { "FMS Generic Initiate Download Sequence Request",
13597 "ff.fms.gen_init_download_seq.req",
13598 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13600 { &hf_ff_fms_gen_init_download_seq_req_idx
,
13602 "ff.fms.gen_init_download_seq.req.idx",
13603 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13608 * 6.5.3.11.2. Response Message Parameters
13610 { &hf_ff_fms_gen_init_download_seq_rsp
,
13611 { "FMS Generic Initiate Download Sequence Response",
13612 "ff.fms.gen_init_download_seq.rsp",
13613 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13618 * 6.5.3.11.3. Error Message Parameters
13620 { &hf_ff_fms_gen_init_download_seq_err
,
13621 { "FMS Generic Initiate Download Sequence Error",
13622 "ff.fms.gen_init_download_seq.err",
13623 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13625 { &hf_ff_fms_gen_init_download_seq_err_err_class
,
13626 { "Error Class", "ff.fms.gen_init_download_seq.err.err_class",
13627 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13629 { &hf_ff_fms_gen_init_download_seq_err_err_code
,
13630 { "Error Code", "ff.fms.gen_init_download_seq.err.err_code",
13631 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13633 { &hf_ff_fms_gen_init_download_seq_err_additional_code
,
13634 { "Additional Code",
13635 "ff.fms.gen_init_download_seq.err.additional_code",
13636 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13638 { &hf_ff_fms_gen_init_download_seq_err_additional_desc
,
13639 { "Additional Description",
13640 "ff.fms.gen_init_download_seq.err.additional_desc",
13641 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13646 * 6.5.3.12. FMS Generic Download Segment (Confirmed Service Id = 32)
13648 { &hf_ff_fms_gen_download_seg
,
13649 { "FMS Generic Download Segment", "ff.fms.gen_download_seg",
13650 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13655 * 6.5.3.12.1. Request Message Parameters
13657 { &hf_ff_fms_gen_download_seg_req
,
13658 { "FMS Generic Download Segment Request",
13659 "ff.fms.gen_download_seg.req",
13660 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13662 { &hf_ff_fms_gen_download_seg_req_idx
,
13663 { "Index", "ff.fms.gen_download_seg.req.idx",
13664 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13666 { &hf_ff_fms_gen_download_seg_req_more_follows
,
13667 { "More Follows", "ff.fms.gen_download_seg.req.more_follows",
13668 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13673 * 6.5.3.12.2. Response Message Parameters
13675 { &hf_ff_fms_gen_download_seg_rsp
,
13676 { "FMS Generic Download Segment Response",
13677 "ff.fms.gen_download_seg.rsp",
13678 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13683 * 6.5.3.12.3. Error Message Parameters
13685 { &hf_ff_fms_gen_download_seg_err
,
13686 { "FMS Generic Download Segment Error",
13687 "ff.fms.gen_download_seg.err",
13688 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13690 { &hf_ff_fms_gen_download_seg_err_err_class
,
13691 { "Error Class", "ff.fms.gen_download_seg.err.err_class",
13692 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13694 { &hf_ff_fms_gen_download_seg_err_err_code
,
13695 { "Error Code", "ff.fms.gen_download_seg.err.err_code",
13696 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13698 { &hf_ff_fms_gen_download_seg_err_additional_code
,
13699 { "Additional Code", "ff.fms.gen_download_seg.err.additional_code",
13700 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13702 { &hf_ff_fms_gen_download_seg_err_additional_desc
,
13703 { "Additional Description",
13704 "ff.fms.gen_download_seg.err.additional_desc",
13705 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13710 * 6.5.3.13. FMS Generic Terminate Download Sequence
13711 * (Confirmed Service Id = 33)
13713 { &hf_ff_fms_gen_terminate_download_seq
,
13714 { "FMS Generic Terminate Download Sequence",
13715 "ff.fms.gen_terminate_download_seq",
13716 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13721 * 6.5.3.13.1. Request Message Parameters
13723 { &hf_ff_fms_gen_terminate_download_seq_req
,
13724 { "FMS Generic Terminate Download Sequence Request",
13725 "ff.fms.gen_terminate_download_seq.req",
13726 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13728 { &hf_ff_fms_gen_terminate_download_seq_req_idx
,
13729 { "Index", "ff.fms.gen_terminate_download_seq.req.idx",
13730 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13735 * 6.5.3.13.2. Response Message Parameters
13737 { &hf_ff_fms_gen_terminate_download_seq_rsp
,
13738 { "FMS Generic Terminate Download Sequence Response",
13739 "ff.fms.gen_terminate_download_seq.rsp",
13740 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13742 { &hf_ff_fms_gen_terminate_download_seq_rsp_final_result
,
13744 "ff.fms.gen_terminate_download_seq.rsp.final_result",
13745 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13750 * 6.5.3.13.3. Error Message Parameters
13752 { &hf_ff_fms_gen_terminate_download_seq_err
,
13753 { "FMS Generic Terminate Download Sequence Error",
13754 "ff.fms.gen_terminate_download_seq.err",
13755 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13757 { &hf_ff_fms_gen_terminate_download_seq_err_err_class
,
13758 { "Error Class", "ff.fms.gen_terminate_download_seq.err.err_class",
13759 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13761 { &hf_ff_fms_gen_terminate_download_seq_err_err_code
,
13762 { "Error Code", "ff.fms.gen_terminate_download_seq.err.err_code",
13763 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13765 { &hf_ff_fms_gen_terminate_download_seq_err_additional_code
,
13766 { "Additional Code",
13767 "ff.fms.gen_terminate_download_seq.err.additional_code",
13768 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13770 { &hf_ff_fms_gen_terminate_download_seq_err_additional_desc
,
13771 { "Additional Description",
13772 "ff.fms.gen_terminate_download_seq.err.additional_desc",
13773 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13778 * 6.5.3.14. FMS Initiate Download Sequence (Confirmed Service Id = 9)
13780 { &hf_ff_fms_init_download_seq
,
13781 { "FMS Initiate Download Sequence",
13782 "ff.fms.init_download_seq",
13783 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13788 * 6.5.3.14.1. Request Message Parameters
13790 { &hf_ff_fms_init_download_seq_req
,
13791 { "FMS Initiate Download Sequence Request",
13792 "ff.fms.init_download_seq.req",
13793 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13795 { &hf_ff_fms_init_download_seq_req_idx
,
13796 { "Index", "ff.fms.init_download_seq.req.idx",
13797 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13802 * 6.5.3.14.2. Response Message Parameters
13804 { &hf_ff_fms_init_download_seq_rsp
,
13805 { "FMS Initiate Download Sequence Response",
13806 "ff.fms.init_download_seq.rsp",
13807 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13812 * 6.5.3.14.3. Error Message Parameters
13814 { &hf_ff_fms_init_download_seq_err
,
13815 { "FMS Initiate Download Sequence Error",
13816 "ff.fms.init_download_seq.err",
13817 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13819 { &hf_ff_fms_init_download_seq_err_err_class
,
13820 { "Error Class", "ff.fms.init_download_seq.err.err_class",
13821 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13823 { &hf_ff_fms_init_download_seq_err_err_code
,
13824 { "Error Code", "ff.fms.init_download_seq.err.err_code",
13825 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13827 { &hf_ff_fms_init_download_seq_err_additional_code
,
13828 { "Additional Code", "ff.fms.init_download_seq.err.additional_code",
13829 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13831 { &hf_ff_fms_init_download_seq_err_additional_desc
,
13832 { "Additional Description",
13833 "ff.fms.init_download_seq.err.additional_desc",
13834 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13839 * 6.5.3.15. FMS Download Segment (Confirmed Service Id = 10)
13841 { &hf_ff_fms_download_seg
,
13842 { "FMS Download Segment", "ff.fms.download_seg",
13843 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13848 * 6.5.3.15.1. Request Message Parameters
13850 { &hf_ff_fms_download_seg_req
,
13851 { "FMS Download Segment Request", "ff.fms.download_seg.req",
13852 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13854 { &hf_ff_fms_download_seg_req_idx
,
13855 { "Index", "ff.fms.download_seg.req.idx",
13856 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13861 * 6.5.3.15.2. Response Message Parameters
13863 { &hf_ff_fms_download_seg_rsp
,
13864 { "FMS Download Segment Response", "ff.fms.download_seg.rsp",
13865 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13867 { &hf_ff_fms_download_seg_rsp_more_follows
,
13868 { "Final Result", "ff.fms.download_seg.rsp.more_follows",
13869 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13874 * 6.5.3.15.3. Error Message Parameters
13876 { &hf_ff_fms_download_seg_err
,
13877 { "FMS Download Segment Error", "ff.fms.download_seg.err",
13878 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13880 { &hf_ff_fms_download_seg_err_err_class
,
13881 { "Error Class", "ff.fms.download_seg.err.err_class",
13882 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13884 { &hf_ff_fms_download_seg_err_err_code
,
13885 { "Error Code", "ff.fms.download_seg.err.err_code",
13886 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13888 { &hf_ff_fms_download_seg_err_additional_code
,
13889 { "Additional Code", "ff.fms.download_seg.err.additional_code",
13890 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13892 { &hf_ff_fms_download_seg_err_additional_desc
,
13893 { "Additional Description",
13894 "ff.fms.download_seg.err.additional_desc",
13895 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13900 * 6.5.3.16. FMS Terminate Download Sequence (Confirmed Service Id = 11)
13902 { &hf_ff_fms_terminate_download_seq
,
13903 { "FMS Terminate Download Sequence",
13904 "ff.fms.terminate_download_seq",
13905 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13910 * 6.5.3.16.1. Request Message Parameters
13912 { &hf_ff_fms_terminate_download_seq_req
,
13913 { "FMS Terminate Download Sequence Request",
13914 "ff.fms.terminate_download_seq.req",
13915 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13917 { &hf_ff_fms_terminate_download_seq_req_idx
,
13918 { "Index", "ff.fms.terminate_download_seq.req.idx",
13919 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13921 { &hf_ff_fms_terminate_download_seq_req_final_result
,
13922 { "Final Result", "ff.fms.terminate_download_seq.req.final_result",
13923 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13928 * 6.5.3.16.2. Response Message Parameters
13930 { &hf_ff_fms_terminate_download_seq_rsp
,
13931 { "FMS Terminate Download Sequence Response",
13932 "ff.fms.terminate_download_seq.rsp",
13933 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13938 * 6.5.3.16.3. Error Message Parameters
13940 { &hf_ff_fms_terminate_download_seq_err
,
13941 { "FMS Terminate Download Sequence Error",
13942 "ff.fms.terminate_download_seq.err",
13943 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13945 { &hf_ff_fms_terminate_download_seq_err_err_class
,
13946 { "Error Class", "ff.fms.terminate_download_seq.err.err_class",
13947 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13949 { &hf_ff_fms_terminate_download_seq_err_err_code
,
13950 { "Error Code", "ff.fms.terminate_download_seq.err.err_code",
13951 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13953 { &hf_ff_fms_terminate_download_seq_err_additional_code
,
13954 { "Additional Code",
13955 "ff.fms.terminate_download_seq.err.additional_code",
13956 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13958 { &hf_ff_fms_terminate_download_seq_err_additional_desc
,
13959 { "Additional Description",
13960 "ff.fms.terminate_download_seq.err.additional_desc",
13961 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13966 * 6.5.3.17. FMS Initiate Upload Sequence (Confirmed Service Id = 12)
13968 { &hf_ff_fms_init_upload_seq
,
13969 { "FMS Initiate Upload Sequence", "ff.fms.init_upload_seq",
13970 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13975 * 6.5.3.17.1. Request Message Parameters
13977 { &hf_ff_fms_init_upload_seq_req
,
13978 { "FMS Initiate Upload Sequence Request",
13979 "ff.fms.init_upload_seq.req",
13980 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13982 { &hf_ff_fms_init_upload_seq_req_idx
,
13983 { "Index", "ff.fms.init_upload_seq.req.idx",
13984 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13989 * 6.5.3.17.2. Response Message Parameters
13991 { &hf_ff_fms_init_upload_seq_rsp
,
13992 { "FMS Initiate Upload Sequence Response",
13993 "ff.fms.init_upload_seq.rsp",
13994 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13999 * 6.5.3.17.3. Error Message Parameters
14001 { &hf_ff_fms_init_upload_seq_err
,
14002 { "FMS Initiate Upload Sequence Error",
14003 "ff.fms.init_upload_seq.err",
14004 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14006 { &hf_ff_fms_init_upload_seq_err_err_class
,
14007 { "Error Class", "ff.fms.init_upload_seq.err.err_class",
14008 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14010 { &hf_ff_fms_init_upload_seq_err_err_code
,
14011 { "Error Code", "ff.fms.init_upload_seq.err.err_code",
14012 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14014 { &hf_ff_fms_init_upload_seq_err_additional_code
,
14015 { "Additional Code", "ff.fms.init_upload_seq.err.additional_code",
14016 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14018 { &hf_ff_fms_init_upload_seq_err_additional_desc
,
14019 { "Additional Description",
14020 "ff.fms.init_upload_seq.err.additional_desc",
14021 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14026 * 6.5.3.18. FMS Upload Segment (Confirmed Service Id = 13)
14028 { &hf_ff_fms_upload_seg
,
14029 { "FMS Upload Segment", "ff.fms.upload_seg",
14030 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14035 * 6.5.3.18.1. Request Message Parameters
14037 { &hf_ff_fms_upload_seg_req
,
14038 { "FMS Upload Segment Request", "ff.fms.upload_seg.req",
14039 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14041 { &hf_ff_fms_upload_seg_req_idx
,
14042 { "Index", "ff.fms.upload_seg.req.idx",
14043 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14048 * 6.5.3.18.2. Response Message Parameters
14050 { &hf_ff_fms_upload_seg_rsp
,
14051 { "FMS Upload Segment Response", "ff.fms.upload_seg.rsp",
14052 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14054 { &hf_ff_fms_upload_seg_rsp_more_follows
,
14055 { "More Follows", "ff.fms.upload_seg.rsp.more_follows",
14056 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14061 * 6.5.3.18.3. Error Message Parameters
14063 { &hf_ff_fms_upload_seg_err
,
14064 { "FMS Upload Segment Error", "ff.fms.upload_seg.err",
14065 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14067 { &hf_ff_fms_upload_seg_err_err_class
,
14068 { "Error Class", "ff.fms.upload_seg.err.err_class",
14069 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14071 { &hf_ff_fms_upload_seg_err_err_code
,
14072 { "Error Code", "ff.fms.upload_seg.err.err_code",
14073 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14075 { &hf_ff_fms_upload_seg_err_additional_code
,
14076 { "Additional Code", "ff.fms.upload_seg.err.additional_code",
14077 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14079 { &hf_ff_fms_upload_seg_err_additional_desc
,
14080 { "Additional Description", "ff.fms.upload_seg.err.additional_desc",
14081 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14086 * 6.5.3.19. FMS Terminate Upload Sequence (Confirmed Service Id = 14)
14088 { &hf_ff_fms_terminate_upload_seq
,
14089 { "FMS Terminate Upload Sequence",
14090 "ff.fms.terminate_upload_seq",
14091 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14096 * 6.5.3.19.1. Request Message Parameters
14098 { &hf_ff_fms_terminate_upload_seq_req
,
14099 { "FMS Terminate Upload Sequence Request",
14100 "ff.fms.terminate_upload_seq.req",
14101 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14103 { &hf_ff_fms_terminate_upload_seq_req_idx
,
14104 { "Index", "ff.fms.terminate_upload_seq.req.idx",
14105 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14110 * 6.5.3.19.2. Response Message Parameters
14112 { &hf_ff_fms_terminate_upload_seq_rsp
,
14113 { "FMS Terminate Upload Sequence Response",
14114 "ff.fms.terminate_upload_seq.rsp",
14115 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14120 * 6.5.3.19.3. Error Message Parameters
14122 { &hf_ff_fms_terminate_upload_seq_err
,
14123 { "FMS Terminate Upload Sequence Error",
14124 "ff.fms.terminate_upload_seq.err",
14125 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14127 { &hf_ff_fms_terminate_upload_seq_err_err_class
,
14128 { "Error Class", "ff.fms.terminate_upload_seq.err.err_class",
14129 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14131 { &hf_ff_fms_terminate_upload_seq_err_err_code
,
14132 { "Error Code", "ff.fms.terminate_upload_seq.err.err_code",
14133 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14135 { &hf_ff_fms_terminate_upload_seq_err_additional_code
,
14136 { "Additional Code",
14137 "ff.fms.terminate_upload_seq.err.additional_code",
14138 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14140 { &hf_ff_fms_terminate_upload_seq_err_additional_desc
,
14141 { "Additional Description",
14142 "ff.fms.terminate_upload_seq.err.additional_desc",
14143 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14148 * 6.5.3.20. FMS Request Domain Download (Confirmed Service Id = 15)
14150 { &hf_ff_fms_req_dom_download
,
14151 { "FMS Request Domain Download", "ff.fms.req_dom_download",
14152 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14157 * 6.5.3.20.1. Request Message Parameters
14159 { &hf_ff_fms_req_dom_download_req
,
14160 { "FMS Request Domain Download Request",
14161 "ff.fms.req_dom_download.req",
14162 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14164 { &hf_ff_fms_req_dom_download_req_idx
,
14165 { "Index", "ff.fms.req_dom_download.req.idx",
14166 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14168 { &hf_ff_fms_req_dom_download_req_additional_info
,
14169 { "Additional Description",
14170 "ff.fms.req_dom_download.req.additional_info",
14171 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14176 * 6.5.3.20.2. Response Message Parameters
14178 { &hf_ff_fms_req_dom_download_rsp
,
14179 { "FMS Request Domain Download Response",
14180 "ff.fms.req_dom_download.rsp",
14181 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14184 * 6.5.3.20.3. Error Message Parameters
14186 { &hf_ff_fms_req_dom_download_err
,
14187 { "FMS Request Domain Download Error",
14188 "ff.fms.req_dom_download.err",
14189 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14191 { &hf_ff_fms_req_dom_download_err_err_class
,
14192 { "Error Class", "ff.fms.req_dom_download.err.err_class",
14193 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14195 { &hf_ff_fms_req_dom_download_err_err_code
,
14196 { "Error Code", "ff.fms.req_dom_download.err.err_code",
14197 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14199 { &hf_ff_fms_req_dom_download_err_additional_code
,
14200 { "Additional Code", "ff.fms.req_dom_download.err.additional_code",
14201 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14203 { &hf_ff_fms_req_dom_download_err_additional_desc
,
14204 { "Additional Description",
14205 "ff.fms.req_dom_download.err.additional_desc",
14206 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14211 * 6.5.3.21. FMS Request Domain Upload (Confirmed Service Id = 16)
14213 { &hf_ff_fms_req_dom_upload
,
14214 { "FMS Request Domain Upload", "ff.fms.req_dom_upload",
14215 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14220 * 6.5.3.21.1. Request Message Parameters
14222 { &hf_ff_fms_req_dom_upload_req
,
14223 { "FMS Request Domain Upload Request", "ff.fms.req_dom_upload.req",
14224 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14226 { &hf_ff_fms_req_dom_upload_req_idx
,
14227 { "Index", "ff.fms.req_dom_upload.req.idx",
14228 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14230 { &hf_ff_fms_req_dom_upload_req_additional_info
,
14231 { "Additional Description",
14232 "ff.fms.req_dom_upload.req.additional_info",
14233 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14238 * 6.5.3.21.2. Response Message Parameters
14240 { &hf_ff_fms_req_dom_upload_rsp
,
14241 { "FMS Request Domain Upload Response", "ff.fms.req_dom_upload.rsp",
14242 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14247 * 6.5.3.21.3. Error Message Parameters
14249 { &hf_ff_fms_req_dom_upload_err
,
14250 { "FMS Request Domain Upload Error", "ff.fms.req_dom_upload.err",
14251 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14253 { &hf_ff_fms_req_dom_upload_err_err_class
,
14254 { "Error Class", "ff.fms.req_dom_upload.err.err_class",
14255 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14257 { &hf_ff_fms_req_dom_upload_err_err_code
,
14258 { "Error Code", "ff.fms.req_dom_upload.err.err_code",
14259 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14261 { &hf_ff_fms_req_dom_upload_err_additional_code
,
14262 { "Additional Code", "ff.fms.req_dom_upload.err.additional_code",
14263 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14265 { &hf_ff_fms_req_dom_upload_err_additional_desc
,
14266 { "Additional Description",
14267 "ff.fms.req_dom_upload.err.additional_desc",
14268 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14273 * 6.5.3.22. FMS Create Program Invocation (Confirmed Service Id = 17)
14275 { &hf_ff_fms_create_pi
,
14276 { "FMS Create Program Invocation", "ff.fms.create_pi",
14277 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14282 * 6.5.3.22.1. Request Message Parameters
14284 { &hf_ff_fms_create_pi_req
,
14285 { "FMS Create Program Invocation Request", "ff.fms.create_pi.req",
14286 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14288 { &hf_ff_fms_create_pi_req_reusable
,
14289 { "Reusable", "ff.fms.create_pi.req.reusable",
14290 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14292 { &hf_ff_fms_create_pi_req_reserved
,
14293 { "Reserved", "ff.fms.create_pi.req.reserved",
14294 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14296 { &hf_ff_fms_create_pi_req_num_of_dom_idxes
,
14297 { "Number of Domain Indexes",
14298 "ff.fms.create_pi.req.num_of_dom_idxes",
14299 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14301 { &hf_ff_fms_create_pi_req_dom_idx
,
14302 { "Domain Index", "ff.fms.create_pi.req.list_of_dom_idxes.dom_idx",
14303 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14308 * 6.5.3.22.2. Response Message Parameters
14310 { &hf_ff_fms_create_pi_rsp
,
14311 { "FMS Create Program Invocation Response", "ff.fms.create_pi.rsp",
14312 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14314 { &hf_ff_fms_create_pi_rsp_idx
,
14315 { "Index", "ff.fms.create_pi.rsp.idx",
14316 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14321 * 6.5.3.22.3. Error Message Parameters
14323 { &hf_ff_fms_create_pi_err
,
14324 { "FMS Create Program Invocation Error", "ff.fms.create_pi.err",
14325 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14327 { &hf_ff_fms_create_pi_err_err_class
,
14328 { "Error Class", "ff.fms.create_pi.err.err_class",
14329 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14331 { &hf_ff_fms_create_pi_err_err_code
,
14332 { "Error Code", "ff.fms.create_pi.err.err_code",
14333 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14335 { &hf_ff_fms_create_pi_err_additional_code
,
14336 { "Additional Code",
14337 "ff.fms.create_pi.err.additional_code",
14338 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14340 { &hf_ff_fms_create_pi_err_additional_desc
,
14341 { "Additional Description",
14342 "ff.fms.create_pi.err.additional_desc",
14343 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14348 * 6.5.3.23. FMS Delete Program Invocation (Confirmed Service Id = 18)
14350 { &hf_ff_fms_del_pi
,
14351 { "FMS Delete Program Invocation", "ff.fms.del_pi",
14352 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14357 * 6.5.3.23.1. Request Message Parameters
14359 { &hf_ff_fms_del_pi_req
,
14360 { "FMS Delete Program Invocation Request", "ff.fms.del_pi.req",
14361 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14363 { &hf_ff_fms_del_pi_req_idx
,
14364 { "Index", "ff.fms.del_pi.req.idx",
14365 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14370 * 6.5.3.23.2. Response Message Parameters
14372 { &hf_ff_fms_del_pi_rsp
,
14373 { "FMS Delete Program Invocation Response", "ff.fms.del_pi.rsp",
14374 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14379 * 6.5.3.23.3. Error Message Parameters
14381 { &hf_ff_fms_del_pi_err
,
14382 { "FMS Delete Program Invocation Error", "ff.fms.del_pi.err",
14383 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14385 { &hf_ff_fms_del_pi_err_err_class
,
14386 { "Error Class", "ff.fms.del_pi.err.err_class",
14387 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14389 { &hf_ff_fms_del_pi_err_err_code
,
14390 { "Error Code", "ff.fms.del_pi.err.err_code",
14391 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14393 { &hf_ff_fms_del_pi_err_additional_code
,
14394 { "Additional Code",
14395 "ff.fms.del_pi.err.additional_code",
14396 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14398 { &hf_ff_fms_del_pi_err_additional_desc
,
14399 { "Additional Description",
14400 "ff.fms.del_pi.err.additional_desc",
14401 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14406 * 6.5.3.24. FMS Start (Confirmed Service Id = 19)
14408 { &hf_ff_fms_start
,
14409 { "FMS Start", "ff.fms.start",
14410 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14415 * 6.5.3.24.1. Request Message Parameters
14417 { &hf_ff_fms_start_req
,
14418 { "FMS Start Request", "ff.fms.start.req",
14419 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14421 { &hf_ff_fms_start_req_idx
,
14422 { "Index", "ff.fms.start.req.idx",
14423 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14428 * 6.5.3.24.2. Response Message Parameters
14430 { &hf_ff_fms_start_rsp
,
14431 { "FMS Start Response", "ff.fms.start.rsp",
14432 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14437 * 6.5.3.24.3. PI Error Message Parameters
14439 { &hf_ff_fms_start_err
,
14440 { "FMS Start Error", "ff.fms.start.err",
14441 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14443 { &hf_ff_fms_start_err_pi_state
,
14444 { "Pi State", "ff.fms.start.err.pi_state",
14445 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14447 { &hf_ff_fms_start_err_err_class
,
14448 { "Error Class", "ff.fms.start.err.err_class",
14449 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14451 { &hf_ff_fms_start_err_err_code
,
14452 { "Error Code", "ff.fms.start.err.err_code",
14453 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14455 { &hf_ff_fms_start_err_additional_code
,
14456 { "Additional Code", "ff.fms.start.err.additional_code",
14457 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14459 { &hf_ff_fms_start_err_additional_desc
,
14460 { "Additional Description", "ff.fms.start.err.additional_desc",
14461 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14466 * 6.5.3.25. FMS Stop (Confirmed Service Id = 20)
14469 { "FMS Stop", "ff.fms.stop",
14470 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14475 * 6.5.3.25.1. Request Message Parameters
14477 { &hf_ff_fms_stop_req
,
14478 { "FMS Stop Request", "ff.fms.stop.req",
14479 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14481 { &hf_ff_fms_stop_req_idx
,
14482 { "Index", "ff.fms.stop.req.idx",
14483 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14488 * 6.5.3.25.2. Response Message Parameters
14490 { &hf_ff_fms_stop_rsp
,
14491 { "FMS Stop Response", "ff.fms.stop.rsp",
14492 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14497 * 6.5.3.25.3. Error Message Parameters
14499 { &hf_ff_fms_stop_err
,
14500 { "FMS Stop Error", "ff.fms.stop.err",
14501 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14503 { &hf_ff_fms_stop_err_pi_state
,
14504 { "Pi State", "ff.fms.stop.err.pi_state",
14505 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14507 { &hf_ff_fms_stop_err_err_class
,
14508 { "Error Class", "ff.fms.stop.err.err_class",
14509 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14511 { &hf_ff_fms_stop_err_err_code
,
14512 { "Error Code", "ff.fms.stop.err.err_code",
14513 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14515 { &hf_ff_fms_stop_err_additional_code
,
14516 { "Additional Code", "ff.fms.stop.err.additional_code",
14517 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14519 { &hf_ff_fms_stop_err_additional_desc
,
14520 { "Additional Description", "ff.fms.stop.err.additional_desc",
14521 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14526 * 6.5.3.26. FMS Resume (Confirmed Service Id = 21)
14528 { &hf_ff_fms_resume
,
14529 { "FMS Resume", "ff.fms.resume",
14530 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14535 * 6.5.3.26.1. Request Message Parameters
14537 { &hf_ff_fms_resume_req
,
14538 { "FMS Resume Request", "ff.fms.resume.req",
14539 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14541 { &hf_ff_fms_resume_req_idx
,
14542 { "Index", "ff.fms.resume.req.idx",
14543 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14548 * 6.5.3.26.2. Response Message Parameters
14550 { &hf_ff_fms_resume_rsp
,
14551 { "FMS Resume Response", "ff.fms.resume.rsp",
14552 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14557 * 6.5.3.26.3. Error Message Parameters
14559 { &hf_ff_fms_resume_err
,
14560 { "FMS Resume Error", "ff.fms.resume.err",
14561 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14563 { &hf_ff_fms_resume_err_pi_state
,
14564 { "Pi State", "ff.fms.resume.err.pi_state",
14565 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14567 { &hf_ff_fms_resume_err_err_class
,
14568 { "Error Class", "ff.fms.resume.err.err_class",
14569 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14571 { &hf_ff_fms_resume_err_err_code
,
14572 { "Error Code", "ff.fms.resume.err.err_code",
14573 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14575 { &hf_ff_fms_resume_err_additional_code
,
14576 { "Additional Code", "ff.fms.resume.err.additional_code",
14577 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14579 { &hf_ff_fms_resume_err_additional_desc
,
14580 { "Additional Description", "ff.fms.resume.err.additional_desc",
14581 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14586 * 6.5.3.27. FMS Reset (Confirmed Service Id = 22)
14588 { &hf_ff_fms_reset
,
14589 { "FMS Reset", "ff.fms.reset",
14590 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14595 * 6.5.3.27.1. Request Message Parameters
14597 { &hf_ff_fms_reset_req
,
14598 { "FMS Reset Request", "ff.fms.reset.req",
14599 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14601 { &hf_ff_fms_reset_req_idx
,
14602 { "Index", "ff.fms.reset.req.idx",
14603 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14608 * 6.5.3.27.2. Response Message Parameters
14610 { &hf_ff_fms_reset_rsp
,
14611 { "FMS Reset Response", "ff.fms.reset.rsp",
14612 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14617 * 6.5.3.27.3. Error Message Parameters
14619 { &hf_ff_fms_reset_err
,
14620 { "FMS Reset Error", "ff.fms.reset.err",
14621 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14623 { &hf_ff_fms_reset_err_pi_state
,
14624 { "Pi State", "ff.fms.reset.err.pi_state",
14625 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14627 { &hf_ff_fms_reset_err_err_class
,
14628 { "Error Class", "ff.fms.reset.err.err_class",
14629 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14631 { &hf_ff_fms_reset_err_err_code
,
14632 { "Error Code", "ff.fms.reset.err.err_code",
14633 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14635 { &hf_ff_fms_reset_err_additional_code
,
14636 { "Additional Code", "ff.fms.reset.err.additional_code",
14637 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14639 { &hf_ff_fms_reset_err_additional_desc
,
14640 { "Additional Description", "ff.fms.reset.err.additional_desc",
14641 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14646 * 6.5.3.28. FMS Kill (Confirmed Service Id = 23)
14649 { "FMS Kill", "ff.fms.kill",
14650 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14655 * 6.5.3.28.1. Request Message Parameters
14657 { &hf_ff_fms_kill_req
,
14658 { "FMS Kill Request", "ff.fms.kill.req",
14659 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14664 * 6.5.3.28.2. Response Message Parameters
14666 { &hf_ff_fms_kill_rsp
,
14667 { "FMS Kill Response", "ff.fms.kill.rsp",
14668 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14673 * 6.5.3.28.3. Error Message Parameters
14675 { &hf_ff_fms_kill_err
,
14676 { "FMS Kill Error", "ff.fms.kill.err",
14677 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14679 { &hf_ff_fms_kill_req_idx
,
14680 { "Index", "ff.fms.kill.req.idx",
14681 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14683 { &hf_ff_fms_kill_err_err_class
,
14684 { "Error Class", "ff.fms.kill.err.err_class",
14685 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14687 { &hf_ff_fms_kill_err_err_code
,
14688 { "Error Code", "ff.fms.kill.err.err_code",
14689 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14691 { &hf_ff_fms_kill_err_additional_code
,
14692 { "Additional Code", "ff.fms.kill.err.additional_code",
14693 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14695 { &hf_ff_fms_kill_err_additional_desc
,
14696 { "Additional Description", "ff.fms.kill.err.additional_desc",
14697 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14702 * 6.5.3.29. FMS Read (Confirmed Service Id = 2)
14705 { "FMS Read", "ff.fms.read",
14706 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14711 * 6.5.3.29.1. Request Message Parameters
14713 { &hf_ff_fms_read_req
,
14714 { "FMS Read Request", "ff.fms.read.req",
14715 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14717 { &hf_ff_fms_read_req_idx
,
14718 { "Index", "ff.fms.read.req.idx",
14719 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14724 * 6.5.3.29.2. Response Message Parameters
14726 { &hf_ff_fms_read_rsp
,
14727 { "FMS Read Response", "ff.fms.read.rsp",
14728 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14733 * 6.5.3.29.3. Error Message Parameters
14735 { &hf_ff_fms_read_err
,
14736 { "FMS Read Error", "ff.fms.read.err",
14737 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14739 { &hf_ff_fms_read_err_err_class
,
14740 { "Error Class", "ff.fms.read.err.err_class",
14741 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14743 { &hf_ff_fms_read_err_err_code
,
14744 { "Error Code", "ff.fms.read.err.err_code",
14745 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14747 { &hf_ff_fms_read_err_additional_code
,
14748 { "Additional Code", "ff.fms.read.err.additional_code",
14749 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14751 { &hf_ff_fms_read_err_additional_desc
,
14752 { "Additional Description", "ff.fms.read.err.additional_desc",
14753 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14758 * 6.5.3.30. FMS Read with Subindex (Confirmed Service Id = 82)
14760 { &hf_ff_fms_read_with_subidx
,
14761 { "FMS Read with Subindex", "ff.fms.read_with_subidx",
14762 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14767 * 6.5.3.30.1. Request Message Parameters
14769 { &hf_ff_fms_read_with_subidx_req
,
14770 { "FMS Read with Subindex Request", "ff.fms.read_with_subidx.req",
14771 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14773 { &hf_ff_fms_read_with_subidx_req_idx
,
14774 { "Index", "ff.fms.read_with_subidx.req.idx",
14775 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14777 { &hf_ff_fms_read_with_subidx_req_subidx
,
14778 { "Index", "ff.fms.read_with_subidx.req.subidx",
14779 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14784 * 6.5.3.30.2. Response Message Parameters
14786 { &hf_ff_fms_read_with_subidx_rsp
,
14787 { "FMS Read with Subindex Response", "ff.fms.read_with_subidx.rsp",
14788 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14793 * 6.5.3.30.3. Error Message Parameters
14795 { &hf_ff_fms_read_with_subidx_err
,
14796 { "FMS Read with Subindex Error", "ff.fms.read_with_subidx.err",
14797 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14799 { &hf_ff_fms_read_with_subidx_err_err_class
,
14800 { "Error Class", "ff.fms.read_with_subidx.err.err_class",
14801 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14803 { &hf_ff_fms_read_with_subidx_err_err_code
,
14804 { "Error Code", "ff.fms.read_with_subidx.err.err_code",
14805 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14807 { &hf_ff_fms_read_with_subidx_err_additional_code
,
14808 { "Additional Code", "ff.fms.read_with_subidx.err.additional_code",
14809 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14811 { &hf_ff_fms_read_with_subidx_err_additional_desc
,
14812 { "Additional Description",
14813 "ff.fms.read_with_subidx.err.additional_desc",
14814 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14819 * 6.5.3.31. FMS Write (Confirmed Service Id = 3)
14821 { &hf_ff_fms_write
,
14822 { "FMS Write", "ff.fms.write",
14823 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14828 * 6.5.3.31.1. Request Message Parameters
14830 { &hf_ff_fms_write_req
,
14831 { "FMS Write Request", "ff.fms.write.req",
14832 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14834 { &hf_ff_fms_write_req_idx
,
14835 { "Index", "ff.fms.write.req.idx",
14836 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14841 * 6.5.3.31.2. Response Message Parameters
14843 { &hf_ff_fms_write_rsp
,
14844 { "FMS Write Response", "ff.fms.write.rsp",
14845 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14850 * 6.5.3.31.3. Error Message Parameters
14852 { &hf_ff_fms_write_err
,
14853 { "FMS Write Error", "ff.fms.write.err",
14854 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14856 { &hf_ff_fms_write_err_err_class
,
14857 { "Error Class", "ff.fms.write.err.err_class",
14858 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14860 { &hf_ff_fms_write_err_err_code
,
14861 { "Error Code", "ff.fms.write.err.err_code",
14862 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14864 { &hf_ff_fms_write_err_additional_code
,
14865 { "Additional Code", "ff.fms.write.err.additional_code",
14866 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14868 { &hf_ff_fms_write_err_additional_desc
,
14869 { "Additional Description", "ff.fms.write.err.additional_desc",
14870 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14875 * 6.5.3.32. FMS Write with Subindex (Confirmed Service Id = 83)
14877 { &hf_ff_fms_write_with_subidx
,
14878 { "FMS Write with Subindex", "ff.fms.write_with_subidx",
14879 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14884 * 6.5.3.32.1. Request Message Parameters
14886 { &hf_ff_fms_write_with_subidx_req
,
14887 { "FMS Write with Subindex Request", "ff.fms.write_with_subidx.req",
14888 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14890 { &hf_ff_fms_write_with_subidx_req_idx
,
14891 { "Index", "ff.fms.write_with_subidx.req.idx",
14892 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14894 { &hf_ff_fms_write_with_subidx_req_subidx
,
14895 { "Index", "ff.fms.write_with_subidx.req.subidx",
14896 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14901 * 6.5.3.32.2. Response Message Parameters
14903 { &hf_ff_fms_write_with_subidx_rsp
,
14904 { "FMS Write with Subindex Response",
14905 "ff.fms.write_with_subidx.rsp",
14906 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14911 * 6.5.3.32.3. Error Message Parameters
14913 { &hf_ff_fms_write_with_subidx_err
,
14914 { "FMS Write with Subindex Error", "ff.fms.write_with_subidx.err",
14915 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14917 { &hf_ff_fms_write_with_subidx_err_err_class
,
14918 { "Error Class", "ff.fms.write_with_subidx.err.err_class",
14919 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14921 { &hf_ff_fms_write_with_subidx_err_err_code
,
14922 { "Error Code", "ff.fms.write_with_subidx.err.err_code",
14923 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14925 { &hf_ff_fms_write_with_subidx_err_additional_code
,
14926 { "Additional Code", "ff.fms.write_with_subidx.err.additional_code",
14927 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14929 { &hf_ff_fms_write_with_subidx_err_additional_desc
,
14930 { "Additional Description",
14931 "ff.fms.write_with_subidx.err.additional_desc",
14932 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14937 * 6.5.3.33. FMS Define Variable List (Confirmed Service Id = 7)
14939 { &hf_ff_fms_def_variable_list
,
14940 { "FMS Define Variable List", "ff.fms.def_variable_list",
14941 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14946 * 6.5.3.33.1. Request Message Parameters
14948 { &hf_ff_fms_def_variable_list_req
,
14949 { "FMS Define Variable List Request",
14950 "ff.fms.def_variable_list.req",
14951 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14953 { &hf_ff_fms_def_variable_list_req_num_of_idxes
,
14954 { "Number of Indexes", "ff.fms.def_variable_list.req.num_of_idxes",
14955 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14957 { &hf_ff_fms_def_variable_list_req_idx
,
14958 { "Index", "ff.fms.def_variable_list.req.idx",
14959 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14964 * 6.5.3.33.2. Response Message Parameters
14966 { &hf_ff_fms_def_variable_list_rsp
,
14967 { "FMS Define Variable List Response",
14968 "ff.fms.def_variable_list.rsp",
14969 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14971 { &hf_ff_fms_def_variable_list_rsp_idx
,
14972 { "Index", "ff.fms.def_variable_list.rsp.idx",
14973 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14978 * 6.5.3.33.3. Error Message Parameters
14980 { &hf_ff_fms_def_variable_list_err
,
14981 { "FMS Define Variable List Error", "ff.fms.def_variable_list.err",
14982 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14984 { &hf_ff_fms_def_variable_list_err_err_class
,
14985 { "Error Class", "ff.fms.def_variable_list.err.err_class",
14986 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14988 { &hf_ff_fms_def_variable_list_err_err_code
,
14989 { "Error Code", "ff.fms.def_variable_list.err.err_code",
14990 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14992 { &hf_ff_fms_def_variable_list_err_additional_code
,
14993 { "Additional Code", "ff.fms.def_variable_list.err.additional_code",
14994 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14996 { &hf_ff_fms_def_variable_list_err_additional_desc
,
14997 { "Additional Description",
14998 "ff.fms.def_variable_list.err.additional_desc",
14999 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15004 * 6.5.3.34. FMS Delete Variable List (Confirmed Service Id = 8)
15006 { &hf_ff_fms_del_variable_list
,
15007 { "FMS Delete Variable List", "ff.fms.del_variable_list",
15008 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15013 * 6.5.3.34.1. Request Message Parameters
15015 { &hf_ff_fms_del_variable_list_req
,
15016 { "FMS Delete Variable List Request",
15017 "ff.fms.del_variable_list.req",
15018 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15020 { &hf_ff_fms_del_variable_list_req_idx
,
15021 { "Index", "ff.fms.del_variable_list.req.idx",
15022 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15027 * 6.5.3.34.2. Response Message Parameters
15029 { &hf_ff_fms_del_variable_list_rsp
,
15030 { "FMS Delete Variable List Response",
15031 "ff.fms.del_variable_list.rsp",
15032 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15037 * 6.5.3.34.3. Error Message Parameters
15039 { &hf_ff_fms_del_variable_list_err
,
15040 { "FMS Delete Variable List Error", "ff.fms.del_variable_list.err",
15041 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15043 { &hf_ff_fms_del_variable_list_err_err_class
,
15044 { "Error Class", "ff.fms.del_variable_list.err.err_class",
15045 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
15047 { &hf_ff_fms_del_variable_list_err_err_code
,
15048 { "Error Code", "ff.fms.del_variable_list.err.err_code",
15049 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15051 { &hf_ff_fms_del_variable_list_err_additional_code
,
15052 { "Additional Code", "ff.fms.del_variable_list.err.additional_code",
15053 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15055 { &hf_ff_fms_del_variable_list_err_additional_desc
,
15056 { "Additional Description",
15057 "ff.fms.del_variable_list.err.additional_desc",
15058 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15063 * 6.5.3.35. FMS Information Report (Unconfirmed Service Id = 0)
15065 { &hf_ff_fms_info_report
,
15066 { "FMS Information Report", "ff.fms.info_report",
15067 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15072 * 6.5.3.35.1. Request Message Parameters
15074 { &hf_ff_fms_info_report_req
,
15075 { "FMS Information Report Request", "ff.fms.info_report.req",
15076 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15078 { &hf_ff_fms_info_report_req_idx
,
15079 { "Index", "ff.fms.info_report.req.idx",
15080 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15085 * 6.5.3.36. FMS Information Report with Subindex
15086 * (Unconfirmed Service Id = 16)
15088 { &hf_ff_fms_info_report_with_subidx
,
15089 { "FMS Information Report with Subindex",
15090 "ff.fms.info_report_with_subidx",
15091 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15096 * 6.5.3.36.1. Request Message Parameters
15098 { &hf_ff_fms_info_report_with_subidx_req
,
15099 { "FMS Information Report with Subindex Request",
15100 "ff.fms.info_report_with_subidx.req",
15101 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15103 { &hf_ff_fms_info_report_with_subidx_req_idx
,
15104 { "Index", "ff.fms.info_report_with_subidx.req.idx",
15105 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15107 { &hf_ff_fms_info_report_with_subidx_req_subidx
,
15108 { "Subindex", "ff.fms.info_report_with_subidx.req.subidx",
15109 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15114 * 6.5.3.37. FMS Information Report On Change
15115 * (Unconfirmed Service Id = 17)
15117 { &hf_ff_fms_info_report_on_change
,
15118 { "FMS Information Report On Change with Subindex",
15119 "ff.fms.info_report_on_change",
15120 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15125 * 6.5.3.37.1. Request Message Parameters
15127 { &hf_ff_fms_info_report_on_change_req
,
15128 { "FMS Information Report On Change with Subindex Request",
15129 "ff.fms.info_report_on_change.req",
15130 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15132 { &hf_ff_fms_info_report_on_change_req_idx
,
15133 { "Index", "ff.fms.info_report_on_change.req.idx",
15134 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15139 * 6.5.3.38. FMS Information Report On Change with Subindex
15140 * (Unconfirmed Service Id = 18)
15142 { &hf_ff_fms_info_report_on_change_with_subidx
,
15143 { "FMS Information Report On Change",
15144 "ff.fms.info_report_on_change_with_subidx",
15145 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15150 * 6.5.3.38.1. Request Message Parameters
15152 { &hf_ff_fms_info_report_on_change_with_subidx_req
,
15153 { "FMS Information Report On Change Request",
15154 "ff.fms.info_report_on_change_with_subidx.req",
15155 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15157 { &hf_ff_fms_info_report_on_change_with_subidx_req_idx
,
15158 { "Index", "ff.fms.info_report_on_change_with_subidx.req.idx",
15159 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15161 { &hf_ff_fms_info_report_on_change_with_subidx_req_subidx
,
15162 { "Subindex", "ff.fms.info_report_on_change_with_subidx.req.subidx",
15163 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15168 * 6.5.3.39. FMS Event Notification (Unconfirmed Service Id = 2)
15170 { &hf_ff_fms_ev_notification
,
15171 { "FMS Event Notification", "ff.fms.ev_notification",
15172 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15177 * 6.5.3.39.1. Request Message Parameters
15179 { &hf_ff_fms_ev_notification_req
,
15180 { "FMS Event Notification Request", "ff.fms.ev_notification.req",
15181 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15183 { &hf_ff_fms_ev_notification_req_idx
,
15184 { "Index", "ff.fms.ev_notification.req.idx",
15185 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15187 { &hf_ff_fms_ev_notification_req_ev_num
,
15188 { "Event Number", "ff.fms.ev_notification.req.ev_num",
15189 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15194 * 6.5.3.40. FMS Alter Event Condition Monitoring
15195 * (Confirmed Service Id = 24)
15197 { &hf_ff_fms_alter_ev_condition_monitoring
,
15198 { "FMS Alter Event Condition Monitoring",
15199 "ff.fms.alter_ev_condition_monitoring",
15200 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15205 * 6.5.3.40.1. Request Message Parameters
15207 { &hf_ff_fms_alter_ev_condition_monitoring_req
,
15208 { "FMS Alter Event Condition Monitoring Request",
15209 "ff.fms.alter_ev_condition_monitoring.req",
15210 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15212 { &hf_ff_fms_alter_ev_condition_monitoring_req_idx
,
15213 { "Index", "ff.fms.alter_ev_condition_monitoring.req.idx",
15214 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15216 { &hf_ff_fms_alter_ev_condition_monitoring_req_enabled
,
15217 { "Enabled", "ff.fms.alter_ev_condition_monitoring.req.enabled",
15218 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15223 * 6.5.3.40.2. Response Message Parameters
15225 { &hf_ff_fms_alter_ev_condition_monitoring_rsp
,
15226 { "FMS Alter Event Condition Monitoring Response",
15227 "ff.fms.alter_ev_condition_monitoring.rsp",
15228 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15233 * 6.5.3.40.3. Error Message Parameters
15235 { &hf_ff_fms_alter_ev_condition_monitoring_err
,
15236 { "FMS Alter Event Condition Monitoring Error",
15237 "ff.fms.alter_ev_condition_monitoring.err",
15238 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15240 { &hf_ff_fms_alter_ev_condition_monitoring_err_err_class
,
15242 "ff.fms.alter_ev_condition_monitoring.err.err_class",
15243 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
15245 { &hf_ff_fms_alter_ev_condition_monitoring_err_err_code
,
15246 { "Error Code", "ff.fms.alter_ev_condition_monitoring.err.err_code",
15247 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15249 { &hf_ff_fms_alter_ev_condition_monitoring_err_additional_code
,
15250 { "Additional Code",
15251 "ff.fms.alter_ev_condition_monitoring.err.additional_code",
15252 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15254 { &hf_ff_fms_alter_ev_condition_monitoring_err_additional_desc
,
15255 { "Additional Description",
15256 "ff.fms.alter_ev_condition_monitoring.err.additional_desc",
15257 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15262 * 6.5.3.41. FMS Acknowledge Event Notification
15263 * (Confirmed Service Id = 25)
15265 { &hf_ff_fms_ack_ev_notification
,
15266 { "FMS Acknowledge Event Notification",
15267 "ff.fms.ack_ev_notification",
15268 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15273 * 6.5.3.41.1. Request Message Parameters
15275 { &hf_ff_fms_ack_ev_notification_req
,
15276 { "FMS Acknowledge Event Notification Request",
15277 "ff.fms.ack_ev_notification.req",
15278 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15280 { &hf_ff_fms_ack_ev_notification_req_idx
,
15281 { "Index", "ff.fms.ack_ev_notification.req.idx",
15282 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15284 { &hf_ff_fms_ack_ev_notification_req_ev_num
,
15285 { "Event Number", "ff.fms.ack_ev_notification.req.ev_num",
15286 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15291 * 6.5.3.41.2. Response Message Parameters
15293 { &hf_ff_fms_ack_ev_notification_rsp
,
15294 { "FMS Acknowledge Event Notification Response",
15295 "ff.fms.ack_ev_notification.rsp",
15296 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15301 * 6.5.3.41.3. Error Message Parameters
15303 { &hf_ff_fms_ack_ev_notification_err
,
15304 { "FMS Acknowledge Event Notification Error",
15305 "ff.fms.ack_ev_notification.err",
15306 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15308 { &hf_ff_fms_ack_ev_notification_err_err_class
,
15309 { "Error Class", "ff.fms.ack_ev_notification.err.err_class",
15310 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
15312 { &hf_ff_fms_ack_ev_notification_err_err_code
,
15313 { "Error Code", "ff.fms.ack_ev_notification.err.err_code",
15314 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15316 { &hf_ff_fms_ack_ev_notification_err_additional_code
,
15317 { "Additional Code",
15318 "ff.fms.ack_ev_notification.err.additional_code",
15319 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15321 { &hf_ff_fms_ack_ev_notification_err_additional_desc
,
15322 { "Additional Description",
15323 "ff.fms.ack_ev_notification.err.additional_desc",
15324 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15329 * 6.5.4. LAN Redundancy Services
15332 { "LAN Redundancy Service", "ff.lr",
15333 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15338 * 6.5.4.1. LAN Redundancy Get Information (Confirmed Service Id = 1)
15340 { &hf_ff_lr_get_info
,
15341 { "LAN Redundancy Get Information",
15343 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15348 * 6.5.4.1.1. Request Message Parameters
15350 { &hf_ff_lr_get_info_req
,
15351 { "LAN Redundancy Get Information Request",
15352 "ff.lr.get_info.req",
15353 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15358 * 6.5.4.1.2. Response Message Parameters
15360 { &hf_ff_lr_get_info_rsp
,
15361 { "LAN Redundancy Get Information Response",
15362 "ff.lr.get_info.rsp",
15363 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15365 { &hf_ff_lr_get_info_rsp_lr_attrs_ver
,
15366 { "LAN Redundancy Attributes Version",
15367 "ff.lr.get_info.rsp.lr_attrs_ver",
15368 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15370 { &hf_ff_lr_get_info_rsp_lr_max_msg_num_diff
,
15371 { "Max Message Number Difference",
15372 "ff.lr.get_info.rsp.max_msg_num_diff",
15373 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15375 { &hf_ff_lr_get_info_rsp_reserved
,
15377 "ff.lr.get_info.rsp.reserved",
15378 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15380 { &hf_ff_lr_get_info_rsp_diagnostic_msg_intvl
,
15381 { "Diagnostic Message Interval",
15382 "ff.lr.get_info.rsp.diagnostic_msg_intvl",
15383 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15385 { &hf_ff_lr_get_info_rsp_aging_time
,
15387 "ff.lr.get_info.rsp.aging_time",
15388 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15390 { &hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_send_addr
,
15391 { "Diagnostic Message Interface A Send Address",
15392 "ff.lr.get_info.rsp.diagnostic_msg_if_a_send_addr",
15393 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15395 { &hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_recv_addr
,
15396 { "Diagnostic Message Interface A Receive Address",
15397 "ff.lr.get_info.rsp.diagnostic_msg_if_a_recv_addr",
15398 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15400 { &hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_send_addr
,
15401 { "Diagnostic Message Interface B Send Address",
15402 "ff.lr.get_info.rsp.diagnostic_msg_if_b_send_addr",
15403 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15405 { &hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_recv_addr
,
15406 { "Diagnostic Message Interface B Receive Address",
15407 "ff.lr.get_info.rsp.diagnostic_msg_if_b_recv_addr",
15408 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15410 { &hf_ff_lr_get_info_rsp_lr_flags_reserved
,
15412 "ff.lr.get_info.rsp.lr_flags.reserved",
15413 FT_UINT8
, BASE_HEX
, NULL
, 0xE0, NULL
, HFILL
} },
15415 { &hf_ff_lr_get_info_rsp_lr_flags_load_balance
,
15416 { "Load Balancing",
15417 "ff.lr.get_info.rsp.lr_flags.load_balance",
15418 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x10, NULL
, HFILL
} },
15420 { &hf_ff_lr_get_info_rsp_lr_flags_diag
,
15421 { "Diagnosis Using Own Messages",
15422 "ff.lr.get_info.rsp.lr_flags.diag",
15423 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x08, NULL
, HFILL
} },
15425 { &hf_ff_lr_get_info_rsp_lr_flags_multi_recv
,
15426 { "Single Multicast Message Reception Interface",
15427 "ff.lr.get_info.rsp.lr_flags.multi_recv",
15428 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x04, NULL
, HFILL
} },
15430 { &hf_ff_lr_get_info_rsp_lr_flags_cross_cable
,
15431 { "Crossed Cable Detection",
15432 "ff.lr.get_info.rsp.lr_flags.cross_cable",
15433 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
} },
15435 { &hf_ff_lr_get_info_rsp_lr_flags_multi_trans
,
15436 { "Single Multicast Message Transmission Interface",
15437 "ff.lr.get_info.rsp.lr_flags.multi_trans",
15438 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
} },
15443 * 6.5.4.1.3. Error Message Parameters
15445 { &hf_ff_lr_get_info_err
,
15446 { "LAN Redundancy Get Information Error",
15447 "ff.lr.get_info.err",
15448 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15450 { &hf_ff_lr_get_info_err_err_class
,
15451 { "Error Class", "ff.lr.get_info.err.err_class",
15452 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
15454 { &hf_ff_lr_get_info_err_err_code
,
15455 { "Error Code", "ff.lr.get_info.err.err_code",
15456 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15458 { &hf_ff_lr_get_info_err_additional_code
,
15459 { "Additional Code",
15460 "ff.lr.get_info.err.additional_code",
15461 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15463 { &hf_ff_lr_get_info_err_additional_desc
,
15464 { "Additional Description",
15465 "ff.lr.get_info.err.additional_desc",
15466 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15471 * 6.5.4.2. LAN Redundancy Put Information (Confirmed Service Id = 2)
15473 { &hf_ff_lr_put_info
,
15474 { "LAN Redundancy Put Information", "ff.lr.put_info",
15475 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15480 * 6.5.4.2.1. Request Message Parameters
15482 { &hf_ff_lr_put_info_req
,
15483 { "LAN Redundancy Put Information Request", "ff.lr.put_info.req",
15484 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15486 { &hf_ff_lr_put_info_req_lr_attrs_ver
,
15487 { "LAN Redundancy Attributes Version",
15488 "ff.lr.put_info.req.lr_attrs_ver",
15489 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15491 { &hf_ff_lr_put_info_req_lr_max_msg_num_diff
,
15492 { "Max Message Number Difference",
15493 "ff.lr.put_info.req.max_msg_num_diff",
15494 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15496 { &hf_ff_lr_put_info_req_reserved
,
15498 "ff.lr.put_info.req.reserved",
15499 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15501 { &hf_ff_lr_put_info_req_diagnostic_msg_intvl
,
15502 { "Diagnostic Message Interval",
15503 "ff.lr.put_info.req.diagnostic_msg_intvl",
15504 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15506 { &hf_ff_lr_put_info_req_aging_time
,
15508 "ff.lr.put_info.req.aging_time",
15509 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15511 { &hf_ff_lr_put_info_req_diagnostic_msg_if_a_send_addr
,
15512 { "Diagnostic Message Interface A Send Address",
15513 "ff.lr.put_info.req.diagnostic_msg_if_a_send_addr",
15514 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15516 { &hf_ff_lr_put_info_req_diagnostic_msg_if_a_recv_addr
,
15517 { "Diagnostic Message Interface A Receive Address",
15518 "ff.lr.put_info.req.diagnostic_msg_if_a_recv_addr",
15519 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15521 { &hf_ff_lr_put_info_req_diagnostic_msg_if_b_send_addr
,
15522 { "Diagnostic Message Interface B Send Address",
15523 "ff.lr.put_info.req.diagnostic_msg_if_b_send_addr",
15524 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15526 { &hf_ff_lr_put_info_req_diagnostic_msg_if_b_recv_addr
,
15527 { "Diagnostic Message Interface B Receive Address",
15528 "ff.lr.put_info.req.diagnostic_msg_if_b_recv_addr",
15529 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15531 { &hf_ff_lr_put_info_req_lr_flags_reserved
,
15533 "ff.lr.put_info.req.lr_flags.reserved",
15534 FT_UINT8
, BASE_HEX
, NULL
, 0xE0, NULL
, HFILL
} },
15536 { &hf_ff_lr_put_info_req_lr_flags_load_balance
,
15537 { "Load Balancing",
15538 "ff.lr.put_info.req.lr_flags.load_balance",
15539 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x10, NULL
, HFILL
} },
15541 { &hf_ff_lr_put_info_req_lr_flags_diag
,
15542 { "Diagnosis Using Own Messages",
15543 "ff.lr.put_info.req.lr_flags.diag",
15544 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x08, NULL
, HFILL
} },
15546 { &hf_ff_lr_put_info_req_lr_flags_multi_recv
,
15547 { "Single Multicast Message Reception Interface",
15548 "ff.lr.put_info.req.lr_flags.multi_recv",
15549 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x04, NULL
, HFILL
} },
15551 { &hf_ff_lr_put_info_req_lr_flags_cross_cable
,
15552 { "Crossed Cable Detection",
15553 "ff.lr.put_info.req.lr_flags.cross_cable",
15554 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
} },
15556 { &hf_ff_lr_put_info_req_lr_flags_multi_trans
,
15557 { "Single Multicast Message Transmission Interface",
15558 "ff.lr.put_info.req.lr_flags.multi_trans",
15559 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
} },
15563 * 6.5.4.2.2. Response Message Parameters
15565 { &hf_ff_lr_put_info_rsp
,
15566 { "LAN Redundancy Put Information Response",
15567 "ff.lr.put_info.rsp",
15568 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15570 { &hf_ff_lr_put_info_rsp_lr_attrs_ver
,
15571 { "LAN Redundancy Attributes Version",
15572 "ff.lr.put_info.rsp.lr_attrs_ver",
15573 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15575 { &hf_ff_lr_put_info_rsp_lr_max_msg_num_diff
,
15576 { "Max Message Number Difference",
15577 "ff.lr.put_info.rsp.max_msg_num_diff",
15578 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15580 { &hf_ff_lr_put_info_rsp_reserved
,
15582 "ff.lr.put_info.rsp.reserved",
15583 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15585 { &hf_ff_lr_put_info_rsp_diagnostic_msg_intvl
,
15586 { "Diagnostic Message Interval",
15587 "ff.lr.put_info.rsp.diagnostic_msg_intvl",
15588 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15590 { &hf_ff_lr_put_info_rsp_aging_time
,
15592 "ff.lr.put_info.rsp.aging_time",
15593 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15595 { &hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_send_addr
,
15596 { "Diagnostic Message Interface A Send Address",
15597 "ff.lr.put_info.rsp.diagnostic_msg_if_a_send_addr",
15598 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15600 { &hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_recv_addr
,
15601 { "Diagnostic Message Interface A Receive Address",
15602 "ff.lr.put_info.rsp.diagnostic_msg_if_a_recv_addr",
15603 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15605 { &hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_send_addr
,
15606 { "Diagnostic Message Interface B Send Address",
15607 "ff.lr.put_info.rsp.diagnostic_msg_if_b_send_addr",
15608 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15610 { &hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_recv_addr
,
15611 { "Diagnostic Message Interface B Receive Address",
15612 "ff.lr.put_info.rsp.diagnostic_msg_if_b_recv_addr",
15613 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15615 { &hf_ff_lr_put_info_rsp_lr_flags_reserved
,
15617 "ff.lr.put_info.rsp.lr_flags.reserved",
15618 FT_UINT8
, BASE_HEX
, NULL
, 0xE0, NULL
, HFILL
} },
15620 { &hf_ff_lr_put_info_rsp_lr_flags_load_balance
,
15621 { "Load Balancing",
15622 "ff.lr.put_info.rsp.lr_flags.load_balance",
15623 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x10, NULL
, HFILL
} },
15625 { &hf_ff_lr_put_info_rsp_lr_flags_diag
,
15626 { "Diagnosis Using Own Messages",
15627 "ff.lr.put_info.rsp.lr_flags.diag",
15628 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x08, NULL
, HFILL
} },
15630 { &hf_ff_lr_put_info_rsp_lr_flags_multi_recv
,
15631 { "Single Multicast Message Reception Interface",
15632 "ff.lr.put_info.rsp.lr_flags.multi_recv",
15633 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x04, NULL
, HFILL
} },
15635 { &hf_ff_lr_put_info_rsp_lr_flags_cross_cable
,
15636 { "Crossed Cable Detection",
15637 "ff.lr.put_info.rsp.lr_flags.cross_cable",
15638 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
} },
15640 { &hf_ff_lr_put_info_rsp_lr_flags_multi_trans
,
15641 { "Single Multicast Message Transmission Interface",
15642 "ff.lr.put_info.rsp.lr_flags.multi_trans",
15643 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
} },
15647 * 6.5.4.2.3. Error Message Parameters
15649 { &hf_ff_lr_put_info_err
,
15650 { "LAN Redundancy Put Information Error", "ff.lr.put_info.err",
15651 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15653 { &hf_ff_lr_put_info_err_err_class
,
15654 { "Error Class", "ff.lr.put_info.err.err_class",
15655 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
15657 { &hf_ff_lr_put_info_err_err_code
,
15658 { "Error Code", "ff.lr.put_info.err.err_code",
15659 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15661 { &hf_ff_lr_put_info_err_additional_code
,
15662 { "Additional Code",
15663 "ff.lr.put_info.err.additional_code",
15664 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15666 { &hf_ff_lr_put_info_err_additional_desc
,
15667 { "Additional Description",
15668 "ff.lr.put_info.err.additional_desc",
15669 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15674 * 6.5.4.3. LAN Redundancy Get Statistics (Confirmed Service Id = 3)
15676 { &hf_ff_lr_get_statistics
,
15677 { "LAN Redundancy Get Statistics",
15678 "ff.lr.get_statistics",
15679 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15684 * 6.5.4.3.1. Request Message Parameters
15686 { &hf_ff_lr_get_statistics_req
,
15687 { "LAN Redundancy Get Statistics Request",
15688 "ff.lr.get_statistics.req",
15689 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15694 * 6.5.4.3.2. Response Message Parameters
15696 { &hf_ff_lr_get_statistics_rsp
,
15697 { "LAN Redundancy Get Statistics Response",
15698 "ff.lr.get_statistics.rsp",
15699 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15701 { &hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_a
,
15702 { "Error Code", "ff.lr.get_statistics.rsp.num_diag_svr_ind_recv_a",
15703 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15705 { &hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_a
,
15706 { "Error Code", "ff.lr.get_statistics.rsp.num_diag_svr_ind_miss_a",
15707 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15709 { &hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_a
,
15711 "ff.lr.get_statistics.rsp.num_rem_dev_diag_recv_fault_a",
15712 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15714 { &hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_b
,
15715 { "Error Code", "ff.lr.get_statistics.rsp.num_diag_svr_ind_recv_b",
15716 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15718 { &hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_b
,
15719 { "Error Code", "ff.lr.get_statistics.rsp.num_diag_svr_ind_miss_b",
15720 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15722 { &hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_b
,
15724 "ff.lr.get_statistics.rsp.num_rem_dev_diag_recv_fault_b",
15725 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15727 { &hf_ff_lr_get_statistics_rsp_num_x_cable_stat
,
15728 { "Error Code", "ff.lr.get_statistics.rsp.num_x_cable_stat",
15729 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15731 { &hf_ff_lr_get_statistics_rsp_x_cable_stat
,
15732 { "Error Code", "ff.lr.get_statistics.rsp.x_cable_stat",
15733 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15738 * 6.5.4.3.3. Error Message Parameters
15740 { &hf_ff_lr_get_statistics_err
,
15741 { "LAN Redundancy Get Statistics Error",
15742 "ff.lr.get_statistics.err",
15743 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15745 { &hf_ff_lr_get_statistics_err_err_class
,
15746 { "Error Class", "ff.lr.get_statistics.err.err_class",
15747 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
15749 { &hf_ff_lr_get_statistics_err_err_code
,
15750 { "Error Code", "ff.lr.get_statistics.err.err_code",
15751 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15753 { &hf_ff_lr_get_statistics_err_additional_code
,
15754 { "Additional Code",
15755 "ff.lr.get_statistics.err.additional_code",
15756 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15758 { &hf_ff_lr_get_statistics_err_additional_desc
,
15759 { "Additional Description",
15760 "ff.lr.get_statistics.err.additional_desc",
15761 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15766 * 6.5.4.4 Diagnostic Message (Unconfirmed Service Id = 1)
15768 { &hf_ff_lr_diagnostic_msg
,
15769 { "Diagnostic Message", "ff.lr.diagnostic_msg",
15770 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15775 * 6.5.4.4.1. Request Message Parameters
15777 { &hf_ff_lr_diagnostic_msg_req
,
15778 { "Diagnostic Message Request", "ff.lr.diagnostic_msg_req",
15779 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15781 { &hf_ff_lr_diagnostic_msg_req_dev_idx
,
15782 { "Device Index", "ff.lr.diagnostic_msg.req.dev_idx",
15783 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15785 { &hf_ff_lr_diagnostic_msg_req_num_of_network_ifs
,
15786 { "Number of Network Interfaces",
15787 "ff.lr.diagnostic_msg.req.num_of_network_ifs",
15788 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15790 { &hf_ff_lr_diagnostic_msg_req_transmission_if
,
15791 { "Transmission Interface",
15792 "ff.lr.diagnostic_msg.req.transmission_if",
15793 FT_UINT8
, BASE_DEC
, VALS(names_transmission_interface
), 0x0, NULL
, HFILL
} },
15795 { &hf_ff_lr_diagnostic_msg_req_diagnostic_msg_intvl
,
15796 { "Diagnostic Message Interval",
15797 "ff.lr.diagnostic_msg.req.diagnostic_msg_intvl",
15798 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15800 { &hf_ff_lr_diagnostic_msg_req_pd_tag
,
15801 { "PD Tag", "ff.lr.diagnostic_msg.req.pd_tag",
15802 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
15804 { &hf_ff_lr_diagnostic_msg_req_reserved
,
15805 { "Reserved", "ff.lr.diagnostic_msg.req.reserved",
15806 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15808 { &hf_ff_lr_diagnostic_msg_req_num_of_if_statuses
,
15809 { "Number of Interface Statuses",
15810 "ff.lr.diagnostic_msg.req.num_of_if_statuses",
15811 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15813 { &hf_ff_lr_diagnostic_msg_req_if_a_to_a_status
,
15814 { "Interface AtoA Status",
15815 "ff.lr.diagnostic_msg.req.if_a_to_a_status",
15816 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15818 { &hf_ff_lr_diagnostic_msg_req_if_b_to_a_status
,
15819 { "Interface BtoA Status",
15820 "ff.lr.diagnostic_msg.req.if_b_to_a_status",
15821 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15823 { &hf_ff_lr_diagnostic_msg_req_if_a_to_b_status
,
15824 { "Interface AtoB Status",
15825 "ff.lr.diagnostic_msg.req.if_a_to_b_status",
15826 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15828 { &hf_ff_lr_diagnostic_msg_req_if_b_to_b_status
,
15829 { "Interface BtoB Status",
15830 "ff.lr.diagnostic_msg.req.if_b_to_b_status",
15831 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15833 { &hf_ff_lr_diagnostic_msg_req_dup_detection_state_reserved
,
15834 { "Reserved", "ff.lr.diagnostic_msg.req.dup_detection_state.reserved",
15835 FT_UINT8
, BASE_HEX
, NULL
, 0xFC, NULL
, HFILL
} },
15837 { &hf_ff_lr_diagnostic_msg_req_dup_detection_state_pd_tag
,
15838 { "Duplicate PD Tag", "ff.lr.diagnostic_msg.req.dup_detection_state.pd_tag",
15839 FT_BOOLEAN
, 8, TFS(&tfs_detected_not_detected
), 0x02, NULL
, HFILL
} },
15841 { &hf_ff_lr_diagnostic_msg_req_dup_detection_state_device
,
15842 { "Duplicate Device Index", "ff.lr.diagnostic_msg.req.dup_detection_state.device",
15843 FT_BOOLEAN
, 8, TFS(&tfs_detected_not_detected
), 0x01, NULL
, HFILL
} },
15849 static gint
*ett
[] = {
15851 &ett_ff_fda_msg_hdr
,
15852 &ett_ff_fda_msg_hdr_proto_and_type
,
15853 &ett_ff_fda_msg_hdr_opts
,
15854 &ett_ff_fda_msg_hdr_srv
,
15856 &ett_ff_fda_msg_trailer
,
15858 &ett_ff_fda_open_sess_req
,
15859 &ett_ff_fda_open_sess_rsp
,
15860 &ett_ff_fda_open_sess_err
,
15862 &ett_ff_fda_idle_req
,
15863 &ett_ff_fda_idle_rsp
,
15864 &ett_ff_fda_idle_err
,
15866 &ett_ff_sm_find_tag_query_req
,
15867 &ett_ff_sm_find_tag_reply_req
,
15868 &ett_ff_sm_find_tag_reply_req_dup_detection_state
,
15869 &ett_ff_sm_find_tag_reply_req_list_of_fda_addr_selectors
,
15873 &ett_ff_sm_id_rsp_smk_state
,
15874 &ett_ff_sm_id_rsp_dev_type
,
15875 &ett_ff_sm_id_rsp_dev_redundancy_state
,
15876 &ett_ff_sm_id_rsp_dup_detection_state
,
15877 &ett_ff_sm_id_rsp_entries_h1_live_list
,
15878 &ett_ff_sm_id_rsp_h1_live_list
,
15879 &ett_ff_sm_id_rsp_entries_node_addr
,
15880 &ett_ff_sm_id_rsp_h1_node_addr
,
15883 &ett_ff_sm_clear_addr_req
,
15884 &ett_ff_sm_clear_addr_rsp
,
15885 &ett_ff_sm_clear_addr_err
,
15887 &ett_ff_sm_set_assign_info_req
,
15888 &ett_ff_sm_set_assign_info_req_dev_redundancy_state
,
15889 &ett_ff_sm_set_assign_info_req_clear_dup_detection_state
,
15890 &ett_ff_sm_set_assign_info_rsp
,
15891 &ett_ff_sm_set_assign_info_err
,
15893 &ett_ff_sm_clear_assign_info_req
,
15894 &ett_ff_sm_clear_assign_info_rsp
,
15895 &ett_ff_sm_clear_assign_info_err
,
15897 &ett_ff_sm_dev_annunc_req
,
15898 &ett_ff_sm_dev_annunc_req_smk_state
,
15899 &ett_ff_sm_dev_annunc_req_dev_type
,
15900 &ett_ff_sm_dev_annunc_req_dev_redundancy_state
,
15901 &ett_ff_sm_dev_annunc_req_dup_detection_state
,
15902 &ett_ff_sm_dev_annunc_req_entries_h1_live_list
,
15903 &ett_ff_sm_dev_annunc_req_h1_live_list
,
15904 &ett_ff_sm_dev_annunc_req_entries_node_addr
,
15905 &ett_ff_sm_dev_annunc_req_h1_node_addr
,
15907 &ett_ff_fms_init_req
,
15908 &ett_ff_fms_init_rep
,
15909 &ett_ff_fms_init_err
,
15911 &ett_ff_fms_abort_req
,
15913 &ett_ff_fms_status_req
,
15914 &ett_ff_fms_status_rsp
,
15915 &ett_ff_fms_status_err
,
15917 &ett_ff_fms_unsolicited_status_req
,
15919 &ett_ff_fms_id_req
,
15920 &ett_ff_fms_id_rsp
,
15921 &ett_ff_fms_id_err
,
15923 &ett_ff_fms_get_od_req
,
15924 &ett_ff_fms_get_od_rsp
,
15925 &ett_ff_fms_get_od_err
,
15927 &ett_ff_fms_init_put_od_req
,
15928 &ett_ff_fms_init_put_od_rsp
,
15929 &ett_ff_fms_init_put_od_err
,
15931 &ett_ff_fms_put_od_req
,
15932 &ett_ff_fms_put_od_rsp
,
15933 &ett_ff_fms_put_od_err
,
15935 &ett_ff_fms_terminate_put_od_req
,
15936 &ett_ff_fms_terminate_put_od_rsp
,
15937 &ett_ff_fms_terminate_put_od_err
,
15939 &ett_ff_fms_gen_init_download_seq_req
,
15940 &ett_ff_fms_gen_init_download_seq_rep
,
15941 &ett_ff_fms_gen_init_download_seq_err
,
15943 &ett_ff_fms_gen_download_seg_req
,
15944 &ett_ff_fms_gen_download_seg_rsp
,
15945 &ett_ff_fms_gen_download_seg_err
,
15947 &ett_ff_fms_gen_terminate_download_seq_req
,
15948 &ett_ff_fms_gen_terminate_download_seq_rsp
,
15949 &ett_ff_fms_gen_terminate_download_seq_err
,
15951 &ett_ff_fms_init_download_seq_req
,
15952 &ett_ff_fms_init_download_seq_rsp
,
15953 &ett_ff_fms_init_download_seq_err
,
15955 &ett_ff_fms_download_seg_req
,
15956 &ett_ff_fms_download_seg_rsp
,
15957 &ett_ff_fms_download_seg_err
,
15959 &ett_ff_fms_terminate_download_seq_req
,
15960 &ett_ff_fms_terminate_download_seq_rsp
,
15961 &ett_ff_fms_terminate_download_seq_err
,
15963 &ett_ff_fms_init_upload_seq_req
,
15964 &ett_ff_fms_init_upload_seq_rsp
,
15965 &ett_ff_fms_init_upload_seq_err
,
15967 &ett_ff_fms_upload_seg_req
,
15968 &ett_ff_fms_upload_seg_rsp
,
15969 &ett_ff_fms_upload_seg_err
,
15971 &ett_ff_fms_terminate_upload_seq_req
,
15972 &ett_ff_fms_terminate_upload_seq_rsp
,
15973 &ett_ff_fms_terminate_upload_seq_err
,
15975 &ett_ff_fms_req_dom_download_req
,
15976 &ett_ff_fms_req_dom_download_rsp
,
15977 &ett_ff_fms_req_dom_download_err
,
15979 &ett_ff_fms_req_dom_upload_req
,
15980 &ett_ff_fms_req_dom_upload_rsp
,
15981 &ett_ff_fms_req_dom_upload_err
,
15983 &ett_ff_fms_create_pi_req
,
15984 &ett_ff_fms_create_pi_req_list_of_dom_idxes
,
15985 &ett_ff_fms_create_pi_rsp
,
15986 &ett_ff_fms_create_pi_err
,
15988 &ett_ff_fms_del_pi_req
,
15989 &ett_ff_fms_del_pi_rsp
,
15990 &ett_ff_fms_del_pi_err
,
15992 &ett_ff_fms_start_req
,
15993 &ett_ff_fms_start_rsp
,
15994 &ett_ff_fms_start_err
,
15996 &ett_ff_fms_stop_req
,
15997 &ett_ff_fms_stop_rsp
,
15998 &ett_ff_fms_stop_err
,
16000 &ett_ff_fms_resume_req
,
16001 &ett_ff_fms_resume_rsp
,
16002 &ett_ff_fms_resume_err
,
16004 &ett_ff_fms_reset_req
,
16005 &ett_ff_fms_reset_rsp
,
16006 &ett_ff_fms_reset_err
,
16008 &ett_ff_fms_kill_req
,
16009 &ett_ff_fms_kill_rsp
,
16010 &ett_ff_fms_kill_err
,
16012 &ett_ff_fms_read_req
,
16013 &ett_ff_fms_read_rsp
,
16014 &ett_ff_fms_read_err
,
16016 &ett_ff_fms_read_with_subidx_req
,
16017 &ett_ff_fms_read_with_subidx_rsp
,
16018 &ett_ff_fms_read_with_subidx_err
,
16020 &ett_ff_fms_write_req
,
16021 &ett_ff_fms_write_rsp
,
16022 &ett_ff_fms_write_err
,
16024 &ett_ff_fms_write_with_subidx_req
,
16025 &ett_ff_fms_write_with_subidx_rsp
,
16026 &ett_ff_fms_write_with_subidx_err
,
16028 &ett_ff_fms_def_variable_list_req
,
16029 &ett_ff_fms_def_variable_list_req_list_of_idxes
,
16030 &ett_ff_fms_def_variable_list_rsp
,
16031 &ett_ff_fms_def_variable_list_err
,
16033 &ett_ff_fms_del_variable_list_req
,
16034 &ett_ff_fms_del_variable_list_rsp
,
16035 &ett_ff_fms_del_variable_list_err
,
16037 &ett_ff_fms_info_report_req
,
16039 &ett_ff_fms_info_report_with_subidx_req
,
16041 &ett_ff_fms_info_report_on_change_req
,
16043 &ett_ff_fms_info_report_on_change_with_subidx_req
,
16045 &ett_ff_fms_ev_notification_req
,
16047 &ett_ff_fms_alter_ev_condition_monitoring_req
,
16048 &ett_ff_fms_alter_ev_condition_monitoring_rsp
,
16049 &ett_ff_fms_alter_ev_condition_monitoring_err
,
16051 &ett_ff_fms_ack_ev_notification_req
,
16052 &ett_ff_fms_ack_ev_notification_rsp
,
16053 &ett_ff_fms_ack_ev_notification_err
,
16055 &ett_ff_lr_get_info_req
,
16056 &ett_ff_lr_get_info_rsp
,
16057 &ett_ff_lr_get_info_rsp_lr_flags
,
16058 &ett_ff_lr_get_info_err
,
16060 &ett_ff_lr_put_info_req
,
16061 &ett_ff_lr_put_info_req_lr_flags
,
16062 &ett_ff_lr_put_info_rsp
,
16063 &ett_ff_lr_put_info_rsp_lr_flags
,
16064 &ett_ff_lr_put_info_err
,
16066 &ett_ff_lr_get_statistics_req
,
16067 &ett_ff_lr_get_statistics_rsp
,
16068 &ett_ff_lr_get_statistics_rsp_list_of_x_cable_stat
,
16069 &ett_ff_lr_get_statistics_err
,
16071 &ett_ff_lr_diagnostic_msg_req
,
16072 &ett_ff_lr_diagnostic_msg_req_dup_detection_stat
,
16073 &ett_ff_lr_diagnostic_msg_req_a_to_a_status
,
16074 &ett_ff_lr_diagnostic_msg_req_b_to_a_status
,
16075 &ett_ff_lr_diagnostic_msg_req_a_to_b_status
,
16076 &ett_ff_lr_diagnostic_msg_req_b_to_b_status
,
16079 proto_ff
= proto_register_protocol("FOUNDATION Fieldbus", "FF", "ff");
16080 proto_register_field_array(proto_ff
, hf
, array_length(hf
));
16081 proto_register_subtree_array(ett
, array_length(ett
));
16089 proto_reg_handoff_ff(void)
16092 * 4.8. Using UDP and TCP
16094 ff_udp_handle
= new_create_dissector_handle(dissect_ff_udp
, proto_ff
);
16095 ff_tcp_handle
= new_create_dissector_handle(dissect_ff_tcp
, proto_ff
);
16100 * - Device Annunciation
16102 dissector_add_uint("udp.port", UDP_PORT_FF_ANNUNC
, ff_udp_handle
);
16107 * - Client / Server
16109 dissector_add_uint("udp.port", UDP_PORT_FF_FMS
, ff_udp_handle
);
16110 dissector_add_uint("tcp.port", TCP_PORT_FF_FMS
, ff_tcp_handle
);
16115 * - Set/Clear Assignment Info and Clear Address
16119 dissector_add_uint("udp.port", UDP_PORT_FF_SM
, ff_udp_handle
);
16124 * - LAN Redundancy Get and Put Information
16126 dissector_add_uint("udp.port", UDP_PORT_FF_LR_PORT
, ff_udp_handle
);