new FTAM dissector generated by asn2eth

svn path=/trunk/; revision=14747
This commit is contained in:
Ronnie Sahlberg 2005-06-25 12:40:53 +00:00
parent d0a7c6efcd
commit 12c6e46a49
8 changed files with 10124 additions and 4362 deletions

1603
asn1/ftam/ISO8571-FTAM.asn Executable file

File diff suppressed because it is too large Load Diff

17
asn1/ftam/Makefile Normal file
View File

@ -0,0 +1,17 @@
# $Id: Makefile 13071 2005-01-16 10:19:21Z guy $
DISSECTOR_FILES=packet-ftam.c packet-ftam.h
all: generate_dissector
generate_dissector: $(DISSECTOR_FILES)
$(DISSECTOR_FILES): ../../tools/asn2eth.py ISO8571-FTAM.asn packet-ftam-template.c packet-ftam-template.h ftam.cnf
python ../../tools/asn2eth.py -X -b -e -p ftam -c ftam.cnf -s packet-ftam-template ISO8571-FTAM.asn
clean:
rm -f parsetab.py $(DISSECTOR_FILES)
copy_files: generate_dissector
cp $(DISSECTOR_FILES) ../../epan/dissectors

42
asn1/ftam/Makefile.nmake Normal file
View File

@ -0,0 +1,42 @@
## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
#
# $Id: Makefile.nmake 13077 2005-01-16 23:26:02Z lroland $
include ../../config.nmake
UNIX2DOS=$(PERL) ../../tools/unix2dos.pl
PROTOCOL_NAME=ftam
DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).h
all: generate_dissector
generate_dissector: $(DISSECTOR_FILES)
$(DISSECTOR_FILES): ../../tools/asn2eth.py ISO8571-FTAM.asn packet-$(PROTOCOL_NAME)-template.c packet-$(PROTOCOL_NAME)-template.h $(PROTOCOL_NAME).cnf
!IFDEF PYTHON
$(PYTHON) ../../tools/asn2eth.py -X -b -e -p $(PROTOCOL_NAME) -c $(PROTOCOL_NAME).cnf -s packet-$(PROTOCOL_NAME)-template ISO8571-FTAM.asn
!ELSE
@echo Error: You need Python to use asn2eth.py
@exit 1
!ENDIF
clean:
rm -f parsetab.py $(DISSECTOR_FILES)
# Fix EOL in generated dissectors. Cygwin's python generates files with
# mixed EOL styles, which can't be commited to the SVN repository.
# Stuff included from template and "cnf" files has "\r\n" on windows, while
# the generated stuff has "\n".
fix_eol: generate_dissector
move packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).c.tmp
move packet-$(PROTOCOL_NAME).h packet-$(PROTOCOL_NAME).h.tmp
$(UNIX2DOS) < packet-$(PROTOCOL_NAME).c.tmp > packet-$(PROTOCOL_NAME).c
$(UNIX2DOS) < packet-$(PROTOCOL_NAME).h.tmp > packet-$(PROTOCOL_NAME).h
del /f packet-$(PROTOCOL_NAME).c.tmp packet-$(PROTOCOL_NAME).h.tmp
copy_files: generate_dissector fix_eol
xcopy packet-$(PROTOCOL_NAME).c ..\..\epan\dissectors /d /y
xcopy packet-$(PROTOCOL_NAME).h ..\..\epan\dissectors /d /y

665
asn1/ftam/ftam.cnf Executable file
View File

