aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/cmip
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2005-08-25 21:25:52 +0000
committerAnders Broman <anders.broman@ericsson.com>2005-08-25 21:25:52 +0000
commitbd42437262d885f24cbf0fc96e4b2235aac695a3 (patch)
tree498793e562e838421ffaccbcd78a5ecfe1229ab7 /asn1/cmip
parent77a3d0991c781003f7e1a6d3221a71477a2cfed2 (diff)
Fix malformed packet if linkedId is present dissect some OID:s
svn path=/trunk/; revision=15533
Diffstat (limited to 'asn1/cmip')
-rw-r--r--asn1/cmip/CMIP.asn57
-rw-r--r--asn1/cmip/packet-cmip-template.c99
2 files changed, 151 insertions, 5 deletions
diff --git a/asn1/cmip/CMIP.asn b/asn1/cmip/CMIP.asn
index 17ba985460..51da9910e8 100644
--- a/asn1/cmip/CMIP.asn
+++ b/asn1/cmip/CMIP.asn
@@ -303,6 +303,52 @@ FilterItem ::= CHOICE {
nonNullSetIntersection [7] IMPLICIT Attribute
}
+-- IMPORTED from Attribute-ASN1Module {joint-iso-itu-t ms(9) smi(3) part2(2) asn1Module(2) 1}
+
+AdministrativeState ::= ENUMERATED {locked(0), unlocked(1), shuttingDown(2)}
+
+DiscriminatorConstruct ::= CMISFilter
+
+Destination ::= CHOICE {single AE-title,
+ multiple SET OF AE-title
+}
+
+OperationalState ::= ENUMERATED {disabled(0), enabled(1)}
+
+NameBinding ::= OBJECT IDENTIFIER
+
+-- IMPORTED FROM ASN1DefinedTypesModule {itu-t recommendation m gnm(3100) informationModel(0) asn1Modules(2) asn1DefinedTypesModule(0)}
+
+NameType ::= CHOICE {numericName INTEGER,
+ pString GraphicString
+}
+
+-- FROM ACSE
+AE-title ::= CHOICE {
+ ae-title-form1 AE-title-form1,
+ ae-title-form2 AE-title-form2,
+ ...
+}
+
+-- As defined in ITU-T Rec. X.650 | ISO/IEC 7498-3, an application-entity title is composed of an application process
+-- title and an application-entity qualifier. The ACSE protocol provides for the transfer of an application-entity title
+-- value by the transfer of its component values. However, the following data type is provided for International
+-- Standards that reference a single syntactic structure for AE titles.
+AE-title-form1 ::= Name
+
+-- For access to The Directory (see ITU-T Rec. X.500 series | ISO/IEC 9594), an AE title has AE-title-form1. This value
+-- can be constructed from AP-title-form1 and AE-qualifier-form1 values contained in an AARQ or AARE APDU.
+-- A discussion of forming an AE-title-form1 from AP-title-form1 and AE-qualifier form1 may be found in itu-t
+-- Rec X.665 | ISO/IEC 9834-6.
+AE-title-form2 ::= OBJECT IDENTIFIER
+
+Name ::= CHOICE {
+ rdnSequence RDNSequence
+}
+
+-- End Imports
+
+
CMISFilter ::= CHOICE {
item [8] FilterItem,
and [9] IMPLICIT SET OF CMISFilter,
@@ -353,10 +399,11 @@ InvokeID ::= INTEGER
Opcode ::= INTEGER { m-EventReport(0), m-EventReport-Confirmed(1), m-Linked-Reply(2), m-Get(3), m-Set(4), m-Set-Confirmed(5), m-Action(6), m-Action-Confirmed(7), m-Create(8), m-Delete(9), m-CancelGet(10) }
-InvokeLinkedId ::= CHOICE {
- present [0] IMPLICIT InvokeId,
- absent [1] IMPLICIT NULL
-}
+--InvokeLinkedId ::= CHOICE {
+-- present [0] IMPLICIT InvokeId,
+-- absent [1] IMPLICIT NULL
+--}
+InvokeLinkedId ::= INTEGER
InvokeIDType ::= InvokeId
@@ -367,7 +414,7 @@ InvokeId ::= CHOICE {
Invoke ::= SEQUENCE {
invokeId InvokeId,
- linkedId InvokeLinkedId OPTIONAL,
+ linkedId [0] IMPLICIT InvokeLinkedId OPTIONAL,
opcode Opcode,
argument Argument OPTIONAL
}
diff --git a/asn1/cmip/packet-cmip-template.c b/asn1/cmip/packet-cmip-template.c
index 4089882a42..7892893548 100644
--- a/asn1/cmip/packet-cmip-template.c
+++ b/asn1/cmip/packet-cmip-template.c
@@ -53,6 +53,12 @@ static int hf_cmip_actionType_OID = -1;
static int hf_cmip_eventType_OID = -1;
static int hf_cmip_attributeId_OID = -1;
static int hf_cmip_errorId_OID = -1;
+static int hf_AdministrativeState = -1;
+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 */
@@ -81,6 +87,62 @@ static char objectclass_identifier_id[BER_MAX_OID_STR_LEN];
#include "packet-cmip-fn.c"
+
+static int
+dissect_cmip_atribute_31(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+{
+
+ return dissect_cmip_AdministrativeState(FALSE, tvb, 0, pinfo, parent_tree, hf_AdministrativeState);
+
+}
+static int
+dissect_cmip_atribute_35(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+{
+
+ return dissect_cmip_OperationalState(FALSE, tvb, 0, pinfo, parent_tree, hf_OperationalState);
+
+}
+
+static int
+dissect_cmip_atribute_55(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+{
+
+ return dissect_cmip_Destination(FALSE, tvb, 0, pinfo, parent_tree,hf_Destination);
+
+}
+
+static int
+dissect_cmip_atribute_56(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+{
+
+ return dissect_cmip_DiscriminatorConstruct(FALSE, tvb, 0, pinfo, parent_tree, hf_DiscriminatorConstruct);
+
+}
+
+static int
+dissect_cmip_atribute_63(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+{
+
+ return dissect_cmip_NameBinding(FALSE, tvb, 0, pinfo, parent_tree, hf_NameBinding);
+
+}
+
+static int
+dissect_cmip_atribute_65(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+{
+
+ return dissect_cmip_ObjectClass(FALSE, tvb, 0, pinfo, parent_tree, hf_ObjectClass);
+
+}
+
+static int
+dissect_cmip_M3100_atribute_NameType(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+{
+
+ return dissect_cmip_NameType(FALSE, tvb, 0, pinfo, parent_tree, -1);
+
+}
+
/* XXX this one should be broken out later and moved into the conformance file */
static void
dissect_cmip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
@@ -157,6 +219,31 @@ void proto_register_cmip(void) {
{ "errorId", "cmip.errorId_OID",
FT_STRING, BASE_NONE, NULL, 0,
"errorId", HFILL }},
+ { &hf_AdministrativeState,
+ { "AdministrativeState", "cmip.AdministrativeState",
+ FT_UINT32, BASE_DEC, VALS(cmip_AdministrativeState_vals), 0,
+ "", HFILL }},
+ { &hf_DiscriminatorConstruct,
+ { "DiscriminatorConstruct", "cmip.DiscriminatorConstruct",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_Destination,
+ { "Destination", "cmip.Destination",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_NameBinding,
+ { "NameBinding", "cmip.NameBinding",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_ObjectClass,
+ { "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"
};
@@ -179,5 +266,17 @@ void proto_register_cmip(void) {
/*--- proto_reg_handoff_cmip -------------------------------------------*/
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.3.2.7.31", dissect_cmip_atribute_31, proto_cmip, "smi2AttributeID (7) administrativeState(31)");
+ register_ber_oid_dissector("2.9.3.2.7.35", dissect_cmip_atribute_35, proto_cmip, "smi2AttributeID (7) operationalState(35)");
+ register_ber_oid_dissector("2.9.3.2.7.55", dissect_cmip_atribute_55, proto_cmip, "smi2AttributeID (7) destination(55)");
+ register_ber_oid_dissector("2.9.3.2.7.56", dissect_cmip_atribute_56, proto_cmip, "smi2AttributeID (7) discriminatorConstruct(56)");
+ register_ber_oid_dissector("2.9.3.2.7.63", dissect_cmip_atribute_63, proto_cmip, "smi2AttributeID (7) nameBinding(63)");
+ register_ber_oid_dissector("2.9.3.2.7.65", dissect_cmip_atribute_65, proto_cmip, "smi2AttributeID (7) objectClass(65)");
+ register_ber_oid_dissector("0.0.13.3100.0.7.20", dissect_cmip_M3100_atribute_NameType, proto_cmip, "equipmentId(20)");
+ register_ber_oid_dissector("0.0.13.3100.0.7.28", dissect_cmip_M3100_atribute_NameType, proto_cmip, "managedElementId(28)");
+ register_ber_oid_dissector("0.0.13.3100.0.7.30", dissect_cmip_M3100_atribute_NameType, proto_cmip, "networkId(30)");
+
+ register_ber_oid_name("2.9.3.2.3.4","eventForwardingDiscriminator(4)");
+
}