diff options
Diffstat (limited to 'asn1/cmip')
-rw-r--r-- | asn1/cmip/CMIP.asn | 57 | ||||
-rw-r--r-- | asn1/cmip/packet-cmip-template.c | 99 |
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)"); + } |