Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / packet-ftam.c
blob7300d93bb82cfe8cabb37153a3aca314695e50ed
1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
3 /* packet-ftam.c */
4 /* asn2wrs.py -b -q -L -p ftam -c ./ftam.cnf -s ./packet-ftam-template -D . -O ../.. ISO8571-FTAM.asn */
6 /* packet-ftam_asn1.c
7 * Routine to dissect OSI ISO 8571 FTAM Protocol packets
8 * based on the ASN.1 specification from http://www.itu.int/ITU-T/asn1/database/iso/8571-4/1988/
10 * also based on original handwritten dissector by
11 * Yuriy Sidelnikov <YSidelnikov@hotmail.com>
13 * Anders Broman and Ronnie Sahlberg 2005 - 2006
15 * Wireshark - Network traffic analyzer
16 * By Gerald Combs <gerald@wireshark.org>
17 * Copyright 1998 Gerald Combs
19 * SPDX-License-Identifier: GPL-2.0-or-later
22 #include "config.h"
24 #include <epan/packet.h>
25 #include <epan/expert.h>
26 #include <epan/oids.h>
27 #include <epan/asn1.h>
28 #include <wsutil/array.h>
30 #include "packet-ber.h"
31 #include "packet-acse.h"
32 #include "packet-ftam.h"
34 #define PNAME "ISO 8571 FTAM"
35 #define PSNAME "FTAM"
36 #define PFNAME "ftam"
38 void proto_register_ftam(void);
39 void proto_reg_handoff_ftam(void);
41 /* Initialize the protocol and registered fields */
42 static int proto_ftam;
44 /* Declare the function to avoid a compiler warning */
45 static int dissect_ftam_OR_Set(bool implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_);
47 static int hf_ftam_unstructured_text; /* ISO FTAM unstructured text */
48 static int hf_ftam_unstructured_binary; /* ISO FTAM unstructured binary */
49 static int hf_ftam_fTAM_Regime_PDU; /* FTAM_Regime_PDU */
50 static int hf_ftam_file_PDU; /* File_PDU */
51 static int hf_ftam_bulk_Data_PDU; /* Bulk_Data_PDU */
52 static int hf_ftam_fSM_PDU; /* FSM_PDU */
53 static int hf_ftam_f_initialize_request; /* F_INITIALIZE_request */
54 static int hf_ftam_f_initialize_response; /* F_INITIALIZE_response */
55 static int hf_ftam_f_terminate_request; /* F_TERMINATE_request */
56 static int hf_ftam_f_terminate_response; /* F_TERMINATE_response */
57 static int hf_ftam_f_u_abort_request; /* F_U_ABORT_request */
58 static int hf_ftam_f_p_abort_request; /* F_P_ABORT_request */
59 static int hf_ftam_protocol_Version; /* Protocol_Version */
60 static int hf_ftam_implementation_information; /* Implementation_Information */
61 static int hf_ftam_presentation_tontext_management; /* BOOLEAN */
62 static int hf_ftam_service_class; /* Service_Class */
63 static int hf_ftam_functional_units; /* Functional_Units */
64 static int hf_ftam_attribute_groups; /* Attribute_Groups */
65 static int hf_ftam_shared_ASE_information; /* Shared_ASE_Information */
66 static int hf_ftam_ftam_quality_of_Service; /* FTAM_Quality_of_Service */
67 static int hf_ftam_contents_type_list; /* Contents_Type_List */
68 static int hf_ftam_initiator_identity; /* User_Identity */
69 static int hf_ftam_account; /* Account */
70 static int hf_ftam_filestore_password; /* Password */
71 static int hf_ftam_checkpoint_window; /* INTEGER */
72 static int hf_ftam_state_result; /* State_Result */
73 static int hf_ftam_action_result; /* Action_Result */
74 static int hf_ftam_diagnostic; /* Diagnostic */
75 static int hf_ftam__untag_item; /* Contents_Type_List_item */
76 static int hf_ftam_document_type_name; /* Document_Type_Name */
77 static int hf_ftam_abstract_Syntax_name; /* Abstract_Syntax_Name */
78 static int hf_ftam_charging; /* Charging */
79 static int hf_ftam_f_select_request; /* F_SELECT_request */
80 static int hf_ftam_f_select_response; /* F_SELECT_response */
81 static int hf_ftam_f_deselect_request; /* F_DESELECT_request */
82 static int hf_ftam_f_deselect_response; /* F_DESELECT_response */
83 static int hf_ftam_f_create_request; /* F_CREATE_request */
84 static int hf_ftam_f_create_response; /* F_CREATE_response */
85 static int hf_ftam_f_delete_request; /* F_DELETE_request */
86 static int hf_ftam_f_delete_response; /* F_DELETE_response */
87 static int hf_ftam_f_read_attrib_request; /* F_READ_ATTRIB_request */
88 static int hf_ftam_f_read_attrib_response; /* F_READ_ATTRIB_response */
89 static int hf_ftam_f_Change_attrib_reques; /* F_CHANGE_ATTRIB_request */
90 static int hf_ftam_f_Change_attrib_respon; /* F_CHANGE_ATTRIB_response */
91 static int hf_ftam_f_open_request; /* F_OPEN_request */
92 static int hf_ftam_f_open_response; /* F_OPEN_response */
93 static int hf_ftam_f_close_request; /* F_CLOSE_request */
94 static int hf_ftam_f_close_response; /* F_CLOSE_response */
95 static int hf_ftam_f_begin_group_request; /* F_BEGIN_GROUP_request */
96 static int hf_ftam_f_begin_group_response; /* F_BEGIN_GROUP_response */
97 static int hf_ftam_f_end_group_request; /* F_END_GROUP_request */
98 static int hf_ftam_f_end_group_response; /* F_END_GROUP_response */
99 static int hf_ftam_f_recover_request; /* F_RECOVER_request */
100 static int hf_ftam_f_recover_response; /* F_RECOVER_response */
101 static int hf_ftam_f_locate_request; /* F_LOCATE_request */
102 static int hf_ftam_f_locate_response; /* F_LOCATE_response */
103 static int hf_ftam_f_erase_request; /* F_ERASE_request */
104 static int hf_ftam_f_erase_response; /* F_ERASE_response */
105 static int hf_ftam_select_attributes; /* Select_Attributes */
106 static int hf_ftam_requested_access; /* Access_Request */
107 static int hf_ftam_access_passwords; /* Access_Passwords */
108 static int hf_ftam_path_access_passwords; /* Path_Access_Passwords */
109 static int hf_ftam_concurrency_control; /* Concurrency_Control */
110 static int hf_ftam_referent_indicator; /* Referent_Indicator */
111 static int hf_ftam_override; /* Override */
112 static int hf_ftam_initial_attributes; /* Create_Attributes */
113 static int hf_ftam_create_password; /* Password */
114 static int hf_ftam_attribute_names; /* Attribute_Names */
115 static int hf_ftam_attribute_extension_names; /* Attribute_Extension_Names */
116 static int hf_ftam_read_attributes; /* Read_Attributes */
117 static int hf_ftam_attributes; /* Change_Attributes */
118 static int hf_ftam_processing_mode; /* T_processing_mode */
119 static int hf_ftam_open_contents_type; /* T_open_contents_type */
120 static int hf_ftam_unknown; /* NULL */
121 static int hf_ftam_proposed; /* Contents_Type_Attribute */
122 static int hf_ftam_enable_fadu_locking; /* BOOLEAN */
123 static int hf_ftam_activity_identifier; /* Activity_Identifier */
124 static int hf_ftam_request_recovery_mode; /* T_request_recovery_mode */
125 static int hf_ftam_remove_contexts; /* SET_OF_Abstract_Syntax_Name */
126 static int hf_ftam_remove_contexts_item; /* Abstract_Syntax_Name */
127 static int hf_ftam_define_contexts; /* SET_OF_Abstract_Syntax_Name */
128 static int hf_ftam_define_contexts_item; /* Abstract_Syntax_Name */
129 static int hf_ftam_degree_of_overlap; /* Degree_Of_Overlap */
130 static int hf_ftam_transfer_window; /* INTEGER */
131 static int hf_ftam_contents_type; /* Contents_Type_Attribute */
132 static int hf_ftam_response_recovery_mode; /* T_response_recovery_mode */
133 static int hf_ftam_presentation_action; /* BOOLEAN */
134 static int hf_ftam_threshold; /* INTEGER */
135 static int hf_ftam_bulk_transfer_number; /* INTEGER */
136 static int hf_ftam_recovefy_Point; /* INTEGER */
137 static int hf_ftam_concurrent_bulk_transfer_number; /* INTEGER */
138 static int hf_ftam_concurrent_recovery_point; /* INTEGER */
139 static int hf_ftam_last_transfer_end_read_response; /* INTEGER */
140 static int hf_ftam_last_transfer_end_write_response; /* INTEGER */
141 static int hf_ftam_recovety_Point; /* INTEGER */
142 static int hf_ftam_last_transfer_end_read_request; /* INTEGER */
143 static int hf_ftam_last_transfer_end_write_request; /* INTEGER */
144 static int hf_ftam_file_access_data_unit_identity; /* FADU_Identity */
145 static int hf_ftam_fadu_lock; /* FADU_Lock */
146 static int hf_ftam_f_read_request; /* F_READ_request */
147 static int hf_ftam_f_write_request; /* F_WRITE_request */
148 static int hf_ftam_f_data_end_request; /* F_DATA_END_request */
149 static int hf_ftam_f_transfer_end_request; /* F_TRANSFER_END_request */
150 static int hf_ftam_f_transfer_end_response; /* F_TRANSFER_END_response */
151 static int hf_ftam_f_cancel_request; /* F_CANCEL_request */
152 static int hf_ftam_f_cancel_response; /* F_CANCEL_response */
153 static int hf_ftam_f_restart_request; /* F_RESTART_request */
154 static int hf_ftam_f_restart_response; /* F_RESTART_response */
155 static int hf_ftam_read_access_context; /* Access_Context */
156 static int hf_ftam_transfer_number; /* INTEGER */
157 static int hf_ftam_file_access_data_unit_Operation; /* T_file_access_data_unit_Operation */
158 static int hf_ftam_request_type; /* Request_Type */
159 static int hf_ftam_checkpoint_identifier; /* INTEGER */
160 static int hf_ftam_access_context; /* T_access_context */
161 static int hf_ftam_level_number; /* INTEGER */
162 static int hf_ftam_read_password; /* Password */
163 static int hf_ftam_insert_password; /* Password */
164 static int hf_ftam_replace_password; /* Password */
165 static int hf_ftam_extend_password; /* Password */
166 static int hf_ftam_erase_password; /* Password */
167 static int hf_ftam_read_attribute_password; /* Password */
168 static int hf_ftam_change_attribute_password; /* Password */
169 static int hf_ftam_delete_password; /* Password */
170 static int hf_ftam_pass_passwords; /* Pass_Passwords */
171 static int hf_ftam_link_password; /* Password */
172 static int hf_ftam_pathname; /* Pathname_Attribute */
173 static int hf_ftam_storage_account; /* Account_Attribute */
174 static int hf_ftam_object_availability; /* Object_Availability_Attribute */
175 static int hf_ftam_future_Object_size; /* Object_Size_Attribute */
176 static int hf_ftam_change_attributes_access_control; /* Access_Control_Change_Attribute */
177 static int hf_ftam_change_path_access_control; /* Access_Control_Change_Attribute */
178 static int hf_ftam_legal_qualification; /* Legal_Qualification_Attribute */
179 static int hf_ftam_private_use; /* Private_Use_Attribute */
180 static int hf_ftam_attribute_extensions; /* Attribute_Extensions */
181 static int hf_ftam__untag_item_01; /* Charging_item */
182 static int hf_ftam_resource_identifier; /* GraphicString */
183 static int hf_ftam_charging_unit; /* GraphicString */
184 static int hf_ftam_charging_value; /* INTEGER */
185 static int hf_ftam_read; /* Lock */
186 static int hf_ftam_insert; /* Lock */
187 static int hf_ftam_replace; /* Lock */
188 static int hf_ftam_extend; /* Lock */
189 static int hf_ftam_erase; /* Lock */
190 static int hf_ftam_read_attribute; /* Lock */
191 static int hf_ftam_change_attribute; /* Lock */
192 static int hf_ftam_delete_Object; /* Lock */
193 static int hf_ftam_object_type; /* Object_Type_Attribute */
194 static int hf_ftam_permitted_actions; /* Permitted_Actions_Attribute */
195 static int hf_ftam_access_control; /* Access_Control_Attribute */
196 static int hf_ftam_path_access_control; /* Access_Control_Attribute */
197 static int hf_ftam__untag_item_02; /* Diagnostic_item */
198 static int hf_ftam_diagnostic_type; /* T_diagnostic_type */
199 static int hf_ftam_error_identifier; /* INTEGER */
200 static int hf_ftam_error_observer; /* Entity_Reference */
201 static int hf_ftam_error_Source; /* Entity_Reference */
202 static int hf_ftam_suggested_delay; /* INTEGER */
203 static int hf_ftam_further_details; /* GraphicString */
204 static int hf_ftam_first_last; /* T_first_last */
205 static int hf_ftam_relative; /* T_relative */
206 static int hf_ftam_begin_end; /* T_begin_end */
207 static int hf_ftam_single_name; /* Node_Name */
208 static int hf_ftam_name_list; /* SEQUENCE_OF_Node_Name */
209 static int hf_ftam_name_list_item; /* Node_Name */
210 static int hf_ftam_fadu_number; /* INTEGER */
211 static int hf_ftam_graphicString; /* GraphicString */
212 static int hf_ftam_octetString; /* OCTET_STRING */
213 static int hf_ftam_linked_Object; /* Pathname_Attribute */
214 static int hf_ftam_child_objects; /* Child_Objects_Attribute */
215 static int hf_ftam_primaty_pathname; /* Pathname_Attribute */
216 static int hf_ftam_date_and_time_of_creation; /* Date_and_Time_Attribute */
217 static int hf_ftam_date_and_time_of_last_modification; /* Date_and_Time_Attribute */
218 static int hf_ftam_date_and_time_of_last_read_access; /* Date_and_Time_Attribute */
219 static int hf_ftam_date_and_time_of_last_attribute_modification; /* Date_and_Time_Attribute */
220 static int hf_ftam_identity_of_creator; /* User_Identity_Attribute */
221 static int hf_ftam_identity_of_last_modifier; /* User_Identity_Attribute */
222 static int hf_ftam_identity_of_last_reader; /* User_Identity_Attribute */
223 static int hf_ftam_identity_last_attribute_modifier; /* User_Identity_Attribute */
224 static int hf_ftam_object_size; /* Object_Size_Attribute */
225 static int hf_ftam_no_value_available; /* NULL */
226 static int hf_ftam_actual_values3; /* SET_OF_Access_Control_Element */
227 static int hf_ftam_actual_values3_item; /* Access_Control_Element */
228 static int hf_ftam_actual_values1; /* T_actual_values1 */
229 static int hf_ftam_insert_values; /* SET_OF_Access_Control_Element */
230 static int hf_ftam_insert_values_item; /* Access_Control_Element */
231 static int hf_ftam_delete_values; /* SET_OF_Access_Control_Element */
232 static int hf_ftam_delete_values_item; /* Access_Control_Element */
233 static int hf_ftam_action_list; /* Access_Request */
234 static int hf_ftam_concurrency_access; /* Concurrency_Access */
235 static int hf_ftam_identity; /* User_Identity */
236 static int hf_ftam_passwords; /* Access_Passwords */
237 static int hf_ftam_location; /* Application_Entity_Title */
238 static int hf_ftam_read_key; /* Concurrency_Key */
239 static int hf_ftam_insert_key; /* Concurrency_Key */
240 static int hf_ftam_replace_key; /* Concurrency_Key */
241 static int hf_ftam_extend_key; /* Concurrency_Key */
242 static int hf_ftam_erase_key; /* Concurrency_Key */
243 static int hf_ftam_read_attribute_key; /* Concurrency_Key */
244 static int hf_ftam_change_attribute_key; /* Concurrency_Key */
245 static int hf_ftam_delete_Object_key; /* Concurrency_Key */
246 static int hf_ftam_actual_values2; /* Account */
247 static int hf_ftam_document_type; /* T_document_type */
248 static int hf_ftam_parameter; /* T_parameter */
249 static int hf_ftam_constraint_set_and_abstract_Syntax; /* T_constraint_set_and_abstract_Syntax */
250 static int hf_ftam_constraint_set_name; /* Constraint_Set_Name */
251 static int hf_ftam_actual_values5; /* GeneralizedTime */
252 static int hf_ftam_actual_values8; /* T_actual_values8 */
253 static int hf_ftam_incomplete_pathname; /* Pathname */
254 static int hf_ftam_complete_pathname; /* Pathname */
255 static int hf_ftam_actual_values7; /* INTEGER */
256 static int hf_ftam_actual_values9; /* GraphicString */
257 static int hf_ftam_abstract_Syntax_not_supported; /* NULL */
258 static int hf_ftam_actual_values4; /* EXTERNAL */
259 static int hf_ftam_actual_values6; /* User_Identity */
260 static int hf_ftam_Child_Objects_Attribute_item; /* GraphicString */
261 static int hf_ftam_f_Change_prefix_request; /* F_CHANGE_PREFIX_request */
262 static int hf_ftam_f_Change_prefix_response; /* F_CHANGE_PREFIX_response */
263 static int hf_ftam_f_list_request; /* F_LIST_request */
264 static int hf_ftam_f_list_response; /* F_LIST_response */
265 static int hf_ftam_f_group_select_request; /* F_GROUP_SELECT_request */
266 static int hf_ftam_f_group_select_response; /* F_GROUP_SELECT_response */
267 static int hf_ftam_f_group_delete_request; /* F_GROUP_DELETE_request */
268 static int hf_ftam_f_group_delete_response; /* F_GROUP_DELETE_response */
269 static int hf_ftam_f_group_move_request; /* F_GROUP_MOVE_request */
270 static int hf_ftam_f_group_move_response; /* F_GROUP_MOVE_response */
271 static int hf_ftam_f_group_copy_request; /* F_GROUP_COPY_request */
272 static int hf_ftam_f_group_copy_response; /* F_GROUP_COPY_response */
273 static int hf_ftam_f_group_list_request; /* F_GROUP_LIST_request */
274 static int hf_ftam_f_group_list_response; /* F_GROUP_LIST_response */
275 static int hf_ftam_f_group_Change_attrib_request; /* F_GROUP_CHANGE_ATTRIB_request */
276 static int hf_ftam_f_group_Change_attrib_response; /* F_GROUP_CHANGE_ATTRIB_response */
277 static int hf_ftam_f_select_another_request; /* F_SELECT_ANOTHER_request */
278 static int hf_ftam_f_select_another_response; /* F_SELECT_ANOTHER_response */
279 static int hf_ftam_f_create_directory_request; /* F_CREATE_DIRECTORY_request */
280 static int hf_ftam_f_create_directory_response; /* F_CREATE_DIRECTORY_response */
281 static int hf_ftam_f_link_request; /* F_LINK_request */
282 static int hf_ftam_f_link_response; /* F_LINK_response */
283 static int hf_ftam_f_unlink_request; /* F_UNLINK_request */
284 static int hf_ftam_f_unlink_response; /* F_UNLINK_response */
285 static int hf_ftam_f_read_link_attrib_request; /* F_READ_LINK_ATTRIB_request */
286 static int hf_ftam_f_read_link_attrib_response; /* F_READ_LINK_ATTRIB_response */
287 static int hf_ftam_f_Change_link_attrib_request; /* F_CHANGE_LINK_ATTRIB_request */
288 static int hf_ftam_f_Change_Iink_attrib_response; /* F_CHANGE_LINK_ATTRIB_response */
289 static int hf_ftam_f_move_request; /* F_MOVE_request */
290 static int hf_ftam_f_move_response; /* F_MOVE_response */
291 static int hf_ftam_f_copy_request; /* F_COPY_request */
292 static int hf_ftam_f_copy_response; /* F_COPY_response */
293 static int hf_ftam_reset; /* BOOLEAN */
294 static int hf_ftam_destination_file_directory; /* Destination_File_Directory */
295 static int hf_ftam_attribute_value_asset_tions; /* Attribute_Value_Assertions */
296 static int hf_ftam_scope; /* Scope */
297 static int hf_ftam_objects_attributes_list; /* Objects_Attributes_List */
298 static int hf_ftam_attribute_value_assertions; /* Attribute_Value_Assertions */
299 static int hf_ftam_maximum_set_size; /* INTEGER */
300 static int hf_ftam_request_Operation_result; /* Request_Operation_Result */
301 static int hf_ftam_operation_result; /* Operation_Result */
302 static int hf_ftam_error_action; /* Error_Action */
303 static int hf_ftam_last_member_indicator; /* BOOLEAN */
304 static int hf_ftam_shared_ASE_infonnation; /* Shared_ASE_Information */
305 static int hf_ftam_target_object; /* Pathname_Attribute */
306 static int hf_ftam_target_Object; /* Pathname_Attribute */
307 static int hf_ftam_read_link_attributes; /* Read_Attributes */
308 static int hf_ftam_Attribute_Extension_Names_item; /* Attribute_Extension_Set_Name */
309 static int hf_ftam_extension_set_identifier; /* Extension_Set_Identifier */
310 static int hf_ftam_extension_attribute_names; /* SEQUENCE_OF_Extension_Attribute_identifier */
311 static int hf_ftam_extension_attribute_names_item; /* Extension_Attribute_identifier */
312 static int hf_ftam_Attribute_Extensions_item; /* Attribute_Extension_Set */
313 static int hf_ftam_extension_set_attributes; /* SEQUENCE_OF_Extension_Attribute */
314 static int hf_ftam_extension_set_attributes_item; /* Extension_Attribute */
315 static int hf_ftam_extension_attribute_identifier; /* T_extension_attribute_identifier */
316 static int hf_ftam_extension_attribute; /* T_extension_attribute */
317 static int hf_ftam__untag_item_03; /* T__untag_item */
318 static int hf_ftam_root_directory; /* Pathname_Attribute */
319 static int hf_ftam_retrieval_scope; /* T_retrieval_scope */
320 static int hf_ftam_OR_Set_item; /* AND_Set */
321 static int hf_ftam_AND_Set_item; /* AND_Set_item */
322 static int hf_ftam_pathname_Pattern; /* Pathname_Pattern */
323 static int hf_ftam_object_type_Pattern; /* Integer_Pattern */
324 static int hf_ftam_permitted_actions_Pattern; /* Bitstring_Pattern */
325 static int hf_ftam_contents_type_Pattern; /* Contents_Type_Pattern */
326 static int hf_ftam_linked_Object_Pattern; /* Pathname_Pattern */
327 static int hf_ftam_child_objects_Pattern; /* Pathname_Pattern */
328 static int hf_ftam_primaty_pathname_Pattern; /* Pathname_Pattern */
329 static int hf_ftam_storage_account_Pattern; /* String_Pattern */
330 static int hf_ftam_date_and_time_of_creation_Pattern; /* Date_and_Time_Pattern */
331 static int hf_ftam_date_and_time_of_last_modification_Pattern; /* Date_and_Time_Pattern */
332 static int hf_ftam_date_and_time_of_last_read_access_Pattern; /* Date_and_Time_Pattern */
333 static int hf_ftam_date_and_time_of_last_attribute_modification_Pattern; /* Date_and_Time_Pattern */
334 static int hf_ftam_identity_of_creator_Pattern; /* User_Identity_Pattern */
335 static int hf_ftam_identity_of_last_modifier_Pattern; /* User_Identity_Pattern */
336 static int hf_ftam_identity_of_last_reader_Pattern; /* User_Identity_Pattern */
337 static int hf_ftam_identity_of_last_attribute_modifier_Pattern; /* User_Identity_Pattern */
338 static int hf_ftam_object_availabiiity_Pattern; /* Boolean_Pattern */
339 static int hf_ftam_object_size_Pattern; /* Integer_Pattern */
340 static int hf_ftam_future_object_size_Pattern; /* Integer_Pattern */
341 static int hf_ftam_legal_quailfication_Pattern; /* String_Pattern */
342 static int hf_ftam_attribute_extensions_pattern; /* Attribute_Extensions_Pattern */
343 static int hf_ftam_equality_comparision; /* Equality_Comparision */
344 static int hf_ftam_pathname_value; /* T_pathname_value */
345 static int hf_ftam_pathname_value_item; /* T_pathname_value_item */
346 static int hf_ftam_string_match; /* String_Pattern */
347 static int hf_ftam_any_match; /* NULL */
348 static int hf_ftam_string_value; /* T_string_value */
349 static int hf_ftam_string_value_item; /* T_string_value_item */
350 static int hf_ftam_substring_match; /* GraphicString */
351 static int hf_ftam_number_of_characters_match; /* INTEGER */
352 static int hf_ftam_match_bitstring; /* BIT_STRING */
353 static int hf_ftam_significance_bitstring; /* BIT_STRING */
354 static int hf_ftam_relational_camparision; /* Equality_Comparision */
355 static int hf_ftam_time_and_date_value; /* GeneralizedTime */
356 static int hf_ftam_relational_comparision; /* Relational_Comparision */
357 static int hf_ftam_integer_value; /* INTEGER */
358 static int hf_ftam_object_identifier_value; /* OBJECT_IDENTIFIER */
359 static int hf_ftam_boolean_value; /* BOOLEAN */
360 static int hf_ftam_document_type_Pattern; /* Object_Identifier_Pattern */
361 static int hf_ftam_constraint_set_abstract_Syntax_Pattern; /* T_constraint_set_abstract_Syntax_Pattern */
362 static int hf_ftam_constraint_Set_Pattern; /* Object_Identifier_Pattern */
363 static int hf_ftam_abstract_Syntax_Pattern; /* Object_Identifier_Pattern */
364 static int hf_ftam_Attribute_Extensions_Pattern_item; /* Attribute_Extensions_Pattern_item */
365 static int hf_ftam_extension_set_attribute_Patterns; /* T_extension_set_attribute_Patterns */
366 static int hf_ftam_extension_set_attribute_Patterns_item; /* T_extension_set_attribute_Patterns_item */
367 static int hf_ftam_attribute_extension_attribute_identifier; /* T_attribute_extension_attribute_identifier */
368 static int hf_ftam_extension_attribute_Pattern; /* T_extension_attribute_Pattern */
369 static int hf_ftam__untag_item_04; /* Read_Attributes */
370 static int hf_ftam_success_Object_count; /* INTEGER */
371 static int hf_ftam_success_Object_names; /* SEQUENCE_OF_Pathname */
372 static int hf_ftam_success_Object_names_item; /* Pathname */
373 static int hf_ftam_Pathname_item; /* GraphicString */
374 static int hf_ftam_Pass_Passwords_item; /* Password */
375 static int hf_ftam__untag_item_05; /* Path_Access_Passwords_item */
376 static int hf_ftam_ap; /* AP_title */
377 static int hf_ftam_ae; /* AE_qualifier */
378 /* named bits */
379 static int hf_ftam_Protocol_Version_U_version_1;
380 static int hf_ftam_Protocol_Version_U_version_2;
381 static int hf_ftam_Service_Class_U_unconstrained_class;
382 static int hf_ftam_Service_Class_U_management_class;
383 static int hf_ftam_Service_Class_U_transfer_class;
384 static int hf_ftam_Service_Class_U_transfer_and_management_class;
385 static int hf_ftam_Service_Class_U_access_class;
386 static int hf_ftam_Functional_Units_U_spare_bit0;
387 static int hf_ftam_Functional_Units_U_spare_bit1;
388 static int hf_ftam_Functional_Units_U_read;
389 static int hf_ftam_Functional_Units_U_write;
390 static int hf_ftam_Functional_Units_U_file_access;
391 static int hf_ftam_Functional_Units_U_limited_file_management;
392 static int hf_ftam_Functional_Units_U_enhanced_file_management;
393 static int hf_ftam_Functional_Units_U_grouping;
394 static int hf_ftam_Functional_Units_U_fadu_locking;
395 static int hf_ftam_Functional_Units_U_recovery;
396 static int hf_ftam_Functional_Units_U_restart_data_transfer;
397 static int hf_ftam_Functional_Units_U_limited_filestore_management;
398 static int hf_ftam_Functional_Units_U_enhanced_filestore_management;
399 static int hf_ftam_Functional_Units_U_object_manipulation;
400 static int hf_ftam_Functional_Units_U_group_manipulation;
401 static int hf_ftam_Functional_Units_U_consecutive_access;
402 static int hf_ftam_Functional_Units_U_concurrent_access;
403 static int hf_ftam_Attribute_Groups_U_storage;
404 static int hf_ftam_Attribute_Groups_U_security;
405 static int hf_ftam_Attribute_Groups_U_private;
406 static int hf_ftam_Attribute_Groups_U_extension;
407 static int hf_ftam_T_processing_mode_f_read;
408 static int hf_ftam_T_processing_mode_f_insert;
409 static int hf_ftam_T_processing_mode_f_replace;
410 static int hf_ftam_T_processing_mode_f_extend;
411 static int hf_ftam_T_processing_mode_f_erase;
412 static int hf_ftam_Access_Request_U_read;
413 static int hf_ftam_Access_Request_U_insert;
414 static int hf_ftam_Access_Request_U_replace;
415 static int hf_ftam_Access_Request_U_extend;
416 static int hf_ftam_Access_Request_U_erase;
417 static int hf_ftam_Access_Request_U_read_attribute;
418 static int hf_ftam_Access_Request_U_change_attribute;
419 static int hf_ftam_Access_Request_U_delete_Object;
420 static int hf_ftam_Concurrency_Key_not_required;
421 static int hf_ftam_Concurrency_Key_shared;
422 static int hf_ftam_Concurrency_Key_exclusive;
423 static int hf_ftam_Concurrency_Key_no_access;
424 static int hf_ftam_Permitted_Actions_Attribute_read;
425 static int hf_ftam_Permitted_Actions_Attribute_insert;
426 static int hf_ftam_Permitted_Actions_Attribute_replace;
427 static int hf_ftam_Permitted_Actions_Attribute_extend;
428 static int hf_ftam_Permitted_Actions_Attribute_erase;
429 static int hf_ftam_Permitted_Actions_Attribute_read_attribute;
430 static int hf_ftam_Permitted_Actions_Attribute_change_attribute;
431 static int hf_ftam_Permitted_Actions_Attribute_delete_Object;
432 static int hf_ftam_Permitted_Actions_Attribute_traversal;
433 static int hf_ftam_Permitted_Actions_Attribute_reverse_traversal;
434 static int hf_ftam_Permitted_Actions_Attribute_random_Order;
435 static int hf_ftam_Permitted_Actions_Attribute_pass;
436 static int hf_ftam_Permitted_Actions_Attribute_link;
437 static int hf_ftam_Equality_Comparision_no_value_available_matches;
438 static int hf_ftam_Equality_Comparision_equals_matches;
439 static int hf_ftam_Relational_Comparision_no_value_available_matches;
440 static int hf_ftam_Relational_Comparision_equals_matches;
441 static int hf_ftam_Relational_Comparision_less_than_matches;
442 static int hf_ftam_Relational_Comparision_greater_than_matches;
443 static int hf_ftam_Attribute_Names_read_pathname;
444 static int hf_ftam_Attribute_Names_read_permitted_actions;
445 static int hf_ftam_Attribute_Names_read_contents_type;
446 static int hf_ftam_Attribute_Names_read_storage_account;
447 static int hf_ftam_Attribute_Names_read_date_and_time_of_creation;
448 static int hf_ftam_Attribute_Names_read_date_and_time_of_last_modification;
449 static int hf_ftam_Attribute_Names_read_date_and_time_of_last_read_access;
450 static int hf_ftam_Attribute_Names_read_date_and_time_of_last_attribute_modification;
451 static int hf_ftam_Attribute_Names_read_identity_of_creator;
452 static int hf_ftam_Attribute_Names_read_identity_of_last_modifier;
453 static int hf_ftam_Attribute_Names_read_identity_of_last_reader;
454 static int hf_ftam_Attribute_Names_read_identity_of_last_attribute_modifier;
455 static int hf_ftam_Attribute_Names_read_Object_availability;
456 static int hf_ftam_Attribute_Names_read_Object_size;
457 static int hf_ftam_Attribute_Names_read_future_Object_size;
458 static int hf_ftam_Attribute_Names_read_access_control;
459 static int hf_ftam_Attribute_Names_read_l8gal_qualifiCatiOnS;
460 static int hf_ftam_Attribute_Names_read_private_use;
461 static int hf_ftam_Attribute_Names_read_Object_type;
462 static int hf_ftam_Attribute_Names_read_linked_Object;
463 static int hf_ftam_Attribute_Names_read_primary_pathname;
464 static int hf_ftam_Attribute_Names_read_path_access_control;
465 static int hf_ftam_Attribute_Names_spare_bit22;
466 static int hf_ftam_Attribute_Names_read_Child_objects;
468 /* Initialize the subtree pointers */
469 static int ett_ftam;
470 static int ett_ftam_PDU;
471 static int ett_ftam_FTAM_Regime_PDU;
472 static int ett_ftam_F_INITIALIZE_request;
473 static int ett_ftam_F_INITIALIZE_response;
474 static int ett_ftam_Protocol_Version_U;
475 static int ett_ftam_Service_Class_U;
476 static int ett_ftam_Functional_Units_U;
477 static int ett_ftam_Attribute_Groups_U;
478 static int ett_ftam_Contents_Type_List_U;
479 static int ett_ftam_Contents_Type_List_item;
480 static int ett_ftam_F_TERMINATE_request;
481 static int ett_ftam_F_TERMINATE_response;
482 static int ett_ftam_F_U_ABORT_request;
483 static int ett_ftam_F_P_ABORT_request;
484 static int ett_ftam_File_PDU;
485 static int ett_ftam_F_SELECT_request;
486 static int ett_ftam_F_SELECT_response;
487 static int ett_ftam_F_DESELECT_request;
488 static int ett_ftam_F_DESELECT_response;
489 static int ett_ftam_F_CREATE_request;
490 static int ett_ftam_F_CREATE_response;
491 static int ett_ftam_F_DELETE_request;
492 static int ett_ftam_F_DELETE_response;
493 static int ett_ftam_F_READ_ATTRIB_request;
494 static int ett_ftam_F_READ_ATTRIB_response;
495 static int ett_ftam_F_CHANGE_ATTRIB_request;
496 static int ett_ftam_F_CHANGE_ATTRIB_response;
497 static int ett_ftam_F_OPEN_request;
498 static int ett_ftam_T_processing_mode;
499 static int ett_ftam_T_open_contents_type;
500 static int ett_ftam_SET_OF_Abstract_Syntax_Name;
501 static int ett_ftam_F_OPEN_response;
502 static int ett_ftam_F_CLOSE_request;
503 static int ett_ftam_F_CLOSE_response;
504 static int ett_ftam_F_BEGIN_GROUP_request;
505 static int ett_ftam_F_BEGIN_GROUP_response;
506 static int ett_ftam_F_END_GROUP_request;
507 static int ett_ftam_F_END_GROUP_response;
508 static int ett_ftam_F_RECOVER_request;
509 static int ett_ftam_F_RECOVER_response;
510 static int ett_ftam_F_LOCATE_request;
511 static int ett_ftam_F_LOCATE_response;
512 static int ett_ftam_F_ERASE_request;
513 static int ett_ftam_F_ERASE_response;
514 static int ett_ftam_Bulk_Data_PDU;
515 static int ett_ftam_F_READ_request;
516 static int ett_ftam_F_WRITE_request;
517 static int ett_ftam_F_DATA_END_request;
518 static int ett_ftam_F_TRANSFER_END_request;
519 static int ett_ftam_F_TRANSFER_END_response;
520 static int ett_ftam_F_CANCEL_request;
521 static int ett_ftam_F_CANCEL_response;
522 static int ett_ftam_F_RESTART_request;
523 static int ett_ftam_F_RESTART_response;
524 static int ett_ftam_Access_Context_U;
525 static int ett_ftam_Access_Passwords_U;
526 static int ett_ftam_Access_Request_U;
527 static int ett_ftam_Change_Attributes_U;
528 static int ett_ftam_Charging_U;
529 static int ett_ftam_Charging_item;
530 static int ett_ftam_Concurrency_Control_U;
531 static int ett_ftam_Create_Attributes_U;
532 static int ett_ftam_Diagnostic_U;
533 static int ett_ftam_Diagnostic_item;
534 static int ett_ftam_FADU_Identity_U;
535 static int ett_ftam_SEQUENCE_OF_Node_Name;
536 static int ett_ftam_Password_U;
537 static int ett_ftam_Read_Attributes_U;
538 static int ett_ftam_Select_Attributes_U;
539 static int ett_ftam_Access_Control_Attribute;
540 static int ett_ftam_SET_OF_Access_Control_Element;
541 static int ett_ftam_Access_Control_Change_Attribute;
542 static int ett_ftam_T_actual_values1;
543 static int ett_ftam_Access_Control_Element;
544 static int ett_ftam_Concurrency_Access;
545 static int ett_ftam_Concurrency_Key;
546 static int ett_ftam_Account_Attribute;
547 static int ett_ftam_Contents_Type_Attribute;
548 static int ett_ftam_T_document_type;
549 static int ett_ftam_T_constraint_set_and_abstract_Syntax;
550 static int ett_ftam_Date_and_Time_Attribute;
551 static int ett_ftam_Object_Availability_Attribute;
552 static int ett_ftam_Pathname_Attribute;
553 static int ett_ftam_Object_Size_Attribute;
554 static int ett_ftam_Legal_Qualification_Attribute;
555 static int ett_ftam_Permitted_Actions_Attribute;
556 static int ett_ftam_Private_Use_Attribute;
557 static int ett_ftam_User_Identity_Attribute;
558 static int ett_ftam_Child_Objects_Attribute;
559 static int ett_ftam_FSM_PDU;
560 static int ett_ftam_F_CHANGE_PREFIX_request;
561 static int ett_ftam_F_CHANGE_PREFIX_response;
562 static int ett_ftam_F_LIST_request;
563 static int ett_ftam_F_LIST_response;
564 static int ett_ftam_F_GROUP_SELECT_request;
565 static int ett_ftam_F_GROUP_SELECT_response;
566 static int ett_ftam_F_GROUP_DELETE_request;
567 static int ett_ftam_F_GROUP_DELETE_response;
568 static int ett_ftam_F_GROUP_MOVE_request;
569 static int ett_ftam_F_GROUP_MOVE_response;
570 static int ett_ftam_F_GROUP_COPY_request;
571 static int ett_ftam_F_GROUP_COPY_response;
572 static int ett_ftam_F_GROUP_LIST_request;
573 static int ett_ftam_F_GROUP_LIST_response;
574 static int ett_ftam_F_GROUP_CHANGE_ATTRIB_request;
575 static int ett_ftam_F_GROUP_CHANGE_ATTRIB_response;
576 static int ett_ftam_F_SELECT_ANOTHER_request;
577 static int ett_ftam_F_SELECT_ANOTHER_response;
578 static int ett_ftam_F_CREATE_DIRECTORY_request;
579 static int ett_ftam_F_CREATE_DIRECTORY_response;
580 static int ett_ftam_F_LINK_request;
581 static int ett_ftam_F_LINK_response;
582 static int ett_ftam_F_UNLINK_request;
583 static int ett_ftam_F_UNLINK_response;
584 static int ett_ftam_F_READ_LINK_ATTRIB_request;
585 static int ett_ftam_F_READ_LINK_ATTRIB_response;
586 static int ett_ftam_F_CHANGE_LINK_ATTRIB_request;
587 static int ett_ftam_F_CHANGE_LINK_ATTRIB_response;
588 static int ett_ftam_F_MOVE_request;
589 static int ett_ftam_F_MOVE_response;
590 static int ett_ftam_F_COPY_request;
591 static int ett_ftam_F_COPY_response;
592 static int ett_ftam_Attribute_Extension_Names;
593 static int ett_ftam_Attribute_Extension_Set_Name;
594 static int ett_ftam_SEQUENCE_OF_Extension_Attribute_identifier;
595 static int ett_ftam_Attribute_Extensions;
596 static int ett_ftam_Attribute_Extension_Set;
597 static int ett_ftam_SEQUENCE_OF_Extension_Attribute;
598 static int ett_ftam_Extension_Attribute;
599 static int ett_ftam_Scope_U;
600 static int ett_ftam_T__untag_item;
601 static int ett_ftam_OR_Set;
602 static int ett_ftam_AND_Set;
603 static int ett_ftam_AND_Set_item;
604 static int ett_ftam_Equality_Comparision;
605 static int ett_ftam_Relational_Comparision;
606 static int ett_ftam_Pathname_Pattern;
607 static int ett_ftam_T_pathname_value;
608 static int ett_ftam_T_pathname_value_item;
609 static int ett_ftam_String_Pattern;
610 static int ett_ftam_T_string_value;
611 static int ett_ftam_T_string_value_item;
612 static int ett_ftam_Bitstring_Pattern;
613 static int ett_ftam_Date_and_Time_Pattern;
614 static int ett_ftam_Integer_Pattern;
615 static int ett_ftam_Object_Identifier_Pattern;
616 static int ett_ftam_Boolean_Pattern;
617 static int ett_ftam_Contents_Type_Pattern;
618 static int ett_ftam_T_constraint_set_abstract_Syntax_Pattern;
619 static int ett_ftam_Attribute_Extensions_Pattern;
620 static int ett_ftam_Attribute_Extensions_Pattern_item;
621 static int ett_ftam_T_extension_set_attribute_Patterns;
622 static int ett_ftam_T_extension_set_attribute_Patterns_item;
623 static int ett_ftam_SEQUENCE_OF_Read_Attributes;
624 static int ett_ftam_Operation_Result_U;
625 static int ett_ftam_SEQUENCE_OF_Pathname;
626 static int ett_ftam_Pathname;
627 static int ett_ftam_Pass_Passwords;
628 static int ett_ftam_Path_Access_Passwords_U;
629 static int ett_ftam_Path_Access_Passwords_item;
630 static int ett_ftam_Attribute_Names;
631 static int ett_ftam_AE_title;
633 static expert_field ei_ftam_zero_pdu;
636 static int * const Protocol_Version_U_bits[] = {
637 &hf_ftam_Protocol_Version_U_version_1,
638 &hf_ftam_Protocol_Version_U_version_2,
639 NULL
642 static int
643 dissect_ftam_Protocol_Version_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
644 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
645 Protocol_Version_U_bits, 2, hf_index, ett_ftam_Protocol_Version_U,
646 NULL);
648 return offset;
653 static int
654 dissect_ftam_Protocol_Version(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
655 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
656 hf_index, BER_CLASS_CON, 0, true, dissect_ftam_Protocol_Version_U);
658 return offset;
663 static int
664 dissect_ftam_GraphicString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
665 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString,
666 actx, tree, tvb, offset, hf_index,
667 NULL);
669 return offset;
674 static int
675 dissect_ftam_Implementation_Information(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
676 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
677 hf_index, BER_CLASS_CON, 1, true, dissect_ftam_GraphicString);
679 return offset;
684 static int
685 dissect_ftam_BOOLEAN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
686 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
688 return offset;
692 static int * const Service_Class_U_bits[] = {
693 &hf_ftam_Service_Class_U_unconstrained_class,
694 &hf_ftam_Service_Class_U_management_class,
695 &hf_ftam_Service_Class_U_transfer_class,
696 &hf_ftam_Service_Class_U_transfer_and_management_class,
697 &hf_ftam_Service_Class_U_access_class,
698 NULL
701 static int
702 dissect_ftam_Service_Class_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
703 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
704 Service_Class_U_bits, 5, hf_index, ett_ftam_Service_Class_U,
705 NULL);
707 return offset;
712 static int
713 dissect_ftam_Service_Class(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
714 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
715 hf_index, BER_CLASS_CON, 3, true, dissect_ftam_Service_Class_U);
717 return offset;
721 static int * const Functional_Units_U_bits[] = {
722 &hf_ftam_Functional_Units_U_spare_bit0,
723 &hf_ftam_Functional_Units_U_spare_bit1,
724 &hf_ftam_Functional_Units_U_read,
725 &hf_ftam_Functional_Units_U_write,
726 &hf_ftam_Functional_Units_U_file_access,
727 &hf_ftam_Functional_Units_U_limited_file_management,
728 &hf_ftam_Functional_Units_U_enhanced_file_management,
729 &hf_ftam_Functional_Units_U_grouping,
730 &hf_ftam_Functional_Units_U_fadu_locking,
731 &hf_ftam_Functional_Units_U_recovery,
732 &hf_ftam_Functional_Units_U_restart_data_transfer,
733 &hf_ftam_Functional_Units_U_limited_filestore_management,
734 &hf_ftam_Functional_Units_U_enhanced_filestore_management,
735 &hf_ftam_Functional_Units_U_object_manipulation,
736 &hf_ftam_Functional_Units_U_group_manipulation,
737 &hf_ftam_Functional_Units_U_consecutive_access,
738 &hf_ftam_Functional_Units_U_concurrent_access,
739 NULL
742 static int
743 dissect_ftam_Functional_Units_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
744 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
745 Functional_Units_U_bits, 17, hf_index, ett_ftam_Functional_Units_U,
746 NULL);
748 return offset;
753 static int
754 dissect_ftam_Functional_Units(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
755 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
756 hf_index, BER_CLASS_CON, 4, true, dissect_ftam_Functional_Units_U);
758 return offset;
762 static int * const Attribute_Groups_U_bits[] = {
763 &hf_ftam_Attribute_Groups_U_storage,
764 &hf_ftam_Attribute_Groups_U_security,
765 &hf_ftam_Attribute_Groups_U_private,
766 &hf_ftam_Attribute_Groups_U_extension,
767 NULL
770 static int
771 dissect_ftam_Attribute_Groups_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
772 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
773 Attribute_Groups_U_bits, 4, hf_index, ett_ftam_Attribute_Groups_U,
774 NULL);
776 return offset;
781 static int
782 dissect_ftam_Attribute_Groups(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
783 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
784 hf_index, BER_CLASS_CON, 5, true, dissect_ftam_Attribute_Groups_U);
786 return offset;
791 static int
792 dissect_ftam_EXTERNAL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
793 offset = dissect_ber_external_type(implicit_tag, tree, tvb, offset, actx, hf_index, NULL);
795 return offset;
800 static int
801 dissect_ftam_Shared_ASE_Information(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
802 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
803 hf_index, BER_CLASS_APP, 20, true, dissect_ftam_EXTERNAL);
805 return offset;
809 static const value_string ftam_FTAM_Quality_of_Service_U_vals[] = {
810 { 0, "no-recovery" },
811 { 1, "class-1-recovery" },
812 { 2, "class-2-recovery" },
813 { 3, "class-3-recovery" },
814 { 0, NULL }
818 static int
819 dissect_ftam_FTAM_Quality_of_Service_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
820 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
821 NULL);
823 return offset;
828 static int
829 dissect_ftam_FTAM_Quality_of_Service(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
830 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
831 hf_index, BER_CLASS_CON, 6, true, dissect_ftam_FTAM_Quality_of_Service_U);
833 return offset;
838 static int
839 dissect_ftam_OBJECT_IDENTIFIER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
840 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
842 return offset;
847 static int
848 dissect_ftam_Document_Type_Name(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
849 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
850 hf_index, BER_CLASS_APP, 14, true, dissect_ftam_OBJECT_IDENTIFIER);
852 return offset;
857 static int
858 dissect_ftam_Abstract_Syntax_Name(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
859 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
860 hf_index, BER_CLASS_APP, 0, true, dissect_ftam_OBJECT_IDENTIFIER);
862 return offset;
866 static const value_string ftam_Contents_Type_List_item_vals[] = {
867 { 14, "document-type-name" },
868 { 0, "abstract-Syntax-name" },
869 { 0, NULL }
872 static const ber_choice_t Contents_Type_List_item_choice[] = {
873 { 14, &hf_ftam_document_type_name, BER_CLASS_APP, 14, BER_FLAGS_NOOWNTAG, dissect_ftam_Document_Type_Name },
874 { 0, &hf_ftam_abstract_Syntax_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_ftam_Abstract_Syntax_Name },
875 { 0, NULL, 0, 0, 0, NULL }
878 static int
879 dissect_ftam_Contents_Type_List_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
880 offset = dissect_ber_choice(actx, tree, tvb, offset,
881 Contents_Type_List_item_choice, hf_index, ett_ftam_Contents_Type_List_item,
882 NULL);
884 return offset;
888 static const ber_sequence_t Contents_Type_List_U_sequence_of[1] = {
889 { &hf_ftam__untag_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ftam_Contents_Type_List_item },
892 static int
893 dissect_ftam_Contents_Type_List_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
894 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
895 Contents_Type_List_U_sequence_of, hf_index, ett_ftam_Contents_Type_List_U);
897 return offset;
902 static int
903 dissect_ftam_Contents_Type_List(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
904 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
905 hf_index, BER_CLASS_CON, 7, true, dissect_ftam_Contents_Type_List_U);
907 return offset;
912 static int
913 dissect_ftam_User_Identity(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
914 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
915 hf_index, BER_CLASS_APP, 22, true, dissect_ftam_GraphicString);
917 return offset;
922 static int
923 dissect_ftam_Account(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
924 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
925 hf_index, BER_CLASS_APP, 4, true, dissect_ftam_GraphicString);
927 return offset;
932 static int
933 dissect_ftam_OCTET_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
934 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
935 NULL);
937 return offset;
941 static const value_string ftam_Password_U_vals[] = {
942 { 0, "graphicString" },
943 { 1, "octetString" },
944 { 0, NULL }
947 static const ber_choice_t Password_U_choice[] = {
948 { 0, &hf_ftam_graphicString , BER_CLASS_UNI, BER_UNI_TAG_GraphicString, BER_FLAGS_NOOWNTAG, dissect_ftam_GraphicString },
949 { 1, &hf_ftam_octetString , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_ftam_OCTET_STRING },
950 { 0, NULL, 0, 0, 0, NULL }
953 static int
954 dissect_ftam_Password_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
955 offset = dissect_ber_choice(actx, tree, tvb, offset,
956 Password_U_choice, hf_index, ett_ftam_Password_U,
957 NULL);
959 return offset;
964 static int
965 dissect_ftam_Password(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
966 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
967 hf_index, BER_CLASS_APP, 17, false, dissect_ftam_Password_U);
969 return offset;
974 static int
975 dissect_ftam_INTEGER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
976 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
977 NULL);
979 return offset;
983 static const ber_sequence_t F_INITIALIZE_request_sequence[] = {
984 { &hf_ftam_protocol_Version, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Protocol_Version },
985 { &hf_ftam_implementation_information, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Implementation_Information },
986 { &hf_ftam_presentation_tontext_management, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_BOOLEAN },
987 { &hf_ftam_service_class , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Service_Class },
988 { &hf_ftam_functional_units, BER_CLASS_CON, 4, BER_FLAGS_NOOWNTAG, dissect_ftam_Functional_Units },
989 { &hf_ftam_attribute_groups, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Attribute_Groups },
990 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
991 { &hf_ftam_ftam_quality_of_Service, BER_CLASS_CON, 6, BER_FLAGS_NOOWNTAG, dissect_ftam_FTAM_Quality_of_Service },
992 { &hf_ftam_contents_type_list, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Contents_Type_List },
993 { &hf_ftam_initiator_identity, BER_CLASS_APP, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_User_Identity },
994 { &hf_ftam_account , BER_CLASS_APP, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Account },
995 { &hf_ftam_filestore_password, BER_CLASS_APP, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Password },
996 { &hf_ftam_checkpoint_window, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
997 { NULL, 0, 0, 0, NULL }
1000 static int
1001 dissect_ftam_F_INITIALIZE_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1002 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1003 F_INITIALIZE_request_sequence, hf_index, ett_ftam_F_INITIALIZE_request);
1005 return offset;
1009 static const value_string ftam_State_Result_U_vals[] = {
1010 { 0, "success" },
1011 { 1, "failure" },
1012 { 0, NULL }
1016 static int
1017 dissect_ftam_State_Result_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1018 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1019 NULL);
1021 return offset;
1026 static int
1027 dissect_ftam_State_Result(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1028 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1029 hf_index, BER_CLASS_APP, 21, true, dissect_ftam_State_Result_U);
1031 return offset;
1035 static const value_string ftam_Action_Result_U_vals[] = {
1036 { 0, "success" },
1037 { 1, "transient-error" },
1038 { 2, "permanent-error" },
1039 { 0, NULL }
1043 static int
1044 dissect_ftam_Action_Result_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1045 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1046 NULL);
1048 return offset;
1053 static int
1054 dissect_ftam_Action_Result(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1055 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1056 hf_index, BER_CLASS_APP, 5, true, dissect_ftam_Action_Result_U);
1058 return offset;
1062 static const value_string ftam_T_diagnostic_type_vals[] = {
1063 { 0, "informative" },
1064 { 1, "transient" },
1065 { 2, "permanent" },
1066 { 0, NULL }
1070 static int
1071 dissect_ftam_T_diagnostic_type(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1072 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1073 NULL);
1075 return offset;
1079 static const value_string ftam_Entity_Reference_vals[] = {
1080 { 0, "no-categorization-possible" },
1081 { 1, "initiating-file-service-user" },
1082 { 2, "initiating-file-protocol-machine" },
1083 { 3, "service-supporting-the-file-protocol-machine" },
1084 { 4, "responding-file-protocol-machine" },
1085 { 5, "responding-file-service-user" },
1086 { 0, NULL }
1090 static int
1091 dissect_ftam_Entity_Reference(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1092 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1093 NULL);
1095 return offset;
1099 static const ber_sequence_t Diagnostic_item_sequence[] = {
1100 { &hf_ftam_diagnostic_type, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_T_diagnostic_type },
1101 { &hf_ftam_error_identifier, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
1102 { &hf_ftam_error_observer , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ftam_Entity_Reference },
1103 { &hf_ftam_error_Source , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ftam_Entity_Reference },
1104 { &hf_ftam_suggested_delay, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
1105 { &hf_ftam_further_details, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_GraphicString },
1106 { NULL, 0, 0, 0, NULL }
1109 static int
1110 dissect_ftam_Diagnostic_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1111 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1112 Diagnostic_item_sequence, hf_index, ett_ftam_Diagnostic_item);
1114 return offset;
1118 static const ber_sequence_t Diagnostic_U_sequence_of[1] = {
1119 { &hf_ftam__untag_item_02 , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic_item },
1122 static int
1123 dissect_ftam_Diagnostic_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1124 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1125 Diagnostic_U_sequence_of, hf_index, ett_ftam_Diagnostic_U);
1127 return offset;
1132 static int
1133 dissect_ftam_Diagnostic(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1134 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1135 hf_index, BER_CLASS_APP, 13, true, dissect_ftam_Diagnostic_U);
1137 return offset;
1141 static const ber_sequence_t F_INITIALIZE_response_sequence[] = {
1142 { &hf_ftam_state_result , BER_CLASS_APP, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_State_Result },
1143 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
1144 { &hf_ftam_protocol_Version, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Protocol_Version },
1145 { &hf_ftam_implementation_information, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Implementation_Information },
1146 { &hf_ftam_presentation_tontext_management, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_BOOLEAN },
1147 { &hf_ftam_service_class , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Service_Class },
1148 { &hf_ftam_functional_units, BER_CLASS_CON, 4, BER_FLAGS_NOOWNTAG, dissect_ftam_Functional_Units },
1149 { &hf_ftam_attribute_groups, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Attribute_Groups },
1150 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
1151 { &hf_ftam_ftam_quality_of_Service, BER_CLASS_CON, 6, BER_FLAGS_NOOWNTAG, dissect_ftam_FTAM_Quality_of_Service },
1152 { &hf_ftam_contents_type_list, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Contents_Type_List },
1153 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
1154 { &hf_ftam_checkpoint_window, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
1155 { NULL, 0, 0, 0, NULL }
1158 static int
1159 dissect_ftam_F_INITIALIZE_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1160 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1161 F_INITIALIZE_response_sequence, hf_index, ett_ftam_F_INITIALIZE_response);
1163 return offset;
1167 static const ber_sequence_t F_TERMINATE_request_sequence[] = {
1168 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
1169 { NULL, 0, 0, 0, NULL }
1172 static int
1173 dissect_ftam_F_TERMINATE_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1174 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1175 F_TERMINATE_request_sequence, hf_index, ett_ftam_F_TERMINATE_request);
1177 return offset;
1181 static const ber_sequence_t Charging_item_sequence[] = {
1182 { &hf_ftam_resource_identifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_GraphicString },
1183 { &hf_ftam_charging_unit , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_GraphicString },
1184 { &hf_ftam_charging_value , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
1185 { NULL, 0, 0, 0, NULL }
1188 static int
1189 dissect_ftam_Charging_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1190 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1191 Charging_item_sequence, hf_index, ett_ftam_Charging_item);
1193 return offset;
1197 static const ber_sequence_t Charging_U_sequence_of[1] = {
1198 { &hf_ftam__untag_item_01 , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ftam_Charging_item },
1201 static int
1202 dissect_ftam_Charging_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1203 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1204 Charging_U_sequence_of, hf_index, ett_ftam_Charging_U);
1206 return offset;
1211 static int
1212 dissect_ftam_Charging(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1213 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1214 hf_index, BER_CLASS_APP, 9, true, dissect_ftam_Charging_U);
1216 return offset;
1220 static const ber_sequence_t F_TERMINATE_response_sequence[] = {
1221 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
1222 { &hf_ftam_charging , BER_CLASS_APP, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Charging },
1223 { NULL, 0, 0, 0, NULL }
1226 static int
1227 dissect_ftam_F_TERMINATE_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1228 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1229 F_TERMINATE_response_sequence, hf_index, ett_ftam_F_TERMINATE_response);
1231 return offset;
1235 static const ber_sequence_t F_U_ABORT_request_sequence[] = {
1236 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
1237 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
1238 { NULL, 0, 0, 0, NULL }
1241 static int
1242 dissect_ftam_F_U_ABORT_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1243 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1244 F_U_ABORT_request_sequence, hf_index, ett_ftam_F_U_ABORT_request);
1246 return offset;
1250 static const ber_sequence_t F_P_ABORT_request_sequence[] = {
1251 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
1252 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
1253 { NULL, 0, 0, 0, NULL }
1256 static int
1257 dissect_ftam_F_P_ABORT_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1258 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1259 F_P_ABORT_request_sequence, hf_index, ett_ftam_F_P_ABORT_request);
1261 return offset;
1265 static const value_string ftam_FTAM_Regime_PDU_vals[] = {
1266 { 0, "f-initialize-request" },
1267 { 1, "f-initialize-response" },
1268 { 2, "f-terminate-request" },
1269 { 3, "f-terminate-response" },
1270 { 4, "f-u-abort-request" },
1271 { 5, "f-p-abort-request" },
1272 { 0, NULL }
1275 static const ber_choice_t FTAM_Regime_PDU_choice[] = {
1276 { 0, &hf_ftam_f_initialize_request, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_F_INITIALIZE_request },
1277 { 1, &hf_ftam_f_initialize_response, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_F_INITIALIZE_response },
1278 { 2, &hf_ftam_f_terminate_request, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ftam_F_TERMINATE_request },
1279 { 3, &hf_ftam_f_terminate_response, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ftam_F_TERMINATE_response },
1280 { 4, &hf_ftam_f_u_abort_request, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ftam_F_U_ABORT_request },
1281 { 5, &hf_ftam_f_p_abort_request, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ftam_F_P_ABORT_request },
1282 { 0, NULL, 0, 0, 0, NULL }
1285 static int
1286 dissect_ftam_FTAM_Regime_PDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1287 int branch_taken;
1289 offset = dissect_ber_choice(actx, tree, tvb, offset,
1290 FTAM_Regime_PDU_choice, hf_index, ett_ftam_FTAM_Regime_PDU,
1291 &branch_taken);
1294 if( (branch_taken!=-1) && ftam_FTAM_Regime_PDU_vals[branch_taken].strptr ){
1295 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s:", ftam_FTAM_Regime_PDU_vals[branch_taken].strptr);
1299 return offset;
1303 static const ber_sequence_t Pathname_sequence_of[1] = {
1304 { &hf_ftam_Pathname_item , BER_CLASS_UNI, BER_UNI_TAG_GraphicString, BER_FLAGS_NOOWNTAG, dissect_ftam_GraphicString },
1308 dissect_ftam_Pathname(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1309 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1310 Pathname_sequence_of, hf_index, ett_ftam_Pathname);
1312 return offset;
1316 static const value_string ftam_Pathname_Attribute_vals[] = {
1317 { 0, "incomplete-pathname" },
1318 { 1, "complete-pathname" },
1319 { 0, NULL }
1322 static const ber_choice_t Pathname_Attribute_choice[] = {
1323 { 0, &hf_ftam_incomplete_pathname, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Pathname },
1324 { 1, &hf_ftam_complete_pathname, BER_CLASS_APP, 23, BER_FLAGS_IMPLTAG, dissect_ftam_Pathname },
1325 { 0, NULL, 0, 0, 0, NULL }
1328 static int
1329 dissect_ftam_Pathname_Attribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1330 offset = dissect_ber_choice(actx, tree, tvb, offset,
1331 Pathname_Attribute_choice, hf_index, ett_ftam_Pathname_Attribute,
1332 NULL);
1334 return offset;
1338 static const ber_sequence_t Select_Attributes_U_sequence[] = {
1339 { &hf_ftam_pathname , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ftam_Pathname_Attribute },
1340 { NULL, 0, 0, 0, NULL }
1343 static int
1344 dissect_ftam_Select_Attributes_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1345 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1346 Select_Attributes_U_sequence, hf_index, ett_ftam_Select_Attributes_U);
1348 return offset;
1353 static int
1354 dissect_ftam_Select_Attributes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1355 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1356 hf_index, BER_CLASS_APP, 19, true, dissect_ftam_Select_Attributes_U);
1358 return offset;
1362 static int * const Access_Request_U_bits[] = {
1363 &hf_ftam_Access_Request_U_read,
1364 &hf_ftam_Access_Request_U_insert,
1365 &hf_ftam_Access_Request_U_replace,
1366 &hf_ftam_Access_Request_U_extend,
1367 &hf_ftam_Access_Request_U_erase,
1368 &hf_ftam_Access_Request_U_read_attribute,
1369 &hf_ftam_Access_Request_U_change_attribute,
1370 &hf_ftam_Access_Request_U_delete_Object,
1371 NULL
1374 static int
1375 dissect_ftam_Access_Request_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1376 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1377 Access_Request_U_bits, 8, hf_index, ett_ftam_Access_Request_U,
1378 NULL);
1380 return offset;
1385 static int
1386 dissect_ftam_Access_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1387 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1388 hf_index, BER_CLASS_APP, 3, true, dissect_ftam_Access_Request_U);
1390 return offset;
1394 static const ber_sequence_t Pass_Passwords_sequence_of[1] = {
1395 { &hf_ftam_Pass_Passwords_item, BER_CLASS_APP, 17, BER_FLAGS_NOOWNTAG, dissect_ftam_Password },
1398 static int
1399 dissect_ftam_Pass_Passwords(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1400 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1401 Pass_Passwords_sequence_of, hf_index, ett_ftam_Pass_Passwords);
1403 return offset;
1407 static const ber_sequence_t Access_Passwords_U_sequence[] = {
1408 { &hf_ftam_read_password , BER_CLASS_CON, 0, 0, dissect_ftam_Password },
1409 { &hf_ftam_insert_password, BER_CLASS_CON, 1, 0, dissect_ftam_Password },
1410 { &hf_ftam_replace_password, BER_CLASS_CON, 2, 0, dissect_ftam_Password },
1411 { &hf_ftam_extend_password, BER_CLASS_CON, 3, 0, dissect_ftam_Password },
1412 { &hf_ftam_erase_password , BER_CLASS_CON, 4, 0, dissect_ftam_Password },
1413 { &hf_ftam_read_attribute_password, BER_CLASS_CON, 5, 0, dissect_ftam_Password },
1414 { &hf_ftam_change_attribute_password, BER_CLASS_CON, 6, 0, dissect_ftam_Password },
1415 { &hf_ftam_delete_password, BER_CLASS_CON, 7, 0, dissect_ftam_Password },
1416 { &hf_ftam_pass_passwords , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Pass_Passwords },
1417 { &hf_ftam_link_password , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_ftam_Password },
1418 { NULL, 0, 0, 0, NULL }
1421 static int
1422 dissect_ftam_Access_Passwords_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1423 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1424 Access_Passwords_U_sequence, hf_index, ett_ftam_Access_Passwords_U);
1426 return offset;
1431 static int
1432 dissect_ftam_Access_Passwords(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1433 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1434 hf_index, BER_CLASS_APP, 2, true, dissect_ftam_Access_Passwords_U);
1436 return offset;
1440 static const ber_sequence_t Path_Access_Passwords_item_sequence[] = {
1441 { &hf_ftam_read_password , BER_CLASS_CON, 0, 0, dissect_ftam_Password },
1442 { &hf_ftam_insert_password, BER_CLASS_CON, 1, 0, dissect_ftam_Password },
1443 { &hf_ftam_replace_password, BER_CLASS_CON, 2, 0, dissect_ftam_Password },
1444 { &hf_ftam_extend_password, BER_CLASS_CON, 3, 0, dissect_ftam_Password },
1445 { &hf_ftam_erase_password , BER_CLASS_CON, 4, 0, dissect_ftam_Password },
1446 { &hf_ftam_read_attribute_password, BER_CLASS_CON, 5, 0, dissect_ftam_Password },
1447 { &hf_ftam_change_attribute_password, BER_CLASS_CON, 6, 0, dissect_ftam_Password },
1448 { &hf_ftam_delete_password, BER_CLASS_CON, 7, 0, dissect_ftam_Password },
1449 { &hf_ftam_pass_passwords , BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_ftam_Pass_Passwords },
1450 { &hf_ftam_link_password , BER_CLASS_CON, 9, 0, dissect_ftam_Password },
1451 { NULL, 0, 0, 0, NULL }
1454 static int
1455 dissect_ftam_Path_Access_Passwords_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1456 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1457 Path_Access_Passwords_item_sequence, hf_index, ett_ftam_Path_Access_Passwords_item);
1459 return offset;
1463 static const ber_sequence_t Path_Access_Passwords_U_sequence_of[1] = {
1464 { &hf_ftam__untag_item_05 , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ftam_Path_Access_Passwords_item },
1467 static int
1468 dissect_ftam_Path_Access_Passwords_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1469 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1470 Path_Access_Passwords_U_sequence_of, hf_index, ett_ftam_Path_Access_Passwords_U);
1472 return offset;
1477 static int
1478 dissect_ftam_Path_Access_Passwords(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1479 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1480 hf_index, BER_CLASS_APP, 27, true, dissect_ftam_Path_Access_Passwords_U);
1482 return offset;
1486 static const value_string ftam_Lock_vals[] = {
1487 { 0, "not-required" },
1488 { 1, "shared" },
1489 { 2, "exclusive" },
1490 { 3, "no-access" },
1491 { 0, NULL }
1495 static int
1496 dissect_ftam_Lock(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1497 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1498 NULL);
1500 return offset;
1504 static const ber_sequence_t Concurrency_Control_U_sequence[] = {
1505 { &hf_ftam_read , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Lock },
1506 { &hf_ftam_insert , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_Lock },
1507 { &hf_ftam_replace , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ftam_Lock },
1508 { &hf_ftam_extend , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ftam_Lock },
1509 { &hf_ftam_erase , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ftam_Lock },
1510 { &hf_ftam_read_attribute , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ftam_Lock },
1511 { &hf_ftam_change_attribute, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_ftam_Lock },
1512 { &hf_ftam_delete_Object , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_ftam_Lock },
1513 { NULL, 0, 0, 0, NULL }
1516 static int
1517 dissect_ftam_Concurrency_Control_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1518 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1519 Concurrency_Control_U_sequence, hf_index, ett_ftam_Concurrency_Control_U);
1521 return offset;
1526 static int
1527 dissect_ftam_Concurrency_Control(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1528 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1529 hf_index, BER_CLASS_APP, 10, true, dissect_ftam_Concurrency_Control_U);
1531 return offset;
1535 static const ber_sequence_t F_SELECT_request_sequence[] = {
1536 { &hf_ftam_select_attributes, BER_CLASS_APP, 19, BER_FLAGS_NOOWNTAG, dissect_ftam_Select_Attributes },
1537 { &hf_ftam_requested_access, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_ftam_Access_Request },
1538 { &hf_ftam_access_passwords, BER_CLASS_APP, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Access_Passwords },
1539 { &hf_ftam_path_access_passwords, BER_CLASS_APP, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Path_Access_Passwords },
1540 { &hf_ftam_concurrency_control, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Concurrency_Control },
1541 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
1542 { &hf_ftam_account , BER_CLASS_APP, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Account },
1543 { NULL, 0, 0, 0, NULL }
1546 static int
1547 dissect_ftam_F_SELECT_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1548 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1549 F_SELECT_request_sequence, hf_index, ett_ftam_F_SELECT_request);
1551 return offset;
1556 static int
1557 dissect_ftam_Referent_Indicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1558 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1559 hf_index, BER_CLASS_APP, 29, true, dissect_ftam_BOOLEAN);
1561 return offset;
1565 static const ber_sequence_t F_SELECT_response_sequence[] = {
1566 { &hf_ftam_state_result , BER_CLASS_APP, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_State_Result },
1567 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
1568 { &hf_ftam_select_attributes, BER_CLASS_APP, 19, BER_FLAGS_NOOWNTAG, dissect_ftam_Select_Attributes },
1569 { &hf_ftam_referent_indicator, BER_CLASS_APP, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Referent_Indicator },
1570 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
1571 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
1572 { NULL, 0, 0, 0, NULL }
1575 static int
1576 dissect_ftam_F_SELECT_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1577 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1578 F_SELECT_response_sequence, hf_index, ett_ftam_F_SELECT_response);
1580 return offset;
1584 static const ber_sequence_t F_DESELECT_request_sequence[] = {
1585 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
1586 { NULL, 0, 0, 0, NULL }
1589 static int
1590 dissect_ftam_F_DESELECT_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1591 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1592 F_DESELECT_request_sequence, hf_index, ett_ftam_F_DESELECT_request);
1594 return offset;
1598 static const ber_sequence_t F_DESELECT_response_sequence[] = {
1599 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
1600 { &hf_ftam_charging , BER_CLASS_APP, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Charging },
1601 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
1602 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
1603 { NULL, 0, 0, 0, NULL }
1606 static int
1607 dissect_ftam_F_DESELECT_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1608 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1609 F_DESELECT_response_sequence, hf_index, ett_ftam_F_DESELECT_response);
1611 return offset;
1615 static const value_string ftam_Override_vals[] = {
1616 { 0, "create-failure" },
1617 { 1, "select-old-Object" },
1618 { 2, "delete-and-create-with-old-attributes" },
1619 { 3, "delete-and-create-with-new-attributes" },
1620 { 0, NULL }
1624 static int
1625 dissect_ftam_Override(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1626 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1627 NULL);
1629 return offset;
1633 static const value_string ftam_Object_Type_Attribute_vals[] = {
1634 { 0, "file" },
1635 { 1, "file-directory" },
1636 { 2, "reference" },
1637 { 0, NULL }
1641 static int
1642 dissect_ftam_Object_Type_Attribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1643 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1644 NULL);
1646 return offset;
1650 static int * const Permitted_Actions_Attribute_bits[] = {
1651 &hf_ftam_Permitted_Actions_Attribute_read,
1652 &hf_ftam_Permitted_Actions_Attribute_insert,
1653 &hf_ftam_Permitted_Actions_Attribute_replace,
1654 &hf_ftam_Permitted_Actions_Attribute_extend,
1655 &hf_ftam_Permitted_Actions_Attribute_erase,
1656 &hf_ftam_Permitted_Actions_Attribute_read_attribute,
1657 &hf_ftam_Permitted_Actions_Attribute_change_attribute,
1658 &hf_ftam_Permitted_Actions_Attribute_delete_Object,
1659 &hf_ftam_Permitted_Actions_Attribute_traversal,
1660 &hf_ftam_Permitted_Actions_Attribute_reverse_traversal,
1661 &hf_ftam_Permitted_Actions_Attribute_random_Order,
1662 &hf_ftam_Permitted_Actions_Attribute_pass,
1663 &hf_ftam_Permitted_Actions_Attribute_link,
1664 NULL
1668 dissect_ftam_Permitted_Actions_Attribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1669 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1670 Permitted_Actions_Attribute_bits, 13, hf_index, ett_ftam_Permitted_Actions_Attribute,
1671 NULL);
1673 return offset;
1678 static int
1679 dissect_ftam_T_parameter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1680 if (actx->external.direct_reference) {
1681 offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
1685 return offset;
1689 static const ber_sequence_t T_document_type_sequence[] = {
1690 { &hf_ftam_document_type_name, BER_CLASS_APP, 14, BER_FLAGS_NOOWNTAG, dissect_ftam_Document_Type_Name },
1691 { &hf_ftam_parameter , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_ftam_T_parameter },
1692 { NULL, 0, 0, 0, NULL }
1695 static int
1696 dissect_ftam_T_document_type(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1697 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1698 T_document_type_sequence, hf_index, ett_ftam_T_document_type);
1700 return offset;
1705 static int
1706 dissect_ftam_Constraint_Set_Name(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1707 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1708 hf_index, BER_CLASS_APP, 11, true, dissect_ftam_OBJECT_IDENTIFIER);
1710 return offset;
1714 static const ber_sequence_t T_constraint_set_and_abstract_Syntax_sequence[] = {
1715 { &hf_ftam_constraint_set_name, BER_CLASS_APP, 11, BER_FLAGS_NOOWNTAG, dissect_ftam_Constraint_Set_Name },
1716 { &hf_ftam_abstract_Syntax_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_ftam_Abstract_Syntax_Name },
1717 { NULL, 0, 0, 0, NULL }
1720 static int
1721 dissect_ftam_T_constraint_set_and_abstract_Syntax(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1722 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1723 T_constraint_set_and_abstract_Syntax_sequence, hf_index, ett_ftam_T_constraint_set_and_abstract_Syntax);
1725 return offset;
1729 static const value_string ftam_Contents_Type_Attribute_vals[] = {
1730 { 0, "document-type" },
1731 { 1, "constraint-set-and-abstract-Syntax" },
1732 { 0, NULL }
1735 static const ber_choice_t Contents_Type_Attribute_choice[] = {
1736 { 0, &hf_ftam_document_type , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_T_document_type },
1737 { 1, &hf_ftam_constraint_set_and_abstract_Syntax, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_T_constraint_set_and_abstract_Syntax },
1738 { 0, NULL, 0, 0, 0, NULL }
1741 static int
1742 dissect_ftam_Contents_Type_Attribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1743 offset = dissect_ber_choice(actx, tree, tvb, offset,
1744 Contents_Type_Attribute_choice, hf_index, ett_ftam_Contents_Type_Attribute,
1745 NULL);
1747 return offset;
1752 static int
1753 dissect_ftam_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1754 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
1756 return offset;
1760 static const value_string ftam_Account_Attribute_vals[] = {
1761 { 0, "no-value-available" },
1762 { 1, "actual-values" },
1763 { 0, NULL }
1766 static const ber_choice_t Account_Attribute_choice[] = {
1767 { 0, &hf_ftam_no_value_available, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_NULL },
1768 { 1, &hf_ftam_actual_values2 , BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_ftam_Account },
1769 { 0, NULL, 0, 0, 0, NULL }
1772 static int
1773 dissect_ftam_Account_Attribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1774 offset = dissect_ber_choice(actx, tree, tvb, offset,
1775 Account_Attribute_choice, hf_index, ett_ftam_Account_Attribute,
1776 NULL);
1778 return offset;
1782 static const value_string ftam_T_actual_values8_vals[] = {
1783 { 0, "immediate-availability" },
1784 { 1, "deferred-availability" },
1785 { 0, NULL }
1789 static int
1790 dissect_ftam_T_actual_values8(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1791 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1792 NULL);
1794 return offset;
1798 const value_string ftam_Object_Availability_Attribute_vals[] = {
1799 { 0, "no-value-available" },
1800 { 1, "actual-values" },
1801 { 0, NULL }
1804 static const ber_choice_t Object_Availability_Attribute_choice[] = {
1805 { 0, &hf_ftam_no_value_available, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_NULL },
1806 { 1, &hf_ftam_actual_values8 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_T_actual_values8 },
1807 { 0, NULL, 0, 0, 0, NULL }
1811 dissect_ftam_Object_Availability_Attribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1812 offset = dissect_ber_choice(actx, tree, tvb, offset,
1813 Object_Availability_Attribute_choice, hf_index, ett_ftam_Object_Availability_Attribute,
1814 NULL);
1816 return offset;
1820 const value_string ftam_Object_Size_Attribute_vals[] = {
1821 { 0, "no-value-available" },
1822 { 1, "actual-values" },
1823 { 0, NULL }
1826 static const ber_choice_t Object_Size_Attribute_choice[] = {
1827 { 0, &hf_ftam_no_value_available, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_NULL },
1828 { 1, &hf_ftam_actual_values7 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
1829 { 0, NULL, 0, 0, 0, NULL }
1833 dissect_ftam_Object_Size_Attribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1834 offset = dissect_ber_choice(actx, tree, tvb, offset,
1835 Object_Size_Attribute_choice, hf_index, ett_ftam_Object_Size_Attribute,
1836 NULL);
1838 return offset;
1842 static int * const Concurrency_Key_bits[] = {
1843 &hf_ftam_Concurrency_Key_not_required,
1844 &hf_ftam_Concurrency_Key_shared,
1845 &hf_ftam_Concurrency_Key_exclusive,
1846 &hf_ftam_Concurrency_Key_no_access,
1847 NULL
1850 static int
1851 dissect_ftam_Concurrency_Key(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1852 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1853 Concurrency_Key_bits, 4, hf_index, ett_ftam_Concurrency_Key,
1854 NULL);
1856 return offset;
1860 static const ber_sequence_t Concurrency_Access_sequence[] = {
1861 { &hf_ftam_read_key , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Concurrency_Key },
1862 { &hf_ftam_insert_key , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_Concurrency_Key },
1863 { &hf_ftam_replace_key , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ftam_Concurrency_Key },
1864 { &hf_ftam_extend_key , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ftam_Concurrency_Key },
1865 { &hf_ftam_erase_key , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ftam_Concurrency_Key },
1866 { &hf_ftam_read_attribute_key, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ftam_Concurrency_Key },
1867 { &hf_ftam_change_attribute_key, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_ftam_Concurrency_Key },
1868 { &hf_ftam_delete_Object_key, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_ftam_Concurrency_Key },
1869 { NULL, 0, 0, 0, NULL }
1873 dissect_ftam_Concurrency_Access(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1874 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1875 Concurrency_Access_sequence, hf_index, ett_ftam_Concurrency_Access);
1877 return offset;
1882 static int
1883 dissect_ftam_AP_title(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1884 /* XXX have no idea about this one */
1886 return offset;
1891 static int
1892 dissect_ftam_AE_qualifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1893 /* XXX have no idea about this one */
1896 return offset;
1900 static const ber_sequence_t AE_title_sequence[] = {
1901 { &hf_ftam_ap , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_ftam_AP_title },
1902 { &hf_ftam_ae , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_ftam_AE_qualifier },
1903 { NULL, 0, 0, 0, NULL }
1906 static int
1907 dissect_ftam_AE_title(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1908 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1909 AE_title_sequence, hf_index, ett_ftam_AE_title);
1911 return offset;
1916 static int
1917 dissect_ftam_Application_Entity_Title(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1918 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
1919 hf_index, BER_CLASS_APP, 7, false, dissect_ftam_AE_title);
1921 return offset;
1925 static const ber_sequence_t Access_Control_Element_sequence[] = {
1926 { &hf_ftam_action_list , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Access_Request },
1927 { &hf_ftam_concurrency_access, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Concurrency_Access },
1928 { &hf_ftam_identity , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_User_Identity },
1929 { &hf_ftam_passwords , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Access_Passwords },
1930 { &hf_ftam_location , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Application_Entity_Title },
1931 { NULL, 0, 0, 0, NULL }
1934 static int
1935 dissect_ftam_Access_Control_Element(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1936 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1937 Access_Control_Element_sequence, hf_index, ett_ftam_Access_Control_Element);
1939 return offset;
1943 static const ber_sequence_t SET_OF_Access_Control_Element_set_of[1] = {
1944 { &hf_ftam_actual_values3_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ftam_Access_Control_Element },
1947 static int
1948 dissect_ftam_SET_OF_Access_Control_Element(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1949 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1950 SET_OF_Access_Control_Element_set_of, hf_index, ett_ftam_SET_OF_Access_Control_Element);
1952 return offset;
1956 static const value_string ftam_Access_Control_Attribute_vals[] = {
1957 { 0, "no-value-available" },
1958 { 1, "actual-values" },
1959 { 0, NULL }
1962 static const ber_choice_t Access_Control_Attribute_choice[] = {
1963 { 0, &hf_ftam_no_value_available, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_NULL },
1964 { 1, &hf_ftam_actual_values3 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_SET_OF_Access_Control_Element },
1965 { 0, NULL, 0, 0, 0, NULL }
1968 static int
1969 dissect_ftam_Access_Control_Attribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1970 offset = dissect_ber_choice(actx, tree, tvb, offset,
1971 Access_Control_Attribute_choice, hf_index, ett_ftam_Access_Control_Attribute,
1972 NULL);
1974 return offset;
1978 const value_string ftam_Legal_Qualification_Attribute_vals[] = {
1979 { 0, "no-value-available" },
1980 { 1, "actual-values" },
1981 { 0, NULL }
1984 static const ber_choice_t Legal_Qualification_Attribute_choice[] = {
1985 { 0, &hf_ftam_no_value_available, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_NULL },
1986 { 1, &hf_ftam_actual_values9 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_GraphicString },
1987 { 0, NULL, 0, 0, 0, NULL }
1991 dissect_ftam_Legal_Qualification_Attribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1992 offset = dissect_ber_choice(actx, tree, tvb, offset,
1993 Legal_Qualification_Attribute_choice, hf_index, ett_ftam_Legal_Qualification_Attribute,
1994 NULL);
1996 return offset;
2000 const value_string ftam_Private_Use_Attribute_vals[] = {
2001 { 0, "no-value-available" },
2002 { 1, "abstract-Syntax-not-supported" },
2003 { 2, "actual-values" },
2004 { 0, NULL }
2007 static const ber_choice_t Private_Use_Attribute_choice[] = {
2008 { 0, &hf_ftam_no_value_available, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_NULL },
2009 { 1, &hf_ftam_abstract_Syntax_not_supported, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_NULL },
2010 { 2, &hf_ftam_actual_values4 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ftam_EXTERNAL },
2011 { 0, NULL, 0, 0, 0, NULL }
2015 dissect_ftam_Private_Use_Attribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2016 offset = dissect_ber_choice(actx, tree, tvb, offset,
2017 Private_Use_Attribute_choice, hf_index, ett_ftam_Private_Use_Attribute,
2018 NULL);
2020 return offset;
2025 static int
2026 dissect_ftam_Extension_Set_Identifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2027 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2029 return offset;
2034 static int
2035 dissect_ftam_T_extension_attribute_identifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2036 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
2038 return offset;
2043 static int
2044 dissect_ftam_T_extension_attribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2045 if (actx->external.direct_reference) {
2046 offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
2050 return offset;
2054 static const ber_sequence_t Extension_Attribute_sequence[] = {
2055 { &hf_ftam_extension_attribute_identifier, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_ftam_T_extension_attribute_identifier },
2056 { &hf_ftam_extension_attribute, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_ftam_T_extension_attribute },
2057 { NULL, 0, 0, 0, NULL }
2060 static int
2061 dissect_ftam_Extension_Attribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2062 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2063 Extension_Attribute_sequence, hf_index, ett_ftam_Extension_Attribute);
2065 return offset;
2069 static const ber_sequence_t SEQUENCE_OF_Extension_Attribute_sequence_of[1] = {
2070 { &hf_ftam_extension_set_attributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ftam_Extension_Attribute },
2073 static int
2074 dissect_ftam_SEQUENCE_OF_Extension_Attribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2075 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2076 SEQUENCE_OF_Extension_Attribute_sequence_of, hf_index, ett_ftam_SEQUENCE_OF_Extension_Attribute);
2078 return offset;
2082 static const ber_sequence_t Attribute_Extension_Set_sequence[] = {
2083 { &hf_ftam_extension_set_identifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Extension_Set_Identifier },
2084 { &hf_ftam_extension_set_attributes, BER_CLASS_CON, 1, 0, dissect_ftam_SEQUENCE_OF_Extension_Attribute },
2085 { NULL, 0, 0, 0, NULL }
2088 static int
2089 dissect_ftam_Attribute_Extension_Set(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2090 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2091 Attribute_Extension_Set_sequence, hf_index, ett_ftam_Attribute_Extension_Set);
2093 return offset;
2097 static const ber_sequence_t Attribute_Extensions_sequence_of[1] = {
2098 { &hf_ftam_Attribute_Extensions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ftam_Attribute_Extension_Set },
2102 dissect_ftam_Attribute_Extensions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2103 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2104 Attribute_Extensions_sequence_of, hf_index, ett_ftam_Attribute_Extensions);
2106 return offset;
2110 static const ber_sequence_t Create_Attributes_U_sequence[] = {
2111 { &hf_ftam_pathname , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ftam_Pathname_Attribute },
2112 { &hf_ftam_object_type , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Object_Type_Attribute },
2113 { &hf_ftam_permitted_actions, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_Permitted_Actions_Attribute },
2114 { &hf_ftam_contents_type , BER_CLASS_CON, 2, BER_FLAGS_NOTCHKTAG, dissect_ftam_Contents_Type_Attribute },
2115 { &hf_ftam_storage_account, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Account_Attribute },
2116 { &hf_ftam_object_availability, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Object_Availability_Attribute },
2117 { &hf_ftam_future_Object_size, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Object_Size_Attribute },
2118 { &hf_ftam_access_control , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Access_Control_Attribute },
2119 { &hf_ftam_path_access_control, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Access_Control_Attribute },
2120 { &hf_ftam_legal_qualification, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Legal_Qualification_Attribute },
2121 { &hf_ftam_private_use , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Private_Use_Attribute },
2122 { &hf_ftam_attribute_extensions, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Attribute_Extensions },
2123 { NULL, 0, 0, 0, NULL }
2126 static int
2127 dissect_ftam_Create_Attributes_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2128 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2129 Create_Attributes_U_sequence, hf_index, ett_ftam_Create_Attributes_U);
2131 return offset;
2136 static int
2137 dissect_ftam_Create_Attributes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2138 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2139 hf_index, BER_CLASS_APP, 12, true, dissect_ftam_Create_Attributes_U);
2141 return offset;
2145 static const ber_sequence_t F_CREATE_request_sequence[] = {
2146 { &hf_ftam_override , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Override },
2147 { &hf_ftam_initial_attributes, BER_CLASS_APP, 12, BER_FLAGS_NOOWNTAG, dissect_ftam_Create_Attributes },
2148 { &hf_ftam_create_password, BER_CLASS_APP, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Password },
2149 { &hf_ftam_requested_access, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_ftam_Access_Request },
2150 { &hf_ftam_access_passwords, BER_CLASS_APP, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Access_Passwords },
2151 { &hf_ftam_path_access_passwords, BER_CLASS_APP, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Path_Access_Passwords },
2152 { &hf_ftam_concurrency_control, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Concurrency_Control },
2153 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
2154 { &hf_ftam_account , BER_CLASS_APP, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Account },
2155 { NULL, 0, 0, 0, NULL }
2158 static int
2159 dissect_ftam_F_CREATE_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2160 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2161 F_CREATE_request_sequence, hf_index, ett_ftam_F_CREATE_request);
2163 return offset;
2167 static const ber_sequence_t F_CREATE_response_sequence[] = {
2168 { &hf_ftam_state_result , BER_CLASS_APP, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_State_Result },
2169 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
2170 { &hf_ftam_initial_attributes, BER_CLASS_APP, 12, BER_FLAGS_NOOWNTAG, dissect_ftam_Create_Attributes },
2171 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
2172 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
2173 { NULL, 0, 0, 0, NULL }
2176 static int
2177 dissect_ftam_F_CREATE_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2178 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2179 F_CREATE_response_sequence, hf_index, ett_ftam_F_CREATE_response);
2181 return offset;
2185 static const ber_sequence_t F_DELETE_request_sequence[] = {
2186 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
2187 { NULL, 0, 0, 0, NULL }
2190 static int
2191 dissect_ftam_F_DELETE_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2192 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2193 F_DELETE_request_sequence, hf_index, ett_ftam_F_DELETE_request);
2195 return offset;
2199 static const ber_sequence_t F_DELETE_response_sequence[] = {
2200 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
2201 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
2202 { &hf_ftam_charging , BER_CLASS_APP, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Charging },
2203 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
2204 { NULL, 0, 0, 0, NULL }
2207 static int
2208 dissect_ftam_F_DELETE_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2209 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2210 F_DELETE_response_sequence, hf_index, ett_ftam_F_DELETE_response);
2212 return offset;
2216 static int * const Attribute_Names_bits[] = {
2217 &hf_ftam_Attribute_Names_read_pathname,
2218 &hf_ftam_Attribute_Names_read_permitted_actions,
2219 &hf_ftam_Attribute_Names_read_contents_type,
2220 &hf_ftam_Attribute_Names_read_storage_account,
2221 &hf_ftam_Attribute_Names_read_date_and_time_of_creation,
2222 &hf_ftam_Attribute_Names_read_date_and_time_of_last_modification,
2223 &hf_ftam_Attribute_Names_read_date_and_time_of_last_read_access,
2224 &hf_ftam_Attribute_Names_read_date_and_time_of_last_attribute_modification,
2225 &hf_ftam_Attribute_Names_read_identity_of_creator,
2226 &hf_ftam_Attribute_Names_read_identity_of_last_modifier,
2227 &hf_ftam_Attribute_Names_read_identity_of_last_reader,
2228 &hf_ftam_Attribute_Names_read_identity_of_last_attribute_modifier,
2229 &hf_ftam_Attribute_Names_read_Object_availability,
2230 &hf_ftam_Attribute_Names_read_Object_size,
2231 &hf_ftam_Attribute_Names_read_future_Object_size,
2232 &hf_ftam_Attribute_Names_read_access_control,
2233 &hf_ftam_Attribute_Names_read_l8gal_qualifiCatiOnS,
2234 &hf_ftam_Attribute_Names_read_private_use,
2235 &hf_ftam_Attribute_Names_read_Object_type,
2236 &hf_ftam_Attribute_Names_read_linked_Object,
2237 &hf_ftam_Attribute_Names_read_primary_pathname,
2238 &hf_ftam_Attribute_Names_read_path_access_control,
2239 &hf_ftam_Attribute_Names_spare_bit22,
2240 &hf_ftam_Attribute_Names_read_Child_objects,
2241 NULL
2244 static int
2245 dissect_ftam_Attribute_Names(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2246 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2247 Attribute_Names_bits, 24, hf_index, ett_ftam_Attribute_Names,
2248 NULL);
2250 return offset;
2255 static int
2256 dissect_ftam_Extension_Attribute_identifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2257 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2259 return offset;
2263 static const ber_sequence_t SEQUENCE_OF_Extension_Attribute_identifier_sequence_of[1] = {
2264 { &hf_ftam_extension_attribute_names_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_ftam_Extension_Attribute_identifier },
2267 static int
2268 dissect_ftam_SEQUENCE_OF_Extension_Attribute_identifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2269 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2270 SEQUENCE_OF_Extension_Attribute_identifier_sequence_of, hf_index, ett_ftam_SEQUENCE_OF_Extension_Attribute_identifier);
2272 return offset;
2276 static const ber_sequence_t Attribute_Extension_Set_Name_sequence[] = {
2277 { &hf_ftam_extension_set_identifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Extension_Set_Identifier },
2278 { &hf_ftam_extension_attribute_names, BER_CLASS_CON, 1, 0, dissect_ftam_SEQUENCE_OF_Extension_Attribute_identifier },
2279 { NULL, 0, 0, 0, NULL }
2282 static int
2283 dissect_ftam_Attribute_Extension_Set_Name(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2284 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2285 Attribute_Extension_Set_Name_sequence, hf_index, ett_ftam_Attribute_Extension_Set_Name);
2287 return offset;
2291 static const ber_sequence_t Attribute_Extension_Names_sequence_of[1] = {
2292 { &hf_ftam_Attribute_Extension_Names_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ftam_Attribute_Extension_Set_Name },
2295 static int
2296 dissect_ftam_Attribute_Extension_Names(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2297 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2298 Attribute_Extension_Names_sequence_of, hf_index, ett_ftam_Attribute_Extension_Names);
2300 return offset;
2304 static const ber_sequence_t F_READ_ATTRIB_request_sequence[] = {
2305 { &hf_ftam_attribute_names, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Attribute_Names },
2306 { &hf_ftam_attribute_extension_names, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Attribute_Extension_Names },
2307 { NULL, 0, 0, 0, NULL }
2310 static int
2311 dissect_ftam_F_READ_ATTRIB_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2312 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2313 F_READ_ATTRIB_request_sequence, hf_index, ett_ftam_F_READ_ATTRIB_request);
2315 return offset;
2319 static const ber_sequence_t Child_Objects_Attribute_set_of[1] = {
2320 { &hf_ftam_Child_Objects_Attribute_item, BER_CLASS_UNI, BER_UNI_TAG_GraphicString, BER_FLAGS_NOOWNTAG, dissect_ftam_GraphicString },
2323 static int
2324 dissect_ftam_Child_Objects_Attribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2325 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2326 Child_Objects_Attribute_set_of, hf_index, ett_ftam_Child_Objects_Attribute);
2328 return offset;
2333 static int
2334 dissect_ftam_GeneralizedTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2335 offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
2337 return offset;
2341 const value_string ftam_Date_and_Time_Attribute_vals[] = {
2342 { 0, "no-value-available" },
2343 { 1, "actual-values" },
2344 { 0, NULL }
2347 static const ber_choice_t Date_and_Time_Attribute_choice[] = {
2348 { 0, &hf_ftam_no_value_available, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_NULL },
2349 { 1, &hf_ftam_actual_values5 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_GeneralizedTime },
2350 { 0, NULL, 0, 0, 0, NULL }
2354 dissect_ftam_Date_and_Time_Attribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2355 offset = dissect_ber_choice(actx, tree, tvb, offset,
2356 Date_and_Time_Attribute_choice, hf_index, ett_ftam_Date_and_Time_Attribute,
2357 NULL);
2359 return offset;
2363 static const value_string ftam_User_Identity_Attribute_vals[] = {
2364 { 0, "no-value-available" },
2365 { 1, "actual-values" },
2366 { 0, NULL }
2369 static const ber_choice_t User_Identity_Attribute_choice[] = {
2370 { 0, &hf_ftam_no_value_available, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_NULL },
2371 { 1, &hf_ftam_actual_values6 , BER_CLASS_APP, 22, BER_FLAGS_NOOWNTAG, dissect_ftam_User_Identity },
2372 { 0, NULL, 0, 0, 0, NULL }
2375 static int
2376 dissect_ftam_User_Identity_Attribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2377 offset = dissect_ber_choice(actx, tree, tvb, offset,
2378 User_Identity_Attribute_choice, hf_index, ett_ftam_User_Identity_Attribute,
2379 NULL);
2381 return offset;
2385 static const ber_sequence_t Read_Attributes_U_sequence[] = {
2386 { &hf_ftam_pathname , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ftam_Pathname_Attribute },
2387 { &hf_ftam_object_type , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Object_Type_Attribute },
2388 { &hf_ftam_permitted_actions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Permitted_Actions_Attribute },
2389 { &hf_ftam_contents_type , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Contents_Type_Attribute },
2390 { &hf_ftam_linked_Object , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Pathname_Attribute },
2391 { &hf_ftam_child_objects , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_ftam_Child_Objects_Attribute },
2392 { &hf_ftam_primaty_pathname, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Pathname_Attribute },
2393 { &hf_ftam_storage_account, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Account_Attribute },
2394 { &hf_ftam_date_and_time_of_creation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Date_and_Time_Attribute },
2395 { &hf_ftam_date_and_time_of_last_modification, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Date_and_Time_Attribute },
2396 { &hf_ftam_date_and_time_of_last_read_access, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Date_and_Time_Attribute },
2397 { &hf_ftam_date_and_time_of_last_attribute_modification, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Date_and_Time_Attribute },
2398 { &hf_ftam_identity_of_creator, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_User_Identity_Attribute },
2399 { &hf_ftam_identity_of_last_modifier, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_User_Identity_Attribute },
2400 { &hf_ftam_identity_of_last_reader, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_User_Identity_Attribute },
2401 { &hf_ftam_identity_last_attribute_modifier, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_User_Identity_Attribute },
2402 { &hf_ftam_object_availability, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Object_Availability_Attribute },
2403 { &hf_ftam_object_size , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Object_Size_Attribute },
2404 { &hf_ftam_future_Object_size, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Object_Size_Attribute },
2405 { &hf_ftam_access_control , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Access_Control_Attribute },
2406 { &hf_ftam_path_access_control, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Access_Control_Attribute },
2407 { &hf_ftam_legal_qualification, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Legal_Qualification_Attribute },
2408 { &hf_ftam_private_use , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Private_Use_Attribute },
2409 { &hf_ftam_attribute_extensions, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Attribute_Extensions },
2410 { NULL, 0, 0, 0, NULL }
2413 static int
2414 dissect_ftam_Read_Attributes_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2415 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2416 Read_Attributes_U_sequence, hf_index, ett_ftam_Read_Attributes_U);
2418 return offset;
2423 static int
2424 dissect_ftam_Read_Attributes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2425 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2426 hf_index, BER_CLASS_APP, 18, true, dissect_ftam_Read_Attributes_U);
2428 return offset;
2432 static const ber_sequence_t F_READ_ATTRIB_response_sequence[] = {
2433 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
2434 { &hf_ftam_read_attributes, BER_CLASS_APP, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Read_Attributes },
2435 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
2436 { NULL, 0, 0, 0, NULL }
2439 static int
2440 dissect_ftam_F_READ_ATTRIB_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2441 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2442 F_READ_ATTRIB_response_sequence, hf_index, ett_ftam_F_READ_ATTRIB_response);
2444 return offset;
2448 static const ber_sequence_t T_actual_values1_sequence[] = {
2449 { &hf_ftam_insert_values , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_SET_OF_Access_Control_Element },
2450 { &hf_ftam_delete_values , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_SET_OF_Access_Control_Element },
2451 { NULL, 0, 0, 0, NULL }
2454 static int
2455 dissect_ftam_T_actual_values1(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2456 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2457 T_actual_values1_sequence, hf_index, ett_ftam_T_actual_values1);
2459 return offset;
2463 static const value_string ftam_Access_Control_Change_Attribute_vals[] = {
2464 { 0, "no-value-available" },
2465 { 1, "actual-values" },
2466 { 0, NULL }
2469 static const ber_choice_t Access_Control_Change_Attribute_choice[] = {
2470 { 0, &hf_ftam_no_value_available, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_NULL },
2471 { 1, &hf_ftam_actual_values1 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_T_actual_values1 },
2472 { 0, NULL, 0, 0, 0, NULL }
2475 static int
2476 dissect_ftam_Access_Control_Change_Attribute(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2477 offset = dissect_ber_choice(actx, tree, tvb, offset,
2478 Access_Control_Change_Attribute_choice, hf_index, ett_ftam_Access_Control_Change_Attribute,
2479 NULL);
2481 return offset;
2485 static const ber_sequence_t Change_Attributes_U_sequence[] = {
2486 { &hf_ftam_pathname , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ftam_Pathname_Attribute },
2487 { &hf_ftam_storage_account, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Account_Attribute },
2488 { &hf_ftam_object_availability, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Object_Availability_Attribute },
2489 { &hf_ftam_future_Object_size, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Object_Size_Attribute },
2490 { &hf_ftam_change_attributes_access_control, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Access_Control_Change_Attribute },
2491 { &hf_ftam_change_path_access_control, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Access_Control_Change_Attribute },
2492 { &hf_ftam_legal_qualification, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Legal_Qualification_Attribute },
2493 { &hf_ftam_private_use , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Private_Use_Attribute },
2494 { &hf_ftam_attribute_extensions, BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Attribute_Extensions },
2495 { NULL, 0, 0, 0, NULL }
2498 static int
2499 dissect_ftam_Change_Attributes_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2500 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2501 Change_Attributes_U_sequence, hf_index, ett_ftam_Change_Attributes_U);
2503 return offset;
2508 static int
2509 dissect_ftam_Change_Attributes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2510 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2511 hf_index, BER_CLASS_APP, 8, true, dissect_ftam_Change_Attributes_U);
2513 return offset;
2517 static const ber_sequence_t F_CHANGE_ATTRIB_request_sequence[] = {
2518 { &hf_ftam_attributes , BER_CLASS_APP, 8, BER_FLAGS_NOOWNTAG, dissect_ftam_Change_Attributes },
2519 { NULL, 0, 0, 0, NULL }
2522 static int
2523 dissect_ftam_F_CHANGE_ATTRIB_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2524 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2525 F_CHANGE_ATTRIB_request_sequence, hf_index, ett_ftam_F_CHANGE_ATTRIB_request);
2527 return offset;
2531 static const ber_sequence_t F_CHANGE_ATTRIB_response_sequence[] = {
2532 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
2533 { &hf_ftam_attributes , BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Change_Attributes },
2534 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
2535 { NULL, 0, 0, 0, NULL }
2538 static int
2539 dissect_ftam_F_CHANGE_ATTRIB_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2540 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2541 F_CHANGE_ATTRIB_response_sequence, hf_index, ett_ftam_F_CHANGE_ATTRIB_response);
2543 return offset;
2547 static int * const T_processing_mode_bits[] = {
2548 &hf_ftam_T_processing_mode_f_read,
2549 &hf_ftam_T_processing_mode_f_insert,
2550 &hf_ftam_T_processing_mode_f_replace,
2551 &hf_ftam_T_processing_mode_f_extend,
2552 &hf_ftam_T_processing_mode_f_erase,
2553 NULL
2556 static int
2557 dissect_ftam_T_processing_mode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2558 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2559 T_processing_mode_bits, 5, hf_index, ett_ftam_T_processing_mode,
2560 NULL);
2562 return offset;
2566 static const value_string ftam_T_open_contents_type_vals[] = {
2567 { 0, "unknown" },
2568 { 1, "proposed" },
2569 { 0, NULL }
2572 static const ber_choice_t T_open_contents_type_choice[] = {
2573 { 0, &hf_ftam_unknown , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_NULL },
2574 { 1, &hf_ftam_proposed , BER_CLASS_CON, 1, 0, dissect_ftam_Contents_Type_Attribute },
2575 { 0, NULL, 0, 0, 0, NULL }
2578 static int
2579 dissect_ftam_T_open_contents_type(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2580 offset = dissect_ber_choice(actx, tree, tvb, offset,
2581 T_open_contents_type_choice, hf_index, ett_ftam_T_open_contents_type,
2582 NULL);
2584 return offset;
2589 static int
2590 dissect_ftam_Activity_Identifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2591 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2592 hf_index, BER_CLASS_APP, 6, true, dissect_ftam_INTEGER);
2594 return offset;
2598 static const value_string ftam_T_request_recovery_mode_vals[] = {
2599 { 0, "none" },
2600 { 1, "at-start-of-file" },
2601 { 2, "at-any-active-Checkpoint" },
2602 { 0, NULL }
2606 static int
2607 dissect_ftam_T_request_recovery_mode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2608 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2609 NULL);
2611 return offset;
2615 static const ber_sequence_t SET_OF_Abstract_Syntax_Name_set_of[1] = {
2616 { &hf_ftam_remove_contexts_item, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_ftam_Abstract_Syntax_Name },
2619 static int
2620 dissect_ftam_SET_OF_Abstract_Syntax_Name(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2621 offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2622 SET_OF_Abstract_Syntax_Name_set_of, hf_index, ett_ftam_SET_OF_Abstract_Syntax_Name);
2624 return offset;
2628 static const value_string ftam_Degree_Of_Overlap_U_vals[] = {
2629 { 0, "normal" },
2630 { 1, "consecutive" },
2631 { 2, "concurrent" },
2632 { 0, NULL }
2636 static int
2637 dissect_ftam_Degree_Of_Overlap_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2638 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2639 NULL);
2641 return offset;
2646 static int
2647 dissect_ftam_Degree_Of_Overlap(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2648 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2649 hf_index, BER_CLASS_APP, 30, true, dissect_ftam_Degree_Of_Overlap_U);
2651 return offset;
2655 static const ber_sequence_t F_OPEN_request_sequence[] = {
2656 { &hf_ftam_processing_mode, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_T_processing_mode },
2657 { &hf_ftam_open_contents_type, BER_CLASS_CON, 1, 0, dissect_ftam_T_open_contents_type },
2658 { &hf_ftam_concurrency_control, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Concurrency_Control },
2659 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
2660 { &hf_ftam_enable_fadu_locking, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_BOOLEAN },
2661 { &hf_ftam_activity_identifier, BER_CLASS_APP, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Activity_Identifier },
2662 { &hf_ftam_request_recovery_mode, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_T_request_recovery_mode },
2663 { &hf_ftam_remove_contexts, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_SET_OF_Abstract_Syntax_Name },
2664 { &hf_ftam_define_contexts, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_SET_OF_Abstract_Syntax_Name },
2665 { &hf_ftam_degree_of_overlap, BER_CLASS_APP, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Degree_Of_Overlap },
2666 { &hf_ftam_transfer_window, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
2667 { NULL, 0, 0, 0, NULL }
2670 static int
2671 dissect_ftam_F_OPEN_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2672 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2673 F_OPEN_request_sequence, hf_index, ett_ftam_F_OPEN_request);
2675 return offset;
2679 static const value_string ftam_T_response_recovery_mode_vals[] = {
2680 { 0, "none" },
2681 { 1, "at-start-of-file" },
2682 { 2, "at-any-active-Checkpoint" },
2683 { 0, NULL }
2687 static int
2688 dissect_ftam_T_response_recovery_mode(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2689 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2690 NULL);
2692 return offset;
2696 static const ber_sequence_t F_OPEN_response_sequence[] = {
2697 { &hf_ftam_state_result , BER_CLASS_APP, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_State_Result },
2698 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
2699 { &hf_ftam_contents_type , BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_ftam_Contents_Type_Attribute },
2700 { &hf_ftam_concurrency_control, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Concurrency_Control },
2701 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
2702 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
2703 { &hf_ftam_response_recovery_mode, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_T_response_recovery_mode },
2704 { &hf_ftam_presentation_action, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_BOOLEAN },
2705 { &hf_ftam_degree_of_overlap, BER_CLASS_APP, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Degree_Of_Overlap },
2706 { &hf_ftam_transfer_window, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
2707 { NULL, 0, 0, 0, NULL }
2710 static int
2711 dissect_ftam_F_OPEN_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2712 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2713 F_OPEN_response_sequence, hf_index, ett_ftam_F_OPEN_response);
2715 return offset;
2719 static const ber_sequence_t F_CLOSE_request_sequence[] = {
2720 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
2721 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
2722 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
2723 { NULL, 0, 0, 0, NULL }
2726 static int
2727 dissect_ftam_F_CLOSE_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2728 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2729 F_CLOSE_request_sequence, hf_index, ett_ftam_F_CLOSE_request);
2731 return offset;
2735 static const ber_sequence_t F_CLOSE_response_sequence[] = {
2736 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
2737 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
2738 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
2739 { NULL, 0, 0, 0, NULL }
2742 static int
2743 dissect_ftam_F_CLOSE_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2744 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2745 F_CLOSE_response_sequence, hf_index, ett_ftam_F_CLOSE_response);
2747 return offset;
2751 static const ber_sequence_t F_BEGIN_GROUP_request_sequence[] = {
2752 { &hf_ftam_threshold , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
2753 { NULL, 0, 0, 0, NULL }
2756 static int
2757 dissect_ftam_F_BEGIN_GROUP_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2758 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2759 F_BEGIN_GROUP_request_sequence, hf_index, ett_ftam_F_BEGIN_GROUP_request);
2761 return offset;
2765 static const ber_sequence_t F_BEGIN_GROUP_response_sequence[] = {
2766 { NULL, 0, 0, 0, NULL }
2769 static int
2770 dissect_ftam_F_BEGIN_GROUP_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2771 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2772 F_BEGIN_GROUP_response_sequence, hf_index, ett_ftam_F_BEGIN_GROUP_response);
2774 return offset;
2778 static const ber_sequence_t F_END_GROUP_request_sequence[] = {
2779 { NULL, 0, 0, 0, NULL }
2782 static int
2783 dissect_ftam_F_END_GROUP_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2784 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2785 F_END_GROUP_request_sequence, hf_index, ett_ftam_F_END_GROUP_request);
2787 return offset;
2791 static const ber_sequence_t F_END_GROUP_response_sequence[] = {
2792 { NULL, 0, 0, 0, NULL }
2795 static int
2796 dissect_ftam_F_END_GROUP_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2797 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2798 F_END_GROUP_response_sequence, hf_index, ett_ftam_F_END_GROUP_response);
2800 return offset;
2804 static const ber_sequence_t F_RECOVER_request_sequence[] = {
2805 { &hf_ftam_activity_identifier, BER_CLASS_APP, 6, BER_FLAGS_NOOWNTAG, dissect_ftam_Activity_Identifier },
2806 { &hf_ftam_bulk_transfer_number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
2807 { &hf_ftam_requested_access, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_ftam_Access_Request },
2808 { &hf_ftam_access_passwords, BER_CLASS_APP, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Access_Passwords },
2809 { &hf_ftam_recovefy_Point , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
2810 { &hf_ftam_remove_contexts, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_SET_OF_Abstract_Syntax_Name },
2811 { &hf_ftam_define_contexts, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_SET_OF_Abstract_Syntax_Name },
2812 { &hf_ftam_concurrent_bulk_transfer_number, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
2813 { &hf_ftam_concurrent_recovery_point, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
2814 { &hf_ftam_last_transfer_end_read_response, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
2815 { &hf_ftam_last_transfer_end_write_response, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
2816 { NULL, 0, 0, 0, NULL }
2819 static int
2820 dissect_ftam_F_RECOVER_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2821 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2822 F_RECOVER_request_sequence, hf_index, ett_ftam_F_RECOVER_request);
2824 return offset;
2828 static const ber_sequence_t F_RECOVER_response_sequence[] = {
2829 { &hf_ftam_state_result , BER_CLASS_APP, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_State_Result },
2830 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
2831 { &hf_ftam_contents_type , BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_ftam_Contents_Type_Attribute },
2832 { &hf_ftam_recovety_Point , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
2833 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
2834 { &hf_ftam_presentation_action, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_BOOLEAN },
2835 { &hf_ftam_concurrent_recovery_point, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
2836 { &hf_ftam_last_transfer_end_read_request, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
2837 { &hf_ftam_last_transfer_end_write_request, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
2838 { NULL, 0, 0, 0, NULL }
2841 static int
2842 dissect_ftam_F_RECOVER_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2843 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2844 F_RECOVER_response_sequence, hf_index, ett_ftam_F_RECOVER_response);
2846 return offset;
2850 static const value_string ftam_T_first_last_vals[] = {
2851 { 0, "first" },
2852 { 1, "last" },
2853 { 0, NULL }
2857 static int
2858 dissect_ftam_T_first_last(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2859 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2860 NULL);
2862 return offset;
2866 static const value_string ftam_T_relative_vals[] = {
2867 { 0, "previous" },
2868 { 1, "current" },
2869 { 2, "next" },
2870 { 0, NULL }
2874 static int
2875 dissect_ftam_T_relative(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2876 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2877 NULL);
2879 return offset;
2883 static const value_string ftam_T_begin_end_vals[] = {
2884 { 0, "begin" },
2885 { 1, "end" },
2886 { 0, NULL }
2890 static int
2891 dissect_ftam_T_begin_end(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2892 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2893 NULL);
2895 return offset;
2900 static int
2901 dissect_ftam_Node_Name(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2902 offset = dissect_ber_external_type(implicit_tag, tree, tvb, offset, actx, hf_index, NULL);
2904 return offset;
2908 static const ber_sequence_t SEQUENCE_OF_Node_Name_sequence_of[1] = {
2909 { &hf_ftam_name_list_item , BER_CLASS_UNI, BER_UNI_TAG_EXTERNAL, BER_FLAGS_NOOWNTAG, dissect_ftam_Node_Name },
2912 static int
2913 dissect_ftam_SEQUENCE_OF_Node_Name(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2914 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2915 SEQUENCE_OF_Node_Name_sequence_of, hf_index, ett_ftam_SEQUENCE_OF_Node_Name);
2917 return offset;
2921 static const value_string ftam_FADU_Identity_U_vals[] = {
2922 { 0, "first-last" },
2923 { 1, "relative" },
2924 { 2, "begin-end" },
2925 { 3, "single-name" },
2926 { 4, "name-list" },
2927 { 5, "fadu-number" },
2928 { 0, NULL }
2931 static const ber_choice_t FADU_Identity_U_choice[] = {
2932 { 0, &hf_ftam_first_last , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_T_first_last },
2933 { 1, &hf_ftam_relative , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_T_relative },
2934 { 2, &hf_ftam_begin_end , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ftam_T_begin_end },
2935 { 3, &hf_ftam_single_name , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ftam_Node_Name },
2936 { 4, &hf_ftam_name_list , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ftam_SEQUENCE_OF_Node_Name },
2937 { 5, &hf_ftam_fadu_number , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
2938 { 0, NULL, 0, 0, 0, NULL }
2941 static int
2942 dissect_ftam_FADU_Identity_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2943 offset = dissect_ber_choice(actx, tree, tvb, offset,
2944 FADU_Identity_U_choice, hf_index, ett_ftam_FADU_Identity_U,
2945 NULL);
2947 return offset;
2952 static int
2953 dissect_ftam_FADU_Identity(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2954 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2955 hf_index, BER_CLASS_APP, 15, false, dissect_ftam_FADU_Identity_U);
2957 return offset;
2961 static const value_string ftam_FADU_Lock_U_vals[] = {
2962 { 0, "off" },
2963 { 1, "on" },
2964 { 0, NULL }
2968 static int
2969 dissect_ftam_FADU_Lock_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2970 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2971 NULL);
2973 return offset;
2978 static int
2979 dissect_ftam_FADU_Lock(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2980 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2981 hf_index, BER_CLASS_APP, 16, true, dissect_ftam_FADU_Lock_U);
2983 return offset;
2987 static const ber_sequence_t F_LOCATE_request_sequence[] = {
2988 { &hf_ftam_file_access_data_unit_identity, BER_CLASS_APP, 15, BER_FLAGS_NOOWNTAG, dissect_ftam_FADU_Identity },
2989 { &hf_ftam_fadu_lock , BER_CLASS_APP, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_FADU_Lock },
2990 { NULL, 0, 0, 0, NULL }
2993 static int
2994 dissect_ftam_F_LOCATE_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2995 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2996 F_LOCATE_request_sequence, hf_index, ett_ftam_F_LOCATE_request);
2998 return offset;
3002 static const ber_sequence_t F_LOCATE_response_sequence[] = {
3003 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
3004 { &hf_ftam_file_access_data_unit_identity, BER_CLASS_APP, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_FADU_Identity },
3005 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
3006 { NULL, 0, 0, 0, NULL }
3009 static int
3010 dissect_ftam_F_LOCATE_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3011 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3012 F_LOCATE_response_sequence, hf_index, ett_ftam_F_LOCATE_response);
3014 return offset;
3018 static const ber_sequence_t F_ERASE_request_sequence[] = {
3019 { &hf_ftam_file_access_data_unit_identity, BER_CLASS_APP, 15, BER_FLAGS_NOOWNTAG, dissect_ftam_FADU_Identity },
3020 { NULL, 0, 0, 0, NULL }
3023 static int
3024 dissect_ftam_F_ERASE_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3025 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3026 F_ERASE_request_sequence, hf_index, ett_ftam_F_ERASE_request);
3028 return offset;
3032 static const ber_sequence_t F_ERASE_response_sequence[] = {
3033 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
3034 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
3035 { NULL, 0, 0, 0, NULL }
3038 static int
3039 dissect_ftam_F_ERASE_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3040 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3041 F_ERASE_response_sequence, hf_index, ett_ftam_F_ERASE_response);
3043 return offset;
3047 static const value_string ftam_File_PDU_vals[] = {
3048 { 6, "f-select-request" },
3049 { 7, "f-select-response" },
3050 { 8, "f-deselect-request" },
3051 { 9, "f-deselect-response" },
3052 { 10, "f-create-request" },
3053 { 11, "f-create-response" },
3054 { 12, "f-delete-request" },
3055 { 13, "f-delete-response" },
3056 { 14, "f-read-attrib-request" },
3057 { 15, "f-read-attrib-response" },
3058 { 16, "f-Change-attrib-reques" },
3059 { 17, "f-Change-attrib-respon" },
3060 { 18, "f-open-request" },
3061 { 19, "f-open-response" },
3062 { 20, "f-close-request" },
3063 { 21, "f-close-response" },
3064 { 22, "f-begin-group-request" },
3065 { 23, "f-begin-group-response" },
3066 { 24, "f-end-group-request" },
3067 { 25, "f-end-group-response" },
3068 { 26, "f-recover-request" },
3069 { 27, "f-recover-response" },
3070 { 28, "f-locate-request" },
3071 { 29, "f-locate-response" },
3072 { 30, "f-erase-request" },
3073 { 31, "f-erase-response" },
3074 { 0, NULL }
3077 static const ber_choice_t File_PDU_choice[] = {
3078 { 6, &hf_ftam_f_select_request, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_ftam_F_SELECT_request },
3079 { 7, &hf_ftam_f_select_response, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_ftam_F_SELECT_response },
3080 { 8, &hf_ftam_f_deselect_request, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_ftam_F_DESELECT_request },
3081 { 9, &hf_ftam_f_deselect_response, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_ftam_F_DESELECT_response },
3082 { 10, &hf_ftam_f_create_request, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_ftam_F_CREATE_request },
3083 { 11, &hf_ftam_f_create_response, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_ftam_F_CREATE_response },
3084 { 12, &hf_ftam_f_delete_request, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_ftam_F_DELETE_request },
3085 { 13, &hf_ftam_f_delete_response, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_ftam_F_DELETE_response },
3086 { 14, &hf_ftam_f_read_attrib_request, BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_ftam_F_READ_ATTRIB_request },
3087 { 15, &hf_ftam_f_read_attrib_response, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_ftam_F_READ_ATTRIB_response },
3088 { 16, &hf_ftam_f_Change_attrib_reques, BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_ftam_F_CHANGE_ATTRIB_request },
3089 { 17, &hf_ftam_f_Change_attrib_respon, BER_CLASS_CON, 17, BER_FLAGS_IMPLTAG, dissect_ftam_F_CHANGE_ATTRIB_response },
3090 { 18, &hf_ftam_f_open_request , BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_ftam_F_OPEN_request },
3091 { 19, &hf_ftam_f_open_response, BER_CLASS_CON, 19, BER_FLAGS_IMPLTAG, dissect_ftam_F_OPEN_response },
3092 { 20, &hf_ftam_f_close_request, BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_ftam_F_CLOSE_request },
3093 { 21, &hf_ftam_f_close_response, BER_CLASS_CON, 21, BER_FLAGS_IMPLTAG, dissect_ftam_F_CLOSE_response },
3094 { 22, &hf_ftam_f_begin_group_request, BER_CLASS_CON, 22, BER_FLAGS_IMPLTAG, dissect_ftam_F_BEGIN_GROUP_request },
3095 { 23, &hf_ftam_f_begin_group_response, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_ftam_F_BEGIN_GROUP_response },
3096 { 24, &hf_ftam_f_end_group_request, BER_CLASS_CON, 24, BER_FLAGS_IMPLTAG, dissect_ftam_F_END_GROUP_request },
3097 { 25, &hf_ftam_f_end_group_response, BER_CLASS_CON, 25, BER_FLAGS_IMPLTAG, dissect_ftam_F_END_GROUP_response },
3098 { 26, &hf_ftam_f_recover_request, BER_CLASS_CON, 26, BER_FLAGS_IMPLTAG, dissect_ftam_F_RECOVER_request },
3099 { 27, &hf_ftam_f_recover_response, BER_CLASS_CON, 27, BER_FLAGS_IMPLTAG, dissect_ftam_F_RECOVER_response },
3100 { 28, &hf_ftam_f_locate_request, BER_CLASS_CON, 28, BER_FLAGS_IMPLTAG, dissect_ftam_F_LOCATE_request },
3101 { 29, &hf_ftam_f_locate_response, BER_CLASS_CON, 29, BER_FLAGS_IMPLTAG, dissect_ftam_F_LOCATE_response },
3102 { 30, &hf_ftam_f_erase_request, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_ftam_F_ERASE_request },
3103 { 31, &hf_ftam_f_erase_response, BER_CLASS_CON, 31, BER_FLAGS_IMPLTAG, dissect_ftam_F_ERASE_response },
3104 { 0, NULL, 0, 0, 0, NULL }
3107 static int
3108 dissect_ftam_File_PDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3109 int branch_taken;
3111 offset = dissect_ber_choice(actx, tree, tvb, offset,
3112 File_PDU_choice, hf_index, ett_ftam_File_PDU,
3113 &branch_taken);
3116 if( (branch_taken!=-1) && ftam_File_PDU_vals[branch_taken].strptr ){
3117 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s:", ftam_File_PDU_vals[branch_taken].strptr);
3121 return offset;
3125 static const value_string ftam_T_access_context_vals[] = {
3126 { 0, "hierarchical-all-data-units" },
3127 { 1, "hierarchical-no-data-units" },
3128 { 2, "flat-all-data-units" },
3129 { 3, "flat-one-level-data-unit" },
3130 { 4, "flat-Single-data-unit" },
3131 { 5, "unstructured-all-data-units" },
3132 { 6, "unstructured-Single-data-unit" },
3133 { 0, NULL }
3137 static int
3138 dissect_ftam_T_access_context(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3139 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3140 NULL);
3142 return offset;
3146 static const ber_sequence_t Access_Context_U_sequence[] = {
3147 { &hf_ftam_access_context , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_T_access_context },
3148 { &hf_ftam_level_number , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3149 { NULL, 0, 0, 0, NULL }
3152 static int
3153 dissect_ftam_Access_Context_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3154 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3155 Access_Context_U_sequence, hf_index, ett_ftam_Access_Context_U);
3157 return offset;
3162 static int
3163 dissect_ftam_Access_Context(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3164 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3165 hf_index, BER_CLASS_APP, 1, true, dissect_ftam_Access_Context_U);
3167 return offset;
3171 static const ber_sequence_t F_READ_request_sequence[] = {
3172 { &hf_ftam_file_access_data_unit_identity, BER_CLASS_APP, 15, BER_FLAGS_NOOWNTAG, dissect_ftam_FADU_Identity },
3173 { &hf_ftam_read_access_context, BER_CLASS_APP, 1, BER_FLAGS_NOOWNTAG, dissect_ftam_Access_Context },
3174 { &hf_ftam_fadu_lock , BER_CLASS_APP, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_FADU_Lock },
3175 { &hf_ftam_transfer_number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3176 { NULL, 0, 0, 0, NULL }
3179 static int
3180 dissect_ftam_F_READ_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3181 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3182 F_READ_request_sequence, hf_index, ett_ftam_F_READ_request);
3184 return offset;
3188 static const value_string ftam_T_file_access_data_unit_Operation_vals[] = {
3189 { 0, "insert" },
3190 { 1, "replace" },
3191 { 2, "extend" },
3192 { 0, NULL }
3196 static int
3197 dissect_ftam_T_file_access_data_unit_Operation(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3198 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3199 NULL);
3201 return offset;
3205 static const ber_sequence_t F_WRITE_request_sequence[] = {
3206 { &hf_ftam_file_access_data_unit_Operation, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_T_file_access_data_unit_Operation },
3207 { &hf_ftam_file_access_data_unit_identity, BER_CLASS_APP, 15, BER_FLAGS_NOOWNTAG, dissect_ftam_FADU_Identity },
3208 { &hf_ftam_fadu_lock , BER_CLASS_APP, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_FADU_Lock },
3209 { &hf_ftam_transfer_number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3210 { NULL, 0, 0, 0, NULL }
3213 static int
3214 dissect_ftam_F_WRITE_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3215 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3216 F_WRITE_request_sequence, hf_index, ett_ftam_F_WRITE_request);
3218 return offset;
3222 static const ber_sequence_t F_DATA_END_request_sequence[] = {
3223 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
3224 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
3225 { NULL, 0, 0, 0, NULL }
3228 static int
3229 dissect_ftam_F_DATA_END_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3230 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3231 F_DATA_END_request_sequence, hf_index, ett_ftam_F_DATA_END_request);
3233 return offset;
3237 static const value_string ftam_Request_Type_U_vals[] = {
3238 { 0, "read" },
3239 { 1, "write" },
3240 { 0, NULL }
3244 static int
3245 dissect_ftam_Request_Type_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3246 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3247 NULL);
3249 return offset;
3254 static int
3255 dissect_ftam_Request_Type(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3256 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3257 hf_index, BER_CLASS_APP, 31, true, dissect_ftam_Request_Type_U);
3259 return offset;
3263 static const ber_sequence_t F_TRANSFER_END_request_sequence[] = {
3264 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
3265 { &hf_ftam_request_type , BER_CLASS_APP, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Request_Type },
3266 { &hf_ftam_transfer_number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3267 { &hf_ftam_last_transfer_end_read_response, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3268 { &hf_ftam_last_transfer_end_write_response, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3269 { NULL, 0, 0, 0, NULL }
3272 static int
3273 dissect_ftam_F_TRANSFER_END_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3274 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3275 F_TRANSFER_END_request_sequence, hf_index, ett_ftam_F_TRANSFER_END_request);
3277 return offset;
3281 static const ber_sequence_t F_TRANSFER_END_response_sequence[] = {
3282 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
3283 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
3284 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
3285 { &hf_ftam_request_type , BER_CLASS_APP, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Request_Type },
3286 { &hf_ftam_transfer_number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3287 { NULL, 0, 0, 0, NULL }
3290 static int
3291 dissect_ftam_F_TRANSFER_END_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3292 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3293 F_TRANSFER_END_response_sequence, hf_index, ett_ftam_F_TRANSFER_END_response);
3295 return offset;
3299 static const ber_sequence_t F_CANCEL_request_sequence[] = {
3300 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
3301 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
3302 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
3303 { &hf_ftam_request_type , BER_CLASS_APP, 31, BER_FLAGS_NOOWNTAG, dissect_ftam_Request_Type },
3304 { &hf_ftam_transfer_number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3305 { &hf_ftam_last_transfer_end_read_request, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3306 { &hf_ftam_last_transfer_end_read_response, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3307 { &hf_ftam_last_transfer_end_write_request, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3308 { &hf_ftam_last_transfer_end_write_response, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3309 { NULL, 0, 0, 0, NULL }
3312 static int
3313 dissect_ftam_F_CANCEL_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3314 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3315 F_CANCEL_request_sequence, hf_index, ett_ftam_F_CANCEL_request);
3317 return offset;
3321 static const ber_sequence_t F_CANCEL_response_sequence[] = {
3322 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
3323 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
3324 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
3325 { &hf_ftam_request_type , BER_CLASS_APP, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Request_Type },
3326 { &hf_ftam_transfer_number, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3327 { &hf_ftam_last_transfer_end_read_request, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3328 { &hf_ftam_last_transfer_end_read_response, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3329 { &hf_ftam_last_transfer_end_write_request, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3330 { &hf_ftam_last_transfer_end_write_response, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3331 { NULL, 0, 0, 0, NULL }
3334 static int
3335 dissect_ftam_F_CANCEL_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3336 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3337 F_CANCEL_response_sequence, hf_index, ett_ftam_F_CANCEL_response);
3339 return offset;
3343 static const ber_sequence_t F_RESTART_request_sequence[] = {
3344 { &hf_ftam_checkpoint_identifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3345 { &hf_ftam_request_type , BER_CLASS_APP, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Request_Type },
3346 { &hf_ftam_transfer_number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3347 { &hf_ftam_last_transfer_end_read_request, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3348 { &hf_ftam_last_transfer_end_read_response, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3349 { &hf_ftam_last_transfer_end_write_request, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3350 { &hf_ftam_last_transfer_end_write_response, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3351 { NULL, 0, 0, 0, NULL }
3354 static int
3355 dissect_ftam_F_RESTART_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3356 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3357 F_RESTART_request_sequence, hf_index, ett_ftam_F_RESTART_request);
3359 return offset;
3363 static const ber_sequence_t F_RESTART_response_sequence[] = {
3364 { &hf_ftam_checkpoint_identifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3365 { &hf_ftam_request_type , BER_CLASS_APP, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Request_Type },
3366 { &hf_ftam_transfer_number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3367 { &hf_ftam_last_transfer_end_read_request, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3368 { &hf_ftam_last_transfer_end_read_response, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3369 { &hf_ftam_last_transfer_end_write_request, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3370 { &hf_ftam_last_transfer_end_write_response, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3371 { NULL, 0, 0, 0, NULL }
3374 static int
3375 dissect_ftam_F_RESTART_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3376 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3377 F_RESTART_response_sequence, hf_index, ett_ftam_F_RESTART_response);
3379 return offset;
3383 static const value_string ftam_Bulk_Data_PDU_vals[] = {
3384 { 32, "f-read-request" },
3385 { 33, "f-write-request" },
3386 { 34, "f-data-end-request" },
3387 { 35, "f-transfer-end-request" },
3388 { 36, "f-transfer-end-response" },
3389 { 37, "f-cancel-request" },
3390 { 38, "f-cancel-response" },
3391 { 39, "f-restart-request" },
3392 { 40, "f-restart-response" },
3393 { 0, NULL }
3396 static const ber_choice_t Bulk_Data_PDU_choice[] = {
3397 { 32, &hf_ftam_f_read_request , BER_CLASS_CON, 32, BER_FLAGS_IMPLTAG, dissect_ftam_F_READ_request },
3398 { 33, &hf_ftam_f_write_request, BER_CLASS_CON, 33, BER_FLAGS_IMPLTAG, dissect_ftam_F_WRITE_request },
3399 { 34, &hf_ftam_f_data_end_request, BER_CLASS_CON, 34, BER_FLAGS_IMPLTAG, dissect_ftam_F_DATA_END_request },
3400 { 35, &hf_ftam_f_transfer_end_request, BER_CLASS_CON, 35, BER_FLAGS_IMPLTAG, dissect_ftam_F_TRANSFER_END_request },
3401 { 36, &hf_ftam_f_transfer_end_response, BER_CLASS_CON, 36, BER_FLAGS_IMPLTAG, dissect_ftam_F_TRANSFER_END_response },
3402 { 37, &hf_ftam_f_cancel_request, BER_CLASS_CON, 37, BER_FLAGS_IMPLTAG, dissect_ftam_F_CANCEL_request },
3403 { 38, &hf_ftam_f_cancel_response, BER_CLASS_CON, 38, BER_FLAGS_IMPLTAG, dissect_ftam_F_CANCEL_response },
3404 { 39, &hf_ftam_f_restart_request, BER_CLASS_CON, 39, BER_FLAGS_IMPLTAG, dissect_ftam_F_RESTART_request },
3405 { 40, &hf_ftam_f_restart_response, BER_CLASS_CON, 40, BER_FLAGS_IMPLTAG, dissect_ftam_F_RESTART_response },
3406 { 0, NULL, 0, 0, 0, NULL }
3409 static int
3410 dissect_ftam_Bulk_Data_PDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3411 int branch_taken;
3413 offset = dissect_ber_choice(actx, tree, tvb, offset,
3414 Bulk_Data_PDU_choice, hf_index, ett_ftam_Bulk_Data_PDU,
3415 &branch_taken);
3418 if( (branch_taken!=-1) && ftam_Bulk_Data_PDU_vals[branch_taken].strptr ){
3419 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s:", ftam_Bulk_Data_PDU_vals[branch_taken].strptr);
3423 return offset;
3428 static int
3429 dissect_ftam_Destination_File_Directory(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3430 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3431 hf_index, BER_CLASS_APP, 24, false, dissect_ftam_Pathname_Attribute);
3433 return offset;
3437 static const ber_sequence_t F_CHANGE_PREFIX_request_sequence[] = {
3438 { &hf_ftam_reset , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_BOOLEAN },
3439 { &hf_ftam_destination_file_directory, BER_CLASS_APP, 24, BER_FLAGS_NOOWNTAG, dissect_ftam_Destination_File_Directory },
3440 { &hf_ftam_access_passwords, BER_CLASS_APP, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Access_Passwords },
3441 { &hf_ftam_path_access_passwords, BER_CLASS_APP, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Path_Access_Passwords },
3442 { NULL, 0, 0, 0, NULL }
3445 static int
3446 dissect_ftam_F_CHANGE_PREFIX_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3447 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3448 F_CHANGE_PREFIX_request_sequence, hf_index, ett_ftam_F_CHANGE_PREFIX_request);
3450 return offset;
3454 static const ber_sequence_t F_CHANGE_PREFIX_response_sequence[] = {
3455 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
3456 { &hf_ftam_destination_file_directory, BER_CLASS_APP, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Destination_File_Directory },
3457 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
3458 { NULL, 0, 0, 0, NULL }
3461 static int
3462 dissect_ftam_F_CHANGE_PREFIX_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3463 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3464 F_CHANGE_PREFIX_response_sequence, hf_index, ett_ftam_F_CHANGE_PREFIX_response);
3466 return offset;
3470 static int * const Equality_Comparision_bits[] = {
3471 &hf_ftam_Equality_Comparision_no_value_available_matches,
3472 &hf_ftam_Equality_Comparision_equals_matches,
3473 NULL
3476 static int
3477 dissect_ftam_Equality_Comparision(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3478 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
3479 Equality_Comparision_bits, 2, hf_index, ett_ftam_Equality_Comparision,
3480 NULL);
3482 return offset;
3486 static const value_string ftam_T_string_value_item_vals[] = {
3487 { 2, "substring-match" },
3488 { 3, "any-match" },
3489 { 4, "number-of-characters-match" },
3490 { 0, NULL }
3493 static const ber_choice_t T_string_value_item_choice[] = {
3494 { 2, &hf_ftam_substring_match, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ftam_GraphicString },
3495 { 3, &hf_ftam_any_match , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ftam_NULL },
3496 { 4, &hf_ftam_number_of_characters_match, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3497 { 0, NULL, 0, 0, 0, NULL }
3500 static int
3501 dissect_ftam_T_string_value_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3502 offset = dissect_ber_choice(actx, tree, tvb, offset,
3503 T_string_value_item_choice, hf_index, ett_ftam_T_string_value_item,
3504 NULL);
3506 return offset;
3510 static const ber_sequence_t T_string_value_sequence_of[1] = {
3511 { &hf_ftam_string_value_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ftam_T_string_value_item },
3514 static int
3515 dissect_ftam_T_string_value(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3516 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3517 T_string_value_sequence_of, hf_index, ett_ftam_T_string_value);
3519 return offset;
3523 static const ber_sequence_t String_Pattern_sequence[] = {
3524 { &hf_ftam_equality_comparision, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Equality_Comparision },
3525 { &hf_ftam_string_value , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_T_string_value },
3526 { NULL, 0, 0, 0, NULL }
3529 static int
3530 dissect_ftam_String_Pattern(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3531 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3532 String_Pattern_sequence, hf_index, ett_ftam_String_Pattern);
3534 return offset;
3538 static const value_string ftam_T_pathname_value_item_vals[] = {
3539 { 2, "string-match" },
3540 { 3, "any-match" },
3541 { 0, NULL }
3544 static const ber_choice_t T_pathname_value_item_choice[] = {
3545 { 2, &hf_ftam_string_match , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ftam_String_Pattern },
3546 { 3, &hf_ftam_any_match , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ftam_NULL },
3547 { 0, NULL, 0, 0, 0, NULL }
3550 static int
3551 dissect_ftam_T_pathname_value_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3552 offset = dissect_ber_choice(actx, tree, tvb, offset,
3553 T_pathname_value_item_choice, hf_index, ett_ftam_T_pathname_value_item,
3554 NULL);
3556 return offset;
3560 static const ber_sequence_t T_pathname_value_sequence_of[1] = {
3561 { &hf_ftam_pathname_value_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ftam_T_pathname_value_item },
3564 static int
3565 dissect_ftam_T_pathname_value(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3566 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3567 T_pathname_value_sequence_of, hf_index, ett_ftam_T_pathname_value);
3569 return offset;
3573 static const ber_sequence_t Pathname_Pattern_sequence[] = {
3574 { &hf_ftam_equality_comparision, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Equality_Comparision },
3575 { &hf_ftam_pathname_value , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_T_pathname_value },
3576 { NULL, 0, 0, 0, NULL }
3579 static int
3580 dissect_ftam_Pathname_Pattern(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3581 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3582 Pathname_Pattern_sequence, hf_index, ett_ftam_Pathname_Pattern);
3584 return offset;
3588 static int * const Relational_Comparision_bits[] = {
3589 &hf_ftam_Relational_Comparision_no_value_available_matches,
3590 &hf_ftam_Relational_Comparision_equals_matches,
3591 &hf_ftam_Relational_Comparision_less_than_matches,
3592 &hf_ftam_Relational_Comparision_greater_than_matches,
3593 NULL
3596 static int
3597 dissect_ftam_Relational_Comparision(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3598 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
3599 Relational_Comparision_bits, 4, hf_index, ett_ftam_Relational_Comparision,
3600 NULL);
3602 return offset;
3606 static const ber_sequence_t Integer_Pattern_sequence[] = {
3607 { &hf_ftam_relational_comparision, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Relational_Comparision },
3608 { &hf_ftam_integer_value , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
3609 { NULL, 0, 0, 0, NULL }
3612 static int
3613 dissect_ftam_Integer_Pattern(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3614 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3615 Integer_Pattern_sequence, hf_index, ett_ftam_Integer_Pattern);
3617 return offset;
3622 static int
3623 dissect_ftam_BIT_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3624 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
3625 NULL, 0, hf_index, -1,
3626 NULL);
3628 return offset;
3632 static const ber_sequence_t Bitstring_Pattern_sequence[] = {
3633 { &hf_ftam_equality_comparision, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Equality_Comparision },
3634 { &hf_ftam_match_bitstring, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_BIT_STRING },
3635 { &hf_ftam_significance_bitstring, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ftam_BIT_STRING },
3636 { NULL, 0, 0, 0, NULL }
3639 static int
3640 dissect_ftam_Bitstring_Pattern(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3641 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3642 Bitstring_Pattern_sequence, hf_index, ett_ftam_Bitstring_Pattern);
3644 return offset;
3648 static const ber_sequence_t Object_Identifier_Pattern_sequence[] = {
3649 { &hf_ftam_equality_comparision, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Equality_Comparision },
3650 { &hf_ftam_object_identifier_value, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_OBJECT_IDENTIFIER },
3651 { NULL, 0, 0, 0, NULL }
3654 static int
3655 dissect_ftam_Object_Identifier_Pattern(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3656 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3657 Object_Identifier_Pattern_sequence, hf_index, ett_ftam_Object_Identifier_Pattern);
3659 return offset;
3663 static const ber_sequence_t T_constraint_set_abstract_Syntax_Pattern_sequence[] = {
3664 { &hf_ftam_constraint_Set_Pattern, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Object_Identifier_Pattern },
3665 { &hf_ftam_abstract_Syntax_Pattern, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Object_Identifier_Pattern },
3666 { NULL, 0, 0, 0, NULL }
3669 static int
3670 dissect_ftam_T_constraint_set_abstract_Syntax_Pattern(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3671 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3672 T_constraint_set_abstract_Syntax_Pattern_sequence, hf_index, ett_ftam_T_constraint_set_abstract_Syntax_Pattern);
3674 return offset;
3678 static const value_string ftam_Contents_Type_Pattern_vals[] = {
3679 { 0, "document-type-Pattern" },
3680 { 1, "constraint-set-abstract-Syntax-Pattern" },
3681 { 0, NULL }
3684 static const ber_choice_t Contents_Type_Pattern_choice[] = {
3685 { 0, &hf_ftam_document_type_Pattern, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Object_Identifier_Pattern },
3686 { 1, &hf_ftam_constraint_set_abstract_Syntax_Pattern, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_T_constraint_set_abstract_Syntax_Pattern },
3687 { 0, NULL, 0, 0, 0, NULL }
3690 static int
3691 dissect_ftam_Contents_Type_Pattern(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3692 offset = dissect_ber_choice(actx, tree, tvb, offset,
3693 Contents_Type_Pattern_choice, hf_index, ett_ftam_Contents_Type_Pattern,
3694 NULL);
3696 return offset;
3700 static const ber_sequence_t Date_and_Time_Pattern_sequence[] = {
3701 { &hf_ftam_relational_camparision, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Equality_Comparision },
3702 { &hf_ftam_time_and_date_value, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_GeneralizedTime },
3703 { NULL, 0, 0, 0, NULL }
3706 static int
3707 dissect_ftam_Date_and_Time_Pattern(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3708 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3709 Date_and_Time_Pattern_sequence, hf_index, ett_ftam_Date_and_Time_Pattern);
3711 return offset;
3716 static int
3717 dissect_ftam_User_Identity_Pattern(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3718 offset = dissect_ftam_String_Pattern(implicit_tag, tvb, offset, actx, tree, hf_index);
3720 return offset;
3724 static const ber_sequence_t Boolean_Pattern_sequence[] = {
3725 { &hf_ftam_equality_comparision, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Equality_Comparision },
3726 { &hf_ftam_boolean_value , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_BOOLEAN },
3727 { NULL, 0, 0, 0, NULL }
3730 static int
3731 dissect_ftam_Boolean_Pattern(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3732 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3733 Boolean_Pattern_sequence, hf_index, ett_ftam_Boolean_Pattern);
3735 return offset;
3740 static int
3741 dissect_ftam_T_attribute_extension_attribute_identifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3742 offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
3744 return offset;
3749 static int
3750 dissect_ftam_T_extension_attribute_Pattern(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3751 if (actx->external.direct_reference) {
3752 offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL);
3756 return offset;
3760 static const ber_sequence_t T_extension_set_attribute_Patterns_item_sequence[] = {
3761 { &hf_ftam_attribute_extension_attribute_identifier, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_ftam_T_attribute_extension_attribute_identifier },
3762 { &hf_ftam_extension_attribute_Pattern, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_ftam_T_extension_attribute_Pattern },
3763 { NULL, 0, 0, 0, NULL }
3766 static int
3767 dissect_ftam_T_extension_set_attribute_Patterns_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3768 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3769 T_extension_set_attribute_Patterns_item_sequence, hf_index, ett_ftam_T_extension_set_attribute_Patterns_item);
3771 return offset;
3775 static const ber_sequence_t T_extension_set_attribute_Patterns_sequence_of[1] = {
3776 { &hf_ftam_extension_set_attribute_Patterns_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ftam_T_extension_set_attribute_Patterns_item },
3779 static int
3780 dissect_ftam_T_extension_set_attribute_Patterns(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3781 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3782 T_extension_set_attribute_Patterns_sequence_of, hf_index, ett_ftam_T_extension_set_attribute_Patterns);
3784 return offset;
3788 static const ber_sequence_t Attribute_Extensions_Pattern_item_sequence[] = {
3789 { &hf_ftam_extension_set_identifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Extension_Set_Identifier },
3790 { &hf_ftam_extension_set_attribute_Patterns, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_T_extension_set_attribute_Patterns },
3791 { NULL, 0, 0, 0, NULL }
3794 static int
3795 dissect_ftam_Attribute_Extensions_Pattern_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3796 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3797 Attribute_Extensions_Pattern_item_sequence, hf_index, ett_ftam_Attribute_Extensions_Pattern_item);
3799 return offset;
3803 static const ber_sequence_t Attribute_Extensions_Pattern_sequence_of[1] = {
3804 { &hf_ftam_Attribute_Extensions_Pattern_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ftam_Attribute_Extensions_Pattern_item },
3807 static int
3808 dissect_ftam_Attribute_Extensions_Pattern(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3809 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3810 Attribute_Extensions_Pattern_sequence_of, hf_index, ett_ftam_Attribute_Extensions_Pattern);
3812 return offset;
3816 static const value_string ftam_AND_Set_item_vals[] = {
3817 { 0, "pathname-Pattern" },
3818 { 18, "object-type-Pattern" },
3819 { 1, "permitted-actions-Pattern" },
3820 { 2, "contents-type-Pattern" },
3821 { 19, "linked-Object-Pattern" },
3822 { 23, "child-objects-Pattern" },
3823 { 20, "primaty-pathname-Pattern" },
3824 { 3, "storage-account-Pattern" },
3825 { 4, "date-and-time-of-creation-Pattern" },
3826 { 5, "date-and-time-of-last-modification-Pattern" },
3827 { 6, "date-and-time-of-last-read-access-Pattern" },
3828 { 7, "date-and-time-of-last-attribute-modification-Pattern" },
3829 { 8, "identity-of-creator-Pattern" },
3830 { 9, "identity-of-last-modifier-Pattern" },
3831 { 10, "identity-of-last-reader-Pattern" },
3832 { 11, "identity-of-last-attribute-modifier-Pattern" },
3833 { 12, "object-availabiiity-Pattern" },
3834 { 13, "object-size-Pattern" },
3835 { 14, "future-object-size-Pattern" },
3836 { 16, "legal-quailfication-Pattern" },
3837 { 22, "attribute-extensions-pattern" },
3838 { 0, NULL }
3841 static const ber_choice_t AND_Set_item_choice[] = {
3842 { 0, &hf_ftam_pathname_Pattern, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Pathname_Pattern },
3843 { 18, &hf_ftam_object_type_Pattern, BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_ftam_Integer_Pattern },
3844 { 1, &hf_ftam_permitted_actions_Pattern, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_Bitstring_Pattern },
3845 { 2, &hf_ftam_contents_type_Pattern, BER_CLASS_CON, 2, 0, dissect_ftam_Contents_Type_Pattern },
3846 { 19, &hf_ftam_linked_Object_Pattern, BER_CLASS_CON, 19, BER_FLAGS_IMPLTAG, dissect_ftam_Pathname_Pattern },
3847 { 23, &hf_ftam_child_objects_Pattern, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_ftam_Pathname_Pattern },
3848 { 20, &hf_ftam_primaty_pathname_Pattern, BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_ftam_Pathname_Pattern },
3849 { 3, &hf_ftam_storage_account_Pattern, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_ftam_String_Pattern },
3850 { 4, &hf_ftam_date_and_time_of_creation_Pattern, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_ftam_Date_and_Time_Pattern },
3851 { 5, &hf_ftam_date_and_time_of_last_modification_Pattern, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_ftam_Date_and_Time_Pattern },
3852 { 6, &hf_ftam_date_and_time_of_last_read_access_Pattern, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_ftam_Date_and_Time_Pattern },
3853 { 7, &hf_ftam_date_and_time_of_last_attribute_modification_Pattern, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_ftam_Date_and_Time_Pattern },
3854 { 8, &hf_ftam_identity_of_creator_Pattern, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_ftam_User_Identity_Pattern },
3855 { 9, &hf_ftam_identity_of_last_modifier_Pattern, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_ftam_User_Identity_Pattern },
3856 { 10, &hf_ftam_identity_of_last_reader_Pattern, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_ftam_User_Identity_Pattern },
3857 { 11, &hf_ftam_identity_of_last_attribute_modifier_Pattern, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_ftam_User_Identity_Pattern },
3858 { 12, &hf_ftam_object_availabiiity_Pattern, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_ftam_Boolean_Pattern },
3859 { 13, &hf_ftam_object_size_Pattern, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_ftam_Integer_Pattern },
3860 { 14, &hf_ftam_future_object_size_Pattern, BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_ftam_Integer_Pattern },
3861 { 16, &hf_ftam_legal_quailfication_Pattern, BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_ftam_String_Pattern },
3862 { 22, &hf_ftam_attribute_extensions_pattern, BER_CLASS_CON, 22, BER_FLAGS_IMPLTAG, dissect_ftam_Attribute_Extensions_Pattern },
3863 { 0, NULL, 0, 0, 0, NULL }
3866 static int
3867 dissect_ftam_AND_Set_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3868 offset = dissect_ber_choice(actx, tree, tvb, offset,
3869 AND_Set_item_choice, hf_index, ett_ftam_AND_Set_item,
3870 NULL);
3872 return offset;
3876 static const ber_sequence_t AND_Set_sequence_of[1] = {
3877 { &hf_ftam_AND_Set_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ftam_AND_Set_item },
3880 static int
3881 dissect_ftam_AND_Set(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3882 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3883 AND_Set_sequence_of, hf_index, ett_ftam_AND_Set);
3885 return offset;
3889 static const ber_sequence_t OR_Set_sequence_of[1] = {
3890 { &hf_ftam_OR_Set_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ftam_AND_Set },
3893 static int
3894 dissect_ftam_OR_Set(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3895 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3896 OR_Set_sequence_of, hf_index, ett_ftam_OR_Set);
3898 return offset;
3903 static int
3904 dissect_ftam_Attribute_Value_Assertions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3905 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3906 hf_index, BER_CLASS_APP, 26, true, dissect_ftam_OR_Set);
3908 return offset;
3912 static const value_string ftam_T_retrieval_scope_vals[] = {
3913 { 0, "child" },
3914 { 1, "all" },
3915 { 0, NULL }
3919 static int
3920 dissect_ftam_T_retrieval_scope(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3921 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3922 NULL);
3924 return offset;
3928 static const ber_sequence_t T__untag_item_sequence[] = {
3929 { &hf_ftam_root_directory , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_ftam_Pathname_Attribute },
3930 { &hf_ftam_retrieval_scope, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_T_retrieval_scope },
3931 { NULL, 0, 0, 0, NULL }
3934 static int
3935 dissect_ftam_T__untag_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3936 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3937 T__untag_item_sequence, hf_index, ett_ftam_T__untag_item);
3939 return offset;
3943 static const ber_sequence_t Scope_U_sequence_of[1] = {
3944 { &hf_ftam__untag_item_03 , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ftam_T__untag_item },
3947 static int
3948 dissect_ftam_Scope_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3949 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3950 Scope_U_sequence_of, hf_index, ett_ftam_Scope_U);
3952 return offset;
3957 static int
3958 dissect_ftam_Scope(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3959 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3960 hf_index, BER_CLASS_APP, 28, true, dissect_ftam_Scope_U);
3962 return offset;
3966 static const ber_sequence_t F_LIST_request_sequence[] = {
3967 { &hf_ftam_attribute_value_asset_tions, BER_CLASS_APP, 26, BER_FLAGS_NOOWNTAG, dissect_ftam_Attribute_Value_Assertions },
3968 { &hf_ftam_scope , BER_CLASS_APP, 28, BER_FLAGS_NOOWNTAG, dissect_ftam_Scope },
3969 { &hf_ftam_access_passwords, BER_CLASS_APP, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Access_Passwords },
3970 { &hf_ftam_path_access_passwords, BER_CLASS_APP, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Path_Access_Passwords },
3971 { &hf_ftam_attribute_names, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Attribute_Names },
3972 { &hf_ftam_attribute_extension_names, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Attribute_Extension_Names },
3973 { NULL, 0, 0, 0, NULL }
3976 static int
3977 dissect_ftam_F_LIST_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3978 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3979 F_LIST_request_sequence, hf_index, ett_ftam_F_LIST_request);
3981 return offset;
3985 static const ber_sequence_t SEQUENCE_OF_Read_Attributes_sequence_of[1] = {
3986 { &hf_ftam__untag_item_04 , BER_CLASS_APP, 18, BER_FLAGS_NOOWNTAG, dissect_ftam_Read_Attributes },
3989 static int
3990 dissect_ftam_SEQUENCE_OF_Read_Attributes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3991 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3992 SEQUENCE_OF_Read_Attributes_sequence_of, hf_index, ett_ftam_SEQUENCE_OF_Read_Attributes);
3994 return offset;
3999 static int
4000 dissect_ftam_Objects_Attributes_List(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4001 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4002 hf_index, BER_CLASS_APP, 25, true, dissect_ftam_SEQUENCE_OF_Read_Attributes);
4004 return offset;
4008 static const ber_sequence_t F_LIST_response_sequence[] = {
4009 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
4010 { &hf_ftam_objects_attributes_list, BER_CLASS_APP, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Objects_Attributes_List },
4011 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
4012 { NULL, 0, 0, 0, NULL }
4015 static int
4016 dissect_ftam_F_LIST_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4017 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4018 F_LIST_response_sequence, hf_index, ett_ftam_F_LIST_response);
4020 return offset;
4024 static const ber_sequence_t F_GROUP_SELECT_request_sequence[] = {
4025 { &hf_ftam_attribute_value_assertions, BER_CLASS_APP, 26, BER_FLAGS_NOOWNTAG, dissect_ftam_Attribute_Value_Assertions },
4026 { &hf_ftam_requested_access, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_ftam_Access_Request },
4027 { &hf_ftam_access_passwords, BER_CLASS_APP, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Access_Passwords },
4028 { &hf_ftam_path_access_passwords, BER_CLASS_APP, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Path_Access_Passwords },
4029 { &hf_ftam_concurrency_control, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Concurrency_Control },
4030 { &hf_ftam_maximum_set_size, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
4031 { &hf_ftam_scope , BER_CLASS_APP, 28, BER_FLAGS_NOOWNTAG, dissect_ftam_Scope },
4032 { &hf_ftam_account , BER_CLASS_APP, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Account },
4033 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
4034 { NULL, 0, 0, 0, NULL }
4037 static int
4038 dissect_ftam_F_GROUP_SELECT_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4039 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4040 F_GROUP_SELECT_request_sequence, hf_index, ett_ftam_F_GROUP_SELECT_request);
4042 return offset;
4046 static const ber_sequence_t F_GROUP_SELECT_response_sequence[] = {
4047 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
4048 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
4049 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
4050 { NULL, 0, 0, 0, NULL }
4053 static int
4054 dissect_ftam_F_GROUP_SELECT_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4055 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4056 F_GROUP_SELECT_response_sequence, hf_index, ett_ftam_F_GROUP_SELECT_response);
4058 return offset;
4062 static const value_string ftam_Request_Operation_Result_U_vals[] = {
4063 { 0, "summary" },
4064 { 1, "fiii-list" },
4065 { 0, NULL }
4069 static int
4070 dissect_ftam_Request_Operation_Result_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4071 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4072 NULL);
4074 return offset;
4079 static int
4080 dissect_ftam_Request_Operation_Result(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4081 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4082 hf_index, BER_CLASS_APP, 31, true, dissect_ftam_Request_Operation_Result_U);
4084 return offset;
4088 static const ber_sequence_t F_GROUP_DELETE_request_sequence[] = {
4089 { &hf_ftam_request_Operation_result, BER_CLASS_APP, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Request_Operation_Result },
4090 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
4091 { NULL, 0, 0, 0, NULL }
4094 static int
4095 dissect_ftam_F_GROUP_DELETE_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4096 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4097 F_GROUP_DELETE_request_sequence, hf_index, ett_ftam_F_GROUP_DELETE_request);
4099 return offset;
4103 static const ber_sequence_t SEQUENCE_OF_Pathname_sequence_of[1] = {
4104 { &hf_ftam_success_Object_names_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ftam_Pathname },
4107 static int
4108 dissect_ftam_SEQUENCE_OF_Pathname(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4109 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4110 SEQUENCE_OF_Pathname_sequence_of, hf_index, ett_ftam_SEQUENCE_OF_Pathname);
4112 return offset;
4116 static const value_string ftam_Operation_Result_U_vals[] = {
4117 { 0, "success-Object-count" },
4118 { 1, "success-Object-names" },
4119 { 0, NULL }
4122 static const ber_choice_t Operation_Result_U_choice[] = {
4123 { 0, &hf_ftam_success_Object_count, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_INTEGER },
4124 { 1, &hf_ftam_success_Object_names, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_SEQUENCE_OF_Pathname },
4125 { 0, NULL, 0, 0, 0, NULL }
4128 static int
4129 dissect_ftam_Operation_Result_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4130 offset = dissect_ber_choice(actx, tree, tvb, offset,
4131 Operation_Result_U_choice, hf_index, ett_ftam_Operation_Result_U,
4132 NULL);
4134 return offset;
4139 static int
4140 dissect_ftam_Operation_Result(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4141 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4142 hf_index, BER_CLASS_APP, 30, false, dissect_ftam_Operation_Result_U);
4144 return offset;
4148 static const ber_sequence_t F_GROUP_DELETE_response_sequence[] = {
4149 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
4150 { &hf_ftam_charging , BER_CLASS_APP, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Charging },
4151 { &hf_ftam_operation_result, BER_CLASS_APP, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Operation_Result },
4152 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
4153 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
4154 { NULL, 0, 0, 0, NULL }
4157 static int
4158 dissect_ftam_F_GROUP_DELETE_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4159 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4160 F_GROUP_DELETE_response_sequence, hf_index, ett_ftam_F_GROUP_DELETE_response);
4162 return offset;
4166 static const value_string ftam_Error_Action_vals[] = {
4167 { 0, "terminate" },
4168 { 1, "continue" },
4169 { 0, NULL }
4173 static int
4174 dissect_ftam_Error_Action(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4175 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4176 NULL);
4178 return offset;
4182 static const ber_sequence_t F_GROUP_MOVE_request_sequence[] = {
4183 { &hf_ftam_destination_file_directory, BER_CLASS_APP, 24, BER_FLAGS_NOOWNTAG, dissect_ftam_Destination_File_Directory },
4184 { &hf_ftam_override , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Override },
4185 { &hf_ftam_error_action , BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_ftam_Error_Action },
4186 { &hf_ftam_create_password, BER_CLASS_APP, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Password },
4187 { &hf_ftam_access_passwords, BER_CLASS_APP, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Access_Passwords },
4188 { &hf_ftam_path_access_passwords, BER_CLASS_APP, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Path_Access_Passwords },
4189 { &hf_ftam_request_Operation_result, BER_CLASS_APP, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Request_Operation_Result },
4190 { &hf_ftam_attributes , BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Change_Attributes },
4191 { NULL, 0, 0, 0, NULL }
4194 static int
4195 dissect_ftam_F_GROUP_MOVE_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4196 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4197 F_GROUP_MOVE_request_sequence, hf_index, ett_ftam_F_GROUP_MOVE_request);
4199 return offset;
4203 static const ber_sequence_t F_GROUP_MOVE_response_sequence[] = {
4204 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
4205 { &hf_ftam_destination_file_directory, BER_CLASS_APP, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Destination_File_Directory },
4206 { &hf_ftam_operation_result, BER_CLASS_APP, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Operation_Result },
4207 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
4208 { NULL, 0, 0, 0, NULL }
4211 static int
4212 dissect_ftam_F_GROUP_MOVE_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4213 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4214 F_GROUP_MOVE_response_sequence, hf_index, ett_ftam_F_GROUP_MOVE_response);
4216 return offset;
4220 static const ber_sequence_t F_GROUP_COPY_request_sequence[] = {
4221 { &hf_ftam_destination_file_directory, BER_CLASS_APP, 24, BER_FLAGS_NOOWNTAG, dissect_ftam_Destination_File_Directory },
4222 { &hf_ftam_override , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Override },
4223 { &hf_ftam_error_action , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_Error_Action },
4224 { &hf_ftam_create_password, BER_CLASS_APP, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Password },
4225 { &hf_ftam_access_passwords, BER_CLASS_APP, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Access_Passwords },
4226 { &hf_ftam_path_access_passwords, BER_CLASS_APP, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Path_Access_Passwords },
4227 { &hf_ftam_request_Operation_result, BER_CLASS_APP, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Request_Operation_Result },
4228 { &hf_ftam_attributes , BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Change_Attributes },
4229 { NULL, 0, 0, 0, NULL }
4232 static int
4233 dissect_ftam_F_GROUP_COPY_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4234 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4235 F_GROUP_COPY_request_sequence, hf_index, ett_ftam_F_GROUP_COPY_request);
4237 return offset;
4241 static const ber_sequence_t F_GROUP_COPY_response_sequence[] = {
4242 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
4243 { &hf_ftam_destination_file_directory, BER_CLASS_APP, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Destination_File_Directory },
4244 { &hf_ftam_operation_result, BER_CLASS_APP, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Operation_Result },
4245 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
4246 { NULL, 0, 0, 0, NULL }
4249 static int
4250 dissect_ftam_F_GROUP_COPY_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4251 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4252 F_GROUP_COPY_response_sequence, hf_index, ett_ftam_F_GROUP_COPY_response);
4254 return offset;
4258 static const ber_sequence_t F_GROUP_LIST_request_sequence[] = {
4259 { &hf_ftam_attribute_names, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Attribute_Names },
4260 { &hf_ftam_attribute_extension_names, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Attribute_Extension_Names },
4261 { NULL, 0, 0, 0, NULL }
4264 static int
4265 dissect_ftam_F_GROUP_LIST_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4266 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4267 F_GROUP_LIST_request_sequence, hf_index, ett_ftam_F_GROUP_LIST_request);
4269 return offset;
4273 static const ber_sequence_t F_GROUP_LIST_response_sequence[] = {
4274 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
4275 { &hf_ftam_objects_attributes_list, BER_CLASS_APP, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Objects_Attributes_List },
4276 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
4277 { NULL, 0, 0, 0, NULL }
4280 static int
4281 dissect_ftam_F_GROUP_LIST_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4282 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4283 F_GROUP_LIST_response_sequence, hf_index, ett_ftam_F_GROUP_LIST_response);
4285 return offset;
4289 static const ber_sequence_t F_GROUP_CHANGE_ATTRIB_request_sequence[] = {
4290 { &hf_ftam_attributes , BER_CLASS_APP, 8, BER_FLAGS_NOOWNTAG, dissect_ftam_Change_Attributes },
4291 { &hf_ftam_error_action , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ftam_Error_Action },
4292 { &hf_ftam_request_Operation_result, BER_CLASS_APP, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Request_Operation_Result },
4293 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
4294 { NULL, 0, 0, 0, NULL }
4297 static int
4298 dissect_ftam_F_GROUP_CHANGE_ATTRIB_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4299 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4300 F_GROUP_CHANGE_ATTRIB_request_sequence, hf_index, ett_ftam_F_GROUP_CHANGE_ATTRIB_request);
4302 return offset;
4306 static const ber_sequence_t F_GROUP_CHANGE_ATTRIB_response_sequence[] = {
4307 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
4308 { &hf_ftam_operation_result, BER_CLASS_APP, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Operation_Result },
4309 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
4310 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
4311 { NULL, 0, 0, 0, NULL }
4314 static int
4315 dissect_ftam_F_GROUP_CHANGE_ATTRIB_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4316 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4317 F_GROUP_CHANGE_ATTRIB_response_sequence, hf_index, ett_ftam_F_GROUP_CHANGE_ATTRIB_response);
4319 return offset;
4323 static const ber_sequence_t F_SELECT_ANOTHER_request_sequence[] = {
4324 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
4325 { NULL, 0, 0, 0, NULL }
4328 static int
4329 dissect_ftam_F_SELECT_ANOTHER_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4330 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4331 F_SELECT_ANOTHER_request_sequence, hf_index, ett_ftam_F_SELECT_ANOTHER_request);
4333 return offset;
4337 static const ber_sequence_t F_SELECT_ANOTHER_response_sequence[] = {
4338 { &hf_ftam_state_result , BER_CLASS_APP, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_State_Result },
4339 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
4340 { &hf_ftam_last_member_indicator, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_BOOLEAN },
4341 { &hf_ftam_referent_indicator, BER_CLASS_APP, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Referent_Indicator },
4342 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
4343 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
4344 { NULL, 0, 0, 0, NULL }
4347 static int
4348 dissect_ftam_F_SELECT_ANOTHER_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4349 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4350 F_SELECT_ANOTHER_response_sequence, hf_index, ett_ftam_F_SELECT_ANOTHER_response);
4352 return offset;
4356 static const ber_sequence_t F_CREATE_DIRECTORY_request_sequence[] = {
4357 { &hf_ftam_initial_attributes, BER_CLASS_APP, 12, BER_FLAGS_NOOWNTAG, dissect_ftam_Create_Attributes },
4358 { &hf_ftam_create_password, BER_CLASS_APP, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Password },
4359 { &hf_ftam_requested_access, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_ftam_Access_Request },
4360 { &hf_ftam_shared_ASE_infonnation, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
4361 { &hf_ftam_account , BER_CLASS_APP, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Account },
4362 { NULL, 0, 0, 0, NULL }
4365 static int
4366 dissect_ftam_F_CREATE_DIRECTORY_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4367 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4368 F_CREATE_DIRECTORY_request_sequence, hf_index, ett_ftam_F_CREATE_DIRECTORY_request);
4370 return offset;
4374 static const ber_sequence_t F_CREATE_DIRECTORY_response_sequence[] = {
4375 { &hf_ftam_state_result , BER_CLASS_APP, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_State_Result },
4376 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
4377 { &hf_ftam_initial_attributes, BER_CLASS_APP, 12, BER_FLAGS_NOOWNTAG, dissect_ftam_Create_Attributes },
4378 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
4379 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
4380 { NULL, 0, 0, 0, NULL }
4383 static int
4384 dissect_ftam_F_CREATE_DIRECTORY_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4385 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4386 F_CREATE_DIRECTORY_response_sequence, hf_index, ett_ftam_F_CREATE_DIRECTORY_response);
4388 return offset;
4392 static const ber_sequence_t F_LINK_request_sequence[] = {
4393 { &hf_ftam_initial_attributes, BER_CLASS_APP, 12, BER_FLAGS_NOOWNTAG, dissect_ftam_Create_Attributes },
4394 { &hf_ftam_target_object , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ftam_Pathname_Attribute },
4395 { &hf_ftam_create_password, BER_CLASS_APP, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Password },
4396 { &hf_ftam_requested_access, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_ftam_Access_Request },
4397 { &hf_ftam_access_passwords, BER_CLASS_APP, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Access_Passwords },
4398 { &hf_ftam_path_access_passwords, BER_CLASS_APP, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Path_Access_Passwords },
4399 { &hf_ftam_concurrency_control, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Concurrency_Control },
4400 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
4401 { &hf_ftam_account , BER_CLASS_APP, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Account },
4402 { NULL, 0, 0, 0, NULL }
4405 static int
4406 dissect_ftam_F_LINK_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4407 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4408 F_LINK_request_sequence, hf_index, ett_ftam_F_LINK_request);
4410 return offset;
4414 static const ber_sequence_t F_LINK_response_sequence[] = {
4415 { &hf_ftam_state_result , BER_CLASS_APP, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_State_Result },
4416 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
4417 { &hf_ftam_initial_attributes, BER_CLASS_APP, 12, BER_FLAGS_NOOWNTAG, dissect_ftam_Create_Attributes },
4418 { &hf_ftam_target_Object , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ftam_Pathname_Attribute },
4419 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
4420 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
4421 { NULL, 0, 0, 0, NULL }
4424 static int
4425 dissect_ftam_F_LINK_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4426 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4427 F_LINK_response_sequence, hf_index, ett_ftam_F_LINK_response);
4429 return offset;
4433 static const ber_sequence_t F_UNLINK_request_sequence[] = {
4434 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
4435 { NULL, 0, 0, 0, NULL }
4438 static int
4439 dissect_ftam_F_UNLINK_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4440 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4441 F_UNLINK_request_sequence, hf_index, ett_ftam_F_UNLINK_request);
4443 return offset;
4447 static const ber_sequence_t F_UNLINK_response_sequence[] = {
4448 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
4449 { &hf_ftam_shared_ASE_information, BER_CLASS_APP, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Shared_ASE_Information },
4450 { &hf_ftam_charging , BER_CLASS_APP, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Charging },
4451 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
4452 { NULL, 0, 0, 0, NULL }
4455 static int
4456 dissect_ftam_F_UNLINK_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4457 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4458 F_UNLINK_response_sequence, hf_index, ett_ftam_F_UNLINK_response);
4460 return offset;
4464 static const ber_sequence_t F_READ_LINK_ATTRIB_request_sequence[] = {
4465 { &hf_ftam_attribute_names, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ftam_Attribute_Names },
4466 { &hf_ftam_attribute_extension_names, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Attribute_Extension_Names },
4467 { NULL, 0, 0, 0, NULL }
4470 static int
4471 dissect_ftam_F_READ_LINK_ATTRIB_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4472 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4473 F_READ_LINK_ATTRIB_request_sequence, hf_index, ett_ftam_F_READ_LINK_ATTRIB_request);
4475 return offset;
4479 static const ber_sequence_t F_READ_LINK_ATTRIB_response_sequence[] = {
4480 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
4481 { &hf_ftam_read_link_attributes, BER_CLASS_APP, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Read_Attributes },
4482 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
4483 { NULL, 0, 0, 0, NULL }
4486 static int
4487 dissect_ftam_F_READ_LINK_ATTRIB_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4488 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4489 F_READ_LINK_ATTRIB_response_sequence, hf_index, ett_ftam_F_READ_LINK_ATTRIB_response);
4491 return offset;
4495 static const ber_sequence_t F_CHANGE_LINK_ATTRIB_request_sequence[] = {
4496 { &hf_ftam_attributes , BER_CLASS_APP, 8, BER_FLAGS_NOOWNTAG, dissect_ftam_Change_Attributes },
4497 { NULL, 0, 0, 0, NULL }
4500 static int
4501 dissect_ftam_F_CHANGE_LINK_ATTRIB_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4502 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4503 F_CHANGE_LINK_ATTRIB_request_sequence, hf_index, ett_ftam_F_CHANGE_LINK_ATTRIB_request);
4505 return offset;
4509 static const ber_sequence_t F_CHANGE_LINK_ATTRIB_response_sequence[] = {
4510 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
4511 { &hf_ftam_attributes , BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Change_Attributes },
4512 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
4513 { NULL, 0, 0, 0, NULL }
4516 static int
4517 dissect_ftam_F_CHANGE_LINK_ATTRIB_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4518 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4519 F_CHANGE_LINK_ATTRIB_response_sequence, hf_index, ett_ftam_F_CHANGE_LINK_ATTRIB_response);
4521 return offset;
4525 static const ber_sequence_t F_MOVE_request_sequence[] = {
4526 { &hf_ftam_destination_file_directory, BER_CLASS_APP, 24, BER_FLAGS_NOOWNTAG, dissect_ftam_Destination_File_Directory },
4527 { &hf_ftam_override , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Override },
4528 { &hf_ftam_create_password, BER_CLASS_APP, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Password },
4529 { &hf_ftam_access_passwords, BER_CLASS_APP, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Access_Passwords },
4530 { &hf_ftam_path_access_passwords, BER_CLASS_APP, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Path_Access_Passwords },
4531 { &hf_ftam_attributes , BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Change_Attributes },
4532 { NULL, 0, 0, 0, NULL }
4535 static int
4536 dissect_ftam_F_MOVE_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4537 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4538 F_MOVE_request_sequence, hf_index, ett_ftam_F_MOVE_request);
4540 return offset;
4544 static const ber_sequence_t F_MOVE_response_sequence[] = {
4545 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
4546 { &hf_ftam_destination_file_directory, BER_CLASS_APP, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Destination_File_Directory },
4547 { &hf_ftam_attributes , BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Change_Attributes },
4548 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
4549 { NULL, 0, 0, 0, NULL }
4552 static int
4553 dissect_ftam_F_MOVE_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4554 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4555 F_MOVE_response_sequence, hf_index, ett_ftam_F_MOVE_response);
4557 return offset;
4561 static const ber_sequence_t F_COPY_request_sequence[] = {
4562 { &hf_ftam_destination_file_directory, BER_CLASS_APP, 24, BER_FLAGS_NOOWNTAG, dissect_ftam_Destination_File_Directory },
4563 { &hf_ftam_override , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ftam_Override },
4564 { &hf_ftam_create_password, BER_CLASS_APP, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Password },
4565 { &hf_ftam_access_passwords, BER_CLASS_APP, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Access_Passwords },
4566 { &hf_ftam_path_access_passwords, BER_CLASS_APP, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Path_Access_Passwords },
4567 { &hf_ftam_attributes , BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Change_Attributes },
4568 { NULL, 0, 0, 0, NULL }
4571 static int
4572 dissect_ftam_F_COPY_request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4573 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4574 F_COPY_request_sequence, hf_index, ett_ftam_F_COPY_request);
4576 return offset;
4580 static const ber_sequence_t F_COPY_response_sequence[] = {
4581 { &hf_ftam_action_result , BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Action_Result },
4582 { &hf_ftam_destination_file_directory, BER_CLASS_APP, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Destination_File_Directory },
4583 { &hf_ftam_attributes , BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Change_Attributes },
4584 { &hf_ftam_diagnostic , BER_CLASS_APP, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ftam_Diagnostic },
4585 { NULL, 0, 0, 0, NULL }
4588 static int
4589 dissect_ftam_F_COPY_response(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4590 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4591 F_COPY_response_sequence, hf_index, ett_ftam_F_COPY_response);
4593 return offset;
4597 static const value_string ftam_FSM_PDU_vals[] = {
4598 { 41, "f-Change-prefix-request" },
4599 { 42, "f-Change-prefix-response" },
4600 { 43, "f-list-request" },
4601 { 44, "f-list-response" },
4602 { 45, "f-group-select-request" },
4603 { 46, "f-group-select-response" },
4604 { 47, "f-group-delete-request" },
4605 { 48, "f-group-delete-response" },
4606 { 49, "f-group-move-request" },
4607 { 50, "f-group-move-response" },
4608 { 51, "f-group-copy-request" },
4609 { 52, "f-group-copy-response" },
4610 { 53, "f-group-list-request" },
4611 { 54, "f-group-list-response" },
4612 { 55, "f-group-Change-attrib-request" },
4613 { 56, "f-group-Change-attrib-response" },
4614 { 57, "f-select-another-request" },
4615 { 58, "f-select-another-response" },
4616 { 59, "f-create-directory-request" },
4617 { 60, "f-create-directory-response" },
4618 { 61, "f-link-request" },
4619 { 62, "f-link-response" },
4620 { 63, "f-unlink-request" },
4621 { 64, "f-unlink-response" },
4622 { 65, "f-read-link-attrib-request" },
4623 { 66, "f-read-link-attrib-response" },
4624 { 67, "f-Change-link-attrib-request" },
4625 { 68, "f-Change-Iink-attrib-response" },
4626 { 69, "f-move-request" },
4627 { 70, "f-move-response" },
4628 { 71, "f-copy-request" },
4629 { 72, "f-copy-response" },
4630 { 0, NULL }
4633 static const ber_choice_t FSM_PDU_choice[] = {
4634 { 41, &hf_ftam_f_Change_prefix_request, BER_CLASS_CON, 41, BER_FLAGS_IMPLTAG, dissect_ftam_F_CHANGE_PREFIX_request },
4635 { 42, &hf_ftam_f_Change_prefix_response, BER_CLASS_CON, 42, BER_FLAGS_IMPLTAG, dissect_ftam_F_CHANGE_PREFIX_response },
4636 { 43, &hf_ftam_f_list_request , BER_CLASS_CON, 43, BER_FLAGS_IMPLTAG, dissect_ftam_F_LIST_request },
4637 { 44, &hf_ftam_f_list_response, BER_CLASS_CON, 44, BER_FLAGS_IMPLTAG, dissect_ftam_F_LIST_response },
4638 { 45, &hf_ftam_f_group_select_request, BER_CLASS_CON, 45, BER_FLAGS_IMPLTAG, dissect_ftam_F_GROUP_SELECT_request },
4639 { 46, &hf_ftam_f_group_select_response, BER_CLASS_CON, 46, BER_FLAGS_IMPLTAG, dissect_ftam_F_GROUP_SELECT_response },
4640 { 47, &hf_ftam_f_group_delete_request, BER_CLASS_CON, 47, BER_FLAGS_IMPLTAG, dissect_ftam_F_GROUP_DELETE_request },
4641 { 48, &hf_ftam_f_group_delete_response, BER_CLASS_CON, 48, BER_FLAGS_IMPLTAG, dissect_ftam_F_GROUP_DELETE_response },
4642 { 49, &hf_ftam_f_group_move_request, BER_CLASS_CON, 49, BER_FLAGS_IMPLTAG, dissect_ftam_F_GROUP_MOVE_request },
4643 { 50, &hf_ftam_f_group_move_response, BER_CLASS_CON, 50, BER_FLAGS_IMPLTAG, dissect_ftam_F_GROUP_MOVE_response },
4644 { 51, &hf_ftam_f_group_copy_request, BER_CLASS_CON, 51, BER_FLAGS_IMPLTAG, dissect_ftam_F_GROUP_COPY_request },
4645 { 52, &hf_ftam_f_group_copy_response, BER_CLASS_CON, 52, BER_FLAGS_IMPLTAG, dissect_ftam_F_GROUP_COPY_response },
4646 { 53, &hf_ftam_f_group_list_request, BER_CLASS_CON, 53, BER_FLAGS_IMPLTAG, dissect_ftam_F_GROUP_LIST_request },
4647 { 54, &hf_ftam_f_group_list_response, BER_CLASS_CON, 54, BER_FLAGS_IMPLTAG, dissect_ftam_F_GROUP_LIST_response },
4648 { 55, &hf_ftam_f_group_Change_attrib_request, BER_CLASS_CON, 55, BER_FLAGS_IMPLTAG, dissect_ftam_F_GROUP_CHANGE_ATTRIB_request },
4649 { 56, &hf_ftam_f_group_Change_attrib_response, BER_CLASS_CON, 56, BER_FLAGS_IMPLTAG, dissect_ftam_F_GROUP_CHANGE_ATTRIB_response },
4650 { 57, &hf_ftam_f_select_another_request, BER_CLASS_CON, 57, BER_FLAGS_IMPLTAG, dissect_ftam_F_SELECT_ANOTHER_request },
4651 { 58, &hf_ftam_f_select_another_response, BER_CLASS_CON, 58, BER_FLAGS_IMPLTAG, dissect_ftam_F_SELECT_ANOTHER_response },
4652 { 59, &hf_ftam_f_create_directory_request, BER_CLASS_CON, 59, BER_FLAGS_IMPLTAG, dissect_ftam_F_CREATE_DIRECTORY_request },
4653 { 60, &hf_ftam_f_create_directory_response, BER_CLASS_CON, 60, BER_FLAGS_IMPLTAG, dissect_ftam_F_CREATE_DIRECTORY_response },
4654 { 61, &hf_ftam_f_link_request , BER_CLASS_CON, 61, BER_FLAGS_IMPLTAG, dissect_ftam_F_LINK_request },
4655 { 62, &hf_ftam_f_link_response, BER_CLASS_CON, 62, BER_FLAGS_IMPLTAG, dissect_ftam_F_LINK_response },
4656 { 63, &hf_ftam_f_unlink_request, BER_CLASS_CON, 63, BER_FLAGS_IMPLTAG, dissect_ftam_F_UNLINK_request },
4657 { 64, &hf_ftam_f_unlink_response, BER_CLASS_CON, 64, BER_FLAGS_IMPLTAG, dissect_ftam_F_UNLINK_response },
4658 { 65, &hf_ftam_f_read_link_attrib_request, BER_CLASS_CON, 65, BER_FLAGS_IMPLTAG, dissect_ftam_F_READ_LINK_ATTRIB_request },
4659 { 66, &hf_ftam_f_read_link_attrib_response, BER_CLASS_CON, 66, BER_FLAGS_IMPLTAG, dissect_ftam_F_READ_LINK_ATTRIB_response },
4660 { 67, &hf_ftam_f_Change_link_attrib_request, BER_CLASS_CON, 67, BER_FLAGS_IMPLTAG, dissect_ftam_F_CHANGE_LINK_ATTRIB_request },
4661 { 68, &hf_ftam_f_Change_Iink_attrib_response, BER_CLASS_CON, 68, BER_FLAGS_IMPLTAG, dissect_ftam_F_CHANGE_LINK_ATTRIB_response },
4662 { 69, &hf_ftam_f_move_request , BER_CLASS_CON, 69, BER_FLAGS_IMPLTAG, dissect_ftam_F_MOVE_request },
4663 { 70, &hf_ftam_f_move_response, BER_CLASS_CON, 70, BER_FLAGS_IMPLTAG, dissect_ftam_F_MOVE_response },
4664 { 71, &hf_ftam_f_copy_request , BER_CLASS_CON, 71, BER_FLAGS_IMPLTAG, dissect_ftam_F_COPY_request },
4665 { 72, &hf_ftam_f_copy_response, BER_CLASS_CON, 72, BER_FLAGS_IMPLTAG, dissect_ftam_F_COPY_response },
4666 { 0, NULL, 0, 0, 0, NULL }
4669 static int
4670 dissect_ftam_FSM_PDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4671 int branch_taken;
4673 offset = dissect_ber_choice(actx, tree, tvb, offset,
4674 FSM_PDU_choice, hf_index, ett_ftam_FSM_PDU,
4675 &branch_taken);
4678 if( (branch_taken!=-1) && ftam_FSM_PDU_vals[branch_taken].strptr ){
4679 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s:", ftam_FSM_PDU_vals[branch_taken].strptr);
4684 return offset;
4688 static const ber_choice_t PDU_choice[] = {
4689 { 0, &hf_ftam_fTAM_Regime_PDU, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ftam_FTAM_Regime_PDU },
4690 { 1, &hf_ftam_file_PDU , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ftam_File_PDU },
4691 { 2, &hf_ftam_bulk_Data_PDU , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ftam_Bulk_Data_PDU },
4692 { 3, &hf_ftam_fSM_PDU , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ftam_FSM_PDU },
4693 { 0, NULL, 0, 0, 0, NULL }
4696 static int
4697 dissect_ftam_PDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4698 offset = dissect_ber_choice(actx, tree, tvb, offset,
4699 PDU_choice, hf_index, ett_ftam_PDU,
4700 NULL);
4702 return offset;
4707 * Dissect FTAM unstructured text
4709 static int
4710 dissect_ftam_unstructured_text(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *parent_tree, void* data _U_)
4712 proto_tree_add_item (parent_tree, hf_ftam_unstructured_text, tvb, 0, tvb_reported_length_remaining(tvb, 0), ENC_ASCII);
4713 return tvb_captured_length(tvb);
4717 * Dissect FTAM unstructured binary
4719 static int
4720 dissect_ftam_unstructured_binary(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *parent_tree, void* data _U_)
4722 proto_tree_add_item (parent_tree, hf_ftam_unstructured_binary, tvb, 0, tvb_reported_length_remaining(tvb, 0), ENC_NA);
4723 return tvb_captured_length(tvb);
4727 * Dissect FTAM PDUs inside a PPDU.
4729 static int
4730 dissect_ftam(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
4732 int offset = 0;
4733 int old_offset;
4734 proto_item *item=NULL;
4735 proto_tree *tree=NULL;
4736 asn1_ctx_t asn1_ctx;
4738 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
4740 if(parent_tree){
4741 item = proto_tree_add_item(parent_tree, proto_ftam, tvb, 0, -1, ENC_NA);
4742 tree = proto_item_add_subtree(item, ett_ftam);
4744 col_set_str(pinfo->cinfo, COL_PROTOCOL, "FTAM");
4745 col_clear(pinfo->cinfo, COL_INFO);
4747 while (tvb_reported_length_remaining(tvb, offset) > 0){
4748 old_offset=offset;
4749 offset=dissect_ftam_PDU(false, tvb, offset, &asn1_ctx, tree, -1);
4750 if(offset == old_offset){
4751 proto_tree_add_expert(tree, pinfo, &ei_ftam_zero_pdu, tvb, offset, -1);
4752 break;
4755 return tvb_captured_length(tvb);
4759 /*--- proto_register_ftam -------------------------------------------*/
4760 void proto_register_ftam(void) {
4762 /* List of fields */
4763 static hf_register_info hf[] =
4765 { &hf_ftam_unstructured_text,
4766 { "ISO FTAM unstructured text", "ftam.unstructured_text", FT_STRING,
4767 BASE_NONE, NULL, 0x0, NULL, HFILL } },
4768 { &hf_ftam_unstructured_binary,
4769 { "ISO FTAM unstructured binary", "ftam.unstructured_binary", FT_BYTES,
4770 BASE_NONE, NULL, 0x0, NULL, HFILL } },
4771 { &hf_ftam_fTAM_Regime_PDU,
4772 { "fTAM-Regime-PDU", "ftam.fTAM_Regime_PDU",
4773 FT_UINT32, BASE_DEC, VALS(ftam_FTAM_Regime_PDU_vals), 0,
4774 NULL, HFILL }},
4775 { &hf_ftam_file_PDU,
4776 { "file-PDU", "ftam.file_PDU",
4777 FT_UINT32, BASE_DEC, VALS(ftam_File_PDU_vals), 0,
4778 NULL, HFILL }},
4779 { &hf_ftam_bulk_Data_PDU,
4780 { "bulk-Data-PDU", "ftam.bulk_Data_PDU",
4781 FT_UINT32, BASE_DEC, VALS(ftam_Bulk_Data_PDU_vals), 0,
4782 NULL, HFILL }},
4783 { &hf_ftam_fSM_PDU,
4784 { "fSM-PDU", "ftam.fSM_PDU",
4785 FT_UINT32, BASE_DEC, VALS(ftam_FSM_PDU_vals), 0,
4786 NULL, HFILL }},
4787 { &hf_ftam_f_initialize_request,
4788 { "f-initialize-request", "ftam.f_initialize_request_element",
4789 FT_NONE, BASE_NONE, NULL, 0,
4790 NULL, HFILL }},
4791 { &hf_ftam_f_initialize_response,
4792 { "f-initialize-response", "ftam.f_initialize_response_element",
4793 FT_NONE, BASE_NONE, NULL, 0,
4794 NULL, HFILL }},
4795 { &hf_ftam_f_terminate_request,
4796 { "f-terminate-request", "ftam.f_terminate_request_element",
4797 FT_NONE, BASE_NONE, NULL, 0,
4798 NULL, HFILL }},
4799 { &hf_ftam_f_terminate_response,
4800 { "f-terminate-response", "ftam.f_terminate_response_element",
4801 FT_NONE, BASE_NONE, NULL, 0,
4802 NULL, HFILL }},
4803 { &hf_ftam_f_u_abort_request,
4804 { "f-u-abort-request", "ftam.f_u_abort_request_element",
4805 FT_NONE, BASE_NONE, NULL, 0,
4806 NULL, HFILL }},
4807 { &hf_ftam_f_p_abort_request,
4808 { "f-p-abort-request", "ftam.f_p_abort_request_element",
4809 FT_NONE, BASE_NONE, NULL, 0,
4810 NULL, HFILL }},
4811 { &hf_ftam_protocol_Version,
4812 { "protocol-Version", "ftam.protocol_Version",
4813 FT_BYTES, BASE_NONE, NULL, 0,
4814 NULL, HFILL }},
4815 { &hf_ftam_implementation_information,
4816 { "implementation-information", "ftam.implementation_information",
4817 FT_STRING, BASE_NONE, NULL, 0,
4818 NULL, HFILL }},
4819 { &hf_ftam_presentation_tontext_management,
4820 { "presentation-tontext-management", "ftam.presentation_tontext_management",
4821 FT_BOOLEAN, BASE_NONE, NULL, 0,
4822 "BOOLEAN", HFILL }},
4823 { &hf_ftam_service_class,
4824 { "service-class", "ftam.service_class",
4825 FT_BYTES, BASE_NONE, NULL, 0,
4826 NULL, HFILL }},
4827 { &hf_ftam_functional_units,
4828 { "functional-units", "ftam.functional_units",
4829 FT_BYTES, BASE_NONE, NULL, 0,
4830 NULL, HFILL }},
4831 { &hf_ftam_attribute_groups,
4832 { "attribute-groups", "ftam.attribute_groups",
4833 FT_BYTES, BASE_NONE, NULL, 0,
4834 NULL, HFILL }},
4835 { &hf_ftam_shared_ASE_information,
4836 { "shared-ASE-information", "ftam.shared_ASE_information_element",
4837 FT_NONE, BASE_NONE, NULL, 0,
4838 NULL, HFILL }},
4839 { &hf_ftam_ftam_quality_of_Service,
4840 { "ftam-quality-of-Service", "ftam.ftam_quality_of_Service",
4841 FT_INT32, BASE_DEC, VALS(ftam_FTAM_Quality_of_Service_U_vals), 0,
4842 NULL, HFILL }},
4843 { &hf_ftam_contents_type_list,
4844 { "contents-type-list", "ftam.contents_type_list",
4845 FT_UINT32, BASE_DEC, NULL, 0,
4846 NULL, HFILL }},
4847 { &hf_ftam_initiator_identity,
4848 { "initiator-identity", "ftam.initiator_identity",
4849 FT_STRING, BASE_NONE, NULL, 0,
4850 "User_Identity", HFILL }},
4851 { &hf_ftam_account,
4852 { "account", "ftam.account",
4853 FT_STRING, BASE_NONE, NULL, 0,
4854 NULL, HFILL }},
4855 { &hf_ftam_filestore_password,
4856 { "filestore-password", "ftam.filestore_password",
4857 FT_UINT32, BASE_DEC, VALS(ftam_Password_U_vals), 0,
4858 "Password", HFILL }},
4859 { &hf_ftam_checkpoint_window,
4860 { "checkpoint-window", "ftam.checkpoint_window",
4861 FT_INT32, BASE_DEC, NULL, 0,
4862 "INTEGER", HFILL }},
4863 { &hf_ftam_state_result,
4864 { "state-result", "ftam.state_result",
4865 FT_INT32, BASE_DEC, VALS(ftam_State_Result_U_vals), 0,
4866 NULL, HFILL }},
4867 { &hf_ftam_action_result,
4868 { "action-result", "ftam.action_result",
4869 FT_INT32, BASE_DEC, VALS(ftam_Action_Result_U_vals), 0,
4870 NULL, HFILL }},
4871 { &hf_ftam_diagnostic,
4872 { "diagnostic", "ftam.diagnostic",
4873 FT_UINT32, BASE_DEC, NULL, 0,
4874 NULL, HFILL }},
4875 { &hf_ftam__untag_item,
4876 { "_untag item", "ftam._untag_item",
4877 FT_UINT32, BASE_DEC, VALS(ftam_Contents_Type_List_item_vals), 0,
4878 "Contents_Type_List_item", HFILL }},
4879 { &hf_ftam_document_type_name,
4880 { "document-type-name", "ftam.document_type_name",
4881 FT_OID, BASE_NONE, NULL, 0,
4882 NULL, HFILL }},
4883 { &hf_ftam_abstract_Syntax_name,
4884 { "abstract-Syntax-name", "ftam.abstract_Syntax_name",
4885 FT_OID, BASE_NONE, NULL, 0,
4886 NULL, HFILL }},
4887 { &hf_ftam_charging,
4888 { "charging", "ftam.charging",
4889 FT_UINT32, BASE_DEC, NULL, 0,
4890 NULL, HFILL }},
4891 { &hf_ftam_f_select_request,
4892 { "f-select-request", "ftam.f_select_request_element",
4893 FT_NONE, BASE_NONE, NULL, 0,
4894 NULL, HFILL }},
4895 { &hf_ftam_f_select_response,
4896 { "f-select-response", "ftam.f_select_response_element",
4897 FT_NONE, BASE_NONE, NULL, 0,
4898 NULL, HFILL }},
4899 { &hf_ftam_f_deselect_request,
4900 { "f-deselect-request", "ftam.f_deselect_request_element",
4901 FT_NONE, BASE_NONE, NULL, 0,
4902 NULL, HFILL }},
4903 { &hf_ftam_f_deselect_response,
4904 { "f-deselect-response", "ftam.f_deselect_response_element",
4905 FT_NONE, BASE_NONE, NULL, 0,
4906 NULL, HFILL }},
4907 { &hf_ftam_f_create_request,
4908 { "f-create-request", "ftam.f_create_request_element",
4909 FT_NONE, BASE_NONE, NULL, 0,
4910 NULL, HFILL }},
4911 { &hf_ftam_f_create_response,
4912 { "f-create-response", "ftam.f_create_response_element",
4913 FT_NONE, BASE_NONE, NULL, 0,
4914 NULL, HFILL }},
4915 { &hf_ftam_f_delete_request,
4916 { "f-delete-request", "ftam.f_delete_request_element",
4917 FT_NONE, BASE_NONE, NULL, 0,
4918 NULL, HFILL }},
4919 { &hf_ftam_f_delete_response,
4920 { "f-delete-response", "ftam.f_delete_response_element",
4921 FT_NONE, BASE_NONE, NULL, 0,
4922 NULL, HFILL }},
4923 { &hf_ftam_f_read_attrib_request,
4924 { "f-read-attrib-request", "ftam.f_read_attrib_request_element",
4925 FT_NONE, BASE_NONE, NULL, 0,
4926 NULL, HFILL }},
4927 { &hf_ftam_f_read_attrib_response,
4928 { "f-read-attrib-response", "ftam.f_read_attrib_response_element",
4929 FT_NONE, BASE_NONE, NULL, 0,
4930 NULL, HFILL }},
4931 { &hf_ftam_f_Change_attrib_reques,
4932 { "f-Change-attrib-reques", "ftam.f_Change_attrib_reques_element",
4933 FT_NONE, BASE_NONE, NULL, 0,
4934 "F_CHANGE_ATTRIB_request", HFILL }},
4935 { &hf_ftam_f_Change_attrib_respon,
4936 { "f-Change-attrib-respon", "ftam.f_Change_attrib_respon_element",
4937 FT_NONE, BASE_NONE, NULL, 0,
4938 "F_CHANGE_ATTRIB_response", HFILL }},
4939 { &hf_ftam_f_open_request,
4940 { "f-open-request", "ftam.f_open_request_element",
4941 FT_NONE, BASE_NONE, NULL, 0,
4942 NULL, HFILL }},
4943 { &hf_ftam_f_open_response,
4944 { "f-open-response", "ftam.f_open_response_element",
4945 FT_NONE, BASE_NONE, NULL, 0,
4946 NULL, HFILL }},
4947 { &hf_ftam_f_close_request,
4948 { "f-close-request", "ftam.f_close_request_element",
4949 FT_NONE, BASE_NONE, NULL, 0,
4950 NULL, HFILL }},
4951 { &hf_ftam_f_close_response,
4952 { "f-close-response", "ftam.f_close_response_element",
4953 FT_NONE, BASE_NONE, NULL, 0,
4954 NULL, HFILL }},
4955 { &hf_ftam_f_begin_group_request,
4956 { "f-begin-group-request", "ftam.f_begin_group_request_element",
4957 FT_NONE, BASE_NONE, NULL, 0,
4958 NULL, HFILL }},
4959 { &hf_ftam_f_begin_group_response,
4960 { "f-begin-group-response", "ftam.f_begin_group_response_element",
4961 FT_NONE, BASE_NONE, NULL, 0,
4962 NULL, HFILL }},
4963 { &hf_ftam_f_end_group_request,
4964 { "f-end-group-request", "ftam.f_end_group_request_element",
4965 FT_NONE, BASE_NONE, NULL, 0,
4966 NULL, HFILL }},
4967 { &hf_ftam_f_end_group_response,
4968 { "f-end-group-response", "ftam.f_end_group_response_element",
4969 FT_NONE, BASE_NONE, NULL, 0,
4970 NULL, HFILL }},
4971 { &hf_ftam_f_recover_request,
4972 { "f-recover-request", "ftam.f_recover_request_element",
4973 FT_NONE, BASE_NONE, NULL, 0,
4974 NULL, HFILL }},
4975 { &hf_ftam_f_recover_response,
4976 { "f-recover-response", "ftam.f_recover_response_element",
4977 FT_NONE, BASE_NONE, NULL, 0,
4978 NULL, HFILL }},
4979 { &hf_ftam_f_locate_request,
4980 { "f-locate-request", "ftam.f_locate_request_element",
4981 FT_NONE, BASE_NONE, NULL, 0,
4982 NULL, HFILL }},
4983 { &hf_ftam_f_locate_response,
4984 { "f-locate-response", "ftam.f_locate_response_element",
4985 FT_NONE, BASE_NONE, NULL, 0,
4986 NULL, HFILL }},
4987 { &hf_ftam_f_erase_request,
4988 { "f-erase-request", "ftam.f_erase_request_element",
4989 FT_NONE, BASE_NONE, NULL, 0,
4990 NULL, HFILL }},
4991 { &hf_ftam_f_erase_response,
4992 { "f-erase-response", "ftam.f_erase_response_element",
4993 FT_NONE, BASE_NONE, NULL, 0,
4994 NULL, HFILL }},
4995 { &hf_ftam_select_attributes,
4996 { "attributes", "ftam.select_attributes_element",
4997 FT_NONE, BASE_NONE, NULL, 0,
4998 "Select_Attributes", HFILL }},
4999 { &hf_ftam_requested_access,
5000 { "requested-access", "ftam.requested_access",
5001 FT_BYTES, BASE_NONE, NULL, 0,
5002 "Access_Request", HFILL }},
5003 { &hf_ftam_access_passwords,
5004 { "access-passwords", "ftam.access_passwords_element",
5005 FT_NONE, BASE_NONE, NULL, 0,
5006 NULL, HFILL }},
5007 { &hf_ftam_path_access_passwords,
5008 { "path-access-passwords", "ftam.path_access_passwords",
5009 FT_UINT32, BASE_DEC, NULL, 0,
5010 NULL, HFILL }},
5011 { &hf_ftam_concurrency_control,
5012 { "concurrency-control", "ftam.concurrency_control_element",
5013 FT_NONE, BASE_NONE, NULL, 0,
5014 NULL, HFILL }},
5015 { &hf_ftam_referent_indicator,
5016 { "referent-indicator", "ftam.referent_indicator",
5017 FT_BOOLEAN, BASE_NONE, NULL, 0,
5018 NULL, HFILL }},
5019 { &hf_ftam_override,
5020 { "override", "ftam.override",
5021 FT_INT32, BASE_DEC, VALS(ftam_Override_vals), 0,
5022 NULL, HFILL }},
5023 { &hf_ftam_initial_attributes,
5024 { "initial-attributes", "ftam.initial_attributes_element",
5025 FT_NONE, BASE_NONE, NULL, 0,
5026 "Create_Attributes", HFILL }},
5027 { &hf_ftam_create_password,
5028 { "create-password", "ftam.create_password",
5029 FT_UINT32, BASE_DEC, VALS(ftam_Password_U_vals), 0,
5030 "Password", HFILL }},
5031 { &hf_ftam_attribute_names,
5032 { "attribute-names", "ftam.attribute_names",
5033 FT_BYTES, BASE_NONE, NULL, 0,
5034 NULL, HFILL }},
5035 { &hf_ftam_attribute_extension_names,
5036 { "attribute-extension-names", "ftam.attribute_extension_names",
5037 FT_UINT32, BASE_DEC, NULL, 0,
5038 NULL, HFILL }},
5039 { &hf_ftam_read_attributes,
5040 { "attributes", "ftam.read_attributes_element",
5041 FT_NONE, BASE_NONE, NULL, 0,
5042 "Read_Attributes", HFILL }},
5043 { &hf_ftam_attributes,
5044 { "attributes", "ftam.attributes_element",
5045 FT_NONE, BASE_NONE, NULL, 0,
5046 "Change_Attributes", HFILL }},
5047 { &hf_ftam_processing_mode,
5048 { "processing-mode", "ftam.processing_mode",
5049 FT_BYTES, BASE_NONE, NULL, 0,
5050 NULL, HFILL }},
5051 { &hf_ftam_open_contents_type,
5052 { "contents-type", "ftam.open_contents_type",
5053 FT_UINT32, BASE_DEC, VALS(ftam_T_open_contents_type_vals), 0,
5054 "T_open_contents_type", HFILL }},
5055 { &hf_ftam_unknown,
5056 { "unknown", "ftam.unknown_element",
5057 FT_NONE, BASE_NONE, NULL, 0,
5058 NULL, HFILL }},
5059 { &hf_ftam_proposed,
5060 { "proposed", "ftam.proposed",
5061 FT_UINT32, BASE_DEC, VALS(ftam_Contents_Type_Attribute_vals), 0,
5062 "Contents_Type_Attribute", HFILL }},
5063 { &hf_ftam_enable_fadu_locking,
5064 { "enable-fadu-locking", "ftam.enable_fadu_locking",
5065 FT_BOOLEAN, BASE_NONE, NULL, 0,
5066 "BOOLEAN", HFILL }},
5067 { &hf_ftam_activity_identifier,
5068 { "activity-identifier", "ftam.activity_identifier",
5069 FT_INT32, BASE_DEC, NULL, 0,
5070 NULL, HFILL }},
5071 { &hf_ftam_request_recovery_mode,
5072 { "recovery-mode", "ftam.request_recovery_mode",
5073 FT_INT32, BASE_DEC, VALS(ftam_T_request_recovery_mode_vals), 0,
5074 "T_request_recovery_mode", HFILL }},
5075 { &hf_ftam_remove_contexts,
5076 { "remove-contexts", "ftam.remove_contexts",
5077 FT_UINT32, BASE_DEC, NULL, 0,
5078 "SET_OF_Abstract_Syntax_Name", HFILL }},
5079 { &hf_ftam_remove_contexts_item,
5080 { "Abstract-Syntax-Name", "ftam.Abstract_Syntax_Name",
5081 FT_OID, BASE_NONE, NULL, 0,
5082 NULL, HFILL }},
5083 { &hf_ftam_define_contexts,
5084 { "define-contexts", "ftam.define_contexts",
5085 FT_UINT32, BASE_DEC, NULL, 0,
5086 "SET_OF_Abstract_Syntax_Name", HFILL }},
5087 { &hf_ftam_define_contexts_item,
5088 { "Abstract-Syntax-Name", "ftam.Abstract_Syntax_Name",
5089 FT_OID, BASE_NONE, NULL, 0,
5090 NULL, HFILL }},
5091 { &hf_ftam_degree_of_overlap,
5092 { "degree-of-overlap", "ftam.degree_of_overlap",
5093 FT_INT32, BASE_DEC, VALS(ftam_Degree_Of_Overlap_U_vals), 0,
5094 NULL, HFILL }},
5095 { &hf_ftam_transfer_window,
5096 { "transfer-window", "ftam.transfer_window",
5097 FT_INT32, BASE_DEC, NULL, 0,
5098 "INTEGER", HFILL }},
5099 { &hf_ftam_contents_type,
5100 { "contents-type", "ftam.contents_type",
5101 FT_UINT32, BASE_DEC, VALS(ftam_Contents_Type_Attribute_vals), 0,
5102 "Contents_Type_Attribute", HFILL }},
5103 { &hf_ftam_response_recovery_mode,
5104 { "recovery-mode", "ftam.response_recovery_mode",
5105 FT_INT32, BASE_DEC, VALS(ftam_T_response_recovery_mode_vals), 0,
5106 "T_response_recovery_mode", HFILL }},
5107 { &hf_ftam_presentation_action,
5108 { "presentation-action", "ftam.presentation_action",
5109 FT_BOOLEAN, BASE_NONE, NULL, 0,
5110 "BOOLEAN", HFILL }},
5111 { &hf_ftam_threshold,
5112 { "threshold", "ftam.threshold",
5113 FT_INT32, BASE_DEC, NULL, 0,
5114 "INTEGER", HFILL }},
5115 { &hf_ftam_bulk_transfer_number,
5116 { "bulk-transfer-number", "ftam.bulk_transfer_number",
5117 FT_INT32, BASE_DEC, NULL, 0,
5118 "INTEGER", HFILL }},
5119 { &hf_ftam_recovefy_Point,
5120 { "recovefy-Point", "ftam.recovefy_Point",
5121 FT_INT32, BASE_DEC, NULL, 0,
5122 "INTEGER", HFILL }},
5123 { &hf_ftam_concurrent_bulk_transfer_number,
5124 { "concurrent-bulk-transfer-number", "ftam.concurrent_bulk_transfer_number",
5125 FT_INT32, BASE_DEC, NULL, 0,
5126 "INTEGER", HFILL }},
5127 { &hf_ftam_concurrent_recovery_point,
5128 { "concurrent-recovery-point", "ftam.concurrent_recovery_point",
5129 FT_INT32, BASE_DEC, NULL, 0,
5130 "INTEGER", HFILL }},
5131 { &hf_ftam_last_transfer_end_read_response,
5132 { "last-transfer-end-read-response", "ftam.last_transfer_end_read_response",
5133 FT_INT32, BASE_DEC, NULL, 0,
5134 "INTEGER", HFILL }},
5135 { &hf_ftam_last_transfer_end_write_response,
5136 { "last-transfer-end-write-response", "ftam.last_transfer_end_write_response",
5137 FT_INT32, BASE_DEC, NULL, 0,
5138 "INTEGER", HFILL }},
5139 { &hf_ftam_recovety_Point,
5140 { "recovety-Point", "ftam.recovety_Point",
5141 FT_INT32, BASE_DEC, NULL, 0,
5142 "INTEGER", HFILL }},
5143 { &hf_ftam_last_transfer_end_read_request,
5144 { "last-transfer-end-read-request", "ftam.last_transfer_end_read_request",
5145 FT_INT32, BASE_DEC, NULL, 0,
5146 "INTEGER", HFILL }},
5147 { &hf_ftam_last_transfer_end_write_request,
5148 { "last-transfer-end-write-request", "ftam.last_transfer_end_write_request",
5149 FT_INT32, BASE_DEC, NULL, 0,
5150 "INTEGER", HFILL }},
5151 { &hf_ftam_file_access_data_unit_identity,
5152 { "file-access-data-unit-identity", "ftam.file_access_data_unit_identity",
5153 FT_UINT32, BASE_DEC, VALS(ftam_FADU_Identity_U_vals), 0,
5154 "FADU_Identity", HFILL }},
5155 { &hf_ftam_fadu_lock,
5156 { "fadu-lock", "ftam.fadu_lock",
5157 FT_INT32, BASE_DEC, VALS(ftam_FADU_Lock_U_vals), 0,
5158 NULL, HFILL }},
5159 { &hf_ftam_f_read_request,
5160 { "f-read-request", "ftam.f_read_request_element",
5161 FT_NONE, BASE_NONE, NULL, 0,
5162 NULL, HFILL }},
5163 { &hf_ftam_f_write_request,
5164 { "f-write-request", "ftam.f_write_request_element",
5165 FT_NONE, BASE_NONE, NULL, 0,
5166 NULL, HFILL }},
5167 { &hf_ftam_f_data_end_request,
5168 { "f-data-end-request", "ftam.f_data_end_request_element",
5169 FT_NONE, BASE_NONE, NULL, 0,
5170 NULL, HFILL }},
5171 { &hf_ftam_f_transfer_end_request,
5172 { "f-transfer-end-request", "ftam.f_transfer_end_request_element",
5173 FT_NONE, BASE_NONE, NULL, 0,
5174 NULL, HFILL }},
5175 { &hf_ftam_f_transfer_end_response,
5176 { "f-transfer-end-response", "ftam.f_transfer_end_response_element",
5177 FT_NONE, BASE_NONE, NULL, 0,
5178 NULL, HFILL }},
5179 { &hf_ftam_f_cancel_request,
5180 { "f-cancel-request", "ftam.f_cancel_request_element",
5181 FT_NONE, BASE_NONE, NULL, 0,
5182 NULL, HFILL }},
5183 { &hf_ftam_f_cancel_response,
5184 { "f-cancel-response", "ftam.f_cancel_response_element",
5185 FT_NONE, BASE_NONE, NULL, 0,
5186 NULL, HFILL }},
5187 { &hf_ftam_f_restart_request,
5188 { "f-restart-request", "ftam.f_restart_request_element",
5189 FT_NONE, BASE_NONE, NULL, 0,
5190 NULL, HFILL }},
5191 { &hf_ftam_f_restart_response,
5192 { "f-restart-response", "ftam.f_restart_response_element",
5193 FT_NONE, BASE_NONE, NULL, 0,
5194 NULL, HFILL }},
5195 { &hf_ftam_read_access_context,
5196 { "access-context", "ftam.read_access_context_element",
5197 FT_NONE, BASE_NONE, NULL, 0,
5198 NULL, HFILL }},
5199 { &hf_ftam_transfer_number,
5200 { "transfer-number", "ftam.transfer_number",
5201 FT_INT32, BASE_DEC, NULL, 0,
5202 "INTEGER", HFILL }},
5203 { &hf_ftam_file_access_data_unit_Operation,
5204 { "file-access-data-unit-Operation", "ftam.file_access_data_unit_Operation",
5205 FT_INT32, BASE_DEC, VALS(ftam_T_file_access_data_unit_Operation_vals), 0,
5206 "T_file_access_data_unit_Operation", HFILL }},
5207 { &hf_ftam_request_type,
5208 { "request-type", "ftam.request_type",
5209 FT_INT32, BASE_DEC, VALS(ftam_Request_Type_U_vals), 0,
5210 NULL, HFILL }},
5211 { &hf_ftam_checkpoint_identifier,
5212 { "checkpoint-identifier", "ftam.checkpoint_identifier",
5213 FT_INT32, BASE_DEC, NULL, 0,
5214 "INTEGER", HFILL }},
5215 { &hf_ftam_access_context,
5216 { "access-context", "ftam.access_context",
5217 FT_INT32, BASE_DEC, VALS(ftam_T_access_context_vals), 0,
5218 NULL, HFILL }},
5219 { &hf_ftam_level_number,
5220 { "level-number", "ftam.level_number",
5221 FT_INT32, BASE_DEC, NULL, 0,
5222 "INTEGER", HFILL }},
5223 { &hf_ftam_read_password,
5224 { "read-password", "ftam.read_password",
5225 FT_UINT32, BASE_DEC, VALS(ftam_Password_U_vals), 0,
5226 "Password", HFILL }},
5227 { &hf_ftam_insert_password,
5228 { "insert-password", "ftam.insert_password",
5229 FT_UINT32, BASE_DEC, VALS(ftam_Password_U_vals), 0,
5230 "Password", HFILL }},
5231 { &hf_ftam_replace_password,
5232 { "replace-password", "ftam.replace_password",
5233 FT_UINT32, BASE_DEC, VALS(ftam_Password_U_vals), 0,
5234 "Password", HFILL }},
5235 { &hf_ftam_extend_password,
5236 { "extend-password", "ftam.extend_password",
5237 FT_UINT32, BASE_DEC, VALS(ftam_Password_U_vals), 0,
5238 "Password", HFILL }},
5239 { &hf_ftam_erase_password,
5240 { "erase-password", "ftam.erase_password",
5241 FT_UINT32, BASE_DEC, VALS(ftam_Password_U_vals), 0,
5242 "Password", HFILL }},
5243 { &hf_ftam_read_attribute_password,
5244 { "read-attribute-password", "ftam.read_attribute_password",
5245 FT_UINT32, BASE_DEC, VALS(ftam_Password_U_vals), 0,
5246 "Password", HFILL }},
5247 { &hf_ftam_change_attribute_password,
5248 { "change-attribute-password", "ftam.change_attribute_password",
5249 FT_UINT32, BASE_DEC, VALS(ftam_Password_U_vals), 0,
5250 "Password", HFILL }},
5251 { &hf_ftam_delete_password,
5252 { "delete-password", "ftam.delete_password",
5253 FT_UINT32, BASE_DEC, VALS(ftam_Password_U_vals), 0,
5254 "Password", HFILL }},
5255 { &hf_ftam_pass_passwords,
5256 { "pass-passwords", "ftam.pass_passwords",
5257 FT_UINT32, BASE_DEC, NULL, 0,
5258 NULL, HFILL }},
5259 { &hf_ftam_link_password,
5260 { "link-password", "ftam.link_password",
5261 FT_UINT32, BASE_DEC, VALS(ftam_Password_U_vals), 0,
5262 "Password", HFILL }},
5263 { &hf_ftam_pathname,
5264 { "pathname", "ftam.pathname",
5265 FT_UINT32, BASE_DEC, VALS(ftam_Pathname_Attribute_vals), 0,
5266 "Pathname_Attribute", HFILL }},
5267 { &hf_ftam_storage_account,
5268 { "storage-account", "ftam.storage_account",
5269 FT_UINT32, BASE_DEC, VALS(ftam_Account_Attribute_vals), 0,
5270 "Account_Attribute", HFILL }},
5271 { &hf_ftam_object_availability,
5272 { "object-availability", "ftam.object_availability",
5273 FT_UINT32, BASE_DEC, VALS(ftam_Object_Availability_Attribute_vals), 0,
5274 "Object_Availability_Attribute", HFILL }},
5275 { &hf_ftam_future_Object_size,
5276 { "future-Object-size", "ftam.future_Object_size",
5277 FT_UINT32, BASE_DEC, VALS(ftam_Object_Size_Attribute_vals), 0,
5278 "Object_Size_Attribute", HFILL }},
5279 { &hf_ftam_change_attributes_access_control,
5280 { "access-control", "ftam.change_attributes_access_control",
5281 FT_UINT32, BASE_DEC, VALS(ftam_Access_Control_Change_Attribute_vals), 0,
5282 "Access_Control_Change_Attribute", HFILL }},
5283 { &hf_ftam_change_path_access_control,
5284 { "path-access-control", "ftam.change_path_access_control",
5285 FT_UINT32, BASE_DEC, VALS(ftam_Access_Control_Change_Attribute_vals), 0,
5286 "Access_Control_Change_Attribute", HFILL }},
5287 { &hf_ftam_legal_qualification,
5288 { "legal-qualification", "ftam.legal_qualification",
5289 FT_UINT32, BASE_DEC, VALS(ftam_Legal_Qualification_Attribute_vals), 0,
5290 "Legal_Qualification_Attribute", HFILL }},
5291 { &hf_ftam_private_use,
5292 { "private-use", "ftam.private_use",
5293 FT_UINT32, BASE_DEC, VALS(ftam_Private_Use_Attribute_vals), 0,
5294 "Private_Use_Attribute", HFILL }},
5295 { &hf_ftam_attribute_extensions,
5296 { "attribute-extensions", "ftam.attribute_extensions",
5297 FT_UINT32, BASE_DEC, NULL, 0,
5298 NULL, HFILL }},
5299 { &hf_ftam__untag_item_01,
5300 { "_untag item", "ftam._untag_item_element",
5301 FT_NONE, BASE_NONE, NULL, 0,
5302 "Charging_item", HFILL }},
5303 { &hf_ftam_resource_identifier,
5304 { "resource-identifier", "ftam.resource_identifier",
5305 FT_STRING, BASE_NONE, NULL, 0,
5306 "GraphicString", HFILL }},
5307 { &hf_ftam_charging_unit,
5308 { "charging-unit", "ftam.charging_unit",
5309 FT_STRING, BASE_NONE, NULL, 0,
5310 "GraphicString", HFILL }},
5311 { &hf_ftam_charging_value,
5312 { "charging-value", "ftam.charging_value",
5313 FT_INT32, BASE_DEC, NULL, 0,
5314 "INTEGER", HFILL }},
5315 { &hf_ftam_read,
5316 { "read", "ftam.read",
5317 FT_INT32, BASE_DEC, VALS(ftam_Lock_vals), 0,
5318 "Lock", HFILL }},
5319 { &hf_ftam_insert,
5320 { "insert", "ftam.insert",
5321 FT_INT32, BASE_DEC, VALS(ftam_Lock_vals), 0,
5322 "Lock", HFILL }},
5323 { &hf_ftam_replace,
5324 { "replace", "ftam.replace",
5325 FT_INT32, BASE_DEC, VALS(ftam_Lock_vals), 0,
5326 "Lock", HFILL }},
5327 { &hf_ftam_extend,
5328 { "extend", "ftam.extend",
5329 FT_INT32, BASE_DEC, VALS(ftam_Lock_vals), 0,
5330 "Lock", HFILL }},
5331 { &hf_ftam_erase,
5332 { "erase", "ftam.erase",
5333 FT_INT32, BASE_DEC, VALS(ftam_Lock_vals), 0,
5334 "Lock", HFILL }},
5335 { &hf_ftam_read_attribute,
5336 { "read-attribute", "ftam.read_attribute",
5337 FT_INT32, BASE_DEC, VALS(ftam_Lock_vals), 0,
5338 "Lock", HFILL }},
5339 { &hf_ftam_change_attribute,
5340 { "change-attribute", "ftam.change_attribute",
5341 FT_INT32, BASE_DEC, VALS(ftam_Lock_vals), 0,
5342 "Lock", HFILL }},
5343 { &hf_ftam_delete_Object,
5344 { "delete-Object", "ftam.delete_Object",
5345 FT_INT32, BASE_DEC, VALS(ftam_Lock_vals), 0,
5346 "Lock", HFILL }},
5347 { &hf_ftam_object_type,
5348 { "object-type", "ftam.object_type",
5349 FT_INT32, BASE_DEC, VALS(ftam_Object_Type_Attribute_vals), 0,
5350 "Object_Type_Attribute", HFILL }},
5351 { &hf_ftam_permitted_actions,
5352 { "permitted-actions", "ftam.permitted_actions",
5353 FT_BYTES, BASE_NONE, NULL, 0,
5354 "Permitted_Actions_Attribute", HFILL }},
5355 { &hf_ftam_access_control,
5356 { "access-control", "ftam.access_control",
5357 FT_UINT32, BASE_DEC, VALS(ftam_Access_Control_Attribute_vals), 0,
5358 "Access_Control_Attribute", HFILL }},
5359 { &hf_ftam_path_access_control,
5360 { "path-access-control", "ftam.path_access_control",
5361 FT_UINT32, BASE_DEC, VALS(ftam_Access_Control_Attribute_vals), 0,
5362 "Access_Control_Attribute", HFILL }},
5363 { &hf_ftam__untag_item_02,
5364 { "_untag item", "ftam._untag_item_element",
5365 FT_NONE, BASE_NONE, NULL, 0,
5366 "Diagnostic_item", HFILL }},
5367 { &hf_ftam_diagnostic_type,
5368 { "diagnostic-type", "ftam.diagnostic_type",
5369 FT_INT32, BASE_DEC, VALS(ftam_T_diagnostic_type_vals), 0,
5370 NULL, HFILL }},
5371 { &hf_ftam_error_identifier,
5372 { "error-identifier", "ftam.error_identifier",
5373 FT_INT32, BASE_DEC, NULL, 0,
5374 "INTEGER", HFILL }},
5375 { &hf_ftam_error_observer,
5376 { "error-observer", "ftam.error_observer",
5377 FT_INT32, BASE_DEC, VALS(ftam_Entity_Reference_vals), 0,
5378 "Entity_Reference", HFILL }},
5379 { &hf_ftam_error_Source,
5380 { "error-Source", "ftam.error_Source",
5381 FT_INT32, BASE_DEC, VALS(ftam_Entity_Reference_vals), 0,
5382 "Entity_Reference", HFILL }},
5383 { &hf_ftam_suggested_delay,
5384 { "suggested-delay", "ftam.suggested_delay",
5385 FT_INT32, BASE_DEC, NULL, 0,
5386 "INTEGER", HFILL }},
5387 { &hf_ftam_further_details,
5388 { "further-details", "ftam.further_details",
5389 FT_STRING, BASE_NONE, NULL, 0,
5390 "GraphicString", HFILL }},
5391 { &hf_ftam_first_last,
5392 { "first-last", "ftam.first_last",
5393 FT_INT32, BASE_DEC, VALS(ftam_T_first_last_vals), 0,
5394 "T_first_last", HFILL }},
5395 { &hf_ftam_relative,
5396 { "relative", "ftam.relative",
5397 FT_INT32, BASE_DEC, VALS(ftam_T_relative_vals), 0,
5398 NULL, HFILL }},
5399 { &hf_ftam_begin_end,
5400 { "begin-end", "ftam.begin_end",
5401 FT_INT32, BASE_DEC, VALS(ftam_T_begin_end_vals), 0,
5402 NULL, HFILL }},
5403 { &hf_ftam_single_name,
5404 { "single-name", "ftam.single_name_element",
5405 FT_NONE, BASE_NONE, NULL, 0,
5406 "Node_Name", HFILL }},
5407 { &hf_ftam_name_list,
5408 { "name-list", "ftam.name_list",
5409 FT_UINT32, BASE_DEC, NULL, 0,
5410 "SEQUENCE_OF_Node_Name", HFILL }},
5411 { &hf_ftam_name_list_item,
5412 { "Node-Name", "ftam.Node_Name_element",
5413 FT_NONE, BASE_NONE, NULL, 0,
5414 NULL, HFILL }},
5415 { &hf_ftam_fadu_number,
5416 { "fadu-number", "ftam.fadu_number",
5417 FT_INT32, BASE_DEC, NULL, 0,
5418 "INTEGER", HFILL }},
5419 { &hf_ftam_graphicString,
5420 { "graphicString", "ftam.graphicString",
5421 FT_STRING, BASE_NONE, NULL, 0,
5422 NULL, HFILL }},
5423 { &hf_ftam_octetString,
5424 { "octetString", "ftam.octetString",
5425 FT_BYTES, BASE_NONE, NULL, 0,
5426 "OCTET_STRING", HFILL }},
5427 { &hf_ftam_linked_Object,
5428 { "linked-Object", "ftam.linked_Object",
5429 FT_UINT32, BASE_DEC, VALS(ftam_Pathname_Attribute_vals), 0,
5430 "Pathname_Attribute", HFILL }},
5431 { &hf_ftam_child_objects,
5432 { "child-objects", "ftam.child_objects",
5433 FT_UINT32, BASE_DEC, NULL, 0,
5434 "Child_Objects_Attribute", HFILL }},
5435 { &hf_ftam_primaty_pathname,
5436 { "primaty-pathname", "ftam.primaty_pathname",
5437 FT_UINT32, BASE_DEC, VALS(ftam_Pathname_Attribute_vals), 0,
5438 "Pathname_Attribute", HFILL }},
5439 { &hf_ftam_date_and_time_of_creation,
5440 { "date-and-time-of-creation", "ftam.date_and_time_of_creation",
5441 FT_UINT32, BASE_DEC, VALS(ftam_Date_and_Time_Attribute_vals), 0,
5442 "Date_and_Time_Attribute", HFILL }},
5443 { &hf_ftam_date_and_time_of_last_modification,
5444 { "date-and-time-of-last-modification", "ftam.date_and_time_of_last_modification",
5445 FT_UINT32, BASE_DEC, VALS(ftam_Date_and_Time_Attribute_vals), 0,
5446 "Date_and_Time_Attribute", HFILL }},
5447 { &hf_ftam_date_and_time_of_last_read_access,
5448 { "date-and-time-of-last-read-access", "ftam.date_and_time_of_last_read_access",
5449 FT_UINT32, BASE_DEC, VALS(ftam_Date_and_Time_Attribute_vals), 0,
5450 "Date_and_Time_Attribute", HFILL }},
5451 { &hf_ftam_date_and_time_of_last_attribute_modification,
5452 { "date-and-time-of-last-attribute-modification", "ftam.date_and_time_of_last_attribute_modification",
5453 FT_UINT32, BASE_DEC, VALS(ftam_Date_and_Time_Attribute_vals), 0,
5454 "Date_and_Time_Attribute", HFILL }},
5455 { &hf_ftam_identity_of_creator,
5456 { "identity-of-creator", "ftam.identity_of_creator",
5457 FT_UINT32, BASE_DEC, VALS(ftam_User_Identity_Attribute_vals), 0,
5458 "User_Identity_Attribute", HFILL }},
5459 { &hf_ftam_identity_of_last_modifier,
5460 { "identity-of-last-modifier", "ftam.identity_of_last_modifier",
5461 FT_UINT32, BASE_DEC, VALS(ftam_User_Identity_Attribute_vals), 0,
5462 "User_Identity_Attribute", HFILL }},
5463 { &hf_ftam_identity_of_last_reader,
5464 { "identity-of-last-reader", "ftam.identity_of_last_reader",
5465 FT_UINT32, BASE_DEC, VALS(ftam_User_Identity_Attribute_vals), 0,
5466 "User_Identity_Attribute", HFILL }},
5467 { &hf_ftam_identity_last_attribute_modifier,
5468 { "identity-last-attribute-modifier", "ftam.identity_last_attribute_modifier",
5469 FT_UINT32, BASE_DEC, VALS(ftam_User_Identity_Attribute_vals), 0,
5470 "User_Identity_Attribute", HFILL }},
5471 { &hf_ftam_object_size,
5472 { "object-size", "ftam.object_size",
5473 FT_UINT32, BASE_DEC, VALS(ftam_Object_Size_Attribute_vals), 0,
5474 "Object_Size_Attribute", HFILL }},
5475 { &hf_ftam_no_value_available,
5476 { "no-value-available", "ftam.no_value_available_element",
5477 FT_NONE, BASE_NONE, NULL, 0,
5478 NULL, HFILL }},
5479 { &hf_ftam_actual_values3,
5480 { "actual-values", "ftam.actual_values3",
5481 FT_UINT32, BASE_DEC, NULL, 0,
5482 "SET_OF_Access_Control_Element", HFILL }},
5483 { &hf_ftam_actual_values3_item,
5484 { "Access-Control-Element", "ftam.Access_Control_Element_element",
5485 FT_NONE, BASE_NONE, NULL, 0,
5486 NULL, HFILL }},
5487 { &hf_ftam_actual_values1,
5488 { "actual-values", "ftam.actual_values1_element",
5489 FT_NONE, BASE_NONE, NULL, 0,
5490 "T_actual_values1", HFILL }},
5491 { &hf_ftam_insert_values,
5492 { "insert-values", "ftam.insert_values",
5493 FT_UINT32, BASE_DEC, NULL, 0,
5494 "SET_OF_Access_Control_Element", HFILL }},
5495 { &hf_ftam_insert_values_item,
5496 { "Access-Control-Element", "ftam.Access_Control_Element_element",
5497 FT_NONE, BASE_NONE, NULL, 0,
5498 NULL, HFILL }},
5499 { &hf_ftam_delete_values,
5500 { "delete-values", "ftam.delete_values",
5501 FT_UINT32, BASE_DEC, NULL, 0,
5502 "SET_OF_Access_Control_Element", HFILL }},
5503 { &hf_ftam_delete_values_item,
5504 { "Access-Control-Element", "ftam.Access_Control_Element_element",
5505 FT_NONE, BASE_NONE, NULL, 0,
5506 NULL, HFILL }},
5507 { &hf_ftam_action_list,
5508 { "action-list", "ftam.action_list",
5509 FT_BYTES, BASE_NONE, NULL, 0,
5510 "Access_Request", HFILL }},
5511 { &hf_ftam_concurrency_access,
5512 { "concurrency-access", "ftam.concurrency_access_element",
5513 FT_NONE, BASE_NONE, NULL, 0,
5514 NULL, HFILL }},
5515 { &hf_ftam_identity,
5516 { "identity", "ftam.identity",
5517 FT_STRING, BASE_NONE, NULL, 0,
5518 "User_Identity", HFILL }},
5519 { &hf_ftam_passwords,
5520 { "passwords", "ftam.passwords_element",
5521 FT_NONE, BASE_NONE, NULL, 0,
5522 "Access_Passwords", HFILL }},
5523 { &hf_ftam_location,
5524 { "location", "ftam.location",
5525 FT_UINT32, BASE_DEC, VALS(acse_AE_title_vals), 0,
5526 "Application_Entity_Title", HFILL }},
5527 { &hf_ftam_read_key,
5528 { "read", "ftam.read_key",
5529 FT_BYTES, BASE_NONE, NULL, 0,
5530 "Concurrency_Key", HFILL }},
5531 { &hf_ftam_insert_key,
5532 { "insert", "ftam.insert_key",
5533 FT_BYTES, BASE_NONE, NULL, 0,
5534 "Concurrency_Key", HFILL }},
5535 { &hf_ftam_replace_key,
5536 { "replace", "ftam.replace_key",
5537 FT_BYTES, BASE_NONE, NULL, 0,
5538 "Concurrency_Key", HFILL }},
5539 { &hf_ftam_extend_key,
5540 { "extend", "ftam.extend_key",
5541 FT_BYTES, BASE_NONE, NULL, 0,
5542 "Concurrency_Key", HFILL }},
5543 { &hf_ftam_erase_key,
5544 { "erase", "ftam.erase_key",
5545 FT_BYTES, BASE_NONE, NULL, 0,
5546 "Concurrency_Key", HFILL }},
5547 { &hf_ftam_read_attribute_key,
5548 { "read-attribute", "ftam.read_attribute_key",
5549 FT_BYTES, BASE_NONE, NULL, 0,
5550 "Concurrency_Key", HFILL }},
5551 { &hf_ftam_change_attribute_key,
5552 { "change-attribute", "ftam.change_attribute_key",
5553 FT_BYTES, BASE_NONE, NULL, 0,
5554 "Concurrency_Key", HFILL }},
5555 { &hf_ftam_delete_Object_key,
5556 { "delete-Object", "ftam.delete_Object_key",
5557 FT_BYTES, BASE_NONE, NULL, 0,
5558 "Concurrency_Key", HFILL }},
5559 { &hf_ftam_actual_values2,
5560 { "actual-values", "ftam.actual_values2",
5561 FT_STRING, BASE_NONE, NULL, 0,
5562 "Account", HFILL }},
5563 { &hf_ftam_document_type,
5564 { "document-type", "ftam.document_type_element",
5565 FT_NONE, BASE_NONE, NULL, 0,
5566 "T_document_type", HFILL }},
5567 { &hf_ftam_parameter,
5568 { "parameter", "ftam.parameter_element",
5569 FT_NONE, BASE_NONE, NULL, 0,
5570 NULL, HFILL }},
5571 { &hf_ftam_constraint_set_and_abstract_Syntax,
5572 { "constraint-set-and-abstract-Syntax", "ftam.constraint_set_and_abstract_Syntax_element",
5573 FT_NONE, BASE_NONE, NULL, 0,
5574 "T_constraint_set_and_abstract_Syntax", HFILL }},
5575 { &hf_ftam_constraint_set_name,
5576 { "constraint-set-name", "ftam.constraint_set_name",
5577 FT_OID, BASE_NONE, NULL, 0,
5578 NULL, HFILL }},
5579 { &hf_ftam_actual_values5,
5580 { "actual-values", "ftam.actual_values5",
5581 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
5582 "GeneralizedTime", HFILL }},
5583 { &hf_ftam_actual_values8,
5584 { "actual-values", "ftam.actual_values8",
5585 FT_INT32, BASE_DEC, VALS(ftam_T_actual_values8_vals), 0,
5586 "T_actual_values8", HFILL }},
5587 { &hf_ftam_incomplete_pathname,
5588 { "incomplete-pathname", "ftam.incomplete_pathname",
5589 FT_UINT32, BASE_DEC, NULL, 0,
5590 "Pathname", HFILL }},
5591 { &hf_ftam_complete_pathname,
5592 { "complete-pathname", "ftam.complete_pathname",
5593 FT_UINT32, BASE_DEC, NULL, 0,
5594 "Pathname", HFILL }},
5595 { &hf_ftam_actual_values7,
5596 { "actual-values", "ftam.actual_values7",
5597 FT_INT32, BASE_DEC, NULL, 0,
5598 "INTEGER", HFILL }},
5599 { &hf_ftam_actual_values9,
5600 { "actual-values", "ftam.actual_values9",
5601 FT_STRING, BASE_NONE, NULL, 0,
5602 "GraphicString", HFILL }},
5603 { &hf_ftam_abstract_Syntax_not_supported,
5604 { "abstract-Syntax-not-supported", "ftam.abstract_Syntax_not_supported_element",
5605 FT_NONE, BASE_NONE, NULL, 0,
5606 NULL, HFILL }},
5607 { &hf_ftam_actual_values4,
5608 { "actual-values", "ftam.actual_values4_element",
5609 FT_NONE, BASE_NONE, NULL, 0,
5610 "EXTERNAL", HFILL }},
5611 { &hf_ftam_actual_values6,
5612 { "actual-values", "ftam.actual_values6",
5613 FT_STRING, BASE_NONE, NULL, 0,
5614 "User_Identity", HFILL }},
5615 { &hf_ftam_Child_Objects_Attribute_item,
5616 { "Child-Objects-Attribute item", "ftam.Child_Objects_Attribute_item",
5617 FT_STRING, BASE_NONE, NULL, 0,
5618 "GraphicString", HFILL }},
5619 { &hf_ftam_f_Change_prefix_request,
5620 { "f-Change-prefix-request", "ftam.f_Change_prefix_request_element",
5621 FT_NONE, BASE_NONE, NULL, 0,
5622 NULL, HFILL }},
5623 { &hf_ftam_f_Change_prefix_response,
5624 { "f-Change-prefix-response", "ftam.f_Change_prefix_response_element",
5625 FT_NONE, BASE_NONE, NULL, 0,
5626 NULL, HFILL }},
5627 { &hf_ftam_f_list_request,
5628 { "f-list-request", "ftam.f_list_request_element",
5629 FT_NONE, BASE_NONE, NULL, 0,
5630 NULL, HFILL }},
5631 { &hf_ftam_f_list_response,
5632 { "f-list-response", "ftam.f_list_response_element",
5633 FT_NONE, BASE_NONE, NULL, 0,
5634 NULL, HFILL }},
5635 { &hf_ftam_f_group_select_request,
5636 { "f-group-select-request", "ftam.f_group_select_request_element",
5637 FT_NONE, BASE_NONE, NULL, 0,
5638 NULL, HFILL }},
5639 { &hf_ftam_f_group_select_response,
5640 { "f-group-select-response", "ftam.f_group_select_response_element",
5641 FT_NONE, BASE_NONE, NULL, 0,
5642 NULL, HFILL }},
5643 { &hf_ftam_f_group_delete_request,
5644 { "f-group-delete-request", "ftam.f_group_delete_request_element",
5645 FT_NONE, BASE_NONE, NULL, 0,
5646 NULL, HFILL }},
5647 { &hf_ftam_f_group_delete_response,
5648 { "f-group-delete-response", "ftam.f_group_delete_response_element",
5649 FT_NONE, BASE_NONE, NULL, 0,
5650 NULL, HFILL }},
5651 { &hf_ftam_f_group_move_request,
5652 { "f-group-move-request", "ftam.f_group_move_request_element",
5653 FT_NONE, BASE_NONE, NULL, 0,
5654 NULL, HFILL }},
5655 { &hf_ftam_f_group_move_response,
5656 { "f-group-move-response", "ftam.f_group_move_response_element",
5657 FT_NONE, BASE_NONE, NULL, 0,
5658 NULL, HFILL }},
5659 { &hf_ftam_f_group_copy_request,
5660 { "f-group-copy-request", "ftam.f_group_copy_request_element",
5661 FT_NONE, BASE_NONE, NULL, 0,
5662 NULL, HFILL }},
5663 { &hf_ftam_f_group_copy_response,
5664 { "f-group-copy-response", "ftam.f_group_copy_response_element",
5665 FT_NONE, BASE_NONE, NULL, 0,
5666 NULL, HFILL }},
5667 { &hf_ftam_f_group_list_request,
5668 { "f-group-list-request", "ftam.f_group_list_request_element",
5669 FT_NONE, BASE_NONE, NULL, 0,
5670 NULL, HFILL }},
5671 { &hf_ftam_f_group_list_response,
5672 { "f-group-list-response", "ftam.f_group_list_response_element",
5673 FT_NONE, BASE_NONE, NULL, 0,
5674 NULL, HFILL }},
5675 { &hf_ftam_f_group_Change_attrib_request,
5676 { "f-group-Change-attrib-request", "ftam.f_group_Change_attrib_request_element",
5677 FT_NONE, BASE_NONE, NULL, 0,
5678 NULL, HFILL }},
5679 { &hf_ftam_f_group_Change_attrib_response,
5680 { "f-group-Change-attrib-response", "ftam.f_group_Change_attrib_response_element",
5681 FT_NONE, BASE_NONE, NULL, 0,
5682 NULL, HFILL }},
5683 { &hf_ftam_f_select_another_request,
5684 { "f-select-another-request", "ftam.f_select_another_request_element",
5685 FT_NONE, BASE_NONE, NULL, 0,
5686 NULL, HFILL }},
5687 { &hf_ftam_f_select_another_response,
5688 { "f-select-another-response", "ftam.f_select_another_response_element",
5689 FT_NONE, BASE_NONE, NULL, 0,
5690 NULL, HFILL }},
5691 { &hf_ftam_f_create_directory_request,
5692 { "f-create-directory-request", "ftam.f_create_directory_request_element",
5693 FT_NONE, BASE_NONE, NULL, 0,
5694 NULL, HFILL }},
5695 { &hf_ftam_f_create_directory_response,
5696 { "f-create-directory-response", "ftam.f_create_directory_response_element",
5697 FT_NONE, BASE_NONE, NULL, 0,
5698 NULL, HFILL }},
5699 { &hf_ftam_f_link_request,
5700 { "f-link-request", "ftam.f_link_request_element",
5701 FT_NONE, BASE_NONE, NULL, 0,
5702 NULL, HFILL }},
5703 { &hf_ftam_f_link_response,
5704 { "f-link-response", "ftam.f_link_response_element",
5705 FT_NONE, BASE_NONE, NULL, 0,
5706 NULL, HFILL }},
5707 { &hf_ftam_f_unlink_request,
5708 { "f-unlink-request", "ftam.f_unlink_request_element",
5709 FT_NONE, BASE_NONE, NULL, 0,
5710 NULL, HFILL }},
5711 { &hf_ftam_f_unlink_response,
5712 { "f-unlink-response", "ftam.f_unlink_response_element",
5713 FT_NONE, BASE_NONE, NULL, 0,
5714 NULL, HFILL }},
5715 { &hf_ftam_f_read_link_attrib_request,
5716 { "f-read-link-attrib-request", "ftam.f_read_link_attrib_request_element",
5717 FT_NONE, BASE_NONE, NULL, 0,
5718 NULL, HFILL }},
5719 { &hf_ftam_f_read_link_attrib_response,
5720 { "f-read-link-attrib-response", "ftam.f_read_link_attrib_response_element",
5721 FT_NONE, BASE_NONE, NULL, 0,
5722 NULL, HFILL }},
5723 { &hf_ftam_f_Change_link_attrib_request,
5724 { "f-Change-link-attrib-request", "ftam.f_Change_link_attrib_request_element",
5725 FT_NONE, BASE_NONE, NULL, 0,
5726 NULL, HFILL }},
5727 { &hf_ftam_f_Change_Iink_attrib_response,
5728 { "f-Change-Iink-attrib-response", "ftam.f_Change_Iink_attrib_response_element",
5729 FT_NONE, BASE_NONE, NULL, 0,
5730 "F_CHANGE_LINK_ATTRIB_response", HFILL }},
5731 { &hf_ftam_f_move_request,
5732 { "f-move-request", "ftam.f_move_request_element",
5733 FT_NONE, BASE_NONE, NULL, 0,
5734 NULL, HFILL }},
5735 { &hf_ftam_f_move_response,
5736 { "f-move-response", "ftam.f_move_response_element",
5737 FT_NONE, BASE_NONE, NULL, 0,
5738 NULL, HFILL }},
5739 { &hf_ftam_f_copy_request,
5740 { "f-copy-request", "ftam.f_copy_request_element",
5741 FT_NONE, BASE_NONE, NULL, 0,
5742 NULL, HFILL }},
5743 { &hf_ftam_f_copy_response,
5744 { "f-copy-response", "ftam.f_copy_response_element",
5745 FT_NONE, BASE_NONE, NULL, 0,
5746 NULL, HFILL }},
5747 { &hf_ftam_reset,
5748 { "reset", "ftam.reset",
5749 FT_BOOLEAN, BASE_NONE, NULL, 0,
5750 "BOOLEAN", HFILL }},
5751 { &hf_ftam_destination_file_directory,
5752 { "destination-file-directory", "ftam.destination_file_directory",
5753 FT_UINT32, BASE_DEC, VALS(ftam_Pathname_Attribute_vals), 0,
5754 NULL, HFILL }},
5755 { &hf_ftam_attribute_value_asset_tions,
5756 { "attribute-value-asset-tions", "ftam.attribute_value_asset_tions",
5757 FT_UINT32, BASE_DEC, NULL, 0,
5758 "Attribute_Value_Assertions", HFILL }},
5759 { &hf_ftam_scope,
5760 { "scope", "ftam.scope",
5761 FT_UINT32, BASE_DEC, NULL, 0,
5762 NULL, HFILL }},
5763 { &hf_ftam_objects_attributes_list,
5764 { "objects-attributes-list", "ftam.objects_attributes_list",
5765 FT_UINT32, BASE_DEC, NULL, 0,
5766 NULL, HFILL }},
5767 { &hf_ftam_attribute_value_assertions,
5768 { "attribute-value-assertions", "ftam.attribute_value_assertions",
5769 FT_UINT32, BASE_DEC, NULL, 0,
5770 NULL, HFILL }},
5771 { &hf_ftam_maximum_set_size,
5772 { "maximum-set-size", "ftam.maximum_set_size",
5773 FT_INT32, BASE_DEC, NULL, 0,
5774 "INTEGER", HFILL }},
5775 { &hf_ftam_request_Operation_result,
5776 { "request-Operation-result", "ftam.request_Operation_result",
5777 FT_INT32, BASE_DEC, VALS(ftam_Request_Operation_Result_U_vals), 0,
5778 NULL, HFILL }},
5779 { &hf_ftam_operation_result,
5780 { "operation-result", "ftam.operation_result",
5781 FT_UINT32, BASE_DEC, VALS(ftam_Operation_Result_U_vals), 0,
5782 NULL, HFILL }},
5783 { &hf_ftam_error_action,
5784 { "error-action", "ftam.error_action",
5785 FT_INT32, BASE_DEC, VALS(ftam_Error_Action_vals), 0,
5786 NULL, HFILL }},
5787 { &hf_ftam_last_member_indicator,
5788 { "last-member-indicator", "ftam.last_member_indicator",
5789 FT_BOOLEAN, BASE_NONE, NULL, 0,
5790 "BOOLEAN", HFILL }},
5791 { &hf_ftam_shared_ASE_infonnation,
5792 { "shared-ASE-infonnation", "ftam.shared_ASE_infonnation_element",
5793 FT_NONE, BASE_NONE, NULL, 0,
5794 "Shared_ASE_Information", HFILL }},
5795 { &hf_ftam_target_object,
5796 { "target-object", "ftam.target_object",
5797 FT_UINT32, BASE_DEC, VALS(ftam_Pathname_Attribute_vals), 0,
5798 "Pathname_Attribute", HFILL }},
5799 { &hf_ftam_target_Object,
5800 { "target-Object", "ftam.target_Object",
5801 FT_UINT32, BASE_DEC, VALS(ftam_Pathname_Attribute_vals), 0,
5802 "Pathname_Attribute", HFILL }},
5803 { &hf_ftam_read_link_attributes,
5804 { "attributes", "ftam.read_link_attributes_element",
5805 FT_NONE, BASE_NONE, NULL, 0,
5806 "Read_Attributes", HFILL }},
5807 { &hf_ftam_Attribute_Extension_Names_item,
5808 { "Attribute-Extension-Set-Name", "ftam.Attribute_Extension_Set_Name_element",
5809 FT_NONE, BASE_NONE, NULL, 0,
5810 NULL, HFILL }},
5811 { &hf_ftam_extension_set_identifier,
5812 { "extension-set-identifier", "ftam.extension_set_identifier",
5813 FT_OID, BASE_NONE, NULL, 0,
5814 NULL, HFILL }},
5815 { &hf_ftam_extension_attribute_names,
5816 { "extension-attribute-names", "ftam.extension_attribute_names",
5817 FT_UINT32, BASE_DEC, NULL, 0,
5818 "SEQUENCE_OF_Extension_Attribute_identifier", HFILL }},
5819 { &hf_ftam_extension_attribute_names_item,
5820 { "Extension-Attribute-identifier", "ftam.Extension_Attribute_identifier",
5821 FT_OID, BASE_NONE, NULL, 0,
5822 NULL, HFILL }},
5823 { &hf_ftam_Attribute_Extensions_item,
5824 { "Attribute-Extension-Set", "ftam.Attribute_Extension_Set_element",
5825 FT_NONE, BASE_NONE, NULL, 0,
5826 NULL, HFILL }},
5827 { &hf_ftam_extension_set_attributes,
5828 { "extension-set-attributes", "ftam.extension_set_attributes",
5829 FT_UINT32, BASE_DEC, NULL, 0,
5830 "SEQUENCE_OF_Extension_Attribute", HFILL }},
5831 { &hf_ftam_extension_set_attributes_item,
5832 { "Extension-Attribute", "ftam.Extension_Attribute_element",
5833 FT_NONE, BASE_NONE, NULL, 0,
5834 NULL, HFILL }},
5835 { &hf_ftam_extension_attribute_identifier,
5836 { "extension-attribute-identifier", "ftam.extension_attribute_identifier",
5837 FT_OID, BASE_NONE, NULL, 0,
5838 NULL, HFILL }},
5839 { &hf_ftam_extension_attribute,
5840 { "extension-attribute", "ftam.extension_attribute_element",
5841 FT_NONE, BASE_NONE, NULL, 0,
5842 NULL, HFILL }},
5843 { &hf_ftam__untag_item_03,
5844 { "_untag item", "ftam._untag_item_element",
5845 FT_NONE, BASE_NONE, NULL, 0,
5846 NULL, HFILL }},
5847 { &hf_ftam_root_directory,
5848 { "root-directory", "ftam.root_directory",
5849 FT_UINT32, BASE_DEC, VALS(ftam_Pathname_Attribute_vals), 0,
5850 "Pathname_Attribute", HFILL }},
5851 { &hf_ftam_retrieval_scope,
5852 { "retrieval-scope", "ftam.retrieval_scope",
5853 FT_INT32, BASE_DEC, VALS(ftam_T_retrieval_scope_vals), 0,
5854 NULL, HFILL }},
5855 { &hf_ftam_OR_Set_item,
5856 { "AND-Set", "ftam.AND_Set",
5857 FT_UINT32, BASE_DEC, NULL, 0,
5858 NULL, HFILL }},
5859 { &hf_ftam_AND_Set_item,
5860 { "AND-Set item", "ftam.AND_Set_item",
5861 FT_UINT32, BASE_DEC, VALS(ftam_AND_Set_item_vals), 0,
5862 NULL, HFILL }},
5863 { &hf_ftam_pathname_Pattern,
5864 { "pathname-Pattern", "ftam.pathname_Pattern_element",
5865 FT_NONE, BASE_NONE, NULL, 0,
5866 NULL, HFILL }},
5867 { &hf_ftam_object_type_Pattern,
5868 { "object-type-Pattern", "ftam.object_type_Pattern_element",
5869 FT_NONE, BASE_NONE, NULL, 0,
5870 "Integer_Pattern", HFILL }},
5871 { &hf_ftam_permitted_actions_Pattern,
5872 { "permitted-actions-Pattern", "ftam.permitted_actions_Pattern_element",
5873 FT_NONE, BASE_NONE, NULL, 0,
5874 "Bitstring_Pattern", HFILL }},
5875 { &hf_ftam_contents_type_Pattern,
5876 { "contents-type-Pattern", "ftam.contents_type_Pattern",
5877 FT_UINT32, BASE_DEC, VALS(ftam_Contents_Type_Pattern_vals), 0,
5878 NULL, HFILL }},
5879 { &hf_ftam_linked_Object_Pattern,
5880 { "linked-Object-Pattern", "ftam.linked_Object_Pattern_element",
5881 FT_NONE, BASE_NONE, NULL, 0,
5882 "Pathname_Pattern", HFILL }},
5883 { &hf_ftam_child_objects_Pattern,
5884 { "child-objects-Pattern", "ftam.child_objects_Pattern_element",
5885 FT_NONE, BASE_NONE, NULL, 0,
5886 "Pathname_Pattern", HFILL }},
5887 { &hf_ftam_primaty_pathname_Pattern,
5888 { "primaty-pathname-Pattern", "ftam.primaty_pathname_Pattern_element",
5889 FT_NONE, BASE_NONE, NULL, 0,
5890 "Pathname_Pattern", HFILL }},
5891 { &hf_ftam_storage_account_Pattern,
5892 { "storage-account-Pattern", "ftam.storage_account_Pattern_element",
5893 FT_NONE, BASE_NONE, NULL, 0,
5894 "String_Pattern", HFILL }},
5895 { &hf_ftam_date_and_time_of_creation_Pattern,
5896 { "date-and-time-of-creation-Pattern", "ftam.date_and_time_of_creation_Pattern_element",
5897 FT_NONE, BASE_NONE, NULL, 0,
5898 "Date_and_Time_Pattern", HFILL }},
5899 { &hf_ftam_date_and_time_of_last_modification_Pattern,
5900 { "date-and-time-of-last-modification-Pattern", "ftam.date_and_time_of_last_modification_Pattern_element",
5901 FT_NONE, BASE_NONE, NULL, 0,
5902 "Date_and_Time_Pattern", HFILL }},
5903 { &hf_ftam_date_and_time_of_last_read_access_Pattern,
5904 { "date-and-time-of-last-read-access-Pattern", "ftam.date_and_time_of_last_read_access_Pattern_element",
5905 FT_NONE, BASE_NONE, NULL, 0,
5906 "Date_and_Time_Pattern", HFILL }},
5907 { &hf_ftam_date_and_time_of_last_attribute_modification_Pattern,
5908 { "date-and-time-of-last-attribute-modification-Pattern", "ftam.date_and_time_of_last_attribute_modification_Pattern_element",
5909 FT_NONE, BASE_NONE, NULL, 0,
5910 "Date_and_Time_Pattern", HFILL }},
5911 { &hf_ftam_identity_of_creator_Pattern,
5912 { "identity-of-creator-Pattern", "ftam.identity_of_creator_Pattern_element",
5913 FT_NONE, BASE_NONE, NULL, 0,
5914 "User_Identity_Pattern", HFILL }},
5915 { &hf_ftam_identity_of_last_modifier_Pattern,
5916 { "identity-of-last-modifier-Pattern", "ftam.identity_of_last_modifier_Pattern_element",
5917 FT_NONE, BASE_NONE, NULL, 0,
5918 "User_Identity_Pattern", HFILL }},
5919 { &hf_ftam_identity_of_last_reader_Pattern,
5920 { "identity-of-last-reader-Pattern", "ftam.identity_of_last_reader_Pattern_element",
5921 FT_NONE, BASE_NONE, NULL, 0,
5922 "User_Identity_Pattern", HFILL }},
5923 { &hf_ftam_identity_of_last_attribute_modifier_Pattern,
5924 { "identity-of-last-attribute-modifier-Pattern", "ftam.identity_of_last_attribute_modifier_Pattern_element",
5925 FT_NONE, BASE_NONE, NULL, 0,
5926 "User_Identity_Pattern", HFILL }},
5927 { &hf_ftam_object_availabiiity_Pattern,
5928 { "object-availabiiity-Pattern", "ftam.object_availabiiity_Pattern_element",
5929 FT_NONE, BASE_NONE, NULL, 0,
5930 "Boolean_Pattern", HFILL }},
5931 { &hf_ftam_object_size_Pattern,
5932 { "object-size-Pattern", "ftam.object_size_Pattern_element",
5933 FT_NONE, BASE_NONE, NULL, 0,
5934 "Integer_Pattern", HFILL }},
5935 { &hf_ftam_future_object_size_Pattern,
5936 { "future-object-size-Pattern", "ftam.future_object_size_Pattern_element",
5937 FT_NONE, BASE_NONE, NULL, 0,
5938 "Integer_Pattern", HFILL }},
5939 { &hf_ftam_legal_quailfication_Pattern,
5940 { "legal-quailfication-Pattern", "ftam.legal_quailfication_Pattern_element",
5941 FT_NONE, BASE_NONE, NULL, 0,
5942 "String_Pattern", HFILL }},
5943 { &hf_ftam_attribute_extensions_pattern,
5944 { "attribute-extensions-pattern", "ftam.attribute_extensions_pattern",
5945 FT_UINT32, BASE_DEC, NULL, 0,
5946 NULL, HFILL }},
5947 { &hf_ftam_equality_comparision,
5948 { "equality-comparision", "ftam.equality_comparision",
5949 FT_BYTES, BASE_NONE, NULL, 0,
5950 NULL, HFILL }},
5951 { &hf_ftam_pathname_value,
5952 { "pathname-value", "ftam.pathname_value",
5953 FT_UINT32, BASE_DEC, NULL, 0,
5954 NULL, HFILL }},
5955 { &hf_ftam_pathname_value_item,
5956 { "pathname-value item", "ftam.pathname_value_item",
5957 FT_UINT32, BASE_DEC, VALS(ftam_T_pathname_value_item_vals), 0,
5958 NULL, HFILL }},
5959 { &hf_ftam_string_match,
5960 { "string-match", "ftam.string_match_element",
5961 FT_NONE, BASE_NONE, NULL, 0,
5962 "String_Pattern", HFILL }},
5963 { &hf_ftam_any_match,
5964 { "any-match", "ftam.any_match_element",
5965 FT_NONE, BASE_NONE, NULL, 0,
5966 NULL, HFILL }},
5967 { &hf_ftam_string_value,
5968 { "string-value", "ftam.string_value",
5969 FT_UINT32, BASE_DEC, NULL, 0,
5970 NULL, HFILL }},
5971 { &hf_ftam_string_value_item,
5972 { "string-value item", "ftam.string_value_item",
5973 FT_UINT32, BASE_DEC, VALS(ftam_T_string_value_item_vals), 0,
5974 NULL, HFILL }},
5975 { &hf_ftam_substring_match,
5976 { "substring-match", "ftam.substring_match",
5977 FT_STRING, BASE_NONE, NULL, 0,
5978 "GraphicString", HFILL }},
5979 { &hf_ftam_number_of_characters_match,
5980 { "number-of-characters-match", "ftam.number_of_characters_match",
5981 FT_INT32, BASE_DEC, NULL, 0,
5982 "INTEGER", HFILL }},
5983 { &hf_ftam_match_bitstring,
5984 { "match-bitstring", "ftam.match_bitstring",
5985 FT_BYTES, BASE_NONE, NULL, 0,
5986 "BIT_STRING", HFILL }},
5987 { &hf_ftam_significance_bitstring,
5988 { "significance-bitstring", "ftam.significance_bitstring",
5989 FT_BYTES, BASE_NONE, NULL, 0,
5990 "BIT_STRING", HFILL }},
5991 { &hf_ftam_relational_camparision,
5992 { "relational-camparision", "ftam.relational_camparision",
5993 FT_BYTES, BASE_NONE, NULL, 0,
5994 "Equality_Comparision", HFILL }},
5995 { &hf_ftam_time_and_date_value,
5996 { "time-and-date-value", "ftam.time_and_date_value",
5997 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
5998 "GeneralizedTime", HFILL }},
5999 { &hf_ftam_relational_comparision,
6000 { "relational-comparision", "ftam.relational_comparision",
6001 FT_BYTES, BASE_NONE, NULL, 0,
6002 NULL, HFILL }},
6003 { &hf_ftam_integer_value,
6004 { "integer-value", "ftam.integer_value",
6005 FT_INT32, BASE_DEC, NULL, 0,
6006 "INTEGER", HFILL }},
6007 { &hf_ftam_object_identifier_value,
6008 { "object-identifier-value", "ftam.object_identifier_value",
6009 FT_OID, BASE_NONE, NULL, 0,
6010 "OBJECT_IDENTIFIER", HFILL }},
6011 { &hf_ftam_boolean_value,
6012 { "boolean-value", "ftam.boolean_value",
6013 FT_BOOLEAN, BASE_NONE, NULL, 0,
6014 "BOOLEAN", HFILL }},
6015 { &hf_ftam_document_type_Pattern,
6016 { "document-type-Pattern", "ftam.document_type_Pattern_element",
6017 FT_NONE, BASE_NONE, NULL, 0,
6018 "Object_Identifier_Pattern", HFILL }},
6019 { &hf_ftam_constraint_set_abstract_Syntax_Pattern,
6020 { "constraint-set-abstract-Syntax-Pattern", "ftam.constraint_set_abstract_Syntax_Pattern_element",
6021 FT_NONE, BASE_NONE, NULL, 0,
6022 "T_constraint_set_abstract_Syntax_Pattern", HFILL }},
6023 { &hf_ftam_constraint_Set_Pattern,
6024 { "constraint-Set-Pattern", "ftam.constraint_Set_Pattern_element",
6025 FT_NONE, BASE_NONE, NULL, 0,
6026 "Object_Identifier_Pattern", HFILL }},
6027 { &hf_ftam_abstract_Syntax_Pattern,
6028 { "abstract-Syntax-Pattern", "ftam.abstract_Syntax_Pattern_element",
6029 FT_NONE, BASE_NONE, NULL, 0,
6030 "Object_Identifier_Pattern", HFILL }},
6031 { &hf_ftam_Attribute_Extensions_Pattern_item,
6032 { "Attribute-Extensions-Pattern item", "ftam.Attribute_Extensions_Pattern_item_element",
6033 FT_NONE, BASE_NONE, NULL, 0,
6034 NULL, HFILL }},
6035 { &hf_ftam_extension_set_attribute_Patterns,
6036 { "extension-set-attribute-Patterns", "ftam.extension_set_attribute_Patterns",
6037 FT_UINT32, BASE_DEC, NULL, 0,
6038 "T_extension_set_attribute_Patterns", HFILL }},
6039 { &hf_ftam_extension_set_attribute_Patterns_item,
6040 { "extension-set-attribute-Patterns item", "ftam.extension_set_attribute_Patterns_item_element",
6041 FT_NONE, BASE_NONE, NULL, 0,
6042 "T_extension_set_attribute_Patterns_item", HFILL }},
6043 { &hf_ftam_attribute_extension_attribute_identifier,
6044 { "extension-attribute-identifier", "ftam.attribute_extension_attribute_identifier",
6045 FT_OID, BASE_NONE, NULL, 0,
6046 "T_attribute_extension_attribute_identifier", HFILL }},
6047 { &hf_ftam_extension_attribute_Pattern,
6048 { "extension-attribute-Pattern", "ftam.extension_attribute_Pattern_element",
6049 FT_NONE, BASE_NONE, NULL, 0,
6050 NULL, HFILL }},
6051 { &hf_ftam__untag_item_04,
6052 { "Read-Attributes", "ftam.Read_Attributes_element",
6053 FT_NONE, BASE_NONE, NULL, 0,
6054 NULL, HFILL }},
6055 { &hf_ftam_success_Object_count,
6056 { "success-Object-count", "ftam.success_Object_count",
6057 FT_INT32, BASE_DEC, NULL, 0,
6058 "INTEGER", HFILL }},
6059 { &hf_ftam_success_Object_names,
6060 { "success-Object-names", "ftam.success_Object_names",
6061 FT_UINT32, BASE_DEC, NULL, 0,
6062 "SEQUENCE_OF_Pathname", HFILL }},
6063 { &hf_ftam_success_Object_names_item,
6064 { "Pathname", "ftam.Pathname",
6065 FT_UINT32, BASE_DEC, NULL, 0,
6066 NULL, HFILL }},
6067 { &hf_ftam_Pathname_item,
6068 { "Pathname item", "ftam.Pathname_item",
6069 FT_STRING, BASE_NONE, NULL, 0,
6070 "GraphicString", HFILL }},
6071 { &hf_ftam_Pass_Passwords_item,
6072 { "Password", "ftam.Password",
6073 FT_UINT32, BASE_DEC, VALS(ftam_Password_U_vals), 0,
6074 NULL, HFILL }},
6075 { &hf_ftam__untag_item_05,
6076 { "_untag item", "ftam._untag_item_element",
6077 FT_NONE, BASE_NONE, NULL, 0,
6078 "Path_Access_Passwords_item", HFILL }},
6079 { &hf_ftam_ap,
6080 { "ap", "ftam.ap",
6081 FT_UINT32, BASE_DEC, VALS(acse_AP_title_vals), 0,
6082 "AP_title", HFILL }},
6083 { &hf_ftam_ae,
6084 { "ae", "ftam.ae",
6085 FT_UINT32, BASE_DEC, VALS(acse_ASO_qualifier_vals), 0,
6086 "AE_qualifier", HFILL }},
6087 { &hf_ftam_Protocol_Version_U_version_1,
6088 { "version-1", "ftam.Protocol.Version.U.version.1",
6089 FT_BOOLEAN, 8, NULL, 0x80,
6090 NULL, HFILL }},
6091 { &hf_ftam_Protocol_Version_U_version_2,
6092 { "version-2", "ftam.Protocol.Version.U.version.2",
6093 FT_BOOLEAN, 8, NULL, 0x40,
6094 NULL, HFILL }},
6095 { &hf_ftam_Service_Class_U_unconstrained_class,
6096 { "unconstrained-class", "ftam.Service.Class.U.unconstrained.class",
6097 FT_BOOLEAN, 8, NULL, 0x80,
6098 NULL, HFILL }},
6099 { &hf_ftam_Service_Class_U_management_class,
6100 { "management-class", "ftam.Service.Class.U.management.class",
6101 FT_BOOLEAN, 8, NULL, 0x40,
6102 NULL, HFILL }},
6103 { &hf_ftam_Service_Class_U_transfer_class,
6104 { "transfer-class", "ftam.Service.Class.U.transfer.class",
6105 FT_BOOLEAN, 8, NULL, 0x20,
6106 NULL, HFILL }},
6107 { &hf_ftam_Service_Class_U_transfer_and_management_class,
6108 { "transfer-and-management-class", "ftam.Service.Class.U.transfer.and.management.class",
6109 FT_BOOLEAN, 8, NULL, 0x10,
6110 NULL, HFILL }},
6111 { &hf_ftam_Service_Class_U_access_class,
6112 { "access-class", "ftam.Service.Class.U.access.class",
6113 FT_BOOLEAN, 8, NULL, 0x08,
6114 NULL, HFILL }},
6115 { &hf_ftam_Functional_Units_U_spare_bit0,
6116 { "spare_bit0", "ftam.Functional.Units.U.spare.bit0",
6117 FT_BOOLEAN, 8, NULL, 0x80,
6118 NULL, HFILL }},
6119 { &hf_ftam_Functional_Units_U_spare_bit1,
6120 { "spare_bit1", "ftam.Functional.Units.U.spare.bit1",
6121 FT_BOOLEAN, 8, NULL, 0x40,
6122 NULL, HFILL }},
6123 { &hf_ftam_Functional_Units_U_read,
6124 { "read", "ftam.Functional.Units.U.read",
6125 FT_BOOLEAN, 8, NULL, 0x20,
6126 NULL, HFILL }},
6127 { &hf_ftam_Functional_Units_U_write,
6128 { "write", "ftam.Functional.Units.U.write",
6129 FT_BOOLEAN, 8, NULL, 0x10,
6130 NULL, HFILL }},
6131 { &hf_ftam_Functional_Units_U_file_access,
6132 { "file-access", "ftam.Functional.Units.U.file.access",
6133 FT_BOOLEAN, 8, NULL, 0x08,
6134 NULL, HFILL }},
6135 { &hf_ftam_Functional_Units_U_limited_file_management,
6136 { "limited-file-management", "ftam.Functional.Units.U.limited.file.management",
6137 FT_BOOLEAN, 8, NULL, 0x04,
6138 NULL, HFILL }},
6139 { &hf_ftam_Functional_Units_U_enhanced_file_management,
6140 { "enhanced-file-management", "ftam.Functional.Units.U.enhanced.file.management",
6141 FT_BOOLEAN, 8, NULL, 0x02,
6142 NULL, HFILL }},
6143 { &hf_ftam_Functional_Units_U_grouping,
6144 { "grouping", "ftam.Functional.Units.U.grouping",
6145 FT_BOOLEAN, 8, NULL, 0x01,
6146 NULL, HFILL }},
6147 { &hf_ftam_Functional_Units_U_fadu_locking,
6148 { "fadu-locking", "ftam.Functional.Units.U.fadu.locking",
6149 FT_BOOLEAN, 8, NULL, 0x80,
6150 NULL, HFILL }},
6151 { &hf_ftam_Functional_Units_U_recovery,
6152 { "recovery", "ftam.Functional.Units.U.recovery",
6153 FT_BOOLEAN, 8, NULL, 0x40,
6154 NULL, HFILL }},
6155 { &hf_ftam_Functional_Units_U_restart_data_transfer,
6156 { "restart-data-transfer", "ftam.Functional.Units.U.restart.data.transfer",
6157 FT_BOOLEAN, 8, NULL, 0x20,
6158 NULL, HFILL }},
6159 { &hf_ftam_Functional_Units_U_limited_filestore_management,
6160 { "limited-filestore-management", "ftam.Functional.Units.U.limited.filestore.management",
6161 FT_BOOLEAN, 8, NULL, 0x10,
6162 NULL, HFILL }},
6163 { &hf_ftam_Functional_Units_U_enhanced_filestore_management,
6164 { "enhanced-filestore-management", "ftam.Functional.Units.U.enhanced.filestore.management",
6165 FT_BOOLEAN, 8, NULL, 0x08,
6166 NULL, HFILL }},
6167 { &hf_ftam_Functional_Units_U_object_manipulation,
6168 { "object-manipulation", "ftam.Functional.Units.U.object.manipulation",
6169 FT_BOOLEAN, 8, NULL, 0x04,
6170 NULL, HFILL }},
6171 { &hf_ftam_Functional_Units_U_group_manipulation,
6172 { "group-manipulation", "ftam.Functional.Units.U.group.manipulation",
6173 FT_BOOLEAN, 8, NULL, 0x02,
6174 NULL, HFILL }},
6175 { &hf_ftam_Functional_Units_U_consecutive_access,
6176 { "consecutive-access", "ftam.Functional.Units.U.consecutive.access",
6177 FT_BOOLEAN, 8, NULL, 0x01,
6178 NULL, HFILL }},
6179 { &hf_ftam_Functional_Units_U_concurrent_access,
6180 { "concurrent-access", "ftam.Functional.Units.U.concurrent.access",
6181 FT_BOOLEAN, 8, NULL, 0x80,
6182 NULL, HFILL }},
6183 { &hf_ftam_Attribute_Groups_U_storage,
6184 { "storage", "ftam.Attribute.Groups.U.storage",
6185 FT_BOOLEAN, 8, NULL, 0x80,
6186 NULL, HFILL }},
6187 { &hf_ftam_Attribute_Groups_U_security,
6188 { "security", "ftam.Attribute.Groups.U.security",
6189 FT_BOOLEAN, 8, NULL, 0x40,
6190 NULL, HFILL }},
6191 { &hf_ftam_Attribute_Groups_U_private,
6192 { "private", "ftam.Attribute.Groups.U.private",
6193 FT_BOOLEAN, 8, NULL, 0x20,
6194 NULL, HFILL }},
6195 { &hf_ftam_Attribute_Groups_U_extension,
6196 { "extension", "ftam.Attribute.Groups.U.extension",
6197 FT_BOOLEAN, 8, NULL, 0x10,
6198 NULL, HFILL }},
6199 { &hf_ftam_T_processing_mode_f_read,
6200 { "f-read", "ftam.T.processing.mode.f.read",
6201 FT_BOOLEAN, 8, NULL, 0x80,
6202 NULL, HFILL }},
6203 { &hf_ftam_T_processing_mode_f_insert,
6204 { "f-insert", "ftam.T.processing.mode.f.insert",
6205 FT_BOOLEAN, 8, NULL, 0x40,
6206 NULL, HFILL }},
6207 { &hf_ftam_T_processing_mode_f_replace,
6208 { "f-replace", "ftam.T.processing.mode.f.replace",
6209 FT_BOOLEAN, 8, NULL, 0x20,
6210 NULL, HFILL }},
6211 { &hf_ftam_T_processing_mode_f_extend,
6212 { "f-extend", "ftam.T.processing.mode.f.extend",
6213 FT_BOOLEAN, 8, NULL, 0x10,
6214 NULL, HFILL }},
6215 { &hf_ftam_T_processing_mode_f_erase,
6216 { "f-erase", "ftam.T.processing.mode.f.erase",
6217 FT_BOOLEAN, 8, NULL, 0x08,
6218 NULL, HFILL }},
6219 { &hf_ftam_Access_Request_U_read,
6220 { "read", "ftam.Access.Request.U.read",
6221 FT_BOOLEAN, 8, NULL, 0x80,
6222 NULL, HFILL }},
6223 { &hf_ftam_Access_Request_U_insert,
6224 { "insert", "ftam.Access.Request.U.insert",
6225 FT_BOOLEAN, 8, NULL, 0x40,
6226 NULL, HFILL }},
6227 { &hf_ftam_Access_Request_U_replace,
6228 { "replace", "ftam.Access.Request.U.replace",
6229 FT_BOOLEAN, 8, NULL, 0x20,
6230 NULL, HFILL }},
6231 { &hf_ftam_Access_Request_U_extend,
6232 { "extend", "ftam.Access.Request.U.extend",
6233 FT_BOOLEAN, 8, NULL, 0x10,
6234 NULL, HFILL }},
6235 { &hf_ftam_Access_Request_U_erase,
6236 { "erase", "ftam.Access.Request.U.erase",
6237 FT_BOOLEAN, 8, NULL, 0x08,
6238 NULL, HFILL }},
6239 { &hf_ftam_Access_Request_U_read_attribute,
6240 { "read-attribute", "ftam.Access.Request.U.read.attribute",
6241 FT_BOOLEAN, 8, NULL, 0x04,
6242 NULL, HFILL }},
6243 { &hf_ftam_Access_Request_U_change_attribute,
6244 { "change-attribute", "ftam.Access.Request.U.change.attribute",
6245 FT_BOOLEAN, 8, NULL, 0x02,
6246 NULL, HFILL }},
6247 { &hf_ftam_Access_Request_U_delete_Object,
6248 { "delete-Object", "ftam.Access.Request.U.delete.Object",
6249 FT_BOOLEAN, 8, NULL, 0x01,
6250 NULL, HFILL }},
6251 { &hf_ftam_Concurrency_Key_not_required,
6252 { "not-required", "ftam.Concurrency.Key.not.required",
6253 FT_BOOLEAN, 8, NULL, 0x80,
6254 NULL, HFILL }},
6255 { &hf_ftam_Concurrency_Key_shared,
6256 { "shared", "ftam.Concurrency.Key.shared",
6257 FT_BOOLEAN, 8, NULL, 0x40,
6258 NULL, HFILL }},
6259 { &hf_ftam_Concurrency_Key_exclusive,
6260 { "exclusive", "ftam.Concurrency.Key.exclusive",
6261 FT_BOOLEAN, 8, NULL, 0x20,
6262 NULL, HFILL }},
6263 { &hf_ftam_Concurrency_Key_no_access,
6264 { "no-access", "ftam.Concurrency.Key.no.access",
6265 FT_BOOLEAN, 8, NULL, 0x10,
6266 NULL, HFILL }},
6267 { &hf_ftam_Permitted_Actions_Attribute_read,
6268 { "read", "ftam.Permitted.Actions.Attribute.read",
6269 FT_BOOLEAN, 8, NULL, 0x80,
6270 NULL, HFILL }},
6271 { &hf_ftam_Permitted_Actions_Attribute_insert,
6272 { "insert", "ftam.Permitted.Actions.Attribute.insert",
6273 FT_BOOLEAN, 8, NULL, 0x40,
6274 NULL, HFILL }},
6275 { &hf_ftam_Permitted_Actions_Attribute_replace,
6276 { "replace", "ftam.Permitted.Actions.Attribute.replace",
6277 FT_BOOLEAN, 8, NULL, 0x20,
6278 NULL, HFILL }},
6279 { &hf_ftam_Permitted_Actions_Attribute_extend,
6280 { "extend", "ftam.Permitted.Actions.Attribute.extend",
6281 FT_BOOLEAN, 8, NULL, 0x10,
6282 NULL, HFILL }},
6283 { &hf_ftam_Permitted_Actions_Attribute_erase,
6284 { "erase", "ftam.Permitted.Actions.Attribute.erase",
6285 FT_BOOLEAN, 8, NULL, 0x08,
6286 NULL, HFILL }},
6287 { &hf_ftam_Permitted_Actions_Attribute_read_attribute,
6288 { "read-attribute", "ftam.Permitted.Actions.Attribute.read.attribute",
6289 FT_BOOLEAN, 8, NULL, 0x04,
6290 NULL, HFILL }},
6291 { &hf_ftam_Permitted_Actions_Attribute_change_attribute,
6292 { "change-attribute", "ftam.Permitted.Actions.Attribute.change.attribute",
6293 FT_BOOLEAN, 8, NULL, 0x02,
6294 NULL, HFILL }},
6295 { &hf_ftam_Permitted_Actions_Attribute_delete_Object,
6296 { "delete-Object", "ftam.Permitted.Actions.Attribute.delete.Object",
6297 FT_BOOLEAN, 8, NULL, 0x01,
6298 NULL, HFILL }},
6299 { &hf_ftam_Permitted_Actions_Attribute_traversal,
6300 { "traversal", "ftam.Permitted.Actions.Attribute.traversal",
6301 FT_BOOLEAN, 8, NULL, 0x80,
6302 NULL, HFILL }},
6303 { &hf_ftam_Permitted_Actions_Attribute_reverse_traversal,
6304 { "reverse-traversal", "ftam.Permitted.Actions.Attribute.reverse.traversal",
6305 FT_BOOLEAN, 8, NULL, 0x40,
6306 NULL, HFILL }},
6307 { &hf_ftam_Permitted_Actions_Attribute_random_Order,
6308 { "random-Order", "ftam.Permitted.Actions.Attribute.random.Order",
6309 FT_BOOLEAN, 8, NULL, 0x20,
6310 NULL, HFILL }},
6311 { &hf_ftam_Permitted_Actions_Attribute_pass,
6312 { "pass", "ftam.Permitted.Actions.Attribute.pass",
6313 FT_BOOLEAN, 8, NULL, 0x10,
6314 NULL, HFILL }},
6315 { &hf_ftam_Permitted_Actions_Attribute_link,
6316 { "link", "ftam.Permitted.Actions.Attribute.link",
6317 FT_BOOLEAN, 8, NULL, 0x08,
6318 NULL, HFILL }},
6319 { &hf_ftam_Equality_Comparision_no_value_available_matches,
6320 { "no-value-available-matches", "ftam.Equality.Comparision.no.value.available.matches",
6321 FT_BOOLEAN, 8, NULL, 0x80,
6322 NULL, HFILL }},
6323 { &hf_ftam_Equality_Comparision_equals_matches,
6324 { "equals-matches", "ftam.Equality.Comparision.equals.matches",
6325 FT_BOOLEAN, 8, NULL, 0x40,
6326 NULL, HFILL }},
6327 { &hf_ftam_Relational_Comparision_no_value_available_matches,
6328 { "no-value-available-matches", "ftam.Relational.Comparision.no.value.available.matches",
6329 FT_BOOLEAN, 8, NULL, 0x80,
6330 NULL, HFILL }},
6331 { &hf_ftam_Relational_Comparision_equals_matches,
6332 { "equals-matches", "ftam.Relational.Comparision.equals.matches",
6333 FT_BOOLEAN, 8, NULL, 0x40,
6334 NULL, HFILL }},
6335 { &hf_ftam_Relational_Comparision_less_than_matches,
6336 { "less-than-matches", "ftam.Relational.Comparision.less.than.matches",
6337 FT_BOOLEAN, 8, NULL, 0x20,
6338 NULL, HFILL }},
6339 { &hf_ftam_Relational_Comparision_greater_than_matches,
6340 { "greater-than-matches", "ftam.Relational.Comparision.greater.than.matches",
6341 FT_BOOLEAN, 8, NULL, 0x10,
6342 NULL, HFILL }},
6343 { &hf_ftam_Attribute_Names_read_pathname,
6344 { "read-pathname", "ftam.Attribute.Names.read.pathname",
6345 FT_BOOLEAN, 8, NULL, 0x80,
6346 NULL, HFILL }},
6347 { &hf_ftam_Attribute_Names_read_permitted_actions,
6348 { "read-permitted-actions", "ftam.Attribute.Names.read.permitted.actions",
6349 FT_BOOLEAN, 8, NULL, 0x40,
6350 NULL, HFILL }},
6351 { &hf_ftam_Attribute_Names_read_contents_type,
6352 { "read-contents-type", "ftam.Attribute.Names.read.contents.type",
6353 FT_BOOLEAN, 8, NULL, 0x20,
6354 NULL, HFILL }},
6355 { &hf_ftam_Attribute_Names_read_storage_account,
6356 { "read-storage-account", "ftam.Attribute.Names.read.storage.account",
6357 FT_BOOLEAN, 8, NULL, 0x10,
6358 NULL, HFILL }},
6359 { &hf_ftam_Attribute_Names_read_date_and_time_of_creation,
6360 { "read-date-and-time-of-creation", "ftam.Attribute.Names.read.date.and.time.of.creation",
6361 FT_BOOLEAN, 8, NULL, 0x08,
6362 NULL, HFILL }},
6363 { &hf_ftam_Attribute_Names_read_date_and_time_of_last_modification,
6364 { "read-date-and-time-of-last-modification", "ftam.Attribute.Names.read.date.and.time.of.last.modification",
6365 FT_BOOLEAN, 8, NULL, 0x04,
6366 NULL, HFILL }},
6367 { &hf_ftam_Attribute_Names_read_date_and_time_of_last_read_access,
6368 { "read-date-and-time-of-last-read-access", "ftam.Attribute.Names.read.date.and.time.of.last.read.access",
6369 FT_BOOLEAN, 8, NULL, 0x02,
6370 NULL, HFILL }},
6371 { &hf_ftam_Attribute_Names_read_date_and_time_of_last_attribute_modification,
6372 { "read-date-and-time-of-last-attribute-modification", "ftam.Attribute.Names.read.date.and.time.of.last.attribute.modification",
6373 FT_BOOLEAN, 8, NULL, 0x01,
6374 NULL, HFILL }},
6375 { &hf_ftam_Attribute_Names_read_identity_of_creator,
6376 { "read-identity-of-creator", "ftam.Attribute.Names.read.identity.of.creator",
6377 FT_BOOLEAN, 8, NULL, 0x80,
6378 NULL, HFILL }},
6379 { &hf_ftam_Attribute_Names_read_identity_of_last_modifier,
6380 { "read-identity-of-last-modifier", "ftam.Attribute.Names.read.identity.of.last.modifier",
6381 FT_BOOLEAN, 8, NULL, 0x40,
6382 NULL, HFILL }},
6383 { &hf_ftam_Attribute_Names_read_identity_of_last_reader,
6384 { "read-identity-of-last-reader", "ftam.Attribute.Names.read.identity.of.last.reader",
6385 FT_BOOLEAN, 8, NULL, 0x20,
6386 NULL, HFILL }},
6387 { &hf_ftam_Attribute_Names_read_identity_of_last_attribute_modifier,
6388 { "read-identity-of-last-attribute-modifier", "ftam.Attribute.Names.read.identity.of.last.attribute.modifier",
6389 FT_BOOLEAN, 8, NULL, 0x10,
6390 NULL, HFILL }},
6391 { &hf_ftam_Attribute_Names_read_Object_availability,
6392 { "read-Object-availability", "ftam.Attribute.Names.read.Object.availability",
6393 FT_BOOLEAN, 8, NULL, 0x08,
6394 NULL, HFILL }},
6395 { &hf_ftam_Attribute_Names_read_Object_size,
6396 { "read-Object-size", "ftam.Attribute.Names.read.Object.size",
6397 FT_BOOLEAN, 8, NULL, 0x04,
6398 NULL, HFILL }},
6399 { &hf_ftam_Attribute_Names_read_future_Object_size,
6400 { "read-future-Object-size", "ftam.Attribute.Names.read.future.Object.size",
6401 FT_BOOLEAN, 8, NULL, 0x02,
6402 NULL, HFILL }},
6403 { &hf_ftam_Attribute_Names_read_access_control,
6404 { "read-access-control", "ftam.Attribute.Names.read.access.control",
6405 FT_BOOLEAN, 8, NULL, 0x01,
6406 NULL, HFILL }},
6407 { &hf_ftam_Attribute_Names_read_l8gal_qualifiCatiOnS,
6408 { "read-l8gal-qualifiCatiOnS", "ftam.Attribute.Names.read.l8gal.qualifiCatiOnS",
6409 FT_BOOLEAN, 8, NULL, 0x80,
6410 NULL, HFILL }},
6411 { &hf_ftam_Attribute_Names_read_private_use,
6412 { "read-private-use", "ftam.Attribute.Names.read.private.use",
6413 FT_BOOLEAN, 8, NULL, 0x40,
6414 NULL, HFILL }},
6415 { &hf_ftam_Attribute_Names_read_Object_type,
6416 { "read-Object-type", "ftam.Attribute.Names.read.Object.type",
6417 FT_BOOLEAN, 8, NULL, 0x20,
6418 NULL, HFILL }},
6419 { &hf_ftam_Attribute_Names_read_linked_Object,
6420 { "read-linked-Object", "ftam.Attribute.Names.read.linked.Object",
6421 FT_BOOLEAN, 8, NULL, 0x10,
6422 NULL, HFILL }},
6423 { &hf_ftam_Attribute_Names_read_primary_pathname,
6424 { "read-primary-pathname", "ftam.Attribute.Names.read.primary.pathname",
6425 FT_BOOLEAN, 8, NULL, 0x08,
6426 NULL, HFILL }},
6427 { &hf_ftam_Attribute_Names_read_path_access_control,
6428 { "read-path-access-control", "ftam.Attribute.Names.read.path.access.control",
6429 FT_BOOLEAN, 8, NULL, 0x04,
6430 NULL, HFILL }},
6431 { &hf_ftam_Attribute_Names_spare_bit22,
6432 { "spare_bit22", "ftam.Attribute.Names.spare.bit22",
6433 FT_BOOLEAN, 8, NULL, 0x02,
6434 NULL, HFILL }},
6435 { &hf_ftam_Attribute_Names_read_Child_objects,
6436 { "read-Child-objects", "ftam.Attribute.Names.read.Child.objects",
6437 FT_BOOLEAN, 8, NULL, 0x01,
6438 NULL, HFILL }},
6441 /* List of subtrees */
6442 static int *ett[] = {
6443 &ett_ftam,
6444 &ett_ftam_PDU,
6445 &ett_ftam_FTAM_Regime_PDU,
6446 &ett_ftam_F_INITIALIZE_request,
6447 &ett_ftam_F_INITIALIZE_response,
6448 &ett_ftam_Protocol_Version_U,
6449 &ett_ftam_Service_Class_U,
6450 &ett_ftam_Functional_Units_U,
6451 &ett_ftam_Attribute_Groups_U,
6452 &ett_ftam_Contents_Type_List_U,
6453 &ett_ftam_Contents_Type_List_item,
6454 &ett_ftam_F_TERMINATE_request,
6455 &ett_ftam_F_TERMINATE_response,
6456 &ett_ftam_F_U_ABORT_request,
6457 &ett_ftam_F_P_ABORT_request,
6458 &ett_ftam_File_PDU,
6459 &ett_ftam_F_SELECT_request,
6460 &ett_ftam_F_SELECT_response,
6461 &ett_ftam_F_DESELECT_request,
6462 &ett_ftam_F_DESELECT_response,
6463 &ett_ftam_F_CREATE_request,
6464 &ett_ftam_F_CREATE_response,
6465 &ett_ftam_F_DELETE_request,
6466 &ett_ftam_F_DELETE_response,
6467 &ett_ftam_F_READ_ATTRIB_request,
6468 &ett_ftam_F_READ_ATTRIB_response,
6469 &ett_ftam_F_CHANGE_ATTRIB_request,
6470 &ett_ftam_F_CHANGE_ATTRIB_response,
6471 &ett_ftam_F_OPEN_request,
6472 &ett_ftam_T_processing_mode,
6473 &ett_ftam_T_open_contents_type,
6474 &ett_ftam_SET_OF_Abstract_Syntax_Name,
6475 &ett_ftam_F_OPEN_response,
6476 &ett_ftam_F_CLOSE_request,
6477 &ett_ftam_F_CLOSE_response,
6478 &ett_ftam_F_BEGIN_GROUP_request,
6479 &ett_ftam_F_BEGIN_GROUP_response,
6480 &ett_ftam_F_END_GROUP_request,
6481 &ett_ftam_F_END_GROUP_response,
6482 &ett_ftam_F_RECOVER_request,
6483 &ett_ftam_F_RECOVER_response,
6484 &ett_ftam_F_LOCATE_request,
6485 &ett_ftam_F_LOCATE_response,
6486 &ett_ftam_F_ERASE_request,
6487 &ett_ftam_F_ERASE_response,
6488 &ett_ftam_Bulk_Data_PDU,
6489 &ett_ftam_F_READ_request,
6490 &ett_ftam_F_WRITE_request,
6491 &ett_ftam_F_DATA_END_request,
6492 &ett_ftam_F_TRANSFER_END_request,
6493 &ett_ftam_F_TRANSFER_END_response,
6494 &ett_ftam_F_CANCEL_request,
6495 &ett_ftam_F_CANCEL_response,
6496 &ett_ftam_F_RESTART_request,
6497 &ett_ftam_F_RESTART_response,
6498 &ett_ftam_Access_Context_U,
6499 &ett_ftam_Access_Passwords_U,
6500 &ett_ftam_Access_Request_U,
6501 &ett_ftam_Change_Attributes_U,
6502 &ett_ftam_Charging_U,
6503 &ett_ftam_Charging_item,
6504 &ett_ftam_Concurrency_Control_U,
6505 &ett_ftam_Create_Attributes_U,
6506 &ett_ftam_Diagnostic_U,
6507 &ett_ftam_Diagnostic_item,
6508 &ett_ftam_FADU_Identity_U,
6509 &ett_ftam_SEQUENCE_OF_Node_Name,
6510 &ett_ftam_Password_U,
6511 &ett_ftam_Read_Attributes_U,
6512 &ett_ftam_Select_Attributes_U,
6513 &ett_ftam_Access_Control_Attribute,
6514 &ett_ftam_SET_OF_Access_Control_Element,
6515 &ett_ftam_Access_Control_Change_Attribute,
6516 &ett_ftam_T_actual_values1,
6517 &ett_ftam_Access_Control_Element,
6518 &ett_ftam_Concurrency_Access,
6519 &ett_ftam_Concurrency_Key,
6520 &ett_ftam_Account_Attribute,
6521 &ett_ftam_Contents_Type_Attribute,
6522 &ett_ftam_T_document_type,
6523 &ett_ftam_T_constraint_set_and_abstract_Syntax,
6524 &ett_ftam_Date_and_Time_Attribute,
6525 &ett_ftam_Object_Availability_Attribute,
6526 &ett_ftam_Pathname_Attribute,
6527 &ett_ftam_Object_Size_Attribute,
6528 &ett_ftam_Legal_Qualification_Attribute,
6529 &ett_ftam_Permitted_Actions_Attribute,
6530 &ett_ftam_Private_Use_Attribute,
6531 &ett_ftam_User_Identity_Attribute,
6532 &ett_ftam_Child_Objects_Attribute,
6533 &ett_ftam_FSM_PDU,
6534 &ett_ftam_F_CHANGE_PREFIX_request,
6535 &ett_ftam_F_CHANGE_PREFIX_response,
6536 &ett_ftam_F_LIST_request,
6537 &ett_ftam_F_LIST_response,
6538 &ett_ftam_F_GROUP_SELECT_request,
6539 &ett_ftam_F_GROUP_SELECT_response,
6540 &ett_ftam_F_GROUP_DELETE_request,
6541 &ett_ftam_F_GROUP_DELETE_response,
6542 &ett_ftam_F_GROUP_MOVE_request,
6543 &ett_ftam_F_GROUP_MOVE_response,
6544 &ett_ftam_F_GROUP_COPY_request,
6545 &ett_ftam_F_GROUP_COPY_response,
6546 &ett_ftam_F_GROUP_LIST_request,
6547 &ett_ftam_F_GROUP_LIST_response,
6548 &ett_ftam_F_GROUP_CHANGE_ATTRIB_request,
6549 &ett_ftam_F_GROUP_CHANGE_ATTRIB_response,
6550 &ett_ftam_F_SELECT_ANOTHER_request,
6551 &ett_ftam_F_SELECT_ANOTHER_response,
6552 &ett_ftam_F_CREATE_DIRECTORY_request,
6553 &ett_ftam_F_CREATE_DIRECTORY_response,
6554 &ett_ftam_F_LINK_request,
6555 &ett_ftam_F_LINK_response,
6556 &ett_ftam_F_UNLINK_request,
6557 &ett_ftam_F_UNLINK_response,
6558 &ett_ftam_F_READ_LINK_ATTRIB_request,
6559 &ett_ftam_F_READ_LINK_ATTRIB_response,
6560 &ett_ftam_F_CHANGE_LINK_ATTRIB_request,
6561 &ett_ftam_F_CHANGE_LINK_ATTRIB_response,
6562 &ett_ftam_F_MOVE_request,
6563 &ett_ftam_F_MOVE_response,
6564 &ett_ftam_F_COPY_request,
6565 &ett_ftam_F_COPY_response,
6566 &ett_ftam_Attribute_Extension_Names,
6567 &ett_ftam_Attribute_Extension_Set_Name,
6568 &ett_ftam_SEQUENCE_OF_Extension_Attribute_identifier,
6569 &ett_ftam_Attribute_Extensions,
6570 &ett_ftam_Attribute_Extension_Set,
6571 &ett_ftam_SEQUENCE_OF_Extension_Attribute,
6572 &ett_ftam_Extension_Attribute,
6573 &ett_ftam_Scope_U,
6574 &ett_ftam_T__untag_item,
6575 &ett_ftam_OR_Set,
6576 &ett_ftam_AND_Set,
6577 &ett_ftam_AND_Set_item,
6578 &ett_ftam_Equality_Comparision,
6579 &ett_ftam_Relational_Comparision,
6580 &ett_ftam_Pathname_Pattern,
6581 &ett_ftam_T_pathname_value,
6582 &ett_ftam_T_pathname_value_item,
6583 &ett_ftam_String_Pattern,
6584 &ett_ftam_T_string_value,
6585 &ett_ftam_T_string_value_item,
6586 &ett_ftam_Bitstring_Pattern,
6587 &ett_ftam_Date_and_Time_Pattern,
6588 &ett_ftam_Integer_Pattern,
6589 &ett_ftam_Object_Identifier_Pattern,
6590 &ett_ftam_Boolean_Pattern,
6591 &ett_ftam_Contents_Type_Pattern,
6592 &ett_ftam_T_constraint_set_abstract_Syntax_Pattern,
6593 &ett_ftam_Attribute_Extensions_Pattern,
6594 &ett_ftam_Attribute_Extensions_Pattern_item,
6595 &ett_ftam_T_extension_set_attribute_Patterns,
6596 &ett_ftam_T_extension_set_attribute_Patterns_item,
6597 &ett_ftam_SEQUENCE_OF_Read_Attributes,
6598 &ett_ftam_Operation_Result_U,
6599 &ett_ftam_SEQUENCE_OF_Pathname,
6600 &ett_ftam_Pathname,
6601 &ett_ftam_Pass_Passwords,
6602 &ett_ftam_Path_Access_Passwords_U,
6603 &ett_ftam_Path_Access_Passwords_item,
6604 &ett_ftam_Attribute_Names,
6605 &ett_ftam_AE_title,
6607 static ei_register_info ei[] = {
6608 { &ei_ftam_zero_pdu, { "ftam.zero_pdu", PI_PROTOCOL, PI_ERROR, "Internal error, zero-byte FTAM PDU", EXPFILL }},
6611 expert_module_t* expert_ftam;
6613 /* Register protocol */
6614 proto_ftam = proto_register_protocol(PNAME, PSNAME, PFNAME);
6615 register_dissector("ftam", dissect_ftam, proto_ftam);
6616 /* Register fields and subtrees */
6617 proto_register_field_array(proto_ftam, hf, array_length(hf));
6618 proto_register_subtree_array(ett, array_length(ett));
6619 expert_ftam = expert_register_protocol(proto_ftam);
6620 expert_register_field_array(expert_ftam, ei, array_length(ei));
6625 /*--- proto_reg_handoff_ftam --- */
6626 void proto_reg_handoff_ftam(void) {
6627 register_ber_oid_dissector("1.0.8571.1.1", dissect_ftam, proto_ftam,"iso-ftam(1)");
6628 register_ber_oid_dissector("1.0.8571.2.1", dissect_ftam, proto_ftam,"ftam-pci(1)");
6629 register_ber_oid_dissector("1.3.14.5.2.2", dissect_ftam, proto_ftam,"NIST file directory entry abstract syntax");
6631 /* Unstructured text file document type FTAM-1 */
6632 register_ber_oid_dissector("1.0.8571.5.1", dissect_ftam_unstructured_text, proto_ftam,"ISO FTAM unstructured text");
6633 oid_add_from_string("ISO FTAM sequential text","1.0.8571.5.2");
6634 oid_add_from_string("FTAM unstructured text abstract syntax","1.0.8571.2.3");
6635 oid_add_from_string("FTAM simple-hierarchy","1.0.8571.2.5");
6636 oid_add_from_string("FTAM hierarchical file model","1.0.8571.3.1");
6637 oid_add_from_string("FTAM unstructured constraint set","1.0.8571.4.1");
6639 /* Unstructured binary file document type FTAM-3 */
6640 register_ber_oid_dissector("1.0.8571.5.3", dissect_ftam_unstructured_binary, proto_ftam,"ISO FTAM unstructured binary");
6641 oid_add_from_string("FTAM unstructured binary abstract syntax","1.0.8571.2.4");
6643 /* Filedirectory file document type NBS-9 */
6644 oid_add_from_string("NBS-9 FTAM file directory file","1.3.14.5.5.9");
6646 /* Filedirectory file document type NBS-9 (WITH OLD NIST OIDs)*/
6647 oid_add_from_string("NBS-9-OLD FTAM file directory file","1.3.9999.1.5.9");
6648 oid_add_from_string("NIST file directory entry abstract syntax","1.3.9999.1.2.2");