From 54a520d4a1151c68d0b4e5f09a8d82466fa499f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Valverde?= Date: Wed, 9 Mar 2016 03:17:51 +0000 Subject: Move /asn1 to /epan/dissectors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I1208fe3c2ba428995526f561e8f792b8d871e9a9 Reviewed-on: https://code.wireshark.org/review/14388 Reviewed-by: Pascal Quantin Petri-Dish: Pascal Quantin Reviewed-by: João Valverde --- epan/dissectors/asn1/ftam/CMakeLists.txt | 56 + epan/dissectors/asn1/ftam/ISO8571-FTAM.asn | 1451 ++++++++++++++++++++++ epan/dissectors/asn1/ftam/Makefile.am | 23 + epan/dissectors/asn1/ftam/Makefile.common | 50 + epan/dissectors/asn1/ftam/Makefile.nmake | 26 + epan/dissectors/asn1/ftam/ftam.cnf | 131 ++ epan/dissectors/asn1/ftam/packet-ftam-template.c | 180 +++ epan/dissectors/asn1/ftam/packet-ftam-template.h | 34 + 8 files changed, 1951 insertions(+) create mode 100644 epan/dissectors/asn1/ftam/CMakeLists.txt create mode 100644 epan/dissectors/asn1/ftam/ISO8571-FTAM.asn create mode 100644 epan/dissectors/asn1/ftam/Makefile.am create mode 100644 epan/dissectors/asn1/ftam/Makefile.common create mode 100644 epan/dissectors/asn1/ftam/Makefile.nmake create mode 100644 epan/dissectors/asn1/ftam/ftam.cnf create mode 100644 epan/dissectors/asn1/ftam/packet-ftam-template.c create mode 100644 epan/dissectors/asn1/ftam/packet-ftam-template.h (limited to 'epan/dissectors/asn1/ftam') diff --git a/epan/dissectors/asn1/ftam/CMakeLists.txt b/epan/dissectors/asn1/ftam/CMakeLists.txt new file mode 100644 index 0000000000..e7c8a51c5b --- /dev/null +++ b/epan/dissectors/asn1/ftam/CMakeLists.txt @@ -0,0 +1,56 @@ +# CMakeLists.txt +# +# Wireshark - 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# + +set( PROTOCOL_NAME ftam ) + +set( PROTO_OPT ) + +set( EXPORT_FILES + ${PROTOCOL_NAME}-exp.cnf +) + +set( EXT_ASN_FILE_LIST +) + +set( ASN_FILE_LIST + ISO8571-FTAM.asn +) + +set( EXTRA_DIST + ${ASN_FILE_LIST} + packet-${PROTOCOL_NAME}-template.c + packet-${PROTOCOL_NAME}-template.h + ${PROTOCOL_NAME}.cnf +) + +set( SRC_FILES + ${EXTRA_DIST} + ${EXT_ASN_FILE_LIST} +) + +set( A2W_FLAGS -b ) + +set( EXTRA_CNF + "${CMAKE_CURRENT_BINARY_DIR}/../acse/acse-exp.cnf" +) + +ASN2WRS() + diff --git a/epan/dissectors/asn1/ftam/ISO8571-FTAM.asn b/epan/dissectors/asn1/ftam/ISO8571-FTAM.asn new file mode 100644 index 0000000000..b2d8231f0f --- /dev/null +++ b/epan/dissectors/asn1/ftam/ISO8571-FTAM.asn @@ -0,0 +1,1451 @@ +-- Module ISO8571-FTAM (ISO 8571-4:1988) +-- +-- Copyright (c) ISO/IEC 1988. This version of +-- this ASN.1 module is part of ISO/IEC 8571-4:1988; +-- see the ISO|IEC text itself for full legal notices. +-- +ISO8571-FTAM {iso standard 8571 application-context(1) iso-ftam(1)} DEFINITIONS +::= +BEGIN + +PDU ::= CHOICE { + fTAM-Regime-PDU FTAM-Regime-PDU, + file-PDU File-PDU, + bulk-Data-PDU Bulk-Data-PDU, + fSM-PDU FSM-PDU +} + +FTAM-Regime-PDU ::= CHOICE { + f-initialize-request [0] IMPLICIT F-INITIALIZE-request, + f-initialize-response [1] IMPLICIT F-INITIALIZE-response, + f-terminate-request [2] IMPLICIT F-TERMINATE-request, + f-terminate-response [3] IMPLICIT F-TERMINATE-response, + f-u-abort-request [4] IMPLICIT F-U-ABORT-request, + f-p-abort-request [5] IMPLICIT F-P-ABORT-request +} + +F-INITIALIZE-request ::= SEQUENCE { + protocol-Version Protocol-Version DEFAULT {version-1}, + implementation-information Implementation-Information OPTIONAL, + presentation-tontext-management [2] IMPLICIT BOOLEAN DEFAULT FALSE, + service-class Service-Class DEFAULT {transfer-class}, + -- Only the valid combinations as specified in ISO 8571-3 are allowed. + functional-units Functional-Units, + attribute-groups Attribute-Groups DEFAULT {}, + shared-ASE-information Shared-ASE-Information OPTIONAL, + ftam-quality-of-Service FTAM-Quality-of-Service, + contents-type-list Contents-Type-List OPTIONAL, + initiator-identity User-Identity OPTIONAL, + account Account OPTIONAL, + filestore-password Password OPTIONAL, + checkpoint-window [8] IMPLICIT INTEGER DEFAULT 1 +} + +-- lf the recovery or restart data transfer functional units are +-- not available, the Checkpoint-window Parameter shall not be sent. +F-INITIALIZE-response ::= SEQUENCE { + state-result State-Result DEFAULT success, + action-result Action-Result DEFAULT success, + protocol-Version Protocol-Version DEFAULT {version-1}, + implementation-information Implementation-Information OPTIONAL, + presentation-tontext-management [2] IMPLICIT BOOLEAN DEFAULT FALSE, + service-class Service-Class DEFAULT {transfer-class}, + -- Only the valid combinations as specified in ISO 8571-3 are allowed. + functional-units Functional-Units, + attribute-groups Attribute-Groups DEFAULT {}, + shared-ASE-information Shared-ASE-Information OPTIONAL, + ftam-quality-of-Service FTAM-Quality-of-Service, + contents-type-list Contents-Type-List OPTIONAL, + diagnostic Diagnostic OPTIONAL, + checkpoint-window [8] IMPLICIT INTEGER DEFAULT 1 +} + +-- If the recovery or restart data transfer functional units are +-- not available, the Checkpoint-window Parameter shall not be sent. +Protocol-Version ::= [0] IMPLICIT BIT STRING {version-1(0), version-2(1) +} + +Implementation-Information ::= [1] IMPLICIT GraphicString + +-- This Parameter is provided solely for the convenience of implementors +-- needing to distinguish between implernentations of a specific version number +-- of different equipment, it shall not be the subject of conformance test. +Service-Class ::= [3] IMPLICIT BIT STRING { + unconstrained-class(0), management-class(1), transfer-class(2), + transfer-and-management-class(3), access-class(4)} + +Functional-Units ::= [4] IMPLICIT BIT STRING { + read(2), write(3), file-access(4), limited-file-management(5), + enhanced-file-management(6), grouping(7), fadu-locking(8), recovery(9), + restart-data-transfer(10), limited-filestore-management(11), + enhanced-filestore-management(12), object-manipulation(13), + group-manipulation(14), consecutive-access(15), concurrent-access(16) +} + +-- Values 2 to 14 are Chosen to align with numbering scheme used in ISO 8571-3. +Attribute-Groups ::= [5] IMPLICIT BIT STRING { + storage(0), security(1), private(2), extension(3)} + +-- The extension bit is defined if and only if the limited-filestore-management +-- or the group-manipulation functional units are available. +FTAM-Quality-of-Service ::= [6] IMPLICIT INTEGER { + no-recovery(0), class-1-recovery(1), class-2-recovery(2), class-3-recovery(3) +} + +Contents-Type-List ::= + [7] IMPLICIT + SEQUENCE OF + CHOICE {document-type-name Document-Type-Name, + abstract-Syntax-name Abstract-Syntax-Name} + +F-TERMINATE-request ::= SEQUENCE { + shared-ASE-information Shared-ASE-Information OPTIONAL +} + +F-TERMINATE-response ::= SEQUENCE { + shared-ASE-information Shared-ASE-Information OPTIONAL, + charging Charging OPTIONAL +} + +F-U-ABORT-request ::= SEQUENCE { + action-result Action-Result DEFAULT success, + diagnostic Diagnostic OPTIONAL +} + +F-P-ABORT-request ::= SEQUENCE { + action-result Action-Result DEFAULT success, + diagnostic Diagnostic OPTIONAL +} + +File-PDU ::= CHOICE { + f-select-request [6] IMPLICIT F-SELECT-request, + f-select-response [7] IMPLICIT F-SELECT-response, + f-deselect-request [8] IMPLICIT F-DESELECT-request, + f-deselect-response [9] IMPLICIT F-DESELECT-response, + f-create-request [10] IMPLICIT F-CREATE-request, + f-create-response [11] IMPLICIT F-CREATE-response, + f-delete-request [12] IMPLICIT F-DELETE-request, + f-delete-response [13] IMPLICIT F-DELETE-response, + f-read-attrib-request [14] IMPLICIT F-READ-ATTRIB-request, + f-read-attrib-response [15] IMPLICIT F-READ-ATTRIB-response, + f-Change-attrib-reques [16] IMPLICIT F-CHANGE-ATTRIB-request, + f-Change-attrib-respon [17] IMPLICIT F-CHANGE-ATTRIB-response, + f-open-request [18] IMPLICIT F-OPEN-request, + f-open-response [19] IMPLICIT F-OPEN-response, + f-close-request [20] IMPLICIT F-CLOSE-request, + f-close-response [21] IMPLICIT F-CLOSE-response, + f-begin-group-request [22] IMPLICIT F-BEGIN-GROUP-request, + f-begin-group-response [23] IMPLICIT F-BEGIN-GROUP-response, + f-end-group-request [24] IMPLICIT F-END-GROUP-request, + f-end-group-response [25] IMPLICIT F-END-GROUP-response, + f-recover-request [26] IMPLICIT F-RECOVER-request, + f-recover-response [27] IMPLICIT F-RECOVER-response, + f-locate-request [28] IMPLICIT F-LOCATE-request, + f-locate-response [29] IMPLICIT F-LOCATE-response, + f-erase-request [30] IMPLICIT F-ERASE-request, + f-erase-response [31] IMPLICIT F-ERASE-response +} + +F-SELECT-request ::= SEQUENCE { + attributes Select-Attributes, + requested-access Access-Request, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL, + -- This Parameter tan only be sent when the + -- limited-filestore-management or the object-manipulation or + -- the group-manipulation functional units are available. + concurrency-control Concurrency-Control OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL, + account Account OPTIONAL +} + +F-SELECT-response ::= SEQUENCE { + state-result State-Result DEFAULT success, + action-result Action-Result DEFAULT success, + attributes Select-Attributes, + referent-indicator Referent-Indicator OPTIONAL, + -- This Parameter tan only be sent when the + -- limited-filestore-management functional unit is available. + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-DESELECT-request ::= SEQUENCE { + shared-ASE-information Shared-ASE-Information OPTIONAL +} + +F-DESELECT-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + charging Charging OPTIONAL, + -- Present if and only if the account field was present on + -- the PDU which established the selection regime. + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-CREATE-request ::= SEQUENCE { + override [0] IMPLICIT Override DEFAULT create-failure, + initial-attributes Create-Attributes, + create-password Password OPTIONAL, + requested-access Access-Request, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL, + -- This Parameter tan only be sent when the + -- limited-filestore-management or the Object-manipulation or + -- the group-manipulation functional units are available. + concurrency-control Concurrency-Control OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL, + account Account OPTIONAL +} + +F-CREATE-response ::= SEQUENCE { + state-result State-Result DEFAULT success, + action-result Action-Result DEFAULT success, + initial-attributes Create-Attributes, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-DELETE-request ::= SEQUENCE { + shared-ASE-information Shared-ASE-Information OPTIONAL +} + +F-DELETE-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + shared-ASE-information Shared-ASE-Information OPTIONAL, + charging Charging OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-READ-ATTRIB-request ::= SEQUENCE { + attribute-names [0] IMPLICIT Attribute-Names, + attribute-extension-names [1] IMPLICIT Attribute-Extension-Names OPTIONAL +} + +-- This Parameter tan only be sent when the +-- limited-filestore-management functional unit is available. +F-READ-ATTRIB-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + attributes Read-Attributes OPTIONAL, + -- Password values within the access control tan not be read by means + -- of the read attribute action. Whether other Parts of the access + -- control Object attribute tan be read by means of the read + -- attribute action is decided locally by the responding entity, and + -- it shall not be the subject of conformance test. + diagnostic Diagnostic OPTIONAL +} + +F-CHANGE-ATTRIB-request ::= SEQUENCE {attributes Change-Attributes +} + +F-CHANGE-ATTRIB-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + attributes Change-Attributes OPTIONAL, + -- Password values within access control attribute are never returned. + -- Other attributes are retumed as an implementation choice. + diagnostic Diagnostic OPTIONAL +} + +F-OPEN-request ::= SEQUENCE { + processing-mode + [0] IMPLICIT BIT STRING {f-read(0), f-insert(1), f-replace(2), f-extend(3), + f-erase(4)} DEFAULT {f-read}, + contents-type + [1] CHOICE {unknown [0] IMPLICIT NULL, + proposed [1] Contents-Type-Attribute}, + concurrency-control Concurrency-Control OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL, + enable-fadu-locking [2] IMPLICIT BOOLEAN DEFAULT FALSE, + activity-identifier Activity-Identifier OPTIONAL, + -- Only used in the recovery functional unit. + recovery-mode + [3] IMPLICIT INTEGER {none(0), at-start-of-file(1), + at-any-active-Checkpoint(2)} DEFAULT none, + remove-contexts [4] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL, + define-contexts [5] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL, + -- The following are conditional on the negotiation of the consecutive overlap or + -- concurrent overlap functional units. + degree-of-overlap Degree-Of-Overlap OPTIONAL, + transfer-window [7] IMPLICIT INTEGER OPTIONAL +} + +F-OPEN-response ::= SEQUENCE { + state-result State-Result DEFAULT success, + action-result Action-Result DEFAULT success, + contents-type [1] Contents-Type-Attribute, + concurrency-control Concurrency-Control OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL, + recovery-mode + [3] IMPLICIT INTEGER {none(0), at-start-of-file(1), + at-any-active-Checkpoint(2)} DEFAULT none, + presentation-action [6] IMPLICIT BOOLEAN DEFAULT FALSE, + -- This flag is set if the responder is going to follow this response + -- by a P-ALTER-CONTEXT exchange. + --The following are conditional on the negotiation of the concecutive access + -- or concurent access functional units. + degree-of-overlap Degree-Of-Overlap OPTIONAL, + transfer-window [7] IMPLICIT INTEGER OPTIONAL +} + +F-CLOSE-request ::= SEQUENCE { + action-result Action-Result DEFAULT success, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-CLOSE-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-BEGIN-GROUP-request ::= SEQUENCE {threshold [0] IMPLICIT INTEGER +} + +F-BEGIN-GROUP-response ::= SEQUENCE { +} + +-- No elements defined, shall be empty. +F-END-GROUP-request ::= SEQUENCE { +} + +-- No elements defined, shall be empty. +F-END-GROUP-response ::= SEQUENCE { +} + +-- No elements defined, shall be empty. +F-RECOVER-request ::= SEQUENCE { + activity-identifier Activity-Identifier, + bulk-transfer-number [0] IMPLICIT INTEGER, + -- If concurrent access was in use then this parameter indicates the read bulk + -- transfer. + requested-access Access-Request, + access-passwords Access-Passwords OPTIONAL, + recovefy-Point [2] IMPLICIT INTEGER DEFAULT 0, + -- Zero indicates beginning of file + -- Point after last Checkpoint indicates end of file + remove-contexts + [3] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL, + define-contexts + [4] IMPLICIT SET OF Abstract-Syntax-Name OPTIONAL, + -- The following are conditional on the negotiation of overlapped access. + concurrent-bulk-transfer-number [7] IMPLICIT INTEGER OPTIONAL, + -- conditional on use of concurrent access + concurrent-recovery-point [8] IMPLICIT INTEGER OPTIONAL, + -- conditional on use of concurrent access. Zero indicates beginning of file + -- point after last checkpoint indicates end of file + last-transfer-end-read-response [9] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-response [10] IMPLICIT INTEGER OPTIONAL +} + +F-RECOVER-response ::= SEQUENCE { + state-result State-Result DEFAULT success, + action-result Action-Result DEFAULT success, + contents-type [1] Contents-Type-Attribute, + recovety-Point [2] IMPLICIT INTEGER DEFAULT 0, + -- Zero indicates beginning of file. + -- Point after last Checkpoint indicates end of file. + diagnostic Diagnostic OPTIONAL, + presentation-action [6] IMPLICIT BOOLEAN DEFAULT FALSE, + -- This flag is set if the responder is going to follow this response + -- by a P-ALTER-CONTEXT exchange. + -- The following are conditional on the negotiation of overlapped access. + concurrent-recovery-point [8] IMPLICIT INTEGER OPTIONAL, + -- conditional on use of concurrent access. Zero indicates beginning of file; point after + -- last checkpoint indicates end of file + last-transfer-end-read-request [9] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-request [10] IMPLICIT INTEGER OPTIONAL +} + +F-LOCATE-request ::= SEQUENCE { + file-access-data-unit-identity FADU-Identity, + fadu-lock FADU-Lock OPTIONAL +} + +F-LOCATE-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + file-access-data-unit-identity FADU-Identity OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-ERASE-request ::= SEQUENCE {file-access-data-unit-identity FADU-Identity +} + +F-ERASE-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + diagnostic Diagnostic OPTIONAL +} + +Bulk-Data-PDU ::= CHOICE { + f-read-request [32] IMPLICIT F-READ-request, + f-write-request [33] IMPLICIT F-WRITE-request, + -- There is no F-DATA FPDU, the contents of a file + -- are transferred in a different presentation context + -- and there is therefore no need to define the types + -- of file contents in the FTAM PCI abstract Syntax. + -- File contents data are carried in values of the + -- data type Data-Element as defined in ISO 8571-2. + f-data-end-request [34] IMPLICIT F-DATA-END-request, + f-transfer-end-request [35] IMPLICIT F-TRANSFER-END-request, + f-transfer-end-response [36] IMPLICIT F-TRANSFER-END-response, + f-cancel-request [37] IMPLICIT F-CANCEL-request, + f-cancel-response [38] IMPLICIT F-CANCEL-response, + -- There is no F-CHECK PDU. + f-restart-request [39] IMPLICIT F-RESTART-request, + f-restart-response [40] IMPLICIT F-RESTART-response +} + +F-READ-request ::= SEQUENCE { + file-access-data-unit-identity FADU-Identity, + access-context Access-Context, + fadu-lock FADU-Lock OPTIONAL, + -- The following is conditional on the negotiation of consecutive of concurrent access. + transfer-number [0] IMPLICIT INTEGER OPTIONAL +} + +F-WRITE-request ::= SEQUENCE { + file-access-data-unit-Operation + [0] IMPLICIT INTEGER {insert(0), replace(1), extend(2)}, + file-access-data-unit-identity FADU-Identity, + fadu-lock FADU-Lock OPTIONAL, + -- The following is conditional on the negotiation of consecutive or concurrent access. + transfer-number [1] IMPLICIT INTEGER OPTIONAL +} + +F-DATA-END-request ::= SEQUENCE { + action-result Action-Result DEFAULT success, + diagnostic Diagnostic OPTIONAL +} + +F-TRANSFER-END-request ::= SEQUENCE { + shared-ASE-information Shared-ASE-Information OPTIONAL, + -- The following are conditional on the negotiation of consecutive or concurrent access. + request-type Request-Type OPTIONAL, + transfer-number [0] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-read-response [1] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-response [2] IMPLICIT INTEGER OPTIONAL +} + +F-TRANSFER-END-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL, + -- The following are conditional on the negotiation of consecutive or concurrent access. + request-type Request-Type OPTIONAL, + transfer-number [0] IMPLICIT INTEGER OPTIONAL +} + +F-CANCEL-request ::= SEQUENCE { + action-result Action-Result DEFAULT success, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL, + -- The following are conditional on the negotiation of consecutive or concurrent access. + request-type Request-Type, + transfer-number [0] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-read-request [1] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-read-response [2] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-request [3] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-response [4] IMPLICIT INTEGER OPTIONAL +} + +F-CANCEL-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL, + -- The following are conditional on the negotiation of consecutive or concurrent access. + request-type Request-Type OPTIONAL, + transfer-number [0] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-read-request [1] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-read-response [2] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-request [3] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-response [4] IMPLICIT INTEGER OPTIONAL +} + +F-CHECK-request ::= SEQUENCE { + checkpoint-identifier [0] IMPLICIT INTEGER, + transfer-number [1] IMPLICIT INTEGER +} + +F-CHECK-response ::= SEQUENCE { + checkpoint-identifier [0] IMPLICIT INTEGER, + transfer-number [1] IMPLICIT INTEGER +} + +F-RESTART-request ::= SEQUENCE { + checkpoint-identifier [0] IMPLICIT INTEGER, + -- The following are conditional on the negotiation of consecutive or concurrent access. + request-type Request-Type OPTIONAL, + transfer-number [1] IMPLICIT INTEGER, + last-transfer-end-read-request [2] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-read-response [3] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-request [4] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-response [5] IMPLICIT INTEGER OPTIONAL +} + +F-RESTART-response ::= SEQUENCE { + checkpoint-identifier [0] IMPLICIT INTEGER, + -- The following are conditional on the negotiation of consecutive or concurrent access. + request-type Request-Type OPTIONAL, + transfer-number [1] IMPLICIT INTEGER, + last-transfer-end-read-request [2] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-read-response [3] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-request [4] IMPLICIT INTEGER OPTIONAL, + last-transfer-end-write-response [5] IMPLICIT INTEGER OPTIONAL +} + +Degree-Of-Overlap ::= [APPLICATION 30] IMPLICIT INTEGER { + normal(0), consecutive(1), concurrent(2)} + +Request-Type ::= [APPLICATION 31] IMPLICIT INTEGER {read(0), write(1)} + +Abstract-Syntax-Name ::= [APPLICATION 0] IMPLICIT OBJECT IDENTIFIER + +Access-Context ::= [APPLICATION 1] IMPLICIT SEQUENCE { + access-context + [0] IMPLICIT INTEGER {hierarchical-all-data-units(0),--HA-- + hierarchical-no-data-units(1),--HN-- + flat-all-data-units(2),--FA-- + flat-one-level-data-unit(3),--FL-- + flat-Single-data-unit(4),--FS-- + unstructured-all-data-units(5),--UA-- + unstructured-Single-data-unit(6)}, --US + level-number [1] IMPLICIT INTEGER OPTIONAL +} + +-- Present if and only if flat-one-level-data-units +-- (access context FL) is selected. +-- As defined in ISO 8571-2. +Access-Passwords ::= [APPLICATION 2] IMPLICIT SEQUENCE { + read-password [0] Password, + insert-password [1] Password, + replace-password [2] Password, + extend-password [3] Password, + erase-password [4] Password, + read-attribute-password [5] Password, + change-attribute-password [6] Password, + delete-password [7] Password, + pass-passwords [8] IMPLICIT Pass-Passwords OPTIONAL, + link-password [9] Password OPTIONAL +} + +-- The pass-passwords and the link-password must be included in the +-- access-passwords if and only if the limited-filestore-management +-- or the Object-manipulation or the group-manipulation functional +-- units are available. +Access-Request ::= [APPLICATION 3] IMPLICIT BIT STRING { + read(0), insert(1), replace(2), extend(3), erase(4), read-attribute(5), + change-attribute(6), delete-Object(7)} + +Account ::= [APPLICATION 4] IMPLICIT GraphicString + +Action-Result ::= [APPLICATION 5] IMPLICIT INTEGER { + success(0), transient-error(1), permanent-error(2)} + +Activity-Identifier ::= [APPLICATION 6] IMPLICIT INTEGER + +Application-Entity-Title ::= [APPLICATION 7] AE-title + +-- As defined in ISO 8650. +Change-Attributes ::= [APPLICATION 8] IMPLICIT SEQUENCE { + -- Kerne1 Group + pathname Pathname-Attribute OPTIONAL, + -- Storage group + storage-account [3] Account-Attribute OPTIONAL, + object-availability [12] Object-Availability-Attribute OPTIONAL, + future-Object-size [14] Object-Size-Attribute OPTIONAL, + -- Security group + access-control [15] Access-Control-Change-Attribute OPTIONAL, + path-access-control [21] Access-Control-Change-Attribute OPTIONAL, + -- This Parameter tan only be sent when the + -- enhanced-filestore-management functional unit is available. + legal-qualification [16] Legal-Qualification-Attribute OPTIONAL, + -- Private group + private-use [17] Private-Use-Attribute OPTIONAL, + -- Attribute Extensions group + attribute-extensions [22] IMPLICIT Attribute-Extensions OPTIONAL +} + +-- This Parameter tan only be sent when the +-- enhanced-filestore-management functional unit is available. +-- Atleast one attribute shall be present in the Change-Attributes +-- Parameter on the request PDU. +Charging ::= + [APPLICATION 9] IMPLICIT + SEQUENCE OF + SEQUENCE {resource-identifier [0] IMPLICIT GraphicString, + charging-unit [1] IMPLICIT GraphicString, + charging-value [2] IMPLICIT INTEGER} + +Concurrency-Control ::= [APPLICATION 10] IMPLICIT SEQUENCE { + read [0] IMPLICIT Lock, + insert [1] IMPLICIT Lock, + replace [2] IMPLICIT Lock, + extend [3] IMPLICIT Lock, + erase [4] IMPLICIT Lock, + read-attribute [5] IMPLICIT Lock, + change-attribute [6] IMPLICIT Lock, + delete-Object [7] IMPLICIT Lock +} + +Lock ::= INTEGER {not-required(0), shared(1), exclusive(2), no-access(3)} + +Constraint-Set-Name ::= [APPLICATION 11] IMPLICIT OBJECT IDENTIFIER + +Create-Attributes ::= [APPLICATION 12] IMPLICIT SEQUENCE { + -- Kerne1 Group + pathname Pathname-Attribute, + object-type [18] IMPLICIT Object-Type-Attribute DEFAULT file, + -- This Parameter tan be sent if and only if the + -- limited-filestore-management functional unit is available. + permitted-actions [1] IMPLICIT Permitted-Actions-Attribute, + contents-type [2] Contents-Type-Attribute, + -- Storage group + storage-account [3] Account-Attribute OPTIONAL, + object-availability [12] Object-Availability-Attribute OPTIONAL, + future-Object-size [14] Object-Size-Attribute OPTIONAL, + -- Security group + access-control [15] Access-Control-Attribute OPTIONAL, + path-access-control [21] Access-Control-Attribute OPTIONAL, + -- This Parameter tan be sent if and only if the + -- enhanced-filestore-management functional unit is available. + legal-qualification [16] Legal-Qualification-Attribute OPTIONAL, + -- Private group + private-use [17] Private-Use-Attribute OPTIONAL, + -- Attribute Extensions group + attribute-extensions [22] IMPLICIT Attribute-Extensions OPTIONAL +} + +-- This Parameter tan only be sent when the +-- limited-filestore-management functional unit is available. +Diagnostic ::= + [APPLICATION 13] IMPLICIT + SEQUENCE OF + SEQUENCE {diagnostic-type + [0] IMPLICIT INTEGER {informative(0), transient(1), + permanent(2)}, + error-identifier [1] IMPLICIT INTEGER, + -- As defined in ISO 8571-3. + error-observer [2] IMPLICIT Entity-Reference, + error-Source [3] IMPLICIT Entity-Reference, + suggested-delay [4] IMPLICIT INTEGER OPTIONAL, + further-details [5] IMPLICIT GraphicString OPTIONAL + } + +Entity-Reference ::= INTEGER { + no-categorization-possible(0), initiating-file-service-user(1), + initiating-file-protocol-machine(2), + service-supporting-the-file-protocol-machine(3), + responding-file-protocol-machine(4), responding-file-service-user(5) +} + +--NOTE +-- 1. The values 0 and 3 are only valid as values in error-source. +-- 2. The value 5 corresponds to the virtual filestore. +Document-Type-Name ::= [APPLICATION 14] IMPLICIT OBJECT IDENTIFIER + +FADU-Identity ::= [APPLICATION 15] CHOICE { + first-last [0] IMPLICIT INTEGER {first(0), last(1)}, + relative [1] IMPLICIT INTEGER {previous(0), current(1), next(2)}, + begin-end [2] IMPLICIT INTEGER {begin(0), end(1)}, + single-name [3] IMPLICIT Node-Name, + name-list [4] IMPLICIT SEQUENCE OF Node-Name, + fadu-number [5] IMPLICIT INTEGER +} + +-- As defined in ISO 8571-2. +Node-Name ::= EXTERNAL + +-- The type to be used for Node-Name is defined in IS08571-FADU. +FADU-Lock ::= [APPLICATION 16] IMPLICIT INTEGER {off(0), on(1)} + +Password ::= [APPLICATION 17] CHOICE { + graphicString GraphicString, + octetString OCTET STRING +} + +Read-Attributes ::= [APPLICATION 18] IMPLICIT SEQUENCE { + -- Kerne1 Group + pathname Pathname-Attribute OPTIONAL, + object-type + [18] IMPLICIT Object-Type-Attribute OPTIONAL, + -- This Parameter tan be sent if and only if + -- the limited-filestore-management functional unit is available. + permitted-actions + [1] IMPLICIT Permitted-Actions-Attribute OPTIONAL, + contents-type + [2] Contents-Type-Attribute OPTIONAL, + linked-Object + [19] Pathname-Attribute OPTIONAL, + -- This Parameter tan be sent if and only if + -- the limited-filestore-management functional unit is available. + child-objects + [23] Child-Objects-Attribute OPTIONAL, + -- This Parameter tan be sent if and only if + -- the limited-filestore-management functional unit is available. + -- Storage group + primaty-pathname + [20] Pathname-Attribute OPTIONAL, + storage-account [3] Account-Attribute OPTIONAL, + date-and-time-of-creation + [4] Date-and-Time-Attribute OPTIONAL, + date-and-time-of-last-modification + [5] Date-and-Time-Attribute OPTIONAL, + date-and-time-of-last-read-access + [6] Date-and-Time-Attribute OPTIONAL, + date-and-time-of-last-attribute-modification + [7] Date-and-Time-Attribute OPTIONAL, + identity-of-creator + [8] User-Identity-Attribute OPTIONAL, + identity-of-last-modifier + [9] User-Identity-Attribute OPTIONAL, + identity-of-last-reader + [10] User-Identity-Attribute OPTIONAL, + identity-last-attribute-modifier + [11] User-Identity-Attribute OPTIONAL, + object-availability + [12] Object-Availability-Attribute OPTIONAL, + object-size + [13] Object-Size-Attribute OPTIONAL, + future-Object-size + [14] Object-Size-Attribute OPTIONAL, + -- Security group + access-control + [15] Access-Control-Attribute OPTIONAL, + path-access-control + [21] Access-Control-Attribute OPTIONAL, + -- This Parameter tan be sent if and only if + -- the limited-filestore-management functional unit is available. + legal-qualification + [16] Legal-Qualification-Attribute OPTIONAL, + -- Private group + private-use + [17] Private-Use-Attribute OPTIONAL, + -- Attribute Extensions group + attribute-extensions + [22] IMPLICIT Attribute-Extensions OPTIONAL +} + +-- This Parameter tan be sent if and only if +-- the limited-filestore-management functional unit is available. +Select-Attributes ::= [APPLICATION 19] IMPLICIT SEQUENCE { + -- Kerne1 Group + pathname Pathname-Attribute +} + +Shared-ASE-Information ::= [APPLICATION 20] IMPLICIT EXTERNAL + +-- This field may be used to convey commitment control as described +-- in ISO 8571-3. +State-Result ::= [APPLICATION 21] IMPLICIT INTEGER {success(0), failure(1) +} + +User-Identity ::= [APPLICATION 22] IMPLICIT GraphicString + +Access-Control-Attribute ::= CHOICE { + no-value-available [0] IMPLICIT NULL, + -- Indicates partial support of this attribute. + -- This value shall only appear in response PDUs. + actual-values [1] IMPLICIT SET OF Access-Control-Element +} + +-- The semantics of this attribute is described in ISO 8571-2. +Access-Control-Change-Attribute ::= CHOICE { + no-value-available [0] IMPLICIT NULL, + -- Indicates partial support of this attribute. + -- This value shall only appear in response PDUs. + actual-values + [1] IMPLICIT SEQUENCE {insert-values + [0] IMPLICIT SET OF Access-Control-Element + OPTIONAL, + -- This field is used by the Change attribute actions to indicate + -- new values to be inserted in the access control Object attribute. + delete-values + [1] IMPLICIT SET OF Access-Control-Element + OPTIONAL} +} + +-- This field is used by the Change attribute action to indicate +-- old values to be removed from the access control Object +-- attribute. +-- The semantics of this attribute is described in ISO 8571-2. +Access-Control-Element ::= SEQUENCE { + action-list [0] IMPLICIT Access-Request, + concurrency-access [1] IMPLICIT Concurrency-Access OPTIONAL, + identity [2] IMPLICIT User-Identity OPTIONAL, + passwords [3] IMPLICIT Access-Passwords OPTIONAL, + location [4] IMPLICIT Application-Entity-Title OPTIONAL +} + +Concurrency-Access ::= SEQUENCE { + read [0] IMPLICIT Concurrency-Key, + insert [1] IMPLICIT Concurrency-Key, + replace [2] IMPLICIT Concurrency-Key, + extend [3] IMPLICIT Concurrency-Key, + erase [4] IMPLICIT Concurrency-Key, + read-attribute [5] IMPLICIT Concurrency-Key, + change-attribute [6] IMPLICIT Concurrency-Key, + delete-Object [7] IMPLICIT Concurrency-Key +} + +Concurrency-Key ::= BIT STRING { + not-required(0), shared(1), exclusive(2), no-access(3)} + +Account-Attribute ::= CHOICE { + no-value-available [0] IMPLICIT NULL, + -- Indicates partial support of this attribute. + -- This value shall only appear in response PDUs. + actual-values Account +} + +Contents-Type-Attribute ::= CHOICE { + document-type + [0] IMPLICIT SEQUENCE {document-type-name Document-Type-Name, + parameter + [0] TYPE-IDENTIFIER.&Type OPTIONAL}, + -- The actual types to be used for values of the Parameter field + -- are defined in the named document type. + constraint-set-and-abstract-Syntax + [1] IMPLICIT SEQUENCE {constraint-set-name Constraint-Set-Name, + abstract-Syntax-name Abstract-Syntax-Name + } +} + +Date-and-Time-Attribute ::= CHOICE { + no-value-available [0] IMPLICIT NULL, + -- Indicates partial support of this attribute. + -- This value shall only appear in response PDUs. + actual-values [1] IMPLICIT GeneralizedTime +} + +Object-Availability-Attribute ::= CHOICE { + no-value-available [0] IMPLICIT NULL, + -- Indicates partial support of this attribute. + -- This value shall only appear in response PDUs. + actual-values + [1] IMPLICIT INTEGER {immediate-availability(0), deferred-availability(1)} +} + +Pathname-Attribute ::= CHOICE { + incomplete-pathname [0] IMPLICIT Pathname, + complete-pathname [APPLICATION 23] IMPLICIT Pathname +} + +Object-Size-Attribute ::= CHOICE { + no-value-available [0] IMPLICIT NULL, + -- Indicates partial support of this attribute. + -- This value shall only appear in response PDUs. + actual-values [1] IMPLICIT INTEGER +} + +Legal-Qualification-Attribute ::= CHOICE { + no-value-available [0] IMPLICIT NULL, + -- Indicates partial support of this attribute. + -- This value shall only appear in response PDUs. + actual-values [1] IMPLICIT GraphicString +} + +Permitted-Actions-Attribute ::= BIT STRING -- Actions available + { + read(0), insert(1), replace(2), extend(3), erase(4), read-attribute(5), + change-attribute(6), delete-Object(7), pass(11), + link(12), + -- FADU-Identity groups available + traversal(8), reverse-traversal(9), random-Order(10)} + +Private-Use-Attribute ::= CHOICE { + no-value-available [0] IMPLICIT NULL, + -- Indicates partial support of this attribute. + -- This value shall only appear in response PDUs. + abstract-Syntax-not-supported [1] IMPLICIT NULL, + -- Indicates that abstract Syntax is not available. + actual-values [2] IMPLICIT EXTERNAL +} + +Object-Type-Attribute ::= INTEGER {file(0), file-directory(1), reference(2)} + +User-Identity-Attribute ::= CHOICE { + no-value-available [0] IMPLICIT NULL, + -- Indicates partial support of this attribute. + -- This value shall only appear in response PDUs. + actual-values User-Identity +} + +Child-Objects-Attribute ::= SET OF GraphicString + +FSM-PDU ::= CHOICE { + f-Change-prefix-request [41] IMPLICIT F-CHANGE-PREFIX-request, + f-Change-prefix-response [42] IMPLICIT F-CHANGE-PREFIX-response, + f-list-request [43] IMPLICIT F-LIST-request, + f-list-response [44] IMPLICIT F-LIST-response, + f-group-select-request [45] IMPLICIT F-GROUP-SELECT-request, + f-group-select-response [46] IMPLICIT F-GROUP-SELECT-response, + f-group-delete-request [47] IMPLICIT F-GROUP-DELETE-request, + f-group-delete-response [48] IMPLICIT F-GROUP-DELETE-response, + f-group-move-request [49] IMPLICIT F-GROUP-MOVE-request, + f-group-move-response [50] IMPLICIT F-GROUP-MOVE-response, + f-group-copy-request [51] IMPLICIT F-GROUP-COPY-request, + f-group-copy-response [52] IMPLICIT F-GROUP-COPY-response, + f-group-list-request [53] IMPLICIT F-GROUP-LIST-request, + f-group-list-response [54] IMPLICIT F-GROUP-LIST-response, + f-group-Change-attrib-request [55] IMPLICIT F-GROUP-CHANGE-ATTRIB-request, + f-group-Change-attrib-response [56] IMPLICIT F-GROUP-CHANGE-ATTRIB-response, + f-select-another-request [57] IMPLICIT F-SELECT-ANOTHER-request, + f-select-another-response [58] IMPLICIT F-SELECT-ANOTHER-response, + f-create-directory-request [59] IMPLICIT F-CREATE-DIRECTORY-request, + f-create-directory-response [60] IMPLICIT F-CREATE-DIRECTORY-response, + f-link-request [61] IMPLICIT F-LINK-request, + f-link-response [62] IMPLICIT F-LINK-response, + f-unlink-request [63] IMPLICIT F-UNLINK-request, + f-unlink-response [64] IMPLICIT F-UNLINK-response, + f-read-link-attrib-request [65] IMPLICIT F-READ-LINK-ATTRIB-request, + f-read-link-attrib-response [66] IMPLICIT F-READ-LINK-ATTRIB-response, + f-Change-link-attrib-request [67] IMPLICIT F-CHANGE-LINK-ATTRIB-request, + f-Change-Iink-attrib-response [68] IMPLICIT F-CHANGE-LINK-ATTRIB-response, + f-move-request [69] IMPLICIT F-MOVE-request, + f-move-response [70] IMPLICIT F-MOVE-response, + f-copy-request [71] IMPLICIT F-COPY-request, + f-copy-response [72] IMPLICIT F-COPY-response +} + +F-CHANGE-PREFIX-request ::= SEQUENCE { + reset [0] IMPLICIT BOOLEAN DEFAULT FALSE, + destination-file-directory Destination-File-Directory, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL +} + +F-CHANGE-PREFIX-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + destination-file-directory Destination-File-Directory OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-LIST-request ::= SEQUENCE { + attribute-value-asset-tions Attribute-Value-Assertions, + scope Scope, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL, + attribute-names [0] IMPLICIT Attribute-Names, + attribute-extension-names [1] IMPLICIT Attribute-Extension-Names OPTIONAL +} + +F-LIST-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + objects-attributes-list Objects-Attributes-List OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-GROUP-SELECT-request ::= SEQUENCE { + attribute-value-assertions Attribute-Value-Assertions, + requested-access Access-Request, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL, + concurrency-control Concurrency-Control OPTIONAL, + maximum-set-size [0] IMPLICIT INTEGER DEFAULT 0, + -- 0 implies no limit. + scope Scope, + account Account OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL +} + +F-GROUP-SELECT-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-GROUP-DELETE-request ::= SEQUENCE { + request-Operation-result Request-Operation-Result OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL +} + +F-GROUP-DELETE-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + charging Charging OPTIONAL, + operation-result Operation-Result OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-GROUP-MOVE-request ::= SEQUENCE { + destination-file-directory Destination-File-Directory, + override [0] IMPLICIT Override DEFAULT create-failure, + -- Only the values create-failure (0} + -- and delete-and-create-with-new-attributes (3) are allowed. + error-action [11] IMPLICIT Error-Action, + create-password Password OPTIONAL, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL, + request-Operation-result Request-Operation-Result OPTIONAL, + attributes Change-Attributes OPTIONAL +} + +F-GROUP-MOVE-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + destination-file-directory Destination-File-Directory OPTIONAL, + operation-result Operation-Result OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-GROUP-COPY-request ::= SEQUENCE { + destination-file-directory Destination-File-Directory, + override [0] IMPLICIT Override DEFAULT create-failure, + -- Only the values create-failure (0) + -- and delete-and-create-with-new-attributes (3) are allowed. + error-action [1] IMPLICIT Error-Action, + create-password Password OPTIONAL, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL, + request-Operation-result Request-Operation-Result OPTIONAL, + attributes Change-Attributes OPTIONAL +} + +F-GROUP-COPY-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + destination-file-directory Destination-File-Directory OPTIONAL, + operation-result Operation-Result OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-GROUP-LIST-request ::= SEQUENCE { + attribute-names [0] IMPLICIT Attribute-Names, + attribute-extension-names [2] IMPLICIT Attribute-Extension-Names OPTIONAL +} + +F-GROUP-LIST-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + objects-attributes-list Objects-Attributes-List OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-GROUP-CHANGE-ATTRIB-request ::= SEQUENCE { + attributes Change-Attributes, + error-action [1] IMPLICIT Error-Action, + request-Operation-result Request-Operation-Result OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL +} + +F-GROUP-CHANGE-ATTRIB-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + operation-result Operation-Result OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-SELECT-ANOTHER-request ::= SEQUENCE { + shared-ASE-information Shared-ASE-Information OPTIONAL +} + +F-SELECT-ANOTHER-response ::= SEQUENCE { + state-result State-Result DEFAULT success, + action-result Action-Result DEFAULT success, + last-member-indicator [0] IMPLICIT BOOLEAN DEFAULT FALSE, + referent-indicator Referent-Indicator OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-CREATE-DIRECTORY-request ::= SEQUENCE { + initial-attributes Create-Attributes, + create-password Password OPTIONAL, + requested-access Access-Request, + shared-ASE-infonnation Shared-ASE-Information OPTIONAL, + account Account OPTIONAL +} + +F-CREATE-DIRECTORY-response ::= SEQUENCE { + state-result State-Result DEFAULT success, + action-result Action-Result DEFAULT success, + initial-attributes Create-Attributes, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-LINK-request ::= SEQUENCE { + initial-attributes Create-Attributes, + target-object Pathname-Attribute, + create-password Password OPTIONAL, + requested-access Access-Request, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL, + concurrency-control Concurrency-Control OPTIONAL, + shared-ASE-information Shared-ASE-Information OPTIONAL, + account Account OPTIONAL +} + +F-LINK-response ::= SEQUENCE { + state-result State-Result DEFAULT success, + action-result Action-Result DEFAULT success, + initial-attributes Create-Attributes, + target-Object Pathname-Attribute, + shared-ASE-information Shared-ASE-Information OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-UNLINK-request ::= SEQUENCE { + shared-ASE-information Shared-ASE-Information OPTIONAL +} + +F-UNLINK-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + shared-ASE-information Shared-ASE-Information OPTIONAL, + charging Charging OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-READ-LINK-ATTRIB-request ::= SEQUENCE { + attribute-names [0] IMPLICIT Attribute-Names, + attribute-extension-names [1] IMPLICIT Attribute-Extension-Names OPTIONAL +} + +F-READ-LINK-ATTRIB-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + attributes Read-Attributes OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-CHANGE-LINK-ATTRIB-request ::= SEQUENCE {attributes Change-Attributes +} + +F-CHANGE-LINK-ATTRIB-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + attributes Change-Attributes OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-MOVE-request ::= SEQUENCE { + destination-file-directory Destination-File-Directory, + override [0] IMPLICIT Override DEFAULT create-failure, + -- Only the values create-failure (0) + -- and delete-and-create-with-new-attributes (3) are ailowed. + create-password Password OPTIONAL, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL, + attributes Change-Attributes OPTIONAL +} + +F-MOVE-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + destination-file-directory Destination-File-Directory OPTIONAL, + attributes Change-Attributes OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +F-COPY-request ::= SEQUENCE { + destination-file-directory Destination-File-Directory, + override [0] IMPLICIT Override DEFAULT create-failure, + -- Only the values create-failure (0) + -- and delete-and-create-with-new-attributes (3) are allowed. + create-password Password OPTIONAL, + access-passwords Access-Passwords OPTIONAL, + path-access-passwords Path-Access-Passwords OPTIONAL, + attributes Change-Attributes OPTIONAL +} + +F-COPY-response ::= SEQUENCE { + action-result Action-Result DEFAULT success, + destination-file-directory Destination-File-Directory OPTIONAL, + attributes Change-Attributes OPTIONAL, + diagnostic Diagnostic OPTIONAL +} + +Attribute-Extension-Names ::= SEQUENCE OF Attribute-Extension-Set-Name + +Attribute-Extension-Set-Name ::= SEQUENCE { + extension-set-identifier [0] IMPLICIT Extension-Set-Identifier, + extension-attribute-names [1] SEQUENCE OF Extension-Attribute-identifier +} + +Attribute-Extensions ::= SEQUENCE OF Attribute-Extension-Set + +Attribute-Extension-Set ::= SEQUENCE { + extension-set-identifier [0] IMPLICIT Extension-Set-Identifier, + extension-set-attributes [1] SEQUENCE OF Extension-Attribute +} + +Extension-Attribute ::= SEQUENCE { + extension-attribute-identifier TYPE-IDENTIFIER.&id({Extension-Attributes}), + extension-attribute + TYPE-IDENTIFIER.&Type + ({Extension-Attributes}{@extension-attribute-identifier}) +} + +--Extension-Attributes TYPE-IDENTIFIER ::= +-- {...} - - dynamically extensible + +Extension-Set-Identifier ::= OBJECT IDENTIFIER + +Extension-Attribute-identifier ::= OBJECT IDENTIFIER + +Attribute-Value-Assertions ::= [APPLICATION 26] IMPLICIT OR-Set + +Scope ::= + [APPLICATION 28] IMPLICIT + SEQUENCE OF + SEQUENCE {root-directory [0] Pathname-Attribute OPTIONAL, + retrieval-scope [1] IMPLICIT INTEGER {child(0), all(1)} + } + +OR-Set ::= SEQUENCE OF AND-Set + +AND-Set ::= + SEQUENCE OF + CHOICE {-- Kernel group + pathname-Pattern + [0] IMPLICIT Pathname-Pattern, + object-type-Pattern + [18] IMPLICIT Integer-Pattern, + permitted-actions-Pattern + [1] IMPLICIT Bitstring-Pattern, + contents-type-Pattern + [2] Contents-Type-Pattern, + linked-Object-Pattern + [19] IMPLICIT Pathname-Pattern, + child-objects-Pattern + [23] IMPLICIT Pathname-Pattern, + -- Storage group + primaty-pathname-Pattern + [20] IMPLICIT Pathname-Pattern, + storage-account-Pattern + [3] IMPLICIT String-Pattern, + date-and-time-of-creation-Pattern + [4] IMPLICIT Date-and-Time-Pattern, + date-and-time-of-last-modification-Pattern + [5] IMPLICIT Date-and-Time-Pattern, + date-and-time-of-last-read-access-Pattern + [6] IMPLICIT Date-and-Time-Pattern, + date-and-time-of-last-attribute-modification-Pattern + [7] IMPLICIT Date-and-Time-Pattern, + identity-of-creator-Pattern + [8] IMPLICIT User-Identity-Pattern, + identity-of-last-modifier-Pattern + [9] IMPLICIT User-Identity-Pattern, + identity-of-last-reader-Pattern + [10] IMPLICIT User-Identity-Pattern, + identity-of-last-attribute-modifier-Pattern + [11] IMPLICIT User-Identity-Pattern, + object-availabiiity-Pattern + [12] IMPLICIT Boolean-Pattern, + object-size-Pattern + [13] IMPLICIT Integer-Pattern, + future-object-size-Pattern + [14] IMPLICIT Integer-Pattern, + -- Security group + -- Access control searches are disallowed. + legal-quailfication-Pattern + [16] IMPLICIT String-Pattern, + -- Private group + -- Private use searches are disallowed. + -- Attribute Extensions group + attribute-extensions-pattern + [22] IMPLICIT Attribute-Extensions-Pattern} + +User-Identity-Pattern ::= String-Pattern + +Equality-Comparision ::= BIT STRING { + no-value-available-matches(0), + -- Set impies "No Value Available" matches the test. + -- Clear implies "No Value Availabie" fails the test. + equals-matches(1) + +-- Set implies equal items match the test. +-- Clear implies equal items fail the test. +} + +Relational-Comparision ::= BIT STRING { + no-value-available-matches(0), + -- Set impies "No Value Available" matches the test. + -- Clear implies "No Value Available" fails the test. + equals-matches(1), + -- Set implies equal items match the test.' + -- Clear implies equal items fail the test. + less-than-matches(2), + -- Set implies a value less than the test cke matches. + -- Clear implies a value less than the test case fails. + greater-than-matches(3) + +-- Set implies a value greater than the test case matches. +-- Clear implies a value greater than the test case fails. +} + +-- Bits 1 through 3 shall not all have the Same value. +Pathname-Pattern ::= SEQUENCE { + equality-comparision [0] IMPLICIT Equality-Comparision, + pathname-value + [1] IMPLICIT SEQUENCE OF + CHOICE {string-match [2] IMPLICIT String-Pattern, + any-match [3] IMPLICIT NULL} +} + +String-Pattern ::= SEQUENCE { + equality-comparision [0] IMPLICIT Equality-Comparision, + string-value + [1] IMPLICIT SEQUENCE OF + CHOICE {substring-match + [2] IMPLICIT GraphicString, + any-match [3] IMPLICIT NULL, + number-of-characters-match [4] IMPLICIT INTEGER + } +} + +Bitstring-Pattern ::= SEQUENCE { + equality-comparision [0] IMPLICIT Equality-Comparision, + match-bitstring [1] IMPLICIT BIT STRING, + significance-bitstring [2] IMPLICIT BIT STRING +} + +Date-and-Time-Pattern ::= SEQUENCE { + relational-camparision [0] IMPLICIT Equality-Comparision, + time-and-date-value [1] IMPLICIT GeneralizedTime +} + +Integer-Pattern ::= SEQUENCE { + relational-comparision [0] IMPLICIT Relational-Comparision, + integer-value [1] IMPLICIT INTEGER +} + +Object-Identifier-Pattern ::= SEQUENCE { + equality-comparision [0] IMPLICIT Equality-Comparision, + object-identifier-value [1] IMPLICIT OBJECT IDENTIFIER +} + +Boolean-Pattern ::= SEQUENCE { + equality-comparision [0] IMPLICIT Equality-Comparision, + boolean-value [1] IMPLICIT BOOLEAN +} + +Other-Pattern ::= Equality-Comparision + +-- Matches against "No Value Available". +Contents-Type-Pattern ::= CHOICE { + document-type-Pattern + [0] IMPLICIT Object-Identifier-Pattern, + constraint-set-abstract-Syntax-Pattern + [1] IMPLICIT SEQUENCE {constraint-Set-Pattern + [2] IMPLICIT Object-Identifier-Pattern OPTIONAL, + -- Absent implies any Object Identifier is equal. + abstract-Syntax-Pattern + [3] IMPLICIT Object-Identifier-Pattern OPTIONAL + -- Absent implies any Object identifier is equal. + } +} + +Attribute-Extensions-Pattern ::= + SEQUENCE OF + SEQUENCE {extension-set-identifier + [0] IMPLICIT Extension-Set-Identifier, + extension-set-attribute-Patterns + [1] IMPLICIT SEQUENCE OF + SEQUENCE {extension-attribute-identifier + TYPE-IDENTIFIER.&id + ({Extension-attribute-Patterns}), + extension-attribute-Pattern + TYPE-IDENTIFIER.&Type + ({Extension-attribute-Patterns} + {@.extension-attribute-identifier}) + }} + +-- conjunction with the extension attribute in Order to +-- perform Pattern matthing operations on it. it may be +-- defined in terms of other Patterns within this +-- Standard. +--Extension-attribute-Patterns TYPE-IDENTIFIER ::= +-- {...} - - dynamically extensible information object set + +Destination-File-Directory ::= [APPLICATION 24] Pathname-Attribute + +Objects-Attributes-List ::= + [APPLICATION 25] IMPLICIT SEQUENCE OF Read-Attributes + +Override ::= INTEGER { + create-failure(0), select-old-Object(1), + delete-and-create-with-old-attributes(2), + delete-and-create-with-new-attributes(3)} + +Error-Action ::= INTEGER {terminate(0), continue(1)} + +Operation-Result ::= [APPLICATION 30] CHOICE { + success-Object-count [0] IMPLICIT INTEGER, + success-Object-names [1] IMPLICIT SEQUENCE OF Pathname +} + +Pathname ::= SEQUENCE OF GraphicString + +Pass-Passwords ::= SEQUENCE OF Password + +-- There is a one-to-one correspondence between the elements of +-- Pass-Passwords and the non-terminal elements of the specified +-- Pathname. +Path-Access-Passwords ::= + [APPLICATION 27] IMPLICIT + SEQUENCE OF + SEQUENCE {read-password [0] Password, + insert-password [1] Password, + replace-password [2] Password, + extend-password [3] Password, + erase-password [4] Password, + read-attribute-password [5] Password, + change-attribute-password [6] Password, + delete-password [7] Password, + pass-passwords [8] IMPLICIT Pass-Passwords, + link-password [9] Password} + +-- There is a one-to-one correspondence between the elements of +-- Path-Access-Passwords and the non-terminal elements sf the +-- specified Pathname. +Request-Operation-Result ::= [APPLICATION 31] IMPLICIT INTEGER { + summary(0), fiii-list(1)} + +Attribute-Names ::= BIT STRING -- Kernel group + { + read-pathname(0), read-Object-type(18), read-permitted-actions(1), + read-contents-type(2), read-linked-Object(19), + read-Child-objects(23), + -- Storage group + read-primary-pathname(20), read-storage-account(3), + read-date-and-time-of-creation(4), + read-date-and-time-of-last-modification(5), + read-date-and-time-of-last-read-access(6), + read-date-and-time-of-last-attribute-modification(7), + read-identity-of-creator(8), read-identity-of-last-modifier(9), + read-identity-of-last-reader(10), + read-identity-of-last-attribute-modifier(11), read-Object-availability(12), + read-Object-size(13), + read-future-Object-size(14), + -- Security group + read-access-control(15), read-path-access-control(21), + read-l8gal-qualifiCatiOnS(16), + -- Private group + read-private-use(17)} + +-- Bits 19 through 23 arc defined if and only if the limited-fil8Store-manag8m8nt +-- or group-manipulation functionat units are available. +Referent-Indicator ::= [APPLICATION 29] IMPLICIT BOOLEAN + +-- dw: definition of AE-title, as defined in ISO 8650:1988/Cor.1:1990 +-- dw: defined in-line here so we don't need to import it, original comments +-- dw: are as they appear in the 8650:1988 Annex E +AP-title ::= TYPE-IDENTIFIER.&Type + +-- The exact definition and values used for AP-title +-- should be chosen taking into account the ongoing +-- work in areas of naming, the Directory, and the +-- Registration Authority procedures for AE titles, +-- AE titles, and AE qualifiers +AE-qualifier ::= TYPE-IDENTIFIER.&Type + +-- The exact definition and values used for AE-qualifier +-- should be chosen taking into account the ongoing +-- work in areas of naming, the Directory, and the +-- Registration Authority procedures for AE titles, +-- AE titles, and AE qualifiers +AE-title ::= SEQUENCE {ap AP-title, + ae AE-qualifier +} + +END + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + + diff --git a/epan/dissectors/asn1/ftam/Makefile.am b/epan/dissectors/asn1/ftam/Makefile.am new file mode 100644 index 0000000000..72d28e600b --- /dev/null +++ b/epan/dissectors/asn1/ftam/Makefile.am @@ -0,0 +1,23 @@ +# Wireshark - 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + +include ../Makefile.preinc +include Makefile.common +include ../Makefile.inc + diff --git a/epan/dissectors/asn1/ftam/Makefile.common b/epan/dissectors/asn1/ftam/Makefile.common new file mode 100644 index 0000000000..8248f0fff3 --- /dev/null +++ b/epan/dissectors/asn1/ftam/Makefile.common @@ -0,0 +1,50 @@ +# Wireshark - 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + +PROTOCOL_NAME=ftam + +EXPORT_FILES = \ + $(PROTOCOL_NAME)-exp.cnf + +EXT_ASN_FILE_LIST = + +ASN_FILE_LIST = \ + ISO8571-FTAM.asn + +# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn +# files do not exist for all protocols: Please add/remove as required. +EXTRA_DIST = \ + $(EXTRA_DIST_COMMON) \ + $(ASN_FILE_LIST) \ + packet-$(PROTOCOL_NAME)-template.c \ + packet-$(PROTOCOL_NAME)-template.h \ + $(PROTOCOL_NAME).cnf + +SRC_FILES = \ + $(EXTRA_DIST) \ + $(EXT_ASN_FILE_LIST) + +A2W_FLAGS= -b + +EXTRA_CNF= \ + $(builddir)/../acse/acse-exp.cnf + +$(builddir)/../acse/acse-exp.cnf: + (cd $(builddir)/../acse && $(MAKE_CNF_EXPORT)) + diff --git a/epan/dissectors/asn1/ftam/Makefile.nmake b/epan/dissectors/asn1/ftam/Makefile.nmake new file mode 100644 index 0000000000..d296638ddd --- /dev/null +++ b/epan/dissectors/asn1/ftam/Makefile.nmake @@ -0,0 +1,26 @@ +## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake +# +# Wireshark - 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + +include ../../../../config.nmake +include ../Makefile.preinc.nmake +include Makefile.common +include ../Makefile.inc.nmake + diff --git a/epan/dissectors/asn1/ftam/ftam.cnf b/epan/dissectors/asn1/ftam/ftam.cnf new file mode 100644 index 0000000000..d473b842a5 --- /dev/null +++ b/epan/dissectors/asn1/ftam/ftam.cnf @@ -0,0 +1,131 @@ +# FTAM.cnf +# FTAM conformation file + +#.IMPORT ../acse/acse-exp.cnf + +#.EXPORTS +Attribute-Extensions +Concurrency-Access +Date-and-Time-Attribute +Legal-Qualification-Attribute +Object-Availability-Attribute +Object-Size-Attribute +Pathname +Permitted-Actions-Attribute +Private-Use-Attribute + +#.OMIT_ASSIGNMENT +F-CHECK-request +F-CHECK-response +Other-Pattern +#.END + +#.PDU + +#.NO_EMIT ONLY_VALS +PDU + +#.TYPE_RENAME +F-OPEN-request/recovery-mode T_request_recovery_mode +F-OPEN-response/recovery-mode T_response_recovery_mode +Access-Control-Change-Attribute/actual-values T_actual_values1 + +Contents-Type-List/_untag/_item Contents_Type_List_item +Charging/_untag/_item Charging_item +Diagnostic/_untag/_item Diagnostic_item +Path-Access-Passwords/_untag/_item Path_Access_Passwords_item + +#.FIELD_RENAME +F-OPEN-request/recovery-mode request_recovery_mode +F-OPEN-response/recovery-mode response_recovery_mode +Concurrency-Access/replace replace_key +Concurrency-Access/read-attribute read_attribute_key +Concurrency-Access/read read_key +Concurrency-Access/insert insert_key +Concurrency-Access/extend extend_key +Concurrency-Access/erase erase_key +Concurrency-Access/change-attribute change_attribute_key +Concurrency-Access/delete-Object delete_Object_key +F-READ-request/access-context read_access_context +Change-Attributes/_untag/path-access-control change_path_access_control +Attribute-Extensions-Pattern/_item/extension-set-attribute-Patterns/_item/extension-attribute-identifier attribute_extension_attribute_identifier +F-OPEN-request/contents-type open_contents_type +F-READ-ATTRIB-response/attributes read_attributes +F-READ-LINK-ATTRIB-response/attributes read_link_attributes +F-SELECT-request/attributes select_attributes +F-SELECT-response/attributes select_attributes +Change-Attributes/_untag/access-control change_attributes_access_control +Access-Control-Change-Attribute/actual-values actual_values1 +Account-Attribute/actual-values actual_values2 +Access-Control-Attribute/actual-values actual_values3 +Private-Use-Attribute/actual-values actual_values4 +Date-and-Time-Attribute/actual-values actual_values5 +User-Identity-Attribute/actual-values actual_values6 +Object-Size-Attribute/actual-values actual_values7 +Object-Availability-Attribute/actual-values actual_values8 +Legal-Qualification-Attribute/actual-values actual_values9 + +#.FN_PARS Extension-Attribute/extension-attribute-identifier + FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference + +#.FN_PARS OBJECT_IDENTIFIER + FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference + +#.FN_BODY Contents-Type-Attribute/document-type/parameter + if (actx->external.direct_reference) { + offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL); + } + +#.FN_BODY Extension-Attribute/extension-attribute + if (actx->external.direct_reference) { + offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL); + } + +#.FN_PARS Attribute-Extensions-Pattern/_item/extension-set-attribute-Patterns/_item/extension-attribute-identifier + FN_VARIANT = _str VAL_PTR = &actx->external.direct_reference + +#.FN_BODY Attribute-Extensions-Pattern/_item/extension-set-attribute-Patterns/_item/extension-attribute-Pattern + if (actx->external.direct_reference) { + offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, NULL); + } + +#.FN_BODY AP-title + /* XXX have no idea about this one */ +#.FN_BODY AE-qualifier + /* XXX have no idea about this one */ + +#.FN_BODY FTAM-Regime-PDU VAL_PTR = &branch_taken + gint branch_taken; + + %(DEFAULT_BODY)s + + if( (branch_taken!=-1) && ftam_FTAM_Regime_PDU_vals[branch_taken].strptr ){ + col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s:", ftam_FTAM_Regime_PDU_vals[branch_taken].strptr); + } + +#.FN_BODY File-PDU VAL_PTR = &branch_taken + gint branch_taken; + + %(DEFAULT_BODY)s + + if( (branch_taken!=-1) && ftam_File_PDU_vals[branch_taken].strptr ){ + col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s:", ftam_File_PDU_vals[branch_taken].strptr); + } + +#.FN_BODY Bulk-Data-PDU VAL_PTR = &branch_taken + gint branch_taken; + + %(DEFAULT_BODY)s + + if( (branch_taken!=-1) && ftam_Bulk_Data_PDU_vals[branch_taken].strptr ){ + col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s:", ftam_Bulk_Data_PDU_vals[branch_taken].strptr); + } + +#.FN_BODY FSM-PDU VAL_PTR = &branch_taken + gint branch_taken; + + %(DEFAULT_BODY)s + + if( (branch_taken!=-1) && ftam_FSM_PDU_vals[branch_taken].strptr ){ + col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s:", ftam_FSM_PDU_vals[branch_taken].strptr); + } diff --git a/epan/dissectors/asn1/ftam/packet-ftam-template.c b/epan/dissectors/asn1/ftam/packet-ftam-template.c new file mode 100644 index 0000000000..7f4ed6a06c --- /dev/null +++ b/epan/dissectors/asn1/ftam/packet-ftam-template.c @@ -0,0 +1,180 @@ +/* packet-ftam_asn1.c + * Routine to dissect OSI ISO 8571 FTAM Protocol packets + * based on the ASN.1 specification from http://www.itu.int/ITU-T/asn1/database/iso/8571-4/1988/ + * + * also based on original handwritten dissector by + * Yuriy Sidelnikov + * + * Anders Broman and Ronnie Sahlberg 2005 - 2006 + * + * Wireshark - 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "config.h" + +#include +#include +#include +#include + +#include "packet-ber.h" +#include "packet-acse.h" +#include "packet-ftam.h" + +#define PNAME "ISO 8571 FTAM" +#define PSNAME "FTAM" +#define PFNAME "ftam" + +void proto_register_ftam(void); +void proto_reg_handoff_ftam(void); + +/* Initialize the protocol and registered fields */ +static int proto_ftam = -1; + +/* Declare the function to avoid a compiler warning */ +static int dissect_ftam_OR_Set(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_); + +static int hf_ftam_unstructured_text = -1; /* ISO FTAM unstructured text */ +static int hf_ftam_unstructured_binary = -1; /* ISO FTAM unstructured binary */ +#include "packet-ftam-hf.c" + +/* Initialize the subtree pointers */ +static gint ett_ftam = -1; +#include "packet-ftam-ett.c" + +static expert_field ei_ftam_zero_pdu = EI_INIT; + +#include "packet-ftam-fn.c" + +/* +* Dissect FTAM unstructured text +*/ +static int +dissect_ftam_unstructured_text(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *parent_tree, void* data _U_) +{ + proto_tree_add_item (parent_tree, hf_ftam_unstructured_text, tvb, 0, tvb_reported_length_remaining(tvb, 0), ENC_ASCII|ENC_NA); + return tvb_captured_length(tvb); +} + +/* +* Dissect FTAM unstructured binary +*/ +static int +dissect_ftam_unstructured_binary(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *parent_tree, void* data _U_) +{ + proto_tree_add_item (parent_tree, hf_ftam_unstructured_binary, tvb, 0, tvb_reported_length_remaining(tvb, 0), ENC_NA); + return tvb_captured_length(tvb); +} + +/* +* Dissect FTAM PDUs inside a PPDU. +*/ +static int +dissect_ftam(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) +{ + int offset = 0; + int old_offset; + proto_item *item=NULL; + proto_tree *tree=NULL; + asn1_ctx_t asn1_ctx; + + asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo); + + if(parent_tree){ + item = proto_tree_add_item(parent_tree, proto_ftam, tvb, 0, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_ftam); + } + col_set_str(pinfo->cinfo, COL_PROTOCOL, "FTAM"); + col_clear(pinfo->cinfo, COL_INFO); + + while (tvb_reported_length_remaining(tvb, offset) > 0){ + old_offset=offset; + offset=dissect_ftam_PDU(FALSE, tvb, offset, &asn1_ctx, tree, -1); + if(offset == old_offset){ + proto_tree_add_expert(tree, pinfo, &ei_ftam_zero_pdu, tvb, offset, -1); + break; + } + } + return tvb_captured_length(tvb); +} + + +/*--- proto_register_ftam -------------------------------------------*/ +void proto_register_ftam(void) { + + /* List of fields */ + static hf_register_info hf[] = + { + { &hf_ftam_unstructured_text, + { "ISO FTAM unstructured text", "ftam.unstructured_text", FT_STRING, + BASE_NONE, NULL, 0x0, NULL, HFILL } }, + { &hf_ftam_unstructured_binary, + { "ISO FTAM unstructured binary", "ftam.unstructured_binary", FT_BYTES, + BASE_NONE, NULL, 0x0, NULL, HFILL } }, +#include "packet-ftam-hfarr.c" + }; + + /* List of subtrees */ + static gint *ett[] = { + &ett_ftam, +#include "packet-ftam-ettarr.c" + }; + static ei_register_info ei[] = { + { &ei_ftam_zero_pdu, { "ftam.zero_pdu", PI_PROTOCOL, PI_ERROR, "Internal error, zero-byte FTAM PDU", EXPFILL }}, + }; + + expert_module_t* expert_ftam; + + /* Register protocol */ + proto_ftam = proto_register_protocol(PNAME, PSNAME, PFNAME); + register_dissector("ftam", dissect_ftam, proto_ftam); + /* Register fields and subtrees */ + proto_register_field_array(proto_ftam, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); + expert_ftam = expert_register_protocol(proto_ftam); + expert_register_field_array(expert_ftam, ei, array_length(ei)); + +} + + +/*--- proto_reg_handoff_ftam --- */ +void proto_reg_handoff_ftam(void) { + register_ber_oid_dissector("1.0.8571.1.1", dissect_ftam, proto_ftam,"iso-ftam(1)"); + register_ber_oid_dissector("1.0.8571.2.1", dissect_ftam, proto_ftam,"ftam-pci(1)"); + register_ber_oid_dissector("1.3.14.5.2.2", dissect_ftam, proto_ftam,"NIST file directory entry abstract syntax"); + + /* Unstructured text file document type FTAM-1 */ + register_ber_oid_dissector("1.0.8571.5.1", dissect_ftam_unstructured_text, proto_ftam,"ISO FTAM unstructured text"); + oid_add_from_string("ISO FTAM sequential text","1.0.8571.5.2"); + oid_add_from_string("FTAM unstructured text abstract syntax","1.0.8571.2.3"); + oid_add_from_string("FTAM simple-hierarchy","1.0.8571.2.5"); + oid_add_from_string("FTAM hierarchical file model","1.0.8571.3.1"); + oid_add_from_string("FTAM unstructured constraint set","1.0.8571.4.1"); + + /* Unstructured binary file document type FTAM-3 */ + register_ber_oid_dissector("1.0.8571.5.3", dissect_ftam_unstructured_binary, proto_ftam,"ISO FTAM unstructured binary"); + oid_add_from_string("FTAM unstructured binary abstract syntax","1.0.8571.2.4"); + + /* Filedirectory file document type NBS-9 */ + oid_add_from_string("NBS-9 FTAM file directory file","1.3.14.5.5.9"); + + /* Filedirectory file document type NBS-9 (WITH OLD NIST OIDs)*/ + oid_add_from_string("NBS-9-OLD FTAM file directory file","1.3.9999.1.5.9"); + oid_add_from_string("NIST file directory entry abstract syntax","1.3.9999.1.2.2"); +} diff --git a/epan/dissectors/asn1/ftam/packet-ftam-template.h b/epan/dissectors/asn1/ftam/packet-ftam-template.h new file mode 100644 index 0000000000..19cac16286 --- /dev/null +++ b/epan/dissectors/asn1/ftam/packet-ftam-template.h @@ -0,0 +1,34 @@ +/* packet-ftam.h + * Routine to dissect OSI ISO 8571 FTAM Protocol packets + * based on the ASN.1 specification from http://www.itu.int/ITU-T/asn1/database/iso/8571-4/1988/ + * + * also based on original handwritten dissector by + * Yuriy Sidelnikov + * + * Anders Broman and Ronnie Sahlberg 2005 + * + * Wireshark - 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef PACKET_FTAM_H +#define PACKET_FTAM_H + +#include "packet-ftam-exp.h" + +#endif /* PACKET_FTAM_H */ -- cgit v1.2.3