diff options
author | Bill Meier <wmeier@newsguy.com> | 2012-12-03 17:28:43 +0000 |
---|---|---|
committer | Bill Meier <wmeier@newsguy.com> | 2012-12-03 17:28:43 +0000 |
commit | 3c0d6b82609635ce23a8dfbbd873b02b8b658300 (patch) | |
tree | 4266f2e37eff6412ee2622c6c01ed40cd9e6735f /epan | |
parent | 52a4bd46440ef29c9fce8c7f6ad0d3fe77c1de78 (diff) |
General minor cleanup:
- create/use several extended value strings;
- remove unneeded #includes;
- remove unneeded code & variable initializers;
- convert "4 space tabs" to spaces;
- do some reformatting to use a consistent whitespace style.
svn path=/trunk/; revision=46347
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-ff.c | 24885 | ||||
-rw-r--r-- | epan/dissectors/packet-ff.h | 748 |
2 files changed, 12465 insertions, 13168 deletions
diff --git a/epan/dissectors/packet-ff.c b/epan/dissectors/packet-ff.c index 8c8f531434..0cd78ef053 100644 --- a/epan/dissectors/packet-ff.c +++ b/epan/dissectors/packet-ff.c @@ -30,32 +30,31 @@ /* * /etc/services * --------------------------------------------------------------------- - * ff-annunc 1089/tcp # FF Annunciation - * ff-annunc 1089/udp # FF Annunciation - * ff-fms 1090/tcp # FF Fieldbus Message Specification - * ff-fms 1090/udp # FF Fieldbus Message Specification - * ff-sm 1091/tcp # FF System Management - * ff-sm 1091/udp # FF System Management - * ff-lr-port 3622/tcp # FF LAN Redundancy Port - * ff-lr-port 3622/udp # FF LAN Redundancy Port + * ff-annunc 1089/tcp # FF Annunciation + * ff-annunc 1089/udp # FF Annunciation + * ff-fms 1090/tcp # FF Fieldbus Message Specification + * ff-fms 1090/udp # FF Fieldbus Message Specification + * ff-sm 1091/tcp # FF System Management + * ff-sm 1091/udp # FF System Management + * ff-lr-port 3622/tcp # FF LAN Redundancy Port + * ff-lr-port 3622/udp # FF LAN Redundancy Port * --------------------------------------------------------------------- */ #include "config.h" #include <glib.h> + #include <epan/packet.h> -#include <epan/conversation.h> -#include <epan/expert.h> #include "packet-ff.h" #include "packet-tcp.h" -static int proto_ff = -1; -static gint ett_ff = -1; +static int proto_ff = -1; +static gint ett_ff = -1; -static gboolean ff_desegment = TRUE; /* desegmentation of FF over TCP */ +static gboolean ff_desegment = TRUE; /* desegmentation of FF over TCP */ static dissector_handle_t ff_udp_handle; static dissector_handle_t ff_tcp_handle; @@ -65,188 +64,188 @@ static dissector_handle_t ff_tcp_handle; /* * 6.3. Message Header */ -static int hf_ff_fda_msg_hdr = -1; +static int hf_ff_fda_msg_hdr = -1; -static int hf_ff_fda_msg_hdr_ver = -1; -static int hf_ff_fda_msg_hdr_fda_addr = -1; -static int hf_ff_fda_msg_hdr_len = -1; +static int hf_ff_fda_msg_hdr_ver = -1; +static int hf_ff_fda_msg_hdr_fda_addr = -1; +static int hf_ff_fda_msg_hdr_len = -1; -static gint ett_ff_fda_msg_hdr = -1; -static gint ett_ff_fda_msg_hdr_proto_and_type = -1; -static gint ett_ff_fda_msg_hdr_opts = -1; -static gint ett_ff_fda_msg_hdr_srv = -1; +static gint ett_ff_fda_msg_hdr = -1; +static gint ett_ff_fda_msg_hdr_proto_and_type = -1; +static gint ett_ff_fda_msg_hdr_opts = -1; +static gint ett_ff_fda_msg_hdr_srv = -1; /* * 6.4. Message Trailer */ -static int hf_ff_fda_msg_trailer = -1; +static int hf_ff_fda_msg_trailer = -1; -static int hf_ff_fda_msg_trailer_msg_num = -1; -static int hf_ff_fda_msg_trailer_invoke_id = -1; -static int hf_ff_fda_msg_trailer_time_stamp = -1; -static int hf_ff_fda_msg_trailer_extended_control_field = -1; +static int hf_ff_fda_msg_trailer_msg_num = -1; +static int hf_ff_fda_msg_trailer_invoke_id = -1; +static int hf_ff_fda_msg_trailer_time_stamp = -1; +static int hf_ff_fda_msg_trailer_extended_control_field = -1; -static gint ett_ff_fda_msg_trailer = -1; +static gint ett_ff_fda_msg_trailer = -1; /* * 6.5.1 FDA Session Management Services */ -static int hf_ff_fda = -1; -static int hf_ff_hdr_srv_confirm_flag = -1; -static int hf_ff_hdr_srv_service_id = -1; -static int hf_ff_hdr_srv_fda_service_id_confirm = -1; -static int hf_ff_hdr_srv_fda_service_id_unconfirm = -1; -static int hf_ff_hdr_srv_sm_service_id_confirm = -1; -static int hf_ff_hdr_srv_sm_service_id_unconfirm = -1; -static int hf_ff_hdr_srv_fms_service_id_confirm = -1; -static int hf_ff_hdr_srv_fms_service_id_unconfirm = -1; -static int hf_ff_hdr_srv_lan_service_id_confirm = -1; -static int hf_ff_hdr_srv_lan_service_id_unconfirm = -1; -static int hf_ff_hdr_proto_id = -1; -static int hf_ff_hdr_confirm_msg_type = -1; -static int hf_ff_hdr_opts_msg_num = -1; -static int hf_ff_hdr_opts_invoke_id = -1; -static int hf_ff_hdr_opts_timestamp = -1; -static int hf_ff_hdr_opts_reserved = -1; -static int hf_ff_hdr_opts_ext_ctrl = -1; -static int hf_ff_hdr_opts_pad = -1; +static int hf_ff_fda = -1; +static int hf_ff_hdr_srv_confirm_flag = -1; +static int hf_ff_hdr_srv_service_id = -1; +static int hf_ff_hdr_srv_fda_service_id_confirm = -1; +static int hf_ff_hdr_srv_fda_service_id_unconfirm = -1; +static int hf_ff_hdr_srv_sm_service_id_confirm = -1; +static int hf_ff_hdr_srv_sm_service_id_unconfirm = -1; +static int hf_ff_hdr_srv_fms_service_id_confirm = -1; +static int hf_ff_hdr_srv_fms_service_id_unconfirm = -1; +static int hf_ff_hdr_srv_lan_service_id_confirm = -1; +static int hf_ff_hdr_srv_lan_service_id_unconfirm = -1; +static int hf_ff_hdr_proto_id = -1; +static int hf_ff_hdr_confirm_msg_type = -1; +static int hf_ff_hdr_opts_msg_num = -1; +static int hf_ff_hdr_opts_invoke_id = -1; +static int hf_ff_hdr_opts_timestamp = -1; +static int hf_ff_hdr_opts_reserved = -1; +static int hf_ff_hdr_opts_ext_ctrl = -1; +static int hf_ff_hdr_opts_pad = -1; /* * 6.5.1.1. FDA Open Session (Confirmed Service Id = 1) */ -static int hf_ff_fda_open_sess = -1; - -static int hf_ff_fda_open_sess_req = -1; -static int hf_ff_fda_open_sess_req_sess_idx = -1; -static int hf_ff_fda_open_sess_req_max_buf_siz = -1; -static int hf_ff_fda_open_sess_req_max_msg_len = -1; -static int hf_ff_fda_open_sess_req_reserved = -1; -static int hf_ff_fda_open_sess_req_nma_conf_use = -1; -static int hf_ff_fda_open_sess_req_inactivity_close_time = -1; -static int hf_ff_fda_open_sess_req_transmit_delay_time = -1; -static int hf_ff_fda_open_sess_req_pd_tag = -1; - -static int hf_ff_fda_open_sess_rsp = -1; -static int hf_ff_fda_open_sess_rsp_sess_idx = -1; -static int hf_ff_fda_open_sess_rsp_max_buf_siz = -1; -static int hf_ff_fda_open_sess_rsp_max_msg_len = -1; -static int hf_ff_fda_open_sess_rsp_reserved = -1; -static int hf_ff_fda_open_sess_rsp_nma_conf_use = -1; -static int hf_ff_fda_open_sess_rsp_inactivity_close_time = -1; -static int hf_ff_fda_open_sess_rsp_transmit_delay_time = -1; -static int hf_ff_fda_open_sess_rsp_pd_tag = -1; - -static int hf_ff_fda_open_sess_err = -1; -static int hf_ff_fda_open_sess_err_err_class = -1; -static int hf_ff_fda_open_sess_err_err_code = -1; -static int hf_ff_fda_open_sess_err_additional_code = -1; -static int hf_ff_fda_open_sess_err_additional_desc = -1; - -static gint ett_ff_fda_open_sess_req = -1; -static gint ett_ff_fda_open_sess_rsp = -1; -static gint ett_ff_fda_open_sess_err = -1; +static int hf_ff_fda_open_sess = -1; + +static int hf_ff_fda_open_sess_req = -1; +static int hf_ff_fda_open_sess_req_sess_idx = -1; +static int hf_ff_fda_open_sess_req_max_buf_siz = -1; +static int hf_ff_fda_open_sess_req_max_msg_len = -1; +static int hf_ff_fda_open_sess_req_reserved = -1; +static int hf_ff_fda_open_sess_req_nma_conf_use = -1; +static int hf_ff_fda_open_sess_req_inactivity_close_time = -1; +static int hf_ff_fda_open_sess_req_transmit_delay_time = -1; +static int hf_ff_fda_open_sess_req_pd_tag = -1; + +static int hf_ff_fda_open_sess_rsp = -1; +static int hf_ff_fda_open_sess_rsp_sess_idx = -1; +static int hf_ff_fda_open_sess_rsp_max_buf_siz = -1; +static int hf_ff_fda_open_sess_rsp_max_msg_len = -1; +static int hf_ff_fda_open_sess_rsp_reserved = -1; +static int hf_ff_fda_open_sess_rsp_nma_conf_use = -1; +static int hf_ff_fda_open_sess_rsp_inactivity_close_time = -1; +static int hf_ff_fda_open_sess_rsp_transmit_delay_time = -1; +static int hf_ff_fda_open_sess_rsp_pd_tag = -1; + +static int hf_ff_fda_open_sess_err = -1; +static int hf_ff_fda_open_sess_err_err_class = -1; +static int hf_ff_fda_open_sess_err_err_code = -1; +static int hf_ff_fda_open_sess_err_additional_code = -1; +static int hf_ff_fda_open_sess_err_additional_desc = -1; + +static gint ett_ff_fda_open_sess_req = -1; +static gint ett_ff_fda_open_sess_rsp = -1; +static gint ett_ff_fda_open_sess_err = -1; /* * 6.5.1.2. FDA Idle (Confirmed Service Id = 3) */ -static int hf_ff_fda_idle = -1; +static int hf_ff_fda_idle = -1; -static int hf_ff_fda_idle_req = -1; +static int hf_ff_fda_idle_req = -1; -static int hf_ff_fda_idle_rsp = -1; +static int hf_ff_fda_idle_rsp = -1; -static int hf_ff_fda_idle_err = -1; -static int hf_ff_fda_idle_err_err_class = -1; -static int hf_ff_fda_idle_err_err_code = -1; -static int hf_ff_fda_idle_err_additional_code = -1; -static int hf_ff_fda_idle_err_additional_desc = -1; +static int hf_ff_fda_idle_err = -1; +static int hf_ff_fda_idle_err_err_class = -1; +static int hf_ff_fda_idle_err_err_code = -1; +static int hf_ff_fda_idle_err_additional_code = -1; +static int hf_ff_fda_idle_err_additional_desc = -1; -static gint ett_ff_fda_idle_req = -1; -static gint ett_ff_fda_idle_rsp = -1; -static gint ett_ff_fda_idle_err = -1; +static gint ett_ff_fda_idle_req = -1; +static gint ett_ff_fda_idle_rsp = -1; +static gint ett_ff_fda_idle_err = -1; /* * 6.5.2. SM Services */ -static int hf_ff_sm = -1; +static int hf_ff_sm = -1; /* * 6.5.2.1. SM Find Tag Query (Unconfirmed Service Id = 1) */ -static int hf_ff_sm_find_tag_query = -1; +static int hf_ff_sm_find_tag_query = -1; -static int hf_ff_sm_find_tag_query_req = -1; -static int hf_ff_sm_find_tag_query_req_query_type = -1; -static int hf_ff_sm_find_tag_query_req_idx = -1; -static int hf_ff_sm_find_tag_query_req_tag = -1; -static int hf_ff_sm_find_tag_query_req_vfd_tag = -1; +static int hf_ff_sm_find_tag_query_req = -1; +static int hf_ff_sm_find_tag_query_req_query_type = -1; +static int hf_ff_sm_find_tag_query_req_idx = -1; +static int hf_ff_sm_find_tag_query_req_tag = -1; +static int hf_ff_sm_find_tag_query_req_vfd_tag = -1; -static gint ett_ff_sm_find_tag_query_req = -1; +static gint ett_ff_sm_find_tag_query_req = -1; /* * 6.5.2.2. SM Find Tag Reply (Unconfirmed Service Id = 2) */ -static int hf_ff_sm_find_tag_reply = -1; - -static int hf_ff_sm_find_tag_reply_req = -1; -static int hf_ff_sm_find_tag_reply_req_query_type = -1; -static int hf_ff_sm_find_tag_reply_req_h1_node_addr = -1; -static int hf_ff_sm_find_tag_reply_req_fda_addr_link_id = -1; -static int hf_ff_sm_find_tag_reply_req_vfd_ref = -1; -static int hf_ff_sm_find_tag_reply_req_od_idx = -1; -static int hf_ff_sm_find_tag_reply_req_ip_addr = -1; -static int hf_ff_sm_find_tag_reply_req_od_ver = -1; -static int hf_ff_sm_find_tag_reply_req_dev_id = -1; -static int hf_ff_sm_find_tag_reply_req_pd_tag = -1; -static int hf_ff_sm_find_tag_reply_req_reserved = -1; -static int hf_ff_sm_find_tag_reply_req_num_of_fda_addr_selectors = -1; -static int hf_ff_sm_find_tag_reply_req_fda_addr_selector = -1; -static int hf_ff_sm_find_tag_reply_dup_reserved = -1; -static int hf_ff_sm_find_tag_reply_dup_pd_tag = -1; -static int hf_ff_sm_find_tag_reply_dup_device = -1; - -static gint ett_ff_sm_find_tag_reply_req = -1; -static gint ett_ff_sm_find_tag_reply_req_dup_detection_state = -1; -static gint ett_ff_sm_find_tag_reply_req_list_of_fda_addr_selectors = -1; +static int hf_ff_sm_find_tag_reply = -1; + +static int hf_ff_sm_find_tag_reply_req = -1; +static int hf_ff_sm_find_tag_reply_req_query_type = -1; +static int hf_ff_sm_find_tag_reply_req_h1_node_addr = -1; +static int hf_ff_sm_find_tag_reply_req_fda_addr_link_id = -1; +static int hf_ff_sm_find_tag_reply_req_vfd_ref = -1; +static int hf_ff_sm_find_tag_reply_req_od_idx = -1; +static int hf_ff_sm_find_tag_reply_req_ip_addr = -1; +static int hf_ff_sm_find_tag_reply_req_od_ver = -1; +static int hf_ff_sm_find_tag_reply_req_dev_id = -1; +static int hf_ff_sm_find_tag_reply_req_pd_tag = -1; +static int hf_ff_sm_find_tag_reply_req_reserved = -1; +static int hf_ff_sm_find_tag_reply_req_num_of_fda_addr_selectors = -1; +static int hf_ff_sm_find_tag_reply_req_fda_addr_selector = -1; +static int hf_ff_sm_find_tag_reply_dup_reserved = -1; +static int hf_ff_sm_find_tag_reply_dup_pd_tag = -1; +static int hf_ff_sm_find_tag_reply_dup_device = -1; + +static gint ett_ff_sm_find_tag_reply_req = -1; +static gint ett_ff_sm_find_tag_reply_req_dup_detection_state = -1; +static gint ett_ff_sm_find_tag_reply_req_list_of_fda_addr_selectors = -1; /* * 6.5.2.3. SM Identify (Confirmed Service Id = 3) */ -static int hf_ff_sm_id = -1; - -static int hf_ff_sm_id_req = -1; - -static int hf_ff_sm_id_rsp = -1; -static int hf_ff_sm_id_rsp_dev_idx = -1; -static int hf_ff_sm_id_rsp_max_dev_idx = -1; -static int hf_ff_sm_id_rsp_operational_ip_addr = -1; -static int hf_ff_sm_id_rsp_dev_id = -1; -static int hf_ff_sm_id_rsp_pd_tag = -1; -static int hf_ff_sm_id_rsp_hse_repeat_time = -1; -static int hf_ff_sm_id_rsp_lr_port = -1; -static int hf_ff_sm_id_rsp_reserved = -1; -static int hf_ff_sm_id_rsp_annunc_ver_num = -1; -static int hf_ff_sm_id_rsp_hse_dev_ver_num = -1; -static int hf_ff_sm_id_rsp_num_of_entries = -1; -static int hf_ff_sm_id_rsp_h1_live_list_h1_link_id = -1; -static int hf_ff_sm_id_rsp_h1_live_list_reserved = -1; -static int hf_ff_sm_id_rsp_h1_live_list_ver_num = -1; -static int hf_ff_sm_id_rsp_h1_node_addr_ver_num_h1_node_addr = -1; -static int hf_ff_sm_id_rsp_h1_node_addr_ver_num_ver_num = -1; +static int hf_ff_sm_id = -1; + +static int hf_ff_sm_id_req = -1; + +static int hf_ff_sm_id_rsp = -1; +static int hf_ff_sm_id_rsp_dev_idx = -1; +static int hf_ff_sm_id_rsp_max_dev_idx = -1; +static int hf_ff_sm_id_rsp_operational_ip_addr = -1; +static int hf_ff_sm_id_rsp_dev_id = -1; +static int hf_ff_sm_id_rsp_pd_tag = -1; +static int hf_ff_sm_id_rsp_hse_repeat_time = -1; +static int hf_ff_sm_id_rsp_lr_port = -1; +static int hf_ff_sm_id_rsp_reserved = -1; +static int hf_ff_sm_id_rsp_annunc_ver_num = -1; +static int hf_ff_sm_id_rsp_hse_dev_ver_num = -1; +static int hf_ff_sm_id_rsp_num_of_entries = -1; +static int hf_ff_sm_id_rsp_h1_live_list_h1_link_id = -1; +static int hf_ff_sm_id_rsp_h1_live_list_reserved = -1; +static int hf_ff_sm_id_rsp_h1_live_list_ver_num = -1; +static int hf_ff_sm_id_rsp_h1_node_addr_ver_num_h1_node_addr = -1; +static int hf_ff_sm_id_rsp_h1_node_addr_ver_num_ver_num = -1; static int hf_ff_sm_id_rsp_smk_state_name = -1; static int hf_ff_sm_id_rsp_smk_state_sync = -1; static int hf_ff_sm_id_rsp_dev_type_link = -1; @@ -262,54 +261,54 @@ static int hf_ff_sm_id_rsp_dup_detection_state_reserved = -1; static int hf_ff_sm_id_rsp_dup_detection_state_pd_tag = -1; static int hf_ff_sm_id_rsp_dup_detection_state_device = -1; -static int hf_ff_sm_id_err = -1; -static int hf_ff_sm_id_err_err_class = -1; -static int hf_ff_sm_id_err_err_code = -1; -static int hf_ff_sm_id_err_additional_code = -1; -static int hf_ff_sm_id_err_additional_desc = -1; +static int hf_ff_sm_id_err = -1; +static int hf_ff_sm_id_err_err_class = -1; +static int hf_ff_sm_id_err_err_code = -1; +static int hf_ff_sm_id_err_additional_code = -1; +static int hf_ff_sm_id_err_additional_desc = -1; -static gint ett_ff_sm_id_req = -1; -static gint ett_ff_sm_id_rsp = -1; -static gint ett_ff_sm_id_rsp_smk_state = -1; -static gint ett_ff_sm_id_rsp_dev_type = -1; -static gint ett_ff_sm_id_rsp_dev_redundancy_state = -1; -static gint ett_ff_sm_id_rsp_dup_detection_state = -1; -static gint ett_ff_sm_id_rsp_entries_h1_live_list = -1; -static gint ett_ff_sm_id_rsp_h1_live_list = -1; -static gint ett_ff_sm_id_rsp_entries_node_addr = -1; -static gint ett_ff_sm_id_rsp_h1_node_addr = -1; -static gint ett_ff_sm_id_err = -1; +static gint ett_ff_sm_id_req = -1; +static gint ett_ff_sm_id_rsp = -1; +static gint ett_ff_sm_id_rsp_smk_state = -1; +static gint ett_ff_sm_id_rsp_dev_type = -1; +static gint ett_ff_sm_id_rsp_dev_redundancy_state = -1; +static gint ett_ff_sm_id_rsp_dup_detection_state = -1; +static gint ett_ff_sm_id_rsp_entries_h1_live_list = -1; +static gint ett_ff_sm_id_rsp_h1_live_list = -1; +static gint ett_ff_sm_id_rsp_entries_node_addr = -1; +static gint ett_ff_sm_id_rsp_h1_node_addr = -1; +static gint ett_ff_sm_id_err = -1; /* * 6.5.2.4. SM Clear Address (Confirmed Service Id = 12) */ -static int hf_ff_sm_clear_addr = -1; +static int hf_ff_sm_clear_addr = -1; -static int hf_ff_sm_clear_addr_req = -1; -static int hf_ff_sm_clear_addr_req_dev_id = -1; -static int hf_ff_sm_clear_addr_req_pd_tag = -1; -static int hf_ff_sm_clear_addr_req_interface_to_clear = -1; +static int hf_ff_sm_clear_addr_req = -1; +static int hf_ff_sm_clear_addr_req_dev_id = -1; +static int hf_ff_sm_clear_addr_req_pd_tag = -1; +static int hf_ff_sm_clear_addr_req_interface_to_clear = -1; -static int hf_ff_sm_clear_addr_rsp = -1; +static int hf_ff_sm_clear_addr_rsp = -1; -static int hf_ff_sm_clear_addr_err = -1; -static int hf_ff_sm_clear_addr_err_err_class = -1; -static int hf_ff_sm_clear_addr_err_err_code = -1; -static int hf_ff_sm_clear_addr_err_additional_code = -1; -static int hf_ff_sm_clear_addr_err_additional_desc = -1; +static int hf_ff_sm_clear_addr_err = -1; +static int hf_ff_sm_clear_addr_err_err_class = -1; +static int hf_ff_sm_clear_addr_err_err_code = -1; +static int hf_ff_sm_clear_addr_err_additional_code = -1; +static int hf_ff_sm_clear_addr_err_additional_desc = -1; -static gint ett_ff_sm_clear_addr_req = -1; -static gint ett_ff_sm_clear_addr_rsp = -1; -static gint ett_ff_sm_clear_addr_err = -1; +static gint ett_ff_sm_clear_addr_req = -1; +static gint ett_ff_sm_clear_addr_rsp = -1; +static gint ett_ff_sm_clear_addr_err = -1; /* * 6.5.2.5. SM Set Assignment Info (Confirmed Service Id = 14) */ -static int hf_ff_sm_set_assign_info = -1; +static int hf_ff_sm_set_assign_info = -1; static int hf_ff_sm_set_assign_info_req_dev_redundancy_state_reserved = -1; static int hf_ff_sm_set_assign_info_req_dev_redundancy_state_role = -1; @@ -318,82 +317,82 @@ static int hf_ff_sm_set_assign_info_req_clear_dup_detection_state_reserved = -1; static int hf_ff_sm_set_assign_info_req_clear_dup_detection_state_pd_tag = -1; static int hf_ff_sm_set_assign_info_req_clear_dup_detection_state_device_index = -1; -static int hf_ff_sm_set_assign_info_req = -1; -static int hf_ff_sm_set_assign_info_req_dev_id = -1; -static int hf_ff_sm_set_assign_info_req_pd_tag = -1; -static int hf_ff_sm_set_assign_info_req_h1_new_addr = -1; -static int hf_ff_sm_set_assign_info_req_lr_port = -1; -static int hf_ff_sm_set_assign_info_req_hse_repeat_time = -1; -static int hf_ff_sm_set_assign_info_req_dev_idx = -1; -static int hf_ff_sm_set_assign_info_req_max_dev_idx = -1; -static int hf_ff_sm_set_assign_info_req_operational_ip_addr = -1; +static int hf_ff_sm_set_assign_info_req = -1; +static int hf_ff_sm_set_assign_info_req_dev_id = -1; +static int hf_ff_sm_set_assign_info_req_pd_tag = -1; +static int hf_ff_sm_set_assign_info_req_h1_new_addr = -1; +static int hf_ff_sm_set_assign_info_req_lr_port = -1; +static int hf_ff_sm_set_assign_info_req_hse_repeat_time = -1; +static int hf_ff_sm_set_assign_info_req_dev_idx = -1; +static int hf_ff_sm_set_assign_info_req_max_dev_idx = -1; +static int hf_ff_sm_set_assign_info_req_operational_ip_addr = -1; -static int hf_ff_sm_set_assign_info_rsp = -1; -static int hf_ff_sm_set_assign_info_rsp_reserved = -1; -static int hf_ff_sm_set_assign_info_rsp_max_dev_idx = -1; -static int hf_ff_sm_set_assign_info_rsp_hse_repeat_time = -1; +static int hf_ff_sm_set_assign_info_rsp = -1; +static int hf_ff_sm_set_assign_info_rsp_reserved = -1; +static int hf_ff_sm_set_assign_info_rsp_max_dev_idx = -1; +static int hf_ff_sm_set_assign_info_rsp_hse_repeat_time = -1; -static int hf_ff_sm_set_assign_info_err = -1; -static int hf_ff_sm_set_assign_info_err_err_class = -1; -static int hf_ff_sm_set_assign_info_err_err_code = -1; -static int hf_ff_sm_set_assign_info_err_additional_code = -1; -static int hf_ff_sm_set_assign_info_err_additional_desc = -1; +static int hf_ff_sm_set_assign_info_err = -1; +static int hf_ff_sm_set_assign_info_err_err_class = -1; +static int hf_ff_sm_set_assign_info_err_err_code = -1; +static int hf_ff_sm_set_assign_info_err_additional_code = -1; +static int hf_ff_sm_set_assign_info_err_additional_desc = -1; -static gint ett_ff_sm_set_assign_info_req = -1; -static gint ett_ff_sm_set_assign_info_req_dev_redundancy_state = -1; -static gint ett_ff_sm_set_assign_info_req_clear_dup_detection_state = -1; -static gint ett_ff_sm_set_assign_info_rsp = -1; -static gint ett_ff_sm_set_assign_info_err = -1; +static gint ett_ff_sm_set_assign_info_req = -1; +static gint ett_ff_sm_set_assign_info_req_dev_redundancy_state = -1; +static gint ett_ff_sm_set_assign_info_req_clear_dup_detection_state = -1; +static gint ett_ff_sm_set_assign_info_rsp = -1; +static gint ett_ff_sm_set_assign_info_err = -1; /* * 6.5.2.6. SM Clear Assignment Info (Confirmed Service Id = 15) */ -static int hf_ff_sm_clear_assign_info = -1; +static int hf_ff_sm_clear_assign_info = -1; -static int hf_ff_sm_clear_assign_info_req = -1; -static int hf_ff_sm_clear_assign_info_req_dev_id = -1; -static int hf_ff_sm_clear_assign_info_req_pd_tag = -1; +static int hf_ff_sm_clear_assign_info_req = -1; +static int hf_ff_sm_clear_assign_info_req_dev_id = -1; +static int hf_ff_sm_clear_assign_info_req_pd_tag = -1; -static int hf_ff_sm_clear_assign_info_rsp = -1; +static int hf_ff_sm_clear_assign_info_rsp = -1; -static int hf_ff_sm_clear_assign_info_err = -1; -static int hf_ff_sm_clear_assign_info_err_err_class = -1; -static int hf_ff_sm_clear_assign_info_err_err_code = -1; -static int hf_ff_sm_clear_assign_info_err_additional_code = -1; -static int hf_ff_sm_clear_assign_info_err_additional_desc = -1; +static int hf_ff_sm_clear_assign_info_err = -1; +static int hf_ff_sm_clear_assign_info_err_err_class = -1; +static int hf_ff_sm_clear_assign_info_err_err_code = -1; +static int hf_ff_sm_clear_assign_info_err_additional_code = -1; +static int hf_ff_sm_clear_assign_info_err_additional_desc = -1; -static gint ett_ff_sm_clear_assign_info_req = -1; -static gint ett_ff_sm_clear_assign_info_rsp = -1; -static gint ett_ff_sm_clear_assign_info_err = -1; +static gint ett_ff_sm_clear_assign_info_req = -1; +static gint ett_ff_sm_clear_assign_info_rsp = -1; +static gint ett_ff_sm_clear_assign_info_err = -1; /* * 6.5.2.7. SM Device Annunciation (Unconfirmed Service Id = 16) */ -static int hf_ff_sm_dev_annunc = -1; - -static int hf_ff_sm_dev_annunc_req = -1; -static int hf_ff_sm_dev_annunc_req_dev_idx = -1; -static int hf_ff_sm_dev_annunc_req_max_dev_idx = -1; -static int hf_ff_sm_dev_annunc_req_operational_ip_addr = -1; -static int hf_ff_sm_dev_annunc_req_dev_id = -1; -static int hf_ff_sm_dev_annunc_req_pd_tag = -1; -static int hf_ff_sm_dev_annunc_req_hse_repeat_time = -1; -static int hf_ff_sm_dev_annunc_req_lr_port = -1; -static int hf_ff_sm_dev_annunc_req_reserved = -1; -static int hf_ff_sm_dev_annunc_req_annunc_ver_num = -1; -static int hf_ff_sm_dev_annunc_req_hse_dev_ver_num = -1; -static int hf_ff_sm_dev_annunc_req_num_of_entries = -1; -static int hf_ff_sm_dev_annunc_req_h1_live_list_h1_link_id = -1; -static int hf_ff_sm_dev_annunc_req_h1_live_list_reserved = -1; -static int hf_ff_sm_dev_annunc_req_h1_live_list_ver_num = -1; -static int hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_h1_node_addr = -1; -static int hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_ver_num = -1; -static int hf_ff_sm_dev_annunc_req_smk_state_name = -1; -static int hf_ff_sm_dev_annunc_req_smk_state_sync = -1; +static int hf_ff_sm_dev_annunc = -1; + +static int hf_ff_sm_dev_annunc_req = -1; +static int hf_ff_sm_dev_annunc_req_dev_idx = -1; +static int hf_ff_sm_dev_annunc_req_max_dev_idx = -1; +static int hf_ff_sm_dev_annunc_req_operational_ip_addr = -1; +static int hf_ff_sm_dev_annunc_req_dev_id = -1; +static int hf_ff_sm_dev_annunc_req_pd_tag = -1; +static int hf_ff_sm_dev_annunc_req_hse_repeat_time = -1; +static int hf_ff_sm_dev_annunc_req_lr_port = -1; +static int hf_ff_sm_dev_annunc_req_reserved = -1; +static int hf_ff_sm_dev_annunc_req_annunc_ver_num = -1; +static int hf_ff_sm_dev_annunc_req_hse_dev_ver_num = -1; +static int hf_ff_sm_dev_annunc_req_num_of_entries = -1; +static int hf_ff_sm_dev_annunc_req_h1_live_list_h1_link_id = -1; +static int hf_ff_sm_dev_annunc_req_h1_live_list_reserved = -1; +static int hf_ff_sm_dev_annunc_req_h1_live_list_ver_num = -1; +static int hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_h1_node_addr = -1; +static int hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_ver_num = -1; +static int hf_ff_sm_dev_annunc_req_smk_state_name = -1; +static int hf_ff_sm_dev_annunc_req_smk_state_sync = -1; static int hf_ff_sm_dev_annunc_req_dev_type_link = -1; static int hf_ff_sm_dev_annunc_req_dev_type_iogateway = -1; static int hf_ff_sm_dev_annunc_req_dev_type_hse = -1; @@ -407,801 +406,801 @@ static int hf_ff_sm_dev_annunc_req_dup_detection_state_reserved = -1; static int hf_ff_sm_dev_annunc_req_dup_detection_state_pd_tag = -1; static int hf_ff_sm_dev_annunc_req_dup_detection_state_device = -1; -static gint ett_ff_sm_dev_annunc_req = -1; -static gint ett_ff_sm_dev_annunc_req_smk_state = -1; -static gint ett_ff_sm_dev_annunc_req_dev_type = -1; -static gint ett_ff_sm_dev_annunc_req_dev_redundancy_state = -1; -static gint ett_ff_sm_dev_annunc_req_dup_detection_state = -1; -static gint ett_ff_sm_dev_annunc_req_entries_h1_live_list = -1; -static gint ett_ff_sm_dev_annunc_req_h1_live_list = -1; -static gint ett_ff_sm_dev_annunc_req_entries_node_addr = -1; -static gint ett_ff_sm_dev_annunc_req_h1_node_addr = -1; +static gint ett_ff_sm_dev_annunc_req = -1; +static gint ett_ff_sm_dev_annunc_req_smk_state = -1; +static gint ett_ff_sm_dev_annunc_req_dev_type = -1; +static gint ett_ff_sm_dev_annunc_req_dev_redundancy_state = -1; +static gint ett_ff_sm_dev_annunc_req_dup_detection_state = -1; +static gint ett_ff_sm_dev_annunc_req_entries_h1_live_list = -1; +static gint ett_ff_sm_dev_annunc_req_h1_live_list = -1; +static gint ett_ff_sm_dev_annunc_req_entries_node_addr = -1; +static gint ett_ff_sm_dev_annunc_req_h1_node_addr = -1; /* * 6.5.3. FMS Services */ -static int hf_ff_fms = -1; +static int hf_ff_fms = -1; /* * 6.5.3.2. FMS Initiate (Confirmed Service Id = 96) */ -static int hf_ff_fms_init = -1; +static int hf_ff_fms_init = -1; -static int hf_ff_fms_init_req = -1; -static int hf_ff_fms_init_req_conn_opt = -1; -static int hf_ff_fms_init_req_access_protection_supported_calling = -1; -static int hf_ff_fms_init_req_passwd_and_access_grps_calling = -1; -static int hf_ff_fms_init_req_ver_od_calling = -1; -static int hf_ff_fms_init_req_prof_num_calling = -1; -static int hf_ff_fms_init_req_pd_tag = -1; +static int hf_ff_fms_init_req = -1; +static int hf_ff_fms_init_req_conn_opt = -1; +static int hf_ff_fms_init_req_access_protection_supported_calling = -1; +static int hf_ff_fms_init_req_passwd_and_access_grps_calling = -1; +static int hf_ff_fms_init_req_ver_od_calling = -1; +static int hf_ff_fms_init_req_prof_num_calling = -1; +static int hf_ff_fms_init_req_pd_tag = -1; -static int hf_ff_fms_init_rsp = -1; -static int hf_ff_fms_init_rsp_ver_od_called = -1; -static int hf_ff_fms_init_rsp_prof_num_called = -1; +static int hf_ff_fms_init_rsp = -1; +static int hf_ff_fms_init_rsp_ver_od_called = -1; +static int hf_ff_fms_init_rsp_prof_num_called = -1; -static int hf_ff_fms_init_err = -1; -static int hf_ff_fms_init_err_err_class = -1; -static int hf_ff_fms_init_err_err_code = -1; -static int hf_ff_fms_init_err_additional_code = -1; -static int hf_ff_fms_init_err_additional_desc = -1; +static int hf_ff_fms_init_err = -1; +static int hf_ff_fms_init_err_err_class = -1; +static int hf_ff_fms_init_err_err_code = -1; +static int hf_ff_fms_init_err_additional_code = -1; +static int hf_ff_fms_init_err_additional_desc = -1; -static gint ett_ff_fms_init_req = -1; -static gint ett_ff_fms_init_rep = -1; -static gint ett_ff_fms_init_err = -1; +static gint ett_ff_fms_init_req = -1; +static gint ett_ff_fms_init_rep = -1; +static gint ett_ff_fms_init_err = -1; /* * 6.5.3.3. FMS Abort (Unconfirmed Service Id = 112) */ -static int hf_ff_fms_abort = -1; +static int hf_ff_fms_abort = -1; -static int hf_ff_fms_abort_req = -1; -static int hf_ff_fms_abort_req_abort_id = -1; -static int hf_ff_fms_abort_req_reason_code = -1; -static int hf_ff_fms_abort_req_reserved = -1; +static int hf_ff_fms_abort_req = -1; +static int hf_ff_fms_abort_req_abort_id = -1; +static int hf_ff_fms_abort_req_reason_code = -1; +static int hf_ff_fms_abort_req_reserved = -1; -static gint ett_ff_fms_abort_req = -1; +static gint ett_ff_fms_abort_req = -1; /* * 6.5.3.4. FMS Status (Confirmed Service Id = 0) */ -static int hf_ff_fms_status = -1; +static int hf_ff_fms_status = -1; -static int hf_ff_fms_status_req = -1; +static int hf_ff_fms_status_req = -1; -static int hf_ff_fms_status_rsp = -1; -static int hf_ff_fms_status_rsp_logical_status = -1; -static int hf_ff_fms_status_rsp_physical_status = -1; -static int hf_ff_fms_status_rsp_reserved = -1; +static int hf_ff_fms_status_rsp = -1; +static int hf_ff_fms_status_rsp_logical_status = -1; +static int hf_ff_fms_status_rsp_physical_status = -1; +static int hf_ff_fms_status_rsp_reserved = -1; -static int hf_ff_fms_status_err = -1; -static int hf_ff_fms_status_err_err_class = -1; -static int hf_ff_fms_status_err_err_code = -1; -static int hf_ff_fms_status_err_additional_code = -1; -static int hf_ff_fms_status_err_additional_desc = -1; +static int hf_ff_fms_status_err = -1; +static int hf_ff_fms_status_err_err_class = -1; +static int hf_ff_fms_status_err_err_code = -1; +static int hf_ff_fms_status_err_additional_code = -1; +static int hf_ff_fms_status_err_additional_desc = -1; -static gint ett_ff_fms_status_req = -1; -static gint ett_ff_fms_status_rsp = -1; -static gint ett_ff_fms_status_err = -1; +static gint ett_ff_fms_status_req = -1; +static gint ett_ff_fms_status_rsp = -1; +static gint ett_ff_fms_status_err = -1; /* * 6.5.3.5. FMS Unsolicited Status (Unconfirmed Service Id = 1) */ -static int hf_ff_fms_unsolicited_status = -1; +static int hf_ff_fms_unsolicited_status = -1; -static int hf_ff_fms_unsolicited_status_req = -1; -static int hf_ff_fms_unsolicited_status_req_logical_status = -1; -static int hf_ff_fms_unsolicited_status_req_physical_status = -1; -static int hf_ff_fms_unsolicited_status_req_reserved = -1; +static int hf_ff_fms_unsolicited_status_req = -1; +static int hf_ff_fms_unsolicited_status_req_logical_status = -1; +static int hf_ff_fms_unsolicited_status_req_physical_status = -1; +static int hf_ff_fms_unsolicited_status_req_reserved = -1; -static gint ett_ff_fms_unsolicited_status_req = -1; +static gint ett_ff_fms_unsolicited_status_req = -1; /* * 6.5.3.6. FMS Identify (Confirmed Service Id = 1) */ -static int hf_ff_fms_id = -1; +static int hf_ff_fms_id = -1; -static int hf_ff_fms_id_req = -1; +static int hf_ff_fms_id_req = -1; -static int hf_ff_fms_id_rsp = -1; -static int hf_ff_fms_id_rsp_vendor_name = -1; -static int hf_ff_fms_id_rsp_model_name = -1; -static int hf_ff_fms_id_rsp_revision = -1; +static int hf_ff_fms_id_rsp = -1; +static int hf_ff_fms_id_rsp_vendor_name = -1; +static int hf_ff_fms_id_rsp_model_name = -1; +static int hf_ff_fms_id_rsp_revision = -1; -static int hf_ff_fms_id_err = -1; -static int hf_ff_fms_id_err_err_class = -1; -static int hf_ff_fms_id_err_err_code = -1; -static int hf_ff_fms_id_err_additional_code = -1; -static int hf_ff_fms_id_err_additional_desc = -1; +static int hf_ff_fms_id_err = -1; +static int hf_ff_fms_id_err_err_class = -1; +static int hf_ff_fms_id_err_err_code = -1; +static int hf_ff_fms_id_err_additional_code = -1; +static int hf_ff_fms_id_err_additional_desc = -1; -static gint ett_ff_fms_id_req = -1; -static gint ett_ff_fms_id_rsp = -1; -static gint ett_ff_fms_id_err = -1; +static gint ett_ff_fms_id_req = -1; +static gint ett_ff_fms_id_rsp = -1; +static gint ett_ff_fms_id_err = -1; /* * 6.5.3.7. FMS Get OD (Confirmed Service Id = 4) */ -static int hf_ff_fms_get_od = -1; +static int hf_ff_fms_get_od = -1; -static int hf_ff_fms_get_od_req = -1; -static int hf_ff_fms_get_od_req_all_attrs = -1; -static int hf_ff_fms_get_od_req_start_idx_flag = -1; -static int hf_ff_fms_get_od_req_reserved = -1; -static int hf_ff_fms_get_od_req_idx = -1; +static int hf_ff_fms_get_od_req = -1; +static int hf_ff_fms_get_od_req_all_attrs = -1; +static int hf_ff_fms_get_od_req_start_idx_flag = -1; +static int hf_ff_fms_get_od_req_reserved = -1; +static int hf_ff_fms_get_od_req_idx = -1; -static int hf_ff_fms_get_od_rsp = -1; -static int hf_ff_fms_get_od_rsp_more_follows = -1; -static int hf_ff_fms_get_od_rsp_num_of_obj_desc = -1; -static int hf_ff_fms_get_od_rsp_reserved = -1; +static int hf_ff_fms_get_od_rsp = -1; +static int hf_ff_fms_get_od_rsp_more_follows = -1; +static int hf_ff_fms_get_od_rsp_num_of_obj_desc = -1; +static int hf_ff_fms_get_od_rsp_reserved = -1; -static int hf_ff_fms_get_od_err = -1; -static int hf_ff_fms_get_od_err_err_class = -1; -static int hf_ff_fms_get_od_err_err_code = -1; -static int hf_ff_fms_get_od_err_additional_code = -1; -static int hf_ff_fms_get_od_err_additional_desc = -1; +static int hf_ff_fms_get_od_err = -1; +static int hf_ff_fms_get_od_err_err_class = -1; +static int hf_ff_fms_get_od_err_err_code = -1; +static int hf_ff_fms_get_od_err_additional_code = -1; +static int hf_ff_fms_get_od_err_additional_desc = -1; -static gint ett_ff_fms_get_od_req = -1; -static gint ett_ff_fms_get_od_rsp = -1; -static gint ett_ff_fms_get_od_err = -1; +static gint ett_ff_fms_get_od_req = -1; +static gint ett_ff_fms_get_od_rsp = -1; +static gint ett_ff_fms_get_od_err = -1; /* * 6.5.3.8. FMS Initiate Put OD (Confirmed Service Id = 28) */ -static int hf_ff_fms_init_put_od = -1; +static int hf_ff_fms_init_put_od = -1; -static int hf_ff_fms_init_put_od_req = -1; -static int hf_ff_fms_init_put_od_req_reserved = -1; -static int hf_ff_fms_init_put_od_req_consequence = -1; +static int hf_ff_fms_init_put_od_req = -1; +static int hf_ff_fms_init_put_od_req_reserved = -1; +static int hf_ff_fms_init_put_od_req_consequence = -1; -static int hf_ff_fms_init_put_od_rsp = -1; +static int hf_ff_fms_init_put_od_rsp = -1; -static int hf_ff_fms_init_put_od_err = -1; -static int hf_ff_fms_init_put_od_err_err_class = -1; -static int hf_ff_fms_init_put_od_err_err_code = -1; -static int hf_ff_fms_init_put_od_err_additional_code = -1; -static int hf_ff_fms_init_put_od_err_additional_desc = -1; +static int hf_ff_fms_init_put_od_err = -1; +static int hf_ff_fms_init_put_od_err_err_class = -1; +static int hf_ff_fms_init_put_od_err_err_code = -1; +static int hf_ff_fms_init_put_od_err_additional_code = -1; +static int hf_ff_fms_init_put_od_err_additional_desc = -1; -static gint ett_ff_fms_init_put_od_req = -1; -static gint ett_ff_fms_init_put_od_rsp = -1; -static gint ett_ff_fms_init_put_od_err = -1; +static gint ett_ff_fms_init_put_od_req = -1; +static gint ett_ff_fms_init_put_od_rsp = -1; +static gint ett_ff_fms_init_put_od_err = -1; /* * 6.5.3.9. FMS Put OD (Confirmed Service Id = 29) */ -static int hf_ff_fms_put_od = -1; +static int hf_ff_fms_put_od = -1; -static int hf_ff_fms_put_od_req = -1; -static int hf_ff_fms_put_od_req_num_of_obj_desc = -1; +static int hf_ff_fms_put_od_req = -1; +static int hf_ff_fms_put_od_req_num_of_obj_desc = -1; -static int hf_ff_fms_put_od_rsp = -1; +static int hf_ff_fms_put_od_rsp = -1; -static int hf_ff_fms_put_od_err = -1; -static int hf_ff_fms_put_od_err_err_class = -1; -static int hf_ff_fms_put_od_err_err_code = -1; -static int hf_ff_fms_put_od_err_additional_code = -1; -static int hf_ff_fms_put_od_err_additional_desc = -1; +static int hf_ff_fms_put_od_err = -1; +static int hf_ff_fms_put_od_err_err_class = -1; +static int hf_ff_fms_put_od_err_err_code = -1; +static int hf_ff_fms_put_od_err_additional_code = -1; +static int hf_ff_fms_put_od_err_additional_desc = -1; -static gint ett_ff_fms_put_od_req = -1; -static gint ett_ff_fms_put_od_rsp = -1; -static gint ett_ff_fms_put_od_err = -1; +static gint ett_ff_fms_put_od_req = -1; +static gint ett_ff_fms_put_od_rsp = -1; +static gint ett_ff_fms_put_od_err = -1; /* * 6.5.3.10. FMS Terminate Put OD (Confirmed Service Id = 30) */ -static int hf_ff_fms_terminate_put_od = -1; +static int hf_ff_fms_terminate_put_od = -1; -static int hf_ff_fms_terminate_put_od_req = -1; +static int hf_ff_fms_terminate_put_od_req = -1; -static int hf_ff_fms_terminate_put_od_rsp = -1; +static int hf_ff_fms_terminate_put_od_rsp = -1; -static int hf_ff_fms_terminate_put_od_err = -1; -static int hf_ff_fms_terminate_put_od_err_index = -1; -static int hf_ff_fms_terminate_put_od_err_err_class = -1; -static int hf_ff_fms_terminate_put_od_err_err_code = -1; -static int hf_ff_fms_terminate_put_od_err_additional_code = -1; -static int hf_ff_fms_terminate_put_od_err_additional_desc = -1; +static int hf_ff_fms_terminate_put_od_err = -1; +static int hf_ff_fms_terminate_put_od_err_index = -1; +static int hf_ff_fms_terminate_put_od_err_err_class = -1; +static int hf_ff_fms_terminate_put_od_err_err_code = -1; +static int hf_ff_fms_terminate_put_od_err_additional_code = -1; +static int hf_ff_fms_terminate_put_od_err_additional_desc = -1; -static gint ett_ff_fms_terminate_put_od_req = -1; -static gint ett_ff_fms_terminate_put_od_rsp = -1; -static gint ett_ff_fms_terminate_put_od_err = -1; +static gint ett_ff_fms_terminate_put_od_req = -1; +static gint ett_ff_fms_terminate_put_od_rsp = -1; +static gint ett_ff_fms_terminate_put_od_err = -1; /* * 6.5.3.11. FMS Generic Initiate Download Sequence (Confirmed Service Id = 31) */ -static int hf_ff_fms_gen_init_download_seq = -1; +static int hf_ff_fms_gen_init_download_seq = -1; -static int hf_ff_fms_gen_init_download_seq_req = -1; -static int hf_ff_fms_gen_init_download_seq_req_idx = -1; +static int hf_ff_fms_gen_init_download_seq_req = -1; +static int hf_ff_fms_gen_init_download_seq_req_idx = -1; -static int hf_ff_fms_gen_init_download_seq_rsp = -1; +static int hf_ff_fms_gen_init_download_seq_rsp = -1; -static int hf_ff_fms_gen_init_download_seq_err = -1; -static int hf_ff_fms_gen_init_download_seq_err_err_class = -1; -static int hf_ff_fms_gen_init_download_seq_err_err_code = -1; -static int hf_ff_fms_gen_init_download_seq_err_additional_code = -1; -static int hf_ff_fms_gen_init_download_seq_err_additional_desc = -1; +static int hf_ff_fms_gen_init_download_seq_err = -1; +static int hf_ff_fms_gen_init_download_seq_err_err_class = -1; +static int hf_ff_fms_gen_init_download_seq_err_err_code = -1; +static int hf_ff_fms_gen_init_download_seq_err_additional_code = -1; +static int hf_ff_fms_gen_init_download_seq_err_additional_desc = -1; -static gint ett_ff_fms_gen_init_download_seq_req = -1; -static gint ett_ff_fms_gen_init_download_seq_rep = -1; -static gint ett_ff_fms_gen_init_download_seq_err = -1; +static gint ett_ff_fms_gen_init_download_seq_req = -1; +static gint ett_ff_fms_gen_init_download_seq_rep = -1; +static gint ett_ff_fms_gen_init_download_seq_err = -1; /* * 6.5.3.12. FMS Generic Download Segment (Confirmed Service Id = 32) */ -static int hf_ff_fms_gen_download_seg = -1; +static int hf_ff_fms_gen_download_seg = -1; -static int hf_ff_fms_gen_download_seg_req = -1; -static int hf_ff_fms_gen_download_seg_req_idx = -1; -static int hf_ff_fms_gen_download_seg_req_more_follows = -1; +static int hf_ff_fms_gen_download_seg_req = -1; +static int hf_ff_fms_gen_download_seg_req_idx = -1; +static int hf_ff_fms_gen_download_seg_req_more_follows = -1; -static int hf_ff_fms_gen_download_seg_rsp = -1; +static int hf_ff_fms_gen_download_seg_rsp = -1; -static int hf_ff_fms_gen_download_seg_err = -1; -static int hf_ff_fms_gen_download_seg_err_err_class = -1; -static int hf_ff_fms_gen_download_seg_err_err_code = -1; -static int hf_ff_fms_gen_download_seg_err_additional_code = -1; -static int hf_ff_fms_gen_download_seg_err_additional_desc = -1; +static int hf_ff_fms_gen_download_seg_err = -1; +static int hf_ff_fms_gen_download_seg_err_err_class = -1; +static int hf_ff_fms_gen_download_seg_err_err_code = -1; +static int hf_ff_fms_gen_download_seg_err_additional_code = -1; +static int hf_ff_fms_gen_download_seg_err_additional_desc = -1; -static gint ett_ff_fms_gen_download_seg_req = -1; -static gint ett_ff_fms_gen_download_seg_rsp = -1; -static gint ett_ff_fms_gen_download_seg_err = -1; +static gint ett_ff_fms_gen_download_seg_req = -1; +static gint ett_ff_fms_gen_download_seg_rsp = -1; +static gint ett_ff_fms_gen_download_seg_err = -1; /* * 6.5.3.13. FMS Generic Terminate Download Sequence (Confirmed Service Id = 33) */ -static int hf_ff_fms_gen_terminate_download_seq = -1; +static int hf_ff_fms_gen_terminate_download_seq = -1; -static int hf_ff_fms_gen_terminate_download_seq_req = -1; -static int hf_ff_fms_gen_terminate_download_seq_req_idx = -1; +static int hf_ff_fms_gen_terminate_download_seq_req = -1; +static int hf_ff_fms_gen_terminate_download_seq_req_idx = -1; -static int hf_ff_fms_gen_terminate_download_seq_rsp = -1; -static int hf_ff_fms_gen_terminate_download_seq_rsp_final_result = -1; +static int hf_ff_fms_gen_terminate_download_seq_rsp = -1; +static int hf_ff_fms_gen_terminate_download_seq_rsp_final_result = -1; -static int hf_ff_fms_gen_terminate_download_seq_err = -1; -static int hf_ff_fms_gen_terminate_download_seq_err_err_class = -1; -static int hf_ff_fms_gen_terminate_download_seq_err_err_code = -1; -static int hf_ff_fms_gen_terminate_download_seq_err_additional_code = -1; -static int hf_ff_fms_gen_terminate_download_seq_err_additional_desc = -1; +static int hf_ff_fms_gen_terminate_download_seq_err = -1; +static int hf_ff_fms_gen_terminate_download_seq_err_err_class = -1; +static int hf_ff_fms_gen_terminate_download_seq_err_err_code = -1; +static int hf_ff_fms_gen_terminate_download_seq_err_additional_code = -1; +static int hf_ff_fms_gen_terminate_download_seq_err_additional_desc = -1; -static gint ett_ff_fms_gen_terminate_download_seq_req = -1; -static gint ett_ff_fms_gen_terminate_download_seq_rsp = -1; -static gint ett_ff_fms_gen_terminate_download_seq_err = -1; +static gint ett_ff_fms_gen_terminate_download_seq_req = -1; +static gint ett_ff_fms_gen_terminate_download_seq_rsp = -1; +static gint ett_ff_fms_gen_terminate_download_seq_err = -1; /* * 6.5.3.14. FMS Initiate Download Sequence (Confirmed Service Id = 9) */ -static int hf_ff_fms_init_download_seq = -1; +static int hf_ff_fms_init_download_seq = -1; -static int hf_ff_fms_init_download_seq_req = -1; -static int hf_ff_fms_init_download_seq_req_idx = -1; +static int hf_ff_fms_init_download_seq_req = -1; +static int hf_ff_fms_init_download_seq_req_idx = -1; -static int hf_ff_fms_init_download_seq_rsp = -1; +static int hf_ff_fms_init_download_seq_rsp = -1; -static int hf_ff_fms_init_download_seq_err = -1; -static int hf_ff_fms_init_download_seq_err_err_class = -1; -static int hf_ff_fms_init_download_seq_err_err_code = -1; -static int hf_ff_fms_init_download_seq_err_additional_code = -1; -static int hf_ff_fms_init_download_seq_err_additional_desc = -1; +static int hf_ff_fms_init_download_seq_err = -1; +static int hf_ff_fms_init_download_seq_err_err_class = -1; +static int hf_ff_fms_init_download_seq_err_err_code = -1; +static int hf_ff_fms_init_download_seq_err_additional_code = -1; +static int hf_ff_fms_init_download_seq_err_additional_desc = -1; -static gint ett_ff_fms_init_download_seq_req = -1; -static gint ett_ff_fms_init_download_seq_rsp = -1; -static gint ett_ff_fms_init_download_seq_err = -1; +static gint ett_ff_fms_init_download_seq_req = -1; +static gint ett_ff_fms_init_download_seq_rsp = -1; +static gint ett_ff_fms_init_download_seq_err = -1; /* * 6.5.3.15. FMS Download Segment (Confirmed Service Id = 10) */ -static int hf_ff_fms_download_seg = -1; -static int hf_ff_fms_download_seg_req = -1; -static int hf_ff_fms_download_seg_req_idx = -1; +static int hf_ff_fms_download_seg = -1; +static int hf_ff_fms_download_seg_req = -1; +static int hf_ff_fms_download_seg_req_idx = -1; -static int hf_ff_fms_download_seg_rsp = -1; -static int hf_ff_fms_download_seg_rsp_more_follows = -1; +static int hf_ff_fms_download_seg_rsp = -1; +static int hf_ff_fms_download_seg_rsp_more_follows = -1; -static int hf_ff_fms_download_seg_err = -1; -static int hf_ff_fms_download_seg_err_err_class = -1; -static int hf_ff_fms_download_seg_err_err_code = -1; -static int hf_ff_fms_download_seg_err_additional_code = -1; -static int hf_ff_fms_download_seg_err_additional_desc = -1; +static int hf_ff_fms_download_seg_err = -1; +static int hf_ff_fms_download_seg_err_err_class = -1; +static int hf_ff_fms_download_seg_err_err_code = -1; +static int hf_ff_fms_download_seg_err_additional_code = -1; +static int hf_ff_fms_download_seg_err_additional_desc = -1; -static gint ett_ff_fms_download_seg_req = -1; -static gint ett_ff_fms_download_seg_rsp = -1; -static gint ett_ff_fms_download_seg_err = -1; +static gint ett_ff_fms_download_seg_req = -1; +static gint ett_ff_fms_download_seg_rsp = -1; +static gint ett_ff_fms_download_seg_err = -1; /* * 6.5.3.16. FMS Terminate Download Sequence (Confirmed Service Id = 11) */ -static int hf_ff_fms_terminate_download_seq = -1; +static int hf_ff_fms_terminate_download_seq = -1; -static int hf_ff_fms_terminate_download_seq_req = -1; -static int hf_ff_fms_terminate_download_seq_req_idx = -1; -static int hf_ff_fms_terminate_download_seq_req_final_result = -1; +static int hf_ff_fms_terminate_download_seq_req = -1; +static int hf_ff_fms_terminate_download_seq_req_idx = -1; +static int hf_ff_fms_terminate_download_seq_req_final_result = -1; -static int hf_ff_fms_terminate_download_seq_rsp = -1; +static int hf_ff_fms_terminate_download_seq_rsp = -1; -static int hf_ff_fms_terminate_download_seq_err = -1; -static int hf_ff_fms_terminate_download_seq_err_err_class = -1; -static int hf_ff_fms_terminate_download_seq_err_err_code = -1; -static int hf_ff_fms_terminate_download_seq_err_additional_code = -1; -static int hf_ff_fms_terminate_download_seq_err_additional_desc = -1; +static int hf_ff_fms_terminate_download_seq_err = -1; +static int hf_ff_fms_terminate_download_seq_err_err_class = -1; +static int hf_ff_fms_terminate_download_seq_err_err_code = -1; +static int hf_ff_fms_terminate_download_seq_err_additional_code = -1; +static int hf_ff_fms_terminate_download_seq_err_additional_desc = -1; -static gint ett_ff_fms_terminate_download_seq_req = -1; -static gint ett_ff_fms_terminate_download_seq_rsp = -1; -static gint ett_ff_fms_terminate_download_seq_err = -1; +static gint ett_ff_fms_terminate_download_seq_req = -1; +static gint ett_ff_fms_terminate_download_seq_rsp = -1; +static gint ett_ff_fms_terminate_download_seq_err = -1; /* * 6.5.3.17. FMS Initiate Upload Sequence (Confirmed Service Id = 12) */ -static int hf_ff_fms_init_upload_seq = -1; +static int hf_ff_fms_init_upload_seq = -1; -static int hf_ff_fms_init_upload_seq_req = -1; -static int hf_ff_fms_init_upload_seq_req_idx = -1; +static int hf_ff_fms_init_upload_seq_req = -1; +static int hf_ff_fms_init_upload_seq_req_idx = -1; -static int hf_ff_fms_init_upload_seq_rsp = -1; +static int hf_ff_fms_init_upload_seq_rsp = -1; -static int hf_ff_fms_init_upload_seq_err = -1; -static int hf_ff_fms_init_upload_seq_err_err_class = -1; -static int hf_ff_fms_init_upload_seq_err_err_code = -1; -static int hf_ff_fms_init_upload_seq_err_additional_code = -1; -static int hf_ff_fms_init_upload_seq_err_additional_desc = -1; +static int hf_ff_fms_init_upload_seq_err = -1; +static int hf_ff_fms_init_upload_seq_err_err_class = -1; +static int hf_ff_fms_init_upload_seq_err_err_code = -1; +static int hf_ff_fms_init_upload_seq_err_additional_code = -1; +static int hf_ff_fms_init_upload_seq_err_additional_desc = -1; -static gint ett_ff_fms_init_upload_seq_req = -1; -static gint ett_ff_fms_init_upload_seq_rsp = -1; -static gint ett_ff_fms_init_upload_seq_err = -1; +static gint ett_ff_fms_init_upload_seq_req = -1; +static gint ett_ff_fms_init_upload_seq_rsp = -1; +static gint ett_ff_fms_init_upload_seq_err = -1; /* * 6.5.3.18. FMS Upload Segment (Confirmed Service Id = 13) */ -static int hf_ff_fms_upload_seg = -1; +static int hf_ff_fms_upload_seg = -1; -static int hf_ff_fms_upload_seg_req = -1; -static int hf_ff_fms_upload_seg_req_idx = -1; +static int hf_ff_fms_upload_seg_req = -1; +static int hf_ff_fms_upload_seg_req_idx = -1; -static int hf_ff_fms_upload_seg_rsp = -1; -static int hf_ff_fms_upload_seg_rsp_more_follows = -1; +static int hf_ff_fms_upload_seg_rsp = -1; +static int hf_ff_fms_upload_seg_rsp_more_follows = -1; -static int hf_ff_fms_upload_seg_err = -1; -static int hf_ff_fms_upload_seg_err_err_class = -1; -static int hf_ff_fms_upload_seg_err_err_code = -1; -static int hf_ff_fms_upload_seg_err_additional_code = -1; -static int hf_ff_fms_upload_seg_err_additional_desc = -1; +static int hf_ff_fms_upload_seg_err = -1; +static int hf_ff_fms_upload_seg_err_err_class = -1; +static int hf_ff_fms_upload_seg_err_err_code = -1; +static int hf_ff_fms_upload_seg_err_additional_code = -1; +static int hf_ff_fms_upload_seg_err_additional_desc = -1; -static gint ett_ff_fms_upload_seg_req = -1; -static gint ett_ff_fms_upload_seg_rsp = -1; -static gint ett_ff_fms_upload_seg_err = -1; +static gint ett_ff_fms_upload_seg_req = -1; +static gint ett_ff_fms_upload_seg_rsp = -1; +static gint ett_ff_fms_upload_seg_err = -1; /* * 6.5.3.19. FMS Terminate Upload Sequence (Confirmed Service Id = 14) */ -static int hf_ff_fms_terminate_upload_seq = -1; +static int hf_ff_fms_terminate_upload_seq = -1; -static int hf_ff_fms_terminate_upload_seq_req = -1; -static int hf_ff_fms_terminate_upload_seq_req_idx = -1; +static int hf_ff_fms_terminate_upload_seq_req = -1; +static int hf_ff_fms_terminate_upload_seq_req_idx = -1; -static int hf_ff_fms_terminate_upload_seq_rsp = -1; +static int hf_ff_fms_terminate_upload_seq_rsp = -1; -static int hf_ff_fms_terminate_upload_seq_err = -1; -static int hf_ff_fms_terminate_upload_seq_err_err_class = -1; -static int hf_ff_fms_terminate_upload_seq_err_err_code = -1; -static int hf_ff_fms_terminate_upload_seq_err_additional_code = -1; -static int hf_ff_fms_terminate_upload_seq_err_additional_desc = -1; +static int hf_ff_fms_terminate_upload_seq_err = -1; +static int hf_ff_fms_terminate_upload_seq_err_err_class = -1; +static int hf_ff_fms_terminate_upload_seq_err_err_code = -1; +static int hf_ff_fms_terminate_upload_seq_err_additional_code = -1; +static int hf_ff_fms_terminate_upload_seq_err_additional_desc = -1; -static gint ett_ff_fms_terminate_upload_seq_req = -1; -static gint ett_ff_fms_terminate_upload_seq_rsp = -1; -static gint ett_ff_fms_terminate_upload_seq_err = -1; +static gint ett_ff_fms_terminate_upload_seq_req = -1; +static gint ett_ff_fms_terminate_upload_seq_rsp = -1; +static gint ett_ff_fms_terminate_upload_seq_err = -1; /* * 6.5.3.20. FMS Request Domain Download (Confirmed Service Id = 15) */ -static int hf_ff_fms_req_dom_download = -1; +static int hf_ff_fms_req_dom_download = -1; -static int hf_ff_fms_req_dom_download_req = -1; -static int hf_ff_fms_req_dom_download_req_idx = -1; -static int hf_ff_fms_req_dom_download_req_additional_info = -1; +static int hf_ff_fms_req_dom_download_req = -1; +static int hf_ff_fms_req_dom_download_req_idx = -1; +static int hf_ff_fms_req_dom_download_req_additional_info = -1; -static int hf_ff_fms_req_dom_download_rsp = -1; +static int hf_ff_fms_req_dom_download_rsp = -1; -static int hf_ff_fms_req_dom_download_err = -1; -static int hf_ff_fms_req_dom_download_err_err_class = -1; -static int hf_ff_fms_req_dom_download_err_err_code = -1; -static int hf_ff_fms_req_dom_download_err_additional_code = -1; -static int hf_ff_fms_req_dom_download_err_additional_desc = -1; +static int hf_ff_fms_req_dom_download_err = -1; +static int hf_ff_fms_req_dom_download_err_err_class = -1; +static int hf_ff_fms_req_dom_download_err_err_code = -1; +static int hf_ff_fms_req_dom_download_err_additional_code = -1; +static int hf_ff_fms_req_dom_download_err_additional_desc = -1; -static gint ett_ff_fms_req_dom_download_req = -1; -static gint ett_ff_fms_req_dom_download_rsp = -1; -static gint ett_ff_fms_req_dom_download_err = -1; +static gint ett_ff_fms_req_dom_download_req = -1; +static gint ett_ff_fms_req_dom_download_rsp = -1; +static gint ett_ff_fms_req_dom_download_err = -1; /* * 6.5.3.21. FMS Request Domain Upload (Confirmed Service Id = 16) */ -static int hf_ff_fms_req_dom_upload = -1; +static int hf_ff_fms_req_dom_upload = -1; -static int hf_ff_fms_req_dom_upload_req = -1; -static int hf_ff_fms_req_dom_upload_req_idx = -1; -static int hf_ff_fms_req_dom_upload_req_additional_info = -1; +static int hf_ff_fms_req_dom_upload_req = -1; +static int hf_ff_fms_req_dom_upload_req_idx = -1; +static int hf_ff_fms_req_dom_upload_req_additional_info = -1; -static int hf_ff_fms_req_dom_upload_rsp = -1; +static int hf_ff_fms_req_dom_upload_rsp = -1; -static int hf_ff_fms_req_dom_upload_err = -1; -static int hf_ff_fms_req_dom_upload_err_err_class = -1; -static int hf_ff_fms_req_dom_upload_err_err_code = -1; -static int hf_ff_fms_req_dom_upload_err_additional_code = -1; -static int hf_ff_fms_req_dom_upload_err_additional_desc = -1; +static int hf_ff_fms_req_dom_upload_err = -1; +static int hf_ff_fms_req_dom_upload_err_err_class = -1; +static int hf_ff_fms_req_dom_upload_err_err_code = -1; +static int hf_ff_fms_req_dom_upload_err_additional_code = -1; +static int hf_ff_fms_req_dom_upload_err_additional_desc = -1; -static gint ett_ff_fms_req_dom_upload_req = -1; -static gint ett_ff_fms_req_dom_upload_rsp = -1; -static gint ett_ff_fms_req_dom_upload_err = -1; +static gint ett_ff_fms_req_dom_upload_req = -1; +static gint ett_ff_fms_req_dom_upload_rsp = -1; +static gint ett_ff_fms_req_dom_upload_err = -1; /* * 6.5.3.22. FMS Create Program Invocation (Confirmed Service Id = 17) */ -static int hf_ff_fms_create_pi = -1; +static int hf_ff_fms_create_pi = -1; -static int hf_ff_fms_create_pi_req = -1; -static int hf_ff_fms_create_pi_req_reusable = -1; -static int hf_ff_fms_create_pi_req_reserved = -1; -static int hf_ff_fms_create_pi_req_num_of_dom_idxes = -1; -static int hf_ff_fms_create_pi_req_dom_idx = -1; +static int hf_ff_fms_create_pi_req = -1; +static int hf_ff_fms_create_pi_req_reusable = -1; +static int hf_ff_fms_create_pi_req_reserved = -1; +static int hf_ff_fms_create_pi_req_num_of_dom_idxes = -1; +static int hf_ff_fms_create_pi_req_dom_idx = -1; -static int hf_ff_fms_create_pi_rsp = -1; -static int hf_ff_fms_create_pi_rsp_idx = -1; +static int hf_ff_fms_create_pi_rsp = -1; +static int hf_ff_fms_create_pi_rsp_idx = -1; -static int hf_ff_fms_create_pi_err = -1; -static int hf_ff_fms_create_pi_err_err_class = -1; -static int hf_ff_fms_create_pi_err_err_code = -1; -static int hf_ff_fms_create_pi_err_additional_code = -1; -static int hf_ff_fms_create_pi_err_additional_desc = -1; +static int hf_ff_fms_create_pi_err = -1; +static int hf_ff_fms_create_pi_err_err_class = -1; +static int hf_ff_fms_create_pi_err_err_code = -1; +static int hf_ff_fms_create_pi_err_additional_code = -1; +static int hf_ff_fms_create_pi_err_additional_desc = -1; -static gint ett_ff_fms_create_pi_req = -1; -static gint ett_ff_fms_create_pi_req_list_of_dom_idxes = -1; -static gint ett_ff_fms_create_pi_rsp = -1; -static gint ett_ff_fms_create_pi_err = -1; +static gint ett_ff_fms_create_pi_req = -1; +static gint ett_ff_fms_create_pi_req_list_of_dom_idxes = -1; +static gint ett_ff_fms_create_pi_rsp = -1; +static gint ett_ff_fms_create_pi_err = -1; /* * 6.5.3.23. FMS Delete Program Invocation (Confirmed Service Id = 18) */ -static int hf_ff_fms_del_pi = -1; -static int hf_ff_fms_del_pi_req = -1; -static int hf_ff_fms_del_pi_req_idx = -1; +static int hf_ff_fms_del_pi = -1; +static int hf_ff_fms_del_pi_req = -1; +static int hf_ff_fms_del_pi_req_idx = -1; -static int hf_ff_fms_del_pi_rsp = -1; +static int hf_ff_fms_del_pi_rsp = -1; -static int hf_ff_fms_del_pi_err = -1; -static int hf_ff_fms_del_pi_err_err_class = -1; -static int hf_ff_fms_del_pi_err_err_code = -1; -static int hf_ff_fms_del_pi_err_additional_code = -1; -static int hf_ff_fms_del_pi_err_additional_desc = -1; +static int hf_ff_fms_del_pi_err = -1; +static int hf_ff_fms_del_pi_err_err_class = -1; +static int hf_ff_fms_del_pi_err_err_code = -1; +static int hf_ff_fms_del_pi_err_additional_code = -1; +static int hf_ff_fms_del_pi_err_additional_desc = -1; -static gint ett_ff_fms_del_pi_req = -1; -static gint ett_ff_fms_del_pi_rsp = -1; -static gint ett_ff_fms_del_pi_err = -1; +static gint ett_ff_fms_del_pi_req = -1; +static gint ett_ff_fms_del_pi_rsp = -1; +static gint ett_ff_fms_del_pi_err = -1; /* * 6.5.3.24. FMS Start (Confirmed Service Id = 19) */ -static int hf_ff_fms_start = -1; -static int hf_ff_fms_start_req = -1; -static int hf_ff_fms_start_req_idx = -1; +static int hf_ff_fms_start = -1; +static int hf_ff_fms_start_req = -1; +static int hf_ff_fms_start_req_idx = -1; -static int hf_ff_fms_start_rsp = -1; +static int hf_ff_fms_start_rsp = -1; -static int hf_ff_fms_start_err = -1; -static int hf_ff_fms_start_err_pi_state = -1; -static int hf_ff_fms_start_err_err_class = -1; -static int hf_ff_fms_start_err_err_code = -1; -static int hf_ff_fms_start_err_additional_code = -1; -static int hf_ff_fms_start_err_additional_desc = -1; +static int hf_ff_fms_start_err = -1; +static int hf_ff_fms_start_err_pi_state = -1; +static int hf_ff_fms_start_err_err_class = -1; +static int hf_ff_fms_start_err_err_code = -1; +static int hf_ff_fms_start_err_additional_code = -1; +static int hf_ff_fms_start_err_additional_desc = -1; -static gint ett_ff_fms_start_req = -1; -static gint ett_ff_fms_start_rsp = -1; -static gint ett_ff_fms_start_err = -1; +static gint ett_ff_fms_start_req = -1; +static gint ett_ff_fms_start_rsp = -1; +static gint ett_ff_fms_start_err = -1; /* * 6.5.3.25. FMS Stop (Confirmed Service Id = 20) */ -static int hf_ff_fms_stop = -1; +static int hf_ff_fms_stop = -1; -static int hf_ff_fms_stop_req = -1; -static int hf_ff_fms_stop_req_idx = -1; +static int hf_ff_fms_stop_req = -1; +static int hf_ff_fms_stop_req_idx = -1; -static int hf_ff_fms_stop_rsp = -1; +static int hf_ff_fms_stop_rsp = -1; -static int hf_ff_fms_stop_err = -1; -static int hf_ff_fms_stop_err_pi_state = -1; -static int hf_ff_fms_stop_err_err_class = -1; -static int hf_ff_fms_stop_err_err_code = -1; -static int hf_ff_fms_stop_err_additional_code = -1; -static int hf_ff_fms_stop_err_additional_desc = -1; +static int hf_ff_fms_stop_err = -1; +static int hf_ff_fms_stop_err_pi_state = -1; +static int hf_ff_fms_stop_err_err_class = -1; +static int hf_ff_fms_stop_err_err_code = -1; +static int hf_ff_fms_stop_err_additional_code = -1; +static int hf_ff_fms_stop_err_additional_desc = -1; -static gint ett_ff_fms_stop_req = -1; -static gint ett_ff_fms_stop_rsp = -1; -static gint ett_ff_fms_stop_err = -1; +static gint ett_ff_fms_stop_req = -1; +static gint ett_ff_fms_stop_rsp = -1; +static gint ett_ff_fms_stop_err = -1; /* * 6.5.3.26. FMS Resume (Confirmed Service Id = 21) */ -static int hf_ff_fms_resume = -1; -static int hf_ff_fms_resume_req = -1; -static int hf_ff_fms_resume_req_idx = -1; +static int hf_ff_fms_resume = -1; +static int hf_ff_fms_resume_req = -1; +static int hf_ff_fms_resume_req_idx = -1; -static int hf_ff_fms_resume_rsp = -1; +static int hf_ff_fms_resume_rsp = -1; -static int hf_ff_fms_resume_err = -1; -static int hf_ff_fms_resume_err_pi_state = -1; -static int hf_ff_fms_resume_err_err_class = -1; -static int hf_ff_fms_resume_err_err_code = -1; -static int hf_ff_fms_resume_err_additional_code = -1; -static int hf_ff_fms_resume_err_additional_desc = -1; +static int hf_ff_fms_resume_err = -1; +static int hf_ff_fms_resume_err_pi_state = -1; +static int hf_ff_fms_resume_err_err_class = -1; +static int hf_ff_fms_resume_err_err_code = -1; +static int hf_ff_fms_resume_err_additional_code = -1; +static int hf_ff_fms_resume_err_additional_desc = -1; -static gint ett_ff_fms_resume_req = -1; -static gint ett_ff_fms_resume_rsp = -1; -static gint ett_ff_fms_resume_err = -1; +static gint ett_ff_fms_resume_req = -1; +static gint ett_ff_fms_resume_rsp = -1; +static gint ett_ff_fms_resume_err = -1; /* * 6.5.3.27. FMS Reset (Confirmed Service Id = 22) */ -static int hf_ff_fms_reset = -1; -static int hf_ff_fms_reset_req = -1; -static int hf_ff_fms_reset_req_idx = -1; +static int hf_ff_fms_reset = -1; +static int hf_ff_fms_reset_req = -1; +static int hf_ff_fms_reset_req_idx = -1; -static int hf_ff_fms_reset_rsp = -1; +static int hf_ff_fms_reset_rsp = -1; -static int hf_ff_fms_reset_err = -1; -static int hf_ff_fms_reset_err_pi_state = -1; -static int hf_ff_fms_reset_err_err_class = -1; -static int hf_ff_fms_reset_err_err_code = -1; -static int hf_ff_fms_reset_err_additional_code = -1; -static int hf_ff_fms_reset_err_additional_desc = -1; +static int hf_ff_fms_reset_err = -1; +static int hf_ff_fms_reset_err_pi_state = -1; +static int hf_ff_fms_reset_err_err_class = -1; +static int hf_ff_fms_reset_err_err_code = -1; +static int hf_ff_fms_reset_err_additional_code = -1; +static int hf_ff_fms_reset_err_additional_desc = -1; -static gint ett_ff_fms_reset_req = -1; -static gint ett_ff_fms_reset_rsp = -1; -static gint ett_ff_fms_reset_err = -1; +static gint ett_ff_fms_reset_req = -1; +static gint ett_ff_fms_reset_rsp = -1; +static gint ett_ff_fms_reset_err = -1; /* * 6.5.3.28. FMS Kill (Confirmed Service Id = 23) */ -static int hf_ff_fms_kill = -1; -static int hf_ff_fms_kill_req = -1; -static int hf_ff_fms_kill_req_idx = -1; +static int hf_ff_fms_kill = -1; +static int hf_ff_fms_kill_req = -1; +static int hf_ff_fms_kill_req_idx = -1; -static int hf_ff_fms_kill_rsp = -1; +static int hf_ff_fms_kill_rsp = -1; -static int hf_ff_fms_kill_err = -1; -static int hf_ff_fms_kill_err_err_class = -1; -static int hf_ff_fms_kill_err_err_code = -1; -static int hf_ff_fms_kill_err_additional_code = -1; -static int hf_ff_fms_kill_err_additional_desc = -1; +static int hf_ff_fms_kill_err = -1; +static int hf_ff_fms_kill_err_err_class = -1; +static int hf_ff_fms_kill_err_err_code = -1; +static int hf_ff_fms_kill_err_additional_code = -1; +static int hf_ff_fms_kill_err_additional_desc = -1; -static gint ett_ff_fms_kill_req = -1; -static gint ett_ff_fms_kill_rsp = -1; -static gint ett_ff_fms_kill_err = -1; +static gint ett_ff_fms_kill_req = -1; +static gint ett_ff_fms_kill_rsp = -1; +static gint ett_ff_fms_kill_err = -1; /* * 6.5.3.29. FMS Read (Confirmed Service Id = 2) */ -static int hf_ff_fms_read = -1; +static int hf_ff_fms_read = -1; -static int hf_ff_fms_read_req = -1; -static int hf_ff_fms_read_req_idx = -1; +static int hf_ff_fms_read_req = -1; +static int hf_ff_fms_read_req_idx = -1; -static int hf_ff_fms_read_rsp = -1; +static int hf_ff_fms_read_rsp = -1; -static int hf_ff_fms_read_err = -1; -static int hf_ff_fms_read_err_err_class = -1; -static int hf_ff_fms_read_err_err_code = -1; -static int hf_ff_fms_read_err_additional_code = -1; -static int hf_ff_fms_read_err_additional_desc = -1; +static int hf_ff_fms_read_err = -1; +static int hf_ff_fms_read_err_err_class = -1; +static int hf_ff_fms_read_err_err_code = -1; +static int hf_ff_fms_read_err_additional_code = -1; +static int hf_ff_fms_read_err_additional_desc = -1; -static gint ett_ff_fms_read_req = -1; -static gint ett_ff_fms_read_rsp = -1; -static gint ett_ff_fms_read_err = -1; +static gint ett_ff_fms_read_req = -1; +static gint ett_ff_fms_read_rsp = -1; +static gint ett_ff_fms_read_err = -1; /* * 6.5.3.30. FMS Read with Subindex (Confirmed Service Id = 82) */ -static int hf_ff_fms_read_with_subidx = -1; +static int hf_ff_fms_read_with_subidx = -1; -static int hf_ff_fms_read_with_subidx_req = -1; -static int hf_ff_fms_read_with_subidx_req_idx = -1; -static int hf_ff_fms_read_with_subidx_req_subidx = -1; +static int hf_ff_fms_read_with_subidx_req = -1; +static int hf_ff_fms_read_with_subidx_req_idx = -1; +static int hf_ff_fms_read_with_subidx_req_subidx = -1; -static int hf_ff_fms_read_with_subidx_rsp = -1; +static int hf_ff_fms_read_with_subidx_rsp = -1; -static int hf_ff_fms_read_with_subidx_err = -1; -static int hf_ff_fms_read_with_subidx_err_err_class = -1; -static int hf_ff_fms_read_with_subidx_err_err_code = -1; -static int hf_ff_fms_read_with_subidx_err_additional_code = -1; -static int hf_ff_fms_read_with_subidx_err_additional_desc = -1; +static int hf_ff_fms_read_with_subidx_err = -1; +static int hf_ff_fms_read_with_subidx_err_err_class = -1; +static int hf_ff_fms_read_with_subidx_err_err_code = -1; +static int hf_ff_fms_read_with_subidx_err_additional_code = -1; +static int hf_ff_fms_read_with_subidx_err_additional_desc = -1; -static gint ett_ff_fms_read_with_subidx_req = -1; -static gint ett_ff_fms_read_with_subidx_rsp = -1; -static gint ett_ff_fms_read_with_subidx_err = -1; +static gint ett_ff_fms_read_with_subidx_req = -1; +static gint ett_ff_fms_read_with_subidx_rsp = -1; +static gint ett_ff_fms_read_with_subidx_err = -1; /* * 6.5.3.31. FMS Write (Confirmed Service Id = 3) */ -static int hf_ff_fms_write = -1; -static int hf_ff_fms_write_req = -1; -static int hf_ff_fms_write_req_idx = -1; +static int hf_ff_fms_write = -1; +static int hf_ff_fms_write_req = -1; +static int hf_ff_fms_write_req_idx = -1; -static int hf_ff_fms_write_rsp = -1; +static int hf_ff_fms_write_rsp = -1; -static int hf_ff_fms_write_err = -1; -static int hf_ff_fms_write_err_err_class = -1; -static int hf_ff_fms_write_err_err_code = -1; -static int hf_ff_fms_write_err_additional_code = -1; -static int hf_ff_fms_write_err_additional_desc = -1; +static int hf_ff_fms_write_err = -1; +static int hf_ff_fms_write_err_err_class = -1; +static int hf_ff_fms_write_err_err_code = -1; +static int hf_ff_fms_write_err_additional_code = -1; +static int hf_ff_fms_write_err_additional_desc = -1; -static gint ett_ff_fms_write_req = -1; -static gint ett_ff_fms_write_rsp = -1; -static gint ett_ff_fms_write_err = -1; +static gint ett_ff_fms_write_req = -1; +static gint ett_ff_fms_write_rsp = -1; +static gint ett_ff_fms_write_err = -1; /* * 6.5.3.32. FMS Write with Subindex (Confirmed Service Id = 83) */ -static int hf_ff_fms_write_with_subidx = -1; +static int hf_ff_fms_write_with_subidx = -1; -static int hf_ff_fms_write_with_subidx_req = -1; -static int hf_ff_fms_write_with_subidx_req_idx = -1; -static int hf_ff_fms_write_with_subidx_req_subidx = -1; +static int hf_ff_fms_write_with_subidx_req = -1; +static int hf_ff_fms_write_with_subidx_req_idx = -1; +static int hf_ff_fms_write_with_subidx_req_subidx = -1; -static int hf_ff_fms_write_with_subidx_rsp = -1; +static int hf_ff_fms_write_with_subidx_rsp = -1; -static int hf_ff_fms_write_with_subidx_err = -1; -static int hf_ff_fms_write_with_subidx_err_err_class = -1; -static int hf_ff_fms_write_with_subidx_err_err_code = -1; -static int hf_ff_fms_write_with_subidx_err_additional_code = -1; -static int hf_ff_fms_write_with_subidx_err_additional_desc = -1; +static int hf_ff_fms_write_with_subidx_err = -1; +static int hf_ff_fms_write_with_subidx_err_err_class = -1; +static int hf_ff_fms_write_with_subidx_err_err_code = -1; +static int hf_ff_fms_write_with_subidx_err_additional_code = -1; +static int hf_ff_fms_write_with_subidx_err_additional_desc = -1; -static gint ett_ff_fms_write_with_subidx_req = -1; -static gint ett_ff_fms_write_with_subidx_rsp = -1; -static gint ett_ff_fms_write_with_subidx_err = -1; +static gint ett_ff_fms_write_with_subidx_req = -1; +static gint ett_ff_fms_write_with_subidx_rsp = -1; +static gint ett_ff_fms_write_with_subidx_err = -1; /* * 6.5.3.33. FMS Define Variable List (Confirmed Service Id = 7) */ -static int hf_ff_fms_def_variable_list = -1; +static int hf_ff_fms_def_variable_list = -1; -static int hf_ff_fms_def_variable_list_req = -1; -static int hf_ff_fms_def_variable_list_req_num_of_idxes = -1; -static int hf_ff_fms_def_variable_list_req_idx = -1; +static int hf_ff_fms_def_variable_list_req = -1; +static int hf_ff_fms_def_variable_list_req_num_of_idxes = -1; +static int hf_ff_fms_def_variable_list_req_idx = -1; -static int hf_ff_fms_def_variable_list_rsp = -1; -static int hf_ff_fms_def_variable_list_rsp_idx = -1; +static int hf_ff_fms_def_variable_list_rsp = -1; +static int hf_ff_fms_def_variable_list_rsp_idx = -1; -static int hf_ff_fms_def_variable_list_err = -1; -static int hf_ff_fms_def_variable_list_err_err_class = -1; -static int hf_ff_fms_def_variable_list_err_err_code = -1; -static int hf_ff_fms_def_variable_list_err_additional_code = -1; -static int hf_ff_fms_def_variable_list_err_additional_desc = -1; +static int hf_ff_fms_def_variable_list_err = -1; +static int hf_ff_fms_def_variable_list_err_err_class = -1; +static int hf_ff_fms_def_variable_list_err_err_code = -1; +static int hf_ff_fms_def_variable_list_err_additional_code = -1; +static int hf_ff_fms_def_variable_list_err_additional_desc = -1; -static gint ett_ff_fms_def_variable_list_req = -1; -static gint ett_ff_fms_def_variable_list_req_list_of_idxes = -1; -static gint ett_ff_fms_def_variable_list_rsp = -1; -static gint ett_ff_fms_def_variable_list_err = -1; +static gint ett_ff_fms_def_variable_list_req = -1; +static gint ett_ff_fms_def_variable_list_req_list_of_idxes = -1; +static gint ett_ff_fms_def_variable_list_rsp = -1; +static gint ett_ff_fms_def_variable_list_err = -1; /* * 6.5.3.34. FMS Delete Variable List (Confirmed Service Id = 8) */ -static int hf_ff_fms_del_variable_list = -1; +static int hf_ff_fms_del_variable_list = -1; -static int hf_ff_fms_del_variable_list_req = -1; -static int hf_ff_fms_del_variable_list_req_idx = -1; +static int hf_ff_fms_del_variable_list_req = -1; +static int hf_ff_fms_del_variable_list_req_idx = -1; -static int hf_ff_fms_del_variable_list_rsp = -1; +static int hf_ff_fms_del_variable_list_rsp = -1; -static int hf_ff_fms_del_variable_list_err = -1; -static int hf_ff_fms_del_variable_list_err_err_class = -1; -static int hf_ff_fms_del_variable_list_err_err_code = -1; -static int hf_ff_fms_del_variable_list_err_additional_code = -1; -static int hf_ff_fms_del_variable_list_err_additional_desc = -1; +static int hf_ff_fms_del_variable_list_err = -1; +static int hf_ff_fms_del_variable_list_err_err_class = -1; +static int hf_ff_fms_del_variable_list_err_err_code = -1; +static int hf_ff_fms_del_variable_list_err_additional_code = -1; +static int hf_ff_fms_del_variable_list_err_additional_desc = -1; -static gint ett_ff_fms_del_variable_list_req = -1; -static gint ett_ff_fms_del_variable_list_rsp = -1; -static gint ett_ff_fms_del_variable_list_err = -1; +static gint ett_ff_fms_del_variable_list_req = -1; +static gint ett_ff_fms_del_variable_list_rsp = -1; +static gint ett_ff_fms_del_variable_list_err = -1; /* * 6.5.3.35. FMS Information Report (Unconfirmed Service Id = 0) */ -static int hf_ff_fms_info_report = -1; +static int hf_ff_fms_info_report = -1; -static int hf_ff_fms_info_report_req = -1; -static int hf_ff_fms_info_report_req_idx = -1; +static int hf_ff_fms_info_report_req = -1; +static int hf_ff_fms_info_report_req_idx = -1; -static gint ett_ff_fms_info_report_req = -1; +static gint ett_ff_fms_info_report_req = -1; /* * 6.5.3.36. FMS Information Report with Subindex (Unconfirmed Service Id = 16) */ -static int hf_ff_fms_info_report_with_subidx = -1; +static int hf_ff_fms_info_report_with_subidx = -1; -static int hf_ff_fms_info_report_with_subidx_req = -1; -static int hf_ff_fms_info_report_with_subidx_req_idx = -1; -static int hf_ff_fms_info_report_with_subidx_req_subidx = -1; +static int hf_ff_fms_info_report_with_subidx_req = -1; +static int hf_ff_fms_info_report_with_subidx_req_idx = -1; +static int hf_ff_fms_info_report_with_subidx_req_subidx = -1; -static gint ett_ff_fms_info_report_with_subidx_req = -1; +static gint ett_ff_fms_info_report_with_subidx_req = -1; /* * 6.5.3.37. FMS Information Report On Change (Unconfirmed Service Id = 17) */ -static int hf_ff_fms_info_report_on_change = -1; +static int hf_ff_fms_info_report_on_change = -1; -static int hf_ff_fms_info_report_on_change_req = -1; -static int hf_ff_fms_info_report_on_change_req_idx = -1; +static int hf_ff_fms_info_report_on_change_req = -1; +static int hf_ff_fms_info_report_on_change_req_idx = -1; -static gint ett_ff_fms_info_report_on_change_req = -1; +static gint ett_ff_fms_info_report_on_change_req = -1; @@ -1209,613 +1208,614 @@ static gint ett_ff_fms_info_report_on_change_req = -1; * 6.5.3.38. FMS Information Report On Change with Subindex * (Unconfirmed Service Id = 18) */ -static int hf_ff_fms_info_report_on_change_with_subidx = -1; +static int hf_ff_fms_info_report_on_change_with_subidx = -1; -static int hf_ff_fms_info_report_on_change_with_subidx_req = -1; -static int hf_ff_fms_info_report_on_change_with_subidx_req_idx = -1; -static int hf_ff_fms_info_report_on_change_with_subidx_req_subidx = -1; +static int hf_ff_fms_info_report_on_change_with_subidx_req = -1; +static int hf_ff_fms_info_report_on_change_with_subidx_req_idx = -1; +static int hf_ff_fms_info_report_on_change_with_subidx_req_subidx = -1; -static gint ett_ff_fms_info_report_on_change_with_subidx_req = -1; +static gint ett_ff_fms_info_report_on_change_with_subidx_req = -1; /* * 6.5.3.39. FMS Event Notification (Unconfirmed Service Id = 2) */ -static int hf_ff_fms_ev_notification = -1; +static int hf_ff_fms_ev_notification = -1; -static int hf_ff_fms_ev_notification_req = -1; -static int hf_ff_fms_ev_notification_req_idx = -1; -static int hf_ff_fms_ev_notification_req_ev_num = -1; +static int hf_ff_fms_ev_notification_req = -1; +static int hf_ff_fms_ev_notification_req_idx = -1; +static int hf_ff_fms_ev_notification_req_ev_num = -1; -static gint ett_ff_fms_ev_notification_req = -1; +static gint ett_ff_fms_ev_notification_req = -1; /* * 6.5.3.40. FMS Alter Event Condition Monitoring (Confirmed Service Id = 24) */ -static int hf_ff_fms_alter_ev_condition_monitoring = -1; +static int hf_ff_fms_alter_ev_condition_monitoring = -1; -static int hf_ff_fms_alter_ev_condition_monitoring_req = -1; -static int hf_ff_fms_alter_ev_condition_monitoring_req_idx = -1; -static int hf_ff_fms_alter_ev_condition_monitoring_req_enabled = -1; +static int hf_ff_fms_alter_ev_condition_monitoring_req = -1; +static int hf_ff_fms_alter_ev_condition_monitoring_req_idx = -1; +static int hf_ff_fms_alter_ev_condition_monitoring_req_enabled = -1; -static int hf_ff_fms_alter_ev_condition_monitoring_rsp = -1; +static int hf_ff_fms_alter_ev_condition_monitoring_rsp = -1; -static int hf_ff_fms_alter_ev_condition_monitoring_err = -1; -static int hf_ff_fms_alter_ev_condition_monitoring_err_err_class = -1; -static int hf_ff_fms_alter_ev_condition_monitoring_err_err_code = -1; -static int hf_ff_fms_alter_ev_condition_monitoring_err_additional_code = -1; -static int hf_ff_fms_alter_ev_condition_monitoring_err_additional_desc = -1; +static int hf_ff_fms_alter_ev_condition_monitoring_err = -1; +static int hf_ff_fms_alter_ev_condition_monitoring_err_err_class = -1; +static int hf_ff_fms_alter_ev_condition_monitoring_err_err_code = -1; +static int hf_ff_fms_alter_ev_condition_monitoring_err_additional_code = -1; +static int hf_ff_fms_alter_ev_condition_monitoring_err_additional_desc = -1; -static gint ett_ff_fms_alter_ev_condition_monitoring_req = -1; -static gint ett_ff_fms_alter_ev_condition_monitoring_rsp = -1; -static gint ett_ff_fms_alter_ev_condition_monitoring_err = -1; +static gint ett_ff_fms_alter_ev_condition_monitoring_req = -1; +static gint ett_ff_fms_alter_ev_condition_monitoring_rsp = -1; +static gint ett_ff_fms_alter_ev_condition_monitoring_err = -1; /* * 6.5.3.41. FMS Acknowledge Event Notification (Confirmed Service Id = 25) */ -static int hf_ff_fms_ack_ev_notification = -1; +static int hf_ff_fms_ack_ev_notification = -1; -static int hf_ff_fms_ack_ev_notification_req = -1; -static int hf_ff_fms_ack_ev_notification_req_idx = -1; -static int hf_ff_fms_ack_ev_notification_req_ev_num = -1; +static int hf_ff_fms_ack_ev_notification_req = -1; +static int hf_ff_fms_ack_ev_notification_req_idx = -1; +static int hf_ff_fms_ack_ev_notification_req_ev_num = -1; -static int hf_ff_fms_ack_ev_notification_rsp = -1; +static int hf_ff_fms_ack_ev_notification_rsp = -1; -static int hf_ff_fms_ack_ev_notification_err = -1; -static int hf_ff_fms_ack_ev_notification_err_err_class = -1; -static int hf_ff_fms_ack_ev_notification_err_err_code = -1; -static int hf_ff_fms_ack_ev_notification_err_additional_code = -1; -static int hf_ff_fms_ack_ev_notification_err_additional_desc = -1; +static int hf_ff_fms_ack_ev_notification_err = -1; +static int hf_ff_fms_ack_ev_notification_err_err_class = -1; +static int hf_ff_fms_ack_ev_notification_err_err_code = -1; +static int hf_ff_fms_ack_ev_notification_err_additional_code = -1; +static int hf_ff_fms_ack_ev_notification_err_additional_desc = -1; -static gint ett_ff_fms_ack_ev_notification_req = -1; -static gint ett_ff_fms_ack_ev_notification_rsp = -1; -static gint ett_ff_fms_ack_ev_notification_err = -1; +static gint ett_ff_fms_ack_ev_notification_req = -1; +static gint ett_ff_fms_ack_ev_notification_rsp = -1; +static gint ett_ff_fms_ack_ev_notification_err = -1; /* * 6.5.4. LAN Redundancy Services */ -static int hf_ff_lr = -1; +static int hf_ff_lr = -1; /* * 6.5.4.1. LAN Redundancy Get Information (Confirmed Service Id = 1) */ -static int hf_ff_lr_get_info = -1; - -static int hf_ff_lr_get_info_req = -1; - -static int hf_ff_lr_get_info_rsp = -1; -static int hf_ff_lr_get_info_rsp_lr_attrs_ver = -1; -static int hf_ff_lr_get_info_rsp_lr_max_msg_num_diff = -1; -static int hf_ff_lr_get_info_rsp_reserved = -1; -static int hf_ff_lr_get_info_rsp_diagnostic_msg_intvl = -1; -static int hf_ff_lr_get_info_rsp_aging_time = -1; -static int hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_send_addr = -1; -static int hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_recv_addr = -1; -static int hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_send_addr = -1; -static int hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_recv_addr = -1; -static int hf_ff_lr_get_info_rsp_lr_flags_reserved = -1; -static int hf_ff_lr_get_info_rsp_lr_flags_load_balance = -1; -static int hf_ff_lr_get_info_rsp_lr_flags_diag = -1; -static int hf_ff_lr_get_info_rsp_lr_flags_multi_recv = -1; -static int hf_ff_lr_get_info_rsp_lr_flags_cross_cable = -1; -static int hf_ff_lr_get_info_rsp_lr_flags_multi_trans = -1; - -static int hf_ff_lr_get_info_err = -1; -static int hf_ff_lr_get_info_err_err_class = -1; -static int hf_ff_lr_get_info_err_err_code = -1; -static int hf_ff_lr_get_info_err_additional_code = -1; -static int hf_ff_lr_get_info_err_additional_desc = -1; - -static gint ett_ff_lr_get_info_req = -1; -static gint ett_ff_lr_get_info_rsp = -1; -static gint ett_ff_lr_get_info_rsp_lr_flags = -1; -static gint ett_ff_lr_get_info_err = -1; +static int hf_ff_lr_get_info = -1; + +static int hf_ff_lr_get_info_req = -1; + +static int hf_ff_lr_get_info_rsp = -1; +static int hf_ff_lr_get_info_rsp_lr_attrs_ver = -1; +static int hf_ff_lr_get_info_rsp_lr_max_msg_num_diff = -1; +static int hf_ff_lr_get_info_rsp_reserved = -1; +static int hf_ff_lr_get_info_rsp_diagnostic_msg_intvl = -1; +static int hf_ff_lr_get_info_rsp_aging_time = -1; +static int hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_send_addr = -1; +static int hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_recv_addr = -1; +static int hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_send_addr = -1; +static int hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_recv_addr = -1; +static int hf_ff_lr_get_info_rsp_lr_flags_reserved = -1; +static int hf_ff_lr_get_info_rsp_lr_flags_load_balance = -1; +static int hf_ff_lr_get_info_rsp_lr_flags_diag = -1; +static int hf_ff_lr_get_info_rsp_lr_flags_multi_recv = -1; +static int hf_ff_lr_get_info_rsp_lr_flags_cross_cable = -1; +static int hf_ff_lr_get_info_rsp_lr_flags_multi_trans = -1; + +static int hf_ff_lr_get_info_err = -1; +static int hf_ff_lr_get_info_err_err_class = -1; +static int hf_ff_lr_get_info_err_err_code = -1; +static int hf_ff_lr_get_info_err_additional_code = -1; +static int hf_ff_lr_get_info_err_additional_desc = -1; + +static gint ett_ff_lr_get_info_req = -1; +static gint ett_ff_lr_get_info_rsp = -1; +static gint ett_ff_lr_get_info_rsp_lr_flags = -1; +static gint ett_ff_lr_get_info_err = -1; /* * 6.5.4.2. LAN Redundancy Put Information (Confirmed Service Id = 2) */ -static int hf_ff_lr_put_info = -1; - -static int hf_ff_lr_put_info_req = -1; -static int hf_ff_lr_put_info_req_lr_attrs_ver = -1; -static int hf_ff_lr_put_info_req_lr_max_msg_num_diff = -1; -static int hf_ff_lr_put_info_req_reserved = -1; -static int hf_ff_lr_put_info_req_diagnostic_msg_intvl = -1; -static int hf_ff_lr_put_info_req_aging_time = -1; -static int hf_ff_lr_put_info_req_diagnostic_msg_if_a_send_addr = -1; -static int hf_ff_lr_put_info_req_diagnostic_msg_if_a_recv_addr = -1; -static int hf_ff_lr_put_info_req_diagnostic_msg_if_b_send_addr = -1; -static int hf_ff_lr_put_info_req_diagnostic_msg_if_b_recv_addr = -1; -static int hf_ff_lr_put_info_req_lr_flags_reserved = -1; -static int hf_ff_lr_put_info_req_lr_flags_load_balance = -1; -static int hf_ff_lr_put_info_req_lr_flags_diag = -1; -static int hf_ff_lr_put_info_req_lr_flags_multi_recv = -1; -static int hf_ff_lr_put_info_req_lr_flags_cross_cable = -1; -static int hf_ff_lr_put_info_req_lr_flags_multi_trans = -1; - -static int hf_ff_lr_put_info_rsp = -1; -static int hf_ff_lr_put_info_rsp_lr_attrs_ver = -1; -static int hf_ff_lr_put_info_rsp_lr_max_msg_num_diff = -1; -static int hf_ff_lr_put_info_rsp_reserved = -1; -static int hf_ff_lr_put_info_rsp_diagnostic_msg_intvl = -1; -static int hf_ff_lr_put_info_rsp_aging_time = -1; -static int hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_send_addr = -1; -static int hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_recv_addr = -1; -static int hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_send_addr = -1; -static int hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_recv_addr = -1; -static int hf_ff_lr_put_info_rsp_lr_flags_reserved = -1; -static int hf_ff_lr_put_info_rsp_lr_flags_load_balance = -1; -static int hf_ff_lr_put_info_rsp_lr_flags_diag = -1; -static int hf_ff_lr_put_info_rsp_lr_flags_multi_recv = -1; -static int hf_ff_lr_put_info_rsp_lr_flags_cross_cable = -1; -static int hf_ff_lr_put_info_rsp_lr_flags_multi_trans = -1; - -static int hf_ff_lr_put_info_err = -1; -static int hf_ff_lr_put_info_err_err_class = -1; -static int hf_ff_lr_put_info_err_err_code = -1; -static int hf_ff_lr_put_info_err_additional_code = -1; -static int hf_ff_lr_put_info_err_additional_desc = -1; - -static gint ett_ff_lr_put_info_req = -1; -static gint ett_ff_lr_put_info_req_lr_flags = -1; -static gint ett_ff_lr_put_info_rsp = -1; -static gint ett_ff_lr_put_info_rsp_lr_flags = -1; -static gint ett_ff_lr_put_info_err = -1; +static int hf_ff_lr_put_info = -1; + +static int hf_ff_lr_put_info_req = -1; +static int hf_ff_lr_put_info_req_lr_attrs_ver = -1; +static int hf_ff_lr_put_info_req_lr_max_msg_num_diff = -1; +static int hf_ff_lr_put_info_req_reserved = -1; +static int hf_ff_lr_put_info_req_diagnostic_msg_intvl = -1; +static int hf_ff_lr_put_info_req_aging_time = -1; +static int hf_ff_lr_put_info_req_diagnostic_msg_if_a_send_addr = -1; +static int hf_ff_lr_put_info_req_diagnostic_msg_if_a_recv_addr = -1; +static int hf_ff_lr_put_info_req_diagnostic_msg_if_b_send_addr = -1; +static int hf_ff_lr_put_info_req_diagnostic_msg_if_b_recv_addr = -1; +static int hf_ff_lr_put_info_req_lr_flags_reserved = -1; +static int hf_ff_lr_put_info_req_lr_flags_load_balance = -1; +static int hf_ff_lr_put_info_req_lr_flags_diag = -1; +static int hf_ff_lr_put_info_req_lr_flags_multi_recv = -1; +static int hf_ff_lr_put_info_req_lr_flags_cross_cable = -1; +static int hf_ff_lr_put_info_req_lr_flags_multi_trans = -1; + +static int hf_ff_lr_put_info_rsp = -1; +static int hf_ff_lr_put_info_rsp_lr_attrs_ver = -1; +static int hf_ff_lr_put_info_rsp_lr_max_msg_num_diff = -1; +static int hf_ff_lr_put_info_rsp_reserved = -1; +static int hf_ff_lr_put_info_rsp_diagnostic_msg_intvl = -1; +static int hf_ff_lr_put_info_rsp_aging_time = -1; +static int hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_send_addr = -1; +static int hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_recv_addr = -1; +static int hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_send_addr = -1; +static int hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_recv_addr = -1; +static int hf_ff_lr_put_info_rsp_lr_flags_reserved = -1; +static int hf_ff_lr_put_info_rsp_lr_flags_load_balance = -1; +static int hf_ff_lr_put_info_rsp_lr_flags_diag = -1; +static int hf_ff_lr_put_info_rsp_lr_flags_multi_recv = -1; +static int hf_ff_lr_put_info_rsp_lr_flags_cross_cable = -1; +static int hf_ff_lr_put_info_rsp_lr_flags_multi_trans = -1; + +static int hf_ff_lr_put_info_err = -1; +static int hf_ff_lr_put_info_err_err_class = -1; +static int hf_ff_lr_put_info_err_err_code = -1; +static int hf_ff_lr_put_info_err_additional_code = -1; +static int hf_ff_lr_put_info_err_additional_desc = -1; + +static gint ett_ff_lr_put_info_req = -1; +static gint ett_ff_lr_put_info_req_lr_flags = -1; +static gint ett_ff_lr_put_info_rsp = -1; +static gint ett_ff_lr_put_info_rsp_lr_flags = -1; +static gint ett_ff_lr_put_info_err = -1; /* * 6.5.4.3. LAN Redundancy Get Statistics (Confirmed Service Id = 3) */ -static int hf_ff_lr_get_statistics = -1; +static int hf_ff_lr_get_statistics = -1; -static int hf_ff_lr_get_statistics_req = -1; +static int hf_ff_lr_get_statistics_req = -1; -static int hf_ff_lr_get_statistics_rsp = -1; -static int hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_a = -1; -static int hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_a = -1; -static int hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_a = -1; -static int hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_b = -1; -static int hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_b = -1; -static int hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_b = -1; -static int hf_ff_lr_get_statistics_rsp_num_x_cable_stat = -1; -static int hf_ff_lr_get_statistics_rsp_x_cable_stat = -1; +static int hf_ff_lr_get_statistics_rsp = -1; +static int hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_a = -1; +static int hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_a = -1; +static int hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_a = -1; +static int hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_b = -1; +static int hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_b = -1; +static int hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_b = -1; +static int hf_ff_lr_get_statistics_rsp_num_x_cable_stat = -1; +static int hf_ff_lr_get_statistics_rsp_x_cable_stat = -1; -static int hf_ff_lr_get_statistics_err = -1; -static int hf_ff_lr_get_statistics_err_err_class = -1; -static int hf_ff_lr_get_statistics_err_err_code = -1; -static int hf_ff_lr_get_statistics_err_additional_code = -1; -static int hf_ff_lr_get_statistics_err_additional_desc = -1; +static int hf_ff_lr_get_statistics_err = -1; +static int hf_ff_lr_get_statistics_err_err_class = -1; +static int hf_ff_lr_get_statistics_err_err_code = -1; +static int hf_ff_lr_get_statistics_err_additional_code = -1; +static int hf_ff_lr_get_statistics_err_additional_desc = -1; -static gint ett_ff_lr_get_statistics_req = -1; -static gint ett_ff_lr_get_statistics_rsp = -1; -static gint ett_ff_lr_get_statistics_rsp_list_of_x_cable_stat = -1; -static gint ett_ff_lr_get_statistics_err = -1; +static gint ett_ff_lr_get_statistics_req = -1; +static gint ett_ff_lr_get_statistics_rsp = -1; +static gint ett_ff_lr_get_statistics_rsp_list_of_x_cable_stat = -1; +static gint ett_ff_lr_get_statistics_err = -1; /* * 6.5.4.4. Diagnostic Message (Unconfirmed Service Id = 1) */ -static int hf_ff_lr_diagnostic_msg = -1; - -static int hf_ff_lr_diagnostic_msg_req = -1; -static int hf_ff_lr_diagnostic_msg_req_dev_idx = -1; -static int hf_ff_lr_diagnostic_msg_req_num_of_network_ifs = -1; -static int hf_ff_lr_diagnostic_msg_req_transmission_if = -1; -static int hf_ff_lr_diagnostic_msg_req_diagnostic_msg_intvl = -1; -static int hf_ff_lr_diagnostic_msg_req_pd_tag = -1; -static int hf_ff_lr_diagnostic_msg_req_reserved = -1; -static int hf_ff_lr_diagnostic_msg_req_num_of_if_statuses = -1; -static int hf_ff_lr_diagnostic_msg_req_if_a_to_a_status = -1; -static int hf_ff_lr_diagnostic_msg_req_if_b_to_a_status = -1; -static int hf_ff_lr_diagnostic_msg_req_if_a_to_b_status = -1; -static int hf_ff_lr_diagnostic_msg_req_if_b_to_b_status = -1; -static int hf_ff_lr_diagnostic_msg_req_dup_detection_state_reserved = -1; -static int hf_ff_lr_diagnostic_msg_req_dup_detection_state_pd_tag = -1; -static int hf_ff_lr_diagnostic_msg_req_dup_detection_state_device = -1; - -static gint ett_ff_lr_diagnostic_msg_req = -1; -static gint ett_ff_lr_diagnostic_msg_req_dup_detection_stat = -1; -static gint ett_ff_lr_diagnostic_msg_req_a_to_a_status = -1; -static gint ett_ff_lr_diagnostic_msg_req_b_to_a_status = -1; -static gint ett_ff_lr_diagnostic_msg_req_a_to_b_status = -1; -static gint ett_ff_lr_diagnostic_msg_req_b_to_b_status = -1; +static int hf_ff_lr_diagnostic_msg = -1; + +static int hf_ff_lr_diagnostic_msg_req = -1; +static int hf_ff_lr_diagnostic_msg_req_dev_idx = -1; +static int hf_ff_lr_diagnostic_msg_req_num_of_network_ifs = -1; +static int hf_ff_lr_diagnostic_msg_req_transmission_if = -1; +static int hf_ff_lr_diagnostic_msg_req_diagnostic_msg_intvl = -1; +static int hf_ff_lr_diagnostic_msg_req_pd_tag = -1; +static int hf_ff_lr_diagnostic_msg_req_reserved = -1; +static int hf_ff_lr_diagnostic_msg_req_num_of_if_statuses = -1; +static int hf_ff_lr_diagnostic_msg_req_if_a_to_a_status = -1; +static int hf_ff_lr_diagnostic_msg_req_if_b_to_a_status = -1; +static int hf_ff_lr_diagnostic_msg_req_if_a_to_b_status = -1; +static int hf_ff_lr_diagnostic_msg_req_if_b_to_b_status = -1; +static int hf_ff_lr_diagnostic_msg_req_dup_detection_state_reserved = -1; +static int hf_ff_lr_diagnostic_msg_req_dup_detection_state_pd_tag = -1; +static int hf_ff_lr_diagnostic_msg_req_dup_detection_state_device = -1; + +static gint ett_ff_lr_diagnostic_msg_req = -1; +static gint ett_ff_lr_diagnostic_msg_req_dup_detection_stat = -1; +static gint ett_ff_lr_diagnostic_msg_req_a_to_a_status = -1; +static gint ett_ff_lr_diagnostic_msg_req_b_to_a_status = -1; +static gint ett_ff_lr_diagnostic_msg_req_a_to_b_status = -1; +static gint ett_ff_lr_diagnostic_msg_req_b_to_b_status = -1; static const value_string names_pad_len[] = { - { 0x00, "No padding" }, - { OPTION_PAD_4BYTE, "pad to 4 byte boundary" }, - { OPTION_PAD_8BYTE, "pad to 8 byte boundary" }, - { 0, NULL } + { 0x00, "No padding" }, + { OPTION_PAD_4BYTE, "pad to 4 byte boundary" }, + { OPTION_PAD_8BYTE, "pad to 8 byte boundary" }, + { 0, NULL } }; static const value_string names_proto[] = { - { 0x00, "Unused"}, - { PROTOCOL_FDA, "FDA Session Management" }, - { PROTOCOL_SM, "SM" }, - { PROTOCOL_FMS, "FMS" }, - { PROTOCOL_LAN, "LAN Redundancy" }, - { 0, NULL } + { 0x00, "Unused"}, + { PROTOCOL_FDA, "FDA Session Management" }, + { PROTOCOL_SM, "SM" }, + { PROTOCOL_FMS, "FMS" }, + { PROTOCOL_LAN, "LAN Redundancy" }, + { 0, NULL } }; static const value_string names_type[] = { - { TYPE_REQUEST, "Request Message" }, - { TYPE_RESPONSE, "Response Message" }, - { TYPE_ERROR, "Error Message" }, - { 0, NULL } + { TYPE_REQUEST, "Request Message" }, + { TYPE_RESPONSE, "Response Message" }, + { TYPE_ERROR, "Error Message" }, + { 0, NULL } }; static const value_string names_nma_conf_use[] = { - { 0, "NMA Configuration Not Permitted" }, - { 1, "NMA Configuration Permitted" }, - { 0, NULL } + { 0, "NMA Configuration Not Permitted" }, + { 1, "NMA Configuration Permitted" }, + { 0, NULL } }; static const value_string names_query_type[] = { - { 0, "PD Tag query for primary device" }, - { 1, "VFD tag query" }, - { 2, "Function-Block tag query" }, - { 3, "Element Id query" }, - { 4, "PD Tag/VFD Reference query" }, - { 5, "Device Index query" }, - { 6, "PD Tag query for secondary or member of redundant set" }, - { 0, NULL } + { 0, "PD Tag query for primary device" }, + { 1, "VFD tag query" }, + { 2, "Function-Block tag query" }, + { 3, "Element Id query" }, + { 4, "PD Tag/VFD Reference query" }, + { 5, "Device Index query" }, + { 6, "PD Tag query for secondary or member of redundant set" }, + { 0, NULL } }; static const value_string names_smk_state[] = { - { 0x02, "NO_TAG" }, /* 0000 0010 */ - { 0x04, "OPERATIONAL" }, /* 0000 0100 */ - { 0, NULL } + { 0x02, "NO_TAG" }, /* 0000 0010 */ + { 0x04, "OPERATIONAL" }, /* 0000 0100 */ + { 0, NULL } }; static const value_string names_dev_type[] = { - { 0x00, "Type D-1 Device" }, /* 0000 0000 */ - { 0x01, "Type D-2 Device" }, /* 0000 0001 */ - { 0x02, "Type D-3 Device" }, /* 0000 0010 */ - { 0x03, "Type D-3 and Type D-2 Device" }, /* 0000 0011 */ - { 0x04, "Not used" }, /* 0000 0100 */ - { 0x05, "Type D-2 and Type D-1 Device" }, /* 0000 0101 */ - { 0x06, "Type D-3 and Type D-1 Device" }, /* 0000 0110 */ - { 0x07, "Type D-3 and D-2 and Type D-1 Device" }, /* 0000 0111 */ - { 0, NULL } + { 0x00, "Type D-1 Device" }, /* 0000 0000 */ + { 0x01, "Type D-2 Device" }, /* 0000 0001 */ + { 0x02, "Type D-3 Device" }, /* 0000 0010 */ + { 0x03, "Type D-3 and Type D-2 Device" }, /* 0000 0011 */ + { 0x04, "Not used" }, /* 0000 0100 */ + { 0x05, "Type D-2 and Type D-1 Device" }, /* 0000 0101 */ + { 0x06, "Type D-3 and Type D-1 Device" }, /* 0000 0110 */ + { 0x07, "Type D-3 and D-2 and Type D-1 Device" }, /* 0000 0111 */ + { 0, NULL } }; static const value_string names_dev_redundancy_role[] = { - { 0x04, "Primary" }, /* 0000 0100 */ - { 0x08, "Secondary" }, /* 0000 1000 */ - { 0, NULL } + { 0x04, "Primary" }, /* 0000 0100 */ + { 0x08, "Secondary" }, /* 0000 1000 */ + { 0, NULL } }; static const value_string names_assigned_redundant_dev_type[] = { - { 0x00, "Type D-1 Device" }, /* 0000 0000 */ - { 0x01, "Type D-2 Device" }, /* 0000 0001 */ - { 0x02, "Type D-3 Device" }, /* 0000 0010 */ - { 0, NULL } + { 0x00, "Type D-1 Device" }, /* 0000 0000 */ + { 0x01, "Type D-2 Device" }, /* 0000 0001 */ + { 0x02, "Type D-3 Device" }, /* 0000 0010 */ + { 0, NULL } }; static const value_string names_type_d2_dev_redundancy_role[] = { - { 0x00, "Not used" }, /* 0000 0000 */ - { 0x04, "Type D-2 Device Primary" }, /* 0000 0100 */ - { 0x08, "Type D-2 Device Secondary" }, /* 0000 1000 */ - { 0, NULL } + { 0x00, "Not used" }, /* 0000 0000 */ + { 0x04, "Type D-2 Device Primary" }, /* 0000 0100 */ + { 0x08, "Type D-2 Device Secondary" }, /* 0000 1000 */ + { 0, NULL } }; static const value_string names_conn_opt[] = { - { 1, "VCR Selector" }, - { 2, "NMA Access" }, - { 3, "FBAP Access" }, - { 0, NULL } + { 1, "VCR Selector" }, + { 2, "NMA Access" }, + { 3, "FBAP Access" }, + { 0, NULL } }; static const value_string names_fda_unconfirmed[] = { - { 0, NULL } + { 0, NULL } }; static const value_string names_fda_confirmed[] = { - { FDA_OPEN_SESSION, "FDA Open Session" }, - { FDA_IDLE, "FDA Idle" }, - { 0, NULL } + { FDA_OPEN_SESSION, "FDA Open Session" }, + { FDA_IDLE, "FDA Idle" }, + { 0, NULL } }; static const value_string names_sm_unconfirmed[] = { - { HSE_SM_FIND_TAG_QUERY, "SM Find Tag Query" }, - { HSE_SM_FIND_TAG_REPLY, "SM Find Tag Reply" }, - { HSE_SM_DEVICE_ANNUNCIATION, "SM Device Annunciation" }, - { 0, NULL } + { HSE_SM_FIND_TAG_QUERY, "SM Find Tag Query" }, + { HSE_SM_FIND_TAG_REPLY, "SM Find Tag Reply" }, + { HSE_SM_DEVICE_ANNUNCIATION, "SM Device Annunciation" }, + { 0, NULL } }; static const value_string names_sm_confirmed[] = { - { HSE_SM_IDENTIFY, "SM Identify" }, - { HSE_SM_CLEAR_ADDRESS, "SM Clear Address" }, - { HSE_SM_SET_ASSIGNMENT, "SM Set Assignment Info" }, - { HSE_SM_CLEAR_ASSIGNMENT, "SM Clear Assignment Info" }, - { 0, NULL } + { HSE_SM_IDENTIFY, "SM Identify" }, + { HSE_SM_CLEAR_ADDRESS, "SM Clear Address" }, + { HSE_SM_SET_ASSIGNMENT, "SM Set Assignment Info" }, + { HSE_SM_CLEAR_ASSIGNMENT, "SM Clear Assignment Info" }, + { 0, NULL } }; static const value_string names_fms_unconfirmed[] = { - { HSE_FMS_INFORMATION_REPORT, "FMS Information Report" }, - { HSE_FMS_UNSOLICITED_STATUS, "FMS Unsolicited Status" }, - { HSE_FMS_EVENT_NOTIFICATION, "FMS Event Notification" }, - { HSE_FMS_INFORMATION_REPORT_WITH_SUBINDEX, - "FMS Information Report with Subindex" }, - { HSE_FMS_INFORMATION_REPORT_ON_CHANGE, - "FMS Information Report On Change" }, - { HSE_FMS_INFORMATION_REPORT_ON_CHANGE_WITH_SUBINDEX, - "FMS Information Report On Change with Subindex" }, - { HSE_FMS_ABORT, "FMS Abort" }, - { 0, NULL } + { HSE_FMS_INFORMATION_REPORT, "FMS Information Report" }, + { HSE_FMS_UNSOLICITED_STATUS, "FMS Unsolicited Status" }, + { HSE_FMS_EVENT_NOTIFICATION, "FMS Event Notification" }, + { HSE_FMS_INFORMATION_REPORT_WITH_SUBINDEX, + "FMS Information Report with Subindex" }, + { HSE_FMS_INFORMATION_REPORT_ON_CHANGE, + "FMS Information Report On Change" }, + { HSE_FMS_INFORMATION_REPORT_ON_CHANGE_WITH_SUBINDEX, + "FMS Information Report On Change with Subindex" }, + { HSE_FMS_ABORT, "FMS Abort" }, + { 0, NULL } }; static const value_string names_fms_confirmed[] = { - { HSE_FMS_STATUS, "FMS Status" }, - { HSE_FMS_IDENTIFY, "FMS Identify" }, - { HSE_FMS_READ, "FMS Read" }, - { HSE_FMS_WRITE, "FMS Write" }, - { HSE_FMS_GET_OD, "FMS Get OD" }, - { HSE_FMS_DEFINE_VARIABLE_LIST, "FMS Define Variable List" }, - { HSE_FMS_DELETE_VARIABLE_LIST, "FMS Delete Variable List" }, - { HSE_FMS_INITIATE_DOWNLOAD_SEQUENCE, "FMS Initiate Download Sequence" }, - { HSE_FMS_DOWNLOAD_SEGMENT, "FMS Download Segment" }, - { HSE_FMS_TERMINATE_DOWNLOAD_SEQUENCE, "FMS Terminate Download Sequence" }, - { HSE_FMS_INITIATE_UPLOAD_SEQUENCE, "FMS Initiate Upload Sequence" }, - { HSE_FMS_UPLOAD_SEGMENT, "FMS Upload Segment" }, - { HSE_FMS_TERMINATE_UPLOAD_SEQUENCE, "FMS Terminate Upload Sequence" }, - { HSE_FMS_REQUEST_DOMAIN_DOWNLOAD, "FMS Request Domain Download" }, - { HSE_FMS_REQUEST_DOMAIN_UPLOAD, "FMS Request Domain Upload" }, - { HSE_FMS_CREATE_PROGRAM_INVOCATION, "FMS Create Program Invocation" }, - { HSE_FMS_DELETE_PROGRAM_INVOCATION, "FMS Delete Program Invocation" }, - { HSE_FMS_START, "FMS Start" }, - { HSE_FMS_STOP, "FMS Stop" }, - { HSE_FMS_RESUME, "FMS Resume" }, - { HSE_FMS_RESET, "FMS Reset" }, - { HSE_FMS_KILL, "FMS Kill" }, - { HSE_FMS_ALTER_EVENT_CONDITION_MONITORING, - "FMS Alter Event Condition Monitoring" }, - { HSE_FMS_ACKNOWLEDGE_EVENT_NOTIFICATION, - "FMS Acknowledge Event Notification" }, - { HSE_FMS_INITIATE_PUT_OD, "FMS Initiate Put OD" }, - { HSE_FMS_PUT_OD, "FMS Put OD" }, - { HSE_FMS_TERMINATE_PUT_OD, "FMS Terminate Put OD" }, - { HSE_FMS_GENERIC_INITIATE_DOWNLOAD_SEQUENCE, - "FMS Generic Initiate Download Sequence" }, - { HSE_FMS_GENERIC_DOWNLOAD_SEGMENT, "FMS Generic Download Segment" }, - { HSE_FMS_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE, - "FMS Generic Terminate Download Sequence" }, - { HSE_FMS_READ_WITH_SUBINDEX, "FMS Read with Subindex" }, - { HSE_FMS_WRITE_WITH_SUBINDEX, "FMS Write with Subindex" }, - { HSE_FMS_INITIATE, "FMS Initiate" }, - { 0, NULL } + { HSE_FMS_STATUS, "FMS Status" }, + { HSE_FMS_IDENTIFY, "FMS Identify" }, + { HSE_FMS_READ, "FMS Read" }, + { HSE_FMS_WRITE, "FMS Write" }, + { HSE_FMS_GET_OD, "FMS Get OD" }, + { HSE_FMS_DEFINE_VARIABLE_LIST, "FMS Define Variable List" }, + { HSE_FMS_DELETE_VARIABLE_LIST, "FMS Delete Variable List" }, + { HSE_FMS_INITIATE_DOWNLOAD_SEQUENCE, "FMS Initiate Download Sequence" }, + { HSE_FMS_DOWNLOAD_SEGMENT, "FMS Download Segment" }, + { HSE_FMS_TERMINATE_DOWNLOAD_SEQUENCE, "FMS Terminate Download Sequence" }, + { HSE_FMS_INITIATE_UPLOAD_SEQUENCE, "FMS Initiate Upload Sequence" }, + { HSE_FMS_UPLOAD_SEGMENT, "FMS Upload Segment" }, + { HSE_FMS_TERMINATE_UPLOAD_SEQUENCE, "FMS Terminate Upload Sequence" }, + { HSE_FMS_REQUEST_DOMAIN_DOWNLOAD, "FMS Request Domain Download" }, + { HSE_FMS_REQUEST_DOMAIN_UPLOAD, "FMS Request Domain Upload" }, + { HSE_FMS_CREATE_PROGRAM_INVOCATION, "FMS Create Program Invocation" }, + { HSE_FMS_DELETE_PROGRAM_INVOCATION, "FMS Delete Program Invocation" }, + { HSE_FMS_START, "FMS Start" }, + { HSE_FMS_STOP, "FMS Stop" }, + { HSE_FMS_RESUME, "FMS Resume" }, + { HSE_FMS_RESET, "FMS Reset" }, + { HSE_FMS_KILL, "FMS Kill" }, + { HSE_FMS_ALTER_EVENT_CONDITION_MONITORING, + "FMS Alter Event Condition Monitoring" }, + { HSE_FMS_ACKNOWLEDGE_EVENT_NOTIFICATION, + "FMS Acknowledge Event Notification" }, + { HSE_FMS_INITIATE_PUT_OD, "FMS Initiate Put OD" }, + { HSE_FMS_PUT_OD, "FMS Put OD" }, + { HSE_FMS_TERMINATE_PUT_OD, "FMS Terminate Put OD" }, + { HSE_FMS_GENERIC_INITIATE_DOWNLOAD_SEQUENCE, + "FMS Generic Initiate Download Sequence" }, + { HSE_FMS_GENERIC_DOWNLOAD_SEGMENT, "FMS Generic Download Segment" }, + { HSE_FMS_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE, + "FMS Generic Terminate Download Sequence" }, + { HSE_FMS_READ_WITH_SUBINDEX, "FMS Read with Subindex" }, + { HSE_FMS_WRITE_WITH_SUBINDEX, "FMS Write with Subindex" }, + { HSE_FMS_INITIATE, "FMS Initiate" }, + { 0, NULL } }; - +static value_string_ext names_fms_confirmed_ext = VALUE_STRING_EXT_INIT(names_fms_confirmed); static const value_string names_lan_unconfirmed[] = { - { LAN_DIAG, "Diagnostic Message" }, - { 0, NULL } + { LAN_DIAG, "Diagnostic Message" }, + { 0, NULL } }; static const value_string names_lan_confirmed[] = { - { LAN_GET_INFO, "LAN Redundancy Get Information" }, - { LAN_PUT_INFO, "LAN Redundancy Put Information" }, - { LAN_GET_STATISTICS, "LAN Redundancy Get Statistics" }, - { 0, NULL } + { LAN_GET_INFO, "LAN Redundancy Get Information" }, + { LAN_PUT_INFO, "LAN Redundancy Put Information" }, + { LAN_GET_STATISTICS, "LAN Redundancy Get Statistics" }, + { 0, NULL } }; static const value_string names_transmission_interface[] = { - { 0, "Interface A" }, - { 1, "Interface B" }, - { 0, NULL } + { 0, "Interface A" }, + { 1, "Interface B" }, + { 0, NULL } }; static const value_string names_err_class[] = { - { 1, "vfd state" }, - { 2, "application reference" }, - { 3, "definition" }, - { 4, "resource" }, - { 5, "service" }, - { 6, "access" }, - { 7, "od" }, - { 8, "other" }, - { 9, "reject" }, - { 10, "h1 sm reason code" }, - { 11, "fms initiate" }, - { 0, NULL } + { 1, "vfd state" }, + { 2, "application reference" }, + { 3, "definition" }, + { 4, "resource" }, + { 5, "service" }, + { 6, "access" }, + { 7, "od" }, + { 8, "other" }, + { 9, "reject" }, + { 10, "h1 sm reason code" }, + { 11, "fms initiate" }, + { 0, NULL } }; - +static value_string_ext names_err_class_ext = VALUE_STRING_EXT_INIT(names_err_class); static const value_string names_err_code_vfd_state[] = { - { 0, "other" }, - { 0, NULL } + { 0, "other" }, + { 0, NULL } }; static const value_string names_err_code_appl_ref[] = { - { 0, "other" }, - { 1, "object undefined" }, - { 2, "object attributes inconsistent" }, - { 3, "name already exists" }, - { 0, NULL } + { 0, "other" }, + { 1, "object undefined" }, + { 2, "object attributes inconsistent" }, + { 3, "name already exists" }, + { 0, NULL } }; static const value_string names_err_code_def[] = { - { 0, "other" }, - { 1, "application unreachable" }, - { 0, NULL } + { 0, "other" }, + { 1, "application unreachable" }, + { 0, NULL } }; static const value_string names_err_code_res[] = { - { 0, "other" }, - { 1, "memory unavailable" }, - { 2, "max outstanding requests per session exceeded" }, - { 3, "max sessions exceeded" }, - { 4, "object creation failure" }, - { 0, NULL } + { 0, "other" }, + { 1, "memory unavailable" }, + { 2, "max outstanding requests per session exceeded" }, + { 3, "max sessions exceeded" }, + { 4, "object creation failure" }, + { 0, NULL } }; static const value_string names_err_code_srv[] = { - { 0, "other" }, - { 1, "object state conflict" }, - { 2, "pdu size" }, - { 3, "object constraint conflict" }, - { 4, "parameter inconsistent" }, - { 5, "illegal parameter" }, - { 6, "unsupported service" }, - { 7, "unsupported version" }, - { 8, "invalid options" }, - { 9, "unsupported protocol" }, - { 10, "reserved" }, - { 11, "key parameter mismatch" }, - { 12, "assignments already made" }, - { 13, "unsupported device redundancy state" }, - { 14, "response time-out" }, - { 15, "duplicate PD Tag detected" }, - { 0, NULL } + { 0, "other" }, + { 1, "object state conflict" }, + { 2, "pdu size" }, + { 3, "object constraint conflict" }, + { 4, "parameter inconsistent" }, + { 5, "illegal parameter" }, + { 6, "unsupported service" }, + { 7, "unsupported version" }, + { 8, "invalid options" }, + { 9, "unsupported protocol" }, + { 10, "reserved" }, + { 11, "key parameter mismatch" }, + { 12, "assignments already made" }, + { 13, "unsupported device redundancy state" }, + { 14, "response time-out" }, + { 15, "duplicate PD Tag detected" }, + { 0, NULL } }; - +static value_string_ext names_err_code_srv_ext = VALUE_STRING_EXT_INIT(names_err_code_srv); static const value_string names_err_code_access[] = { - { 0, "other" }, - { 1, "object invalidated" }, - { 2, "hardware fault" }, - { 3, "object access denied" }, - { 4, "invalid address" }, - { 5, "object attribute inconsistent" }, - { 6, "object access unsupported" }, - { 7, "object non existent" }, - { 8, "type conflict" }, - { 9, "named access unsupported" }, - { 10, "access to element unsupported" }, - { 11, "config access already open" }, - { 12, "reserved" }, - { 13, "unrecognized FDA Address" }, - { 0, NULL } + { 0, "other" }, + { 1, "object invalidated" }, + { 2, "hardware fault" }, + { 3, "object access denied" }, + { 4, "invalid address" }, + { 5, "object attribute inconsistent" }, + { 6, "object access unsupported" }, + { 7, "object non existent" }, + { 8, "type conflict" }, + { 9, "named access unsupported" }, + { 10, "access to element unsupported" }, + { 11, "config access already open" }, + { 12, "reserved" }, + { 13, "unrecognized FDA Address" }, + { 0, NULL } }; +static value_string_ext names_err_code_access_ext = VALUE_STRING_EXT_INIT(names_err_code_access); static const value_string names_err_code_od[] = { - { 0, "other" }, - { 1, "name length overflow" }, - { 2, "od overflow" }, - { 3, "od write protected" }, - { 4, "extension length overflow" }, - { 5, "od description length overflow" }, - { 6, "operational problem" }, - { 7, "hse to h1 format conversion not supported" }, - { 0, NULL } + { 0, "other" }, + { 1, "name length overflow" }, + { 2, "od overflow" }, + { 3, "od write protected" }, + { 4, "extension length overflow" }, + { 5, "od description length overflow" }, + { 6, "operational problem" }, + { 7, "hse to h1 format conversion not supported" }, + { 0, NULL } }; static const value_string names_err_code_other[] = { - { 0, "other" }, - { 0, NULL } + { 0, "other" }, + { 0, NULL } }; static const value_string names_err_code_reject[] = { - { 5, "pdu size" }, - { 0, NULL } + { 5, "pdu size" }, + { 0, NULL } }; static const value_string names_err_code_h1_sm_reason_code[] = { - { 0, "other" }, - { 1, "DLL Error - insufficient resources" }, - { 2, "DLL Error - sending queue full" }, - { 3, "DLL Error - time-out before transmission" }, - { 4, "DLL Error - reason unspecified" }, - { 5, "Device failed to respond to SET_PD_TAG" }, - { 6, "Device failed to respond to WHO_HAS_PD_TAG" }, - { 7, "Device failed to respond to SET_ADDR" }, - { 8, "Device failed to respond to IDENTIFY" }, - { 9, "Device failed to respond to ENABLE_SM_OP" }, - { 10, "Device failed to respond to CLEAR_ADDRESS" }, - { 11, "Multiple Response from WHO_HAS_PD_TAG" }, - { 12, "Non-Matching PD_TAG from WHO_HAS_PD_TAG" }, - { 13, "Non-Matching PD_TAG from IDENTIFY" }, - { 14, "Non-Matching DEV_ID from IDENTIFY" }, - { 15, "Remote Error Invalid State" }, - { 16, "Remote Error PD-Tag doesn't match" }, - { 17, "Remote Error Dev-ID doesn't match" }, - { 18, "Remote Error SMIB object write failed" }, - { 19, "Remote Error Starting SM Operational" }, - { 0, NULL } + { 0, "other" }, + { 1, "DLL Error - insufficient resources" }, + { 2, "DLL Error - sending queue full" }, + { 3, "DLL Error - time-out before transmission" }, + { 4, "DLL Error - reason unspecified" }, + { 5, "Device failed to respond to SET_PD_TAG" }, + { 6, "Device failed to respond to WHO_HAS_PD_TAG" }, + { 7, "Device failed to respond to SET_ADDR" }, + { 8, "Device failed to respond to IDENTIFY" }, + { 9, "Device failed to respond to ENABLE_SM_OP" }, + { 10, "Device failed to respond to CLEAR_ADDRESS" }, + { 11, "Multiple Response from WHO_HAS_PD_TAG" }, + { 12, "Non-Matching PD_TAG from WHO_HAS_PD_TAG" }, + { 13, "Non-Matching PD_TAG from IDENTIFY" }, + { 14, "Non-Matching DEV_ID from IDENTIFY" }, + { 15, "Remote Error Invalid State" }, + { 16, "Remote Error PD-Tag doesn't match" }, + { 17, "Remote Error Dev-ID doesn't match" }, + { 18, "Remote Error SMIB object write failed" }, + { 19, "Remote Error Starting SM Operational" }, + { 0, NULL } }; - +static value_string_ext names_err_code_h1_sm_reason_code_ext = VALUE_STRING_EXT_INIT(names_err_code_h1_sm_reason_code); static const value_string names_err_code_fms_init[] = { - { 0, "other" }, - { 1, "max-fms-pdu-size-insufficient" }, - { 2, "feature-not-supported" }, - { 3, "version-od-incompatible" }, - { 4, "user-initiate-denied" }, - { 5, "password-error" }, - { 6, "profile-number-incompatible" }, - { 0, NULL } + { 0, "other" }, + { 1, "max-fms-pdu-size-insufficient" }, + { 2, "feature-not-supported" }, + { 3, "version-od-incompatible" }, + { 4, "user-initiate-denied" }, + { 5, "password-error" }, + { 6, "profile-number-incompatible" }, + { 0, NULL } }; static const true_false_string tfs_do_not_clear_clear = { "Do not clear", "Clear" }; @@ -1824,44 +1824,44 @@ static const true_false_string tfs_confirmed_unconfirmed = { "Confirmed", "Uncon static const char * val_to_str_err_code(guint8 class, guint8 code) { - switch(class) { - case 1: - return(val_to_str_const(code, names_err_code_vfd_state, "Unknown")); + switch (class) { + case 1: + return (val_to_str_const(code, names_err_code_vfd_state, "Unknown")); - case 2: - return(val_to_str_const(code, names_err_code_appl_ref, "Unknown")); + case 2: + return (val_to_str_const(code, names_err_code_appl_ref, "Unknown")); - case 3: - return(val_to_str_const(code, names_err_code_def, "Unknown")); + case 3: + return (val_to_str_const(code, names_err_code_def, "Unknown")); - case 4: - return(val_to_str_const(code, names_err_code_res, "Unknown")); + case 4: + return (val_to_str_const(code, names_err_code_res, "Unknown")); - case 5: - return(val_to_str_const(code, names_err_code_srv, "Unknown")); + case 5: + return (val_to_str_ext_const(code, &names_err_code_srv_ext, "Unknown")); - case 6: - return(val_to_str_const(code, names_err_code_access, "Unknown")); + case 6: + return (val_to_str_ext_const(code, &names_err_code_access_ext, "Unknown")); - case 7: - return(val_to_str_const(code, names_err_code_od, "Unknown")); + case 7: + return (val_to_str_const(code, names_err_code_od, "Unknown")); - case 8: - return(val_to_str_const(code, names_err_code_other, "Unknown")); + case 8: + return (val_to_str_const(code, names_err_code_other, "Unknown")); - case 9: - return(val_to_str_const(code, names_err_code_reject, "Unknown")); + case 9: + return (val_to_str_const(code, names_err_code_reject, "Unknown")); - case 10: - return(val_to_str_const(code, - names_err_code_h1_sm_reason_code, "Unknown")); + case 10: + return (val_to_str_ext_const(code, + &names_err_code_h1_sm_reason_code_ext, "Unknown")); - case 11: - return(val_to_str_const(code, names_err_code_fms_init, "Unknown")); + case 11: + return (val_to_str_const(code, names_err_code_fms_init, "Unknown")); - default: - return("Unknown"); - } + default: + return ("Unknown"); + } } @@ -1872,71 +1872,67 @@ val_to_str_err_code(guint8 class, guint8 code) */ static void dissect_ff_msg_fda_open_sess_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FDA Open Session Request"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FDA Open Session Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fda_open_sess_req); - - if(!sub_tree) { - return; - } - - proto_tree_add_item(sub_tree, - hf_ff_fda_open_sess_req_sess_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_fda_open_sess_req_max_buf_siz, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_fda_open_sess_req_max_msg_len, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_fda_open_sess_req_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fda_open_sess_req_nma_conf_use, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fda_open_sess_req_inactivity_close_time, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fda_open_sess_req_transmit_delay_time, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_fda_open_sess_req_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + + col_set_str(pinfo->cinfo, COL_INFO, "FDA Open Session Request"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FDA Open Session Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fda_open_sess_req); + + proto_tree_add_item(sub_tree, + hf_ff_fda_open_sess_req_sess_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_fda_open_sess_req_max_buf_siz, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_fda_open_sess_req_max_msg_len, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_fda_open_sess_req_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fda_open_sess_req_nma_conf_use, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fda_open_sess_req_inactivity_close_time, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fda_open_sess_req_transmit_delay_time, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_fda_open_sess_req_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -1946,71 +1942,67 @@ dissect_ff_msg_fda_open_sess_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fda_open_sess_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FDA Open Session Response"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FDA Open Session Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fda_open_sess_rsp); - - if(!sub_tree) { - return; - } - - proto_tree_add_item(sub_tree, - hf_ff_fda_open_sess_rsp_sess_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_fda_open_sess_rsp_max_buf_siz, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_fda_open_sess_rsp_max_msg_len, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_fda_open_sess_rsp_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fda_open_sess_rsp_nma_conf_use, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fda_open_sess_rsp_inactivity_close_time, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fda_open_sess_rsp_transmit_delay_time, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_fda_open_sess_rsp_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + + col_set_str(pinfo->cinfo, COL_INFO, "FDA Open Session Response"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FDA Open Session Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fda_open_sess_rsp); + + proto_tree_add_item(sub_tree, + hf_ff_fda_open_sess_rsp_sess_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_fda_open_sess_rsp_max_buf_siz, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_fda_open_sess_rsp_max_msg_len, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_fda_open_sess_rsp_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fda_open_sess_rsp_nma_conf_use, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fda_open_sess_rsp_inactivity_close_time, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fda_open_sess_rsp_transmit_delay_time, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_fda_open_sess_rsp_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -2020,58 +2012,54 @@ dissect_ff_msg_fda_open_sess_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fda_open_sess_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FDA Open Session Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FDA Open Session Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fda_open_sess_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fda_open_sess_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fda_open_sess_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fda_open_sess_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fda_open_sess_err_additional_desc, tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FDA Open Session Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FDA Open Session Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fda_open_sess_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fda_open_sess_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fda_open_sess_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fda_open_sess_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fda_open_sess_err_additional_desc, tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -2082,31 +2070,27 @@ dissect_ff_msg_fda_open_sess_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fda_idle_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FDA Idle Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FDA Idle Request"); - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FDA Idle Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fda_idle_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FDA Idle Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fda_idle_req); - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -2116,31 +2100,27 @@ dissect_ff_msg_fda_idle_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fda_idle_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FDA Idle Response"); + col_set_str(pinfo->cinfo, COL_INFO, "FDA Idle Response"); - if(!tree) { - return; - } + if (!tree) { + return; + } - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FDA Idle Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fda_idle_rsp); + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FDA Idle Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fda_idle_rsp); - if(!sub_tree) { - return; - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -2150,58 +2130,54 @@ dissect_ff_msg_fda_idle_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fda_idle_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FDA Idle Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FDA Idle Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fda_idle_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fda_idle_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fda_idle_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fda_idle_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fda_idle_err_additional_desc, tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FDA Idle Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FDA Idle Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fda_idle_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fda_idle_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fda_idle_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fda_idle_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fda_idle_err_additional_desc, tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -2212,55 +2188,51 @@ dissect_ff_msg_fda_idle_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_sm_find_tag_query_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "SM Find Tag Query Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "SM Find Tag Query Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "SM Find Tag Query Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_sm_find_tag_query_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "SM Find Tag Query Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_sm_find_tag_query_req); - proto_tree_add_item(sub_tree, - hf_ff_sm_find_tag_query_req_query_type, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; + proto_tree_add_item(sub_tree, + hf_ff_sm_find_tag_query_req_query_type, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; - proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); - offset += 3; - length -= 3; + proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); + offset += 3; + length -= 3; - proto_tree_add_item(sub_tree, - hf_ff_sm_find_tag_query_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_sm_find_tag_query_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_sm_find_tag_query_req_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; + proto_tree_add_item(sub_tree, + hf_ff_sm_find_tag_query_req_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; - proto_tree_add_item(sub_tree, - hf_ff_sm_find_tag_query_req_vfd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; + proto_tree_add_item(sub_tree, + hf_ff_sm_find_tag_query_req_vfd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -2271,171 +2243,159 @@ dissect_ff_msg_sm_find_tag_query_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_sm_find_tag_reply_req_dup_detection_state(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint8 value) + gint offset, proto_tree *tree, guint8 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, 1, - "Duplicate Detection State: 0x%02x", value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_find_tag_reply_req_dup_detection_state); - - if(!sub_tree) { - return; - } - - /* - * Bits 3-8: Reserved, set to 0. - * Bit 2: 1 = Duplicate PD Tag Detected - * 0 = Duplicate PD Tag Not Detected - * Bit 1: 1 = Duplicate Device Index Detected - * 0 = Duplicate Device Index Not Detected - */ - proto_tree_add_item(sub_tree, hf_ff_sm_find_tag_reply_dup_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_find_tag_reply_dup_pd_tag, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_find_tag_reply_dup_device, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree *sub_tree; + proto_item *ti; + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, 1, + "Duplicate Detection State: 0x%02x", value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_find_tag_reply_req_dup_detection_state); + + /* + * Bits 3-8: Reserved, set to 0. + * Bit 2: 1 = Duplicate PD Tag Detected + * 0 = Duplicate PD Tag Not Detected + * Bit 1: 1 = Duplicate Device Index Detected + * 0 = Duplicate Device Index Not Detected + */ + proto_tree_add_item(sub_tree, hf_ff_sm_find_tag_reply_dup_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_find_tag_reply_dup_pd_tag, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_find_tag_reply_dup_device, tvb, offset, 1, ENC_BIG_ENDIAN); } static void dissect_ff_msg_sm_find_tag_reply_req_list_of_fda_addr_selectors(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint16 value) + gint offset, proto_tree *tree, guint16 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint d = 0; - - if(!tree) { - return; - } + proto_tree *sub_tree; + proto_item *ti; + guint d; - ti = proto_tree_add_text(tree, tvb, offset, 2 * value, - "List of FDA Address Selectors (%u bytes)", 2 * value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_find_tag_reply_req_list_of_fda_addr_selectors); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, 2 * value, + "List of FDA Address Selectors (%u bytes)", 2 * value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_find_tag_reply_req_list_of_fda_addr_selectors); - for(d = 0; d < value; d ++) { - proto_tree_add_item(sub_tree, - hf_ff_sm_find_tag_reply_req_fda_addr_selector, - tvb, offset, 2, ENC_BIG_ENDIAN); + for (d = 0; d < value; d++) { + proto_tree_add_item(sub_tree, + hf_ff_sm_find_tag_reply_req_fda_addr_selector, + tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - } + offset += 2; + } - return; + return; } static void dissect_ff_msg_sm_find_tag_reply_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 DuplicateDetectionState = 0; - guint16 NumOfFDAAddrSelectors = 0; - - col_set_str(pinfo->cinfo, COL_INFO, "SM Find Tag Reply Request"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "SM Find Tag Reply Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_sm_find_tag_reply_req); - - if(!sub_tree) { - return; - } - - proto_tree_add_item(sub_tree, - hf_ff_sm_find_tag_reply_req_query_type, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_sm_find_tag_reply_req_h1_node_addr, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_sm_find_tag_reply_req_fda_addr_link_id, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_sm_find_tag_reply_req_vfd_ref, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_sm_find_tag_reply_req_od_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_sm_find_tag_reply_req_ip_addr, tvb, offset, 16, ENC_NA); - offset += 16; - length -= 16; - - proto_tree_add_item(sub_tree, - hf_ff_sm_find_tag_reply_req_od_ver, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_sm_find_tag_reply_req_dev_id, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; - - proto_tree_add_item(sub_tree, - hf_ff_sm_find_tag_reply_req_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; - - DuplicateDetectionState = tvb_get_guint8(tvb, offset); - dissect_ff_msg_sm_find_tag_reply_req_dup_detection_state(tvb, - offset, sub_tree, DuplicateDetectionState); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_sm_find_tag_reply_req_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - NumOfFDAAddrSelectors = tvb_get_ntohs(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_sm_find_tag_reply_req_num_of_fda_addr_selectors, - tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - if(NumOfFDAAddrSelectors) { - dissect_ff_msg_sm_find_tag_reply_req_list_of_fda_addr_selectors(tvb, - offset, sub_tree, NumOfFDAAddrSelectors); - offset += 2 * NumOfFDAAddrSelectors; - length -= 2 * NumOfFDAAddrSelectors; - } - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 DuplicateDetectionState; + guint16 NumOfFDAAddrSelectors; + + col_set_str(pinfo->cinfo, COL_INFO, "SM Find Tag Reply Request"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "SM Find Tag Reply Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_sm_find_tag_reply_req); + + proto_tree_add_item(sub_tree, + hf_ff_sm_find_tag_reply_req_query_type, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_sm_find_tag_reply_req_h1_node_addr, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_sm_find_tag_reply_req_fda_addr_link_id, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_sm_find_tag_reply_req_vfd_ref, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_sm_find_tag_reply_req_od_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_sm_find_tag_reply_req_ip_addr, tvb, offset, 16, ENC_NA); + offset += 16; + length -= 16; + + proto_tree_add_item(sub_tree, + hf_ff_sm_find_tag_reply_req_od_ver, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_sm_find_tag_reply_req_dev_id, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; + + proto_tree_add_item(sub_tree, + hf_ff_sm_find_tag_reply_req_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; + + DuplicateDetectionState = tvb_get_guint8(tvb, offset); + dissect_ff_msg_sm_find_tag_reply_req_dup_detection_state(tvb, + offset, sub_tree, DuplicateDetectionState); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_sm_find_tag_reply_req_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + NumOfFDAAddrSelectors = tvb_get_ntohs(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_sm_find_tag_reply_req_num_of_fda_addr_selectors, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + if (NumOfFDAAddrSelectors) { + dissect_ff_msg_sm_find_tag_reply_req_list_of_fda_addr_selectors(tvb, + offset, sub_tree, NumOfFDAAddrSelectors); + offset += 2 * NumOfFDAAddrSelectors; + length -= 2 * NumOfFDAAddrSelectors; + } + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -2446,31 +2406,27 @@ dissect_ff_msg_sm_find_tag_reply_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_sm_id_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "SM Identify Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "SM Identify Request"); - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "SM Identify Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_sm_id_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "SM Identify Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_sm_id_req); - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -2478,423 +2434,386 @@ dissect_ff_msg_sm_id_req(tvbuff_t *tvb, gint offset, /* * 6.5.2.3.2. Response Message Parameters */ -static int +static void dissect_ff_msg_sm_id_rsp_h1_node_addr(tvbuff_t *tvb, - gint offset, proto_tree *tree) + gint offset, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return 0; - } + proto_tree *sub_tree; + proto_item *ti; - ti = proto_tree_add_text(tree, tvb, offset, 2, - "H1 Node Address Version Number (%u bytes)", 2); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_id_rsp_h1_node_addr); + if (!tree) { + return; + } - if(!sub_tree) { - return 0; - } + ti = proto_tree_add_text(tree, tvb, offset, 2, + "H1 Node Address Version Number (%u bytes)", 2); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_id_rsp_h1_node_addr); - proto_tree_add_item(sub_tree, - hf_ff_sm_id_rsp_h1_node_addr_ver_num_h1_node_addr, - tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; + proto_tree_add_item(sub_tree, + hf_ff_sm_id_rsp_h1_node_addr_ver_num_h1_node_addr, + tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; - proto_tree_add_item(sub_tree, - hf_ff_sm_id_rsp_h1_node_addr_ver_num_ver_num, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; + proto_tree_add_item(sub_tree, + hf_ff_sm_id_rsp_h1_node_addr_ver_num_ver_num, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; - return offset; + return; } static void dissect_ff_msg_sm_id_rsp_entries_node_addr(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint32 value) + gint offset, proto_tree *tree, guint32 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint d = 0; + proto_tree *sub_tree; + proto_item *ti; + guint d; - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, 4 * value, - "Version Number List (%u bytes)", 4 * value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_id_rsp_entries_node_addr); + ti = proto_tree_add_text(tree, tvb, offset, 4 * value, + "Version Number List (%u bytes)", 4 * value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_id_rsp_entries_node_addr); - if(!sub_tree) { - return; - } + for (d = 0; d < value * 2; d++) { + dissect_ff_msg_sm_id_rsp_h1_node_addr(tvb, offset, sub_tree); + offset += 2; + } - for(d = 0; d < value * 2; d ++) { - dissect_ff_msg_sm_id_rsp_h1_node_addr(tvb, offset, sub_tree); - offset += 2; - } - - return; + return; } -static int +static void dissect_ff_msg_sm_id_rsp_h1_live_list(tvbuff_t *tvb, - gint offset, proto_tree *tree) + gint offset, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return 0; - } + proto_tree *sub_tree; + proto_item *ti; - ti = proto_tree_add_text(tree, tvb, offset, 4, - "H1 Live-list Version Number (%u bytes)", 4); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_id_rsp_h1_live_list); + if (!tree) { + return; + } - if(!sub_tree) { - return 0; - } + ti = proto_tree_add_text(tree, tvb, offset, 4, + "H1 Live-list Version Number (%u bytes)", 4); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_id_rsp_h1_live_list); - proto_tree_add_item(sub_tree, - hf_ff_sm_id_rsp_h1_live_list_h1_link_id, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; + proto_tree_add_item(sub_tree, + hf_ff_sm_id_rsp_h1_live_list_h1_link_id, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; - proto_tree_add_item(sub_tree, - hf_ff_sm_id_rsp_h1_live_list_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; + proto_tree_add_item(sub_tree, + hf_ff_sm_id_rsp_h1_live_list_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; - proto_tree_add_item(sub_tree, - hf_ff_sm_id_rsp_h1_live_list_ver_num, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; + proto_tree_add_item(sub_tree, + hf_ff_sm_id_rsp_h1_live_list_ver_num, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; - return offset; + return; } static void dissect_ff_msg_sm_id_rsp_entries_link_id(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint32 value) + gint offset, proto_tree *tree, guint32 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint d = 0; - - if(!tree) { - return; - } + proto_tree *sub_tree; + proto_item *ti; + guint d; - ti = proto_tree_add_text(tree, tvb, offset, 4 * value, - "Version Number List (%u bytes)", 4 * value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_id_rsp_entries_h1_live_list); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, 4 * value, + "Version Number List (%u bytes)", 4 * value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_id_rsp_entries_h1_live_list); - for(d = 0; d < value; d ++) { - dissect_ff_msg_sm_id_rsp_h1_live_list(tvb, offset, sub_tree); - offset += 4; - } + for (d = 0; d < value; d++) { + dissect_ff_msg_sm_id_rsp_h1_live_list(tvb, offset, sub_tree); + offset += 4; + } - return; + return; } static void dissect_ff_msg_sm_id_rsp_smk_state(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint8 value) + gint offset, proto_tree *tree, guint8 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, 1, - "SMK State: 0x%02x", value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_id_rsp_smk_state); - - if(!sub_tree) { - return; - } - - /* - * Bits 2-8: - * 0 = Reserved - * 1 = NO_TAG - * 2 = OPERATIONAL - * 3 127 = Reserved - * Bit 1: - * 0 = Not Synchronized with SNTP Time Server - * 1 = Synchronized with SNTP Time Server - */ - proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_smk_state_name, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_smk_state_sync, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree *sub_tree; + proto_item *ti; + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, 1, + "SMK State: 0x%02x", value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_id_rsp_smk_state); + + /* + * Bits 2-8: + * 0 = Reserved + * 1 = NO_TAG + * 2 = OPERATIONAL + * 3 127 = Reserved + * Bit 1: + * 0 = Not Synchronized with SNTP Time Server + * 1 = Synchronized with SNTP Time Server + */ + proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_smk_state_name, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_smk_state_sync, tvb, offset, 1, ENC_BIG_ENDIAN); } static void dissect_ff_msg_sm_id_rsp_dev_type(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint8 value) -{ - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, 1, - "Device Type: 0x%02x", value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_id_rsp_dev_type); - - if(!sub_tree) { - return; - } - - /* - * Bit 8 = Linking Device - * Bit 7 = I/O Gateway - * Bit 6 = HSE Field Device - * Bit 5 = H1 Device - * Bit 4 = Reserved - * Bits 1 - 3 Redundant Device Type Capability* - * 0 = Type D-1 Device - * 1 = Type D-2 Device - * 2 = Type D-3 Device - * 3 = Type D-3 and Type D-2 Device - * 4 = Not used - * 5 = Type D-2 and Type D-1 Device - * 6 = Type D-3 and Type D-1 Device - * 7 = Type D-3 and D-2 and Type D-1 Device - */ - proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dev_type_link, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dev_type_iogateway, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dev_type_hse, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dev_type_h1, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dev_type_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dev_type_redundant_caps, tvb, offset, 1, ENC_BIG_ENDIAN); + gint offset, proto_tree *tree, guint8 value) +{ + proto_tree *sub_tree; + proto_item *ti; + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, 1, + "Device Type: 0x%02x", value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_id_rsp_dev_type); + + /* + * Bit 8 = Linking Device + * Bit 7 = I/O Gateway + * Bit 6 = HSE Field Device + * Bit 5 = H1 Device + * Bit 4 = Reserved + * Bits 1 - 3 Redundant Device Type Capability* + * 0 = Type D-1 Device + * 1 = Type D-2 Device + * 2 = Type D-3 Device + * 3 = Type D-3 and Type D-2 Device + * 4 = Not used + * 5 = Type D-2 and Type D-1 Device + * 6 = Type D-3 and Type D-1 Device + * 7 = Type D-3 and D-2 and Type D-1 Device + */ + proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dev_type_link, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dev_type_iogateway, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dev_type_hse, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dev_type_h1, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dev_type_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dev_type_redundant_caps, tvb, offset, 1, ENC_BIG_ENDIAN); } static void dissect_ff_msg_sm_id_rsp_dev_redundancy_state(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint8 value) + gint offset, proto_tree *tree, guint8 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, 1, - "Device Redundancy State: 0x%02x", value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_id_rsp_dev_redundancy_state); - - if(!sub_tree) { - return; - } - - /* - * Bits 5-8 = Reserved, set to 0 - * Bits 3 & 4 Device Redundancy Role - * 0 = Reserved - * 1 = Primary - * 2 = Secondary - * Bits 1 & 2 Assigned Redundant Device Type* - * 0 = Type D-1 Device - * 1 = Type D-2 Device - * 2 = Type D-3 Device - */ - - proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dev_redundancy_state_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dev_redundancy_state_role, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dev_redundancy_state_type, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree *sub_tree; + proto_item *ti; + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, 1, + "Device Redundancy State: 0x%02x", value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_id_rsp_dev_redundancy_state); + + /* + * Bits 5-8 = Reserved, set to 0 + * Bits 3 & 4 Device Redundancy Role + * 0 = Reserved + * 1 = Primary + * 2 = Secondary + * Bits 1 & 2 Assigned Redundant Device Type* + * 0 = Type D-1 Device + * 1 = Type D-2 Device + * 2 = Type D-3 Device + */ + + proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dev_redundancy_state_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dev_redundancy_state_role, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dev_redundancy_state_type, tvb, offset, 1, ENC_BIG_ENDIAN); } static void dissect_ff_msg_sm_id_rsp_dup_detection_state(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint8 value) + gint offset, proto_tree *tree, guint8 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, 1, - "Duplicate Detection State: 0x%02x", value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_id_rsp_dup_detection_state); - - if(!sub_tree) { - return; - } - - /* - * Bits 3-8: Reserved, set to 0. - * Bit 2: 1 = Duplicate PD Tag Detected - * 0 = Duplicate PD Tag Not Detected - * Bit 1: 1 = Duplicate Device Index Detected - * 0 = Duplicate Device Index Not Detected - */ - - proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dup_detection_state_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dup_detection_state_pd_tag, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dup_detection_state_device, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree *sub_tree; + proto_item *ti; + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, 1, + "Duplicate Detection State: 0x%02x", value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_id_rsp_dup_detection_state); + + /* + * Bits 3-8: Reserved, set to 0. + * Bit 2: 1 = Duplicate PD Tag Detected + * 0 = Duplicate PD Tag Not Detected + * Bit 1: 1 = Duplicate Device Index Detected + * 0 = Duplicate Device Index Not Detected + */ + + proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dup_detection_state_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dup_detection_state_pd_tag, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_id_rsp_dup_detection_state_device, tvb, offset, 1, ENC_BIG_ENDIAN); } static void dissect_ff_msg_sm_id_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree, guint32 FDAAddress) -{ - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - guint8 SMKState = 0; - guint8 DeviceType = 0; - guint8 DeviceRedundancyState = 0; - guint8 DuplicateDetectionState = 0; - guint32 NumOfEntriesInVerNumList = 0; - - guint16 LinkId = 0; - - col_set_str(pinfo->cinfo, COL_INFO, "SM Identify Response"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, "SM Identify Response"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_id_rsp); - - if(!sub_tree) { - return; - } - - SMKState = tvb_get_guint8(tvb, offset); - dissect_ff_msg_sm_id_rsp_smk_state(tvb, offset, sub_tree, SMKState); - offset += 1; - length -= 1; - - DeviceType = tvb_get_guint8(tvb, offset); - dissect_ff_msg_sm_id_rsp_dev_type(tvb, offset, sub_tree, DeviceType); - offset += 1; - length -= 1; - - DeviceRedundancyState = tvb_get_guint8(tvb, offset); - dissect_ff_msg_sm_id_rsp_dev_redundancy_state(tvb, - offset, sub_tree, DeviceRedundancyState); - offset += 1; - length -= 1; - - DuplicateDetectionState = tvb_get_guint8(tvb, offset); - dissect_ff_msg_sm_id_rsp_dup_detection_state(tvb, - offset, sub_tree, DuplicateDetectionState); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_sm_id_rsp_dev_idx, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_sm_id_rsp_max_dev_idx, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_sm_id_rsp_operational_ip_addr, tvb, offset, 16, ENC_NA); - offset += 16; - length -= 16; - - proto_tree_add_item(sub_tree, - hf_ff_sm_id_rsp_dev_id, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; - - proto_tree_add_item(sub_tree, - hf_ff_sm_id_rsp_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; - - proto_tree_add_item(sub_tree, - hf_ff_sm_id_rsp_hse_repeat_time, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_sm_id_rsp_lr_port, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_sm_id_rsp_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_sm_id_rsp_annunc_ver_num, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_sm_id_rsp_hse_dev_ver_num, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - NumOfEntriesInVerNumList = tvb_get_ntohl(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_sm_id_rsp_num_of_entries, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - if(NumOfEntriesInVerNumList) { - /* 11111111 11111111 00000000 00000000 */ - LinkId = (guint16)(FDAAddress >> 16); - if(LinkId) { - dissect_ff_msg_sm_id_rsp_entries_node_addr(tvb, - offset, sub_tree, NumOfEntriesInVerNumList); - } else { - dissect_ff_msg_sm_id_rsp_entries_link_id(tvb, - offset, sub_tree, NumOfEntriesInVerNumList); - } - - offset += 4 * NumOfEntriesInVerNumList; - length -= 4 * NumOfEntriesInVerNumList; - } - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + guint32 length, packet_info *pinfo, proto_tree *tree, guint32 FDAAddress) +{ + proto_tree *sub_tree; + proto_item *ti; + + guint8 SMKState; + guint8 DeviceType; + guint8 DeviceRedundancyState; + guint8 DuplicateDetectionState; + guint32 NumOfEntriesInVerNumList; + + col_set_str(pinfo->cinfo, COL_INFO, "SM Identify Response"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, "SM Identify Response"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_id_rsp); + + SMKState = tvb_get_guint8(tvb, offset); + dissect_ff_msg_sm_id_rsp_smk_state(tvb, offset, sub_tree, SMKState); + offset += 1; + length -= 1; + + DeviceType = tvb_get_guint8(tvb, offset); + dissect_ff_msg_sm_id_rsp_dev_type(tvb, offset, sub_tree, DeviceType); + offset += 1; + length -= 1; + + DeviceRedundancyState = tvb_get_guint8(tvb, offset); + dissect_ff_msg_sm_id_rsp_dev_redundancy_state(tvb, + offset, sub_tree, DeviceRedundancyState); + offset += 1; + length -= 1; + + DuplicateDetectionState = tvb_get_guint8(tvb, offset); + dissect_ff_msg_sm_id_rsp_dup_detection_state(tvb, + offset, sub_tree, DuplicateDetectionState); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_sm_id_rsp_dev_idx, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_sm_id_rsp_max_dev_idx, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_sm_id_rsp_operational_ip_addr, tvb, offset, 16, ENC_NA); + offset += 16; + length -= 16; + + proto_tree_add_item(sub_tree, + hf_ff_sm_id_rsp_dev_id, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; + + proto_tree_add_item(sub_tree, + hf_ff_sm_id_rsp_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; + + proto_tree_add_item(sub_tree, + hf_ff_sm_id_rsp_hse_repeat_time, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_sm_id_rsp_lr_port, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_sm_id_rsp_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_sm_id_rsp_annunc_ver_num, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_sm_id_rsp_hse_dev_ver_num, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + NumOfEntriesInVerNumList = tvb_get_ntohl(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_sm_id_rsp_num_of_entries, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + if (NumOfEntriesInVerNumList) { + guint16 LinkId; + /* 11111111 11111111 00000000 00000000 */ + LinkId = (guint16)(FDAAddress >> 16); + if (LinkId) { + dissect_ff_msg_sm_id_rsp_entries_node_addr(tvb, + offset, sub_tree, NumOfEntriesInVerNumList); + } else { + dissect_ff_msg_sm_id_rsp_entries_link_id(tvb, + offset, sub_tree, NumOfEntriesInVerNumList); + } + + offset += 4 * NumOfEntriesInVerNumList; + length -= 4 * NumOfEntriesInVerNumList; + } + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -2904,57 +2823,53 @@ dissect_ff_msg_sm_id_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_sm_id_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "SM Identify Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, "SM Identify Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_sm_id_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_sm_id_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_sm_id_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_sm_id_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_sm_id_err_additional_desc, tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "SM Identify Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, "SM Identify Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_sm_id_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_sm_id_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_sm_id_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_sm_id_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_sm_id_err_additional_desc, tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -2965,50 +2880,46 @@ dissect_ff_msg_sm_id_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_sm_clear_addr_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "SM Clear Address Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "SM Clear Address Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "SM Clear Address Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_sm_id_err); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "SM Clear Address Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_sm_id_err); - proto_tree_add_item(sub_tree, - hf_ff_sm_clear_addr_req_dev_id, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; + proto_tree_add_item(sub_tree, + hf_ff_sm_clear_addr_req_dev_id, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; - proto_tree_add_item(sub_tree, - hf_ff_sm_clear_addr_req_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; + proto_tree_add_item(sub_tree, + hf_ff_sm_clear_addr_req_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; - proto_tree_add_item(sub_tree, - hf_ff_sm_clear_addr_req_interface_to_clear, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; + proto_tree_add_item(sub_tree, + hf_ff_sm_clear_addr_req_interface_to_clear, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; - proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); - offset += 3; - length -= 3; + proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); + offset += 3; + length -= 3; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -3018,31 +2929,27 @@ dissect_ff_msg_sm_clear_addr_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_sm_clear_addr_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "SM Clear Address Response"); + col_set_str(pinfo->cinfo, COL_INFO, "SM Clear Address Response"); - if(!tree) { - return; - } + if (!tree) { + return; + } - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "SM Clear Address Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_sm_clear_addr_rsp); + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "SM Clear Address Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_sm_clear_addr_rsp); - if(!sub_tree) { - return; - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -3052,58 +2959,54 @@ dissect_ff_msg_sm_clear_addr_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_sm_clear_addr_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "SM Clear Address Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "SM Clear Address Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_sm_clear_addr_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_sm_clear_addr_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_sm_clear_addr_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_sm_clear_addr_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_sm_clear_addr_err_additional_desc, tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "SM Clear Address Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "SM Clear Address Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_sm_clear_addr_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_sm_clear_addr_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_sm_clear_addr_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_sm_clear_addr_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_sm_clear_addr_err_additional_desc, tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -3114,163 +3017,151 @@ dissect_ff_msg_sm_clear_addr_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_sm_set_assign_info_req_dev_redundancy_state(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint8 value) + gint offset, proto_tree *tree, guint8 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, 1, - "Device Redundancy State: 0x%02x", value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_set_assign_info_req_dev_redundancy_state); - - if(!sub_tree) { - return; - } - - /* - * Bits 5-8 = Reserved, set to 0 - * Bits 3 & 4 Type D-2 Device Redundancy Role - * 0 = Not used - * 1 = Type D-2 Device Primary - * 2 = Type D-2 Device Secondary - * Bits 1 & 2 Assigned Device Redundancy Type - * 0 = Type D-1 Device - * 1 = Type D-2 Device - * 2 = Type D-3 Device - */ - proto_tree_add_item(sub_tree, hf_ff_sm_set_assign_info_req_dev_redundancy_state_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_set_assign_info_req_dev_redundancy_state_role, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_set_assign_info_req_dev_redundancy_state_type, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree *sub_tree; + proto_item *ti; + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, 1, + "Device Redundancy State: 0x%02x", value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_set_assign_info_req_dev_redundancy_state); + + /* + * Bits 5-8 = Reserved, set to 0 + * Bits 3 & 4 Type D-2 Device Redundancy Role + * 0 = Not used + * 1 = Type D-2 Device Primary + * 2 = Type D-2 Device Secondary + * Bits 1 & 2 Assigned Device Redundancy Type + * 0 = Type D-1 Device + * 1 = Type D-2 Device + * 2 = Type D-3 Device + */ + proto_tree_add_item(sub_tree, hf_ff_sm_set_assign_info_req_dev_redundancy_state_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_set_assign_info_req_dev_redundancy_state_role, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_set_assign_info_req_dev_redundancy_state_type, tvb, offset, 1, ENC_BIG_ENDIAN); } static void dissect_ff_msg_sm_set_assign_info_req_clear_dup_detection_state(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint8 value) + gint offset, proto_tree *tree, guint8 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, 1, - "Clear Duplicate Detection State: 0x%02x", value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_set_assign_info_req_clear_dup_detection_state); - - if(!sub_tree) { - return; - } - - /* - * Bits 3-8: Reserved, set to 0. - * Bit 2: 1 = Do not clear Duplicate PD Tag Detected - * 0 = Clear Duplicate PD Tag Detected - * Bit 1: 1 = Do not clear Duplicate Device Index Detected - * 0 = Clear Duplicate Device Index Detected - */ - proto_tree_add_item(sub_tree, hf_ff_sm_set_assign_info_req_clear_dup_detection_state_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_set_assign_info_req_clear_dup_detection_state_pd_tag, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_set_assign_info_req_clear_dup_detection_state_device_index, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree *sub_tree; + proto_item *ti; + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, 1, + "Clear Duplicate Detection State: 0x%02x", value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_set_assign_info_req_clear_dup_detection_state); + + /* + * Bits 3-8: Reserved, set to 0. + * Bit 2: 1 = Do not clear Duplicate PD Tag Detected + * 0 = Clear Duplicate PD Tag Detected + * Bit 1: 1 = Do not clear Duplicate Device Index Detected + * 0 = Clear Duplicate Device Index Detected + */ + proto_tree_add_item(sub_tree, hf_ff_sm_set_assign_info_req_clear_dup_detection_state_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_set_assign_info_req_clear_dup_detection_state_pd_tag, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_set_assign_info_req_clear_dup_detection_state_device_index, tvb, offset, 1, ENC_BIG_ENDIAN); } static void dissect_ff_msg_sm_set_assign_info_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 DeviceRedundancyState = 0; - guint8 ClearDuplicateDetectionState = 0; - - col_set_str(pinfo->cinfo, COL_INFO,"SM Set Assignment Info Request"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "SM Set Assignment Info Request"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_set_assign_info_req); - - if(!sub_tree) { - return; - } - - proto_tree_add_item(sub_tree, - hf_ff_sm_set_assign_info_req_dev_id, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; - - proto_tree_add_item(sub_tree, - hf_ff_sm_set_assign_info_req_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; - - proto_tree_add_item(sub_tree, - hf_ff_sm_set_assign_info_req_h1_new_addr, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - DeviceRedundancyState = tvb_get_guint8(tvb, offset); - dissect_ff_msg_sm_set_assign_info_req_dev_redundancy_state(tvb, - offset, sub_tree, DeviceRedundancyState); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_sm_set_assign_info_req_lr_port, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_sm_set_assign_info_req_hse_repeat_time, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_sm_set_assign_info_req_dev_idx, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_sm_set_assign_info_req_max_dev_idx, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_sm_set_assign_info_req_operational_ip_addr, - tvb, offset, 16, ENC_NA); - offset += 16; - length -= 16; - - proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); - offset += 3; - length -= 3; - - ClearDuplicateDetectionState = tvb_get_guint8(tvb, offset); - dissect_ff_msg_sm_set_assign_info_req_clear_dup_detection_state(tvb, - offset, sub_tree, ClearDuplicateDetectionState); - offset += 1; - length -= 1; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 DeviceRedundancyState; + guint8 ClearDuplicateDetectionState; + + col_set_str(pinfo->cinfo, COL_INFO, "SM Set Assignment Info Request"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "SM Set Assignment Info Request"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_set_assign_info_req); + + proto_tree_add_item(sub_tree, + hf_ff_sm_set_assign_info_req_dev_id, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; + + proto_tree_add_item(sub_tree, + hf_ff_sm_set_assign_info_req_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; + + proto_tree_add_item(sub_tree, + hf_ff_sm_set_assign_info_req_h1_new_addr, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + DeviceRedundancyState = tvb_get_guint8(tvb, offset); + dissect_ff_msg_sm_set_assign_info_req_dev_redundancy_state(tvb, + offset, sub_tree, DeviceRedundancyState); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_sm_set_assign_info_req_lr_port, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_sm_set_assign_info_req_hse_repeat_time, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_sm_set_assign_info_req_dev_idx, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_sm_set_assign_info_req_max_dev_idx, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_sm_set_assign_info_req_operational_ip_addr, + tvb, offset, 16, ENC_NA); + offset += 16; + length -= 16; + + proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); + offset += 3; + length -= 3; + + ClearDuplicateDetectionState = tvb_get_guint8(tvb, offset); + dissect_ff_msg_sm_set_assign_info_req_clear_dup_detection_state(tvb, + offset, sub_tree, ClearDuplicateDetectionState); + offset += 1; + length -= 1; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -3280,47 +3171,43 @@ dissect_ff_msg_sm_set_assign_info_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_sm_set_assign_info_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "SM Set Assignment Info Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "SM Set Assignment Info Response"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "SM Set Assignment Info Response"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_set_assign_info_rsp); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "SM Set Assignment Info Response"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_set_assign_info_rsp); - proto_tree_add_item(sub_tree, - hf_ff_sm_set_assign_info_rsp_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; + proto_tree_add_item(sub_tree, + hf_ff_sm_set_assign_info_rsp_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; - proto_tree_add_item(sub_tree, - hf_ff_sm_set_assign_info_rsp_max_dev_idx, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; + proto_tree_add_item(sub_tree, + hf_ff_sm_set_assign_info_rsp_max_dev_idx, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; - proto_tree_add_item(sub_tree, - hf_ff_sm_set_assign_info_rsp_hse_repeat_time, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_sm_set_assign_info_rsp_hse_repeat_time, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -3330,59 +3217,55 @@ dissect_ff_msg_sm_set_assign_info_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_sm_set_assign_info_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "SM Set Assignment Info Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "SM Set Assignment Info Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_sm_set_assign_info_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_sm_set_assign_info_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, - hf_ff_sm_set_assign_info_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_sm_set_assign_info_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_sm_set_assign_info_err_additional_desc, tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "SM Set Assignment Info Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "SM Set Assignment Info Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_sm_set_assign_info_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_sm_set_assign_info_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, + hf_ff_sm_set_assign_info_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_sm_set_assign_info_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_sm_set_assign_info_err_additional_desc, tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -3393,42 +3276,38 @@ dissect_ff_msg_sm_set_assign_info_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_sm_clear_assign_info_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "SM Clear Assignment Info Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "SM Clear Assignment Info Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "SM Clear Assignment Info Request"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_clear_assign_info_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "SM Clear Assignment Info Request"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_clear_assign_info_req); - proto_tree_add_item(sub_tree, - hf_ff_sm_clear_assign_info_req_dev_id, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; + proto_tree_add_item(sub_tree, + hf_ff_sm_clear_assign_info_req_dev_id, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; - proto_tree_add_item(sub_tree, - hf_ff_sm_clear_assign_info_req_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; + proto_tree_add_item(sub_tree, + hf_ff_sm_clear_assign_info_req_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -3438,32 +3317,28 @@ dissect_ff_msg_sm_clear_assign_info_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_sm_clear_assign_info_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO,"SM Clear Assignment Info Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "SM Clear Assignment Info Response"); - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "SM Clear Assignment Info Response"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_clear_assign_info_rsp); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "SM Clear Assignment Info Response"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_clear_assign_info_rsp); - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -3473,60 +3348,56 @@ dissect_ff_msg_sm_clear_assign_info_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_sm_clear_assign_info_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "SM Clear Assignment Info Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "SM Clear Assignment Info Error"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_clear_assign_info_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_sm_clear_assign_info_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, - hf_ff_sm_clear_assign_info_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_sm_clear_assign_info_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_sm_clear_assign_info_err_additional_desc, tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "SM Clear Assignment Info Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "SM Clear Assignment Info Error"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_clear_assign_info_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_sm_clear_assign_info_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, + hf_ff_sm_clear_assign_info_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_sm_clear_assign_info_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_sm_clear_assign_info_err_additional_desc, tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -3535,424 +3406,387 @@ dissect_ff_msg_sm_clear_assign_info_err(tvbuff_t *tvb, gint offset, * 6.5.2.7. SM Device Annunciation (Unconfirmed Service Id = 16) * 6.5.2.7.1. Request Message Parameters */ -static int +static void dissect_ff_msg_sm_dev_annunc_req_h1_node_addr(tvbuff_t *tvb, - gint offset, proto_tree *tree) + gint offset, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return 0; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, 2, - "H1 Node Address Version Number (%u bytes)", 2); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_dev_annunc_req_h1_node_addr); + ti = proto_tree_add_text(tree, tvb, offset, 2, + "H1 Node Address Version Number (%u bytes)", 2); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_dev_annunc_req_h1_node_addr); - if(!sub_tree) { - return 0; - } + proto_tree_add_item(sub_tree, + hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_h1_node_addr, + tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; - proto_tree_add_item(sub_tree, - hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_h1_node_addr, - tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; + proto_tree_add_item(sub_tree, + hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_ver_num, + tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; - proto_tree_add_item(sub_tree, - hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_ver_num, - tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - - return offset; + return; } static void dissect_ff_msg_sm_dev_annunc_req_entries_node_addr(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint32 value) + gint offset, proto_tree *tree, guint32 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint d = 0; - - if(!tree) { - return; - } + proto_tree *sub_tree; + proto_item *ti; + guint d; - ti = proto_tree_add_text(tree, tvb, offset, 4 * value, - "Version Number List (%u bytes)", 4 * value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_dev_annunc_req_entries_node_addr); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, 4 * value, + "Version Number List (%u bytes)", 4 * value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_dev_annunc_req_entries_node_addr); - for(d = 0; d < value * 2; d ++) { - dissect_ff_msg_sm_dev_annunc_req_h1_node_addr(tvb, offset, sub_tree); - offset += 2; - } + for (d = 0; d < value * 2; d++) { + dissect_ff_msg_sm_dev_annunc_req_h1_node_addr(tvb, offset, sub_tree); + offset += 2; + } - return; + return; } -static int +static void dissect_ff_msg_sm_dev_annunc_req_h1_live_list(tvbuff_t *tvb, - gint offset, proto_tree *tree) + gint offset, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return 0; - } + proto_tree *sub_tree; + proto_item *ti; - ti = proto_tree_add_text(tree, tvb, offset, 4, - "H1 Live-list Version Number (%u bytes)", 4); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_dev_annunc_req_h1_live_list); + if (!tree) { + return; + } - if(!sub_tree) { - return 0; - } + ti = proto_tree_add_text(tree, tvb, offset, 4, + "H1 Live-list Version Number (%u bytes)", 4); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_dev_annunc_req_h1_live_list); - proto_tree_add_item(sub_tree, - hf_ff_sm_dev_annunc_req_h1_live_list_h1_link_id, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; + proto_tree_add_item(sub_tree, + hf_ff_sm_dev_annunc_req_h1_live_list_h1_link_id, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; - proto_tree_add_item(sub_tree, - hf_ff_sm_dev_annunc_req_h1_live_list_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; + proto_tree_add_item(sub_tree, + hf_ff_sm_dev_annunc_req_h1_live_list_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; - proto_tree_add_item(sub_tree, - hf_ff_sm_dev_annunc_req_h1_live_list_ver_num, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; + proto_tree_add_item(sub_tree, + hf_ff_sm_dev_annunc_req_h1_live_list_ver_num, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; - return offset; + return; } static void dissect_ff_msg_sm_dev_annunc_req_entries_link_id(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint32 value) + gint offset, proto_tree *tree, guint32 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint d = 0; - - if(!tree) { - return; - } + proto_tree *sub_tree; + proto_item *ti; + guint d; - ti = proto_tree_add_text(tree, tvb, offset, 4 * value, - "Version Number List (%u bytes)", 4 * value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_dev_annunc_req_entries_h1_live_list); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, 4 * value, + "Version Number List (%u bytes)", 4 * value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_dev_annunc_req_entries_h1_live_list); - for(d = 0; d < value; d ++) { - dissect_ff_msg_sm_dev_annunc_req_h1_live_list(tvb, offset, sub_tree); - offset += 4; - } + for (d = 0; d < value; d++) { + dissect_ff_msg_sm_dev_annunc_req_h1_live_list(tvb, offset, sub_tree); + offset += 4; + } - return; + return; } static void dissect_ff_msg_sm_dev_annunc_req_smk_state(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint8 value) + gint offset, proto_tree *tree, guint8 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, 1, - "SMK State: 0x%02x", value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_dev_annunc_req_smk_state); - - if(!sub_tree) { - return; - } - - /* - * Bits 2-8: - * 0 = Reserved - * 1 = NO_TAG - * 2 = OPERATIONAL - * 3 127 = Reserved - * Bit 1: - * 0 = Not Synchronized with SNTP Time Server - * 1 = Synchronized with SNTP Time Server - */ - proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_smk_state_name, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_smk_state_sync, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree *sub_tree; + proto_item *ti; + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, 1, + "SMK State: 0x%02x", value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_dev_annunc_req_smk_state); + + /* + * Bits 2-8: + * 0 = Reserved + * 1 = NO_TAG + * 2 = OPERATIONAL + * 3 127 = Reserved + * Bit 1: + * 0 = Not Synchronized with SNTP Time Server + * 1 = Synchronized with SNTP Time Server + */ + proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_smk_state_name, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_smk_state_sync, tvb, offset, 1, ENC_BIG_ENDIAN); } static void dissect_ff_msg_sm_dev_annunc_req_dev_type(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint8 value) -{ - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, 1, - "Device Type: 0x%02x", value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_dev_annunc_req_dev_type); - - if(!sub_tree) { - return; - } - - /* - * Bit 8 = Linking Device - * Bit 7 = I/O Gateway - * Bit 6 = HSE Field Device - * Bit 5 = H1 Device - * Bit 4 = Reserved - * Bits 1 - 3 Redundant Device Type Capability* - * 0 = Type D-1 Device - * 1 = Type D-2 Device - * 2 = Type D-3 Device - * 3 = Type D-3 and Type D-2 Device - * 4 = Not used - * 5 = Type D-2 and Type D-1 Device - * 6 = Type D-3 and Type D-1 Device - * 7 = Type D-3 and D-2 and Type D-1 Device - */ - proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dev_type_link, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dev_type_iogateway, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dev_type_hse, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dev_type_h1, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dev_type_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dev_type_redundant_caps, tvb, offset, 1, ENC_BIG_ENDIAN); + gint offset, proto_tree *tree, guint8 value) +{ + proto_tree *sub_tree; + proto_item *ti; + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, 1, + "Device Type: 0x%02x", value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_dev_annunc_req_dev_type); + + /* + * Bit 8 = Linking Device + * Bit 7 = I/O Gateway + * Bit 6 = HSE Field Device + * Bit 5 = H1 Device + * Bit 4 = Reserved + * Bits 1 - 3 Redundant Device Type Capability* + * 0 = Type D-1 Device + * 1 = Type D-2 Device + * 2 = Type D-3 Device + * 3 = Type D-3 and Type D-2 Device + * 4 = Not used + * 5 = Type D-2 and Type D-1 Device + * 6 = Type D-3 and Type D-1 Device + * 7 = Type D-3 and D-2 and Type D-1 Device + */ + proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dev_type_link, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dev_type_iogateway, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dev_type_hse, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dev_type_h1, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dev_type_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dev_type_redundant_caps, tvb, offset, 1, ENC_BIG_ENDIAN); } static void dissect_ff_msg_sm_dev_annunc_req_dev_redundancy_state(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint8 value) + gint offset, proto_tree *tree, guint8 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, 1, - "Device Redundancy State: 0x%02x", value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_dev_annunc_req_dev_redundancy_state); - - if(!sub_tree) { - return; - } - - /* - * Bits 5-8 = Reserved, set to 0 - * Bits 3 & 4 Device Redundancy Role - * 0 = Reserved - * 1 = Primary - * 2 = Secondary - * Bits 1 & 2 Assigned Redundant Device Type* - * 0 = Type D-1 Device - * 1 = Type D-2 Device - * 2 = Type D-3 Device - */ - proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dev_redundancy_state_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dev_redundancy_state_role, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dev_redundancy_state_type, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree *sub_tree; + proto_item *ti; + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, 1, + "Device Redundancy State: 0x%02x", value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_dev_annunc_req_dev_redundancy_state); + + /* + * Bits 5-8 = Reserved, set to 0 + * Bits 3 & 4 Device Redundancy Role + * 0 = Reserved + * 1 = Primary + * 2 = Secondary + * Bits 1 & 2 Assigned Redundant Device Type* + * 0 = Type D-1 Device + * 1 = Type D-2 Device + * 2 = Type D-3 Device + */ + proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dev_redundancy_state_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dev_redundancy_state_role, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dev_redundancy_state_type, tvb, offset, 1, ENC_BIG_ENDIAN); } static void dissect_ff_msg_sm_dev_annunc_req_dup_detection_state(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint8 value) + gint offset, proto_tree *tree, guint8 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, 1, - "Duplicate Detection State: 0x%02x", value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_dev_annunc_req_dup_detection_state); - - if(!sub_tree) { - return; - } - - /* - * Bits 3-8: Reserved, set to 0. - * Bit 2: 1 = Duplicate PD Tag Detected - * 0 = Duplicate PD Tag Not Detected - * Bit 1: 1 = Duplicate Device Index Detected - * 0 = Duplicate Device Index Not Detected - */ - proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dup_detection_state_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dup_detection_state_pd_tag, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dup_detection_state_device, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree *sub_tree; + proto_item *ti; + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, 1, + "Duplicate Detection State: 0x%02x", value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_dev_annunc_req_dup_detection_state); + + /* + * Bits 3-8: Reserved, set to 0. + * Bit 2: 1 = Duplicate PD Tag Detected + * 0 = Duplicate PD Tag Not Detected + * Bit 1: 1 = Duplicate Device Index Detected + * 0 = Duplicate Device Index Not Detected + */ + proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dup_detection_state_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dup_detection_state_pd_tag, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_sm_dev_annunc_req_dup_detection_state_device, tvb, offset, 1, ENC_BIG_ENDIAN); } static void dissect_ff_msg_sm_dev_annunc_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree, guint32 FDAAddress) -{ - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - guint8 SMKState = 0; - guint8 DeviceType = 0; - guint8 DeviceRedundancyState = 0; - guint8 DuplicateDetectionState = 0; - guint32 NumOfEntriesInVerNumList = 0; - - guint16 LinkId = 0; - - col_set_str(pinfo->cinfo, COL_INFO, "SM Device Annunciation Request"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "SM Device Annunciation Request"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_sm_dev_annunc_req); - - if(!sub_tree) { - return; - } - - SMKState = tvb_get_guint8(tvb, offset); - dissect_ff_msg_sm_dev_annunc_req_smk_state(tvb, offset, sub_tree, SMKState); - offset += 1; - length -= 1; - - DeviceType = tvb_get_guint8(tvb, offset); - dissect_ff_msg_sm_dev_annunc_req_dev_type(tvb, - offset, sub_tree, DeviceType); - offset += 1; - length -= 1; - - DeviceRedundancyState = tvb_get_guint8(tvb, offset); - dissect_ff_msg_sm_dev_annunc_req_dev_redundancy_state(tvb, - offset, sub_tree, DeviceRedundancyState); - offset += 1; - length -= 1; - - DuplicateDetectionState = tvb_get_guint8(tvb, offset); - dissect_ff_msg_sm_dev_annunc_req_dup_detection_state(tvb, - offset, sub_tree, DuplicateDetectionState); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_sm_dev_annunc_req_dev_idx, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_sm_dev_annunc_req_max_dev_idx, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_sm_dev_annunc_req_operational_ip_addr, tvb, offset, 16, ENC_NA); - offset += 16; - length -= 16; - - proto_tree_add_item(sub_tree, - hf_ff_sm_dev_annunc_req_dev_id, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; - - proto_tree_add_item(sub_tree, - hf_ff_sm_dev_annunc_req_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; - - proto_tree_add_item(sub_tree, - hf_ff_sm_dev_annunc_req_hse_repeat_time, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_sm_dev_annunc_req_lr_port, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_sm_dev_annunc_req_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_sm_dev_annunc_req_annunc_ver_num, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_sm_dev_annunc_req_hse_dev_ver_num, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - NumOfEntriesInVerNumList = tvb_get_ntohl(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_sm_dev_annunc_req_num_of_entries, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - if(NumOfEntriesInVerNumList) { - /* 11111111 11111111 00000000 00000000 */ - LinkId = (guint16)(FDAAddress >> 16); - if(LinkId) { - dissect_ff_msg_sm_dev_annunc_req_entries_node_addr(tvb, - offset, sub_tree, NumOfEntriesInVerNumList); - } else { - dissect_ff_msg_sm_dev_annunc_req_entries_link_id(tvb, - offset, sub_tree, NumOfEntriesInVerNumList); - } - - offset += 4 * NumOfEntriesInVerNumList; - length -= 4 * NumOfEntriesInVerNumList; - } - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + guint32 length, packet_info *pinfo, proto_tree *tree, guint32 FDAAddress) +{ + proto_tree *sub_tree; + proto_item *ti; + + guint8 SMKState; + guint8 DeviceType; + guint8 DeviceRedundancyState; + guint8 DuplicateDetectionState; + guint32 NumOfEntriesInVerNumList; + + col_set_str(pinfo->cinfo, COL_INFO, "SM Device Annunciation Request"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "SM Device Annunciation Request"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_sm_dev_annunc_req); + + SMKState = tvb_get_guint8(tvb, offset); + dissect_ff_msg_sm_dev_annunc_req_smk_state(tvb, offset, sub_tree, SMKState); + offset += 1; + length -= 1; + + DeviceType = tvb_get_guint8(tvb, offset); + dissect_ff_msg_sm_dev_annunc_req_dev_type(tvb, + offset, sub_tree, DeviceType); + offset += 1; + length -= 1; + + DeviceRedundancyState = tvb_get_guint8(tvb, offset); + dissect_ff_msg_sm_dev_annunc_req_dev_redundancy_state(tvb, + offset, sub_tree, DeviceRedundancyState); + offset += 1; + length -= 1; + + DuplicateDetectionState = tvb_get_guint8(tvb, offset); + dissect_ff_msg_sm_dev_annunc_req_dup_detection_state(tvb, + offset, sub_tree, DuplicateDetectionState); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_sm_dev_annunc_req_dev_idx, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_sm_dev_annunc_req_max_dev_idx, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_sm_dev_annunc_req_operational_ip_addr, tvb, offset, 16, ENC_NA); + offset += 16; + length -= 16; + + proto_tree_add_item(sub_tree, + hf_ff_sm_dev_annunc_req_dev_id, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; + + proto_tree_add_item(sub_tree, + hf_ff_sm_dev_annunc_req_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; + + proto_tree_add_item(sub_tree, + hf_ff_sm_dev_annunc_req_hse_repeat_time, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_sm_dev_annunc_req_lr_port, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_sm_dev_annunc_req_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_sm_dev_annunc_req_annunc_ver_num, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_sm_dev_annunc_req_hse_dev_ver_num, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + NumOfEntriesInVerNumList = tvb_get_ntohl(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_sm_dev_annunc_req_num_of_entries, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + if (NumOfEntriesInVerNumList) { + guint16 LinkId; + /* 11111111 11111111 00000000 00000000 */ + LinkId = (guint16)(FDAAddress >> 16); + if (LinkId) { + dissect_ff_msg_sm_dev_annunc_req_entries_node_addr(tvb, + offset, sub_tree, NumOfEntriesInVerNumList); + } else { + dissect_ff_msg_sm_dev_annunc_req_entries_link_id(tvb, + offset, sub_tree, NumOfEntriesInVerNumList); + } + + offset += 4 * NumOfEntriesInVerNumList; + length -= 4 * NumOfEntriesInVerNumList; + } + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -3963,62 +3797,58 @@ dissect_ff_msg_sm_dev_annunc_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_init_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Request"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Initiate Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_req); - - if(!sub_tree) { - return; - } - - proto_tree_add_item(sub_tree, - hf_ff_fms_init_req_conn_opt, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_init_req_access_protection_supported_calling, - tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_init_req_passwd_and_access_grps_calling, - tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_init_req_ver_od_calling, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_init_req_prof_num_calling, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_init_req_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Request"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Initiate Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_req); + + proto_tree_add_item(sub_tree, + hf_ff_fms_init_req_conn_opt, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_init_req_access_protection_supported_calling, + tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_init_req_passwd_and_access_grps_calling, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_init_req_ver_od_calling, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_init_req_prof_num_calling, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_init_req_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -4028,41 +3858,37 @@ dissect_ff_msg_fms_init_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_init_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Response"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Initiate Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_rep); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Initiate Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_rep); - proto_tree_add_item(sub_tree, - hf_ff_fms_init_rsp_ver_od_called, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; + proto_tree_add_item(sub_tree, + hf_ff_fms_init_rsp_ver_od_called, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; - proto_tree_add_item(sub_tree, - hf_ff_fms_init_rsp_prof_num_called, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; + proto_tree_add_item(sub_tree, + hf_ff_fms_init_rsp_prof_num_called, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -4072,57 +3898,53 @@ dissect_ff_msg_fms_init_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_init_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Initiate Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_init_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fms_init_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_init_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_init_err_additional_desc, tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Initiate Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_init_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fms_init_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_init_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_init_err_additional_desc, tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -4133,50 +3955,46 @@ dissect_ff_msg_fms_init_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_abort_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Abort Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Abort Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Abort Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_abort_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Abort Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_abort_req); - proto_tree_add_text(sub_tree, tvb, offset, 16, - "Abort Detail (%u bytes)", 16); - offset += 16; - length -= 16; + proto_tree_add_text(sub_tree, tvb, offset, 16, + "Abort Detail (%u bytes)", 16); + offset += 16; + length -= 16; - proto_tree_add_item(sub_tree, - hf_ff_fms_abort_req_abort_id, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; + proto_tree_add_item(sub_tree, + hf_ff_fms_abort_req_abort_id, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; - proto_tree_add_item(sub_tree, - hf_ff_fms_abort_req_reason_code, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; + proto_tree_add_item(sub_tree, + hf_ff_fms_abort_req_reason_code, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; - proto_tree_add_item(sub_tree, - hf_ff_fms_abort_req_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; + proto_tree_add_item(sub_tree, + hf_ff_fms_abort_req_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -4187,31 +4005,27 @@ dissect_ff_msg_fms_abort_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_status_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Status Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Status Request"); - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Status Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_status_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Status Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_status_req); - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -4221,50 +4035,46 @@ dissect_ff_msg_fms_status_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_status_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Status Response"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Status Response"); - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Status Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_status_rsp); + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Status Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_status_rsp); - if(!sub_tree) { - return; - } + proto_tree_add_item(sub_tree, + hf_ff_fms_status_rsp_logical_status, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; - proto_tree_add_item(sub_tree, - hf_ff_fms_status_rsp_logical_status, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; + proto_tree_add_item(sub_tree, + hf_ff_fms_status_rsp_physical_status, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; - proto_tree_add_item(sub_tree, - hf_ff_fms_status_rsp_physical_status, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; + proto_tree_add_item(sub_tree, + hf_ff_fms_status_rsp_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; - proto_tree_add_item(sub_tree, - hf_ff_fms_status_rsp_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; + proto_tree_add_text(sub_tree, tvb, offset, 4, + "Local Detail (%u bytes)", 4); + offset += 4; + length -= 4; - proto_tree_add_text(sub_tree, tvb, offset, 4, - "Local Detail (%u bytes)", 4); - offset += 4; - length -= 4; + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -4274,57 +4084,53 @@ dissect_ff_msg_fms_status_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_status_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Status Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Status Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_status_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_status_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fms_status_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_status_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_status_err_additional_desc, tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Status Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Status Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_status_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_status_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fms_status_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_status_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_status_err_additional_desc, tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -4335,52 +4141,48 @@ dissect_ff_msg_fms_status_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_unsolicited_status_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Unsolicited Status Request"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Unsolicited Status Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_unsolicited_status_req); - - if(!sub_tree) { - return; - } - - proto_tree_add_item(sub_tree, - hf_ff_fms_unsolicited_status_req_logical_status, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_unsolicited_status_req_physical_status, - tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_unsolicited_status_req_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_text(sub_tree, tvb, offset, 4, - "Local Detail (%u bytes)", 4); - offset += 4; - length -= 4; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Unsolicited Status Request"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Unsolicited Status Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_unsolicited_status_req); + + proto_tree_add_item(sub_tree, + hf_ff_fms_unsolicited_status_req_logical_status, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_unsolicited_status_req_physical_status, + tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_unsolicited_status_req_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_text(sub_tree, tvb, offset, 4, + "Local Detail (%u bytes)", 4); + offset += 4; + length -= 4; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -4391,31 +4193,27 @@ dissect_ff_msg_fms_unsolicited_status_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_id_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Identify Request"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Identify Request"); - if(!tree) { - return; - } + if (!tree) { + return; + } - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Identify Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_id_req); + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Identify Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_id_req); - if(!sub_tree) { - return; - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -4425,46 +4223,42 @@ dissect_ff_msg_fms_id_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_id_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Identify Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Identify Response"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Identify Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_id_rsp); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Identify Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_id_rsp); - proto_tree_add_item(sub_tree, - hf_ff_fms_id_rsp_vendor_name, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; + proto_tree_add_item(sub_tree, + hf_ff_fms_id_rsp_vendor_name, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; - proto_tree_add_item(sub_tree, - hf_ff_fms_id_rsp_model_name, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; + proto_tree_add_item(sub_tree, + hf_ff_fms_id_rsp_model_name, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; - proto_tree_add_item(sub_tree, - hf_ff_fms_id_rsp_revision, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; + proto_tree_add_item(sub_tree, + hf_ff_fms_id_rsp_revision, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -4474,57 +4268,53 @@ dissect_ff_msg_fms_id_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_id_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Identify Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Identify Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_id_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_id_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fms_id_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_id_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, hf_ff_fms_id_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Identify Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Identify Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_id_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_id_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fms_id_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_id_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, hf_ff_fms_id_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -4535,50 +4325,46 @@ dissect_ff_msg_fms_id_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_get_od_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Get OD Request"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Get OD Request"); - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Get OD Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_get_od_req); + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Get OD Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_get_od_req); - if(!sub_tree) { - return; - } + proto_tree_add_item(sub_tree, + hf_ff_fms_get_od_req_all_attrs, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; - proto_tree_add_item(sub_tree, - hf_ff_fms_get_od_req_all_attrs, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; + proto_tree_add_item(sub_tree, + hf_ff_fms_get_od_req_start_idx_flag, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; - proto_tree_add_item(sub_tree, - hf_ff_fms_get_od_req_start_idx_flag, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; + proto_tree_add_item(sub_tree, + hf_ff_fms_get_od_req_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; - proto_tree_add_item(sub_tree, - hf_ff_fms_get_od_req_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; + proto_tree_add_item(sub_tree, + hf_ff_fms_get_od_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_fms_get_od_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -4588,45 +4374,41 @@ dissect_ff_msg_fms_get_od_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_get_od_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Get OD Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Get OD Response"); - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Get OD Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_get_od_rsp); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Get OD Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_get_od_rsp); - proto_tree_add_item(sub_tree, - hf_ff_fms_get_od_rsp_more_follows, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; + proto_tree_add_item(sub_tree, + hf_ff_fms_get_od_rsp_more_follows, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; - proto_tree_add_item(sub_tree, - hf_ff_fms_get_od_rsp_num_of_obj_desc, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; + proto_tree_add_item(sub_tree, + hf_ff_fms_get_od_rsp_num_of_obj_desc, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; - proto_tree_add_item(sub_tree, - hf_ff_fms_get_od_rsp_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; + proto_tree_add_item(sub_tree, + hf_ff_fms_get_od_rsp_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "List of Object Descriptions (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "List of Object Descriptions (%u bytes)", length); + } - return; + return; } @@ -4636,57 +4418,53 @@ dissect_ff_msg_fms_get_od_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_get_od_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Get OD Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Get OD Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_get_od_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_get_od_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fms_get_od_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_get_od_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, hf_ff_fms_get_od_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Get OD Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Get OD Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_get_od_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_get_od_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fms_get_od_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_get_od_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, hf_ff_fms_get_od_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -4697,41 +4475,37 @@ dissect_ff_msg_fms_get_od_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_init_put_od_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Put OD Request"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Put OD Request"); - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Initiate Put OD Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_put_od_req); + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Initiate Put OD Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_put_od_req); - if(!sub_tree) { - return; - } + proto_tree_add_item(sub_tree, + hf_ff_fms_init_put_od_req_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; - proto_tree_add_item(sub_tree, - hf_ff_fms_init_put_od_req_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; + proto_tree_add_item(sub_tree, + hf_ff_fms_init_put_od_req_consequence, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; - proto_tree_add_item(sub_tree, - hf_ff_fms_init_put_od_req_consequence, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -4741,31 +4515,27 @@ dissect_ff_msg_fms_init_put_od_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_init_put_od_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Put OD Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Put OD Response"); - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Initiate Put OD Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_put_od_rsp); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Initiate Put OD Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_put_od_rsp); - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -4775,58 +4545,54 @@ dissect_ff_msg_fms_init_put_od_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_init_put_od_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Put OD Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Initiate Put OD Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_put_od_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_init_put_od_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fms_init_put_od_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_init_put_od_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, hf_ff_fms_init_put_od_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Put OD Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Initiate Put OD Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_put_od_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_init_put_od_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fms_init_put_od_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_init_put_od_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, hf_ff_fms_init_put_od_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -4837,37 +4603,33 @@ dissect_ff_msg_fms_init_put_od_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_put_od_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Put OD Request"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Put OD Request"); - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Put OD Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_put_od_req); + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Put OD Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_put_od_req); - if(!sub_tree) { - return; - } + proto_tree_add_item(sub_tree, + hf_ff_fms_put_od_req_num_of_obj_desc, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; - proto_tree_add_item(sub_tree, - hf_ff_fms_put_od_req_num_of_obj_desc, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; + proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); + offset += 3; + length -= 3; - proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); - offset += 3; - length -= 3; + proto_tree_add_text(sub_tree, tvb, offset, length, + "List of Object Descriptions (%u bytes)", length); - proto_tree_add_text(sub_tree, tvb, offset, length, - "List of Object Descriptions (%u bytes)", length); - - return; + return; } @@ -4877,31 +4639,27 @@ dissect_ff_msg_fms_put_od_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_put_od_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Put OD Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Put OD Response"); - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Put OD Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_put_od_rsp); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Put OD Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_put_od_rsp); - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -4911,58 +4669,54 @@ dissect_ff_msg_fms_put_od_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_put_od_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Put OD Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Put OD Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_put_od_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_put_od_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fms_put_od_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_put_od_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, hf_ff_fms_put_od_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Put OD Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Put OD Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_put_od_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_put_od_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fms_put_od_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_put_od_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, hf_ff_fms_put_od_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -4973,31 +4727,27 @@ dissect_ff_msg_fms_put_od_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_terminate_put_od_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Terminate Put OD Request"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Terminate Put OD Request"); - if(!tree) { - return; - } + if (!tree) { + return; + } - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Terminate Put OD Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_terminate_put_od_req); + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Terminate Put OD Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_terminate_put_od_req); - if(!sub_tree) { - return; - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -5007,31 +4757,27 @@ dissect_ff_msg_fms_terminate_put_od_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_terminate_put_od_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Terminate Put OD Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Terminate Put OD Response"); - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Terminate Put OD Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_terminate_put_od_rsp); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Terminate Put OD Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_terminate_put_od_rsp); - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -5041,65 +4787,61 @@ dissect_ff_msg_fms_terminate_put_od_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_terminate_put_od_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Terminate Put OD Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Terminate Put OD Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_terminate_put_od_err); - - if(!sub_tree) { - return; - } - - proto_tree_add_item(sub_tree, - hf_ff_fms_terminate_put_od_err_index, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_terminate_put_od_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, - hf_ff_fms_terminate_put_od_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_terminate_put_od_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_terminate_put_od_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Terminate Put OD Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Terminate Put OD Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_terminate_put_od_err); + + proto_tree_add_item(sub_tree, + hf_ff_fms_terminate_put_od_err_index, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_terminate_put_od_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, + hf_ff_fms_terminate_put_od_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_terminate_put_od_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_terminate_put_od_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -5111,37 +4853,33 @@ dissect_ff_msg_fms_terminate_put_od_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_generic_init_download_sequence_req( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Generic Initiate Download Sequence Request"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Generic Initiate Download Sequence Request"); - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Generic Initiate Download Sequence Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_gen_init_download_seq_req); + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Generic Initiate Download Sequence Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_gen_init_download_seq_req); - if(!sub_tree) { - return; - } + proto_tree_add_item(sub_tree, + hf_ff_fms_gen_init_download_seq_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_fms_gen_init_download_seq_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -5151,33 +4889,29 @@ dissect_ff_msg_fms_generic_init_download_sequence_req( */ static void dissect_ff_msg_fms_generic_init_download_sequence_rsp( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Generic Initiate Download Sequence Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Generic Initiate Download Sequence Response"); - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Generic Initiate Download Sequence Response"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_gen_init_download_seq_rep); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Generic Initiate Download Sequence Response"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_gen_init_download_seq_rep); - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -5187,62 +4921,58 @@ dissect_ff_msg_fms_generic_init_download_sequence_rsp( */ static void dissect_ff_msg_fms_generic_init_download_sequence_err( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Generic Initiate Download Sequence Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Generic Initiate Download Sequence Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_gen_init_download_seq_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_gen_init_download_seq_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, - hf_ff_fms_gen_init_download_seq_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_gen_init_download_seq_err_additional_code, - tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_gen_init_download_seq_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Generic Initiate Download Sequence Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Generic Initiate Download Sequence Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_gen_init_download_seq_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_gen_init_download_seq_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, + hf_ff_fms_gen_init_download_seq_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_gen_init_download_seq_err_additional_code, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_gen_init_download_seq_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -5253,46 +4983,42 @@ dissect_ff_msg_fms_generic_init_download_sequence_err( */ static void dissect_ff_msg_fms_generic_download_segment_req( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Generic Download Segment Request"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Generic Download Segment Request"); - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Generic Download Segment Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_gen_download_seg_req); + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Generic Download Segment Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_gen_download_seg_req); - if(!sub_tree) { - return; - } + proto_tree_add_item(sub_tree, + hf_ff_fms_gen_download_seg_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_fms_gen_download_seg_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_gen_download_seg_req_more_follows, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; - proto_tree_add_item(sub_tree, - hf_ff_fms_gen_download_seg_req_more_follows, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; + proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); + offset += 3; + length -= 3; - proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); - offset += 3; - length -= 3; + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "Load Data (%u bytes)", length); + } - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "Load Data (%u bytes)", length); - } - - return; + return; } @@ -5302,33 +5028,29 @@ dissect_ff_msg_fms_generic_download_segment_req( */ static void dissect_ff_msg_fms_generic_download_segment_rsp( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Generic Download Segment Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Generic Download Segment Response"); - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Generic Download Segment Response"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_gen_download_seg_rsp); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Generic Download Segment Response"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_gen_download_seg_rsp); - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -5338,61 +5060,57 @@ dissect_ff_msg_fms_generic_download_segment_rsp( */ static void dissect_ff_msg_fms_generic_download_segment_err( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Generic Download Segment Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Generic Download Segment Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_gen_download_seg_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_gen_download_seg_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, - hf_ff_fms_gen_download_seg_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_gen_download_seg_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_gen_download_seg_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Generic Download Segment Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Generic Download Segment Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_gen_download_seg_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_gen_download_seg_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, + hf_ff_fms_gen_download_seg_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_gen_download_seg_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_gen_download_seg_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -5404,38 +5122,34 @@ dissect_ff_msg_fms_generic_download_segment_err( */ static void dissect_ff_msg_fms_generic_terminate_download_sequence_req( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO,"FMS Generic Terminate Download Sequence Request"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Generic Terminate Download Sequence Request"); - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Generic Terminate Download Sequence Request"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_gen_terminate_download_seq_req); + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Generic Terminate Download Sequence Request"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_gen_terminate_download_seq_req); - if(!sub_tree) { - return; - } + proto_tree_add_item(sub_tree, + hf_ff_fms_gen_terminate_download_seq_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_fms_gen_terminate_download_seq_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -5445,43 +5159,39 @@ dissect_ff_msg_fms_generic_terminate_download_sequence_req( */ static void dissect_ff_msg_fms_generic_terminate_download_sequence_rsp( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Generic Terminate Download Sequence Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Generic Terminate Download Sequence Response"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Generic Terminate Download Sequence Response"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_gen_terminate_download_seq_rsp); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Generic Terminate Download Sequence Response"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_gen_terminate_download_seq_rsp); - proto_tree_add_item(sub_tree, - hf_ff_fms_gen_terminate_download_seq_rsp_final_result, - tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; + proto_tree_add_item(sub_tree, + hf_ff_fms_gen_terminate_download_seq_rsp_final_result, + tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; - proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); - offset += 3; - length -= 3; + proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); + offset += 3; + length -= 3; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -5491,64 +5201,60 @@ dissect_ff_msg_fms_generic_terminate_download_sequence_rsp( */ static void dissect_ff_msg_fms_generic_terminate_download_sequence_err( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Generic Terminate Download Sequence Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Generic Terminate Download Sequence Error"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_gen_terminate_download_seq_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_gen_terminate_download_seq_err_err_class, - tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, - hf_ff_fms_gen_terminate_download_seq_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_gen_terminate_download_seq_err_additional_code, - tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_gen_terminate_download_seq_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Generic Terminate Download Sequence Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Generic Terminate Download Sequence Error"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_gen_terminate_download_seq_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_gen_terminate_download_seq_err_err_class, + tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, + hf_ff_fms_gen_terminate_download_seq_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_gen_terminate_download_seq_err_additional_code, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_gen_terminate_download_seq_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -5559,38 +5265,34 @@ dissect_ff_msg_fms_generic_terminate_download_sequence_err( */ static void dissect_ff_msg_fms_init_download_sequence_req( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Download Sequence Request"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Download Sequence Request"); - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Initiate Download Sequence Request"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_init_download_seq_req); + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Initiate Download Sequence Request"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_init_download_seq_req); - if(!sub_tree) { - return; - } + proto_tree_add_item(sub_tree, + hf_ff_fms_init_download_seq_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_fms_init_download_seq_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -5600,33 +5302,29 @@ dissect_ff_msg_fms_init_download_sequence_req( */ static void dissect_ff_msg_fms_init_download_sequence_rsp( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Download Sequence Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Download Sequence Response"); - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Initiate Download Sequence Response"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_init_download_seq_rsp); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Initiate Download Sequence Response"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_init_download_seq_rsp); - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -5636,61 +5334,57 @@ dissect_ff_msg_fms_init_download_sequence_rsp( */ static void dissect_ff_msg_fms_init_download_sequence_err( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Download Sequence Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Initiate Download Sequence Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_download_seq_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_init_download_seq_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, - hf_ff_fms_init_download_seq_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_init_download_seq_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_init_download_seq_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Download Sequence Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Initiate Download Sequence Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_download_seq_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_init_download_seq_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, + hf_ff_fms_init_download_seq_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_init_download_seq_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_init_download_seq_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -5701,36 +5395,32 @@ dissect_ff_msg_fms_init_download_sequence_err( */ static void dissect_ff_msg_fms_download_segment_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Download Segment Request"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Download Segment Request"); - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Download Segment Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_download_seg_req); + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Download Segment Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_download_seg_req); - if(!sub_tree) { - return; - } + proto_tree_add_item(sub_tree, + hf_ff_fms_download_seg_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_fms_download_seg_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -5740,40 +5430,36 @@ dissect_ff_msg_fms_download_segment_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_download_segment_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Download Segment Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Download Segment Response"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Download Segment Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_download_seg_rsp); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Download Segment Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_download_seg_rsp); - proto_tree_add_item(sub_tree, - hf_ff_fms_download_seg_rsp_more_follows, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; + proto_tree_add_item(sub_tree, + hf_ff_fms_download_seg_rsp_more_follows, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; - proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); - offset += 3; - length -= 3; + proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); + offset += 3; + length -= 3; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "Load Data (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "Load Data (%u bytes)", length); + } - return; + return; } @@ -5783,59 +5469,55 @@ dissect_ff_msg_fms_download_segment_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_download_segment_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Download Segment Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Download Segment Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_download_seg_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_download_seg_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fms_download_seg_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_download_seg_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_download_seg_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Download Segment Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Download Segment Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_download_seg_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_download_seg_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fms_download_seg_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_download_seg_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_download_seg_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -5846,48 +5528,44 @@ dissect_ff_msg_fms_download_segment_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_terminate_download_sequence_req( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Terminate Download Sequence Request"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Terminate Download Sequence Request"); - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Terminate Download Sequence Request"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_terminate_download_seq_req); + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Terminate Download Sequence Request"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_terminate_download_seq_req); - if(!sub_tree) { - return; - } + proto_tree_add_item(sub_tree, + hf_ff_fms_terminate_download_seq_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_fms_terminate_download_seq_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); + offset += 3; + length -= 3; - proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); - offset += 3; - length -= 3; + proto_tree_add_item(sub_tree, + hf_ff_fms_terminate_download_seq_req_final_result, + tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; - proto_tree_add_item(sub_tree, - hf_ff_fms_terminate_download_seq_req_final_result, - tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -5897,33 +5575,29 @@ dissect_ff_msg_fms_terminate_download_sequence_req( */ static void dissect_ff_msg_fms_terminate_download_sequence_rsp( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Terminate Download Sequence Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Terminate Download Sequence Response"); - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Terminate Download Sequence Response"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_terminate_download_seq_rsp); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Terminate Download Sequence Response"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_terminate_download_seq_rsp); - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -5933,63 +5607,59 @@ dissect_ff_msg_fms_terminate_download_sequence_rsp( */ static void dissect_ff_msg_fms_terminate_download_sequence_err( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Terminate Download Sequence Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Terminate Download Sequence Error"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_terminate_download_seq_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_terminate_download_seq_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, - hf_ff_fms_terminate_download_seq_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_terminate_download_seq_err_additional_code, - tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_terminate_download_seq_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Terminate Download Sequence Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Terminate Download Sequence Error"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_terminate_download_seq_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_terminate_download_seq_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, + hf_ff_fms_terminate_download_seq_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_terminate_download_seq_err_additional_code, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_terminate_download_seq_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -6000,37 +5670,33 @@ dissect_ff_msg_fms_terminate_download_sequence_err( */ static void dissect_ff_msg_fms_init_upload_seq_req( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Upload Sequence Request"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Upload Sequence Request"); - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Initiate Upload Sequence Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_upload_seq_req); + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Initiate Upload Sequence Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_upload_seq_req); - if(!sub_tree) { - return; - } + proto_tree_add_item(sub_tree, + hf_ff_fms_init_upload_seq_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_fms_init_upload_seq_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -6040,32 +5706,28 @@ dissect_ff_msg_fms_init_upload_seq_req( */ static void dissect_ff_msg_fms_init_upload_seq_rsp( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Upload Sequence Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Upload Sequence Response"); - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Initiate Upload Sequence Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_upload_seq_rsp); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Initiate Upload Sequence Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_upload_seq_rsp); - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -6075,59 +5737,55 @@ dissect_ff_msg_fms_init_upload_seq_rsp( */ static void dissect_ff_msg_fms_init_upload_seq_err( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Upload Sequence Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Initiate Upload Sequence Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_upload_seq_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_init_upload_seq_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fms_init_upload_seq_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_init_upload_seq_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, hf_ff_fms_init_upload_seq_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Initiate Upload Sequence Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Initiate Upload Sequence Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_init_upload_seq_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_init_upload_seq_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fms_init_upload_seq_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_init_upload_seq_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, hf_ff_fms_init_upload_seq_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -6138,36 +5796,32 @@ dissect_ff_msg_fms_init_upload_seq_err( */ static void dissect_ff_msg_fms_upload_segment_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Upload Segment Request"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Upload Segment Request"); - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Upload Segment Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_upload_seg_req); + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Upload Segment Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_upload_seg_req); - if(!sub_tree) { - return; - } + proto_tree_add_item(sub_tree, + hf_ff_fms_upload_seg_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_fms_upload_seg_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -6177,40 +5831,36 @@ dissect_ff_msg_fms_upload_segment_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_upload_segment_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Upload Segment Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Upload Segment Response"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Upload Segment Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_upload_seg_rsp); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Upload Segment Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_upload_seg_rsp); - proto_tree_add_item(sub_tree, - hf_ff_fms_upload_seg_rsp_more_follows, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; + proto_tree_add_item(sub_tree, + hf_ff_fms_upload_seg_rsp_more_follows, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; - proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); - offset += 3; - length -= 3; + proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); + offset += 3; + length -= 3; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "Final Result (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "Final Result (%u bytes)", length); + } - return; + return; } @@ -6220,59 +5870,55 @@ dissect_ff_msg_fms_upload_segment_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_upload_segment_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Upload Segment Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Upload Segment Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_upload_seg_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_upload_seg_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fms_upload_seg_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_upload_seg_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_upload_seg_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Upload Segment Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Upload Segment Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_upload_seg_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_upload_seg_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fms_upload_seg_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_upload_seg_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_upload_seg_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -6283,37 +5929,33 @@ dissect_ff_msg_fms_upload_segment_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_terminate_upload_seq_req( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Terminate Upload Sequence Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Terminate Upload Sequence Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Terminate Upload Sequence Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_terminate_upload_seq_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Terminate Upload Sequence Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_terminate_upload_seq_req); - proto_tree_add_item(sub_tree, - hf_ff_fms_terminate_upload_seq_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_terminate_upload_seq_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -6323,33 +5965,29 @@ dissect_ff_msg_fms_terminate_upload_seq_req( */ static void dissect_ff_msg_fms_terminate_upload_seq_rsp( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Terminate Upload Sequence Response"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Terminate Upload Sequence Response"); - if(!tree) { - return; - } + if (!tree) { + return; + } - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Terminate Upload Sequence Response"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_terminate_upload_seq_rsp); + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Terminate Upload Sequence Response"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_terminate_upload_seq_rsp); - if(!sub_tree) { - return; - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -6359,62 +5997,58 @@ dissect_ff_msg_fms_terminate_upload_seq_rsp( */ static void dissect_ff_msg_fms_terminate_upload_seq_err( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Terminate Upload Sequence Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Terminate Upload Sequence Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_terminate_upload_seq_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_terminate_upload_seq_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, - hf_ff_fms_terminate_upload_seq_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_terminate_upload_seq_err_additional_code, - tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_terminate_upload_seq_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Terminate Upload Sequence Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Terminate Upload Sequence Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_terminate_upload_seq_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_terminate_upload_seq_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, + hf_ff_fms_terminate_upload_seq_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_terminate_upload_seq_err_additional_code, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_terminate_upload_seq_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -6425,38 +6059,34 @@ dissect_ff_msg_fms_terminate_upload_seq_err( */ static void dissect_ff_msg_fms_req_dom_download_req( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO,"FMS Request Domain Download Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Request Domain Download Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Request Domain Download Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_req_dom_download_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Request Domain Download Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_req_dom_download_req); - proto_tree_add_item(sub_tree, - hf_ff_fms_req_dom_download_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_req_dom_download_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - if(length) { - proto_tree_add_item(sub_tree, - hf_ff_fms_req_dom_download_req_additional_info, - tvb, offset, length, ENC_ASCII|ENC_NA); - } + if (length) { + proto_tree_add_item(sub_tree, + hf_ff_fms_req_dom_download_req_additional_info, + tvb, offset, length, ENC_ASCII|ENC_NA); + } - return; + return; } @@ -6466,33 +6096,29 @@ dissect_ff_msg_fms_req_dom_download_req( */ static void dissect_ff_msg_fms_req_dom_download_rsp( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO,"FMS Request Domain Download Response"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Request Domain Download Response"); - if(!tree) { - return; - } + if (!tree) { + return; + } - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Request Domain Download Response"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_req_dom_download_rsp); + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Request Domain Download Response"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_req_dom_download_rsp); - if(!sub_tree) { - return; - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -6502,61 +6128,57 @@ dissect_ff_msg_fms_req_dom_download_rsp( */ static void dissect_ff_msg_fms_req_dom_download_err( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Request Domain Download Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Request Domain Download Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_req_dom_download_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_req_dom_download_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, - hf_ff_fms_req_dom_download_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_req_dom_download_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_req_dom_download_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Request Domain Download Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Request Domain Download Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_req_dom_download_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_req_dom_download_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, + hf_ff_fms_req_dom_download_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_req_dom_download_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_req_dom_download_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -6567,38 +6189,34 @@ dissect_ff_msg_fms_req_dom_download_err( */ static void dissect_ff_msg_fms_req_dom_upload_req( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Request Domain Upload Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Request Domain Upload Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Request Domain Upload Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_req_dom_upload_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Request Domain Upload Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_req_dom_upload_req); - proto_tree_add_item(sub_tree, - hf_ff_fms_req_dom_upload_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_req_dom_upload_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - if(length) { - proto_tree_add_item(sub_tree, - hf_ff_fms_req_dom_upload_req_additional_info, - tvb, offset, length, ENC_ASCII|ENC_NA); - } + if (length) { + proto_tree_add_item(sub_tree, + hf_ff_fms_req_dom_upload_req_additional_info, + tvb, offset, length, ENC_ASCII|ENC_NA); + } - return; + return; } @@ -6608,33 +6226,29 @@ dissect_ff_msg_fms_req_dom_upload_req( */ static void dissect_ff_msg_fms_req_dom_upload_rsp( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Request Domain Upload Response"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Request Domain Upload Response"); - if(!tree) { - return; - } + if (!tree) { + return; + } - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Request Domain Upload Response"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_req_dom_upload_rsp); + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Request Domain Upload Response"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_req_dom_upload_rsp); - if(!sub_tree) { - return; - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -6644,60 +6258,56 @@ dissect_ff_msg_fms_req_dom_upload_rsp( */ static void dissect_ff_msg_fms_req_dom_upload_err( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Request Domain Upload Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Request Domain Upload Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_req_dom_upload_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_req_dom_upload_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fms_req_dom_upload_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_req_dom_upload_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_req_dom_upload_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Request Domain Upload Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Request Domain Upload Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_req_dom_upload_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_req_dom_upload_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fms_req_dom_upload_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_req_dom_upload_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_req_dom_upload_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -6708,90 +6318,82 @@ dissect_ff_msg_fms_req_dom_upload_err( */ static void dissect_ff_msg_fms_create_pi_req_dom_idxes(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint16 value) + gint offset, proto_tree *tree, guint16 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint d = 0; - - if(!tree) { - return; - } + proto_tree *sub_tree; + proto_item *ti; + guint d; - ti = proto_tree_add_text(tree, tvb, offset, 4 * value, - "List Of Domain Indexes (%u bytes)", 4 * value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_create_pi_req_list_of_dom_idxes); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, 4 * value, + "List Of Domain Indexes (%u bytes)", 4 * value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_create_pi_req_list_of_dom_idxes); - for(d = 0; d < value; d ++) { - proto_tree_add_item(sub_tree, - hf_ff_fms_create_pi_req_dom_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + for (d = 0; d < value; d++) { + proto_tree_add_item(sub_tree, + hf_ff_fms_create_pi_req_dom_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - } + offset += 4; + } - return; + return; } static void dissect_ff_msg_fms_create_pi_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint16 NumOfDomIdxes = 0; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Create Program Invocation Request"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Create Program Invocation Request"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_create_pi_req); - - if(!sub_tree) { - return; - } - - proto_tree_add_item(sub_tree, - hf_ff_fms_create_pi_req_reusable, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_create_pi_req_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - NumOfDomIdxes = tvb_get_ntohs(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_create_pi_req_num_of_dom_idxes, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - if(NumOfDomIdxes) { - dissect_ff_msg_fms_create_pi_req_dom_idxes(tvb, - offset, sub_tree, NumOfDomIdxes); - - offset += 4 * NumOfDomIdxes; - length -= 4 * NumOfDomIdxes; - } - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint16 NumOfDomIdxes; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Create Program Invocation Request"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Create Program Invocation Request"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_create_pi_req); + + proto_tree_add_item(sub_tree, + hf_ff_fms_create_pi_req_reusable, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_create_pi_req_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + NumOfDomIdxes = tvb_get_ntohs(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_create_pi_req_num_of_dom_idxes, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + if (NumOfDomIdxes) { + dissect_ff_msg_fms_create_pi_req_dom_idxes(tvb, + offset, sub_tree, NumOfDomIdxes); + + offset += 4 * NumOfDomIdxes; + length -= 4 * NumOfDomIdxes; + } + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -6801,37 +6403,33 @@ dissect_ff_msg_fms_create_pi_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_create_pi_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Create Program Invocation Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Create Program Invocation Response"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Create Program Invocation Response"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_create_pi_rsp); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Create Program Invocation Response"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_create_pi_rsp); - proto_tree_add_item(sub_tree, - hf_ff_fms_create_pi_rsp_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_create_pi_rsp_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -6841,60 +6439,56 @@ dissect_ff_msg_fms_create_pi_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_create_pi_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Create Program Invocation Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Create Program Invocation Error"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_create_pi_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_create_pi_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fms_create_pi_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_create_pi_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_create_pi_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Create Program Invocation Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Create Program Invocation Error"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_create_pi_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_create_pi_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fms_create_pi_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_create_pi_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_create_pi_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -6905,37 +6499,33 @@ dissect_ff_msg_fms_create_pi_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_del_pi_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO,"FMS Delete Program Invocation Request"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Delete Program Invocation Request"); - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Delete Program Invocation Request"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_del_pi_req); + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Delete Program Invocation Request"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_del_pi_req); - if(!sub_tree) { - return; - } + proto_tree_add_item(sub_tree, + hf_ff_fms_del_pi_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_fms_del_pi_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -6945,32 +6535,28 @@ dissect_ff_msg_fms_del_pi_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_del_pi_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Delete Program Invocation Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Delete Program Invocation Response"); - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Delete Program Invocation Response"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_del_pi_rsp); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Delete Program Invocation Response"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_del_pi_rsp); - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -6980,60 +6566,56 @@ dissect_ff_msg_fms_del_pi_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_del_pi_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Delete Program Invocation Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Delete Program Invocation Error"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_del_pi_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_del_pi_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fms_del_pi_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_del_pi_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_del_pi_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Delete Program Invocation Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Delete Program Invocation Error"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_del_pi_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_del_pi_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fms_del_pi_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_del_pi_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_del_pi_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -7044,35 +6626,31 @@ dissect_ff_msg_fms_del_pi_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_start_pi_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Start Request"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Start Request"); - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Start Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_start_req); + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Start Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_start_req); - if(!sub_tree) { - return; - } + proto_tree_add_item(sub_tree, + hf_ff_fms_start_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_fms_start_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "Execution Argument (%u bytes)", length); + } - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "Execution Argument (%u bytes)", length); - } - - return; + return; } @@ -7082,31 +6660,27 @@ dissect_ff_msg_fms_start_pi_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_start_pi_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Start Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Start Response"); - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Start Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_start_rsp); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Start Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_start_rsp); - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -7116,66 +6690,62 @@ dissect_ff_msg_fms_start_pi_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_start_pi_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Start Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Start Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_start_err); - - if(!sub_tree) { - return; - } - - proto_tree_add_item(sub_tree, - hf_ff_fms_start_err_pi_state, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); - offset += 3; - length -= 3; - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_start_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fms_start_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_start_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, hf_ff_fms_start_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Start Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Start Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_start_err); + + proto_tree_add_item(sub_tree, + hf_ff_fms_start_err_pi_state, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); + offset += 3; + length -= 3; + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_start_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fms_start_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_start_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, hf_ff_fms_start_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -7186,35 +6756,31 @@ dissect_ff_msg_fms_start_pi_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_stop_pi_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Stop Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Stop Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Stop Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_stop_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Stop Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_stop_req); - proto_tree_add_item(sub_tree, - hf_ff_fms_stop_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_stop_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -7224,31 +6790,27 @@ dissect_ff_msg_fms_stop_pi_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_stop_pi_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Stop Response"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Stop Response"); - if(!tree) { - return; - } + if (!tree) { + return; + } - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Stop Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_stop_rsp); + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Stop Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_stop_rsp); - if(!sub_tree) { - return; - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -7258,66 +6820,62 @@ dissect_ff_msg_fms_stop_pi_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_stop_pi_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Stop Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Stop Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_stop_err); - - if(!sub_tree) { - return; - } - - proto_tree_add_item(sub_tree, - hf_ff_fms_stop_err_pi_state, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); - offset += 3; - length -= 3; - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_stop_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fms_stop_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_stop_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, hf_ff_fms_stop_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Stop Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Stop Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_stop_err); + + proto_tree_add_item(sub_tree, + hf_ff_fms_stop_err_pi_state, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); + offset += 3; + length -= 3; + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_stop_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fms_stop_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_stop_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, hf_ff_fms_stop_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -7328,35 +6886,31 @@ dissect_ff_msg_fms_stop_pi_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_resume_pi_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Resume Request"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Resume Request"); - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Resume Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_resume_req); + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Resume Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_resume_req); - if(!sub_tree) { - return; - } + proto_tree_add_item(sub_tree, + hf_ff_fms_resume_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_fms_resume_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "Execution Argument (%u bytes)", length); + } - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "Execution Argument (%u bytes)", length); - } - - return; + return; } @@ -7366,31 +6920,27 @@ dissect_ff_msg_fms_resume_pi_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_resume_pi_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Resume Response"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Resume Response"); - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Resume Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_resume_rsp); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Resume Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_resume_rsp); - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -7400,66 +6950,62 @@ dissect_ff_msg_fms_resume_pi_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_resume_pi_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Resume Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Resume Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_resume_err); - - if(!sub_tree) { - return; - } - - proto_tree_add_item(sub_tree, - hf_ff_fms_resume_err_pi_state, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); - offset += 3; - length -= 3; - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_resume_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fms_resume_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_resume_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, hf_ff_fms_resume_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Resume Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Resume Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_resume_err); + + proto_tree_add_item(sub_tree, + hf_ff_fms_resume_err_pi_state, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); + offset += 3; + length -= 3; + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_resume_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fms_resume_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_resume_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, hf_ff_fms_resume_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -7470,35 +7016,31 @@ dissect_ff_msg_fms_resume_pi_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_reset_pi_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Reset Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Reset Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Reset Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_reset_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Reset Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_reset_req); - proto_tree_add_item(sub_tree, - hf_ff_fms_reset_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_reset_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -7508,31 +7050,27 @@ dissect_ff_msg_fms_reset_pi_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_reset_pi_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Reset Response"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Reset Response"); - if(!tree) { - return; - } + if (!tree) { + return; + } - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Reset Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_reset_rsp); + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Reset Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_reset_rsp); - if(!sub_tree) { - return; - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -7542,66 +7080,62 @@ dissect_ff_msg_fms_reset_pi_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_reset_pi_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Reset Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Reset Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_reset_err); - - if(!sub_tree) { - return; - } - - proto_tree_add_item(sub_tree, - hf_ff_fms_reset_err_pi_state, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); - offset += 3; - length -= 3; - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_reset_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fms_reset_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_reset_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, hf_ff_fms_reset_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Reset Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Reset Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_reset_err); + + proto_tree_add_item(sub_tree, + hf_ff_fms_reset_err_pi_state, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); + offset += 3; + length -= 3; + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_reset_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fms_reset_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_reset_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, hf_ff_fms_reset_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -7612,35 +7146,31 @@ dissect_ff_msg_fms_reset_pi_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_kill_pi_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Kill Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Kill Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Kill Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_kill_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Kill Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_kill_req); - proto_tree_add_item(sub_tree, - hf_ff_fms_kill_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_kill_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -7650,31 +7180,27 @@ dissect_ff_msg_fms_kill_pi_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_kill_pi_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Kill Response"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Kill Response"); - if(!tree) { - return; - } + if (!tree) { + return; + } - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Kill Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_kill_rsp); + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Kill Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_kill_rsp); - if(!sub_tree) { - return; - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -7684,57 +7210,53 @@ dissect_ff_msg_fms_kill_pi_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_kill_pi_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Kill Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Kill Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_kill_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_kill_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fms_kill_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_kill_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, hf_ff_fms_kill_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Kill Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Kill Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_kill_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_kill_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fms_kill_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_kill_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, hf_ff_fms_kill_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -7745,35 +7267,31 @@ dissect_ff_msg_fms_kill_pi_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_read_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Read Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Read Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Read Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_read_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Read Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_read_req); - proto_tree_add_item(sub_tree, - hf_ff_fms_read_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_read_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - if(length) { - proto_tree_add_text(tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + if (length) { + proto_tree_add_text(tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -7783,28 +7301,24 @@ dissect_ff_msg_fms_read_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_read_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Read Response"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Read Response"); - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Read Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_read_rsp); + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Read Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_read_rsp); - if(!sub_tree) { - return; - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "Data (%u bytes)", length); - proto_tree_add_text(sub_tree, tvb, offset, length, - "Data (%u bytes)", length); - - return; + return; } @@ -7814,57 +7328,53 @@ dissect_ff_msg_fms_read_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_read_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Read Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Read Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_read_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_read_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fms_read_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_read_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, hf_ff_fms_read_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Read Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Read Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_read_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_read_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fms_read_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_read_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, hf_ff_fms_read_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -7875,41 +7385,37 @@ dissect_ff_msg_fms_read_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_read_subindex_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Read with Subindex Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Read with Subindex Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Read with Subindex Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_read_with_subidx_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Read with Subindex Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_read_with_subidx_req); - proto_tree_add_item(sub_tree, - hf_ff_fms_read_with_subidx_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_read_with_subidx_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_fms_read_with_subidx_req_subidx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_read_with_subidx_req_subidx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - if(length) { - proto_tree_add_text(tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + if (length) { + proto_tree_add_text(tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -7919,29 +7425,25 @@ dissect_ff_msg_fms_read_subindex_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_read_subindex_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Read with Subindex Response"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Read with Subindex Response"); - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Read with Subindex Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_read_with_subidx_rsp); + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Read with Subindex Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_read_with_subidx_rsp); - if(!sub_tree) { - return; - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "Data (%u bytes)", length); - proto_tree_add_text(sub_tree, tvb, offset, length, - "Data (%u bytes)", length); - - return; + return; } @@ -7951,60 +7453,56 @@ dissect_ff_msg_fms_read_subindex_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_read_subindex_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Read with Subindex Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Read with Subindex Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_read_with_subidx_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_read_with_subidx_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, - hf_ff_fms_read_with_subidx_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_read_with_subidx_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_read_with_subidx_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Read with Subindex Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Read with Subindex Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_read_with_subidx_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_read_with_subidx_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, + hf_ff_fms_read_with_subidx_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_read_with_subidx_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_read_with_subidx_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -8015,35 +7513,31 @@ dissect_ff_msg_fms_read_subindex_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_write_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Write Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Write Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Write Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_write_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Write Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_write_req); - proto_tree_add_item(sub_tree, - hf_ff_fms_write_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_write_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "Data (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "Data (%u bytes)", length); + } - return; + return; } @@ -8053,31 +7547,27 @@ dissect_ff_msg_fms_write_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_write_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Write Response"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Write Response"); - if(!tree) { - return; - } + if (!tree) { + return; + } - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Write Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_write_rsp); + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Write Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_write_rsp); - if(!sub_tree) { - return; - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -8087,57 +7577,53 @@ dissect_ff_msg_fms_write_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_write_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Write Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Write Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_write_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_write_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_fms_write_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_write_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, hf_ff_fms_write_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Write Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, "FMS Write Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_write_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_write_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_fms_write_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_write_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, hf_ff_fms_write_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -8148,41 +7634,37 @@ dissect_ff_msg_fms_write_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_write_subindex_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Write with Subindex Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Write with Subindex Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Write with Subindex Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_write_with_subidx_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Write with Subindex Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_write_with_subidx_req); - proto_tree_add_item(sub_tree, - hf_ff_fms_write_with_subidx_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_write_with_subidx_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_fms_write_with_subidx_req_subidx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_write_with_subidx_req_subidx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "Data (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "Data (%u bytes)", length); + } - return; + return; } @@ -8192,31 +7674,27 @@ dissect_ff_msg_fms_write_subindex_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_write_subindex_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Write with Subindex Response"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Write with Subindex Response"); - if(!tree) { - return; - } + if (!tree) { + return; + } - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Write with Subindex Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_write_with_subidx_rsp); + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Write with Subindex Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_write_with_subidx_rsp); - if(!sub_tree) { - return; - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -8226,60 +7704,56 @@ dissect_ff_msg_fms_write_subindex_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_write_subindex_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Write with Subindex Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Write with Subindex Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_write_with_subidx_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_write_with_subidx_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, - hf_ff_fms_write_with_subidx_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_write_with_subidx_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_write_with_subidx_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Write with Subindex Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Write with Subindex Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_write_with_subidx_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_write_with_subidx_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, + hf_ff_fms_write_with_subidx_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_write_with_subidx_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_write_with_subidx_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -8290,77 +7764,69 @@ dissect_ff_msg_fms_write_subindex_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_def_variable_list_req_list_of_idxes(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint32 value) + gint offset, proto_tree *tree, guint32 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint d = 0; - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, 4 * value, - "List Of Indexes (%u bytes)", 4 * value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_def_variable_list_req_list_of_idxes); - - if(!sub_tree) { - return; - } - - for(d = 0; d < value; d ++) { - proto_tree_add_item(sub_tree, - hf_ff_fms_def_variable_list_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint d; + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, 4 * value, + "List Of Indexes (%u bytes)", 4 * value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_def_variable_list_req_list_of_idxes); + + for (d = 0; d < value; d++) { + proto_tree_add_item(sub_tree, + hf_ff_fms_def_variable_list_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + } + + return; } static void dissect_ff_msg_fms_def_variable_list_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint32 NumOfIndexes = 0; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Define Variable List Request"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Define Variable List Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_def_variable_list_req); - - if(!sub_tree) { - return; - } - - NumOfIndexes = tvb_get_ntohl(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_def_variable_list_req_num_of_idxes, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - if(NumOfIndexes) { - dissect_ff_msg_fms_def_variable_list_req_list_of_idxes(tvb, - offset, sub_tree, NumOfIndexes); - offset += 4 * NumOfIndexes; - length -= 4 * NumOfIndexes; - } - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint32 NumOfIndexes; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Define Variable List Request"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Define Variable List Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_def_variable_list_req); + + NumOfIndexes = tvb_get_ntohl(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_def_variable_list_req_num_of_idxes, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + if (NumOfIndexes) { + dissect_ff_msg_fms_def_variable_list_req_list_of_idxes(tvb, + offset, sub_tree, NumOfIndexes); + offset += 4 * NumOfIndexes; + length -= 4 * NumOfIndexes; + } + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -8370,36 +7836,32 @@ dissect_ff_msg_fms_def_variable_list_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_def_variable_list_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Define Variable List Response"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Define Variable List Response"); - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Define Variable List Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_def_variable_list_rsp); + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Define Variable List Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_def_variable_list_rsp); - if(!sub_tree) { - return; - } + proto_tree_add_item(sub_tree, + hf_ff_fms_def_variable_list_rsp_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_fms_def_variable_list_rsp_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -8409,60 +7871,56 @@ dissect_ff_msg_fms_def_variable_list_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_def_variable_list_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Define Variable List Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Define Variable List Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_def_variable_list_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_def_variable_list_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, - hf_ff_fms_def_variable_list_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_def_variable_list_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_def_variable_list_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Define Variable List Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Define Variable List Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_def_variable_list_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_def_variable_list_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, + hf_ff_fms_def_variable_list_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_def_variable_list_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_def_variable_list_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -8473,36 +7931,32 @@ dissect_ff_msg_fms_def_variable_list_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_del_variable_list_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Delete Variable List Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Delete Variable List Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Delete Variable List Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_del_variable_list_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Delete Variable List Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_del_variable_list_req); - proto_tree_add_item(sub_tree, - hf_ff_fms_del_variable_list_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_del_variable_list_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -8512,31 +7966,27 @@ dissect_ff_msg_fms_del_variable_list_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_del_variable_list_rsp(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Delete Variable List Response"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Delete Variable List Response"); - if(!tree) { - return; - } + if (!tree) { + return; + } - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Delete Variable List Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_del_variable_list_rsp); + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Delete Variable List Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_del_variable_list_rsp); - if(!sub_tree) { - return; - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -8546,60 +7996,56 @@ dissect_ff_msg_fms_del_variable_list_rsp(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_del_variable_list_err(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Delete Variable List Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Delete Variable List Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_del_variable_list_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_del_variable_list_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, - hf_ff_fms_del_variable_list_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_del_variable_list_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_del_variable_list_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Delete Variable List Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Delete Variable List Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_del_variable_list_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_del_variable_list_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, + hf_ff_fms_del_variable_list_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_del_variable_list_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_del_variable_list_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -8610,36 +8056,32 @@ dissect_ff_msg_fms_del_variable_list_err(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_info_report_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Information Report Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Information Report Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Information Report Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_info_report_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Information Report Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_info_report_req); - proto_tree_add_item(sub_tree, - hf_ff_fms_info_report_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_info_report_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "Data (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "Data (%u bytes)", length); + } - return; + return; } @@ -8651,42 +8093,38 @@ dissect_ff_msg_fms_info_report_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_info_report_subindex_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Information Report with Subindex Request"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Information Report with Subindex Request"); - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Information Report with Subindex Request"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_info_report_with_subidx_req); + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Information Report with Subindex Request"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_info_report_with_subidx_req); - if(!sub_tree) { - return; - } + proto_tree_add_item(sub_tree, + hf_ff_fms_info_report_with_subidx_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_fms_info_report_with_subidx_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_info_report_with_subidx_req_subidx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_fms_info_report_with_subidx_req_subidx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "Data (%u bytes)", length); + } - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "Data (%u bytes)", length); - } - - return; + return; } @@ -8697,36 +8135,32 @@ dissect_ff_msg_fms_info_report_subindex_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_info_report_change_req(tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Information Report On Change Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Information Report On Change Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Information Report On Change Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_info_report_on_change_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Information Report On Change Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_info_report_on_change_req); - proto_tree_add_item(sub_tree, - hf_ff_fms_info_report_on_change_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_info_report_on_change_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "Data (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "Data (%u bytes)", length); + } - return; + return; } @@ -8738,45 +8172,41 @@ dissect_ff_msg_fms_info_report_change_req(tvbuff_t *tvb, gint offset, */ static void dissect_ff_msg_fms_info_report_change_subindex_req( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Information Report On Change with Subindex Request"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Information Report On Change with Subindex Request"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_info_report_on_change_with_subidx_req); - - if(!sub_tree) { - return; - } - - proto_tree_add_item(sub_tree, - hf_ff_fms_info_report_on_change_with_subidx_req_idx, - tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_fms_info_report_on_change_with_subidx_req_subidx, - tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "Data (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Information Report On Change with Subindex Request"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Information Report On Change with Subindex Request"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_info_report_on_change_with_subidx_req); + + proto_tree_add_item(sub_tree, + hf_ff_fms_info_report_on_change_with_subidx_req_idx, + tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_fms_info_report_on_change_with_subidx_req_subidx, + tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "Data (%u bytes)", length); + } + + return; } @@ -8787,42 +8217,38 @@ dissect_ff_msg_fms_info_report_change_subindex_req( */ static void dissect_ff_msg_fms_ev_notification_req( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Event Notification Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Event Notification Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Event Notification Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_ev_notification_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Event Notification Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_ev_notification_req); - proto_tree_add_item(sub_tree, - hf_ff_fms_ev_notification_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_ev_notification_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_fms_ev_notification_req_ev_num, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_ev_notification_req_ev_num, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "Data (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "Data (%u bytes)", length); + } - return; + return; } @@ -8833,48 +8259,44 @@ dissect_ff_msg_fms_ev_notification_req( */ static void dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_req( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Alter Event Condition Monitoring Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Alter Event Condition Monitoring Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Alter Event Condition Monitoring Request"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_alter_ev_condition_monitoring_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Alter Event Condition Monitoring Request"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_alter_ev_condition_monitoring_req); - proto_tree_add_item(sub_tree, - hf_ff_fms_alter_ev_condition_monitoring_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_alter_ev_condition_monitoring_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); - offset += 3; - length -= 3; + proto_tree_add_text(sub_tree, tvb, offset, 3, "Reserved (%u bytes)", 3); + offset += 3; + length -= 3; - proto_tree_add_item(sub_tree, - hf_ff_fms_alter_ev_condition_monitoring_req_enabled, - tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; + proto_tree_add_item(sub_tree, + hf_ff_fms_alter_ev_condition_monitoring_req_enabled, + tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -8884,33 +8306,29 @@ dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_req( */ static void dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_rsp( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Alter Event Condition Monitoring Response"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Alter Event Condition Monitoring Response"); - if(!tree) { - return; - } + if (!tree) { + return; + } - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Alter Event Condition Monitoring Response"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_alter_ev_condition_monitoring_rsp); + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Alter Event Condition Monitoring Response"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_alter_ev_condition_monitoring_rsp); - if(!sub_tree) { - return; - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -8920,64 +8338,60 @@ dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_rsp( */ static void dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_err( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Alter Event Condition Monitoring Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Alter Event Condition Monitoring Error"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_alter_ev_condition_monitoring_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_alter_ev_condition_monitoring_err_err_class, - tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, - hf_ff_fms_alter_ev_condition_monitoring_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_alter_ev_condition_monitoring_err_additional_code, - tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_alter_ev_condition_monitoring_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Alter Event Condition Monitoring Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Alter Event Condition Monitoring Error"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_alter_ev_condition_monitoring_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_alter_ev_condition_monitoring_err_err_class, + tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, + hf_ff_fms_alter_ev_condition_monitoring_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_alter_ev_condition_monitoring_err_additional_code, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_alter_ev_condition_monitoring_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -8988,42 +8402,38 @@ dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_err( */ static void dissect_ff_msg_fms_ack_ev_notification_req( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Acknowledge Event Notification Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "FMS Acknowledge Event Notification Request"); - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Acknowledge Event Notification Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_ack_ev_notification_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Acknowledge Event Notification Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_ack_ev_notification_req); - proto_tree_add_item(sub_tree, - hf_ff_fms_ack_ev_notification_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_ack_ev_notification_req_idx, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - proto_tree_add_item(sub_tree, - hf_ff_fms_ack_ev_notification_req_ev_num, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; + proto_tree_add_item(sub_tree, + hf_ff_fms_ack_ev_notification_req_ev_num, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -9033,33 +8443,29 @@ dissect_ff_msg_fms_ack_ev_notification_req( */ static void dissect_ff_msg_fms_ack_ev_notification_rsp( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - col_set_str(pinfo->cinfo, COL_INFO, "FMS Acknowledge Event Notification Response"); + col_set_str(pinfo->cinfo, COL_INFO, "FMS Acknowledge Event Notification Response"); - if(!tree) { - return; - } + if (!tree) { + return; + } - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Acknowledge Event Notification Response"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fms_ack_ev_notification_rsp); + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Acknowledge Event Notification Response"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fms_ack_ev_notification_rsp); - if(!sub_tree) { - return; - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + return; } @@ -9069,62 +8475,58 @@ dissect_ff_msg_fms_ack_ev_notification_rsp( */ static void dissect_ff_msg_fms_ack_ev_notification_err( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "FMS Acknowledge Event Notification Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "FMS Acknowledge Event Notification Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fms_ack_ev_notification_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_fms_ack_ev_notification_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, - hf_ff_fms_ack_ev_notification_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_fms_ack_ev_notification_err_additional_code, - tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_fms_ack_ev_notification_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "FMS Acknowledge Event Notification Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "FMS Acknowledge Event Notification Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fms_ack_ev_notification_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_fms_ack_ev_notification_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, + hf_ff_fms_ack_ev_notification_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_fms_ack_ev_notification_err_additional_code, + tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_fms_ack_ev_notification_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -9135,33 +8537,29 @@ dissect_ff_msg_fms_ack_ev_notification_err( */ static void dissect_ff_msg_lr_get_info_req( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "LAN Redundancy Get Information Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "LAN Redundancy Get Information Request"); - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "LAN Redundancy Get Information Request"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_lr_get_info_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "LAN Redundancy Get Information Request"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_lr_get_info_req); - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -9171,153 +8569,145 @@ dissect_ff_msg_lr_get_info_req( */ static void dissect_ff_msg_lr_get_info_rsp_lr_flags(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint8 value) -{ - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, 1, - "LAN Redundancy Flags: 0x%02x", value); - sub_tree = proto_item_add_subtree(ti, ett_ff_lr_get_info_rsp_lr_flags); - - if(!sub_tree) { - return; - } - - /* - * Bits 6-8: Reserved (not used) = 0 - * Bit 5: Load Balancing Enabled - * 0 = False Do not do load balancing - * 1 = True Do load balancing - * Bit 4: Diagnosis Using Own Messages Enabled - * 0 = False Do not use own diagnostic messages for diagnosis - * 1 = True Use own diagnostic messages for diagnosis - * Bit 3: Single Multicast Message Reception Interface Enabled - * 0 = False Listen for multicast addresses - * on both interfaces - * 1 = True Listen for multicast addresses - * on one interface - * if zero or one fault detected - * in network status table - * Bit 2: Crossed Cable Detection Enabled - * 0 = False Do not detect crossed cables - * 1 = True Detect crossed cables - * B1 (lsb): Single Multicast Message Transmission Interface Enabled - * 0 = False Transmit on both interfaces - * 1 = True Transmit on one interface - */ - proto_tree_add_item(sub_tree, hf_ff_lr_get_info_rsp_lr_flags_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_lr_get_info_rsp_lr_flags_load_balance, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_lr_get_info_rsp_lr_flags_diag, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_lr_get_info_rsp_lr_flags_multi_recv, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_lr_get_info_rsp_lr_flags_cross_cable, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_lr_get_info_rsp_lr_flags_multi_trans, tvb, offset, 1, ENC_BIG_ENDIAN); + gint offset, proto_tree *tree, guint8 value) +{ + proto_tree *sub_tree; + proto_item *ti; + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, 1, + "LAN Redundancy Flags: 0x%02x", value); + sub_tree = proto_item_add_subtree(ti, ett_ff_lr_get_info_rsp_lr_flags); + + /* + * Bits 6-8: Reserved (not used) = 0 + * Bit 5: Load Balancing Enabled + * 0 = False Do not do load balancing + * 1 = True Do load balancing + * Bit 4: Diagnosis Using Own Messages Enabled + * 0 = False Do not use own diagnostic messages for diagnosis + * 1 = True Use own diagnostic messages for diagnosis + * Bit 3: Single Multicast Message Reception Interface Enabled + * 0 = False Listen for multicast addresses + * on both interfaces + * 1 = True Listen for multicast addresses + * on one interface + * if zero or one fault detected + * in network status table + * Bit 2: Crossed Cable Detection Enabled + * 0 = False Do not detect crossed cables + * 1 = True Detect crossed cables + * B1 (lsb): Single Multicast Message Transmission Interface Enabled + * 0 = False Transmit on both interfaces + * 1 = True Transmit on one interface + */ + proto_tree_add_item(sub_tree, hf_ff_lr_get_info_rsp_lr_flags_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_lr_get_info_rsp_lr_flags_load_balance, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_lr_get_info_rsp_lr_flags_diag, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_lr_get_info_rsp_lr_flags_multi_recv, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_lr_get_info_rsp_lr_flags_cross_cable, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_lr_get_info_rsp_lr_flags_multi_trans, tvb, offset, 1, ENC_BIG_ENDIAN); } static void dissect_ff_msg_lr_get_info_rsp( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) -{ - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 MaxMsgNumDiff = 0; - guint8 LRFlags = 0; - - col_set_str(pinfo->cinfo, COL_INFO, "LAN Redundancy Get Information Response"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "LAN Redundancy Get Information Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_lr_get_info_rsp); - - if(!sub_tree) { - return; - } - - proto_tree_add_item(sub_tree, - hf_ff_lr_get_info_rsp_lr_attrs_ver, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - MaxMsgNumDiff = tvb_get_guint8(tvb, offset); - switch(MaxMsgNumDiff) { - case 0: - case 1: - proto_tree_add_uint_format(sub_tree, - hf_ff_lr_get_info_rsp_lr_max_msg_num_diff, - tvb, offset, 1, MaxMsgNumDiff, - "Max Message Number Difference: Do not detect a fault (%u)", - MaxMsgNumDiff); - break; - - default: - proto_tree_add_item(sub_tree, - hf_ff_lr_get_info_rsp_lr_max_msg_num_diff, - tvb, offset, 1, ENC_BIG_ENDIAN); - } - offset += 1; - length -= 1; - - LRFlags = tvb_get_guint8(tvb, offset); - dissect_ff_msg_lr_get_info_rsp_lr_flags(tvb, offset, sub_tree, LRFlags); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_lr_get_info_rsp_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_lr_get_info_rsp_diagnostic_msg_intvl, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_lr_get_info_rsp_aging_time, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_send_addr, - tvb, offset, 16, ENC_NA); - offset += 16; - length -= 16; - - proto_tree_add_item(sub_tree, - hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_recv_addr, - tvb, offset, 16, ENC_NA); - offset += 16; - length -= 16; - - proto_tree_add_item(sub_tree, - hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_send_addr, - tvb, offset, 16, ENC_NA); - offset += 16; - length -= 16; - - proto_tree_add_item(sub_tree, - hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_recv_addr, - tvb, offset, 16, ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) +{ + proto_tree *sub_tree; + proto_item *ti; + guint8 MaxMsgNumDiff; + guint8 LRFlags; + + col_set_str(pinfo->cinfo, COL_INFO, "LAN Redundancy Get Information Response"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "LAN Redundancy Get Information Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_lr_get_info_rsp); + + proto_tree_add_item(sub_tree, + hf_ff_lr_get_info_rsp_lr_attrs_ver, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + MaxMsgNumDiff = tvb_get_guint8(tvb, offset); + switch (MaxMsgNumDiff) { + case 0: + case 1: + proto_tree_add_uint_format(sub_tree, + hf_ff_lr_get_info_rsp_lr_max_msg_num_diff, + tvb, offset, 1, MaxMsgNumDiff, + "Max Message Number Difference: Do not detect a fault (%u)", + MaxMsgNumDiff); + break; + + default: + proto_tree_add_item(sub_tree, + hf_ff_lr_get_info_rsp_lr_max_msg_num_diff, + tvb, offset, 1, ENC_BIG_ENDIAN); + } + offset += 1; + length -= 1; + + LRFlags = tvb_get_guint8(tvb, offset); + dissect_ff_msg_lr_get_info_rsp_lr_flags(tvb, offset, sub_tree, LRFlags); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_lr_get_info_rsp_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_lr_get_info_rsp_diagnostic_msg_intvl, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_lr_get_info_rsp_aging_time, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_send_addr, + tvb, offset, 16, ENC_NA); + offset += 16; + length -= 16; + + proto_tree_add_item(sub_tree, + hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_recv_addr, + tvb, offset, 16, ENC_NA); + offset += 16; + length -= 16; + + proto_tree_add_item(sub_tree, + hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_send_addr, + tvb, offset, 16, ENC_NA); + offset += 16; + length -= 16; + + proto_tree_add_item(sub_tree, + hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_recv_addr, + tvb, offset, 16, ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -9327,60 +8717,56 @@ dissect_ff_msg_lr_get_info_rsp( */ static void dissect_ff_msg_lr_get_info_err( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "LAN Redundancy Get Information Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "LAN Redundancy Get Information Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_lr_get_info_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_lr_get_info_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_lr_get_info_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_lr_get_info_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_lr_get_info_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "LAN Redundancy Get Information Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "LAN Redundancy Get Information Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_lr_get_info_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_lr_get_info_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_lr_get_info_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_lr_get_info_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_lr_get_info_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -9391,153 +8777,145 @@ dissect_ff_msg_lr_get_info_err( */ static void dissect_ff_msg_lr_put_info_req_lr_flags(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint8 value) -{ - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, 1, - "LAN Redundancy Flags: 0x%02x", value); - sub_tree = proto_item_add_subtree(ti, ett_ff_lr_put_info_req_lr_flags); - - if(!sub_tree) { - return; - } - - /* - * Bits 6-8: Reserved (not used) = 0 - * Bit 5: Load Balancing Enabled - * 0 = False Do not do load balancing - * 1 = True Do load balancing - * Bit 4: Diagnosis Using Own Messages Enabled - * 0 = False Do not use own diagnostic messages for diagnosis - * 1 = True Use own diagnostic messages for diagnosis - * Bit 3: Single Multicast Message Reception Interface Enabled - * 0 = False Listen for multicast addresses - * on both interfaces - * 1 = True Listen for multicast addresses - * on one interface - * if zero or one fault detected - * in network status table - * Bit 2: Crossed Cable Detection Enabled - * 0 = False Do not detect crossed cables - * 1 = True Detect crossed cables - * B1 (lsb): Single Multicast Message Transmission Interface Enabled - * 0 = False Transmit on both interfaces - * 1 = True Transmit on one interface - */ - proto_tree_add_item(sub_tree, hf_ff_lr_put_info_req_lr_flags_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_lr_put_info_req_lr_flags_load_balance, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_lr_put_info_req_lr_flags_diag, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_lr_put_info_req_lr_flags_multi_recv, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_lr_put_info_req_lr_flags_cross_cable, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_lr_put_info_req_lr_flags_multi_trans, tvb, offset, 1, ENC_BIG_ENDIAN); + gint offset, proto_tree *tree, guint8 value) +{ + proto_tree *sub_tree; + proto_item *ti; + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, 1, + "LAN Redundancy Flags: 0x%02x", value); + sub_tree = proto_item_add_subtree(ti, ett_ff_lr_put_info_req_lr_flags); + + /* + * Bits 6-8: Reserved (not used) = 0 + * Bit 5: Load Balancing Enabled + * 0 = False Do not do load balancing + * 1 = True Do load balancing + * Bit 4: Diagnosis Using Own Messages Enabled + * 0 = False Do not use own diagnostic messages for diagnosis + * 1 = True Use own diagnostic messages for diagnosis + * Bit 3: Single Multicast Message Reception Interface Enabled + * 0 = False Listen for multicast addresses + * on both interfaces + * 1 = True Listen for multicast addresses + * on one interface + * if zero or one fault detected + * in network status table + * Bit 2: Crossed Cable Detection Enabled + * 0 = False Do not detect crossed cables + * 1 = True Detect crossed cables + * B1 (lsb): Single Multicast Message Transmission Interface Enabled + * 0 = False Transmit on both interfaces + * 1 = True Transmit on one interface + */ + proto_tree_add_item(sub_tree, hf_ff_lr_put_info_req_lr_flags_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_lr_put_info_req_lr_flags_load_balance, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_lr_put_info_req_lr_flags_diag, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_lr_put_info_req_lr_flags_multi_recv, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_lr_put_info_req_lr_flags_cross_cable, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_lr_put_info_req_lr_flags_multi_trans, tvb, offset, 1, ENC_BIG_ENDIAN); } static void dissect_ff_msg_lr_put_info_req( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) -{ - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 MaxMsgNumDiff = 0; - guint8 LRFlags = 0; - - col_set_str(pinfo->cinfo, COL_INFO, "LAN Redundancy Put Information Request"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "LAN Redundancy Put Information Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_lr_put_info_req); - - if(!sub_tree) { - return; - } - - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_req_lr_attrs_ver, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - MaxMsgNumDiff = tvb_get_guint8(tvb, offset); - switch(MaxMsgNumDiff) { - case 0: - case 1: - proto_tree_add_uint_format(sub_tree, - hf_ff_lr_put_info_req_lr_max_msg_num_diff, - tvb, offset, 1, MaxMsgNumDiff, - "Max Message Number Difference: Do not detect a fault (%u)", - MaxMsgNumDiff); - break; - - default: - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_req_lr_max_msg_num_diff, - tvb, offset, 1, ENC_BIG_ENDIAN); - } - offset += 1; - length -= 1; - - LRFlags = tvb_get_guint8(tvb, offset); - dissect_ff_msg_lr_put_info_req_lr_flags(tvb, offset, sub_tree, LRFlags); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_req_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_req_diagnostic_msg_intvl, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_req_aging_time, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_req_diagnostic_msg_if_a_send_addr, - tvb, offset, 16, ENC_NA); - offset += 16; - length -= 16; - - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_req_diagnostic_msg_if_a_recv_addr, - tvb, offset, 16, ENC_NA); - offset += 16; - length -= 16; - - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_req_diagnostic_msg_if_b_send_addr, - tvb, offset, 16, ENC_NA); - offset += 16; - length -= 16; - - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_req_diagnostic_msg_if_b_recv_addr, - tvb, offset, 16, ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) +{ + proto_tree *sub_tree; + proto_item *ti; + guint8 MaxMsgNumDiff; + guint8 LRFlags; + + col_set_str(pinfo->cinfo, COL_INFO, "LAN Redundancy Put Information Request"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "LAN Redundancy Put Information Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_lr_put_info_req); + + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_req_lr_attrs_ver, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + MaxMsgNumDiff = tvb_get_guint8(tvb, offset); + switch (MaxMsgNumDiff) { + case 0: + case 1: + proto_tree_add_uint_format(sub_tree, + hf_ff_lr_put_info_req_lr_max_msg_num_diff, + tvb, offset, 1, MaxMsgNumDiff, + "Max Message Number Difference: Do not detect a fault (%u)", + MaxMsgNumDiff); + break; + + default: + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_req_lr_max_msg_num_diff, + tvb, offset, 1, ENC_BIG_ENDIAN); + } + offset += 1; + length -= 1; + + LRFlags = tvb_get_guint8(tvb, offset); + dissect_ff_msg_lr_put_info_req_lr_flags(tvb, offset, sub_tree, LRFlags); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_req_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_req_diagnostic_msg_intvl, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_req_aging_time, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_req_diagnostic_msg_if_a_send_addr, + tvb, offset, 16, ENC_NA); + offset += 16; + length -= 16; + + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_req_diagnostic_msg_if_a_recv_addr, + tvb, offset, 16, ENC_NA); + offset += 16; + length -= 16; + + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_req_diagnostic_msg_if_b_send_addr, + tvb, offset, 16, ENC_NA); + offset += 16; + length -= 16; + + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_req_diagnostic_msg_if_b_recv_addr, + tvb, offset, 16, ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -9547,153 +8925,145 @@ dissect_ff_msg_lr_put_info_req( */ static void dissect_ff_msg_lr_put_info_rsp_lr_flags(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint8 value) -{ - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, 1, - "LAN Redundancy Flags: 0x%02x", value); - sub_tree = proto_item_add_subtree(ti, ett_ff_lr_put_info_rsp_lr_flags); - - if(!sub_tree) { - return; - } - - /* - * Bits 6-8: Reserved (not used) = 0 - * Bit 5: Load Balancing Enabled - * 0 = False Do not do load balancing - * 1 = True Do load balancing - * Bit 4: Diagnosis Using Own Messages Enabled - * 0 = False Do not use own diagnostic messages for diagnosis - * 1 = True Use own diagnostic messages for diagnosis - * Bit 3: Single Multicast Message Reception Interface Enabled - * 0 = False Listen for multicast addresses - * on both interfaces - * 1 = True Listen for multicast addresses - * on one interface - * if zero or one fault detected - * in network status table - * Bit 2: Crossed Cable Detection Enabled - * 0 = False Do not detect crossed cables - * 1 = True Detect crossed cables - * B1 (lsb): Single Multicast Message Transmission Interface Enabled - * 0 = False Transmit on both interfaces - * 1 = True Transmit on one interface - */ - proto_tree_add_item(sub_tree, hf_ff_lr_put_info_rsp_lr_flags_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_lr_put_info_rsp_lr_flags_load_balance, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_lr_put_info_rsp_lr_flags_diag, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_lr_put_info_rsp_lr_flags_multi_recv, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_lr_put_info_rsp_lr_flags_cross_cable, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_lr_put_info_rsp_lr_flags_multi_trans, tvb, offset, 1, ENC_BIG_ENDIAN); + gint offset, proto_tree *tree, guint8 value) +{ + proto_tree *sub_tree; + proto_item *ti; + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, 1, + "LAN Redundancy Flags: 0x%02x", value); + sub_tree = proto_item_add_subtree(ti, ett_ff_lr_put_info_rsp_lr_flags); + + /* + * Bits 6-8: Reserved (not used) = 0 + * Bit 5: Load Balancing Enabled + * 0 = False Do not do load balancing + * 1 = True Do load balancing + * Bit 4: Diagnosis Using Own Messages Enabled + * 0 = False Do not use own diagnostic messages for diagnosis + * 1 = True Use own diagnostic messages for diagnosis + * Bit 3: Single Multicast Message Reception Interface Enabled + * 0 = False Listen for multicast addresses + * on both interfaces + * 1 = True Listen for multicast addresses + * on one interface + * if zero or one fault detected + * in network status table + * Bit 2: Crossed Cable Detection Enabled + * 0 = False Do not detect crossed cables + * 1 = True Detect crossed cables + * B1 (lsb): Single Multicast Message Transmission Interface Enabled + * 0 = False Transmit on both interfaces + * 1 = True Transmit on one interface + */ + proto_tree_add_item(sub_tree, hf_ff_lr_put_info_rsp_lr_flags_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_lr_put_info_rsp_lr_flags_load_balance, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_lr_put_info_rsp_lr_flags_diag, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_lr_put_info_rsp_lr_flags_multi_recv, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_lr_put_info_rsp_lr_flags_cross_cable, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_lr_put_info_rsp_lr_flags_multi_trans, tvb, offset, 1, ENC_BIG_ENDIAN); } static void dissect_ff_msg_lr_put_info_rsp( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) -{ - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 MaxMsgNumDiff = 0; - guint8 LRFlags = 0; - - col_set_str(pinfo->cinfo, COL_INFO, "LAN Redundancy Put Information Response"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "LAN Redundancy Put Information Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_lr_put_info_rsp); - - if(!sub_tree) { - return; - } - - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_rsp_lr_attrs_ver, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - MaxMsgNumDiff = tvb_get_guint8(tvb, offset); - switch(MaxMsgNumDiff) { - case 0: - case 1: - proto_tree_add_uint_format(sub_tree, - hf_ff_lr_put_info_rsp_lr_max_msg_num_diff, - tvb, offset, 1, MaxMsgNumDiff, - "Max Message Number Difference: Do not detect a fault (%u)", - MaxMsgNumDiff); - break; - - default: - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_rsp_lr_max_msg_num_diff, - tvb, offset, 1, ENC_BIG_ENDIAN); - } - offset += 1; - length -= 1; - - LRFlags = tvb_get_guint8(tvb, offset); - dissect_ff_msg_lr_put_info_rsp_lr_flags(tvb, offset, sub_tree, LRFlags); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_rsp_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_rsp_diagnostic_msg_intvl, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_rsp_aging_time, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_send_addr, - tvb, offset, 16, ENC_NA); - offset += 16; - length -= 16; - - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_recv_addr, - tvb, offset, 16, ENC_NA); - offset += 16; - length -= 16; - - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_send_addr, - tvb, offset, 16, ENC_NA); - offset += 16; - length -= 16; - - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_recv_addr, - tvb, offset, 16, ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) +{ + proto_tree *sub_tree; + proto_item *ti; + guint8 MaxMsgNumDiff; + guint8 LRFlags; + + col_set_str(pinfo->cinfo, COL_INFO, "LAN Redundancy Put Information Response"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "LAN Redundancy Put Information Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_lr_put_info_rsp); + + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_rsp_lr_attrs_ver, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + MaxMsgNumDiff = tvb_get_guint8(tvb, offset); + switch (MaxMsgNumDiff) { + case 0: + case 1: + proto_tree_add_uint_format(sub_tree, + hf_ff_lr_put_info_rsp_lr_max_msg_num_diff, + tvb, offset, 1, MaxMsgNumDiff, + "Max Message Number Difference: Do not detect a fault (%u)", + MaxMsgNumDiff); + break; + + default: + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_rsp_lr_max_msg_num_diff, + tvb, offset, 1, ENC_BIG_ENDIAN); + } + offset += 1; + length -= 1; + + LRFlags = tvb_get_guint8(tvb, offset); + dissect_ff_msg_lr_put_info_rsp_lr_flags(tvb, offset, sub_tree, LRFlags); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_rsp_reserved, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_rsp_diagnostic_msg_intvl, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_rsp_aging_time, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_send_addr, + tvb, offset, 16, ENC_NA); + offset += 16; + length -= 16; + + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_recv_addr, + tvb, offset, 16, ENC_NA); + offset += 16; + length -= 16; + + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_send_addr, + tvb, offset, 16, ENC_NA); + offset += 16; + length -= 16; + + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_recv_addr, + tvb, offset, 16, ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -9703,60 +9073,56 @@ dissect_ff_msg_lr_put_info_rsp( */ static void dissect_ff_msg_lr_put_info_err( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "LAN Redundancy Put Information Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "LAN Redundancy Put Information Error"); - sub_tree = proto_item_add_subtree(ti, ett_ff_lr_put_info_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, hf_ff_lr_put_info_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_lr_put_info_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "LAN Redundancy Put Information Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "LAN Redundancy Put Information Error"); + sub_tree = proto_item_add_subtree(ti, ett_ff_lr_put_info_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, hf_ff_lr_put_info_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_lr_put_info_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -9767,32 +9133,28 @@ dissect_ff_msg_lr_put_info_err( */ static void dissect_ff_msg_lr_get_statistics_req( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "LAN Redundancy Get Statistics Request"); + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + col_set_str(pinfo->cinfo, COL_INFO, "LAN Redundancy Get Statistics Request"); - if(length) { - ti = proto_tree_add_text(tree, tvb, offset, length, - "LAN Redundancy Get Statistics Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_lr_get_statistics_req); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + if (length) { + ti = proto_tree_add_text(tree, tvb, offset, length, + "LAN Redundancy Get Statistics Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_lr_get_statistics_req); - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } - return; + return; } @@ -9802,115 +9164,107 @@ dissect_ff_msg_lr_get_statistics_req( */ static void dissect_ff_msg_lr_get_statistics_rsp_x_cable_stat(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint32 value) + gint offset, proto_tree *tree, guint32 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint d = 0; + proto_tree *sub_tree; + proto_item *ti; + guint d; - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, 4 * value, - "List of Crossed Cable Status (%u bytes)", 4 * value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_lr_get_statistics_rsp_list_of_x_cable_stat); + ti = proto_tree_add_text(tree, tvb, offset, 4 * value, + "List of Crossed Cable Status (%u bytes)", 4 * value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_lr_get_statistics_rsp_list_of_x_cable_stat); - if(!sub_tree) { - return; - } + for (d = 0; d < value; d++) { + proto_tree_add_item(sub_tree, + hf_ff_lr_get_statistics_rsp_x_cable_stat, tvb, offset, 4, ENC_BIG_ENDIAN); - for(d = 0; d < value; d ++) { - proto_tree_add_item(sub_tree, - hf_ff_lr_get_statistics_rsp_x_cable_stat, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + } - offset += 4; - } - - return; + return; } static void dissect_ff_msg_lr_get_statistics_rsp( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint32 NumXcableStat; - - col_set_str(pinfo->cinfo, COL_INFO, "LAN Redundancy Get Statistics Response"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "LAN Redundancy Get Statistics Response"); - sub_tree = proto_item_add_subtree(ti, ett_ff_lr_get_statistics_rsp); - - if(!sub_tree) { - return; - } - - proto_tree_add_item(sub_tree, - hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_a, - tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_a, - tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_a, - tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_b, - tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_b, - tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_b, - tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - NumXcableStat = tvb_get_ntohl(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_lr_get_statistics_rsp_num_x_cable_stat, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - if(NumXcableStat) { - dissect_ff_msg_lr_get_statistics_rsp_x_cable_stat(tvb, - offset, sub_tree, NumXcableStat); - offset += 4 * NumXcableStat; - length -= 4 * NumXcableStat; - } - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint32 NumXcableStat; + + col_set_str(pinfo->cinfo, COL_INFO, "LAN Redundancy Get Statistics Response"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "LAN Redundancy Get Statistics Response"); + sub_tree = proto_item_add_subtree(ti, ett_ff_lr_get_statistics_rsp); + + proto_tree_add_item(sub_tree, + hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_a, + tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_a, + tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_a, + tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_b, + tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_b, + tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_b, + tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + NumXcableStat = tvb_get_ntohl(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_lr_get_statistics_rsp_num_x_cable_stat, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + if (NumXcableStat) { + dissect_ff_msg_lr_get_statistics_rsp_x_cable_stat(tvb, + offset, sub_tree, NumXcableStat); + offset += 4 * NumXcableStat; + length -= 4 * NumXcableStat; + } + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -9920,62 +9274,58 @@ dissect_ff_msg_lr_get_statistics_rsp( */ static void dissect_ff_msg_lr_get_statistics_err( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint8 ErrorClass = 0; - guint8 ErrorCode = 0; - const char *error_code = NULL; - - col_set_str(pinfo->cinfo, COL_INFO, "LAN Redundancy Get Statistics Error"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "LAN Redundancy Get Statistics Error"); - sub_tree = proto_item_add_subtree(ti, - ett_ff_lr_get_statistics_err); - - if(!sub_tree) { - return; - } - - ErrorClass = tvb_get_guint8(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_lr_get_statistics_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - ErrorCode = tvb_get_guint8(tvb, offset); - error_code = val_to_str_err_code(ErrorClass, ErrorCode); - proto_tree_add_uint_format(sub_tree, - hf_ff_lr_get_statistics_err_err_code, - tvb, offset, 1, ErrorCode, - "Error Code: %s (%u)", error_code, ErrorCode); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_lr_get_statistics_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_lr_get_statistics_err_additional_desc, - tvb, offset, 16, ENC_ASCII|ENC_NA); - offset += 16; - length -= 16; - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + guint8 ErrorClass; + guint8 ErrorCode; + const char *error_code; + + col_set_str(pinfo->cinfo, COL_INFO, "LAN Redundancy Get Statistics Error"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "LAN Redundancy Get Statistics Error"); + sub_tree = proto_item_add_subtree(ti, + ett_ff_lr_get_statistics_err); + + ErrorClass = tvb_get_guint8(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_lr_get_statistics_err_err_class, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + ErrorCode = tvb_get_guint8(tvb, offset); + error_code = val_to_str_err_code(ErrorClass, ErrorCode); + proto_tree_add_uint_format(sub_tree, + hf_ff_lr_get_statistics_err_err_code, + tvb, offset, 1, ErrorCode, + "Error Code: %s (%u)", error_code, ErrorCode); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_lr_get_statistics_err_additional_code, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_lr_get_statistics_err_additional_desc, + tvb, offset, 16, ENC_ASCII|ENC_NA); + offset += 16; + length -= 16; + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -9988,277 +9338,253 @@ static void dissect_ff_msg_diagnostic_msg_req_dup_detection_stat(tvbuff_t *tvb, gint offset, proto_tree *tree, guint8 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, 1, - "Duplicate Detection State: 0x%02x", value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_lr_diagnostic_msg_req_dup_detection_stat); - - if(!sub_tree) { - return; - } - - /* - * Bits 3-8: Reserved, set to 0. - * Bit 2: 1 = Duplicate PD Tag Detected - * 0 = Duplicate PD Tag Not Detected - * Bit 18: 1 = Duplicate Device Index Detected - * 0 = Duplicate Device Index Not Detected - */ - proto_tree_add_item(sub_tree, hf_ff_lr_diagnostic_msg_req_dup_detection_state_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_lr_diagnostic_msg_req_dup_detection_state_pd_tag, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_lr_diagnostic_msg_req_dup_detection_state_device, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree *sub_tree; + proto_item *ti; + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, 1, + "Duplicate Detection State: 0x%02x", value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_lr_diagnostic_msg_req_dup_detection_stat); + + /* + * Bits 3-8: Reserved, set to 0. + * Bit 2: 1 = Duplicate PD Tag Detected + * 0 = Duplicate PD Tag Not Detected + * Bit 18: 1 = Duplicate Device Index Detected + * 0 = Duplicate Device Index Not Detected + */ + proto_tree_add_item(sub_tree, hf_ff_lr_diagnostic_msg_req_dup_detection_state_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_lr_diagnostic_msg_req_dup_detection_state_pd_tag, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_lr_diagnostic_msg_req_dup_detection_state_device, tvb, offset, 1, ENC_BIG_ENDIAN); } static void dissect_ff_msg_diagnostic_msg_req_if_a_to_a_status(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint32 value) + gint offset, proto_tree *tree, guint32 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint d = 0; - - if(!tree) { - return; - } + proto_tree *sub_tree; + proto_item *ti; + guint d; - ti = proto_tree_add_text(tree, tvb, offset, 4 * value, - "List of Interface AtoA Statuses (%u bytes)", 4 * value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_lr_diagnostic_msg_req_a_to_a_status); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, 4 * value, + "List of Interface AtoA Statuses (%u bytes)", 4 * value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_lr_diagnostic_msg_req_a_to_a_status); - for(d = 0; d < value; d ++) { - proto_tree_add_item(sub_tree, - hf_ff_lr_diagnostic_msg_req_if_a_to_a_status, - tvb, offset, 4, ENC_BIG_ENDIAN); + for (d = 0; d < value; d++) { + proto_tree_add_item(sub_tree, + hf_ff_lr_diagnostic_msg_req_if_a_to_a_status, + tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - } + offset += 4; + } - return; + return; } static void dissect_ff_msg_diagnostic_msg_req_if_b_to_a_status(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint32 value) + gint offset, proto_tree *tree, guint32 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint d = 0; - - if(!tree) { - return; - } + proto_tree *sub_tree; + proto_item *ti; + guint d; - ti = proto_tree_add_text(tree, tvb, offset, 4 * value, - "List of Interface BtoA Statuses (%u bytes)", 4 * value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_lr_diagnostic_msg_req_b_to_a_status); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, 4 * value, + "List of Interface BtoA Statuses (%u bytes)", 4 * value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_lr_diagnostic_msg_req_b_to_a_status); - for(d = 0; d < value; d ++) { - proto_tree_add_item(sub_tree, - hf_ff_lr_diagnostic_msg_req_if_b_to_a_status, - tvb, offset, 4, ENC_BIG_ENDIAN); + for (d = 0; d < value; d++) { + proto_tree_add_item(sub_tree, + hf_ff_lr_diagnostic_msg_req_if_b_to_a_status, + tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - } + offset += 4; + } - return; + return; } static void dissect_ff_msg_diagnostic_msg_req_if_a_to_b_status(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint32 value) + gint offset, proto_tree *tree, guint32 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint d = 0; + proto_tree *sub_tree; + proto_item *ti; + guint d; - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, 4 * value, - "List of Interface AtoB Statuses (%u bytes)", 4 * value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_lr_diagnostic_msg_req_a_to_b_status); + ti = proto_tree_add_text(tree, tvb, offset, 4 * value, + "List of Interface AtoB Statuses (%u bytes)", 4 * value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_lr_diagnostic_msg_req_a_to_b_status); - if(!sub_tree) { - return; - } + for (d = 0; d < value; d++) { + proto_tree_add_item(sub_tree, + hf_ff_lr_diagnostic_msg_req_if_a_to_b_status, + tvb, offset, 4, ENC_BIG_ENDIAN); - for(d = 0; d < value; d ++) { - proto_tree_add_item(sub_tree, - hf_ff_lr_diagnostic_msg_req_if_a_to_b_status, - tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + } - offset += 4; - } - - return; + return; } static void dissect_ff_msg_diagnostic_msg_req_if_b_to_b_status(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint32 value) + gint offset, proto_tree *tree, guint32 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint d = 0; - - if(!tree) { - return; - } + proto_tree *sub_tree; + proto_item *ti; + guint d; - ti = proto_tree_add_text(tree, tvb, offset, 4 * value, - "List of Interface BtoB Statuses (%u bytes)", 4 * value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_lr_diagnostic_msg_req_b_to_b_status); + if (!tree) { + return; + } - if(!sub_tree) { - return; - } + ti = proto_tree_add_text(tree, tvb, offset, 4 * value, + "List of Interface BtoB Statuses (%u bytes)", 4 * value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_lr_diagnostic_msg_req_b_to_b_status); - for(d = 0; d < value; d ++) { - proto_tree_add_item(sub_tree, - hf_ff_lr_diagnostic_msg_req_if_b_to_b_status, - tvb, offset, 4, ENC_BIG_ENDIAN); + for (d = 0; d < value; d++) { + proto_tree_add_item(sub_tree, + hf_ff_lr_diagnostic_msg_req_if_b_to_b_status, + tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - } + offset += 4; + } - return; + return; } static void dissect_ff_msg_diagnostic_msg_req( - tvbuff_t *tvb, gint offset, - guint32 length, packet_info *pinfo, proto_tree *tree) -{ - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - guint16 DeviceIndex = 0; - guint8 DuplicateDetectionState = 0; - guint16 NumOfInterfaceStatuses = 0; - - col_set_str(pinfo->cinfo, COL_INFO, "Diagnostic Message Request"); - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, length, - "Diagnostic Message Request"); - sub_tree = proto_item_add_subtree(ti, ett_ff_lr_diagnostic_msg_req); - - if(!sub_tree) { - return; - } - - DeviceIndex = tvb_get_ntohs(tvb, offset); - if(DeviceIndex) { - proto_tree_add_item(sub_tree, - hf_ff_lr_diagnostic_msg_req_dev_idx, tvb, offset, 2, ENC_BIG_ENDIAN); - } else { - proto_tree_add_uint_format(sub_tree, - hf_ff_lr_diagnostic_msg_req_dev_idx, - tvb, offset, 2, DeviceIndex, - "Device Index: Index not assigned (%u)", DeviceIndex); - } - offset += 2; - length -= 2; - - proto_tree_add_item(sub_tree, - hf_ff_lr_diagnostic_msg_req_num_of_network_ifs, - tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_lr_diagnostic_msg_req_transmission_if, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - proto_tree_add_item(sub_tree, - hf_ff_lr_diagnostic_msg_req_diagnostic_msg_intvl, - tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - length -= 4; - - proto_tree_add_item(sub_tree, - hf_ff_lr_diagnostic_msg_req_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); - offset += 32; - length -= 32; - - proto_tree_add_item(sub_tree, - hf_ff_lr_diagnostic_msg_req_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - length -= 1; - - DuplicateDetectionState = tvb_get_guint8(tvb, offset); - dissect_ff_msg_diagnostic_msg_req_dup_detection_stat(tvb, - offset, sub_tree, DuplicateDetectionState); - offset += 1; - length -= 1; - - NumOfInterfaceStatuses = tvb_get_ntohs(tvb, offset); - proto_tree_add_item(sub_tree, - hf_ff_lr_diagnostic_msg_req_num_of_if_statuses, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - length -= 2; - - if(NumOfInterfaceStatuses) { - dissect_ff_msg_diagnostic_msg_req_if_a_to_a_status(tvb, - offset, sub_tree, NumOfInterfaceStatuses); - offset += 4 * NumOfInterfaceStatuses; - length -= 4 * NumOfInterfaceStatuses; - - dissect_ff_msg_diagnostic_msg_req_if_b_to_a_status(tvb, - offset, sub_tree, NumOfInterfaceStatuses); - offset += 4 * NumOfInterfaceStatuses; - length -= 4 * NumOfInterfaceStatuses; - - dissect_ff_msg_diagnostic_msg_req_if_a_to_b_status(tvb, - offset, sub_tree, NumOfInterfaceStatuses); - offset += 4 * NumOfInterfaceStatuses; - length -= 4 * NumOfInterfaceStatuses; - - dissect_ff_msg_diagnostic_msg_req_if_b_to_b_status(tvb, - offset, sub_tree, NumOfInterfaceStatuses); - offset += 4 * NumOfInterfaceStatuses; - length -= 4 * NumOfInterfaceStatuses; - } - - if(length) { - proto_tree_add_text(sub_tree, tvb, offset, length, - "[Unknown] (%u bytes)", length); - } - - return; + tvbuff_t *tvb, gint offset, + guint32 length, packet_info *pinfo, proto_tree *tree) +{ + proto_tree *sub_tree; + proto_item *ti; + guint16 DeviceIndex; + guint8 DuplicateDetectionState; + guint16 NumOfInterfaceStatuses; + + col_set_str(pinfo->cinfo, COL_INFO, "Diagnostic Message Request"); + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, length, + "Diagnostic Message Request"); + sub_tree = proto_item_add_subtree(ti, ett_ff_lr_diagnostic_msg_req); + + DeviceIndex = tvb_get_ntohs(tvb, offset); + if (DeviceIndex) { + proto_tree_add_item(sub_tree, + hf_ff_lr_diagnostic_msg_req_dev_idx, tvb, offset, 2, ENC_BIG_ENDIAN); + } else { + proto_tree_add_uint_format(sub_tree, + hf_ff_lr_diagnostic_msg_req_dev_idx, + tvb, offset, 2, DeviceIndex, + "Device Index: Index not assigned (%u)", DeviceIndex); + } + offset += 2; + length -= 2; + + proto_tree_add_item(sub_tree, + hf_ff_lr_diagnostic_msg_req_num_of_network_ifs, + tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_lr_diagnostic_msg_req_transmission_if, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + proto_tree_add_item(sub_tree, + hf_ff_lr_diagnostic_msg_req_diagnostic_msg_intvl, + tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + length -= 4; + + proto_tree_add_item(sub_tree, + hf_ff_lr_diagnostic_msg_req_pd_tag, tvb, offset, 32, ENC_ASCII|ENC_NA); + offset += 32; + length -= 32; + + proto_tree_add_item(sub_tree, + hf_ff_lr_diagnostic_msg_req_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + length -= 1; + + DuplicateDetectionState = tvb_get_guint8(tvb, offset); + dissect_ff_msg_diagnostic_msg_req_dup_detection_stat(tvb, + offset, sub_tree, DuplicateDetectionState); + offset += 1; + length -= 1; + + NumOfInterfaceStatuses = tvb_get_ntohs(tvb, offset); + proto_tree_add_item(sub_tree, + hf_ff_lr_diagnostic_msg_req_num_of_if_statuses, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + length -= 2; + + if (NumOfInterfaceStatuses) { + dissect_ff_msg_diagnostic_msg_req_if_a_to_a_status(tvb, + offset, sub_tree, NumOfInterfaceStatuses); + offset += 4 * NumOfInterfaceStatuses; + length -= 4 * NumOfInterfaceStatuses; + + dissect_ff_msg_diagnostic_msg_req_if_b_to_a_status(tvb, + offset, sub_tree, NumOfInterfaceStatuses); + offset += 4 * NumOfInterfaceStatuses; + length -= 4 * NumOfInterfaceStatuses; + + dissect_ff_msg_diagnostic_msg_req_if_a_to_b_status(tvb, + offset, sub_tree, NumOfInterfaceStatuses); + offset += 4 * NumOfInterfaceStatuses; + length -= 4 * NumOfInterfaceStatuses; + + dissect_ff_msg_diagnostic_msg_req_if_b_to_b_status(tvb, + offset, sub_tree, NumOfInterfaceStatuses); + offset += 4 * NumOfInterfaceStatuses; + length -= 4 * NumOfInterfaceStatuses; + } + + if (length) { + proto_tree_add_text(sub_tree, tvb, offset, length, + "[Unknown] (%u bytes)", length); + } + + return; } @@ -10268,2090 +9594,2090 @@ dissect_ff_msg_diagnostic_msg_req( */ static void dissect_ff_msg_body(tvbuff_t *tvb, gint offset, guint32 length, - packet_info *pinfo, proto_tree *tree, - guint8 ProtocolAndType, guint8 Service, guint32 FDAAddress) -{ - proto_item *hidden_item; - guint16 message = 0; - - message = ((guint16)ProtocolAndType) << 8; - message |= (guint16)Service; - - switch(message) { - case FDA_MSG_SESSION_OPEN_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fda, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fda_open_sess, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fda_open_sess_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fda_open_sess_req(tvb, offset, length, - pinfo, tree); - break; - - case FDA_MSG_SESSION_OPEN_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fda, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fda_open_sess, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fda_open_sess_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fda_open_sess_rsp(tvb, offset, length, - pinfo, tree); - break; - - case FDA_MSG_SESSION_OPEN_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fda, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fda_open_sess, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fda_open_sess_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fda_open_sess_err(tvb, offset, length, - pinfo, tree); - break; - - case FDA_MSG_SESSION_IDLE_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fda, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fda_idle, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fda_idle_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fda_idle_req(tvb, offset, length, - pinfo, tree); - break; - - case FDA_MSG_SESSION_IDLE_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fda, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fda_idle, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fda_idle_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fda_idle_rsp(tvb, offset, length, - pinfo, tree); - break; - - case FDA_MSG_SESSION_IDLE_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fda, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fda_idle, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fda_idle_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fda_idle_err(tvb, offset, length, - pinfo, tree); - break; - - case SM_MSG_FIND_TAG_QUERY_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_find_tag_query, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_find_tag_query_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_sm_find_tag_query_req(tvb, offset, length, - pinfo, tree); - break; - - case SM_MSG_FIND_TAG_REPLY_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_find_tag_reply, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_find_tag_reply_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_sm_find_tag_reply_req(tvb, offset, length, - pinfo, tree); - break; - - case SM_MSG_IDENTIFY_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_id, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_id_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_sm_id_req(tvb, offset, length, - pinfo, tree); - break; - - case SM_MSG_IDENTIFY_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_id, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_id_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_sm_id_rsp(tvb, offset, length, - pinfo, tree, FDAAddress); - break; - - case SM_MSG_IDENTIFY_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_id, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_id_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_sm_id_err(tvb, offset, length, - pinfo, tree); - break; - - case SM_MSG_CLEAR_ADDRESS_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_clear_addr, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_clear_addr_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_sm_clear_addr_req(tvb, offset, length, - pinfo, tree); - break; - - case SM_MSG_CLEAR_ADDRESS_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_clear_addr, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_clear_addr_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_sm_clear_addr_rsp(tvb, offset, length, - pinfo, tree); - break; - - case SM_MSG_CLEAR_ADDRESS_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_clear_addr, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_clear_addr_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_sm_clear_addr_err(tvb, offset, length, - pinfo, tree); - break; - - case SM_MSG_SET_ASSIGNMENT_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_set_assign_info, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_set_assign_info_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_sm_set_assign_info_req(tvb, offset, - length, pinfo, tree); - break; - - case SM_MSG_SET_ASSIGNMENT_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_set_assign_info, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_set_assign_info_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_sm_set_assign_info_rsp(tvb, offset, - length, pinfo, tree); - break; - - case SM_MSG_SET_ASSIGNMENT_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_set_assign_info, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_set_assign_info_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_sm_set_assign_info_err(tvb, offset, - length, pinfo, tree); - break; - - case SM_MSG_CLEAR_ASSIGNMENT_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_clear_assign_info, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_clear_assign_info_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_sm_clear_assign_info_req(tvb, offset, - length, pinfo, tree); - break; - - case SM_MSG_CLEAR_ASSIGNMENT_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_clear_assign_info, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_clear_assign_info_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_sm_clear_assign_info_rsp(tvb, offset, - length, pinfo, tree); - break; - - case SM_MSG_CLEAR_ASSIGNMENT_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_clear_assign_info, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_clear_assign_info_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_sm_clear_assign_info_err(tvb, offset, - length, pinfo, tree); - break; - - case SM_MSG_DEVICE_ANNUNCIATION_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_dev_annunc, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_sm_dev_annunc_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_sm_dev_annunc_req(tvb, offset, - length, pinfo, tree, FDAAddress); - break; - - case FMS_MSG_INITIATE_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_init_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_INITIATE_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_init_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_INITIATE_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_init_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_ABORT_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_abort, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_abort_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_abort_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_STATUS_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_status, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_status_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_status_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_STATUS_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_status, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_status_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_status_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_STATUS_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_status, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_status_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_status_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_UNSOLICITED_STATUS_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_unsolicited_status, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_unsolicited_status_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_unsolicited_status_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_IDENTIFY_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_id, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_id_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_id_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_IDENTIFY_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_id, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_id_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_id_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_IDENTIFY_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_id, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_id_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_id_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_GET_OD_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_get_od, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_get_od_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_get_od_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_GET_OD_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_get_od, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_get_od_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_get_od_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_GET_OD_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_get_od, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_get_od_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_get_od_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_INITIATE_PUT_OD_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_put_od, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_put_od_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_init_put_od_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_INITIATE_PUT_OD_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_put_od, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_put_od_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_init_put_od_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_INITIATE_PUT_OD_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_put_od, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_put_od_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_init_put_od_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_PUT_OD_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_put_od, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_put_od_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_put_od_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_PUT_OD_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_put_od, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_put_od_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_put_od_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_PUT_OD_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_put_od, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_put_od_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_put_od_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_TERMINATE_PUT_OD_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_terminate_put_od, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_terminate_put_od_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_terminate_put_od_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_TERMINATE_PUT_OD_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_terminate_put_od, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_terminate_put_od_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_terminate_put_od_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_TERMINATE_PUT_OD_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_terminate_put_od, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_terminate_put_od_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_terminate_put_od_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_GENERIC_INITIATE_DOWNLOAD_SEQUENCE_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_gen_init_download_seq, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_gen_init_download_seq_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_generic_init_download_sequence_req( - tvb, offset, length, pinfo, tree); - break; - - case FMS_MSG_GENERIC_INITIATE_DOWNLOAD_SEQUENCE_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_gen_init_download_seq, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_gen_init_download_seq_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_generic_init_download_sequence_rsp( - tvb, offset, length, pinfo, tree); - break; - - case FMS_MSG_GENERIC_INITIATE_DOWNLOAD_SEQUENCE_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_gen_init_download_seq, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_gen_init_download_seq_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_generic_init_download_sequence_err( - tvb, offset, length, pinfo, tree); - break; - - case FMS_MSG_GENERIC_DOWNLOAD_SEGMENT_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_gen_download_seg, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_gen_download_seg_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_generic_download_segment_req(tvb, - offset, length, pinfo, tree); - break; - - case FMS_MSG_GENERIC_DOWNLOAD_SEGMENT_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_gen_download_seg, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_gen_download_seg_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_generic_download_segment_rsp(tvb, - offset, length, pinfo, tree); - break; - - case FMS_MSG_GENERIC_DOWNLOAD_SEGMENT_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_gen_download_seg, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_gen_download_seg_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_generic_download_segment_err(tvb, - offset, length, pinfo, tree); - break; - - case FMS_MSG_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_gen_terminate_download_seq, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_gen_terminate_download_seq_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_generic_terminate_download_sequence_req( - tvb, offset, length, pinfo, tree); - break; - - case FMS_MSG_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_gen_terminate_download_seq, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_gen_terminate_download_seq_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_generic_terminate_download_sequence_rsp( - tvb, offset, length, pinfo, tree); - break; - - case FMS_MSG_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_gen_terminate_download_seq, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_gen_terminate_download_seq_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_generic_terminate_download_sequence_err( - tvb, offset, length, pinfo, tree); - break; - - case FMS_MSG_INITIATE_DOWNLOAD_SEQUENCE_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_download_seq, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_download_seq_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_init_download_sequence_req(tvb, - offset, length, pinfo, tree); - break; - - case FMS_MSG_INITIATE_DOWNLOAD_SEQUENCE_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_download_seq, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_download_seq_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_init_download_sequence_rsp(tvb, - offset, length, pinfo, tree); - break; - - case FMS_MSG_INITIATE_DOWNLOAD_SEQUENCE_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_download_seq, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_download_seq_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_init_download_sequence_err(tvb, - offset, length, pinfo, tree); - break; - - case FMS_MSG_DOWNLOAD_SEGMENT_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_download_seg, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_download_seg_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_download_segment_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_DOWNLOAD_SEGMENT_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_download_seg, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_download_seg_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_download_segment_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_DOWNLOAD_SEGMENT_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_download_seg, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_download_seg_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_download_segment_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_TERMINATE_DOWNLOAD_SEQUENCE_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_terminate_download_seq, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_terminate_download_seq_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_terminate_download_sequence_req(tvb, - offset, length, pinfo, tree); - break; - - case FMS_MSG_TERMINATE_DOWNLOAD_SEQUENCE_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_terminate_download_seq, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_terminate_download_seq_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_terminate_download_sequence_rsp(tvb, - offset, length, pinfo, tree); - break; - - case FMS_MSG_TERMINATE_DOWNLOAD_SEQUENCE_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_terminate_download_seq, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_terminate_download_seq_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_terminate_download_sequence_err(tvb, - offset, length, pinfo, tree); - break; - - case FMS_MSG_INITIATE_UPLOAD_SEQUENCE_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_upload_seq, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_upload_seq_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_init_upload_seq_req(tvb, - offset, length, pinfo, tree); - break; - - case FMS_MSG_INITIATE_UPLOAD_SEQUENCE_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_upload_seq, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_upload_seq_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_init_upload_seq_rsp(tvb, - offset, length, pinfo, tree); - break; - - case FMS_MSG_INITIATE_UPLOAD_SEQUENCE_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_upload_seq, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_init_upload_seq_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_init_upload_seq_err(tvb, - offset, length, pinfo, tree); - break; - - case FMS_MSG_UPLOAD_SEGMENT_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_upload_seg, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_upload_seg_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_upload_segment_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_UPLOAD_SEGMENT_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_upload_seg, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_upload_seg_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_upload_segment_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_UPLOAD_SEGMENT_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_upload_seg, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_upload_seg_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_upload_segment_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_TERMINATE_UPLOAD_SEQUENCE_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_terminate_upload_seq, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_terminate_upload_seq_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_terminate_upload_seq_req(tvb, - offset, length, pinfo, tree); - break; - - case FMS_MSG_TERMINATE_UPLOAD_SEQUENCE_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_terminate_upload_seq, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_terminate_upload_seq_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_terminate_upload_seq_rsp(tvb, - offset, length, pinfo, tree); - break; - - case FMS_MSG_TERMINATE_UPLOAD_SEQUENCE_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_terminate_upload_seq, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_terminate_upload_seq_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_terminate_upload_seq_err(tvb, - offset, length, pinfo, tree); - break; - - case FMS_MSG_REQUEST_DOMAIN_DOWNLOAD_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_req_dom_download, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_req_dom_download_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_req_dom_download_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_REQUEST_DOMAIN_DOWNLOAD_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_req_dom_download, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_req_dom_download_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_req_dom_download_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_REQUEST_DOMAIN_DOWNLOAD_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_req_dom_download, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_req_dom_download_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_req_dom_download_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_REQUEST_DOMAIN_UPLOAD_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_req_dom_upload, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_req_dom_upload_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_req_dom_upload_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_REQUEST_DOMAIN_UPLOAD_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_req_dom_upload, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_req_dom_upload_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_req_dom_upload_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_REQUEST_DOMAIN_UPLOAD_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_req_dom_upload, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_req_dom_upload_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_req_dom_upload_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_CREATE_PI_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_create_pi, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_create_pi_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_create_pi_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_CREATE_PI_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_create_pi, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_create_pi_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_create_pi_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_CREATE_PI_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_create_pi, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_create_pi_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_create_pi_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_DELETE_PI_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_del_pi, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_del_pi_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_del_pi_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_DELETE_PI_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_del_pi, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_del_pi_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_del_pi_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_DELETE_PI_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_del_pi, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_del_pi_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_del_pi_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_START_PI_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_start, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_start_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_start_pi_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_START_PI_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_start, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_start_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_start_pi_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_START_PI_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_start, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_start_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_start_pi_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_STOP_PI_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_stop, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_stop_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_stop_pi_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_STOP_PI_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_stop, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_stop_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_stop_pi_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_STOP_PI_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_stop, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_stop_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_stop_pi_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_RESUME_PI_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_resume, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_resume_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_resume_pi_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_RESUME_PI_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_resume, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_resume_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_resume_pi_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_RESUME_PI_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_resume, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_resume_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_resume_pi_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_RESET_PI_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_reset, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_reset_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_reset_pi_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_RESET_PI_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_reset, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_reset_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_reset_pi_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_RESET_PI_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_reset, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_reset_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_reset_pi_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_KILL_PI_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_kill, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_kill_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_kill_pi_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_KILL_PI_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_kill, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_kill_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_kill_pi_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_KILL_PI_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_kill, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_kill_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_kill_pi_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_READ_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_read, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_read_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_read_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_READ_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_read, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_read_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_read_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_READ_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_read, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_read_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_read_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_READ_SUBINDEX_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_read_with_subidx, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_read_with_subidx_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_read_subindex_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_READ_SUBINDEX_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_read_with_subidx, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_read_with_subidx_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_read_subindex_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_READ_SUBINDEX_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_read_with_subidx, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_read_with_subidx_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_read_subindex_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_WRITE_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_write, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_write_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_write_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_WRITE_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_write, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_write_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_write_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_WRITE_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_write, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_write_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_write_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_WRITE_SUBINDEX_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_write_with_subidx, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_write_with_subidx_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_write_subindex_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_WRITE_SUBINDEX_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_write_with_subidx, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_write_with_subidx_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_write_subindex_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_WRITE_SUBINDEX_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_write_with_subidx, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_write_with_subidx_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_write_subindex_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_DEFINE_VARIABLE_LIST_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_def_variable_list, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_def_variable_list_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_def_variable_list_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_DEFINE_VARIABLE_LIST_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_def_variable_list, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_def_variable_list_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_def_variable_list_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_DEFINE_VARIABLE_LIST_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_def_variable_list, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_def_variable_list_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_def_variable_list_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_DELETE_VARIABLE_LIST_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_del_variable_list, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_del_variable_list_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_del_variable_list_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_DELETE_VARIABLE_LIST_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_del_variable_list, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_del_variable_list_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_del_variable_list_rsp(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_DELETE_VARIABLE_LIST_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_del_variable_list, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_del_variable_list_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_del_variable_list_err(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_INFO_REPORT_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_info_report, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_info_report_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_info_report_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_INFO_REPORT_SUBINDEX_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_info_report_with_subidx, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_info_report_with_subidx_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_info_report_subindex_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_INFO_REPORT_CHANGE_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_info_report_on_change, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_info_report_on_change_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_info_report_change_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_INFO_REPORT_CHANGE_SUBINDEX_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_info_report_on_change_with_subidx, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_info_report_on_change_with_subidx_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_info_report_change_subindex_req(tvb, - offset, length, pinfo, tree); - break; - - case FMS_MSG_EVENT_NOTIFICATION_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_ev_notification, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_ev_notification_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_ev_notification_req(tvb, offset, - length, pinfo, tree); - break; - - case FMS_MSG_ALTER_EVENT_CONDITION_MONITORING_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_alter_ev_condition_monitoring, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_alter_ev_condition_monitoring_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_req( - tvb, offset, length, pinfo, tree); - break; - - case FMS_MSG_ALTER_EVENT_CONDITION_MONITORING_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_alter_ev_condition_monitoring, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_alter_ev_condition_monitoring_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_rsp( - tvb, offset, length, pinfo, tree); - break; - - case FMS_MSG_ALTER_EVENT_CONDITION_MONITORING_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_alter_ev_condition_monitoring, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_alter_ev_condition_monitoring_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_err( - tvb, offset, length, pinfo, tree); - break; - - case FMS_MSG_ACKNOWLEDGE_EVENT_NOTIFICATION_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_ack_ev_notification, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_ack_ev_notification_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_ack_ev_notification_req(tvb, - offset, length, pinfo, tree); - break; - - case FMS_MSG_ACKNOWLEDGE_EVENT_NOTIFICATION_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_ack_ev_notification, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_ack_ev_notification_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_ack_ev_notification_rsp(tvb, - offset, length, pinfo, tree); - break; - - case FMS_MSG_ACKNOWLEDGE_EVENT_NOTIFICATION_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_ack_ev_notification, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_fms_ack_ev_notification_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_fms_ack_ev_notification_err(tvb, - offset, length, pinfo, tree); - break; - - case LAN_MSG_GET_INFO_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_get_info, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_get_info_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_lr_get_info_req(tvb, - offset, length, pinfo, tree); - break; - - case LAN_MSG_GET_INFO_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_get_info, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_get_info_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_lr_get_info_rsp(tvb, - offset, length, pinfo, tree); - break; - - case LAN_MSG_GET_INFO_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_get_info, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_get_info_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_lr_get_info_err(tvb, - offset, length, pinfo, tree); - break; - - case LAN_MSG_PUT_INFO_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_put_info, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_put_info_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_lr_put_info_req(tvb, - offset, length, pinfo, tree); - break; - - case LAN_MSG_PUT_INFO_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_put_info, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_put_info_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_lr_put_info_rsp(tvb, - offset, length, pinfo, tree); - break; - - case LAN_MSG_PUT_INFO_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_put_info, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_put_info_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_lr_put_info_err(tvb, - offset, length, pinfo, tree); - break; - - case LAN_MSG_GET_STATISTICS_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_get_statistics, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_get_statistics_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_lr_get_statistics_req(tvb, - offset, length, pinfo, tree); - break; - - case LAN_MSG_GET_STATISTICS_RSP: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_get_statistics, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_get_statistics_rsp, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_lr_get_statistics_rsp(tvb, - offset, length, pinfo, tree); - break; - - case LAN_MSG_GET_STATISTICS_ERR: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_get_statistics, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_get_statistics_err, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_lr_get_statistics_err(tvb, - offset, length, pinfo, tree); - break; - - case LAN_MSG_DIAG_REQ: - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_diagnostic_msg, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - hidden_item = proto_tree_add_boolean(tree, - hf_ff_lr_diagnostic_msg_req, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - dissect_ff_msg_diagnostic_msg_req(tvb, - offset, length, pinfo, tree); - break; - - default: - if(check_col(pinfo->cinfo, COL_INFO)) { - col_add_fstr(pinfo->cinfo, COL_INFO, - "Unknown Service (Protocol Id: %u, Confirmed Msg Type: %u) " - "(%s Service Id = %u)", - (ProtocolAndType & PROTOCOL_MASK) >> 2, - ProtocolAndType & TYPE_MASK, - (Service & SERVICE_CONFIRMED_FLAG_MASK)? - "Confirmed": "Unconfirmed", - Service & SERVICE_SERVICE_ID_MASK); - } - - if(length) { - proto_tree_add_text(tree, tvb, offset, length, - "[Unknown Service] (%u bytes)", length); - } - } - - return; + packet_info *pinfo, proto_tree *tree, + guint8 ProtocolAndType, guint8 Service, guint32 FDAAddress) +{ + proto_item *hidden_item; + guint16 message = 0; + + message = ((guint16)ProtocolAndType) << 8; + message |= (guint16)Service; + + switch (message) { + case FDA_MSG_SESSION_OPEN_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fda, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fda_open_sess, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fda_open_sess_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fda_open_sess_req(tvb, offset, length, + pinfo, tree); + break; + + case FDA_MSG_SESSION_OPEN_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fda, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fda_open_sess, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fda_open_sess_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fda_open_sess_rsp(tvb, offset, length, + pinfo, tree); + break; + + case FDA_MSG_SESSION_OPEN_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fda, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fda_open_sess, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fda_open_sess_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fda_open_sess_err(tvb, offset, length, + pinfo, tree); + break; + + case FDA_MSG_SESSION_IDLE_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fda, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fda_idle, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fda_idle_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fda_idle_req(tvb, offset, length, + pinfo, tree); + break; + + case FDA_MSG_SESSION_IDLE_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fda, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fda_idle, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fda_idle_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fda_idle_rsp(tvb, offset, length, + pinfo, tree); + break; + + case FDA_MSG_SESSION_IDLE_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fda, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fda_idle, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fda_idle_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fda_idle_err(tvb, offset, length, + pinfo, tree); + break; + + case SM_MSG_FIND_TAG_QUERY_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_find_tag_query, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_find_tag_query_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_sm_find_tag_query_req(tvb, offset, length, + pinfo, tree); + break; + + case SM_MSG_FIND_TAG_REPLY_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_find_tag_reply, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_find_tag_reply_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_sm_find_tag_reply_req(tvb, offset, length, + pinfo, tree); + break; + + case SM_MSG_IDENTIFY_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_id, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_id_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_sm_id_req(tvb, offset, length, + pinfo, tree); + break; + + case SM_MSG_IDENTIFY_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_id, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_id_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_sm_id_rsp(tvb, offset, length, + pinfo, tree, FDAAddress); + break; + + case SM_MSG_IDENTIFY_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_id, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_id_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_sm_id_err(tvb, offset, length, + pinfo, tree); + break; + + case SM_MSG_CLEAR_ADDRESS_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_clear_addr, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_clear_addr_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_sm_clear_addr_req(tvb, offset, length, + pinfo, tree); + break; + + case SM_MSG_CLEAR_ADDRESS_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_clear_addr, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_clear_addr_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_sm_clear_addr_rsp(tvb, offset, length, + pinfo, tree); + break; + + case SM_MSG_CLEAR_ADDRESS_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_clear_addr, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_clear_addr_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_sm_clear_addr_err(tvb, offset, length, + pinfo, tree); + break; + + case SM_MSG_SET_ASSIGNMENT_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_set_assign_info, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_set_assign_info_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_sm_set_assign_info_req(tvb, offset, + length, pinfo, tree); + break; + + case SM_MSG_SET_ASSIGNMENT_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_set_assign_info, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_set_assign_info_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_sm_set_assign_info_rsp(tvb, offset, + length, pinfo, tree); + break; + + case SM_MSG_SET_ASSIGNMENT_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_set_assign_info, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_set_assign_info_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_sm_set_assign_info_err(tvb, offset, + length, pinfo, tree); + break; + + case SM_MSG_CLEAR_ASSIGNMENT_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_clear_assign_info, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_clear_assign_info_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_sm_clear_assign_info_req(tvb, offset, + length, pinfo, tree); + break; + + case SM_MSG_CLEAR_ASSIGNMENT_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_clear_assign_info, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_clear_assign_info_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_sm_clear_assign_info_rsp(tvb, offset, + length, pinfo, tree); + break; + + case SM_MSG_CLEAR_ASSIGNMENT_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_clear_assign_info, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_clear_assign_info_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_sm_clear_assign_info_err(tvb, offset, + length, pinfo, tree); + break; + + case SM_MSG_DEVICE_ANNUNCIATION_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_dev_annunc, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_sm_dev_annunc_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_sm_dev_annunc_req(tvb, offset, + length, pinfo, tree, FDAAddress); + break; + + case FMS_MSG_INITIATE_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_init_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_INITIATE_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_init_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_INITIATE_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_init_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_ABORT_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_abort, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_abort_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_abort_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_STATUS_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_status, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_status_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_status_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_STATUS_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_status, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_status_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_status_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_STATUS_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_status, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_status_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_status_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_UNSOLICITED_STATUS_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_unsolicited_status, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_unsolicited_status_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_unsolicited_status_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_IDENTIFY_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_id, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_id_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_id_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_IDENTIFY_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_id, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_id_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_id_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_IDENTIFY_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_id, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_id_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_id_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_GET_OD_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_get_od, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_get_od_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_get_od_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_GET_OD_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_get_od, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_get_od_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_get_od_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_GET_OD_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_get_od, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_get_od_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_get_od_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_INITIATE_PUT_OD_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_put_od, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_put_od_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_init_put_od_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_INITIATE_PUT_OD_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_put_od, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_put_od_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_init_put_od_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_INITIATE_PUT_OD_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_put_od, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_put_od_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_init_put_od_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_PUT_OD_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_put_od, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_put_od_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_put_od_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_PUT_OD_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_put_od, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_put_od_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_put_od_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_PUT_OD_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_put_od, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_put_od_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_put_od_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_TERMINATE_PUT_OD_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_terminate_put_od, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_terminate_put_od_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_terminate_put_od_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_TERMINATE_PUT_OD_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_terminate_put_od, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_terminate_put_od_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_terminate_put_od_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_TERMINATE_PUT_OD_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_terminate_put_od, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_terminate_put_od_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_terminate_put_od_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_GENERIC_INITIATE_DOWNLOAD_SEQUENCE_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_gen_init_download_seq, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_gen_init_download_seq_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_generic_init_download_sequence_req( + tvb, offset, length, pinfo, tree); + break; + + case FMS_MSG_GENERIC_INITIATE_DOWNLOAD_SEQUENCE_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_gen_init_download_seq, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_gen_init_download_seq_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_generic_init_download_sequence_rsp( + tvb, offset, length, pinfo, tree); + break; + + case FMS_MSG_GENERIC_INITIATE_DOWNLOAD_SEQUENCE_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_gen_init_download_seq, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_gen_init_download_seq_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_generic_init_download_sequence_err( + tvb, offset, length, pinfo, tree); + break; + + case FMS_MSG_GENERIC_DOWNLOAD_SEGMENT_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_gen_download_seg, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_gen_download_seg_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_generic_download_segment_req(tvb, + offset, length, pinfo, tree); + break; + + case FMS_MSG_GENERIC_DOWNLOAD_SEGMENT_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_gen_download_seg, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_gen_download_seg_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_generic_download_segment_rsp(tvb, + offset, length, pinfo, tree); + break; + + case FMS_MSG_GENERIC_DOWNLOAD_SEGMENT_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_gen_download_seg, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_gen_download_seg_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_generic_download_segment_err(tvb, + offset, length, pinfo, tree); + break; + + case FMS_MSG_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_gen_terminate_download_seq, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_gen_terminate_download_seq_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_generic_terminate_download_sequence_req( + tvb, offset, length, pinfo, tree); + break; + + case FMS_MSG_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_gen_terminate_download_seq, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_gen_terminate_download_seq_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_generic_terminate_download_sequence_rsp( + tvb, offset, length, pinfo, tree); + break; + + case FMS_MSG_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_gen_terminate_download_seq, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_gen_terminate_download_seq_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_generic_terminate_download_sequence_err( + tvb, offset, length, pinfo, tree); + break; + + case FMS_MSG_INITIATE_DOWNLOAD_SEQUENCE_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_download_seq, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_download_seq_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_init_download_sequence_req(tvb, + offset, length, pinfo, tree); + break; + + case FMS_MSG_INITIATE_DOWNLOAD_SEQUENCE_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_download_seq, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_download_seq_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_init_download_sequence_rsp(tvb, + offset, length, pinfo, tree); + break; + + case FMS_MSG_INITIATE_DOWNLOAD_SEQUENCE_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_download_seq, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_download_seq_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_init_download_sequence_err(tvb, + offset, length, pinfo, tree); + break; + + case FMS_MSG_DOWNLOAD_SEGMENT_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_download_seg, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_download_seg_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_download_segment_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_DOWNLOAD_SEGMENT_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_download_seg, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_download_seg_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_download_segment_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_DOWNLOAD_SEGMENT_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_download_seg, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_download_seg_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_download_segment_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_TERMINATE_DOWNLOAD_SEQUENCE_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_terminate_download_seq, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_terminate_download_seq_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_terminate_download_sequence_req(tvb, + offset, length, pinfo, tree); + break; + + case FMS_MSG_TERMINATE_DOWNLOAD_SEQUENCE_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_terminate_download_seq, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_terminate_download_seq_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_terminate_download_sequence_rsp(tvb, + offset, length, pinfo, tree); + break; + + case FMS_MSG_TERMINATE_DOWNLOAD_SEQUENCE_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_terminate_download_seq, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_terminate_download_seq_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_terminate_download_sequence_err(tvb, + offset, length, pinfo, tree); + break; + + case FMS_MSG_INITIATE_UPLOAD_SEQUENCE_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_upload_seq, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_upload_seq_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_init_upload_seq_req(tvb, + offset, length, pinfo, tree); + break; + + case FMS_MSG_INITIATE_UPLOAD_SEQUENCE_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_upload_seq, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_upload_seq_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_init_upload_seq_rsp(tvb, + offset, length, pinfo, tree); + break; + + case FMS_MSG_INITIATE_UPLOAD_SEQUENCE_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_upload_seq, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_init_upload_seq_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_init_upload_seq_err(tvb, + offset, length, pinfo, tree); + break; + + case FMS_MSG_UPLOAD_SEGMENT_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_upload_seg, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_upload_seg_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_upload_segment_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_UPLOAD_SEGMENT_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_upload_seg, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_upload_seg_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_upload_segment_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_UPLOAD_SEGMENT_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_upload_seg, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_upload_seg_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_upload_segment_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_TERMINATE_UPLOAD_SEQUENCE_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_terminate_upload_seq, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_terminate_upload_seq_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_terminate_upload_seq_req(tvb, + offset, length, pinfo, tree); + break; + + case FMS_MSG_TERMINATE_UPLOAD_SEQUENCE_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_terminate_upload_seq, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_terminate_upload_seq_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_terminate_upload_seq_rsp(tvb, + offset, length, pinfo, tree); + break; + + case FMS_MSG_TERMINATE_UPLOAD_SEQUENCE_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_terminate_upload_seq, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_terminate_upload_seq_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_terminate_upload_seq_err(tvb, + offset, length, pinfo, tree); + break; + + case FMS_MSG_REQUEST_DOMAIN_DOWNLOAD_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_req_dom_download, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_req_dom_download_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_req_dom_download_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_REQUEST_DOMAIN_DOWNLOAD_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_req_dom_download, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_req_dom_download_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_req_dom_download_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_REQUEST_DOMAIN_DOWNLOAD_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_req_dom_download, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_req_dom_download_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_req_dom_download_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_REQUEST_DOMAIN_UPLOAD_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_req_dom_upload, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_req_dom_upload_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_req_dom_upload_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_REQUEST_DOMAIN_UPLOAD_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_req_dom_upload, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_req_dom_upload_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_req_dom_upload_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_REQUEST_DOMAIN_UPLOAD_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_req_dom_upload, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_req_dom_upload_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_req_dom_upload_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_CREATE_PI_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_create_pi, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_create_pi_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_create_pi_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_CREATE_PI_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_create_pi, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_create_pi_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_create_pi_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_CREATE_PI_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_create_pi, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_create_pi_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_create_pi_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_DELETE_PI_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_del_pi, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_del_pi_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_del_pi_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_DELETE_PI_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_del_pi, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_del_pi_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_del_pi_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_DELETE_PI_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_del_pi, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_del_pi_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_del_pi_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_START_PI_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_start, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_start_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_start_pi_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_START_PI_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_start, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_start_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_start_pi_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_START_PI_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_start, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_start_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_start_pi_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_STOP_PI_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_stop, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_stop_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_stop_pi_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_STOP_PI_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_stop, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_stop_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_stop_pi_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_STOP_PI_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_stop, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_stop_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_stop_pi_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_RESUME_PI_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_resume, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_resume_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_resume_pi_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_RESUME_PI_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_resume, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_resume_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_resume_pi_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_RESUME_PI_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_resume, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_resume_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_resume_pi_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_RESET_PI_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_reset, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_reset_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_reset_pi_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_RESET_PI_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_reset, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_reset_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_reset_pi_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_RESET_PI_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_reset, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_reset_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_reset_pi_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_KILL_PI_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_kill, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_kill_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_kill_pi_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_KILL_PI_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_kill, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_kill_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_kill_pi_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_KILL_PI_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_kill, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_kill_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_kill_pi_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_READ_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_read, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_read_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_read_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_READ_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_read, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_read_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_read_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_READ_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_read, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_read_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_read_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_READ_SUBINDEX_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_read_with_subidx, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_read_with_subidx_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_read_subindex_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_READ_SUBINDEX_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_read_with_subidx, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_read_with_subidx_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_read_subindex_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_READ_SUBINDEX_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_read_with_subidx, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_read_with_subidx_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_read_subindex_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_WRITE_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_write, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_write_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_write_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_WRITE_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_write, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_write_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_write_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_WRITE_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_write, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_write_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_write_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_WRITE_SUBINDEX_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_write_with_subidx, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_write_with_subidx_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_write_subindex_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_WRITE_SUBINDEX_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_write_with_subidx, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_write_with_subidx_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_write_subindex_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_WRITE_SUBINDEX_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_write_with_subidx, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_write_with_subidx_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_write_subindex_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_DEFINE_VARIABLE_LIST_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_def_variable_list, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_def_variable_list_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_def_variable_list_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_DEFINE_VARIABLE_LIST_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_def_variable_list, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_def_variable_list_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_def_variable_list_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_DEFINE_VARIABLE_LIST_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_def_variable_list, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_def_variable_list_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_def_variable_list_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_DELETE_VARIABLE_LIST_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_del_variable_list, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_del_variable_list_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_del_variable_list_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_DELETE_VARIABLE_LIST_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_del_variable_list, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_del_variable_list_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_del_variable_list_rsp(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_DELETE_VARIABLE_LIST_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_del_variable_list, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_del_variable_list_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_del_variable_list_err(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_INFO_REPORT_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_info_report, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_info_report_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_info_report_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_INFO_REPORT_SUBINDEX_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_info_report_with_subidx, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_info_report_with_subidx_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_info_report_subindex_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_INFO_REPORT_CHANGE_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_info_report_on_change, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_info_report_on_change_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_info_report_change_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_INFO_REPORT_CHANGE_SUBINDEX_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_info_report_on_change_with_subidx, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_info_report_on_change_with_subidx_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_info_report_change_subindex_req(tvb, + offset, length, pinfo, tree); + break; + + case FMS_MSG_EVENT_NOTIFICATION_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_ev_notification, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_ev_notification_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_ev_notification_req(tvb, offset, + length, pinfo, tree); + break; + + case FMS_MSG_ALTER_EVENT_CONDITION_MONITORING_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_alter_ev_condition_monitoring, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_alter_ev_condition_monitoring_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_req( + tvb, offset, length, pinfo, tree); + break; + + case FMS_MSG_ALTER_EVENT_CONDITION_MONITORING_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_alter_ev_condition_monitoring, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_alter_ev_condition_monitoring_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_rsp( + tvb, offset, length, pinfo, tree); + break; + + case FMS_MSG_ALTER_EVENT_CONDITION_MONITORING_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_alter_ev_condition_monitoring, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_alter_ev_condition_monitoring_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_alter_alter_ev_condition_monitoring_err( + tvb, offset, length, pinfo, tree); + break; + + case FMS_MSG_ACKNOWLEDGE_EVENT_NOTIFICATION_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_ack_ev_notification, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_ack_ev_notification_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_ack_ev_notification_req(tvb, + offset, length, pinfo, tree); + break; + + case FMS_MSG_ACKNOWLEDGE_EVENT_NOTIFICATION_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_ack_ev_notification, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_ack_ev_notification_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_ack_ev_notification_rsp(tvb, + offset, length, pinfo, tree); + break; + + case FMS_MSG_ACKNOWLEDGE_EVENT_NOTIFICATION_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_ack_ev_notification, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_fms_ack_ev_notification_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_fms_ack_ev_notification_err(tvb, + offset, length, pinfo, tree); + break; + + case LAN_MSG_GET_INFO_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_get_info, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_get_info_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_lr_get_info_req(tvb, + offset, length, pinfo, tree); + break; + + case LAN_MSG_GET_INFO_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_get_info, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_get_info_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_lr_get_info_rsp(tvb, + offset, length, pinfo, tree); + break; + + case LAN_MSG_GET_INFO_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_get_info, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_get_info_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_lr_get_info_err(tvb, + offset, length, pinfo, tree); + break; + + case LAN_MSG_PUT_INFO_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_put_info, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_put_info_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_lr_put_info_req(tvb, + offset, length, pinfo, tree); + break; + + case LAN_MSG_PUT_INFO_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_put_info, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_put_info_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_lr_put_info_rsp(tvb, + offset, length, pinfo, tree); + break; + + case LAN_MSG_PUT_INFO_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_put_info, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_put_info_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_lr_put_info_err(tvb, + offset, length, pinfo, tree); + break; + + case LAN_MSG_GET_STATISTICS_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_get_statistics, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_get_statistics_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_lr_get_statistics_req(tvb, + offset, length, pinfo, tree); + break; + + case LAN_MSG_GET_STATISTICS_RSP: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_get_statistics, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_get_statistics_rsp, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_lr_get_statistics_rsp(tvb, + offset, length, pinfo, tree); + break; + + case LAN_MSG_GET_STATISTICS_ERR: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_get_statistics, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_get_statistics_err, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_lr_get_statistics_err(tvb, + offset, length, pinfo, tree); + break; + + case LAN_MSG_DIAG_REQ: + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_diagnostic_msg, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + hidden_item = proto_tree_add_boolean(tree, + hf_ff_lr_diagnostic_msg_req, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + dissect_ff_msg_diagnostic_msg_req(tvb, + offset, length, pinfo, tree); + break; + + default: + if (check_col(pinfo->cinfo, COL_INFO)) { + col_add_fstr(pinfo->cinfo, COL_INFO, + "Unknown Service (Protocol Id: %u, Confirmed Msg Type: %u) " + "(%s Service Id = %u)", + (ProtocolAndType & PROTOCOL_MASK) >> 2, + ProtocolAndType & TYPE_MASK, + (Service & SERVICE_CONFIRMED_FLAG_MASK)? + "Confirmed": "Unconfirmed", + Service & SERVICE_SERVICE_ID_MASK); + } + + if (length) { + proto_tree_add_text(tree, tvb, offset, length, + "[Unknown Service] (%u bytes)", length); + } + } + + return; } @@ -12359,55 +11685,51 @@ dissect_ff_msg_body(tvbuff_t *tvb, gint offset, guint32 length, /* * 6.4. Message Trailer */ -static int +static void dissect_ff_msg_trailer(tvbuff_t *tvb, - gint offset, guint32 length, proto_tree *tree, guint8 Options) + gint offset, guint32 length, proto_tree *tree, guint8 Options) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - proto_item *hidden_item; - - if(!tree) { - return 0; - } - - hidden_item = proto_tree_add_boolean(tree, hf_ff_fda_msg_trailer, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - ti = proto_tree_add_text(tree, - tvb, offset, length, "FDA Message Trailer"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fda_msg_trailer); - - if(!sub_tree) { - return 0; - } - - if(Options & OPTION_MESSAGE_NUMBER_MASK) { - proto_tree_add_item(sub_tree, - hf_ff_fda_msg_trailer_msg_num, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - } - - if(Options & OPTION_INVOKE_ID_MASK) { - proto_tree_add_item(sub_tree, - hf_ff_fda_msg_trailer_invoke_id, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - } - - if(Options & OPTION_TIME_STAMP_MASK) { - proto_tree_add_item(sub_tree, - hf_ff_fda_msg_trailer_time_stamp, tvb, offset, 8, ENC_BIG_ENDIAN); - offset += 8; - } - - if(Options & OPTION_EXTENDED_CNTRL_MASK) { - proto_tree_add_item(sub_tree, - hf_ff_fda_msg_trailer_extended_control_field, - tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - } - - return offset; + proto_tree *sub_tree; + proto_item *ti; + proto_item *hidden_item; + + if (!tree) { + return; + } + + hidden_item = proto_tree_add_boolean(tree, hf_ff_fda_msg_trailer, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + ti = proto_tree_add_text(tree, + tvb, offset, length, "FDA Message Trailer"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fda_msg_trailer); + + if (Options & OPTION_MESSAGE_NUMBER_MASK) { + proto_tree_add_item(sub_tree, + hf_ff_fda_msg_trailer_msg_num, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + } + + if (Options & OPTION_INVOKE_ID_MASK) { + proto_tree_add_item(sub_tree, + hf_ff_fda_msg_trailer_invoke_id, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + } + + if (Options & OPTION_TIME_STAMP_MASK) { + proto_tree_add_item(sub_tree, + hf_ff_fda_msg_trailer_time_stamp, tvb, offset, 8, ENC_BIG_ENDIAN); + offset += 8; + } + + if (Options & OPTION_EXTENDED_CNTRL_MASK) { + proto_tree_add_item(sub_tree, + hf_ff_fda_msg_trailer_extended_control_field, + tvb, offset, 4, ENC_BIG_ENDIAN); + /* offset += 4; */ + } + + return; } @@ -12418,68 +11740,64 @@ dissect_ff_msg_trailer(tvbuff_t *tvb, static void dissect_ff_msg_hdr_srv(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint8 proto_and_type, guint8 service) + gint offset, proto_tree *tree, guint8 proto_and_type, guint8 service) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, 1, "Service: 0x%02x", service); - sub_tree = proto_item_add_subtree(ti, ett_ff_fda_msg_hdr_srv); - - if(!sub_tree) { - return; - } - - /* Bit 8: Confirmed Flag */ - proto_tree_add_item(sub_tree, hf_ff_hdr_srv_confirm_flag, tvb, offset, 1, ENC_BIG_ENDIAN); - - /* Bits 1-7 Service Id of the service */ - switch(proto_and_type & PROTOCOL_MASK) { - case PROTOCOL_FDA: - if(service & SERVICE_CONFIRMED_FLAG_MASK) { - proto_tree_add_item(sub_tree, hf_ff_hdr_srv_fda_service_id_confirm, tvb, offset, 1, ENC_BIG_ENDIAN); - } else { - proto_tree_add_item(sub_tree, hf_ff_hdr_srv_fda_service_id_unconfirm, tvb, offset, 1, ENC_BIG_ENDIAN); - } - - break; - - case PROTOCOL_SM: - if(service & SERVICE_CONFIRMED_FLAG_MASK) { - proto_tree_add_item(sub_tree, hf_ff_hdr_srv_sm_service_id_confirm, tvb, offset, 1, ENC_BIG_ENDIAN); - } else { - proto_tree_add_item(sub_tree, hf_ff_hdr_srv_sm_service_id_unconfirm, tvb, offset, 1, ENC_BIG_ENDIAN); - } - - break; - - case PROTOCOL_FMS: - if(service & SERVICE_CONFIRMED_FLAG_MASK) { - proto_tree_add_item(sub_tree, hf_ff_hdr_srv_fms_service_id_confirm, tvb, offset, 1, ENC_BIG_ENDIAN); - } else { - proto_tree_add_item(sub_tree, hf_ff_hdr_srv_fms_service_id_unconfirm, tvb, offset, 1, ENC_BIG_ENDIAN); - } - - break; - - case PROTOCOL_LAN: - if(service & SERVICE_CONFIRMED_FLAG_MASK) { - proto_tree_add_item(sub_tree, hf_ff_hdr_srv_lan_service_id_confirm, tvb, offset, 1, ENC_BIG_ENDIAN); - } else { - proto_tree_add_item(sub_tree, hf_ff_hdr_srv_lan_service_id_unconfirm, tvb, offset, 1, ENC_BIG_ENDIAN); - } - - break; - - default: - proto_tree_add_item(sub_tree, hf_ff_hdr_srv_service_id, tvb, offset, 1, ENC_BIG_ENDIAN); - } - - return; + proto_tree *sub_tree; + proto_item *ti; + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, 1, "Service: 0x%02x", service); + sub_tree = proto_item_add_subtree(ti, ett_ff_fda_msg_hdr_srv); + + /* Bit 8: Confirmed Flag */ + proto_tree_add_item(sub_tree, hf_ff_hdr_srv_confirm_flag, tvb, offset, 1, ENC_BIG_ENDIAN); + + /* Bits 1-7 Service Id of the service */ + switch (proto_and_type & PROTOCOL_MASK) { + case PROTOCOL_FDA: + if (service & SERVICE_CONFIRMED_FLAG_MASK) { + proto_tree_add_item(sub_tree, hf_ff_hdr_srv_fda_service_id_confirm, tvb, offset, 1, ENC_BIG_ENDIAN); + } else { + proto_tree_add_item(sub_tree, hf_ff_hdr_srv_fda_service_id_unconfirm, tvb, offset, 1, ENC_BIG_ENDIAN); + } + + break; + + case PROTOCOL_SM: + if (service & SERVICE_CONFIRMED_FLAG_MASK) { + proto_tree_add_item(sub_tree, hf_ff_hdr_srv_sm_service_id_confirm, tvb, offset, 1, ENC_BIG_ENDIAN); + } else { + proto_tree_add_item(sub_tree, hf_ff_hdr_srv_sm_service_id_unconfirm, tvb, offset, 1, ENC_BIG_ENDIAN); + } + + break; + + case PROTOCOL_FMS: + if (service & SERVICE_CONFIRMED_FLAG_MASK) { + proto_tree_add_item(sub_tree, hf_ff_hdr_srv_fms_service_id_confirm, tvb, offset, 1, ENC_BIG_ENDIAN); + } else { + proto_tree_add_item(sub_tree, hf_ff_hdr_srv_fms_service_id_unconfirm, tvb, offset, 1, ENC_BIG_ENDIAN); + } + + break; + + case PROTOCOL_LAN: + if (service & SERVICE_CONFIRMED_FLAG_MASK) { + proto_tree_add_item(sub_tree, hf_ff_hdr_srv_lan_service_id_confirm, tvb, offset, 1, ENC_BIG_ENDIAN); + } else { + proto_tree_add_item(sub_tree, hf_ff_hdr_srv_lan_service_id_unconfirm, tvb, offset, 1, ENC_BIG_ENDIAN); + } + + break; + + default: + proto_tree_add_item(sub_tree, hf_ff_hdr_srv_service_id, tvb, offset, 1, ENC_BIG_ENDIAN); + } + + return; } @@ -12490,26 +11808,26 @@ dissect_ff_msg_hdr_srv(tvbuff_t *tvb, static void dissect_ff_msg_hdr_proto_and_type(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint8 value) + gint offset, proto_tree *tree, guint8 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; + proto_tree *sub_tree; + proto_item *ti; - if(!tree) { - return; - } + if (!tree) { + return; + } - ti = proto_tree_add_text(tree, tvb, offset, 1, - "Protocol Id And Confirmed Msg Type: 0x%02x", value); - sub_tree = proto_item_add_subtree(ti, - ett_ff_fda_msg_hdr_proto_and_type); + ti = proto_tree_add_text(tree, tvb, offset, 1, + "Protocol Id And Confirmed Msg Type: 0x%02x", value); + sub_tree = proto_item_add_subtree(ti, + ett_ff_fda_msg_hdr_proto_and_type); - if(!sub_tree) { - return; - } + if (!sub_tree) { + return; + } - proto_tree_add_item(sub_tree, hf_ff_hdr_proto_id, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_hdr_confirm_msg_type, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_hdr_proto_id, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_hdr_confirm_msg_type, tvb, offset, 1, ENC_BIG_ENDIAN); } @@ -12520,28 +11838,24 @@ dissect_ff_msg_hdr_proto_and_type(tvbuff_t *tvb, static void dissect_ff_msg_hdr_opts(tvbuff_t *tvb, - gint offset, proto_tree *tree, guint8 value) + gint offset, proto_tree *tree, guint8 value) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - - if(!tree) { - return; - } - - ti = proto_tree_add_text(tree, tvb, offset, 1, "Options: 0x%02x", value); - sub_tree = proto_item_add_subtree(ti, ett_ff_fda_msg_hdr_opts); - - if(!sub_tree) { - return; - } - - proto_tree_add_item(sub_tree, hf_ff_hdr_opts_msg_num, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_hdr_opts_invoke_id, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_hdr_opts_timestamp, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_hdr_opts_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_hdr_opts_ext_ctrl, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_tree, hf_ff_hdr_opts_pad, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree *sub_tree; + proto_item *ti; + + if (!tree) { + return; + } + + ti = proto_tree_add_text(tree, tvb, offset, 1, "Options: 0x%02x", value); + sub_tree = proto_item_add_subtree(ti, ett_ff_fda_msg_hdr_opts); + + proto_tree_add_item(sub_tree, hf_ff_hdr_opts_msg_num, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_hdr_opts_invoke_id, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_hdr_opts_timestamp, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_hdr_opts_reserved, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_hdr_opts_ext_ctrl, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_tree, hf_ff_hdr_opts_pad, tvb, offset, 1, ENC_BIG_ENDIAN); } @@ -12549,60 +11863,56 @@ dissect_ff_msg_hdr_opts(tvbuff_t *tvb, /* * 6.3. Message Header */ -static int +static void dissect_ff_msg_hdr(tvbuff_t *tvb, - proto_tree *tree, guint8 Options, guint8 ProtocolAndType, guint8 Service) + proto_tree *tree, guint8 Options, guint8 ProtocolAndType, guint8 Service) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - proto_item *hidden_item; - gint offset = 0; - - if(!tree) { - return 0; - } - - hidden_item = proto_tree_add_boolean(tree, hf_ff_fda_msg_hdr, tvb, 0, 0, 1); - PROTO_ITEM_SET_HIDDEN(hidden_item); - - ti = proto_tree_add_text(tree, - tvb, offset, 12, "FDA Message Header"); - sub_tree = proto_item_add_subtree(ti, ett_ff_fda_msg_hdr); - - if(!sub_tree) { - return 0; - } - - /* FDA Message Version */ - proto_tree_add_item(sub_tree, - hf_ff_fda_msg_hdr_ver, tvb, offset, 1, ENC_BIG_ENDIAN); - offset += 1; - - /* Options */ - dissect_ff_msg_hdr_opts(tvb, offset, sub_tree, Options); - offset += 1; - - /* Protocol Id And Confirmed Msg Type */ - dissect_ff_msg_hdr_proto_and_type(tvb, - offset, sub_tree, ProtocolAndType); - offset += 1; - - /* Service */ - dissect_ff_msg_hdr_srv(tvb, - offset, sub_tree, ProtocolAndType, Service); - offset += 1; - - /* FDA Address */ - proto_tree_add_item(sub_tree, - hf_ff_fda_msg_hdr_fda_addr, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - - /* Message Length */ - proto_tree_add_item(sub_tree, - hf_ff_fda_msg_hdr_len, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - - return offset; + proto_tree *sub_tree; + proto_item *ti; + proto_item *hidden_item; + gint offset = 0; + + if (!tree) { + return; + } + + hidden_item = proto_tree_add_boolean(tree, hf_ff_fda_msg_hdr, tvb, 0, 0, 1); + PROTO_ITEM_SET_HIDDEN(hidden_item); + + ti = proto_tree_add_text(tree, + tvb, offset, 12, "FDA Message Header"); + sub_tree = proto_item_add_subtree(ti, ett_ff_fda_msg_hdr); + + /* FDA Message Version */ + proto_tree_add_item(sub_tree, + hf_ff_fda_msg_hdr_ver, tvb, offset, 1, ENC_BIG_ENDIAN); + offset += 1; + + /* Options */ + dissect_ff_msg_hdr_opts(tvb, offset, sub_tree, Options); + offset += 1; + + /* Protocol Id And Confirmed Msg Type */ + dissect_ff_msg_hdr_proto_and_type(tvb, + offset, sub_tree, ProtocolAndType); + offset += 1; + + /* Service */ + dissect_ff_msg_hdr_srv(tvb, + offset, sub_tree, ProtocolAndType, Service); + offset += 1; + + /* FDA Address */ + proto_tree_add_item(sub_tree, + hf_ff_fda_msg_hdr_fda_addr, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + + /* Message Length */ + proto_tree_add_item(sub_tree, + hf_ff_fda_msg_hdr_len, tvb, offset, 4, ENC_BIG_ENDIAN); + /* offset += 4; */ + + return; } @@ -12610,73 +11920,73 @@ dissect_ff_msg_hdr(tvbuff_t *tvb, static void dissect_ff(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - proto_tree *sub_tree = NULL; - proto_item *ti = NULL; - gint offset = 0; - - guint8 Options = 0; /* Options */ - guint8 ProtocolAndType = 0; /* Protocol Id And Confirmed Msg Type */ - guint8 Service = 0; /* Service */ - guint32 FDAAddress = 0; /* FDA Address */ - guint32 length = 0; /* Message Length */ - - guint32 trailer_len = 0; - - col_set_str(pinfo->cinfo, COL_PROTOCOL, "FF"); - - Options = tvb_get_guint8(tvb, 1); - ProtocolAndType = tvb_get_guint8(tvb, 2); - Service = tvb_get_guint8(tvb, 3); - FDAAddress = tvb_get_ntohl(tvb, 4); - length = tvb_get_ntohl(tvb, 8); - - if(tree) { - ti = proto_tree_add_item(tree, proto_ff, tvb, offset, length, ENC_NA); - sub_tree = proto_item_add_subtree(ti, ett_ff); - } - - if(Options & OPTION_MESSAGE_NUMBER_MASK) { - length -= 4; - trailer_len += 4; - } - - if(Options & OPTION_INVOKE_ID_MASK) { - length -= 4; - trailer_len += 4; - } - - if(Options & OPTION_TIME_STAMP_MASK) { - length -= 8; - trailer_len += 8; - } - - if(Options & OPTION_EXTENDED_CNTRL_MASK) { - length -= 4; - trailer_len += 4; - } - - /* - * Header - */ - dissect_ff_msg_hdr(tvb, sub_tree, Options, ProtocolAndType, Service); - offset += 12; - length -= 12; - - /* - * Service-Specific Parameters + User Data (optional) - */ - dissect_ff_msg_body(tvb, offset, length, pinfo, sub_tree, - ProtocolAndType, Service, FDAAddress); - offset += length; - - /* - * Trailer (optional) - */ - if(trailer_len) { - dissect_ff_msg_trailer(tvb, - offset, trailer_len, sub_tree, Options); - /*offset += trailer_len;*/ - } + proto_tree *sub_tree = NULL; + proto_item *ti = NULL; + gint offset = 0; + + guint8 Options = 0; /* Options */ + guint8 ProtocolAndType = 0; /* Protocol Id And Confirmed Msg Type */ + guint8 Service = 0; /* Service */ + guint32 FDAAddress = 0; /* FDA Address */ + guint32 length = 0; /* Message Length */ + + guint32 trailer_len = 0; + + col_set_str(pinfo->cinfo, COL_PROTOCOL, "FF"); + + Options = tvb_get_guint8(tvb, 1); + ProtocolAndType = tvb_get_guint8(tvb, 2); + Service = tvb_get_guint8(tvb, 3); + FDAAddress = tvb_get_ntohl(tvb, 4); + length = tvb_get_ntohl(tvb, 8); + + if (tree) { + ti = proto_tree_add_item(tree, proto_ff, tvb, offset, length, ENC_NA); + sub_tree = proto_item_add_subtree(ti, ett_ff); + } + + if (Options & OPTION_MESSAGE_NUMBER_MASK) { + length -= 4; + trailer_len += 4; + } + + if (Options & OPTION_INVOKE_ID_MASK) { + length -= 4; + trailer_len += 4; + } + + if (Options & OPTION_TIME_STAMP_MASK) { + length -= 8; + trailer_len += 8; + } + + if (Options & OPTION_EXTENDED_CNTRL_MASK) { + length -= 4; + trailer_len += 4; + } + + /* + * Header + */ + dissect_ff_msg_hdr(tvb, sub_tree, Options, ProtocolAndType, Service); + offset += 12; + length -= 12; + + /* + * Service-Specific Parameters + User Data (optional) + */ + dissect_ff_msg_body(tvb, offset, length, pinfo, sub_tree, + ProtocolAndType, Service, FDAAddress); + offset += length; + + /* + * Trailer (optional) + */ + if (trailer_len) { + dissect_ff_msg_trailer(tvb, + offset, trailer_len, sub_tree, Options); + /*offset += trailer_len;*/ + } } @@ -12684,7 +11994,7 @@ dissect_ff(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) static guint get_ff_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset) { - return(tvb_get_ntohl(tvb, offset + 8)); + return (tvb_get_ntohl(tvb, offset + 8)); } @@ -12708,18 +12018,10 @@ dissect_ff_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _ * */ - /* Make sure we at least have the header */ - if (!tvb_bytes_exist(tvb, 0, 12)) - return 0; - - /* Make sure the Message Length at least includes the header size */ - if (tvb_get_ntohl(tvb, 8) < 12) - return 0; - - tcp_dissect_pdus(tvb, pinfo, tree, ff_desegment, - 12, get_ff_pdu_len, dissect_ff); + tcp_dissect_pdus(tvb, pinfo, tree, ff_desegment, + 12, get_ff_pdu_len, dissect_ff); - return tvb_length(tvb); + return tvb_reported_length(tvb); } @@ -12727,21 +12029,21 @@ dissect_ff_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _ static int dissect_ff_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) { - guint32 length; + guint32 length; - /* Make sure at least the header is there */ - if ((guint32)tvb_reported_length(tvb) < 12) - return 0; + /* Make sure at least the header is there */ + if (tvb_length(tvb) < 12) + return 0; - length = tvb_get_ntohl(tvb, 8); + length = tvb_get_ntohl(tvb, 8); - /* Make sure the length field is valid */ - if ((length > (guint32)tvb_reported_length_remaining(tvb, 0)) || - (length < 12)) - return 0; + /* Make sure the length field is valid */ + if ((length > tvb_reported_length(tvb)) || + (length < 12)) + return 0; - dissect_ff(tvb, pinfo, tree); - return tvb_length(tvb); + dissect_ff(tvb, pinfo, tree); + return tvb_reported_length(tvb); } @@ -12749,4044 +12051,4039 @@ dissect_ff_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _ void proto_register_ff(void) { - static hf_register_info hf[] = { - /* - * 6.3. Message Header - */ - { &hf_ff_fda_msg_hdr, - { "Message Header", "ff.hdr", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + static hf_register_info hf[] = { + /* + * 6.3. Message Header + */ + { &hf_ff_fda_msg_hdr, + { "Message Header", "ff.hdr", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_fda_msg_hdr_ver, + { "FDA Message Version", "ff.hdr.ver", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_fda_msg_hdr_fda_addr, + { "FDA Address", "ff.hdr.fda_addr", + FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_fda_msg_hdr_len, + { "Message Length", "ff.hdr.len", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + - { &hf_ff_fda_msg_hdr_ver, - { "FDA Message Version", "ff.hdr.ver", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.4. Message Trailer + */ + { &hf_ff_fda_msg_trailer, + { "Message Trailer", "ff.trailer", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_msg_hdr_fda_addr, - { "FDA Address", "ff.hdr.fda_addr", - FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_msg_trailer_msg_num, + { "Message Number", "ff.trailer.msg_num", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_msg_hdr_len, - { "Message Length", "ff.hdr.len", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_msg_trailer_invoke_id, + { "Invoke Id", "ff.trailer.invoke_id", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_msg_trailer_time_stamp, + { "Time Stamp", "ff.trailer.time_stamp", + FT_UINT64, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_msg_trailer_extended_control_field, + { "Extended Control Field", "ff.trailer.extended_control_field", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.4. Message Trailer - */ - { &hf_ff_fda_msg_trailer, - { "Message Trailer", "ff.trailer", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_msg_trailer_msg_num, - { "Message Number", "ff.trailer.msg_num", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_msg_trailer_invoke_id, - { "Invoke Id", "ff.trailer.invoke_id", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.1. FDA Session Management Services + */ + { &hf_ff_fda, + { "FDA Session Management Service", "ff.fda", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_msg_trailer_time_stamp, - { "Time Stamp", "ff.trailer.time_stamp", - FT_UINT64, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_hdr_srv_confirm_flag, + { "Confirmed Flag", "ff.hdr_srv.confirm_flag", + FT_BOOLEAN, 8, TFS(&tfs_confirmed_unconfirmed), SERVICE_CONFIRMED_FLAG_MASK, NULL, HFILL } }, - { &hf_ff_fda_msg_trailer_extended_control_field, - { "Extended Control Field", "ff.trailer.extended_control_field", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_hdr_srv_service_id, + { "Service Id (Unknown)", "ff.hdr_srv.service_id", + FT_UINT8, BASE_DEC, NULL, SERVICE_SERVICE_ID_MASK, NULL, HFILL } }, + { &hf_ff_hdr_srv_fda_service_id_confirm, + { "Service Id", "ff.hdr_srv.fda.service_id.confirm", + FT_UINT8, BASE_DEC, VALS(names_fda_confirmed), SERVICE_SERVICE_ID_MASK, NULL, HFILL } }, + { &hf_ff_hdr_srv_fda_service_id_unconfirm, + { "Service Id", "ff.hdr_srv.fda.service_id.unconfirm", + FT_UINT8, BASE_DEC, VALS(names_fda_unconfirmed), SERVICE_SERVICE_ID_MASK, NULL, HFILL } }, - /* - * 6.5.1. FDA Session Management Services - */ - { &hf_ff_fda, - { "FDA Session Management Service", "ff.fda", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_hdr_srv_sm_service_id_confirm, + { "Service Id", "ff.hdr_srv.sm.service_id.confirm", + FT_UINT8, BASE_DEC, VALS(names_sm_confirmed), SERVICE_SERVICE_ID_MASK, NULL, HFILL } }, - { &hf_ff_hdr_srv_confirm_flag, - { "Confirmed Flag", "ff.hdr_srv.confirm_flag", - FT_BOOLEAN, 8, TFS(&tfs_confirmed_unconfirmed), SERVICE_CONFIRMED_FLAG_MASK, NULL, HFILL } }, + { &hf_ff_hdr_srv_sm_service_id_unconfirm, + { "Service Id", "ff.hdr_srv.sm.service_id.unconfirm", + FT_UINT8, BASE_DEC, VALS(names_sm_unconfirmed), SERVICE_SERVICE_ID_MASK, NULL, HFILL } }, - { &hf_ff_hdr_srv_service_id, - { "Service Id (Unknown)", "ff.hdr_srv.service_id", - FT_UINT8, BASE_DEC, NULL, SERVICE_SERVICE_ID_MASK, NULL, HFILL } }, + { &hf_ff_hdr_srv_fms_service_id_confirm, + { "Service Id", "ff.hdr_srv.fms.service_id.confirm", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_fms_confirmed_ext, SERVICE_SERVICE_ID_MASK, NULL, HFILL } }, - { &hf_ff_hdr_srv_fda_service_id_confirm, - { "Service Id", "ff.hdr_srv.fda.service_id.confirm", - FT_UINT8, BASE_DEC, VALS(names_fda_confirmed), SERVICE_SERVICE_ID_MASK, NULL, HFILL } }, + { &hf_ff_hdr_srv_fms_service_id_unconfirm, + { "Service Id", "ff.hdr_srv.fms.service_id.unconfirm", + FT_UINT8, BASE_DEC, VALS(names_fms_unconfirmed), SERVICE_SERVICE_ID_MASK, NULL, HFILL } }, - { &hf_ff_hdr_srv_fda_service_id_unconfirm, - { "Service Id", "ff.hdr_srv.fda.service_id.unconfirm", - FT_UINT8, BASE_DEC, VALS(names_fda_unconfirmed), SERVICE_SERVICE_ID_MASK, NULL, HFILL } }, + { &hf_ff_hdr_srv_lan_service_id_confirm, + { "Service Id", "ff.hdr_srv.lan.service_id.confirm", + FT_UINT8, BASE_DEC, VALS(names_lan_confirmed), SERVICE_SERVICE_ID_MASK, NULL, HFILL } }, - { &hf_ff_hdr_srv_sm_service_id_confirm, - { "Service Id", "ff.hdr_srv.sm.service_id.confirm", - FT_UINT8, BASE_DEC, VALS(names_sm_confirmed), SERVICE_SERVICE_ID_MASK, NULL, HFILL } }, + { &hf_ff_hdr_srv_lan_service_id_unconfirm, + { "Service Id", "ff.hdr_srv.lan.service_id.unconfirm", + FT_UINT8, BASE_DEC, VALS(names_lan_unconfirmed), SERVICE_SERVICE_ID_MASK, NULL, HFILL } }, - { &hf_ff_hdr_srv_sm_service_id_unconfirm, - { "Service Id", "ff.hdr_srv.sm.service_id.unconfirm", - FT_UINT8, BASE_DEC, VALS(names_sm_unconfirmed), SERVICE_SERVICE_ID_MASK, NULL, HFILL } }, + { &hf_ff_hdr_proto_id, + { "Service Id", "ff.hdr.proto_id", + FT_UINT8, BASE_DEC, VALS(names_proto), PROTOCOL_MASK, NULL, HFILL } }, - { &hf_ff_hdr_srv_fms_service_id_confirm, - { "Service Id", "ff.hdr_srv.fms.service_id.confirm", - FT_UINT8, BASE_DEC, VALS(names_fms_confirmed), SERVICE_SERVICE_ID_MASK, NULL, HFILL } }, + { &hf_ff_hdr_confirm_msg_type, + { "Service Id", "ff.hdr.confirm_msg_type", + FT_UINT8, BASE_DEC, VALS(names_type), TYPE_MASK, NULL, HFILL } }, - { &hf_ff_hdr_srv_fms_service_id_unconfirm, - { "Service Id", "ff.hdr_srv.fms.service_id.unconfirm", - FT_UINT8, BASE_DEC, VALS(names_fms_unconfirmed), SERVICE_SERVICE_ID_MASK, NULL, HFILL } }, + { &hf_ff_hdr_opts_msg_num, + { "Message Number in the Trailer", "ff.hdr.opts.msg_num", + FT_BOOLEAN, 8, TFS(&tfs_present_not_present), OPTION_MESSAGE_NUMBER_MASK, NULL, HFILL } }, - { &hf_ff_hdr_srv_lan_service_id_confirm, - { "Service Id", "ff.hdr_srv.lan.service_id.confirm", - FT_UINT8, BASE_DEC, VALS(names_lan_confirmed), SERVICE_SERVICE_ID_MASK, NULL, HFILL } }, + { &hf_ff_hdr_opts_invoke_id, + { "Invoke Id in the Trailer", "ff.hdr.opts.invoke_id", + FT_BOOLEAN, 8, TFS(&tfs_present_not_present), OPTION_INVOKE_ID_MASK, NULL, HFILL } }, - { &hf_ff_hdr_srv_lan_service_id_unconfirm, - { "Service Id", "ff.hdr_srv.lan.service_id.unconfirm", - FT_UINT8, BASE_DEC, VALS(names_lan_unconfirmed), SERVICE_SERVICE_ID_MASK, NULL, HFILL } }, + { &hf_ff_hdr_opts_timestamp, + { "Time Stamp in the Trailer", "ff.hdr.opts.timestamp", + FT_BOOLEAN, 8, TFS(&tfs_present_not_present), OPTION_TIME_STAMP_MASK, NULL, HFILL } }, - { &hf_ff_hdr_proto_id, - { "Service Id", "ff.hdr.proto_id", - FT_UINT8, BASE_DEC, VALS(names_proto), PROTOCOL_MASK, NULL, HFILL } }, + { &hf_ff_hdr_opts_reserved, + { "Reserved", "ff.hdr.opts.reserved", + FT_UINT8, BASE_HEX, NULL, OPTION_RESERVED_MASK, NULL, HFILL } }, - { &hf_ff_hdr_confirm_msg_type, - { "Service Id", "ff.hdr.confirm_msg_type", - FT_UINT8, BASE_DEC, VALS(names_type), TYPE_MASK, NULL, HFILL } }, + { &hf_ff_hdr_opts_ext_ctrl, + { "Extended Control in the Trailer", "ff.hdr.opts.ext_ctrl", + FT_BOOLEAN, 8, TFS(&tfs_present_not_present), OPTION_EXTENDED_CNTRL_MASK, NULL, HFILL } }, - { &hf_ff_hdr_opts_msg_num, - { "Message Number in the Trailer", "ff.hdr.opts.msg_num", - FT_BOOLEAN, 8, TFS(&tfs_present_not_present), OPTION_MESSAGE_NUMBER_MASK, NULL, HFILL } }, + { &hf_ff_hdr_opts_pad, + { "Pad Length", "ff.hdr.opts.pad", + FT_UINT8, BASE_HEX, NULL, OPTION_PAD_LENGTH_MASK, NULL, HFILL } }, - { &hf_ff_hdr_opts_invoke_id, - { "Invoke Id in the Trailer", "ff.hdr.opts.invoke_id", - FT_BOOLEAN, 8, TFS(&tfs_present_not_present), OPTION_INVOKE_ID_MASK, NULL, HFILL } }, - { &hf_ff_hdr_opts_timestamp, - { "Time Stamp in the Trailer", "ff.hdr.opts.timestamp", - FT_BOOLEAN, 8, TFS(&tfs_present_not_present), OPTION_TIME_STAMP_MASK, NULL, HFILL } }, + /* + * 6.5.1.1. FDA Open Session (Confirmed Service Id = 1) + */ + { &hf_ff_fda_open_sess, + { "FDA Open Session", "ff.fda.open_sess", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_hdr_opts_reserved, - { "Reserved", "ff.hdr.opts.reserved", - FT_UINT8, BASE_HEX, NULL, OPTION_RESERVED_MASK, NULL, HFILL } }, - { &hf_ff_hdr_opts_ext_ctrl, - { "Extended Control in the Trailer", "ff.hdr.opts.ext_ctrl", - FT_BOOLEAN, 8, TFS(&tfs_present_not_present), OPTION_EXTENDED_CNTRL_MASK, NULL, HFILL } }, - { &hf_ff_hdr_opts_pad, - { "Pad Length", "ff.hdr.opts.pad", - FT_UINT8, BASE_HEX, NULL, OPTION_PAD_LENGTH_MASK, NULL, HFILL } }, + /* + * 6.5.1.1.1. Request Message Parameters + */ + { &hf_ff_fda_open_sess_req, + { "FDA Open Session Request", "ff.fda.open_sess.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_req_sess_idx, + { "Session Index", "ff.fda.open_sess.req.sess_idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.1.1. FDA Open Session (Confirmed Service Id = 1) - */ - { &hf_ff_fda_open_sess, - { "FDA Open Session", "ff.fda.open_sess", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_req_max_buf_siz, + { "Max Buffer Size", "ff.fda.open_sess.req.max_buf_siz", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_req_max_msg_len, + { "Max Message Length", "ff.fda.open_sess.req.max_msg_len", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_req_reserved, + { "Reserved", "ff.fda.open_sess.req.reserved", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.1.1.1. Request Message Parameters - */ - { &hf_ff_fda_open_sess_req, - { "FDA Open Session Request", "ff.fda.open_sess.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_req_nma_conf_use, + { "NMA Configuration Use", "ff.fda.open_sess.req.nma_conf_use", + FT_UINT8, BASE_DEC, VALS(names_nma_conf_use), 0x0, NULL, HFILL } }, - { &hf_ff_fda_open_sess_req_sess_idx, - { "Session Index", "ff.fda.open_sess.req.sess_idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_req_inactivity_close_time, + { "Inactivity Close Time", + "ff.fda.open_sess.req.inactivity_close_time", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_open_sess_req_max_buf_siz, - { "Max Buffer Size", "ff.fda.open_sess.req.max_buf_siz", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_req_transmit_delay_time, + { "Transmit Delay Time", "ff.fda.open_sess.req.transmit_delay_time", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_open_sess_req_max_msg_len, - { "Max Message Length", "ff.fda.open_sess.req.max_msg_len", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_req_pd_tag, + { "PD Tag", "ff.fda.open_sess.req.pd_tag", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_open_sess_req_reserved, - { "Reserved", "ff.fda.open_sess.req.reserved", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_open_sess_req_nma_conf_use, - { "NMA Configuration Use", "ff.fda.open_sess.req.nma_conf_use", - FT_UINT8, BASE_DEC, VALS(names_nma_conf_use), 0x0, - NULL, HFILL } }, - { &hf_ff_fda_open_sess_req_inactivity_close_time, - { "Inactivity Close Time", - "ff.fda.open_sess.req.inactivity_close_time", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.1.1.2. Response Message Parameters + */ + { &hf_ff_fda_open_sess_rsp, + { "FDA Open Session Response", "ff.fda.open_sess.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_open_sess_req_transmit_delay_time, - { "Transmit Delay Time", "ff.fda.open_sess.req.transmit_delay_time", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_rsp_sess_idx, + { "Session Index", "ff.fda.open_sess.rsp.sess_idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_open_sess_req_pd_tag, - { "PD Tag", "ff.fda.open_sess.req.pd_tag", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_rsp_max_buf_siz, + { "Max Buffer Size", "ff.fda.open_sess.rsp.max_buf_siz", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_rsp_max_msg_len, + { "Max Message Length", "ff.fda.open_sess.rsp.max_msg_len", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_rsp_reserved, + { "Reserved", "ff.fda.open_sess.rsp.reserved", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.1.1.2. Response Message Parameters - */ - { &hf_ff_fda_open_sess_rsp, - { "FDA Open Session Response", "ff.fda.open_sess.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_rsp_nma_conf_use, + { "NMA Configuration Use", "ff.fda.open_sess.rsp.nma_conf_use", + FT_UINT8, BASE_DEC, VALS(names_nma_conf_use), 0x0, NULL, HFILL } }, - { &hf_ff_fda_open_sess_rsp_sess_idx, - { "Session Index", "ff.fda.open_sess.rsp.sess_idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_rsp_inactivity_close_time, + { "Inactivity Close Time", + "ff.fda.open_sess.rsp.inactivity_close_time", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_open_sess_rsp_max_buf_siz, - { "Max Buffer Size", "ff.fda.open_sess.rsp.max_buf_siz", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_rsp_transmit_delay_time, + { "Transmit Delay Time", "ff.fda.open_sess.rsp.transmit_delay_time", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_open_sess_rsp_max_msg_len, - { "Max Message Length", "ff.fda.open_sess.rsp.max_msg_len", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_rsp_pd_tag, + { "PD Tag", "ff.fda.open_sess.rsp.pd_tag", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_open_sess_rsp_reserved, - { "Reserved", "ff.fda.open_sess.rsp.reserved", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_open_sess_rsp_nma_conf_use, - { "NMA Configuration Use", "ff.fda.open_sess.rsp.nma_conf_use", - FT_UINT8, BASE_DEC, VALS(names_nma_conf_use), 0x0, - NULL, HFILL } }, - { &hf_ff_fda_open_sess_rsp_inactivity_close_time, - { "Inactivity Close Time", - "ff.fda.open_sess.rsp.inactivity_close_time", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.1.1.3. Error Message Parameters + */ + { &hf_ff_fda_open_sess_err, + { "FDA Open Session Error", "ff.fda.open_sess.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_open_sess_rsp_transmit_delay_time, - { "Transmit Delay Time", "ff.fda.open_sess.rsp.transmit_delay_time", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_err_err_class, + { "Error Class", "ff.fda.open_sess.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, - { &hf_ff_fda_open_sess_rsp_pd_tag, - { "PD Tag", "ff.fda.open_sess.rsp.pd_tag", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_err_err_code, + { "Error Code", "ff.fda.open_sess.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_err_additional_code, + { "Additional Code", "ff.fda.open_sess.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_open_sess_err_additional_desc, + { "Additional Description", "ff.fda.open_sess.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.1.1.3. Error Message Parameters - */ - { &hf_ff_fda_open_sess_err, - { "FDA Open Session Error", "ff.fda.open_sess.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_open_sess_err_err_class, - { "Error Class", "ff.fda.open_sess.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, - { &hf_ff_fda_open_sess_err_err_code, - { "Error Code", "ff.fda.open_sess.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.1.2. FDA Idle (Confirmed Service Id = 3) + */ + { &hf_ff_fda_idle, + { "FDA Idle", "ff.fda.idle", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_open_sess_err_additional_code, - { "Additional Code", "ff.fda.open_sess.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_open_sess_err_additional_desc, - { "Additional Description", "ff.fda.open_sess.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.1.2.1. Request Message Parameters + */ + { &hf_ff_fda_idle_req, + { "FDA Idle Request", "ff.fda.idle.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.1.2. FDA Idle (Confirmed Service Id = 3) - */ - { &hf_ff_fda_idle, - { "FDA Idle", "ff.fda.idle", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.1.2.2. Response Message Parameters + */ + { &hf_ff_fda_idle_rsp, + { "FDA Idle Response", "ff.fda.idle.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.1.2.1. Request Message Parameters - */ - { &hf_ff_fda_idle_req, - { "FDA Idle Request", "ff.fda.idle.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.1.2.3. Error Message Parameters + */ + { &hf_ff_fda_idle_err, + { "FDA Idle Error", "ff.fda.idle.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_idle_err_err_class, + { "Error Class", "ff.fda.idle.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, - /* - * 6.5.1.2.2. Response Message Parameters - */ - { &hf_ff_fda_idle_rsp, - { "FDA Idle Response", "ff.fda.idle.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_idle_err_err_code, + { "Error Code", "ff.fda.idle.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_idle_err_additional_code, + { "Additional Code", "ff.fda.idle.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fda_idle_err_additional_desc, + { "Additional Description", "ff.fda.idle.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.1.2.3. Error Message Parameters - */ - { &hf_ff_fda_idle_err, - { "FDA Idle Error", "ff.fda.idle.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_idle_err_err_class, - { "Error Class", "ff.fda.idle.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, - { &hf_ff_fda_idle_err_err_code, - { "Error Code", "ff.fda.idle.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2. SM Services + */ + { &hf_ff_sm, + { "SM Service", "ff.sm", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_idle_err_additional_code, - { "Additional Code", "ff.fda.idle.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fda_idle_err_additional_desc, - { "Additional Description", "ff.fda.idle.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2.1. SM Find Tag Query (Unconfirmed Service Id = 1) + */ + { &hf_ff_sm_find_tag_query, + { "SM Find Tag Query", "ff.sm.find_tag_query", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.2. SM Services - */ - { &hf_ff_sm, - { "SM Service", "ff.sm", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2.1.1. Request Message Parameters + */ + { &hf_ff_sm_find_tag_query_req, + { "SM Find Tag Query Request", "ff.sm.find_tag_query.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_find_tag_query_req_query_type, + { "Query Type", "ff.sm.find_tag_query.req.query_type", + FT_UINT8, BASE_DEC, VALS(names_query_type), 0x0, NULL, HFILL } }, - /* - * 6.5.2.1. SM Find Tag Query (Unconfirmed Service Id = 1) - */ - { &hf_ff_sm_find_tag_query, - { "SM Find Tag Query", "ff.sm.find_tag_query", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_find_tag_query_req_idx, + { "Element Id or VFD Reference or Device Index", + "ff.sm.find_tag_query.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_find_tag_query_req_tag, + { "PD Tag or Function Block Tag", "ff.sm.find_tag_query.req.tag", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_find_tag_query_req_vfd_tag, + { "VFD Tag", "ff.sm.find_tag_query.req.vfd_tag", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.2.1.1. Request Message Parameters - */ - { &hf_ff_sm_find_tag_query_req, - { "SM Find Tag Query Request", "ff.sm.find_tag_query.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_find_tag_query_req_query_type, - { "Query Type", "ff.sm.find_tag_query.req.query_type", - FT_UINT8, BASE_DEC, VALS(names_query_type), 0x0, - NULL, HFILL } }, - { &hf_ff_sm_find_tag_query_req_idx, - { "Element Id or VFD Reference or Device Index", - "ff.sm.find_tag_query.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2.2. SM Find Tag Reply (Unconfirmed Service Id = 2) + */ + { &hf_ff_sm_find_tag_reply, + { "SM Find Tag Reply", "ff.sm.find_tag_reply", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_find_tag_query_req_tag, - { "PD Tag or Function Block Tag", "ff.sm.find_tag_query.req.tag", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_find_tag_query_req_vfd_tag, - { "VFD Tag", "ff.sm.find_tag_query.req.vfd_tag", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2.2.1. Request Message Parameters + */ + { &hf_ff_sm_find_tag_reply_req, + { "SM Find Tag Reply Request", "ff.sm.find_tag_reply.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_find_tag_reply_req_query_type, + { "Query Type", "ff.sm.find_tag_reply.req.query_type", + FT_UINT8, BASE_DEC, VALS(names_query_type), 0x0, NULL, HFILL } }, - /* - * 6.5.2.2. SM Find Tag Reply (Unconfirmed Service Id = 2) - */ - { &hf_ff_sm_find_tag_reply, - { "SM Find Tag Reply", "ff.sm.find_tag_reply", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_find_tag_reply_req_h1_node_addr, + { "Queried Object H1 Node Address", + "ff.sm.find_tag_reply.req.h1_node_addr", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_find_tag_reply_req_fda_addr_link_id, + { "Queried Object FDA Address Link Id", + "ff.sm.find_tag_reply.req.fda_addr_link_id", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_find_tag_reply_req_vfd_ref, + { "Queried Object VFD Reference", + "ff.sm.find_tag_reply.req.vfd_ref", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.2.2.1. Request Message Parameters - */ - { &hf_ff_sm_find_tag_reply_req, - { "SM Find Tag Reply Request", "ff.sm.find_tag_reply.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_find_tag_reply_req_od_idx, + { "Queried Object OD Index", "ff.sm.find_tag_reply.req.od_idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_find_tag_reply_req_query_type, - { "Query Type", "ff.sm.find_tag_reply.req.query_type", - FT_UINT8, BASE_DEC, VALS(names_query_type), 0x0, - NULL, HFILL } }, + { &hf_ff_sm_find_tag_reply_req_ip_addr, + { "Queried Object IP Address", "ff.sm.find_tag_reply.req.ip_addr", + FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_find_tag_reply_req_h1_node_addr, - { "Queried Object H1 Node Address", - "ff.sm.find_tag_reply.req.h1_node_addr", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_find_tag_reply_req_od_ver, + { "Queried Object OD Version", "ff.sm.find_tag_reply.req.od_ver", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_find_tag_reply_req_fda_addr_link_id, - { "Queried Object FDA Address Link Id", - "ff.sm.find_tag_reply.req.fda_addr_link_id", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_find_tag_reply_req_dev_id, + { "Queried Object Device ID", "ff.sm.find_tag_reply.req.dev_id", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_find_tag_reply_req_vfd_ref, - { "Queried Object VFD Reference", - "ff.sm.find_tag_reply.req.vfd_ref", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_find_tag_reply_req_pd_tag, + { "Queried Object PD Tag", "ff.sm.find_tag_reply.req.pd_tag", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_find_tag_reply_req_od_idx, - { "Queried Object OD Index", "ff.sm.find_tag_reply.req.od_idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_find_tag_reply_req_reserved, + { "Reserved", "ff.sm.find_tag_reply.req.reserved", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_find_tag_reply_req_ip_addr, - { "Queried Object IP Address", "ff.sm.find_tag_reply.req.ip_addr", - FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_find_tag_reply_req_num_of_fda_addr_selectors, + { "Number Of FDA Address Selectors", + "ff.sm.find_tag_reply.req.num_of_fda_addr_selectors", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_find_tag_reply_req_od_ver, - { "Queried Object OD Version", "ff.sm.find_tag_reply.req.od_ver", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_find_tag_reply_req_fda_addr_selector, + { "FDA Address Selector", + "ff.sm.find_tag_reply.req.fda_addr_selector.fda_addr_selector", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_find_tag_reply_req_dev_id, - { "Queried Object Device ID", "ff.sm.find_tag_reply.req.dev_id", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_find_tag_reply_dup_reserved, + { "Reserved", + "ff.sm.find_tag_reply.dup_reserved", + FT_UINT8, BASE_HEX, NULL, 0xFC, NULL, HFILL } }, + + { &hf_ff_sm_find_tag_reply_dup_pd_tag, + { "Duplicate PD Tag", + "ff.sm.find_tag_reply.dup_pd_tag", + FT_BOOLEAN, 8, TFS(&tfs_detected_not_detected), 0x02, NULL, HFILL } }, - { &hf_ff_sm_find_tag_reply_req_pd_tag, - { "Queried Object PD Tag", "ff.sm.find_tag_reply.req.pd_tag", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_find_tag_reply_dup_device, + { "Duplicate Device Index", + "ff.sm.find_tag_reply.dup_device", + FT_BOOLEAN, 8, TFS(&tfs_detected_not_detected), 0x01, NULL, HFILL } }, - { &hf_ff_sm_find_tag_reply_req_reserved, - { "Reserved", "ff.sm.find_tag_reply.req.reserved", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_find_tag_reply_req_num_of_fda_addr_selectors, - { "Number Of FDA Address Selectors", - "ff.sm.find_tag_reply.req.num_of_fda_addr_selectors", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_sm_find_tag_reply_req_fda_addr_selector, - { "FDA Address Selector", - "ff.sm.find_tag_reply.req.fda_addr_selector.fda_addr_selector", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2.7. SM Identify (Unconfirmed Service Id = 16) + */ + { &hf_ff_sm_id, + { "SM Identify", "ff.sm.id", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_find_tag_reply_dup_reserved, - { "Reserved", - "ff.sm.find_tag_reply.dup_reserved", - FT_UINT8, BASE_HEX, NULL, 0xFC, NULL, HFILL } }, - - { &hf_ff_sm_find_tag_reply_dup_pd_tag, - { "Duplicate PD Tag", - "ff.sm.find_tag_reply.dup_pd_tag", - FT_BOOLEAN, 8, TFS(&tfs_detected_not_detected), 0x02, NULL, HFILL } }, - { &hf_ff_sm_find_tag_reply_dup_device, - { "Duplicate Device Index", - "ff.sm.find_tag_reply.dup_device", - FT_BOOLEAN, 8, TFS(&tfs_detected_not_detected), 0x01, NULL, HFILL } }, + /* + * 6.5.2.3.1. Request Message Parameters + */ + { &hf_ff_sm_id_req, + { "SM Identify Request", "ff.sm.id.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + + + /* + * 6.5.2.3.2. Response Message Parameters + */ + { &hf_ff_sm_id_rsp, + { "SM Identify Response", "ff.sm.id.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_sm_id_rsp_dev_idx, + { "Device Index", "ff.sm.id.rsp.dev_idx", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_sm_id_rsp_max_dev_idx, + { "Max Device Index", "ff.sm.id.rsp.max_dev_idx", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_sm_id_rsp_operational_ip_addr, + { "Operational IP Address", "ff.sm.id.rsp.operational_ip_addr", + FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_sm_id_rsp_dev_id, + { "Device ID", "ff.sm.id.rsp.dev_id", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_sm_id_rsp_pd_tag, + { "PD Tag", "ff.sm.id.rsp.pd_tag", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_sm_id_rsp_hse_repeat_time, + { "HSE Repeat Time", "ff.sm.id.rsp.hse_repeat_time", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_id_rsp_lr_port, + { "LAN Redundancy Port", "ff.sm.id.rsp.lr_port", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_sm_id_rsp_reserved, + { "Reserved", "ff.sm.id.rsp.reserved", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_sm_id_rsp_annunc_ver_num, + { "Annunciation Version Number", "ff.sm.id.rsp.annunc_ver_num", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_sm_id_rsp_hse_dev_ver_num, + { "HSE Device Version Number", "ff.sm.id.rsp.hse_dev_ver_num", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_sm_id_rsp_num_of_entries, + { "Number of Entries in Version Number List", + "ff.sm.id.rsp.num_of_entries", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_sm_id_rsp_h1_live_list_h1_link_id, + { "H1 Link Id", "ff.sm.id.rsp.h1_live_list.h1_link_id", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.2.7. SM Identify (Unconfirmed Service Id = 16) - */ - { &hf_ff_sm_id, - { "SM Identify", "ff.sm.id", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - + { &hf_ff_sm_id_rsp_h1_live_list_reserved, + { "Reserved", "ff.sm.id.rsp.h1_live_list.reserved", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.2.3.1. Request Message Parameters - */ - { &hf_ff_sm_id_req, - { "SM Identify Request", "ff.sm.id.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - - - /* - * 6.5.2.3.2. Response Message Parameters - */ - { &hf_ff_sm_id_rsp, - { "SM Identify Response", "ff.sm.id.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_sm_id_rsp_dev_idx, - { "Device Index", "ff.sm.id.rsp.dev_idx", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_sm_id_rsp_max_dev_idx, - { "Max Device Index", "ff.sm.id.rsp.max_dev_idx", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_sm_id_rsp_operational_ip_addr, - { "Operational IP Address", "ff.sm.id.rsp.operational_ip_addr", - FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_sm_id_rsp_dev_id, - { "Device ID", "ff.sm.id.rsp.dev_id", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_sm_id_rsp_pd_tag, - { "PD Tag", "ff.sm.id.rsp.pd_tag", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_sm_id_rsp_hse_repeat_time, - { "HSE Repeat Time", "ff.sm.id.rsp.hse_repeat_time", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_id_rsp_h1_live_list_ver_num, + { "Version Number", "ff.sm.id.rsp.h1_live_list.ver_num", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_id_rsp_lr_port, - { "LAN Redundancy Port", "ff.sm.id.rsp.lr_port", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_sm_id_rsp_reserved, - { "Reserved", "ff.sm.id.rsp.reserved", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_sm_id_rsp_annunc_ver_num, - { "Annunciation Version Number", "ff.sm.id.rsp.annunc_ver_num", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_sm_id_rsp_hse_dev_ver_num, - { "HSE Device Version Number", "ff.sm.id.rsp.hse_dev_ver_num", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_sm_id_rsp_num_of_entries, - { "Number of Entries in Version Number List", - "ff.sm.id.rsp.num_of_entries", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_sm_id_rsp_h1_live_list_h1_link_id, - { "H1 Link Id", "ff.sm.id.rsp.h1_live_list.h1_link_id", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_id_rsp_h1_node_addr_ver_num_h1_node_addr, + { "H1 Node Address", + "ff.sm.id.rsp.h1_node_addr_ver_num.h1_node_addr", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_id_rsp_h1_live_list_reserved, - { "Reserved", "ff.sm.id.rsp.h1_live_list.reserved", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_id_rsp_h1_node_addr_ver_num_ver_num, + { "Version Number", "ff.sm.id.rsp.h1_node_addr_ver_num.ver_num", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_id_rsp_h1_live_list_ver_num, - { "Version Number", "ff.sm.id.rsp.h1_live_list.ver_num", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_id_rsp_smk_state_name, + { "Name", "ff.sm.id.rsp.smk_state_name", + FT_UINT8, BASE_DEC, VALS(names_smk_state), 0xFE, NULL, HFILL } }, - { &hf_ff_sm_id_rsp_h1_node_addr_ver_num_h1_node_addr, - { "H1 Node Address", - "ff.sm.id.rsp.h1_node_addr_ver_num.h1_node_addr", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_id_rsp_smk_state_sync, + { "Synchronized with SNTP Time Server", "ff.sm.id.rsp.smk_state_sync", + FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x01, NULL, HFILL } }, - { &hf_ff_sm_id_rsp_h1_node_addr_ver_num_ver_num, - { "Version Number", "ff.sm.id.rsp.h1_node_addr_ver_num.ver_num", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_id_rsp_dev_type_link, + { "Linking Device", "ff.sm.id.rsp.dev_type.link", + FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x80, NULL, HFILL } }, - { &hf_ff_sm_id_rsp_smk_state_name, - { "Name", "ff.sm.id.rsp.smk_state_name", - FT_UINT8, BASE_DEC, VALS(names_smk_state), 0xFE, NULL, HFILL } }, + { &hf_ff_sm_id_rsp_dev_type_iogateway, + { "I/O Gateway", "ff.sm.id.rsp.dev_type.iogateway", + FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x40, NULL, HFILL } }, - { &hf_ff_sm_id_rsp_smk_state_sync, - { "Synchronized with SNTP Time Server", "ff.sm.id.rsp.smk_state_sync", - FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x01, NULL, HFILL } }, + { &hf_ff_sm_id_rsp_dev_type_hse, + { "HSE Field Device", "ff.sm.id.rsp.dev_type.hse", + FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x20, NULL, HFILL } }, - { &hf_ff_sm_id_rsp_dev_type_link, - { "Linking Device", "ff.sm.id.rsp.dev_type.link", - FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x80, NULL, HFILL } }, + { &hf_ff_sm_id_rsp_dev_type_h1, + { "H1 Device", "ff.sm.id.rsp.dev_type.h1", + FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x10, NULL, HFILL } }, - { &hf_ff_sm_id_rsp_dev_type_iogateway, - { "I/O Gateway", "ff.sm.id.rsp.dev_type.iogateway", - FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x40, NULL, HFILL } }, + { &hf_ff_sm_id_rsp_dev_type_reserved, + { "Reserved", "ff.sm.id.rsp.dev_type.reserved", + FT_UINT8, BASE_HEX, NULL, 0x08, NULL, HFILL } }, - { &hf_ff_sm_id_rsp_dev_type_hse, - { "HSE Field Device", "ff.sm.id.rsp.dev_type.hse", - FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x20, NULL, HFILL } }, + { &hf_ff_sm_id_rsp_dev_type_redundant_caps, + { "Redundant Device Type Capability", "ff.sm.id.rsp.dev_type.redundant_caps", + FT_UINT8, BASE_DEC, VALS(names_dev_type), 0x07, NULL, HFILL } }, - { &hf_ff_sm_id_rsp_dev_type_h1, - { "H1 Device", "ff.sm.id.rsp.dev_type.h1", - FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x10, NULL, HFILL } }, + { &hf_ff_sm_id_rsp_dev_redundancy_state_reserved, + { "Reserved", "ff.sm.id.rsp.dev_redundancy_state.reserved", + FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL } }, - { &hf_ff_sm_id_rsp_dev_type_reserved, - { "Reserved", "ff.sm.id.rsp.dev_type.reserved", - FT_UINT8, BASE_HEX, NULL, 0x08, NULL, HFILL } }, + { &hf_ff_sm_id_rsp_dev_redundancy_state_role, + { "Device Redundancy Role", "ff.sm.id.rsp.dev_redundancy_state.role", + FT_UINT8, BASE_DEC, VALS(names_dev_redundancy_role), 0x0C, NULL, HFILL } }, - { &hf_ff_sm_id_rsp_dev_type_redundant_caps, - { "Redundant Device Type Capability", "ff.sm.id.rsp.dev_type.redundant_caps", - FT_UINT8, BASE_DEC, VALS(names_dev_type), 0x07, NULL, HFILL } }, + { &hf_ff_sm_id_rsp_dev_redundancy_state_type, + { "Assigned Redundant Device Type", "ff.sm.id.rsp.dev_redundancy_state.type", + FT_UINT8, BASE_DEC, VALS(names_assigned_redundant_dev_type), 0x03, NULL, HFILL } }, - { &hf_ff_sm_id_rsp_dev_redundancy_state_reserved, - { "Reserved", "ff.sm.id.rsp.dev_redundancy_state.reserved", - FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL } }, + { &hf_ff_sm_id_rsp_dup_detection_state_reserved, + { "Reserved", "ff.sm.id.rsp.dup_detection_state.reserved", + FT_UINT8, BASE_HEX, NULL, 0xFC, NULL, HFILL } }, - { &hf_ff_sm_id_rsp_dev_redundancy_state_role, - { "Device Redundancy Role", "ff.sm.id.rsp.dev_redundancy_state.role", - FT_UINT8, BASE_DEC, VALS(names_dev_redundancy_role), 0x0C, NULL, HFILL } }, + { &hf_ff_sm_id_rsp_dup_detection_state_pd_tag, + { "Duplicate PD Tag", "ff.sm.id.rsp.dup_detection_state.pd_tag", + FT_BOOLEAN, 8, TFS(&tfs_detected_not_detected), 0x02, NULL, HFILL } }, - { &hf_ff_sm_id_rsp_dev_redundancy_state_type, - { "Assigned Redundant Device Type", "ff.sm.id.rsp.dev_redundancy_state.type", - FT_UINT8, BASE_DEC, VALS(names_assigned_redundant_dev_type), 0x03, NULL, HFILL } }, + { &hf_ff_sm_id_rsp_dup_detection_state_device, + { "Duplicate Device Index", "ff.sm.id.rsp.dup_detection_state.device", + FT_BOOLEAN, 8, TFS(&tfs_detected_not_detected), 0x01, NULL, HFILL } }, - { &hf_ff_sm_id_rsp_dup_detection_state_reserved, - { "Reserved", "ff.sm.id.rsp.dup_detection_state.reserved", - FT_UINT8, BASE_HEX, NULL, 0xFC, NULL, HFILL } }, - { &hf_ff_sm_id_rsp_dup_detection_state_pd_tag, - { "Duplicate PD Tag", "ff.sm.id.rsp.dup_detection_state.pd_tag", - FT_BOOLEAN, 8, TFS(&tfs_detected_not_detected), 0x02, NULL, HFILL } }, + /* + * 6.5.2.3.3. Error Message Parameters + */ + { &hf_ff_sm_id_err, + { "SM Identify Error", "ff.sm.id.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_id_rsp_dup_detection_state_device, - { "Duplicate Device Index", "ff.sm.id.rsp.dup_detection_state.device", - FT_BOOLEAN, 8, TFS(&tfs_detected_not_detected), 0x01, NULL, HFILL } }, + { &hf_ff_sm_id_err_err_class, + { "Error Class", "ff.sm.id.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_sm_id_err_err_code, + { "Error Code", "ff.sm.id.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.2.3.3. Error Message Parameters - */ - { &hf_ff_sm_id_err, - { "SM Identify Error", "ff.sm.id.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_id_err_additional_code, + { "Additional Code", "ff.sm.id.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_id_err_err_class, - { "Error Class", "ff.sm.id.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_sm_id_err_additional_desc, + { "Additional Description", "ff.sm.id.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_id_err_err_code, - { "Error Code", "ff.sm.id.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_id_err_additional_code, - { "Additional Code", "ff.sm.id.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_id_err_additional_desc, - { "Additional Description", "ff.sm.id.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2.4. SM Clear Address (Confirmed Service Id = 12) + */ + { &hf_ff_sm_clear_addr, + { "SM Clear Address", "ff.sm.clear_addr", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.2.4. SM Clear Address (Confirmed Service Id = 12) - */ - { &hf_ff_sm_clear_addr, - { "SM Clear Address", "ff.sm.clear_addr", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2.4.1. Request Message Parameters + */ + { &hf_ff_sm_clear_addr_req, + { "SM Clear Address Request", "ff.sm.clear_addr.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_clear_addr_req_dev_id, + { "Device ID", "ff.sm.clear_addr.req.dev_id", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_clear_addr_req_pd_tag, + { "PD Tag", "ff.sm.clear_addr.req.pd_tag", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.2.4.1. Request Message Parameters - */ - { &hf_ff_sm_clear_addr_req, - { "SM Clear Address Request", "ff.sm.clear_addr.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_clear_addr_req_interface_to_clear, + { "Interface to Clear", "ff.sm.clear_addr.req.interface_to_clear", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_clear_addr_req_dev_id, - { "Device ID", "ff.sm.clear_addr.req.dev_id", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_clear_addr_req_pd_tag, - { "PD Tag", "ff.sm.clear_addr.req.pd_tag", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_clear_addr_req_interface_to_clear, - { "Interface to Clear", "ff.sm.clear_addr.req.interface_to_clear", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2.4.2. Response Message Parameters + */ + { &hf_ff_sm_clear_addr_rsp, + { "SM Clear Address Response", "ff.sm.clear_addr.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.2.4.2. Response Message Parameters - */ - { &hf_ff_sm_clear_addr_rsp, - { "SM Clear Address Response", "ff.sm.clear_addr.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2.4.3. Error Message Parameters + */ + { &hf_ff_sm_clear_addr_err, + { "SM Clear Address Error", "ff.sm.clear_addr.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_clear_addr_err_err_class, + { "Error Class", "ff.sm.clear_addr.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_sm_clear_addr_err_err_code, + { "Error Code", "ff.sm.clear_addr.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.2.4.3. Error Message Parameters - */ - { &hf_ff_sm_clear_addr_err, - { "SM Clear Address Error", "ff.sm.clear_addr.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_clear_addr_err_additional_code, + { "Additional Code", "ff.sm.clear_addr.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_clear_addr_err_err_class, - { "Error Class", "ff.sm.clear_addr.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_sm_clear_addr_err_additional_desc, + { "Additional Description", "ff.sm.clear_addr.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_clear_addr_err_err_code, - { "Error Code", "ff.sm.clear_addr.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_clear_addr_err_additional_code, - { "Additional Code", "ff.sm.clear_addr.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_clear_addr_err_additional_desc, - { "Additional Description", "ff.sm.clear_addr.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2.5. SM Set Assignment Info (Confirmed Service Id = 14) + */ + { &hf_ff_sm_set_assign_info, + { "SM Set Assignment Info", "ff.sm.set_assign_info", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.2.5. SM Set Assignment Info (Confirmed Service Id = 14) - */ - { &hf_ff_sm_set_assign_info, - { "SM Set Assignment Info", "ff.sm.set_assign_info", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2.5.1. Request Message Parameters + */ + { &hf_ff_sm_set_assign_info_req_dev_redundancy_state_reserved, + { "Reserved", "ff.sm.set_assign_info.req_dev_redundancy_state.reserved", + FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_req_dev_redundancy_state_role, + { "Type D-2 Device Redundancy Role", "ff.sm.set_assign_info.req_dev_redundancy_state.role", + FT_UINT8, BASE_DEC, VALS(names_type_d2_dev_redundancy_role), 0x0C, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_req_dev_redundancy_state_type, + { "Assigned Device Redundancy Type", "ff.sm.set_assign_info.req_dev_redundancy_state.type", + FT_UINT8, BASE_DEC, VALS(names_assigned_redundant_dev_type), 0x03, NULL, HFILL } }, - /* - * 6.5.2.5.1. Request Message Parameters - */ - { &hf_ff_sm_set_assign_info_req_dev_redundancy_state_reserved, - { "Reserved", "ff.sm.set_assign_info.req_dev_redundancy_state.reserved", - FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_req_clear_dup_detection_state_reserved, + { "Reserved", "ff.sm.set_assign_info.req_clear_dup_detection_state.reserved", + FT_UINT8, BASE_HEX, NULL, 0xFC, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_req_dev_redundancy_state_role, - { "Type D-2 Device Redundancy Role", "ff.sm.set_assign_info.req_dev_redundancy_state.role", - FT_UINT8, BASE_DEC, VALS(names_type_d2_dev_redundancy_role), 0x0C, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_req_clear_dup_detection_state_pd_tag, + { "Duplicate PD Tag Detected", "ff.sm.set_assign_info.req_clear_dup_detection_state.pd_tag", + FT_BOOLEAN, 8, TFS(&tfs_do_not_clear_clear), 0x02, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_req_dev_redundancy_state_type, - { "Assigned Device Redundancy Type", "ff.sm.set_assign_info.req_dev_redundancy_state.type", - FT_UINT8, BASE_DEC, VALS(names_assigned_redundant_dev_type), 0x03, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_req_clear_dup_detection_state_device_index, + { "Duplicate Device Index Detected", "ff.sm.set_assign_info.req_clear_dup_detection_state.device_index", + FT_BOOLEAN, 8, TFS(&tfs_do_not_clear_clear), 0x01, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_req_clear_dup_detection_state_reserved, - { "Reserved", "ff.sm.set_assign_info.req_clear_dup_detection_state.reserved", - FT_UINT8, BASE_HEX, NULL, 0xFC, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_req, + { "SM Set Assignment Info Request", "ff.sm.set_assign_info.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_req_clear_dup_detection_state_pd_tag, - { "Duplicate PD Tag Detected", "ff.sm.set_assign_info.req_clear_dup_detection_state.pd_tag", - FT_BOOLEAN, 8, TFS(&tfs_do_not_clear_clear), 0x02, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_req_dev_id, + { "Device ID", "ff.sm.set_assign_info.req.dev_id", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_req_clear_dup_detection_state_device_index, - { "Duplicate Device Index Detected", "ff.sm.set_assign_info.req_clear_dup_detection_state.device_index", - FT_BOOLEAN, 8, TFS(&tfs_do_not_clear_clear), 0x01, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_req_pd_tag, + { "PD Tag", "ff.sm.set_assign_info.req.pd_tag", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_req, - { "SM Set Assignment Info Request", "ff.sm.set_assign_info.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_req_h1_new_addr, + { "H1 New Address", "ff.sm.set_assign_info.req.h1_new_addr", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_req_dev_id, - { "Device ID", "ff.sm.set_assign_info.req.dev_id", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_req_lr_port, + { "LAN Redundancy Port", + "ff.sm.set_assign_info.req.lr_port", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_req_pd_tag, - { "PD Tag", "ff.sm.set_assign_info.req.pd_tag", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_req_hse_repeat_time, + { "HSE Repeat Time", "ff.sm.set_assign_info.req.hse_repeat_time", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_req_h1_new_addr, - { "H1 New Address", "ff.sm.set_assign_info.req.h1_new_addr", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_req_dev_idx, + { "Device Index", "ff.sm.set_assign_info.req.dev_idx", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_req_lr_port, - { "LAN Redundancy Port", - "ff.sm.set_assign_info.req.lr_port", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_req_max_dev_idx, + { "Max Device Index", "ff.sm.set_assign_info.req.max_dev_idx", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_req_hse_repeat_time, - { "HSE Repeat Time", "ff.sm.set_assign_info.req.hse_repeat_time", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_req_operational_ip_addr, + { "Operational IP Address", + "ff.sm.set_assign_info.req.operational_ip_addr", + FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_req_dev_idx, - { "Device Index", "ff.sm.set_assign_info.req.dev_idx", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_req_max_dev_idx, - { "Max Device Index", "ff.sm.set_assign_info.req.max_dev_idx", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_req_operational_ip_addr, - { "Operational IP Address", - "ff.sm.set_assign_info.req.operational_ip_addr", - FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2.5.2. Response Message Parameters + */ + { &hf_ff_sm_set_assign_info_rsp, + { "SM Set Assignment Info Response", "ff.sm.set_assign_info.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_rsp_reserved, + { "Reserved", "ff.sm.set_assign_info.rsp.reserved", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_rsp_max_dev_idx, + { "Max Device Index", "ff.sm.set_assign_info.rsp.max_dev_idx", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.2.5.2. Response Message Parameters - */ - { &hf_ff_sm_set_assign_info_rsp, - { "SM Set Assignment Info Response", "ff.sm.set_assign_info.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_rsp_hse_repeat_time, + { "HSE Repeat Time", "ff.sm.set_assign_info.rsp.hse_repeat_time", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_rsp_reserved, - { "Reserved", "ff.sm.set_assign_info.rsp.reserved", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_rsp_max_dev_idx, - { "Max Device Index", "ff.sm.set_assign_info.rsp.max_dev_idx", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_rsp_hse_repeat_time, - { "HSE Repeat Time", "ff.sm.set_assign_info.rsp.hse_repeat_time", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2.5.3. Error Message Parameters + */ + { &hf_ff_sm_set_assign_info_err, + { "SM Set Assignment Info Error", "ff.sm.set_assign_info.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_err_err_class, + { "Error Class", "ff.sm.set_assign_info.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_err_err_code, + { "Error Code", "ff.sm.set_assign_info.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.2.5.3. Error Message Parameters - */ - { &hf_ff_sm_set_assign_info_err, - { "SM Set Assignment Info Error", "ff.sm.set_assign_info.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_err_additional_code, + { "Additional Code", "ff.sm.set_assign_info.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_err_err_class, - { "Error Class", "ff.sm.set_assign_info.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_sm_set_assign_info_err_additional_desc, + { "Additional Description", + "ff.sm.set_assign_info.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_err_err_code, - { "Error Code", "ff.sm.set_assign_info.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_err_additional_code, - { "Additional Code", "ff.sm.set_assign_info.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_set_assign_info_err_additional_desc, - { "Additional Description", - "ff.sm.set_assign_info.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2.6. SM Clear Assignment Info (Confirmed Service Id = 15) + */ + { &hf_ff_sm_clear_assign_info, + { "SM Clear Assignment Info", "ff.sm.clear_assign_info", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.2.6. SM Clear Assignment Info (Confirmed Service Id = 15) - */ - { &hf_ff_sm_clear_assign_info, - { "SM Clear Assignment Info", "ff.sm.clear_assign_info", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2.6.1. Request Message Parameters + */ + { &hf_ff_sm_clear_assign_info_req, + { "SM Clear Assignment Info Request", "ff.sm.clear_assign_info.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_clear_assign_info_req_dev_id, + { "Device ID", "ff.sm.clear_assign_info.req.dev_id", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_clear_assign_info_req_pd_tag, + { "PD Tag", "ff.sm.clear_assign_info.req.pd_tag", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.2.6.1. Request Message Parameters - */ - { &hf_ff_sm_clear_assign_info_req, - { "SM Clear Assignment Info Request", "ff.sm.clear_assign_info.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_clear_assign_info_req_dev_id, - { "Device ID", "ff.sm.clear_assign_info.req.dev_id", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_clear_assign_info_req_pd_tag, - { "PD Tag", "ff.sm.clear_assign_info.req.pd_tag", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2.6.2. Response Message Parameters + */ + { &hf_ff_sm_clear_assign_info_rsp, + { "SM Clear Assignment Info Response", + "ff.sm.clear_assign_info.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.2.6.2. Response Message Parameters - */ - { &hf_ff_sm_clear_assign_info_rsp, - { "SM Clear Assignment Info Response", - "ff.sm.clear_assign_info.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2.6.3. Error Message Parameters + */ + { &hf_ff_sm_clear_assign_info_err, + { "SM Clear Assignment Info Error", "ff.sm.clear_assign_info.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_clear_assign_info_err_err_class, + { "Error Class", "ff.sm.clear_assign_info.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_sm_clear_assign_info_err_err_code, + { "Error Code", "ff.sm.clear_assign_info.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.2.6.3. Error Message Parameters - */ - { &hf_ff_sm_clear_assign_info_err, - { "SM Clear Assignment Info Error", "ff.sm.clear_assign_info.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_clear_assign_info_err_additional_code, + { "Additional Code", "ff.sm.clear_assign_info.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_clear_assign_info_err_err_class, - { "Error Class", "ff.sm.clear_assign_info.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_sm_clear_assign_info_err_additional_desc, + { "Additional Description", + "ff.sm.clear_assign_info.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_clear_assign_info_err_err_code, - { "Error Code", "ff.sm.clear_assign_info.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_clear_assign_info_err_additional_code, - { "Additional Code", "ff.sm.clear_assign_info.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_clear_assign_info_err_additional_desc, - { "Additional Description", - "ff.sm.clear_assign_info.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2.7. SM Device Annunciation (Unconfirmed Service Id = 16) + */ + { &hf_ff_sm_dev_annunc, + { "SM Device Annunciation", "ff.sm.dev_annunc", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.2.7. SM Device Annunciation (Unconfirmed Service Id = 16) - */ - { &hf_ff_sm_dev_annunc, - { "SM Device Annunciation", "ff.sm.dev_annunc", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.2.7.1. Request Message Parameters + */ + { &hf_ff_sm_dev_annunc_req, + { "SM Device Annunciation Request", "ff.sm.dev_annunc.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_dev_idx, + { "Device Index", "ff.sm.dev_annunc.req.dev_idx", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_max_dev_idx, + { "Max Device Index", "ff.sm.dev_annunc.req.max_dev_idx", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.2.7.1. Request Message Parameters - */ - { &hf_ff_sm_dev_annunc_req, - { "SM Device Annunciation Request", "ff.sm.dev_annunc.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_operational_ip_addr, + { "Operational IP Address", + "ff.sm.dev_annunc.req.operational_ip_addr", + FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_dev_idx, - { "Device Index", "ff.sm.dev_annunc.req.dev_idx", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_dev_id, + { "Device ID", "ff.sm.dev_annunc.req.dev_id", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_max_dev_idx, - { "Max Device Index", "ff.sm.dev_annunc.req.max_dev_idx", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_pd_tag, + { "PD Tag", "ff.sm.dev_annunc.req.pd_tag", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_operational_ip_addr, - { "Operational IP Address", - "ff.sm.dev_annunc.req.operational_ip_addr", - FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_hse_repeat_time, + { "HSE Repeat Time", "ff.sm.dev_annunc.req.hse_repeat_time", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_dev_id, - { "Device ID", "ff.sm.dev_annunc.req.dev_id", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_lr_port, + { "LAN Redundancy Port", "ff.sm.dev_annunc.req.lr_port", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_pd_tag, - { "PD Tag", "ff.sm.dev_annunc.req.pd_tag", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_reserved, + { "Reserved", "ff.sm.dev_annunc.req.reserved", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_hse_repeat_time, - { "HSE Repeat Time", "ff.sm.dev_annunc.req.hse_repeat_time", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_annunc_ver_num, + { "Annunciation Version Number", + "ff.sm.dev_annunc.req.annunc_ver_num", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_lr_port, - { "LAN Redundancy Port", "ff.sm.dev_annunc.req.lr_port", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_hse_dev_ver_num, + { "HSE Device Version Number", + "ff.sm.dev_annunc.req.hse_dev_ver_num", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_reserved, - { "Reserved", "ff.sm.dev_annunc.req.reserved", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_num_of_entries, + { "Number of Entries in Version Number List", + "ff.sm.dev_annunc.req.num_of_entries", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_annunc_ver_num, - { "Annunciation Version Number", - "ff.sm.dev_annunc.req.annunc_ver_num", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_h1_live_list_h1_link_id, + { "H1 Link Id", "ff.sm.dev_annunc.req.h1_live_list.h1_link_id", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_hse_dev_ver_num, - { "HSE Device Version Number", - "ff.sm.dev_annunc.req.hse_dev_ver_num", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_h1_live_list_reserved, + { "Reserved", "ff.sm.dev_annunc.req.h1_live_list.reserved", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_num_of_entries, - { "Number of Entries in Version Number List", - "ff.sm.dev_annunc.req.num_of_entries", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_h1_live_list_ver_num, + { "Version Number", "ff.sm.dev_annunc.req.h1_live_list.ver_num", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_h1_live_list_h1_link_id, - { "H1 Link Id", "ff.sm.dev_annunc.req.h1_live_list.h1_link_id", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_h1_node_addr, + { "H1 Node Address", + "ff.sm.dev_annunc.req.h1_node_addr_ver_num.h1_node_addr", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_h1_live_list_reserved, - { "Reserved", "ff.sm.dev_annunc.req.h1_live_list.reserved", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_ver_num, + { "Version Number", + "ff.sm.dev_annunc.req.h1_node_addr_ver_num.ver_num", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_h1_live_list_ver_num, - { "Version Number", "ff.sm.dev_annunc.req.h1_live_list.ver_num", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_smk_state_name, + { "Name", "ff.sm.dev_annunc.req.smk_state_name", + FT_UINT8, BASE_DEC, VALS(names_smk_state), 0xFE, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_h1_node_addr, - { "H1 Node Address", - "ff.sm.dev_annunc.req.h1_node_addr_ver_num.h1_node_addr", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_smk_state_sync, + { "Synchronized with SNTP Time Server", "ff.sm.dev_annunc.req.smk_state_sync", + FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x01, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_h1_node_addr_ver_num_ver_num, - { "Version Number", - "ff.sm.dev_annunc.req.h1_node_addr_ver_num.ver_num", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_dev_type_link, + { "Linking Device", "ff.sm.dev_annunc.req.dev_type.link", + FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x80, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_smk_state_name, - { "Name", "ff.sm.dev_annunc.req.smk_state_name", - FT_UINT8, BASE_DEC, VALS(names_smk_state), 0xFE, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_dev_type_iogateway, + { "I/O Gateway", "ff.sm.dev_annunc.req.dev_type.iogateway", + FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x40, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_smk_state_sync, - { "Synchronized with SNTP Time Server", "ff.sm.dev_annunc.req.smk_state_sync", - FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x01, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_dev_type_hse, + { "HSE Field Device", "ff.sm.dev_annunc.req.dev_type.hse", + FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x20, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_dev_type_link, - { "Linking Device", "ff.sm.dev_annunc.req.dev_type.link", - FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x80, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_dev_type_h1, + { "H1 Device", "ff.sm.dev_annunc.req.dev_type.h1", + FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x10, NULL, HFILL } }, + + { &hf_ff_sm_dev_annunc_req_dev_type_reserved, + { "Reserved", "ff.sm.dev_annunc.req.dev_type.reserved", + FT_UINT8, BASE_HEX, NULL, 0x08, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_dev_type_iogateway, - { "I/O Gateway", "ff.sm.dev_annunc.req.dev_type.iogateway", - FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x40, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_dev_type_redundant_caps, + { "Redundant Device Type Capability", "ff.sm.dev_annunc.req.dev_type.redundant_caps", + FT_UINT8, BASE_DEC, VALS(names_dev_type), 0x07, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_dev_type_hse, - { "HSE Field Device", "ff.sm.dev_annunc.req.dev_type.hse", - FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x20, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_dev_redundancy_state_reserved, + { "Reserved", "ff.sm.dev_annunc.req_dev_redundancy_state.reserved", + FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_dev_type_h1, - { "H1 Device", "ff.sm.dev_annunc.req.dev_type.h1", - FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x10, NULL, HFILL } }, - - { &hf_ff_sm_dev_annunc_req_dev_type_reserved, - { "Reserved", "ff.sm.dev_annunc.req.dev_type.reserved", - FT_UINT8, BASE_HEX, NULL, 0x08, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_dev_redundancy_state_role, + { "Type D-2 Device Redundancy Role", "ff.sm.dev_annunc.req_dev_redundancy_state.role", + FT_UINT8, BASE_DEC, VALS(names_type_d2_dev_redundancy_role), 0x0C, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_dev_type_redundant_caps, - { "Redundant Device Type Capability", "ff.sm.dev_annunc.req.dev_type.redundant_caps", - FT_UINT8, BASE_DEC, VALS(names_dev_type), 0x07, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_dev_redundancy_state_type, + { "Assigned Device Redundancy Type", "ff.sm.dev_annunc.req_dev_redundancy_state.type", + FT_UINT8, BASE_DEC, VALS(names_assigned_redundant_dev_type), 0x03, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_dev_redundancy_state_reserved, - { "Reserved", "ff.sm.dev_annunc.req_dev_redundancy_state.reserved", - FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_dup_detection_state_reserved, + { "Reserved", "ff.sm.dev_annunc.req.dup_detection_state.reserved", + FT_UINT8, BASE_HEX, NULL, 0xFC, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_dev_redundancy_state_role, - { "Type D-2 Device Redundancy Role", "ff.sm.dev_annunc.req_dev_redundancy_state.role", - FT_UINT8, BASE_DEC, VALS(names_type_d2_dev_redundancy_role), 0x0C, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_dup_detection_state_pd_tag, + { "Duplicate PD Tag", "ff.sm.dev_annunc.req.dup_detection_state.pd_tag", + FT_BOOLEAN, 8, TFS(&tfs_detected_not_detected), 0x02, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_dev_redundancy_state_type, - { "Assigned Device Redundancy Type", "ff.sm.dev_annunc.req_dev_redundancy_state.type", - FT_UINT8, BASE_DEC, VALS(names_assigned_redundant_dev_type), 0x03, NULL, HFILL } }, + { &hf_ff_sm_dev_annunc_req_dup_detection_state_device, + { "Duplicate Device Index", "ff.sm.dev_annunc.req.dup_detection_state.device", + FT_BOOLEAN, 8, TFS(&tfs_detected_not_detected), 0x01, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_dup_detection_state_reserved, - { "Reserved", "ff.sm.dev_annunc.req.dup_detection_state.reserved", - FT_UINT8, BASE_HEX, NULL, 0xFC, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_dup_detection_state_pd_tag, - { "Duplicate PD Tag", "ff.sm.dev_annunc.req.dup_detection_state.pd_tag", - FT_BOOLEAN, 8, TFS(&tfs_detected_not_detected), 0x02, NULL, HFILL } }, + /* + * 6.5.3. FMS Services + */ + { &hf_ff_fms, + { "FMS Service", "ff.fms", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_sm_dev_annunc_req_dup_detection_state_device, - { "Duplicate Device Index", "ff.sm.dev_annunc.req.dup_detection_state.device", - FT_BOOLEAN, 8, TFS(&tfs_detected_not_detected), 0x01, NULL, HFILL } }, - /* - * 6.5.3. FMS Services - */ - { &hf_ff_fms, - { "FMS Service", "ff.fms", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.2. FMS Initiate (Confirmed Service Id = 96) + */ + { &hf_ff_fms_init, + { "FMS Initiate", "ff.fms.init", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.2. FMS Initiate (Confirmed Service Id = 96) - */ - { &hf_ff_fms_init, - { "FMS Initiate", "ff.fms.init", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.2.1. Request Message Parameters + */ + { &hf_ff_fms_init_req, + { "FMS Initiate Request", "ff.fms.init.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_req_conn_opt, + { "Connect Option", "ff.fms.init.req.conn_opt", + FT_UINT8, BASE_DEC, VALS(names_conn_opt), 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_req_access_protection_supported_calling, + { "Access Protection Supported Calling", + "ff.fms.init.req.access_protection_supported_calling", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.2.1. Request Message Parameters - */ - { &hf_ff_fms_init_req, - { "FMS Initiate Request", "ff.fms.init.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_req_passwd_and_access_grps_calling, + { "Password and Access Groups Calling", + "ff.fms.init.req.passwd_and_access_grps_calling", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_req_conn_opt, - { "Connect Option", "ff.fms.init.req.conn_opt", - FT_UINT8, BASE_DEC, VALS(names_conn_opt), 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_req_ver_od_calling, + { "Version OD Calling", "ff.fms.init.req.ver_od_calling", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_req_access_protection_supported_calling, - { "Access Protection Supported Calling", - "ff.fms.init.req.access_protection_supported_calling", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_req_prof_num_calling, + { "Profile Number Calling", "ff.fms.init.req.prof_num_calling", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_req_passwd_and_access_grps_calling, - { "Password and Access Groups Calling", - "ff.fms.init.req.passwd_and_access_grps_calling", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_req_pd_tag, + { "PD Tag", "ff.fms.init.req.pd_tag", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_req_ver_od_calling, - { "Version OD Calling", "ff.fms.init.req.ver_od_calling", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_req_prof_num_calling, - { "Profile Number Calling", "ff.fms.init.req.prof_num_calling", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_req_pd_tag, - { "PD Tag", "ff.fms.init.req.pd_tag", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.2.2. Response Message Parameters + */ + { &hf_ff_fms_init_rsp, + { "FMS Initiate Response", "ff.fms.init.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_rsp_ver_od_called, + { "Version OD Called", "ff.fms.init.rsp.ver_od_called", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_rsp_prof_num_called, + { "Profile Number Called", "ff.fms.init.rsp.prof_num_called", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.2.2. Response Message Parameters - */ - { &hf_ff_fms_init_rsp, - { "FMS Initiate Response", "ff.fms.init.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_rsp_ver_od_called, - { "Version OD Called", "ff.fms.init.rsp.ver_od_called", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_rsp_prof_num_called, - { "Profile Number Called", "ff.fms.init.rsp.prof_num_called", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.2.3. Error Message Parameters + */ + { &hf_ff_fms_init_err, + { "FMS Initiate Error", "ff.fms.init.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_err_err_class, + { "Error Class", "ff.fms.init.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_err_err_code, + { "Error Code", "ff.fms.init.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.2.3. Error Message Parameters - */ - { &hf_ff_fms_init_err, - { "FMS Initiate Error", "ff.fms.init.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_err_additional_code, + { "Additional Code", "ff.fms.init.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_err_err_class, - { "Error Class", "ff.fms.init.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_err_additional_desc, + { "Additional Description", "ff.fms.init.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_err_err_code, - { "Error Code", "ff.fms.init.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_err_additional_code, - { "Additional Code", "ff.fms.init.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_err_additional_desc, - { "Additional Description", "ff.fms.init.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.3. FMS Abort (Unconfirmed Service Id = 112) + */ + { &hf_ff_fms_abort, + { "FMS Abort", "ff.fms.abort", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.3. FMS Abort (Unconfirmed Service Id = 112) - */ - { &hf_ff_fms_abort, - { "FMS Abort", "ff.fms.abort", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.3.1. Request Message Parameters + */ + { &hf_ff_fms_abort_req, + { "FMS Abort Request", "ff.fms.abort.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_abort_req_abort_id, + { "Abort Identifier", "ff.fms.abort.req.abort_id", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_abort_req_reason_code, + { "Reason Code", "ff.fms.abort.req.reason_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.3.1. Request Message Parameters - */ - { &hf_ff_fms_abort_req, - { "FMS Abort Request", "ff.fms.abort.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_abort_req_reserved, + { "Reserved", "ff.fms.abort.req.reserved", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_abort_req_abort_id, - { "Abort Identifier", "ff.fms.abort.req.abort_id", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_abort_req_reason_code, - { "Reason Code", "ff.fms.abort.req.reason_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_abort_req_reserved, - { "Reserved", "ff.fms.abort.req.reserved", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.4. FMS Status (Confirmed Service Id = 0) + */ + { &hf_ff_fms_status, + { "FMS Status", "ff.fms.status", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.4. FMS Status (Confirmed Service Id = 0) - */ - { &hf_ff_fms_status, - { "FMS Status", "ff.fms.status", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.4.1. Request Message Parameters + */ + { &hf_ff_fms_status_req, + { "FMS Status Request", "ff.fms.status.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.4.1. Request Message Parameters - */ - { &hf_ff_fms_status_req, - { "FMS Status Request", "ff.fms.status.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.4.2. Response Message Parameters + */ + { &hf_ff_fms_status_rsp, + { "FMS Status Response", "ff.fms.status.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_status_rsp_logical_status, + { "Logical Status", "ff.fms.status.rsp.logical_status", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_status_rsp_physical_status, + { "Physical Status", "ff.fms.status.rsp.physical_status", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.4.2. Response Message Parameters - */ - { &hf_ff_fms_status_rsp, - { "FMS Status Response", "ff.fms.status.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_status_rsp_reserved, + { "Reserved", "ff.fms.status.rsp.reserved", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_status_rsp_logical_status, - { "Logical Status", "ff.fms.status.rsp.logical_status", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_status_rsp_physical_status, - { "Physical Status", "ff.fms.status.rsp.physical_status", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_status_rsp_reserved, - { "Reserved", "ff.fms.status.rsp.reserved", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.4.3. Error Message Parameters + */ + { &hf_ff_fms_status_err, + { "FMS Status Error", "ff.fms.status.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_status_err_err_class, + { "Error Class", "ff.fms.status.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_status_err_err_code, + { "Error Code", "ff.fms.status.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.4.3. Error Message Parameters - */ - { &hf_ff_fms_status_err, - { "FMS Status Error", "ff.fms.status.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_status_err_additional_code, + { "Additional Code", "ff.fms.status.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_status_err_err_class, - { "Error Class", "ff.fms.status.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_status_err_additional_desc, + { "Additional Description", "ff.fms.status.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_status_err_err_code, - { "Error Code", "ff.fms.status.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_status_err_additional_code, - { "Additional Code", "ff.fms.status.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_status_err_additional_desc, - { "Additional Description", "ff.fms.status.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.5. FMS Unsolicited Status (Unconfirmed Service Id = 1) + */ + { &hf_ff_fms_unsolicited_status, + { "FMS Unsolicited Status", "ff.fms.unsolicited_status", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.5. FMS Unsolicited Status (Unconfirmed Service Id = 1) - */ - { &hf_ff_fms_unsolicited_status, - { "FMS Unsolicited Status", "ff.fms.unsolicited_status", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.5.1. Request Message Parameters + */ + { &hf_ff_fms_unsolicited_status_req, + { "FMS Unsolicited Status Request", "ff.fms.unsolicited_status.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_unsolicited_status_req_logical_status, + { "Logical Status", "ff.fms.unsolicited_status.req.logical_status", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_unsolicited_status_req_physical_status, + { "Physical Status", + "ff.fms.unsolicited_status.req.physical_status", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.5.1. Request Message Parameters - */ - { &hf_ff_fms_unsolicited_status_req, - { "FMS Unsolicited Status Request", "ff.fms.unsolicited_status.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_unsolicited_status_req_reserved, + { "Reserved", "ff.fms.unsolicited_status.req.reserved", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_unsolicited_status_req_logical_status, - { "Logical Status", "ff.fms.unsolicited_status.req.logical_status", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_unsolicited_status_req_physical_status, - { "Physical Status", - "ff.fms.unsolicited_status.req.physical_status", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_unsolicited_status_req_reserved, - { "Reserved", "ff.fms.unsolicited_status.req.reserved", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.6. FMS Identify (Confirmed Service Id = 1) + */ + { &hf_ff_fms_id, + { "FMS Identify", "ff.fms.id", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.6. FMS Identify (Confirmed Service Id = 1) - */ - { &hf_ff_fms_id, - { "FMS Identify", "ff.fms.id", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.6.1. Request Message Parameters + */ + { &hf_ff_fms_id_req, + { "FMS Identify Request", "ff.fms.id.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.6.1. Request Message Parameters - */ - { &hf_ff_fms_id_req, - { "FMS Identify Request", "ff.fms.id.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.6.2. Response Message Parameters + */ + { &hf_ff_fms_id_rsp, + { "FMS Identify Response", "ff.fms.id.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_id_rsp_vendor_name, + { "Vendor Name", "ff.fms.id.rsp.vendor_name", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_id_rsp_model_name, + { "Model Name", "ff.fms.id.rsp.model_name", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.6.2. Response Message Parameters - */ - { &hf_ff_fms_id_rsp, - { "FMS Identify Response", "ff.fms.id.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_id_rsp_revision, + { "Revision", "ff.fms.id.rsp.revision", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_id_rsp_vendor_name, - { "Vendor Name", "ff.fms.id.rsp.vendor_name", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_id_rsp_model_name, - { "Model Name", "ff.fms.id.rsp.model_name", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_id_rsp_revision, - { "Revision", "ff.fms.id.rsp.revision", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.6.3. Error Message Parameters + */ + { &hf_ff_fms_id_err, + { "FMS Identify Error", "ff.fms.id.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_id_err_err_class, + { "Error Class", "ff.fms.id.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_id_err_err_code, + { "Error Code", "ff.fms.id.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.6.3. Error Message Parameters - */ - { &hf_ff_fms_id_err, - { "FMS Identify Error", "ff.fms.id.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_id_err_additional_code, + { "Additional Code", "ff.fms.id.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_id_err_err_class, - { "Error Class", "ff.fms.id.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_id_err_additional_desc, + { "Additional Description", "ff.fms.id.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_id_err_err_code, - { "Error Code", "ff.fms.id.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_id_err_additional_code, - { "Additional Code", "ff.fms.id.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_id_err_additional_desc, - { "Additional Description", "ff.fms.id.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.7. FMS Get OD (Confirmed Service Id = 4) + */ + { &hf_ff_fms_get_od, + { "FMS Get OD", "ff.fms.get_od", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.7. FMS Get OD (Confirmed Service Id = 4) - */ - { &hf_ff_fms_get_od, - { "FMS Get OD", "ff.fms.get_od", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.7.1. Request Message Parameters + */ + { &hf_ff_fms_get_od_req, + { "FMS Get OD Request", "ff.fms.get_od.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_get_od_req_all_attrs, + { "All Attributes", "ff.fms.get_od.req.all_attrs", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_get_od_req_start_idx_flag, + { "Start Index Flag", "ff.fms.get_od.req.start_idx_flag", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.7.1. Request Message Parameters - */ - { &hf_ff_fms_get_od_req, - { "FMS Get OD Request", "ff.fms.get_od.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_get_od_req_reserved, + { "Reserved", "ff.fms.get_od.req.reserved", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_get_od_req_all_attrs, - { "All Attributes", "ff.fms.get_od.req.all_attrs", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_get_od_req_idx, + { "Index", "ff.fms.get_od.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_get_od_req_start_idx_flag, - { "Start Index Flag", "ff.fms.get_od.req.start_idx_flag", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_get_od_req_reserved, - { "Reserved", "ff.fms.get_od.req.reserved", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_get_od_req_idx, - { "Index", "ff.fms.get_od.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.7.2. Response Message Parameters + */ + { &hf_ff_fms_get_od_rsp, + { "FMS Get OD Response", "ff.fms.get_od.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_get_od_rsp_more_follows, + { "More Follows", "ff.fms.get_od.rsp.more_follows", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_get_od_rsp_num_of_obj_desc, + { "Number of Object Descriptions", + "ff.fms.get_od.rsp.num_of_obj_desc", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.7.2. Response Message Parameters - */ - { &hf_ff_fms_get_od_rsp, - { "FMS Get OD Response", "ff.fms.get_od.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_get_od_rsp_reserved, + { "Reserved", "ff.fms.get_od.rsp.reserved", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_get_od_rsp_more_follows, - { "More Follows", "ff.fms.get_od.rsp.more_follows", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_get_od_rsp_num_of_obj_desc, - { "Number of Object Descriptions", - "ff.fms.get_od.rsp.num_of_obj_desc", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_get_od_rsp_reserved, - { "Reserved", "ff.fms.get_od.rsp.reserved", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.7.3. Error Message Parameters + */ + { &hf_ff_fms_get_od_err, + { "FMS Get OD Error", "ff.fms.get_od.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_get_od_err_err_class, + { "Error Class", "ff.fms.get_od.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_get_od_err_err_code, + { "Error Code", "ff.fms.get_od.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.7.3. Error Message Parameters - */ - { &hf_ff_fms_get_od_err, - { "FMS Get OD Error", "ff.fms.get_od.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_get_od_err_additional_code, + { "Additional Code", "ff.fms.get_od.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_get_od_err_err_class, - { "Error Class", "ff.fms.get_od.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_get_od_err_additional_desc, + { "Additional Description", "ff.fms.get_od.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_get_od_err_err_code, - { "Error Code", "ff.fms.get_od.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_get_od_err_additional_code, - { "Additional Code", "ff.fms.get_od.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_get_od_err_additional_desc, - { "Additional Description", "ff.fms.get_od.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.8. FMS Initiate Put OD (Confirmed Service Id = 28) + */ + { &hf_ff_fms_init_put_od, + { "FMS Initiate Put OD", "ff.fms.init_put_od", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.8. FMS Initiate Put OD (Confirmed Service Id = 28) - */ - { &hf_ff_fms_init_put_od, - { "FMS Initiate Put OD", "ff.fms.init_put_od", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.8.1. Request Message Parameters + */ + { &hf_ff_fms_init_put_od_req, + { "FMS Initiate Put OD Request", "ff.fms.init_put_od.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_put_od_req_reserved, + { "Reserved", "ff.fms.init_put_od.req.reserved", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_put_od_req_consequence, + { "Consequence", "ff.fms.init_put_od.req.consequence", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.8.1. Request Message Parameters - */ - { &hf_ff_fms_init_put_od_req, - { "FMS Initiate Put OD Request", "ff.fms.init_put_od.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_put_od_req_reserved, - { "Reserved", "ff.fms.init_put_od.req.reserved", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_put_od_req_consequence, - { "Consequence", "ff.fms.init_put_od.req.consequence", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.8.2. Response Message Parameters + */ + { &hf_ff_fms_init_put_od_rsp, + { "FMS Initiate Put OD Response", "ff.fms.init_put_od.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.8.2. Response Message Parameters - */ - { &hf_ff_fms_init_put_od_rsp, - { "FMS Initiate Put OD Response", "ff.fms.init_put_od.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.8.3. Error Message Parameters + */ + { &hf_ff_fms_init_put_od_err, + { "FMS Initiate Put OD Error", "ff.fms.init_put_od.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_put_od_err_err_class, + { "Error Class", "ff.fms.init_put_od.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_put_od_err_err_code, + { "Error Code", "ff.fms.init_put_od.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.8.3. Error Message Parameters - */ - { &hf_ff_fms_init_put_od_err, - { "FMS Initiate Put OD Error", "ff.fms.init_put_od.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_put_od_err_additional_code, + { "Additional Code", "ff.fms.init_put_od.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_put_od_err_err_class, - { "Error Class", "ff.fms.init_put_od.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_put_od_err_additional_desc, + { "Additional Description", + "ff.fms.init_put_od.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_put_od_err_err_code, - { "Error Code", "ff.fms.init_put_od.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_put_od_err_additional_code, - { "Additional Code", "ff.fms.init_put_od.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_put_od_err_additional_desc, - { "Additional Description", - "ff.fms.init_put_od.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.9. FMS Put OD (Confirmed Service Id = 29) + */ + { &hf_ff_fms_put_od, + { "FMS Put OD", "ff.fms.put_od", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.9. FMS Put OD (Confirmed Service Id = 29) - */ - { &hf_ff_fms_put_od, - { "FMS Put OD", "ff.fms.put_od", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.9.1. Request Message Parameters + */ + { &hf_ff_fms_put_od_req, + { "FMS Put OD Request", "ff.fms.put_od.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_put_od_req_num_of_obj_desc, + { "Number of Object Descriptions", + "ff.fms.put_od.req.num_of_obj_desc", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.9.1. Request Message Parameters - */ - { &hf_ff_fms_put_od_req, - { "FMS Put OD Request", "ff.fms.put_od.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_put_od_req_num_of_obj_desc, - { "Number of Object Descriptions", - "ff.fms.put_od.req.num_of_obj_desc", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.9.2. Response Message Parameters + */ + { &hf_ff_fms_put_od_rsp, + { "FMS Put OD Response", "ff.fms.put_od.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.9.2. Response Message Parameters - */ - { &hf_ff_fms_put_od_rsp, - { "FMS Put OD Response", "ff.fms.put_od.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.9.3. Error Message Parameters + */ + { &hf_ff_fms_put_od_err, + { "FMS Put OD Error", "ff.fms.put_od.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_put_od_err_err_class, + { "Error Class", "ff.fms.put_od.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_put_od_err_err_code, + { "Error Code", "ff.fms.put_od.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.9.3. Error Message Parameters - */ - { &hf_ff_fms_put_od_err, - { "FMS Put OD Error", "ff.fms.put_od.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_put_od_err_additional_code, + { "Additional Code", "ff.fms.put_od.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_put_od_err_err_class, - { "Error Class", "ff.fms.put_od.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_put_od_err_additional_desc, + { "Additional Description", "ff.fms.put_od.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_put_od_err_err_code, - { "Error Code", "ff.fms.put_od.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_put_od_err_additional_code, - { "Additional Code", "ff.fms.put_od.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_put_od_err_additional_desc, - { "Additional Description", "ff.fms.put_od.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.10. FMS Terminate Put OD (Confirmed Service Id = 30) + */ + { &hf_ff_fms_terminate_put_od, + { "FMS Terminate Put OD", "ff.fms.terminate_put_od", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.10. FMS Terminate Put OD (Confirmed Service Id = 30) - */ - { &hf_ff_fms_terminate_put_od, - { "FMS Terminate Put OD", "ff.fms.terminate_put_od", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.10.1. Request Message Parameters + */ + { &hf_ff_fms_terminate_put_od_req, + { "FMS Terminate Put OD Request", "ff.fms.terminate_put_od.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.10.1. Request Message Parameters - */ - { &hf_ff_fms_terminate_put_od_req, - { "FMS Terminate Put OD Request", "ff.fms.terminate_put_od.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.10.2. Response Message Parameters + */ + { &hf_ff_fms_terminate_put_od_rsp, + { "FMS Terminate Put OD Response", "ff.fms.terminate_put_od.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.10.2. Response Message Parameters - */ - { &hf_ff_fms_terminate_put_od_rsp, - { "FMS Terminate Put OD Response", "ff.fms.terminate_put_od.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.10.3. Error Message Parameters + */ + { &hf_ff_fms_terminate_put_od_err, + { "FMS Terminate Put OD Error", "ff.fms.terminate_put_od.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_terminate_put_od_err_index, + { "Index", "ff.fms.terminate_put_od.err.index", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_terminate_put_od_err_err_class, + { "Error Class", "ff.fms.terminate_put_od.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, - /* - * 6.5.3.10.3. Error Message Parameters - */ - { &hf_ff_fms_terminate_put_od_err, - { "FMS Terminate Put OD Error", "ff.fms.terminate_put_od.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_terminate_put_od_err_err_code, + { "Error Code", "ff.fms.terminate_put_od.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_terminate_put_od_err_index, - { "Index", "ff.fms.terminate_put_od.err.index", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_terminate_put_od_err_additional_code, + { "Additional Code", "ff.fms.terminate_put_od.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_terminate_put_od_err_err_class, - { "Error Class", "ff.fms.terminate_put_od.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_terminate_put_od_err_additional_desc, + { "Additional Description", + "ff.fms.terminate_put_od.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_terminate_put_od_err_err_code, - { "Error Code", "ff.fms.terminate_put_od.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_terminate_put_od_err_additional_code, - { "Additional Code", "ff.fms.terminate_put_od.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_terminate_put_od_err_additional_desc, - { "Additional Description", - "ff.fms.terminate_put_od.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.11. FMS Generic Initiate Download Sequence + * (Confirmed Service Id = 31) + */ + { &hf_ff_fms_gen_init_download_seq, + { "FMS Generic Initiate Download Sequence", + "ff.fms.gen_init_download_seq", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.11. FMS Generic Initiate Download Sequence - * (Confirmed Service Id = 31) - */ - { &hf_ff_fms_gen_init_download_seq, - { "FMS Generic Initiate Download Sequence", - "ff.fms.gen_init_download_seq", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.11.1. Request Message Parameters + */ + { &hf_ff_fms_gen_init_download_seq_req, + { "FMS Generic Initiate Download Sequence Request", + "ff.fms.gen_init_download_seq.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_gen_init_download_seq_req_idx, + { "Index", + "ff.fms.gen_init_download_seq.req.idx", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.11.1. Request Message Parameters - */ - { &hf_ff_fms_gen_init_download_seq_req, - { "FMS Generic Initiate Download Sequence Request", - "ff.fms.gen_init_download_seq.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_gen_init_download_seq_req_idx, - { "Index", - "ff.fms.gen_init_download_seq.req.idx", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.11.2. Response Message Parameters + */ + { &hf_ff_fms_gen_init_download_seq_rsp, + { "FMS Generic Initiate Download Sequence Response", + "ff.fms.gen_init_download_seq.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.11.2. Response Message Parameters - */ - { &hf_ff_fms_gen_init_download_seq_rsp, - { "FMS Generic Initiate Download Sequence Response", - "ff.fms.gen_init_download_seq.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.11.3. Error Message Parameters + */ + { &hf_ff_fms_gen_init_download_seq_err, + { "FMS Generic Initiate Download Sequence Error", + "ff.fms.gen_init_download_seq.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_gen_init_download_seq_err_err_class, + { "Error Class", "ff.fms.gen_init_download_seq.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_gen_init_download_seq_err_err_code, + { "Error Code", "ff.fms.gen_init_download_seq.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.11.3. Error Message Parameters - */ - { &hf_ff_fms_gen_init_download_seq_err, - { "FMS Generic Initiate Download Sequence Error", - "ff.fms.gen_init_download_seq.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_gen_init_download_seq_err_additional_code, + { "Additional Code", + "ff.fms.gen_init_download_seq.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_gen_init_download_seq_err_err_class, - { "Error Class", "ff.fms.gen_init_download_seq.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_gen_init_download_seq_err_additional_desc, + { "Additional Description", + "ff.fms.gen_init_download_seq.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_gen_init_download_seq_err_err_code, - { "Error Code", "ff.fms.gen_init_download_seq.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_gen_init_download_seq_err_additional_code, - { "Additional Code", - "ff.fms.gen_init_download_seq.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_gen_init_download_seq_err_additional_desc, - { "Additional Description", - "ff.fms.gen_init_download_seq.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.12. FMS Generic Download Segment (Confirmed Service Id = 32) + */ + { &hf_ff_fms_gen_download_seg, + { "FMS Generic Download Segment", "ff.fms.gen_download_seg", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.12. FMS Generic Download Segment (Confirmed Service Id = 32) - */ - { &hf_ff_fms_gen_download_seg, - { "FMS Generic Download Segment", "ff.fms.gen_download_seg", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.12.1. Request Message Parameters + */ + { &hf_ff_fms_gen_download_seg_req, + { "FMS Generic Download Segment Request", + "ff.fms.gen_download_seg.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_gen_download_seg_req_idx, + { "Index", "ff.fms.gen_download_seg.req.idx", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_gen_download_seg_req_more_follows, + { "More Follows", "ff.fms.gen_download_seg.req.more_follows", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.12.1. Request Message Parameters - */ - { &hf_ff_fms_gen_download_seg_req, - { "FMS Generic Download Segment Request", - "ff.fms.gen_download_seg.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_gen_download_seg_req_idx, - { "Index", "ff.fms.gen_download_seg.req.idx", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_gen_download_seg_req_more_follows, - { "More Follows", "ff.fms.gen_download_seg.req.more_follows", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.12.2. Response Message Parameters + */ + { &hf_ff_fms_gen_download_seg_rsp, + { "FMS Generic Download Segment Response", + "ff.fms.gen_download_seg.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.12.2. Response Message Parameters - */ - { &hf_ff_fms_gen_download_seg_rsp, - { "FMS Generic Download Segment Response", - "ff.fms.gen_download_seg.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.12.3. Error Message Parameters + */ + { &hf_ff_fms_gen_download_seg_err, + { "FMS Generic Download Segment Error", + "ff.fms.gen_download_seg.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_gen_download_seg_err_err_class, + { "Error Class", "ff.fms.gen_download_seg.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_gen_download_seg_err_err_code, + { "Error Code", "ff.fms.gen_download_seg.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.12.3. Error Message Parameters - */ - { &hf_ff_fms_gen_download_seg_err, - { "FMS Generic Download Segment Error", - "ff.fms.gen_download_seg.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_gen_download_seg_err_additional_code, + { "Additional Code", "ff.fms.gen_download_seg.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_gen_download_seg_err_err_class, - { "Error Class", "ff.fms.gen_download_seg.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_gen_download_seg_err_additional_desc, + { "Additional Description", + "ff.fms.gen_download_seg.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_gen_download_seg_err_err_code, - { "Error Code", "ff.fms.gen_download_seg.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_gen_download_seg_err_additional_code, - { "Additional Code", "ff.fms.gen_download_seg.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_gen_download_seg_err_additional_desc, - { "Additional Description", - "ff.fms.gen_download_seg.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.13. FMS Generic Terminate Download Sequence + * (Confirmed Service Id = 33) + */ + { &hf_ff_fms_gen_terminate_download_seq, + { "FMS Generic Terminate Download Sequence", + "ff.fms.gen_terminate_download_seq", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.13. FMS Generic Terminate Download Sequence - * (Confirmed Service Id = 33) - */ - { &hf_ff_fms_gen_terminate_download_seq, - { "FMS Generic Terminate Download Sequence", - "ff.fms.gen_terminate_download_seq", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.13.1. Request Message Parameters + */ + { &hf_ff_fms_gen_terminate_download_seq_req, + { "FMS Generic Terminate Download Sequence Request", + "ff.fms.gen_terminate_download_seq.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_gen_terminate_download_seq_req_idx, + { "Index", "ff.fms.gen_terminate_download_seq.req.idx", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.13.1. Request Message Parameters - */ - { &hf_ff_fms_gen_terminate_download_seq_req, - { "FMS Generic Terminate Download Sequence Request", - "ff.fms.gen_terminate_download_seq.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_gen_terminate_download_seq_req_idx, - { "Index", "ff.fms.gen_terminate_download_seq.req.idx", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.13.2. Response Message Parameters + */ + { &hf_ff_fms_gen_terminate_download_seq_rsp, + { "FMS Generic Terminate Download Sequence Response", + "ff.fms.gen_terminate_download_seq.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_gen_terminate_download_seq_rsp_final_result, + { "Final Result", + "ff.fms.gen_terminate_download_seq.rsp.final_result", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.13.2. Response Message Parameters - */ - { &hf_ff_fms_gen_terminate_download_seq_rsp, - { "FMS Generic Terminate Download Sequence Response", - "ff.fms.gen_terminate_download_seq.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_gen_terminate_download_seq_rsp_final_result, - { "Final Result", - "ff.fms.gen_terminate_download_seq.rsp.final_result", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.13.3. Error Message Parameters + */ + { &hf_ff_fms_gen_terminate_download_seq_err, + { "FMS Generic Terminate Download Sequence Error", + "ff.fms.gen_terminate_download_seq.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_gen_terminate_download_seq_err_err_class, + { "Error Class", "ff.fms.gen_terminate_download_seq.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_gen_terminate_download_seq_err_err_code, + { "Error Code", "ff.fms.gen_terminate_download_seq.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.13.3. Error Message Parameters - */ - { &hf_ff_fms_gen_terminate_download_seq_err, - { "FMS Generic Terminate Download Sequence Error", - "ff.fms.gen_terminate_download_seq.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_gen_terminate_download_seq_err_additional_code, + { "Additional Code", + "ff.fms.gen_terminate_download_seq.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_gen_terminate_download_seq_err_err_class, - { "Error Class", "ff.fms.gen_terminate_download_seq.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_gen_terminate_download_seq_err_additional_desc, + { "Additional Description", + "ff.fms.gen_terminate_download_seq.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_gen_terminate_download_seq_err_err_code, - { "Error Code", "ff.fms.gen_terminate_download_seq.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_gen_terminate_download_seq_err_additional_code, - { "Additional Code", - "ff.fms.gen_terminate_download_seq.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_gen_terminate_download_seq_err_additional_desc, - { "Additional Description", - "ff.fms.gen_terminate_download_seq.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.14. FMS Initiate Download Sequence (Confirmed Service Id = 9) + */ + { &hf_ff_fms_init_download_seq, + { "FMS Initiate Download Sequence", + "ff.fms.init_download_seq", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.14. FMS Initiate Download Sequence (Confirmed Service Id = 9) - */ - { &hf_ff_fms_init_download_seq, - { "FMS Initiate Download Sequence", - "ff.fms.init_download_seq", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.14.1. Request Message Parameters + */ + { &hf_ff_fms_init_download_seq_req, + { "FMS Initiate Download Sequence Request", + "ff.fms.init_download_seq.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_download_seq_req_idx, + { "Index", "ff.fms.init_download_seq.req.idx", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.14.1. Request Message Parameters - */ - { &hf_ff_fms_init_download_seq_req, - { "FMS Initiate Download Sequence Request", - "ff.fms.init_download_seq.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_download_seq_req_idx, - { "Index", "ff.fms.init_download_seq.req.idx", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.14.2. Response Message Parameters + */ + { &hf_ff_fms_init_download_seq_rsp, + { "FMS Initiate Download Sequence Response", + "ff.fms.init_download_seq.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.14.2. Response Message Parameters - */ - { &hf_ff_fms_init_download_seq_rsp, - { "FMS Initiate Download Sequence Response", - "ff.fms.init_download_seq.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.14.3. Error Message Parameters + */ + { &hf_ff_fms_init_download_seq_err, + { "FMS Initiate Download Sequence Error", + "ff.fms.init_download_seq.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_download_seq_err_err_class, + { "Error Class", "ff.fms.init_download_seq.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_download_seq_err_err_code, + { "Error Code", "ff.fms.init_download_seq.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.14.3. Error Message Parameters - */ - { &hf_ff_fms_init_download_seq_err, - { "FMS Initiate Download Sequence Error", - "ff.fms.init_download_seq.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_download_seq_err_additional_code, + { "Additional Code", "ff.fms.init_download_seq.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_download_seq_err_err_class, - { "Error Class", "ff.fms.init_download_seq.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_download_seq_err_additional_desc, + { "Additional Description", + "ff.fms.init_download_seq.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_download_seq_err_err_code, - { "Error Code", "ff.fms.init_download_seq.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_download_seq_err_additional_code, - { "Additional Code", "ff.fms.init_download_seq.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_download_seq_err_additional_desc, - { "Additional Description", - "ff.fms.init_download_seq.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.15. FMS Download Segment (Confirmed Service Id = 10) + */ + { &hf_ff_fms_download_seg, + { "FMS Download Segment", "ff.fms.download_seg", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.15. FMS Download Segment (Confirmed Service Id = 10) - */ - { &hf_ff_fms_download_seg, - { "FMS Download Segment", "ff.fms.download_seg", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.15.1. Request Message Parameters + */ + { &hf_ff_fms_download_seg_req, + { "FMS Download Segment Request", "ff.fms.download_seg.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_download_seg_req_idx, + { "Index", "ff.fms.download_seg.req.idx", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.15.1. Request Message Parameters - */ - { &hf_ff_fms_download_seg_req, - { "FMS Download Segment Request", "ff.fms.download_seg.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_download_seg_req_idx, - { "Index", "ff.fms.download_seg.req.idx", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.15.2. Response Message Parameters + */ + { &hf_ff_fms_download_seg_rsp, + { "FMS Download Segment Response", "ff.fms.download_seg.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_download_seg_rsp_more_follows, + { "Final Result", "ff.fms.download_seg.rsp.more_follows", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.15.2. Response Message Parameters - */ - { &hf_ff_fms_download_seg_rsp, - { "FMS Download Segment Response", "ff.fms.download_seg.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_download_seg_rsp_more_follows, - { "Final Result", "ff.fms.download_seg.rsp.more_follows", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.15.3. Error Message Parameters + */ + { &hf_ff_fms_download_seg_err, + { "FMS Download Segment Error", "ff.fms.download_seg.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_download_seg_err_err_class, + { "Error Class", "ff.fms.download_seg.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_download_seg_err_err_code, + { "Error Code", "ff.fms.download_seg.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.15.3. Error Message Parameters - */ - { &hf_ff_fms_download_seg_err, - { "FMS Download Segment Error", "ff.fms.download_seg.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_download_seg_err_additional_code, + { "Additional Code", "ff.fms.download_seg.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_download_seg_err_err_class, - { "Error Class", "ff.fms.download_seg.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_download_seg_err_additional_desc, + { "Additional Description", + "ff.fms.download_seg.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_download_seg_err_err_code, - { "Error Code", "ff.fms.download_seg.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_download_seg_err_additional_code, - { "Additional Code", "ff.fms.download_seg.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_download_seg_err_additional_desc, - { "Additional Description", - "ff.fms.download_seg.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.16. FMS Terminate Download Sequence (Confirmed Service Id = 11) + */ + { &hf_ff_fms_terminate_download_seq, + { "FMS Terminate Download Sequence", + "ff.fms.terminate_download_seq", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.16. FMS Terminate Download Sequence (Confirmed Service Id = 11) - */ - { &hf_ff_fms_terminate_download_seq, - { "FMS Terminate Download Sequence", - "ff.fms.terminate_download_seq", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.16.1. Request Message Parameters + */ + { &hf_ff_fms_terminate_download_seq_req, + { "FMS Terminate Download Sequence Request", + "ff.fms.terminate_download_seq.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_terminate_download_seq_req_idx, + { "Index", "ff.fms.terminate_download_seq.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_terminate_download_seq_req_final_result, + { "Final Result", "ff.fms.terminate_download_seq.req.final_result", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.16.1. Request Message Parameters - */ - { &hf_ff_fms_terminate_download_seq_req, - { "FMS Terminate Download Sequence Request", - "ff.fms.terminate_download_seq.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_terminate_download_seq_req_idx, - { "Index", "ff.fms.terminate_download_seq.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_terminate_download_seq_req_final_result, - { "Final Result", "ff.fms.terminate_download_seq.req.final_result", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.16.2. Response Message Parameters + */ + { &hf_ff_fms_terminate_download_seq_rsp, + { "FMS Terminate Download Sequence Response", + "ff.fms.terminate_download_seq.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.16.2. Response Message Parameters - */ - { &hf_ff_fms_terminate_download_seq_rsp, - { "FMS Terminate Download Sequence Response", - "ff.fms.terminate_download_seq.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.16.3. Error Message Parameters + */ + { &hf_ff_fms_terminate_download_seq_err, + { "FMS Terminate Download Sequence Error", + "ff.fms.terminate_download_seq.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_terminate_download_seq_err_err_class, + { "Error Class", "ff.fms.terminate_download_seq.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_terminate_download_seq_err_err_code, + { "Error Code", "ff.fms.terminate_download_seq.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.16.3. Error Message Parameters - */ - { &hf_ff_fms_terminate_download_seq_err, - { "FMS Terminate Download Sequence Error", - "ff.fms.terminate_download_seq.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_terminate_download_seq_err_additional_code, + { "Additional Code", + "ff.fms.terminate_download_seq.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_terminate_download_seq_err_err_class, - { "Error Class", "ff.fms.terminate_download_seq.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_terminate_download_seq_err_additional_desc, + { "Additional Description", + "ff.fms.terminate_download_seq.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_terminate_download_seq_err_err_code, - { "Error Code", "ff.fms.terminate_download_seq.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_terminate_download_seq_err_additional_code, - { "Additional Code", - "ff.fms.terminate_download_seq.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_terminate_download_seq_err_additional_desc, - { "Additional Description", - "ff.fms.terminate_download_seq.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.17. FMS Initiate Upload Sequence (Confirmed Service Id = 12) + */ + { &hf_ff_fms_init_upload_seq, + { "FMS Initiate Upload Sequence", "ff.fms.init_upload_seq", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.17. FMS Initiate Upload Sequence (Confirmed Service Id = 12) - */ - { &hf_ff_fms_init_upload_seq, - { "FMS Initiate Upload Sequence", "ff.fms.init_upload_seq", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.17.1. Request Message Parameters + */ + { &hf_ff_fms_init_upload_seq_req, + { "FMS Initiate Upload Sequence Request", + "ff.fms.init_upload_seq.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_upload_seq_req_idx, + { "Index", "ff.fms.init_upload_seq.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.17.1. Request Message Parameters - */ - { &hf_ff_fms_init_upload_seq_req, - { "FMS Initiate Upload Sequence Request", - "ff.fms.init_upload_seq.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_upload_seq_req_idx, - { "Index", "ff.fms.init_upload_seq.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.17.2. Response Message Parameters + */ + { &hf_ff_fms_init_upload_seq_rsp, + { "FMS Initiate Upload Sequence Response", + "ff.fms.init_upload_seq.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.17.2. Response Message Parameters - */ - { &hf_ff_fms_init_upload_seq_rsp, - { "FMS Initiate Upload Sequence Response", - "ff.fms.init_upload_seq.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.17.3. Error Message Parameters + */ + { &hf_ff_fms_init_upload_seq_err, + { "FMS Initiate Upload Sequence Error", + "ff.fms.init_upload_seq.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_upload_seq_err_err_class, + { "Error Class", "ff.fms.init_upload_seq.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_upload_seq_err_err_code, + { "Error Code", "ff.fms.init_upload_seq.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.17.3. Error Message Parameters - */ - { &hf_ff_fms_init_upload_seq_err, - { "FMS Initiate Upload Sequence Error", - "ff.fms.init_upload_seq.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_upload_seq_err_additional_code, + { "Additional Code", "ff.fms.init_upload_seq.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_upload_seq_err_err_class, - { "Error Class", "ff.fms.init_upload_seq.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_init_upload_seq_err_additional_desc, + { "Additional Description", + "ff.fms.init_upload_seq.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_upload_seq_err_err_code, - { "Error Code", "ff.fms.init_upload_seq.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_upload_seq_err_additional_code, - { "Additional Code", "ff.fms.init_upload_seq.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_init_upload_seq_err_additional_desc, - { "Additional Description", - "ff.fms.init_upload_seq.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.18. FMS Upload Segment (Confirmed Service Id = 13) + */ + { &hf_ff_fms_upload_seg, + { "FMS Upload Segment", "ff.fms.upload_seg", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.18. FMS Upload Segment (Confirmed Service Id = 13) - */ - { &hf_ff_fms_upload_seg, - { "FMS Upload Segment", "ff.fms.upload_seg", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.18.1. Request Message Parameters + */ + { &hf_ff_fms_upload_seg_req, + { "FMS Upload Segment Request", "ff.fms.upload_seg.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_upload_seg_req_idx, + { "Index", "ff.fms.upload_seg.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.18.1. Request Message Parameters - */ - { &hf_ff_fms_upload_seg_req, - { "FMS Upload Segment Request", "ff.fms.upload_seg.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_upload_seg_req_idx, - { "Index", "ff.fms.upload_seg.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.18.2. Response Message Parameters + */ + { &hf_ff_fms_upload_seg_rsp, + { "FMS Upload Segment Response", "ff.fms.upload_seg.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_upload_seg_rsp_more_follows, + { "More Follows", "ff.fms.upload_seg.rsp.more_follows", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.18.2. Response Message Parameters - */ - { &hf_ff_fms_upload_seg_rsp, - { "FMS Upload Segment Response", "ff.fms.upload_seg.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_upload_seg_rsp_more_follows, - { "More Follows", "ff.fms.upload_seg.rsp.more_follows", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.18.3. Error Message Parameters + */ + { &hf_ff_fms_upload_seg_err, + { "FMS Upload Segment Error", "ff.fms.upload_seg.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_upload_seg_err_err_class, + { "Error Class", "ff.fms.upload_seg.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_upload_seg_err_err_code, + { "Error Code", "ff.fms.upload_seg.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.18.3. Error Message Parameters - */ - { &hf_ff_fms_upload_seg_err, - { "FMS Upload Segment Error", "ff.fms.upload_seg.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_upload_seg_err_additional_code, + { "Additional Code", "ff.fms.upload_seg.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_upload_seg_err_err_class, - { "Error Class", "ff.fms.upload_seg.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_upload_seg_err_additional_desc, + { "Additional Description", "ff.fms.upload_seg.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_upload_seg_err_err_code, - { "Error Code", "ff.fms.upload_seg.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_upload_seg_err_additional_code, - { "Additional Code", "ff.fms.upload_seg.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_upload_seg_err_additional_desc, - { "Additional Description", "ff.fms.upload_seg.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.19. FMS Terminate Upload Sequence (Confirmed Service Id = 14) + */ + { &hf_ff_fms_terminate_upload_seq, + { "FMS Terminate Upload Sequence", + "ff.fms.terminate_upload_seq", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.19. FMS Terminate Upload Sequence (Confirmed Service Id = 14) - */ - { &hf_ff_fms_terminate_upload_seq, - { "FMS Terminate Upload Sequence", - "ff.fms.terminate_upload_seq", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.19.1. Request Message Parameters + */ + { &hf_ff_fms_terminate_upload_seq_req, + { "FMS Terminate Upload Sequence Request", + "ff.fms.terminate_upload_seq.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_terminate_upload_seq_req_idx, + { "Index", "ff.fms.terminate_upload_seq.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.19.1. Request Message Parameters - */ - { &hf_ff_fms_terminate_upload_seq_req, - { "FMS Terminate Upload Sequence Request", - "ff.fms.terminate_upload_seq.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_terminate_upload_seq_req_idx, - { "Index", "ff.fms.terminate_upload_seq.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.19.2. Response Message Parameters + */ + { &hf_ff_fms_terminate_upload_seq_rsp, + { "FMS Terminate Upload Sequence Response", + "ff.fms.terminate_upload_seq.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.19.2. Response Message Parameters - */ - { &hf_ff_fms_terminate_upload_seq_rsp, - { "FMS Terminate Upload Sequence Response", - "ff.fms.terminate_upload_seq.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.19.3. Error Message Parameters + */ + { &hf_ff_fms_terminate_upload_seq_err, + { "FMS Terminate Upload Sequence Error", + "ff.fms.terminate_upload_seq.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_terminate_upload_seq_err_err_class, + { "Error Class", "ff.fms.terminate_upload_seq.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_terminate_upload_seq_err_err_code, + { "Error Code", "ff.fms.terminate_upload_seq.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.19.3. Error Message Parameters - */ - { &hf_ff_fms_terminate_upload_seq_err, - { "FMS Terminate Upload Sequence Error", - "ff.fms.terminate_upload_seq.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_terminate_upload_seq_err_additional_code, + { "Additional Code", + "ff.fms.terminate_upload_seq.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_terminate_upload_seq_err_err_class, - { "Error Class", "ff.fms.terminate_upload_seq.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_terminate_upload_seq_err_additional_desc, + { "Additional Description", + "ff.fms.terminate_upload_seq.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_terminate_upload_seq_err_err_code, - { "Error Code", "ff.fms.terminate_upload_seq.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_terminate_upload_seq_err_additional_code, - { "Additional Code", - "ff.fms.terminate_upload_seq.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_terminate_upload_seq_err_additional_desc, - { "Additional Description", - "ff.fms.terminate_upload_seq.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.20. FMS Request Domain Download (Confirmed Service Id = 15) + */ + { &hf_ff_fms_req_dom_download, + { "FMS Request Domain Download", "ff.fms.req_dom_download", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.20. FMS Request Domain Download (Confirmed Service Id = 15) - */ - { &hf_ff_fms_req_dom_download, - { "FMS Request Domain Download", "ff.fms.req_dom_download", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.20.1. Request Message Parameters + */ + { &hf_ff_fms_req_dom_download_req, + { "FMS Request Domain Download Request", + "ff.fms.req_dom_download.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_req_dom_download_req_idx, + { "Index", "ff.fms.req_dom_download.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_req_dom_download_req_additional_info, + { "Additional Description", + "ff.fms.req_dom_download.req.additional_info", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.20.1. Request Message Parameters - */ - { &hf_ff_fms_req_dom_download_req, - { "FMS Request Domain Download Request", - "ff.fms.req_dom_download.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_req_dom_download_req_idx, - { "Index", "ff.fms.req_dom_download.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_req_dom_download_req_additional_info, - { "Additional Description", - "ff.fms.req_dom_download.req.additional_info", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.20.2. Response Message Parameters + */ + { &hf_ff_fms_req_dom_download_rsp, + { "FMS Request Domain Download Response", + "ff.fms.req_dom_download.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.20.3. Error Message Parameters + */ + { &hf_ff_fms_req_dom_download_err, + { "FMS Request Domain Download Error", + "ff.fms.req_dom_download.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_req_dom_download_err_err_class, + { "Error Class", "ff.fms.req_dom_download.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, - /* - * 6.5.3.20.2. Response Message Parameters - */ - { &hf_ff_fms_req_dom_download_rsp, - { "FMS Request Domain Download Response", - "ff.fms.req_dom_download.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_req_dom_download_err_err_code, + { "Error Code", "ff.fms.req_dom_download.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.20.3. Error Message Parameters - */ - { &hf_ff_fms_req_dom_download_err, - { "FMS Request Domain Download Error", - "ff.fms.req_dom_download.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_req_dom_download_err_additional_code, + { "Additional Code", "ff.fms.req_dom_download.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_req_dom_download_err_err_class, - { "Error Class", "ff.fms.req_dom_download.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_req_dom_download_err_additional_desc, + { "Additional Description", + "ff.fms.req_dom_download.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_req_dom_download_err_err_code, - { "Error Code", "ff.fms.req_dom_download.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_req_dom_download_err_additional_code, - { "Additional Code", "ff.fms.req_dom_download.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_req_dom_download_err_additional_desc, - { "Additional Description", - "ff.fms.req_dom_download.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.21. FMS Request Domain Upload (Confirmed Service Id = 16) + */ + { &hf_ff_fms_req_dom_upload, + { "FMS Request Domain Upload", "ff.fms.req_dom_upload", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.21. FMS Request Domain Upload (Confirmed Service Id = 16) - */ - { &hf_ff_fms_req_dom_upload, - { "FMS Request Domain Upload", "ff.fms.req_dom_upload", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.21.1. Request Message Parameters + */ + { &hf_ff_fms_req_dom_upload_req, + { "FMS Request Domain Upload Request", "ff.fms.req_dom_upload.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_req_dom_upload_req_idx, + { "Index", "ff.fms.req_dom_upload.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_req_dom_upload_req_additional_info, + { "Additional Description", + "ff.fms.req_dom_upload.req.additional_info", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.21.1. Request Message Parameters - */ - { &hf_ff_fms_req_dom_upload_req, - { "FMS Request Domain Upload Request", "ff.fms.req_dom_upload.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_req_dom_upload_req_idx, - { "Index", "ff.fms.req_dom_upload.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_req_dom_upload_req_additional_info, - { "Additional Description", - "ff.fms.req_dom_upload.req.additional_info", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.21.2. Response Message Parameters + */ + { &hf_ff_fms_req_dom_upload_rsp, + { "FMS Request Domain Upload Response", "ff.fms.req_dom_upload.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.21.2. Response Message Parameters - */ - { &hf_ff_fms_req_dom_upload_rsp, - { "FMS Request Domain Upload Response", "ff.fms.req_dom_upload.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.21.3. Error Message Parameters + */ + { &hf_ff_fms_req_dom_upload_err, + { "FMS Request Domain Upload Error", "ff.fms.req_dom_upload.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_req_dom_upload_err_err_class, + { "Error Class", "ff.fms.req_dom_upload.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_req_dom_upload_err_err_code, + { "Error Code", "ff.fms.req_dom_upload.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.21.3. Error Message Parameters - */ - { &hf_ff_fms_req_dom_upload_err, - { "FMS Request Domain Upload Error", "ff.fms.req_dom_upload.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_req_dom_upload_err_additional_code, + { "Additional Code", "ff.fms.req_dom_upload.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_req_dom_upload_err_err_class, - { "Error Class", "ff.fms.req_dom_upload.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_req_dom_upload_err_additional_desc, + { "Additional Description", + "ff.fms.req_dom_upload.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_req_dom_upload_err_err_code, - { "Error Code", "ff.fms.req_dom_upload.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_req_dom_upload_err_additional_code, - { "Additional Code", "ff.fms.req_dom_upload.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_req_dom_upload_err_additional_desc, - { "Additional Description", - "ff.fms.req_dom_upload.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.22. FMS Create Program Invocation (Confirmed Service Id = 17) + */ + { &hf_ff_fms_create_pi, + { "FMS Create Program Invocation", "ff.fms.create_pi", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.22. FMS Create Program Invocation (Confirmed Service Id = 17) - */ - { &hf_ff_fms_create_pi, - { "FMS Create Program Invocation", "ff.fms.create_pi", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.22.1. Request Message Parameters + */ + { &hf_ff_fms_create_pi_req, + { "FMS Create Program Invocation Request", "ff.fms.create_pi.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_create_pi_req_reusable, + { "Reusable", "ff.fms.create_pi.req.reusable", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_create_pi_req_reserved, + { "Reserved", "ff.fms.create_pi.req.reserved", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.22.1. Request Message Parameters - */ - { &hf_ff_fms_create_pi_req, - { "FMS Create Program Invocation Request", "ff.fms.create_pi.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_create_pi_req_num_of_dom_idxes, + { "Number of Domain Indexes", + "ff.fms.create_pi.req.num_of_dom_idxes", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_create_pi_req_reusable, - { "Reusable", "ff.fms.create_pi.req.reusable", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_create_pi_req_dom_idx, + { "Domain Index", "ff.fms.create_pi.req.list_of_dom_idxes.dom_idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_create_pi_req_reserved, - { "Reserved", "ff.fms.create_pi.req.reserved", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_create_pi_req_num_of_dom_idxes, - { "Number of Domain Indexes", - "ff.fms.create_pi.req.num_of_dom_idxes", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_create_pi_req_dom_idx, - { "Domain Index", "ff.fms.create_pi.req.list_of_dom_idxes.dom_idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.22.2. Response Message Parameters + */ + { &hf_ff_fms_create_pi_rsp, + { "FMS Create Program Invocation Response", "ff.fms.create_pi.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_create_pi_rsp_idx, + { "Index", "ff.fms.create_pi.rsp.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.22.2. Response Message Parameters - */ - { &hf_ff_fms_create_pi_rsp, - { "FMS Create Program Invocation Response", "ff.fms.create_pi.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_create_pi_rsp_idx, - { "Index", "ff.fms.create_pi.rsp.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.22.3. Error Message Parameters + */ + { &hf_ff_fms_create_pi_err, + { "FMS Create Program Invocation Error", "ff.fms.create_pi.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_create_pi_err_err_class, + { "Error Class", "ff.fms.create_pi.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_create_pi_err_err_code, + { "Error Code", "ff.fms.create_pi.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.22.3. Error Message Parameters - */ - { &hf_ff_fms_create_pi_err, - { "FMS Create Program Invocation Error", "ff.fms.create_pi.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_create_pi_err_additional_code, + { "Additional Code", + "ff.fms.create_pi.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_create_pi_err_err_class, - { "Error Class", "ff.fms.create_pi.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_create_pi_err_additional_desc, + { "Additional Description", + "ff.fms.create_pi.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_create_pi_err_err_code, - { "Error Code", "ff.fms.create_pi.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_create_pi_err_additional_code, - { "Additional Code", - "ff.fms.create_pi.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_create_pi_err_additional_desc, - { "Additional Description", - "ff.fms.create_pi.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.23. FMS Delete Program Invocation (Confirmed Service Id = 18) + */ + { &hf_ff_fms_del_pi , + { "FMS Delete Program Invocation", "ff.fms.del_pi", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.23. FMS Delete Program Invocation (Confirmed Service Id = 18) - */ - { &hf_ff_fms_del_pi , - { "FMS Delete Program Invocation", "ff.fms.del_pi", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.23.1. Request Message Parameters + */ + { &hf_ff_fms_del_pi_req, + { "FMS Delete Program Invocation Request", "ff.fms.del_pi.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_del_pi_req_idx, + { "Index", "ff.fms.del_pi.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.23.1. Request Message Parameters - */ - { &hf_ff_fms_del_pi_req, - { "FMS Delete Program Invocation Request", "ff.fms.del_pi.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_del_pi_req_idx, - { "Index", "ff.fms.del_pi.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.23.2. Response Message Parameters + */ + { &hf_ff_fms_del_pi_rsp, + { "FMS Delete Program Invocation Response", "ff.fms.del_pi.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.23.2. Response Message Parameters - */ - { &hf_ff_fms_del_pi_rsp, - { "FMS Delete Program Invocation Response", "ff.fms.del_pi.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.23.3. Error Message Parameters + */ + { &hf_ff_fms_del_pi_err, + { "FMS Delete Program Invocation Error", "ff.fms.del_pi.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_del_pi_err_err_class, + { "Error Class", "ff.fms.del_pi.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_del_pi_err_err_code, + { "Error Code", "ff.fms.del_pi.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.23.3. Error Message Parameters - */ - { &hf_ff_fms_del_pi_err, - { "FMS Delete Program Invocation Error", "ff.fms.del_pi.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_del_pi_err_additional_code, + { "Additional Code", + "ff.fms.del_pi.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_del_pi_err_err_class, - { "Error Class", "ff.fms.del_pi.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_del_pi_err_additional_desc, + { "Additional Description", + "ff.fms.del_pi.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_del_pi_err_err_code, - { "Error Code", "ff.fms.del_pi.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_del_pi_err_additional_code, - { "Additional Code", - "ff.fms.del_pi.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_del_pi_err_additional_desc, - { "Additional Description", - "ff.fms.del_pi.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.24. FMS Start (Confirmed Service Id = 19) + */ + { &hf_ff_fms_start, + { "FMS Start", "ff.fms.start", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.24. FMS Start (Confirmed Service Id = 19) - */ - { &hf_ff_fms_start, - { "FMS Start", "ff.fms.start", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.24.1. Request Message Parameters + */ + { &hf_ff_fms_start_req, + { "FMS Start Request", "ff.fms.start.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_start_req_idx, + { "Index", "ff.fms.start.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.24.1. Request Message Parameters - */ - { &hf_ff_fms_start_req, - { "FMS Start Request", "ff.fms.start.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_start_req_idx, - { "Index", "ff.fms.start.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.24.2. Response Message Parameters + */ + { &hf_ff_fms_start_rsp, + { "FMS Start Response", "ff.fms.start.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.24.2. Response Message Parameters - */ - { &hf_ff_fms_start_rsp, - { "FMS Start Response", "ff.fms.start.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.24.3. PI Error Message Parameters + */ + { &hf_ff_fms_start_err, + { "FMS Start Error", "ff.fms.start.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_start_err_pi_state, + { "Pi State", "ff.fms.start.err.pi_state", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_start_err_err_class, + { "Error Class", "ff.fms.start.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, - /* - * 6.5.3.24.3. PI Error Message Parameters - */ - { &hf_ff_fms_start_err, - { "FMS Start Error", "ff.fms.start.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_start_err_err_code, + { "Error Code", "ff.fms.start.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_start_err_pi_state, - { "Pi State", "ff.fms.start.err.pi_state", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_start_err_additional_code, + { "Additional Code", "ff.fms.start.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_start_err_err_class, - { "Error Class", "ff.fms.start.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_start_err_additional_desc, + { "Additional Description", "ff.fms.start.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_start_err_err_code, - { "Error Code", "ff.fms.start.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_start_err_additional_code, - { "Additional Code", "ff.fms.start.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_start_err_additional_desc, - { "Additional Description", "ff.fms.start.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.25. FMS Stop (Confirmed Service Id = 20) + */ + { &hf_ff_fms_stop, + { "FMS Stop", "ff.fms.stop", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.25. FMS Stop (Confirmed Service Id = 20) - */ - { &hf_ff_fms_stop, - { "FMS Stop", "ff.fms.stop", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.25.1. Request Message Parameters + */ + { &hf_ff_fms_stop_req, + { "FMS Stop Request", "ff.fms.stop.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_stop_req_idx, + { "Index", "ff.fms.stop.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.25.1. Request Message Parameters - */ - { &hf_ff_fms_stop_req, - { "FMS Stop Request", "ff.fms.stop.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_stop_req_idx, - { "Index", "ff.fms.stop.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.25.2. Response Message Parameters + */ + { &hf_ff_fms_stop_rsp, + { "FMS Stop Response", "ff.fms.stop.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.25.2. Response Message Parameters - */ - { &hf_ff_fms_stop_rsp, - { "FMS Stop Response", "ff.fms.stop.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.25.3. Error Message Parameters + */ + { &hf_ff_fms_stop_err, + { "FMS Stop Error", "ff.fms.stop.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_stop_err_pi_state, + { "Pi State", "ff.fms.stop.err.pi_state", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_stop_err_err_class, + { "Error Class", "ff.fms.stop.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, - /* - * 6.5.3.25.3. Error Message Parameters - */ - { &hf_ff_fms_stop_err, - { "FMS Stop Error", "ff.fms.stop.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_stop_err_err_code, + { "Error Code", "ff.fms.stop.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_stop_err_pi_state, - { "Pi State", "ff.fms.stop.err.pi_state", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_stop_err_additional_code, + { "Additional Code", "ff.fms.stop.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_stop_err_err_class, - { "Error Class", "ff.fms.stop.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_stop_err_additional_desc, + { "Additional Description", "ff.fms.stop.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_stop_err_err_code, - { "Error Code", "ff.fms.stop.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_stop_err_additional_code, - { "Additional Code", "ff.fms.stop.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_stop_err_additional_desc, - { "Additional Description", "ff.fms.stop.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.26. FMS Resume (Confirmed Service Id = 21) + */ + { &hf_ff_fms_resume, + { "FMS Resume", "ff.fms.resume", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.26. FMS Resume (Confirmed Service Id = 21) - */ - { &hf_ff_fms_resume, - { "FMS Resume", "ff.fms.resume", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.26.1. Request Message Parameters + */ + { &hf_ff_fms_resume_req, + { "FMS Resume Request", "ff.fms.resume.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_resume_req_idx, + { "Index", "ff.fms.resume.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.26.1. Request Message Parameters - */ - { &hf_ff_fms_resume_req, - { "FMS Resume Request", "ff.fms.resume.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_resume_req_idx, - { "Index", "ff.fms.resume.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.26.2. Response Message Parameters + */ + { &hf_ff_fms_resume_rsp, + { "FMS Resume Response", "ff.fms.resume.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.26.2. Response Message Parameters - */ - { &hf_ff_fms_resume_rsp, - { "FMS Resume Response", "ff.fms.resume.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.26.3. Error Message Parameters + */ + { &hf_ff_fms_resume_err, + { "FMS Resume Error", "ff.fms.resume.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_resume_err_pi_state, + { "Pi State", "ff.fms.resume.err.pi_state", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_resume_err_err_class, + { "Error Class", "ff.fms.resume.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, - /* - * 6.5.3.26.3. Error Message Parameters - */ - { &hf_ff_fms_resume_err, - { "FMS Resume Error", "ff.fms.resume.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_resume_err_err_code, + { "Error Code", "ff.fms.resume.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_resume_err_pi_state, - { "Pi State", "ff.fms.resume.err.pi_state", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_resume_err_additional_code, + { "Additional Code", "ff.fms.resume.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_resume_err_err_class, - { "Error Class", "ff.fms.resume.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_resume_err_additional_desc, + { "Additional Description", "ff.fms.resume.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_resume_err_err_code, - { "Error Code", "ff.fms.resume.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_resume_err_additional_code, - { "Additional Code", "ff.fms.resume.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_resume_err_additional_desc, - { "Additional Description", "ff.fms.resume.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.27. FMS Reset (Confirmed Service Id = 22) + */ + { &hf_ff_fms_reset, + { "FMS Reset", "ff.fms.reset", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.27. FMS Reset (Confirmed Service Id = 22) - */ - { &hf_ff_fms_reset, - { "FMS Reset", "ff.fms.reset", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.27.1. Request Message Parameters + */ + { &hf_ff_fms_reset_req, + { "FMS Reset Request", "ff.fms.reset.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_reset_req_idx, + { "Index", "ff.fms.reset.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.27.1. Request Message Parameters - */ - { &hf_ff_fms_reset_req, - { "FMS Reset Request", "ff.fms.reset.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_reset_req_idx, - { "Index", "ff.fms.reset.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.27.2. Response Message Parameters + */ + { &hf_ff_fms_reset_rsp, + { "FMS Reset Response", "ff.fms.reset.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.27.2. Response Message Parameters - */ - { &hf_ff_fms_reset_rsp, - { "FMS Reset Response", "ff.fms.reset.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.27.3. Error Message Parameters + */ + { &hf_ff_fms_reset_err, + { "FMS Reset Error", "ff.fms.reset.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_reset_err_pi_state, + { "Pi State", "ff.fms.reset.err.pi_state", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_reset_err_err_class, + { "Error Class", "ff.fms.reset.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, - /* - * 6.5.3.27.3. Error Message Parameters - */ - { &hf_ff_fms_reset_err, - { "FMS Reset Error", "ff.fms.reset.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_reset_err_err_code, + { "Error Code", "ff.fms.reset.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_reset_err_pi_state, - { "Pi State", "ff.fms.reset.err.pi_state", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_reset_err_additional_code, + { "Additional Code", "ff.fms.reset.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_reset_err_err_class, - { "Error Class", "ff.fms.reset.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_reset_err_additional_desc, + { "Additional Description", "ff.fms.reset.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_reset_err_err_code, - { "Error Code", "ff.fms.reset.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_reset_err_additional_code, - { "Additional Code", "ff.fms.reset.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_reset_err_additional_desc, - { "Additional Description", "ff.fms.reset.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.28. FMS Kill (Confirmed Service Id = 23) + */ + { &hf_ff_fms_kill, + { "FMS Kill", "ff.fms.kill", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.28. FMS Kill (Confirmed Service Id = 23) - */ - { &hf_ff_fms_kill, - { "FMS Kill", "ff.fms.kill", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.28.1. Request Message Parameters + */ + { &hf_ff_fms_kill_req, + { "FMS Kill Request", "ff.fms.kill.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.28.1. Request Message Parameters - */ - { &hf_ff_fms_kill_req, - { "FMS Kill Request", "ff.fms.kill.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.28.2. Response Message Parameters + */ + { &hf_ff_fms_kill_rsp, + { "FMS Kill Response", "ff.fms.kill.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.28.2. Response Message Parameters - */ - { &hf_ff_fms_kill_rsp, - { "FMS Kill Response", "ff.fms.kill.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.28.3. Error Message Parameters + */ + { &hf_ff_fms_kill_err, + { "FMS Kill Error", "ff.fms.kill.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_kill_req_idx, + { "Index", "ff.fms.kill.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_kill_err_err_class, + { "Error Class", "ff.fms.kill.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, - /* - * 6.5.3.28.3. Error Message Parameters - */ - { &hf_ff_fms_kill_err, - { "FMS Kill Error", "ff.fms.kill.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_kill_err_err_code, + { "Error Code", "ff.fms.kill.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_kill_req_idx, - { "Index", "ff.fms.kill.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_kill_err_additional_code, + { "Additional Code", "ff.fms.kill.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_kill_err_err_class, - { "Error Class", "ff.fms.kill.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_kill_err_additional_desc, + { "Additional Description", "ff.fms.kill.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_kill_err_err_code, - { "Error Code", "ff.fms.kill.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_kill_err_additional_code, - { "Additional Code", "ff.fms.kill.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_kill_err_additional_desc, - { "Additional Description", "ff.fms.kill.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.29. FMS Read (Confirmed Service Id = 2) + */ + { &hf_ff_fms_read, + { "FMS Read", "ff.fms.read", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.29. FMS Read (Confirmed Service Id = 2) - */ - { &hf_ff_fms_read, - { "FMS Read", "ff.fms.read", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.29.1. Request Message Parameters + */ + { &hf_ff_fms_read_req, + { "FMS Read Request", "ff.fms.read.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_read_req_idx, + { "Index", "ff.fms.read.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.29.1. Request Message Parameters - */ - { &hf_ff_fms_read_req, - { "FMS Read Request", "ff.fms.read.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_read_req_idx, - { "Index", "ff.fms.read.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.29.2. Response Message Parameters + */ + { &hf_ff_fms_read_rsp, + { "FMS Read Response", "ff.fms.read.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.29.2. Response Message Parameters - */ - { &hf_ff_fms_read_rsp, - { "FMS Read Response", "ff.fms.read.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.29.3. Error Message Parameters + */ + { &hf_ff_fms_read_err, + { "FMS Read Error", "ff.fms.read.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_read_err_err_class, + { "Error Class", "ff.fms.read.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_read_err_err_code, + { "Error Code", "ff.fms.read.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.29.3. Error Message Parameters - */ - { &hf_ff_fms_read_err, - { "FMS Read Error", "ff.fms.read.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_read_err_additional_code, + { "Additional Code", "ff.fms.read.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_read_err_err_class, - { "Error Class", "ff.fms.read.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_read_err_additional_desc, + { "Additional Description", "ff.fms.read.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_read_err_err_code, - { "Error Code", "ff.fms.read.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_read_err_additional_code, - { "Additional Code", "ff.fms.read.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_read_err_additional_desc, - { "Additional Description", "ff.fms.read.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.30. FMS Read with Subindex (Confirmed Service Id = 82) + */ + { &hf_ff_fms_read_with_subidx, + { "FMS Read with Subindex", "ff.fms.read_with_subidx", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.30. FMS Read with Subindex (Confirmed Service Id = 82) - */ - { &hf_ff_fms_read_with_subidx, - { "FMS Read with Subindex", "ff.fms.read_with_subidx", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.30.1. Request Message Parameters + */ + { &hf_ff_fms_read_with_subidx_req, + { "FMS Read with Subindex Request", "ff.fms.read_with_subidx.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_read_with_subidx_req_idx, + { "Index", "ff.fms.read_with_subidx.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_read_with_subidx_req_subidx, + { "Index", "ff.fms.read_with_subidx.req.subidx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.30.1. Request Message Parameters - */ - { &hf_ff_fms_read_with_subidx_req, - { "FMS Read with Subindex Request", "ff.fms.read_with_subidx.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_read_with_subidx_req_idx, - { "Index", "ff.fms.read_with_subidx.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_read_with_subidx_req_subidx, - { "Index", "ff.fms.read_with_subidx.req.subidx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.30.2. Response Message Parameters + */ + { &hf_ff_fms_read_with_subidx_rsp, + { "FMS Read with Subindex Response", "ff.fms.read_with_subidx.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.30.2. Response Message Parameters - */ - { &hf_ff_fms_read_with_subidx_rsp, - { "FMS Read with Subindex Response", "ff.fms.read_with_subidx.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.30.3. Error Message Parameters + */ + { &hf_ff_fms_read_with_subidx_err, + { "FMS Read with Subindex Error", "ff.fms.read_with_subidx.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_read_with_subidx_err_err_class, + { "Error Class", "ff.fms.read_with_subidx.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_read_with_subidx_err_err_code, + { "Error Code", "ff.fms.read_with_subidx.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.30.3. Error Message Parameters - */ - { &hf_ff_fms_read_with_subidx_err, - { "FMS Read with Subindex Error", "ff.fms.read_with_subidx.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_read_with_subidx_err_additional_code, + { "Additional Code", "ff.fms.read_with_subidx.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_read_with_subidx_err_err_class, - { "Error Class", "ff.fms.read_with_subidx.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_read_with_subidx_err_additional_desc, + { "Additional Description", + "ff.fms.read_with_subidx.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_read_with_subidx_err_err_code, - { "Error Code", "ff.fms.read_with_subidx.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_read_with_subidx_err_additional_code, - { "Additional Code", "ff.fms.read_with_subidx.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_read_with_subidx_err_additional_desc, - { "Additional Description", - "ff.fms.read_with_subidx.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.31. FMS Write (Confirmed Service Id = 3) + */ + { &hf_ff_fms_write, + { "FMS Write", "ff.fms.write", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.31. FMS Write (Confirmed Service Id = 3) - */ - { &hf_ff_fms_write, - { "FMS Write", "ff.fms.write", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.31.1. Request Message Parameters + */ + { &hf_ff_fms_write_req, + { "FMS Write Request", "ff.fms.write.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_write_req_idx, + { "Index", "ff.fms.write.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.31.1. Request Message Parameters - */ - { &hf_ff_fms_write_req, - { "FMS Write Request", "ff.fms.write.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_write_req_idx, - { "Index", "ff.fms.write.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.31.2. Response Message Parameters + */ + { &hf_ff_fms_write_rsp, + { "FMS Write Response", "ff.fms.write.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.31.2. Response Message Parameters - */ - { &hf_ff_fms_write_rsp, - { "FMS Write Response", "ff.fms.write.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.31.3. Error Message Parameters + */ + { &hf_ff_fms_write_err, + { "FMS Write Error", "ff.fms.write.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_write_err_err_class, + { "Error Class", "ff.fms.write.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_write_err_err_code, + { "Error Code", "ff.fms.write.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.31.3. Error Message Parameters - */ - { &hf_ff_fms_write_err, - { "FMS Write Error", "ff.fms.write.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_write_err_additional_code, + { "Additional Code", "ff.fms.write.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_write_err_err_class, - { "Error Class", "ff.fms.write.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_write_err_additional_desc, + { "Additional Description", "ff.fms.write.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_write_err_err_code, - { "Error Code", "ff.fms.write.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_write_err_additional_code, - { "Additional Code", "ff.fms.write.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_write_err_additional_desc, - { "Additional Description", "ff.fms.write.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.32. FMS Write with Subindex (Confirmed Service Id = 83) + */ + { &hf_ff_fms_write_with_subidx, + { "FMS Write with Subindex", "ff.fms.write_with_subidx", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.32. FMS Write with Subindex (Confirmed Service Id = 83) - */ - { &hf_ff_fms_write_with_subidx, - { "FMS Write with Subindex", "ff.fms.write_with_subidx", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.32.1. Request Message Parameters + */ + { &hf_ff_fms_write_with_subidx_req, + { "FMS Write with Subindex Request", "ff.fms.write_with_subidx.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_write_with_subidx_req_idx, + { "Index", "ff.fms.write_with_subidx.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_write_with_subidx_req_subidx, + { "Index", "ff.fms.write_with_subidx.req.subidx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.32.1. Request Message Parameters - */ - { &hf_ff_fms_write_with_subidx_req, - { "FMS Write with Subindex Request", "ff.fms.write_with_subidx.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_write_with_subidx_req_idx, - { "Index", "ff.fms.write_with_subidx.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_write_with_subidx_req_subidx, - { "Index", "ff.fms.write_with_subidx.req.subidx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.32.2. Response Message Parameters + */ + { &hf_ff_fms_write_with_subidx_rsp, + { "FMS Write with Subindex Response", + "ff.fms.write_with_subidx.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.32.2. Response Message Parameters - */ - { &hf_ff_fms_write_with_subidx_rsp, - { "FMS Write with Subindex Response", - "ff.fms.write_with_subidx.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.32.3. Error Message Parameters + */ + { &hf_ff_fms_write_with_subidx_err, + { "FMS Write with Subindex Error", "ff.fms.write_with_subidx.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_write_with_subidx_err_err_class, + { "Error Class", "ff.fms.write_with_subidx.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_write_with_subidx_err_err_code, + { "Error Code", "ff.fms.write_with_subidx.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.32.3. Error Message Parameters - */ - { &hf_ff_fms_write_with_subidx_err, - { "FMS Write with Subindex Error", "ff.fms.write_with_subidx.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_write_with_subidx_err_additional_code, + { "Additional Code", "ff.fms.write_with_subidx.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_write_with_subidx_err_err_class, - { "Error Class", "ff.fms.write_with_subidx.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_write_with_subidx_err_additional_desc, + { "Additional Description", + "ff.fms.write_with_subidx.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_write_with_subidx_err_err_code, - { "Error Code", "ff.fms.write_with_subidx.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_write_with_subidx_err_additional_code, - { "Additional Code", "ff.fms.write_with_subidx.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_write_with_subidx_err_additional_desc, - { "Additional Description", - "ff.fms.write_with_subidx.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.33. FMS Define Variable List (Confirmed Service Id = 7) + */ + { &hf_ff_fms_def_variable_list, + { "FMS Define Variable List", "ff.fms.def_variable_list", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.33. FMS Define Variable List (Confirmed Service Id = 7) - */ - { &hf_ff_fms_def_variable_list, - { "FMS Define Variable List", "ff.fms.def_variable_list", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.33.1. Request Message Parameters + */ + { &hf_ff_fms_def_variable_list_req, + { "FMS Define Variable List Request", + "ff.fms.def_variable_list.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_def_variable_list_req_num_of_idxes, + { "Number of Indexes", "ff.fms.def_variable_list.req.num_of_idxes", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_def_variable_list_req_idx, + { "Index", "ff.fms.def_variable_list.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.33.1. Request Message Parameters - */ - { &hf_ff_fms_def_variable_list_req, - { "FMS Define Variable List Request", - "ff.fms.def_variable_list.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_def_variable_list_req_num_of_idxes, - { "Number of Indexes", "ff.fms.def_variable_list.req.num_of_idxes", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_def_variable_list_req_idx, - { "Index", "ff.fms.def_variable_list.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.33.2. Response Message Parameters + */ + { &hf_ff_fms_def_variable_list_rsp, + { "FMS Define Variable List Response", + "ff.fms.def_variable_list.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_def_variable_list_rsp_idx, + { "Index", "ff.fms.def_variable_list.rsp.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.33.2. Response Message Parameters - */ - { &hf_ff_fms_def_variable_list_rsp, - { "FMS Define Variable List Response", - "ff.fms.def_variable_list.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_def_variable_list_rsp_idx, - { "Index", "ff.fms.def_variable_list.rsp.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.33.3. Error Message Parameters + */ + { &hf_ff_fms_def_variable_list_err, + { "FMS Define Variable List Error", "ff.fms.def_variable_list.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_def_variable_list_err_err_class, + { "Error Class", "ff.fms.def_variable_list.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_def_variable_list_err_err_code, + { "Error Code", "ff.fms.def_variable_list.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.33.3. Error Message Parameters - */ - { &hf_ff_fms_def_variable_list_err, - { "FMS Define Variable List Error", "ff.fms.def_variable_list.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_def_variable_list_err_additional_code, + { "Additional Code", "ff.fms.def_variable_list.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_def_variable_list_err_err_class, - { "Error Class", "ff.fms.def_variable_list.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_def_variable_list_err_additional_desc, + { "Additional Description", + "ff.fms.def_variable_list.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_def_variable_list_err_err_code, - { "Error Code", "ff.fms.def_variable_list.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_def_variable_list_err_additional_code, - { "Additional Code", "ff.fms.def_variable_list.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_def_variable_list_err_additional_desc, - { "Additional Description", - "ff.fms.def_variable_list.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.34. FMS Delete Variable List (Confirmed Service Id = 8) + */ + { &hf_ff_fms_del_variable_list, + { "FMS Delete Variable List", "ff.fms.del_variable_list", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.34. FMS Delete Variable List (Confirmed Service Id = 8) - */ - { &hf_ff_fms_del_variable_list, - { "FMS Delete Variable List", "ff.fms.del_variable_list", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.34.1. Request Message Parameters + */ + { &hf_ff_fms_del_variable_list_req, + { "FMS Delete Variable List Request", + "ff.fms.del_variable_list.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_del_variable_list_req_idx, + { "Index", "ff.fms.del_variable_list.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.34.1. Request Message Parameters - */ - { &hf_ff_fms_del_variable_list_req, - { "FMS Delete Variable List Request", - "ff.fms.del_variable_list.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_del_variable_list_req_idx, - { "Index", "ff.fms.del_variable_list.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.34.2. Response Message Parameters + */ + { &hf_ff_fms_del_variable_list_rsp, + { "FMS Delete Variable List Response", + "ff.fms.del_variable_list.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.34.2. Response Message Parameters - */ - { &hf_ff_fms_del_variable_list_rsp, - { "FMS Delete Variable List Response", - "ff.fms.del_variable_list.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.34.3. Error Message Parameters + */ + { &hf_ff_fms_del_variable_list_err, + { "FMS Delete Variable List Error", "ff.fms.del_variable_list.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_del_variable_list_err_err_class, + { "Error Class", "ff.fms.del_variable_list.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_del_variable_list_err_err_code, + { "Error Code", "ff.fms.del_variable_list.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.34.3. Error Message Parameters - */ - { &hf_ff_fms_del_variable_list_err, - { "FMS Delete Variable List Error", "ff.fms.del_variable_list.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_del_variable_list_err_additional_code, + { "Additional Code", "ff.fms.del_variable_list.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_del_variable_list_err_err_class, - { "Error Class", "ff.fms.del_variable_list.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_del_variable_list_err_additional_desc, + { "Additional Description", + "ff.fms.del_variable_list.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_del_variable_list_err_err_code, - { "Error Code", "ff.fms.del_variable_list.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_del_variable_list_err_additional_code, - { "Additional Code", "ff.fms.del_variable_list.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_del_variable_list_err_additional_desc, - { "Additional Description", - "ff.fms.del_variable_list.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.35. FMS Information Report (Unconfirmed Service Id = 0) + */ + { &hf_ff_fms_info_report, + { "FMS Information Report", "ff.fms.info_report", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.35. FMS Information Report (Unconfirmed Service Id = 0) - */ - { &hf_ff_fms_info_report, - { "FMS Information Report", "ff.fms.info_report", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.35.1. Request Message Parameters + */ + { &hf_ff_fms_info_report_req, + { "FMS Information Report Request", "ff.fms.info_report.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_info_report_req_idx, + { "Index", "ff.fms.info_report.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.35.1. Request Message Parameters - */ - { &hf_ff_fms_info_report_req, - { "FMS Information Report Request", "ff.fms.info_report.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_info_report_req_idx, - { "Index", "ff.fms.info_report.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.36. FMS Information Report with Subindex + * (Unconfirmed Service Id = 16) + */ + { &hf_ff_fms_info_report_with_subidx, + { "FMS Information Report with Subindex", + "ff.fms.info_report_with_subidx", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.36. FMS Information Report with Subindex - * (Unconfirmed Service Id = 16) - */ - { &hf_ff_fms_info_report_with_subidx, - { "FMS Information Report with Subindex", - "ff.fms.info_report_with_subidx", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.36.1. Request Message Parameters + */ + { &hf_ff_fms_info_report_with_subidx_req, + { "FMS Information Report with Subindex Request", + "ff.fms.info_report_with_subidx.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_info_report_with_subidx_req_idx, + { "Index", "ff.fms.info_report_with_subidx.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_info_report_with_subidx_req_subidx, + { "Subindex", "ff.fms.info_report_with_subidx.req.subidx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.36.1. Request Message Parameters - */ - { &hf_ff_fms_info_report_with_subidx_req, - { "FMS Information Report with Subindex Request", - "ff.fms.info_report_with_subidx.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_info_report_with_subidx_req_idx, - { "Index", "ff.fms.info_report_with_subidx.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_info_report_with_subidx_req_subidx, - { "Subindex", "ff.fms.info_report_with_subidx.req.subidx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.37. FMS Information Report On Change + * (Unconfirmed Service Id = 17) + */ + { &hf_ff_fms_info_report_on_change, + { "FMS Information Report On Change with Subindex", + "ff.fms.info_report_on_change", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.37. FMS Information Report On Change - * (Unconfirmed Service Id = 17) - */ - { &hf_ff_fms_info_report_on_change, - { "FMS Information Report On Change with Subindex", - "ff.fms.info_report_on_change", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.37.1. Request Message Parameters + */ + { &hf_ff_fms_info_report_on_change_req, + { "FMS Information Report On Change with Subindex Request", + "ff.fms.info_report_on_change.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_info_report_on_change_req_idx, + { "Index", "ff.fms.info_report_on_change.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.37.1. Request Message Parameters - */ - { &hf_ff_fms_info_report_on_change_req, - { "FMS Information Report On Change with Subindex Request", - "ff.fms.info_report_on_change.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_info_report_on_change_req_idx, - { "Index", "ff.fms.info_report_on_change.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.38. FMS Information Report On Change with Subindex + * (Unconfirmed Service Id = 18) + */ + { &hf_ff_fms_info_report_on_change_with_subidx, + { "FMS Information Report On Change", + "ff.fms.info_report_on_change_with_subidx", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.38. FMS Information Report On Change with Subindex - * (Unconfirmed Service Id = 18) - */ - { &hf_ff_fms_info_report_on_change_with_subidx, - { "FMS Information Report On Change", - "ff.fms.info_report_on_change_with_subidx", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.38.1. Request Message Parameters + */ + { &hf_ff_fms_info_report_on_change_with_subidx_req, + { "FMS Information Report On Change Request", + "ff.fms.info_report_on_change_with_subidx.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_info_report_on_change_with_subidx_req_idx, + { "Index", "ff.fms.info_report_on_change_with_subidx.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_info_report_on_change_with_subidx_req_subidx, + { "Subindex", "ff.fms.info_report_on_change_with_subidx.req.subidx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.38.1. Request Message Parameters - */ - { &hf_ff_fms_info_report_on_change_with_subidx_req, - { "FMS Information Report On Change Request", - "ff.fms.info_report_on_change_with_subidx.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_info_report_on_change_with_subidx_req_idx, - { "Index", "ff.fms.info_report_on_change_with_subidx.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_info_report_on_change_with_subidx_req_subidx, - { "Subindex", "ff.fms.info_report_on_change_with_subidx.req.subidx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.39. FMS Event Notification (Unconfirmed Service Id = 2) + */ + { &hf_ff_fms_ev_notification, + { "FMS Event Notification", "ff.fms.ev_notification", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.39. FMS Event Notification (Unconfirmed Service Id = 2) - */ - { &hf_ff_fms_ev_notification, - { "FMS Event Notification", "ff.fms.ev_notification", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.39.1. Request Message Parameters + */ + { &hf_ff_fms_ev_notification_req, + { "FMS Event Notification Request", "ff.fms.ev_notification.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_ev_notification_req_idx, + { "Index", "ff.fms.ev_notification.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_ev_notification_req_ev_num, + { "Event Number", "ff.fms.ev_notification.req.ev_num", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.39.1. Request Message Parameters - */ - { &hf_ff_fms_ev_notification_req, - { "FMS Event Notification Request", "ff.fms.ev_notification.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_ev_notification_req_idx, - { "Index", "ff.fms.ev_notification.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_ev_notification_req_ev_num, - { "Event Number", "ff.fms.ev_notification.req.ev_num", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.40. FMS Alter Event Condition Monitoring + * (Confirmed Service Id = 24) + */ + { &hf_ff_fms_alter_ev_condition_monitoring, + { "FMS Alter Event Condition Monitoring", + "ff.fms.alter_ev_condition_monitoring", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.40. FMS Alter Event Condition Monitoring - * (Confirmed Service Id = 24) - */ - { &hf_ff_fms_alter_ev_condition_monitoring, - { "FMS Alter Event Condition Monitoring", - "ff.fms.alter_ev_condition_monitoring", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.40.1. Request Message Parameters + */ + { &hf_ff_fms_alter_ev_condition_monitoring_req, + { "FMS Alter Event Condition Monitoring Request", + "ff.fms.alter_ev_condition_monitoring.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_alter_ev_condition_monitoring_req_idx, + { "Index", "ff.fms.alter_ev_condition_monitoring.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_alter_ev_condition_monitoring_req_enabled, + { "Enabled", "ff.fms.alter_ev_condition_monitoring.req.enabled", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.40.1. Request Message Parameters - */ - { &hf_ff_fms_alter_ev_condition_monitoring_req, - { "FMS Alter Event Condition Monitoring Request", - "ff.fms.alter_ev_condition_monitoring.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_alter_ev_condition_monitoring_req_idx, - { "Index", "ff.fms.alter_ev_condition_monitoring.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_alter_ev_condition_monitoring_req_enabled, - { "Enabled", "ff.fms.alter_ev_condition_monitoring.req.enabled", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.40.2. Response Message Parameters + */ + { &hf_ff_fms_alter_ev_condition_monitoring_rsp, + { "FMS Alter Event Condition Monitoring Response", + "ff.fms.alter_ev_condition_monitoring.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.40.2. Response Message Parameters - */ - { &hf_ff_fms_alter_ev_condition_monitoring_rsp, - { "FMS Alter Event Condition Monitoring Response", - "ff.fms.alter_ev_condition_monitoring.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.40.3. Error Message Parameters + */ + { &hf_ff_fms_alter_ev_condition_monitoring_err, + { "FMS Alter Event Condition Monitoring Error", + "ff.fms.alter_ev_condition_monitoring.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_alter_ev_condition_monitoring_err_err_class, + { "Error Class", + "ff.fms.alter_ev_condition_monitoring.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_alter_ev_condition_monitoring_err_err_code, + { "Error Code", "ff.fms.alter_ev_condition_monitoring.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.40.3. Error Message Parameters - */ - { &hf_ff_fms_alter_ev_condition_monitoring_err, - { "FMS Alter Event Condition Monitoring Error", - "ff.fms.alter_ev_condition_monitoring.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_alter_ev_condition_monitoring_err_additional_code, + { "Additional Code", + "ff.fms.alter_ev_condition_monitoring.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_alter_ev_condition_monitoring_err_err_class, - { "Error Class", - "ff.fms.alter_ev_condition_monitoring.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_alter_ev_condition_monitoring_err_additional_desc, + { "Additional Description", + "ff.fms.alter_ev_condition_monitoring.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_alter_ev_condition_monitoring_err_err_code, - { "Error Code", "ff.fms.alter_ev_condition_monitoring.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_alter_ev_condition_monitoring_err_additional_code, - { "Additional Code", - "ff.fms.alter_ev_condition_monitoring.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_alter_ev_condition_monitoring_err_additional_desc, - { "Additional Description", - "ff.fms.alter_ev_condition_monitoring.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.41. FMS Acknowledge Event Notification + * (Confirmed Service Id = 25) + */ + { &hf_ff_fms_ack_ev_notification, + { "FMS Acknowledge Event Notification", + "ff.fms.ack_ev_notification", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.41. FMS Acknowledge Event Notification - * (Confirmed Service Id = 25) - */ - { &hf_ff_fms_ack_ev_notification, - { "FMS Acknowledge Event Notification", - "ff.fms.ack_ev_notification", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.41.1. Request Message Parameters + */ + { &hf_ff_fms_ack_ev_notification_req, + { "FMS Acknowledge Event Notification Request", + "ff.fms.ack_ev_notification.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_ack_ev_notification_req_idx, + { "Index", "ff.fms.ack_ev_notification.req.idx", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_ack_ev_notification_req_ev_num, + { "Event Number", "ff.fms.ack_ev_notification.req.ev_num", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.41.1. Request Message Parameters - */ - { &hf_ff_fms_ack_ev_notification_req, - { "FMS Acknowledge Event Notification Request", - "ff.fms.ack_ev_notification.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_ack_ev_notification_req_idx, - { "Index", "ff.fms.ack_ev_notification.req.idx", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_ack_ev_notification_req_ev_num, - { "Event Number", "ff.fms.ack_ev_notification.req.ev_num", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.41.2. Response Message Parameters + */ + { &hf_ff_fms_ack_ev_notification_rsp, + { "FMS Acknowledge Event Notification Response", + "ff.fms.ack_ev_notification.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.41.2. Response Message Parameters - */ - { &hf_ff_fms_ack_ev_notification_rsp, - { "FMS Acknowledge Event Notification Response", - "ff.fms.ack_ev_notification.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.3.41.3. Error Message Parameters + */ + { &hf_ff_fms_ack_ev_notification_err, + { "FMS Acknowledge Event Notification Error", + "ff.fms.ack_ev_notification.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_ack_ev_notification_err_err_class, + { "Error Class", "ff.fms.ack_ev_notification.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_fms_ack_ev_notification_err_err_code, + { "Error Code", "ff.fms.ack_ev_notification.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.3.41.3. Error Message Parameters - */ - { &hf_ff_fms_ack_ev_notification_err, - { "FMS Acknowledge Event Notification Error", - "ff.fms.ack_ev_notification.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_fms_ack_ev_notification_err_additional_code, + { "Additional Code", + "ff.fms.ack_ev_notification.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_ack_ev_notification_err_err_class, - { "Error Class", "ff.fms.ack_ev_notification.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, + { &hf_ff_fms_ack_ev_notification_err_additional_desc, + { "Additional Description", + "ff.fms.ack_ev_notification.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_ack_ev_notification_err_err_code, - { "Error Code", "ff.fms.ack_ev_notification.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_ack_ev_notification_err_additional_code, - { "Additional Code", - "ff.fms.ack_ev_notification.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_fms_ack_ev_notification_err_additional_desc, - { "Additional Description", - "ff.fms.ack_ev_notification.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.4. LAN Redundancy Services + */ + { &hf_ff_lr, + { "LAN Redundancy Service", "ff.lr", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + + + /* + * 6.5.4.1. LAN Redundancy Get Information (Confirmed Service Id = 1) + */ + { &hf_ff_lr_get_info, + { "LAN Redundancy Get Information", + "ff.lr.get_info", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.4. LAN Redundancy Services - */ - { &hf_ff_lr, - { "LAN Redundancy Service", "ff.lr", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - - - /* - * 6.5.4.1. LAN Redundancy Get Information (Confirmed Service Id = 1) - */ - { &hf_ff_lr_get_info, - { "LAN Redundancy Get Information", - "ff.lr.get_info", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.4.1.1. Request Message Parameters + */ + { &hf_ff_lr_get_info_req, + { "LAN Redundancy Get Information Request", + "ff.lr.get_info.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.4.1.1. Request Message Parameters - */ - { &hf_ff_lr_get_info_req, - { "LAN Redundancy Get Information Request", - "ff.lr.get_info.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.4.1.2. Response Message Parameters + */ + { &hf_ff_lr_get_info_rsp, + { "LAN Redundancy Get Information Response", + "ff.lr.get_info.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_get_info_rsp_lr_attrs_ver, + { "LAN Redundancy Attributes Version", + "ff.lr.get_info.rsp.lr_attrs_ver", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_lr_get_info_rsp_lr_max_msg_num_diff, + { "Max Message Number Difference", + "ff.lr.get_info.rsp.max_msg_num_diff", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_get_info_rsp_reserved, + { "Reserved", + "ff.lr.get_info.rsp.reserved", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_lr_get_info_rsp_diagnostic_msg_intvl, + { "Diagnostic Message Interval", + "ff.lr.get_info.rsp.diagnostic_msg_intvl", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.4.1.2. Response Message Parameters - */ - { &hf_ff_lr_get_info_rsp, - { "LAN Redundancy Get Information Response", - "ff.lr.get_info.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_get_info_rsp_lr_attrs_ver, - { "LAN Redundancy Attributes Version", - "ff.lr.get_info.rsp.lr_attrs_ver", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_lr_get_info_rsp_aging_time, + { "Aging Time", + "ff.lr.get_info.rsp.aging_time", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_send_addr, + { "Diagnostic Message Interface A Send Address", + "ff.lr.get_info.rsp.diagnostic_msg_if_a_send_addr", + FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_recv_addr, + { "Diagnostic Message Interface A Receive Address", + "ff.lr.get_info.rsp.diagnostic_msg_if_a_recv_addr", + FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_send_addr, + { "Diagnostic Message Interface B Send Address", + "ff.lr.get_info.rsp.diagnostic_msg_if_b_send_addr", + FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_recv_addr, + { "Diagnostic Message Interface B Receive Address", + "ff.lr.get_info.rsp.diagnostic_msg_if_b_recv_addr", + FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_get_info_rsp_lr_flags_reserved, + { "Reserved", + "ff.lr.get_info.rsp.lr_flags.reserved", + FT_UINT8, BASE_HEX, NULL, 0xE0, NULL, HFILL } }, + + { &hf_ff_lr_get_info_rsp_lr_flags_load_balance, + { "Load Balancing", + "ff.lr.get_info.rsp.lr_flags.load_balance", + FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x10, NULL, HFILL } }, + + { &hf_ff_lr_get_info_rsp_lr_flags_diag, + { "Diagnosis Using Own Messages", + "ff.lr.get_info.rsp.lr_flags.diag", + FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x08, NULL, HFILL } }, + + { &hf_ff_lr_get_info_rsp_lr_flags_multi_recv, + { "Single Multicast Message Reception Interface", + "ff.lr.get_info.rsp.lr_flags.multi_recv", + FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x04, NULL, HFILL } }, + + { &hf_ff_lr_get_info_rsp_lr_flags_cross_cable, + { "Crossed Cable Detection", + "ff.lr.get_info.rsp.lr_flags.cross_cable", + FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x02, NULL, HFILL } }, + + { &hf_ff_lr_get_info_rsp_lr_flags_multi_trans, + { "Single Multicast Message Transmission Interface", + "ff.lr.get_info.rsp.lr_flags.multi_trans", + FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x01, NULL, HFILL } }, + + + + /* + * 6.5.4.1.3. Error Message Parameters + */ + { &hf_ff_lr_get_info_err, + { "LAN Redundancy Get Information Error", + "ff.lr.get_info.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_get_info_err_err_class, + { "Error Class", "ff.lr.get_info.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_get_info_err_err_code, + { "Error Code", "ff.lr.get_info.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_get_info_err_additional_code, + { "Additional Code", + "ff.lr.get_info.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_get_info_err_additional_desc, + { "Additional Description", + "ff.lr.get_info.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + + + /* + * 6.5.4.2. LAN Redundancy Put Information (Confirmed Service Id = 2) + */ + { &hf_ff_lr_put_info, + { "LAN Redundancy Put Information", "ff.lr.put_info", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + + + /* + * 6.5.4.2.1. Request Message Parameters + */ + { &hf_ff_lr_put_info_req, + { "LAN Redundancy Put Information Request", "ff.lr.put_info.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_req_lr_attrs_ver, + { "LAN Redundancy Attributes Version", + "ff.lr.put_info.req.lr_attrs_ver", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_req_lr_max_msg_num_diff, + { "Max Message Number Difference", + "ff.lr.put_info.req.max_msg_num_diff", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_req_reserved, + { "Reserved", + "ff.lr.put_info.req.reserved", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_req_diagnostic_msg_intvl, + { "Diagnostic Message Interval", + "ff.lr.put_info.req.diagnostic_msg_intvl", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_req_aging_time, + { "Aging Time", + "ff.lr.put_info.req.aging_time", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_req_diagnostic_msg_if_a_send_addr, + { "Diagnostic Message Interface A Send Address", + "ff.lr.put_info.req.diagnostic_msg_if_a_send_addr", + FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_req_diagnostic_msg_if_a_recv_addr, + { "Diagnostic Message Interface A Receive Address", + "ff.lr.put_info.req.diagnostic_msg_if_a_recv_addr", + FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_req_diagnostic_msg_if_b_send_addr, + { "Diagnostic Message Interface B Send Address", + "ff.lr.put_info.req.diagnostic_msg_if_b_send_addr", + FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_req_diagnostic_msg_if_b_recv_addr, + { "Diagnostic Message Interface B Receive Address", + "ff.lr.put_info.req.diagnostic_msg_if_b_recv_addr", + FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_req_lr_flags_reserved, + { "Reserved", + "ff.lr.put_info.req.lr_flags.reserved", + FT_UINT8, BASE_HEX, NULL, 0xE0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_req_lr_flags_load_balance, + { "Load Balancing", + "ff.lr.put_info.req.lr_flags.load_balance", + FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x10, NULL, HFILL } }, + + { &hf_ff_lr_put_info_req_lr_flags_diag, + { "Diagnosis Using Own Messages", + "ff.lr.put_info.req.lr_flags.diag", + FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x08, NULL, HFILL } }, + + { &hf_ff_lr_put_info_req_lr_flags_multi_recv, + { "Single Multicast Message Reception Interface", + "ff.lr.put_info.req.lr_flags.multi_recv", + FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x04, NULL, HFILL } }, + + { &hf_ff_lr_put_info_req_lr_flags_cross_cable, + { "Crossed Cable Detection", + "ff.lr.put_info.req.lr_flags.cross_cable", + FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x02, NULL, HFILL } }, + + { &hf_ff_lr_put_info_req_lr_flags_multi_trans, + { "Single Multicast Message Transmission Interface", + "ff.lr.put_info.req.lr_flags.multi_trans", + FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x01, NULL, HFILL } }, + + + /* + * 6.5.4.2.2. Response Message Parameters + */ + { &hf_ff_lr_put_info_rsp, + { "LAN Redundancy Put Information Response", + "ff.lr.put_info.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_rsp_lr_attrs_ver, + { "LAN Redundancy Attributes Version", + "ff.lr.put_info.rsp.lr_attrs_ver", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_rsp_lr_max_msg_num_diff, + { "Max Message Number Difference", + "ff.lr.put_info.rsp.max_msg_num_diff", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_rsp_reserved, + { "Reserved", + "ff.lr.put_info.rsp.reserved", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_rsp_diagnostic_msg_intvl, + { "Diagnostic Message Interval", + "ff.lr.put_info.rsp.diagnostic_msg_intvl", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_rsp_aging_time, + { "Aging Time", + "ff.lr.put_info.rsp.aging_time", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_send_addr, + { "Diagnostic Message Interface A Send Address", + "ff.lr.put_info.rsp.diagnostic_msg_if_a_send_addr", + FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_recv_addr, + { "Diagnostic Message Interface A Receive Address", + "ff.lr.put_info.rsp.diagnostic_msg_if_a_recv_addr", + FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_send_addr, + { "Diagnostic Message Interface B Send Address", + "ff.lr.put_info.rsp.diagnostic_msg_if_b_send_addr", + FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_recv_addr, + { "Diagnostic Message Interface B Receive Address", + "ff.lr.put_info.rsp.diagnostic_msg_if_b_recv_addr", + FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_rsp_lr_flags_reserved, + { "Reserved", + "ff.lr.put_info.rsp.lr_flags.reserved", + FT_UINT8, BASE_HEX, NULL, 0xE0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_rsp_lr_flags_load_balance, + { "Load Balancing", + "ff.lr.put_info.rsp.lr_flags.load_balance", + FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x10, NULL, HFILL } }, + + { &hf_ff_lr_put_info_rsp_lr_flags_diag, + { "Diagnosis Using Own Messages", + "ff.lr.put_info.rsp.lr_flags.diag", + FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x08, NULL, HFILL } }, + + { &hf_ff_lr_put_info_rsp_lr_flags_multi_recv, + { "Single Multicast Message Reception Interface", + "ff.lr.put_info.rsp.lr_flags.multi_recv", + FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x04, NULL, HFILL } }, + + { &hf_ff_lr_put_info_rsp_lr_flags_cross_cable, + { "Crossed Cable Detection", + "ff.lr.put_info.rsp.lr_flags.cross_cable", + FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x02, NULL, HFILL } }, + + { &hf_ff_lr_put_info_rsp_lr_flags_multi_trans, + { "Single Multicast Message Transmission Interface", + "ff.lr.put_info.rsp.lr_flags.multi_trans", + FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x01, NULL, HFILL } }, + + + /* + * 6.5.4.2.3. Error Message Parameters + */ + { &hf_ff_lr_put_info_err, + { "LAN Redundancy Put Information Error", "ff.lr.put_info.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_err_err_class, + { "Error Class", "ff.lr.put_info.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_err_err_code, + { "Error Code", "ff.lr.put_info.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_err_additional_code, + { "Additional Code", + "ff.lr.put_info.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_put_info_err_additional_desc, + { "Additional Description", + "ff.lr.put_info.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + + + /* + * 6.5.4.3. LAN Redundancy Get Statistics (Confirmed Service Id = 3) + */ + { &hf_ff_lr_get_statistics, + { "LAN Redundancy Get Statistics", + "ff.lr.get_statistics", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + + + /* + * 6.5.4.3.1. Request Message Parameters + */ + { &hf_ff_lr_get_statistics_req, + { "LAN Redundancy Get Statistics Request", + "ff.lr.get_statistics.req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + + + /* + * 6.5.4.3.2. Response Message Parameters + */ + { &hf_ff_lr_get_statistics_rsp, + { "LAN Redundancy Get Statistics Response", + "ff.lr.get_statistics.rsp", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_a, + { "Error Code", "ff.lr.get_statistics.rsp.num_diag_svr_ind_recv_a", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_lr_get_info_rsp_lr_max_msg_num_diff, - { "Max Message Number Difference", - "ff.lr.get_info.rsp.max_msg_num_diff", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_get_info_rsp_reserved, - { "Reserved", - "ff.lr.get_info.rsp.reserved", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_a, + { "Error Code", "ff.lr.get_statistics.rsp.num_diag_svr_ind_miss_a", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_lr_get_info_rsp_diagnostic_msg_intvl, - { "Diagnostic Message Interval", - "ff.lr.get_info.rsp.diagnostic_msg_intvl", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_a, + { "Error Code", + "ff.lr.get_statistics.rsp.num_rem_dev_diag_recv_fault_a", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_lr_get_info_rsp_aging_time, - { "Aging Time", - "ff.lr.get_info.rsp.aging_time", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_send_addr, - { "Diagnostic Message Interface A Send Address", - "ff.lr.get_info.rsp.diagnostic_msg_if_a_send_addr", - FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_get_info_rsp_diagnostic_msg_if_a_recv_addr, - { "Diagnostic Message Interface A Receive Address", - "ff.lr.get_info.rsp.diagnostic_msg_if_a_recv_addr", - FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_send_addr, - { "Diagnostic Message Interface B Send Address", - "ff.lr.get_info.rsp.diagnostic_msg_if_b_send_addr", - FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_get_info_rsp_diagnostic_msg_if_b_recv_addr, - { "Diagnostic Message Interface B Receive Address", - "ff.lr.get_info.rsp.diagnostic_msg_if_b_recv_addr", - FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_get_info_rsp_lr_flags_reserved, - { "Reserved", - "ff.lr.get_info.rsp.lr_flags.reserved", - FT_UINT8, BASE_HEX, NULL, 0xE0, NULL, HFILL } }, - - { &hf_ff_lr_get_info_rsp_lr_flags_load_balance, - { "Load Balancing", - "ff.lr.get_info.rsp.lr_flags.load_balance", - FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x10, NULL, HFILL } }, - - { &hf_ff_lr_get_info_rsp_lr_flags_diag, - { "Diagnosis Using Own Messages", - "ff.lr.get_info.rsp.lr_flags.diag", - FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x08, NULL, HFILL } }, - - { &hf_ff_lr_get_info_rsp_lr_flags_multi_recv, - { "Single Multicast Message Reception Interface", - "ff.lr.get_info.rsp.lr_flags.multi_recv", - FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x04, NULL, HFILL } }, - - { &hf_ff_lr_get_info_rsp_lr_flags_cross_cable, - { "Crossed Cable Detection", - "ff.lr.get_info.rsp.lr_flags.cross_cable", - FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x02, NULL, HFILL } }, - - { &hf_ff_lr_get_info_rsp_lr_flags_multi_trans, - { "Single Multicast Message Transmission Interface", - "ff.lr.get_info.rsp.lr_flags.multi_trans", - FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x01, NULL, HFILL } }, - - - - /* - * 6.5.4.1.3. Error Message Parameters - */ - { &hf_ff_lr_get_info_err, - { "LAN Redundancy Get Information Error", - "ff.lr.get_info.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_get_info_err_err_class, - { "Error Class", "ff.lr.get_info.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, - - { &hf_ff_lr_get_info_err_err_code, - { "Error Code", "ff.lr.get_info.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_get_info_err_additional_code, - { "Additional Code", - "ff.lr.get_info.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_get_info_err_additional_desc, - { "Additional Description", - "ff.lr.get_info.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - - - /* - * 6.5.4.2. LAN Redundancy Put Information (Confirmed Service Id = 2) - */ - { &hf_ff_lr_put_info, - { "LAN Redundancy Put Information", "ff.lr.put_info", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - - - /* - * 6.5.4.2.1. Request Message Parameters - */ - { &hf_ff_lr_put_info_req, - { "LAN Redundancy Put Information Request", "ff.lr.put_info.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_req_lr_attrs_ver, - { "LAN Redundancy Attributes Version", - "ff.lr.put_info.req.lr_attrs_ver", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_req_lr_max_msg_num_diff, - { "Max Message Number Difference", - "ff.lr.put_info.req.max_msg_num_diff", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_req_reserved, - { "Reserved", - "ff.lr.put_info.req.reserved", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_req_diagnostic_msg_intvl, - { "Diagnostic Message Interval", - "ff.lr.put_info.req.diagnostic_msg_intvl", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_req_aging_time, - { "Aging Time", - "ff.lr.put_info.req.aging_time", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_req_diagnostic_msg_if_a_send_addr, - { "Diagnostic Message Interface A Send Address", - "ff.lr.put_info.req.diagnostic_msg_if_a_send_addr", - FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_req_diagnostic_msg_if_a_recv_addr, - { "Diagnostic Message Interface A Receive Address", - "ff.lr.put_info.req.diagnostic_msg_if_a_recv_addr", - FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_req_diagnostic_msg_if_b_send_addr, - { "Diagnostic Message Interface B Send Address", - "ff.lr.put_info.req.diagnostic_msg_if_b_send_addr", - FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_req_diagnostic_msg_if_b_recv_addr, - { "Diagnostic Message Interface B Receive Address", - "ff.lr.put_info.req.diagnostic_msg_if_b_recv_addr", - FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_req_lr_flags_reserved, - { "Reserved", - "ff.lr.put_info.req.lr_flags.reserved", - FT_UINT8, BASE_HEX, NULL, 0xE0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_req_lr_flags_load_balance, - { "Load Balancing", - "ff.lr.put_info.req.lr_flags.load_balance", - FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x10, NULL, HFILL } }, - - { &hf_ff_lr_put_info_req_lr_flags_diag, - { "Diagnosis Using Own Messages", - "ff.lr.put_info.req.lr_flags.diag", - FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x08, NULL, HFILL } }, - - { &hf_ff_lr_put_info_req_lr_flags_multi_recv, - { "Single Multicast Message Reception Interface", - "ff.lr.put_info.req.lr_flags.multi_recv", - FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x04, NULL, HFILL } }, - - { &hf_ff_lr_put_info_req_lr_flags_cross_cable, - { "Crossed Cable Detection", - "ff.lr.put_info.req.lr_flags.cross_cable", - FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x02, NULL, HFILL } }, - - { &hf_ff_lr_put_info_req_lr_flags_multi_trans, - { "Single Multicast Message Transmission Interface", - "ff.lr.put_info.req.lr_flags.multi_trans", - FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x01, NULL, HFILL } }, - - - /* - * 6.5.4.2.2. Response Message Parameters - */ - { &hf_ff_lr_put_info_rsp, - { "LAN Redundancy Put Information Response", - "ff.lr.put_info.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_rsp_lr_attrs_ver, - { "LAN Redundancy Attributes Version", - "ff.lr.put_info.rsp.lr_attrs_ver", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_rsp_lr_max_msg_num_diff, - { "Max Message Number Difference", - "ff.lr.put_info.rsp.max_msg_num_diff", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_rsp_reserved, - { "Reserved", - "ff.lr.put_info.rsp.reserved", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_rsp_diagnostic_msg_intvl, - { "Diagnostic Message Interval", - "ff.lr.put_info.rsp.diagnostic_msg_intvl", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_rsp_aging_time, - { "Aging Time", - "ff.lr.put_info.rsp.aging_time", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_send_addr, - { "Diagnostic Message Interface A Send Address", - "ff.lr.put_info.rsp.diagnostic_msg_if_a_send_addr", - FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_rsp_diagnostic_msg_if_a_recv_addr, - { "Diagnostic Message Interface A Receive Address", - "ff.lr.put_info.rsp.diagnostic_msg_if_a_recv_addr", - FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_send_addr, - { "Diagnostic Message Interface B Send Address", - "ff.lr.put_info.rsp.diagnostic_msg_if_b_send_addr", - FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_rsp_diagnostic_msg_if_b_recv_addr, - { "Diagnostic Message Interface B Receive Address", - "ff.lr.put_info.rsp.diagnostic_msg_if_b_recv_addr", - FT_IPv6, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_rsp_lr_flags_reserved, - { "Reserved", - "ff.lr.put_info.rsp.lr_flags.reserved", - FT_UINT8, BASE_HEX, NULL, 0xE0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_rsp_lr_flags_load_balance, - { "Load Balancing", - "ff.lr.put_info.rsp.lr_flags.load_balance", - FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x10, NULL, HFILL } }, - - { &hf_ff_lr_put_info_rsp_lr_flags_diag, - { "Diagnosis Using Own Messages", - "ff.lr.put_info.rsp.lr_flags.diag", - FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x08, NULL, HFILL } }, - - { &hf_ff_lr_put_info_rsp_lr_flags_multi_recv, - { "Single Multicast Message Reception Interface", - "ff.lr.put_info.rsp.lr_flags.multi_recv", - FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x04, NULL, HFILL } }, - - { &hf_ff_lr_put_info_rsp_lr_flags_cross_cable, - { "Crossed Cable Detection", - "ff.lr.put_info.rsp.lr_flags.cross_cable", - FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x02, NULL, HFILL } }, - - { &hf_ff_lr_put_info_rsp_lr_flags_multi_trans, - { "Single Multicast Message Transmission Interface", - "ff.lr.put_info.rsp.lr_flags.multi_trans", - FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x01, NULL, HFILL } }, - - - /* - * 6.5.4.2.3. Error Message Parameters - */ - { &hf_ff_lr_put_info_err, - { "LAN Redundancy Put Information Error", "ff.lr.put_info.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_err_err_class, - { "Error Class", "ff.lr.put_info.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_err_err_code, - { "Error Code", "ff.lr.put_info.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_err_additional_code, - { "Additional Code", - "ff.lr.put_info.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_put_info_err_additional_desc, - { "Additional Description", - "ff.lr.put_info.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - - - /* - * 6.5.4.3. LAN Redundancy Get Statistics (Confirmed Service Id = 3) - */ - { &hf_ff_lr_get_statistics, - { "LAN Redundancy Get Statistics", - "ff.lr.get_statistics", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - - - /* - * 6.5.4.3.1. Request Message Parameters - */ - { &hf_ff_lr_get_statistics_req, - { "LAN Redundancy Get Statistics Request", - "ff.lr.get_statistics.req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - - - /* - * 6.5.4.3.2. Response Message Parameters - */ - { &hf_ff_lr_get_statistics_rsp, - { "LAN Redundancy Get Statistics Response", - "ff.lr.get_statistics.rsp", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_a, - { "Error Code", "ff.lr.get_statistics.rsp.num_diag_svr_ind_recv_a", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_b, + { "Error Code", "ff.lr.get_statistics.rsp.num_diag_svr_ind_recv_b", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_b, + { "Error Code", "ff.lr.get_statistics.rsp.num_diag_svr_ind_miss_b", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_b, + { "Error Code", + "ff.lr.get_statistics.rsp.num_rem_dev_diag_recv_fault_b", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_get_statistics_rsp_num_x_cable_stat, + { "Error Code", "ff.lr.get_statistics.rsp.num_x_cable_stat", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_get_statistics_rsp_x_cable_stat, + { "Error Code", "ff.lr.get_statistics.rsp.x_cable_stat", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_a, - { "Error Code", "ff.lr.get_statistics.rsp.num_diag_svr_ind_miss_a", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_a, - { "Error Code", - "ff.lr.get_statistics.rsp.num_rem_dev_diag_recv_fault_a", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_recv_b, - { "Error Code", "ff.lr.get_statistics.rsp.num_diag_svr_ind_recv_b", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_get_statistics_rsp_num_diag_svr_ind_miss_b, - { "Error Code", "ff.lr.get_statistics.rsp.num_diag_svr_ind_miss_b", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_get_statistics_rsp_num_rem_dev_diag_recv_fault_b, - { "Error Code", - "ff.lr.get_statistics.rsp.num_rem_dev_diag_recv_fault_b", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_get_statistics_rsp_num_x_cable_stat, - { "Error Code", "ff.lr.get_statistics.rsp.num_x_cable_stat", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_get_statistics_rsp_x_cable_stat, - { "Error Code", "ff.lr.get_statistics.rsp.x_cable_stat", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.4.3.3. Error Message Parameters + */ + { &hf_ff_lr_get_statistics_err, + { "LAN Redundancy Get Statistics Error", + "ff.lr.get_statistics.err", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_lr_get_statistics_err_err_class, + { "Error Class", "ff.lr.get_statistics.err.err_class", + FT_UINT8, BASE_DEC|BASE_EXT_STRING, &names_err_class_ext, 0x0, NULL, HFILL } }, + { &hf_ff_lr_get_statistics_err_err_code, + { "Error Code", "ff.lr.get_statistics.err.err_code", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.4.3.3. Error Message Parameters - */ - { &hf_ff_lr_get_statistics_err, - { "LAN Redundancy Get Statistics Error", - "ff.lr.get_statistics.err", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_get_statistics_err_err_class, - { "Error Class", "ff.lr.get_statistics.err.err_class", - FT_UINT8, BASE_DEC, VALS(names_err_class), 0x0, NULL, HFILL } }, - - { &hf_ff_lr_get_statistics_err_err_code, - { "Error Code", "ff.lr.get_statistics.err.err_code", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_lr_get_statistics_err_additional_code, + { "Additional Code", + "ff.lr.get_statistics.err.additional_code", + FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_lr_get_statistics_err_additional_code, - { "Additional Code", - "ff.lr.get_statistics.err.additional_code", - FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_lr_get_statistics_err_additional_desc, + { "Additional Description", + "ff.lr.get_statistics.err.additional_desc", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - { &hf_ff_lr_get_statistics_err_additional_desc, - { "Additional Description", - "ff.lr.get_statistics.err.additional_desc", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.4.4 Diagnostic Message (Unconfirmed Service Id = 1) + */ + { &hf_ff_lr_diagnostic_msg, + { "Diagnostic Message", "ff.lr.diagnostic_msg", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.4.4 Diagnostic Message (Unconfirmed Service Id = 1) - */ - { &hf_ff_lr_diagnostic_msg, - { "Diagnostic Message", "ff.lr.diagnostic_msg", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + /* + * 6.5.4.4.1. Request Message Parameters + */ + { &hf_ff_lr_diagnostic_msg_req, + { "Diagnostic Message Request", "ff.lr.diagnostic_msg_req", + FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - /* - * 6.5.4.4.1. Request Message Parameters - */ - { &hf_ff_lr_diagnostic_msg_req, - { "Diagnostic Message Request", "ff.lr.diagnostic_msg_req", - FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ff_lr_diagnostic_msg_req_dev_idx, + { "Device Index", "ff.lr.diagnostic_msg.req.dev_idx", + FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_diagnostic_msg_req_num_of_network_ifs, + { "Number of Network Interfaces", + "ff.lr.diagnostic_msg.req.num_of_network_ifs", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_diagnostic_msg_req_transmission_if, + { "Transmission Interface", + "ff.lr.diagnostic_msg.req.transmission_if", + FT_UINT8, BASE_DEC, VALS(names_transmission_interface), 0x0, NULL, HFILL } }, + + { &hf_ff_lr_diagnostic_msg_req_diagnostic_msg_intvl, + { "Diagnostic Message Interval", + "ff.lr.diagnostic_msg.req.diagnostic_msg_intvl", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_diagnostic_msg_req_pd_tag, + { "PD Tag", "ff.lr.diagnostic_msg.req.pd_tag", + FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_diagnostic_msg_req_reserved, + { "Reserved", "ff.lr.diagnostic_msg.req.reserved", + FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_diagnostic_msg_req_num_of_if_statuses, + { "Number of Interface Statuses", + "ff.lr.diagnostic_msg.req.num_of_if_statuses", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_diagnostic_msg_req_if_a_to_a_status, + { "Interface AtoA Status", + "ff.lr.diagnostic_msg.req.if_a_to_a_status", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_diagnostic_msg_req_if_b_to_a_status, + { "Interface BtoA Status", + "ff.lr.diagnostic_msg.req.if_b_to_a_status", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_diagnostic_msg_req_if_a_to_b_status, + { "Interface AtoB Status", + "ff.lr.diagnostic_msg.req.if_a_to_b_status", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_diagnostic_msg_req_if_b_to_b_status, + { "Interface BtoB Status", + "ff.lr.diagnostic_msg.req.if_b_to_b_status", + FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + + { &hf_ff_lr_diagnostic_msg_req_dup_detection_state_reserved, + { "Reserved", "ff.lr.diagnostic_msg.req.dup_detection_state.reserved", + FT_UINT8, BASE_HEX, NULL, 0xFC, NULL, HFILL } }, + + { &hf_ff_lr_diagnostic_msg_req_dup_detection_state_pd_tag, + { "Duplicate PD Tag", "ff.lr.diagnostic_msg.req.dup_detection_state.pd_tag", + FT_BOOLEAN, 8, TFS(&tfs_detected_not_detected), 0x02, NULL, HFILL } }, + + { &hf_ff_lr_diagnostic_msg_req_dup_detection_state_device, + { "Duplicate Device Index", "ff.lr.diagnostic_msg.req.dup_detection_state.device", + FT_BOOLEAN, 8, TFS(&tfs_detected_not_detected), 0x01, NULL, HFILL } }, + + }; + + + + static gint *ett[] = { + &ett_ff, + &ett_ff_fda_msg_hdr, + &ett_ff_fda_msg_hdr_proto_and_type, + &ett_ff_fda_msg_hdr_opts, + &ett_ff_fda_msg_hdr_srv, + + &ett_ff_fda_msg_trailer, + + &ett_ff_fda_open_sess_req, + &ett_ff_fda_open_sess_rsp, + &ett_ff_fda_open_sess_err, + + &ett_ff_fda_idle_req, + &ett_ff_fda_idle_rsp, + &ett_ff_fda_idle_err, + + &ett_ff_sm_find_tag_query_req, + &ett_ff_sm_find_tag_reply_req, + &ett_ff_sm_find_tag_reply_req_dup_detection_state, + &ett_ff_sm_find_tag_reply_req_list_of_fda_addr_selectors, + + &ett_ff_sm_id_req, + &ett_ff_sm_id_rsp, + &ett_ff_sm_id_rsp_smk_state, + &ett_ff_sm_id_rsp_dev_type, + &ett_ff_sm_id_rsp_dev_redundancy_state, + &ett_ff_sm_id_rsp_dup_detection_state, + &ett_ff_sm_id_rsp_entries_h1_live_list, + &ett_ff_sm_id_rsp_h1_live_list, + &ett_ff_sm_id_rsp_entries_node_addr, + &ett_ff_sm_id_rsp_h1_node_addr, + &ett_ff_sm_id_err, + + &ett_ff_sm_clear_addr_req, + &ett_ff_sm_clear_addr_rsp, + &ett_ff_sm_clear_addr_err, + + &ett_ff_sm_set_assign_info_req, + &ett_ff_sm_set_assign_info_req_dev_redundancy_state, + &ett_ff_sm_set_assign_info_req_clear_dup_detection_state, + &ett_ff_sm_set_assign_info_rsp, + &ett_ff_sm_set_assign_info_err, + + &ett_ff_sm_clear_assign_info_req, + &ett_ff_sm_clear_assign_info_rsp, + &ett_ff_sm_clear_assign_info_err, + + &ett_ff_sm_dev_annunc_req, + &ett_ff_sm_dev_annunc_req_smk_state, + &ett_ff_sm_dev_annunc_req_dev_type, + &ett_ff_sm_dev_annunc_req_dev_redundancy_state, + &ett_ff_sm_dev_annunc_req_dup_detection_state, + &ett_ff_sm_dev_annunc_req_entries_h1_live_list, + &ett_ff_sm_dev_annunc_req_h1_live_list, + &ett_ff_sm_dev_annunc_req_entries_node_addr, + &ett_ff_sm_dev_annunc_req_h1_node_addr, + + &ett_ff_fms_init_req, + &ett_ff_fms_init_rep, + &ett_ff_fms_init_err, + + &ett_ff_fms_abort_req, + + &ett_ff_fms_status_req, + &ett_ff_fms_status_rsp, + &ett_ff_fms_status_err, + + &ett_ff_fms_unsolicited_status_req, + + &ett_ff_fms_id_req, + &ett_ff_fms_id_rsp, + &ett_ff_fms_id_err, + + &ett_ff_fms_get_od_req, + &ett_ff_fms_get_od_rsp, + &ett_ff_fms_get_od_err, + + &ett_ff_fms_init_put_od_req, + &ett_ff_fms_init_put_od_rsp, + &ett_ff_fms_init_put_od_err, + + &ett_ff_fms_put_od_req, + &ett_ff_fms_put_od_rsp, + &ett_ff_fms_put_od_err, + + &ett_ff_fms_terminate_put_od_req, + &ett_ff_fms_terminate_put_od_rsp, + &ett_ff_fms_terminate_put_od_err, + + &ett_ff_fms_gen_init_download_seq_req, + &ett_ff_fms_gen_init_download_seq_rep, + &ett_ff_fms_gen_init_download_seq_err, - { &hf_ff_lr_diagnostic_msg_req_dev_idx, - { "Device Index", "ff.lr.diagnostic_msg.req.dev_idx", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_diagnostic_msg_req_num_of_network_ifs, - { "Number of Network Interfaces", - "ff.lr.diagnostic_msg.req.num_of_network_ifs", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_diagnostic_msg_req_transmission_if, - { "Transmission Interface", - "ff.lr.diagnostic_msg.req.transmission_if", - FT_UINT8, BASE_DEC, VALS(names_transmission_interface), 0x0, - NULL, HFILL } }, - - { &hf_ff_lr_diagnostic_msg_req_diagnostic_msg_intvl, - { "Diagnostic Message Interval", - "ff.lr.diagnostic_msg.req.diagnostic_msg_intvl", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_diagnostic_msg_req_pd_tag, - { "PD Tag", "ff.lr.diagnostic_msg.req.pd_tag", - FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_diagnostic_msg_req_reserved, - { "Reserved", "ff.lr.diagnostic_msg.req.reserved", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_diagnostic_msg_req_num_of_if_statuses, - { "Number of Interface Statuses", - "ff.lr.diagnostic_msg.req.num_of_if_statuses", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_diagnostic_msg_req_if_a_to_a_status, - { "Interface AtoA Status", - "ff.lr.diagnostic_msg.req.if_a_to_a_status", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_diagnostic_msg_req_if_b_to_a_status, - { "Interface BtoA Status", - "ff.lr.diagnostic_msg.req.if_b_to_a_status", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_diagnostic_msg_req_if_a_to_b_status, - { "Interface AtoB Status", - "ff.lr.diagnostic_msg.req.if_a_to_b_status", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_diagnostic_msg_req_if_b_to_b_status, - { "Interface BtoB Status", - "ff.lr.diagnostic_msg.req.if_b_to_b_status", - FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL } }, - - { &hf_ff_lr_diagnostic_msg_req_dup_detection_state_reserved, - { "Reserved", "ff.lr.diagnostic_msg.req.dup_detection_state.reserved", - FT_UINT8, BASE_HEX, NULL, 0xFC, NULL, HFILL } }, - - { &hf_ff_lr_diagnostic_msg_req_dup_detection_state_pd_tag, - { "Duplicate PD Tag", "ff.lr.diagnostic_msg.req.dup_detection_state.pd_tag", - FT_BOOLEAN, 8, TFS(&tfs_detected_not_detected), 0x02, NULL, HFILL } }, - - { &hf_ff_lr_diagnostic_msg_req_dup_detection_state_device, - { "Duplicate Device Index", "ff.lr.diagnostic_msg.req.dup_detection_state.device", - FT_BOOLEAN, 8, TFS(&tfs_detected_not_detected), 0x01, NULL, HFILL } }, - - }; - - - - static gint *ett[] = { - &ett_ff, - &ett_ff_fda_msg_hdr, - &ett_ff_fda_msg_hdr_proto_and_type, - &ett_ff_fda_msg_hdr_opts, - &ett_ff_fda_msg_hdr_srv, - - &ett_ff_fda_msg_trailer, - - &ett_ff_fda_open_sess_req, - &ett_ff_fda_open_sess_rsp, - &ett_ff_fda_open_sess_err, - - &ett_ff_fda_idle_req, - &ett_ff_fda_idle_rsp, - &ett_ff_fda_idle_err, - - &ett_ff_sm_find_tag_query_req, - &ett_ff_sm_find_tag_reply_req, - &ett_ff_sm_find_tag_reply_req_dup_detection_state, - &ett_ff_sm_find_tag_reply_req_list_of_fda_addr_selectors, - - &ett_ff_sm_id_req, - &ett_ff_sm_id_rsp, - &ett_ff_sm_id_rsp_smk_state, - &ett_ff_sm_id_rsp_dev_type, - &ett_ff_sm_id_rsp_dev_redundancy_state, - &ett_ff_sm_id_rsp_dup_detection_state, - &ett_ff_sm_id_rsp_entries_h1_live_list, - &ett_ff_sm_id_rsp_h1_live_list, - &ett_ff_sm_id_rsp_entries_node_addr, - &ett_ff_sm_id_rsp_h1_node_addr, - &ett_ff_sm_id_err, - - &ett_ff_sm_clear_addr_req, - &ett_ff_sm_clear_addr_rsp, - &ett_ff_sm_clear_addr_err, - - &ett_ff_sm_set_assign_info_req, - &ett_ff_sm_set_assign_info_req_dev_redundancy_state, - &ett_ff_sm_set_assign_info_req_clear_dup_detection_state, - &ett_ff_sm_set_assign_info_rsp, - &ett_ff_sm_set_assign_info_err, - - &ett_ff_sm_clear_assign_info_req, - &ett_ff_sm_clear_assign_info_rsp, - &ett_ff_sm_clear_assign_info_err, - - &ett_ff_sm_dev_annunc_req, - &ett_ff_sm_dev_annunc_req_smk_state, - &ett_ff_sm_dev_annunc_req_dev_type, - &ett_ff_sm_dev_annunc_req_dev_redundancy_state, - &ett_ff_sm_dev_annunc_req_dup_detection_state, - &ett_ff_sm_dev_annunc_req_entries_h1_live_list, - &ett_ff_sm_dev_annunc_req_h1_live_list, - &ett_ff_sm_dev_annunc_req_entries_node_addr, - &ett_ff_sm_dev_annunc_req_h1_node_addr, - - &ett_ff_fms_init_req, - &ett_ff_fms_init_rep, - &ett_ff_fms_init_err, - - &ett_ff_fms_abort_req, - - &ett_ff_fms_status_req, - &ett_ff_fms_status_rsp, - &ett_ff_fms_status_err, - - &ett_ff_fms_unsolicited_status_req, - - &ett_ff_fms_id_req, - &ett_ff_fms_id_rsp, - &ett_ff_fms_id_err, - - &ett_ff_fms_get_od_req, - &ett_ff_fms_get_od_rsp, - &ett_ff_fms_get_od_err, - - &ett_ff_fms_init_put_od_req, - &ett_ff_fms_init_put_od_rsp, - &ett_ff_fms_init_put_od_err, - - &ett_ff_fms_put_od_req, - &ett_ff_fms_put_od_rsp, - &ett_ff_fms_put_od_err, - - &ett_ff_fms_terminate_put_od_req, - &ett_ff_fms_terminate_put_od_rsp, - &ett_ff_fms_terminate_put_od_err, - - &ett_ff_fms_gen_init_download_seq_req, - &ett_ff_fms_gen_init_download_seq_rep, - &ett_ff_fms_gen_init_download_seq_err, + &ett_ff_fms_gen_download_seg_req, + &ett_ff_fms_gen_download_seg_rsp, + &ett_ff_fms_gen_download_seg_err, - &ett_ff_fms_gen_download_seg_req, - &ett_ff_fms_gen_download_seg_rsp, - &ett_ff_fms_gen_download_seg_err, + &ett_ff_fms_gen_terminate_download_seq_req, + &ett_ff_fms_gen_terminate_download_seq_rsp, + &ett_ff_fms_gen_terminate_download_seq_err, + + &ett_ff_fms_init_download_seq_req, + &ett_ff_fms_init_download_seq_rsp, + &ett_ff_fms_init_download_seq_err, - &ett_ff_fms_gen_terminate_download_seq_req, - &ett_ff_fms_gen_terminate_download_seq_rsp, - &ett_ff_fms_gen_terminate_download_seq_err, - - &ett_ff_fms_init_download_seq_req, - &ett_ff_fms_init_download_seq_rsp, - &ett_ff_fms_init_download_seq_err, + &ett_ff_fms_download_seg_req, + &ett_ff_fms_download_seg_rsp, + &ett_ff_fms_download_seg_err, + + &ett_ff_fms_terminate_download_seq_req, + &ett_ff_fms_terminate_download_seq_rsp, + &ett_ff_fms_terminate_download_seq_err, + + &ett_ff_fms_init_upload_seq_req, + &ett_ff_fms_init_upload_seq_rsp, + &ett_ff_fms_init_upload_seq_err, + + &ett_ff_fms_upload_seg_req, + &ett_ff_fms_upload_seg_rsp, + &ett_ff_fms_upload_seg_err, + + &ett_ff_fms_terminate_upload_seq_req, + &ett_ff_fms_terminate_upload_seq_rsp, + &ett_ff_fms_terminate_upload_seq_err, + + &ett_ff_fms_req_dom_download_req, + &ett_ff_fms_req_dom_download_rsp, + &ett_ff_fms_req_dom_download_err, + + &ett_ff_fms_req_dom_upload_req, + &ett_ff_fms_req_dom_upload_rsp, + &ett_ff_fms_req_dom_upload_err, - &ett_ff_fms_download_seg_req, - &ett_ff_fms_download_seg_rsp, - &ett_ff_fms_download_seg_err, - - &ett_ff_fms_terminate_download_seq_req, - &ett_ff_fms_terminate_download_seq_rsp, - &ett_ff_fms_terminate_download_seq_err, - - &ett_ff_fms_init_upload_seq_req, - &ett_ff_fms_init_upload_seq_rsp, - &ett_ff_fms_init_upload_seq_err, - - &ett_ff_fms_upload_seg_req, - &ett_ff_fms_upload_seg_rsp, - &ett_ff_fms_upload_seg_err, - - &ett_ff_fms_terminate_upload_seq_req, - &ett_ff_fms_terminate_upload_seq_rsp, - &ett_ff_fms_terminate_upload_seq_err, - - &ett_ff_fms_req_dom_download_req, - &ett_ff_fms_req_dom_download_rsp, - &ett_ff_fms_req_dom_download_err, - - &ett_ff_fms_req_dom_upload_req, - &ett_ff_fms_req_dom_upload_rsp, - &ett_ff_fms_req_dom_upload_err, + &ett_ff_fms_create_pi_req, + &ett_ff_fms_create_pi_req_list_of_dom_idxes, + &ett_ff_fms_create_pi_rsp, + &ett_ff_fms_create_pi_err, - &ett_ff_fms_create_pi_req, - &ett_ff_fms_create_pi_req_list_of_dom_idxes, - &ett_ff_fms_create_pi_rsp, - &ett_ff_fms_create_pi_err, - - &ett_ff_fms_del_pi_req, - &ett_ff_fms_del_pi_rsp, - &ett_ff_fms_del_pi_err, + &ett_ff_fms_del_pi_req, + &ett_ff_fms_del_pi_rsp, + &ett_ff_fms_del_pi_err, - &ett_ff_fms_start_req, - &ett_ff_fms_start_rsp, - &ett_ff_fms_start_err, + &ett_ff_fms_start_req, + &ett_ff_fms_start_rsp, + &ett_ff_fms_start_err, - &ett_ff_fms_stop_req, - &ett_ff_fms_stop_rsp, - &ett_ff_fms_stop_err, + &ett_ff_fms_stop_req, + &ett_ff_fms_stop_rsp, + &ett_ff_fms_stop_err, - &ett_ff_fms_resume_req, - &ett_ff_fms_resume_rsp, - &ett_ff_fms_resume_err, + &ett_ff_fms_resume_req, + &ett_ff_fms_resume_rsp, + &ett_ff_fms_resume_err, - &ett_ff_fms_reset_req, - &ett_ff_fms_reset_rsp, - &ett_ff_fms_reset_err, + &ett_ff_fms_reset_req, + &ett_ff_fms_reset_rsp, + &ett_ff_fms_reset_err, - &ett_ff_fms_kill_req, - &ett_ff_fms_kill_rsp, - &ett_ff_fms_kill_err, + &ett_ff_fms_kill_req, + &ett_ff_fms_kill_rsp, + &ett_ff_fms_kill_err, - &ett_ff_fms_read_req, - &ett_ff_fms_read_rsp, - &ett_ff_fms_read_err, + &ett_ff_fms_read_req, + &ett_ff_fms_read_rsp, + &ett_ff_fms_read_err, - &ett_ff_fms_read_with_subidx_req, - &ett_ff_fms_read_with_subidx_rsp, - &ett_ff_fms_read_with_subidx_err, + &ett_ff_fms_read_with_subidx_req, + &ett_ff_fms_read_with_subidx_rsp, + &ett_ff_fms_read_with_subidx_err, - &ett_ff_fms_write_req, - &ett_ff_fms_write_rsp, - &ett_ff_fms_write_err, + &ett_ff_fms_write_req, + &ett_ff_fms_write_rsp, + &ett_ff_fms_write_err, - &ett_ff_fms_write_with_subidx_req, - &ett_ff_fms_write_with_subidx_rsp, - &ett_ff_fms_write_with_subidx_err, + &ett_ff_fms_write_with_subidx_req, + &ett_ff_fms_write_with_subidx_rsp, + &ett_ff_fms_write_with_subidx_err, - &ett_ff_fms_def_variable_list_req, - &ett_ff_fms_def_variable_list_req_list_of_idxes, - &ett_ff_fms_def_variable_list_rsp, - &ett_ff_fms_def_variable_list_err, + &ett_ff_fms_def_variable_list_req, + &ett_ff_fms_def_variable_list_req_list_of_idxes, + &ett_ff_fms_def_variable_list_rsp, + &ett_ff_fms_def_variable_list_err, - &ett_ff_fms_del_variable_list_req, - &ett_ff_fms_del_variable_list_rsp, - &ett_ff_fms_del_variable_list_err, + &ett_ff_fms_del_variable_list_req, + &ett_ff_fms_del_variable_list_rsp, + &ett_ff_fms_del_variable_list_err, - &ett_ff_fms_info_report_req, + &ett_ff_fms_info_report_req, - &ett_ff_fms_info_report_with_subidx_req, + &ett_ff_fms_info_report_with_subidx_req, - &ett_ff_fms_info_report_on_change_req, + &ett_ff_fms_info_report_on_change_req, - &ett_ff_fms_info_report_on_change_with_subidx_req, + &ett_ff_fms_info_report_on_change_with_subidx_req, - &ett_ff_fms_ev_notification_req, + &ett_ff_fms_ev_notification_req, - &ett_ff_fms_alter_ev_condition_monitoring_req, - &ett_ff_fms_alter_ev_condition_monitoring_rsp, - &ett_ff_fms_alter_ev_condition_monitoring_err, + &ett_ff_fms_alter_ev_condition_monitoring_req, + &ett_ff_fms_alter_ev_condition_monitoring_rsp, + &ett_ff_fms_alter_ev_condition_monitoring_err, - &ett_ff_fms_ack_ev_notification_req, - &ett_ff_fms_ack_ev_notification_rsp, - &ett_ff_fms_ack_ev_notification_err, + &ett_ff_fms_ack_ev_notification_req, + &ett_ff_fms_ack_ev_notification_rsp, + &ett_ff_fms_ack_ev_notification_err, - &ett_ff_lr_get_info_req, - &ett_ff_lr_get_info_rsp, - &ett_ff_lr_get_info_rsp_lr_flags, - &ett_ff_lr_get_info_err, + &ett_ff_lr_get_info_req, + &ett_ff_lr_get_info_rsp, + &ett_ff_lr_get_info_rsp_lr_flags, + &ett_ff_lr_get_info_err, - &ett_ff_lr_put_info_req, - &ett_ff_lr_put_info_req_lr_flags, - &ett_ff_lr_put_info_rsp, - &ett_ff_lr_put_info_rsp_lr_flags, - &ett_ff_lr_put_info_err, + &ett_ff_lr_put_info_req, + &ett_ff_lr_put_info_req_lr_flags, + &ett_ff_lr_put_info_rsp, + &ett_ff_lr_put_info_rsp_lr_flags, + &ett_ff_lr_put_info_err, - &ett_ff_lr_get_statistics_req, - &ett_ff_lr_get_statistics_rsp, - &ett_ff_lr_get_statistics_rsp_list_of_x_cable_stat, - &ett_ff_lr_get_statistics_err, + &ett_ff_lr_get_statistics_req, + &ett_ff_lr_get_statistics_rsp, + &ett_ff_lr_get_statistics_rsp_list_of_x_cable_stat, + &ett_ff_lr_get_statistics_err, - &ett_ff_lr_diagnostic_msg_req, - &ett_ff_lr_diagnostic_msg_req_dup_detection_stat, - &ett_ff_lr_diagnostic_msg_req_a_to_a_status, - &ett_ff_lr_diagnostic_msg_req_b_to_a_status, - &ett_ff_lr_diagnostic_msg_req_a_to_b_status, - &ett_ff_lr_diagnostic_msg_req_b_to_b_status, - }; + &ett_ff_lr_diagnostic_msg_req, + &ett_ff_lr_diagnostic_msg_req_dup_detection_stat, + &ett_ff_lr_diagnostic_msg_req_a_to_a_status, + &ett_ff_lr_diagnostic_msg_req_b_to_a_status, + &ett_ff_lr_diagnostic_msg_req_a_to_b_status, + &ett_ff_lr_diagnostic_msg_req_b_to_b_status, + }; - proto_ff = proto_register_protocol("FOUNDATION Fieldbus", "FF", "ff"); - proto_register_field_array(proto_ff, hf, array_length(hf)); - proto_register_subtree_array(ett, array_length(ett)); + proto_ff = proto_register_protocol("FOUNDATION Fieldbus", "FF", "ff"); + proto_register_field_array(proto_ff, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); - return; + return; } @@ -16794,42 +16091,42 @@ proto_register_ff(void) void proto_reg_handoff_ff(void) { - /* - * 4.8. Using UDP and TCP - */ - ff_udp_handle = new_create_dissector_handle(dissect_ff_udp, proto_ff); - ff_tcp_handle = new_create_dissector_handle(dissect_ff_tcp, proto_ff); - - /* - * 4.8.4.2. Use - * - * - Device Annunciation - */ - dissector_add_uint("udp.port", UDP_PORT_FF_ANNUNC, ff_udp_handle); - - /* - * 4.8.4.2. Use - * - * - Client / Server - */ - dissector_add_uint("udp.port", UDP_PORT_FF_FMS, ff_udp_handle); - dissector_add_uint("tcp.port", TCP_PORT_FF_FMS, ff_tcp_handle); - - /* - * 4.8.4.2. Use - * - * - Set/Clear Assignment Info and Clear Address - * - SM Identify - * - SM Find Tag - */ - dissector_add_uint("udp.port", UDP_PORT_FF_SM, ff_udp_handle); - - /* - * 4.8.4.2. Use - * - * - LAN Redundancy Get and Put Information - */ - dissector_add_uint("udp.port", UDP_PORT_FF_LR_PORT, ff_udp_handle); - - return; + /* + * 4.8. Using UDP and TCP + */ + ff_udp_handle = new_create_dissector_handle(dissect_ff_udp, proto_ff); + ff_tcp_handle = new_create_dissector_handle(dissect_ff_tcp, proto_ff); + + /* + * 4.8.4.2. Use + * + * - Device Annunciation + */ + dissector_add_uint("udp.port", UDP_PORT_FF_ANNUNC, ff_udp_handle); + + /* + * 4.8.4.2. Use + * + * - Client / Server + */ + dissector_add_uint("udp.port", UDP_PORT_FF_FMS, ff_udp_handle); + dissector_add_uint("tcp.port", TCP_PORT_FF_FMS, ff_tcp_handle); + + /* + * 4.8.4.2. Use + * + * - Set/Clear Assignment Info and Clear Address + * - SM Identify + * - SM Find Tag + */ + dissector_add_uint("udp.port", UDP_PORT_FF_SM, ff_udp_handle); + + /* + * 4.8.4.2. Use + * + * - LAN Redundancy Get and Put Information + */ + dissector_add_uint("udp.port", UDP_PORT_FF_LR_PORT, ff_udp_handle); + + return; } diff --git a/epan/dissectors/packet-ff.h b/epan/dissectors/packet-ff.h index 7a88f8f4ba..d907a486bf 100644 --- a/epan/dissectors/packet-ff.h +++ b/epan/dissectors/packet-ff.h @@ -30,31 +30,31 @@ /* * /etc/services * --------------------------------------------------------------------- - * ff-annunc 1089/tcp # FF Annunciation - * ff-annunc 1089/udp # FF Annunciation - * ff-fms 1090/tcp # FF Fieldbus Message Specification - * ff-fms 1090/udp # FF Fieldbus Message Specification - * ff-sm 1091/tcp # FF System Management - * ff-sm 1091/udp # FF System Management - * ff-lr-port 3622/tcp # FF LAN Redundancy Port - * ff-lr-port 3622/udp # FF LAN Redundancy Port + * ff-annunc 1089/tcp # FF Annunciation + * ff-annunc 1089/udp # FF Annunciation + * ff-fms 1090/tcp # FF Fieldbus Message Specification + * ff-fms 1090/udp # FF Fieldbus Message Specification + * ff-sm 1091/tcp # FF System Management + * ff-sm 1091/udp # FF System Management + * ff-lr-port 3622/tcp # FF LAN Redundancy Port + * ff-lr-port 3622/udp # FF LAN Redundancy Port * --------------------------------------------------------------------- */ #ifndef __PACKET_FF_H__ #define __PACKET_FF_H__ -#define UDP_PORT_FF_ANNUNC 1089 -#define TCP_PORT_FF_ANNUNC 1089 +#define UDP_PORT_FF_ANNUNC 1089 +#define TCP_PORT_FF_ANNUNC 1089 -#define UDP_PORT_FF_FMS 1090 -#define TCP_PORT_FF_FMS 1090 +#define UDP_PORT_FF_FMS 1090 +#define TCP_PORT_FF_FMS 1090 -#define UDP_PORT_FF_SM 1091 -#define TCP_PORT_FF_SM 1091 +#define UDP_PORT_FF_SM 1091 +#define TCP_PORT_FF_SM 1091 -#define UDP_PORT_FF_LR_PORT 3622 -#define TCP_PORT_FF_LR_PORT 3622 +#define UDP_PORT_FF_LR_PORT 3622 +#define TCP_PORT_FF_LR_PORT 3622 @@ -66,60 +66,60 @@ * Options */ -#define OPTION_MESSAGE_NUMBER_MASK 0x80 /* 10000000 */ -#define OPTION_INVOKE_ID_MASK 0x40 /* 01000000 */ -#define OPTION_TIME_STAMP_MASK 0x20 /* 00100000 */ -#define OPTION_RESERVED_MASK 0x10 /* 00010000 */ -#define OPTION_EXTENDED_CNTRL_MASK 0x08 /* 00001000 */ -#define OPTION_PAD_LENGTH_MASK 0x07 /* 00000111 */ +#define OPTION_MESSAGE_NUMBER_MASK 0x80 /* 10000000 */ +#define OPTION_INVOKE_ID_MASK 0x40 /* 01000000 */ +#define OPTION_TIME_STAMP_MASK 0x20 /* 00100000 */ +#define OPTION_RESERVED_MASK 0x10 /* 00010000 */ +#define OPTION_EXTENDED_CNTRL_MASK 0x08 /* 00001000 */ +#define OPTION_PAD_LENGTH_MASK 0x07 /* 00000111 */ -#define OPTION_PAD_4BYTE 0x03 /* 00000011 */ -#define OPTION_PAD_8BYTE 0x07 /* 00000111 */ +#define OPTION_PAD_4BYTE 0x03 /* 00000011 */ +#define OPTION_PAD_8BYTE 0x07 /* 00000111 */ /* * Protocol Id And Confirmed Msg Type */ -#define PROTOCOL_MASK 0xfc /* 11111100 */ -#define TYPE_MASK 0x03 /* 00000011 */ +#define PROTOCOL_MASK 0xfc /* 11111100 */ +#define TYPE_MASK 0x03 /* 00000011 */ /* * Protocol Id */ -#define PROTOCOL_FDA 0x04 /* 00000100 */ -#define PROTOCOL_SM 0x08 /* 00001000 */ -#define PROTOCOL_FMS 0x0c /* 00001100 */ -#define PROTOCOL_LAN 0x10 /* 00010000 */ +#define PROTOCOL_FDA 0x04 /* 00000100 */ +#define PROTOCOL_SM 0x08 /* 00001000 */ +#define PROTOCOL_FMS 0x0c /* 00001100 */ +#define PROTOCOL_LAN 0x10 /* 00010000 */ /* * Confirmed Msg Type */ -#define TYPE_REQUEST 0x00 /* 00000000 */ -#define TYPE_RESPONSE 0x01 /* 00000001 */ -#define TYPE_ERROR 0x02 /* 00000010 */ +#define TYPE_REQUEST 0x00 /* 00000000 */ +#define TYPE_RESPONSE 0x01 /* 00000001 */ +#define TYPE_ERROR 0x02 /* 00000010 */ /* * Service */ -#define SERVICE_CONFIRMED_FLAG_MASK 0x80 /* 10000000 */ -#define SERVICE_SERVICE_ID_MASK 0x7f /* 01111111 */ +#define SERVICE_CONFIRMED_FLAG_MASK 0x80 /* 10000000 */ +#define SERVICE_SERVICE_ID_MASK 0x7f /* 01111111 */ -#define FDA_UNCONFIRMED_SERVICE 0x00 /* 00000000 */ -#define FDA_CONFIRMED_SERVICE 0x80 /* 10000000 */ +#define FDA_UNCONFIRMED_SERVICE 0x00 /* 00000000 */ +#define FDA_CONFIRMED_SERVICE 0x80 /* 10000000 */ -#define PROTOCOL_FDA_MSG (PROTOCOL_FDA << 8) -#define PROTOCOL_SM_MSG (PROTOCOL_SM << 8) -#define PROTOCOL_FMS_MSG (PROTOCOL_FMS << 8) -#define PROTOCOL_LAN_MSG (PROTOCOL_LAN << 8) +#define PROTOCOL_FDA_MSG (PROTOCOL_FDA << 8) +#define PROTOCOL_SM_MSG (PROTOCOL_SM << 8) +#define PROTOCOL_FMS_MSG (PROTOCOL_FMS << 8) +#define PROTOCOL_LAN_MSG (PROTOCOL_LAN << 8) -#define PROTOCOL_TYPE_REQ (TYPE_REQUEST << 8) -#define PROTOCOL_TYPE_RSP (TYPE_RESPONSE << 8) -#define PROTOCOL_TYPE_ERR (TYPE_ERROR << 8) +#define PROTOCOL_TYPE_REQ (TYPE_REQUEST << 8) +#define PROTOCOL_TYPE_RSP (TYPE_RESPONSE << 8) +#define PROTOCOL_TYPE_ERR (TYPE_ERROR << 8) @@ -128,30 +128,30 @@ */ /* Confirmed Service Id */ -#define FDA_OPEN_SESSION 1 -#define FDA_IDLE 3 +#define FDA_OPEN_SESSION 1 +#define FDA_IDLE 3 /* 6.5.1.1. FDA Open Session (Confirmed Service Id = 1) */ #define FDA_MSG_SESSION_OPEN_REQ \ - (PROTOCOL_FDA_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | FDA_OPEN_SESSION) + (PROTOCOL_FDA_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | FDA_OPEN_SESSION) #define FDA_MSG_SESSION_OPEN_RSP \ - (PROTOCOL_FDA_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | FDA_OPEN_SESSION) + (PROTOCOL_FDA_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | FDA_OPEN_SESSION) #define FDA_MSG_SESSION_OPEN_ERR \ - (PROTOCOL_FDA_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | FDA_OPEN_SESSION) + (PROTOCOL_FDA_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | FDA_OPEN_SESSION) /* 6.5.1.2. FDA Idle (Confirmed Service Id = 3) */ #define FDA_MSG_SESSION_IDLE_REQ \ - (PROTOCOL_FDA_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | FDA_IDLE) + (PROTOCOL_FDA_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | FDA_IDLE) #define FDA_MSG_SESSION_IDLE_RSP \ - (PROTOCOL_FDA_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | FDA_IDLE) + (PROTOCOL_FDA_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | FDA_IDLE) #define FDA_MSG_SESSION_IDLE_ERR \ - (PROTOCOL_FDA_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | FDA_IDLE) + (PROTOCOL_FDA_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | FDA_IDLE) @@ -160,74 +160,74 @@ */ /* Unconfirmed Service Id */ -#define HSE_SM_FIND_TAG_QUERY 1 -#define HSE_SM_FIND_TAG_REPLY 2 -#define HSE_SM_DEVICE_ANNUNCIATION 16 +#define HSE_SM_FIND_TAG_QUERY 1 +#define HSE_SM_FIND_TAG_REPLY 2 +#define HSE_SM_DEVICE_ANNUNCIATION 16 /* Confirmed Service Id */ -#define HSE_SM_IDENTIFY 3 -#define HSE_SM_CLEAR_ADDRESS 12 -#define HSE_SM_SET_ASSIGNMENT 14 -#define HSE_SM_CLEAR_ASSIGNMENT 15 +#define HSE_SM_IDENTIFY 3 +#define HSE_SM_CLEAR_ADDRESS 12 +#define HSE_SM_SET_ASSIGNMENT 14 +#define HSE_SM_CLEAR_ASSIGNMENT 15 /* 6.5.2.1. SM Find Tag Query (Unconfirmed Service Id = 1) */ #define SM_MSG_FIND_TAG_QUERY_REQ \ - (PROTOCOL_SM_MSG | PROTOCOL_TYPE_REQ | \ - FDA_UNCONFIRMED_SERVICE | HSE_SM_FIND_TAG_QUERY) + (PROTOCOL_SM_MSG | PROTOCOL_TYPE_REQ | \ + FDA_UNCONFIRMED_SERVICE | HSE_SM_FIND_TAG_QUERY) /* 6.5.2.2. SM Find Tag Reply (Unconfirmed Service Id = 2) */ #define SM_MSG_FIND_TAG_REPLY_REQ \ - (PROTOCOL_SM_MSG | PROTOCOL_TYPE_REQ | \ - FDA_UNCONFIRMED_SERVICE | HSE_SM_FIND_TAG_REPLY) + (PROTOCOL_SM_MSG | PROTOCOL_TYPE_REQ | \ + FDA_UNCONFIRMED_SERVICE | HSE_SM_FIND_TAG_REPLY) /* 6.5.2.3. SM Identify (Confirmed Service Id = 3) */ #define SM_MSG_IDENTIFY_REQ \ - (PROTOCOL_SM_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_SM_IDENTIFY) + (PROTOCOL_SM_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_SM_IDENTIFY) #define SM_MSG_IDENTIFY_RSP \ - (PROTOCOL_SM_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_SM_IDENTIFY) + (PROTOCOL_SM_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_SM_IDENTIFY) #define SM_MSG_IDENTIFY_ERR \ - (PROTOCOL_SM_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_SM_IDENTIFY) + (PROTOCOL_SM_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_SM_IDENTIFY) /* 6.5.2.4. SM Clear Address (Confirmed Service Id = 12) */ #define SM_MSG_CLEAR_ADDRESS_REQ \ - (PROTOCOL_SM_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_SM_CLEAR_ADDRESS) + (PROTOCOL_SM_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_SM_CLEAR_ADDRESS) #define SM_MSG_CLEAR_ADDRESS_RSP \ - (PROTOCOL_SM_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_SM_CLEAR_ADDRESS) + (PROTOCOL_SM_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_SM_CLEAR_ADDRESS) #define SM_MSG_CLEAR_ADDRESS_ERR \ - (PROTOCOL_SM_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_SM_CLEAR_ADDRESS) + (PROTOCOL_SM_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_SM_CLEAR_ADDRESS) /* 6.5.2.5. SM Set Assignment Info (Confirmed Service Id = 14) */ #define SM_MSG_SET_ASSIGNMENT_REQ \ - (PROTOCOL_SM_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_SM_SET_ASSIGNMENT) + (PROTOCOL_SM_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_SM_SET_ASSIGNMENT) #define SM_MSG_SET_ASSIGNMENT_RSP \ - (PROTOCOL_SM_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_SM_SET_ASSIGNMENT) + (PROTOCOL_SM_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_SM_SET_ASSIGNMENT) #define SM_MSG_SET_ASSIGNMENT_ERR \ - (PROTOCOL_SM_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_SM_SET_ASSIGNMENT) + (PROTOCOL_SM_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_SM_SET_ASSIGNMENT) /* 6.5.2.6. SM Clear Assignment Info (Confirmed Service Id = 15) */ #define SM_MSG_CLEAR_ASSIGNMENT_REQ \ - (PROTOCOL_SM_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_SM_CLEAR_ASSIGNMENT) + (PROTOCOL_SM_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_SM_CLEAR_ASSIGNMENT) #define SM_MSG_CLEAR_ASSIGNMENT_RSP \ - (PROTOCOL_SM_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_SM_CLEAR_ASSIGNMENT) + (PROTOCOL_SM_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_SM_CLEAR_ASSIGNMENT) #define SM_MSG_CLEAR_ASSIGNMENT_ERR \ - (PROTOCOL_SM_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_SM_CLEAR_ASSIGNMENT) + (PROTOCOL_SM_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_SM_CLEAR_ASSIGNMENT) /* 6.5.2.7. SM Device Annunciation (Unconfirmed Service Id = 16) */ #define SM_MSG_DEVICE_ANNUNCIATION_REQ \ - (PROTOCOL_SM_MSG | PROTOCOL_TYPE_REQ | \ - FDA_UNCONFIRMED_SERVICE | HSE_SM_DEVICE_ANNUNCIATION) + (PROTOCOL_SM_MSG | PROTOCOL_TYPE_REQ | \ + FDA_UNCONFIRMED_SERVICE | HSE_SM_DEVICE_ANNUNCIATION) @@ -236,452 +236,452 @@ */ /* Unconfirmed Service Id */ -#define HSE_FMS_INFORMATION_REPORT 0 -#define HSE_FMS_UNSOLICITED_STATUS 1 -#define HSE_FMS_EVENT_NOTIFICATION 2 -#define HSE_FMS_INFORMATION_REPORT_WITH_SUBINDEX 16 -#define HSE_FMS_INFORMATION_REPORT_ON_CHANGE 17 -#define HSE_FMS_INFORMATION_REPORT_ON_CHANGE_WITH_SUBINDEX 18 -#define HSE_FMS_ABORT 112 +#define HSE_FMS_INFORMATION_REPORT 0 +#define HSE_FMS_UNSOLICITED_STATUS 1 +#define HSE_FMS_EVENT_NOTIFICATION 2 +#define HSE_FMS_INFORMATION_REPORT_WITH_SUBINDEX 16 +#define HSE_FMS_INFORMATION_REPORT_ON_CHANGE 17 +#define HSE_FMS_INFORMATION_REPORT_ON_CHANGE_WITH_SUBINDEX 18 +#define HSE_FMS_ABORT 112 /* Confirmed Service Id */ -#define HSE_FMS_STATUS 0 -#define HSE_FMS_IDENTIFY 1 -#define HSE_FMS_READ 2 -#define HSE_FMS_WRITE 3 -#define HSE_FMS_GET_OD 4 -#define HSE_FMS_DEFINE_VARIABLE_LIST 7 -#define HSE_FMS_DELETE_VARIABLE_LIST 8 -#define HSE_FMS_INITIATE_DOWNLOAD_SEQUENCE 9 -#define HSE_FMS_DOWNLOAD_SEGMENT 10 -#define HSE_FMS_TERMINATE_DOWNLOAD_SEQUENCE 11 -#define HSE_FMS_INITIATE_UPLOAD_SEQUENCE 12 -#define HSE_FMS_UPLOAD_SEGMENT 13 -#define HSE_FMS_TERMINATE_UPLOAD_SEQUENCE 14 -#define HSE_FMS_REQUEST_DOMAIN_DOWNLOAD 15 -#define HSE_FMS_REQUEST_DOMAIN_UPLOAD 16 -#define HSE_FMS_CREATE_PROGRAM_INVOCATION 17 -#define HSE_FMS_DELETE_PROGRAM_INVOCATION 18 -#define HSE_FMS_START 19 -#define HSE_FMS_STOP 20 -#define HSE_FMS_RESUME 21 -#define HSE_FMS_RESET 22 -#define HSE_FMS_KILL 23 -#define HSE_FMS_ALTER_EVENT_CONDITION_MONITORING 24 -#define HSE_FMS_ACKNOWLEDGE_EVENT_NOTIFICATION 25 -#define HSE_FMS_INITIATE_PUT_OD 28 -#define HSE_FMS_PUT_OD 29 -#define HSE_FMS_TERMINATE_PUT_OD 30 -#define HSE_FMS_GENERIC_INITIATE_DOWNLOAD_SEQUENCE 31 -#define HSE_FMS_GENERIC_DOWNLOAD_SEGMENT 32 -#define HSE_FMS_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE 33 -#define HSE_FMS_READ_WITH_SUBINDEX 82 -#define HSE_FMS_WRITE_WITH_SUBINDEX 83 -#define HSE_FMS_INITIATE 96 +#define HSE_FMS_STATUS 0 +#define HSE_FMS_IDENTIFY 1 +#define HSE_FMS_READ 2 +#define HSE_FMS_WRITE 3 +#define HSE_FMS_GET_OD 4 +#define HSE_FMS_DEFINE_VARIABLE_LIST 7 +#define HSE_FMS_DELETE_VARIABLE_LIST 8 +#define HSE_FMS_INITIATE_DOWNLOAD_SEQUENCE 9 +#define HSE_FMS_DOWNLOAD_SEGMENT 10 +#define HSE_FMS_TERMINATE_DOWNLOAD_SEQUENCE 11 +#define HSE_FMS_INITIATE_UPLOAD_SEQUENCE 12 +#define HSE_FMS_UPLOAD_SEGMENT 13 +#define HSE_FMS_TERMINATE_UPLOAD_SEQUENCE 14 +#define HSE_FMS_REQUEST_DOMAIN_DOWNLOAD 15 +#define HSE_FMS_REQUEST_DOMAIN_UPLOAD 16 +#define HSE_FMS_CREATE_PROGRAM_INVOCATION 17 +#define HSE_FMS_DELETE_PROGRAM_INVOCATION 18 +#define HSE_FMS_START 19 +#define HSE_FMS_STOP 20 +#define HSE_FMS_RESUME 21 +#define HSE_FMS_RESET 22 +#define HSE_FMS_KILL 23 +#define HSE_FMS_ALTER_EVENT_CONDITION_MONITORING 24 +#define HSE_FMS_ACKNOWLEDGE_EVENT_NOTIFICATION 25 +#define HSE_FMS_INITIATE_PUT_OD 28 +#define HSE_FMS_PUT_OD 29 +#define HSE_FMS_TERMINATE_PUT_OD 30 +#define HSE_FMS_GENERIC_INITIATE_DOWNLOAD_SEQUENCE 31 +#define HSE_FMS_GENERIC_DOWNLOAD_SEGMENT 32 +#define HSE_FMS_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE 33 +#define HSE_FMS_READ_WITH_SUBINDEX 82 +#define HSE_FMS_WRITE_WITH_SUBINDEX 83 +#define HSE_FMS_INITIATE 96 /* 6.5.3.1. FMS Reject */ /* 6.5.3.2. FMS Initiate (Confirmed Service Id = 96) */ #define FMS_MSG_INITIATE_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE) #define FMS_MSG_INITIATE_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE) #define FMS_MSG_INITIATE_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE) /* 6.5.3.3. FMS Abort (Unconfirmed Service Id = 112) */ #define FMS_MSG_ABORT_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_UNCONFIRMED_SERVICE | HSE_FMS_ABORT) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_UNCONFIRMED_SERVICE | HSE_FMS_ABORT) /* 6.5.3.4. FMS Status (Confirmed Service Id = 0) */ #define FMS_MSG_STATUS_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_STATUS) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_STATUS) #define FMS_MSG_STATUS_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_STATUS) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_STATUS) #define FMS_MSG_STATUS_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_STATUS) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_STATUS) /* 6.5.3.5. FMS Unsolicited Status (Unconfirmed Service Id = 1) */ #define FMS_MSG_UNSOLICITED_STATUS_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_UNCONFIRMED_SERVICE | HSE_FMS_UNSOLICITED_STATUS) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_UNCONFIRMED_SERVICE | HSE_FMS_UNSOLICITED_STATUS) /* 6.5.3.6. FMS Identify (Confirmed Service Id = 1) */ #define FMS_MSG_IDENTIFY_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_IDENTIFY) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_IDENTIFY) #define FMS_MSG_IDENTIFY_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_IDENTIFY) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_IDENTIFY) #define FMS_MSG_IDENTIFY_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_IDENTIFY) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_IDENTIFY) /* 6.5.3.7. FMS Get OD (Confirmed Service Id = 4) */ #define FMS_MSG_GET_OD_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_GET_OD) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_GET_OD) #define FMS_MSG_GET_OD_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_GET_OD) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_GET_OD) #define FMS_MSG_GET_OD_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_GET_OD) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_GET_OD) /* 6.5.3.8. FMS Initiate Put OD (Confirmed Service Id = 28) */ #define FMS_MSG_INITIATE_PUT_OD_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE_PUT_OD) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE_PUT_OD) #define FMS_MSG_INITIATE_PUT_OD_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE_PUT_OD) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE_PUT_OD) #define FMS_MSG_INITIATE_PUT_OD_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE_PUT_OD) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE_PUT_OD) /* 6.5.3.9. FMS Put OD (Confirmed Service Id = 29) */ #define FMS_MSG_PUT_OD_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_PUT_OD) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_PUT_OD) #define FMS_MSG_PUT_OD_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_PUT_OD) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_PUT_OD) #define FMS_MSG_PUT_OD_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_PUT_OD) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_PUT_OD) /* 6.5.3.10. FMS Terminate Put OD (Confirmed Service Id = 30) */ #define FMS_MSG_TERMINATE_PUT_OD_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_TERMINATE_PUT_OD) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_TERMINATE_PUT_OD) #define FMS_MSG_TERMINATE_PUT_OD_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_TERMINATE_PUT_OD) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_TERMINATE_PUT_OD) #define FMS_MSG_TERMINATE_PUT_OD_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_TERMINATE_PUT_OD) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_TERMINATE_PUT_OD) /* 6.5.3.11. FMS Generic Initiate Download Sequence (Confirmed Service Id = 31) */ #define FMS_MSG_GENERIC_INITIATE_DOWNLOAD_SEQUENCE_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_GENERIC_INITIATE_DOWNLOAD_SEQUENCE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_GENERIC_INITIATE_DOWNLOAD_SEQUENCE) #define FMS_MSG_GENERIC_INITIATE_DOWNLOAD_SEQUENCE_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_GENERIC_INITIATE_DOWNLOAD_SEQUENCE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_GENERIC_INITIATE_DOWNLOAD_SEQUENCE) #define FMS_MSG_GENERIC_INITIATE_DOWNLOAD_SEQUENCE_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_GENERIC_INITIATE_DOWNLOAD_SEQUENCE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_GENERIC_INITIATE_DOWNLOAD_SEQUENCE) /* 6.5.3.12. FMS Generic Download Segment (Confirmed Service Id = 32) */ #define FMS_MSG_GENERIC_DOWNLOAD_SEGMENT_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_GENERIC_DOWNLOAD_SEGMENT) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_GENERIC_DOWNLOAD_SEGMENT) #define FMS_MSG_GENERIC_DOWNLOAD_SEGMENT_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_GENERIC_DOWNLOAD_SEGMENT) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_GENERIC_DOWNLOAD_SEGMENT) #define FMS_MSG_GENERIC_DOWNLOAD_SEGMENT_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_GENERIC_DOWNLOAD_SEGMENT) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_GENERIC_DOWNLOAD_SEGMENT) /* 6.5.3.13. FMS Generic Terminate Download Sequence (Confirmed Service Id = 33) */ #define FMS_MSG_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE) #define FMS_MSG_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE) #define FMS_MSG_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_GENERIC_TERMINATE_DOWNLOAD_SEQUENCE) /* 6.5.3.14. FMS Initiate Download Sequence (Confirmed Service Id = 9) */ #define FMS_MSG_INITIATE_DOWNLOAD_SEQUENCE_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE_DOWNLOAD_SEQUENCE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE_DOWNLOAD_SEQUENCE) #define FMS_MSG_INITIATE_DOWNLOAD_SEQUENCE_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE_DOWNLOAD_SEQUENCE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE_DOWNLOAD_SEQUENCE) #define FMS_MSG_INITIATE_DOWNLOAD_SEQUENCE_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE_DOWNLOAD_SEQUENCE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE_DOWNLOAD_SEQUENCE) /* 6.5.3.15. FMS Download Segment (Confirmed Service Id = 10) */ #define FMS_MSG_DOWNLOAD_SEGMENT_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_DOWNLOAD_SEGMENT) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_DOWNLOAD_SEGMENT) #define FMS_MSG_DOWNLOAD_SEGMENT_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_DOWNLOAD_SEGMENT) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_DOWNLOAD_SEGMENT) #define FMS_MSG_DOWNLOAD_SEGMENT_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_DOWNLOAD_SEGMENT) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_DOWNLOAD_SEGMENT) /* 6.5.3.16. FMS Terminate Download Sequence (Confirmed Service Id = 11) */ #define FMS_MSG_TERMINATE_DOWNLOAD_SEQUENCE_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_TERMINATE_DOWNLOAD_SEQUENCE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_TERMINATE_DOWNLOAD_SEQUENCE) #define FMS_MSG_TERMINATE_DOWNLOAD_SEQUENCE_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_TERMINATE_DOWNLOAD_SEQUENCE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_TERMINATE_DOWNLOAD_SEQUENCE) #define FMS_MSG_TERMINATE_DOWNLOAD_SEQUENCE_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_TERMINATE_DOWNLOAD_SEQUENCE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_TERMINATE_DOWNLOAD_SEQUENCE) /* 6.5.3.17. FMS Initiate Upload Sequence (Confirmed Service Id = 12) */ #define FMS_MSG_INITIATE_UPLOAD_SEQUENCE_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE_UPLOAD_SEQUENCE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE_UPLOAD_SEQUENCE) #define FMS_MSG_INITIATE_UPLOAD_SEQUENCE_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE_UPLOAD_SEQUENCE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE_UPLOAD_SEQUENCE) #define FMS_MSG_INITIATE_UPLOAD_SEQUENCE_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE_UPLOAD_SEQUENCE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_INITIATE_UPLOAD_SEQUENCE) /* 6.5.3.18. FMS Upload Segment (Confirmed Service Id = 13) */ #define FMS_MSG_UPLOAD_SEGMENT_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_UPLOAD_SEGMENT) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_UPLOAD_SEGMENT) #define FMS_MSG_UPLOAD_SEGMENT_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_UPLOAD_SEGMENT) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_UPLOAD_SEGMENT) #define FMS_MSG_UPLOAD_SEGMENT_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_UPLOAD_SEGMENT) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_UPLOAD_SEGMENT) /* 6.5.3.19. FMS Terminate Upload Sequence (Confirmed Service Id = 14) */ #define FMS_MSG_TERMINATE_UPLOAD_SEQUENCE_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_TERMINATE_UPLOAD_SEQUENCE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_TERMINATE_UPLOAD_SEQUENCE) #define FMS_MSG_TERMINATE_UPLOAD_SEQUENCE_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_TERMINATE_UPLOAD_SEQUENCE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_TERMINATE_UPLOAD_SEQUENCE) #define FMS_MSG_TERMINATE_UPLOAD_SEQUENCE_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_TERMINATE_UPLOAD_SEQUENCE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_TERMINATE_UPLOAD_SEQUENCE) /* 6.5.3.20. FMS Request Domain Download (Confirmed Service Id = 15) */ #define FMS_MSG_REQUEST_DOMAIN_DOWNLOAD_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_REQUEST_DOMAIN_DOWNLOAD) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_REQUEST_DOMAIN_DOWNLOAD) #define FMS_MSG_REQUEST_DOMAIN_DOWNLOAD_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_REQUEST_DOMAIN_DOWNLOAD) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_REQUEST_DOMAIN_DOWNLOAD) #define FMS_MSG_REQUEST_DOMAIN_DOWNLOAD_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_REQUEST_DOMAIN_DOWNLOAD) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_REQUEST_DOMAIN_DOWNLOAD) /* 6.5.3.21. FMS Request Domain Upload (Confirmed Service Id = 16) */ #define FMS_MSG_REQUEST_DOMAIN_UPLOAD_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_REQUEST_DOMAIN_UPLOAD) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_REQUEST_DOMAIN_UPLOAD) #define FMS_MSG_REQUEST_DOMAIN_UPLOAD_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_REQUEST_DOMAIN_UPLOAD) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_REQUEST_DOMAIN_UPLOAD) #define FMS_MSG_REQUEST_DOMAIN_UPLOAD_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_REQUEST_DOMAIN_UPLOAD) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_REQUEST_DOMAIN_UPLOAD) /* 6.5.3.22. FMS Create Program Invocation (Confirmed Service Id = 17) */ #define FMS_MSG_CREATE_PI_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_CREATE_PROGRAM_INVOCATION) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_CREATE_PROGRAM_INVOCATION) #define FMS_MSG_CREATE_PI_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_CREATE_PROGRAM_INVOCATION) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_CREATE_PROGRAM_INVOCATION) #define FMS_MSG_CREATE_PI_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_CREATE_PROGRAM_INVOCATION) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_CREATE_PROGRAM_INVOCATION) /* 6.5.3.23. FMS Delete Program Invocation (Confirmed Service Id = 18) */ #define FMS_MSG_DELETE_PI_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_DELETE_PROGRAM_INVOCATION) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_DELETE_PROGRAM_INVOCATION) #define FMS_MSG_DELETE_PI_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_DELETE_PROGRAM_INVOCATION) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_DELETE_PROGRAM_INVOCATION) #define FMS_MSG_DELETE_PI_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_DELETE_PROGRAM_INVOCATION) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_DELETE_PROGRAM_INVOCATION) /* 6.5.3.24. FMS Start (Confirmed Service Id = 19) */ #define FMS_MSG_START_PI_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_START) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_START) #define FMS_MSG_START_PI_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_START) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_START) #define FMS_MSG_START_PI_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_START) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_START) /* 6.5.3.25. FMS Stop (Confirmed Service Id = 20) */ #define FMS_MSG_STOP_PI_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_STOP) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_STOP) #define FMS_MSG_STOP_PI_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_STOP) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_STOP) #define FMS_MSG_STOP_PI_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_STOP) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_STOP) /* 6.5.3.26. FMS Resume (Confirmed Service Id = 21) */ #define FMS_MSG_RESUME_PI_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_RESUME) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_RESUME) #define FMS_MSG_RESUME_PI_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_RESUME) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_RESUME) #define FMS_MSG_RESUME_PI_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_RESUME) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_RESUME) /* 6.5.3.27. FMS Reset (Confirmed Service Id = 22) */ #define FMS_MSG_RESET_PI_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_RESET) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_RESET) #define FMS_MSG_RESET_PI_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_RESET) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_RESET) #define FMS_MSG_RESET_PI_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_RESET) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_RESET) /* 6.5.3.28. FMS Kill (Confirmed Service Id = 23) */ #define FMS_MSG_KILL_PI_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_KILL) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_KILL) #define FMS_MSG_KILL_PI_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_KILL) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_KILL) #define FMS_MSG_KILL_PI_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_KILL) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_KILL) /* 6.5.3.29. FMS Read (Confirmed Service Id = 2) */ #define FMS_MSG_READ_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_READ) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_READ) #define FMS_MSG_READ_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_READ) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_READ) #define FMS_MSG_READ_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_READ) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_READ) /* 6.5.3.30. FMS Read with Subindex (Confirmed Service Id = 82) */ #define FMS_MSG_READ_SUBINDEX_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_READ_WITH_SUBINDEX) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_READ_WITH_SUBINDEX) #define FMS_MSG_READ_SUBINDEX_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_READ_WITH_SUBINDEX) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_READ_WITH_SUBINDEX) #define FMS_MSG_READ_SUBINDEX_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_READ_WITH_SUBINDEX) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_READ_WITH_SUBINDEX) /* 6.5.3.31. FMS Write (Confirmed Service Id = 3) */ #define FMS_MSG_WRITE_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_WRITE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_WRITE) #define FMS_MSG_WRITE_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_WRITE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_WRITE) #define FMS_MSG_WRITE_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_WRITE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_WRITE) /* 6.5.3.32. FMS Write with Subindex (Confirmed Service Id = 83) */ #define FMS_MSG_WRITE_SUBINDEX_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_WRITE_WITH_SUBINDEX) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_WRITE_WITH_SUBINDEX) #define FMS_MSG_WRITE_SUBINDEX_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_WRITE_WITH_SUBINDEX) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_WRITE_WITH_SUBINDEX) #define FMS_MSG_WRITE_SUBINDEX_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_WRITE_WITH_SUBINDEX) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_WRITE_WITH_SUBINDEX) /* 6.5.3.33. FMS Define Variable List (Confirmed Service Id = 7) */ #define FMS_MSG_DEFINE_VARIABLE_LIST_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_DEFINE_VARIABLE_LIST) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_DEFINE_VARIABLE_LIST) #define FMS_MSG_DEFINE_VARIABLE_LIST_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_DEFINE_VARIABLE_LIST) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_DEFINE_VARIABLE_LIST) #define FMS_MSG_DEFINE_VARIABLE_LIST_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_DEFINE_VARIABLE_LIST) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_DEFINE_VARIABLE_LIST) /* 6.5.3.34. FMS Delete Variable List (Confirmed Service Id = 8) */ #define FMS_MSG_DELETE_VARIABLE_LIST_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_DELETE_VARIABLE_LIST) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_DELETE_VARIABLE_LIST) #define FMS_MSG_DELETE_VARIABLE_LIST_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_DELETE_VARIABLE_LIST) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_DELETE_VARIABLE_LIST) #define FMS_MSG_DELETE_VARIABLE_LIST_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_DELETE_VARIABLE_LIST) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_DELETE_VARIABLE_LIST) /* 6.5.3.35. FMS Information Report (Unconfirmed Service Id = 0) */ #define FMS_MSG_INFO_REPORT_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_UNCONFIRMED_SERVICE | HSE_FMS_INFORMATION_REPORT) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_UNCONFIRMED_SERVICE | HSE_FMS_INFORMATION_REPORT) /* 6.5.3.36. FMS Information Report with Subindex - (Unconfirmed Service Id = 16) */ + (Unconfirmed Service Id = 16) */ #define FMS_MSG_INFO_REPORT_SUBINDEX_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_UNCONFIRMED_SERVICE | HSE_FMS_INFORMATION_REPORT_WITH_SUBINDEX) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_UNCONFIRMED_SERVICE | HSE_FMS_INFORMATION_REPORT_WITH_SUBINDEX) /* 6.5.3.37. FMS Information Report On Change (Unconfirmed Service Id = 17) */ #define FMS_MSG_INFO_REPORT_CHANGE_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_UNCONFIRMED_SERVICE | HSE_FMS_INFORMATION_REPORT_ON_CHANGE) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_UNCONFIRMED_SERVICE | HSE_FMS_INFORMATION_REPORT_ON_CHANGE) /* 6.5.3.38. FMS Information Report On Change with Subindex - (Unconfirmed Service Id = 18) */ + (Unconfirmed Service Id = 18) */ #define FMS_MSG_INFO_REPORT_CHANGE_SUBINDEX_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | FDA_UNCONFIRMED_SERVICE | \ - HSE_FMS_INFORMATION_REPORT_ON_CHANGE_WITH_SUBINDEX) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | FDA_UNCONFIRMED_SERVICE | \ + HSE_FMS_INFORMATION_REPORT_ON_CHANGE_WITH_SUBINDEX) /* 6.5.3.39. FMS Event Notification (Unconfirmed Service Id = 2) */ #define FMS_MSG_EVENT_NOTIFICATION_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_UNCONFIRMED_SERVICE | HSE_FMS_EVENT_NOTIFICATION) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_UNCONFIRMED_SERVICE | HSE_FMS_EVENT_NOTIFICATION) /* 6.5.3.40. FMS Alter Event Condition Monitoring (Confirmed Service Id = 24) */ #define FMS_MSG_ALTER_EVENT_CONDITION_MONITORING_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_ALTER_EVENT_CONDITION_MONITORING) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_ALTER_EVENT_CONDITION_MONITORING) #define FMS_MSG_ALTER_EVENT_CONDITION_MONITORING_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_ALTER_EVENT_CONDITION_MONITORING) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_ALTER_EVENT_CONDITION_MONITORING) #define FMS_MSG_ALTER_EVENT_CONDITION_MONITORING_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_ALTER_EVENT_CONDITION_MONITORING) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_ALTER_EVENT_CONDITION_MONITORING) /* 6.5.3.41. FMS Acknowledge Event Notification (Confirmed Service Id = 25) */ #define FMS_MSG_ACKNOWLEDGE_EVENT_NOTIFICATION_REQ \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_ACKNOWLEDGE_EVENT_NOTIFICATION) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_ACKNOWLEDGE_EVENT_NOTIFICATION) #define FMS_MSG_ACKNOWLEDGE_EVENT_NOTIFICATION_RSP \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_ACKNOWLEDGE_EVENT_NOTIFICATION) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_ACKNOWLEDGE_EVENT_NOTIFICATION) #define FMS_MSG_ACKNOWLEDGE_EVENT_NOTIFICATION_ERR \ - (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | HSE_FMS_ACKNOWLEDGE_EVENT_NOTIFICATION) + (PROTOCOL_FMS_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | HSE_FMS_ACKNOWLEDGE_EVENT_NOTIFICATION) @@ -690,48 +690,48 @@ */ /* Unconfirmed Service Id */ -#define LAN_DIAG 1 +#define LAN_DIAG 1 /* Confirmed Service Id */ -#define LAN_GET_INFO 1 -#define LAN_PUT_INFO 2 -#define LAN_GET_STATISTICS 3 +#define LAN_GET_INFO 1 +#define LAN_PUT_INFO 2 +#define LAN_GET_STATISTICS 3 /* 6.5.4.1. LAN Redundancy Get Information (Confirmed Service Id = 1) */ #define LAN_MSG_GET_INFO_REQ \ - (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | LAN_GET_INFO) + (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | LAN_GET_INFO) #define LAN_MSG_GET_INFO_RSP \ - (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | LAN_GET_INFO) + (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | LAN_GET_INFO) #define LAN_MSG_GET_INFO_ERR \ - (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | LAN_GET_INFO) + (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | LAN_GET_INFO) /* 6.5.4.2. LAN Redundancy Put Information (Confirmed Service Id = 2) */ #define LAN_MSG_PUT_INFO_REQ \ - (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | LAN_PUT_INFO) + (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | LAN_PUT_INFO) #define LAN_MSG_PUT_INFO_RSP \ - (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | LAN_PUT_INFO) + (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | LAN_PUT_INFO) #define LAN_MSG_PUT_INFO_ERR \ - (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | LAN_PUT_INFO) + (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | LAN_PUT_INFO) /* 6.5.4.3. LAN Redundancy Get Statistics (Confirmed Service Id = 3) */ #define LAN_MSG_GET_STATISTICS_REQ \ - (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_REQ | \ - FDA_CONFIRMED_SERVICE | LAN_GET_STATISTICS) + (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_REQ | \ + FDA_CONFIRMED_SERVICE | LAN_GET_STATISTICS) #define LAN_MSG_GET_STATISTICS_RSP \ - (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_RSP | \ - FDA_CONFIRMED_SERVICE | LAN_GET_STATISTICS) + (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_RSP | \ + FDA_CONFIRMED_SERVICE | LAN_GET_STATISTICS) #define LAN_MSG_GET_STATISTICS_ERR \ - (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_ERR | \ - FDA_CONFIRMED_SERVICE | LAN_GET_STATISTICS) + (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_ERR | \ + FDA_CONFIRMED_SERVICE | LAN_GET_STATISTICS) /* 6.5.4.4. Diagnostic Message (Unconfirmed Service Id = 1) */ #define LAN_MSG_DIAG_REQ \ - (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_REQ | \ - FDA_UNCONFIRMED_SERVICE | LAN_DIAG) -#endif /* __PACKET_FF_H__ */ + (PROTOCOL_LAN_MSG | PROTOCOL_TYPE_REQ | \ + FDA_UNCONFIRMED_SERVICE | LAN_DIAG) +#endif /* __PACKET_FF_H__ */ |