@ -0,0 +1,665 @@
# FTAM.cnf
# FTAM conformation file
# $Id: FTAM.cnf 12417 2004-10-27 20:34:21Z guy $
#.MODULE_IMPORT
ACSE-1 acse
#.INCLUDE ../acse/acse-exp.cnf
#.EXPORTS
#.PDU
#.NO_EMIT
#.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
#.FIELD_RENAME
F-OPEN-request/recovery-mode request_recovery_mode
F-OPEN-response/recovery-mode response_recovery_mode
Concurrency-Control/replace replace_lock
Concurrency-Access/replace replace_key
Concurrency-Control/read-attribute read_attribute_lock
Concurrency-Access/read-attribute read_attribute_key
Concurrency-Control/read read_lock
Concurrency-Access/read read_key
Concurrency-Control/insert insert_lock
Concurrency-Access/insert insert_key
Concurrency-Control/extend extend_lock
Concurrency-Access/extend extend_key
Concurrency-Control/erase erase_lock
Concurrency-Access/erase erase_key
Concurrency-Control/change-attribute change_attribute_lock
Concurrency-Access/change-attribute change_attribute_key
Concurrency-Control/delete-Object delete_Object_lock
Concurrency-Access/delete-Object delete_Object_key
F-READ-request/access-context read_access_context
Change-Attributes/path-access-control change_path_access_control
Create-Attributes/path-access-control create_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/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_BODY Extension-Attribute/extension-attribute-identifier
offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
hf_index, object_identifier_id);
#.FN_BODY Contents-Type-Attribute/document-type/parameter
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
#.FN_BODY Extension-Attribute/extension-attribute
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
#.FN_BODY Attribute-Extensions-Pattern/extension-set-attribute-Patterns/extension-attribute-identifier
offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
hf_index, object_identifier_id);
#.FN_BODY Attribute-Extensions-Pattern/_item/extension-set-attribute-Patterns/_item/extension-attribute-Pattern
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
#.FN_BODY AP-title
/* XXX have no idea about this one */
#.FN_BODY AE-qualifier
/* XXX have no idea about this one */
#.FN_BODY Implementation-Information
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_restricted_string(TRUE, 1,
pinfo, tree, tvb, offset, hf_index,
NULL);
#.FN_BODY Protocol-Version
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_bitstring(TRUE, pinfo, tree, tvb, offset,
Protocol_Version_bits, hf_index, ett_ftam_Protocol_Version,
NULL);
#.FN_BODY Service-Class
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_bitstring(TRUE, pinfo, tree, tvb, offset,
Service_Class_bits, hf_index, ett_ftam_Service_Class,
NULL);
#.FN_BODY Functional-Units
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_bitstring(TRUE, pinfo, tree, tvb, offset,
Functional_Units_bits, hf_index, ett_ftam_Functional_Units,
NULL);
#.FN_BODY Attribute-Groups
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_bitstring(TRUE, pinfo, tree, tvb, offset,
Attribute_Groups_bits, hf_index, ett_ftam_Attribute_Groups,
NULL);
#.FN_BODY FTAM-Quality-of-Service
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_integer(TRUE, pinfo, tree, tvb, offset, hf_index,
NULL);
#.FN_BODY Contents-Type-List
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_sequence_of(TRUE, pinfo, tree, tvb, offset,
Contents_Type_List_sequence_of, hf_index, ett_ftam_Contents_Type_List);
#.FN_BODY Degree-Of-Overlap
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_integer(TRUE, pinfo, tree, tvb, offset, hf_index,
NULL);
#.FN_BODY Request-Type
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_integer(TRUE, pinfo, tree, tvb, offset, hf_index,
NULL);
#.FN_BODY Abstract-Syntax-Name
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_object_identifier(TRUE, pinfo, tree, tvb, offset, hf_index,
NULL);
#.FN_BODY Access-Context
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_sequence(TRUE, pinfo, tree, tvb, offset,
Access_Context_sequence, hf_index, ett_ftam_Access_Context);
#.FN_BODY Access-Passwords
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_sequence(TRUE, pinfo, tree, tvb, offset,
Access_Passwords_sequence, hf_index, ett_ftam_Access_Passwords);
#.FN_BODY Access-Request
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_bitstring(TRUE, pinfo, tree, tvb, offset,
Access_Request_bits, hf_index, ett_ftam_Access_Request,
NULL);
#.FN_BODY Account
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_restricted_string(TRUE, 4,
pinfo, tree, tvb, offset, hf_index,
NULL);
#.FN_BODY Action-Result
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_integer(TRUE, pinfo, tree, tvb, offset, hf_index,
NULL);
#.FN_BODY Activity-Identifier
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_integer(TRUE, pinfo, tree, tvb, offset, hf_index,
NULL);
#.FN_BODY Change-Attributes
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_sequence(TRUE, pinfo, tree, tvb, offset,
Change_Attributes_sequence, hf_index, ett_ftam_Change_Attributes);
#.FN_BODY Charging
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_sequence_of(TRUE, pinfo, tree, tvb, offset,
Charging_sequence_of, hf_index, ett_ftam_Charging);
#.FN_BODY Concurrency-Control
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_sequence(TRUE, pinfo, tree, tvb, offset,
Concurrency_Control_sequence, hf_index, ett_ftam_Concurrency_Control);
#.FN_BODY Constraint-Set-Name
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_object_identifier(TRUE, pinfo, tree, tvb, offset, hf_index,
NULL);
#.FN_BODY Create-Attributes
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_sequence(TRUE, pinfo, tree, tvb, offset,
Create_Attributes_sequence, hf_index, ett_ftam_Create_Attributes);
#.FN_BODY Diagnostic
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_sequence_of(TRUE, pinfo, tree, tvb, offset,
Diagnostic_sequence_of, hf_index, ett_ftam_Diagnostic);
#.FN_BODY Document-Type-Name
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_object_identifier(TRUE, pinfo, tree, tvb, offset,
hf_index, object_identifier_id);
#.FN_BODY FADU-Lock
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_integer(TRUE, pinfo, tree, tvb, offset, hf_index,
NULL);
#.FN_BODY Read-Attributes
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_sequence(TRUE, pinfo, tree, tvb, offset,
Read_Attributes_sequence, hf_index, ett_ftam_Read_Attributes);
#.FN_BODY Select-Attributes
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_sequence(TRUE, pinfo, tree, tvb, offset,
Select_Attributes_sequence, hf_index, ett_ftam_Select_Attributes);
#.FN_BODY State-Result
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_integer(TRUE, pinfo, tree, tvb, offset, hf_index,
NULL);
#.FN_BODY User-Identity
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_restricted_string(TRUE, 22,
pinfo, tree, tvb, offset, hf_index,
NULL);
#.FN_BODY Scope
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_sequence_of(TRUE, pinfo, tree, tvb, offset,
Scope_sequence_of, hf_index, ett_ftam_Scope);
#.FN_BODY Objects-Attributes-List
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_sequence_of(TRUE, pinfo, tree, tvb, offset,
Objects_Attributes_List_sequence_of, hf_index, ett_ftam_Objects_Attributes_List);
#.FN_BODY Path-Access-Passwords
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_sequence_of(TRUE, pinfo, tree, tvb, offset,
Path_Access_Passwords_sequence_of, hf_index, ett_ftam_Path_Access_Passwords);
#.FN_BODY Request-Operation-Result
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_integer(TRUE, pinfo, tree, tvb, offset, hf_index,
NULL);
#.FN_BODY Shared-ASE-Informatio
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_acse_EXTERNAL(TRUE, tvb, offset, pinfo, tree, hf_index);
#.FN_BODY Attribute-Value-Assertions
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ftam_OR_Set(TRUE, tvb, offset, pinfo, tree, hf_index);
#.FN_BODY Referent-Indicator
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_boolean(TRUE, pinfo, tree, tvb, offset, hf_index);
#.FN_BODY Password
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_choice(pinfo, tree, tvb, offset,
Password_choice, hf_index, ett_ftam_Password);
#.FN_BODY FADU-Identity
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_choice(pinfo, tree, tvb, offset,
FADU_Identity_choice, hf_index, ett_ftam_FADU_Identity);
#.FN_BODY Operation-Result
gint8 class;
gboolean pc, ind_field;
gint32 tag;
gint32 len1;
/* XXX asn2eth can not yet handle tagged assignment yes so this
* XXX is some conformance file magic to work around that bug
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
offset = dissect_ber_choice(pinfo, tree, tvb, offset,
Operation_Result_choice, hf_index, ett_ftam_Operation_Result);

127
asn1/ftam/packet-ftam-template.c Executable file
View File

@ -0,0 +1,127 @@
/* 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 <YSidelnikov@hotmail.com>
*
* Anders Broman and Ronnie Sahlberg 2005
*
* $Id: packet-ftam-template.c 13967 2005-03-29 14:56:09Z gerald $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
* 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.
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <glib.h>
#include <epan/packet.h>
#include <epan/conversation.h>
#include <stdio.h>
#include <string.h>
#include "packet-ber.h"
#include "packet-acse.h"
#include "packet-ftam.h"
#define PNAME "FTAM"
#define PSNAME "FTAM"
#define PFNAME "ftam"
/* Initialize the protocol and registered fields */
int proto_ftam = -1;
static char object_identifier_id[MAX_OID_STR_LEN];
static struct SESSION_DATA_STRUCTURE* session = NULL;
#include "packet-ftam-hf.c"
/* Initialize the subtree pointers */
static gint ett_ftam = -1;
#include "packet-ftam-ett.c"
#include "packet-ftam-fn.c"
/*
* Dissect FTAM PDUs inside a PPDU.
*/
static void
dissect_ftam(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
{
int offset = 0;
int old_offset;
proto_item *item=NULL;
proto_tree *tree=NULL;
if(parent_tree){
item = proto_tree_add_item(parent_tree, proto_ftam, tvb, 0, -1, FALSE);
tree = proto_item_add_subtree(item, ett_ftam);
}
if (check_col(pinfo->cinfo, COL_PROTOCOL))
col_set_str(pinfo->cinfo, COL_PROTOCOL, "FTAM");
if (check_col(pinfo->cinfo, COL_INFO))
col_clear(pinfo->cinfo, COL_INFO);
while (tvb_reported_length_remaining(tvb, offset) > 0){
old_offset=offset;
offset=dissect_ftam_PDU(FALSE, tvb, offset, pinfo , tree, -1);
if(offset == old_offset){
proto_tree_add_text(tree, tvb, offset, -1,"Internal error, zero-byte FTAM PDU");
offset = tvb_length(tvb);
break;
}
}
}
/*--- proto_register_ftam -------------------------------------------*/
void proto_register_ftam(void) {
/* List of fields */
static hf_register_info hf[] =
{
#include "packet-ftam-hfarr.c"
};
/* List of subtrees */
static gint *ett[] = {
&ett_ftam,
#include "packet-ftam-ettarr.c"
};
/* 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));
}
/*--- proto_reg_handoff_ftam --- */
void proto_reg_handoff_ftam(void) {
register_ber_oid_dissector("1.0.8571.1.1", dissect_ftam, proto_ftam,
"ftam");
}

View File

@ -0,0 +1,36 @@
/* 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 <YSidelnikov@hotmail.com>
*
* Anders Broman and Ronnie Sahlberg 2005
*
* $Id: $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
* 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.
*/
#ifndef PACKET_FTAM_H
#define PACKET_FTAM_H
/*#include "packet-ftam-exp.h"*/
#endif /* PACKET_FTAM_H */

File diff suppressed because it is too large Load Diff

View File

@ -1,599 +1,43 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Ethereal dissector compiler */
/* ./packet-ftam.h */
/* ../../tools/asn2eth.py -X -b -e -p ftam -c ftam.cnf -s packet-ftam-template ISO8571-FTAM.asn */
/* Input file: packet-ftam-template.h */
/* packet-ftam.h
*
* Routine to dissect OSI ISO 8571 FTAM Protocol packets
*
* $Id$
*
* Yuriy Sidelnikov <YSidelnikov@hotmail.com>
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
* 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"
enum
{
ERROR_MESSAGE_FTAM_NO_REASON,
ERROR_MESSAGE_FTAM_RESPONDER_ERROR,
ERROR_MESSAGE_FTAM_SYSTEM_SHUTDOWN,
ERROR_MESSAGE_FTAM_MANAGEMENT_PROBLEM_U,
ERROR_MESSAGE_FTAM_MANAGEMENT_PROBLEM_BA,
ERROR_MESSAGE_FTAM_MANAGEMENT_PROBLEM_SC,
ERROR_MESSAGE_DELAY_MAYBE_ENCOUNTERED,
ERROR_MESSAGE_INITIATOR_ERROR,
ERROR_MESSAGE_SUBSEQUENT_ERROR,
ERROR_MESSAGE_TEMPORAL_INSUFFICIENCY_OF_RESOURCES,
ERROR_MESSAGE_ACCESS_REQUEST_VIOLATES_VFS_SECURITY,
ERROR_MESSAGE_ACCESS_REQUEST_VIOLATES_LOCAL_SECURITY
};
enum
{
ERROR_MESSAGE_CONFLICTING_PARAMETER_VALUE=1000,
ERROR_MESSAGE_UNSUPPORTED_PARAMETER_VALUE,
ERROR_MESSAGE_MANDATORY_PARAMETER_NOT_SET,
ERROR_MESSAGE_UNSUPPORTED_PARAMETER,
ERROR_MESSAGE_DUBLICATED_PARAMETER,
ERROR_MESSAGE_ILLEGAL_PARAMETER_TYPE,
ERROR_MESSAGE_UNSUPPORTED_PARAMETER_TYPE,
ERROR_MESSAGE_FTAM_PROTOCOL_ERROR_U,
ERROR_MESSAGE_FTAM_PROTOCOL_ERROR_PE,
ERROR_MESSAGE_FTAM_PROTOCOL_ERROR_FUE,
ERROR_MESSAGE_FTAM_PROTOCOL_ERROR_CE,
ERROR_MESSAGE_FTAM_LOWER_LAYER_FAILURE,
ERROR_MESSAGE_FTAM_LOWER_ADDRESING_ERROR,
ERROR_MESSAGE_FTAM_TIMEOUT,
ERROR_MESSAGE_FTAM_SYSTEM_SHUTDOWN_,
ERROR_MESSAGE_FTAM_ILLEGAL_GROUPING_SEQUENCE,
ERROR_MESSAGE_GROUPING_THRESHHOLD_VIOLATION,
ERROR_MESSAGE_SPECIFIC_PDU_REQUEST_INCONSISTENT
};
enum
{
ERROR_MESSAGE_ASSOCIATION_WITH_USER_NOT_ALLOWED=2000,
ERROR_MESSAGE_NOT_ASSIGNED,
ERROR_MESSAGE_UNSUPPORTED_SERVICE_CLASS,
ERROR_MESSAGE_UNSUPPORTED_FUNCTIONAL_UNIT,
ERROR_MESSAGE_ATTRIBUTE_GROUP_ERROR,
ERROR_MESSAGE_ATTRIBUTE_GROUP_NOT_ALLOWED,
ERROR_MESSAGE_BAD_ACCOUNT,
ERROR_MESSAGE_ASSOC_MANAGEMENT,
ERROR_MESSAGE_ASSOC_MANAGEMENT_BA,
ERROR_MESSAGE_ASSOC_MANAGEMENT_BAC,
ERROR_MESSAGE_CHECKPOINT_W_E_TL,
ERROR_MESSAGE_CHECKPOINT_W_E_TS,
ERROR_MESSAGE_CHECKPOINT_W_E_UN,
ERROR_MESSAGE_COMMUNICATION_QOS_NOT_SUPPORTED,
ERROR_MESSAGE_INITIATOR_IDENTITY_UNACCEPTABLE,
ERROR_MESSAGE_CONTEXT_MANAGEMENT_REFUSED,
ERROR_MESSAGE_ROLLBACK_NOT_AVAILABLE,
ERROR_MESSAGE_CONTENTS_TYPE_LIST_CUT_BY_R,
ERROR_MESSAGE_CONTENTS_TYPE_LIST_CUT_BY_P,
ERROR_MESSAGE_INVALID_FILESTORE_PASSWORD,
ERROR_MESSAGE_INCOMPATABLE_SERVICE_CLASS
};
enum
{
ERROR_MESSAGE_FILENAME_NOT_FOUND=3000,
ERROR_MESSAGE_SELECTION_ATTRIBUTES_NOT_MATCHED,
ERROR_MESSAGE_INITIAL_ATTRIBUTES_NOT_POSSIBLE,
ERROR_MESSAGE_BAD_ATTRIBUTE_NAME,
ERROR_MESSAGE_NON_EXISTENT_FILE,
ERROR_MESSAGE_FILE_ALREADY_EXISTS,
ERROR_MESSAGE_FILE_CANNOT_BE_CREATED,
ERROR_MESSAGE_FILE_CANNOT_BE_DELETED,
ERROR_MESSAGE_CONCURRENCY_CONTROL_NOT_AVAILABLE,
ERROR_MESSAGE_CONCURRENCY_CONTROL_NOT_SUPPORTED,
ERROR_MESSAGE_CONCURRENCY_CONTROL_NOT_POSSIBLE,
ERROR_MESSAGE_MORE_RESTRICTIVE_LOCK,
ERROR_MESSAGE_FILE_BUSY,
ERROR_MESSAGE_ACCESS_CONTROL_NOT_AVAILABLE,
ERROR_MESSAGE_ACCESS_CONTROL_NOT_SUPPORTED,
ERROR_MESSAGE_ACCESS_CONTROL_INCONSISTENT,
ERROR_MESSAGE_FILENAME_TRUNCATED,
ERROR_MESSAGE_INITIAL_ATTRIBUTES_ALTERED,
ERROR_MESSAGE_BAD_ACCOUNT_,
ERROR_MESSAGE_OVERRIDE_SELECTED_EXISTING_FILE,
ERROR_MESSAGE_OVERRIDE_DELETED_AND_RECREATED_FILE_OLD,
ERROR_MESSAGE_OVERRIDE_DELETED_AND_RECREATED_FILE_NEW,
ERROR_MESSAGE_CREATE_OVERRIDE_NOT_POSSIBLE,
ERROR_MESSAGE_AMBIGUOUS_FILE_SPECIFICATION,
ERROR_MESSAGE_INVALID_CREATE_PASSWORD,
ERROR_MESSAGE_INVALID_DELETE_PASSWORD,
ERROR_MESSAGE_BAD_ATTRIBUTE_VALUE,
ERROR_MESSAGE_REQUESTED_ACCESS_VIOLATES_PERMITTED_ACTIONS,
ERROR_MESSAGE_REQUESTED_FUNCTIONAL_UNIT_NOT_AVAILABLE,
ERROR_MESSAGE_REQUESTED_FILE_CREATED_BUT_NOT_SELECTED
};
enum
{
ERROR_MESSAGE_ATTRIBUTE_NON_EXISTENT=4000,
ERROR_MESSAGE_ATTRIBUTE_CANNOT_BE_READ,
ERROR_MESSAGE_ATTRIBUTE_CANNOT_BE_CHANGED,
ERROR_MESSAGE_ATTRIBUTE_NOT_SUPPORTED,
ERROR_MESSAGE_BAD_ATTRIBUTE_NAME_,
ERROR_MESSAGE_BAD_ATTRIBUTE_VALUE_,
ERROR_MESSAGE_ATTRIBUTE_PARTIALLY_SUPPORTED,
ERROR_MESSAGE_ADDITIONAL_SET_ATTRIBUTE_
};
enum
{
ERROR_MESSAGE_ARD_BAD_FADU_U = 5000,
ERROR_MESSAGE_ARD_BAD_FADU_SIZE_ERROR,
ERROR_MESSAGE_ARD_BAD_FADU_TYPE_ERROR,
ERROR_MESSAGE_ARD_BAD_FADU_POORLY_SPECIFIED,
ERROR_MESSAGE_ARD_BAD_FADU_BAD_LOCATION,
ERROR_MESSAGE_ARD_FADU_DOES_NOT_EXIST,
ERROR_MESSAGE_ARD_FADU_NOT_AVAILABLE_U,
ERROR_MESSAGE_ARD_FADU_NOT_AVAILABLE_R,
ERROR_MESSAGE_ARD_FADU_NOT_AVAILABLE_W,
ERROR_MESSAGE_ARD_FADU_NOT_AVAILABLE_L,
ERROR_MESSAGE_ARD_FADU_NOT_AVAILABLE_E,
ERROR_MESSAGE_ARD_FADU_CAN_NOT_BE_INSERTED,
ERROR_MESSAGE_ARD_FADU_CAN_NOT_BE_REPLACED,
ERROR_MESSAGE_ARD_FADU_CAN_NOT_BE_LOCATED,
ERROR_MESSAGE_ARD_BAD_DATA_ELEMENT_TYPE,
ERROR_MESSAGE_ARD_OPERATION_NOT_AVAILABLE,
ERROR_MESSAGE_ARD_OPERATION_NOT_SUPPORTED,
ERROR_MESSAGE_ARD_OPERATION_NOT_INCONSISTENT,
ERROR_MESSAGE_ARD_CONCURENCY_CONTROL_NOT_AVAILABLE,
ERROR_MESSAGE_ARD_CONCURENCY_CONTROL_NOT_SUPPORTED,
ERROR_MESSAGE_ARD_CONCURENCY_CONTROL_NOT_INCONSISTENT,
ERROR_MESSAGE_ARD_PROCESSING_MODE_NOT_AVAILABLE,
ERROR_MESSAGE_ARD_PROCESSING_MODE_NOT_SUPPORTED,
ERROR_MESSAGE_ARD_PROCESSING_MODE_NOT_INCONSISTENT,
ERROR_MESSAGE_ARD_ACCESS_CONTEXT_NOT_AVAILABLE,
ERROR_MESSAGE_ARD_ACCESS_CONTEXT_NOT_SUPPORTED,
ERROR_MESSAGE_ARD_BAD_WRITE_U,
ERROR_MESSAGE_ARD_BAD_READ_U,
ERROR_MESSAGE_ARD_LOCAL_FAILURE_U,
ERROR_MESSAGE_ARD_LOCAL_FAILURE_FE,
ERROR_MESSAGE_ARD_LOCAL_FAILURE_DC,
ERROR_MESSAGE_ARD_LOCAL_FAILURE_DF,
ERROR_MESSAGE_ARD_FUTURE_FILE_SIZE_EXCEEDED,
ERROR_MESSAGE_ARD_FUTURE_FILE_SIZE_INCREASED,
ERROR_MESSAGE_ARD_FUNCTIONAL_UNIT_INVALID,
ERROR_MESSAGE_ARD_CONTENTS_TYPE_INCONSISTENT,
ERROR_MESSAGE_ARD_CONTENTS_TYPE_SIMPLIFIED,
ERROR_MESSAGE_ARD_DUBLICATE_FADU_NAME,
ERROR_MESSAGE_ARD_DAMAGE_TO_SO,
ERROR_MESSAGE_ARD_FADU_LOCKING_NOT_A,
ERROR_MESSAGE_ARD_FADU_LOCKED_BY_ANOTHER_USER
};
enum
{
ERROR_MESSAGE_RR_BAD_CHECKPOINT=6000,
ERROR_MESSAGE_RR_ACTIVITY_NOT_UNIQUE,
ERROR_MESSAGE_RR_CHECKPOINT_OUTSIDE_WINDOW,
ERROR_MESSAGE_RR_ACTIVITY_NO_LONGER_EXISTS,
ERROR_MESSAGE_RR_ACTIVITY_NO_LONGER_RECOGNIZED,
ERROR_MESSAGE_RR_ACTIVITY_NO_DOCKET,
ERROR_MESSAGE_RR_ACTIVITY_CORRUPT_DOCKET,
ERROR_MESSAGE_RR_FILE_WAITING_RESTART,
ERROR_MESSAGE_RR_BAD_RECOVERY_POINT,
ERROR_MESSAGE_RR_NON_EXISTENT_RECOVERY_POINT,
ERROR_MESSAGE_RR_RECOVERY_MODE_NOT_AVAILABLE,
ERROR_MESSAGE_RR_RECOVERY_MODE_INCONSISTENT,
ERROR_MESSAGE_RR_RECOVERY_MODE_REDUCE,
ERROR_MESSAGE_RR_ACCESS_CONTROL_NOT_A,
ERROR_MESSAGE_RR_ACCESS_CONTROL_NOT_S,
ERROR_MESSAGE_RR_ACCESS_CONTROL_I,
ERROR_MESSAGE_RR_CONTENTS_TYPE_I,
ERROR_MESSAGE_RR_CONTENTS_TYPE_S
};
* 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 <YSidelnikov@hotmail.com>
*
* Anders Broman and Ronnie Sahlberg 2005
*
* $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
* 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.
*/
#ifndef PACKET_FTAM_H
#define PACKET_FTAM_H
/*#include "packet-ftam-exp.h"*/
#endif /* PACKET_FTAM_H */