3 * Routine to dissect OSI ISO 8571 FTAM Protocol packets
5 * $Id: packet-ftam.h,v 1.1 2004/03/23 19:51:06 guy Exp $
7 * Yuriy Sidelnikov <YSidelnikov@hotmail.com>
9 * Ethereal - Network traffic analyzer
10 * By Gerald Combs <gerald@ethereal.com>
11 * Copyright 1998 Gerald Combs
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License
15 * as published by the Free Software Foundation; either version 2
16 * of the License, or (at your option) any later version.
18 * This program is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
23 * You should have received a copy of the GNU General Public License
24 * along with this program; if not, write to the Free Software
25 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
28 #define PROTO_STRING_FTAM "OSI ISO 8571 FTAM Protocol"
29 #define PROTO_STRING_FTAM_INFO "OSI ISO 8571 FTAM Protocol"
31 /* asn.1 definitions */
32 #define ASN1_CLASS_UNIVERSAL 0x00
33 #define ASN1_CLASS_APPLICATION 0x40
34 #define ASN1_CLASS_CONTEXT_SPECIFIC 0x80
35 #define ASN1_CLASS_Private 0xc0
36 #define ASN1_CLASS_PC 0x20
38 #define INTEGER_ITEM 0x01
39 #define BOOLEAN_ITEM 0x01
51 FTAM_F_INITIALIZE_REQUEST = 0xa0,
52 FTAM_F_INITIALIZE_RESPONSE,
53 FTAM_F_TERMINATE_REQUEST,
54 FTAM_F_TERMINATE_RESPONSE,
55 FTAM_F_U_ABORT_REQUEST,
56 FTAM_F_P_ABORT_REQUEST,
57 FTAM_F_SELECT_REQUEST,
58 FTAM_F_SELECT_RESPONSE,
59 FTAM_F_DESELECT_REQUEST,
60 FTAM_F_DESELECT_RESPONSE,
61 FTAM_F_CREATE_REQUEST,
62 FTAM_F_CREATE_RESPONSE,
63 FTAM_F_DELETE_REQUEST,
64 FTAM_F_DELETE_RESPONSE,
65 FTAM_F_READ_ATTRIB_REQUEST,
66 FTAM_F_READ_ATTRIB_RESPONSE,
67 FTAM_F_CHANGE_ATTRIB_REQUEST,
68 FTAM_F_CHANGE_ATTRIB_RESPONSE,
72 FTAM_F_CLOSE_RESPONSE,
73 FTAM_F_BEGIN_GROUP_REQUEST,
74 FTAM_F_BEGIN_GROUP_RESPONSE,
75 FTAM_F_END_GROUP_REQUEST,
76 FTAM_F_END_GROUP_RESPONSE,
77 FTAM_F_RECOVER_REQUEST,
78 FTAM_F_RECOVER_RESPONSE,
79 FTAM_F_LOCATE_REQUEST,
80 FTAM_F_LOCATE_RESPONSE,
86 FTAM_F_READ_REQUEST=0x20,
88 FTAM_F_DATA_END_REQUEST,
89 FTAM_F_TRANSFER_END_REQUEST,
90 FTAM_F_TRANSFER_END_RESPONSE,
91 FTAM_F_CANCEL_REQUEST,
92 FTAM_F_CANCEL_RESPONSE,
93 FTAM_F_REASTART_REQUEST,
94 FTAM_F_REASTART_RESPONSE
98 FTAM_PROTOCOL_VERSION,
99 FTAM_IMPLEMENTATION_INFORMATION,
100 FTAM_PRESENTATION_CONTEXT_MANAGEMENT,
102 FTAM_FUNCTIONAL_UNITS,
103 FTAM_ATTRIBUTE_GROUPS,
104 FTAM_QUALITY_OF_SERVICE,
105 FTAM_CONTENTS_TYPE_LIST
108 #define FTAM_CHECKPOINT_WINDOW 55
109 #define FTAM_CHARGING 9
112 FTAM_DIAGNOSTIC_TYPE=0x80,
113 FTAM_ERROR_IDENTIFIER,
116 FTAM_SUGGESTED_DELAY,
121 FTAM_NO_CATEGORIZATION_POSSIBLE,
122 FTAM_INITIATING_FILE_SERVICE_USER,
123 FTAM_INITIATING_FILE_PROTOCOL_MASHINE,
124 FTAM_SERVICE_SUPPORTING_THE_FILE_PROTOCOL_MACHINE,
125 FTAM_RESPONDING_FILE_PROTOCOL_MASHINE,
126 FTAM_RESPONDING_FILE_SERVICE_USER
130 FTAM_DIAGNOSTIC_INFORMATIVE,
131 FTAM_DIAGNOSTIC_TRANSIENT,
132 FTAM_DIAGNOSTIC_PERMANENT
136 FTAM_RESPONSE_STATE_SUCCESS,
137 FTAM_RESPONSE_STATE_FAILURE
141 FTAM_RESPONSE_ACTION_RESULT_SUCCESS,
142 FTAM_RESPONSE_ACTION_RESULT_TRANSIENT_ERROR,
143 FTAM_RESPONSE_ACTION_RESULT_PERMANENT_ERROR
147 FTAM_PROCESSING_MODE,
149 FTAM_CONCURENCY_CONTROL,
150 FTAM_ENABLE_FADU_LOCKING,
151 FTAM_ACTIVITY_IDENTIFIER,
153 FTAM_REMOTE_CONTEXTS,
158 FTAM_CONTENTS_TYPE_UNKNOWN,
159 FTAM_CONTENTS_TYPE_PROPOSED
163 FTAM_CONTENTS_TYPE_PROPOSED_DOCUMENT_TYPE,
164 FTAM_CONTENTS_TYPE_PROPOSED_CONSTRAINT_SET
169 FTAM_SELECT_OLD_FILE,
170 FTAM_DELETE_AND_CREATE_WITH_OLD_ATTRIBUTES,
171 FTAM_DELETE_AND_CREATE_WITH_NEW_ATTRIBUTES
175 FTAM_FADU_FIRST_LAST,
178 FTAM_FADU_SINGLE_NAME,
180 FTAM_FADU_FADU_NUMBER
200 FTAM_HIERARCHICAL_ALL_DATA_UNITS,
201 FTAM_HIERARCHICAL_NO_DATA_UNITS,
203 FTAM_ONE_LEVEL_DATA_UNITS,
204 FTAM_SINGLE_DATA_UNITS,
205 FTAM_UNSTRUCTURED_ALL_DATA_UNITS,
206 FTAM_UNSTRUCTURED_SINGLE_DATA_UNITS
216 FTAM_UNIVERSAL_CLASS_NUMBER,
217 FTAM_MAXIMUM_STRING_LENGTH,
218 FTAM_STRING_SIGNIFICANCE
228 FTAM_READ_ATTRIBUTE_FILENAME,
229 FTAM_READ_ATTRIBUTE_PERMITTED_ACTIONS,
230 FTAM_READ_ATTRIBUTE_CONTENTS_TYPE,
231 FTAM_READ_ATTRIBUTE_STORAGE_ACCOUNT,
232 FTAM_READ_ATTRIBUTE_DATA_AND_TIME_OF_CREATION,
233 FTAM_READ_ATTRIBUTE_DATA_AND_TIME_OF_LAST_MODIFICATION,
234 FTAM_READ_ATTRIBUTE_DATA_AND_TIME_OF_LAST_READ_ACCESS,
235 FTAM_READ_ATTRIBUTE_DATA_AND_TIME_OF_LAST_ATTRIBUTE_MODIFICATION,
236 FTAM_READ_ATTRIBUTE_IDENTITY_OF_CREATOR,
237 FTAM_READ_ATTRIBUTE_IDENTITY_OF_LAST_MODIFIER,
238 FTAM_READ_ATTRIBUTE_IDENTITY_OF_LAST_READER,
239 FTAM_READ_ATTRIBUTE_IDENTITY_OF_LAST_ATTRIBUTE_MODIFIER,
240 FTAM_READ_ATTRIBUTE_FILE_AVAILABILITY,
241 FTAM_READ_ATTRIBUTE_FILESIZE,
242 FTAM_READ_ATTRIBUTE_FUTURE_FILESIZE,
243 FTAM_READ_ATTRIBUTE_ACCESS_CONTROL,
244 FTAM_READ_ATTRIBUTE_LEGAL_QUALIFICATION,
245 FTAM_READ_ATTRIBUTE_PRIVATE_USE
249 #define FTAM_DATE_AND_TIME_NO_VALUE_AVAILABLE 0x00
250 #define FTAM_DATE_AND_TIME_ACTUAL_VALUE 0x01
252 #define FTAM_DATE_IDENTITY_NO_VALUE_AVAILABLE 0x00
253 #define FTAM_DATE_IDENTITY_ACTUAL_VALUE 0x01
256 #define FTAM_USER_IDENTITY 22
258 #define FTAM_PRINTABLE_LENGTH 19
259 #define FTAM_GRAPHIC_STRING 25
260 #define FTAM_TELEX_STRING 20
261 #define FTAM_VIDEO_STRING 21
262 #define FTAM_IA5_STRING 22
263 #define FTAM_VISIBLE_STRING 26
264 #define FTAM_GENERAL_STRING 27
265 #define FTAM_OCTET_STRING 04
266 #define FTAM_PRINTABLE_STRING 05
267 #define FTAM_NODE_DESCRIPTOR_DATA_ELEMENT 0xa0
268 #define FTAM_ENTER_SUBTREE_DATA_ELEMENT 0xa1
269 #define FTAM_EXIT_SUBTREE_DATA_ELEMENT 0xa2
270 #define FTAM_DATATYPE_NBS9 0xe2
272 #define FTAM_CONTENTS_TYPE_PROPOSED_DOCUMENT_TYPE_NAME 14
273 #define FTAM_CONTENTS_TYPE_PROPOSED_DOCUMENT_TYPE_PARAMETER 0
275 #define FTAM_PROCESSING_MODE_READ 0x0080
276 #define FTAM_PROCESSING_MODE_REPLACE 0x0040
277 #define FTAM_PROCESSING_MODE_INSERT 0x0020
278 #define FTAM_PROCESSING_MODE_EXTEND 0x0010
279 #define FTAM_PROCESSING_MODE_ERASE 0x0008
282 #define FTAM_NBS9_READ_FILENAME 0x8000
283 #define FTAM_NBS9_READ_PERMITTED_ACTIONS 0x4000
284 #define FTAM_NBS9_READ_CONTENTS_TYPE 0x2000
285 #define FTAM_NBS9_READ_STORAGE_ACCOUNT 0x1000
286 #define FTAM_NBS9_READ_DATE_AND_TIME_OF_CREATION 0x0800
287 #define FTAM_NBS9_READ_DATE_AND_TIME_OF_LAST_MODIFICATION 0x0400
288 #define FTAM_NBS9_READ_DATE_AND_TIME_OF_LAST_READ_ACCESS 0x0200
289 #define FTAM_NBS9_READ_DATE_AND_TIME_OF_LAST_ATTRIBUTE_MODIFICATION 0x0100
290 #define FTAM_NBS9_READ_IDENTITY_OF_CREATOR 0x0080
291 #define FTAM_NBS9_READ_IDENTITY_OF_LAST_MODIFIER 0x0040
292 #define FTAM_NBS9_READ_IDENTITY_OF_LAST_READER 0x0020
293 #define FTAM_NBS9_READ_IDENTITY_OF_LAST_ATTRIBUTE_MODIFIER 0x0010
294 #define FTAM_NBS9_READ_FILE_AVAILABILITY 0x0008
295 #define FTAM_NBS9_READ_FILESIZE 0x0004
296 #define FTAM_NBS9_READ_FUTURE_FILESIZE 0x0002
297 #define FTAM_NBS9_READ_ACCESS_CONTROL 0x0001
298 #define FTAM_NBS9_READ_LEGAL_QUALIFICATIONS 0x80
299 #define FTAM_NBS9_READ_PRIVATE_USE 0x40
303 #define FTAM_SELECT_ATTRIBUTES 19
304 #define FTAM_CREATE_ATTRIBUTES 12
305 #define FTAM_ACCESS_REQUEST 3
306 #define FTAM_ACCSESS_PASSWORDS 2
307 #define FTAM_OVERRIDE 0
309 #define FTAM_ACCSESS_PASSWORDS 2
311 #define FTAM_READ_ATTRIBUTES 18
315 #define FTAM_CREATE_FILENAME_ATTRIBUTES 0
316 #define FTAM_CREATE_PERMITTED_ACTIONS_ATTRIBUTE 1
317 #define FTAM_CREATE_CONTENTS_TYPE 2
318 #define FTAM_CREATE_ACCOUNT_ATTRIBUTE 3
319 #define FTAM_CREATE_FILE_AVAILABILITY_ATTRIBUTE 12
320 #define FTAM_CREATE_FILESIZE_ATTRIBUTE 14
321 #define FTAM_CREATE_ACCESS_CONTROL_ATTRIBUTE 15
322 #define FTAM_CREATE_ACCESS_LEGAL_AUALIFICATION_ATTRIBUTE 16
323 #define FTAM_CREATE_ACCESS_PRIVATE_USE_ATTRIBUTE 17
325 #define FTAM_FILE_ACCESS_DATA_UNIT_IDENTITY 15
326 #define FTAM_FILE_ACCESS_CONTEXT 1
327 #define FTAM_FILE_FADU_LOCK 16
328 #define FTAM_FILE_ACCESS_DATA_UNIT_OPERATION 0
329 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_READ 0x8000
330 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_INSERT 0x4000
331 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_REPLACE 0x2000
332 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_EXTEND 0x1000
333 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_ERASE 0x0800
334 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_READ_ATTRIBUTE 0x0400
335 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_CHANGE_ATTRIBUTE 0x0200
336 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_DELETE_FILE 0x0100
337 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_TRAVERSAL 0x0080
338 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_REVERSE_TRAVERSAL 0x0040
339 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_RANDOM_ORDER 0x0020
342 #define FTAM_ACCOUNT 8
343 #define FTAM_FILESTORE_PASSWORD 17
344 #define FTAM_SHARED_ASE_INFORMATION 20
345 #define FTAM_INITIATOR_IDENTIFY 22
346 #define FTAM_DOCUMENT_TYPE 0x4e
348 #define FTAM_ABSTRACT_SYNTAX_NAME 0x40
351 /* filename attributes */
352 #define FTAM_FILENAME_ATTRIBUTE_READ 0x0080
353 #define FTAM_FILENAME_ATTRIBUTE_INSERT 0x0040
354 #define FTAM_FILENAME_ATTRIBUTE_REPLACE 0x0020
355 #define FTAM_FILENAME_ATTRIBUTE_EXTEND 0x0010
356 #define FTAM_FILENAME_ATTRIBUTE_ERASE 0x0008
357 #define FTAM_FILENAME_ATTRIBUTE_READ_ATTRIBUTE 0x0004
358 #define FTAM_FILENAME_ATTRIBUTE_CHANGE_ATTRIBUTE 0x0002
359 #define FTAM_FILENAME_ATTRIBUTE_DELETE_FILE 0x0001
363 #define IMPLEMENTATION_INFORMATION 29
364 #define USER_INFORMATION 30
366 #define ftam_EXTERNAL 8
368 #define FTAM_RESPONSE_STATE_RESULT 21
370 #define FTAM_RESPONSE_ACTION_RESULT 555
371 #define FTAM_RESPONSE_SHARED_ASE_INFORMATION 20
372 #define FTAM_RESPONSE_DIAGNOSTIC 13
374 /* definition list **/
375 #define PRESENTATION_CONTEXT_IDENTIFIER 2
376 #define ABSTRACT_SYNTAX_NAME 6
377 #define TRANSFER_SYNTAX_NAMES 0x30
379 #define PRESENTATION_RESULT 0x80
380 #define PRESENTATION_RESULT_TRANSFER_SYNTAX_NAME 0x81
381 #define PRESENTATION_RESULT_INTEGER 0x82
384 #define PRESENTATION_RESULT_ACCEPTANCE 0
385 #define PRESENTATION_RESULT_USER_REJECTION 1
386 #define PRESENTATION_RESULT_PROVIDER_REJECTION 2
390 #define SIMPLY_ENCODED_DATA 0x60
391 #define FULLY_ENCODED_DATA 0x61
395 #define FTAM_PROTOCOL_VERGION 0x0080
397 /* functional units */
398 #define FTAM_FUNCTIONAL_UNIT_READ 0x2000
399 #define FTAM_FUNCTIONAL_UNIT_WRITE 0x1000
400 #define FTAM_FUNCTIONAL_UNIT_FILE_ACCESS 0x0800
401 #define FTAM_FUNCTIONAL_UNIT_LIMITED_FILE_MANAGEMENT 0x0400
402 #define FTAM_FUNCTIONAL_UNIT_ENHANCED_FILE_MANAGEMENT 0x0200
403 #define FTAM_FUNCTIONAL_UNIT_GROUPING 0x0100
404 #define FTAM_FUNCTIONAL_FADU_LOCKING 0x0080
405 #define FTAM_FUNCTIONAL_UNIT_RECOVERY 0x0040
406 #define FTAM_FUNCTIONAL_UNIT_RESTART_DATA_TRANSFER 0x0020
408 /* service classes */
409 #define FTAM_FUNCTIONAL_UNIT_UNCONSTRAINED_CLASS 0x80
410 #define FTAM_FUNCTIONAL_UNIT_MANAGEMENT_CLASS 0x40
411 #define FTAM_FUNCTIONAL_UNIT_TRANSFER_CLASS 0x20
412 #define FTAM_FUNCTIONAL_UNIT_TRANSFER_AND_MANAGEMENT_CLASS 0x10
413 #define FTAM_FUNCTIONAL_UNIT_ACESS_CLASS 0x08
415 /* attribute group */
416 #define FTAM_ATTRIBUTE_GROUPS_STORAGE 0x80
417 #define FTAM_ATTRIBUTE_GROUPS_SECURITY 0x40
418 #define FTAM_ATTRIBUTE_GROUPS_PRIVATE 0x20
420 #define DATA_BULK_PDU 0xbf
421 #define MAXSTRING 256
422 #define ABORT_REASON_LEN 3
426 #define GRAPHIC_STRING "Graphic string"