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>
9 * Wireshark - Network traffic analyzer
10 * By Gerald Combs <gerald@wireshark.org>
11 * Copyright 1998 Gerald Combs
13 * SPDX-License-Identifier: GPL-2.0-or-later
18 * ---------------------------------------------------------------------
19 * ff-annunc 1089/tcp # FF Annunciation
20 * ff-annunc 1089/udp # FF Annunciation
21 * ff-fms 1090/tcp # FF Fieldbus Message Specification
22 * ff-fms 1090/udp # FF Fieldbus Message Specification
23 * ff-sm 1091/tcp # FF System Management
24 * ff-sm 1091/udp # FF System Management
25 * ff-lr-port 3622/tcp # FF LAN Redundancy Port
26 * ff-lr-port 3622/udp # FF LAN Redundancy Port
27 * ---------------------------------------------------------------------
32 #include <epan/packet.h>
34 #include "packet-ff.h"
35 #include "packet-tcp.h"
37 #define FDA_MSG_HDR_LENGTH 12
39 void proto_register_ff(void);
40 void proto_reg_handoff_ff(void);
45 static bool ff_desegment
= true; /* desegmentation of FF over TCP */
47 static dissector_handle_t ff_udp_handle
;
48 static dissector_handle_t ff_tcp_handle
;
55 static int hf_ff_fda_msg_hdr
;
57 static int hf_ff_fda_msg_hdr_ver
;
58 static int hf_ff_fda_msg_hdr_fda_addr
;
59 static int hf_ff_fda_msg_hdr_len
;
60 static int hf_ff_unknown_data
;
61 static int hf_ff_data
;
62 static int hf_ff_reserved24
;
63 static int hf_ff_unknown_service
;
65 static int ett_ff_fda_msg_hdr
;
66 static int ett_ff_fda_msg_hdr_proto_and_type
;
67 static int ett_ff_fda_msg_hdr_opts
;
68 static int ett_ff_fda_msg_hdr_srv
;
73 * 6.4. Message Trailer
75 static int hf_ff_fda_msg_trailer
;
77 static int hf_ff_fda_msg_trailer_msg_num
;
78 static int hf_ff_fda_msg_trailer_invoke_id
;
79 static int hf_ff_fda_msg_trailer_time_stamp
;
80 static int hf_ff_fda_msg_trailer_extended_control_field
;
82 static int ett_ff_fda_msg_trailer
;
87 * 6.5.1 FDA Session Management Services
90 static int hf_ff_hdr_srv
;
91 static int hf_ff_hdr_srv_confirm_flag
;
92 static int hf_ff_hdr_srv_service_id
;
93 static int hf_ff_hdr_srv_fda_service_id_confirm
;
94 static int hf_ff_hdr_srv_fda_service_id_unconfirm
;
95 static int hf_ff_hdr_srv_sm_service_id_confirm
;
96 static int hf_ff_hdr_srv_sm_service_id_unconfirm
;
97 static int hf_ff_hdr_srv_fms_service_id_confirm
;
98 static int hf_ff_hdr_srv_fms_service_id_unconfirm
;
99 static int hf_ff_hdr_srv_lan_service_id_confirm
;
100 static int hf_ff_hdr_srv_lan_service_id_unconfirm
;
101 static int hf_ff_hdr_proto_id
;
102 static int hf_ff_hdr_confirm_msg_type
;
103 static int hf_ff_hdr_proto_confirm
;
104 static int hf_ff_hdr_opts_msg_num
;
105 static int hf_ff_hdr_opts_invoke_id
;
106 static int hf_ff_hdr_opts_timestamp
;
107 static int hf_ff_hdr_opts_reserved
;
108 static int hf_ff_hdr_opts_ext_ctrl
;
109 static int hf_ff_hdr_opts_pad
;
110 static int hf_ff_hdr_opts
;
113 * 6.5.1.1. FDA Open Session (Confirmed Service Id = 1)
115 static int hf_ff_fda_open_sess
;
117 static int hf_ff_fda_open_sess_req
;
118 static int hf_ff_fda_open_sess_req_sess_idx
;
119 static int hf_ff_fda_open_sess_req_max_buf_siz
;
120 static int hf_ff_fda_open_sess_req_max_msg_len
;
121 static int hf_ff_fda_open_sess_req_reserved
;
122 static int hf_ff_fda_open_sess_req_nma_conf_use
;
123 static int hf_ff_fda_open_sess_req_inactivity_close_time
;
124 static int hf_ff_fda_open_sess_req_transmit_delay_time
;
125 static int hf_ff_fda_open_sess_req_pd_tag
;
127 static int hf_ff_fda_open_sess_rsp
;
128 static int hf_ff_fda_open_sess_rsp_sess_idx
;
129 static int hf_ff_fda_open_sess_rsp_max_buf_siz
;
130 static int hf_ff_fda_open_sess_rsp_max_msg_len
;
131 static int hf_ff_fda_open_sess_rsp_reserved
;
132 static int hf_ff_fda_open_sess_rsp_nma_conf_use
;
133 static int hf_ff_fda_open_sess_rsp_inactivity_close_time
;
134 static int hf_ff_fda_open_sess_rsp_transmit_delay_time
;
135 static int hf_ff_fda_open_sess_rsp_pd_tag
;
137 static int hf_ff_fda_open_sess_err
;
138 static int hf_ff_fda_open_sess_err_err_class
;
139 static int hf_ff_fda_open_sess_err_err_code
;
140 static int hf_ff_fda_open_sess_err_additional_code
;
141 static int hf_ff_fda_open_sess_err_additional_desc
;
143 static int ett_ff_fda_open_sess_req
;
144 static int ett_ff_fda_open_sess_rsp
;
145 static int ett_ff_fda_open_sess_err
;
150 * 6.5.1.2. FDA Idle (Confirmed Service Id = 3)
152 static int hf_ff_fda_idle
;
154 static int hf_ff_fda_idle_req
;
156 static int hf_ff_fda_idle_rsp
;
158 static int hf_ff_fda_idle_err
;
159 static int hf_ff_fda_idle_err_err_class
;
160 static int hf_ff_fda_idle_err_err_code
;
161 static int hf_ff_fda_idle_err_additional_code
;
162 static int hf_ff_fda_idle_err_additional_desc
;
164 static int ett_ff_fda_idle_req
;
165 static int ett_ff_fda_idle_rsp
;
166 static int ett_ff_fda_idle_err
;
178 * 6.5.2.1. SM Find Tag Query (Unconfirmed Service Id = 1)
180 static int hf_ff_sm_find_tag_query
;
182 static int hf_ff_sm_find_tag_query_req
;
183 static int hf_ff_sm_find_tag_query_req_query_type
;
184 static int hf_ff_sm_find_tag_query_req_idx
;
185 static int hf_ff_sm_find_tag_query_req_tag
;
186 static int hf_ff_sm_find_tag_query_req_vfd_tag
;
188 static int ett_ff_sm_find_tag_query_req
;
193 * 6.5.2.2. SM Find Tag Reply (Unconfirmed Service Id = 2)
195 static int hf_ff_sm_find_tag_reply
;
197 static int hf_ff_sm_find_tag_reply_req
;
198 static int hf_ff_sm_find_tag_reply_req_query_type
;
199 static int hf_ff_sm_find_tag_reply_req_h1_node_addr
;
200 static int hf_ff_sm_find_tag_reply_req_fda_addr_link_id
;
201 static int hf_ff_sm_find_tag_reply_req_vfd_ref
;
202 static int hf_ff_sm_find_tag_reply_req_od_idx
;
203 static int hf_ff_sm_find_tag_reply_req_ip_addr
;
204 static int hf_ff_sm_find_tag_reply_req_od_ver
;
205 static int hf_ff_sm_find_tag_reply_req_dev_id
;
206 static int hf_ff_sm_find_tag_reply_req_pd_tag
;
207 static int hf_ff_sm_find_tag_reply_req_reserved
;
208 static int hf_ff_sm_find_tag_reply_req_num_of_fda_addr_selectors
;
209 static int hf_ff_sm_find_tag_reply_req_fda_addr_selector
;
210 static int hf_ff_sm_find_tag_reply_dup_reserved
;
211 static int hf_ff_sm_find_tag_reply_dup_pd_tag
;
212 static int hf_ff_sm_find_tag_reply_dup_device
;
213 static int hf_ff_sm_find_tag_reply_dup
;
215 static int ett_ff_sm_find_tag_reply_req
;
216 static int ett_ff_sm_find_tag_reply_req_dup_detection_state
;
217 static int ett_ff_sm_find_tag_reply_req_list_of_fda_addr_selectors
;
222 * 6.5.2.3. SM Identify (Confirmed Service Id = 3)
224 static int hf_ff_sm_id
;
226 static int hf_ff_sm_id_req
;
228 static int hf_ff_sm_id_rsp
;
229 static int hf_ff_sm_id_rsp_dev_idx
;
230 static int hf_ff_sm_id_rsp_max_dev_idx
;
231 static int hf_ff_sm_id_rsp_operational_ip_addr
;
232 static int hf_ff_sm_id_rsp_dev_id
;
233 static int hf_ff_sm_id_rsp_pd_tag
;
234 static int hf_ff_sm_id_rsp_hse_repeat_time
;
235 static int hf_ff_sm_id_rsp_lr_port
;
236 static int hf_ff_sm_id_rsp_reserved
;
237 static int hf_ff_sm_id_rsp_annunc_ver_num
;
238 static int hf_ff_sm_id_rsp_hse_dev_ver_num
;
239 static int hf_ff_sm_id_rsp_num_of_entries
;
240 static int hf_ff_sm_id_rsp_h1_live_list_h1_link_id
;
241 static int hf_ff_sm_id_rsp_h1_live_list_reserved
;
242 static int hf_ff_sm_id_rsp_h1_live_list_ver_num
;
243 static int hf_ff_sm_id_rsp_h1_node_addr_ver_num_h1_node_addr
;
244 static int hf_ff_sm_id_rsp_h1_node_addr_ver_num_ver_num
;
245 static int hf_ff_sm_id_rsp_smk_state_name
;
246 static int hf_ff_sm_id_rsp_smk_state_sync
;
247 static int hf_ff_sm_id_rsp_smk_state
;
248 static int hf_ff_sm_id_rsp_dev_type_link
;
249 static int hf_ff_sm_id_rsp_dev_type_iogateway
;
250 static int hf_ff_sm_id_rsp_dev_type_hse
;
251 static int hf_ff_sm_id_rsp_dev_type_h1
;
252 static int hf_ff_sm_id_rsp_dev_type_reserved
;
253 static int hf_ff_sm_id_rsp_dev_type_redundant_caps
;
254 static int hf_ff_sm_id_rsp_dev_type
;
255 static int hf_ff_sm_id_rsp_dev_redundancy_state_reserved
;
256 static int hf_ff_sm_id_rsp_dev_redundancy_state_role
;
257 static int hf_ff_sm_id_rsp_dev_redundancy_state_type
;
258 static int hf_ff_sm_id_rsp_dev_redundancy_state
;
259 static int hf_ff_sm_id_rsp_dup_detection_state_reserved
;
260 static int hf_ff_sm_id_rsp_dup_detection_state_pd_tag
;
261 static int hf_ff_sm_id_rsp_dup_detection_state_device
;
262 static int hf_ff_sm_id_rsp_dup_detection_state
;
264 static int hf_ff_sm_id_err
;
265 static int hf_ff_sm_id_err_err_class
;
266 static int hf_ff_sm_id_err_err_code
;
267 static int hf_ff_sm_id_err_additional_code
;
268 static int hf_ff_sm_id_err_additional_desc
;
270 static int ett_ff_sm_id_req
;
271 static int ett_ff_sm_id_rsp
;
272 static int ett_ff_sm_id_rsp_smk_state
;
273 static int ett_ff_sm_id_rsp_dev_type
;
274 static int ett_ff_sm_id_rsp_dev_redundancy_state
;
275 static int ett_ff_sm_id_rsp_dup_detection_state
;
276 static int ett_ff_sm_id_rsp_entries_h1_live_list
;
277 static int ett_ff_sm_id_rsp_h1_live_list
;
278 static int ett_ff_sm_id_rsp_entries_node_addr
;
279 static int ett_ff_sm_id_rsp_h1_node_addr
;
280 static int ett_ff_sm_id_err
;
285 * 6.5.2.4. SM Clear Address (Confirmed Service Id = 12)
287 static int hf_ff_sm_clear_addr
;
289 static int hf_ff_sm_clear_addr_req
;
290 static int hf_ff_sm_clear_addr_req_dev_id
;
291 static int hf_ff_sm_clear_addr_req_pd_tag
;
292 static int hf_ff_sm_clear_addr_req_interface_to_clear
;
294 static int hf_ff_sm_clear_addr_rsp
;
296 static int hf_ff_sm_clear_addr_err
;
297 static int hf_ff_sm_clear_addr_err_err_class
;
298 static int hf_ff_sm_clear_addr_err_err_code
;
299 static int hf_ff_sm_clear_addr_err_additional_code
;
300 static int hf_ff_sm_clear_addr_err_additional_desc
;
302 static int ett_ff_sm_clear_addr_req
;
303 static int ett_ff_sm_clear_addr_rsp
;
304 static int ett_ff_sm_clear_addr_err
;
309 * 6.5.2.5. SM Set Assignment Info (Confirmed Service Id = 14)
311 static int hf_ff_sm_set_assign_info
;
313 static int hf_ff_sm_set_assign_info_req_dev_redundancy_state_reserved
;
314 static int hf_ff_sm_set_assign_info_req_dev_redundancy_state_role
;
315 static int hf_ff_sm_set_assign_info_req_dev_redundancy_state_type
;
316 static int hf_ff_sm_set_assign_info_req_dev_redundancy_state
;
317 static int hf_ff_sm_set_assign_info_req_clear_dup_detection_state_reserved
;
318 static int hf_ff_sm_set_assign_info_req_clear_dup_detection_state_pd_tag
;
319 static int hf_ff_sm_set_assign_info_req_clear_dup_detection_state_device_index
;
320 static int hf_ff_sm_set_assign_info_req_clear_dup_detection_state
;
322 static int hf_ff_sm_set_assign_info_req
;
323 static int hf_ff_sm_set_assign_info_req_dev_id
;
324 static int hf_ff_sm_set_assign_info_req_pd_tag
;
325 static int hf_ff_sm_set_assign_info_req_h1_new_addr
;
326 static int hf_ff_sm_set_assign_info_req_lr_port
;
327 static int hf_ff_sm_set_assign_info_req_hse_repeat_time
;
328 static int hf_ff_sm_set_assign_info_req_dev_idx
;
329 static int hf_ff_sm_set_assign_info_req_max_dev_idx
;
330 static int hf_ff_sm_set_assign_info_req_operational_ip_addr
;
332 static int hf_ff_sm_set_assign_info_rsp
;
333 static int hf_ff_sm_set_assign_info_rsp_reserved
;
334 static int hf_ff_sm_set_assign_info_rsp_max_dev_idx
;
335 static int hf_ff_sm_set_assign_info_rsp_hse_repeat_time
;
337 static int hf_ff_sm_set_assign_info_err
;
338 static int hf_ff_sm_set_assign_info_err_err_class
;
339 static int hf_ff_sm_set_assign_info_err_err_code
;
340 static int hf_ff_sm_set_assign_info_err_additional_code
;
341 static int hf_ff_sm_set_assign_info_err_additional_desc
;
343 static int ett_ff_sm_set_assign_info_req
;
344 static int ett_ff_sm_set_assign_info_req_dev_redundancy_state
;
345 static int ett_ff_sm_set_assign_info_req_clear_dup_detection_state
;
346 static int ett_ff_sm_set_assign_info_rsp
;
347 static int ett_ff_sm_set_assign_info_err
;
352 * 6.5.2.6. SM Clear Assignment Info (Confirmed Service Id = 15)
354 static int hf_ff_sm_clear_assign_info
;
356 static int hf_ff_sm_clear_assign_info_req
;
357 static int hf_ff_sm_clear_assign_info_req_dev_id
;
358 static int hf_ff_sm_clear_assign_info_req_pd_tag
;
360 static int hf_ff_sm_clear_assign_info_rsp
;
362 static int hf_ff_sm_clear_assign_info_err
;
363 static int hf_ff_sm_clear_assign_info_err_err_class
;
364 static int hf_ff_sm_clear_assign_info_err_err_code
;
365 static int hf_ff_sm_clear_assign_info_err_additional_code
;
366 static int hf_ff_sm_clear_assign_info_err_additional_desc
;
368 static int ett_ff_sm_clear_assign_info_req
;
369 static int ett_ff_sm_clear_assign_info_rsp
;
370 static int ett_ff_sm_clear_assign_info_err
;
375 * 6.5.2.7. SM Device Annunciation (Unconfirmed Service Id = 16)
377 static int hf_ff_sm_dev_annunc
;
379 static int hf_ff_sm_dev_annunc_req
;
380 static int hf_ff_sm_dev_annunc_req_dev_idx
;
381 static int hf_ff_sm_dev_annunc_req_max_dev_idx
;
382 static int hf_ff_sm_dev_annunc_req_operational_ip_addr
;
383 static int hf_ff_sm_dev_annunc_req_dev_id
;
384 static int hf_ff_sm_dev_annunc_req_pd_tag
;
385 static int hf_ff_sm_dev_annunc_req_hse_repeat_time
;
386 static int hf_ff_sm_dev_annunc_req_lr_port
;
387 static int hf_ff_sm_dev_annunc_req_reserved
;
388 static int hf_ff_sm_dev_annunc_req_annunc_ver_num
;
389 static int hf_ff_sm_dev_annunc_req_hse_dev_ver_num
;
390 static int hf_ff_sm_dev_annunc_req_num_of_entries
;
391 static int hf_ff_sm_dev_annunc_req_h1_live_list_h1_link_id
;
392 static int hf_ff_sm_dev_annunc_req_h1_live_list_reserved
;
393 static int hf_ff_sm_dev_annunc_req_h1_live_list_ver_num
;
394 static int hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_h1_node_addr
;
395 static int hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_ver_num
;
396 static int hf_ff_sm_dev_annunc_req_smk_state_name
;
397 static int hf_ff_sm_dev_annunc_req_smk_state_sync
;
398 static int hf_ff_sm_dev_annunc_req_smk_state
;
399 static int hf_ff_sm_dev_annunc_req_dev_type_link
;
400 static int hf_ff_sm_dev_annunc_req_dev_type_iogateway
;
401 static int hf_ff_sm_dev_annunc_req_dev_type_hse
;
402 static int hf_ff_sm_dev_annunc_req_dev_type_h1
;
403 static int hf_ff_sm_dev_annunc_req_dev_type_reserved
;
404 static int hf_ff_sm_dev_annunc_req_dev_type_redundant_caps
;
405 static int hf_ff_sm_dev_annunc_req_dev_type
;
406 static int hf_ff_sm_dev_annunc_req_dev_redundancy_state_reserved
;
407 static int hf_ff_sm_dev_annunc_req_dev_redundancy_state_role
;
408 static int hf_ff_sm_dev_annunc_req_dev_redundancy_state_type
;
409 static int hf_ff_sm_dev_annunc_req_dev_redundancy_state
;
410 static int hf_ff_sm_dev_annunc_req_dup_detection_state_reserved
;
411 static int hf_ff_sm_dev_annunc_req_dup_detection_state_pd_tag
;
412 static int hf_ff_sm_dev_annunc_req_dup_detection_state_device
;
413 static int hf_ff_sm_dev_annunc_req_dup_detection_state
;
415 static int ett_ff_sm_dev_annunc_req
;
416 static int ett_ff_sm_dev_annunc_req_smk_state
;
417 static int ett_ff_sm_dev_annunc_req_dev_type
;
418 static int ett_ff_sm_dev_annunc_req_dev_redundancy_state
;
419 static int ett_ff_sm_dev_annunc_req_dup_detection_state
;
420 static int ett_ff_sm_dev_annunc_req_entries_h1_live_list
;
421 static int ett_ff_sm_dev_annunc_req_h1_live_list
;
422 static int ett_ff_sm_dev_annunc_req_entries_node_addr
;
423 static int ett_ff_sm_dev_annunc_req_h1_node_addr
;
428 * 6.5.3. FMS Services
430 static int hf_ff_fms
;
435 * 6.5.3.2. FMS Initiate (Confirmed Service Id = 96)
437 static int hf_ff_fms_init
;
439 static int hf_ff_fms_init_req
;
440 static int hf_ff_fms_init_req_conn_opt
;
441 static int hf_ff_fms_init_req_access_protection_supported_calling
;
442 static int hf_ff_fms_init_req_passwd_and_access_grps_calling
;
443 static int hf_ff_fms_init_req_ver_od_calling
;
444 static int hf_ff_fms_init_req_prof_num_calling
;
445 static int hf_ff_fms_init_req_pd_tag
;
447 static int hf_ff_fms_init_rsp
;
448 static int hf_ff_fms_init_rsp_ver_od_called
;
449 static int hf_ff_fms_init_rsp_prof_num_called
;
451 static int hf_ff_fms_init_err
;
452 static int hf_ff_fms_init_err_err_class
;
453 static int hf_ff_fms_init_err_err_code
;
454 static int hf_ff_fms_init_err_additional_code
;
455 static int hf_ff_fms_init_err_additional_desc
;
457 static int ett_ff_fms_init_req
;
458 static int ett_ff_fms_init_rep
;
459 static int ett_ff_fms_init_err
;
464 * 6.5.3.3. FMS Abort (Unconfirmed Service Id = 112)
466 static int hf_ff_fms_abort
;
468 static int hf_ff_fms_abort_req
;
469 static int hf_ff_fms_abort_req_detail
;
470 static int hf_ff_fms_abort_req_abort_id
;
471 static int hf_ff_fms_abort_req_reason_code
;
472 static int hf_ff_fms_abort_req_reserved
;
474 static int ett_ff_fms_abort_req
;
479 * 6.5.3.4. FMS Status (Confirmed Service Id = 0)
481 static int hf_ff_fms_status
;
483 static int hf_ff_fms_status_req
;
485 static int hf_ff_fms_status_rsp
;
486 static int hf_ff_fms_status_rsp_logical_status
;
487 static int hf_ff_fms_status_rsp_physical_status
;
488 static int hf_ff_fms_status_rsp_reserved
;
489 static int hf_ff_fms_status_rsp_local_detail
;
491 static int hf_ff_fms_status_err
;
492 static int hf_ff_fms_status_err_err_class
;
493 static int hf_ff_fms_status_err_err_code
;
494 static int hf_ff_fms_status_err_additional_code
;
495 static int hf_ff_fms_status_err_additional_desc
;
497 static int ett_ff_fms_status_req
;
498 static int ett_ff_fms_status_rsp
;
499 static int ett_ff_fms_status_err
;
504 * 6.5.3.5. FMS Unsolicited Status (Unconfirmed Service Id = 1)
506 static int hf_ff_fms_unsolicited_status
;
508 static int hf_ff_fms_unsolicited_status_req
;
509 static int hf_ff_fms_unsolicited_status_req_logical_status
;
510 static int hf_ff_fms_unsolicited_status_req_physical_status
;
511 static int hf_ff_fms_unsolicited_status_req_reserved
;
512 static int hf_ff_fms_unsolicited_status_req_local_detail
;
514 static int ett_ff_fms_unsolicited_status_req
;
519 * 6.5.3.6. FMS Identify (Confirmed Service Id = 1)
521 static int hf_ff_fms_id
;
523 static int hf_ff_fms_id_req
;
525 static int hf_ff_fms_id_rsp
;
526 static int hf_ff_fms_id_rsp_vendor_name
;
527 static int hf_ff_fms_id_rsp_model_name
;
528 static int hf_ff_fms_id_rsp_revision
;
530 static int hf_ff_fms_id_err
;
531 static int hf_ff_fms_id_err_err_class
;
532 static int hf_ff_fms_id_err_err_code
;
533 static int hf_ff_fms_id_err_additional_code
;
534 static int hf_ff_fms_id_err_additional_desc
;
536 static int ett_ff_fms_id_req
;
537 static int ett_ff_fms_id_rsp
;
538 static int ett_ff_fms_id_err
;
543 * 6.5.3.7. FMS Get OD (Confirmed Service Id = 4)
545 static int hf_ff_fms_get_od
;
547 static int hf_ff_fms_get_od_req
;
548 static int hf_ff_fms_get_od_req_all_attrs
;
549 static int hf_ff_fms_get_od_req_start_idx_flag
;
550 static int hf_ff_fms_get_od_req_reserved
;
551 static int hf_ff_fms_get_od_req_idx
;
553 static int hf_ff_fms_get_od_rsp
;
554 static int hf_ff_fms_get_od_rsp_more_follows
;
555 static int hf_ff_fms_get_od_rsp_num_of_obj_desc
;
556 static int hf_ff_fms_get_od_rsp_reserved
;
557 static int hf_ff_fms_get_od_rsp_object_descriptions
;
559 static int hf_ff_fms_get_od_err
;
560 static int hf_ff_fms_get_od_err_err_class
;
561 static int hf_ff_fms_get_od_err_err_code
;
562 static int hf_ff_fms_get_od_err_additional_code
;
563 static int hf_ff_fms_get_od_err_additional_desc
;
565 static int ett_ff_fms_get_od_req
;
566 static int ett_ff_fms_get_od_rsp
;
567 static int ett_ff_fms_get_od_err
;
572 * 6.5.3.8. FMS Initiate Put OD (Confirmed Service Id = 28)
574 static int hf_ff_fms_init_put_od
;
576 static int hf_ff_fms_init_put_od_req
;
577 static int hf_ff_fms_init_put_od_req_reserved
;
578 static int hf_ff_fms_init_put_od_req_consequence
;
580 static int hf_ff_fms_init_put_od_rsp
;
582 static int hf_ff_fms_init_put_od_err
;
583 static int hf_ff_fms_init_put_od_err_err_class
;
584 static int hf_ff_fms_init_put_od_err_err_code
;
585 static int hf_ff_fms_init_put_od_err_additional_code
;
586 static int hf_ff_fms_init_put_od_err_additional_desc
;
588 static int ett_ff_fms_init_put_od_req
;
589 static int ett_ff_fms_init_put_od_rsp
;
590 static int ett_ff_fms_init_put_od_err
;
595 * 6.5.3.9. FMS Put OD (Confirmed Service Id = 29)
597 static int hf_ff_fms_put_od
;
599 static int hf_ff_fms_put_od_req
;
600 static int hf_ff_fms_put_od_req_num_of_obj_desc
;
601 static int hf_ff_fms_put_od_req_object_descriptions
;
603 static int hf_ff_fms_put_od_rsp
;
605 static int hf_ff_fms_put_od_err
;
606 static int hf_ff_fms_put_od_err_err_class
;
607 static int hf_ff_fms_put_od_err_err_code
;
608 static int hf_ff_fms_put_od_err_additional_code
;
609 static int hf_ff_fms_put_od_err_additional_desc
;
611 static int ett_ff_fms_put_od_req
;
612 static int ett_ff_fms_put_od_rsp
;
613 static int ett_ff_fms_put_od_err
;
618 * 6.5.3.10. FMS Terminate Put OD (Confirmed Service Id = 30)
620 static int hf_ff_fms_terminate_put_od
;
622 static int hf_ff_fms_terminate_put_od_req
;
624 static int hf_ff_fms_terminate_put_od_rsp
;
626 static int hf_ff_fms_terminate_put_od_err
;
627 static int hf_ff_fms_terminate_put_od_err_index
;
628 static int hf_ff_fms_terminate_put_od_err_err_class
;
629 static int hf_ff_fms_terminate_put_od_err_err_code
;
630 static int hf_ff_fms_terminate_put_od_err_additional_code
;
631 static int hf_ff_fms_terminate_put_od_err_additional_desc
;
633 static int ett_ff_fms_terminate_put_od_req
;
634 static int ett_ff_fms_terminate_put_od_rsp
;
635 static int ett_ff_fms_terminate_put_od_err
;
640 * 6.5.3.11. FMS Generic Initiate Download Sequence (Confirmed Service Id = 31)
642 static int hf_ff_fms_gen_init_download_seq
;
644 static int hf_ff_fms_gen_init_download_seq_req
;
645 static int hf_ff_fms_gen_init_download_seq_req_idx
;
647 static int hf_ff_fms_gen_init_download_seq_rsp
;
649 static int hf_ff_fms_gen_init_download_seq_err
;
650 static int hf_ff_fms_gen_init_download_seq_err_err_class
;
651 static int hf_ff_fms_gen_init_download_seq_err_err_code
;
652 static int hf_ff_fms_gen_init_download_seq_err_additional_code
;
653 static int hf_ff_fms_gen_init_download_seq_err_additional_desc
;
655 static int ett_ff_fms_gen_init_download_seq_req
;
656 static int ett_ff_fms_gen_init_download_seq_rep
;
657 static int ett_ff_fms_gen_init_download_seq_err
;
662 * 6.5.3.12. FMS Generic Download Segment (Confirmed Service Id = 32)
664 static int hf_ff_fms_gen_download_seg
;
666 static int hf_ff_fms_gen_download_seg_req
;
667 static int hf_ff_fms_gen_download_seg_req_idx
;
668 static int hf_ff_fms_gen_download_seg_req_more_follows
;
669 static int hf_ff_fms_gen_download_seg_req_load_data
;
671 static int hf_ff_fms_gen_download_seg_rsp
;
673 static int hf_ff_fms_gen_download_seg_err
;
674 static int hf_ff_fms_gen_download_seg_err_err_class
;
675 static int hf_ff_fms_gen_download_seg_err_err_code
;
676 static int hf_ff_fms_gen_download_seg_err_additional_code
;
677 static int hf_ff_fms_gen_download_seg_err_additional_desc
;
679 static int ett_ff_fms_gen_download_seg_req
;
680 static int ett_ff_fms_gen_download_seg_rsp
;
681 static int ett_ff_fms_gen_download_seg_err
;
686 * 6.5.3.13. FMS Generic Terminate Download Sequence (Confirmed Service Id = 33)
688 static int hf_ff_fms_gen_terminate_download_seq
;
690 static int hf_ff_fms_gen_terminate_download_seq_req
;
691 static int hf_ff_fms_gen_terminate_download_seq_req_idx
;
693 static int hf_ff_fms_gen_terminate_download_seq_rsp
;
694 static int hf_ff_fms_gen_terminate_download_seq_rsp_final_result
;
696 static int hf_ff_fms_gen_terminate_download_seq_err
;
697 static int hf_ff_fms_gen_terminate_download_seq_err_err_class
;
698 static int hf_ff_fms_gen_terminate_download_seq_err_err_code
;
699 static int hf_ff_fms_gen_terminate_download_seq_err_additional_code
;
700 static int hf_ff_fms_gen_terminate_download_seq_err_additional_desc
;
702 static int ett_ff_fms_gen_terminate_download_seq_req
;
703 static int ett_ff_fms_gen_terminate_download_seq_rsp
;
704 static int ett_ff_fms_gen_terminate_download_seq_err
;
709 * 6.5.3.14. FMS Initiate Download Sequence (Confirmed Service Id = 9)
711 static int hf_ff_fms_init_download_seq
;
713 static int hf_ff_fms_init_download_seq_req
;
714 static int hf_ff_fms_init_download_seq_req_idx
;
716 static int hf_ff_fms_init_download_seq_rsp
;
718 static int hf_ff_fms_init_download_seq_err
;
719 static int hf_ff_fms_init_download_seq_err_err_class
;
720 static int hf_ff_fms_init_download_seq_err_err_code
;
721 static int hf_ff_fms_init_download_seq_err_additional_code
;
722 static int hf_ff_fms_init_download_seq_err_additional_desc
;
724 static int ett_ff_fms_init_download_seq_req
;
725 static int ett_ff_fms_init_download_seq_rsp
;
726 static int ett_ff_fms_init_download_seq_err
;
731 * 6.5.3.15. FMS Download Segment (Confirmed Service Id = 10)
733 static int hf_ff_fms_download_seg
;
734 static int hf_ff_fms_download_seg_req
;
735 static int hf_ff_fms_download_seg_req_idx
;
737 static int hf_ff_fms_download_seg_rsp
;
738 static int hf_ff_fms_download_seg_rsp_more_follows
;
739 static int hf_ff_fms_download_seg_rsp_load_data
;
741 static int hf_ff_fms_download_seg_err
;
742 static int hf_ff_fms_download_seg_err_err_class
;
743 static int hf_ff_fms_download_seg_err_err_code
;
744 static int hf_ff_fms_download_seg_err_additional_code
;
745 static int hf_ff_fms_download_seg_err_additional_desc
;
747 static int ett_ff_fms_download_seg_req
;
748 static int ett_ff_fms_download_seg_rsp
;
749 static int ett_ff_fms_download_seg_err
;
754 * 6.5.3.16. FMS Terminate Download Sequence (Confirmed Service Id = 11)
756 static int hf_ff_fms_terminate_download_seq
;
758 static int hf_ff_fms_terminate_download_seq_req
;
759 static int hf_ff_fms_terminate_download_seq_req_idx
;
760 static int hf_ff_fms_terminate_download_seq_req_final_result
;
762 static int hf_ff_fms_terminate_download_seq_rsp
;
764 static int hf_ff_fms_terminate_download_seq_err
;
765 static int hf_ff_fms_terminate_download_seq_err_err_class
;
766 static int hf_ff_fms_terminate_download_seq_err_err_code
;
767 static int hf_ff_fms_terminate_download_seq_err_additional_code
;
768 static int hf_ff_fms_terminate_download_seq_err_additional_desc
;
770 static int ett_ff_fms_terminate_download_seq_req
;
771 static int ett_ff_fms_terminate_download_seq_rsp
;
772 static int ett_ff_fms_terminate_download_seq_err
;
777 * 6.5.3.17. FMS Initiate Upload Sequence (Confirmed Service Id = 12)
779 static int hf_ff_fms_init_upload_seq
;
781 static int hf_ff_fms_init_upload_seq_req
;
782 static int hf_ff_fms_init_upload_seq_req_idx
;
784 static int hf_ff_fms_init_upload_seq_rsp
;
786 static int hf_ff_fms_init_upload_seq_err
;
787 static int hf_ff_fms_init_upload_seq_err_err_class
;
788 static int hf_ff_fms_init_upload_seq_err_err_code
;
789 static int hf_ff_fms_init_upload_seq_err_additional_code
;
790 static int hf_ff_fms_init_upload_seq_err_additional_desc
;
792 static int ett_ff_fms_init_upload_seq_req
;
793 static int ett_ff_fms_init_upload_seq_rsp
;
794 static int ett_ff_fms_init_upload_seq_err
;
799 * 6.5.3.18. FMS Upload Segment (Confirmed Service Id = 13)
801 static int hf_ff_fms_upload_seg
;
803 static int hf_ff_fms_upload_seg_req
;
804 static int hf_ff_fms_upload_seg_req_idx
;
806 static int hf_ff_fms_upload_seg_rsp
;
807 static int hf_ff_fms_upload_seg_rsp_more_follows
;
808 static int hf_ff_fms_upload_seg_rsp_final_result
;
810 static int hf_ff_fms_upload_seg_err
;
811 static int hf_ff_fms_upload_seg_err_err_class
;
812 static int hf_ff_fms_upload_seg_err_err_code
;
813 static int hf_ff_fms_upload_seg_err_additional_code
;
814 static int hf_ff_fms_upload_seg_err_additional_desc
;
816 static int ett_ff_fms_upload_seg_req
;
817 static int ett_ff_fms_upload_seg_rsp
;
818 static int ett_ff_fms_upload_seg_err
;
823 * 6.5.3.19. FMS Terminate Upload Sequence (Confirmed Service Id = 14)
825 static int hf_ff_fms_terminate_upload_seq
;
827 static int hf_ff_fms_terminate_upload_seq_req
;
828 static int hf_ff_fms_terminate_upload_seq_req_idx
;
830 static int hf_ff_fms_terminate_upload_seq_rsp
;
832 static int hf_ff_fms_terminate_upload_seq_err
;
833 static int hf_ff_fms_terminate_upload_seq_err_err_class
;
834 static int hf_ff_fms_terminate_upload_seq_err_err_code
;
835 static int hf_ff_fms_terminate_upload_seq_err_additional_code
;
836 static int hf_ff_fms_terminate_upload_seq_err_additional_desc
;
838 static int ett_ff_fms_terminate_upload_seq_req
;
839 static int ett_ff_fms_terminate_upload_seq_rsp
;
840 static int ett_ff_fms_terminate_upload_seq_err
;
845 * 6.5.3.20. FMS Request Domain Download (Confirmed Service Id = 15)
847 static int hf_ff_fms_req_dom_download
;
849 static int hf_ff_fms_req_dom_download_req
;
850 static int hf_ff_fms_req_dom_download_req_idx
;
851 static int hf_ff_fms_req_dom_download_req_additional_info
;
853 static int hf_ff_fms_req_dom_download_rsp
;
855 static int hf_ff_fms_req_dom_download_err
;
856 static int hf_ff_fms_req_dom_download_err_err_class
;
857 static int hf_ff_fms_req_dom_download_err_err_code
;
858 static int hf_ff_fms_req_dom_download_err_additional_code
;
859 static int hf_ff_fms_req_dom_download_err_additional_desc
;
861 static int ett_ff_fms_req_dom_download_req
;
862 static int ett_ff_fms_req_dom_download_rsp
;
863 static int ett_ff_fms_req_dom_download_err
;
868 * 6.5.3.21. FMS Request Domain Upload (Confirmed Service Id = 16)
870 static int hf_ff_fms_req_dom_upload
;
872 static int hf_ff_fms_req_dom_upload_req
;
873 static int hf_ff_fms_req_dom_upload_req_idx
;
874 static int hf_ff_fms_req_dom_upload_req_additional_info
;
876 static int hf_ff_fms_req_dom_upload_rsp
;
878 static int hf_ff_fms_req_dom_upload_err
;
879 static int hf_ff_fms_req_dom_upload_err_err_class
;
880 static int hf_ff_fms_req_dom_upload_err_err_code
;
881 static int hf_ff_fms_req_dom_upload_err_additional_code
;
882 static int hf_ff_fms_req_dom_upload_err_additional_desc
;
884 static int ett_ff_fms_req_dom_upload_req
;
885 static int ett_ff_fms_req_dom_upload_rsp
;
886 static int ett_ff_fms_req_dom_upload_err
;
891 * 6.5.3.22. FMS Create Program Invocation (Confirmed Service Id = 17)
893 static int hf_ff_fms_create_pi
;
895 static int hf_ff_fms_create_pi_req
;
896 static int hf_ff_fms_create_pi_req_reusable
;
897 static int hf_ff_fms_create_pi_req_reserved
;
898 static int hf_ff_fms_create_pi_req_num_of_dom_idxes
;
899 static int hf_ff_fms_create_pi_req_dom_idx
;
901 static int hf_ff_fms_create_pi_rsp
;
902 static int hf_ff_fms_create_pi_rsp_idx
;
904 static int hf_ff_fms_create_pi_err
;
905 static int hf_ff_fms_create_pi_err_err_class
;
906 static int hf_ff_fms_create_pi_err_err_code
;
907 static int hf_ff_fms_create_pi_err_additional_code
;
908 static int hf_ff_fms_create_pi_err_additional_desc
;
910 static int ett_ff_fms_create_pi_req
;
911 static int ett_ff_fms_create_pi_req_list_of_dom_idxes
;
912 static int ett_ff_fms_create_pi_rsp
;
913 static int ett_ff_fms_create_pi_err
;
918 * 6.5.3.23. FMS Delete Program Invocation (Confirmed Service Id = 18)
920 static int hf_ff_fms_del_pi
;
921 static int hf_ff_fms_del_pi_req
;
922 static int hf_ff_fms_del_pi_req_idx
;
924 static int hf_ff_fms_del_pi_rsp
;
926 static int hf_ff_fms_del_pi_err
;
927 static int hf_ff_fms_del_pi_err_err_class
;
928 static int hf_ff_fms_del_pi_err_err_code
;
929 static int hf_ff_fms_del_pi_err_additional_code
;
930 static int hf_ff_fms_del_pi_err_additional_desc
;
932 static int ett_ff_fms_del_pi_req
;
933 static int ett_ff_fms_del_pi_rsp
;
934 static int ett_ff_fms_del_pi_err
;
939 * 6.5.3.24. FMS Start (Confirmed Service Id = 19)
941 static int hf_ff_fms_start
;
942 static int hf_ff_fms_start_req
;
943 static int hf_ff_fms_start_req_idx
;
944 static int hf_ff_fms_start_req_execution_argument
;
946 static int hf_ff_fms_start_rsp
;
948 static int hf_ff_fms_start_err
;
949 static int hf_ff_fms_start_err_pi_state
;
950 static int hf_ff_fms_start_err_err_class
;
951 static int hf_ff_fms_start_err_err_code
;
952 static int hf_ff_fms_start_err_additional_code
;
953 static int hf_ff_fms_start_err_additional_desc
;
955 static int ett_ff_fms_start_req
;
956 static int ett_ff_fms_start_rsp
;
957 static int ett_ff_fms_start_err
;
962 * 6.5.3.25. FMS Stop (Confirmed Service Id = 20)
964 static int hf_ff_fms_stop
;
966 static int hf_ff_fms_stop_req
;
967 static int hf_ff_fms_stop_req_idx
;
969 static int hf_ff_fms_stop_rsp
;
971 static int hf_ff_fms_stop_err
;
972 static int hf_ff_fms_stop_err_pi_state
;
973 static int hf_ff_fms_stop_err_err_class
;
974 static int hf_ff_fms_stop_err_err_code
;
975 static int hf_ff_fms_stop_err_additional_code
;
976 static int hf_ff_fms_stop_err_additional_desc
;
978 static int ett_ff_fms_stop_req
;
979 static int ett_ff_fms_stop_rsp
;
980 static int ett_ff_fms_stop_err
;
985 * 6.5.3.26. FMS Resume (Confirmed Service Id = 21)
987 static int hf_ff_fms_resume
;
988 static int hf_ff_fms_resume_req
;
989 static int hf_ff_fms_resume_req_idx
;
990 static int hf_ff_fms_resume_req_execution_argument
;
992 static int hf_ff_fms_resume_rsp
;
994 static int hf_ff_fms_resume_err
;
995 static int hf_ff_fms_resume_err_pi_state
;
996 static int hf_ff_fms_resume_err_err_class
;
997 static int hf_ff_fms_resume_err_err_code
;
998 static int hf_ff_fms_resume_err_additional_code
;
999 static int hf_ff_fms_resume_err_additional_desc
;
1001 static int ett_ff_fms_resume_req
;
1002 static int ett_ff_fms_resume_rsp
;
1003 static int ett_ff_fms_resume_err
;
1008 * 6.5.3.27. FMS Reset (Confirmed Service Id = 22)
1010 static int hf_ff_fms_reset
;
1011 static int hf_ff_fms_reset_req
;
1012 static int hf_ff_fms_reset_req_idx
;
1014 static int hf_ff_fms_reset_rsp
;
1016 static int hf_ff_fms_reset_err
;
1017 static int hf_ff_fms_reset_err_pi_state
;
1018 static int hf_ff_fms_reset_err_err_class
;
1019 static int hf_ff_fms_reset_err_err_code
;
1020 static int hf_ff_fms_reset_err_additional_code
;
1021 static int hf_ff_fms_reset_err_additional_desc
;
1023 static int ett_ff_fms_reset_req
;
1024 static int ett_ff_fms_reset_rsp
;
1025 static int ett_ff_fms_reset_err
;
1030 * 6.5.3.28. FMS Kill (Confirmed Service Id = 23)
1032 static int hf_ff_fms_kill
;
1033 static int hf_ff_fms_kill_req
;
1034 static int hf_ff_fms_kill_req_idx
;
1036 static int hf_ff_fms_kill_rsp
;
1038 static int hf_ff_fms_kill_err
;
1039 static int hf_ff_fms_kill_err_err_class
;
1040 static int hf_ff_fms_kill_err_err_code
;
1041 static int hf_ff_fms_kill_err_additional_code
;
1042 static int hf_ff_fms_kill_err_additional_desc
;
1044 static int ett_ff_fms_kill_req
;
1045 static int ett_ff_fms_kill_rsp
;
1046 static int ett_ff_fms_kill_err
;
1051 * 6.5.3.29. FMS Read (Confirmed Service Id = 2)
1053 static int hf_ff_fms_read
;
1055 static int hf_ff_fms_read_req
;
1056 static int hf_ff_fms_read_req_idx
;
1058 static int hf_ff_fms_read_rsp
;
1060 static int hf_ff_fms_read_err
;
1061 static int hf_ff_fms_read_err_err_class
;
1062 static int hf_ff_fms_read_err_err_code
;
1063 static int hf_ff_fms_read_err_additional_code
;
1064 static int hf_ff_fms_read_err_additional_desc
;
1066 static int ett_ff_fms_read_req
;
1067 static int ett_ff_fms_read_rsp
;
1068 static int ett_ff_fms_read_err
;
1073 * 6.5.3.30. FMS Read with Subindex (Confirmed Service Id = 82)
1075 static int hf_ff_fms_read_with_subidx
;
1077 static int hf_ff_fms_read_with_subidx_req
;
1078 static int hf_ff_fms_read_with_subidx_req_idx
;
1079 static int hf_ff_fms_read_with_subidx_req_subidx
;
1081 static int hf_ff_fms_read_with_subidx_rsp
;
1083 static int hf_ff_fms_read_with_subidx_err
;
1084 static int hf_ff_fms_read_with_subidx_err_err_class
;
1085 static int hf_ff_fms_read_with_subidx_err_err_code
;
1086 static int hf_ff_fms_read_with_subidx_err_additional_code
;
1087 static int hf_ff_fms_read_with_subidx_err_additional_desc
;
1089 static int ett_ff_fms_read_with_subidx_req
;
1090 static int ett_ff_fms_read_with_subidx_rsp
;
1091 static int ett_ff_fms_read_with_subidx_err
;
1096 * 6.5.3.31. FMS Write (Confirmed Service Id = 3)
1098 static int hf_ff_fms_write
;
1099 static int hf_ff_fms_write_req
;
1100 static int hf_ff_fms_write_req_idx
;
1102 static int hf_ff_fms_write_rsp
;
1104 static int hf_ff_fms_write_err
;
1105 static int hf_ff_fms_write_err_err_class
;
1106 static int hf_ff_fms_write_err_err_code
;
1107 static int hf_ff_fms_write_err_additional_code
;
1108 static int hf_ff_fms_write_err_additional_desc
;
1110 static int ett_ff_fms_write_req
;
1111 static int ett_ff_fms_write_rsp
;
1112 static int ett_ff_fms_write_err
;
1117 * 6.5.3.32. FMS Write with Subindex (Confirmed Service Id = 83)
1119 static int hf_ff_fms_write_with_subidx
;
1121 static int hf_ff_fms_write_with_subidx_req
;
1122 static int hf_ff_fms_write_with_subidx_req_idx
;
1123 static int hf_ff_fms_write_with_subidx_req_subidx
;
1125 static int hf_ff_fms_write_with_subidx_rsp
;
1127 static int hf_ff_fms_write_with_subidx_err
;
1128 static int hf_ff_fms_write_with_subidx_err_err_class
;
1129 static int hf_ff_fms_write_with_subidx_err_err_code
;
1130 static int hf_ff_fms_write_with_subidx_err_additional_code
;
1131 static int hf_ff_fms_write_with_subidx_err_additional_desc
;
1133 static int ett_ff_fms_write_with_subidx_req
;
1134 static int ett_ff_fms_write_with_subidx_rsp
;
1135 static int ett_ff_fms_write_with_subidx_err
;
1140 * 6.5.3.33. FMS Define Variable List (Confirmed Service Id = 7)
1142 static int hf_ff_fms_def_variable_list
;
1144 static int hf_ff_fms_def_variable_list_req
;
1145 static int hf_ff_fms_def_variable_list_req_num_of_idxes
;
1146 static int hf_ff_fms_def_variable_list_req_idx
;
1148 static int hf_ff_fms_def_variable_list_rsp
;
1149 static int hf_ff_fms_def_variable_list_rsp_idx
;
1151 static int hf_ff_fms_def_variable_list_err
;
1152 static int hf_ff_fms_def_variable_list_err_err_class
;
1153 static int hf_ff_fms_def_variable_list_err_err_code
;
1154 static int hf_ff_fms_def_variable_list_err_additional_code
;
1155 static int hf_ff_fms_def_variable_list_err_additional_desc
;
1157 static int ett_ff_fms_def_variable_list_req
;
1158 static int ett_ff_fms_def_variable_list_req_list_of_idxes
;
1159 static int ett_ff_fms_def_variable_list_rsp
;
1160 static int ett_ff_fms_def_variable_list_err
;
1165 * 6.5.3.34. FMS Delete Variable List (Confirmed Service Id = 8)
1167 static int hf_ff_fms_del_variable_list
;
1169 static int hf_ff_fms_del_variable_list_req
;
1170 static int hf_ff_fms_del_variable_list_req_idx
;
1172 static int hf_ff_fms_del_variable_list_rsp
;
1174 static int hf_ff_fms_del_variable_list_err
;
1175 static int hf_ff_fms_del_variable_list_err_err_class
;
1176 static int hf_ff_fms_del_variable_list_err_err_code
;
1177 static int hf_ff_fms_del_variable_list_err_additional_code
;
1178 static int hf_ff_fms_del_variable_list_err_additional_desc
;
1180 static int ett_ff_fms_del_variable_list_req
;
1181 static int ett_ff_fms_del_variable_list_rsp
;
1182 static int ett_ff_fms_del_variable_list_err
;
1187 * 6.5.3.35. FMS Information Report (Unconfirmed Service Id = 0)
1189 static int hf_ff_fms_info_report
;
1191 static int hf_ff_fms_info_report_req
;
1192 static int hf_ff_fms_info_report_req_idx
;
1194 static int ett_ff_fms_info_report_req
;
1199 * 6.5.3.36. FMS Information Report with Subindex (Unconfirmed Service Id = 16)
1201 static int hf_ff_fms_info_report_with_subidx
;
1203 static int hf_ff_fms_info_report_with_subidx_req
;
1204 static int hf_ff_fms_info_report_with_subidx_req_idx
;
1205 static int hf_ff_fms_info_report_with_subidx_req_subidx
;
1207 static int ett_ff_fms_info_report_with_subidx_req
;
1212 * 6.5.3.37. FMS Information Report On Change (Unconfirmed Service Id = 17)
1214 static int hf_ff_fms_info_report_on_change
;
1216 static int hf_ff_fms_info_report_on_change_req
;
1217 static int hf_ff_fms_info_report_on_change_req_idx
;
1219 static int ett_ff_fms_info_report_on_change_req
;
1224 * 6.5.3.38. FMS Information Report On Change with Subindex
1225 * (Unconfirmed Service Id = 18)
1227 static int hf_ff_fms_info_report_on_change_with_subidx
;
1229 static int hf_ff_fms_info_report_on_change_with_subidx_req
;
1230 static int hf_ff_fms_info_report_on_change_with_subidx_req_idx
;
1231 static int hf_ff_fms_info_report_on_change_with_subidx_req_subidx
;
1233 static int ett_ff_fms_info_report_on_change_with_subidx_req
;
1238 * 6.5.3.39. FMS Event Notification (Unconfirmed Service Id = 2)
1240 static int hf_ff_fms_ev_notification
;
1242 static int hf_ff_fms_ev_notification_req
;
1243 static int hf_ff_fms_ev_notification_req_idx
;
1244 static int hf_ff_fms_ev_notification_req_ev_num
;
1246 static int ett_ff_fms_ev_notification_req
;
1251 * 6.5.3.40. FMS Alter Event Condition Monitoring (Confirmed Service Id = 24)
1253 static int hf_ff_fms_alter_ev_condition_monitoring
;
1255 static int hf_ff_fms_alter_ev_condition_monitoring_req
;
1256 static int hf_ff_fms_alter_ev_condition_monitoring_req_idx
;
1257 static int hf_ff_fms_alter_ev_condition_monitoring_req_enabled
;
1259 static int hf_ff_fms_alter_ev_condition_monitoring_rsp
;
1261 static int hf_ff_fms_alter_ev_condition_monitoring_err
;
1262 static int hf_ff_fms_alter_ev_condition_monitoring_err_err_class
;
1263 static int hf_ff_fms_alter_ev_condition_monitoring_err_err_code
;
1264 static int hf_ff_fms_alter_ev_condition_monitoring_err_additional_code
;
1265 static int hf_ff_fms_alter_ev_condition_monitoring_err_additional_desc
;
1267 static int ett_ff_fms_alter_ev_condition_monitoring_req
;
1268 static int ett_ff_fms_alter_ev_condition_monitoring_rsp
;
1269 static int ett_ff_fms_alter_ev_condition_monitoring_err
;
1274 * 6.5.3.41. FMS Acknowledge Event Notification (Confirmed Service Id = 25)
1276 static int hf_ff_fms_ack_ev_notification
;
1278 static int hf_ff_fms_ack_ev_notification_req
;
1279 static int hf_ff_fms_ack_ev_notification_req_idx
;
1280 static int hf_ff_fms_ack_ev_notification_req_ev_num
;
1282 static int hf_ff_fms_ack_ev_notification_rsp
;
1284 static int hf_ff_fms_ack_ev_notification_err
;
1285 static int hf_ff_fms_ack_ev_notification_err_err_class
;
1286 static int hf_ff_fms_ack_ev_notification_err_err_code
;
1287 static int hf_ff_fms_ack_ev_notification_err_additional_code
;
1288 static int hf_ff_fms_ack_ev_notification_err_additional_desc
;
1290 static int ett_ff_fms_ack_ev_notification_req
;
1291 static int ett_ff_fms_ack_ev_notification_rsp
;
1292 static int ett_ff_fms_ack_ev_notification_err
;
1297 * 6.5.4. LAN Redundancy Services
1299 static int hf_ff_lr
;
1304 * 6.5.4.1. LAN Redundancy Get Information (Confirmed Service Id = 1)
1306 static int hf_ff_lr_get_info
;
1308 static int hf_ff_lr_get_info_req
;
1310 static int hf_ff_lr_get_info_rsp
;
1311 static int hf_ff_lr_get_info_rsp_lr_attrs_ver
;
1312 static int hf_ff_lr_get_info_rsp_lr_max_msg_num_diff
;
1313 static int hf_ff_lr_get_info_rsp_reserved
;
1314 static int hf_ff_lr_get_info_rsp_diagnostic_msg_intvl
;
1315 static int hf_ff_lr_get_info_rsp_aging_time
;
1316 static int hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_send_addr
;
1317 static int hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_recv_addr
;
1318 static int hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_send_addr
;
1319 static int hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_recv_addr
;
1320 static int hf_ff_lr_get_info_rsp_lr_flags_reserved
;
1321 static int hf_ff_lr_get_info_rsp_lr_flags_load_balance
;
1322 static int hf_ff_lr_get_info_rsp_lr_flags_diag
;
1323 static int hf_ff_lr_get_info_rsp_lr_flags_multi_recv
;
1324 static int hf_ff_lr_get_info_rsp_lr_flags_cross_cable
;
1325 static int hf_ff_lr_get_info_rsp_lr_flags_multi_trans
;
1326 static int hf_ff_lr_get_info_rsp_lr_flags
;
1328 static int hf_ff_lr_get_info_err
;
1329 static int hf_ff_lr_get_info_err_err_class
;
1330 static int hf_ff_lr_get_info_err_err_code
;
1331 static int hf_ff_lr_get_info_err_additional_code
;
1332 static int hf_ff_lr_get_info_err_additional_desc
;
1334 static int ett_ff_lr_get_info_req
;
1335 static int ett_ff_lr_get_info_rsp
;
1336 static int ett_ff_lr_get_info_rsp_lr_flags
;
1337 static int ett_ff_lr_get_info_err
;
1342 * 6.5.4.2. LAN Redundancy Put Information (Confirmed Service Id = 2)
1344 static int hf_ff_lr_put_info
;
1346 static int hf_ff_lr_put_info_req
;
1347 static int hf_ff_lr_put_info_req_lr_attrs_ver
;
1348 static int hf_ff_lr_put_info_req_lr_max_msg_num_diff
;
1349 static int hf_ff_lr_put_info_req_reserved
;
1350 static int hf_ff_lr_put_info_req_diagnostic_msg_intvl
;
1351 static int hf_ff_lr_put_info_req_aging_time
;
1352 static int hf_ff_lr_put_info_req_diagnostic_msg_if_a_send_addr
;
1353 static int hf_ff_lr_put_info_req_diagnostic_msg_if_a_recv_addr
;
1354 static int hf_ff_lr_put_info_req_diagnostic_msg_if_b_send_addr
;
1355 static int hf_ff_lr_put_info_req_diagnostic_msg_if_b_recv_addr
;
1356 static int hf_ff_lr_put_info_req_lr_flags_reserved
;
1357 static int hf_ff_lr_put_info_req_lr_flags_load_balance
;
1358 static int hf_ff_lr_put_info_req_lr_flags_diag
;
1359 static int hf_ff_lr_put_info_req_lr_flags_multi_recv
;
1360 static int hf_ff_lr_put_info_req_lr_flags_cross_cable
;
1361 static int hf_ff_lr_put_info_req_lr_flags_multi_trans
;
1362 static int hf_ff_lr_put_info_req_lr_flags
;
1364 static int hf_ff_lr_put_info_rsp
;
1365 static int hf_ff_lr_put_info_rsp_lr_attrs_ver
;
1366 static int hf_ff_lr_put_info_rsp_lr_max_msg_num_diff
;
1367 static int hf_ff_lr_put_info_rsp_reserved
;
1368 static int hf_ff_lr_put_info_rsp_diagnostic_msg_intvl
;
1369 static int hf_ff_lr_put_info_rsp_aging_time
;
1370 static int hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_send_addr
;
1371 static int hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_recv_addr
;
1372 static int hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_send_addr
;
1373 static int hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_recv_addr
;
1374 static int hf_ff_lr_put_info_rsp_lr_flags_reserved
;
1375 static int hf_ff_lr_put_info_rsp_lr_flags_load_balance
;
1376 static int hf_ff_lr_put_info_rsp_lr_flags_diag
;
1377 static int hf_ff_lr_put_info_rsp_lr_flags_multi_recv
;
1378 static int hf_ff_lr_put_info_rsp_lr_flags_cross_cable
;
1379 static int hf_ff_lr_put_info_rsp_lr_flags_multi_trans
;
1380 static int hf_ff_lr_put_info_rsp_lr_flags
;
1382 static int hf_ff_lr_put_info_err
;
1383 static int hf_ff_lr_put_info_err_err_class
;
1384 static int hf_ff_lr_put_info_err_err_code
;
1385 static int hf_ff_lr_put_info_err_additional_code
;
1386 static int hf_ff_lr_put_info_err_additional_desc
;
1388 static int ett_ff_lr_put_info_req
;
1389 static int ett_ff_lr_put_info_req_lr_flags
;
1390 static int ett_ff_lr_put_info_rsp
;
1391 static int ett_ff_lr_put_info_rsp_lr_flags
;
1392 static int ett_ff_lr_put_info_err
;
1397 * 6.5.4.3. LAN Redundancy Get Statistics (Confirmed Service Id = 3)
1399 static int hf_ff_lr_get_statistics
;
1401 static int hf_ff_lr_get_statistics_req
;
1403 static int hf_ff_lr_get_statistics_rsp
;
1404 static int hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_a
;
1405 static int hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_a
;
1406 static int hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_a
;
1407 static int hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_b
;
1408 static int hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_b
;
1409 static int hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_b
;
1410 static int hf_ff_lr_get_statistics_rsp_num_x_cable_stat
;
1411 static int hf_ff_lr_get_statistics_rsp_x_cable_stat
;
1413 static int hf_ff_lr_get_statistics_err
;
1414 static int hf_ff_lr_get_statistics_err_err_class
;
1415 static int hf_ff_lr_get_statistics_err_err_code
;
1416 static int hf_ff_lr_get_statistics_err_additional_code
;
1417 static int hf_ff_lr_get_statistics_err_additional_desc
;
1419 static int ett_ff_lr_get_statistics_req
;
1420 static int ett_ff_lr_get_statistics_rsp
;
1421 static int ett_ff_lr_get_statistics_rsp_list_of_x_cable_stat
;
1422 static int ett_ff_lr_get_statistics_err
;
1427 * 6.5.4.4. Diagnostic Message (Unconfirmed Service Id = 1)
1429 static int hf_ff_lr_diagnostic_msg
;
1431 static int hf_ff_lr_diagnostic_msg_req
;
1432 static int hf_ff_lr_diagnostic_msg_req_dev_idx
;
1433 static int hf_ff_lr_diagnostic_msg_req_num_of_network_ifs
;
1434 static int hf_ff_lr_diagnostic_msg_req_transmission_if
;
1435 static int hf_ff_lr_diagnostic_msg_req_diagnostic_msg_intvl
;
1436 static int hf_ff_lr_diagnostic_msg_req_pd_tag
;
1437 static int hf_ff_lr_diagnostic_msg_req_reserved
;
1438 static int hf_ff_lr_diagnostic_msg_req_num_of_if_statuses
;
1439 static int hf_ff_lr_diagnostic_msg_req_if_a_to_a_status
;
1440 static int hf_ff_lr_diagnostic_msg_req_if_b_to_a_status
;
1441 static int hf_ff_lr_diagnostic_msg_req_if_a_to_b_status
;
1442 static int hf_ff_lr_diagnostic_msg_req_if_b_to_b_status
;
1443 static int hf_ff_lr_diagnostic_msg_req_dup_detection_state_reserved
;
1444 static int hf_ff_lr_diagnostic_msg_req_dup_detection_state_pd_tag
;
1445 static int hf_ff_lr_diagnostic_msg_req_dup_detection_state_device
;
1446 static int hf_ff_lr_diagnostic_msg_req_dup_detection_state
;
1448 static int ett_ff_lr_diagnostic_msg_req
;
1449 static int ett_ff_lr_diagnostic_msg_req_dup_detection_stat
;
1450 static int ett_ff_lr_diagnostic_msg_req_a_to_a_status
;
1451 static int ett_ff_lr_diagnostic_msg_req_b_to_a_status
;
1452 static int ett_ff_lr_diagnostic_msg_req_a_to_b_status
;
1453 static int ett_ff_lr_diagnostic_msg_req_b_to_b_status
;
1458 static const value_string names_pad_len
[] = {
1459 { 0x00, "No padding" },
1460 { OPTION_PAD_4BYTE
, "pad to 4 byte boundary" },
1461 { OPTION_PAD_8BYTE
, "pad to 8 byte boundary" },
1467 static const value_string names_proto
[] = {
1469 { 0x01, "FDA Session Management" },
1472 { 0x04, "LAN Redundancy" },
1478 static const value_string names_type
[] = {
1479 { TYPE_REQUEST
, "Request Message" },
1480 { TYPE_RESPONSE
, "Response Message" },
1481 { TYPE_ERROR
, "Error Message" },
1487 static const value_string names_nma_conf_use
[] = {
1488 { 0, "NMA Configuration Not Permitted" },
1489 { 1, "NMA Configuration Permitted" },
1495 static const value_string names_query_type
[] = {
1496 { 0, "PD Tag query for primary device" },
1497 { 1, "VFD tag query" },
1498 { 2, "Function-Block tag query" },
1499 { 3, "Element Id query" },
1500 { 4, "PD Tag/VFD Reference query" },
1501 { 5, "Device Index query" },
1502 { 6, "PD Tag query for secondary or member of redundant set" },
1508 static const value_string names_smk_state
[] = {
1510 { 0x01, "NO_TAG" }, /* 0000 0010 */
1511 { 0x02, "OPERATIONAL" }, /* 0000 0100 */
1517 static const value_string names_dev_type
[] = {
1518 { 0x00, "Type D-1 Device" }, /* 0000 0000 */
1519 { 0x01, "Type D-2 Device" }, /* 0000 0001 */
1520 { 0x02, "Type D-3 Device" }, /* 0000 0010 */
1521 { 0x03, "Type D-3 and Type D-2 Device" }, /* 0000 0011 */
1522 { 0x04, "Not used" }, /* 0000 0100 */
1523 { 0x05, "Type D-2 and Type D-1 Device" }, /* 0000 0101 */
1524 { 0x06, "Type D-3 and Type D-1 Device" }, /* 0000 0110 */
1525 { 0x07, "Type D-3 and D-2 and Type D-1 Device" }, /* 0000 0111 */
1531 static const value_string names_dev_redundancy_role
[] = {
1533 { 0x00, "Non-redundant" }, /* 0000 0000 */
1534 { 0x01, "Primary" }, /* 0000 0100 */
1535 { 0x02, "Secondary" }, /* 0000 1000 */
1541 static const value_string names_assigned_redundant_dev_type
[] = {
1542 { 0x00, "Non-redundant" }, /* 0000 0000 */
1543 { 0x01, "Type D-2 Device" }, /* 0000 0001 */
1544 { 0x02, "Type D-3 Device" }, /* 0000 0010 */
1550 static const value_string names_type_d2_dev_redundancy_role
[] = {
1552 { 0x00, "Non-redundant" }, /* 0000 0000 */
1553 { 0x01, "Type D-2 Device Primary" }, /* 0000 0100 */
1554 { 0x02, "Type D-2 Device Secondary" }, /* 0000 1000 */
1560 static const value_string names_conn_opt
[] = {
1561 { 1, "VCR Selector" },
1562 { 2, "NMA Access" },
1563 { 3, "FBAP Access" },
1569 static const value_string names_fda_unconfirmed
[] = {
1575 static const value_string names_fda_confirmed
[] = {
1576 { FDA_OPEN_SESSION
, "FDA Open Session" },
1577 { FDA_IDLE
, "FDA Idle" },
1583 static const value_string names_sm_unconfirmed
[] = {
1584 { HSE_SM_FIND_TAG_QUERY
, "SM Find Tag Query" },
1585 { HSE_SM_FIND_TAG_REPLY
, "SM Find Tag Reply" },
1586 { HSE_SM_DEVICE_ANNUNCIATION
, "SM Device Annunciation" },
1592 static const value_string names_sm_confirmed
[] = {
1593 { HSE_SM_IDENTIFY
, "SM Identify" },
1594 { HSE_SM_CLEAR_ADDRESS
, "SM Clear Address" },
1595 { HSE_SM_SET_ASSIGNMENT
, "SM Set Assignment Info" },
1596 { HSE_SM_CLEAR_ASSIGNMENT
, "SM Clear Assignment Info" },
1602 static const value_string names_fms_unconfirmed
[] = {
1603 { HSE_FMS_INFORMATION_REPORT
, "FMS Information Report" },
1604 { HSE_FMS_UNSOLICITED_STATUS
, "FMS Unsolicited Status" },
1605 { HSE_FMS_EVENT_NOTIFICATION
, "FMS Event Notification" },
1606 { HSE_FMS_INFORMATION_REPORT_WITH_SUBINDEX
,
1607 "FMS Information Report with Subindex" },
1608 { HSE_FMS_INFORMATION_REPORT_ON_CHANGE
,
1609 "FMS Information Report On Change" },
1610 { HSE_FMS_INFORMATION_REPORT_ON_CHANGE_WITH_SUBINDEX
,
1611 "FMS Information Report On Change with Subindex" },
1612 { HSE_FMS_ABORT
, "FMS Abort" },
1618 static const value_string names_fms_confirmed
[] = {
1619 { HSE_FMS_STATUS
, "FMS Status" },
1620 { HSE_FMS_IDENTIFY
, "FMS Identify" },
1621 { HSE_FMS_READ
, "FMS Read" },
1622 { HSE_FMS_WRITE
, "FMS Write" },
1623 { HSE_FMS_GET_OD
, "FMS Get OD" },
1624 { HSE_FMS_DEFINE_VARIABLE_LIST
, "FMS Define Variable List" },
1625 { HSE_FMS_DELETE_VARIABLE_LIST
, "FMS Delete Variable List" },
1626 { HSE_FMS_INITIATE_DOWNLOAD_SEQUENCE
, "FMS Initiate Download Sequence" },
1627 { HSE_FMS_DOWNLOAD_SEGMENT
, "FMS Download Segment" },
1628 { HSE_FMS_TERMINATE_DOWNLOAD_SEQUENCE
, "FMS Terminate Download Sequence" },
1629 { HSE_FMS_INITIATE_UPLOAD_SEQUENCE
, "FMS Initiate Upload Sequence" },
1630 { HSE_FMS_UPLOAD_SEGMENT
, "FMS Upload Segment" },
1631 { HSE_FMS_TERMINATE_UPLOAD_SEQUENCE
, "FMS Terminate Upload Sequence" },
1632 { HSE_FMS_REQUEST_DOMAIN_DOWNLOAD
, "FMS Request Domain Download" },
1633 { HSE_FMS_REQUEST_DOMAIN_UPLOAD
, "FMS Request Domain Upload" },
1634 { HSE_FMS_CREATE_PROGRAM_INVOCATION
, "FMS Create Program Invocation" },
1635 { HSE_FMS_DELETE_PROGRAM_INVOCATION
, "FMS Delete Program Invocation" },
1636 { HSE_FMS_START
, "FMS Start" },
1637 { HSE_FMS_STOP
, "FMS Stop" },
1638 { HSE_FMS_RESUME
, "FMS Resume" },
1639 { HSE_FMS_RESET
, "FMS Reset" },
1640 { HSE_FMS_KILL
, "FMS Kill" },
1641 { HSE_FMS_ALTER_EVENT_CONDITION_MONITORING
,
1642 "FMS Alter Event Condition Monitoring" },
1643 { HSE_FMS_ACKNOWLEDGE_EVENT_NOTIFICATION
,
1644 "FMS Acknowledge Event Notification" },
1645 { HSE_FMS_INITIATE_PUT_OD
, "FMS Initiate Put OD" },
1646 { HSE_FMS_PUT_OD
, "FMS Put OD" },
1647 { HSE_FMS_TERMINATE_PUT_OD
, "FMS Terminate Put OD" },
1648 { HSE_FMS_GENERIC_INITIATE_DOWNLOAD_SEQUENCE
,
1649 "FMS Generic Initiate Download Sequence" },
1650 { HSE_FMS_GENERIC_DOWNLOAD_SEGMENT
, "FMS Generic Download Segment" },
1651 { HSE_FMS_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE
,
1652 "FMS Generic Terminate Download Sequence" },
1653 { HSE_FMS_READ_WITH_SUBINDEX
, "FMS Read with Subindex" },
1654 { HSE_FMS_WRITE_WITH_SUBINDEX
, "FMS Write with Subindex" },
1655 { HSE_FMS_INITIATE
, "FMS Initiate" },
1658 static value_string_ext names_fms_confirmed_ext
= VALUE_STRING_EXT_INIT(names_fms_confirmed
);
1661 static const value_string names_lan_unconfirmed
[] = {
1662 { LAN_DIAG
, "Diagnostic Message" },
1668 static const value_string names_lan_confirmed
[] = {
1669 { LAN_GET_INFO
, "LAN Redundancy Get Information" },
1670 { LAN_PUT_INFO
, "LAN Redundancy Put Information" },
1671 { LAN_GET_STATISTICS
, "LAN Redundancy Get Statistics" },
1677 static const value_string names_transmission_interface
[] = {
1678 { 0, "Interface A" },
1679 { 1, "Interface B" },
1685 static const value_string names_err_class
[] = {
1687 { 2, "application reference" },
1688 { 3, "definition" },
1695 { 10, "h1 sm reason code" },
1696 { 11, "fms initiate" },
1699 static value_string_ext names_err_class_ext
= VALUE_STRING_EXT_INIT(names_err_class
);
1702 static const value_string names_err_code_vfd_state
[] = {
1709 static const value_string names_err_code_appl_ref
[] = {
1711 { 1, "object undefined" },
1712 { 2, "object attributes inconsistent" },
1713 { 3, "name already exists" },
1719 static const value_string names_err_code_def
[] = {
1721 { 1, "application unreachable" },
1727 static const value_string names_err_code_res
[] = {
1729 { 1, "memory unavailable" },
1730 { 2, "max outstanding requests per session exceeded" },
1731 { 3, "max sessions exceeded" },
1732 { 4, "object creation failure" },
1738 static const value_string names_err_code_srv
[] = {
1740 { 1, "object state conflict" },
1742 { 3, "object constraint conflict" },
1743 { 4, "parameter inconsistent" },
1744 { 5, "illegal parameter" },
1745 { 6, "unsupported service" },
1746 { 7, "unsupported version" },
1747 { 8, "invalid options" },
1748 { 9, "unsupported protocol" },
1750 { 11, "key parameter mismatch" },
1751 { 12, "assignments already made" },
1752 { 13, "unsupported device redundancy state" },
1753 { 14, "response time-out" },
1754 { 15, "duplicate PD Tag detected" },
1757 static value_string_ext names_err_code_srv_ext
= VALUE_STRING_EXT_INIT(names_err_code_srv
);
1760 static const value_string names_err_code_access
[] = {
1762 { 1, "object invalidated" },
1763 { 2, "hardware fault" },
1764 { 3, "object access denied" },
1765 { 4, "invalid address" },
1766 { 5, "object attribute inconsistent" },
1767 { 6, "object access unsupported" },
1768 { 7, "object non existent" },
1769 { 8, "type conflict" },
1770 { 9, "named access unsupported" },
1771 { 10, "access to element unsupported" },
1772 { 11, "config access already open" },
1774 { 13, "unrecognized FDA Address" },
1777 static value_string_ext names_err_code_access_ext
= VALUE_STRING_EXT_INIT(names_err_code_access
);
1781 static const value_string names_err_code_od
[] = {
1783 { 1, "name length overflow" },
1784 { 2, "od overflow" },
1785 { 3, "od write protected" },
1786 { 4, "extension length overflow" },
1787 { 5, "od description length overflow" },
1788 { 6, "operational problem" },
1789 { 7, "hse to h1 format conversion not supported" },
1795 static const value_string names_err_code_other
[] = {
1802 static const value_string names_err_code_reject
[] = {
1809 static const value_string names_err_code_h1_sm_reason_code
[] = {
1811 { 1, "DLL Error - insufficient resources" },
1812 { 2, "DLL Error - sending queue full" },
1813 { 3, "DLL Error - time-out before transmission" },
1814 { 4, "DLL Error - reason unspecified" },
1815 { 5, "Device failed to respond to SET_PD_TAG" },
1816 { 6, "Device failed to respond to WHO_HAS_PD_TAG" },
1817 { 7, "Device failed to respond to SET_ADDR" },
1818 { 8, "Device failed to respond to IDENTIFY" },
1819 { 9, "Device failed to respond to ENABLE_SM_OP" },
1820 { 10, "Device failed to respond to CLEAR_ADDRESS" },
1821 { 11, "Multiple Response from WHO_HAS_PD_TAG" },
1822 { 12, "Non-Matching PD_TAG from WHO_HAS_PD_TAG" },
1823 { 13, "Non-Matching PD_TAG from IDENTIFY" },
1824 { 14, "Non-Matching DEV_ID from IDENTIFY" },
1825 { 15, "Remote Error Invalid State" },
1826 { 16, "Remote Error PD-Tag doesn't match" },
1827 { 17, "Remote Error Dev-ID doesn't match" },
1828 { 18, "Remote Error SMIB object write failed" },
1829 { 19, "Remote Error Starting SM Operational" },
1832 static value_string_ext names_err_code_h1_sm_reason_code_ext
= VALUE_STRING_EXT_INIT(names_err_code_h1_sm_reason_code
);
1835 static const value_string names_err_code_fms_init
[] = {
1837 { 1, "max-fms-pdu-size-insufficient" },
1838 { 2, "feature-not-supported" },
1839 { 3, "version-od-incompatible" },
1840 { 4, "user-initiate-denied" },
1841 { 5, "password-error" },
1842 { 6, "profile-number-incompatible" },
1847 val_to_str_err_code(uint8_t errclass
, uint8_t code
)
1851 return (val_to_str_const(code
, names_err_code_vfd_state
, "Unknown"));
1854 return (val_to_str_const(code
, names_err_code_appl_ref
, "Unknown"));
1857 return (val_to_str_const(code
, names_err_code_def
, "Unknown"));
1860 return (val_to_str_const(code
, names_err_code_res
, "Unknown"));
1863 return (val_to_str_ext_const(code
, &names_err_code_srv_ext
, "Unknown"));
1866 return (val_to_str_ext_const(code
, &names_err_code_access_ext
, "Unknown"));
1869 return (val_to_str_const(code
, names_err_code_od
, "Unknown"));
1872 return (val_to_str_const(code
, names_err_code_other
, "Unknown"));
1875 return (val_to_str_const(code
, names_err_code_reject
, "Unknown"));
1878 return (val_to_str_ext_const(code
,
1879 &names_err_code_h1_sm_reason_code_ext
, "Unknown"));
1882 return (val_to_str_const(code
, names_err_code_fms_init
, "Unknown"));
1892 * 6.5.1.1. FDA Open Session (Confirmed Service Id = 1)
1893 * 6.5.1.1.1. Request Message Parameters
1896 dissect_ff_msg_fda_open_sess_req(tvbuff_t
*tvb
, int offset
,
1897 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
1899 proto_tree
*sub_tree
;
1901 col_set_str(pinfo
->cinfo
, COL_INFO
, "FDA Open Session Request");
1907 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
1908 ett_ff_fda_open_sess_req
, NULL
, "FDA Open Session Request");
1910 proto_tree_add_item(sub_tree
,
1911 hf_ff_fda_open_sess_req_sess_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1915 proto_tree_add_item(sub_tree
,
1916 hf_ff_fda_open_sess_req_max_buf_siz
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1920 proto_tree_add_item(sub_tree
,
1921 hf_ff_fda_open_sess_req_max_msg_len
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1925 proto_tree_add_item(sub_tree
,
1926 hf_ff_fda_open_sess_req_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1930 proto_tree_add_item(sub_tree
,
1931 hf_ff_fda_open_sess_req_nma_conf_use
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1935 proto_tree_add_item(sub_tree
,
1936 hf_ff_fda_open_sess_req_inactivity_close_time
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1940 proto_tree_add_item(sub_tree
,
1941 hf_ff_fda_open_sess_req_transmit_delay_time
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1945 proto_tree_add_item(sub_tree
,
1946 hf_ff_fda_open_sess_req_pd_tag
, tvb
, offset
, 32, ENC_ASCII
);
1951 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
1958 * 6.5.1.1.2. Response Message Parameters
1961 dissect_ff_msg_fda_open_sess_rsp(tvbuff_t
*tvb
, int offset
,
1962 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
1964 proto_tree
*sub_tree
;
1966 col_set_str(pinfo
->cinfo
, COL_INFO
, "FDA Open Session Response");
1972 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
1973 ett_ff_fda_open_sess_rsp
, NULL
, "FDA Open Session Response");
1975 proto_tree_add_item(sub_tree
,
1976 hf_ff_fda_open_sess_rsp_sess_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1980 proto_tree_add_item(sub_tree
,
1981 hf_ff_fda_open_sess_rsp_max_buf_siz
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1985 proto_tree_add_item(sub_tree
,
1986 hf_ff_fda_open_sess_rsp_max_msg_len
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1990 proto_tree_add_item(sub_tree
,
1991 hf_ff_fda_open_sess_rsp_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1995 proto_tree_add_item(sub_tree
,
1996 hf_ff_fda_open_sess_rsp_nma_conf_use
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2000 proto_tree_add_item(sub_tree
,
2001 hf_ff_fda_open_sess_rsp_inactivity_close_time
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2005 proto_tree_add_item(sub_tree
,
2006 hf_ff_fda_open_sess_rsp_transmit_delay_time
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2010 proto_tree_add_item(sub_tree
,
2011 hf_ff_fda_open_sess_rsp_pd_tag
, tvb
, offset
, 32, ENC_ASCII
);
2016 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
2023 * 6.5.1.1.3. Error Message Parameters
2026 dissect_ff_msg_fda_open_sess_err(tvbuff_t
*tvb
, int offset
,
2027 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
2029 proto_tree
*sub_tree
;
2032 const char *error_code
;
2034 col_set_str(pinfo
->cinfo
, COL_INFO
, "FDA Open Session Error");
2040 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
2041 ett_ff_fda_open_sess_err
, NULL
, "FDA Open Session Error");
2043 ErrorClass
= tvb_get_uint8(tvb
, offset
);
2044 proto_tree_add_item(sub_tree
,
2045 hf_ff_fda_open_sess_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2049 ErrorCode
= tvb_get_uint8(tvb
, offset
);
2050 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
2051 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fda_open_sess_err_err_code
,
2052 tvb
, offset
, 1, ErrorCode
,
2053 "%s (%u)", error_code
, ErrorCode
);
2057 proto_tree_add_item(sub_tree
,
2058 hf_ff_fda_open_sess_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2062 proto_tree_add_item(sub_tree
,
2063 hf_ff_fda_open_sess_err_additional_desc
, tvb
, offset
, 16, ENC_ASCII
);
2068 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
2075 * 6.5.1.2. FDA Idle (Confirmed Service Id = 3)
2076 * 6.5.1.2.1. Request Message Parameters
2079 dissect_ff_msg_fda_idle_req(tvbuff_t
*tvb
, int offset
,
2080 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
2082 proto_tree
*sub_tree
;
2084 col_set_str(pinfo
->cinfo
, COL_INFO
, "FDA Idle Request");
2091 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
2092 ett_ff_fda_idle_req
, NULL
, "FDA Idle Request");
2094 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
2101 * 6.5.1.2.2. Response Message Parameters
2104 dissect_ff_msg_fda_idle_rsp(tvbuff_t
*tvb
, int offset
,
2105 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
2107 proto_tree
*sub_tree
;
2109 col_set_str(pinfo
->cinfo
, COL_INFO
, "FDA Idle Response");
2116 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
2117 ett_ff_fda_idle_rsp
, NULL
, "FDA Idle Response");
2119 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
2126 * 6.5.1.2.3. Error Message Parameters
2129 dissect_ff_msg_fda_idle_err(tvbuff_t
*tvb
, int offset
,
2130 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
2132 proto_tree
*sub_tree
;
2135 const char *error_code
;
2137 col_set_str(pinfo
->cinfo
, COL_INFO
, "FDA Idle Error");
2143 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
2144 ett_ff_fda_idle_err
, NULL
, "FDA Idle Error");
2146 ErrorClass
= tvb_get_uint8(tvb
, offset
);
2147 proto_tree_add_item(sub_tree
,
2148 hf_ff_fda_idle_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2152 ErrorCode
= tvb_get_uint8(tvb
, offset
);
2153 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
2154 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fda_idle_err_err_code
,
2155 tvb
, offset
, 1, ErrorCode
,
2156 "%s (%u)", error_code
, ErrorCode
);
2160 proto_tree_add_item(sub_tree
,
2161 hf_ff_fda_idle_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2165 proto_tree_add_item(sub_tree
,
2166 hf_ff_fda_idle_err_additional_desc
, tvb
, offset
, 16, ENC_ASCII
);
2171 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
2178 * 6.5.2.1. SM Find Tag Query (Unconfirmed Service Id = 1)
2179 * 6.5.2.1.1. Request Message Parameters
2182 dissect_ff_msg_sm_find_tag_query_req(tvbuff_t
*tvb
, int offset
,
2183 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
2185 proto_tree
*sub_tree
;
2187 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Find Tag Query Request");
2193 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
2194 ett_ff_sm_find_tag_query_req
, NULL
, "SM Find Tag Query Request");
2196 proto_tree_add_item(sub_tree
,
2197 hf_ff_sm_find_tag_query_req_query_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2201 proto_tree_add_item(sub_tree
, hf_ff_reserved24
, tvb
, offset
, 3, ENC_BIG_ENDIAN
);
2205 proto_tree_add_item(sub_tree
,
2206 hf_ff_sm_find_tag_query_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2210 proto_tree_add_item(sub_tree
,
2211 hf_ff_sm_find_tag_query_req_tag
, tvb
, offset
, 32, ENC_ASCII
);
2215 proto_tree_add_item(sub_tree
,
2216 hf_ff_sm_find_tag_query_req_vfd_tag
, tvb
, offset
, 32, ENC_ASCII
);
2221 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
2228 * 6.5.2.2. SM Find Tag Reply (Unconfirmed Service Id = 2)
2229 * 6.5.2.2.1. Request Message Parameters
2232 dissect_ff_msg_sm_find_tag_reply_req_dup_detection_state(tvbuff_t
*tvb
,
2233 int offset
, proto_tree
*tree
)
2236 * Bits 3-8: Reserved, set to 0.
2237 * Bit 2: 1 = Duplicate PD Tag Detected
2238 * 0 = Duplicate PD Tag Not Detected
2239 * Bit 1: 1 = Duplicate Device Index Detected
2240 * 0 = Duplicate Device Index Not Detected
2242 static int * const dup_flags
[] = {
2243 &hf_ff_sm_find_tag_reply_dup_reserved
,
2244 &hf_ff_sm_find_tag_reply_dup_pd_tag
,
2245 &hf_ff_sm_find_tag_reply_dup_device
,
2248 proto_tree_add_bitmask(tree
, tvb
, offset
, hf_ff_sm_find_tag_reply_dup
, ett_ff_sm_find_tag_reply_req_dup_detection_state
, dup_flags
, ENC_BIG_ENDIAN
);
2254 dissect_ff_msg_sm_find_tag_reply_req_list_of_fda_addr_selectors(tvbuff_t
*tvb
,
2255 int offset
, proto_tree
*tree
, uint16_t value
)
2257 proto_tree
*sub_tree
;
2264 sub_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 2 * value
,
2265 ett_ff_sm_find_tag_reply_req_list_of_fda_addr_selectors
, NULL
,
2266 "List of FDA Address Selectors (%u bytes)", 2 * value
);
2268 for (d
= 0; d
< value
; d
++) {
2269 proto_tree_add_item(sub_tree
,
2270 hf_ff_sm_find_tag_reply_req_fda_addr_selector
,
2271 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2280 dissect_ff_msg_sm_find_tag_reply_req(tvbuff_t
*tvb
, int offset
,
2281 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
2283 proto_tree
*sub_tree
;
2284 uint16_t NumOfFDAAddrSelectors
;
2286 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Find Tag Reply Request");
2292 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
2293 ett_ff_sm_find_tag_reply_req
, NULL
, "SM Find Tag Reply Request");
2295 proto_tree_add_item(sub_tree
,
2296 hf_ff_sm_find_tag_reply_req_query_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2300 proto_tree_add_item(sub_tree
,
2301 hf_ff_sm_find_tag_reply_req_h1_node_addr
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2305 proto_tree_add_item(sub_tree
,
2306 hf_ff_sm_find_tag_reply_req_fda_addr_link_id
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2310 proto_tree_add_item(sub_tree
,
2311 hf_ff_sm_find_tag_reply_req_vfd_ref
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2315 proto_tree_add_item(sub_tree
,
2316 hf_ff_sm_find_tag_reply_req_od_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2320 proto_tree_add_item(sub_tree
,
2321 hf_ff_sm_find_tag_reply_req_ip_addr
, tvb
, offset
, 16, ENC_NA
);
2325 proto_tree_add_item(sub_tree
,
2326 hf_ff_sm_find_tag_reply_req_od_ver
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2330 proto_tree_add_item(sub_tree
,
2331 hf_ff_sm_find_tag_reply_req_dev_id
, tvb
, offset
, 32, ENC_ASCII
);
2335 proto_tree_add_item(sub_tree
,
2336 hf_ff_sm_find_tag_reply_req_pd_tag
, tvb
, offset
, 32, ENC_ASCII
);
2340 dissect_ff_msg_sm_find_tag_reply_req_dup_detection_state(tvb
,
2345 proto_tree_add_item(sub_tree
,
2346 hf_ff_sm_find_tag_reply_req_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2350 NumOfFDAAddrSelectors
= tvb_get_ntohs(tvb
, offset
);
2351 proto_tree_add_item(sub_tree
,
2352 hf_ff_sm_find_tag_reply_req_num_of_fda_addr_selectors
,
2353 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2357 if (NumOfFDAAddrSelectors
) {
2358 dissect_ff_msg_sm_find_tag_reply_req_list_of_fda_addr_selectors(tvb
,
2359 offset
, sub_tree
, NumOfFDAAddrSelectors
);
2360 offset
+= 2 * NumOfFDAAddrSelectors
;
2361 length
-= 2 * NumOfFDAAddrSelectors
;
2365 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
2372 * 6.5.2.3. SM Identify (Confirmed Service Id = 3)
2373 * 6.5.2.3.1. Request Message Parameters
2376 dissect_ff_msg_sm_id_req(tvbuff_t
*tvb
, int offset
,
2377 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
2379 proto_tree
*sub_tree
;
2381 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Identify Request");
2388 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
2389 ett_ff_sm_id_req
, NULL
, "SM Identify Request");
2391 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
2398 * 6.5.2.3.2. Response Message Parameters
2401 dissect_ff_msg_sm_id_rsp_h1_node_addr(tvbuff_t
*tvb
,
2402 int offset
, proto_tree
*tree
)
2404 proto_tree
*sub_tree
;
2410 sub_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 2,
2411 ett_ff_sm_id_rsp_h1_node_addr
, NULL
, "H1 Node Address Version Number (%u bytes)", 2);
2413 proto_tree_add_item(sub_tree
,
2414 hf_ff_sm_id_rsp_h1_node_addr_ver_num_h1_node_addr
,
2415 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2418 proto_tree_add_item(sub_tree
,
2419 hf_ff_sm_id_rsp_h1_node_addr_ver_num_ver_num
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2426 dissect_ff_msg_sm_id_rsp_entries_node_addr(tvbuff_t
*tvb
,
2427 int offset
, proto_tree
*tree
, uint32_t value
)
2429 proto_tree
*sub_tree
;
2436 sub_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 4 * value
,
2437 ett_ff_sm_id_rsp_entries_node_addr
, NULL
, "Version Number List (%u bytes)", 4 * value
);
2439 for (d
= 0; d
< value
* 2; d
++) {
2440 dissect_ff_msg_sm_id_rsp_h1_node_addr(tvb
, offset
, sub_tree
);
2448 dissect_ff_msg_sm_id_rsp_h1_live_list(tvbuff_t
*tvb
,
2449 int offset
, proto_tree
*tree
)
2451 proto_tree
*sub_tree
;
2457 sub_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 4,
2458 ett_ff_sm_id_rsp_h1_live_list
, NULL
, "H1 Live-list Version Number (%u bytes)", 4);
2460 proto_tree_add_item(sub_tree
,
2461 hf_ff_sm_id_rsp_h1_live_list_h1_link_id
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2464 proto_tree_add_item(sub_tree
,
2465 hf_ff_sm_id_rsp_h1_live_list_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2468 proto_tree_add_item(sub_tree
,
2469 hf_ff_sm_id_rsp_h1_live_list_ver_num
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2476 dissect_ff_msg_sm_id_rsp_entries_link_id(tvbuff_t
*tvb
,
2477 int offset
, proto_tree
*tree
, uint32_t value
)
2479 proto_tree
*sub_tree
;
2486 sub_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 4 * value
,
2487 ett_ff_sm_id_rsp_entries_h1_live_list
, NULL
, "Version Number List (%u bytes)", 4 * value
);
2489 for (d
= 0; d
< value
; d
++) {
2490 dissect_ff_msg_sm_id_rsp_h1_live_list(tvb
, offset
, sub_tree
);
2498 dissect_ff_msg_sm_id_rsp_smk_state(tvbuff_t
*tvb
,
2499 int offset
, proto_tree
*tree
)
2508 * 0 = Not Synchronized with SNTP Time Server
2509 * 1 = Synchronized with SNTP Time Server
2511 static int * const state_flags
[] = {
2512 &hf_ff_sm_id_rsp_smk_state_name
,
2513 &hf_ff_sm_id_rsp_smk_state_sync
,
2516 proto_tree_add_bitmask(tree
, tvb
, offset
, hf_ff_sm_id_rsp_smk_state
, ett_ff_sm_id_rsp_smk_state
, state_flags
, ENC_BIG_ENDIAN
);
2522 dissect_ff_msg_sm_id_rsp_dev_type(tvbuff_t
*tvb
,
2523 int offset
, proto_tree
*tree
)
2526 * Bit 8 = Linking Device
2527 * Bit 7 = I/O Gateway
2528 * Bit 6 = HSE Field Device
2531 * Bits 1 - 3 Redundant Device Type Capability*
2532 * 0 = Type D-1 Device
2533 * 1 = Type D-2 Device
2534 * 2 = Type D-3 Device
2535 * 3 = Type D-3 and Type D-2 Device
2537 * 5 = Type D-2 and Type D-1 Device
2538 * 6 = Type D-3 and Type D-1 Device
2539 * 7 = Type D-3 and D-2 and Type D-1 Device
2541 static int * const device_flags
[] = {
2542 &hf_ff_sm_id_rsp_dev_type_link
,
2543 &hf_ff_sm_id_rsp_dev_type_iogateway
,
2544 &hf_ff_sm_id_rsp_dev_type_hse
,
2545 &hf_ff_sm_id_rsp_dev_type_h1
,
2546 &hf_ff_sm_id_rsp_dev_type_reserved
,
2547 &hf_ff_sm_id_rsp_dev_type_redundant_caps
,
2551 proto_tree_add_bitmask(tree
, tvb
, offset
, hf_ff_sm_id_rsp_dev_type
, ett_ff_sm_id_rsp_dev_type
, device_flags
, ENC_BIG_ENDIAN
);
2557 dissect_ff_msg_sm_id_rsp_dev_redundancy_state(tvbuff_t
*tvb
,
2558 int offset
, proto_tree
*tree
)
2561 * Bits 5-8 = Reserved, set to 0
2562 * Bits 3 & 4 Device Redundancy Role
2566 * Bits 1 & 2 Assigned Redundant Device Type*
2567 * 0 = Type D-1 Device
2568 * 1 = Type D-2 Device
2569 * 2 = Type D-3 Device
2571 static int * const state_flags
[] = {
2572 &hf_ff_sm_id_rsp_dev_redundancy_state_reserved
,
2573 &hf_ff_sm_id_rsp_dev_redundancy_state_role
,
2574 &hf_ff_sm_id_rsp_dev_redundancy_state_type
,
2578 proto_tree_add_bitmask(tree
, tvb
, offset
, hf_ff_sm_id_rsp_dev_redundancy_state
, ett_ff_sm_id_rsp_dev_redundancy_state
, state_flags
, ENC_BIG_ENDIAN
);
2584 dissect_ff_msg_sm_id_rsp_dup_detection_state(tvbuff_t
*tvb
,
2585 int offset
, proto_tree
*tree
)
2588 * Bits 3-8: Reserved, set to 0.
2589 * Bit 2: 1 = Duplicate PD Tag Detected
2590 * 0 = Duplicate PD Tag Not Detected
2591 * Bit 1: 1 = Duplicate Device Index Detected
2592 * 0 = Duplicate Device Index Not Detected
2594 static int * const dup_flags
[] = {
2595 &hf_ff_sm_id_rsp_dup_detection_state_reserved
,
2596 &hf_ff_sm_id_rsp_dup_detection_state_pd_tag
,
2597 &hf_ff_sm_id_rsp_dup_detection_state_device
,
2601 proto_tree_add_bitmask(tree
, tvb
, offset
, hf_ff_sm_id_rsp_dup_detection_state
, ett_ff_sm_id_rsp_dup_detection_state
, dup_flags
, ENC_BIG_ENDIAN
);
2607 dissect_ff_msg_sm_id_rsp(tvbuff_t
*tvb
, int offset
,
2608 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
, uint32_t FDAAddress
)
2610 proto_tree
*sub_tree
;
2612 uint32_t NumOfEntriesInVerNumList
;
2614 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Identify Response");
2620 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_sm_id_rsp
, NULL
, "SM Identify Response");
2622 dissect_ff_msg_sm_id_rsp_smk_state(tvb
, offset
, sub_tree
);
2626 dissect_ff_msg_sm_id_rsp_dev_type(tvb
, offset
, sub_tree
);
2630 dissect_ff_msg_sm_id_rsp_dev_redundancy_state(tvb
,
2635 dissect_ff_msg_sm_id_rsp_dup_detection_state(tvb
,
2640 proto_tree_add_item(sub_tree
,
2641 hf_ff_sm_id_rsp_dev_idx
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2645 proto_tree_add_item(sub_tree
,
2646 hf_ff_sm_id_rsp_max_dev_idx
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2650 proto_tree_add_item(sub_tree
,
2651 hf_ff_sm_id_rsp_operational_ip_addr
, tvb
, offset
, 16, ENC_NA
);
2655 proto_tree_add_item(sub_tree
,
2656 hf_ff_sm_id_rsp_dev_id
, tvb
, offset
, 32, ENC_ASCII
);
2660 proto_tree_add_item(sub_tree
,
2661 hf_ff_sm_id_rsp_pd_tag
, tvb
, offset
, 32, ENC_ASCII
);
2665 proto_tree_add_item(sub_tree
,
2666 hf_ff_sm_id_rsp_hse_repeat_time
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2670 proto_tree_add_item(sub_tree
,
2671 hf_ff_sm_id_rsp_lr_port
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2675 proto_tree_add_item(sub_tree
,
2676 hf_ff_sm_id_rsp_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2680 proto_tree_add_item(sub_tree
,
2681 hf_ff_sm_id_rsp_annunc_ver_num
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2685 proto_tree_add_item(sub_tree
,
2686 hf_ff_sm_id_rsp_hse_dev_ver_num
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2690 NumOfEntriesInVerNumList
= tvb_get_ntohl(tvb
, offset
);
2691 proto_tree_add_item(sub_tree
,
2692 hf_ff_sm_id_rsp_num_of_entries
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2696 if (NumOfEntriesInVerNumList
) {
2698 /* 11111111 11111111 00000000 00000000 */
2699 LinkId
= (uint16_t)(FDAAddress
>> 16);
2701 dissect_ff_msg_sm_id_rsp_entries_node_addr(tvb
,
2702 offset
, sub_tree
, NumOfEntriesInVerNumList
);
2704 dissect_ff_msg_sm_id_rsp_entries_link_id(tvb
,
2705 offset
, sub_tree
, NumOfEntriesInVerNumList
);
2708 offset
+= 4 * NumOfEntriesInVerNumList
;
2709 length
-= 4 * NumOfEntriesInVerNumList
;
2713 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
2720 * 6.5.2.3.3. Error Message Parameters
2723 dissect_ff_msg_sm_id_err(tvbuff_t
*tvb
, int offset
,
2724 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
2726 proto_tree
*sub_tree
;
2729 const char *error_code
;
2731 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Identify Error");
2737 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_sm_id_err
, NULL
, "SM Identify Error");
2739 ErrorClass
= tvb_get_uint8(tvb
, offset
);
2740 proto_tree_add_item(sub_tree
,
2741 hf_ff_sm_id_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2745 ErrorCode
= tvb_get_uint8(tvb
, offset
);
2746 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
2747 proto_tree_add_uint_format_value(sub_tree
, hf_ff_sm_id_err_err_code
,
2748 tvb
, offset
, 1, ErrorCode
,
2749 "%s (%u)", error_code
, ErrorCode
);
2753 proto_tree_add_item(sub_tree
,
2754 hf_ff_sm_id_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2758 proto_tree_add_item(sub_tree
,
2759 hf_ff_sm_id_err_additional_desc
, tvb
, offset
, 16, ENC_ASCII
);
2764 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
2771 * 6.5.2.4. SM Clear Address (Confirmed Service Id = 12)
2772 * 6.5.2.4.1. Request Message Parameters
2775 dissect_ff_msg_sm_clear_addr_req(tvbuff_t
*tvb
, int offset
,
2776 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
2778 proto_tree
*sub_tree
;
2780 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Clear Address Request");
2786 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
2787 ett_ff_sm_id_err
, NULL
, "SM Clear Address Request");
2789 proto_tree_add_item(sub_tree
,
2790 hf_ff_sm_clear_addr_req_dev_id
, tvb
, offset
, 32, ENC_ASCII
);
2794 proto_tree_add_item(sub_tree
,
2795 hf_ff_sm_clear_addr_req_pd_tag
, tvb
, offset
, 32, ENC_ASCII
);
2799 proto_tree_add_item(sub_tree
,
2800 hf_ff_sm_clear_addr_req_interface_to_clear
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2804 proto_tree_add_item(sub_tree
, hf_ff_reserved24
, tvb
, offset
, 3, ENC_BIG_ENDIAN
);
2809 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
2816 * 6.5.2.4.2. Response Message Parameters
2819 dissect_ff_msg_sm_clear_addr_rsp(tvbuff_t
*tvb
, int offset
,
2820 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
2822 proto_tree
*sub_tree
;
2824 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Clear Address Response");
2831 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
2832 ett_ff_sm_clear_addr_rsp
, NULL
, "SM Clear Address Response");
2834 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
2841 * 6.5.2.4.3. Error Message Parameters
2844 dissect_ff_msg_sm_clear_addr_err(tvbuff_t
*tvb
, int offset
,
2845 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
2847 proto_tree
*sub_tree
;
2850 const char *error_code
;
2852 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Clear Address Error");
2858 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
2859 ett_ff_sm_clear_addr_err
, NULL
, "SM Clear Address Error");
2861 ErrorClass
= tvb_get_uint8(tvb
, offset
);
2862 proto_tree_add_item(sub_tree
,
2863 hf_ff_sm_clear_addr_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2867 ErrorCode
= tvb_get_uint8(tvb
, offset
);
2868 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
2869 proto_tree_add_uint_format_value(sub_tree
, hf_ff_sm_clear_addr_err_err_code
,
2870 tvb
, offset
, 1, ErrorCode
,
2871 "%s (%u)", error_code
, ErrorCode
);
2875 proto_tree_add_item(sub_tree
,
2876 hf_ff_sm_clear_addr_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2880 proto_tree_add_item(sub_tree
,
2881 hf_ff_sm_clear_addr_err_additional_desc
, tvb
, offset
, 16, ENC_ASCII
);
2886 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
2893 * 6.5.2.5. SM Set Assignment Info (Confirmed Service Id = 14)
2894 * 6.5.2.5.1. Request Message Parameters
2897 dissect_ff_msg_sm_set_assign_info_req_dev_redundancy_state(tvbuff_t
*tvb
,
2898 int offset
, proto_tree
*tree
)
2901 * Bits 5-8 = Reserved, set to 0
2902 * Bits 3 & 4 Type D-2 Device Redundancy Role
2904 * 1 = Type D-2 Device Primary
2905 * 2 = Type D-2 Device Secondary
2906 * Bits 1 & 2 Assigned Device Redundancy Type
2907 * 0 = Type D-1 Device
2908 * 1 = Type D-2 Device
2909 * 2 = Type D-3 Device
2911 static int * const state_flags
[] = {
2912 &hf_ff_sm_set_assign_info_req_dev_redundancy_state_reserved
,
2913 &hf_ff_sm_set_assign_info_req_dev_redundancy_state_role
,
2914 &hf_ff_sm_set_assign_info_req_dev_redundancy_state_type
,
2918 proto_tree_add_bitmask(tree
, tvb
, offset
, hf_ff_sm_set_assign_info_req_dev_redundancy_state
, ett_ff_sm_set_assign_info_req_dev_redundancy_state
, state_flags
, ENC_BIG_ENDIAN
);
2924 dissect_ff_msg_sm_set_assign_info_req_clear_dup_detection_state(tvbuff_t
*tvb
,
2925 int offset
, proto_tree
*tree
)
2928 * Bits 3-8: Reserved, set to 0.
2929 * Bit 2: 1 = Do not clear Duplicate PD Tag Detected
2930 * 0 = Clear Duplicate PD Tag Detected
2931 * Bit 1: 1 = Do not clear Duplicate Device Index Detected
2932 * 0 = Clear Duplicate Device Index Detected
2934 static int * const state_flags
[] = {
2935 &hf_ff_sm_set_assign_info_req_clear_dup_detection_state_reserved
,
2936 &hf_ff_sm_set_assign_info_req_clear_dup_detection_state_pd_tag
,
2937 &hf_ff_sm_set_assign_info_req_clear_dup_detection_state_device_index
,
2941 proto_tree_add_bitmask(tree
, tvb
, offset
, hf_ff_sm_set_assign_info_req_clear_dup_detection_state
, ett_ff_sm_set_assign_info_req_clear_dup_detection_state
, state_flags
, ENC_BIG_ENDIAN
);
2947 dissect_ff_msg_sm_set_assign_info_req(tvbuff_t
*tvb
, int offset
,
2948 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
2950 proto_tree
*sub_tree
;
2952 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Set Assignment Info Request");
2958 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
2959 ett_ff_sm_set_assign_info_req
, NULL
, "SM Set Assignment Info Request");
2961 proto_tree_add_item(sub_tree
,
2962 hf_ff_sm_set_assign_info_req_dev_id
, tvb
, offset
, 32, ENC_ASCII
);
2966 proto_tree_add_item(sub_tree
,
2967 hf_ff_sm_set_assign_info_req_pd_tag
, tvb
, offset
, 32, ENC_ASCII
);
2971 proto_tree_add_item(sub_tree
,
2972 hf_ff_sm_set_assign_info_req_h1_new_addr
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2976 dissect_ff_msg_sm_set_assign_info_req_dev_redundancy_state(tvb
,
2981 proto_tree_add_item(sub_tree
,
2982 hf_ff_sm_set_assign_info_req_lr_port
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2986 proto_tree_add_item(sub_tree
,
2987 hf_ff_sm_set_assign_info_req_hse_repeat_time
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2991 proto_tree_add_item(sub_tree
,
2992 hf_ff_sm_set_assign_info_req_dev_idx
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2996 proto_tree_add_item(sub_tree
,
2997 hf_ff_sm_set_assign_info_req_max_dev_idx
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3001 proto_tree_add_item(sub_tree
,
3002 hf_ff_sm_set_assign_info_req_operational_ip_addr
,
3003 tvb
, offset
, 16, ENC_NA
);
3007 proto_tree_add_item(sub_tree
, hf_ff_reserved24
, tvb
, offset
, 3, ENC_BIG_ENDIAN
);
3011 dissect_ff_msg_sm_set_assign_info_req_clear_dup_detection_state(tvb
,
3017 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
3024 * 6.5.2.5.2. Response Message Parameters
3027 dissect_ff_msg_sm_set_assign_info_rsp(tvbuff_t
*tvb
, int offset
,
3028 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
3030 proto_tree
*sub_tree
;
3032 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Set Assignment Info Response");
3038 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
3039 ett_ff_sm_set_assign_info_rsp
, NULL
, "SM Set Assignment Info Response");
3041 proto_tree_add_item(sub_tree
,
3042 hf_ff_sm_set_assign_info_rsp_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3046 proto_tree_add_item(sub_tree
,
3047 hf_ff_sm_set_assign_info_rsp_max_dev_idx
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3051 proto_tree_add_item(sub_tree
,
3052 hf_ff_sm_set_assign_info_rsp_hse_repeat_time
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
3057 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
3064 * 6.5.2.5.3. Error Message Parameters
3067 dissect_ff_msg_sm_set_assign_info_err(tvbuff_t
*tvb
, int offset
,
3068 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
3070 proto_tree
*sub_tree
;
3073 const char *error_code
;
3075 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Set Assignment Info Error");
3081 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
3082 ett_ff_sm_set_assign_info_err
, NULL
, "SM Set Assignment Info Error");
3084 ErrorClass
= tvb_get_uint8(tvb
, offset
);
3085 proto_tree_add_item(sub_tree
,
3086 hf_ff_sm_set_assign_info_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3090 ErrorCode
= tvb_get_uint8(tvb
, offset
);
3091 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
3092 proto_tree_add_uint_format_value(sub_tree
,
3093 hf_ff_sm_set_assign_info_err_err_code
,
3094 tvb
, offset
, 1, ErrorCode
,
3095 "%s (%u)", error_code
, ErrorCode
);
3099 proto_tree_add_item(sub_tree
,
3100 hf_ff_sm_set_assign_info_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3104 proto_tree_add_item(sub_tree
,
3105 hf_ff_sm_set_assign_info_err_additional_desc
, tvb
, offset
, 16, ENC_ASCII
);
3110 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
3117 * 6.5.2.6. SM Clear Assignment Info (Confirmed Service Id = 15)
3118 * 6.5.2.6.1. Request Message Parameters
3121 dissect_ff_msg_sm_clear_assign_info_req(tvbuff_t
*tvb
, int offset
,
3122 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
3124 proto_tree
*sub_tree
;
3126 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Clear Assignment Info Request");
3132 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
3133 ett_ff_sm_clear_assign_info_req
, NULL
, "SM Clear Assignment Info Request");
3135 proto_tree_add_item(sub_tree
,
3136 hf_ff_sm_clear_assign_info_req_dev_id
, tvb
, offset
, 32, ENC_ASCII
);
3140 proto_tree_add_item(sub_tree
,
3141 hf_ff_sm_clear_assign_info_req_pd_tag
, tvb
, offset
, 32, ENC_ASCII
);
3146 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
3153 * 6.5.2.6.2. Response Message Parameters
3156 dissect_ff_msg_sm_clear_assign_info_rsp(tvbuff_t
*tvb
, int offset
,
3157 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
3159 proto_tree
*sub_tree
;
3161 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Clear Assignment Info Response");
3168 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
3169 ett_ff_sm_clear_assign_info_rsp
, NULL
, "SM Clear Assignment Info Response");
3171 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
3178 * 6.5.2.6.3. Error Message Parameters
3181 dissect_ff_msg_sm_clear_assign_info_err(tvbuff_t
*tvb
, int offset
,
3182 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
3184 proto_tree
*sub_tree
;
3187 const char *error_code
;
3189 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Clear Assignment Info Error");
3195 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
3196 ett_ff_sm_clear_assign_info_err
, NULL
, "SM Clear Assignment Info Error");
3198 ErrorClass
= tvb_get_uint8(tvb
, offset
);
3199 proto_tree_add_item(sub_tree
,
3200 hf_ff_sm_clear_assign_info_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3204 ErrorCode
= tvb_get_uint8(tvb
, offset
);
3205 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
3206 proto_tree_add_uint_format_value(sub_tree
,
3207 hf_ff_sm_clear_assign_info_err_err_code
,
3208 tvb
, offset
, 1, ErrorCode
,
3209 "%s (%u)", error_code
, ErrorCode
);
3213 proto_tree_add_item(sub_tree
,
3214 hf_ff_sm_clear_assign_info_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3218 proto_tree_add_item(sub_tree
,
3219 hf_ff_sm_clear_assign_info_err_additional_desc
, tvb
, offset
, 16, ENC_ASCII
);
3224 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
3231 * 6.5.2.7. SM Device Annunciation (Unconfirmed Service Id = 16)
3232 * 6.5.2.7.1. Request Message Parameters
3235 dissect_ff_msg_sm_dev_annunc_req_h1_node_addr(tvbuff_t
*tvb
,
3236 int offset
, proto_tree
*tree
)
3238 proto_tree
*sub_tree
;
3244 sub_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 2,
3245 ett_ff_sm_dev_annunc_req_h1_node_addr
, NULL
, "H1 Node Address Version Number (%u bytes)", 2);
3247 proto_tree_add_item(sub_tree
,
3248 hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_h1_node_addr
,
3249 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3252 proto_tree_add_item(sub_tree
,
3253 hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_ver_num
,
3254 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3261 dissect_ff_msg_sm_dev_annunc_req_entries_node_addr(tvbuff_t
*tvb
,
3262 int offset
, proto_tree
*tree
, uint32_t value
)
3264 proto_tree
*sub_tree
;
3271 sub_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 4 * value
,
3272 ett_ff_sm_dev_annunc_req_entries_node_addr
, NULL
, "Version Number List (%u bytes)", 4 * value
);
3274 for (d
= 0; d
< value
* 2; d
++) {
3275 dissect_ff_msg_sm_dev_annunc_req_h1_node_addr(tvb
, offset
, sub_tree
);
3283 dissect_ff_msg_sm_dev_annunc_req_h1_live_list(tvbuff_t
*tvb
,
3284 int offset
, proto_tree
*tree
)
3286 proto_tree
*sub_tree
;
3292 sub_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 4,
3293 ett_ff_sm_dev_annunc_req_h1_live_list
, NULL
, "H1 Live-list Version Number (%u bytes)", 4);
3295 proto_tree_add_item(sub_tree
,
3296 hf_ff_sm_dev_annunc_req_h1_live_list_h1_link_id
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3299 proto_tree_add_item(sub_tree
,
3300 hf_ff_sm_dev_annunc_req_h1_live_list_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3303 proto_tree_add_item(sub_tree
,
3304 hf_ff_sm_dev_annunc_req_h1_live_list_ver_num
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3311 dissect_ff_msg_sm_dev_annunc_req_entries_link_id(tvbuff_t
*tvb
,
3312 int offset
, proto_tree
*tree
, uint32_t value
)
3314 proto_tree
*sub_tree
;
3321 sub_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 4 * value
,
3322 ett_ff_sm_dev_annunc_req_entries_h1_live_list
, NULL
, "Version Number List (%u bytes)", 4 * value
);
3324 for (d
= 0; d
< value
; d
++) {
3325 dissect_ff_msg_sm_dev_annunc_req_h1_live_list(tvb
, offset
, sub_tree
);
3333 dissect_ff_msg_sm_dev_annunc_req_smk_state(tvbuff_t
*tvb
,
3334 int offset
, proto_tree
*tree
)
3343 * 0 = Not Synchronized with SNTP Time Server
3344 * 1 = Synchronized with SNTP Time Server
3346 static int * const state_flags
[] = {
3347 &hf_ff_sm_dev_annunc_req_smk_state_name
,
3348 &hf_ff_sm_dev_annunc_req_smk_state_sync
,
3352 proto_tree_add_bitmask(tree
, tvb
, offset
, hf_ff_sm_dev_annunc_req_smk_state
, ett_ff_sm_dev_annunc_req_smk_state
, state_flags
, ENC_BIG_ENDIAN
);
3358 dissect_ff_msg_sm_dev_annunc_req_dev_type(tvbuff_t
*tvb
,
3359 int offset
, proto_tree
*tree
)
3362 * Bit 8 = Linking Device
3363 * Bit 7 = I/O Gateway
3364 * Bit 6 = HSE Field Device
3367 * Bits 1 - 3 Redundant Device Type Capability*
3368 * 0 = Type D-1 Device
3369 * 1 = Type D-2 Device
3370 * 2 = Type D-3 Device
3371 * 3 = Type D-3 and Type D-2 Device
3373 * 5 = Type D-2 and Type D-1 Device
3374 * 6 = Type D-3 and Type D-1 Device
3375 * 7 = Type D-3 and D-2 and Type D-1 Device
3377 static int * const device_flags
[] = {
3378 &hf_ff_sm_dev_annunc_req_dev_type_link
,
3379 &hf_ff_sm_dev_annunc_req_dev_type_iogateway
,
3380 &hf_ff_sm_dev_annunc_req_dev_type_hse
,
3381 &hf_ff_sm_dev_annunc_req_dev_type_h1
,
3382 &hf_ff_sm_dev_annunc_req_dev_type_reserved
,
3383 &hf_ff_sm_dev_annunc_req_dev_type_redundant_caps
,
3387 proto_tree_add_bitmask(tree
, tvb
, offset
, hf_ff_sm_dev_annunc_req_dev_type
, ett_ff_sm_dev_annunc_req_dev_type
, device_flags
, ENC_BIG_ENDIAN
);
3393 dissect_ff_msg_sm_dev_annunc_req_dev_redundancy_state(tvbuff_t
*tvb
,
3394 int offset
, proto_tree
*tree
)
3397 * Bits 5-8 = Reserved, set to 0
3398 * Bits 3 & 4 Device Redundancy Role
3402 * Bits 1 & 2 Assigned Redundant Device Type*
3403 * 0 = Type D-1 Device
3404 * 1 = Type D-2 Device
3405 * 2 = Type D-3 Device
3407 static int * const device_flags
[] = {
3408 &hf_ff_sm_dev_annunc_req_dev_redundancy_state_reserved
,
3409 &hf_ff_sm_dev_annunc_req_dev_redundancy_state_role
,
3410 &hf_ff_sm_dev_annunc_req_dev_redundancy_state_type
,
3414 proto_tree_add_bitmask(tree
, tvb
, offset
, hf_ff_sm_dev_annunc_req_dev_redundancy_state
, ett_ff_sm_dev_annunc_req_dev_redundancy_state
, device_flags
, ENC_BIG_ENDIAN
);
3420 dissect_ff_msg_sm_dev_annunc_req_dup_detection_state(tvbuff_t
*tvb
,
3421 int offset
, proto_tree
*tree
)
3424 * Bits 3-8: Reserved, set to 0.
3425 * Bit 2: 1 = Duplicate PD Tag Detected
3426 * 0 = Duplicate PD Tag Not Detected
3427 * Bit 1: 1 = Duplicate Device Index Detected
3428 * 0 = Duplicate Device Index Not Detected
3430 static int * const state_flags
[] = {
3431 &hf_ff_sm_dev_annunc_req_dup_detection_state_reserved
,
3432 &hf_ff_sm_dev_annunc_req_dup_detection_state_pd_tag
,
3433 &hf_ff_sm_dev_annunc_req_dup_detection_state_device
,
3437 proto_tree_add_bitmask(tree
, tvb
, offset
, hf_ff_sm_dev_annunc_req_dup_detection_state
, ett_ff_sm_dev_annunc_req_dup_detection_state
, state_flags
, ENC_BIG_ENDIAN
);
3443 dissect_ff_msg_sm_dev_annunc_req(tvbuff_t
*tvb
, int offset
,
3444 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
, uint32_t FDAAddress
)
3446 proto_tree
*sub_tree
;
3448 uint32_t NumOfEntriesInVerNumList
;
3450 col_set_str(pinfo
->cinfo
, COL_INFO
, "SM Device Annunciation Request");
3456 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
3457 ett_ff_sm_dev_annunc_req
, NULL
, "SM Device Annunciation Request");
3460 dissect_ff_msg_sm_dev_annunc_req_smk_state(tvb
, offset
, sub_tree
);
3464 dissect_ff_msg_sm_dev_annunc_req_dev_type(tvb
,
3469 dissect_ff_msg_sm_dev_annunc_req_dev_redundancy_state(tvb
,
3474 dissect_ff_msg_sm_dev_annunc_req_dup_detection_state(tvb
,
3479 proto_tree_add_item(sub_tree
,
3480 hf_ff_sm_dev_annunc_req_dev_idx
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3484 proto_tree_add_item(sub_tree
,
3485 hf_ff_sm_dev_annunc_req_max_dev_idx
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3489 proto_tree_add_item(sub_tree
,
3490 hf_ff_sm_dev_annunc_req_operational_ip_addr
, tvb
, offset
, 16, ENC_NA
);
3494 proto_tree_add_item(sub_tree
,
3495 hf_ff_sm_dev_annunc_req_dev_id
, tvb
, offset
, 32, ENC_ASCII
);
3499 proto_tree_add_item(sub_tree
,
3500 hf_ff_sm_dev_annunc_req_pd_tag
, tvb
, offset
, 32, ENC_ASCII
);
3504 proto_tree_add_item(sub_tree
,
3505 hf_ff_sm_dev_annunc_req_hse_repeat_time
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
3509 proto_tree_add_item(sub_tree
,
3510 hf_ff_sm_dev_annunc_req_lr_port
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3514 proto_tree_add_item(sub_tree
,
3515 hf_ff_sm_dev_annunc_req_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3519 proto_tree_add_item(sub_tree
,
3520 hf_ff_sm_dev_annunc_req_annunc_ver_num
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
3524 proto_tree_add_item(sub_tree
,
3525 hf_ff_sm_dev_annunc_req_hse_dev_ver_num
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
3529 NumOfEntriesInVerNumList
= tvb_get_ntohl(tvb
, offset
);
3530 proto_tree_add_item(sub_tree
,
3531 hf_ff_sm_dev_annunc_req_num_of_entries
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
3535 if (NumOfEntriesInVerNumList
) {
3537 /* 11111111 11111111 00000000 00000000 */
3538 LinkId
= (uint16_t)(FDAAddress
>> 16);
3540 dissect_ff_msg_sm_dev_annunc_req_entries_node_addr(tvb
,
3541 offset
, sub_tree
, NumOfEntriesInVerNumList
);
3543 dissect_ff_msg_sm_dev_annunc_req_entries_link_id(tvb
,
3544 offset
, sub_tree
, NumOfEntriesInVerNumList
);
3547 offset
+= 4 * NumOfEntriesInVerNumList
;
3548 length
-= 4 * NumOfEntriesInVerNumList
;
3552 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
3559 * 6.5.3.2. FMS Initiate (Confirmed Service Id = 96)
3560 * 6.5.3.2.1. Request Message Parameters
3563 dissect_ff_msg_fms_init_req(tvbuff_t
*tvb
, int offset
,
3564 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
3566 proto_tree
*sub_tree
;
3568 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Request");
3574 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_init_req
, NULL
, "FMS Initiate Request");
3576 proto_tree_add_item(sub_tree
,
3577 hf_ff_fms_init_req_conn_opt
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3581 proto_tree_add_item(sub_tree
,
3582 hf_ff_fms_init_req_access_protection_supported_calling
,
3583 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3587 proto_tree_add_item(sub_tree
,
3588 hf_ff_fms_init_req_passwd_and_access_grps_calling
,
3589 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3593 proto_tree_add_item(sub_tree
,
3594 hf_ff_fms_init_req_ver_od_calling
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3598 proto_tree_add_item(sub_tree
,
3599 hf_ff_fms_init_req_prof_num_calling
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3603 proto_tree_add_item(sub_tree
,
3604 hf_ff_fms_init_req_pd_tag
, tvb
, offset
, 32, ENC_ASCII
);
3609 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
3616 * 6.5.3.2.2. Response Message Parameters
3619 dissect_ff_msg_fms_init_rsp(tvbuff_t
*tvb
, int offset
,
3620 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
3622 proto_tree
*sub_tree
;
3624 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Response");
3630 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
3631 ett_ff_fms_init_rep
, NULL
, "FMS Initiate Response");
3633 proto_tree_add_item(sub_tree
,
3634 hf_ff_fms_init_rsp_ver_od_called
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3638 proto_tree_add_item(sub_tree
,
3639 hf_ff_fms_init_rsp_prof_num_called
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3644 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
3651 * 6.5.3.2.3. Error Message Parameters
3654 dissect_ff_msg_fms_init_err(tvbuff_t
*tvb
, int offset
,
3655 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
3657 proto_tree
*sub_tree
;
3660 const char *error_code
;
3662 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Error");
3668 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_init_err
, NULL
, "FMS Initiate Error");
3670 ErrorClass
= tvb_get_uint8(tvb
, offset
);
3671 proto_tree_add_item(sub_tree
,
3672 hf_ff_fms_init_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3676 ErrorCode
= tvb_get_uint8(tvb
, offset
);
3677 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
3678 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_init_err_err_code
,
3679 tvb
, offset
, 1, ErrorCode
,
3680 "%s (%u)", error_code
, ErrorCode
);
3684 proto_tree_add_item(sub_tree
,
3685 hf_ff_fms_init_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3689 proto_tree_add_item(sub_tree
,
3690 hf_ff_fms_init_err_additional_desc
, tvb
, offset
, 16, ENC_ASCII
);
3695 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
3702 * 6.5.3.3. FMS Abort (Unconfirmed Service Id = 112)
3703 * 6.5.3.3.1. Request Message Parameters
3706 dissect_ff_msg_fms_abort_req(tvbuff_t
*tvb
, int offset
,
3707 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
3709 proto_tree
*sub_tree
;
3711 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Abort Request");
3717 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_abort_req
, NULL
, "FMS Abort Request");
3719 proto_tree_add_item(sub_tree
, hf_ff_fms_abort_req_detail
, tvb
, offset
, 16, ENC_NA
);
3723 proto_tree_add_item(sub_tree
,
3724 hf_ff_fms_abort_req_abort_id
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3728 proto_tree_add_item(sub_tree
,
3729 hf_ff_fms_abort_req_reason_code
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3733 proto_tree_add_item(sub_tree
,
3734 hf_ff_fms_abort_req_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3739 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
3746 * 6.5.3.4. FMS Status (Confirmed Service Id = 0)
3747 * 6.5.3.4.1. Request Message Parameters
3750 dissect_ff_msg_fms_status_req(tvbuff_t
*tvb
, int offset
,
3751 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
3753 proto_tree
*sub_tree
;
3755 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Status Request");
3762 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
3763 ett_ff_fms_status_req
, NULL
, "FMS Status Request");
3765 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
3772 * 6.5.3.4.2. Response Message Parameters
3775 dissect_ff_msg_fms_status_rsp(tvbuff_t
*tvb
, int offset
,
3776 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
3778 proto_tree
*sub_tree
;
3780 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Status Response");
3786 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_status_rsp
, NULL
, "FMS Status Response");
3788 proto_tree_add_item(sub_tree
,
3789 hf_ff_fms_status_rsp_logical_status
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3793 proto_tree_add_item(sub_tree
,
3794 hf_ff_fms_status_rsp_physical_status
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3798 proto_tree_add_item(sub_tree
,
3799 hf_ff_fms_status_rsp_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3803 proto_tree_add_item(sub_tree
, hf_ff_fms_status_rsp_local_detail
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
3808 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
3815 * 6.5.3.4.3. Error Message Parameters
3818 dissect_ff_msg_fms_status_err(tvbuff_t
*tvb
, int offset
,
3819 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
3821 proto_tree
*sub_tree
;
3824 const char *error_code
;
3826 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Status Error");
3832 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_status_err
, NULL
, "FMS Status Error");
3834 ErrorClass
= tvb_get_uint8(tvb
, offset
);
3835 proto_tree_add_item(sub_tree
,
3836 hf_ff_fms_status_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3840 ErrorCode
= tvb_get_uint8(tvb
, offset
);
3841 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
3842 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_status_err_err_code
,
3843 tvb
, offset
, 1, ErrorCode
,
3844 "%s (%u)", error_code
, ErrorCode
);
3848 proto_tree_add_item(sub_tree
,
3849 hf_ff_fms_status_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3853 proto_tree_add_item(sub_tree
,
3854 hf_ff_fms_status_err_additional_desc
, tvb
, offset
, 16, ENC_ASCII
);
3859 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
3866 * 6.5.3.5. FMS Unsolicited Status (Unconfirmed Service Id = 1)
3867 * 6.5.3.5.1. Request Message Parameters
3870 dissect_ff_msg_fms_unsolicited_status_req(tvbuff_t
*tvb
, int offset
,
3871 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
3873 proto_tree
*sub_tree
;
3875 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Unsolicited Status Request");
3881 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
3882 ett_ff_fms_unsolicited_status_req
, NULL
, "FMS Unsolicited Status Request");
3884 proto_tree_add_item(sub_tree
,
3885 hf_ff_fms_unsolicited_status_req_logical_status
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3889 proto_tree_add_item(sub_tree
,
3890 hf_ff_fms_unsolicited_status_req_physical_status
,
3891 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
3895 proto_tree_add_item(sub_tree
,
3896 hf_ff_fms_unsolicited_status_req_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
3900 proto_tree_add_item(sub_tree
, hf_ff_fms_unsolicited_status_req_local_detail
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
3905 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
3912 * 6.5.3.6. FMS Identify (Confirmed Service Id = 1)
3913 * 6.5.3.6.1. Request Message Parameters
3916 dissect_ff_msg_fms_id_req(tvbuff_t
*tvb
, int offset
,
3917 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
3919 proto_tree
*sub_tree
;
3921 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Identify Request");
3928 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
3929 ett_ff_fms_id_req
, NULL
, "FMS Identify Request");
3931 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
3938 * 6.5.3.6.2. Response Message Parameters
3941 dissect_ff_msg_fms_id_rsp(tvbuff_t
*tvb
, int offset
,
3942 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
3944 proto_tree
*sub_tree
;
3946 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Identify Response");
3952 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
3953 ett_ff_fms_id_rsp
, NULL
, "FMS Identify Response");
3955 proto_tree_add_item(sub_tree
,
3956 hf_ff_fms_id_rsp_vendor_name
, tvb
, offset
, 32, ENC_ASCII
);
3960 proto_tree_add_item(sub_tree
,
3961 hf_ff_fms_id_rsp_model_name
, tvb
, offset
, 32, ENC_ASCII
);
3965 proto_tree_add_item(sub_tree
,
3966 hf_ff_fms_id_rsp_revision
, tvb
, offset
, 32, ENC_ASCII
);
3971 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
3978 * 6.5.3.6.3. Error Message Parameters
3981 dissect_ff_msg_fms_id_err(tvbuff_t
*tvb
, int offset
,
3982 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
3984 proto_tree
*sub_tree
;
3987 const char *error_code
;
3989 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Identify Error");
3995 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_id_err
, NULL
, "FMS Identify Error");
3997 ErrorClass
= tvb_get_uint8(tvb
, offset
);
3998 proto_tree_add_item(sub_tree
,
3999 hf_ff_fms_id_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4003 ErrorCode
= tvb_get_uint8(tvb
, offset
);
4004 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
4005 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_id_err_err_code
,
4006 tvb
, offset
, 1, ErrorCode
,
4007 "%s (%u)", error_code
, ErrorCode
);
4011 proto_tree_add_item(sub_tree
,
4012 hf_ff_fms_id_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4016 proto_tree_add_item(sub_tree
, hf_ff_fms_id_err_additional_desc
,
4017 tvb
, offset
, 16, ENC_ASCII
);
4022 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4029 * 6.5.3.7. FMS Get OD (Confirmed Service Id = 4)
4030 * 6.5.3.7.1. Request Message Parameters
4033 dissect_ff_msg_fms_get_od_req(tvbuff_t
*tvb
, int offset
,
4034 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4036 proto_tree
*sub_tree
;
4038 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Get OD Request");
4044 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_get_od_req
, NULL
, "FMS Get OD Request");
4046 proto_tree_add_item(sub_tree
,
4047 hf_ff_fms_get_od_req_all_attrs
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4051 proto_tree_add_item(sub_tree
,
4052 hf_ff_fms_get_od_req_start_idx_flag
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4056 proto_tree_add_item(sub_tree
,
4057 hf_ff_fms_get_od_req_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4061 proto_tree_add_item(sub_tree
,
4062 hf_ff_fms_get_od_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
4067 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4074 * 6.5.3.7.2. Response Message Parameters
4077 dissect_ff_msg_fms_get_od_rsp(tvbuff_t
*tvb
, int offset
,
4078 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4080 proto_tree
*sub_tree
;
4082 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Get OD Response");
4088 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_get_od_rsp
, NULL
, "FMS Get OD Response");
4090 proto_tree_add_item(sub_tree
,
4091 hf_ff_fms_get_od_rsp_more_follows
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4095 proto_tree_add_item(sub_tree
,
4096 hf_ff_fms_get_od_rsp_num_of_obj_desc
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4100 proto_tree_add_item(sub_tree
,
4101 hf_ff_fms_get_od_rsp_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4106 proto_tree_add_item(sub_tree
, hf_ff_fms_get_od_rsp_object_descriptions
, tvb
, offset
, length
, ENC_NA
);
4113 * 6.5.3.7.3. Error Message Parameters
4116 dissect_ff_msg_fms_get_od_err(tvbuff_t
*tvb
, int offset
,
4117 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4119 proto_tree
*sub_tree
;
4122 const char *error_code
;
4124 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Get OD Error");
4130 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_get_od_err
, NULL
, "FMS Get OD Error");
4132 ErrorClass
= tvb_get_uint8(tvb
, offset
);
4133 proto_tree_add_item(sub_tree
,
4134 hf_ff_fms_get_od_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4138 ErrorCode
= tvb_get_uint8(tvb
, offset
);
4139 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
4140 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_get_od_err_err_code
,
4141 tvb
, offset
, 1, ErrorCode
,
4142 "%s (%u)", error_code
, ErrorCode
);
4146 proto_tree_add_item(sub_tree
,
4147 hf_ff_fms_get_od_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4151 proto_tree_add_item(sub_tree
, hf_ff_fms_get_od_err_additional_desc
,
4152 tvb
, offset
, 16, ENC_ASCII
);
4157 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4164 * 6.5.3.8. FMS Initiate Put OD (Confirmed Service Id = 28)
4165 * 6.5.3.8.1. Request Message Parameters
4168 dissect_ff_msg_fms_init_put_od_req(tvbuff_t
*tvb
, int offset
,
4169 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4171 proto_tree
*sub_tree
;
4172 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Put OD Request");
4178 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4179 ett_ff_fms_init_put_od_req
, NULL
, "FMS Initiate Put OD Request");
4181 proto_tree_add_item(sub_tree
,
4182 hf_ff_fms_init_put_od_req_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4186 proto_tree_add_item(sub_tree
,
4187 hf_ff_fms_init_put_od_req_consequence
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4192 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4199 * 6.5.3.8.2. Response Message Parameters
4202 dissect_ff_msg_fms_init_put_od_rsp(tvbuff_t
*tvb
, int offset
,
4203 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4205 proto_tree
*sub_tree
;
4207 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Put OD Response");
4214 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4215 ett_ff_fms_init_put_od_rsp
, NULL
, "FMS Initiate Put OD Response");
4217 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4224 * 6.5.3.8.3. Error Message Parameters
4227 dissect_ff_msg_fms_init_put_od_err(tvbuff_t
*tvb
, int offset
,
4228 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4230 proto_tree
*sub_tree
;
4233 const char *error_code
;
4235 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Put OD Error");
4241 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4242 ett_ff_fms_init_put_od_err
, NULL
, "FMS Initiate Put OD Error");
4244 ErrorClass
= tvb_get_uint8(tvb
, offset
);
4245 proto_tree_add_item(sub_tree
,
4246 hf_ff_fms_init_put_od_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4250 ErrorCode
= tvb_get_uint8(tvb
, offset
);
4251 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
4252 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_init_put_od_err_err_code
,
4253 tvb
, offset
, 1, ErrorCode
,
4254 "%s (%u)", error_code
, ErrorCode
);
4258 proto_tree_add_item(sub_tree
,
4259 hf_ff_fms_init_put_od_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4263 proto_tree_add_item(sub_tree
, hf_ff_fms_init_put_od_err_additional_desc
,
4264 tvb
, offset
, 16, ENC_ASCII
);
4269 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4276 * 6.5.3.9. FMS Put OD (Confirmed Service Id = 29)
4277 * 6.5.3.9.1. Request Message Parameters
4280 dissect_ff_msg_fms_put_od_req(tvbuff_t
*tvb
, int offset
,
4281 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4283 proto_tree
*sub_tree
;
4285 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Put OD Request");
4291 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_put_od_req
, NULL
, "FMS Put OD Request");
4293 proto_tree_add_item(sub_tree
,
4294 hf_ff_fms_put_od_req_num_of_obj_desc
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4298 proto_tree_add_item(sub_tree
, hf_ff_reserved24
, tvb
, offset
, 3, ENC_BIG_ENDIAN
);
4302 proto_tree_add_item(sub_tree
, hf_ff_fms_put_od_req_object_descriptions
, tvb
, offset
, length
, ENC_NA
);
4308 * 6.5.3.9.2. Response Message Parameters
4311 dissect_ff_msg_fms_put_od_rsp(tvbuff_t
*tvb
, int offset
,
4312 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4314 proto_tree
*sub_tree
;
4316 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Put OD Response");
4323 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4324 ett_ff_fms_put_od_rsp
, NULL
, "FMS Put OD Response");
4325 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4332 * 6.5.3.9.3. Error Message Parameters
4335 dissect_ff_msg_fms_put_od_err(tvbuff_t
*tvb
, int offset
,
4336 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4338 proto_tree
*sub_tree
;
4341 const char *error_code
;
4343 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Put OD Error");
4349 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4350 ett_ff_fms_put_od_err
, NULL
, "FMS Put OD Error");
4352 ErrorClass
= tvb_get_uint8(tvb
, offset
);
4353 proto_tree_add_item(sub_tree
,
4354 hf_ff_fms_put_od_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4358 ErrorCode
= tvb_get_uint8(tvb
, offset
);
4359 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
4360 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_put_od_err_err_code
,
4361 tvb
, offset
, 1, ErrorCode
,
4362 "%s (%u)", error_code
, ErrorCode
);
4366 proto_tree_add_item(sub_tree
,
4367 hf_ff_fms_put_od_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4371 proto_tree_add_item(sub_tree
, hf_ff_fms_put_od_err_additional_desc
,
4372 tvb
, offset
, 16, ENC_ASCII
);
4377 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4384 * 6.5.3.10. FMS Terminate Put OD (Confirmed Service Id = 30)
4385 * 6.5.3.10.1. Request Message Parameters
4388 dissect_ff_msg_fms_terminate_put_od_req(tvbuff_t
*tvb
, int offset
,
4389 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4391 proto_tree
*sub_tree
;
4393 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Terminate Put OD Request");
4400 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4401 ett_ff_fms_terminate_put_od_req
, NULL
, "FMS Terminate Put OD Request");
4403 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4410 * 6.5.3.10.2. Response Message Parameters
4413 dissect_ff_msg_fms_terminate_put_od_rsp(tvbuff_t
*tvb
, int offset
,
4414 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4416 proto_tree
*sub_tree
;
4418 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Terminate Put OD Response");
4425 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4426 ett_ff_fms_terminate_put_od_rsp
, NULL
, "FMS Terminate Put OD Response");
4428 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4435 * 6.5.3.10.3. Error Message Parameters
4438 dissect_ff_msg_fms_terminate_put_od_err(tvbuff_t
*tvb
, int offset
,
4439 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4441 proto_tree
*sub_tree
;
4444 const char *error_code
;
4446 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Terminate Put OD Error");
4452 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4453 ett_ff_fms_terminate_put_od_err
, NULL
, "FMS Terminate Put OD Error");
4455 proto_tree_add_item(sub_tree
,
4456 hf_ff_fms_terminate_put_od_err_index
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
4460 ErrorClass
= tvb_get_uint8(tvb
, offset
);
4461 proto_tree_add_item(sub_tree
,
4462 hf_ff_fms_terminate_put_od_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4466 ErrorCode
= tvb_get_uint8(tvb
, offset
);
4467 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
4468 proto_tree_add_uint_format_value(sub_tree
,
4469 hf_ff_fms_terminate_put_od_err_err_code
,
4470 tvb
, offset
, 1, ErrorCode
,
4471 "%s (%u)", error_code
, ErrorCode
);
4475 proto_tree_add_item(sub_tree
,
4476 hf_ff_fms_terminate_put_od_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4480 proto_tree_add_item(sub_tree
,
4481 hf_ff_fms_terminate_put_od_err_additional_desc
,
4482 tvb
, offset
, 16, ENC_ASCII
);
4487 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4494 * 6.5.3.11. FMS Generic Initiate Download Sequence
4495 * (Confirmed Service Id = 31)
4496 * 6.5.3.11.1. Request Message Parameters
4499 dissect_ff_msg_fms_generic_init_download_sequence_req(
4500 tvbuff_t
*tvb
, int offset
,
4501 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4503 proto_tree
*sub_tree
;
4505 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Generic Initiate Download Sequence Request");
4511 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4512 ett_ff_fms_gen_init_download_seq_req
, NULL
, "FMS Generic Initiate Download Sequence Request");
4514 proto_tree_add_item(sub_tree
,
4515 hf_ff_fms_gen_init_download_seq_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
4520 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4527 * 6.5.3.11.2. Response Message Parameters
4530 dissect_ff_msg_fms_generic_init_download_sequence_rsp(
4531 tvbuff_t
*tvb
, int offset
,
4532 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4534 proto_tree
*sub_tree
;
4536 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Generic Initiate Download Sequence Response");
4543 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4544 ett_ff_fms_gen_init_download_seq_rep
, NULL
, "FMS Generic Initiate Download Sequence Response");
4546 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4553 * 6.5.3.11.3. Error Message Parameters
4556 dissect_ff_msg_fms_generic_init_download_sequence_err(
4557 tvbuff_t
*tvb
, int offset
,
4558 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4560 proto_tree
*sub_tree
;
4563 const char *error_code
;
4565 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Generic Initiate Download Sequence Error");
4571 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4572 ett_ff_fms_gen_init_download_seq_err
, NULL
, "FMS Generic Initiate Download Sequence Error");
4574 ErrorClass
= tvb_get_uint8(tvb
, offset
);
4575 proto_tree_add_item(sub_tree
,
4576 hf_ff_fms_gen_init_download_seq_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4580 ErrorCode
= tvb_get_uint8(tvb
, offset
);
4581 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
4582 proto_tree_add_uint_format_value(sub_tree
,
4583 hf_ff_fms_gen_init_download_seq_err_err_code
,
4584 tvb
, offset
, 1, ErrorCode
,
4585 "%s (%u)", error_code
, ErrorCode
);
4589 proto_tree_add_item(sub_tree
,
4590 hf_ff_fms_gen_init_download_seq_err_additional_code
,
4591 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4595 proto_tree_add_item(sub_tree
,
4596 hf_ff_fms_gen_init_download_seq_err_additional_desc
,
4597 tvb
, offset
, 16, ENC_ASCII
);
4602 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4609 * 6.5.3.12. FMS Generic Download Segment (Confirmed Service Id = 32)
4610 * 6.5.3.12.1. Request Message Parameters
4613 dissect_ff_msg_fms_generic_download_segment_req(
4614 tvbuff_t
*tvb
, int offset
,
4615 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4617 proto_tree
*sub_tree
;
4619 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Generic Download Segment Request");
4625 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4626 ett_ff_fms_gen_download_seg_req
, NULL
, "FMS Generic Download Segment Request");
4628 proto_tree_add_item(sub_tree
,
4629 hf_ff_fms_gen_download_seg_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
4633 proto_tree_add_item(sub_tree
,
4634 hf_ff_fms_gen_download_seg_req_more_follows
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4638 proto_tree_add_item(sub_tree
, hf_ff_reserved24
, tvb
, offset
, 3, ENC_BIG_ENDIAN
);
4643 proto_tree_add_item(sub_tree
, hf_ff_fms_gen_download_seg_req_load_data
, tvb
, offset
, length
, ENC_NA
);
4650 * 6.5.3.12.2. Response Message Parameters
4653 dissect_ff_msg_fms_generic_download_segment_rsp(
4654 tvbuff_t
*tvb
, int offset
,
4655 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4657 proto_tree
*sub_tree
;
4659 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Generic Download Segment Response");
4666 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4667 ett_ff_fms_gen_download_seg_rsp
, NULL
, "FMS Generic Download Segment Response");
4669 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4676 * 6.5.3.12.3. Error Message Parameters
4679 dissect_ff_msg_fms_generic_download_segment_err(
4680 tvbuff_t
*tvb
, int offset
,
4681 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4683 proto_tree
*sub_tree
;
4686 const char *error_code
;
4688 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Generic Download Segment Error");
4694 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4695 ett_ff_fms_gen_download_seg_err
, NULL
, "FMS Generic Download Segment Error");
4697 ErrorClass
= tvb_get_uint8(tvb
, offset
);
4698 proto_tree_add_item(sub_tree
,
4699 hf_ff_fms_gen_download_seg_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4703 ErrorCode
= tvb_get_uint8(tvb
, offset
);
4704 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
4705 proto_tree_add_uint_format_value(sub_tree
,
4706 hf_ff_fms_gen_download_seg_err_err_code
,
4707 tvb
, offset
, 1, ErrorCode
,
4708 "%s (%u)", error_code
, ErrorCode
);
4712 proto_tree_add_item(sub_tree
,
4713 hf_ff_fms_gen_download_seg_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4717 proto_tree_add_item(sub_tree
,
4718 hf_ff_fms_gen_download_seg_err_additional_desc
,
4719 tvb
, offset
, 16, ENC_ASCII
);
4724 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4731 * 6.5.3.13. FMS Generic Terminate Download Sequence
4732 * (Confirmed Service Id = 33)
4733 * 6.5.3.13.1. Request Message Parameters
4736 dissect_ff_msg_fms_generic_terminate_download_sequence_req(
4737 tvbuff_t
*tvb
, int offset
,
4738 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4740 proto_tree
*sub_tree
;
4742 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Generic Terminate Download Sequence Request");
4748 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4749 ett_ff_fms_gen_terminate_download_seq_req
, NULL
, "FMS Generic Terminate Download Sequence Request");
4751 proto_tree_add_item(sub_tree
,
4752 hf_ff_fms_gen_terminate_download_seq_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
4757 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4764 * 6.5.3.13.2. Response Message Parameters
4767 dissect_ff_msg_fms_generic_terminate_download_sequence_rsp(
4768 tvbuff_t
*tvb
, int offset
,
4769 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4771 proto_tree
*sub_tree
;
4773 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Generic Terminate Download Sequence Response");
4779 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4780 ett_ff_fms_gen_terminate_download_seq_rsp
, NULL
, "FMS Generic Terminate Download Sequence Response");
4782 proto_tree_add_item(sub_tree
,
4783 hf_ff_fms_gen_terminate_download_seq_rsp_final_result
,
4784 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4788 proto_tree_add_item(sub_tree
, hf_ff_reserved24
, tvb
, offset
, 3, ENC_BIG_ENDIAN
);
4793 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4800 * 6.5.3.13.3. Error Message Parameters
4803 dissect_ff_msg_fms_generic_terminate_download_sequence_err(
4804 tvbuff_t
*tvb
, int offset
,
4805 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4807 proto_tree
*sub_tree
;
4810 const char *error_code
;
4812 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Generic Terminate Download Sequence Error");
4818 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4819 ett_ff_fms_gen_terminate_download_seq_err
, NULL
, "FMS Generic Terminate Download Sequence Error");
4821 ErrorClass
= tvb_get_uint8(tvb
, offset
);
4822 proto_tree_add_item(sub_tree
,
4823 hf_ff_fms_gen_terminate_download_seq_err_err_class
,
4824 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4828 ErrorCode
= tvb_get_uint8(tvb
, offset
);
4829 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
4830 proto_tree_add_uint_format_value(sub_tree
,
4831 hf_ff_fms_gen_terminate_download_seq_err_err_code
,
4832 tvb
, offset
, 1, ErrorCode
,
4833 "%s (%u)", error_code
, ErrorCode
);
4837 proto_tree_add_item(sub_tree
,
4838 hf_ff_fms_gen_terminate_download_seq_err_additional_code
,
4839 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4843 proto_tree_add_item(sub_tree
,
4844 hf_ff_fms_gen_terminate_download_seq_err_additional_desc
,
4845 tvb
, offset
, 16, ENC_ASCII
);
4850 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4857 * 6.5.3.14. FMS Initiate Download Sequence (Confirmed Service Id = 9)
4858 * 6.5.3.14.1. Request Message Parameters
4861 dissect_ff_msg_fms_init_download_sequence_req(
4862 tvbuff_t
*tvb
, int offset
,
4863 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4865 proto_tree
*sub_tree
;
4867 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Download Sequence Request");
4873 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4874 ett_ff_fms_init_download_seq_req
, NULL
, "FMS Initiate Download Sequence Request");
4876 proto_tree_add_item(sub_tree
,
4877 hf_ff_fms_init_download_seq_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
4882 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4889 * 6.5.3.14.2. Response Message Parameters
4892 dissect_ff_msg_fms_init_download_sequence_rsp(
4893 tvbuff_t
*tvb
, int offset
,
4894 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4896 proto_tree
*sub_tree
;
4898 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Download Sequence Response");
4905 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4906 ett_ff_fms_init_download_seq_rsp
, NULL
, "FMS Initiate Download Sequence Response");
4908 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4915 * 6.5.3.14.3. Error Message Parameters
4918 dissect_ff_msg_fms_init_download_sequence_err(
4919 tvbuff_t
*tvb
, int offset
,
4920 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4922 proto_tree
*sub_tree
;
4925 const char *error_code
;
4927 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Download Sequence Error");
4933 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4934 ett_ff_fms_init_download_seq_err
, NULL
, "FMS Initiate Download Sequence Error");
4936 ErrorClass
= tvb_get_uint8(tvb
, offset
);
4937 proto_tree_add_item(sub_tree
,
4938 hf_ff_fms_init_download_seq_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
4942 ErrorCode
= tvb_get_uint8(tvb
, offset
);
4943 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
4944 proto_tree_add_uint_format_value(sub_tree
,
4945 hf_ff_fms_init_download_seq_err_err_code
,
4946 tvb
, offset
, 1, ErrorCode
,
4947 "%s (%u)", error_code
, ErrorCode
);
4951 proto_tree_add_item(sub_tree
,
4952 hf_ff_fms_init_download_seq_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4956 proto_tree_add_item(sub_tree
,
4957 hf_ff_fms_init_download_seq_err_additional_desc
,
4958 tvb
, offset
, 16, ENC_ASCII
);
4963 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
4970 * 6.5.3.15. FMS Download Segment (Confirmed Service Id = 10)
4971 * 6.5.3.15.1. Request Message Parameters
4974 dissect_ff_msg_fms_download_segment_req(tvbuff_t
*tvb
, int offset
,
4975 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
4977 proto_tree
*sub_tree
;
4979 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Download Segment Request");
4985 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
4986 ett_ff_fms_download_seg_req
, NULL
, "FMS Download Segment Request");
4988 proto_tree_add_item(sub_tree
,
4989 hf_ff_fms_download_seg_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
4994 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5001 * 6.5.3.15.2. Response Message Parameters
5004 dissect_ff_msg_fms_download_segment_rsp(tvbuff_t
*tvb
, int offset
,
5005 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5007 proto_tree
*sub_tree
;
5009 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Download Segment Response");
5015 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5016 ett_ff_fms_download_seg_rsp
, NULL
, "FMS Download Segment Response");
5018 proto_tree_add_item(sub_tree
,
5019 hf_ff_fms_download_seg_rsp_more_follows
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5023 proto_tree_add_item(sub_tree
, hf_ff_reserved24
, tvb
, offset
, 3, ENC_BIG_ENDIAN
);
5028 proto_tree_add_item(sub_tree
, hf_ff_fms_download_seg_rsp_load_data
, tvb
, offset
, length
, ENC_NA
);
5035 * 6.5.3.15.3. Error Message Parameters
5038 dissect_ff_msg_fms_download_segment_err(tvbuff_t
*tvb
, int offset
,
5039 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5041 proto_tree
*sub_tree
;
5044 const char *error_code
;
5046 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Download Segment Error");
5052 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5053 ett_ff_fms_download_seg_err
, NULL
, "FMS Download Segment Error");
5055 ErrorClass
= tvb_get_uint8(tvb
, offset
);
5056 proto_tree_add_item(sub_tree
,
5057 hf_ff_fms_download_seg_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5061 ErrorCode
= tvb_get_uint8(tvb
, offset
);
5062 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
5063 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_download_seg_err_err_code
,
5064 tvb
, offset
, 1, ErrorCode
,
5065 "%s (%u)", error_code
, ErrorCode
);
5069 proto_tree_add_item(sub_tree
,
5070 hf_ff_fms_download_seg_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
5074 proto_tree_add_item(sub_tree
,
5075 hf_ff_fms_download_seg_err_additional_desc
,
5076 tvb
, offset
, 16, ENC_ASCII
);
5081 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5088 * 6.5.3.16. FMS Terminate Download Sequence (Confirmed Service Id = 11)
5089 * 6.5.3.16.1. Request Message Parameters
5092 dissect_ff_msg_fms_terminate_download_sequence_req(
5093 tvbuff_t
*tvb
, int offset
,
5094 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5096 proto_tree
*sub_tree
;
5098 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Terminate Download Sequence Request");
5104 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5105 ett_ff_fms_terminate_download_seq_req
, NULL
, "FMS Terminate Download Sequence Request");
5107 proto_tree_add_item(sub_tree
,
5108 hf_ff_fms_terminate_download_seq_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
5112 proto_tree_add_item(sub_tree
, hf_ff_reserved24
, tvb
, offset
, 3, ENC_BIG_ENDIAN
);
5116 proto_tree_add_item(sub_tree
,
5117 hf_ff_fms_terminate_download_seq_req_final_result
,
5118 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5123 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5130 * 6.5.3.16.2. Response Message Parameters
5133 dissect_ff_msg_fms_terminate_download_sequence_rsp(
5134 tvbuff_t
*tvb
, int offset
,
5135 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5137 proto_tree
*sub_tree
;
5139 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Terminate Download Sequence Response");
5146 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5147 ett_ff_fms_terminate_download_seq_rsp
, NULL
, "FMS Terminate Download Sequence Response");
5149 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5156 * 6.5.3.16.3. Error Message Parameters
5159 dissect_ff_msg_fms_terminate_download_sequence_err(
5160 tvbuff_t
*tvb
, int offset
,
5161 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5163 proto_tree
*sub_tree
;
5166 const char *error_code
;
5168 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Terminate Download Sequence Error");
5174 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5175 ett_ff_fms_terminate_download_seq_err
, NULL
, "FMS Terminate Download Sequence Error");
5177 ErrorClass
= tvb_get_uint8(tvb
, offset
);
5178 proto_tree_add_item(sub_tree
,
5179 hf_ff_fms_terminate_download_seq_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5183 ErrorCode
= tvb_get_uint8(tvb
, offset
);
5184 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
5185 proto_tree_add_uint_format_value(sub_tree
,
5186 hf_ff_fms_terminate_download_seq_err_err_code
,
5187 tvb
, offset
, 1, ErrorCode
,
5188 "%s (%u)", error_code
, ErrorCode
);
5192 proto_tree_add_item(sub_tree
,
5193 hf_ff_fms_terminate_download_seq_err_additional_code
,
5194 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
5198 proto_tree_add_item(sub_tree
,
5199 hf_ff_fms_terminate_download_seq_err_additional_desc
,
5200 tvb
, offset
, 16, ENC_ASCII
);
5205 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5212 * 6.5.3.17. FMS Initiate Upload Sequence (Confirmed Service Id = 12)
5213 * 6.5.3.17.1. Request Message Parameters
5216 dissect_ff_msg_fms_init_upload_seq_req(
5217 tvbuff_t
*tvb
, int offset
,
5218 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5220 proto_tree
*sub_tree
;
5222 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Upload Sequence Request");
5228 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5229 ett_ff_fms_init_upload_seq_req
, NULL
, "FMS Initiate Upload Sequence Request");
5231 proto_tree_add_item(sub_tree
,
5232 hf_ff_fms_init_upload_seq_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
5237 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5244 * 6.5.3.17.2. Response Message Parameters
5247 dissect_ff_msg_fms_init_upload_seq_rsp(
5248 tvbuff_t
*tvb
, int offset
,
5249 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5251 proto_tree
*sub_tree
;
5253 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Upload Sequence Response");
5260 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5261 ett_ff_fms_init_upload_seq_rsp
, NULL
, "FMS Initiate Upload Sequence Response");
5263 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5270 * 6.5.3.17.3. Error Message Parameters
5273 dissect_ff_msg_fms_init_upload_seq_err(
5274 tvbuff_t
*tvb
, int offset
,
5275 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5277 proto_tree
*sub_tree
;
5280 const char *error_code
;
5282 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Initiate Upload Sequence Error");
5288 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5289 ett_ff_fms_init_upload_seq_err
, NULL
, "FMS Initiate Upload Sequence Error");
5291 ErrorClass
= tvb_get_uint8(tvb
, offset
);
5292 proto_tree_add_item(sub_tree
,
5293 hf_ff_fms_init_upload_seq_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5297 ErrorCode
= tvb_get_uint8(tvb
, offset
);
5298 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
5299 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_init_upload_seq_err_err_code
,
5300 tvb
, offset
, 1, ErrorCode
,
5301 "%s (%u)", error_code
, ErrorCode
);
5305 proto_tree_add_item(sub_tree
,
5306 hf_ff_fms_init_upload_seq_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
5310 proto_tree_add_item(sub_tree
, hf_ff_fms_init_upload_seq_err_additional_desc
,
5311 tvb
, offset
, 16, ENC_ASCII
);
5316 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5323 * 6.5.3.18. FMS Upload Segment (Confirmed Service Id = 13)
5324 * 6.5.3.18.1. Request Message Parameters
5327 dissect_ff_msg_fms_upload_segment_req(tvbuff_t
*tvb
, int offset
,
5328 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5330 proto_tree
*sub_tree
;
5332 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Upload Segment Request");
5338 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5339 ett_ff_fms_upload_seg_req
, NULL
, "FMS Upload Segment Request");
5341 proto_tree_add_item(sub_tree
,
5342 hf_ff_fms_upload_seg_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
5347 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5354 * 6.5.3.18.2. Response Message Parameters
5357 dissect_ff_msg_fms_upload_segment_rsp(tvbuff_t
*tvb
, int offset
,
5358 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5360 proto_tree
*sub_tree
;
5362 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Upload Segment Response");
5368 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5369 ett_ff_fms_upload_seg_rsp
, NULL
, "FMS Upload Segment Response");
5371 proto_tree_add_item(sub_tree
,
5372 hf_ff_fms_upload_seg_rsp_more_follows
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5376 proto_tree_add_item(sub_tree
, hf_ff_reserved24
, tvb
, offset
, 3, ENC_BIG_ENDIAN
);
5381 proto_tree_add_item(sub_tree
, hf_ff_fms_upload_seg_rsp_final_result
, tvb
, offset
, length
, ENC_NA
);
5388 * 6.5.3.18.3. Error Message Parameters
5391 dissect_ff_msg_fms_upload_segment_err(tvbuff_t
*tvb
, int offset
,
5392 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5394 proto_tree
*sub_tree
;
5397 const char *error_code
;
5399 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Upload Segment Error");
5405 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5406 ett_ff_fms_upload_seg_err
, NULL
, "FMS Upload Segment Error");
5408 ErrorClass
= tvb_get_uint8(tvb
, offset
);
5409 proto_tree_add_item(sub_tree
,
5410 hf_ff_fms_upload_seg_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5414 ErrorCode
= tvb_get_uint8(tvb
, offset
);
5415 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
5416 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_upload_seg_err_err_code
,
5417 tvb
, offset
, 1, ErrorCode
,
5418 "%s (%u)", error_code
, ErrorCode
);
5422 proto_tree_add_item(sub_tree
,
5423 hf_ff_fms_upload_seg_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
5427 proto_tree_add_item(sub_tree
,
5428 hf_ff_fms_upload_seg_err_additional_desc
,
5429 tvb
, offset
, 16, ENC_ASCII
);
5434 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5441 * 6.5.3.19. FMS Terminate Upload Sequence (Confirmed Service Id = 14)
5442 * 6.5.3.19.1. Request Message Parameters
5445 dissect_ff_msg_fms_terminate_upload_seq_req(
5446 tvbuff_t
*tvb
, int offset
,
5447 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5449 proto_tree
*sub_tree
;
5451 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Terminate Upload Sequence Request");
5457 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5458 ett_ff_fms_terminate_upload_seq_req
, NULL
, "FMS Terminate Upload Sequence Request");
5460 proto_tree_add_item(sub_tree
,
5461 hf_ff_fms_terminate_upload_seq_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
5466 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5473 * 6.5.3.19.2. Response Message Parameters
5476 dissect_ff_msg_fms_terminate_upload_seq_rsp(
5477 tvbuff_t
*tvb
, int offset
,
5478 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5480 proto_tree
*sub_tree
;
5482 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Terminate Upload Sequence Response");
5489 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5490 ett_ff_fms_terminate_upload_seq_rsp
, NULL
, "FMS Terminate Upload Sequence Response");
5492 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5499 * 6.5.3.19.3. Error Message Parameters
5502 dissect_ff_msg_fms_terminate_upload_seq_err(
5503 tvbuff_t
*tvb
, int offset
,
5504 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5506 proto_tree
*sub_tree
;
5509 const char *error_code
;
5511 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Terminate Upload Sequence Error");
5517 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5518 ett_ff_fms_terminate_upload_seq_err
, NULL
, "FMS Terminate Upload Sequence Error");
5520 ErrorClass
= tvb_get_uint8(tvb
, offset
);
5521 proto_tree_add_item(sub_tree
,
5522 hf_ff_fms_terminate_upload_seq_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5526 ErrorCode
= tvb_get_uint8(tvb
, offset
);
5527 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
5528 proto_tree_add_uint_format_value(sub_tree
,
5529 hf_ff_fms_terminate_upload_seq_err_err_code
,
5530 tvb
, offset
, 1, ErrorCode
,
5531 "%s (%u)", error_code
, ErrorCode
);
5535 proto_tree_add_item(sub_tree
,
5536 hf_ff_fms_terminate_upload_seq_err_additional_code
,
5537 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
5541 proto_tree_add_item(sub_tree
,
5542 hf_ff_fms_terminate_upload_seq_err_additional_desc
,
5543 tvb
, offset
, 16, ENC_ASCII
);
5548 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5555 * 6.5.3.20. FMS Request Domain Download (Confirmed Service Id = 15)
5556 * 6.5.3.20.1. Request Message Parameters
5559 dissect_ff_msg_fms_req_dom_download_req(
5560 tvbuff_t
*tvb
, int offset
,
5561 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5563 proto_tree
*sub_tree
;
5565 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Request Domain Download Request");
5571 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5572 ett_ff_fms_req_dom_download_req
, NULL
, "FMS Request Domain Download Request");
5574 proto_tree_add_item(sub_tree
,
5575 hf_ff_fms_req_dom_download_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
5580 proto_tree_add_item(sub_tree
,
5581 hf_ff_fms_req_dom_download_req_additional_info
,
5582 tvb
, offset
, length
, ENC_ASCII
);
5589 * 6.5.3.20.2. Response Message Parameters
5592 dissect_ff_msg_fms_req_dom_download_rsp(
5593 tvbuff_t
*tvb
, int offset
,
5594 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5596 proto_tree
*sub_tree
;
5598 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Request Domain Download Response");
5605 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5606 ett_ff_fms_req_dom_download_rsp
, NULL
, "FMS Request Domain Download Response");
5608 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5615 * 6.5.3.20.3. Error Message Parameters
5618 dissect_ff_msg_fms_req_dom_download_err(
5619 tvbuff_t
*tvb
, int offset
,
5620 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5622 proto_tree
*sub_tree
;
5625 const char *error_code
;
5627 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Request Domain Download Error");
5633 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5634 ett_ff_fms_req_dom_download_err
, NULL
, "FMS Request Domain Download Error");
5636 ErrorClass
= tvb_get_uint8(tvb
, offset
);
5637 proto_tree_add_item(sub_tree
,
5638 hf_ff_fms_req_dom_download_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5642 ErrorCode
= tvb_get_uint8(tvb
, offset
);
5643 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
5644 proto_tree_add_uint_format_value(sub_tree
,
5645 hf_ff_fms_req_dom_download_err_err_code
,
5646 tvb
, offset
, 1, ErrorCode
,
5647 "%s (%u)", error_code
, ErrorCode
);
5651 proto_tree_add_item(sub_tree
,
5652 hf_ff_fms_req_dom_download_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
5656 proto_tree_add_item(sub_tree
,
5657 hf_ff_fms_req_dom_download_err_additional_desc
,
5658 tvb
, offset
, 16, ENC_ASCII
);
5663 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5670 * 6.5.3.21. FMS Request Domain Upload (Confirmed Service Id = 16)
5671 * 6.5.3.21.1. Request Message Parameters
5674 dissect_ff_msg_fms_req_dom_upload_req(
5675 tvbuff_t
*tvb
, int offset
,
5676 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5678 proto_tree
*sub_tree
;
5680 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Request Domain Upload Request");
5686 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5687 ett_ff_fms_req_dom_upload_req
, NULL
, "FMS Request Domain Upload Request");
5689 proto_tree_add_item(sub_tree
,
5690 hf_ff_fms_req_dom_upload_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
5695 proto_tree_add_item(sub_tree
,
5696 hf_ff_fms_req_dom_upload_req_additional_info
,
5697 tvb
, offset
, length
, ENC_ASCII
);
5704 * 6.5.3.21.2. Response Message Parameters
5707 dissect_ff_msg_fms_req_dom_upload_rsp(
5708 tvbuff_t
*tvb
, int offset
,
5709 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5711 proto_tree
*sub_tree
;
5713 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Request Domain Upload Response");
5720 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5721 ett_ff_fms_req_dom_upload_rsp
, NULL
, "FMS Request Domain Upload Response");
5723 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5730 * 6.5.3.21.3. Error Message Parameters
5733 dissect_ff_msg_fms_req_dom_upload_err(
5734 tvbuff_t
*tvb
, int offset
,
5735 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5737 proto_tree
*sub_tree
;
5740 const char *error_code
;
5742 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Request Domain Upload Error");
5748 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5749 ett_ff_fms_req_dom_upload_err
, NULL
, "FMS Request Domain Upload Error");
5751 ErrorClass
= tvb_get_uint8(tvb
, offset
);
5752 proto_tree_add_item(sub_tree
,
5753 hf_ff_fms_req_dom_upload_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5757 ErrorCode
= tvb_get_uint8(tvb
, offset
);
5758 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
5759 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_req_dom_upload_err_err_code
,
5760 tvb
, offset
, 1, ErrorCode
,
5761 "%s (%u)", error_code
, ErrorCode
);
5765 proto_tree_add_item(sub_tree
,
5766 hf_ff_fms_req_dom_upload_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
5770 proto_tree_add_item(sub_tree
,
5771 hf_ff_fms_req_dom_upload_err_additional_desc
,
5772 tvb
, offset
, 16, ENC_ASCII
);
5777 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5784 * 6.5.3.22. FMS Create Program Invocation (Confirmed Service Id = 17)
5785 * 6.5.3.22.1. Request Message Parameters
5788 dissect_ff_msg_fms_create_pi_req_dom_idxes(tvbuff_t
*tvb
,
5789 int offset
, proto_tree
*tree
, uint16_t value
)
5791 proto_tree
*sub_tree
;
5798 sub_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 4 * value
,
5799 ett_ff_fms_create_pi_req_list_of_dom_idxes
, NULL
, "List Of Domain Indexes (%u bytes)", 4 * value
);
5801 for (d
= 0; d
< value
; d
++) {
5802 proto_tree_add_item(sub_tree
,
5803 hf_ff_fms_create_pi_req_dom_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
5812 dissect_ff_msg_fms_create_pi_req(tvbuff_t
*tvb
, int offset
,
5813 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5815 proto_tree
*sub_tree
;
5816 uint16_t NumOfDomIdxes
;
5818 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Create Program Invocation Request");
5824 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5825 ett_ff_fms_create_pi_req
, NULL
, "FMS Create Program Invocation Request");
5827 proto_tree_add_item(sub_tree
,
5828 hf_ff_fms_create_pi_req_reusable
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5832 proto_tree_add_item(sub_tree
,
5833 hf_ff_fms_create_pi_req_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5837 NumOfDomIdxes
= tvb_get_ntohs(tvb
, offset
);
5838 proto_tree_add_item(sub_tree
,
5839 hf_ff_fms_create_pi_req_num_of_dom_idxes
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
5843 if (NumOfDomIdxes
) {
5844 dissect_ff_msg_fms_create_pi_req_dom_idxes(tvb
,
5845 offset
, sub_tree
, NumOfDomIdxes
);
5847 offset
+= 4 * NumOfDomIdxes
;
5848 length
-= 4 * NumOfDomIdxes
;
5852 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5859 * 6.5.3.22.2. Response Message Parameters
5862 dissect_ff_msg_fms_create_pi_rsp(tvbuff_t
*tvb
, int offset
,
5863 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5865 proto_tree
*sub_tree
;
5867 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Create Program Invocation Response");
5873 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5874 ett_ff_fms_create_pi_rsp
, NULL
, "FMS Create Program Invocation Response");
5876 proto_tree_add_item(sub_tree
,
5877 hf_ff_fms_create_pi_rsp_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
5882 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5889 * 6.5.3.22.3. Error Message Parameters
5892 dissect_ff_msg_fms_create_pi_err(tvbuff_t
*tvb
, int offset
,
5893 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5895 proto_tree
*sub_tree
;
5898 const char *error_code
;
5900 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Create Program Invocation Error");
5906 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5907 ett_ff_fms_create_pi_err
, NULL
, "FMS Create Program Invocation Error");
5909 ErrorClass
= tvb_get_uint8(tvb
, offset
);
5910 proto_tree_add_item(sub_tree
,
5911 hf_ff_fms_create_pi_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
5915 ErrorCode
= tvb_get_uint8(tvb
, offset
);
5916 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
5917 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_create_pi_err_err_code
,
5918 tvb
, offset
, 1, ErrorCode
,
5919 "%s (%u)", error_code
, ErrorCode
);
5923 proto_tree_add_item(sub_tree
,
5924 hf_ff_fms_create_pi_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
5928 proto_tree_add_item(sub_tree
,
5929 hf_ff_fms_create_pi_err_additional_desc
,
5930 tvb
, offset
, 16, ENC_ASCII
);
5935 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5942 * 6.5.3.23. FMS Delete Program Invocation (Confirmed Service Id = 18)
5943 * 6.5.3.23.1. Request Message Parameters
5946 dissect_ff_msg_fms_del_pi_req(tvbuff_t
*tvb
, int offset
,
5947 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5949 proto_tree
*sub_tree
;
5951 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Delete Program Invocation Request");
5957 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5958 ett_ff_fms_del_pi_req
, NULL
, "FMS Delete Program Invocation Request");
5960 proto_tree_add_item(sub_tree
,
5961 hf_ff_fms_del_pi_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
5966 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5973 * 6.5.3.23.2. Response Message Parameters
5976 dissect_ff_msg_fms_del_pi_rsp(tvbuff_t
*tvb
, int offset
,
5977 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
5979 proto_tree
*sub_tree
;
5981 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Delete Program Invocation Response");
5988 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
5989 ett_ff_fms_del_pi_rsp
, NULL
, "FMS Delete Program Invocation Response");
5991 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
5998 * 6.5.3.23.3. Error Message Parameters
6001 dissect_ff_msg_fms_del_pi_err(tvbuff_t
*tvb
, int offset
,
6002 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6004 proto_tree
*sub_tree
;
6007 const char *error_code
;
6009 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Delete Program Invocation Error");
6015 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
6016 ett_ff_fms_del_pi_err
, NULL
, "FMS Delete Program Invocation Error");
6018 ErrorClass
= tvb_get_uint8(tvb
, offset
);
6019 proto_tree_add_item(sub_tree
,
6020 hf_ff_fms_del_pi_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6024 ErrorCode
= tvb_get_uint8(tvb
, offset
);
6025 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
6026 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_del_pi_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_del_pi_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
6037 proto_tree_add_item(sub_tree
,
6038 hf_ff_fms_del_pi_err_additional_desc
,
6039 tvb
, offset
, 16, ENC_ASCII
);
6044 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6051 * 6.5.3.24. FMS Start (Confirmed Service Id = 19)
6052 * 6.5.3.24.1. Request Message Parameters
6055 dissect_ff_msg_fms_start_pi_req(tvbuff_t
*tvb
, int offset
,
6056 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6058 proto_tree
*sub_tree
;
6060 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Start Request");
6066 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_start_req
, NULL
, "FMS Start Request");
6068 proto_tree_add_item(sub_tree
,
6069 hf_ff_fms_start_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
6074 proto_tree_add_item(sub_tree
, hf_ff_fms_start_req_execution_argument
, tvb
, offset
, length
, ENC_NA
);
6081 * 6.5.3.24.2. Response Message Parameters
6084 dissect_ff_msg_fms_start_pi_rsp(tvbuff_t
*tvb
, int offset
,
6085 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6087 proto_tree
*sub_tree
;
6089 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Start Response");
6096 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
6097 ett_ff_fms_start_rsp
, NULL
, "FMS Start Response");
6099 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6106 * 6.5.3.24.3. PI Error Message Parameters
6109 dissect_ff_msg_fms_start_pi_err(tvbuff_t
*tvb
, int offset
,
6110 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6112 proto_tree
*sub_tree
;
6115 const char *error_code
;
6117 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Start Error");
6123 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_start_err
, NULL
, "FMS Start Error");
6125 proto_tree_add_item(sub_tree
,
6126 hf_ff_fms_start_err_pi_state
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6130 proto_tree_add_item(sub_tree
, hf_ff_reserved24
, tvb
, offset
, 3, ENC_BIG_ENDIAN
);
6134 ErrorClass
= tvb_get_uint8(tvb
, offset
);
6135 proto_tree_add_item(sub_tree
,
6136 hf_ff_fms_start_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6140 ErrorCode
= tvb_get_uint8(tvb
, offset
);
6141 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
6142 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_start_err_err_code
,
6143 tvb
, offset
, 1, ErrorCode
,
6144 "%s (%u)", error_code
, ErrorCode
);
6148 proto_tree_add_item(sub_tree
,
6149 hf_ff_fms_start_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
6153 proto_tree_add_item(sub_tree
, hf_ff_fms_start_err_additional_desc
,
6154 tvb
, offset
, 16, ENC_ASCII
);
6159 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6166 * 6.5.3.25. FMS Stop (Confirmed Service Id = 20)
6167 * 6.5.3.25.1. Request Message Parameters
6170 dissect_ff_msg_fms_stop_pi_req(tvbuff_t
*tvb
, int offset
,
6171 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6173 proto_tree
*sub_tree
;
6175 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Stop Request");
6181 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_stop_req
, NULL
, "FMS Stop Request");
6183 proto_tree_add_item(sub_tree
,
6184 hf_ff_fms_stop_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
6189 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6196 * 6.5.3.25.2. Response Message Parameters
6199 dissect_ff_msg_fms_stop_pi_rsp(tvbuff_t
*tvb
, int offset
,
6200 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6202 proto_tree
*sub_tree
;
6204 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Stop Response");
6211 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
6212 ett_ff_fms_stop_rsp
, NULL
, "FMS Stop Response");
6214 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6221 * 6.5.3.25.3. Error Message Parameters
6224 dissect_ff_msg_fms_stop_pi_err(tvbuff_t
*tvb
, int offset
,
6225 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6227 proto_tree
*sub_tree
;
6230 const char *error_code
;
6232 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Stop Error");
6238 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_stop_err
, NULL
, "FMS Stop Error");
6240 proto_tree_add_item(sub_tree
,
6241 hf_ff_fms_stop_err_pi_state
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6245 proto_tree_add_item(sub_tree
, hf_ff_reserved24
, tvb
, offset
, 3, ENC_BIG_ENDIAN
);
6249 ErrorClass
= tvb_get_uint8(tvb
, offset
);
6250 proto_tree_add_item(sub_tree
,
6251 hf_ff_fms_stop_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6255 ErrorCode
= tvb_get_uint8(tvb
, offset
);
6256 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
6257 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_stop_err_err_code
,
6258 tvb
, offset
, 1, ErrorCode
,
6259 "%s (%u)", error_code
, ErrorCode
);
6263 proto_tree_add_item(sub_tree
,
6264 hf_ff_fms_stop_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
6268 proto_tree_add_item(sub_tree
, hf_ff_fms_stop_err_additional_desc
,
6269 tvb
, offset
, 16, ENC_ASCII
);
6274 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6281 * 6.5.3.26. FMS Resume (Confirmed Service Id = 21)
6282 * 6.5.3.26.1. Request Message Parameters
6285 dissect_ff_msg_fms_resume_pi_req(tvbuff_t
*tvb
, int offset
,
6286 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6288 proto_tree
*sub_tree
;
6290 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Resume Request");
6296 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_resume_req
, NULL
, "FMS Resume Request");
6298 proto_tree_add_item(sub_tree
,
6299 hf_ff_fms_resume_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
6304 proto_tree_add_item(sub_tree
, hf_ff_fms_resume_req_execution_argument
, tvb
, offset
, length
, ENC_NA
);
6311 * 6.5.3.26.2. Response Message Parameters
6314 dissect_ff_msg_fms_resume_pi_rsp(tvbuff_t
*tvb
, int offset
,
6315 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6317 proto_tree
*sub_tree
;
6319 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Resume Response");
6326 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
6327 ett_ff_fms_resume_rsp
, NULL
, "FMS Resume Response");
6329 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6336 * 6.5.3.26.3. Error Message Parameters
6339 dissect_ff_msg_fms_resume_pi_err(tvbuff_t
*tvb
, int offset
,
6340 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6342 proto_tree
*sub_tree
;
6345 const char *error_code
;
6347 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Resume Error");
6353 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_resume_err
, NULL
, "FMS Resume Error");
6355 proto_tree_add_item(sub_tree
,
6356 hf_ff_fms_resume_err_pi_state
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6360 proto_tree_add_item(sub_tree
, hf_ff_reserved24
, tvb
, offset
, 3, ENC_BIG_ENDIAN
);
6364 ErrorClass
= tvb_get_uint8(tvb
, offset
);
6365 proto_tree_add_item(sub_tree
,
6366 hf_ff_fms_resume_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6370 ErrorCode
= tvb_get_uint8(tvb
, offset
);
6371 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
6372 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_resume_err_err_code
,
6373 tvb
, offset
, 1, ErrorCode
,
6374 "%s (%u)", error_code
, ErrorCode
);
6378 proto_tree_add_item(sub_tree
,
6379 hf_ff_fms_resume_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
6383 proto_tree_add_item(sub_tree
, hf_ff_fms_resume_err_additional_desc
,
6384 tvb
, offset
, 16, ENC_ASCII
);
6389 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6396 * 6.5.3.27. FMS Reset (Confirmed Service Id = 22)
6397 * 6.5.3.27.1. Request Message Parameters
6400 dissect_ff_msg_fms_reset_pi_req(tvbuff_t
*tvb
, int offset
,
6401 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6403 proto_tree
*sub_tree
;
6405 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Reset Request");
6411 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_reset_req
, NULL
, "FMS Reset Request");
6413 proto_tree_add_item(sub_tree
,
6414 hf_ff_fms_reset_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
6419 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6426 * 6.5.3.27.2. Response Message Parameters
6429 dissect_ff_msg_fms_reset_pi_rsp(tvbuff_t
*tvb
, int offset
,
6430 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6432 proto_tree
*sub_tree
;
6434 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Reset Response");
6441 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
6442 ett_ff_fms_reset_rsp
, NULL
, "FMS Reset Response");
6444 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6451 * 6.5.3.27.3. Error Message Parameters
6454 dissect_ff_msg_fms_reset_pi_err(tvbuff_t
*tvb
, int offset
,
6455 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6457 proto_tree
*sub_tree
;
6460 const char *error_code
;
6462 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Reset Error");
6468 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_reset_err
, NULL
, "FMS Reset Error");
6470 proto_tree_add_item(sub_tree
,
6471 hf_ff_fms_reset_err_pi_state
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6475 proto_tree_add_item(sub_tree
, hf_ff_reserved24
, tvb
, offset
, 3, ENC_BIG_ENDIAN
);
6479 ErrorClass
= tvb_get_uint8(tvb
, offset
);
6480 proto_tree_add_item(sub_tree
,
6481 hf_ff_fms_reset_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6485 ErrorCode
= tvb_get_uint8(tvb
, offset
);
6486 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
6487 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_reset_err_err_code
,
6488 tvb
, offset
, 1, ErrorCode
,
6489 "%s (%u)", error_code
, ErrorCode
);
6493 proto_tree_add_item(sub_tree
,
6494 hf_ff_fms_reset_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
6498 proto_tree_add_item(sub_tree
, hf_ff_fms_reset_err_additional_desc
,
6499 tvb
, offset
, 16, ENC_ASCII
);
6504 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6511 * 6.5.3.28. FMS Kill (Confirmed Service Id = 23)
6512 * 6.5.3.28.1. Request Message Parameters
6515 dissect_ff_msg_fms_kill_pi_req(tvbuff_t
*tvb
, int offset
,
6516 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6518 proto_tree
*sub_tree
;
6520 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Kill Request");
6526 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_kill_req
, NULL
, "FMS Kill Request");
6528 proto_tree_add_item(sub_tree
,
6529 hf_ff_fms_kill_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
6534 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6541 * 6.5.3.28.2. Response Message Parameters
6544 dissect_ff_msg_fms_kill_pi_rsp(tvbuff_t
*tvb
, int offset
,
6545 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6547 proto_tree
*sub_tree
;
6549 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Kill Response");
6556 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
6557 ett_ff_fms_kill_rsp
, NULL
, "FMS Kill Response");
6559 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6566 * 6.5.3.28.3. Error Message Parameters
6569 dissect_ff_msg_fms_kill_pi_err(tvbuff_t
*tvb
, int offset
,
6570 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6572 proto_tree
*sub_tree
;
6575 const char *error_code
;
6577 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Kill Error");
6583 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_kill_err
, NULL
, "FMS Kill Error");
6585 ErrorClass
= tvb_get_uint8(tvb
, offset
);
6586 proto_tree_add_item(sub_tree
,
6587 hf_ff_fms_kill_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6591 ErrorCode
= tvb_get_uint8(tvb
, offset
);
6592 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
6593 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_kill_err_err_code
,
6594 tvb
, offset
, 1, ErrorCode
,
6595 "%s (%u)", error_code
, ErrorCode
);
6599 proto_tree_add_item(sub_tree
,
6600 hf_ff_fms_kill_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
6604 proto_tree_add_item(sub_tree
, hf_ff_fms_kill_err_additional_desc
,
6605 tvb
, offset
, 16, ENC_ASCII
);
6610 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6617 * 6.5.3.29. FMS Read (Confirmed Service Id = 2)
6618 * 6.5.3.29.1. Request Message Parameters
6621 dissect_ff_msg_fms_read_req(tvbuff_t
*tvb
, int offset
,
6622 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6624 proto_tree
*sub_tree
;
6626 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Read Request");
6632 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_read_req
, NULL
, "FMS Read Request");
6634 proto_tree_add_item(sub_tree
,
6635 hf_ff_fms_read_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
6640 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6647 * 6.5.3.29.2. Response Message Parameters
6650 dissect_ff_msg_fms_read_rsp(tvbuff_t
*tvb
, int offset
,
6651 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6653 proto_tree
*sub_tree
;
6655 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Read Response");
6661 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_read_rsp
, NULL
, "FMS Read Response");
6663 proto_tree_add_item(sub_tree
, hf_ff_data
, tvb
, offset
, length
, ENC_NA
);
6669 * 6.5.3.29.3. Error Message Parameters
6672 dissect_ff_msg_fms_read_err(tvbuff_t
*tvb
, int offset
,
6673 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6675 proto_tree
*sub_tree
;
6678 const char *error_code
;
6680 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Read Error");
6686 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_read_err
, NULL
, "FMS Read Error");
6688 ErrorClass
= tvb_get_uint8(tvb
, offset
);
6689 proto_tree_add_item(sub_tree
,
6690 hf_ff_fms_read_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6694 ErrorCode
= tvb_get_uint8(tvb
, offset
);
6695 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
6696 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_read_err_err_code
,
6697 tvb
, offset
, 1, ErrorCode
,
6698 "%s (%u)", error_code
, ErrorCode
);
6702 proto_tree_add_item(sub_tree
,
6703 hf_ff_fms_read_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
6707 proto_tree_add_item(sub_tree
, hf_ff_fms_read_err_additional_desc
,
6708 tvb
, offset
, 16, ENC_ASCII
);
6713 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6720 * 6.5.3.30. FMS Read with Subindex (Confirmed Service Id = 82)
6721 * 6.5.3.30.1. Request Message Parameters
6724 dissect_ff_msg_fms_read_subindex_req(tvbuff_t
*tvb
, int offset
,
6725 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6727 proto_tree
*sub_tree
;
6729 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Read with Subindex Request");
6735 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
6736 ett_ff_fms_read_with_subidx_req
, NULL
, "FMS Read with Subindex Request");
6738 proto_tree_add_item(sub_tree
,
6739 hf_ff_fms_read_with_subidx_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
6743 proto_tree_add_item(sub_tree
,
6744 hf_ff_fms_read_with_subidx_req_subidx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
6749 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6756 * 6.5.3.30.2. Response Message Parameters
6759 dissect_ff_msg_fms_read_subindex_rsp(tvbuff_t
*tvb
, int offset
,
6760 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6762 proto_tree
*sub_tree
;
6764 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Read with Subindex Response");
6770 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
6771 ett_ff_fms_read_with_subidx_rsp
, NULL
, "FMS Read with Subindex Response");
6773 proto_tree_add_item(sub_tree
, hf_ff_data
, tvb
, offset
, length
, ENC_NA
);
6779 * 6.5.3.30.3. Error Message Parameters
6782 dissect_ff_msg_fms_read_subindex_err(tvbuff_t
*tvb
, int offset
,
6783 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6785 proto_tree
*sub_tree
;
6788 const char *error_code
;
6790 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Read with Subindex Error");
6796 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
6797 ett_ff_fms_read_with_subidx_err
, NULL
, "FMS Read with Subindex Error");
6799 ErrorClass
= tvb_get_uint8(tvb
, offset
);
6800 proto_tree_add_item(sub_tree
,
6801 hf_ff_fms_read_with_subidx_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6805 ErrorCode
= tvb_get_uint8(tvb
, offset
);
6806 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
6807 proto_tree_add_uint_format_value(sub_tree
,
6808 hf_ff_fms_read_with_subidx_err_err_code
,
6809 tvb
, offset
, 1, ErrorCode
,
6810 "%s (%u)", error_code
, ErrorCode
);
6814 proto_tree_add_item(sub_tree
,
6815 hf_ff_fms_read_with_subidx_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
6819 proto_tree_add_item(sub_tree
,
6820 hf_ff_fms_read_with_subidx_err_additional_desc
,
6821 tvb
, offset
, 16, ENC_ASCII
);
6826 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6833 * 6.5.3.31. FMS Write (Confirmed Service Id = 3)
6834 * 6.5.3.31.1. Request Message Parameters
6837 dissect_ff_msg_fms_write_req(tvbuff_t
*tvb
, int offset
,
6838 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6840 proto_tree
*sub_tree
;
6842 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Write Request");
6848 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_write_req
, NULL
, "FMS Write Request");
6850 proto_tree_add_item(sub_tree
,
6851 hf_ff_fms_write_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
6856 proto_tree_add_item(sub_tree
, hf_ff_data
, tvb
, offset
, length
, ENC_NA
);
6863 * 6.5.3.31.2. Response Message Parameters
6866 dissect_ff_msg_fms_write_rsp(tvbuff_t
*tvb
, int offset
,
6867 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6869 proto_tree
*sub_tree
;
6871 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Write Response");
6878 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
6879 ett_ff_fms_write_rsp
, NULL
, "FMS Write Response");
6881 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6888 * 6.5.3.31.3. Error Message Parameters
6891 dissect_ff_msg_fms_write_err(tvbuff_t
*tvb
, int offset
,
6892 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6894 proto_tree
*sub_tree
;
6897 const char *error_code
;
6899 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Write Error");
6905 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
, ett_ff_fms_write_err
, NULL
, "FMS Write Error");
6907 ErrorClass
= tvb_get_uint8(tvb
, offset
);
6908 proto_tree_add_item(sub_tree
,
6909 hf_ff_fms_write_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
6913 ErrorCode
= tvb_get_uint8(tvb
, offset
);
6914 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
6915 proto_tree_add_uint_format_value(sub_tree
, hf_ff_fms_write_err_err_code
,
6916 tvb
, offset
, 1, ErrorCode
,
6917 "%s (%u)", error_code
, ErrorCode
);
6921 proto_tree_add_item(sub_tree
,
6922 hf_ff_fms_write_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
6926 proto_tree_add_item(sub_tree
, hf_ff_fms_write_err_additional_desc
,
6927 tvb
, offset
, 16, ENC_ASCII
);
6932 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
6939 * 6.5.3.32. FMS Write with Subindex (Confirmed Service Id = 83)
6940 * 6.5.3.32.1. Request Message Parameters
6943 dissect_ff_msg_fms_write_subindex_req(tvbuff_t
*tvb
, int offset
,
6944 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6946 proto_tree
*sub_tree
;
6948 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Write with Subindex Request");
6954 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
6955 ett_ff_fms_write_with_subidx_req
, NULL
, "FMS Write with Subindex Request");
6957 proto_tree_add_item(sub_tree
,
6958 hf_ff_fms_write_with_subidx_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
6962 proto_tree_add_item(sub_tree
,
6963 hf_ff_fms_write_with_subidx_req_subidx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
6968 proto_tree_add_item(sub_tree
, hf_ff_data
, tvb
, offset
, length
, ENC_NA
);
6975 * 6.5.3.32.2. Response Message Parameters
6978 dissect_ff_msg_fms_write_subindex_rsp(tvbuff_t
*tvb
, int offset
,
6979 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
6981 proto_tree
*sub_tree
;
6983 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Write with Subindex Response");
6990 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
6991 ett_ff_fms_write_with_subidx_rsp
, NULL
, "FMS Write with Subindex Response");
6993 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
7000 * 6.5.3.32.3. Error Message Parameters
7003 dissect_ff_msg_fms_write_subindex_err(tvbuff_t
*tvb
, int offset
,
7004 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7006 proto_tree
*sub_tree
;
7009 const char *error_code
;
7011 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Write with Subindex Error");
7017 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7018 ett_ff_fms_write_with_subidx_err
, NULL
, "FMS Write with Subindex Error");
7020 ErrorClass
= tvb_get_uint8(tvb
, offset
);
7021 proto_tree_add_item(sub_tree
,
7022 hf_ff_fms_write_with_subidx_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
7026 ErrorCode
= tvb_get_uint8(tvb
, offset
);
7027 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
7028 proto_tree_add_uint_format_value(sub_tree
,
7029 hf_ff_fms_write_with_subidx_err_err_code
,
7030 tvb
, offset
, 1, ErrorCode
,
7031 "%s (%u)", error_code
, ErrorCode
);
7035 proto_tree_add_item(sub_tree
,
7036 hf_ff_fms_write_with_subidx_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
7040 proto_tree_add_item(sub_tree
,
7041 hf_ff_fms_write_with_subidx_err_additional_desc
,
7042 tvb
, offset
, 16, ENC_ASCII
);
7047 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
7054 * 6.5.3.33. FMS Define Variable List (Confirmed Service Id = 7)
7055 * 6.5.3.33.1. Request Message Parameters
7058 dissect_ff_msg_fms_def_variable_list_req_list_of_idxes(tvbuff_t
*tvb
,
7059 int offset
, proto_tree
*tree
, uint32_t value
)
7061 proto_tree
*sub_tree
;
7068 sub_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 4 * value
,
7069 ett_ff_fms_def_variable_list_req_list_of_idxes
, NULL
, "List Of Indexes (%u bytes)", 4 * value
);
7071 for (d
= 0; d
< value
; d
++) {
7072 proto_tree_add_item(sub_tree
,
7073 hf_ff_fms_def_variable_list_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7081 dissect_ff_msg_fms_def_variable_list_req(tvbuff_t
*tvb
, int offset
,
7082 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7084 proto_tree
*sub_tree
;
7085 uint32_t NumOfIndexes
;
7087 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Define Variable List Request");
7093 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7094 ett_ff_fms_def_variable_list_req
, NULL
, "FMS Define Variable List Request");
7096 NumOfIndexes
= tvb_get_ntohl(tvb
, offset
);
7097 proto_tree_add_item(sub_tree
,
7098 hf_ff_fms_def_variable_list_req_num_of_idxes
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7103 dissect_ff_msg_fms_def_variable_list_req_list_of_idxes(tvb
,
7104 offset
, sub_tree
, NumOfIndexes
);
7105 offset
+= 4 * NumOfIndexes
;
7106 length
-= 4 * NumOfIndexes
;
7110 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
7117 * 6.5.3.33.2. Response Message Parameters
7120 dissect_ff_msg_fms_def_variable_list_rsp(tvbuff_t
*tvb
, int offset
,
7121 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7123 proto_tree
*sub_tree
;
7125 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Define Variable List Response");
7131 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7132 ett_ff_fms_def_variable_list_rsp
, NULL
, "FMS Define Variable List Response");
7134 proto_tree_add_item(sub_tree
,
7135 hf_ff_fms_def_variable_list_rsp_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7140 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
7147 * 6.5.3.33.3. Error Message Parameters
7150 dissect_ff_msg_fms_def_variable_list_err(tvbuff_t
*tvb
, int offset
,
7151 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7153 proto_tree
*sub_tree
;
7156 const char *error_code
;
7158 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Define Variable List Error");
7164 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7165 ett_ff_fms_def_variable_list_err
, NULL
, "FMS Define Variable List Error");
7167 ErrorClass
= tvb_get_uint8(tvb
, offset
);
7168 proto_tree_add_item(sub_tree
,
7169 hf_ff_fms_def_variable_list_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
7173 ErrorCode
= tvb_get_uint8(tvb
, offset
);
7174 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
7175 proto_tree_add_uint_format_value(sub_tree
,
7176 hf_ff_fms_def_variable_list_err_err_code
,
7177 tvb
, offset
, 1, ErrorCode
,
7178 "%s (%u)", error_code
, ErrorCode
);
7182 proto_tree_add_item(sub_tree
,
7183 hf_ff_fms_def_variable_list_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
7187 proto_tree_add_item(sub_tree
,
7188 hf_ff_fms_def_variable_list_err_additional_desc
,
7189 tvb
, offset
, 16, ENC_ASCII
);
7194 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
7201 * 6.5.3.34. FMS Delete Variable List (Confirmed Service Id = 8)
7202 * 6.5.3.34.1. Request Message Parameters
7205 dissect_ff_msg_fms_del_variable_list_req(tvbuff_t
*tvb
, int offset
,
7206 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7208 proto_tree
*sub_tree
;
7210 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Delete Variable List Request");
7216 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7217 ett_ff_fms_del_variable_list_req
, NULL
, "FMS Delete Variable List Request");
7219 proto_tree_add_item(sub_tree
,
7220 hf_ff_fms_del_variable_list_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7225 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
7232 * 6.5.3.34.2. Response Message Parameters
7235 dissect_ff_msg_fms_del_variable_list_rsp(tvbuff_t
*tvb
, int offset
,
7236 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7238 proto_tree
*sub_tree
;
7240 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Delete Variable List Response");
7247 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7248 ett_ff_fms_del_variable_list_rsp
, NULL
, "FMS Delete Variable List Response");
7250 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
7257 * 6.5.3.34.3. Error Message Parameters
7260 dissect_ff_msg_fms_del_variable_list_err(tvbuff_t
*tvb
, int offset
,
7261 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7263 proto_tree
*sub_tree
;
7266 const char *error_code
;
7268 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Delete Variable List Error");
7274 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7275 ett_ff_fms_del_variable_list_err
, NULL
, "FMS Delete Variable List Error");
7277 ErrorClass
= tvb_get_uint8(tvb
, offset
);
7278 proto_tree_add_item(sub_tree
,
7279 hf_ff_fms_del_variable_list_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
7283 ErrorCode
= tvb_get_uint8(tvb
, offset
);
7284 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
7285 proto_tree_add_uint_format_value(sub_tree
,
7286 hf_ff_fms_del_variable_list_err_err_code
,
7287 tvb
, offset
, 1, ErrorCode
,
7288 "%s (%u)", error_code
, ErrorCode
);
7292 proto_tree_add_item(sub_tree
,
7293 hf_ff_fms_del_variable_list_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
7297 proto_tree_add_item(sub_tree
,
7298 hf_ff_fms_del_variable_list_err_additional_desc
,
7299 tvb
, offset
, 16, ENC_ASCII
);
7304 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
7311 * 6.5.3.35. FMS Information Report (Unconfirmed Service Id = 0)
7312 * 6.5.3.35.1. Request Message Parameters
7315 dissect_ff_msg_fms_info_report_req(tvbuff_t
*tvb
, int offset
,
7316 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7318 proto_tree
*sub_tree
;
7320 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Information Report Request");
7326 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7327 ett_ff_fms_info_report_req
, NULL
, "FMS Information Report Request");
7329 proto_tree_add_item(sub_tree
,
7330 hf_ff_fms_info_report_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7335 proto_tree_add_item(sub_tree
, hf_ff_data
, tvb
, offset
, length
, ENC_NA
);
7342 * 6.5.3.36. FMS Information Report with Subindex
7343 * (Unconfirmed Service Id = 16)
7344 * 6.5.3.36.1. Request Message Parameters
7347 dissect_ff_msg_fms_info_report_subindex_req(tvbuff_t
*tvb
, int offset
,
7348 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7350 proto_tree
*sub_tree
;
7352 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Information Report with Subindex Request");
7358 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7359 ett_ff_fms_info_report_with_subidx_req
, NULL
, "FMS Information Report with Subindex Request");
7361 proto_tree_add_item(sub_tree
,
7362 hf_ff_fms_info_report_with_subidx_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7366 proto_tree_add_item(sub_tree
,
7367 hf_ff_fms_info_report_with_subidx_req_subidx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7372 proto_tree_add_item(sub_tree
, hf_ff_data
, tvb
, offset
, length
, ENC_NA
);
7379 * 6.5.3.37. FMS Information Report On Change (Unconfirmed Service Id = 17)
7380 * 6.5.3.37.1. Request Message Parameters
7383 dissect_ff_msg_fms_info_report_change_req(tvbuff_t
*tvb
, int offset
,
7384 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7386 proto_tree
*sub_tree
;
7388 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Information Report On Change Request");
7394 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7395 ett_ff_fms_info_report_on_change_req
, NULL
, "FMS Information Report On Change Request");
7397 proto_tree_add_item(sub_tree
,
7398 hf_ff_fms_info_report_on_change_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7403 proto_tree_add_item(sub_tree
, hf_ff_data
, tvb
, offset
, length
, ENC_NA
);
7410 * 6.5.3.38. FMS Information Report On Change with Subindex
7411 * (Unconfirmed Service Id = 18)
7412 * 6.5.3.38.1. Request Message Parameters
7415 dissect_ff_msg_fms_info_report_change_subindex_req(
7416 tvbuff_t
*tvb
, int offset
,
7417 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7419 proto_tree
*sub_tree
;
7421 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Information Report On Change with Subindex Request");
7427 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7428 ett_ff_fms_info_report_on_change_with_subidx_req
, NULL
, "FMS Information Report On Change with Subindex Request");
7430 proto_tree_add_item(sub_tree
,
7431 hf_ff_fms_info_report_on_change_with_subidx_req_idx
,
7432 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7436 proto_tree_add_item(sub_tree
,
7437 hf_ff_fms_info_report_on_change_with_subidx_req_subidx
,
7438 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7443 proto_tree_add_item(sub_tree
, hf_ff_data
, tvb
, offset
, length
, ENC_NA
);
7450 * 6.5.3.39. FMS Event Notification (Unconfirmed Service Id = 2)
7451 * 6.5.3.39.1. Request Message Parameters
7454 dissect_ff_msg_fms_ev_notification_req(
7455 tvbuff_t
*tvb
, int offset
,
7456 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7458 proto_tree
*sub_tree
;
7460 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Event Notification Request");
7466 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7467 ett_ff_fms_ev_notification_req
, NULL
, "FMS Event Notification Request");
7469 proto_tree_add_item(sub_tree
,
7470 hf_ff_fms_ev_notification_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7474 proto_tree_add_item(sub_tree
,
7475 hf_ff_fms_ev_notification_req_ev_num
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7480 proto_tree_add_item(sub_tree
, hf_ff_data
, tvb
, offset
, length
, ENC_NA
);
7487 * 6.5.3.40. FMS Alter Event Condition Monitoring (Confirmed Service Id = 24)
7488 * 6.5.3.40.1. Request Message Parameters
7491 dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_req(
7492 tvbuff_t
*tvb
, int offset
,
7493 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7495 proto_tree
*sub_tree
;
7497 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Alter Event Condition Monitoring Request");
7503 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7504 ett_ff_fms_alter_ev_condition_monitoring_req
, NULL
, "FMS Alter Event Condition Monitoring Request");
7506 proto_tree_add_item(sub_tree
,
7507 hf_ff_fms_alter_ev_condition_monitoring_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7511 proto_tree_add_item(sub_tree
, hf_ff_reserved24
, tvb
, offset
, 3, ENC_BIG_ENDIAN
);
7515 proto_tree_add_item(sub_tree
,
7516 hf_ff_fms_alter_ev_condition_monitoring_req_enabled
,
7517 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
7522 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
7529 * 6.5.3.40.2. Response Message Parameters
7532 dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_rsp(
7533 tvbuff_t
*tvb
, int offset
,
7534 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7536 proto_tree
*sub_tree
;
7538 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Alter Event Condition Monitoring Response");
7545 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7546 ett_ff_fms_alter_ev_condition_monitoring_rsp
, NULL
, "FMS Alter Event Condition Monitoring Response");
7548 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
7555 * 6.5.3.40.3. Error Message Parameters
7558 dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_err(
7559 tvbuff_t
*tvb
, int offset
,
7560 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7562 proto_tree
*sub_tree
;
7565 const char *error_code
;
7567 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Alter Event Condition Monitoring Error");
7573 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7574 ett_ff_fms_alter_ev_condition_monitoring_err
, NULL
, "FMS Alter Event Condition Monitoring Error");
7576 ErrorClass
= tvb_get_uint8(tvb
, offset
);
7577 proto_tree_add_item(sub_tree
,
7578 hf_ff_fms_alter_ev_condition_monitoring_err_err_class
,
7579 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
7583 ErrorCode
= tvb_get_uint8(tvb
, offset
);
7584 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
7585 proto_tree_add_uint_format_value(sub_tree
,
7586 hf_ff_fms_alter_ev_condition_monitoring_err_err_code
,
7587 tvb
, offset
, 1, ErrorCode
,
7588 "%s (%u)", error_code
, ErrorCode
);
7592 proto_tree_add_item(sub_tree
,
7593 hf_ff_fms_alter_ev_condition_monitoring_err_additional_code
,
7594 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
7598 proto_tree_add_item(sub_tree
,
7599 hf_ff_fms_alter_ev_condition_monitoring_err_additional_desc
,
7600 tvb
, offset
, 16, ENC_ASCII
);
7605 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
7612 * 6.5.3.41. FMS Acknowledge Event Notification (Confirmed Service Id = 25)
7613 * 6.5.3.41.1. Request Message Parameters
7616 dissect_ff_msg_fms_ack_ev_notification_req(
7617 tvbuff_t
*tvb
, int offset
,
7618 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7620 proto_tree
*sub_tree
;
7622 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Acknowledge Event Notification Request");
7628 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7629 ett_ff_fms_ack_ev_notification_req
, NULL
, "FMS Acknowledge Event Notification Request");
7631 proto_tree_add_item(sub_tree
,
7632 hf_ff_fms_ack_ev_notification_req_idx
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7636 proto_tree_add_item(sub_tree
,
7637 hf_ff_fms_ack_ev_notification_req_ev_num
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7642 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
7649 * 6.5.3.41.2. Response Message Parameters
7652 dissect_ff_msg_fms_ack_ev_notification_rsp(
7653 tvbuff_t
*tvb
, int offset
,
7654 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7656 proto_tree
*sub_tree
;
7658 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Acknowledge Event Notification Response");
7665 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7666 ett_ff_fms_ack_ev_notification_rsp
, NULL
, "FMS Acknowledge Event Notification Response");
7668 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
7675 * 6.5.3.41.3. Error Message Parameters
7678 dissect_ff_msg_fms_ack_ev_notification_err(
7679 tvbuff_t
*tvb
, int offset
,
7680 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7682 proto_tree
*sub_tree
;
7685 const char *error_code
;
7687 col_set_str(pinfo
->cinfo
, COL_INFO
, "FMS Acknowledge Event Notification Error");
7693 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7694 ett_ff_fms_ack_ev_notification_err
, NULL
, "FMS Acknowledge Event Notification Error");
7696 ErrorClass
= tvb_get_uint8(tvb
, offset
);
7697 proto_tree_add_item(sub_tree
,
7698 hf_ff_fms_ack_ev_notification_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
7702 ErrorCode
= tvb_get_uint8(tvb
, offset
);
7703 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
7704 proto_tree_add_uint_format_value(sub_tree
,
7705 hf_ff_fms_ack_ev_notification_err_err_code
,
7706 tvb
, offset
, 1, ErrorCode
,
7707 "%s (%u)", error_code
, ErrorCode
);
7711 proto_tree_add_item(sub_tree
,
7712 hf_ff_fms_ack_ev_notification_err_additional_code
,
7713 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
7717 proto_tree_add_item(sub_tree
,
7718 hf_ff_fms_ack_ev_notification_err_additional_desc
,
7719 tvb
, offset
, 16, ENC_ASCII
);
7724 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
7731 * 6.5.4.1. LAN Redundancy Get Information (Confirmed Service Id = 1)
7732 * 6.5.4.1.1. Request Message Parameters
7735 dissect_ff_msg_lr_get_info_req(
7736 tvbuff_t
*tvb
, int offset
,
7737 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7739 proto_tree
*sub_tree
;
7741 col_set_str(pinfo
->cinfo
, COL_INFO
, "LAN Redundancy Get Information Request");
7748 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7749 ett_ff_lr_get_info_req
, NULL
, "LAN Redundancy Get Information Request");
7751 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
7758 * 6.5.4.1.2. Response Message Parameters
7761 dissect_ff_msg_lr_get_info_rsp_lr_flags(tvbuff_t
*tvb
,
7762 int offset
, proto_tree
*tree
)
7765 * Bits 6-8: Reserved (not used) = 0
7766 * Bit 5: Load Balancing Enabled
7767 * 0 = False Do not do load balancing
7768 * 1 = True Do load balancing
7769 * Bit 4: Diagnosis Using Own Messages Enabled
7770 * 0 = False Do not use own diagnostic messages for diagnosis
7771 * 1 = True Use own diagnostic messages for diagnosis
7772 * Bit 3: Single Multicast Message Reception Interface Enabled
7773 * 0 = False Listen for multicast addresses
7774 * on both interfaces
7775 * 1 = True Listen for multicast addresses
7777 * if zero or one fault detected
7778 * in network status table
7779 * Bit 2: Crossed Cable Detection Enabled
7780 * 0 = False Do not detect crossed cables
7781 * 1 = True Detect crossed cables
7782 * B1 (lsb): Single Multicast Message Transmission Interface Enabled
7783 * 0 = False Transmit on both interfaces
7784 * 1 = True Transmit on one interface
7786 static int * const lan_flags
[] = {
7787 &hf_ff_lr_get_info_rsp_lr_flags_reserved
,
7788 &hf_ff_lr_get_info_rsp_lr_flags_load_balance
,
7789 &hf_ff_lr_get_info_rsp_lr_flags_diag
,
7790 &hf_ff_lr_get_info_rsp_lr_flags_multi_recv
,
7791 &hf_ff_lr_get_info_rsp_lr_flags_cross_cable
,
7792 &hf_ff_lr_get_info_rsp_lr_flags_multi_trans
,
7796 proto_tree_add_bitmask(tree
, tvb
, offset
, hf_ff_lr_get_info_rsp_lr_flags
, ett_ff_lr_get_info_rsp_lr_flags
, lan_flags
, ENC_BIG_ENDIAN
);
7802 dissect_ff_msg_lr_get_info_rsp(
7803 tvbuff_t
*tvb
, int offset
,
7804 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7806 proto_tree
*sub_tree
;
7807 uint8_t MaxMsgNumDiff
;
7809 col_set_str(pinfo
->cinfo
, COL_INFO
, "LAN Redundancy Get Information Response");
7815 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7816 ett_ff_lr_get_info_rsp
, NULL
, "LAN Redundancy Get Information Response");
7818 proto_tree_add_item(sub_tree
,
7819 hf_ff_lr_get_info_rsp_lr_attrs_ver
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7823 MaxMsgNumDiff
= tvb_get_uint8(tvb
, offset
);
7824 switch (MaxMsgNumDiff
) {
7827 proto_tree_add_uint_format_value(sub_tree
,
7828 hf_ff_lr_get_info_rsp_lr_max_msg_num_diff
,
7829 tvb
, offset
, 1, MaxMsgNumDiff
,
7830 "Do not detect a fault (%u)",
7835 proto_tree_add_item(sub_tree
,
7836 hf_ff_lr_get_info_rsp_lr_max_msg_num_diff
,
7837 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
7842 dissect_ff_msg_lr_get_info_rsp_lr_flags(tvb
, offset
, sub_tree
);
7846 proto_tree_add_item(sub_tree
,
7847 hf_ff_lr_get_info_rsp_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
7851 proto_tree_add_item(sub_tree
,
7852 hf_ff_lr_get_info_rsp_diagnostic_msg_intvl
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7856 proto_tree_add_item(sub_tree
,
7857 hf_ff_lr_get_info_rsp_aging_time
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
7861 proto_tree_add_item(sub_tree
,
7862 hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_send_addr
,
7863 tvb
, offset
, 16, ENC_NA
);
7867 proto_tree_add_item(sub_tree
,
7868 hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_recv_addr
,
7869 tvb
, offset
, 16, ENC_NA
);
7873 proto_tree_add_item(sub_tree
,
7874 hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_send_addr
,
7875 tvb
, offset
, 16, ENC_NA
);
7879 proto_tree_add_item(sub_tree
,
7880 hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_recv_addr
,
7881 tvb
, offset
, 16, ENC_NA
);
7886 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
7893 * 6.5.4.1.3. Error Message Parameters
7896 dissect_ff_msg_lr_get_info_err(
7897 tvbuff_t
*tvb
, int offset
,
7898 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7900 proto_tree
*sub_tree
;
7903 const char *error_code
;
7905 col_set_str(pinfo
->cinfo
, COL_INFO
, "LAN Redundancy Get Information Error");
7911 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
7912 ett_ff_lr_get_info_err
, NULL
, "LAN Redundancy Get Information Error");
7914 ErrorClass
= tvb_get_uint8(tvb
, offset
);
7915 proto_tree_add_item(sub_tree
,
7916 hf_ff_lr_get_info_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
7920 ErrorCode
= tvb_get_uint8(tvb
, offset
);
7921 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
7922 proto_tree_add_uint_format_value(sub_tree
, hf_ff_lr_get_info_err_err_code
,
7923 tvb
, offset
, 1, ErrorCode
,
7924 "%s (%u)", error_code
, ErrorCode
);
7928 proto_tree_add_item(sub_tree
,
7929 hf_ff_lr_get_info_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
7933 proto_tree_add_item(sub_tree
,
7934 hf_ff_lr_get_info_err_additional_desc
,
7935 tvb
, offset
, 16, ENC_ASCII
);
7940 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
7947 * 6.5.4.2. LAN Redundancy Put Information (Confirmed Service Id = 2)
7948 * 6.5.4.2.1. Request Message Parameters
7951 dissect_ff_msg_lr_put_info_req_lr_flags(tvbuff_t
*tvb
,
7952 int offset
, proto_tree
*tree
)
7955 * Bits 6-8: Reserved (not used) = 0
7956 * Bit 5: Load Balancing Enabled
7957 * 0 = False Do not do load balancing
7958 * 1 = True Do load balancing
7959 * Bit 4: Diagnosis Using Own Messages Enabled
7960 * 0 = False Do not use own diagnostic messages for diagnosis
7961 * 1 = True Use own diagnostic messages for diagnosis
7962 * Bit 3: Single Multicast Message Reception Interface Enabled
7963 * 0 = False Listen for multicast addresses
7964 * on both interfaces
7965 * 1 = True Listen for multicast addresses
7967 * if zero or one fault detected
7968 * in network status table
7969 * Bit 2: Crossed Cable Detection Enabled
7970 * 0 = False Do not detect crossed cables
7971 * 1 = True Detect crossed cables
7972 * B1 (lsb): Single Multicast Message Transmission Interface Enabled
7973 * 0 = False Transmit on both interfaces
7974 * 1 = True Transmit on one interface
7976 static int * const lan_flags
[] = {
7977 &hf_ff_lr_put_info_req_lr_flags_reserved
,
7978 &hf_ff_lr_put_info_req_lr_flags_load_balance
,
7979 &hf_ff_lr_put_info_req_lr_flags_diag
,
7980 &hf_ff_lr_put_info_req_lr_flags_multi_recv
,
7981 &hf_ff_lr_put_info_req_lr_flags_cross_cable
,
7982 &hf_ff_lr_put_info_req_lr_flags_multi_trans
,
7986 proto_tree_add_bitmask(tree
, tvb
, offset
, hf_ff_lr_put_info_req_lr_flags
, ett_ff_lr_put_info_req_lr_flags
, lan_flags
, ENC_BIG_ENDIAN
);
7992 dissect_ff_msg_lr_put_info_req(
7993 tvbuff_t
*tvb
, int offset
,
7994 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
7996 proto_tree
*sub_tree
;
7997 uint8_t MaxMsgNumDiff
;
7999 col_set_str(pinfo
->cinfo
, COL_INFO
, "LAN Redundancy Put Information Request");
8005 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
8006 ett_ff_lr_put_info_req
, NULL
, "LAN Redundancy Put Information Request");
8008 proto_tree_add_item(sub_tree
,
8009 hf_ff_lr_put_info_req_lr_attrs_ver
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8013 MaxMsgNumDiff
= tvb_get_uint8(tvb
, offset
);
8014 switch (MaxMsgNumDiff
) {
8017 proto_tree_add_uint_format_value(sub_tree
,
8018 hf_ff_lr_put_info_req_lr_max_msg_num_diff
,
8019 tvb
, offset
, 1, MaxMsgNumDiff
,
8020 "Do not detect a fault (%u)",
8025 proto_tree_add_item(sub_tree
,
8026 hf_ff_lr_put_info_req_lr_max_msg_num_diff
,
8027 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8032 dissect_ff_msg_lr_put_info_req_lr_flags(tvb
, offset
, sub_tree
);
8036 proto_tree_add_item(sub_tree
,
8037 hf_ff_lr_put_info_req_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
8041 proto_tree_add_item(sub_tree
,
8042 hf_ff_lr_put_info_req_diagnostic_msg_intvl
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8046 proto_tree_add_item(sub_tree
,
8047 hf_ff_lr_put_info_req_aging_time
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8051 proto_tree_add_item(sub_tree
,
8052 hf_ff_lr_put_info_req_diagnostic_msg_if_a_send_addr
,
8053 tvb
, offset
, 16, ENC_NA
);
8057 proto_tree_add_item(sub_tree
,
8058 hf_ff_lr_put_info_req_diagnostic_msg_if_a_recv_addr
,
8059 tvb
, offset
, 16, ENC_NA
);
8063 proto_tree_add_item(sub_tree
,
8064 hf_ff_lr_put_info_req_diagnostic_msg_if_b_send_addr
,
8065 tvb
, offset
, 16, ENC_NA
);
8069 proto_tree_add_item(sub_tree
,
8070 hf_ff_lr_put_info_req_diagnostic_msg_if_b_recv_addr
,
8071 tvb
, offset
, 16, ENC_NA
);
8076 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
8083 * 6.5.4.2.2. Response Message Parameters
8086 dissect_ff_msg_lr_put_info_rsp_lr_flags(tvbuff_t
*tvb
,
8087 int offset
, proto_tree
*tree
)
8090 * Bits 6-8: Reserved (not used) = 0
8091 * Bit 5: Load Balancing Enabled
8092 * 0 = False Do not do load balancing
8093 * 1 = True Do load balancing
8094 * Bit 4: Diagnosis Using Own Messages Enabled
8095 * 0 = False Do not use own diagnostic messages for diagnosis
8096 * 1 = True Use own diagnostic messages for diagnosis
8097 * Bit 3: Single Multicast Message Reception Interface Enabled
8098 * 0 = False Listen for multicast addresses
8099 * on both interfaces
8100 * 1 = True Listen for multicast addresses
8102 * if zero or one fault detected
8103 * in network status table
8104 * Bit 2: Crossed Cable Detection Enabled
8105 * 0 = False Do not detect crossed cables
8106 * 1 = True Detect crossed cables
8107 * B1 (lsb): Single Multicast Message Transmission Interface Enabled
8108 * 0 = False Transmit on both interfaces
8109 * 1 = True Transmit on one interface
8111 static int * const lan_flags
[] = {
8112 &hf_ff_lr_put_info_rsp_lr_flags_reserved
,
8113 &hf_ff_lr_put_info_rsp_lr_flags_load_balance
,
8114 &hf_ff_lr_put_info_rsp_lr_flags_diag
,
8115 &hf_ff_lr_put_info_rsp_lr_flags_multi_recv
,
8116 &hf_ff_lr_put_info_rsp_lr_flags_cross_cable
,
8117 &hf_ff_lr_put_info_rsp_lr_flags_multi_trans
,
8121 proto_tree_add_bitmask(tree
, tvb
, offset
, hf_ff_lr_put_info_rsp_lr_flags
, ett_ff_lr_put_info_rsp_lr_flags
, lan_flags
, ENC_BIG_ENDIAN
);
8127 dissect_ff_msg_lr_put_info_rsp(
8128 tvbuff_t
*tvb
, int offset
,
8129 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
8131 proto_tree
*sub_tree
;
8132 uint8_t MaxMsgNumDiff
;
8134 col_set_str(pinfo
->cinfo
, COL_INFO
, "LAN Redundancy Put Information Response");
8140 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
8141 ett_ff_lr_put_info_rsp
, NULL
, "LAN Redundancy Put Information Response");
8143 proto_tree_add_item(sub_tree
,
8144 hf_ff_lr_put_info_rsp_lr_attrs_ver
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8148 MaxMsgNumDiff
= tvb_get_uint8(tvb
, offset
);
8149 switch (MaxMsgNumDiff
) {
8152 proto_tree_add_uint_format_value(sub_tree
,
8153 hf_ff_lr_put_info_rsp_lr_max_msg_num_diff
,
8154 tvb
, offset
, 1, MaxMsgNumDiff
,
8155 "Do not detect a fault (%u)",
8160 proto_tree_add_item(sub_tree
,
8161 hf_ff_lr_put_info_rsp_lr_max_msg_num_diff
,
8162 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8167 dissect_ff_msg_lr_put_info_rsp_lr_flags(tvb
, offset
, sub_tree
);
8171 proto_tree_add_item(sub_tree
,
8172 hf_ff_lr_put_info_rsp_reserved
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
8176 proto_tree_add_item(sub_tree
,
8177 hf_ff_lr_put_info_rsp_diagnostic_msg_intvl
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8181 proto_tree_add_item(sub_tree
,
8182 hf_ff_lr_put_info_rsp_aging_time
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8186 proto_tree_add_item(sub_tree
,
8187 hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_send_addr
,
8188 tvb
, offset
, 16, ENC_NA
);
8192 proto_tree_add_item(sub_tree
,
8193 hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_recv_addr
,
8194 tvb
, offset
, 16, ENC_NA
);
8198 proto_tree_add_item(sub_tree
,
8199 hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_send_addr
,
8200 tvb
, offset
, 16, ENC_NA
);
8204 proto_tree_add_item(sub_tree
,
8205 hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_recv_addr
,
8206 tvb
, offset
, 16, ENC_NA
);
8211 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
8218 * 6.5.4.2.3. Error Message Parameters
8221 dissect_ff_msg_lr_put_info_err(
8222 tvbuff_t
*tvb
, int offset
,
8223 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
8225 proto_tree
*sub_tree
;
8228 const char *error_code
;
8230 col_set_str(pinfo
->cinfo
, COL_INFO
, "LAN Redundancy Put Information Error");
8236 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
8237 ett_ff_lr_put_info_err
, NULL
, "LAN Redundancy Put Information Error");
8239 ErrorClass
= tvb_get_uint8(tvb
, offset
);
8240 proto_tree_add_item(sub_tree
,
8241 hf_ff_lr_put_info_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8245 ErrorCode
= tvb_get_uint8(tvb
, offset
);
8246 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
8247 proto_tree_add_uint_format_value(sub_tree
, hf_ff_lr_put_info_err_err_code
,
8248 tvb
, offset
, 1, ErrorCode
,
8249 "%s (%u)", error_code
, ErrorCode
);
8253 proto_tree_add_item(sub_tree
,
8254 hf_ff_lr_put_info_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
8258 proto_tree_add_item(sub_tree
,
8259 hf_ff_lr_put_info_err_additional_desc
,
8260 tvb
, offset
, 16, ENC_ASCII
);
8265 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
8274 * 6.5.4.3. LAN Redundancy Get Statistics (Confirmed Service Id = 3)
8275 * 6.5.4.3.1. Request Message Parameters
8278 dissect_ff_msg_lr_get_statistics_req(
8279 tvbuff_t
*tvb
, int offset
,
8280 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
8282 proto_tree
*sub_tree
;
8284 col_set_str(pinfo
->cinfo
, COL_INFO
, "LAN Redundancy Get Statistics Request");
8291 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
8292 ett_ff_lr_get_statistics_req
, NULL
, "LAN Redundancy Get Statistics Request");
8294 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
8301 * 6.5.4.3.2. Response Message Parameters
8304 dissect_ff_msg_lr_get_statistics_rsp_x_cable_stat(tvbuff_t
*tvb
,
8305 int offset
, proto_tree
*tree
, uint32_t value
)
8307 proto_tree
*sub_tree
;
8314 sub_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 4 * value
,
8315 ett_ff_lr_get_statistics_rsp_list_of_x_cable_stat
, NULL
,
8316 "List of Crossed Cable Status (%u bytes)", 4 * value
);
8318 for (d
= 0; d
< value
; d
++) {
8319 proto_tree_add_item(sub_tree
,
8320 hf_ff_lr_get_statistics_rsp_x_cable_stat
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8329 dissect_ff_msg_lr_get_statistics_rsp(
8330 tvbuff_t
*tvb
, int offset
,
8331 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
8333 proto_tree
*sub_tree
;
8334 uint32_t NumXcableStat
;
8336 col_set_str(pinfo
->cinfo
, COL_INFO
, "LAN Redundancy Get Statistics Response");
8342 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
8343 ett_ff_lr_get_statistics_rsp
, NULL
, "LAN Redundancy Get Statistics Response");
8345 proto_tree_add_item(sub_tree
,
8346 hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_a
,
8347 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8351 proto_tree_add_item(sub_tree
,
8352 hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_a
,
8353 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8357 proto_tree_add_item(sub_tree
,
8358 hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_a
,
8359 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8363 proto_tree_add_item(sub_tree
,
8364 hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_b
,
8365 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8369 proto_tree_add_item(sub_tree
,
8370 hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_b
,
8371 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8375 proto_tree_add_item(sub_tree
,
8376 hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_b
,
8377 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8381 NumXcableStat
= tvb_get_ntohl(tvb
, offset
);
8382 proto_tree_add_item(sub_tree
,
8383 hf_ff_lr_get_statistics_rsp_num_x_cable_stat
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8387 if (NumXcableStat
) {
8388 dissect_ff_msg_lr_get_statistics_rsp_x_cable_stat(tvb
,
8389 offset
, sub_tree
, NumXcableStat
);
8390 offset
+= 4 * NumXcableStat
;
8391 length
-= 4 * NumXcableStat
;
8395 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
8402 * 6.5.4.3.3. Error Message Parameters
8405 dissect_ff_msg_lr_get_statistics_err(
8406 tvbuff_t
*tvb
, int offset
,
8407 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
8409 proto_tree
*sub_tree
;
8412 const char *error_code
;
8414 col_set_str(pinfo
->cinfo
, COL_INFO
, "LAN Redundancy Get Statistics Error");
8420 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
8421 ett_ff_lr_get_statistics_err
, NULL
, "LAN Redundancy Get Statistics Error");
8423 ErrorClass
= tvb_get_uint8(tvb
, offset
);
8424 proto_tree_add_item(sub_tree
,
8425 hf_ff_lr_get_statistics_err_err_class
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8429 ErrorCode
= tvb_get_uint8(tvb
, offset
);
8430 error_code
= val_to_str_err_code(ErrorClass
, ErrorCode
);
8431 proto_tree_add_uint_format_value(sub_tree
,
8432 hf_ff_lr_get_statistics_err_err_code
,
8433 tvb
, offset
, 1, ErrorCode
,
8434 "%s (%u)", error_code
, ErrorCode
);
8438 proto_tree_add_item(sub_tree
,
8439 hf_ff_lr_get_statistics_err_additional_code
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
8443 proto_tree_add_item(sub_tree
,
8444 hf_ff_lr_get_statistics_err_additional_desc
,
8445 tvb
, offset
, 16, ENC_ASCII
);
8450 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
8457 * 6.5.4.4. Diagnostic Message (Unconfirmed Service Id = 1)
8458 * 6.5.4.4.1. Request Message Parameters
8461 dissect_ff_msg_diagnostic_msg_req_dup_detection_stat(tvbuff_t
*tvb
,
8462 int offset
, proto_tree
*tree
)
8465 * Bits 3-8: Reserved, set to 0.
8466 * Bit 2: 1 = Duplicate PD Tag Detected
8467 * 0 = Duplicate PD Tag Not Detected
8468 * Bit 18: 1 = Duplicate Device Index Detected
8469 * 0 = Duplicate Device Index Not Detected
8471 static int * const dup_flags
[] = {
8472 &hf_ff_lr_diagnostic_msg_req_dup_detection_state_reserved
,
8473 &hf_ff_lr_diagnostic_msg_req_dup_detection_state_pd_tag
,
8474 &hf_ff_lr_diagnostic_msg_req_dup_detection_state_device
,
8478 proto_tree_add_bitmask(tree
, tvb
, offset
, hf_ff_lr_diagnostic_msg_req_dup_detection_state
, ett_ff_lr_diagnostic_msg_req_dup_detection_stat
, dup_flags
, ENC_BIG_ENDIAN
);
8484 dissect_ff_msg_diagnostic_msg_req_if_a_to_a_status(tvbuff_t
*tvb
,
8485 int offset
, proto_tree
*tree
, uint32_t value
)
8487 proto_tree
*sub_tree
;
8494 sub_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 4 * value
,
8495 ett_ff_lr_diagnostic_msg_req_a_to_a_status
, NULL
,
8496 "List of Interface AtoA Statuses (%u bytes)", 4 * value
);
8498 for (d
= 0; d
< value
; d
++) {
8499 proto_tree_add_item(sub_tree
,
8500 hf_ff_lr_diagnostic_msg_req_if_a_to_a_status
,
8501 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8510 dissect_ff_msg_diagnostic_msg_req_if_b_to_a_status(tvbuff_t
*tvb
,
8511 int offset
, proto_tree
*tree
, uint32_t value
)
8513 proto_tree
*sub_tree
;
8520 sub_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 4 * value
,
8521 ett_ff_lr_diagnostic_msg_req_b_to_a_status
, NULL
,
8522 "List of Interface BtoA Statuses (%u bytes)", 4 * value
);
8524 for (d
= 0; d
< value
; d
++) {
8525 proto_tree_add_item(sub_tree
,
8526 hf_ff_lr_diagnostic_msg_req_if_b_to_a_status
,
8527 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8536 dissect_ff_msg_diagnostic_msg_req_if_a_to_b_status(tvbuff_t
*tvb
,
8537 int offset
, proto_tree
*tree
, uint32_t value
)
8539 proto_tree
*sub_tree
;
8546 sub_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 4 * value
,
8547 ett_ff_lr_diagnostic_msg_req_a_to_b_status
, NULL
,
8548 "List of Interface AtoB Statuses (%u bytes)", 4 * value
);
8550 for (d
= 0; d
< value
; d
++) {
8551 proto_tree_add_item(sub_tree
,
8552 hf_ff_lr_diagnostic_msg_req_if_a_to_b_status
,
8553 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8562 dissect_ff_msg_diagnostic_msg_req_if_b_to_b_status(tvbuff_t
*tvb
,
8563 int offset
, proto_tree
*tree
, uint32_t value
)
8565 proto_tree
*sub_tree
;
8572 sub_tree
= proto_tree_add_subtree_format(tree
, tvb
, offset
, 4 * value
,
8573 ett_ff_lr_diagnostic_msg_req_b_to_b_status
, NULL
,
8574 "List of Interface BtoB Statuses (%u bytes)", 4 * value
);
8576 for (d
= 0; d
< value
; d
++) {
8577 proto_tree_add_item(sub_tree
,
8578 hf_ff_lr_diagnostic_msg_req_if_b_to_b_status
,
8579 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8588 dissect_ff_msg_diagnostic_msg_req(
8589 tvbuff_t
*tvb
, int offset
,
8590 uint32_t length
, packet_info
*pinfo
, proto_tree
*tree
)
8592 proto_tree
*sub_tree
;
8593 uint16_t DeviceIndex
;
8594 uint16_t NumOfInterfaceStatuses
;
8596 col_set_str(pinfo
->cinfo
, COL_INFO
, "Diagnostic Message Request");
8602 sub_tree
= proto_tree_add_subtree(tree
, tvb
, offset
, length
,
8603 ett_ff_lr_diagnostic_msg_req
, NULL
, "Diagnostic Message Request");
8605 DeviceIndex
= tvb_get_ntohs(tvb
, offset
);
8607 proto_tree_add_item(sub_tree
,
8608 hf_ff_lr_diagnostic_msg_req_dev_idx
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
8610 proto_tree_add_uint_format_value(sub_tree
,
8611 hf_ff_lr_diagnostic_msg_req_dev_idx
,
8612 tvb
, offset
, 2, DeviceIndex
,
8613 "Index not assigned (%u)", DeviceIndex
);
8618 proto_tree_add_item(sub_tree
,
8619 hf_ff_lr_diagnostic_msg_req_num_of_network_ifs
,
8620 tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8624 proto_tree_add_item(sub_tree
,
8625 hf_ff_lr_diagnostic_msg_req_transmission_if
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8629 proto_tree_add_item(sub_tree
,
8630 hf_ff_lr_diagnostic_msg_req_diagnostic_msg_intvl
,
8631 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
8635 proto_tree_add_item(sub_tree
,
8636 hf_ff_lr_diagnostic_msg_req_pd_tag
, tvb
, offset
, 32, ENC_ASCII
);
8640 proto_tree_add_item(sub_tree
,
8641 hf_ff_lr_diagnostic_msg_req_reserved
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
8645 dissect_ff_msg_diagnostic_msg_req_dup_detection_stat(tvb
,
8650 NumOfInterfaceStatuses
= tvb_get_ntohs(tvb
, offset
);
8651 proto_tree_add_item(sub_tree
,
8652 hf_ff_lr_diagnostic_msg_req_num_of_if_statuses
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
8656 if (NumOfInterfaceStatuses
) {
8657 dissect_ff_msg_diagnostic_msg_req_if_a_to_a_status(tvb
,
8658 offset
, sub_tree
, NumOfInterfaceStatuses
);
8659 offset
+= 4 * NumOfInterfaceStatuses
;
8660 length
-= 4 * NumOfInterfaceStatuses
;
8662 dissect_ff_msg_diagnostic_msg_req_if_b_to_a_status(tvb
,
8663 offset
, sub_tree
, NumOfInterfaceStatuses
);
8664 offset
+= 4 * NumOfInterfaceStatuses
;
8665 length
-= 4 * NumOfInterfaceStatuses
;
8667 dissect_ff_msg_diagnostic_msg_req_if_a_to_b_status(tvb
,
8668 offset
, sub_tree
, NumOfInterfaceStatuses
);
8669 offset
+= 4 * NumOfInterfaceStatuses
;
8670 length
-= 4 * NumOfInterfaceStatuses
;
8672 dissect_ff_msg_diagnostic_msg_req_if_b_to_b_status(tvb
,
8673 offset
, sub_tree
, NumOfInterfaceStatuses
);
8674 offset
+= 4 * NumOfInterfaceStatuses
;
8675 length
-= 4 * NumOfInterfaceStatuses
;
8679 proto_tree_add_item(sub_tree
, hf_ff_unknown_data
, tvb
, offset
, length
, ENC_NA
);
8686 * 6.5. Service-Specific Parameters
8689 dissect_ff_msg_body(tvbuff_t
*tvb
, int offset
, uint32_t length
,
8690 packet_info
*pinfo
, proto_tree
*tree
,
8691 uint8_t ProtocolAndType
, uint8_t Service
, uint32_t FDAAddress
)
8693 proto_item
*hidden_item
;
8694 uint16_t message
= 0;
8696 message
= ((uint16_t)ProtocolAndType
) << 8;
8697 message
|= (uint16_t)Service
;
8700 case FDA_MSG_SESSION_OPEN_REQ
:
8701 hidden_item
= proto_tree_add_boolean(tree
,
8702 hf_ff_fda
, tvb
, 0, 0, 1);
8703 proto_item_set_hidden(hidden_item
);
8704 hidden_item
= proto_tree_add_boolean(tree
,
8705 hf_ff_fda_open_sess
, tvb
, 0, 0, 1);
8706 proto_item_set_hidden(hidden_item
);
8707 hidden_item
= proto_tree_add_boolean(tree
,
8708 hf_ff_fda_open_sess_req
, tvb
, 0, 0, 1);
8709 proto_item_set_hidden(hidden_item
);
8711 dissect_ff_msg_fda_open_sess_req(tvb
, offset
, length
,
8715 case FDA_MSG_SESSION_OPEN_RSP
:
8716 hidden_item
= proto_tree_add_boolean(tree
,
8717 hf_ff_fda
, tvb
, 0, 0, 1);
8718 proto_item_set_hidden(hidden_item
);
8719 hidden_item
= proto_tree_add_boolean(tree
,
8720 hf_ff_fda_open_sess
, tvb
, 0, 0, 1);
8721 proto_item_set_hidden(hidden_item
);
8722 hidden_item
= proto_tree_add_boolean(tree
,
8723 hf_ff_fda_open_sess_rsp
, tvb
, 0, 0, 1);
8724 proto_item_set_hidden(hidden_item
);
8726 dissect_ff_msg_fda_open_sess_rsp(tvb
, offset
, length
,
8730 case FDA_MSG_SESSION_OPEN_ERR
:
8731 hidden_item
= proto_tree_add_boolean(tree
,
8732 hf_ff_fda
, tvb
, 0, 0, 1);
8733 proto_item_set_hidden(hidden_item
);
8734 hidden_item
= proto_tree_add_boolean(tree
,
8735 hf_ff_fda_open_sess
, tvb
, 0, 0, 1);
8736 proto_item_set_hidden(hidden_item
);
8737 hidden_item
= proto_tree_add_boolean(tree
,
8738 hf_ff_fda_open_sess_err
, tvb
, 0, 0, 1);
8739 proto_item_set_hidden(hidden_item
);
8741 dissect_ff_msg_fda_open_sess_err(tvb
, offset
, length
,
8745 case FDA_MSG_SESSION_IDLE_REQ
:
8746 hidden_item
= proto_tree_add_boolean(tree
,
8747 hf_ff_fda
, tvb
, 0, 0, 1);
8748 proto_item_set_hidden(hidden_item
);
8749 hidden_item
= proto_tree_add_boolean(tree
,
8750 hf_ff_fda_idle
, tvb
, 0, 0, 1);
8751 proto_item_set_hidden(hidden_item
);
8752 hidden_item
= proto_tree_add_boolean(tree
,
8753 hf_ff_fda_idle_req
, tvb
, 0, 0, 1);
8754 proto_item_set_hidden(hidden_item
);
8756 dissect_ff_msg_fda_idle_req(tvb
, offset
, length
,
8760 case FDA_MSG_SESSION_IDLE_RSP
:
8761 hidden_item
= proto_tree_add_boolean(tree
,
8762 hf_ff_fda
, tvb
, 0, 0, 1);
8763 proto_item_set_hidden(hidden_item
);
8764 hidden_item
= proto_tree_add_boolean(tree
,
8765 hf_ff_fda_idle
, tvb
, 0, 0, 1);
8766 proto_item_set_hidden(hidden_item
);
8767 hidden_item
= proto_tree_add_boolean(tree
,
8768 hf_ff_fda_idle_rsp
, tvb
, 0, 0, 1);
8769 proto_item_set_hidden(hidden_item
);
8771 dissect_ff_msg_fda_idle_rsp(tvb
, offset
, length
,
8775 case FDA_MSG_SESSION_IDLE_ERR
:
8776 hidden_item
= proto_tree_add_boolean(tree
,
8777 hf_ff_fda
, tvb
, 0, 0, 1);
8778 proto_item_set_hidden(hidden_item
);
8779 hidden_item
= proto_tree_add_boolean(tree
,
8780 hf_ff_fda_idle
, tvb
, 0, 0, 1);
8781 proto_item_set_hidden(hidden_item
);
8782 hidden_item
= proto_tree_add_boolean(tree
,
8783 hf_ff_fda_idle_err
, tvb
, 0, 0, 1);
8784 proto_item_set_hidden(hidden_item
);
8786 dissect_ff_msg_fda_idle_err(tvb
, offset
, length
,
8790 case SM_MSG_FIND_TAG_QUERY_REQ
:
8791 hidden_item
= proto_tree_add_boolean(tree
,
8792 hf_ff_sm
, tvb
, 0, 0, 1);
8793 proto_item_set_hidden(hidden_item
);
8794 hidden_item
= proto_tree_add_boolean(tree
,
8795 hf_ff_sm_find_tag_query
, tvb
, 0, 0, 1);
8796 proto_item_set_hidden(hidden_item
);
8797 hidden_item
= proto_tree_add_boolean(tree
,
8798 hf_ff_sm_find_tag_query_req
, tvb
, 0, 0, 1);
8799 proto_item_set_hidden(hidden_item
);
8801 dissect_ff_msg_sm_find_tag_query_req(tvb
, offset
, length
,
8805 case SM_MSG_FIND_TAG_REPLY_REQ
:
8806 hidden_item
= proto_tree_add_boolean(tree
,
8807 hf_ff_sm
, tvb
, 0, 0, 1);
8808 proto_item_set_hidden(hidden_item
);
8809 hidden_item
= proto_tree_add_boolean(tree
,
8810 hf_ff_sm_find_tag_reply
, tvb
, 0, 0, 1);
8811 proto_item_set_hidden(hidden_item
);
8812 hidden_item
= proto_tree_add_boolean(tree
,
8813 hf_ff_sm_find_tag_reply_req
, tvb
, 0, 0, 1);
8814 proto_item_set_hidden(hidden_item
);
8816 dissect_ff_msg_sm_find_tag_reply_req(tvb
, offset
, length
,
8820 case SM_MSG_IDENTIFY_REQ
:
8821 hidden_item
= proto_tree_add_boolean(tree
,
8822 hf_ff_sm
, tvb
, 0, 0, 1);
8823 proto_item_set_hidden(hidden_item
);
8824 hidden_item
= proto_tree_add_boolean(tree
,
8825 hf_ff_sm_id
, tvb
, 0, 0, 1);
8826 proto_item_set_hidden(hidden_item
);
8827 hidden_item
= proto_tree_add_boolean(tree
,
8828 hf_ff_sm_id_req
, tvb
, 0, 0, 1);
8829 proto_item_set_hidden(hidden_item
);
8831 dissect_ff_msg_sm_id_req(tvb
, offset
, length
,
8835 case SM_MSG_IDENTIFY_RSP
:
8836 hidden_item
= proto_tree_add_boolean(tree
,
8837 hf_ff_sm
, tvb
, 0, 0, 1);
8838 proto_item_set_hidden(hidden_item
);
8839 hidden_item
= proto_tree_add_boolean(tree
,
8840 hf_ff_sm_id
, tvb
, 0, 0, 1);
8841 proto_item_set_hidden(hidden_item
);
8842 hidden_item
= proto_tree_add_boolean(tree
,
8843 hf_ff_sm_id_rsp
, tvb
, 0, 0, 1);
8844 proto_item_set_hidden(hidden_item
);
8846 dissect_ff_msg_sm_id_rsp(tvb
, offset
, length
,
8847 pinfo
, tree
, FDAAddress
);
8850 case SM_MSG_IDENTIFY_ERR
:
8851 hidden_item
= proto_tree_add_boolean(tree
,
8852 hf_ff_sm
, tvb
, 0, 0, 1);
8853 proto_item_set_hidden(hidden_item
);
8854 hidden_item
= proto_tree_add_boolean(tree
,
8855 hf_ff_sm_id
, tvb
, 0, 0, 1);
8856 proto_item_set_hidden(hidden_item
);
8857 hidden_item
= proto_tree_add_boolean(tree
,
8858 hf_ff_sm_id_err
, tvb
, 0, 0, 1);
8859 proto_item_set_hidden(hidden_item
);
8861 dissect_ff_msg_sm_id_err(tvb
, offset
, length
,
8865 case SM_MSG_CLEAR_ADDRESS_REQ
:
8866 hidden_item
= proto_tree_add_boolean(tree
,
8867 hf_ff_sm
, tvb
, 0, 0, 1);
8868 proto_item_set_hidden(hidden_item
);
8869 hidden_item
= proto_tree_add_boolean(tree
,
8870 hf_ff_sm_clear_addr
, tvb
, 0, 0, 1);
8871 proto_item_set_hidden(hidden_item
);
8872 hidden_item
= proto_tree_add_boolean(tree
,
8873 hf_ff_sm_clear_addr_req
, tvb
, 0, 0, 1);
8874 proto_item_set_hidden(hidden_item
);
8876 dissect_ff_msg_sm_clear_addr_req(tvb
, offset
, length
,
8880 case SM_MSG_CLEAR_ADDRESS_RSP
:
8881 hidden_item
= proto_tree_add_boolean(tree
,
8882 hf_ff_sm
, tvb
, 0, 0, 1);
8883 proto_item_set_hidden(hidden_item
);
8884 hidden_item
= proto_tree_add_boolean(tree
,
8885 hf_ff_sm_clear_addr
, tvb
, 0, 0, 1);
8886 proto_item_set_hidden(hidden_item
);
8887 hidden_item
= proto_tree_add_boolean(tree
,
8888 hf_ff_sm_clear_addr_rsp
, tvb
, 0, 0, 1);
8889 proto_item_set_hidden(hidden_item
);
8891 dissect_ff_msg_sm_clear_addr_rsp(tvb
, offset
, length
,
8895 case SM_MSG_CLEAR_ADDRESS_ERR
:
8896 hidden_item
= proto_tree_add_boolean(tree
,
8897 hf_ff_sm
, tvb
, 0, 0, 1);
8898 proto_item_set_hidden(hidden_item
);
8899 hidden_item
= proto_tree_add_boolean(tree
,
8900 hf_ff_sm_clear_addr
, tvb
, 0, 0, 1);
8901 proto_item_set_hidden(hidden_item
);
8902 hidden_item
= proto_tree_add_boolean(tree
,
8903 hf_ff_sm_clear_addr_err
, tvb
, 0, 0, 1);
8904 proto_item_set_hidden(hidden_item
);
8906 dissect_ff_msg_sm_clear_addr_err(tvb
, offset
, length
,
8910 case SM_MSG_SET_ASSIGNMENT_REQ
:
8911 hidden_item
= proto_tree_add_boolean(tree
,
8912 hf_ff_sm
, tvb
, 0, 0, 1);
8913 proto_item_set_hidden(hidden_item
);
8914 hidden_item
= proto_tree_add_boolean(tree
,
8915 hf_ff_sm_set_assign_info
, tvb
, 0, 0, 1);
8916 proto_item_set_hidden(hidden_item
);
8917 hidden_item
= proto_tree_add_boolean(tree
,
8918 hf_ff_sm_set_assign_info_req
, tvb
, 0, 0, 1);
8919 proto_item_set_hidden(hidden_item
);
8921 dissect_ff_msg_sm_set_assign_info_req(tvb
, offset
,
8922 length
, pinfo
, tree
);
8925 case SM_MSG_SET_ASSIGNMENT_RSP
:
8926 hidden_item
= proto_tree_add_boolean(tree
,
8927 hf_ff_sm
, tvb
, 0, 0, 1);
8928 proto_item_set_hidden(hidden_item
);
8929 hidden_item
= proto_tree_add_boolean(tree
,
8930 hf_ff_sm_set_assign_info
, tvb
, 0, 0, 1);
8931 proto_item_set_hidden(hidden_item
);
8932 hidden_item
= proto_tree_add_boolean(tree
,
8933 hf_ff_sm_set_assign_info_rsp
, tvb
, 0, 0, 1);
8934 proto_item_set_hidden(hidden_item
);
8936 dissect_ff_msg_sm_set_assign_info_rsp(tvb
, offset
,
8937 length
, pinfo
, tree
);
8940 case SM_MSG_SET_ASSIGNMENT_ERR
:
8941 hidden_item
= proto_tree_add_boolean(tree
,
8942 hf_ff_sm
, tvb
, 0, 0, 1);
8943 proto_item_set_hidden(hidden_item
);
8944 hidden_item
= proto_tree_add_boolean(tree
,
8945 hf_ff_sm_set_assign_info
, tvb
, 0, 0, 1);
8946 proto_item_set_hidden(hidden_item
);
8947 hidden_item
= proto_tree_add_boolean(tree
,
8948 hf_ff_sm_set_assign_info_err
, tvb
, 0, 0, 1);
8949 proto_item_set_hidden(hidden_item
);
8951 dissect_ff_msg_sm_set_assign_info_err(tvb
, offset
,
8952 length
, pinfo
, tree
);
8955 case SM_MSG_CLEAR_ASSIGNMENT_REQ
:
8956 hidden_item
= proto_tree_add_boolean(tree
,
8957 hf_ff_sm
, tvb
, 0, 0, 1);
8958 proto_item_set_hidden(hidden_item
);
8959 hidden_item
= proto_tree_add_boolean(tree
,
8960 hf_ff_sm_clear_assign_info
, tvb
, 0, 0, 1);
8961 proto_item_set_hidden(hidden_item
);
8962 hidden_item
= proto_tree_add_boolean(tree
,
8963 hf_ff_sm_clear_assign_info_req
, tvb
, 0, 0, 1);
8964 proto_item_set_hidden(hidden_item
);
8966 dissect_ff_msg_sm_clear_assign_info_req(tvb
, offset
,
8967 length
, pinfo
, tree
);
8970 case SM_MSG_CLEAR_ASSIGNMENT_RSP
:
8971 hidden_item
= proto_tree_add_boolean(tree
,
8972 hf_ff_sm
, tvb
, 0, 0, 1);
8973 proto_item_set_hidden(hidden_item
);
8974 hidden_item
= proto_tree_add_boolean(tree
,
8975 hf_ff_sm_clear_assign_info
, tvb
, 0, 0, 1);
8976 proto_item_set_hidden(hidden_item
);
8977 hidden_item
= proto_tree_add_boolean(tree
,
8978 hf_ff_sm_clear_assign_info_rsp
, tvb
, 0, 0, 1);
8979 proto_item_set_hidden(hidden_item
);
8981 dissect_ff_msg_sm_clear_assign_info_rsp(tvb
, offset
,
8982 length
, pinfo
, tree
);
8985 case SM_MSG_CLEAR_ASSIGNMENT_ERR
:
8986 hidden_item
= proto_tree_add_boolean(tree
,
8987 hf_ff_sm
, tvb
, 0, 0, 1);
8988 proto_item_set_hidden(hidden_item
);
8989 hidden_item
= proto_tree_add_boolean(tree
,
8990 hf_ff_sm_clear_assign_info
, tvb
, 0, 0, 1);
8991 proto_item_set_hidden(hidden_item
);
8992 hidden_item
= proto_tree_add_boolean(tree
,
8993 hf_ff_sm_clear_assign_info_err
, tvb
, 0, 0, 1);
8994 proto_item_set_hidden(hidden_item
);
8996 dissect_ff_msg_sm_clear_assign_info_err(tvb
, offset
,
8997 length
, pinfo
, tree
);
9000 case SM_MSG_DEVICE_ANNUNCIATION_REQ
:
9001 hidden_item
= proto_tree_add_boolean(tree
,
9002 hf_ff_sm
, tvb
, 0, 0, 1);
9003 proto_item_set_hidden(hidden_item
);
9004 hidden_item
= proto_tree_add_boolean(tree
,
9005 hf_ff_sm_dev_annunc
, tvb
, 0, 0, 1);
9006 proto_item_set_hidden(hidden_item
);
9007 hidden_item
= proto_tree_add_boolean(tree
,
9008 hf_ff_sm_dev_annunc_req
, tvb
, 0, 0, 1);
9009 proto_item_set_hidden(hidden_item
);
9011 dissect_ff_msg_sm_dev_annunc_req(tvb
, offset
,
9012 length
, pinfo
, tree
, FDAAddress
);
9015 case FMS_MSG_INITIATE_REQ
:
9016 hidden_item
= proto_tree_add_boolean(tree
,
9017 hf_ff_fms
, tvb
, 0, 0, 1);
9018 proto_item_set_hidden(hidden_item
);
9019 hidden_item
= proto_tree_add_boolean(tree
,
9020 hf_ff_fms_init
, tvb
, 0, 0, 1);
9021 proto_item_set_hidden(hidden_item
);
9022 hidden_item
= proto_tree_add_boolean(tree
,
9023 hf_ff_fms_init_req
, tvb
, 0, 0, 1);
9024 proto_item_set_hidden(hidden_item
);
9026 dissect_ff_msg_fms_init_req(tvb
, offset
,
9027 length
, pinfo
, tree
);
9030 case FMS_MSG_INITIATE_RSP
:
9031 hidden_item
= proto_tree_add_boolean(tree
,
9032 hf_ff_fms
, tvb
, 0, 0, 1);
9033 proto_item_set_hidden(hidden_item
);
9034 hidden_item
= proto_tree_add_boolean(tree
,
9035 hf_ff_fms_init
, tvb
, 0, 0, 1);
9036 proto_item_set_hidden(hidden_item
);
9037 hidden_item
= proto_tree_add_boolean(tree
,
9038 hf_ff_fms_init_rsp
, tvb
, 0, 0, 1);
9039 proto_item_set_hidden(hidden_item
);
9041 dissect_ff_msg_fms_init_rsp(tvb
, offset
,
9042 length
, pinfo
, tree
);
9045 case FMS_MSG_INITIATE_ERR
:
9046 hidden_item
= proto_tree_add_boolean(tree
,
9047 hf_ff_fms
, tvb
, 0, 0, 1);
9048 proto_item_set_hidden(hidden_item
);
9049 hidden_item
= proto_tree_add_boolean(tree
,
9050 hf_ff_fms_init
, tvb
, 0, 0, 1);
9051 proto_item_set_hidden(hidden_item
);
9052 hidden_item
= proto_tree_add_boolean(tree
,
9053 hf_ff_fms_init_err
, tvb
, 0, 0, 1);
9054 proto_item_set_hidden(hidden_item
);
9056 dissect_ff_msg_fms_init_err(tvb
, offset
,
9057 length
, pinfo
, tree
);
9060 case FMS_MSG_ABORT_REQ
:
9061 hidden_item
= proto_tree_add_boolean(tree
,
9062 hf_ff_fms
, tvb
, 0, 0, 1);
9063 proto_item_set_hidden(hidden_item
);
9064 hidden_item
= proto_tree_add_boolean(tree
,
9065 hf_ff_fms_abort
, tvb
, 0, 0, 1);
9066 proto_item_set_hidden(hidden_item
);
9067 hidden_item
= proto_tree_add_boolean(tree
,
9068 hf_ff_fms_abort_req
, tvb
, 0, 0, 1);
9069 proto_item_set_hidden(hidden_item
);
9071 dissect_ff_msg_fms_abort_req(tvb
, offset
,
9072 length
, pinfo
, tree
);
9075 case FMS_MSG_STATUS_REQ
:
9076 hidden_item
= proto_tree_add_boolean(tree
,
9077 hf_ff_fms
, tvb
, 0, 0, 1);
9078 proto_item_set_hidden(hidden_item
);
9079 hidden_item
= proto_tree_add_boolean(tree
,
9080 hf_ff_fms_status
, tvb
, 0, 0, 1);
9081 proto_item_set_hidden(hidden_item
);
9082 hidden_item
= proto_tree_add_boolean(tree
,
9083 hf_ff_fms_status_req
, tvb
, 0, 0, 1);
9084 proto_item_set_hidden(hidden_item
);
9086 dissect_ff_msg_fms_status_req(tvb
, offset
,
9087 length
, pinfo
, tree
);
9090 case FMS_MSG_STATUS_RSP
:
9091 hidden_item
= proto_tree_add_boolean(tree
,
9092 hf_ff_fms
, tvb
, 0, 0, 1);
9093 proto_item_set_hidden(hidden_item
);
9094 hidden_item
= proto_tree_add_boolean(tree
,
9095 hf_ff_fms_status
, tvb
, 0, 0, 1);
9096 proto_item_set_hidden(hidden_item
);
9097 hidden_item
= proto_tree_add_boolean(tree
,
9098 hf_ff_fms_status_rsp
, tvb
, 0, 0, 1);
9099 proto_item_set_hidden(hidden_item
);
9101 dissect_ff_msg_fms_status_rsp(tvb
, offset
,
9102 length
, pinfo
, tree
);
9105 case FMS_MSG_STATUS_ERR
:
9106 hidden_item
= proto_tree_add_boolean(tree
,
9107 hf_ff_fms
, tvb
, 0, 0, 1);
9108 proto_item_set_hidden(hidden_item
);
9109 hidden_item
= proto_tree_add_boolean(tree
,
9110 hf_ff_fms_status
, tvb
, 0, 0, 1);
9111 proto_item_set_hidden(hidden_item
);
9112 hidden_item
= proto_tree_add_boolean(tree
,
9113 hf_ff_fms_status_err
, tvb
, 0, 0, 1);
9114 proto_item_set_hidden(hidden_item
);
9116 dissect_ff_msg_fms_status_err(tvb
, offset
,
9117 length
, pinfo
, tree
);
9120 case FMS_MSG_UNSOLICITED_STATUS_REQ
:
9121 hidden_item
= proto_tree_add_boolean(tree
,
9122 hf_ff_fms
, tvb
, 0, 0, 1);
9123 proto_item_set_hidden(hidden_item
);
9124 hidden_item
= proto_tree_add_boolean(tree
,
9125 hf_ff_fms_unsolicited_status
, tvb
, 0, 0, 1);
9126 proto_item_set_hidden(hidden_item
);
9127 hidden_item
= proto_tree_add_boolean(tree
,
9128 hf_ff_fms_unsolicited_status_req
, tvb
, 0, 0, 1);
9129 proto_item_set_hidden(hidden_item
);
9131 dissect_ff_msg_fms_unsolicited_status_req(tvb
, offset
,
9132 length
, pinfo
, tree
);
9135 case FMS_MSG_IDENTIFY_REQ
:
9136 hidden_item
= proto_tree_add_boolean(tree
,
9137 hf_ff_fms
, tvb
, 0, 0, 1);
9138 proto_item_set_hidden(hidden_item
);
9139 hidden_item
= proto_tree_add_boolean(tree
,
9140 hf_ff_fms_id
, tvb
, 0, 0, 1);
9141 proto_item_set_hidden(hidden_item
);
9142 hidden_item
= proto_tree_add_boolean(tree
,
9143 hf_ff_fms_id_req
, tvb
, 0, 0, 1);
9144 proto_item_set_hidden(hidden_item
);
9146 dissect_ff_msg_fms_id_req(tvb
, offset
,
9147 length
, pinfo
, tree
);
9150 case FMS_MSG_IDENTIFY_RSP
:
9151 hidden_item
= proto_tree_add_boolean(tree
,
9152 hf_ff_fms
, tvb
, 0, 0, 1);
9153 proto_item_set_hidden(hidden_item
);
9154 hidden_item
= proto_tree_add_boolean(tree
,
9155 hf_ff_fms_id
, tvb
, 0, 0, 1);
9156 proto_item_set_hidden(hidden_item
);
9157 hidden_item
= proto_tree_add_boolean(tree
,
9158 hf_ff_fms_id_rsp
, tvb
, 0, 0, 1);
9159 proto_item_set_hidden(hidden_item
);
9161 dissect_ff_msg_fms_id_rsp(tvb
, offset
,
9162 length
, pinfo
, tree
);
9165 case FMS_MSG_IDENTIFY_ERR
:
9166 hidden_item
= proto_tree_add_boolean(tree
,
9167 hf_ff_fms
, tvb
, 0, 0, 1);
9168 proto_item_set_hidden(hidden_item
);
9169 hidden_item
= proto_tree_add_boolean(tree
,
9170 hf_ff_fms_id
, tvb
, 0, 0, 1);
9171 proto_item_set_hidden(hidden_item
);
9172 hidden_item
= proto_tree_add_boolean(tree
,
9173 hf_ff_fms_id_err
, tvb
, 0, 0, 1);
9174 proto_item_set_hidden(hidden_item
);
9176 dissect_ff_msg_fms_id_err(tvb
, offset
,
9177 length
, pinfo
, tree
);
9180 case FMS_MSG_GET_OD_REQ
:
9181 hidden_item
= proto_tree_add_boolean(tree
,
9182 hf_ff_fms
, tvb
, 0, 0, 1);
9183 proto_item_set_hidden(hidden_item
);
9184 hidden_item
= proto_tree_add_boolean(tree
,
9185 hf_ff_fms_get_od
, tvb
, 0, 0, 1);
9186 proto_item_set_hidden(hidden_item
);
9187 hidden_item
= proto_tree_add_boolean(tree
,
9188 hf_ff_fms_get_od_req
, tvb
, 0, 0, 1);
9189 proto_item_set_hidden(hidden_item
);
9191 dissect_ff_msg_fms_get_od_req(tvb
, offset
,
9192 length
, pinfo
, tree
);
9195 case FMS_MSG_GET_OD_RSP
:
9196 hidden_item
= proto_tree_add_boolean(tree
,
9197 hf_ff_fms
, tvb
, 0, 0, 1);
9198 proto_item_set_hidden(hidden_item
);
9199 hidden_item
= proto_tree_add_boolean(tree
,
9200 hf_ff_fms_get_od
, tvb
, 0, 0, 1);
9201 proto_item_set_hidden(hidden_item
);
9202 hidden_item
= proto_tree_add_boolean(tree
,
9203 hf_ff_fms_get_od_rsp
, tvb
, 0, 0, 1);
9204 proto_item_set_hidden(hidden_item
);
9206 dissect_ff_msg_fms_get_od_rsp(tvb
, offset
,
9207 length
, pinfo
, tree
);
9210 case FMS_MSG_GET_OD_ERR
:
9211 hidden_item
= proto_tree_add_boolean(tree
,
9212 hf_ff_fms
, tvb
, 0, 0, 1);
9213 proto_item_set_hidden(hidden_item
);
9214 hidden_item
= proto_tree_add_boolean(tree
,
9215 hf_ff_fms_get_od
, tvb
, 0, 0, 1);
9216 proto_item_set_hidden(hidden_item
);
9217 hidden_item
= proto_tree_add_boolean(tree
,
9218 hf_ff_fms_get_od_err
, tvb
, 0, 0, 1);
9219 proto_item_set_hidden(hidden_item
);
9221 dissect_ff_msg_fms_get_od_err(tvb
, offset
,
9222 length
, pinfo
, tree
);
9225 case FMS_MSG_INITIATE_PUT_OD_REQ
:
9226 hidden_item
= proto_tree_add_boolean(tree
,
9227 hf_ff_fms
, tvb
, 0, 0, 1);
9228 proto_item_set_hidden(hidden_item
);
9229 hidden_item
= proto_tree_add_boolean(tree
,
9230 hf_ff_fms_init_put_od
, tvb
, 0, 0, 1);
9231 proto_item_set_hidden(hidden_item
);
9232 hidden_item
= proto_tree_add_boolean(tree
,
9233 hf_ff_fms_init_put_od_req
, tvb
, 0, 0, 1);
9234 proto_item_set_hidden(hidden_item
);
9236 dissect_ff_msg_fms_init_put_od_req(tvb
, offset
,
9237 length
, pinfo
, tree
);
9240 case FMS_MSG_INITIATE_PUT_OD_RSP
:
9241 hidden_item
= proto_tree_add_boolean(tree
,
9242 hf_ff_fms
, tvb
, 0, 0, 1);
9243 proto_item_set_hidden(hidden_item
);
9244 hidden_item
= proto_tree_add_boolean(tree
,
9245 hf_ff_fms_init_put_od
, tvb
, 0, 0, 1);
9246 proto_item_set_hidden(hidden_item
);
9247 hidden_item
= proto_tree_add_boolean(tree
,
9248 hf_ff_fms_init_put_od_rsp
, tvb
, 0, 0, 1);
9249 proto_item_set_hidden(hidden_item
);
9251 dissect_ff_msg_fms_init_put_od_rsp(tvb
, offset
,
9252 length
, pinfo
, tree
);
9255 case FMS_MSG_INITIATE_PUT_OD_ERR
:
9256 hidden_item
= proto_tree_add_boolean(tree
,
9257 hf_ff_fms
, tvb
, 0, 0, 1);
9258 proto_item_set_hidden(hidden_item
);
9259 hidden_item
= proto_tree_add_boolean(tree
,
9260 hf_ff_fms_init_put_od
, tvb
, 0, 0, 1);
9261 proto_item_set_hidden(hidden_item
);
9262 hidden_item
= proto_tree_add_boolean(tree
,
9263 hf_ff_fms_init_put_od_err
, tvb
, 0, 0, 1);
9264 proto_item_set_hidden(hidden_item
);
9266 dissect_ff_msg_fms_init_put_od_err(tvb
, offset
,
9267 length
, pinfo
, tree
);
9270 case FMS_MSG_PUT_OD_REQ
:
9271 hidden_item
= proto_tree_add_boolean(tree
,
9272 hf_ff_fms
, tvb
, 0, 0, 1);
9273 proto_item_set_hidden(hidden_item
);
9274 hidden_item
= proto_tree_add_boolean(tree
,
9275 hf_ff_fms_put_od
, tvb
, 0, 0, 1);
9276 proto_item_set_hidden(hidden_item
);
9277 hidden_item
= proto_tree_add_boolean(tree
,
9278 hf_ff_fms_put_od_req
, tvb
, 0, 0, 1);
9279 proto_item_set_hidden(hidden_item
);
9281 dissect_ff_msg_fms_put_od_req(tvb
, offset
,
9282 length
, pinfo
, tree
);
9285 case FMS_MSG_PUT_OD_RSP
:
9286 hidden_item
= proto_tree_add_boolean(tree
,
9287 hf_ff_fms
, tvb
, 0, 0, 1);
9288 proto_item_set_hidden(hidden_item
);
9289 hidden_item
= proto_tree_add_boolean(tree
,
9290 hf_ff_fms_put_od
, tvb
, 0, 0, 1);
9291 proto_item_set_hidden(hidden_item
);
9292 hidden_item
= proto_tree_add_boolean(tree
,
9293 hf_ff_fms_put_od_rsp
, tvb
, 0, 0, 1);
9294 proto_item_set_hidden(hidden_item
);
9296 dissect_ff_msg_fms_put_od_rsp(tvb
, offset
,
9297 length
, pinfo
, tree
);
9300 case FMS_MSG_PUT_OD_ERR
:
9301 hidden_item
= proto_tree_add_boolean(tree
,
9302 hf_ff_fms
, tvb
, 0, 0, 1);
9303 proto_item_set_hidden(hidden_item
);
9304 hidden_item
= proto_tree_add_boolean(tree
,
9305 hf_ff_fms_put_od
, tvb
, 0, 0, 1);
9306 proto_item_set_hidden(hidden_item
);
9307 hidden_item
= proto_tree_add_boolean(tree
,
9308 hf_ff_fms_put_od_err
, tvb
, 0, 0, 1);
9309 proto_item_set_hidden(hidden_item
);
9311 dissect_ff_msg_fms_put_od_err(tvb
, offset
,
9312 length
, pinfo
, tree
);
9315 case FMS_MSG_TERMINATE_PUT_OD_REQ
:
9316 hidden_item
= proto_tree_add_boolean(tree
,
9317 hf_ff_fms
, tvb
, 0, 0, 1);
9318 proto_item_set_hidden(hidden_item
);
9319 hidden_item
= proto_tree_add_boolean(tree
,
9320 hf_ff_fms_terminate_put_od
, tvb
, 0, 0, 1);
9321 proto_item_set_hidden(hidden_item
);
9322 hidden_item
= proto_tree_add_boolean(tree
,
9323 hf_ff_fms_terminate_put_od_req
, tvb
, 0, 0, 1);
9324 proto_item_set_hidden(hidden_item
);
9326 dissect_ff_msg_fms_terminate_put_od_req(tvb
, offset
,
9327 length
, pinfo
, tree
);
9330 case FMS_MSG_TERMINATE_PUT_OD_RSP
:
9331 hidden_item
= proto_tree_add_boolean(tree
,
9332 hf_ff_fms
, tvb
, 0, 0, 1);
9333 proto_item_set_hidden(hidden_item
);
9334 hidden_item
= proto_tree_add_boolean(tree
,
9335 hf_ff_fms_terminate_put_od
, tvb
, 0, 0, 1);
9336 proto_item_set_hidden(hidden_item
);
9337 hidden_item
= proto_tree_add_boolean(tree
,
9338 hf_ff_fms_terminate_put_od_rsp
, tvb
, 0, 0, 1);
9339 proto_item_set_hidden(hidden_item
);
9341 dissect_ff_msg_fms_terminate_put_od_rsp(tvb
, offset
,
9342 length
, pinfo
, tree
);
9345 case FMS_MSG_TERMINATE_PUT_OD_ERR
:
9346 hidden_item
= proto_tree_add_boolean(tree
,
9347 hf_ff_fms
, tvb
, 0, 0, 1);
9348 proto_item_set_hidden(hidden_item
);
9349 hidden_item
= proto_tree_add_boolean(tree
,
9350 hf_ff_fms_terminate_put_od
, tvb
, 0, 0, 1);
9351 proto_item_set_hidden(hidden_item
);
9352 hidden_item
= proto_tree_add_boolean(tree
,
9353 hf_ff_fms_terminate_put_od_err
, tvb
, 0, 0, 1);
9354 proto_item_set_hidden(hidden_item
);
9356 dissect_ff_msg_fms_terminate_put_od_err(tvb
, offset
,
9357 length
, pinfo
, tree
);
9360 case FMS_MSG_GENERIC_INITIATE_DOWNLOAD_SEQUENCE_REQ
:
9361 hidden_item
= proto_tree_add_boolean(tree
,
9362 hf_ff_fms
, tvb
, 0, 0, 1);
9363 proto_item_set_hidden(hidden_item
);
9364 hidden_item
= proto_tree_add_boolean(tree
,
9365 hf_ff_fms_gen_init_download_seq
, tvb
, 0, 0, 1);
9366 proto_item_set_hidden(hidden_item
);
9367 hidden_item
= proto_tree_add_boolean(tree
,
9368 hf_ff_fms_gen_init_download_seq_req
, tvb
, 0, 0, 1);
9369 proto_item_set_hidden(hidden_item
);
9371 dissect_ff_msg_fms_generic_init_download_sequence_req(
9372 tvb
, offset
, length
, pinfo
, tree
);
9375 case FMS_MSG_GENERIC_INITIATE_DOWNLOAD_SEQUENCE_RSP
:
9376 hidden_item
= proto_tree_add_boolean(tree
,
9377 hf_ff_fms
, tvb
, 0, 0, 1);
9378 proto_item_set_hidden(hidden_item
);
9379 hidden_item
= proto_tree_add_boolean(tree
,
9380 hf_ff_fms_gen_init_download_seq
, tvb
, 0, 0, 1);
9381 proto_item_set_hidden(hidden_item
);
9382 hidden_item
= proto_tree_add_boolean(tree
,
9383 hf_ff_fms_gen_init_download_seq_rsp
, tvb
, 0, 0, 1);
9384 proto_item_set_hidden(hidden_item
);
9386 dissect_ff_msg_fms_generic_init_download_sequence_rsp(
9387 tvb
, offset
, length
, pinfo
, tree
);
9390 case FMS_MSG_GENERIC_INITIATE_DOWNLOAD_SEQUENCE_ERR
:
9391 hidden_item
= proto_tree_add_boolean(tree
,
9392 hf_ff_fms
, tvb
, 0, 0, 1);
9393 proto_item_set_hidden(hidden_item
);
9394 hidden_item
= proto_tree_add_boolean(tree
,
9395 hf_ff_fms_gen_init_download_seq
, tvb
, 0, 0, 1);
9396 proto_item_set_hidden(hidden_item
);
9397 hidden_item
= proto_tree_add_boolean(tree
,
9398 hf_ff_fms_gen_init_download_seq_err
, tvb
, 0, 0, 1);
9399 proto_item_set_hidden(hidden_item
);
9401 dissect_ff_msg_fms_generic_init_download_sequence_err(
9402 tvb
, offset
, length
, pinfo
, tree
);
9405 case FMS_MSG_GENERIC_DOWNLOAD_SEGMENT_REQ
:
9406 hidden_item
= proto_tree_add_boolean(tree
,
9407 hf_ff_fms
, tvb
, 0, 0, 1);
9408 proto_item_set_hidden(hidden_item
);
9409 hidden_item
= proto_tree_add_boolean(tree
,
9410 hf_ff_fms_gen_download_seg
, tvb
, 0, 0, 1);
9411 proto_item_set_hidden(hidden_item
);
9412 hidden_item
= proto_tree_add_boolean(tree
,
9413 hf_ff_fms_gen_download_seg_req
, tvb
, 0, 0, 1);
9414 proto_item_set_hidden(hidden_item
);
9416 dissect_ff_msg_fms_generic_download_segment_req(tvb
,
9417 offset
, length
, pinfo
, tree
);
9420 case FMS_MSG_GENERIC_DOWNLOAD_SEGMENT_RSP
:
9421 hidden_item
= proto_tree_add_boolean(tree
,
9422 hf_ff_fms
, tvb
, 0, 0, 1);
9423 proto_item_set_hidden(hidden_item
);
9424 hidden_item
= proto_tree_add_boolean(tree
,
9425 hf_ff_fms_gen_download_seg
, tvb
, 0, 0, 1);
9426 proto_item_set_hidden(hidden_item
);
9427 hidden_item
= proto_tree_add_boolean(tree
,
9428 hf_ff_fms_gen_download_seg_rsp
, tvb
, 0, 0, 1);
9429 proto_item_set_hidden(hidden_item
);
9431 dissect_ff_msg_fms_generic_download_segment_rsp(tvb
,
9432 offset
, length
, pinfo
, tree
);
9435 case FMS_MSG_GENERIC_DOWNLOAD_SEGMENT_ERR
:
9436 hidden_item
= proto_tree_add_boolean(tree
,
9437 hf_ff_fms
, tvb
, 0, 0, 1);
9438 proto_item_set_hidden(hidden_item
);
9439 hidden_item
= proto_tree_add_boolean(tree
,
9440 hf_ff_fms_gen_download_seg
, tvb
, 0, 0, 1);
9441 proto_item_set_hidden(hidden_item
);
9442 hidden_item
= proto_tree_add_boolean(tree
,
9443 hf_ff_fms_gen_download_seg_err
, tvb
, 0, 0, 1);
9444 proto_item_set_hidden(hidden_item
);
9446 dissect_ff_msg_fms_generic_download_segment_err(tvb
,
9447 offset
, length
, pinfo
, tree
);
9450 case FMS_MSG_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE_REQ
:
9451 hidden_item
= proto_tree_add_boolean(tree
,
9452 hf_ff_fms
, tvb
, 0, 0, 1);
9453 proto_item_set_hidden(hidden_item
);
9454 hidden_item
= proto_tree_add_boolean(tree
,
9455 hf_ff_fms_gen_terminate_download_seq
, tvb
, 0, 0, 1);
9456 proto_item_set_hidden(hidden_item
);
9457 hidden_item
= proto_tree_add_boolean(tree
,
9458 hf_ff_fms_gen_terminate_download_seq_req
, tvb
, 0, 0, 1);
9459 proto_item_set_hidden(hidden_item
);
9461 dissect_ff_msg_fms_generic_terminate_download_sequence_req(
9462 tvb
, offset
, length
, pinfo
, tree
);
9465 case FMS_MSG_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE_RSP
:
9466 hidden_item
= proto_tree_add_boolean(tree
,
9467 hf_ff_fms
, tvb
, 0, 0, 1);
9468 proto_item_set_hidden(hidden_item
);
9469 hidden_item
= proto_tree_add_boolean(tree
,
9470 hf_ff_fms_gen_terminate_download_seq
, tvb
, 0, 0, 1);
9471 proto_item_set_hidden(hidden_item
);
9472 hidden_item
= proto_tree_add_boolean(tree
,
9473 hf_ff_fms_gen_terminate_download_seq_rsp
, tvb
, 0, 0, 1);
9474 proto_item_set_hidden(hidden_item
);
9476 dissect_ff_msg_fms_generic_terminate_download_sequence_rsp(
9477 tvb
, offset
, length
, pinfo
, tree
);
9480 case FMS_MSG_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE_ERR
:
9481 hidden_item
= proto_tree_add_boolean(tree
,
9482 hf_ff_fms
, tvb
, 0, 0, 1);
9483 proto_item_set_hidden(hidden_item
);
9484 hidden_item
= proto_tree_add_boolean(tree
,
9485 hf_ff_fms_gen_terminate_download_seq
, tvb
, 0, 0, 1);
9486 proto_item_set_hidden(hidden_item
);
9487 hidden_item
= proto_tree_add_boolean(tree
,
9488 hf_ff_fms_gen_terminate_download_seq_err
, tvb
, 0, 0, 1);
9489 proto_item_set_hidden(hidden_item
);
9491 dissect_ff_msg_fms_generic_terminate_download_sequence_err(
9492 tvb
, offset
, length
, pinfo
, tree
);
9495 case FMS_MSG_INITIATE_DOWNLOAD_SEQUENCE_REQ
:
9496 hidden_item
= proto_tree_add_boolean(tree
,
9497 hf_ff_fms
, tvb
, 0, 0, 1);
9498 proto_item_set_hidden(hidden_item
);
9499 hidden_item
= proto_tree_add_boolean(tree
,
9500 hf_ff_fms_init_download_seq
, tvb
, 0, 0, 1);
9501 proto_item_set_hidden(hidden_item
);
9502 hidden_item
= proto_tree_add_boolean(tree
,
9503 hf_ff_fms_init_download_seq_req
, tvb
, 0, 0, 1);
9504 proto_item_set_hidden(hidden_item
);
9506 dissect_ff_msg_fms_init_download_sequence_req(tvb
,
9507 offset
, length
, pinfo
, tree
);
9510 case FMS_MSG_INITIATE_DOWNLOAD_SEQUENCE_RSP
:
9511 hidden_item
= proto_tree_add_boolean(tree
,
9512 hf_ff_fms
, tvb
, 0, 0, 1);
9513 proto_item_set_hidden(hidden_item
);
9514 hidden_item
= proto_tree_add_boolean(tree
,
9515 hf_ff_fms_init_download_seq
, tvb
, 0, 0, 1);
9516 proto_item_set_hidden(hidden_item
);
9517 hidden_item
= proto_tree_add_boolean(tree
,
9518 hf_ff_fms_init_download_seq_rsp
, tvb
, 0, 0, 1);
9519 proto_item_set_hidden(hidden_item
);
9521 dissect_ff_msg_fms_init_download_sequence_rsp(tvb
,
9522 offset
, length
, pinfo
, tree
);
9525 case FMS_MSG_INITIATE_DOWNLOAD_SEQUENCE_ERR
:
9526 hidden_item
= proto_tree_add_boolean(tree
,
9527 hf_ff_fms
, tvb
, 0, 0, 1);
9528 proto_item_set_hidden(hidden_item
);
9529 hidden_item
= proto_tree_add_boolean(tree
,
9530 hf_ff_fms_init_download_seq
, tvb
, 0, 0, 1);
9531 proto_item_set_hidden(hidden_item
);
9532 hidden_item
= proto_tree_add_boolean(tree
,
9533 hf_ff_fms_init_download_seq_err
, tvb
, 0, 0, 1);
9534 proto_item_set_hidden(hidden_item
);
9536 dissect_ff_msg_fms_init_download_sequence_err(tvb
,
9537 offset
, length
, pinfo
, tree
);
9540 case FMS_MSG_DOWNLOAD_SEGMENT_REQ
:
9541 hidden_item
= proto_tree_add_boolean(tree
,
9542 hf_ff_fms
, tvb
, 0, 0, 1);
9543 proto_item_set_hidden(hidden_item
);
9544 hidden_item
= proto_tree_add_boolean(tree
,
9545 hf_ff_fms_download_seg
, tvb
, 0, 0, 1);
9546 proto_item_set_hidden(hidden_item
);
9547 hidden_item
= proto_tree_add_boolean(tree
,
9548 hf_ff_fms_download_seg_req
, tvb
, 0, 0, 1);
9549 proto_item_set_hidden(hidden_item
);
9551 dissect_ff_msg_fms_download_segment_req(tvb
, offset
,
9552 length
, pinfo
, tree
);
9555 case FMS_MSG_DOWNLOAD_SEGMENT_RSP
:
9556 hidden_item
= proto_tree_add_boolean(tree
,
9557 hf_ff_fms
, tvb
, 0, 0, 1);
9558 proto_item_set_hidden(hidden_item
);
9559 hidden_item
= proto_tree_add_boolean(tree
,
9560 hf_ff_fms_download_seg
, tvb
, 0, 0, 1);
9561 proto_item_set_hidden(hidden_item
);
9562 hidden_item
= proto_tree_add_boolean(tree
,
9563 hf_ff_fms_download_seg_rsp
, tvb
, 0, 0, 1);
9564 proto_item_set_hidden(hidden_item
);
9566 dissect_ff_msg_fms_download_segment_rsp(tvb
, offset
,
9567 length
, pinfo
, tree
);
9570 case FMS_MSG_DOWNLOAD_SEGMENT_ERR
:
9571 hidden_item
= proto_tree_add_boolean(tree
,
9572 hf_ff_fms
, tvb
, 0, 0, 1);
9573 proto_item_set_hidden(hidden_item
);
9574 hidden_item
= proto_tree_add_boolean(tree
,
9575 hf_ff_fms_download_seg
, tvb
, 0, 0, 1);
9576 proto_item_set_hidden(hidden_item
);
9577 hidden_item
= proto_tree_add_boolean(tree
,
9578 hf_ff_fms_download_seg_err
, tvb
, 0, 0, 1);
9579 proto_item_set_hidden(hidden_item
);
9581 dissect_ff_msg_fms_download_segment_err(tvb
, offset
,
9582 length
, pinfo
, tree
);
9585 case FMS_MSG_TERMINATE_DOWNLOAD_SEQUENCE_REQ
:
9586 hidden_item
= proto_tree_add_boolean(tree
,
9587 hf_ff_fms
, tvb
, 0, 0, 1);
9588 proto_item_set_hidden(hidden_item
);
9589 hidden_item
= proto_tree_add_boolean(tree
,
9590 hf_ff_fms_terminate_download_seq
, tvb
, 0, 0, 1);
9591 proto_item_set_hidden(hidden_item
);
9592 hidden_item
= proto_tree_add_boolean(tree
,
9593 hf_ff_fms_terminate_download_seq_req
, tvb
, 0, 0, 1);
9594 proto_item_set_hidden(hidden_item
);
9596 dissect_ff_msg_fms_terminate_download_sequence_req(tvb
,
9597 offset
, length
, pinfo
, tree
);
9600 case FMS_MSG_TERMINATE_DOWNLOAD_SEQUENCE_RSP
:
9601 hidden_item
= proto_tree_add_boolean(tree
,
9602 hf_ff_fms
, tvb
, 0, 0, 1);
9603 proto_item_set_hidden(hidden_item
);
9604 hidden_item
= proto_tree_add_boolean(tree
,
9605 hf_ff_fms_terminate_download_seq
, tvb
, 0, 0, 1);
9606 proto_item_set_hidden(hidden_item
);
9607 hidden_item
= proto_tree_add_boolean(tree
,
9608 hf_ff_fms_terminate_download_seq_rsp
, tvb
, 0, 0, 1);
9609 proto_item_set_hidden(hidden_item
);
9611 dissect_ff_msg_fms_terminate_download_sequence_rsp(tvb
,
9612 offset
, length
, pinfo
, tree
);
9615 case FMS_MSG_TERMINATE_DOWNLOAD_SEQUENCE_ERR
:
9616 hidden_item
= proto_tree_add_boolean(tree
,
9617 hf_ff_fms
, tvb
, 0, 0, 1);
9618 proto_item_set_hidden(hidden_item
);
9619 hidden_item
= proto_tree_add_boolean(tree
,
9620 hf_ff_fms_terminate_download_seq
, tvb
, 0, 0, 1);
9621 proto_item_set_hidden(hidden_item
);
9622 hidden_item
= proto_tree_add_boolean(tree
,
9623 hf_ff_fms_terminate_download_seq_err
, tvb
, 0, 0, 1);
9624 proto_item_set_hidden(hidden_item
);
9626 dissect_ff_msg_fms_terminate_download_sequence_err(tvb
,
9627 offset
, length
, pinfo
, tree
);
9630 case FMS_MSG_INITIATE_UPLOAD_SEQUENCE_REQ
:
9631 hidden_item
= proto_tree_add_boolean(tree
,
9632 hf_ff_fms
, tvb
, 0, 0, 1);
9633 proto_item_set_hidden(hidden_item
);
9634 hidden_item
= proto_tree_add_boolean(tree
,
9635 hf_ff_fms_init_upload_seq
, tvb
, 0, 0, 1);
9636 proto_item_set_hidden(hidden_item
);
9637 hidden_item
= proto_tree_add_boolean(tree
,
9638 hf_ff_fms_init_upload_seq_req
, tvb
, 0, 0, 1);
9639 proto_item_set_hidden(hidden_item
);
9641 dissect_ff_msg_fms_init_upload_seq_req(tvb
,
9642 offset
, length
, pinfo
, tree
);
9645 case FMS_MSG_INITIATE_UPLOAD_SEQUENCE_RSP
:
9646 hidden_item
= proto_tree_add_boolean(tree
,
9647 hf_ff_fms
, tvb
, 0, 0, 1);
9648 proto_item_set_hidden(hidden_item
);
9649 hidden_item
= proto_tree_add_boolean(tree
,
9650 hf_ff_fms_init_upload_seq
, tvb
, 0, 0, 1);
9651 proto_item_set_hidden(hidden_item
);
9652 hidden_item
= proto_tree_add_boolean(tree
,
9653 hf_ff_fms_init_upload_seq_rsp
, tvb
, 0, 0, 1);
9654 proto_item_set_hidden(hidden_item
);
9656 dissect_ff_msg_fms_init_upload_seq_rsp(tvb
,
9657 offset
, length
, pinfo
, tree
);
9660 case FMS_MSG_INITIATE_UPLOAD_SEQUENCE_ERR
:
9661 hidden_item
= proto_tree_add_boolean(tree
,
9662 hf_ff_fms
, tvb
, 0, 0, 1);
9663 proto_item_set_hidden(hidden_item
);
9664 hidden_item
= proto_tree_add_boolean(tree
,
9665 hf_ff_fms_init_upload_seq
, tvb
, 0, 0, 1);
9666 proto_item_set_hidden(hidden_item
);
9667 hidden_item
= proto_tree_add_boolean(tree
,
9668 hf_ff_fms_init_upload_seq_err
, tvb
, 0, 0, 1);
9669 proto_item_set_hidden(hidden_item
);
9671 dissect_ff_msg_fms_init_upload_seq_err(tvb
,
9672 offset
, length
, pinfo
, tree
);
9675 case FMS_MSG_UPLOAD_SEGMENT_REQ
:
9676 hidden_item
= proto_tree_add_boolean(tree
,
9677 hf_ff_fms
, tvb
, 0, 0, 1);
9678 proto_item_set_hidden(hidden_item
);
9679 hidden_item
= proto_tree_add_boolean(tree
,
9680 hf_ff_fms_upload_seg
, tvb
, 0, 0, 1);
9681 proto_item_set_hidden(hidden_item
);
9682 hidden_item
= proto_tree_add_boolean(tree
,
9683 hf_ff_fms_upload_seg_req
, tvb
, 0, 0, 1);
9684 proto_item_set_hidden(hidden_item
);
9686 dissect_ff_msg_fms_upload_segment_req(tvb
, offset
,
9687 length
, pinfo
, tree
);
9690 case FMS_MSG_UPLOAD_SEGMENT_RSP
:
9691 hidden_item
= proto_tree_add_boolean(tree
,
9692 hf_ff_fms
, tvb
, 0, 0, 1);
9693 proto_item_set_hidden(hidden_item
);
9694 hidden_item
= proto_tree_add_boolean(tree
,
9695 hf_ff_fms_upload_seg
, tvb
, 0, 0, 1);
9696 proto_item_set_hidden(hidden_item
);
9697 hidden_item
= proto_tree_add_boolean(tree
,
9698 hf_ff_fms_upload_seg_rsp
, tvb
, 0, 0, 1);
9699 proto_item_set_hidden(hidden_item
);
9701 dissect_ff_msg_fms_upload_segment_rsp(tvb
, offset
,
9702 length
, pinfo
, tree
);
9705 case FMS_MSG_UPLOAD_SEGMENT_ERR
:
9706 hidden_item
= proto_tree_add_boolean(tree
,
9707 hf_ff_fms
, tvb
, 0, 0, 1);
9708 proto_item_set_hidden(hidden_item
);
9709 hidden_item
= proto_tree_add_boolean(tree
,
9710 hf_ff_fms_upload_seg
, tvb
, 0, 0, 1);
9711 proto_item_set_hidden(hidden_item
);
9712 hidden_item
= proto_tree_add_boolean(tree
,
9713 hf_ff_fms_upload_seg_err
, tvb
, 0, 0, 1);
9714 proto_item_set_hidden(hidden_item
);
9716 dissect_ff_msg_fms_upload_segment_err(tvb
, offset
,
9717 length
, pinfo
, tree
);
9720 case FMS_MSG_TERMINATE_UPLOAD_SEQUENCE_REQ
:
9721 hidden_item
= proto_tree_add_boolean(tree
,
9722 hf_ff_fms
, tvb
, 0, 0, 1);
9723 proto_item_set_hidden(hidden_item
);
9724 hidden_item
= proto_tree_add_boolean(tree
,
9725 hf_ff_fms_terminate_upload_seq
, tvb
, 0, 0, 1);
9726 proto_item_set_hidden(hidden_item
);
9727 hidden_item
= proto_tree_add_boolean(tree
,
9728 hf_ff_fms_terminate_upload_seq_req
, tvb
, 0, 0, 1);
9729 proto_item_set_hidden(hidden_item
);
9731 dissect_ff_msg_fms_terminate_upload_seq_req(tvb
,
9732 offset
, length
, pinfo
, tree
);
9735 case FMS_MSG_TERMINATE_UPLOAD_SEQUENCE_RSP
:
9736 hidden_item
= proto_tree_add_boolean(tree
,
9737 hf_ff_fms
, tvb
, 0, 0, 1);
9738 proto_item_set_hidden(hidden_item
);
9739 hidden_item
= proto_tree_add_boolean(tree
,
9740 hf_ff_fms_terminate_upload_seq
, tvb
, 0, 0, 1);
9741 proto_item_set_hidden(hidden_item
);
9742 hidden_item
= proto_tree_add_boolean(tree
,
9743 hf_ff_fms_terminate_upload_seq_rsp
, tvb
, 0, 0, 1);
9744 proto_item_set_hidden(hidden_item
);
9746 dissect_ff_msg_fms_terminate_upload_seq_rsp(tvb
,
9747 offset
, length
, pinfo
, tree
);
9750 case FMS_MSG_TERMINATE_UPLOAD_SEQUENCE_ERR
:
9751 hidden_item
= proto_tree_add_boolean(tree
,
9752 hf_ff_fms
, tvb
, 0, 0, 1);
9753 proto_item_set_hidden(hidden_item
);
9754 hidden_item
= proto_tree_add_boolean(tree
,
9755 hf_ff_fms_terminate_upload_seq
, tvb
, 0, 0, 1);
9756 proto_item_set_hidden(hidden_item
);
9757 hidden_item
= proto_tree_add_boolean(tree
,
9758 hf_ff_fms_terminate_upload_seq_err
, tvb
, 0, 0, 1);
9759 proto_item_set_hidden(hidden_item
);
9761 dissect_ff_msg_fms_terminate_upload_seq_err(tvb
,
9762 offset
, length
, pinfo
, tree
);
9765 case FMS_MSG_REQUEST_DOMAIN_DOWNLOAD_REQ
:
9766 hidden_item
= proto_tree_add_boolean(tree
,
9767 hf_ff_fms
, tvb
, 0, 0, 1);
9768 proto_item_set_hidden(hidden_item
);
9769 hidden_item
= proto_tree_add_boolean(tree
,
9770 hf_ff_fms_req_dom_download
, tvb
, 0, 0, 1);
9771 proto_item_set_hidden(hidden_item
);
9772 hidden_item
= proto_tree_add_boolean(tree
,
9773 hf_ff_fms_req_dom_download_req
, tvb
, 0, 0, 1);
9774 proto_item_set_hidden(hidden_item
);
9776 dissect_ff_msg_fms_req_dom_download_req(tvb
, offset
,
9777 length
, pinfo
, tree
);
9780 case FMS_MSG_REQUEST_DOMAIN_DOWNLOAD_RSP
:
9781 hidden_item
= proto_tree_add_boolean(tree
,
9782 hf_ff_fms
, tvb
, 0, 0, 1);
9783 proto_item_set_hidden(hidden_item
);
9784 hidden_item
= proto_tree_add_boolean(tree
,
9785 hf_ff_fms_req_dom_download
, tvb
, 0, 0, 1);
9786 proto_item_set_hidden(hidden_item
);
9787 hidden_item
= proto_tree_add_boolean(tree
,
9788 hf_ff_fms_req_dom_download_rsp
, tvb
, 0, 0, 1);
9789 proto_item_set_hidden(hidden_item
);
9791 dissect_ff_msg_fms_req_dom_download_rsp(tvb
, offset
,
9792 length
, pinfo
, tree
);
9795 case FMS_MSG_REQUEST_DOMAIN_DOWNLOAD_ERR
:
9796 hidden_item
= proto_tree_add_boolean(tree
,
9797 hf_ff_fms
, tvb
, 0, 0, 1);
9798 proto_item_set_hidden(hidden_item
);
9799 hidden_item
= proto_tree_add_boolean(tree
,
9800 hf_ff_fms_req_dom_download
, tvb
, 0, 0, 1);
9801 proto_item_set_hidden(hidden_item
);
9802 hidden_item
= proto_tree_add_boolean(tree
,
9803 hf_ff_fms_req_dom_download_err
, tvb
, 0, 0, 1);
9804 proto_item_set_hidden(hidden_item
);
9806 dissect_ff_msg_fms_req_dom_download_err(tvb
, offset
,
9807 length
, pinfo
, tree
);
9810 case FMS_MSG_REQUEST_DOMAIN_UPLOAD_REQ
:
9811 hidden_item
= proto_tree_add_boolean(tree
,
9812 hf_ff_fms
, tvb
, 0, 0, 1);
9813 proto_item_set_hidden(hidden_item
);
9814 hidden_item
= proto_tree_add_boolean(tree
,
9815 hf_ff_fms_req_dom_upload
, tvb
, 0, 0, 1);
9816 proto_item_set_hidden(hidden_item
);
9817 hidden_item
= proto_tree_add_boolean(tree
,
9818 hf_ff_fms_req_dom_upload_req
, tvb
, 0, 0, 1);
9819 proto_item_set_hidden(hidden_item
);
9821 dissect_ff_msg_fms_req_dom_upload_req(tvb
, offset
,
9822 length
, pinfo
, tree
);
9825 case FMS_MSG_REQUEST_DOMAIN_UPLOAD_RSP
:
9826 hidden_item
= proto_tree_add_boolean(tree
,
9827 hf_ff_fms
, tvb
, 0, 0, 1);
9828 proto_item_set_hidden(hidden_item
);
9829 hidden_item
= proto_tree_add_boolean(tree
,
9830 hf_ff_fms_req_dom_upload
, tvb
, 0, 0, 1);
9831 proto_item_set_hidden(hidden_item
);
9832 hidden_item
= proto_tree_add_boolean(tree
,
9833 hf_ff_fms_req_dom_upload_rsp
, tvb
, 0, 0, 1);
9834 proto_item_set_hidden(hidden_item
);
9836 dissect_ff_msg_fms_req_dom_upload_rsp(tvb
, offset
,
9837 length
, pinfo
, tree
);
9840 case FMS_MSG_REQUEST_DOMAIN_UPLOAD_ERR
:
9841 hidden_item
= proto_tree_add_boolean(tree
,
9842 hf_ff_fms
, tvb
, 0, 0, 1);
9843 proto_item_set_hidden(hidden_item
);
9844 hidden_item
= proto_tree_add_boolean(tree
,
9845 hf_ff_fms_req_dom_upload
, tvb
, 0, 0, 1);
9846 proto_item_set_hidden(hidden_item
);
9847 hidden_item
= proto_tree_add_boolean(tree
,
9848 hf_ff_fms_req_dom_upload_err
, tvb
, 0, 0, 1);
9849 proto_item_set_hidden(hidden_item
);
9851 dissect_ff_msg_fms_req_dom_upload_err(tvb
, offset
,
9852 length
, pinfo
, tree
);
9855 case FMS_MSG_CREATE_PI_REQ
:
9856 hidden_item
= proto_tree_add_boolean(tree
,
9857 hf_ff_fms
, tvb
, 0, 0, 1);
9858 proto_item_set_hidden(hidden_item
);
9859 hidden_item
= proto_tree_add_boolean(tree
,
9860 hf_ff_fms_create_pi
, tvb
, 0, 0, 1);
9861 proto_item_set_hidden(hidden_item
);
9862 hidden_item
= proto_tree_add_boolean(tree
,
9863 hf_ff_fms_create_pi_req
, tvb
, 0, 0, 1);
9864 proto_item_set_hidden(hidden_item
);
9866 dissect_ff_msg_fms_create_pi_req(tvb
, offset
,
9867 length
, pinfo
, tree
);
9870 case FMS_MSG_CREATE_PI_RSP
:
9871 hidden_item
= proto_tree_add_boolean(tree
,
9872 hf_ff_fms
, tvb
, 0, 0, 1);
9873 proto_item_set_hidden(hidden_item
);
9874 hidden_item
= proto_tree_add_boolean(tree
,
9875 hf_ff_fms_create_pi
, tvb
, 0, 0, 1);
9876 proto_item_set_hidden(hidden_item
);
9877 hidden_item
= proto_tree_add_boolean(tree
,
9878 hf_ff_fms_create_pi_rsp
, tvb
, 0, 0, 1);
9879 proto_item_set_hidden(hidden_item
);
9881 dissect_ff_msg_fms_create_pi_rsp(tvb
, offset
,
9882 length
, pinfo
, tree
);
9885 case FMS_MSG_CREATE_PI_ERR
:
9886 hidden_item
= proto_tree_add_boolean(tree
,
9887 hf_ff_fms
, tvb
, 0, 0, 1);
9888 proto_item_set_hidden(hidden_item
);
9889 hidden_item
= proto_tree_add_boolean(tree
,
9890 hf_ff_fms_create_pi
, tvb
, 0, 0, 1);
9891 proto_item_set_hidden(hidden_item
);
9892 hidden_item
= proto_tree_add_boolean(tree
,
9893 hf_ff_fms_create_pi_err
, tvb
, 0, 0, 1);
9894 proto_item_set_hidden(hidden_item
);
9896 dissect_ff_msg_fms_create_pi_err(tvb
, offset
,
9897 length
, pinfo
, tree
);
9900 case FMS_MSG_DELETE_PI_REQ
:
9901 hidden_item
= proto_tree_add_boolean(tree
,
9902 hf_ff_fms
, tvb
, 0, 0, 1);
9903 proto_item_set_hidden(hidden_item
);
9904 hidden_item
= proto_tree_add_boolean(tree
,
9905 hf_ff_fms_del_pi
, tvb
, 0, 0, 1);
9906 proto_item_set_hidden(hidden_item
);
9907 hidden_item
= proto_tree_add_boolean(tree
,
9908 hf_ff_fms_del_pi_req
, tvb
, 0, 0, 1);
9909 proto_item_set_hidden(hidden_item
);
9911 dissect_ff_msg_fms_del_pi_req(tvb
, offset
,
9912 length
, pinfo
, tree
);
9915 case FMS_MSG_DELETE_PI_RSP
:
9916 hidden_item
= proto_tree_add_boolean(tree
,
9917 hf_ff_fms
, tvb
, 0, 0, 1);
9918 proto_item_set_hidden(hidden_item
);
9919 hidden_item
= proto_tree_add_boolean(tree
,
9920 hf_ff_fms_del_pi
, tvb
, 0, 0, 1);
9921 proto_item_set_hidden(hidden_item
);
9922 hidden_item
= proto_tree_add_boolean(tree
,
9923 hf_ff_fms_del_pi_rsp
, tvb
, 0, 0, 1);
9924 proto_item_set_hidden(hidden_item
);
9926 dissect_ff_msg_fms_del_pi_rsp(tvb
, offset
,
9927 length
, pinfo
, tree
);
9930 case FMS_MSG_DELETE_PI_ERR
:
9931 hidden_item
= proto_tree_add_boolean(tree
,
9932 hf_ff_fms
, tvb
, 0, 0, 1);
9933 proto_item_set_hidden(hidden_item
);
9934 hidden_item
= proto_tree_add_boolean(tree
,
9935 hf_ff_fms_del_pi
, tvb
, 0, 0, 1);
9936 proto_item_set_hidden(hidden_item
);
9937 hidden_item
= proto_tree_add_boolean(tree
,
9938 hf_ff_fms_del_pi_err
, tvb
, 0, 0, 1);
9939 proto_item_set_hidden(hidden_item
);
9941 dissect_ff_msg_fms_del_pi_err(tvb
, offset
,
9942 length
, pinfo
, tree
);
9945 case FMS_MSG_START_PI_REQ
:
9946 hidden_item
= proto_tree_add_boolean(tree
,
9947 hf_ff_fms
, tvb
, 0, 0, 1);
9948 proto_item_set_hidden(hidden_item
);
9949 hidden_item
= proto_tree_add_boolean(tree
,
9950 hf_ff_fms_start
, tvb
, 0, 0, 1);
9951 proto_item_set_hidden(hidden_item
);
9952 hidden_item
= proto_tree_add_boolean(tree
,
9953 hf_ff_fms_start_req
, tvb
, 0, 0, 1);
9954 proto_item_set_hidden(hidden_item
);
9956 dissect_ff_msg_fms_start_pi_req(tvb
, offset
,
9957 length
, pinfo
, tree
);
9960 case FMS_MSG_START_PI_RSP
:
9961 hidden_item
= proto_tree_add_boolean(tree
,
9962 hf_ff_fms
, tvb
, 0, 0, 1);
9963 proto_item_set_hidden(hidden_item
);
9964 hidden_item
= proto_tree_add_boolean(tree
,
9965 hf_ff_fms_start
, tvb
, 0, 0, 1);
9966 proto_item_set_hidden(hidden_item
);
9967 hidden_item
= proto_tree_add_boolean(tree
,
9968 hf_ff_fms_start_rsp
, tvb
, 0, 0, 1);
9969 proto_item_set_hidden(hidden_item
);
9971 dissect_ff_msg_fms_start_pi_rsp(tvb
, offset
,
9972 length
, pinfo
, tree
);
9975 case FMS_MSG_START_PI_ERR
:
9976 hidden_item
= proto_tree_add_boolean(tree
,
9977 hf_ff_fms
, tvb
, 0, 0, 1);
9978 proto_item_set_hidden(hidden_item
);
9979 hidden_item
= proto_tree_add_boolean(tree
,
9980 hf_ff_fms_start
, tvb
, 0, 0, 1);
9981 proto_item_set_hidden(hidden_item
);
9982 hidden_item
= proto_tree_add_boolean(tree
,
9983 hf_ff_fms_start_err
, tvb
, 0, 0, 1);
9984 proto_item_set_hidden(hidden_item
);
9986 dissect_ff_msg_fms_start_pi_err(tvb
, offset
,
9987 length
, pinfo
, tree
);
9990 case FMS_MSG_STOP_PI_REQ
:
9991 hidden_item
= proto_tree_add_boolean(tree
,
9992 hf_ff_fms
, tvb
, 0, 0, 1);
9993 proto_item_set_hidden(hidden_item
);
9994 hidden_item
= proto_tree_add_boolean(tree
,
9995 hf_ff_fms_stop
, tvb
, 0, 0, 1);
9996 proto_item_set_hidden(hidden_item
);
9997 hidden_item
= proto_tree_add_boolean(tree
,
9998 hf_ff_fms_stop_req
, tvb
, 0, 0, 1);
9999 proto_item_set_hidden(hidden_item
);
10001 dissect_ff_msg_fms_stop_pi_req(tvb
, offset
,
10002 length
, pinfo
, tree
);
10005 case FMS_MSG_STOP_PI_RSP
:
10006 hidden_item
= proto_tree_add_boolean(tree
,
10007 hf_ff_fms
, tvb
, 0, 0, 1);
10008 proto_item_set_hidden(hidden_item
);
10009 hidden_item
= proto_tree_add_boolean(tree
,
10010 hf_ff_fms_stop
, tvb
, 0, 0, 1);
10011 proto_item_set_hidden(hidden_item
);
10012 hidden_item
= proto_tree_add_boolean(tree
,
10013 hf_ff_fms_stop_rsp
, tvb
, 0, 0, 1);
10014 proto_item_set_hidden(hidden_item
);
10016 dissect_ff_msg_fms_stop_pi_rsp(tvb
, offset
,
10017 length
, pinfo
, tree
);
10020 case FMS_MSG_STOP_PI_ERR
:
10021 hidden_item
= proto_tree_add_boolean(tree
,
10022 hf_ff_fms
, tvb
, 0, 0, 1);
10023 proto_item_set_hidden(hidden_item
);
10024 hidden_item
= proto_tree_add_boolean(tree
,
10025 hf_ff_fms_stop
, tvb
, 0, 0, 1);
10026 proto_item_set_hidden(hidden_item
);
10027 hidden_item
= proto_tree_add_boolean(tree
,
10028 hf_ff_fms_stop_err
, tvb
, 0, 0, 1);
10029 proto_item_set_hidden(hidden_item
);
10031 dissect_ff_msg_fms_stop_pi_err(tvb
, offset
,
10032 length
, pinfo
, tree
);
10035 case FMS_MSG_RESUME_PI_REQ
:
10036 hidden_item
= proto_tree_add_boolean(tree
,
10037 hf_ff_fms
, tvb
, 0, 0, 1);
10038 proto_item_set_hidden(hidden_item
);
10039 hidden_item
= proto_tree_add_boolean(tree
,
10040 hf_ff_fms_resume
, tvb
, 0, 0, 1);
10041 proto_item_set_hidden(hidden_item
);
10042 hidden_item
= proto_tree_add_boolean(tree
,
10043 hf_ff_fms_resume_req
, tvb
, 0, 0, 1);
10044 proto_item_set_hidden(hidden_item
);
10046 dissect_ff_msg_fms_resume_pi_req(tvb
, offset
,
10047 length
, pinfo
, tree
);
10050 case FMS_MSG_RESUME_PI_RSP
:
10051 hidden_item
= proto_tree_add_boolean(tree
,
10052 hf_ff_fms
, tvb
, 0, 0, 1);
10053 proto_item_set_hidden(hidden_item
);
10054 hidden_item
= proto_tree_add_boolean(tree
,
10055 hf_ff_fms_resume
, tvb
, 0, 0, 1);
10056 proto_item_set_hidden(hidden_item
);
10057 hidden_item
= proto_tree_add_boolean(tree
,
10058 hf_ff_fms_resume_rsp
, tvb
, 0, 0, 1);
10059 proto_item_set_hidden(hidden_item
);
10061 dissect_ff_msg_fms_resume_pi_rsp(tvb
, offset
,
10062 length
, pinfo
, tree
);
10065 case FMS_MSG_RESUME_PI_ERR
:
10066 hidden_item
= proto_tree_add_boolean(tree
,
10067 hf_ff_fms
, tvb
, 0, 0, 1);
10068 proto_item_set_hidden(hidden_item
);
10069 hidden_item
= proto_tree_add_boolean(tree
,
10070 hf_ff_fms_resume
, tvb
, 0, 0, 1);
10071 proto_item_set_hidden(hidden_item
);
10072 hidden_item
= proto_tree_add_boolean(tree
,
10073 hf_ff_fms_resume_err
, tvb
, 0, 0, 1);
10074 proto_item_set_hidden(hidden_item
);
10076 dissect_ff_msg_fms_resume_pi_err(tvb
, offset
,
10077 length
, pinfo
, tree
);
10080 case FMS_MSG_RESET_PI_REQ
:
10081 hidden_item
= proto_tree_add_boolean(tree
,
10082 hf_ff_fms
, tvb
, 0, 0, 1);
10083 proto_item_set_hidden(hidden_item
);
10084 hidden_item
= proto_tree_add_boolean(tree
,
10085 hf_ff_fms_reset
, tvb
, 0, 0, 1);
10086 proto_item_set_hidden(hidden_item
);
10087 hidden_item
= proto_tree_add_boolean(tree
,
10088 hf_ff_fms_reset_req
, tvb
, 0, 0, 1);
10089 proto_item_set_hidden(hidden_item
);
10091 dissect_ff_msg_fms_reset_pi_req(tvb
, offset
,
10092 length
, pinfo
, tree
);
10095 case FMS_MSG_RESET_PI_RSP
:
10096 hidden_item
= proto_tree_add_boolean(tree
,
10097 hf_ff_fms
, tvb
, 0, 0, 1);
10098 proto_item_set_hidden(hidden_item
);
10099 hidden_item
= proto_tree_add_boolean(tree
,
10100 hf_ff_fms_reset
, tvb
, 0, 0, 1);
10101 proto_item_set_hidden(hidden_item
);
10102 hidden_item
= proto_tree_add_boolean(tree
,
10103 hf_ff_fms_reset_rsp
, tvb
, 0, 0, 1);
10104 proto_item_set_hidden(hidden_item
);
10106 dissect_ff_msg_fms_reset_pi_rsp(tvb
, offset
,
10107 length
, pinfo
, tree
);
10110 case FMS_MSG_RESET_PI_ERR
:
10111 hidden_item
= proto_tree_add_boolean(tree
,
10112 hf_ff_fms
, tvb
, 0, 0, 1);
10113 proto_item_set_hidden(hidden_item
);
10114 hidden_item
= proto_tree_add_boolean(tree
,
10115 hf_ff_fms_reset
, tvb
, 0, 0, 1);
10116 proto_item_set_hidden(hidden_item
);
10117 hidden_item
= proto_tree_add_boolean(tree
,
10118 hf_ff_fms_reset_err
, tvb
, 0, 0, 1);
10119 proto_item_set_hidden(hidden_item
);
10121 dissect_ff_msg_fms_reset_pi_err(tvb
, offset
,
10122 length
, pinfo
, tree
);
10125 case FMS_MSG_KILL_PI_REQ
:
10126 hidden_item
= proto_tree_add_boolean(tree
,
10127 hf_ff_fms
, tvb
, 0, 0, 1);
10128 proto_item_set_hidden(hidden_item
);
10129 hidden_item
= proto_tree_add_boolean(tree
,
10130 hf_ff_fms_kill
, tvb
, 0, 0, 1);
10131 proto_item_set_hidden(hidden_item
);
10132 hidden_item
= proto_tree_add_boolean(tree
,
10133 hf_ff_fms_kill_req
, tvb
, 0, 0, 1);
10134 proto_item_set_hidden(hidden_item
);
10136 dissect_ff_msg_fms_kill_pi_req(tvb
, offset
,
10137 length
, pinfo
, tree
);
10140 case FMS_MSG_KILL_PI_RSP
:
10141 hidden_item
= proto_tree_add_boolean(tree
,
10142 hf_ff_fms
, tvb
, 0, 0, 1);
10143 proto_item_set_hidden(hidden_item
);
10144 hidden_item
= proto_tree_add_boolean(tree
,
10145 hf_ff_fms_kill
, tvb
, 0, 0, 1);
10146 proto_item_set_hidden(hidden_item
);
10147 hidden_item
= proto_tree_add_boolean(tree
,
10148 hf_ff_fms_kill_rsp
, tvb
, 0, 0, 1);
10149 proto_item_set_hidden(hidden_item
);
10151 dissect_ff_msg_fms_kill_pi_rsp(tvb
, offset
,
10152 length
, pinfo
, tree
);
10155 case FMS_MSG_KILL_PI_ERR
:
10156 hidden_item
= proto_tree_add_boolean(tree
,
10157 hf_ff_fms
, tvb
, 0, 0, 1);
10158 proto_item_set_hidden(hidden_item
);
10159 hidden_item
= proto_tree_add_boolean(tree
,
10160 hf_ff_fms_kill
, tvb
, 0, 0, 1);
10161 proto_item_set_hidden(hidden_item
);
10162 hidden_item
= proto_tree_add_boolean(tree
,
10163 hf_ff_fms_kill_err
, tvb
, 0, 0, 1);
10164 proto_item_set_hidden(hidden_item
);
10166 dissect_ff_msg_fms_kill_pi_err(tvb
, offset
,
10167 length
, pinfo
, tree
);
10170 case FMS_MSG_READ_REQ
:
10171 hidden_item
= proto_tree_add_boolean(tree
,
10172 hf_ff_fms
, tvb
, 0, 0, 1);
10173 proto_item_set_hidden(hidden_item
);
10174 hidden_item
= proto_tree_add_boolean(tree
,
10175 hf_ff_fms_read
, tvb
, 0, 0, 1);
10176 proto_item_set_hidden(hidden_item
);
10177 hidden_item
= proto_tree_add_boolean(tree
,
10178 hf_ff_fms_read_req
, tvb
, 0, 0, 1);
10179 proto_item_set_hidden(hidden_item
);
10181 dissect_ff_msg_fms_read_req(tvb
, offset
,
10182 length
, pinfo
, tree
);
10185 case FMS_MSG_READ_RSP
:
10186 hidden_item
= proto_tree_add_boolean(tree
,
10187 hf_ff_fms
, tvb
, 0, 0, 1);
10188 proto_item_set_hidden(hidden_item
);
10189 hidden_item
= proto_tree_add_boolean(tree
,
10190 hf_ff_fms_read
, tvb
, 0, 0, 1);
10191 proto_item_set_hidden(hidden_item
);
10192 hidden_item
= proto_tree_add_boolean(tree
,
10193 hf_ff_fms_read_rsp
, tvb
, 0, 0, 1);
10194 proto_item_set_hidden(hidden_item
);
10196 dissect_ff_msg_fms_read_rsp(tvb
, offset
,
10197 length
, pinfo
, tree
);
10200 case FMS_MSG_READ_ERR
:
10201 hidden_item
= proto_tree_add_boolean(tree
,
10202 hf_ff_fms
, tvb
, 0, 0, 1);
10203 proto_item_set_hidden(hidden_item
);
10204 hidden_item
= proto_tree_add_boolean(tree
,
10205 hf_ff_fms_read
, tvb
, 0, 0, 1);
10206 proto_item_set_hidden(hidden_item
);
10207 hidden_item
= proto_tree_add_boolean(tree
,
10208 hf_ff_fms_read_err
, tvb
, 0, 0, 1);
10209 proto_item_set_hidden(hidden_item
);
10211 dissect_ff_msg_fms_read_err(tvb
, offset
,
10212 length
, pinfo
, tree
);
10215 case FMS_MSG_READ_SUBINDEX_REQ
:
10216 hidden_item
= proto_tree_add_boolean(tree
,
10217 hf_ff_fms
, tvb
, 0, 0, 1);
10218 proto_item_set_hidden(hidden_item
);
10219 hidden_item
= proto_tree_add_boolean(tree
,
10220 hf_ff_fms_read_with_subidx
, tvb
, 0, 0, 1);
10221 proto_item_set_hidden(hidden_item
);
10222 hidden_item
= proto_tree_add_boolean(tree
,
10223 hf_ff_fms_read_with_subidx_req
, tvb
, 0, 0, 1);
10224 proto_item_set_hidden(hidden_item
);
10226 dissect_ff_msg_fms_read_subindex_req(tvb
, offset
,
10227 length
, pinfo
, tree
);
10230 case FMS_MSG_READ_SUBINDEX_RSP
:
10231 hidden_item
= proto_tree_add_boolean(tree
,
10232 hf_ff_fms
, tvb
, 0, 0, 1);
10233 proto_item_set_hidden(hidden_item
);
10234 hidden_item
= proto_tree_add_boolean(tree
,
10235 hf_ff_fms_read_with_subidx
, tvb
, 0, 0, 1);
10236 proto_item_set_hidden(hidden_item
);
10237 hidden_item
= proto_tree_add_boolean(tree
,
10238 hf_ff_fms_read_with_subidx_rsp
, tvb
, 0, 0, 1);
10239 proto_item_set_hidden(hidden_item
);
10241 dissect_ff_msg_fms_read_subindex_rsp(tvb
, offset
,
10242 length
, pinfo
, tree
);
10245 case FMS_MSG_READ_SUBINDEX_ERR
:
10246 hidden_item
= proto_tree_add_boolean(tree
,
10247 hf_ff_fms
, tvb
, 0, 0, 1);
10248 proto_item_set_hidden(hidden_item
);
10249 hidden_item
= proto_tree_add_boolean(tree
,
10250 hf_ff_fms_read_with_subidx
, tvb
, 0, 0, 1);
10251 proto_item_set_hidden(hidden_item
);
10252 hidden_item
= proto_tree_add_boolean(tree
,
10253 hf_ff_fms_read_with_subidx_err
, tvb
, 0, 0, 1);
10254 proto_item_set_hidden(hidden_item
);
10256 dissect_ff_msg_fms_read_subindex_err(tvb
, offset
,
10257 length
, pinfo
, tree
);
10260 case FMS_MSG_WRITE_REQ
:
10261 hidden_item
= proto_tree_add_boolean(tree
,
10262 hf_ff_fms
, tvb
, 0, 0, 1);
10263 proto_item_set_hidden(hidden_item
);
10264 hidden_item
= proto_tree_add_boolean(tree
,
10265 hf_ff_fms_write
, tvb
, 0, 0, 1);
10266 proto_item_set_hidden(hidden_item
);
10267 hidden_item
= proto_tree_add_boolean(tree
,
10268 hf_ff_fms_write_req
, tvb
, 0, 0, 1);
10269 proto_item_set_hidden(hidden_item
);
10271 dissect_ff_msg_fms_write_req(tvb
, offset
,
10272 length
, pinfo
, tree
);
10275 case FMS_MSG_WRITE_RSP
:
10276 hidden_item
= proto_tree_add_boolean(tree
,
10277 hf_ff_fms
, tvb
, 0, 0, 1);
10278 proto_item_set_hidden(hidden_item
);
10279 hidden_item
= proto_tree_add_boolean(tree
,
10280 hf_ff_fms_write
, tvb
, 0, 0, 1);
10281 proto_item_set_hidden(hidden_item
);
10282 hidden_item
= proto_tree_add_boolean(tree
,
10283 hf_ff_fms_write_rsp
, tvb
, 0, 0, 1);
10284 proto_item_set_hidden(hidden_item
);
10286 dissect_ff_msg_fms_write_rsp(tvb
, offset
,
10287 length
, pinfo
, tree
);
10290 case FMS_MSG_WRITE_ERR
:
10291 hidden_item
= proto_tree_add_boolean(tree
,
10292 hf_ff_fms
, tvb
, 0, 0, 1);
10293 proto_item_set_hidden(hidden_item
);
10294 hidden_item
= proto_tree_add_boolean(tree
,
10295 hf_ff_fms_write
, tvb
, 0, 0, 1);
10296 proto_item_set_hidden(hidden_item
);
10297 hidden_item
= proto_tree_add_boolean(tree
,
10298 hf_ff_fms_write_err
, tvb
, 0, 0, 1);
10299 proto_item_set_hidden(hidden_item
);
10301 dissect_ff_msg_fms_write_err(tvb
, offset
,
10302 length
, pinfo
, tree
);
10305 case FMS_MSG_WRITE_SUBINDEX_REQ
:
10306 hidden_item
= proto_tree_add_boolean(tree
,
10307 hf_ff_fms
, tvb
, 0, 0, 1);
10308 proto_item_set_hidden(hidden_item
);
10309 hidden_item
= proto_tree_add_boolean(tree
,
10310 hf_ff_fms_write_with_subidx
, tvb
, 0, 0, 1);
10311 proto_item_set_hidden(hidden_item
);
10312 hidden_item
= proto_tree_add_boolean(tree
,
10313 hf_ff_fms_write_with_subidx_req
, tvb
, 0, 0, 1);
10314 proto_item_set_hidden(hidden_item
);
10316 dissect_ff_msg_fms_write_subindex_req(tvb
, offset
,
10317 length
, pinfo
, tree
);
10320 case FMS_MSG_WRITE_SUBINDEX_RSP
:
10321 hidden_item
= proto_tree_add_boolean(tree
,
10322 hf_ff_fms
, tvb
, 0, 0, 1);
10323 proto_item_set_hidden(hidden_item
);
10324 hidden_item
= proto_tree_add_boolean(tree
,
10325 hf_ff_fms_write_with_subidx
, tvb
, 0, 0, 1);
10326 proto_item_set_hidden(hidden_item
);
10327 hidden_item
= proto_tree_add_boolean(tree
,
10328 hf_ff_fms_write_with_subidx_rsp
, tvb
, 0, 0, 1);
10329 proto_item_set_hidden(hidden_item
);
10331 dissect_ff_msg_fms_write_subindex_rsp(tvb
, offset
,
10332 length
, pinfo
, tree
);
10335 case FMS_MSG_WRITE_SUBINDEX_ERR
:
10336 hidden_item
= proto_tree_add_boolean(tree
,
10337 hf_ff_fms
, tvb
, 0, 0, 1);
10338 proto_item_set_hidden(hidden_item
);
10339 hidden_item
= proto_tree_add_boolean(tree
,
10340 hf_ff_fms_write_with_subidx
, tvb
, 0, 0, 1);
10341 proto_item_set_hidden(hidden_item
);
10342 hidden_item
= proto_tree_add_boolean(tree
,
10343 hf_ff_fms_write_with_subidx_err
, tvb
, 0, 0, 1);
10344 proto_item_set_hidden(hidden_item
);
10346 dissect_ff_msg_fms_write_subindex_err(tvb
, offset
,
10347 length
, pinfo
, tree
);
10350 case FMS_MSG_DEFINE_VARIABLE_LIST_REQ
:
10351 hidden_item
= proto_tree_add_boolean(tree
,
10352 hf_ff_fms
, tvb
, 0, 0, 1);
10353 proto_item_set_hidden(hidden_item
);
10354 hidden_item
= proto_tree_add_boolean(tree
,
10355 hf_ff_fms_def_variable_list
, tvb
, 0, 0, 1);
10356 proto_item_set_hidden(hidden_item
);
10357 hidden_item
= proto_tree_add_boolean(tree
,
10358 hf_ff_fms_def_variable_list_req
, tvb
, 0, 0, 1);
10359 proto_item_set_hidden(hidden_item
);
10361 dissect_ff_msg_fms_def_variable_list_req(tvb
, offset
,
10362 length
, pinfo
, tree
);
10365 case FMS_MSG_DEFINE_VARIABLE_LIST_RSP
:
10366 hidden_item
= proto_tree_add_boolean(tree
,
10367 hf_ff_fms
, tvb
, 0, 0, 1);
10368 proto_item_set_hidden(hidden_item
);
10369 hidden_item
= proto_tree_add_boolean(tree
,
10370 hf_ff_fms_def_variable_list
, tvb
, 0, 0, 1);
10371 proto_item_set_hidden(hidden_item
);
10372 hidden_item
= proto_tree_add_boolean(tree
,
10373 hf_ff_fms_def_variable_list_rsp
, tvb
, 0, 0, 1);
10374 proto_item_set_hidden(hidden_item
);
10376 dissect_ff_msg_fms_def_variable_list_rsp(tvb
, offset
,
10377 length
, pinfo
, tree
);
10380 case FMS_MSG_DEFINE_VARIABLE_LIST_ERR
:
10381 hidden_item
= proto_tree_add_boolean(tree
,
10382 hf_ff_fms
, tvb
, 0, 0, 1);
10383 proto_item_set_hidden(hidden_item
);
10384 hidden_item
= proto_tree_add_boolean(tree
,
10385 hf_ff_fms_def_variable_list
, tvb
, 0, 0, 1);
10386 proto_item_set_hidden(hidden_item
);
10387 hidden_item
= proto_tree_add_boolean(tree
,
10388 hf_ff_fms_def_variable_list_err
, tvb
, 0, 0, 1);
10389 proto_item_set_hidden(hidden_item
);
10391 dissect_ff_msg_fms_def_variable_list_err(tvb
, offset
,
10392 length
, pinfo
, tree
);
10395 case FMS_MSG_DELETE_VARIABLE_LIST_REQ
:
10396 hidden_item
= proto_tree_add_boolean(tree
,
10397 hf_ff_fms
, tvb
, 0, 0, 1);
10398 proto_item_set_hidden(hidden_item
);
10399 hidden_item
= proto_tree_add_boolean(tree
,
10400 hf_ff_fms_del_variable_list
, tvb
, 0, 0, 1);
10401 proto_item_set_hidden(hidden_item
);
10402 hidden_item
= proto_tree_add_boolean(tree
,
10403 hf_ff_fms_del_variable_list_req
, tvb
, 0, 0, 1);
10404 proto_item_set_hidden(hidden_item
);
10406 dissect_ff_msg_fms_del_variable_list_req(tvb
, offset
,
10407 length
, pinfo
, tree
);
10410 case FMS_MSG_DELETE_VARIABLE_LIST_RSP
:
10411 hidden_item
= proto_tree_add_boolean(tree
,
10412 hf_ff_fms
, tvb
, 0, 0, 1);
10413 proto_item_set_hidden(hidden_item
);
10414 hidden_item
= proto_tree_add_boolean(tree
,
10415 hf_ff_fms_del_variable_list
, tvb
, 0, 0, 1);
10416 proto_item_set_hidden(hidden_item
);
10417 hidden_item
= proto_tree_add_boolean(tree
,
10418 hf_ff_fms_del_variable_list_rsp
, tvb
, 0, 0, 1);
10419 proto_item_set_hidden(hidden_item
);
10421 dissect_ff_msg_fms_del_variable_list_rsp(tvb
, offset
,
10422 length
, pinfo
, tree
);
10425 case FMS_MSG_DELETE_VARIABLE_LIST_ERR
:
10426 hidden_item
= proto_tree_add_boolean(tree
,
10427 hf_ff_fms
, tvb
, 0, 0, 1);
10428 proto_item_set_hidden(hidden_item
);
10429 hidden_item
= proto_tree_add_boolean(tree
,
10430 hf_ff_fms_del_variable_list
, tvb
, 0, 0, 1);
10431 proto_item_set_hidden(hidden_item
);
10432 hidden_item
= proto_tree_add_boolean(tree
,
10433 hf_ff_fms_del_variable_list_err
, tvb
, 0, 0, 1);
10434 proto_item_set_hidden(hidden_item
);
10436 dissect_ff_msg_fms_del_variable_list_err(tvb
, offset
,
10437 length
, pinfo
, tree
);
10440 case FMS_MSG_INFO_REPORT_REQ
:
10441 hidden_item
= proto_tree_add_boolean(tree
,
10442 hf_ff_fms
, tvb
, 0, 0, 1);
10443 proto_item_set_hidden(hidden_item
);
10444 hidden_item
= proto_tree_add_boolean(tree
,
10445 hf_ff_fms_info_report
, tvb
, 0, 0, 1);
10446 proto_item_set_hidden(hidden_item
);
10447 hidden_item
= proto_tree_add_boolean(tree
,
10448 hf_ff_fms_info_report_req
, tvb
, 0, 0, 1);
10449 proto_item_set_hidden(hidden_item
);
10451 dissect_ff_msg_fms_info_report_req(tvb
, offset
,
10452 length
, pinfo
, tree
);
10455 case FMS_MSG_INFO_REPORT_SUBINDEX_REQ
:
10456 hidden_item
= proto_tree_add_boolean(tree
,
10457 hf_ff_fms
, tvb
, 0, 0, 1);
10458 proto_item_set_hidden(hidden_item
);
10459 hidden_item
= proto_tree_add_boolean(tree
,
10460 hf_ff_fms_info_report_with_subidx
, tvb
, 0, 0, 1);
10461 proto_item_set_hidden(hidden_item
);
10462 hidden_item
= proto_tree_add_boolean(tree
,
10463 hf_ff_fms_info_report_with_subidx_req
, tvb
, 0, 0, 1);
10464 proto_item_set_hidden(hidden_item
);
10466 dissect_ff_msg_fms_info_report_subindex_req(tvb
, offset
,
10467 length
, pinfo
, tree
);
10470 case FMS_MSG_INFO_REPORT_CHANGE_REQ
:
10471 hidden_item
= proto_tree_add_boolean(tree
,
10472 hf_ff_fms
, tvb
, 0, 0, 1);
10473 proto_item_set_hidden(hidden_item
);
10474 hidden_item
= proto_tree_add_boolean(tree
,
10475 hf_ff_fms_info_report_on_change
, tvb
, 0, 0, 1);
10476 proto_item_set_hidden(hidden_item
);
10477 hidden_item
= proto_tree_add_boolean(tree
,
10478 hf_ff_fms_info_report_on_change_req
, tvb
, 0, 0, 1);
10479 proto_item_set_hidden(hidden_item
);
10481 dissect_ff_msg_fms_info_report_change_req(tvb
, offset
,
10482 length
, pinfo
, tree
);
10485 case FMS_MSG_INFO_REPORT_CHANGE_SUBINDEX_REQ
:
10486 hidden_item
= proto_tree_add_boolean(tree
,
10487 hf_ff_fms
, tvb
, 0, 0, 1);
10488 proto_item_set_hidden(hidden_item
);
10489 hidden_item
= proto_tree_add_boolean(tree
,
10490 hf_ff_fms_info_report_on_change_with_subidx
, tvb
, 0, 0, 1);
10491 proto_item_set_hidden(hidden_item
);
10492 hidden_item
= proto_tree_add_boolean(tree
,
10493 hf_ff_fms_info_report_on_change_with_subidx_req
, tvb
, 0, 0, 1);
10494 proto_item_set_hidden(hidden_item
);
10496 dissect_ff_msg_fms_info_report_change_subindex_req(tvb
,
10497 offset
, length
, pinfo
, tree
);
10500 case FMS_MSG_EVENT_NOTIFICATION_REQ
:
10501 hidden_item
= proto_tree_add_boolean(tree
,
10502 hf_ff_fms
, tvb
, 0, 0, 1);
10503 proto_item_set_hidden(hidden_item
);
10504 hidden_item
= proto_tree_add_boolean(tree
,
10505 hf_ff_fms_ev_notification
, tvb
, 0, 0, 1);
10506 proto_item_set_hidden(hidden_item
);
10507 hidden_item
= proto_tree_add_boolean(tree
,
10508 hf_ff_fms_ev_notification_req
, tvb
, 0, 0, 1);
10509 proto_item_set_hidden(hidden_item
);
10511 dissect_ff_msg_fms_ev_notification_req(tvb
, offset
,
10512 length
, pinfo
, tree
);
10515 case FMS_MSG_ALTER_EVENT_CONDITION_MONITORING_REQ
:
10516 hidden_item
= proto_tree_add_boolean(tree
,
10517 hf_ff_fms
, tvb
, 0, 0, 1);
10518 proto_item_set_hidden(hidden_item
);
10519 hidden_item
= proto_tree_add_boolean(tree
,
10520 hf_ff_fms_alter_ev_condition_monitoring
, tvb
, 0, 0, 1);
10521 proto_item_set_hidden(hidden_item
);
10522 hidden_item
= proto_tree_add_boolean(tree
,
10523 hf_ff_fms_alter_ev_condition_monitoring_req
, tvb
, 0, 0, 1);
10524 proto_item_set_hidden(hidden_item
);
10526 dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_req(
10527 tvb
, offset
, length
, pinfo
, tree
);
10530 case FMS_MSG_ALTER_EVENT_CONDITION_MONITORING_RSP
:
10531 hidden_item
= proto_tree_add_boolean(tree
,
10532 hf_ff_fms
, tvb
, 0, 0, 1);
10533 proto_item_set_hidden(hidden_item
);
10534 hidden_item
= proto_tree_add_boolean(tree
,
10535 hf_ff_fms_alter_ev_condition_monitoring
, tvb
, 0, 0, 1);
10536 proto_item_set_hidden(hidden_item
);
10537 hidden_item
= proto_tree_add_boolean(tree
,
10538 hf_ff_fms_alter_ev_condition_monitoring_rsp
, tvb
, 0, 0, 1);
10539 proto_item_set_hidden(hidden_item
);
10541 dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_rsp(
10542 tvb
, offset
, length
, pinfo
, tree
);
10545 case FMS_MSG_ALTER_EVENT_CONDITION_MONITORING_ERR
:
10546 hidden_item
= proto_tree_add_boolean(tree
,
10547 hf_ff_fms
, tvb
, 0, 0, 1);
10548 proto_item_set_hidden(hidden_item
);
10549 hidden_item
= proto_tree_add_boolean(tree
,
10550 hf_ff_fms_alter_ev_condition_monitoring
, tvb
, 0, 0, 1);
10551 proto_item_set_hidden(hidden_item
);
10552 hidden_item
= proto_tree_add_boolean(tree
,
10553 hf_ff_fms_alter_ev_condition_monitoring_err
, tvb
, 0, 0, 1);
10554 proto_item_set_hidden(hidden_item
);
10556 dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_err(
10557 tvb
, offset
, length
, pinfo
, tree
);
10560 case FMS_MSG_ACKNOWLEDGE_EVENT_NOTIFICATION_REQ
:
10561 hidden_item
= proto_tree_add_boolean(tree
,
10562 hf_ff_fms
, tvb
, 0, 0, 1);
10563 proto_item_set_hidden(hidden_item
);
10564 hidden_item
= proto_tree_add_boolean(tree
,
10565 hf_ff_fms_ack_ev_notification
, tvb
, 0, 0, 1);
10566 proto_item_set_hidden(hidden_item
);
10567 hidden_item
= proto_tree_add_boolean(tree
,
10568 hf_ff_fms_ack_ev_notification_req
, tvb
, 0, 0, 1);
10569 proto_item_set_hidden(hidden_item
);
10571 dissect_ff_msg_fms_ack_ev_notification_req(tvb
,
10572 offset
, length
, pinfo
, tree
);
10575 case FMS_MSG_ACKNOWLEDGE_EVENT_NOTIFICATION_RSP
:
10576 hidden_item
= proto_tree_add_boolean(tree
,
10577 hf_ff_fms
, tvb
, 0, 0, 1);
10578 proto_item_set_hidden(hidden_item
);
10579 hidden_item
= proto_tree_add_boolean(tree
,
10580 hf_ff_fms_ack_ev_notification
, tvb
, 0, 0, 1);
10581 proto_item_set_hidden(hidden_item
);
10582 hidden_item
= proto_tree_add_boolean(tree
,
10583 hf_ff_fms_ack_ev_notification_rsp
, tvb
, 0, 0, 1);
10584 proto_item_set_hidden(hidden_item
);
10586 dissect_ff_msg_fms_ack_ev_notification_rsp(tvb
,
10587 offset
, length
, pinfo
, tree
);
10590 case FMS_MSG_ACKNOWLEDGE_EVENT_NOTIFICATION_ERR
:
10591 hidden_item
= proto_tree_add_boolean(tree
,
10592 hf_ff_fms
, tvb
, 0, 0, 1);
10593 proto_item_set_hidden(hidden_item
);
10594 hidden_item
= proto_tree_add_boolean(tree
,
10595 hf_ff_fms_ack_ev_notification
, tvb
, 0, 0, 1);
10596 proto_item_set_hidden(hidden_item
);
10597 hidden_item
= proto_tree_add_boolean(tree
,
10598 hf_ff_fms_ack_ev_notification_err
, tvb
, 0, 0, 1);
10599 proto_item_set_hidden(hidden_item
);
10601 dissect_ff_msg_fms_ack_ev_notification_err(tvb
,
10602 offset
, length
, pinfo
, tree
);
10605 case LAN_MSG_GET_INFO_REQ
:
10606 hidden_item
= proto_tree_add_boolean(tree
,
10607 hf_ff_lr
, tvb
, 0, 0, 1);
10608 proto_item_set_hidden(hidden_item
);
10609 hidden_item
= proto_tree_add_boolean(tree
,
10610 hf_ff_lr_get_info
, tvb
, 0, 0, 1);
10611 proto_item_set_hidden(hidden_item
);
10612 hidden_item
= proto_tree_add_boolean(tree
,
10613 hf_ff_lr_get_info_req
, tvb
, 0, 0, 1);
10614 proto_item_set_hidden(hidden_item
);
10616 dissect_ff_msg_lr_get_info_req(tvb
,
10617 offset
, length
, pinfo
, tree
);
10620 case LAN_MSG_GET_INFO_RSP
:
10621 hidden_item
= proto_tree_add_boolean(tree
,
10622 hf_ff_lr
, tvb
, 0, 0, 1);
10623 proto_item_set_hidden(hidden_item
);
10624 hidden_item
= proto_tree_add_boolean(tree
,
10625 hf_ff_lr_get_info
, tvb
, 0, 0, 1);
10626 proto_item_set_hidden(hidden_item
);
10627 hidden_item
= proto_tree_add_boolean(tree
,
10628 hf_ff_lr_get_info_rsp
, tvb
, 0, 0, 1);
10629 proto_item_set_hidden(hidden_item
);
10631 dissect_ff_msg_lr_get_info_rsp(tvb
,
10632 offset
, length
, pinfo
, tree
);
10635 case LAN_MSG_GET_INFO_ERR
:
10636 hidden_item
= proto_tree_add_boolean(tree
,
10637 hf_ff_lr
, tvb
, 0, 0, 1);
10638 proto_item_set_hidden(hidden_item
);
10639 hidden_item
= proto_tree_add_boolean(tree
,
10640 hf_ff_lr_get_info
, tvb
, 0, 0, 1);
10641 proto_item_set_hidden(hidden_item
);
10642 hidden_item
= proto_tree_add_boolean(tree
,
10643 hf_ff_lr_get_info_err
, tvb
, 0, 0, 1);
10644 proto_item_set_hidden(hidden_item
);
10646 dissect_ff_msg_lr_get_info_err(tvb
,
10647 offset
, length
, pinfo
, tree
);
10650 case LAN_MSG_PUT_INFO_REQ
:
10651 hidden_item
= proto_tree_add_boolean(tree
,
10652 hf_ff_lr
, tvb
, 0, 0, 1);
10653 proto_item_set_hidden(hidden_item
);
10654 hidden_item
= proto_tree_add_boolean(tree
,
10655 hf_ff_lr_put_info
, tvb
, 0, 0, 1);
10656 proto_item_set_hidden(hidden_item
);
10657 hidden_item
= proto_tree_add_boolean(tree
,
10658 hf_ff_lr_put_info_req
, tvb
, 0, 0, 1);
10659 proto_item_set_hidden(hidden_item
);
10661 dissect_ff_msg_lr_put_info_req(tvb
,
10662 offset
, length
, pinfo
, tree
);
10665 case LAN_MSG_PUT_INFO_RSP
:
10666 hidden_item
= proto_tree_add_boolean(tree
,
10667 hf_ff_lr
, tvb
, 0, 0, 1);
10668 proto_item_set_hidden(hidden_item
);
10669 hidden_item
= proto_tree_add_boolean(tree
,
10670 hf_ff_lr_put_info
, tvb
, 0, 0, 1);
10671 proto_item_set_hidden(hidden_item
);
10672 hidden_item
= proto_tree_add_boolean(tree
,
10673 hf_ff_lr_put_info_rsp
, tvb
, 0, 0, 1);
10674 proto_item_set_hidden(hidden_item
);
10676 dissect_ff_msg_lr_put_info_rsp(tvb
,
10677 offset
, length
, pinfo
, tree
);
10680 case LAN_MSG_PUT_INFO_ERR
:
10681 hidden_item
= proto_tree_add_boolean(tree
,
10682 hf_ff_lr
, tvb
, 0, 0, 1);
10683 proto_item_set_hidden(hidden_item
);
10684 hidden_item
= proto_tree_add_boolean(tree
,
10685 hf_ff_lr_put_info
, tvb
, 0, 0, 1);
10686 proto_item_set_hidden(hidden_item
);
10687 hidden_item
= proto_tree_add_boolean(tree
,
10688 hf_ff_lr_put_info_err
, tvb
, 0, 0, 1);
10689 proto_item_set_hidden(hidden_item
);
10691 dissect_ff_msg_lr_put_info_err(tvb
,
10692 offset
, length
, pinfo
, tree
);
10695 case LAN_MSG_GET_STATISTICS_REQ
:
10696 hidden_item
= proto_tree_add_boolean(tree
,
10697 hf_ff_lr
, tvb
, 0, 0, 1);
10698 proto_item_set_hidden(hidden_item
);
10699 hidden_item
= proto_tree_add_boolean(tree
,
10700 hf_ff_lr_get_statistics
, tvb
, 0, 0, 1);
10701 proto_item_set_hidden(hidden_item
);
10702 hidden_item
= proto_tree_add_boolean(tree
,
10703 hf_ff_lr_get_statistics_req
, tvb
, 0, 0, 1);
10704 proto_item_set_hidden(hidden_item
);
10706 dissect_ff_msg_lr_get_statistics_req(tvb
,
10707 offset
, length
, pinfo
, tree
);
10710 case LAN_MSG_GET_STATISTICS_RSP
:
10711 hidden_item
= proto_tree_add_boolean(tree
,
10712 hf_ff_lr
, tvb
, 0, 0, 1);
10713 proto_item_set_hidden(hidden_item
);
10714 hidden_item
= proto_tree_add_boolean(tree
,
10715 hf_ff_lr_get_statistics
, tvb
, 0, 0, 1);
10716 proto_item_set_hidden(hidden_item
);
10717 hidden_item
= proto_tree_add_boolean(tree
,
10718 hf_ff_lr_get_statistics_rsp
, tvb
, 0, 0, 1);
10719 proto_item_set_hidden(hidden_item
);
10721 dissect_ff_msg_lr_get_statistics_rsp(tvb
,
10722 offset
, length
, pinfo
, tree
);
10725 case LAN_MSG_GET_STATISTICS_ERR
:
10726 hidden_item
= proto_tree_add_boolean(tree
,
10727 hf_ff_lr
, tvb
, 0, 0, 1);
10728 proto_item_set_hidden(hidden_item
);
10729 hidden_item
= proto_tree_add_boolean(tree
,
10730 hf_ff_lr_get_statistics
, tvb
, 0, 0, 1);
10731 proto_item_set_hidden(hidden_item
);
10732 hidden_item
= proto_tree_add_boolean(tree
,
10733 hf_ff_lr_get_statistics_err
, tvb
, 0, 0, 1);
10734 proto_item_set_hidden(hidden_item
);
10736 dissect_ff_msg_lr_get_statistics_err(tvb
,
10737 offset
, length
, pinfo
, tree
);
10740 case LAN_MSG_DIAG_REQ
:
10741 hidden_item
= proto_tree_add_boolean(tree
,
10742 hf_ff_lr
, tvb
, 0, 0, 1);
10743 proto_item_set_hidden(hidden_item
);
10744 hidden_item
= proto_tree_add_boolean(tree
,
10745 hf_ff_lr_diagnostic_msg
, tvb
, 0, 0, 1);
10746 proto_item_set_hidden(hidden_item
);
10747 hidden_item
= proto_tree_add_boolean(tree
,
10748 hf_ff_lr_diagnostic_msg_req
, tvb
, 0, 0, 1);
10749 proto_item_set_hidden(hidden_item
);
10751 dissect_ff_msg_diagnostic_msg_req(tvb
,
10752 offset
, length
, pinfo
, tree
);
10756 col_add_fstr(pinfo
->cinfo
, COL_INFO
,
10757 "Unknown Service (Protocol Id: %u, Confirmed Msg Type: %u) "
10758 "(%s Service Id = %u)",
10759 (ProtocolAndType
& PROTOCOL_MASK
) >> 2,
10760 ProtocolAndType
& TYPE_MASK
,
10761 (Service
& SERVICE_CONFIRMED_FLAG_MASK
)?
10762 "Confirmed": "Unconfirmed",
10763 Service
& SERVICE_SERVICE_ID_MASK
);
10766 proto_tree_add_item(tree
, hf_ff_unknown_service
, tvb
, offset
, length
, ENC_NA
);
10774 * 6.4. Message Trailer
10777 dissect_ff_msg_trailer(tvbuff_t
*tvb
,
10778 int offset
, uint32_t length
, proto_tree
*tree
, uint8_t Options
)
10780 proto_tree
*sub_tree
;
10781 proto_item
*hidden_item
;
10787 hidden_item
= proto_tree_add_boolean(tree
, hf_ff_fda_msg_trailer
, tvb
, 0, 0, 1);
10788 proto_item_set_hidden(hidden_item
);
10790 sub_tree
= proto_tree_add_subtree(tree
,
10791 tvb
, offset
, length
, ett_ff_fda_msg_trailer
, NULL
, "FDA Message Trailer");
10793 if (Options
& OPTION_MESSAGE_NUMBER_MASK
) {
10794 proto_tree_add_item(sub_tree
,
10795 hf_ff_fda_msg_trailer_msg_num
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
10799 if (Options
& OPTION_INVOKE_ID_MASK
) {
10800 proto_tree_add_item(sub_tree
,
10801 hf_ff_fda_msg_trailer_invoke_id
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
10805 if (Options
& OPTION_TIME_STAMP_MASK
) {
10806 proto_tree_add_item(sub_tree
,
10807 hf_ff_fda_msg_trailer_time_stamp
, tvb
, offset
, 8, ENC_BIG_ENDIAN
);
10811 if (Options
& OPTION_EXTENDED_CNTRL_MASK
) {
10812 proto_tree_add_item(sub_tree
,
10813 hf_ff_fda_msg_trailer_extended_control_field
,
10814 tvb
, offset
, 4, ENC_BIG_ENDIAN
);
10826 dissect_ff_msg_hdr_srv(tvbuff_t
*tvb
,
10827 int offset
, proto_tree
*tree
, uint8_t proto_and_type
, uint8_t service
)
10829 proto_tree
*sub_tree
;
10836 ti
= proto_tree_add_uint(tree
, hf_ff_hdr_srv
, tvb
, offset
, 1, service
);
10837 sub_tree
= proto_item_add_subtree(ti
, ett_ff_fda_msg_hdr_srv
);
10839 /* Bit 8: Confirmed Flag */
10840 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_confirm_flag
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
10842 /* Bits 1-7 Service Id of the service */
10843 switch (proto_and_type
& PROTOCOL_MASK
) {
10845 if (service
& SERVICE_CONFIRMED_FLAG_MASK
) {
10846 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_fda_service_id_confirm
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
10848 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_fda_service_id_unconfirm
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
10854 if (service
& SERVICE_CONFIRMED_FLAG_MASK
) {
10855 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_sm_service_id_confirm
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
10857 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_sm_service_id_unconfirm
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
10863 if (service
& SERVICE_CONFIRMED_FLAG_MASK
) {
10864 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_fms_service_id_confirm
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
10866 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_fms_service_id_unconfirm
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
10872 if (service
& SERVICE_CONFIRMED_FLAG_MASK
) {
10873 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_lan_service_id_confirm
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
10875 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_lan_service_id_unconfirm
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
10881 proto_tree_add_item(sub_tree
, hf_ff_hdr_srv_service_id
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
10888 * Protocol Id And Confirmed Msg Type
10892 dissect_ff_msg_hdr_proto_and_type(tvbuff_t
*tvb
,
10893 int offset
, proto_tree
*tree
)
10895 static int * const header
[] = {
10896 &hf_ff_hdr_proto_id
,
10897 &hf_ff_hdr_confirm_msg_type
,
10901 proto_tree_add_bitmask(tree
, tvb
, offset
, hf_ff_hdr_proto_confirm
, ett_ff_fda_msg_hdr_proto_and_type
, header
, ENC_BIG_ENDIAN
);
10911 dissect_ff_msg_hdr_opts(tvbuff_t
*tvb
,
10912 int offset
, proto_tree
*tree
)
10914 static int * const options
[] = {
10915 &hf_ff_hdr_opts_msg_num
,
10916 &hf_ff_hdr_opts_invoke_id
,
10917 &hf_ff_hdr_opts_timestamp
,
10918 &hf_ff_hdr_opts_reserved
,
10919 &hf_ff_hdr_opts_ext_ctrl
,
10920 &hf_ff_hdr_opts_pad
,
10924 proto_tree_add_bitmask(tree
, tvb
, offset
, hf_ff_hdr_opts
, ett_ff_fda_msg_hdr_opts
, options
, ENC_BIG_ENDIAN
);
10930 * 6.3. Message Header
10933 dissect_ff_msg_hdr(tvbuff_t
*tvb
,
10934 proto_tree
*tree
, uint8_t ProtocolAndType
, uint8_t Service
)
10936 proto_tree
*sub_tree
;
10937 proto_item
*hidden_item
;
10944 hidden_item
= proto_tree_add_boolean(tree
, hf_ff_fda_msg_hdr
, tvb
, 0, 0, 1);
10945 proto_item_set_hidden(hidden_item
);
10947 sub_tree
= proto_tree_add_subtree(tree
,
10948 tvb
, offset
, FDA_MSG_HDR_LENGTH
, ett_ff_fda_msg_hdr
, NULL
, "FDA Message Header");
10950 /* FDA Message Version */
10951 proto_tree_add_item(sub_tree
,
10952 hf_ff_fda_msg_hdr_ver
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
10956 dissect_ff_msg_hdr_opts(tvb
, offset
, sub_tree
);
10959 /* Protocol Id And Confirmed Msg Type */
10960 dissect_ff_msg_hdr_proto_and_type(tvb
,
10965 dissect_ff_msg_hdr_srv(tvb
,
10966 offset
, sub_tree
, ProtocolAndType
, Service
);
10970 proto_tree_add_item(sub_tree
,
10971 hf_ff_fda_msg_hdr_fda_addr
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
10974 /* Message Length */
10975 proto_tree_add_item(sub_tree
,
10976 hf_ff_fda_msg_hdr_len
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
10983 dissect_ff(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
10985 proto_tree
*sub_tree
;
10989 uint8_t Options
= 0; /* Options */
10990 uint8_t ProtocolAndType
= 0; /* Protocol Id And Confirmed Msg Type */
10991 uint8_t Service
= 0; /* Service */
10992 uint32_t FDAAddress
= 0; /* FDA Address */
10993 uint32_t length
= 0; /* Message Length */
10995 uint32_t trailer_len
= 0;
10997 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "FF");
10999 Options
= tvb_get_uint8(tvb
, 1);
11000 ProtocolAndType
= tvb_get_uint8(tvb
, 2);
11001 Service
= tvb_get_uint8(tvb
, 3);
11002 FDAAddress
= tvb_get_ntohl(tvb
, 4);
11003 length
= tvb_get_ntohl(tvb
, 8);
11005 ti
= proto_tree_add_item(tree
, proto_ff
, tvb
, offset
, length
, ENC_NA
);
11006 sub_tree
= proto_item_add_subtree(ti
, ett_ff
);
11008 if (Options
& OPTION_MESSAGE_NUMBER_MASK
) {
11013 if (Options
& OPTION_INVOKE_ID_MASK
) {
11018 if (Options
& OPTION_TIME_STAMP_MASK
) {
11023 if (Options
& OPTION_EXTENDED_CNTRL_MASK
) {
11031 dissect_ff_msg_hdr(tvb
, sub_tree
, ProtocolAndType
, Service
);
11032 offset
+= FDA_MSG_HDR_LENGTH
;
11033 length
-= FDA_MSG_HDR_LENGTH
;
11036 * Service-Specific Parameters + User Data (optional)
11038 dissect_ff_msg_body(tvb
, offset
, length
, pinfo
, sub_tree
,
11039 ProtocolAndType
, Service
, FDAAddress
);
11043 * Trailer (optional)
11046 dissect_ff_msg_trailer(tvb
,
11047 offset
, trailer_len
, sub_tree
, Options
);
11048 offset
+= trailer_len
;
11056 get_ff_pdu_len(packet_info
*pinfo _U_
, tvbuff_t
*tvb
, int offset
, void *data _U_
)
11058 return (tvb_get_ntohl(tvb
, offset
+ 8));
11064 dissect_ff_tcp(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data
)
11068 * 6.3. Message Header
11071 * 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
11072 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
11073 * | Version | Options | Protocol/Type | Service |
11074 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
11076 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
11077 * | Message Length |
11078 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
11082 tcp_dissect_pdus(tvb
, pinfo
, tree
, ff_desegment
,
11083 FDA_MSG_HDR_LENGTH
, get_ff_pdu_len
, dissect_ff
, data
);
11085 return tvb_reported_length(tvb
);
11091 dissect_ff_udp(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data
)
11095 while (tvb_reported_length_remaining(tvb
, offset
) > FDA_MSG_HDR_LENGTH
)
11100 /* Make sure at least the header is there */
11101 if (tvb_captured_length_remaining(tvb
, offset
) < FDA_MSG_HDR_LENGTH
)
11104 length
= get_ff_pdu_len(pinfo
, tvb
, offset
, data
);
11106 /* Make sure the length field is valid */
11107 if ((length
> tvb_reported_length_remaining(tvb
, offset
)) ||
11108 (length
< FDA_MSG_HDR_LENGTH
))
11111 pdu_tvb
= tvb_new_subset_length(tvb
, offset
, length
);
11112 offset
+= dissect_ff(pdu_tvb
, pinfo
, tree
, data
);
11121 proto_register_ff(void)
11123 static hf_register_info hf
[] = {
11125 * 6.3. Message Header
11127 { &hf_ff_fda_msg_hdr
,
11128 { "Message Header", "ff.hdr",
11129 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11131 { &hf_ff_fda_msg_hdr_ver
,
11132 { "FDA Message Version", "ff.hdr.ver",
11133 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11135 { &hf_ff_fda_msg_hdr_fda_addr
,
11136 { "FDA Address", "ff.hdr.fda_addr",
11137 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
11139 { &hf_ff_fda_msg_hdr_len
,
11140 { "Message Length", "ff.hdr.len",
11141 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11143 { &hf_ff_unknown_data
,
11144 { "Unknown data", "ff.unknown_data",
11145 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11148 { "Data", "ff.data",
11149 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11151 { &hf_ff_reserved24
,
11152 { "Reserved", "ff.reserved",
11153 FT_UINT24
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
11155 { &hf_ff_unknown_service
,
11156 { "Unknown service", "ff.unknown_service",
11157 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11160 * 6.4. Message Trailer
11162 { &hf_ff_fda_msg_trailer
,
11163 { "Message Trailer", "ff.trailer",
11164 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11166 { &hf_ff_fda_msg_trailer_msg_num
,
11167 { "Message Number", "ff.trailer.msg_num",
11168 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11170 { &hf_ff_fda_msg_trailer_invoke_id
,
11171 { "Invoke Id", "ff.trailer.invoke_id",
11172 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11174 { &hf_ff_fda_msg_trailer_time_stamp
,
11175 { "Time Stamp", "ff.trailer.time_stamp",
11176 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11178 { &hf_ff_fda_msg_trailer_extended_control_field
,
11179 { "Extended Control Field", "ff.trailer.extended_control_field",
11180 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11185 * 6.5.1. FDA Session Management Services
11188 { "FDA Session Management Service", "ff.fda",
11189 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11192 { "Service", "ff.hdr_srv",
11193 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
11195 { &hf_ff_hdr_srv_confirm_flag
,
11196 { "Confirmed Flag", "ff.hdr_srv.confirm_flag",
11197 FT_BOOLEAN
, 8, TFS(&tfs_confirmed_unconfirmed
), SERVICE_CONFIRMED_FLAG_MASK
, NULL
, HFILL
} },
11199 { &hf_ff_hdr_srv_service_id
,
11200 { "Service Id (Unknown)", "ff.hdr_srv.service_id",
11201 FT_UINT8
, BASE_DEC
, NULL
, SERVICE_SERVICE_ID_MASK
, NULL
, HFILL
} },
11203 { &hf_ff_hdr_srv_fda_service_id_confirm
,
11204 { "Service Id", "ff.hdr_srv.fda.service_id.confirm",
11205 FT_UINT8
, BASE_DEC
, VALS(names_fda_confirmed
), SERVICE_SERVICE_ID_MASK
, NULL
, HFILL
} },
11207 { &hf_ff_hdr_srv_fda_service_id_unconfirm
,
11208 { "Service Id", "ff.hdr_srv.fda.service_id.unconfirm",
11209 FT_UINT8
, BASE_DEC
, VALS(names_fda_unconfirmed
), SERVICE_SERVICE_ID_MASK
, NULL
, HFILL
} },
11211 { &hf_ff_hdr_srv_sm_service_id_confirm
,
11212 { "Service Id", "ff.hdr_srv.sm.service_id.confirm",
11213 FT_UINT8
, BASE_DEC
, VALS(names_sm_confirmed
), SERVICE_SERVICE_ID_MASK
, NULL
, HFILL
} },
11215 { &hf_ff_hdr_srv_sm_service_id_unconfirm
,
11216 { "Service Id", "ff.hdr_srv.sm.service_id.unconfirm",
11217 FT_UINT8
, BASE_DEC
, VALS(names_sm_unconfirmed
), SERVICE_SERVICE_ID_MASK
, NULL
, HFILL
} },
11219 { &hf_ff_hdr_srv_fms_service_id_confirm
,
11220 { "Service Id", "ff.hdr_srv.fms.service_id.confirm",
11221 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_fms_confirmed_ext
, SERVICE_SERVICE_ID_MASK
, NULL
, HFILL
} },
11223 { &hf_ff_hdr_srv_fms_service_id_unconfirm
,
11224 { "Service Id", "ff.hdr_srv.fms.service_id.unconfirm",
11225 FT_UINT8
, BASE_DEC
, VALS(names_fms_unconfirmed
), SERVICE_SERVICE_ID_MASK
, NULL
, HFILL
} },
11227 { &hf_ff_hdr_srv_lan_service_id_confirm
,
11228 { "Service Id", "ff.hdr_srv.lan.service_id.confirm",
11229 FT_UINT8
, BASE_DEC
, VALS(names_lan_confirmed
), SERVICE_SERVICE_ID_MASK
, NULL
, HFILL
} },
11231 { &hf_ff_hdr_srv_lan_service_id_unconfirm
,
11232 { "Service Id", "ff.hdr_srv.lan.service_id.unconfirm",
11233 FT_UINT8
, BASE_DEC
, VALS(names_lan_unconfirmed
), SERVICE_SERVICE_ID_MASK
, NULL
, HFILL
} },
11235 { &hf_ff_hdr_proto_id
,
11236 { "Service Id", "ff.hdr.proto_id",
11237 FT_UINT8
, BASE_DEC
, VALS(names_proto
), PROTOCOL_MASK
, NULL
, HFILL
} },
11239 { &hf_ff_hdr_confirm_msg_type
,
11240 { "Service Id", "ff.hdr.confirm_msg_type",
11241 FT_UINT8
, BASE_DEC
, VALS(names_type
), TYPE_MASK
, NULL
, HFILL
} },
11243 { &hf_ff_hdr_proto_confirm
,
11244 { "Protocol Id And Confirmed Msg Type", "ff.hdr.proto_confirm",
11245 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
11247 { &hf_ff_hdr_opts_msg_num
,
11248 { "Message Number in the Trailer", "ff.hdr.opts.msg_num",
11249 FT_BOOLEAN
, 8, TFS(&tfs_present_not_present
), OPTION_MESSAGE_NUMBER_MASK
, NULL
, HFILL
} },
11251 { &hf_ff_hdr_opts_invoke_id
,
11252 { "Invoke Id in the Trailer", "ff.hdr.opts.invoke_id",
11253 FT_BOOLEAN
, 8, TFS(&tfs_present_not_present
), OPTION_INVOKE_ID_MASK
, NULL
, HFILL
} },
11255 { &hf_ff_hdr_opts_timestamp
,
11256 { "Time Stamp in the Trailer", "ff.hdr.opts.timestamp",
11257 FT_BOOLEAN
, 8, TFS(&tfs_present_not_present
), OPTION_TIME_STAMP_MASK
, NULL
, HFILL
} },
11259 { &hf_ff_hdr_opts_reserved
,
11260 { "Reserved", "ff.hdr.opts.reserved",
11261 FT_UINT8
, BASE_HEX
, NULL
, OPTION_RESERVED_MASK
, NULL
, HFILL
} },
11263 { &hf_ff_hdr_opts_ext_ctrl
,
11264 { "Extended Control in the Trailer", "ff.hdr.opts.ext_ctrl",
11265 FT_BOOLEAN
, 8, TFS(&tfs_present_not_present
), OPTION_EXTENDED_CNTRL_MASK
, NULL
, HFILL
} },
11267 { &hf_ff_hdr_opts_pad
,
11268 { "Pad Length", "ff.hdr.opts.pad",
11269 FT_UINT8
, BASE_HEX
, NULL
, OPTION_PAD_LENGTH_MASK
, NULL
, HFILL
} },
11272 { "Options", "ff.hdr.opts",
11273 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
11277 * 6.5.1.1. FDA Open Session (Confirmed Service Id = 1)
11279 { &hf_ff_fda_open_sess
,
11280 { "FDA Open Session", "ff.fda.open_sess",
11281 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11286 * 6.5.1.1.1. Request Message Parameters
11288 { &hf_ff_fda_open_sess_req
,
11289 { "FDA Open Session Request", "ff.fda.open_sess.req",
11290 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11292 { &hf_ff_fda_open_sess_req_sess_idx
,
11293 { "Session Index", "ff.fda.open_sess.req.sess_idx",
11294 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11296 { &hf_ff_fda_open_sess_req_max_buf_siz
,
11297 { "Max Buffer Size", "ff.fda.open_sess.req.max_buf_siz",
11298 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11300 { &hf_ff_fda_open_sess_req_max_msg_len
,
11301 { "Max Message Length", "ff.fda.open_sess.req.max_msg_len",
11302 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11304 { &hf_ff_fda_open_sess_req_reserved
,
11305 { "Reserved", "ff.fda.open_sess.req.reserved",
11306 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11308 { &hf_ff_fda_open_sess_req_nma_conf_use
,
11309 { "NMA Configuration Use", "ff.fda.open_sess.req.nma_conf_use",
11310 FT_UINT8
, BASE_DEC
, VALS(names_nma_conf_use
), 0x0, NULL
, HFILL
} },
11312 { &hf_ff_fda_open_sess_req_inactivity_close_time
,
11313 { "Inactivity Close Time",
11314 "ff.fda.open_sess.req.inactivity_close_time",
11315 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11317 { &hf_ff_fda_open_sess_req_transmit_delay_time
,
11318 { "Transmit Delay Time", "ff.fda.open_sess.req.transmit_delay_time",
11319 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11321 { &hf_ff_fda_open_sess_req_pd_tag
,
11322 { "PD Tag", "ff.fda.open_sess.req.pd_tag",
11323 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11328 * 6.5.1.1.2. Response Message Parameters
11330 { &hf_ff_fda_open_sess_rsp
,
11331 { "FDA Open Session Response", "ff.fda.open_sess.rsp",
11332 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11334 { &hf_ff_fda_open_sess_rsp_sess_idx
,
11335 { "Session Index", "ff.fda.open_sess.rsp.sess_idx",
11336 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11338 { &hf_ff_fda_open_sess_rsp_max_buf_siz
,
11339 { "Max Buffer Size", "ff.fda.open_sess.rsp.max_buf_siz",
11340 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11342 { &hf_ff_fda_open_sess_rsp_max_msg_len
,
11343 { "Max Message Length", "ff.fda.open_sess.rsp.max_msg_len",
11344 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11346 { &hf_ff_fda_open_sess_rsp_reserved
,
11347 { "Reserved", "ff.fda.open_sess.rsp.reserved",
11348 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11350 { &hf_ff_fda_open_sess_rsp_nma_conf_use
,
11351 { "NMA Configuration Use", "ff.fda.open_sess.rsp.nma_conf_use",
11352 FT_UINT8
, BASE_DEC
, VALS(names_nma_conf_use
), 0x0, NULL
, HFILL
} },
11354 { &hf_ff_fda_open_sess_rsp_inactivity_close_time
,
11355 { "Inactivity Close Time",
11356 "ff.fda.open_sess.rsp.inactivity_close_time",
11357 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11359 { &hf_ff_fda_open_sess_rsp_transmit_delay_time
,
11360 { "Transmit Delay Time", "ff.fda.open_sess.rsp.transmit_delay_time",
11361 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11363 { &hf_ff_fda_open_sess_rsp_pd_tag
,
11364 { "PD Tag", "ff.fda.open_sess.rsp.pd_tag",
11365 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11370 * 6.5.1.1.3. Error Message Parameters
11372 { &hf_ff_fda_open_sess_err
,
11373 { "FDA Open Session Error", "ff.fda.open_sess.err",
11374 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11376 { &hf_ff_fda_open_sess_err_err_class
,
11377 { "Error Class", "ff.fda.open_sess.err.err_class",
11378 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
11380 { &hf_ff_fda_open_sess_err_err_code
,
11381 { "Error Code", "ff.fda.open_sess.err.err_code",
11382 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11384 { &hf_ff_fda_open_sess_err_additional_code
,
11385 { "Additional Code", "ff.fda.open_sess.err.additional_code",
11386 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11388 { &hf_ff_fda_open_sess_err_additional_desc
,
11389 { "Additional Description", "ff.fda.open_sess.err.additional_desc",
11390 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11395 * 6.5.1.2. FDA Idle (Confirmed Service Id = 3)
11398 { "FDA Idle", "ff.fda.idle",
11399 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11404 * 6.5.1.2.1. Request Message Parameters
11406 { &hf_ff_fda_idle_req
,
11407 { "FDA Idle Request", "ff.fda.idle.req",
11408 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11413 * 6.5.1.2.2. Response Message Parameters
11415 { &hf_ff_fda_idle_rsp
,
11416 { "FDA Idle Response", "ff.fda.idle.rsp",
11417 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11422 * 6.5.1.2.3. Error Message Parameters
11424 { &hf_ff_fda_idle_err
,
11425 { "FDA Idle Error", "ff.fda.idle.err",
11426 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11428 { &hf_ff_fda_idle_err_err_class
,
11429 { "Error Class", "ff.fda.idle.err.err_class",
11430 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
11432 { &hf_ff_fda_idle_err_err_code
,
11433 { "Error Code", "ff.fda.idle.err.err_code",
11434 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11436 { &hf_ff_fda_idle_err_additional_code
,
11437 { "Additional Code", "ff.fda.idle.err.additional_code",
11438 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11440 { &hf_ff_fda_idle_err_additional_desc
,
11441 { "Additional Description", "ff.fda.idle.err.additional_desc",
11442 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11447 * 6.5.2. SM Services
11450 { "SM Service", "ff.sm",
11451 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11456 * 6.5.2.1. SM Find Tag Query (Unconfirmed Service Id = 1)
11458 { &hf_ff_sm_find_tag_query
,
11459 { "SM Find Tag Query", "ff.sm.find_tag_query",
11460 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11465 * 6.5.2.1.1. Request Message Parameters
11467 { &hf_ff_sm_find_tag_query_req
,
11468 { "SM Find Tag Query Request", "ff.sm.find_tag_query.req",
11469 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11471 { &hf_ff_sm_find_tag_query_req_query_type
,
11472 { "Query Type", "ff.sm.find_tag_query.req.query_type",
11473 FT_UINT8
, BASE_DEC
, VALS(names_query_type
), 0x0, NULL
, HFILL
} },
11475 { &hf_ff_sm_find_tag_query_req_idx
,
11476 { "Element Id or VFD Reference or Device Index",
11477 "ff.sm.find_tag_query.req.idx",
11478 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11480 { &hf_ff_sm_find_tag_query_req_tag
,
11481 { "PD Tag or Function Block Tag", "ff.sm.find_tag_query.req.tag",
11482 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11484 { &hf_ff_sm_find_tag_query_req_vfd_tag
,
11485 { "VFD Tag", "ff.sm.find_tag_query.req.vfd_tag",
11486 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11491 * 6.5.2.2. SM Find Tag Reply (Unconfirmed Service Id = 2)
11493 { &hf_ff_sm_find_tag_reply
,
11494 { "SM Find Tag Reply", "ff.sm.find_tag_reply",
11495 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11500 * 6.5.2.2.1. Request Message Parameters
11502 { &hf_ff_sm_find_tag_reply_req
,
11503 { "SM Find Tag Reply Request", "ff.sm.find_tag_reply.req",
11504 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11506 { &hf_ff_sm_find_tag_reply_req_query_type
,
11507 { "Query Type", "ff.sm.find_tag_reply.req.query_type",
11508 FT_UINT8
, BASE_DEC
, VALS(names_query_type
), 0x0, NULL
, HFILL
} },
11510 { &hf_ff_sm_find_tag_reply_req_h1_node_addr
,
11511 { "Queried Object H1 Node Address",
11512 "ff.sm.find_tag_reply.req.h1_node_addr",
11513 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11515 { &hf_ff_sm_find_tag_reply_req_fda_addr_link_id
,
11516 { "Queried Object FDA Address Link Id",
11517 "ff.sm.find_tag_reply.req.fda_addr_link_id",
11518 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11520 { &hf_ff_sm_find_tag_reply_req_vfd_ref
,
11521 { "Queried Object VFD Reference",
11522 "ff.sm.find_tag_reply.req.vfd_ref",
11523 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11525 { &hf_ff_sm_find_tag_reply_req_od_idx
,
11526 { "Queried Object OD Index", "ff.sm.find_tag_reply.req.od_idx",
11527 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11529 { &hf_ff_sm_find_tag_reply_req_ip_addr
,
11530 { "Queried Object IP Address", "ff.sm.find_tag_reply.req.ip_addr",
11531 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11533 { &hf_ff_sm_find_tag_reply_req_od_ver
,
11534 { "Queried Object OD Version", "ff.sm.find_tag_reply.req.od_ver",
11535 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11537 { &hf_ff_sm_find_tag_reply_req_dev_id
,
11538 { "Queried Object Device ID", "ff.sm.find_tag_reply.req.dev_id",
11539 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11541 { &hf_ff_sm_find_tag_reply_req_pd_tag
,
11542 { "Queried Object PD Tag", "ff.sm.find_tag_reply.req.pd_tag",
11543 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11545 { &hf_ff_sm_find_tag_reply_req_reserved
,
11546 { "Reserved", "ff.sm.find_tag_reply.req.reserved",
11547 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11549 { &hf_ff_sm_find_tag_reply_req_num_of_fda_addr_selectors
,
11550 { "Number Of FDA Address Selectors",
11551 "ff.sm.find_tag_reply.req.num_of_fda_addr_selectors",
11552 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11554 { &hf_ff_sm_find_tag_reply_req_fda_addr_selector
,
11555 { "FDA Address Selector",
11556 "ff.sm.find_tag_reply.req.fda_addr_selector.fda_addr_selector",
11557 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11559 { &hf_ff_sm_find_tag_reply_dup_reserved
,
11561 "ff.sm.find_tag_reply.dup_reserved",
11562 FT_UINT8
, BASE_HEX
, NULL
, 0xFC, NULL
, HFILL
} },
11564 { &hf_ff_sm_find_tag_reply_dup_pd_tag
,
11565 { "Duplicate PD Tag",
11566 "ff.sm.find_tag_reply.dup_pd_tag",
11567 FT_BOOLEAN
, 8, TFS(&tfs_detected_not_detected
), 0x02, NULL
, HFILL
} },
11569 { &hf_ff_sm_find_tag_reply_dup_device
,
11570 { "Duplicate Device Index",
11571 "ff.sm.find_tag_reply.dup_device",
11572 FT_BOOLEAN
, 8, TFS(&tfs_detected_not_detected
), 0x01, NULL
, HFILL
} },
11574 { &hf_ff_sm_find_tag_reply_dup
,
11575 { "Duplicate Detection State",
11576 "ff.sm.find_tag_reply.dup",
11577 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
11581 * 6.5.2.7. SM Identify (Unconfirmed Service Id = 16)
11584 { "SM Identify", "ff.sm.id",
11585 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11589 * 6.5.2.3.1. Request Message Parameters
11591 { &hf_ff_sm_id_req
,
11592 { "SM Identify Request", "ff.sm.id.req",
11593 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11598 * 6.5.2.3.2. Response Message Parameters
11600 { &hf_ff_sm_id_rsp
,
11601 { "SM Identify Response", "ff.sm.id.rsp",
11602 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11604 { &hf_ff_sm_id_rsp_dev_idx
,
11605 { "Device Index", "ff.sm.id.rsp.dev_idx",
11606 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11608 { &hf_ff_sm_id_rsp_max_dev_idx
,
11609 { "Max Device Index", "ff.sm.id.rsp.max_dev_idx",
11610 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11612 { &hf_ff_sm_id_rsp_operational_ip_addr
,
11613 { "Operational IP Address", "ff.sm.id.rsp.operational_ip_addr",
11614 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11616 { &hf_ff_sm_id_rsp_dev_id
,
11617 { "Device ID", "ff.sm.id.rsp.dev_id",
11618 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11620 { &hf_ff_sm_id_rsp_pd_tag
,
11621 { "PD Tag", "ff.sm.id.rsp.pd_tag",
11622 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11624 { &hf_ff_sm_id_rsp_hse_repeat_time
,
11625 { "HSE Repeat Time", "ff.sm.id.rsp.hse_repeat_time",
11626 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11628 { &hf_ff_sm_id_rsp_lr_port
,
11629 { "LAN Redundancy Port", "ff.sm.id.rsp.lr_port",
11630 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11632 { &hf_ff_sm_id_rsp_reserved
,
11633 { "Reserved", "ff.sm.id.rsp.reserved",
11634 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11636 { &hf_ff_sm_id_rsp_annunc_ver_num
,
11637 { "Annunciation Version Number", "ff.sm.id.rsp.annunc_ver_num",
11638 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11640 { &hf_ff_sm_id_rsp_hse_dev_ver_num
,
11641 { "HSE Device Version Number", "ff.sm.id.rsp.hse_dev_ver_num",
11642 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11644 { &hf_ff_sm_id_rsp_num_of_entries
,
11645 { "Number of Entries in Version Number List",
11646 "ff.sm.id.rsp.num_of_entries",
11647 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11649 { &hf_ff_sm_id_rsp_h1_live_list_h1_link_id
,
11650 { "H1 Link Id", "ff.sm.id.rsp.h1_live_list.h1_link_id",
11651 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11653 { &hf_ff_sm_id_rsp_h1_live_list_reserved
,
11654 { "Reserved", "ff.sm.id.rsp.h1_live_list.reserved",
11655 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11657 { &hf_ff_sm_id_rsp_h1_live_list_ver_num
,
11658 { "Version Number", "ff.sm.id.rsp.h1_live_list.ver_num",
11659 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11661 { &hf_ff_sm_id_rsp_h1_node_addr_ver_num_h1_node_addr
,
11662 { "H1 Node Address",
11663 "ff.sm.id.rsp.h1_node_addr_ver_num.h1_node_addr",
11664 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11666 { &hf_ff_sm_id_rsp_h1_node_addr_ver_num_ver_num
,
11667 { "Version Number", "ff.sm.id.rsp.h1_node_addr_ver_num.ver_num",
11668 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11670 { &hf_ff_sm_id_rsp_smk_state_name
,
11671 { "Name", "ff.sm.id.rsp.smk_state_name",
11672 FT_UINT8
, BASE_DEC
, VALS(names_smk_state
), 0xFE, NULL
, HFILL
} },
11674 { &hf_ff_sm_id_rsp_smk_state_sync
,
11675 { "Synchronized with SNTP Time Server", "ff.sm.id.rsp.smk_state_sync",
11676 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x01, NULL
, HFILL
} },
11678 { &hf_ff_sm_id_rsp_smk_state
,
11679 { "SMK State", "ff.sm.id.rsp.smk_state",
11680 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
11682 { &hf_ff_sm_id_rsp_dev_type_link
,
11683 { "Linking Device", "ff.sm.id.rsp.dev_type.link",
11684 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x80, NULL
, HFILL
} },
11686 { &hf_ff_sm_id_rsp_dev_type_iogateway
,
11687 { "I/O Gateway", "ff.sm.id.rsp.dev_type.iogateway",
11688 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x40, NULL
, HFILL
} },
11690 { &hf_ff_sm_id_rsp_dev_type_hse
,
11691 { "HSE Field Device", "ff.sm.id.rsp.dev_type.hse",
11692 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x20, NULL
, HFILL
} },
11694 { &hf_ff_sm_id_rsp_dev_type_h1
,
11695 { "H1 Device", "ff.sm.id.rsp.dev_type.h1",
11696 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x10, NULL
, HFILL
} },
11698 { &hf_ff_sm_id_rsp_dev_type_reserved
,
11699 { "Reserved", "ff.sm.id.rsp.dev_type.reserved",
11700 FT_UINT8
, BASE_HEX
, NULL
, 0x08, NULL
, HFILL
} },
11702 { &hf_ff_sm_id_rsp_dev_type_redundant_caps
,
11703 { "Redundant Device Type Capability", "ff.sm.id.rsp.dev_type.redundant_caps",
11704 FT_UINT8
, BASE_DEC
, VALS(names_dev_type
), 0x07, NULL
, HFILL
} },
11706 { &hf_ff_sm_id_rsp_dev_type
,
11707 { "Device Type", "ff.sm.id.rsp.dev_type",
11708 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
11710 { &hf_ff_sm_id_rsp_dev_redundancy_state_reserved
,
11711 { "Reserved", "ff.sm.id.rsp.dev_redundancy_state.reserved",
11712 FT_UINT8
, BASE_HEX
, NULL
, 0xF0, NULL
, HFILL
} },
11714 { &hf_ff_sm_id_rsp_dev_redundancy_state_role
,
11715 { "Device Redundancy Role", "ff.sm.id.rsp.dev_redundancy_state.role",
11716 FT_UINT8
, BASE_DEC
, VALS(names_dev_redundancy_role
), 0x0C, NULL
, HFILL
} },
11718 { &hf_ff_sm_id_rsp_dev_redundancy_state_type
,
11719 { "Assigned Redundant Device Type", "ff.sm.id.rsp.dev_redundancy_state.type",
11720 FT_UINT8
, BASE_DEC
, VALS(names_assigned_redundant_dev_type
), 0x03, NULL
, HFILL
} },
11722 { &hf_ff_sm_id_rsp_dev_redundancy_state
,
11723 { "Device Redundancy State", "ff.sm.id.rsp.dev_redundancy_state",
11724 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
11726 { &hf_ff_sm_id_rsp_dup_detection_state_reserved
,
11727 { "Reserved", "ff.sm.id.rsp.dup_detection_state.reserved",
11728 FT_UINT8
, BASE_HEX
, NULL
, 0xFC, NULL
, HFILL
} },
11730 { &hf_ff_sm_id_rsp_dup_detection_state_pd_tag
,
11731 { "Duplicate PD Tag", "ff.sm.id.rsp.dup_detection_state.pd_tag",
11732 FT_BOOLEAN
, 8, TFS(&tfs_detected_not_detected
), 0x02, NULL
, HFILL
} },
11734 { &hf_ff_sm_id_rsp_dup_detection_state_device
,
11735 { "Duplicate Device Index", "ff.sm.id.rsp.dup_detection_state.device",
11736 FT_BOOLEAN
, 8, TFS(&tfs_detected_not_detected
), 0x01, NULL
, HFILL
} },
11738 { &hf_ff_sm_id_rsp_dup_detection_state
,
11739 { "Duplicate Detection State", "ff.sm.id.rsp.dup_detection_state",
11740 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
11744 * 6.5.2.3.3. Error Message Parameters
11746 { &hf_ff_sm_id_err
,
11747 { "SM Identify Error", "ff.sm.id.err",
11748 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11750 { &hf_ff_sm_id_err_err_class
,
11751 { "Error Class", "ff.sm.id.err.err_class",
11752 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
11754 { &hf_ff_sm_id_err_err_code
,
11755 { "Error Code", "ff.sm.id.err.err_code",
11756 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11758 { &hf_ff_sm_id_err_additional_code
,
11759 { "Additional Code", "ff.sm.id.err.additional_code",
11760 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11762 { &hf_ff_sm_id_err_additional_desc
,
11763 { "Additional Description", "ff.sm.id.err.additional_desc",
11764 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11769 * 6.5.2.4. SM Clear Address (Confirmed Service Id = 12)
11771 { &hf_ff_sm_clear_addr
,
11772 { "SM Clear Address", "ff.sm.clear_addr",
11773 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11778 * 6.5.2.4.1. Request Message Parameters
11780 { &hf_ff_sm_clear_addr_req
,
11781 { "SM Clear Address Request", "ff.sm.clear_addr.req",
11782 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11784 { &hf_ff_sm_clear_addr_req_dev_id
,
11785 { "Device ID", "ff.sm.clear_addr.req.dev_id",
11786 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11788 { &hf_ff_sm_clear_addr_req_pd_tag
,
11789 { "PD Tag", "ff.sm.clear_addr.req.pd_tag",
11790 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11792 { &hf_ff_sm_clear_addr_req_interface_to_clear
,
11793 { "Interface to Clear", "ff.sm.clear_addr.req.interface_to_clear",
11794 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11799 * 6.5.2.4.2. Response Message Parameters
11801 { &hf_ff_sm_clear_addr_rsp
,
11802 { "SM Clear Address Response", "ff.sm.clear_addr.rsp",
11803 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11808 * 6.5.2.4.3. Error Message Parameters
11810 { &hf_ff_sm_clear_addr_err
,
11811 { "SM Clear Address Error", "ff.sm.clear_addr.err",
11812 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11814 { &hf_ff_sm_clear_addr_err_err_class
,
11815 { "Error Class", "ff.sm.clear_addr.err.err_class",
11816 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
11818 { &hf_ff_sm_clear_addr_err_err_code
,
11819 { "Error Code", "ff.sm.clear_addr.err.err_code",
11820 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11822 { &hf_ff_sm_clear_addr_err_additional_code
,
11823 { "Additional Code", "ff.sm.clear_addr.err.additional_code",
11824 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11826 { &hf_ff_sm_clear_addr_err_additional_desc
,
11827 { "Additional Description", "ff.sm.clear_addr.err.additional_desc",
11828 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11833 * 6.5.2.5. SM Set Assignment Info (Confirmed Service Id = 14)
11835 { &hf_ff_sm_set_assign_info
,
11836 { "SM Set Assignment Info", "ff.sm.set_assign_info",
11837 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11842 * 6.5.2.5.1. Request Message Parameters
11844 { &hf_ff_sm_set_assign_info_req_dev_redundancy_state_reserved
,
11845 { "Reserved", "ff.sm.set_assign_info.req_dev_redundancy_state.reserved",
11846 FT_UINT8
, BASE_HEX
, NULL
, 0xF0, NULL
, HFILL
} },
11848 { &hf_ff_sm_set_assign_info_req_dev_redundancy_state_role
,
11849 { "Type D-2 Device Redundancy Role", "ff.sm.set_assign_info.req_dev_redundancy_state.role",
11850 FT_UINT8
, BASE_DEC
, VALS(names_type_d2_dev_redundancy_role
), 0x0C, NULL
, HFILL
} },
11852 { &hf_ff_sm_set_assign_info_req_dev_redundancy_state_type
,
11853 { "Assigned Device Redundancy Type", "ff.sm.set_assign_info.req_dev_redundancy_state.type",
11854 FT_UINT8
, BASE_DEC
, VALS(names_assigned_redundant_dev_type
), 0x03, NULL
, HFILL
} },
11856 { &hf_ff_sm_set_assign_info_req_dev_redundancy_state
,
11857 { "Device Redundancy State", "ff.sm.set_assign_info.req_dev_redundancy_state",
11858 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
11860 { &hf_ff_sm_set_assign_info_req_clear_dup_detection_state_reserved
,
11861 { "Reserved", "ff.sm.set_assign_info.req_clear_dup_detection_state.reserved",
11862 FT_UINT8
, BASE_HEX
, NULL
, 0xFC, NULL
, HFILL
} },
11864 { &hf_ff_sm_set_assign_info_req_clear_dup_detection_state_pd_tag
,
11865 { "Duplicate PD Tag Detected", "ff.sm.set_assign_info.req_clear_dup_detection_state.pd_tag",
11866 FT_BOOLEAN
, 8, TFS(&tfs_do_not_clear_clear
), 0x02, NULL
, HFILL
} },
11868 { &hf_ff_sm_set_assign_info_req_clear_dup_detection_state_device_index
,
11869 { "Duplicate Device Index Detected", "ff.sm.set_assign_info.req_clear_dup_detection_state.device_index",
11870 FT_BOOLEAN
, 8, TFS(&tfs_do_not_clear_clear
), 0x01, NULL
, HFILL
} },
11872 { &hf_ff_sm_set_assign_info_req_clear_dup_detection_state
,
11873 { "Clear Duplicate Detection State", "ff.sm.set_assign_info.req_clear_dup_detection_state",
11874 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
11876 { &hf_ff_sm_set_assign_info_req
,
11877 { "SM Set Assignment Info Request", "ff.sm.set_assign_info.req",
11878 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11880 { &hf_ff_sm_set_assign_info_req_dev_id
,
11881 { "Device ID", "ff.sm.set_assign_info.req.dev_id",
11882 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11884 { &hf_ff_sm_set_assign_info_req_pd_tag
,
11885 { "PD Tag", "ff.sm.set_assign_info.req.pd_tag",
11886 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11888 { &hf_ff_sm_set_assign_info_req_h1_new_addr
,
11889 { "H1 New Address", "ff.sm.set_assign_info.req.h1_new_addr",
11890 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11892 { &hf_ff_sm_set_assign_info_req_lr_port
,
11893 { "LAN Redundancy Port",
11894 "ff.sm.set_assign_info.req.lr_port",
11895 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11897 { &hf_ff_sm_set_assign_info_req_hse_repeat_time
,
11898 { "HSE Repeat Time", "ff.sm.set_assign_info.req.hse_repeat_time",
11899 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11901 { &hf_ff_sm_set_assign_info_req_dev_idx
,
11902 { "Device Index", "ff.sm.set_assign_info.req.dev_idx",
11903 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11905 { &hf_ff_sm_set_assign_info_req_max_dev_idx
,
11906 { "Max Device Index", "ff.sm.set_assign_info.req.max_dev_idx",
11907 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11909 { &hf_ff_sm_set_assign_info_req_operational_ip_addr
,
11910 { "Operational IP Address",
11911 "ff.sm.set_assign_info.req.operational_ip_addr",
11912 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11917 * 6.5.2.5.2. Response Message Parameters
11919 { &hf_ff_sm_set_assign_info_rsp
,
11920 { "SM Set Assignment Info Response", "ff.sm.set_assign_info.rsp",
11921 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11923 { &hf_ff_sm_set_assign_info_rsp_reserved
,
11924 { "Reserved", "ff.sm.set_assign_info.rsp.reserved",
11925 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11927 { &hf_ff_sm_set_assign_info_rsp_max_dev_idx
,
11928 { "Max Device Index", "ff.sm.set_assign_info.rsp.max_dev_idx",
11929 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11931 { &hf_ff_sm_set_assign_info_rsp_hse_repeat_time
,
11932 { "HSE Repeat Time", "ff.sm.set_assign_info.rsp.hse_repeat_time",
11933 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11938 * 6.5.2.5.3. Error Message Parameters
11940 { &hf_ff_sm_set_assign_info_err
,
11941 { "SM Set Assignment Info Error", "ff.sm.set_assign_info.err",
11942 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11944 { &hf_ff_sm_set_assign_info_err_err_class
,
11945 { "Error Class", "ff.sm.set_assign_info.err.err_class",
11946 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
11948 { &hf_ff_sm_set_assign_info_err_err_code
,
11949 { "Error Code", "ff.sm.set_assign_info.err.err_code",
11950 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11952 { &hf_ff_sm_set_assign_info_err_additional_code
,
11953 { "Additional Code", "ff.sm.set_assign_info.err.additional_code",
11954 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
11956 { &hf_ff_sm_set_assign_info_err_additional_desc
,
11957 { "Additional Description",
11958 "ff.sm.set_assign_info.err.additional_desc",
11959 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11964 * 6.5.2.6. SM Clear Assignment Info (Confirmed Service Id = 15)
11966 { &hf_ff_sm_clear_assign_info
,
11967 { "SM Clear Assignment Info", "ff.sm.clear_assign_info",
11968 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11973 * 6.5.2.6.1. Request Message Parameters
11975 { &hf_ff_sm_clear_assign_info_req
,
11976 { "SM Clear Assignment Info Request", "ff.sm.clear_assign_info.req",
11977 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11979 { &hf_ff_sm_clear_assign_info_req_dev_id
,
11980 { "Device ID", "ff.sm.clear_assign_info.req.dev_id",
11981 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11983 { &hf_ff_sm_clear_assign_info_req_pd_tag
,
11984 { "PD Tag", "ff.sm.clear_assign_info.req.pd_tag",
11985 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
11990 * 6.5.2.6.2. Response Message Parameters
11992 { &hf_ff_sm_clear_assign_info_rsp
,
11993 { "SM Clear Assignment Info Response",
11994 "ff.sm.clear_assign_info.rsp",
11995 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12000 * 6.5.2.6.3. Error Message Parameters
12002 { &hf_ff_sm_clear_assign_info_err
,
12003 { "SM Clear Assignment Info Error", "ff.sm.clear_assign_info.err",
12004 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12006 { &hf_ff_sm_clear_assign_info_err_err_class
,
12007 { "Error Class", "ff.sm.clear_assign_info.err.err_class",
12008 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
12010 { &hf_ff_sm_clear_assign_info_err_err_code
,
12011 { "Error Code", "ff.sm.clear_assign_info.err.err_code",
12012 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12014 { &hf_ff_sm_clear_assign_info_err_additional_code
,
12015 { "Additional Code", "ff.sm.clear_assign_info.err.additional_code",
12016 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12018 { &hf_ff_sm_clear_assign_info_err_additional_desc
,
12019 { "Additional Description",
12020 "ff.sm.clear_assign_info.err.additional_desc",
12021 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12026 * 6.5.2.7. SM Device Annunciation (Unconfirmed Service Id = 16)
12028 { &hf_ff_sm_dev_annunc
,
12029 { "SM Device Annunciation", "ff.sm.dev_annunc",
12030 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12035 * 6.5.2.7.1. Request Message Parameters
12037 { &hf_ff_sm_dev_annunc_req
,
12038 { "SM Device Annunciation Request", "ff.sm.dev_annunc.req",
12039 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12041 { &hf_ff_sm_dev_annunc_req_dev_idx
,
12042 { "Device Index", "ff.sm.dev_annunc.req.dev_idx",
12043 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12045 { &hf_ff_sm_dev_annunc_req_max_dev_idx
,
12046 { "Max Device Index", "ff.sm.dev_annunc.req.max_dev_idx",
12047 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12049 { &hf_ff_sm_dev_annunc_req_operational_ip_addr
,
12050 { "Operational IP Address",
12051 "ff.sm.dev_annunc.req.operational_ip_addr",
12052 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12054 { &hf_ff_sm_dev_annunc_req_dev_id
,
12055 { "Device ID", "ff.sm.dev_annunc.req.dev_id",
12056 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12058 { &hf_ff_sm_dev_annunc_req_pd_tag
,
12059 { "PD Tag", "ff.sm.dev_annunc.req.pd_tag",
12060 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12062 { &hf_ff_sm_dev_annunc_req_hse_repeat_time
,
12063 { "HSE Repeat Time", "ff.sm.dev_annunc.req.hse_repeat_time",
12064 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12066 { &hf_ff_sm_dev_annunc_req_lr_port
,
12067 { "LAN Redundancy Port", "ff.sm.dev_annunc.req.lr_port",
12068 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12070 { &hf_ff_sm_dev_annunc_req_reserved
,
12071 { "Reserved", "ff.sm.dev_annunc.req.reserved",
12072 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12074 { &hf_ff_sm_dev_annunc_req_annunc_ver_num
,
12075 { "Annunciation Version Number",
12076 "ff.sm.dev_annunc.req.annunc_ver_num",
12077 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12079 { &hf_ff_sm_dev_annunc_req_hse_dev_ver_num
,
12080 { "HSE Device Version Number",
12081 "ff.sm.dev_annunc.req.hse_dev_ver_num",
12082 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12084 { &hf_ff_sm_dev_annunc_req_num_of_entries
,
12085 { "Number of Entries in Version Number List",
12086 "ff.sm.dev_annunc.req.num_of_entries",
12087 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12089 { &hf_ff_sm_dev_annunc_req_h1_live_list_h1_link_id
,
12090 { "H1 Link Id", "ff.sm.dev_annunc.req.h1_live_list.h1_link_id",
12091 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12093 { &hf_ff_sm_dev_annunc_req_h1_live_list_reserved
,
12094 { "Reserved", "ff.sm.dev_annunc.req.h1_live_list.reserved",
12095 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12097 { &hf_ff_sm_dev_annunc_req_h1_live_list_ver_num
,
12098 { "Version Number", "ff.sm.dev_annunc.req.h1_live_list.ver_num",
12099 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12101 { &hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_h1_node_addr
,
12102 { "H1 Node Address",
12103 "ff.sm.dev_annunc.req.h1_node_addr_ver_num.h1_node_addr",
12104 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12106 { &hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_ver_num
,
12107 { "Version Number",
12108 "ff.sm.dev_annunc.req.h1_node_addr_ver_num.ver_num",
12109 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12111 { &hf_ff_sm_dev_annunc_req_smk_state_name
,
12112 { "Name", "ff.sm.dev_annunc.req.smk_state_name",
12113 FT_UINT8
, BASE_DEC
, VALS(names_smk_state
), 0xFE, NULL
, HFILL
} },
12115 { &hf_ff_sm_dev_annunc_req_smk_state_sync
,
12116 { "Synchronized with SNTP Time Server", "ff.sm.dev_annunc.req.smk_state_sync",
12117 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x01, NULL
, HFILL
} },
12119 { &hf_ff_sm_dev_annunc_req_smk_state
,
12120 { "SMK State", "ff.sm.dev_annunc.req.smk_state",
12121 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
12123 { &hf_ff_sm_dev_annunc_req_dev_type_link
,
12124 { "Linking Device", "ff.sm.dev_annunc.req.dev_type.link",
12125 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x80, NULL
, HFILL
} },
12127 { &hf_ff_sm_dev_annunc_req_dev_type_iogateway
,
12128 { "I/O Gateway", "ff.sm.dev_annunc.req.dev_type.iogateway",
12129 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x40, NULL
, HFILL
} },
12131 { &hf_ff_sm_dev_annunc_req_dev_type_hse
,
12132 { "HSE Field Device", "ff.sm.dev_annunc.req.dev_type.hse",
12133 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x20, NULL
, HFILL
} },
12135 { &hf_ff_sm_dev_annunc_req_dev_type_h1
,
12136 { "H1 Device", "ff.sm.dev_annunc.req.dev_type.h1",
12137 FT_BOOLEAN
, 8, TFS(&tfs_yes_no
), 0x10, NULL
, HFILL
} },
12139 { &hf_ff_sm_dev_annunc_req_dev_type_reserved
,
12140 { "Reserved", "ff.sm.dev_annunc.req.dev_type.reserved",
12141 FT_UINT8
, BASE_HEX
, NULL
, 0x08, NULL
, HFILL
} },
12143 { &hf_ff_sm_dev_annunc_req_dev_type_redundant_caps
,
12144 { "Redundant Device Type Capability", "ff.sm.dev_annunc.req.dev_type.redundant_caps",
12145 FT_UINT8
, BASE_DEC
, VALS(names_dev_type
), 0x07, NULL
, HFILL
} },
12147 { &hf_ff_sm_dev_annunc_req_dev_type
,
12148 { "Device Type", "ff.sm.dev_annunc.req.dev_type",
12149 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
12151 { &hf_ff_sm_dev_annunc_req_dev_redundancy_state_reserved
,
12152 { "Reserved", "ff.sm.dev_annunc.req_dev_redundancy_state.reserved",
12153 FT_UINT8
, BASE_HEX
, NULL
, 0xF0, NULL
, HFILL
} },
12155 { &hf_ff_sm_dev_annunc_req_dev_redundancy_state_role
,
12156 { "Type D-2 Device Redundancy Role", "ff.sm.dev_annunc.req_dev_redundancy_state.role",
12157 FT_UINT8
, BASE_DEC
, VALS(names_type_d2_dev_redundancy_role
), 0x0C, NULL
, HFILL
} },
12159 { &hf_ff_sm_dev_annunc_req_dev_redundancy_state_type
,
12160 { "Assigned Device Redundancy Type", "ff.sm.dev_annunc.req_dev_redundancy_state.type",
12161 FT_UINT8
, BASE_DEC
, VALS(names_assigned_redundant_dev_type
), 0x03, NULL
, HFILL
} },
12163 { &hf_ff_sm_dev_annunc_req_dev_redundancy_state
,
12164 { "Device Redundancy State", "ff.sm.dev_annunc.req_dev_redundancy_state",
12165 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
12167 { &hf_ff_sm_dev_annunc_req_dup_detection_state_reserved
,
12168 { "Reserved", "ff.sm.dev_annunc.req.dup_detection_state.reserved",
12169 FT_UINT8
, BASE_HEX
, NULL
, 0xFC, NULL
, HFILL
} },
12171 { &hf_ff_sm_dev_annunc_req_dup_detection_state_pd_tag
,
12172 { "Duplicate PD Tag", "ff.sm.dev_annunc.req.dup_detection_state.pd_tag",
12173 FT_BOOLEAN
, 8, TFS(&tfs_detected_not_detected
), 0x02, NULL
, HFILL
} },
12175 { &hf_ff_sm_dev_annunc_req_dup_detection_state_device
,
12176 { "Duplicate Device Index", "ff.sm.dev_annunc.req.dup_detection_state.device",
12177 FT_BOOLEAN
, 8, TFS(&tfs_detected_not_detected
), 0x01, NULL
, HFILL
} },
12179 { &hf_ff_sm_dev_annunc_req_dup_detection_state
,
12180 { "Duplicate Detection State", "ff.sm.dev_annunc.req.dup_detection_state",
12181 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
12185 * 6.5.3. FMS Services
12188 { "FMS Service", "ff.fms",
12189 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12194 * 6.5.3.2. FMS Initiate (Confirmed Service Id = 96)
12197 { "FMS Initiate", "ff.fms.init",
12198 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12203 * 6.5.3.2.1. Request Message Parameters
12205 { &hf_ff_fms_init_req
,
12206 { "FMS Initiate Request", "ff.fms.init.req",
12207 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12209 { &hf_ff_fms_init_req_conn_opt
,
12210 { "Connect Option", "ff.fms.init.req.conn_opt",
12211 FT_UINT8
, BASE_DEC
, VALS(names_conn_opt
), 0x0, NULL
, HFILL
} },
12213 { &hf_ff_fms_init_req_access_protection_supported_calling
,
12214 { "Access Protection Supported Calling",
12215 "ff.fms.init.req.access_protection_supported_calling",
12216 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12218 { &hf_ff_fms_init_req_passwd_and_access_grps_calling
,
12219 { "Password and Access Groups Calling",
12220 "ff.fms.init.req.passwd_and_access_grps_calling",
12221 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12223 { &hf_ff_fms_init_req_ver_od_calling
,
12224 { "Version OD Calling", "ff.fms.init.req.ver_od_calling",
12225 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12227 { &hf_ff_fms_init_req_prof_num_calling
,
12228 { "Profile Number Calling", "ff.fms.init.req.prof_num_calling",
12229 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12231 { &hf_ff_fms_init_req_pd_tag
,
12232 { "PD Tag", "ff.fms.init.req.pd_tag",
12233 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12238 * 6.5.3.2.2. Response Message Parameters
12240 { &hf_ff_fms_init_rsp
,
12241 { "FMS Initiate Response", "ff.fms.init.rsp",
12242 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12244 { &hf_ff_fms_init_rsp_ver_od_called
,
12245 { "Version OD Called", "ff.fms.init.rsp.ver_od_called",
12246 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12248 { &hf_ff_fms_init_rsp_prof_num_called
,
12249 { "Profile Number Called", "ff.fms.init.rsp.prof_num_called",
12250 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12255 * 6.5.3.2.3. Error Message Parameters
12257 { &hf_ff_fms_init_err
,
12258 { "FMS Initiate Error", "ff.fms.init.err",
12259 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12261 { &hf_ff_fms_init_err_err_class
,
12262 { "Error Class", "ff.fms.init.err.err_class",
12263 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
12265 { &hf_ff_fms_init_err_err_code
,
12266 { "Error Code", "ff.fms.init.err.err_code",
12267 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12269 { &hf_ff_fms_init_err_additional_code
,
12270 { "Additional Code", "ff.fms.init.err.additional_code",
12271 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12273 { &hf_ff_fms_init_err_additional_desc
,
12274 { "Additional Description", "ff.fms.init.err.additional_desc",
12275 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12280 * 6.5.3.3. FMS Abort (Unconfirmed Service Id = 112)
12282 { &hf_ff_fms_abort
,
12283 { "FMS Abort", "ff.fms.abort",
12284 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12289 * 6.5.3.3.1. Request Message Parameters
12291 { &hf_ff_fms_abort_req
,
12292 { "FMS Abort Request", "ff.fms.abort.req",
12293 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12295 { &hf_ff_fms_abort_req_detail
,
12296 { "Abort Detail", "ff.fms.abort.req.detail",
12297 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12299 { &hf_ff_fms_abort_req_abort_id
,
12300 { "Abort Identifier", "ff.fms.abort.req.abort_id",
12301 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12303 { &hf_ff_fms_abort_req_reason_code
,
12304 { "Reason Code", "ff.fms.abort.req.reason_code",
12305 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12307 { &hf_ff_fms_abort_req_reserved
,
12308 { "Reserved", "ff.fms.abort.req.reserved",
12309 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12314 * 6.5.3.4. FMS Status (Confirmed Service Id = 0)
12316 { &hf_ff_fms_status
,
12317 { "FMS Status", "ff.fms.status",
12318 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12323 * 6.5.3.4.1. Request Message Parameters
12325 { &hf_ff_fms_status_req
,
12326 { "FMS Status Request", "ff.fms.status.req",
12327 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12332 * 6.5.3.4.2. Response Message Parameters
12334 { &hf_ff_fms_status_rsp
,
12335 { "FMS Status Response", "ff.fms.status.rsp",
12336 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12338 { &hf_ff_fms_status_rsp_logical_status
,
12339 { "Logical Status", "ff.fms.status.rsp.logical_status",
12340 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12342 { &hf_ff_fms_status_rsp_physical_status
,
12343 { "Physical Status", "ff.fms.status.rsp.physical_status",
12344 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12346 { &hf_ff_fms_status_rsp_reserved
,
12347 { "Reserved", "ff.fms.status.rsp.reserved",
12348 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12350 { &hf_ff_fms_status_rsp_local_detail
,
12351 { "Local Detail", "ff.fms.status.rsp.local_detail",
12352 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
12357 * 6.5.3.4.3. Error Message Parameters
12359 { &hf_ff_fms_status_err
,
12360 { "FMS Status Error", "ff.fms.status.err",
12361 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12363 { &hf_ff_fms_status_err_err_class
,
12364 { "Error Class", "ff.fms.status.err.err_class",
12365 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
12367 { &hf_ff_fms_status_err_err_code
,
12368 { "Error Code", "ff.fms.status.err.err_code",
12369 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12371 { &hf_ff_fms_status_err_additional_code
,
12372 { "Additional Code", "ff.fms.status.err.additional_code",
12373 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12375 { &hf_ff_fms_status_err_additional_desc
,
12376 { "Additional Description", "ff.fms.status.err.additional_desc",
12377 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12382 * 6.5.3.5. FMS Unsolicited Status (Unconfirmed Service Id = 1)
12384 { &hf_ff_fms_unsolicited_status
,
12385 { "FMS Unsolicited Status", "ff.fms.unsolicited_status",
12386 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12391 * 6.5.3.5.1. Request Message Parameters
12393 { &hf_ff_fms_unsolicited_status_req
,
12394 { "FMS Unsolicited Status Request", "ff.fms.unsolicited_status.req",
12395 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12397 { &hf_ff_fms_unsolicited_status_req_logical_status
,
12398 { "Logical Status", "ff.fms.unsolicited_status.req.logical_status",
12399 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12401 { &hf_ff_fms_unsolicited_status_req_physical_status
,
12402 { "Physical Status",
12403 "ff.fms.unsolicited_status.req.physical_status",
12404 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12406 { &hf_ff_fms_unsolicited_status_req_reserved
,
12407 { "Reserved", "ff.fms.unsolicited_status.req.reserved",
12408 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12410 { &hf_ff_fms_unsolicited_status_req_local_detail
,
12411 { "Local Detail", "ff.fms.unsolicited_status.req.local_detail",
12412 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
12417 * 6.5.3.6. FMS Identify (Confirmed Service Id = 1)
12420 { "FMS Identify", "ff.fms.id",
12421 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12426 * 6.5.3.6.1. Request Message Parameters
12428 { &hf_ff_fms_id_req
,
12429 { "FMS Identify Request", "ff.fms.id.req",
12430 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12435 * 6.5.3.6.2. Response Message Parameters
12437 { &hf_ff_fms_id_rsp
,
12438 { "FMS Identify Response", "ff.fms.id.rsp",
12439 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12441 { &hf_ff_fms_id_rsp_vendor_name
,
12442 { "Vendor Name", "ff.fms.id.rsp.vendor_name",
12443 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12445 { &hf_ff_fms_id_rsp_model_name
,
12446 { "Model Name", "ff.fms.id.rsp.model_name",
12447 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12449 { &hf_ff_fms_id_rsp_revision
,
12450 { "Revision", "ff.fms.id.rsp.revision",
12451 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12456 * 6.5.3.6.3. Error Message Parameters
12458 { &hf_ff_fms_id_err
,
12459 { "FMS Identify Error", "ff.fms.id.err",
12460 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12462 { &hf_ff_fms_id_err_err_class
,
12463 { "Error Class", "ff.fms.id.err.err_class",
12464 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
12466 { &hf_ff_fms_id_err_err_code
,
12467 { "Error Code", "ff.fms.id.err.err_code",
12468 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12470 { &hf_ff_fms_id_err_additional_code
,
12471 { "Additional Code", "ff.fms.id.err.additional_code",
12472 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12474 { &hf_ff_fms_id_err_additional_desc
,
12475 { "Additional Description", "ff.fms.id.err.additional_desc",
12476 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12481 * 6.5.3.7. FMS Get OD (Confirmed Service Id = 4)
12483 { &hf_ff_fms_get_od
,
12484 { "FMS Get OD", "ff.fms.get_od",
12485 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12490 * 6.5.3.7.1. Request Message Parameters
12492 { &hf_ff_fms_get_od_req
,
12493 { "FMS Get OD Request", "ff.fms.get_od.req",
12494 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12496 { &hf_ff_fms_get_od_req_all_attrs
,
12497 { "All Attributes", "ff.fms.get_od.req.all_attrs",
12498 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12500 { &hf_ff_fms_get_od_req_start_idx_flag
,
12501 { "Start Index Flag", "ff.fms.get_od.req.start_idx_flag",
12502 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12504 { &hf_ff_fms_get_od_req_reserved
,
12505 { "Reserved", "ff.fms.get_od.req.reserved",
12506 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12508 { &hf_ff_fms_get_od_req_idx
,
12509 { "Index", "ff.fms.get_od.req.idx",
12510 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12515 * 6.5.3.7.2. Response Message Parameters
12517 { &hf_ff_fms_get_od_rsp
,
12518 { "FMS Get OD Response", "ff.fms.get_od.rsp",
12519 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12521 { &hf_ff_fms_get_od_rsp_more_follows
,
12522 { "More Follows", "ff.fms.get_od.rsp.more_follows",
12523 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12525 { &hf_ff_fms_get_od_rsp_num_of_obj_desc
,
12526 { "Number of Object Descriptions",
12527 "ff.fms.get_od.rsp.num_of_obj_desc",
12528 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12530 { &hf_ff_fms_get_od_rsp_reserved
,
12531 { "Reserved", "ff.fms.get_od.rsp.reserved",
12532 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12534 { &hf_ff_fms_get_od_rsp_object_descriptions
,
12535 { "List of Object Descriptions", "ff.fms.get_od.rsp.object_descriptions",
12536 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12541 * 6.5.3.7.3. Error Message Parameters
12543 { &hf_ff_fms_get_od_err
,
12544 { "FMS Get OD Error", "ff.fms.get_od.err",
12545 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12547 { &hf_ff_fms_get_od_err_err_class
,
12548 { "Error Class", "ff.fms.get_od.err.err_class",
12549 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
12551 { &hf_ff_fms_get_od_err_err_code
,
12552 { "Error Code", "ff.fms.get_od.err.err_code",
12553 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12555 { &hf_ff_fms_get_od_err_additional_code
,
12556 { "Additional Code", "ff.fms.get_od.err.additional_code",
12557 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12559 { &hf_ff_fms_get_od_err_additional_desc
,
12560 { "Additional Description", "ff.fms.get_od.err.additional_desc",
12561 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12566 * 6.5.3.8. FMS Initiate Put OD (Confirmed Service Id = 28)
12568 { &hf_ff_fms_init_put_od
,
12569 { "FMS Initiate Put OD", "ff.fms.init_put_od",
12570 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12575 * 6.5.3.8.1. Request Message Parameters
12577 { &hf_ff_fms_init_put_od_req
,
12578 { "FMS Initiate Put OD Request", "ff.fms.init_put_od.req",
12579 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12581 { &hf_ff_fms_init_put_od_req_reserved
,
12582 { "Reserved", "ff.fms.init_put_od.req.reserved",
12583 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12585 { &hf_ff_fms_init_put_od_req_consequence
,
12586 { "Consequence", "ff.fms.init_put_od.req.consequence",
12587 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12592 * 6.5.3.8.2. Response Message Parameters
12594 { &hf_ff_fms_init_put_od_rsp
,
12595 { "FMS Initiate Put OD Response", "ff.fms.init_put_od.rsp",
12596 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12601 * 6.5.3.8.3. Error Message Parameters
12603 { &hf_ff_fms_init_put_od_err
,
12604 { "FMS Initiate Put OD Error", "ff.fms.init_put_od.err",
12605 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12607 { &hf_ff_fms_init_put_od_err_err_class
,
12608 { "Error Class", "ff.fms.init_put_od.err.err_class",
12609 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
12611 { &hf_ff_fms_init_put_od_err_err_code
,
12612 { "Error Code", "ff.fms.init_put_od.err.err_code",
12613 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12615 { &hf_ff_fms_init_put_od_err_additional_code
,
12616 { "Additional Code", "ff.fms.init_put_od.err.additional_code",
12617 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12619 { &hf_ff_fms_init_put_od_err_additional_desc
,
12620 { "Additional Description",
12621 "ff.fms.init_put_od.err.additional_desc",
12622 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12627 * 6.5.3.9. FMS Put OD (Confirmed Service Id = 29)
12629 { &hf_ff_fms_put_od
,
12630 { "FMS Put OD", "ff.fms.put_od",
12631 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12636 * 6.5.3.9.1. Request Message Parameters
12638 { &hf_ff_fms_put_od_req
,
12639 { "FMS Put OD Request", "ff.fms.put_od.req",
12640 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12642 { &hf_ff_fms_put_od_req_num_of_obj_desc
,
12643 { "Number of Object Descriptions",
12644 "ff.fms.put_od.req.num_of_obj_desc",
12645 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12647 { &hf_ff_fms_put_od_req_object_descriptions
,
12648 { "List of Object Descriptions", "ff.fms.put_od.req.object_descriptions",
12649 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12653 * 6.5.3.9.2. Response Message Parameters
12655 { &hf_ff_fms_put_od_rsp
,
12656 { "FMS Put OD Response", "ff.fms.put_od.rsp",
12657 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12662 * 6.5.3.9.3. Error Message Parameters
12664 { &hf_ff_fms_put_od_err
,
12665 { "FMS Put OD Error", "ff.fms.put_od.err",
12666 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12668 { &hf_ff_fms_put_od_err_err_class
,
12669 { "Error Class", "ff.fms.put_od.err.err_class",
12670 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
12672 { &hf_ff_fms_put_od_err_err_code
,
12673 { "Error Code", "ff.fms.put_od.err.err_code",
12674 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12676 { &hf_ff_fms_put_od_err_additional_code
,
12677 { "Additional Code", "ff.fms.put_od.err.additional_code",
12678 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12680 { &hf_ff_fms_put_od_err_additional_desc
,
12681 { "Additional Description", "ff.fms.put_od.err.additional_desc",
12682 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12687 * 6.5.3.10. FMS Terminate Put OD (Confirmed Service Id = 30)
12689 { &hf_ff_fms_terminate_put_od
,
12690 { "FMS Terminate Put OD", "ff.fms.terminate_put_od",
12691 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12696 * 6.5.3.10.1. Request Message Parameters
12698 { &hf_ff_fms_terminate_put_od_req
,
12699 { "FMS Terminate Put OD Request", "ff.fms.terminate_put_od.req",
12700 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12705 * 6.5.3.10.2. Response Message Parameters
12707 { &hf_ff_fms_terminate_put_od_rsp
,
12708 { "FMS Terminate Put OD Response", "ff.fms.terminate_put_od.rsp",
12709 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12714 * 6.5.3.10.3. Error Message Parameters
12716 { &hf_ff_fms_terminate_put_od_err
,
12717 { "FMS Terminate Put OD Error", "ff.fms.terminate_put_od.err",
12718 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12720 { &hf_ff_fms_terminate_put_od_err_index
,
12721 { "Index", "ff.fms.terminate_put_od.err.index",
12722 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12724 { &hf_ff_fms_terminate_put_od_err_err_class
,
12725 { "Error Class", "ff.fms.terminate_put_od.err.err_class",
12726 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
12728 { &hf_ff_fms_terminate_put_od_err_err_code
,
12729 { "Error Code", "ff.fms.terminate_put_od.err.err_code",
12730 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12732 { &hf_ff_fms_terminate_put_od_err_additional_code
,
12733 { "Additional Code", "ff.fms.terminate_put_od.err.additional_code",
12734 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12736 { &hf_ff_fms_terminate_put_od_err_additional_desc
,
12737 { "Additional Description",
12738 "ff.fms.terminate_put_od.err.additional_desc",
12739 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12744 * 6.5.3.11. FMS Generic Initiate Download Sequence
12745 * (Confirmed Service Id = 31)
12747 { &hf_ff_fms_gen_init_download_seq
,
12748 { "FMS Generic Initiate Download Sequence",
12749 "ff.fms.gen_init_download_seq",
12750 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12755 * 6.5.3.11.1. Request Message Parameters
12757 { &hf_ff_fms_gen_init_download_seq_req
,
12758 { "FMS Generic Initiate Download Sequence Request",
12759 "ff.fms.gen_init_download_seq.req",
12760 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12762 { &hf_ff_fms_gen_init_download_seq_req_idx
,
12764 "ff.fms.gen_init_download_seq.req.idx",
12765 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12770 * 6.5.3.11.2. Response Message Parameters
12772 { &hf_ff_fms_gen_init_download_seq_rsp
,
12773 { "FMS Generic Initiate Download Sequence Response",
12774 "ff.fms.gen_init_download_seq.rsp",
12775 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12780 * 6.5.3.11.3. Error Message Parameters
12782 { &hf_ff_fms_gen_init_download_seq_err
,
12783 { "FMS Generic Initiate Download Sequence Error",
12784 "ff.fms.gen_init_download_seq.err",
12785 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12787 { &hf_ff_fms_gen_init_download_seq_err_err_class
,
12788 { "Error Class", "ff.fms.gen_init_download_seq.err.err_class",
12789 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
12791 { &hf_ff_fms_gen_init_download_seq_err_err_code
,
12792 { "Error Code", "ff.fms.gen_init_download_seq.err.err_code",
12793 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12795 { &hf_ff_fms_gen_init_download_seq_err_additional_code
,
12796 { "Additional Code",
12797 "ff.fms.gen_init_download_seq.err.additional_code",
12798 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12800 { &hf_ff_fms_gen_init_download_seq_err_additional_desc
,
12801 { "Additional Description",
12802 "ff.fms.gen_init_download_seq.err.additional_desc",
12803 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12808 * 6.5.3.12. FMS Generic Download Segment (Confirmed Service Id = 32)
12810 { &hf_ff_fms_gen_download_seg
,
12811 { "FMS Generic Download Segment", "ff.fms.gen_download_seg",
12812 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12817 * 6.5.3.12.1. Request Message Parameters
12819 { &hf_ff_fms_gen_download_seg_req
,
12820 { "FMS Generic Download Segment Request",
12821 "ff.fms.gen_download_seg.req",
12822 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12824 { &hf_ff_fms_gen_download_seg_req_idx
,
12825 { "Index", "ff.fms.gen_download_seg.req.idx",
12826 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12828 { &hf_ff_fms_gen_download_seg_req_more_follows
,
12829 { "More Follows", "ff.fms.gen_download_seg.req.more_follows",
12830 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12832 { &hf_ff_fms_gen_download_seg_req_load_data
,
12833 { "Load Data", "ff.fms.gen_download_seg.req.load_data",
12834 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12838 * 6.5.3.12.2. Response Message Parameters
12840 { &hf_ff_fms_gen_download_seg_rsp
,
12841 { "FMS Generic Download Segment Response",
12842 "ff.fms.gen_download_seg.rsp",
12843 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12848 * 6.5.3.12.3. Error Message Parameters
12850 { &hf_ff_fms_gen_download_seg_err
,
12851 { "FMS Generic Download Segment Error",
12852 "ff.fms.gen_download_seg.err",
12853 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12855 { &hf_ff_fms_gen_download_seg_err_err_class
,
12856 { "Error Class", "ff.fms.gen_download_seg.err.err_class",
12857 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
12859 { &hf_ff_fms_gen_download_seg_err_err_code
,
12860 { "Error Code", "ff.fms.gen_download_seg.err.err_code",
12861 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12863 { &hf_ff_fms_gen_download_seg_err_additional_code
,
12864 { "Additional Code", "ff.fms.gen_download_seg.err.additional_code",
12865 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12867 { &hf_ff_fms_gen_download_seg_err_additional_desc
,
12868 { "Additional Description",
12869 "ff.fms.gen_download_seg.err.additional_desc",
12870 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12875 * 6.5.3.13. FMS Generic Terminate Download Sequence
12876 * (Confirmed Service Id = 33)
12878 { &hf_ff_fms_gen_terminate_download_seq
,
12879 { "FMS Generic Terminate Download Sequence",
12880 "ff.fms.gen_terminate_download_seq",
12881 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12886 * 6.5.3.13.1. Request Message Parameters
12888 { &hf_ff_fms_gen_terminate_download_seq_req
,
12889 { "FMS Generic Terminate Download Sequence Request",
12890 "ff.fms.gen_terminate_download_seq.req",
12891 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12893 { &hf_ff_fms_gen_terminate_download_seq_req_idx
,
12894 { "Index", "ff.fms.gen_terminate_download_seq.req.idx",
12895 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12900 * 6.5.3.13.2. Response Message Parameters
12902 { &hf_ff_fms_gen_terminate_download_seq_rsp
,
12903 { "FMS Generic Terminate Download Sequence Response",
12904 "ff.fms.gen_terminate_download_seq.rsp",
12905 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12907 { &hf_ff_fms_gen_terminate_download_seq_rsp_final_result
,
12909 "ff.fms.gen_terminate_download_seq.rsp.final_result",
12910 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12915 * 6.5.3.13.3. Error Message Parameters
12917 { &hf_ff_fms_gen_terminate_download_seq_err
,
12918 { "FMS Generic Terminate Download Sequence Error",
12919 "ff.fms.gen_terminate_download_seq.err",
12920 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12922 { &hf_ff_fms_gen_terminate_download_seq_err_err_class
,
12923 { "Error Class", "ff.fms.gen_terminate_download_seq.err.err_class",
12924 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
12926 { &hf_ff_fms_gen_terminate_download_seq_err_err_code
,
12927 { "Error Code", "ff.fms.gen_terminate_download_seq.err.err_code",
12928 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12930 { &hf_ff_fms_gen_terminate_download_seq_err_additional_code
,
12931 { "Additional Code",
12932 "ff.fms.gen_terminate_download_seq.err.additional_code",
12933 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12935 { &hf_ff_fms_gen_terminate_download_seq_err_additional_desc
,
12936 { "Additional Description",
12937 "ff.fms.gen_terminate_download_seq.err.additional_desc",
12938 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12943 * 6.5.3.14. FMS Initiate Download Sequence (Confirmed Service Id = 9)
12945 { &hf_ff_fms_init_download_seq
,
12946 { "FMS Initiate Download Sequence",
12947 "ff.fms.init_download_seq",
12948 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12953 * 6.5.3.14.1. Request Message Parameters
12955 { &hf_ff_fms_init_download_seq_req
,
12956 { "FMS Initiate Download Sequence Request",
12957 "ff.fms.init_download_seq.req",
12958 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12960 { &hf_ff_fms_init_download_seq_req_idx
,
12961 { "Index", "ff.fms.init_download_seq.req.idx",
12962 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12967 * 6.5.3.14.2. Response Message Parameters
12969 { &hf_ff_fms_init_download_seq_rsp
,
12970 { "FMS Initiate Download Sequence Response",
12971 "ff.fms.init_download_seq.rsp",
12972 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12977 * 6.5.3.14.3. Error Message Parameters
12979 { &hf_ff_fms_init_download_seq_err
,
12980 { "FMS Initiate Download Sequence Error",
12981 "ff.fms.init_download_seq.err",
12982 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
12984 { &hf_ff_fms_init_download_seq_err_err_class
,
12985 { "Error Class", "ff.fms.init_download_seq.err.err_class",
12986 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
12988 { &hf_ff_fms_init_download_seq_err_err_code
,
12989 { "Error Code", "ff.fms.init_download_seq.err.err_code",
12990 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12992 { &hf_ff_fms_init_download_seq_err_additional_code
,
12993 { "Additional Code", "ff.fms.init_download_seq.err.additional_code",
12994 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
12996 { &hf_ff_fms_init_download_seq_err_additional_desc
,
12997 { "Additional Description",
12998 "ff.fms.init_download_seq.err.additional_desc",
12999 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13004 * 6.5.3.15. FMS Download Segment (Confirmed Service Id = 10)
13006 { &hf_ff_fms_download_seg
,
13007 { "FMS Download Segment", "ff.fms.download_seg",
13008 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13013 * 6.5.3.15.1. Request Message Parameters
13015 { &hf_ff_fms_download_seg_req
,
13016 { "FMS Download Segment Request", "ff.fms.download_seg.req",
13017 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13019 { &hf_ff_fms_download_seg_req_idx
,
13020 { "Index", "ff.fms.download_seg.req.idx",
13021 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13026 * 6.5.3.15.2. Response Message Parameters
13028 { &hf_ff_fms_download_seg_rsp
,
13029 { "FMS Download Segment Response", "ff.fms.download_seg.rsp",
13030 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13032 { &hf_ff_fms_download_seg_rsp_more_follows
,
13033 { "Final Result", "ff.fms.download_seg.rsp.more_follows",
13034 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13036 { &hf_ff_fms_download_seg_rsp_load_data
,
13037 { "Load Data", "ff.fms.download_seg.rsp.load_data",
13038 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13042 * 6.5.3.15.3. Error Message Parameters
13044 { &hf_ff_fms_download_seg_err
,
13045 { "FMS Download Segment Error", "ff.fms.download_seg.err",
13046 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13048 { &hf_ff_fms_download_seg_err_err_class
,
13049 { "Error Class", "ff.fms.download_seg.err.err_class",
13050 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13052 { &hf_ff_fms_download_seg_err_err_code
,
13053 { "Error Code", "ff.fms.download_seg.err.err_code",
13054 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13056 { &hf_ff_fms_download_seg_err_additional_code
,
13057 { "Additional Code", "ff.fms.download_seg.err.additional_code",
13058 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13060 { &hf_ff_fms_download_seg_err_additional_desc
,
13061 { "Additional Description",
13062 "ff.fms.download_seg.err.additional_desc",
13063 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13068 * 6.5.3.16. FMS Terminate Download Sequence (Confirmed Service Id = 11)
13070 { &hf_ff_fms_terminate_download_seq
,
13071 { "FMS Terminate Download Sequence",
13072 "ff.fms.terminate_download_seq",
13073 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13078 * 6.5.3.16.1. Request Message Parameters
13080 { &hf_ff_fms_terminate_download_seq_req
,
13081 { "FMS Terminate Download Sequence Request",
13082 "ff.fms.terminate_download_seq.req",
13083 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13085 { &hf_ff_fms_terminate_download_seq_req_idx
,
13086 { "Index", "ff.fms.terminate_download_seq.req.idx",
13087 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13089 { &hf_ff_fms_terminate_download_seq_req_final_result
,
13090 { "Final Result", "ff.fms.terminate_download_seq.req.final_result",
13091 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13096 * 6.5.3.16.2. Response Message Parameters
13098 { &hf_ff_fms_terminate_download_seq_rsp
,
13099 { "FMS Terminate Download Sequence Response",
13100 "ff.fms.terminate_download_seq.rsp",
13101 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13106 * 6.5.3.16.3. Error Message Parameters
13108 { &hf_ff_fms_terminate_download_seq_err
,
13109 { "FMS Terminate Download Sequence Error",
13110 "ff.fms.terminate_download_seq.err",
13111 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13113 { &hf_ff_fms_terminate_download_seq_err_err_class
,
13114 { "Error Class", "ff.fms.terminate_download_seq.err.err_class",
13115 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13117 { &hf_ff_fms_terminate_download_seq_err_err_code
,
13118 { "Error Code", "ff.fms.terminate_download_seq.err.err_code",
13119 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13121 { &hf_ff_fms_terminate_download_seq_err_additional_code
,
13122 { "Additional Code",
13123 "ff.fms.terminate_download_seq.err.additional_code",
13124 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13126 { &hf_ff_fms_terminate_download_seq_err_additional_desc
,
13127 { "Additional Description",
13128 "ff.fms.terminate_download_seq.err.additional_desc",
13129 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13134 * 6.5.3.17. FMS Initiate Upload Sequence (Confirmed Service Id = 12)
13136 { &hf_ff_fms_init_upload_seq
,
13137 { "FMS Initiate Upload Sequence", "ff.fms.init_upload_seq",
13138 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13143 * 6.5.3.17.1. Request Message Parameters
13145 { &hf_ff_fms_init_upload_seq_req
,
13146 { "FMS Initiate Upload Sequence Request",
13147 "ff.fms.init_upload_seq.req",
13148 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13150 { &hf_ff_fms_init_upload_seq_req_idx
,
13151 { "Index", "ff.fms.init_upload_seq.req.idx",
13152 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13157 * 6.5.3.17.2. Response Message Parameters
13159 { &hf_ff_fms_init_upload_seq_rsp
,
13160 { "FMS Initiate Upload Sequence Response",
13161 "ff.fms.init_upload_seq.rsp",
13162 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13167 * 6.5.3.17.3. Error Message Parameters
13169 { &hf_ff_fms_init_upload_seq_err
,
13170 { "FMS Initiate Upload Sequence Error",
13171 "ff.fms.init_upload_seq.err",
13172 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13174 { &hf_ff_fms_init_upload_seq_err_err_class
,
13175 { "Error Class", "ff.fms.init_upload_seq.err.err_class",
13176 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13178 { &hf_ff_fms_init_upload_seq_err_err_code
,
13179 { "Error Code", "ff.fms.init_upload_seq.err.err_code",
13180 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13182 { &hf_ff_fms_init_upload_seq_err_additional_code
,
13183 { "Additional Code", "ff.fms.init_upload_seq.err.additional_code",
13184 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13186 { &hf_ff_fms_init_upload_seq_err_additional_desc
,
13187 { "Additional Description",
13188 "ff.fms.init_upload_seq.err.additional_desc",
13189 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13194 * 6.5.3.18. FMS Upload Segment (Confirmed Service Id = 13)
13196 { &hf_ff_fms_upload_seg
,
13197 { "FMS Upload Segment", "ff.fms.upload_seg",
13198 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13203 * 6.5.3.18.1. Request Message Parameters
13205 { &hf_ff_fms_upload_seg_req
,
13206 { "FMS Upload Segment Request", "ff.fms.upload_seg.req",
13207 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13209 { &hf_ff_fms_upload_seg_req_idx
,
13210 { "Index", "ff.fms.upload_seg.req.idx",
13211 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13216 * 6.5.3.18.2. Response Message Parameters
13218 { &hf_ff_fms_upload_seg_rsp
,
13219 { "FMS Upload Segment Response", "ff.fms.upload_seg.rsp",
13220 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13222 { &hf_ff_fms_upload_seg_rsp_more_follows
,
13223 { "More Follows", "ff.fms.upload_seg.rsp.more_follows",
13224 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13226 { &hf_ff_fms_upload_seg_rsp_final_result
,
13227 { "Final Result", "ff.fms.upload_seg.rsp.final_result",
13228 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13232 * 6.5.3.18.3. Error Message Parameters
13234 { &hf_ff_fms_upload_seg_err
,
13235 { "FMS Upload Segment Error", "ff.fms.upload_seg.err",
13236 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13238 { &hf_ff_fms_upload_seg_err_err_class
,
13239 { "Error Class", "ff.fms.upload_seg.err.err_class",
13240 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13242 { &hf_ff_fms_upload_seg_err_err_code
,
13243 { "Error Code", "ff.fms.upload_seg.err.err_code",
13244 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13246 { &hf_ff_fms_upload_seg_err_additional_code
,
13247 { "Additional Code", "ff.fms.upload_seg.err.additional_code",
13248 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13250 { &hf_ff_fms_upload_seg_err_additional_desc
,
13251 { "Additional Description", "ff.fms.upload_seg.err.additional_desc",
13252 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13257 * 6.5.3.19. FMS Terminate Upload Sequence (Confirmed Service Id = 14)
13259 { &hf_ff_fms_terminate_upload_seq
,
13260 { "FMS Terminate Upload Sequence",
13261 "ff.fms.terminate_upload_seq",
13262 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13267 * 6.5.3.19.1. Request Message Parameters
13269 { &hf_ff_fms_terminate_upload_seq_req
,
13270 { "FMS Terminate Upload Sequence Request",
13271 "ff.fms.terminate_upload_seq.req",
13272 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13274 { &hf_ff_fms_terminate_upload_seq_req_idx
,
13275 { "Index", "ff.fms.terminate_upload_seq.req.idx",
13276 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13281 * 6.5.3.19.2. Response Message Parameters
13283 { &hf_ff_fms_terminate_upload_seq_rsp
,
13284 { "FMS Terminate Upload Sequence Response",
13285 "ff.fms.terminate_upload_seq.rsp",
13286 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13291 * 6.5.3.19.3. Error Message Parameters
13293 { &hf_ff_fms_terminate_upload_seq_err
,
13294 { "FMS Terminate Upload Sequence Error",
13295 "ff.fms.terminate_upload_seq.err",
13296 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13298 { &hf_ff_fms_terminate_upload_seq_err_err_class
,
13299 { "Error Class", "ff.fms.terminate_upload_seq.err.err_class",
13300 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13302 { &hf_ff_fms_terminate_upload_seq_err_err_code
,
13303 { "Error Code", "ff.fms.terminate_upload_seq.err.err_code",
13304 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13306 { &hf_ff_fms_terminate_upload_seq_err_additional_code
,
13307 { "Additional Code",
13308 "ff.fms.terminate_upload_seq.err.additional_code",
13309 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13311 { &hf_ff_fms_terminate_upload_seq_err_additional_desc
,
13312 { "Additional Description",
13313 "ff.fms.terminate_upload_seq.err.additional_desc",
13314 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13319 * 6.5.3.20. FMS Request Domain Download (Confirmed Service Id = 15)
13321 { &hf_ff_fms_req_dom_download
,
13322 { "FMS Request Domain Download", "ff.fms.req_dom_download",
13323 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13328 * 6.5.3.20.1. Request Message Parameters
13330 { &hf_ff_fms_req_dom_download_req
,
13331 { "FMS Request Domain Download Request",
13332 "ff.fms.req_dom_download.req",
13333 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13335 { &hf_ff_fms_req_dom_download_req_idx
,
13336 { "Index", "ff.fms.req_dom_download.req.idx",
13337 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13339 { &hf_ff_fms_req_dom_download_req_additional_info
,
13340 { "Additional Description",
13341 "ff.fms.req_dom_download.req.additional_info",
13342 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13347 * 6.5.3.20.2. Response Message Parameters
13349 { &hf_ff_fms_req_dom_download_rsp
,
13350 { "FMS Request Domain Download Response",
13351 "ff.fms.req_dom_download.rsp",
13352 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13355 * 6.5.3.20.3. Error Message Parameters
13357 { &hf_ff_fms_req_dom_download_err
,
13358 { "FMS Request Domain Download Error",
13359 "ff.fms.req_dom_download.err",
13360 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13362 { &hf_ff_fms_req_dom_download_err_err_class
,
13363 { "Error Class", "ff.fms.req_dom_download.err.err_class",
13364 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13366 { &hf_ff_fms_req_dom_download_err_err_code
,
13367 { "Error Code", "ff.fms.req_dom_download.err.err_code",
13368 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13370 { &hf_ff_fms_req_dom_download_err_additional_code
,
13371 { "Additional Code", "ff.fms.req_dom_download.err.additional_code",
13372 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13374 { &hf_ff_fms_req_dom_download_err_additional_desc
,
13375 { "Additional Description",
13376 "ff.fms.req_dom_download.err.additional_desc",
13377 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13382 * 6.5.3.21. FMS Request Domain Upload (Confirmed Service Id = 16)
13384 { &hf_ff_fms_req_dom_upload
,
13385 { "FMS Request Domain Upload", "ff.fms.req_dom_upload",
13386 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13391 * 6.5.3.21.1. Request Message Parameters
13393 { &hf_ff_fms_req_dom_upload_req
,
13394 { "FMS Request Domain Upload Request", "ff.fms.req_dom_upload.req",
13395 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13397 { &hf_ff_fms_req_dom_upload_req_idx
,
13398 { "Index", "ff.fms.req_dom_upload.req.idx",
13399 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13401 { &hf_ff_fms_req_dom_upload_req_additional_info
,
13402 { "Additional Description",
13403 "ff.fms.req_dom_upload.req.additional_info",
13404 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13409 * 6.5.3.21.2. Response Message Parameters
13411 { &hf_ff_fms_req_dom_upload_rsp
,
13412 { "FMS Request Domain Upload Response", "ff.fms.req_dom_upload.rsp",
13413 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13418 * 6.5.3.21.3. Error Message Parameters
13420 { &hf_ff_fms_req_dom_upload_err
,
13421 { "FMS Request Domain Upload Error", "ff.fms.req_dom_upload.err",
13422 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13424 { &hf_ff_fms_req_dom_upload_err_err_class
,
13425 { "Error Class", "ff.fms.req_dom_upload.err.err_class",
13426 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13428 { &hf_ff_fms_req_dom_upload_err_err_code
,
13429 { "Error Code", "ff.fms.req_dom_upload.err.err_code",
13430 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13432 { &hf_ff_fms_req_dom_upload_err_additional_code
,
13433 { "Additional Code", "ff.fms.req_dom_upload.err.additional_code",
13434 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13436 { &hf_ff_fms_req_dom_upload_err_additional_desc
,
13437 { "Additional Description",
13438 "ff.fms.req_dom_upload.err.additional_desc",
13439 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13444 * 6.5.3.22. FMS Create Program Invocation (Confirmed Service Id = 17)
13446 { &hf_ff_fms_create_pi
,
13447 { "FMS Create Program Invocation", "ff.fms.create_pi",
13448 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13453 * 6.5.3.22.1. Request Message Parameters
13455 { &hf_ff_fms_create_pi_req
,
13456 { "FMS Create Program Invocation Request", "ff.fms.create_pi.req",
13457 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13459 { &hf_ff_fms_create_pi_req_reusable
,
13460 { "Reusable", "ff.fms.create_pi.req.reusable",
13461 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13463 { &hf_ff_fms_create_pi_req_reserved
,
13464 { "Reserved", "ff.fms.create_pi.req.reserved",
13465 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13467 { &hf_ff_fms_create_pi_req_num_of_dom_idxes
,
13468 { "Number of Domain Indexes",
13469 "ff.fms.create_pi.req.num_of_dom_idxes",
13470 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13472 { &hf_ff_fms_create_pi_req_dom_idx
,
13473 { "Domain Index", "ff.fms.create_pi.req.list_of_dom_idxes.dom_idx",
13474 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13479 * 6.5.3.22.2. Response Message Parameters
13481 { &hf_ff_fms_create_pi_rsp
,
13482 { "FMS Create Program Invocation Response", "ff.fms.create_pi.rsp",
13483 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13485 { &hf_ff_fms_create_pi_rsp_idx
,
13486 { "Index", "ff.fms.create_pi.rsp.idx",
13487 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13492 * 6.5.3.22.3. Error Message Parameters
13494 { &hf_ff_fms_create_pi_err
,
13495 { "FMS Create Program Invocation Error", "ff.fms.create_pi.err",
13496 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13498 { &hf_ff_fms_create_pi_err_err_class
,
13499 { "Error Class", "ff.fms.create_pi.err.err_class",
13500 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13502 { &hf_ff_fms_create_pi_err_err_code
,
13503 { "Error Code", "ff.fms.create_pi.err.err_code",
13504 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13506 { &hf_ff_fms_create_pi_err_additional_code
,
13507 { "Additional Code",
13508 "ff.fms.create_pi.err.additional_code",
13509 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13511 { &hf_ff_fms_create_pi_err_additional_desc
,
13512 { "Additional Description",
13513 "ff.fms.create_pi.err.additional_desc",
13514 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13519 * 6.5.3.23. FMS Delete Program Invocation (Confirmed Service Id = 18)
13521 { &hf_ff_fms_del_pi
,
13522 { "FMS Delete Program Invocation", "ff.fms.del_pi",
13523 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13528 * 6.5.3.23.1. Request Message Parameters
13530 { &hf_ff_fms_del_pi_req
,
13531 { "FMS Delete Program Invocation Request", "ff.fms.del_pi.req",
13532 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13534 { &hf_ff_fms_del_pi_req_idx
,
13535 { "Index", "ff.fms.del_pi.req.idx",
13536 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13541 * 6.5.3.23.2. Response Message Parameters
13543 { &hf_ff_fms_del_pi_rsp
,
13544 { "FMS Delete Program Invocation Response", "ff.fms.del_pi.rsp",
13545 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13550 * 6.5.3.23.3. Error Message Parameters
13552 { &hf_ff_fms_del_pi_err
,
13553 { "FMS Delete Program Invocation Error", "ff.fms.del_pi.err",
13554 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13556 { &hf_ff_fms_del_pi_err_err_class
,
13557 { "Error Class", "ff.fms.del_pi.err.err_class",
13558 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13560 { &hf_ff_fms_del_pi_err_err_code
,
13561 { "Error Code", "ff.fms.del_pi.err.err_code",
13562 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13564 { &hf_ff_fms_del_pi_err_additional_code
,
13565 { "Additional Code",
13566 "ff.fms.del_pi.err.additional_code",
13567 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13569 { &hf_ff_fms_del_pi_err_additional_desc
,
13570 { "Additional Description",
13571 "ff.fms.del_pi.err.additional_desc",
13572 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13577 * 6.5.3.24. FMS Start (Confirmed Service Id = 19)
13579 { &hf_ff_fms_start
,
13580 { "FMS Start", "ff.fms.start",
13581 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13586 * 6.5.3.24.1. Request Message Parameters
13588 { &hf_ff_fms_start_req
,
13589 { "FMS Start Request", "ff.fms.start.req",
13590 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13592 { &hf_ff_fms_start_req_idx
,
13593 { "Index", "ff.fms.start.req.idx",
13594 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13596 { &hf_ff_fms_start_req_execution_argument
,
13597 { "Execution Argument", "ff.fms.start.req.execution_argument",
13598 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13602 * 6.5.3.24.2. Response Message Parameters
13604 { &hf_ff_fms_start_rsp
,
13605 { "FMS Start Response", "ff.fms.start.rsp",
13606 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13611 * 6.5.3.24.3. PI Error Message Parameters
13613 { &hf_ff_fms_start_err
,
13614 { "FMS Start Error", "ff.fms.start.err",
13615 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13617 { &hf_ff_fms_start_err_pi_state
,
13618 { "Pi State", "ff.fms.start.err.pi_state",
13619 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13621 { &hf_ff_fms_start_err_err_class
,
13622 { "Error Class", "ff.fms.start.err.err_class",
13623 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13625 { &hf_ff_fms_start_err_err_code
,
13626 { "Error Code", "ff.fms.start.err.err_code",
13627 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13629 { &hf_ff_fms_start_err_additional_code
,
13630 { "Additional Code", "ff.fms.start.err.additional_code",
13631 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13633 { &hf_ff_fms_start_err_additional_desc
,
13634 { "Additional Description", "ff.fms.start.err.additional_desc",
13635 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13640 * 6.5.3.25. FMS Stop (Confirmed Service Id = 20)
13643 { "FMS Stop", "ff.fms.stop",
13644 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13649 * 6.5.3.25.1. Request Message Parameters
13651 { &hf_ff_fms_stop_req
,
13652 { "FMS Stop Request", "ff.fms.stop.req",
13653 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13655 { &hf_ff_fms_stop_req_idx
,
13656 { "Index", "ff.fms.stop.req.idx",
13657 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13662 * 6.5.3.25.2. Response Message Parameters
13664 { &hf_ff_fms_stop_rsp
,
13665 { "FMS Stop Response", "ff.fms.stop.rsp",
13666 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13671 * 6.5.3.25.3. Error Message Parameters
13673 { &hf_ff_fms_stop_err
,
13674 { "FMS Stop Error", "ff.fms.stop.err",
13675 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13677 { &hf_ff_fms_stop_err_pi_state
,
13678 { "Pi State", "ff.fms.stop.err.pi_state",
13679 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13681 { &hf_ff_fms_stop_err_err_class
,
13682 { "Error Class", "ff.fms.stop.err.err_class",
13683 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13685 { &hf_ff_fms_stop_err_err_code
,
13686 { "Error Code", "ff.fms.stop.err.err_code",
13687 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13689 { &hf_ff_fms_stop_err_additional_code
,
13690 { "Additional Code", "ff.fms.stop.err.additional_code",
13691 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13693 { &hf_ff_fms_stop_err_additional_desc
,
13694 { "Additional Description", "ff.fms.stop.err.additional_desc",
13695 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13700 * 6.5.3.26. FMS Resume (Confirmed Service Id = 21)
13702 { &hf_ff_fms_resume
,
13703 { "FMS Resume", "ff.fms.resume",
13704 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13709 * 6.5.3.26.1. Request Message Parameters
13711 { &hf_ff_fms_resume_req
,
13712 { "FMS Resume Request", "ff.fms.resume.req",
13713 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13715 { &hf_ff_fms_resume_req_idx
,
13716 { "Index", "ff.fms.resume.req.idx",
13717 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13719 { &hf_ff_fms_resume_req_execution_argument
,
13720 { "Execution Argument", "ff.fms.resume.req.execution_argument",
13721 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13725 * 6.5.3.26.2. Response Message Parameters
13727 { &hf_ff_fms_resume_rsp
,
13728 { "FMS Resume Response", "ff.fms.resume.rsp",
13729 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13734 * 6.5.3.26.3. Error Message Parameters
13736 { &hf_ff_fms_resume_err
,
13737 { "FMS Resume Error", "ff.fms.resume.err",
13738 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13740 { &hf_ff_fms_resume_err_pi_state
,
13741 { "Pi State", "ff.fms.resume.err.pi_state",
13742 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13744 { &hf_ff_fms_resume_err_err_class
,
13745 { "Error Class", "ff.fms.resume.err.err_class",
13746 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13748 { &hf_ff_fms_resume_err_err_code
,
13749 { "Error Code", "ff.fms.resume.err.err_code",
13750 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13752 { &hf_ff_fms_resume_err_additional_code
,
13753 { "Additional Code", "ff.fms.resume.err.additional_code",
13754 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13756 { &hf_ff_fms_resume_err_additional_desc
,
13757 { "Additional Description", "ff.fms.resume.err.additional_desc",
13758 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13763 * 6.5.3.27. FMS Reset (Confirmed Service Id = 22)
13765 { &hf_ff_fms_reset
,
13766 { "FMS Reset", "ff.fms.reset",
13767 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13772 * 6.5.3.27.1. Request Message Parameters
13774 { &hf_ff_fms_reset_req
,
13775 { "FMS Reset Request", "ff.fms.reset.req",
13776 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13778 { &hf_ff_fms_reset_req_idx
,
13779 { "Index", "ff.fms.reset.req.idx",
13780 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13785 * 6.5.3.27.2. Response Message Parameters
13787 { &hf_ff_fms_reset_rsp
,
13788 { "FMS Reset Response", "ff.fms.reset.rsp",
13789 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13794 * 6.5.3.27.3. Error Message Parameters
13796 { &hf_ff_fms_reset_err
,
13797 { "FMS Reset Error", "ff.fms.reset.err",
13798 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13800 { &hf_ff_fms_reset_err_pi_state
,
13801 { "Pi State", "ff.fms.reset.err.pi_state",
13802 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13804 { &hf_ff_fms_reset_err_err_class
,
13805 { "Error Class", "ff.fms.reset.err.err_class",
13806 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13808 { &hf_ff_fms_reset_err_err_code
,
13809 { "Error Code", "ff.fms.reset.err.err_code",
13810 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13812 { &hf_ff_fms_reset_err_additional_code
,
13813 { "Additional Code", "ff.fms.reset.err.additional_code",
13814 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13816 { &hf_ff_fms_reset_err_additional_desc
,
13817 { "Additional Description", "ff.fms.reset.err.additional_desc",
13818 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13823 * 6.5.3.28. FMS Kill (Confirmed Service Id = 23)
13826 { "FMS Kill", "ff.fms.kill",
13827 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13832 * 6.5.3.28.1. Request Message Parameters
13834 { &hf_ff_fms_kill_req
,
13835 { "FMS Kill Request", "ff.fms.kill.req",
13836 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13841 * 6.5.3.28.2. Response Message Parameters
13843 { &hf_ff_fms_kill_rsp
,
13844 { "FMS Kill Response", "ff.fms.kill.rsp",
13845 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13850 * 6.5.3.28.3. Error Message Parameters
13852 { &hf_ff_fms_kill_err
,
13853 { "FMS Kill Error", "ff.fms.kill.err",
13854 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13856 { &hf_ff_fms_kill_req_idx
,
13857 { "Index", "ff.fms.kill.req.idx",
13858 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13860 { &hf_ff_fms_kill_err_err_class
,
13861 { "Error Class", "ff.fms.kill.err.err_class",
13862 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13864 { &hf_ff_fms_kill_err_err_code
,
13865 { "Error Code", "ff.fms.kill.err.err_code",
13866 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13868 { &hf_ff_fms_kill_err_additional_code
,
13869 { "Additional Code", "ff.fms.kill.err.additional_code",
13870 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13872 { &hf_ff_fms_kill_err_additional_desc
,
13873 { "Additional Description", "ff.fms.kill.err.additional_desc",
13874 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13879 * 6.5.3.29. FMS Read (Confirmed Service Id = 2)
13882 { "FMS Read", "ff.fms.read",
13883 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13888 * 6.5.3.29.1. Request Message Parameters
13890 { &hf_ff_fms_read_req
,
13891 { "FMS Read Request", "ff.fms.read.req",
13892 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13894 { &hf_ff_fms_read_req_idx
,
13895 { "Index", "ff.fms.read.req.idx",
13896 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13901 * 6.5.3.29.2. Response Message Parameters
13903 { &hf_ff_fms_read_rsp
,
13904 { "FMS Read Response", "ff.fms.read.rsp",
13905 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13910 * 6.5.3.29.3. Error Message Parameters
13912 { &hf_ff_fms_read_err
,
13913 { "FMS Read Error", "ff.fms.read.err",
13914 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13916 { &hf_ff_fms_read_err_err_class
,
13917 { "Error Class", "ff.fms.read.err.err_class",
13918 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13920 { &hf_ff_fms_read_err_err_code
,
13921 { "Error Code", "ff.fms.read.err.err_code",
13922 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13924 { &hf_ff_fms_read_err_additional_code
,
13925 { "Additional Code", "ff.fms.read.err.additional_code",
13926 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13928 { &hf_ff_fms_read_err_additional_desc
,
13929 { "Additional Description", "ff.fms.read.err.additional_desc",
13930 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13935 * 6.5.3.30. FMS Read with Subindex (Confirmed Service Id = 82)
13937 { &hf_ff_fms_read_with_subidx
,
13938 { "FMS Read with Subindex", "ff.fms.read_with_subidx",
13939 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13944 * 6.5.3.30.1. Request Message Parameters
13946 { &hf_ff_fms_read_with_subidx_req
,
13947 { "FMS Read with Subindex Request", "ff.fms.read_with_subidx.req",
13948 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13950 { &hf_ff_fms_read_with_subidx_req_idx
,
13951 { "Index", "ff.fms.read_with_subidx.req.idx",
13952 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13954 { &hf_ff_fms_read_with_subidx_req_subidx
,
13955 { "Index", "ff.fms.read_with_subidx.req.subidx",
13956 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13961 * 6.5.3.30.2. Response Message Parameters
13963 { &hf_ff_fms_read_with_subidx_rsp
,
13964 { "FMS Read with Subindex Response", "ff.fms.read_with_subidx.rsp",
13965 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13970 * 6.5.3.30.3. Error Message Parameters
13972 { &hf_ff_fms_read_with_subidx_err
,
13973 { "FMS Read with Subindex Error", "ff.fms.read_with_subidx.err",
13974 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13976 { &hf_ff_fms_read_with_subidx_err_err_class
,
13977 { "Error Class", "ff.fms.read_with_subidx.err.err_class",
13978 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
13980 { &hf_ff_fms_read_with_subidx_err_err_code
,
13981 { "Error Code", "ff.fms.read_with_subidx.err.err_code",
13982 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13984 { &hf_ff_fms_read_with_subidx_err_additional_code
,
13985 { "Additional Code", "ff.fms.read_with_subidx.err.additional_code",
13986 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
13988 { &hf_ff_fms_read_with_subidx_err_additional_desc
,
13989 { "Additional Description",
13990 "ff.fms.read_with_subidx.err.additional_desc",
13991 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
13996 * 6.5.3.31. FMS Write (Confirmed Service Id = 3)
13998 { &hf_ff_fms_write
,
13999 { "FMS Write", "ff.fms.write",
14000 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14005 * 6.5.3.31.1. Request Message Parameters
14007 { &hf_ff_fms_write_req
,
14008 { "FMS Write Request", "ff.fms.write.req",
14009 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14011 { &hf_ff_fms_write_req_idx
,
14012 { "Index", "ff.fms.write.req.idx",
14013 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14018 * 6.5.3.31.2. Response Message Parameters
14020 { &hf_ff_fms_write_rsp
,
14021 { "FMS Write Response", "ff.fms.write.rsp",
14022 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14027 * 6.5.3.31.3. Error Message Parameters
14029 { &hf_ff_fms_write_err
,
14030 { "FMS Write Error", "ff.fms.write.err",
14031 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14033 { &hf_ff_fms_write_err_err_class
,
14034 { "Error Class", "ff.fms.write.err.err_class",
14035 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14037 { &hf_ff_fms_write_err_err_code
,
14038 { "Error Code", "ff.fms.write.err.err_code",
14039 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14041 { &hf_ff_fms_write_err_additional_code
,
14042 { "Additional Code", "ff.fms.write.err.additional_code",
14043 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14045 { &hf_ff_fms_write_err_additional_desc
,
14046 { "Additional Description", "ff.fms.write.err.additional_desc",
14047 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14052 * 6.5.3.32. FMS Write with Subindex (Confirmed Service Id = 83)
14054 { &hf_ff_fms_write_with_subidx
,
14055 { "FMS Write with Subindex", "ff.fms.write_with_subidx",
14056 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14061 * 6.5.3.32.1. Request Message Parameters
14063 { &hf_ff_fms_write_with_subidx_req
,
14064 { "FMS Write with Subindex Request", "ff.fms.write_with_subidx.req",
14065 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14067 { &hf_ff_fms_write_with_subidx_req_idx
,
14068 { "Index", "ff.fms.write_with_subidx.req.idx",
14069 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14071 { &hf_ff_fms_write_with_subidx_req_subidx
,
14072 { "Index", "ff.fms.write_with_subidx.req.subidx",
14073 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14078 * 6.5.3.32.2. Response Message Parameters
14080 { &hf_ff_fms_write_with_subidx_rsp
,
14081 { "FMS Write with Subindex Response",
14082 "ff.fms.write_with_subidx.rsp",
14083 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14088 * 6.5.3.32.3. Error Message Parameters
14090 { &hf_ff_fms_write_with_subidx_err
,
14091 { "FMS Write with Subindex Error", "ff.fms.write_with_subidx.err",
14092 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14094 { &hf_ff_fms_write_with_subidx_err_err_class
,
14095 { "Error Class", "ff.fms.write_with_subidx.err.err_class",
14096 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14098 { &hf_ff_fms_write_with_subidx_err_err_code
,
14099 { "Error Code", "ff.fms.write_with_subidx.err.err_code",
14100 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14102 { &hf_ff_fms_write_with_subidx_err_additional_code
,
14103 { "Additional Code", "ff.fms.write_with_subidx.err.additional_code",
14104 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14106 { &hf_ff_fms_write_with_subidx_err_additional_desc
,
14107 { "Additional Description",
14108 "ff.fms.write_with_subidx.err.additional_desc",
14109 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14114 * 6.5.3.33. FMS Define Variable List (Confirmed Service Id = 7)
14116 { &hf_ff_fms_def_variable_list
,
14117 { "FMS Define Variable List", "ff.fms.def_variable_list",
14118 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14123 * 6.5.3.33.1. Request Message Parameters
14125 { &hf_ff_fms_def_variable_list_req
,
14126 { "FMS Define Variable List Request",
14127 "ff.fms.def_variable_list.req",
14128 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14130 { &hf_ff_fms_def_variable_list_req_num_of_idxes
,
14131 { "Number of Indexes", "ff.fms.def_variable_list.req.num_of_idxes",
14132 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14134 { &hf_ff_fms_def_variable_list_req_idx
,
14135 { "Index", "ff.fms.def_variable_list.req.idx",
14136 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14141 * 6.5.3.33.2. Response Message Parameters
14143 { &hf_ff_fms_def_variable_list_rsp
,
14144 { "FMS Define Variable List Response",
14145 "ff.fms.def_variable_list.rsp",
14146 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14148 { &hf_ff_fms_def_variable_list_rsp_idx
,
14149 { "Index", "ff.fms.def_variable_list.rsp.idx",
14150 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14155 * 6.5.3.33.3. Error Message Parameters
14157 { &hf_ff_fms_def_variable_list_err
,
14158 { "FMS Define Variable List Error", "ff.fms.def_variable_list.err",
14159 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14161 { &hf_ff_fms_def_variable_list_err_err_class
,
14162 { "Error Class", "ff.fms.def_variable_list.err.err_class",
14163 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14165 { &hf_ff_fms_def_variable_list_err_err_code
,
14166 { "Error Code", "ff.fms.def_variable_list.err.err_code",
14167 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14169 { &hf_ff_fms_def_variable_list_err_additional_code
,
14170 { "Additional Code", "ff.fms.def_variable_list.err.additional_code",
14171 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14173 { &hf_ff_fms_def_variable_list_err_additional_desc
,
14174 { "Additional Description",
14175 "ff.fms.def_variable_list.err.additional_desc",
14176 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14181 * 6.5.3.34. FMS Delete Variable List (Confirmed Service Id = 8)
14183 { &hf_ff_fms_del_variable_list
,
14184 { "FMS Delete Variable List", "ff.fms.del_variable_list",
14185 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14190 * 6.5.3.34.1. Request Message Parameters
14192 { &hf_ff_fms_del_variable_list_req
,
14193 { "FMS Delete Variable List Request",
14194 "ff.fms.del_variable_list.req",
14195 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14197 { &hf_ff_fms_del_variable_list_req_idx
,
14198 { "Index", "ff.fms.del_variable_list.req.idx",
14199 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14204 * 6.5.3.34.2. Response Message Parameters
14206 { &hf_ff_fms_del_variable_list_rsp
,
14207 { "FMS Delete Variable List Response",
14208 "ff.fms.del_variable_list.rsp",
14209 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14214 * 6.5.3.34.3. Error Message Parameters
14216 { &hf_ff_fms_del_variable_list_err
,
14217 { "FMS Delete Variable List Error", "ff.fms.del_variable_list.err",
14218 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14220 { &hf_ff_fms_del_variable_list_err_err_class
,
14221 { "Error Class", "ff.fms.del_variable_list.err.err_class",
14222 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14224 { &hf_ff_fms_del_variable_list_err_err_code
,
14225 { "Error Code", "ff.fms.del_variable_list.err.err_code",
14226 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14228 { &hf_ff_fms_del_variable_list_err_additional_code
,
14229 { "Additional Code", "ff.fms.del_variable_list.err.additional_code",
14230 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14232 { &hf_ff_fms_del_variable_list_err_additional_desc
,
14233 { "Additional Description",
14234 "ff.fms.del_variable_list.err.additional_desc",
14235 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14240 * 6.5.3.35. FMS Information Report (Unconfirmed Service Id = 0)
14242 { &hf_ff_fms_info_report
,
14243 { "FMS Information Report", "ff.fms.info_report",
14244 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14249 * 6.5.3.35.1. Request Message Parameters
14251 { &hf_ff_fms_info_report_req
,
14252 { "FMS Information Report Request", "ff.fms.info_report.req",
14253 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14255 { &hf_ff_fms_info_report_req_idx
,
14256 { "Index", "ff.fms.info_report.req.idx",
14257 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14262 * 6.5.3.36. FMS Information Report with Subindex
14263 * (Unconfirmed Service Id = 16)
14265 { &hf_ff_fms_info_report_with_subidx
,
14266 { "FMS Information Report with Subindex",
14267 "ff.fms.info_report_with_subidx",
14268 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14273 * 6.5.3.36.1. Request Message Parameters
14275 { &hf_ff_fms_info_report_with_subidx_req
,
14276 { "FMS Information Report with Subindex Request",
14277 "ff.fms.info_report_with_subidx.req",
14278 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14280 { &hf_ff_fms_info_report_with_subidx_req_idx
,
14281 { "Index", "ff.fms.info_report_with_subidx.req.idx",
14282 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14284 { &hf_ff_fms_info_report_with_subidx_req_subidx
,
14285 { "Subindex", "ff.fms.info_report_with_subidx.req.subidx",
14286 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14291 * 6.5.3.37. FMS Information Report On Change
14292 * (Unconfirmed Service Id = 17)
14294 { &hf_ff_fms_info_report_on_change
,
14295 { "FMS Information Report On Change with Subindex",
14296 "ff.fms.info_report_on_change",
14297 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14302 * 6.5.3.37.1. Request Message Parameters
14304 { &hf_ff_fms_info_report_on_change_req
,
14305 { "FMS Information Report On Change with Subindex Request",
14306 "ff.fms.info_report_on_change.req",
14307 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14309 { &hf_ff_fms_info_report_on_change_req_idx
,
14310 { "Index", "ff.fms.info_report_on_change.req.idx",
14311 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14316 * 6.5.3.38. FMS Information Report On Change with Subindex
14317 * (Unconfirmed Service Id = 18)
14319 { &hf_ff_fms_info_report_on_change_with_subidx
,
14320 { "FMS Information Report On Change",
14321 "ff.fms.info_report_on_change_with_subidx",
14322 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14327 * 6.5.3.38.1. Request Message Parameters
14329 { &hf_ff_fms_info_report_on_change_with_subidx_req
,
14330 { "FMS Information Report On Change Request",
14331 "ff.fms.info_report_on_change_with_subidx.req",
14332 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14334 { &hf_ff_fms_info_report_on_change_with_subidx_req_idx
,
14335 { "Index", "ff.fms.info_report_on_change_with_subidx.req.idx",
14336 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14338 { &hf_ff_fms_info_report_on_change_with_subidx_req_subidx
,
14339 { "Subindex", "ff.fms.info_report_on_change_with_subidx.req.subidx",
14340 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14345 * 6.5.3.39. FMS Event Notification (Unconfirmed Service Id = 2)
14347 { &hf_ff_fms_ev_notification
,
14348 { "FMS Event Notification", "ff.fms.ev_notification",
14349 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14354 * 6.5.3.39.1. Request Message Parameters
14356 { &hf_ff_fms_ev_notification_req
,
14357 { "FMS Event Notification Request", "ff.fms.ev_notification.req",
14358 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14360 { &hf_ff_fms_ev_notification_req_idx
,
14361 { "Index", "ff.fms.ev_notification.req.idx",
14362 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14364 { &hf_ff_fms_ev_notification_req_ev_num
,
14365 { "Event Number", "ff.fms.ev_notification.req.ev_num",
14366 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14371 * 6.5.3.40. FMS Alter Event Condition Monitoring
14372 * (Confirmed Service Id = 24)
14374 { &hf_ff_fms_alter_ev_condition_monitoring
,
14375 { "FMS Alter Event Condition Monitoring",
14376 "ff.fms.alter_ev_condition_monitoring",
14377 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14382 * 6.5.3.40.1. Request Message Parameters
14384 { &hf_ff_fms_alter_ev_condition_monitoring_req
,
14385 { "FMS Alter Event Condition Monitoring Request",
14386 "ff.fms.alter_ev_condition_monitoring.req",
14387 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14389 { &hf_ff_fms_alter_ev_condition_monitoring_req_idx
,
14390 { "Index", "ff.fms.alter_ev_condition_monitoring.req.idx",
14391 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14393 { &hf_ff_fms_alter_ev_condition_monitoring_req_enabled
,
14394 { "Enabled", "ff.fms.alter_ev_condition_monitoring.req.enabled",
14395 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14400 * 6.5.3.40.2. Response Message Parameters
14402 { &hf_ff_fms_alter_ev_condition_monitoring_rsp
,
14403 { "FMS Alter Event Condition Monitoring Response",
14404 "ff.fms.alter_ev_condition_monitoring.rsp",
14405 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14410 * 6.5.3.40.3. Error Message Parameters
14412 { &hf_ff_fms_alter_ev_condition_monitoring_err
,
14413 { "FMS Alter Event Condition Monitoring Error",
14414 "ff.fms.alter_ev_condition_monitoring.err",
14415 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14417 { &hf_ff_fms_alter_ev_condition_monitoring_err_err_class
,
14419 "ff.fms.alter_ev_condition_monitoring.err.err_class",
14420 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14422 { &hf_ff_fms_alter_ev_condition_monitoring_err_err_code
,
14423 { "Error Code", "ff.fms.alter_ev_condition_monitoring.err.err_code",
14424 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14426 { &hf_ff_fms_alter_ev_condition_monitoring_err_additional_code
,
14427 { "Additional Code",
14428 "ff.fms.alter_ev_condition_monitoring.err.additional_code",
14429 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14431 { &hf_ff_fms_alter_ev_condition_monitoring_err_additional_desc
,
14432 { "Additional Description",
14433 "ff.fms.alter_ev_condition_monitoring.err.additional_desc",
14434 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14439 * 6.5.3.41. FMS Acknowledge Event Notification
14440 * (Confirmed Service Id = 25)
14442 { &hf_ff_fms_ack_ev_notification
,
14443 { "FMS Acknowledge Event Notification",
14444 "ff.fms.ack_ev_notification",
14445 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14450 * 6.5.3.41.1. Request Message Parameters
14452 { &hf_ff_fms_ack_ev_notification_req
,
14453 { "FMS Acknowledge Event Notification Request",
14454 "ff.fms.ack_ev_notification.req",
14455 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14457 { &hf_ff_fms_ack_ev_notification_req_idx
,
14458 { "Index", "ff.fms.ack_ev_notification.req.idx",
14459 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14461 { &hf_ff_fms_ack_ev_notification_req_ev_num
,
14462 { "Event Number", "ff.fms.ack_ev_notification.req.ev_num",
14463 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14468 * 6.5.3.41.2. Response Message Parameters
14470 { &hf_ff_fms_ack_ev_notification_rsp
,
14471 { "FMS Acknowledge Event Notification Response",
14472 "ff.fms.ack_ev_notification.rsp",
14473 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14478 * 6.5.3.41.3. Error Message Parameters
14480 { &hf_ff_fms_ack_ev_notification_err
,
14481 { "FMS Acknowledge Event Notification Error",
14482 "ff.fms.ack_ev_notification.err",
14483 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14485 { &hf_ff_fms_ack_ev_notification_err_err_class
,
14486 { "Error Class", "ff.fms.ack_ev_notification.err.err_class",
14487 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14489 { &hf_ff_fms_ack_ev_notification_err_err_code
,
14490 { "Error Code", "ff.fms.ack_ev_notification.err.err_code",
14491 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14493 { &hf_ff_fms_ack_ev_notification_err_additional_code
,
14494 { "Additional Code",
14495 "ff.fms.ack_ev_notification.err.additional_code",
14496 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14498 { &hf_ff_fms_ack_ev_notification_err_additional_desc
,
14499 { "Additional Description",
14500 "ff.fms.ack_ev_notification.err.additional_desc",
14501 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14506 * 6.5.4. LAN Redundancy Services
14509 { "LAN Redundancy Service", "ff.lr",
14510 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14515 * 6.5.4.1. LAN Redundancy Get Information (Confirmed Service Id = 1)
14517 { &hf_ff_lr_get_info
,
14518 { "LAN Redundancy Get Information",
14520 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14525 * 6.5.4.1.1. Request Message Parameters
14527 { &hf_ff_lr_get_info_req
,
14528 { "LAN Redundancy Get Information Request",
14529 "ff.lr.get_info.req",
14530 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14535 * 6.5.4.1.2. Response Message Parameters
14537 { &hf_ff_lr_get_info_rsp
,
14538 { "LAN Redundancy Get Information Response",
14539 "ff.lr.get_info.rsp",
14540 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14542 { &hf_ff_lr_get_info_rsp_lr_attrs_ver
,
14543 { "LAN Redundancy Attributes Version",
14544 "ff.lr.get_info.rsp.lr_attrs_ver",
14545 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14547 { &hf_ff_lr_get_info_rsp_lr_max_msg_num_diff
,
14548 { "Max Message Number Difference",
14549 "ff.lr.get_info.rsp.max_msg_num_diff",
14550 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14552 { &hf_ff_lr_get_info_rsp_reserved
,
14554 "ff.lr.get_info.rsp.reserved",
14555 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14557 { &hf_ff_lr_get_info_rsp_diagnostic_msg_intvl
,
14558 { "Diagnostic Message Interval",
14559 "ff.lr.get_info.rsp.diagnostic_msg_intvl",
14560 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14562 { &hf_ff_lr_get_info_rsp_aging_time
,
14564 "ff.lr.get_info.rsp.aging_time",
14565 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14567 { &hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_send_addr
,
14568 { "Diagnostic Message Interface A Send Address",
14569 "ff.lr.get_info.rsp.diagnostic_msg_if_a_send_addr",
14570 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14572 { &hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_recv_addr
,
14573 { "Diagnostic Message Interface A Receive Address",
14574 "ff.lr.get_info.rsp.diagnostic_msg_if_a_recv_addr",
14575 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14577 { &hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_send_addr
,
14578 { "Diagnostic Message Interface B Send Address",
14579 "ff.lr.get_info.rsp.diagnostic_msg_if_b_send_addr",
14580 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14582 { &hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_recv_addr
,
14583 { "Diagnostic Message Interface B Receive Address",
14584 "ff.lr.get_info.rsp.diagnostic_msg_if_b_recv_addr",
14585 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14587 { &hf_ff_lr_get_info_rsp_lr_flags_reserved
,
14589 "ff.lr.get_info.rsp.lr_flags.reserved",
14590 FT_UINT8
, BASE_HEX
, NULL
, 0xE0, NULL
, HFILL
} },
14592 { &hf_ff_lr_get_info_rsp_lr_flags_load_balance
,
14593 { "Load Balancing",
14594 "ff.lr.get_info.rsp.lr_flags.load_balance",
14595 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x10, NULL
, HFILL
} },
14597 { &hf_ff_lr_get_info_rsp_lr_flags_diag
,
14598 { "Diagnosis Using Own Messages",
14599 "ff.lr.get_info.rsp.lr_flags.diag",
14600 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x08, NULL
, HFILL
} },
14602 { &hf_ff_lr_get_info_rsp_lr_flags_multi_recv
,
14603 { "Single Multicast Message Reception Interface",
14604 "ff.lr.get_info.rsp.lr_flags.multi_recv",
14605 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x04, NULL
, HFILL
} },
14607 { &hf_ff_lr_get_info_rsp_lr_flags_cross_cable
,
14608 { "Crossed Cable Detection",
14609 "ff.lr.get_info.rsp.lr_flags.cross_cable",
14610 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
} },
14612 { &hf_ff_lr_get_info_rsp_lr_flags_multi_trans
,
14613 { "Single Multicast Message Transmission Interface",
14614 "ff.lr.get_info.rsp.lr_flags.multi_trans",
14615 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
} },
14617 { &hf_ff_lr_get_info_rsp_lr_flags
,
14618 { "LAN Redundancy Flags",
14619 "ff.lr.get_info.rsp.lr_flags",
14620 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
14625 * 6.5.4.1.3. Error Message Parameters
14627 { &hf_ff_lr_get_info_err
,
14628 { "LAN Redundancy Get Information Error",
14629 "ff.lr.get_info.err",
14630 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14632 { &hf_ff_lr_get_info_err_err_class
,
14633 { "Error Class", "ff.lr.get_info.err.err_class",
14634 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14636 { &hf_ff_lr_get_info_err_err_code
,
14637 { "Error Code", "ff.lr.get_info.err.err_code",
14638 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14640 { &hf_ff_lr_get_info_err_additional_code
,
14641 { "Additional Code",
14642 "ff.lr.get_info.err.additional_code",
14643 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14645 { &hf_ff_lr_get_info_err_additional_desc
,
14646 { "Additional Description",
14647 "ff.lr.get_info.err.additional_desc",
14648 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14653 * 6.5.4.2. LAN Redundancy Put Information (Confirmed Service Id = 2)
14655 { &hf_ff_lr_put_info
,
14656 { "LAN Redundancy Put Information", "ff.lr.put_info",
14657 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14662 * 6.5.4.2.1. Request Message Parameters
14664 { &hf_ff_lr_put_info_req
,
14665 { "LAN Redundancy Put Information Request", "ff.lr.put_info.req",
14666 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14668 { &hf_ff_lr_put_info_req_lr_attrs_ver
,
14669 { "LAN Redundancy Attributes Version",
14670 "ff.lr.put_info.req.lr_attrs_ver",
14671 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14673 { &hf_ff_lr_put_info_req_lr_max_msg_num_diff
,
14674 { "Max Message Number Difference",
14675 "ff.lr.put_info.req.max_msg_num_diff",
14676 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14678 { &hf_ff_lr_put_info_req_reserved
,
14680 "ff.lr.put_info.req.reserved",
14681 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14683 { &hf_ff_lr_put_info_req_diagnostic_msg_intvl
,
14684 { "Diagnostic Message Interval",
14685 "ff.lr.put_info.req.diagnostic_msg_intvl",
14686 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14688 { &hf_ff_lr_put_info_req_aging_time
,
14690 "ff.lr.put_info.req.aging_time",
14691 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14693 { &hf_ff_lr_put_info_req_diagnostic_msg_if_a_send_addr
,
14694 { "Diagnostic Message Interface A Send Address",
14695 "ff.lr.put_info.req.diagnostic_msg_if_a_send_addr",
14696 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14698 { &hf_ff_lr_put_info_req_diagnostic_msg_if_a_recv_addr
,
14699 { "Diagnostic Message Interface A Receive Address",
14700 "ff.lr.put_info.req.diagnostic_msg_if_a_recv_addr",
14701 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14703 { &hf_ff_lr_put_info_req_diagnostic_msg_if_b_send_addr
,
14704 { "Diagnostic Message Interface B Send Address",
14705 "ff.lr.put_info.req.diagnostic_msg_if_b_send_addr",
14706 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14708 { &hf_ff_lr_put_info_req_diagnostic_msg_if_b_recv_addr
,
14709 { "Diagnostic Message Interface B Receive Address",
14710 "ff.lr.put_info.req.diagnostic_msg_if_b_recv_addr",
14711 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14713 { &hf_ff_lr_put_info_req_lr_flags_reserved
,
14715 "ff.lr.put_info.req.lr_flags.reserved",
14716 FT_UINT8
, BASE_HEX
, NULL
, 0xE0, NULL
, HFILL
} },
14718 { &hf_ff_lr_put_info_req_lr_flags_load_balance
,
14719 { "Load Balancing",
14720 "ff.lr.put_info.req.lr_flags.load_balance",
14721 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x10, NULL
, HFILL
} },
14723 { &hf_ff_lr_put_info_req_lr_flags_diag
,
14724 { "Diagnosis Using Own Messages",
14725 "ff.lr.put_info.req.lr_flags.diag",
14726 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x08, NULL
, HFILL
} },
14728 { &hf_ff_lr_put_info_req_lr_flags_multi_recv
,
14729 { "Single Multicast Message Reception Interface",
14730 "ff.lr.put_info.req.lr_flags.multi_recv",
14731 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x04, NULL
, HFILL
} },
14733 { &hf_ff_lr_put_info_req_lr_flags_cross_cable
,
14734 { "Crossed Cable Detection",
14735 "ff.lr.put_info.req.lr_flags.cross_cable",
14736 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
} },
14738 { &hf_ff_lr_put_info_req_lr_flags_multi_trans
,
14739 { "Single Multicast Message Transmission Interface",
14740 "ff.lr.put_info.req.lr_flags.multi_trans",
14741 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
} },
14743 { &hf_ff_lr_put_info_req_lr_flags
,
14744 { "LAN Redundancy Flags",
14745 "ff.lr.put_info.req.lr_flags",
14746 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
14750 * 6.5.4.2.2. Response Message Parameters
14752 { &hf_ff_lr_put_info_rsp
,
14753 { "LAN Redundancy Put Information Response",
14754 "ff.lr.put_info.rsp",
14755 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14757 { &hf_ff_lr_put_info_rsp_lr_attrs_ver
,
14758 { "LAN Redundancy Attributes Version",
14759 "ff.lr.put_info.rsp.lr_attrs_ver",
14760 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14762 { &hf_ff_lr_put_info_rsp_lr_max_msg_num_diff
,
14763 { "Max Message Number Difference",
14764 "ff.lr.put_info.rsp.max_msg_num_diff",
14765 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14767 { &hf_ff_lr_put_info_rsp_reserved
,
14769 "ff.lr.put_info.rsp.reserved",
14770 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14772 { &hf_ff_lr_put_info_rsp_diagnostic_msg_intvl
,
14773 { "Diagnostic Message Interval",
14774 "ff.lr.put_info.rsp.diagnostic_msg_intvl",
14775 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14777 { &hf_ff_lr_put_info_rsp_aging_time
,
14779 "ff.lr.put_info.rsp.aging_time",
14780 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14782 { &hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_send_addr
,
14783 { "Diagnostic Message Interface A Send Address",
14784 "ff.lr.put_info.rsp.diagnostic_msg_if_a_send_addr",
14785 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14787 { &hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_recv_addr
,
14788 { "Diagnostic Message Interface A Receive Address",
14789 "ff.lr.put_info.rsp.diagnostic_msg_if_a_recv_addr",
14790 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14792 { &hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_send_addr
,
14793 { "Diagnostic Message Interface B Send Address",
14794 "ff.lr.put_info.rsp.diagnostic_msg_if_b_send_addr",
14795 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14797 { &hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_recv_addr
,
14798 { "Diagnostic Message Interface B Receive Address",
14799 "ff.lr.put_info.rsp.diagnostic_msg_if_b_recv_addr",
14800 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14802 { &hf_ff_lr_put_info_rsp_lr_flags_reserved
,
14804 "ff.lr.put_info.rsp.lr_flags.reserved",
14805 FT_UINT8
, BASE_HEX
, NULL
, 0xE0, NULL
, HFILL
} },
14807 { &hf_ff_lr_put_info_rsp_lr_flags_load_balance
,
14808 { "Load Balancing",
14809 "ff.lr.put_info.rsp.lr_flags.load_balance",
14810 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x10, NULL
, HFILL
} },
14812 { &hf_ff_lr_put_info_rsp_lr_flags_diag
,
14813 { "Diagnosis Using Own Messages",
14814 "ff.lr.put_info.rsp.lr_flags.diag",
14815 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x08, NULL
, HFILL
} },
14817 { &hf_ff_lr_put_info_rsp_lr_flags_multi_recv
,
14818 { "Single Multicast Message Reception Interface",
14819 "ff.lr.put_info.rsp.lr_flags.multi_recv",
14820 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x04, NULL
, HFILL
} },
14822 { &hf_ff_lr_put_info_rsp_lr_flags_cross_cable
,
14823 { "Crossed Cable Detection",
14824 "ff.lr.put_info.rsp.lr_flags.cross_cable",
14825 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x02, NULL
, HFILL
} },
14827 { &hf_ff_lr_put_info_rsp_lr_flags_multi_trans
,
14828 { "Single Multicast Message Transmission Interface",
14829 "ff.lr.put_info.rsp.lr_flags.multi_trans",
14830 FT_BOOLEAN
, 8, TFS(&tfs_enabled_disabled
), 0x01, NULL
, HFILL
} },
14832 { &hf_ff_lr_put_info_rsp_lr_flags
,
14833 { "LAN Redundancy Flags",
14834 "ff.lr.put_info.rsp.lr_flags",
14835 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
14839 * 6.5.4.2.3. Error Message Parameters
14841 { &hf_ff_lr_put_info_err
,
14842 { "LAN Redundancy Put Information Error", "ff.lr.put_info.err",
14843 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14845 { &hf_ff_lr_put_info_err_err_class
,
14846 { "Error Class", "ff.lr.put_info.err.err_class",
14847 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14849 { &hf_ff_lr_put_info_err_err_code
,
14850 { "Error Code", "ff.lr.put_info.err.err_code",
14851 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14853 { &hf_ff_lr_put_info_err_additional_code
,
14854 { "Additional Code",
14855 "ff.lr.put_info.err.additional_code",
14856 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14858 { &hf_ff_lr_put_info_err_additional_desc
,
14859 { "Additional Description",
14860 "ff.lr.put_info.err.additional_desc",
14861 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14866 * 6.5.4.3. LAN Redundancy Get Statistics (Confirmed Service Id = 3)
14868 { &hf_ff_lr_get_statistics
,
14869 { "LAN Redundancy Get Statistics",
14870 "ff.lr.get_statistics",
14871 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14876 * 6.5.4.3.1. Request Message Parameters
14878 { &hf_ff_lr_get_statistics_req
,
14879 { "LAN Redundancy Get Statistics Request",
14880 "ff.lr.get_statistics.req",
14881 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14886 * 6.5.4.3.2. Response Message Parameters
14888 { &hf_ff_lr_get_statistics_rsp
,
14889 { "LAN Redundancy Get Statistics Response",
14890 "ff.lr.get_statistics.rsp",
14891 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14893 { &hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_a
,
14894 { "Error Code", "ff.lr.get_statistics.rsp.num_diag_svr_ind_recv_a",
14895 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14897 { &hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_a
,
14898 { "Error Code", "ff.lr.get_statistics.rsp.num_diag_svr_ind_miss_a",
14899 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14901 { &hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_a
,
14903 "ff.lr.get_statistics.rsp.num_rem_dev_diag_recv_fault_a",
14904 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14906 { &hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_b
,
14907 { "Error Code", "ff.lr.get_statistics.rsp.num_diag_svr_ind_recv_b",
14908 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14910 { &hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_b
,
14911 { "Error Code", "ff.lr.get_statistics.rsp.num_diag_svr_ind_miss_b",
14912 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14914 { &hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_b
,
14916 "ff.lr.get_statistics.rsp.num_rem_dev_diag_recv_fault_b",
14917 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14919 { &hf_ff_lr_get_statistics_rsp_num_x_cable_stat
,
14920 { "Error Code", "ff.lr.get_statistics.rsp.num_x_cable_stat",
14921 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14923 { &hf_ff_lr_get_statistics_rsp_x_cable_stat
,
14924 { "Error Code", "ff.lr.get_statistics.rsp.x_cable_stat",
14925 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14930 * 6.5.4.3.3. Error Message Parameters
14932 { &hf_ff_lr_get_statistics_err
,
14933 { "LAN Redundancy Get Statistics Error",
14934 "ff.lr.get_statistics.err",
14935 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14937 { &hf_ff_lr_get_statistics_err_err_class
,
14938 { "Error Class", "ff.lr.get_statistics.err.err_class",
14939 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &names_err_class_ext
, 0x0, NULL
, HFILL
} },
14941 { &hf_ff_lr_get_statistics_err_err_code
,
14942 { "Error Code", "ff.lr.get_statistics.err.err_code",
14943 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14945 { &hf_ff_lr_get_statistics_err_additional_code
,
14946 { "Additional Code",
14947 "ff.lr.get_statistics.err.additional_code",
14948 FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14950 { &hf_ff_lr_get_statistics_err_additional_desc
,
14951 { "Additional Description",
14952 "ff.lr.get_statistics.err.additional_desc",
14953 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14958 * 6.5.4.4 Diagnostic Message (Unconfirmed Service Id = 1)
14960 { &hf_ff_lr_diagnostic_msg
,
14961 { "Diagnostic Message", "ff.lr.diagnostic_msg",
14962 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14967 * 6.5.4.4.1. Request Message Parameters
14969 { &hf_ff_lr_diagnostic_msg_req
,
14970 { "Diagnostic Message Request", "ff.lr.diagnostic_msg_req",
14971 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14973 { &hf_ff_lr_diagnostic_msg_req_dev_idx
,
14974 { "Device Index", "ff.lr.diagnostic_msg.req.dev_idx",
14975 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14977 { &hf_ff_lr_diagnostic_msg_req_num_of_network_ifs
,
14978 { "Number of Network Interfaces",
14979 "ff.lr.diagnostic_msg.req.num_of_network_ifs",
14980 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14982 { &hf_ff_lr_diagnostic_msg_req_transmission_if
,
14983 { "Transmission Interface",
14984 "ff.lr.diagnostic_msg.req.transmission_if",
14985 FT_UINT8
, BASE_DEC
, VALS(names_transmission_interface
), 0x0, NULL
, HFILL
} },
14987 { &hf_ff_lr_diagnostic_msg_req_diagnostic_msg_intvl
,
14988 { "Diagnostic Message Interval",
14989 "ff.lr.diagnostic_msg.req.diagnostic_msg_intvl",
14990 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
14992 { &hf_ff_lr_diagnostic_msg_req_pd_tag
,
14993 { "PD Tag", "ff.lr.diagnostic_msg.req.pd_tag",
14994 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
} },
14996 { &hf_ff_lr_diagnostic_msg_req_reserved
,
14997 { "Reserved", "ff.lr.diagnostic_msg.req.reserved",
14998 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15000 { &hf_ff_lr_diagnostic_msg_req_num_of_if_statuses
,
15001 { "Number of Interface Statuses",
15002 "ff.lr.diagnostic_msg.req.num_of_if_statuses",
15003 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15005 { &hf_ff_lr_diagnostic_msg_req_if_a_to_a_status
,
15006 { "Interface AtoA Status",
15007 "ff.lr.diagnostic_msg.req.if_a_to_a_status",
15008 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15010 { &hf_ff_lr_diagnostic_msg_req_if_b_to_a_status
,
15011 { "Interface BtoA Status",
15012 "ff.lr.diagnostic_msg.req.if_b_to_a_status",
15013 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15015 { &hf_ff_lr_diagnostic_msg_req_if_a_to_b_status
,
15016 { "Interface AtoB Status",
15017 "ff.lr.diagnostic_msg.req.if_a_to_b_status",
15018 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15020 { &hf_ff_lr_diagnostic_msg_req_if_b_to_b_status
,
15021 { "Interface BtoB Status",
15022 "ff.lr.diagnostic_msg.req.if_b_to_b_status",
15023 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
} },
15025 { &hf_ff_lr_diagnostic_msg_req_dup_detection_state_reserved
,
15026 { "Reserved", "ff.lr.diagnostic_msg.req.dup_detection_state.reserved",
15027 FT_UINT8
, BASE_HEX
, NULL
, 0xFC, NULL
, HFILL
} },
15029 { &hf_ff_lr_diagnostic_msg_req_dup_detection_state_pd_tag
,
15030 { "Duplicate PD Tag", "ff.lr.diagnostic_msg.req.dup_detection_state.pd_tag",
15031 FT_BOOLEAN
, 8, TFS(&tfs_detected_not_detected
), 0x02, NULL
, HFILL
} },
15033 { &hf_ff_lr_diagnostic_msg_req_dup_detection_state_device
,
15034 { "Duplicate Device Index", "ff.lr.diagnostic_msg.req.dup_detection_state.device",
15035 FT_BOOLEAN
, 8, TFS(&tfs_detected_not_detected
), 0x01, NULL
, HFILL
} },
15037 { &hf_ff_lr_diagnostic_msg_req_dup_detection_state
,
15038 { "Duplicate Detection State", "ff.lr.diagnostic_msg.req.dup_detection_state",
15039 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
} },
15045 static int *ett
[] = {
15047 &ett_ff_fda_msg_hdr
,
15048 &ett_ff_fda_msg_hdr_proto_and_type
,
15049 &ett_ff_fda_msg_hdr_opts
,
15050 &ett_ff_fda_msg_hdr_srv
,
15052 &ett_ff_fda_msg_trailer
,
15054 &ett_ff_fda_open_sess_req
,
15055 &ett_ff_fda_open_sess_rsp
,
15056 &ett_ff_fda_open_sess_err
,
15058 &ett_ff_fda_idle_req
,
15059 &ett_ff_fda_idle_rsp
,
15060 &ett_ff_fda_idle_err
,
15062 &ett_ff_sm_find_tag_query_req
,
15063 &ett_ff_sm_find_tag_reply_req
,
15064 &ett_ff_sm_find_tag_reply_req_dup_detection_state
,
15065 &ett_ff_sm_find_tag_reply_req_list_of_fda_addr_selectors
,
15069 &ett_ff_sm_id_rsp_smk_state
,
15070 &ett_ff_sm_id_rsp_dev_type
,
15071 &ett_ff_sm_id_rsp_dev_redundancy_state
,
15072 &ett_ff_sm_id_rsp_dup_detection_state
,
15073 &ett_ff_sm_id_rsp_entries_h1_live_list
,
15074 &ett_ff_sm_id_rsp_h1_live_list
,
15075 &ett_ff_sm_id_rsp_entries_node_addr
,
15076 &ett_ff_sm_id_rsp_h1_node_addr
,
15079 &ett_ff_sm_clear_addr_req
,
15080 &ett_ff_sm_clear_addr_rsp
,
15081 &ett_ff_sm_clear_addr_err
,
15083 &ett_ff_sm_set_assign_info_req
,
15084 &ett_ff_sm_set_assign_info_req_dev_redundancy_state
,
15085 &ett_ff_sm_set_assign_info_req_clear_dup_detection_state
,
15086 &ett_ff_sm_set_assign_info_rsp
,
15087 &ett_ff_sm_set_assign_info_err
,
15089 &ett_ff_sm_clear_assign_info_req
,
15090 &ett_ff_sm_clear_assign_info_rsp
,
15091 &ett_ff_sm_clear_assign_info_err
,
15093 &ett_ff_sm_dev_annunc_req
,
15094 &ett_ff_sm_dev_annunc_req_smk_state
,
15095 &ett_ff_sm_dev_annunc_req_dev_type
,
15096 &ett_ff_sm_dev_annunc_req_dev_redundancy_state
,
15097 &ett_ff_sm_dev_annunc_req_dup_detection_state
,
15098 &ett_ff_sm_dev_annunc_req_entries_h1_live_list
,
15099 &ett_ff_sm_dev_annunc_req_h1_live_list
,
15100 &ett_ff_sm_dev_annunc_req_entries_node_addr
,
15101 &ett_ff_sm_dev_annunc_req_h1_node_addr
,
15103 &ett_ff_fms_init_req
,
15104 &ett_ff_fms_init_rep
,
15105 &ett_ff_fms_init_err
,
15107 &ett_ff_fms_abort_req
,
15109 &ett_ff_fms_status_req
,
15110 &ett_ff_fms_status_rsp
,
15111 &ett_ff_fms_status_err
,
15113 &ett_ff_fms_unsolicited_status_req
,
15115 &ett_ff_fms_id_req
,
15116 &ett_ff_fms_id_rsp
,
15117 &ett_ff_fms_id_err
,
15119 &ett_ff_fms_get_od_req
,
15120 &ett_ff_fms_get_od_rsp
,
15121 &ett_ff_fms_get_od_err
,
15123 &ett_ff_fms_init_put_od_req
,
15124 &ett_ff_fms_init_put_od_rsp
,
15125 &ett_ff_fms_init_put_od_err
,
15127 &ett_ff_fms_put_od_req
,
15128 &ett_ff_fms_put_od_rsp
,
15129 &ett_ff_fms_put_od_err
,
15131 &ett_ff_fms_terminate_put_od_req
,
15132 &ett_ff_fms_terminate_put_od_rsp
,
15133 &ett_ff_fms_terminate_put_od_err
,
15135 &ett_ff_fms_gen_init_download_seq_req
,
15136 &ett_ff_fms_gen_init_download_seq_rep
,
15137 &ett_ff_fms_gen_init_download_seq_err
,
15139 &ett_ff_fms_gen_download_seg_req
,
15140 &ett_ff_fms_gen_download_seg_rsp
,
15141 &ett_ff_fms_gen_download_seg_err
,
15143 &ett_ff_fms_gen_terminate_download_seq_req
,
15144 &ett_ff_fms_gen_terminate_download_seq_rsp
,
15145 &ett_ff_fms_gen_terminate_download_seq_err
,
15147 &ett_ff_fms_init_download_seq_req
,
15148 &ett_ff_fms_init_download_seq_rsp
,
15149 &ett_ff_fms_init_download_seq_err
,
15151 &ett_ff_fms_download_seg_req
,
15152 &ett_ff_fms_download_seg_rsp
,
15153 &ett_ff_fms_download_seg_err
,
15155 &ett_ff_fms_terminate_download_seq_req
,
15156 &ett_ff_fms_terminate_download_seq_rsp
,
15157 &ett_ff_fms_terminate_download_seq_err
,
15159 &ett_ff_fms_init_upload_seq_req
,
15160 &ett_ff_fms_init_upload_seq_rsp
,
15161 &ett_ff_fms_init_upload_seq_err
,
15163 &ett_ff_fms_upload_seg_req
,
15164 &ett_ff_fms_upload_seg_rsp
,
15165 &ett_ff_fms_upload_seg_err
,
15167 &ett_ff_fms_terminate_upload_seq_req
,
15168 &ett_ff_fms_terminate_upload_seq_rsp
,
15169 &ett_ff_fms_terminate_upload_seq_err
,
15171 &ett_ff_fms_req_dom_download_req
,
15172 &ett_ff_fms_req_dom_download_rsp
,
15173 &ett_ff_fms_req_dom_download_err
,
15175 &ett_ff_fms_req_dom_upload_req
,
15176 &ett_ff_fms_req_dom_upload_rsp
,
15177 &ett_ff_fms_req_dom_upload_err
,
15179 &ett_ff_fms_create_pi_req
,
15180 &ett_ff_fms_create_pi_req_list_of_dom_idxes
,
15181 &ett_ff_fms_create_pi_rsp
,
15182 &ett_ff_fms_create_pi_err
,
15184 &ett_ff_fms_del_pi_req
,
15185 &ett_ff_fms_del_pi_rsp
,
15186 &ett_ff_fms_del_pi_err
,
15188 &ett_ff_fms_start_req
,
15189 &ett_ff_fms_start_rsp
,
15190 &ett_ff_fms_start_err
,
15192 &ett_ff_fms_stop_req
,
15193 &ett_ff_fms_stop_rsp
,
15194 &ett_ff_fms_stop_err
,
15196 &ett_ff_fms_resume_req
,
15197 &ett_ff_fms_resume_rsp
,
15198 &ett_ff_fms_resume_err
,
15200 &ett_ff_fms_reset_req
,
15201 &ett_ff_fms_reset_rsp
,
15202 &ett_ff_fms_reset_err
,
15204 &ett_ff_fms_kill_req
,
15205 &ett_ff_fms_kill_rsp
,
15206 &ett_ff_fms_kill_err
,
15208 &ett_ff_fms_read_req
,
15209 &ett_ff_fms_read_rsp
,
15210 &ett_ff_fms_read_err
,
15212 &ett_ff_fms_read_with_subidx_req
,
15213 &ett_ff_fms_read_with_subidx_rsp
,
15214 &ett_ff_fms_read_with_subidx_err
,
15216 &ett_ff_fms_write_req
,
15217 &ett_ff_fms_write_rsp
,
15218 &ett_ff_fms_write_err
,
15220 &ett_ff_fms_write_with_subidx_req
,
15221 &ett_ff_fms_write_with_subidx_rsp
,
15222 &ett_ff_fms_write_with_subidx_err
,
15224 &ett_ff_fms_def_variable_list_req
,
15225 &ett_ff_fms_def_variable_list_req_list_of_idxes
,
15226 &ett_ff_fms_def_variable_list_rsp
,
15227 &ett_ff_fms_def_variable_list_err
,
15229 &ett_ff_fms_del_variable_list_req
,
15230 &ett_ff_fms_del_variable_list_rsp
,
15231 &ett_ff_fms_del_variable_list_err
,
15233 &ett_ff_fms_info_report_req
,
15235 &ett_ff_fms_info_report_with_subidx_req
,
15237 &ett_ff_fms_info_report_on_change_req
,
15239 &ett_ff_fms_info_report_on_change_with_subidx_req
,
15241 &ett_ff_fms_ev_notification_req
,
15243 &ett_ff_fms_alter_ev_condition_monitoring_req
,
15244 &ett_ff_fms_alter_ev_condition_monitoring_rsp
,
15245 &ett_ff_fms_alter_ev_condition_monitoring_err
,
15247 &ett_ff_fms_ack_ev_notification_req
,
15248 &ett_ff_fms_ack_ev_notification_rsp
,
15249 &ett_ff_fms_ack_ev_notification_err
,
15251 &ett_ff_lr_get_info_req
,
15252 &ett_ff_lr_get_info_rsp
,
15253 &ett_ff_lr_get_info_rsp_lr_flags
,
15254 &ett_ff_lr_get_info_err
,
15256 &ett_ff_lr_put_info_req
,
15257 &ett_ff_lr_put_info_req_lr_flags
,
15258 &ett_ff_lr_put_info_rsp
,
15259 &ett_ff_lr_put_info_rsp_lr_flags
,
15260 &ett_ff_lr_put_info_err
,
15262 &ett_ff_lr_get_statistics_req
,
15263 &ett_ff_lr_get_statistics_rsp
,
15264 &ett_ff_lr_get_statistics_rsp_list_of_x_cable_stat
,
15265 &ett_ff_lr_get_statistics_err
,
15267 &ett_ff_lr_diagnostic_msg_req
,
15268 &ett_ff_lr_diagnostic_msg_req_dup_detection_stat
,
15269 &ett_ff_lr_diagnostic_msg_req_a_to_a_status
,
15270 &ett_ff_lr_diagnostic_msg_req_b_to_a_status
,
15271 &ett_ff_lr_diagnostic_msg_req_a_to_b_status
,
15272 &ett_ff_lr_diagnostic_msg_req_b_to_b_status
,
15275 proto_ff
= proto_register_protocol("FOUNDATION Fieldbus", "FF", "ff");
15276 proto_register_field_array(proto_ff
, hf
, array_length(hf
));
15277 proto_register_subtree_array(ett
, array_length(ett
));
15279 ff_udp_handle
= register_dissector("ff.udp", dissect_ff_udp
, proto_ff
);
15280 ff_tcp_handle
= register_dissector("ff.tcp", dissect_ff_tcp
, proto_ff
);
15286 proto_reg_handoff_ff(void)
15289 * 4.8. Using UDP and TCP
15295 * - Device Annunciation
15296 * - Client / Server
15297 * - Set/Clear Assignment Info and Clear Address
15300 * - LAN Redundancy Get and Put Information
15302 dissector_add_uint_range_with_preference("udp.port", UDP_PORT_FF_RANGE
, ff_udp_handle
);
15303 dissector_add_uint_with_preference("tcp.port", TCP_PORT_FF_FMS
, ff_tcp_handle
);
15307 * Editor modelines - https://www.wireshark.org/tools/modelines.html
15310 * c-basic-offset: 4
15312 * indent-tabs-mode: nil
15315 * vi: set shiftwidth=4 tabstop=8 expandtab:
15316 * :indentSize=4:tabSize=8:noTabs=true: