Generate CMIP from original asn1 files with -X and -T option.

svn path=/trunk/; revision=22187
This commit is contained in:
Anders Broman 2007-06-25 18:40:17 +00:00
parent 452d9b91e7
commit 2e693964c6
7 changed files with 4560 additions and 2715 deletions

View File

@ -1,16 +1,19 @@
# $Id$
DISSECTOR_FILES=packet-cmip.c packet-cmip.h
PROTOCOL_NAME=cmip
DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).h
ROS_ASN= ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.asn
ASN1_FILES=CMIP-1.asn CMIP-A-ABORT-Information.asn CMIP-A-ASSOCIATE-Information.asn ../x721/Attribute-ASN1Module.asn $(ROS_ASN)
all: generate_dissector
generate_dissector: $(DISSECTOR_FILES)
$(DISSECTOR_FILES): ../../tools/asn2wrs.py CMIP.asn packet-cmip-template.c packet-cmip-template.h cmip.cnf
python ../../tools/asn2wrs.py -b -e -p cmip -c cmip.cnf -s packet-cmip-template CMIP.asn
$(DISSECTOR_FILES): ../../tools/asn2wrs.py $(ASN1_FILES) packet-$(PROTOCOL_NAME)-template.c packet-$(PROTOCOL_NAME)-template.h cmip.cnf
python ../../tools/asn2wrs.py -b -e -p $(PROTOCOL_NAME) -c cmip.cnf -s packet-$(PROTOCOL_NAME)-template $(ASN1_FILES)
clean:
rm -f cmip-exp.cnf parsetab.py $(DISSECTOR_FILES)
rm -f parsetab.py parsetab.pyc $(DISSECTOR_FILES)
copy_files: generate_dissector
cp $(DISSECTOR_FILES) ../../epan/dissectors

View File

@ -8,14 +8,16 @@ UNIX2DOS=$(PERL) ../../tools/unix2dos.pl
PROTOCOL_NAME=cmip
DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).h
ROS_ASN= ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.asn
ASN1_FILES=CMIP-1.asn CMIP-A-ABORT-Information.asn CMIP-A-ASSOCIATE-Information.asn ../x721/Attribute-ASN1Module.asn $(ROS_ASN)
all: generate_dissector
generate_dissector: $(DISSECTOR_FILES)
$(DISSECTOR_FILES): ../../tools/asn2wrs.py CMIP.asn packet-$(PROTOCOL_NAME)-template.c packet-$(PROTOCOL_NAME)-template.h $(PROTOCOL_NAME).cnf
$(DISSECTOR_FILES): ../../tools/asn2wrs.py $(ASN1_FILES) packet-$(PROTOCOL_NAME)-template.c packet-$(PROTOCOL_NAME)-template.h $(PROTOCOL_NAME).cnf
!IFDEF PYTHON
$(PYTHON) "../../tools/asn2wrs.py" -b -e -p $(PROTOCOL_NAME) -c $(PROTOCOL_NAME).cnf -s packet-$(PROTOCOL_NAME)-template CMIP.asn
$(PYTHON) "../../tools/asn2wrs.py" -b -X -T -e -p $(PROTOCOL_NAME) -c $(PROTOCOL_NAME).cnf -s packet-$(PROTOCOL_NAME)-template $(ASN1_FILES)
!ELSE
@echo Error: You need Python to use asn2wrs.py
@exit 1

View File

@ -1,31 +1,36 @@
# Do not modify this file.
# It is created automatically by the ASN.1 to Wireshark dissector compiler
# .\cmip-exp.cnf
# ../../tools/asn2wrs.py -b -e -p cmip -c cmip.cnf -s packet-cmip-template CMIP.asn
# ../../tools/asn2wrs.py -b -X -T -e -p cmip -c cmip.cnf -s packet-cmip-template CMIP-1.asn CMIP-A-ABORT-Information.asn CMIP-A-ASSOCIATE-Information.asn ../x721/Attribute-ASN1Module.asn ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.asn
#.MODULE
CMIP-A-ASSOCIATE-Information cmip
CMIP-1 cmip
CMIP-A-ABORT-Information cmip
CMIP-A-ASSOCIATE-Information cmip
Attribute-ASN1Module cmip
Remote-Operations-Information-Objects cmip
Remote-Operations-Generic-ROS-PDUs cmip
#.END
#.IMPORT_TAG
RDNSequence BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
ObjectClass BER_CLASS_ANY/*choice*/ -1/*choice*/
ObjectInstance BER_CLASS_ANY/*choice*/ -1/*choice*/
Attribute BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
InvokeIDType BER_CLASS_ANY/*choice*/ -1/*choice*/
ROS BER_CLASS_ANY/*choice*/ -1/*choice*/
ObjectClass BER_CLASS_ANY/*choice*/ -1/*choice*/
ObjectInstance BER_CLASS_ANY/*choice*/ -1/*choice*/
RDNSequence BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
CMIPAbortInfo BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
CMIPUserInfo BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
ROS BER_CLASS_ANY/*choice*/ -1/*choice*/
#.END
#.TYPE_ATTR
RDNSequence TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0
ObjectClass TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(cmip_ObjectClass_vals) BITMASK = 0
ObjectInstance TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(cmip_ObjectInstance_vals) BITMASK = 0
Attribute TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
InvokeIDType TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(cmip_InvokeId_vals) BITMASK = 0
ROS TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(cmip_ROS_vals) BITMASK = 0
ObjectClass TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(cmip_ObjectClass_vals) BITMASK = 0
ObjectInstance TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(cmip_ObjectInstance_vals) BITMASK = 0
RDNSequence TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0
CMIPAbortInfo TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
CMIPUserInfo TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
ROS TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(cmip_ROS_vals) BITMASK = 0
#.END

View File

@ -5,6 +5,34 @@
#.INCLUDE ../acse/acse-exp.cnf
#.MODULE
Remote-Operations-Information-Objects cmip.ros
Attribute-ASN1Module cmip.x721
#.OMIT_ASSIGNMENT Remote-Operations-Information-Objects
Bind
Unbind
#.END
#.MAKE_ENUM
Code/local
#.TYPE_RENAME
Invoke/argument InvokeArgument
ReturnResult/result/result ResultArgument
#.FIELD_RENAME
Invoke/linkedId/present linkedIdPresent
Reject/problem/invoke invokeProblem
Reject/problem/returnError returnErrorProblem
Reject/problem/returnResult returnResultProblem
ReturnResult/result/result resultArgument
#.EXPORTS
CMIPAbortInfo
CMIPUserInfo
@ -16,11 +44,25 @@ Attribute
RDNSequence
#.REGISTER
OperationalState B "2.9.3.2.7.35" "smi2AttributeID(7)operationalState(35)"
Destination B "2.9.3.2.7.55" "smi2AttributeID(7)destination(55)"
DiscriminatorConstruct B "2.9.3.2.7.56" "smi2AttributeID(7)discriminatorConstruct(56)"
NameBinding B "2.9.3.2.7.63" "smi2AttributeID(7)nameBinding(63)"
ObjectClass B "2.9.3.2.7.65" "smi2AttributeID(7)objectClass(65)"
# X.721
LogRecordId B "2.9.3.2.7.3" "logRecordId(3)"
SystemId B "2.9.3.2.7.4" "systemId(4)"
SystemTitle B "2.9.3.2.7.5" "systemTitle(5)"
AdditionalText B "2.9.3.2.7.7" "additionalText(7)"
BackedUpStatus B "2.9.3.2.7.11" "backedUpStatus(11)"
# Currently in the GNM dissector
#AdministrativeState B "2.9.3.2.7.31" "administrativeState(31)"
#ControlStatus B "2.9.3.2.7.34" "controlStatus(34)"
UsageState B "2.9.3.2.7.39" "usageState(39)"
OperationalState B "2.9.3.2.7.35" "operationalState(35)"
Allomorphs B "2.9.3.2.7.50" "allomorphs(50)"
Destination B "2.9.3.2.7.55" "destination(55)"
DiscriminatorConstruct B "2.9.3.2.7.56" "discriminatorConstruct(56)"
NameBinding B "2.9.3.2.7.63" "nameBinding(63)"
ObjectClass B "2.9.3.2.7.65" "objectClass(65)"
# Currently in the GNM dissector
#Packages B "2.9.3.2.7.66""packages(66)"
#.NO_EMIT
@ -29,6 +71,7 @@ ObjectClass B "2.9.3.2.7.65" "smi2AttributeID(7)objectClass(65)"
#.TYPE_RENAME
#.FIELD_RENAME
SetArgument/modificationList/_item/attributeValue attributevalue
#.FN_HDR CMIPAbortInfo
if(check_col(actx->pinfo->cinfo, COL_INFO)){
@ -51,7 +94,7 @@ ObjectClass B "2.9.3.2.7.65" "smi2AttributeID(7)objectClass(65)"
}
#.END
#.FN_BODY Opcode VAL_PTR = &opcode
#.FN_BODY Code/local VAL_PTR = &opcode
%(DEFAULT_BODY)s
if(check_col(actx->pinfo->cinfo, COL_INFO)){
col_prepend_fstr(actx->pinfo->cinfo, COL_INFO, "%%s", val_to_str(opcode, cmip_Opcode_vals, " Unknown Opcode:%%d"));
@ -105,9 +148,7 @@ ObjectClass B "2.9.3.2.7.65" "smi2AttributeID(7)objectClass(65)"
#.FN_BODY AttributeValueAssertion/value
offset=call_ber_oid_callback(attributevalueassertion_id, tvb, offset, actx->pinfo, tree);
#.FN_BODY Argument
switch(opcode_type){
case OPCODE_INVOKE:
#.FN_BODY Invoke/argument
switch(opcode){
case 0: /* M-eventreport */
offset = dissect_cmip_EventReportArgument(FALSE, tvb, offset, actx, tree, -1);
@ -143,8 +184,10 @@ ObjectClass B "2.9.3.2.7.65" "smi2AttributeID(7)objectClass(65)"
offset = dissect_cmip_InvokeIDType(FALSE, tvb, offset, actx, tree, -1);
break;
}
break;
case OPCODE_RETURN_RESULT:
#.FN_BODY ReturnResult/result/result
switch(opcode){
case 0: /* M-eventreport*/
break; /* No return data */
@ -175,46 +218,35 @@ ObjectClass B "2.9.3.2.7.65" "smi2AttributeID(7)objectClass(65)"
case 10: /* M-cancelget */
break; /* doe this one return any data? */
}
break;
/*XXX add more types here */
}
#.FN_BODY ReturnError/parameter
/* TODO: add code here */
#.FN_HDR ObjectClass/ocglobalForm
#.FN_HDR ObjectClass/globalForm
objectclassform = OBJECTCLASS_GLOBAL_FORM;
#.FN_PARS ObjectClass/ocglobalForm
#.FN_PARS ObjectClass/globalForm
FN_VARIANT = _str VAL_PTR = &objectclass_identifier_id
#.FN_HDR ObjectClass/oclocalForm
#.FN_HDR ObjectClass/localForm
objectclassform = OBJECTCLASS_LOCAL_FORM;
#.FN_PARS ActionInfo/actionType
#.FN_PARS ActionTypeId/globalForm
FN_VARIANT = _str HF_INDEX = hf_cmip_actionType_OID VAL_PTR = &object_identifier_id
#.FN_BODY ActionInfo/actionInfoArg
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
#.FN_PARS ActionReply/actionType
FN_VARIANT = _str HF_INDEX = hf_cmip_actionType_OID VAL_PTR = &object_identifier_id
#.FN_BODY ActionReply/actionReplyInfo
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
#.FN_PARS EventReportArgument/eventType
#.FN_PARS EventTypeId/globalForm
FN_VARIANT = _str HF_INDEX = hf_cmip_eventType_OID VAL_PTR = &object_identifier_id
#.FN_BODY EventReportArgument/eventInfo
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
#.FN_PARS EventReply/eventType
FN_VARIANT = _str HF_INDEX = hf_cmip_eventType_OID VAL_PTR = &object_identifier_id
#.FN_BODY EventReply/eventReplyInfo
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
#.FN_PARS ModificationItem/attributeId
FN_VARIANT = _str HF_INDEX = hf_cmip_attributeId_OID VAL_PTR = &object_identifier_id
#.FN_BODY ModificationItem/attributeValue
#.FN_BODY SetArgument/modificationList/_item/attributeValue
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
#.FN_PARS SpecificErrorInfo/errorId
@ -223,27 +255,37 @@ ObjectClass B "2.9.3.2.7.65" "smi2AttributeID(7)objectClass(65)"
#.FN_BODY SpecificErrorInfo/errorInfo
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
#.FN_PARS AttributeError/attributeId
FN_VARIANT = _str HF_INDEX = hf_cmip_attributeId_OID VAL_PTR = &object_identifier_id
#.FN_BODY AttributeError/attributeValue
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
#.FN_PARS ErrorInfo/actionType
FN_VARIANT = _str HF_INDEX = hf_cmip_actionType_OID VAL_PTR = &object_identifier_id
#.FN_BODY InvalidArgumentValue/eventValue/eventInfo
#.FN_PARS NoSuchArgumentAction/actionType
FN_VARIANT = _str HF_INDEX = hf_cmip_actionType_OID VAL_PTR = &object_identifier_id
#.FN_PARS NoSuchArgumentEvent/eventType
FN_VARIANT = _str HF_INDEX = hf_cmip_eventType_OID VAL_PTR = &object_identifier_id
#.FN_PARS InvalidArgumentValueEventValue/eventType
FN_VARIANT = _str HF_INDEX = hf_cmip_eventType_OID VAL_PTR = &object_identifier_id
#.FN_BODY InvalidArgumentValueEventValue/eventInfo
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
#.FN_BODY ActionReply/actionReplyInfo
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
# X.721
#.FN_PARS ManagementExtension/identifier FN_VARIANT = _str VAL_PTR = &object_identifier_id
#.FN_BODY ManagementExtension/information
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
#.FN_BODY AttributeValueChangeDefinition/_item/oldAttributeValue
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
#.FN_BODY AttributeValueChangeDefinition/_item/newAttributeValue
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
#.FN_PARS ServiceUser/identifier FN_VARIANT = _str VAL_PTR = &object_identifier_id
#.FN_BODY ServiceUser/details
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
#.FN_PARS SupportedFeatures/_item/featureIdentifier FN_VARIANT = _str VAL_PTR = &object_identifier_id
#.FN_BODY SupportedFeatures/_item/featureInfo
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
#.END

View File

@ -59,7 +59,6 @@ static int hf_DiscriminatorConstruct = -1;
static int hf_Destination = -1;
static int hf_NameBinding = -1;
static int hf_ObjectClass = -1;
static int hf_OperationalState = -1;
#include "packet-cmip-hf.c"
/* Initialize the subtree pointers */
@ -68,6 +67,21 @@ static gint ett_cmip = -1;
static guint32 opcode;
static const value_string cmip_Opcode_vals[] = {
{ 0, "m-EventReport" },
{ 1, "m-EventReport-Confirmed" },
{ 2, "m-Linked-Reply" },
{ 3, "m-Get" },
{ 4, "m-Set" },
{ 5, "m-Set-Confirmed" },
{ 6, "m-Action" },
{ 7, "m-Action-Confirmed" },
{ 8, "m-Create" },
{ 9, "m-Delete" },
{ 10, "m-CancelGet" },
{ 0, NULL }
};
static int opcode_type;
#define OPCODE_INVOKE 1
#define OPCODE_RETURN_RESULT 2
@ -88,6 +102,7 @@ static int objectclassform;
#define OBJECTCLASS_GLOBAL_FORM 1
static const char *objectclass_identifier_id;
#include "packet-cmip-val.h"
#include "packet-cmip-fn.c"
@ -187,10 +202,6 @@ void proto_register_cmip(void) {
{ "ObjectClass", "cmip.ObjectClass",
FT_UINT32, BASE_DEC, VALS(cmip_ObjectClass_vals), 0,
"", HFILL }},
{ &hf_OperationalState,
{ "OperationalState", "cmip.OperationalState",
FT_UINT32, BASE_DEC, VALS(cmip_OperationalState_vals), 0,
"", HFILL }},
#include "packet-cmip-hfarr.c"
};
@ -207,6 +218,8 @@ void proto_register_cmip(void) {
/* Register fields and subtrees */
proto_register_field_array(proto_cmip, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
#include "packet-cmip-dis-tab.c"
add_oid_str_name("2.9.3.2.7.1","discriminatorId(1) ");
}
@ -216,9 +229,23 @@ void proto_reg_handoff_cmip(void) {
register_ber_oid_dissector("2.9.0.0.2", dissect_cmip, proto_cmip, "cmip");
register_ber_oid_dissector("2.9.1.1.4", dissect_cmip, proto_cmip, "joint-iso-itu-t(2) ms(9) cmip(1) cmip-pci(1) abstractSyntax(4)");
add_oid_str_name("2.9.3.2.3.4","eventForwardingDiscriminator(4)");
add_oid_str_name("2.9.3.2.3.1","managedObjectClass(3) alarmRecord(1)");
add_oid_str_name("2.9.3.2.3.2","managedObjectClass(3) attributeValueChangeRecord(2)");
add_oid_str_name("2.9.3.2.3.3","managedObjectClass(3) discriminator(3)");
add_oid_str_name("2.9.3.2.3.4","managedObjectClass(3) eventForwardingDiscriminator(4)");
add_oid_str_name("2.9.3.2.3.5","managedObjectClass(3) eventLogRecord(5)");
add_oid_str_name("2.9.3.2.3.6","managedObjectClass(3) log(6)");
add_oid_str_name("2.9.3.2.3.7","managedObjectClass(3) logRecord(7)");
add_oid_str_name("2.9.3.2.3.8","managedObjectClass(3) objectCreationRecord(8)");
add_oid_str_name("2.9.3.2.3.9","managedObjectClass(3) objectDeletionRecord(9)");
add_oid_str_name("2.9.3.2.3.10","managedObjectClass(3) relationshipChangeRecord(10)");
add_oid_str_name("2.9.3.2.3.11","managedObjectClass(3) securityAlarmReportRecord(11)");
add_oid_str_name("2.9.3.2.3.12","managedObjectClass(3) stateChangeRecord(12)");
add_oid_str_name("2.9.3.2.3.13","managedObjectClass(3) system(13)");
add_oid_str_name("2.9.3.2.3.14","managedObjectClass(3) top(14)");
add_oid_str_name("2.9.3.2.4.14","administrativeStatePackage(14)");
add_oid_str_name("2.9.1.1.4","joint-iso-itu-t(2) ms(9) cmip(1) cmip-pci(1) abstractSyntax(4)");
#include "packet-cmip-dis-tab.c"
/*#include "packet-cmip-dis-tab.c" */
}

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* .\packet-cmip.h */
/* ../../tools/asn2wrs.py -b -e -p cmip -c cmip.cnf -s packet-cmip-template CMIP.asn */
/* ../../tools/asn2wrs.py -b -X -T -e -p cmip -c cmip.cnf -s packet-cmip-template CMIP-1.asn CMIP-A-ABORT-Information.asn CMIP-A-ASSOCIATE-Information.asn ../x721/Attribute-ASN1Module.asn ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.asn */
/* Input file: packet-cmip-template.h */
@ -40,14 +40,14 @@
extern const value_string cmip_ObjectClass_vals[];
extern const value_string cmip_ObjectInstance_vals[];
extern const value_string cmip_ROS_vals[];
int dissect_cmip_RDNSequence(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_cmip_ObjectClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_cmip_ObjectInstance(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_cmip_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_cmip_InvokeIDType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_cmip_ROS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_cmip_ObjectClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_cmip_ObjectInstance(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_cmip_RDNSequence(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_cmip_CMIPAbortInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_cmip_CMIPUserInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_cmip_ROS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/*--- End of included file: packet-cmip-exp.h ---*/
#line 30 "packet-cmip-template.h"