aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2010-01-11 13:36:30 +0000
committerStig Bjørlykke <stig@bjorlykke.org>2010-01-11 13:36:30 +0000
commitdf508b7b9618a72f6a3bce37f9e9e0717129cb98 (patch)
treefe7f613272c998f459023e95a40bed8e06768425
parent3a79a595173a89cc12466cb204ff99cfa8f27fe9 (diff)
Update to X.518:08/2005 to add DitBridgeKnowledge.
Export Exclusions. svn path=/trunk/; revision=31493
-rw-r--r--asn1/dsp/dsp.asn25
-rw-r--r--asn1/dsp/dsp.cnf2
-rw-r--r--epan/dissectors/packet-dsp.c101
-rw-r--r--epan/dissectors/packet-dsp.h1
4 files changed, 118 insertions, 11 deletions
diff --git a/asn1/dsp/dsp.asn b/asn1/dsp/dsp.asn
index 405a2bbc1d..e0f2a6508a 100644
--- a/asn1/dsp/dsp.asn
+++ b/asn1/dsp/dsp.asn
@@ -1,4 +1,4 @@
--- Module DistributedOperations (X.518:02/2001)
+-- Module DistributedOperations (X.518:08/2005)
DistributedOperations {joint-iso-itu-t ds(5) module(1) distributedOperations(3)
4} DEFINITIONS ::=
BEGIN
@@ -42,7 +42,7 @@ IMPORTS
id-errcode-dsaReferral
FROM DirectoryAccessProtocol {joint-iso-itu-t ds(5) module(1) dap(11) 4}
-- from ITU-T Rec. X.520 | ISO/IEC 9594-6
- PresentationAddress, ProtocolInformation, UniqueIdentifier
+ DirectoryString{}, PresentationAddress, ProtocolInformation, UniqueIdentifier
FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
selectedAttributeTypes(5) 4}
-- from ITU-T Rec. X.880 | ISO/IEC 13712-1
@@ -362,8 +362,7 @@ DSAReferral ::= CHOICE {
ChainingArguments ::= SET {
originator [0] DistinguishedName OPTIONAL,
targetObject [1] DistinguishedName OPTIONAL,
- operationProgress
- [2] OperationProgress DEFAULT {nameResolutionPhase notStarted},
+ operationProgress [2] OperationProgress DEFAULT {nameResolutionPhase notStarted},
traceInformation [3] TraceInformation,
aliasDereferenced [4] BOOLEAN DEFAULT FALSE,
aliasedRDNs [5] INTEGER OPTIONAL,
@@ -382,7 +381,11 @@ ChainingArguments ::= SET {
operationIdentifier [17] INTEGER OPTIONAL,
searchRuleId [18] SearchRuleId OPTIONAL,
chainedRelaxation [19] MRMapping OPTIONAL,
- relatedEntry [20] INTEGER OPTIONAL
+ relatedEntry [20] INTEGER OPTIONAL,
+ dspPaging [21] BOOLEAN DEFAULT FALSE,
+ nonDapPdu [22] ENUMERATED { ldap (0) } OPTIONAL,
+ streamedResults [23] INTEGER OPTIONAL,
+ excludeWriteableCopies [24] BOOLEAN DEFAULT FALSE
}
Time ::= CHOICE {utcTime UTCTime,
@@ -419,14 +422,17 @@ TraceItem ::= SET {
ReferenceType ::= ENUMERATED {
superior(1), subordinate(2), cross(3), nonSpecificSubordinate(4),
- supplier(5), master(6), immediateSuperior(7), self(8)}
+ supplier(5), master(6), immediateSuperior(7), self(8), ditBridge(9)}
AccessPoint ::= SET {
ae-title [0] Name,
address [1] PresentationAddress,
- protocolInformation [2] SET --SIZE (1..MAX)-- OF ProtocolInformation OPTIONAL
+ protocolInformation [2] SET --SIZE (1..MAX)-- OF ProtocolInformation OPTIONAL,
+ labeledURI [6] LabeledURI OPTIONAL
}
+LabeledURI ::= DirectoryString{--ub-labeledURI--}
+
MasterOrShadowAccessPoint ::= SET {
-- COMPONENTS OF AccessPoint,
ae-title [0] Name,
@@ -448,6 +454,11 @@ AccessPointInformation ::= SET {
additionalPoints [4] MasterAndShadowAccessPoints OPTIONAL
}
+DitBridgeKnowledge ::= SEQUENCE {
+ domainLocalID DirectoryString{--ub-domainLocalID--} OPTIONAL,
+ accessPoints MasterAndShadowAccessPoints
+}
+
Exclusions ::= SET --SIZE (1..MAX)-- OF RDNSequence
ContinuationReference ::= SET {
diff --git a/asn1/dsp/dsp.cnf b/asn1/dsp/dsp.cnf
index 5a9fbf7dca..a5ee1386e2 100644
--- a/asn1/dsp/dsp.cnf
+++ b/asn1/dsp/dsp.cnf
@@ -13,6 +13,7 @@ ReferenceType
ContinuationReference
AccessPoint
MasterAndShadowAccessPoints
+Exclusions
#.TYPE_RENAME
@@ -32,3 +33,4 @@ AccessPoint B "2.5.12.1" "id-doa-myAccessPoint"
AccessPoint B "2.5.12.2" "id-doa-superiorKnowledge"
MasterAndShadowAccessPoints B "2.5.12.3" "id-doa-specificKnowledge"
MasterAndShadowAccessPoints B "2.5.12.4" "id-doa-nonSpecificKnowledge"
+DitBridgeKnowledge B "2.5.12.8" "id-doa-ditBridgeKnowledge"
diff --git a/epan/dissectors/packet-dsp.c b/epan/dissectors/packet-dsp.c
index 0e596209aa..f85238f147 100644
--- a/epan/dissectors/packet-dsp.c
+++ b/epan/dissectors/packet-dsp.c
@@ -75,6 +75,7 @@ static struct SESSION_DATA_STRUCTURE* session = NULL;
#line 1 "packet-dsp-hf.c"
static int hf_dsp_AccessPoint_PDU = -1; /* AccessPoint */
static int hf_dsp_MasterAndShadowAccessPoints_PDU = -1; /* MasterAndShadowAccessPoints */
+static int hf_dsp_DitBridgeKnowledge_PDU = -1; /* DitBridgeKnowledge */
static int hf_dsp_chainedArgument = -1; /* ChainingArguments */
static int hf_dsp_readArgument = -1; /* ReadArgument */
static int hf_dsp_unsignedChainedReadArgument = -1; /* ChainedReadArgumentData */
@@ -172,6 +173,10 @@ static int hf_dsp_operationIdentifier = -1; /* INTEGER */
static int hf_dsp_searchRuleId = -1; /* SearchRuleId */
static int hf_dsp_chainedRelaxation = -1; /* MRMapping */
static int hf_dsp_relatedEntry = -1; /* INTEGER */
+static int hf_dsp_dspPaging = -1; /* BOOLEAN */
+static int hf_dsp_nonDapPdu = -1; /* T_nonDapPdu */
+static int hf_dsp_streamedResults = -1; /* INTEGER */
+static int hf_dsp_excludeWriteableCopies = -1; /* BOOLEAN */
static int hf_dsp_utcTime = -1; /* UTCTime */
static int hf_dsp_generalizedTime = -1; /* GeneralizedTime */
static int hf_dsp_crossReferences = -1; /* SEQUENCE_OF_CrossReference */
@@ -187,14 +192,17 @@ static int hf_dsp_ae_title = -1; /* Name */
static int hf_dsp_address = -1; /* PresentationAddress */
static int hf_dsp_protocolInformation = -1; /* SET_OF_ProtocolInformation */
static int hf_dsp_protocolInformation_item = -1; /* ProtocolInformation */
+static int hf_dsp_labeledURI = -1; /* LabeledURI */
static int hf_dsp_access_point_category = -1; /* APCategory */
static int hf_dsp_chainingRequired = -1; /* BOOLEAN */
static int hf_dsp_MasterAndShadowAccessPoints_item = -1; /* MasterOrShadowAccessPoint */
static int hf_dsp_category = -1; /* T_category */
static int hf_dsp_additionalPoints = -1; /* MasterAndShadowAccessPoints */
+static int hf_dsp_domainLocalID = -1; /* DirectoryString */
+static int hf_dsp_accessPoints = -1; /* MasterAndShadowAccessPoints */
static int hf_dsp_Exclusions_item = -1; /* RDNSequence */
static int hf_dsp_rdnsResolved = -1; /* INTEGER */
-static int hf_dsp_accessPoints = -1; /* SET_OF_AccessPointInformation */
+static int hf_dsp_accessPoints_01 = -1; /* SET_OF_AccessPointInformation */
static int hf_dsp_accessPoints_item = -1; /* AccessPointInformation */
static int hf_dsp_returnToDUA = -1; /* BOOLEAN */
static int hf_dsp_basicLevels = -1; /* T_basicLevels */
@@ -276,6 +284,7 @@ static gint ett_dsp_SET_OF_ProtocolInformation = -1;
static gint ett_dsp_MasterOrShadowAccessPoint = -1;
static gint ett_dsp_MasterAndShadowAccessPoints = -1;
static gint ett_dsp_AccessPointInformation = -1;
+static gint ett_dsp_DitBridgeKnowledge = -1;
static gint ett_dsp_Exclusions = -1;
static gint ett_dsp_ContinuationReference = -1;
static gint ett_dsp_SET_OF_AccessPointInformation = -1;
@@ -405,6 +414,7 @@ const value_string dsp_ReferenceType_vals[] = {
{ 6, "master" },
{ 7, "immediateSuperior" },
{ 8, "self" },
+ { 9, "ditBridge" },
{ 0, NULL }
};
@@ -535,7 +545,7 @@ static const ber_sequence_t Exclusions_set_of[1] = {
{ &hf_dsp_Exclusions_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_RDNSequence },
};
-static int
+int
dissect_dsp_Exclusions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
Exclusions_set_of, hf_index, ett_dsp_Exclusions);
@@ -544,6 +554,21 @@ dissect_dsp_Exclusions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
}
+static const value_string dsp_T_nonDapPdu_vals[] = {
+ { 0, "ldap" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_dsp_T_nonDapPdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
static const ber_sequence_t ChainingArguments_set[] = {
{ &hf_dsp_originator , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
{ &hf_dsp_targetObjectDN , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_DistinguishedName },
@@ -566,6 +591,10 @@ static const ber_sequence_t ChainingArguments_set[] = {
{ &hf_dsp_searchRuleId , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL, dissect_x509if_SearchRuleId },
{ &hf_dsp_chainedRelaxation, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_x509if_MRMapping },
{ &hf_dsp_relatedEntry , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL, dissect_dsp_INTEGER },
+ { &hf_dsp_dspPaging , BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_dsp_BOOLEAN },
+ { &hf_dsp_nonDapPdu , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL, dissect_dsp_T_nonDapPdu },
+ { &hf_dsp_streamedResults , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_dsp_INTEGER },
+ { &hf_dsp_excludeWriteableCopies, BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_dsp_BOOLEAN },
{ NULL, 0, 0, 0, NULL }
};
@@ -1614,7 +1643,7 @@ static const ber_sequence_t ContinuationReference_set[] = {
{ &hf_dsp_operationProgress, BER_CLASS_CON, 2, 0, dissect_dsp_OperationProgress },
{ &hf_dsp_rdnsResolved , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_dsp_INTEGER },
{ &hf_dsp_referenceType , BER_CLASS_CON, 4, 0, dissect_dsp_ReferenceType },
- { &hf_dsp_accessPoints , BER_CLASS_CON, 5, 0, dissect_dsp_SET_OF_AccessPointInformation },
+ { &hf_dsp_accessPoints_01 , BER_CLASS_CON, 5, 0, dissect_dsp_SET_OF_AccessPointInformation },
{ &hf_dsp_entryOnly , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_dsp_BOOLEAN },
{ &hf_dsp_exclusions , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_dsp_Exclusions },
{ &hf_dsp_returnToDUA , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_dsp_BOOLEAN },
@@ -1701,10 +1730,20 @@ dissect_dsp_DSAReferral(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
}
+
+static int
+dissect_dsp_LabeledURI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_x509sat_DirectoryString(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+ return offset;
+}
+
+
static const ber_sequence_t AccessPoint_set[] = {
{ &hf_dsp_ae_title , BER_CLASS_CON, 0, 0, dissect_x509if_Name },
{ &hf_dsp_address , BER_CLASS_CON, 1, 0, dissect_x509sat_PresentationAddress },
{ &hf_dsp_protocolInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dsp_SET_OF_ProtocolInformation },
+ { &hf_dsp_labeledURI , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_dsp_LabeledURI },
{ NULL, 0, 0, 0, NULL }
};
@@ -1716,6 +1755,21 @@ dissect_dsp_AccessPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
return offset;
}
+
+static const ber_sequence_t DitBridgeKnowledge_sequence[] = {
+ { &hf_dsp_domainLocalID , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509sat_DirectoryString },
+ { &hf_dsp_accessPoints , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_dsp_MasterAndShadowAccessPoints },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_dsp_DitBridgeKnowledge(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ DitBridgeKnowledge_sequence, hf_index, ett_dsp_DitBridgeKnowledge);
+
+ return offset;
+}
+
/*--- PDUs ---*/
static void dissect_AccessPoint_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
@@ -1728,6 +1782,11 @@ static void dissect_MasterAndShadowAccessPoints_PDU(tvbuff_t *tvb _U_, packet_in
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
dissect_dsp_MasterAndShadowAccessPoints(FALSE, tvb, 0, &asn1_ctx, tree, hf_dsp_MasterAndShadowAccessPoints_PDU);
}
+static void dissect_DitBridgeKnowledge_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+ dissect_dsp_DitBridgeKnowledge(FALSE, tvb, 0, &asn1_ctx, tree, hf_dsp_DitBridgeKnowledge_PDU);
+}
/*--- End of included file: packet-dsp-fn.c ---*/
@@ -1948,6 +2007,10 @@ void proto_register_dsp(void) {
{ "MasterAndShadowAccessPoints", "dsp.MasterAndShadowAccessPoints",
FT_UINT32, BASE_DEC, NULL, 0,
"dsp.MasterAndShadowAccessPoints", HFILL }},
+ { &hf_dsp_DitBridgeKnowledge_PDU,
+ { "DitBridgeKnowledge", "dsp.DitBridgeKnowledge",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "dsp.DitBridgeKnowledge", HFILL }},
{ &hf_dsp_chainedArgument,
{ "chainedArgument", "dsp.chainedArgument",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2336,6 +2399,22 @@ void proto_register_dsp(void) {
{ "relatedEntry", "dsp.relatedEntry",
FT_INT32, BASE_DEC, NULL, 0,
"dsp.INTEGER", HFILL }},
+ { &hf_dsp_dspPaging,
+ { "dspPaging", "dsp.dspPaging",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ "dsp.BOOLEAN", HFILL }},
+ { &hf_dsp_nonDapPdu,
+ { "nonDapPdu", "dsp.nonDapPdu",
+ FT_UINT32, BASE_DEC, VALS(dsp_T_nonDapPdu_vals), 0,
+ "dsp.T_nonDapPdu", HFILL }},
+ { &hf_dsp_streamedResults,
+ { "streamedResults", "dsp.streamedResults",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "dsp.INTEGER", HFILL }},
+ { &hf_dsp_excludeWriteableCopies,
+ { "excludeWriteableCopies", "dsp.excludeWriteableCopies",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ "dsp.BOOLEAN", HFILL }},
{ &hf_dsp_utcTime,
{ "utcTime", "dsp.utcTime",
FT_STRING, BASE_NONE, NULL, 0,
@@ -2396,6 +2475,10 @@ void proto_register_dsp(void) {
{ "ProtocolInformation", "dsp.ProtocolInformation",
FT_NONE, BASE_NONE, NULL, 0,
"x509sat.ProtocolInformation", HFILL }},
+ { &hf_dsp_labeledURI,
+ { "labeledURI", "dsp.labeledURI",
+ FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
+ "dsp.LabeledURI", HFILL }},
{ &hf_dsp_access_point_category,
{ "category", "dsp.category",
FT_UINT32, BASE_DEC, VALS(dsp_APCategory_vals), 0,
@@ -2416,6 +2499,14 @@ void proto_register_dsp(void) {
{ "additionalPoints", "dsp.additionalPoints",
FT_UINT32, BASE_DEC, NULL, 0,
"dsp.MasterAndShadowAccessPoints", HFILL }},
+ { &hf_dsp_domainLocalID,
+ { "domainLocalID", "dsp.domainLocalID",
+ FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
+ "x509sat.DirectoryString", HFILL }},
+ { &hf_dsp_accessPoints,
+ { "accessPoints", "dsp.accessPoints",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "dsp.MasterAndShadowAccessPoints", HFILL }},
{ &hf_dsp_Exclusions_item,
{ "RDNSequence", "dsp.RDNSequence",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -2424,7 +2515,7 @@ void proto_register_dsp(void) {
{ "rdnsResolved", "dsp.rdnsResolved",
FT_INT32, BASE_DEC, NULL, 0,
"dsp.INTEGER", HFILL }},
- { &hf_dsp_accessPoints,
+ { &hf_dsp_accessPoints_01,
{ "accessPoints", "dsp.accessPoints",
FT_UINT32, BASE_DEC, NULL, 0,
"dsp.SET_OF_AccessPointInformation", HFILL }},
@@ -2532,6 +2623,7 @@ void proto_register_dsp(void) {
&ett_dsp_MasterOrShadowAccessPoint,
&ett_dsp_MasterAndShadowAccessPoints,
&ett_dsp_AccessPointInformation,
+ &ett_dsp_DitBridgeKnowledge,
&ett_dsp_Exclusions,
&ett_dsp_ContinuationReference,
&ett_dsp_SET_OF_AccessPointInformation,
@@ -2576,6 +2668,7 @@ void proto_reg_handoff_dsp(void) {
register_ber_oid_dissector("2.5.12.2", dissect_AccessPoint_PDU, proto_dsp, "id-doa-superiorKnowledge");
register_ber_oid_dissector("2.5.12.3", dissect_MasterAndShadowAccessPoints_PDU, proto_dsp, "id-doa-specificKnowledge");
register_ber_oid_dissector("2.5.12.4", dissect_MasterAndShadowAccessPoints_PDU, proto_dsp, "id-doa-nonSpecificKnowledge");
+ register_ber_oid_dissector("2.5.12.8", dissect_DitBridgeKnowledge_PDU, proto_dsp, "id-doa-ditBridgeKnowledge");
/*--- End of included file: packet-dsp-dis-tab.c ---*/
diff --git a/epan/dissectors/packet-dsp.h b/epan/dissectors/packet-dsp.h
index 24f0a4c85e..df7a8e6a92 100644
--- a/epan/dissectors/packet-dsp.h
+++ b/epan/dissectors/packet-dsp.h
@@ -42,6 +42,7 @@ int dissect_dsp_OperationProgress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
int dissect_dsp_ReferenceType(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_dsp_AccessPoint(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_dsp_MasterAndShadowAccessPoints(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_dsp_Exclusions(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_dsp_ContinuationReference(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-dsp-exp.h ---*/