/* packet-ftam.h * * Routine to dissect OSI ISO 8571 FTAM Protocol packets * * $Id: packet-ftam.h,v 1.1 2004/03/23 19:51:06 guy Exp $ * * Yuriy Sidelnikov * * Ethereal - Network traffic analyzer * By Gerald Combs * Copyright 1998 Gerald Combs * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define PROTO_STRING_FTAM "OSI ISO 8571 FTAM Protocol" #define PROTO_STRING_FTAM_INFO "OSI ISO 8571 FTAM Protocol" /* asn.1 definitions */ #define ASN1_CLASS_UNIVERSAL 0x00 #define ASN1_CLASS_APPLICATION 0x40 #define ASN1_CLASS_CONTEXT_SPECIFIC 0x80 #define ASN1_CLASS_Private 0xc0 #define ASN1_CLASS_PC 0x20 #define INTEGER_ITEM 0x01 #define BOOLEAN_ITEM 0x01 #define NBS9_OID 0x2b #define SEQUENCE 0x30 /* sequence top */ #define TAG_00 0 #define TAG_01 1 enum { FTAM_F_INITIALIZE_REQUEST = 0xa0, FTAM_F_INITIALIZE_RESPONSE, FTAM_F_TERMINATE_REQUEST, FTAM_F_TERMINATE_RESPONSE, FTAM_F_U_ABORT_REQUEST, FTAM_F_P_ABORT_REQUEST, FTAM_F_SELECT_REQUEST, FTAM_F_SELECT_RESPONSE, FTAM_F_DESELECT_REQUEST, FTAM_F_DESELECT_RESPONSE, FTAM_F_CREATE_REQUEST, FTAM_F_CREATE_RESPONSE, FTAM_F_DELETE_REQUEST, FTAM_F_DELETE_RESPONSE, FTAM_F_READ_ATTRIB_REQUEST, FTAM_F_READ_ATTRIB_RESPONSE, FTAM_F_CHANGE_ATTRIB_REQUEST, FTAM_F_CHANGE_ATTRIB_RESPONSE, FTAM_F_OPEN_REQUEST, FTAM_F_OPEN_RESPONSE, FTAM_F_CLOSE_REQUEST, FTAM_F_CLOSE_RESPONSE, FTAM_F_BEGIN_GROUP_REQUEST, FTAM_F_BEGIN_GROUP_RESPONSE, FTAM_F_END_GROUP_REQUEST, FTAM_F_END_GROUP_RESPONSE, FTAM_F_RECOVER_REQUEST, FTAM_F_RECOVER_RESPONSE, FTAM_F_LOCATE_REQUEST, FTAM_F_LOCATE_RESPONSE, FTAM_F_ERASE_REQUEST, FTAM_F_ERASE_RESPONSE }; enum { FTAM_F_READ_REQUEST=0x20, FTAM_F_WRITE_REQUEST, FTAM_F_DATA_END_REQUEST, FTAM_F_TRANSFER_END_REQUEST, FTAM_F_TRANSFER_END_RESPONSE, FTAM_F_CANCEL_REQUEST, FTAM_F_CANCEL_RESPONSE, FTAM_F_REASTART_REQUEST, FTAM_F_REASTART_RESPONSE }; enum { FTAM_PROTOCOL_VERSION, FTAM_IMPLEMENTATION_INFORMATION, FTAM_PRESENTATION_CONTEXT_MANAGEMENT, FTAM_SERVICE_CLASS, FTAM_FUNCTIONAL_UNITS, FTAM_ATTRIBUTE_GROUPS, FTAM_QUALITY_OF_SERVICE, FTAM_CONTENTS_TYPE_LIST }; /* pseudo value */ #define FTAM_CHECKPOINT_WINDOW 55 #define FTAM_CHARGING 9 enum { FTAM_DIAGNOSTIC_TYPE=0x80, FTAM_ERROR_IDENTIFIER, FTAM_ERROR_OBSERVER, FTAM_ERROR_SOURCE, FTAM_SUGGESTED_DELAY, FTAM_FURTHER_DETAILS }; enum { FTAM_NO_CATEGORIZATION_POSSIBLE, FTAM_INITIATING_FILE_SERVICE_USER, FTAM_INITIATING_FILE_PROTOCOL_MASHINE, FTAM_SERVICE_SUPPORTING_THE_FILE_PROTOCOL_MACHINE, FTAM_RESPONDING_FILE_PROTOCOL_MASHINE, FTAM_RESPONDING_FILE_SERVICE_USER }; enum { FTAM_DIAGNOSTIC_INFORMATIVE, FTAM_DIAGNOSTIC_TRANSIENT, FTAM_DIAGNOSTIC_PERMANENT }; enum { FTAM_RESPONSE_STATE_SUCCESS, FTAM_RESPONSE_STATE_FAILURE }; enum { FTAM_RESPONSE_ACTION_RESULT_SUCCESS, FTAM_RESPONSE_ACTION_RESULT_TRANSIENT_ERROR, FTAM_RESPONSE_ACTION_RESULT_PERMANENT_ERROR }; enum { FTAM_PROCESSING_MODE, FTAM_CONTENTS_TYPE, FTAM_CONCURENCY_CONTROL, FTAM_ENABLE_FADU_LOCKING, FTAM_ACTIVITY_IDENTIFIER, FTAM_RECOVERY_MODE, FTAM_REMOTE_CONTEXTS, FTAM_DEFINE_CONTEXTS }; enum { FTAM_CONTENTS_TYPE_UNKNOWN, FTAM_CONTENTS_TYPE_PROPOSED }; enum { FTAM_CONTENTS_TYPE_PROPOSED_DOCUMENT_TYPE, FTAM_CONTENTS_TYPE_PROPOSED_CONSTRAINT_SET }; enum { FTAM_CREATE_FAILURE, FTAM_SELECT_OLD_FILE, FTAM_DELETE_AND_CREATE_WITH_OLD_ATTRIBUTES, FTAM_DELETE_AND_CREATE_WITH_NEW_ATTRIBUTES }; enum { FTAM_FADU_FIRST_LAST, FTAM_FADU_RELATIVE, FTAM_FADU_BEGIN_END, FTAM_FADU_SINGLE_NAME, FTAM_FADU_NAME_LIST, FTAM_FADU_FADU_NUMBER }; enum { FTAM_FADU_FIRST, FTAM_FADU_LAST }; enum { FTAM_FADU_PREVIOUS, FTAM_FADU_CURRENT, FTAM_FADU_NEXT }; enum { FTAM_FADU_BEGIN, FTAM_FADU_END }; enum { FTAM_HIERARCHICAL_ALL_DATA_UNITS, FTAM_HIERARCHICAL_NO_DATA_UNITS, FTAM_ALL_DATA_UNITS, FTAM_ONE_LEVEL_DATA_UNITS, FTAM_SINGLE_DATA_UNITS, FTAM_UNSTRUCTURED_ALL_DATA_UNITS, FTAM_UNSTRUCTURED_SINGLE_DATA_UNITS }; enum { FTAM_ACCESS_INSERT, FTAM_ACCESS_REPLACE, FTAM_ACCESS_EXTEND }; enum { FTAM_UNIVERSAL_CLASS_NUMBER, FTAM_MAXIMUM_STRING_LENGTH, FTAM_STRING_SIGNIFICANCE }; enum { FTAM_VARIABLE, FTAM_FIXED, FTAM_NOT_SIGNIFICANT }; enum { FTAM_READ_ATTRIBUTE_FILENAME, FTAM_READ_ATTRIBUTE_PERMITTED_ACTIONS, FTAM_READ_ATTRIBUTE_CONTENTS_TYPE, FTAM_READ_ATTRIBUTE_STORAGE_ACCOUNT, FTAM_READ_ATTRIBUTE_DATA_AND_TIME_OF_CREATION, FTAM_READ_ATTRIBUTE_DATA_AND_TIME_OF_LAST_MODIFICATION, FTAM_READ_ATTRIBUTE_DATA_AND_TIME_OF_LAST_READ_ACCESS, FTAM_READ_ATTRIBUTE_DATA_AND_TIME_OF_LAST_ATTRIBUTE_MODIFICATION, FTAM_READ_ATTRIBUTE_IDENTITY_OF_CREATOR, FTAM_READ_ATTRIBUTE_IDENTITY_OF_LAST_MODIFIER, FTAM_READ_ATTRIBUTE_IDENTITY_OF_LAST_READER, FTAM_READ_ATTRIBUTE_IDENTITY_OF_LAST_ATTRIBUTE_MODIFIER, FTAM_READ_ATTRIBUTE_FILE_AVAILABILITY, FTAM_READ_ATTRIBUTE_FILESIZE, FTAM_READ_ATTRIBUTE_FUTURE_FILESIZE, FTAM_READ_ATTRIBUTE_ACCESS_CONTROL, FTAM_READ_ATTRIBUTE_LEGAL_QUALIFICATION, FTAM_READ_ATTRIBUTE_PRIVATE_USE }; #define FTAM_DATE_AND_TIME_NO_VALUE_AVAILABLE 0x00 #define FTAM_DATE_AND_TIME_ACTUAL_VALUE 0x01 #define FTAM_DATE_IDENTITY_NO_VALUE_AVAILABLE 0x00 #define FTAM_DATE_IDENTITY_ACTUAL_VALUE 0x01 #define FTAM_USER_IDENTITY 22 #define FTAM_PRINTABLE_LENGTH 19 #define FTAM_GRAPHIC_STRING 25 #define FTAM_TELEX_STRING 20 #define FTAM_VIDEO_STRING 21 #define FTAM_IA5_STRING 22 #define FTAM_VISIBLE_STRING 26 #define FTAM_GENERAL_STRING 27 #define FTAM_OCTET_STRING 04 #define FTAM_PRINTABLE_STRING 05 #define FTAM_NODE_DESCRIPTOR_DATA_ELEMENT 0xa0 #define FTAM_ENTER_SUBTREE_DATA_ELEMENT 0xa1 #define FTAM_EXIT_SUBTREE_DATA_ELEMENT 0xa2 #define FTAM_DATATYPE_NBS9 0xe2 #define FTAM_CONTENTS_TYPE_PROPOSED_DOCUMENT_TYPE_NAME 14 #define FTAM_CONTENTS_TYPE_PROPOSED_DOCUMENT_TYPE_PARAMETER 0 #define FTAM_PROCESSING_MODE_READ 0x0080 #define FTAM_PROCESSING_MODE_REPLACE 0x0040 #define FTAM_PROCESSING_MODE_INSERT 0x0020 #define FTAM_PROCESSING_MODE_EXTEND 0x0010 #define FTAM_PROCESSING_MODE_ERASE 0x0008 #define FTAM_NBS9_READ_FILENAME 0x8000 #define FTAM_NBS9_READ_PERMITTED_ACTIONS 0x4000 #define FTAM_NBS9_READ_CONTENTS_TYPE 0x2000 #define FTAM_NBS9_READ_STORAGE_ACCOUNT 0x1000 #define FTAM_NBS9_READ_DATE_AND_TIME_OF_CREATION 0x0800 #define FTAM_NBS9_READ_DATE_AND_TIME_OF_LAST_MODIFICATION 0x0400 #define FTAM_NBS9_READ_DATE_AND_TIME_OF_LAST_READ_ACCESS 0x0200 #define FTAM_NBS9_READ_DATE_AND_TIME_OF_LAST_ATTRIBUTE_MODIFICATION 0x0100 #define FTAM_NBS9_READ_IDENTITY_OF_CREATOR 0x0080 #define FTAM_NBS9_READ_IDENTITY_OF_LAST_MODIFIER 0x0040 #define FTAM_NBS9_READ_IDENTITY_OF_LAST_READER 0x0020 #define FTAM_NBS9_READ_IDENTITY_OF_LAST_ATTRIBUTE_MODIFIER 0x0010 #define FTAM_NBS9_READ_FILE_AVAILABILITY 0x0008 #define FTAM_NBS9_READ_FILESIZE 0x0004 #define FTAM_NBS9_READ_FUTURE_FILESIZE 0x0002 #define FTAM_NBS9_READ_ACCESS_CONTROL 0x0001 #define FTAM_NBS9_READ_LEGAL_QUALIFICATIONS 0x80 #define FTAM_NBS9_READ_PRIVATE_USE 0x40 #define FTAM_SELECT_ATTRIBUTES 19 #define FTAM_CREATE_ATTRIBUTES 12 #define FTAM_ACCESS_REQUEST 3 #define FTAM_ACCSESS_PASSWORDS 2 #define FTAM_OVERRIDE 0 #define FTAM_ACCSESS_PASSWORDS 2 #define FTAM_READ_ATTRIBUTES 18 #define FTAM_CREATE_FILENAME_ATTRIBUTES 0 #define FTAM_CREATE_PERMITTED_ACTIONS_ATTRIBUTE 1 #define FTAM_CREATE_CONTENTS_TYPE 2 #define FTAM_CREATE_ACCOUNT_ATTRIBUTE 3 #define FTAM_CREATE_FILE_AVAILABILITY_ATTRIBUTE 12 #define FTAM_CREATE_FILESIZE_ATTRIBUTE 14 #define FTAM_CREATE_ACCESS_CONTROL_ATTRIBUTE 15 #define FTAM_CREATE_ACCESS_LEGAL_AUALIFICATION_ATTRIBUTE 16 #define FTAM_CREATE_ACCESS_PRIVATE_USE_ATTRIBUTE 17 #define FTAM_FILE_ACCESS_DATA_UNIT_IDENTITY 15 #define FTAM_FILE_ACCESS_CONTEXT 1 #define FTAM_FILE_FADU_LOCK 16 #define FTAM_FILE_ACCESS_DATA_UNIT_OPERATION 0 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_READ 0x8000 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_INSERT 0x4000 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_REPLACE 0x2000 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_EXTEND 0x1000 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_ERASE 0x0800 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_READ_ATTRIBUTE 0x0400 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_CHANGE_ATTRIBUTE 0x0200 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_DELETE_FILE 0x0100 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_TRAVERSAL 0x0080 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_REVERSE_TRAVERSAL 0x0040 #define FTAM_PERMITTED_ACTION_ATTRIBUTE_RANDOM_ORDER 0x0020 #define FTAM_ACCOUNT 8 #define FTAM_FILESTORE_PASSWORD 17 #define FTAM_SHARED_ASE_INFORMATION 20 #define FTAM_INITIATOR_IDENTIFY 22 #define FTAM_DOCUMENT_TYPE 0x4e #define FTAM_ABSTRACT_SYNTAX_NAME 0x40 /* filename attributes */ #define FTAM_FILENAME_ATTRIBUTE_READ 0x0080 #define FTAM_FILENAME_ATTRIBUTE_INSERT 0x0040 #define FTAM_FILENAME_ATTRIBUTE_REPLACE 0x0020 #define FTAM_FILENAME_ATTRIBUTE_EXTEND 0x0010 #define FTAM_FILENAME_ATTRIBUTE_ERASE 0x0008 #define FTAM_FILENAME_ATTRIBUTE_READ_ATTRIBUTE 0x0004 #define FTAM_FILENAME_ATTRIBUTE_CHANGE_ATTRIBUTE 0x0002 #define FTAM_FILENAME_ATTRIBUTE_DELETE_FILE 0x0001 #define IMPLEMENTATION_INFORMATION 29 #define USER_INFORMATION 30 #define ftam_EXTERNAL 8 #define FTAM_RESPONSE_STATE_RESULT 21 /* dummy entry */ #define FTAM_RESPONSE_ACTION_RESULT 555 #define FTAM_RESPONSE_SHARED_ASE_INFORMATION 20 #define FTAM_RESPONSE_DIAGNOSTIC 13 /* definition list **/ #define PRESENTATION_CONTEXT_IDENTIFIER 2 #define ABSTRACT_SYNTAX_NAME 6 #define TRANSFER_SYNTAX_NAMES 0x30 /* result list */ #define PRESENTATION_RESULT 0x80 #define PRESENTATION_RESULT_TRANSFER_SYNTAX_NAME 0x81 #define PRESENTATION_RESULT_INTEGER 0x82 /* result values */ #define PRESENTATION_RESULT_ACCEPTANCE 0 #define PRESENTATION_RESULT_USER_REJECTION 1 #define PRESENTATION_RESULT_PROVIDER_REJECTION 2 /* user data */ #define SIMPLY_ENCODED_DATA 0x60 #define FULLY_ENCODED_DATA 0x61 #define FTAM_PROTOCOL_VERGION 0x0080 /* functional units */ #define FTAM_FUNCTIONAL_UNIT_READ 0x2000 #define FTAM_FUNCTIONAL_UNIT_WRITE 0x1000 #define FTAM_FUNCTIONAL_UNIT_FILE_ACCESS 0x0800 #define FTAM_FUNCTIONAL_UNIT_LIMITED_FILE_MANAGEMENT 0x0400 #define FTAM_FUNCTIONAL_UNIT_ENHANCED_FILE_MANAGEMENT 0x0200 #define FTAM_FUNCTIONAL_UNIT_GROUPING 0x0100 #define FTAM_FUNCTIONAL_FADU_LOCKING 0x0080 #define FTAM_FUNCTIONAL_UNIT_RECOVERY 0x0040 #define FTAM_FUNCTIONAL_UNIT_RESTART_DATA_TRANSFER 0x0020 /* service classes */ #define FTAM_FUNCTIONAL_UNIT_UNCONSTRAINED_CLASS 0x80 #define FTAM_FUNCTIONAL_UNIT_MANAGEMENT_CLASS 0x40 #define FTAM_FUNCTIONAL_UNIT_TRANSFER_CLASS 0x20 #define FTAM_FUNCTIONAL_UNIT_TRANSFER_AND_MANAGEMENT_CLASS 0x10 #define FTAM_FUNCTIONAL_UNIT_ACESS_CLASS 0x08 /* attribute group */ #define FTAM_ATTRIBUTE_GROUPS_STORAGE 0x80 #define FTAM_ATTRIBUTE_GROUPS_SECURITY 0x40 #define FTAM_ATTRIBUTE_GROUPS_PRIVATE 0x20 #define DATA_BULK_PDU 0xbf #define MAXSTRING 256 #define ABORT_REASON_LEN 3 #define GRAPHIC_STRING "Graphic string"