Fix malformed packet if linkedId is present dissect some OID:s
svn path=/trunk/; revision=15533
This commit is contained in:
parent
77a3d0991c
commit
bd42437262
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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)");
|
||||
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +1,6 @@
|
|||
/* Do not modify this file. */
|
||||
/* It is created automatically by the ASN.1 to Ethereal dissector compiler */
|
||||
/* ./packet-cmip.h */
|
||||
/* .\packet-cmip.h */
|
||||
/* ../../tools/asn2eth.py -X -b -e -p cmip -c cmip.cnf -s packet-cmip-template CMIP.asn */
|
||||
|
||||
/* Input file: packet-cmip-template.h */
|
||||
|
|
Loading…
Reference in New Issue