change a whole bunch of ethereal into wireshark
[obnox/wireshark/wip.git] / epan / dissectors / packet-dap.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler    */
3 /* ./packet-dap.c                                                             */
4 /* ../../tools/asn2eth.py -X -b -e -p dap -c dap.cnf -s packet-dap-template dap.asn */
5
6 /* Input file: packet-dap-template.c */
7
8 #line 1 "packet-dap-template.c"
9 /* packet-dap.c
10  * Routines for X.511 (X.500 Directory Asbtract Service) and X.519 DAP  packet dissection
11  * Graeme Lunt 2005
12  *
13  * $Id$
14  *
15  * Wireshark - Network traffic analyzer
16  * By Gerald Combs <gerald@wireshark.org>
17  * Copyright 1998 Gerald Combs
18  *
19  * This program is free software; you can redistribute it and/or
20  * modify it under the terms of the GNU General Public License
21  * as published by the Free Software Foundation; either version 2
22  * of the License, or (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program; if not, write to the Free Software
31  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
32  */
33
34 #ifdef HAVE_CONFIG_H
35 # include "config.h"
36 #endif
37
38 #include <glib.h>
39 #include <epan/packet.h>
40 #include <epan/prefs.h>
41 #include <epan/conversation.h>
42
43 #include <stdio.h>
44 #include <string.h>
45
46 #include "packet-ber.h"
47 #include "packet-acse.h"
48 #include "packet-ros.h"
49
50 #include "packet-x509if.h"
51 #include "packet-x509af.h"
52 #include "packet-x509sat.h"
53 #include "packet-crmf.h"
54
55 #include "packet-dsp.h"
56 #include "packet-disp.h"
57 #include "packet-dap.h"
58 #include <epan/strutil.h>
59
60 /* we don't have a separate dissector for X519 - 
61    most of DAP is defined in X511 */
62 #define PNAME  "X.519 Directory Access Protocol"
63 #define PSNAME "DAP"
64 #define PFNAME "dap"
65
66 static guint global_dap_tcp_port = 102;
67 static guint tcp_port = 0;
68 static dissector_handle_t tpkt_handle = NULL;
69 void prefs_register_dap(void); /* forwad declaration for use in preferences registration */
70
71
72 /* Initialize the protocol and registered fields */
73 int proto_dap = -1;
74
75 static struct SESSION_DATA_STRUCTURE* session = NULL;
76
77
78 /*--- Included file: packet-dap-hf.c ---*/
79 #line 1 "packet-dap-hf.c"
80 static int hf_dap_securityParameters = -1;        /* SecurityParameters */
81 static int hf_dap_performer = -1;                 /* DistinguishedName */
82 static int hf_dap_aliasDereferenced = -1;         /* BOOLEAN */
83 static int hf_dap_notification = -1;              /* SEQUENCE_OF_Attribute */
84 static int hf_dap_notification_item = -1;         /* Attribute */
85 static int hf_dap_options = -1;                   /* ServiceControlOptions */
86 static int hf_dap_priority = -1;                  /* T_priority */
87 static int hf_dap_timeLimit = -1;                 /* INTEGER */
88 static int hf_dap_sizeLimit = -1;                 /* INTEGER */
89 static int hf_dap_scopeOfReferral = -1;           /* T_scopeOfReferral */
90 static int hf_dap_attributeSizeLimit = -1;        /* INTEGER */
91 static int hf_dap_manageDSAITPlaneRef = -1;       /* T_manageDSAITPlaneRef */
92 static int hf_dap_dsaName = -1;                   /* Name */
93 static int hf_dap_agreementID = -1;               /* AgreementID */
94 static int hf_dap_serviceType = -1;               /* OBJECT_IDENTIFIER */
95 static int hf_dap_userClass = -1;                 /* INTEGER */
96 static int hf_dap_attributes = -1;                /* T_attributes */
97 static int hf_dap_allUserAttributes = -1;         /* NULL */
98 static int hf_dap_select = -1;                    /* SET_OF_AttributeType */
99 static int hf_dap_select_item = -1;               /* AttributeType */
100 static int hf_dap_infoTypes = -1;                 /* T_infoTypes */
101 static int hf_dap_extraAttributes = -1;           /* T_extraAttributes */
102 static int hf_dap_allOperationalAttributes = -1;  /* NULL */
103 static int hf_dap_contextSelection = -1;          /* ContextSelection */
104 static int hf_dap_returnContexts = -1;            /* BOOLEAN */
105 static int hf_dap_familyReturn = -1;              /* FamilyReturn */
106 static int hf_dap_allContexts = -1;               /* NULL */
107 static int hf_dap_selectedContexts = -1;          /* SET_OF_TypeAndContextAssertion */
108 static int hf_dap_selectedContexts_item = -1;     /* TypeAndContextAssertion */
109 static int hf_dap_type = -1;                      /* AttributeType */
110 static int hf_dap_contextAssertions = -1;         /* T_contextAssertions */
111 static int hf_dap_preference = -1;                /* SEQUENCE_OF_ContextAssertion */
112 static int hf_dap_preference_item = -1;           /* ContextAssertion */
113 static int hf_dap_all = -1;                       /* SET_OF_ContextAssertion */
114 static int hf_dap_all_item = -1;                  /* ContextAssertion */
115 static int hf_dap_memberSelect = -1;              /* T_memberSelect */
116 static int hf_dap_familySelect = -1;              /* T_familySelect */
117 static int hf_dap_familySelect_item = -1;         /* OBJECT_IDENTIFIER */
118 static int hf_dap_name = -1;                      /* Name */
119 static int hf_dap_fromEntry = -1;                 /* BOOLEAN */
120 static int hf_dap_entry_information = -1;         /* T_information */
121 static int hf_dap_entry_information_item = -1;    /* EntryInformationItem */
122 static int hf_dap_attributeType = -1;             /* AttributeType */
123 static int hf_dap_attribute = -1;                 /* Attribute */
124 static int hf_dap_incompleteEntry = -1;           /* BOOLEAN */
125 static int hf_dap_partialName = -1;               /* BOOLEAN */
126 static int hf_dap_derivedEntry = -1;              /* BOOLEAN */
127 static int hf_dap_family_class = -1;              /* OBJECT_IDENTIFIER */
128 static int hf_dap_familyEntries = -1;             /* SEQUENCE_OF_FamilyEntry */
129 static int hf_dap_familyEntries_item = -1;        /* FamilyEntry */
130 static int hf_dap_rdn = -1;                       /* RelativeDistinguishedName */
131 static int hf_dap_family_information = -1;        /* FamilyInformation */
132 static int hf_dap_information_item = -1;          /* T_information_item */
133 static int hf_dap_family_info = -1;               /* SEQUENCE_OF_FamilyEntries */
134 static int hf_dap_family_info_item = -1;          /* FamilyEntries */
135 static int hf_dap_filter_item = -1;               /* FilterItem */
136 static int hf_dap_and = -1;                       /* SetOfFilter */
137 static int hf_dap_or = -1;                        /* SetOfFilter */
138 static int hf_dap_not = -1;                       /* Filter */
139 static int hf_dap_SetOfFilter_item = -1;          /* Filter */
140 static int hf_dap_equality = -1;                  /* AttributeValueAssertion */
141 static int hf_dap_substrings = -1;                /* T_substrings */
142 static int hf_dap_sunstringType = -1;             /* OBJECT_IDENTIFIER */
143 static int hf_dap_strings = -1;                   /* T_strings */
144 static int hf_dap_strings_item = -1;              /* T_strings_item */
145 static int hf_dap_initial = -1;                   /* T_initial */
146 static int hf_dap_any = -1;                       /* T_any */
147 static int hf_dap_final = -1;                     /* T_final */
148 static int hf_dap_control = -1;                   /* Attribute */
149 static int hf_dap_greaterOrEqual = -1;            /* AttributeValueAssertion */
150 static int hf_dap_lessOrEqual = -1;               /* AttributeValueAssertion */
151 static int hf_dap_present = -1;                   /* AttributeType */
152 static int hf_dap_approximateMatch = -1;          /* AttributeValueAssertion */
153 static int hf_dap_extensibleMatch = -1;           /* MatchingRuleAssertion */
154 static int hf_dap_contextPresent = -1;            /* AttributeTypeAssertion */
155 static int hf_dap_matchingRule = -1;              /* T_matchingRule */
156 static int hf_dap_matchingRule_item = -1;         /* OBJECT_IDENTIFIER */
157 static int hf_dap_matchValue = -1;                /* T_matchValue */
158 static int hf_dap_dnAttributes = -1;              /* BOOLEAN */
159 static int hf_dap_newRequest = -1;                /* T_newRequest */
160 static int hf_dap_pageSize = -1;                  /* INTEGER */
161 static int hf_dap_sortKeys = -1;                  /* SEQUENCE_OF_SortKey */
162 static int hf_dap_sortKeys_item = -1;             /* SortKey */
163 static int hf_dap_reverse = -1;                   /* BOOLEAN */
164 static int hf_dap_unmerged = -1;                  /* BOOLEAN */
165 static int hf_dap_queryReference = -1;            /* OCTET_STRING */
166 static int hf_dap_orderingRule = -1;              /* OBJECT_IDENTIFIER */
167 static int hf_dap_certification_path = -1;        /* CertificationPath */
168 static int hf_dap_distinguished_name = -1;        /* DistinguishedName */
169 static int hf_dap_time = -1;                      /* Time */
170 static int hf_dap_random = -1;                    /* BIT_STRING */
171 static int hf_dap_target = -1;                    /* ProtectionRequest */
172 static int hf_dap_response = -1;                  /* BIT_STRING */
173 static int hf_dap_operationCode = -1;             /* Code */
174 static int hf_dap_attributeCertificationPath = -1;  /* AttributeCertificationPath */
175 static int hf_dap_errorProtection = -1;           /* ErrorProtectionRequest */
176 static int hf_dap_errorCode = -1;                 /* Code */
177 static int hf_dap_utcTime = -1;                   /* UTCTime */
178 static int hf_dap_generalizedTime = -1;           /* GeneralizedTime */
179 static int hf_dap_credentials = -1;               /* Credentials */
180 static int hf_dap_versions = -1;                  /* Versions */
181 static int hf_dap_simple = -1;                    /* SimpleCredentials */
182 static int hf_dap_strong = -1;                    /* StrongCredentials */
183 static int hf_dap_externalProcedure = -1;         /* EXTERNAL */
184 static int hf_dap_spkm = -1;                      /* SpkmCredentials */
185 static int hf_dap_validity = -1;                  /* T_validity */
186 static int hf_dap_time1 = -1;                     /* T_time1 */
187 static int hf_dap_utc = -1;                       /* UTCTime */
188 static int hf_dap_gt = -1;                        /* GeneralizedTime */
189 static int hf_dap_time2 = -1;                     /* T_time2 */
190 static int hf_dap_random1 = -1;                   /* BIT_STRING */
191 static int hf_dap_random2 = -1;                   /* BIT_STRING */
192 static int hf_dap_password = -1;                  /* T_password */
193 static int hf_dap_unprotected = -1;               /* OCTET_STRING */
194 static int hf_dap_protected = -1;                 /* T_protected */
195 static int hf_dap_protectedPassword = -1;         /* OCTET_STRING */
196 static int hf_dap_algorithmIdentifier = -1;       /* AlgorithmIdentifier */
197 static int hf_dap_encrypted = -1;                 /* BIT_STRING */
198 static int hf_dap_bind_token = -1;                /* T_bind_token */
199 static int hf_dap_req = -1;                       /* T_req */
200 static int hf_dap_rep = -1;                       /* T_rep */
201 static int hf_dap_error = -1;                     /* T_error */
202 static int hf_dap_serviceProblem = -1;            /* ServiceProblem */
203 static int hf_dap_securityProblem = -1;           /* SecurityProblem */
204 static int hf_dap_unsignedDirectoryBindError = -1;  /* DirectoryBindErrorData */
205 static int hf_dap_signedDirectoryBindError = -1;  /* T_signedDirectoryBindError */
206 static int hf_dap_directoryBindError = -1;        /* DirectoryBindErrorData */
207 static int hf_dap_object = -1;                    /* Name */
208 static int hf_dap_selection = -1;                 /* EntryInformationSelection */
209 static int hf_dap_modifyRightsRequest = -1;       /* BOOLEAN */
210 static int hf_dap_serviceControls = -1;           /* ServiceControls */
211 static int hf_dap_requestor = -1;                 /* DistinguishedName */
212 static int hf_dap_operationProgress = -1;         /* OperationProgress */
213 static int hf_dap_aliasedRDNs = -1;               /* INTEGER */
214 static int hf_dap_criticalExtensions = -1;        /* BIT_STRING */
215 static int hf_dap_referenceType = -1;             /* ReferenceType */
216 static int hf_dap_entryOnly = -1;                 /* BOOLEAN */
217 static int hf_dap_nameResolveOnMaster = -1;       /* BOOLEAN */
218 static int hf_dap_operationContexts = -1;         /* ContextSelection */
219 static int hf_dap_familyGrouping = -1;            /* FamilyGrouping */
220 static int hf_dap_rdnSequence = -1;               /* RDNSequence */
221 static int hf_dap_unsignedReadArgument = -1;      /* ReadArgumentData */
222 static int hf_dap_signedReadArgument = -1;        /* T_signedReadArgument */
223 static int hf_dap_readArgument = -1;              /* ReadArgumentData */
224 static int hf_dap_entry = -1;                     /* EntryInformation */
225 static int hf_dap_modifyRights = -1;              /* ModifyRights */
226 static int hf_dap_unsignedReadResult = -1;        /* ReadResultData */
227 static int hf_dap_signedReadResult = -1;          /* T_signedReadResult */
228 static int hf_dap_readResult = -1;                /* ReadResultData */
229 static int hf_dap_ModifyRights_item = -1;         /* ModifyRights_item */
230 static int hf_dap_item = -1;                      /* T_item */
231 static int hf_dap_item_entry = -1;                /* NULL */
232 static int hf_dap_attribute_type = -1;            /* AttributeType */
233 static int hf_dap_value_assertion = -1;           /* AttributeValueAssertion */
234 static int hf_dap_permission = -1;                /* T_permission */
235 static int hf_dap_purported = -1;                 /* AttributeValueAssertion */
236 static int hf_dap_unsignedCompareArgument = -1;   /* CompareArgumentData */
237 static int hf_dap_signedCompareArgument = -1;     /* T_signedCompareArgument */
238 static int hf_dap_compareArgument = -1;           /* CompareArgumentData */
239 static int hf_dap_matched = -1;                   /* BOOLEAN */
240 static int hf_dap_matchedSubtype = -1;            /* AttributeType */
241 static int hf_dap_unsignedCompareResult = -1;     /* CompareResultData */
242 static int hf_dap_signedCompareResult = -1;       /* T_signedCompareResult */
243 static int hf_dap_compareResult = -1;             /* CompareResultData */
244 static int hf_dap_invokeID = -1;                  /* InvokeId */
245 static int hf_dap_unsignedAbandonArgument = -1;   /* AbandonArgumentData */
246 static int hf_dap_signedAbandonArgument = -1;     /* T_signedAbandonArgument */
247 static int hf_dap_abandonArgument = -1;           /* AbandonArgumentData */
248 static int hf_dap_null = -1;                      /* NULL */
249 static int hf_dap_abandon_information = -1;       /* AbandonInformation */
250 static int hf_dap_unsignedAbandonResult = -1;     /* AbandonResultData */
251 static int hf_dap_signedAbandonResult = -1;       /* T_signedAbandonResult */
252 static int hf_dap_abandonResult = -1;             /* AbandonResultData */
253 static int hf_dap_pagedResults = -1;              /* PagedResultsRequest */
254 static int hf_dap_listFamily = -1;                /* BOOLEAN */
255 static int hf_dap_unsignedListArgument = -1;      /* ListArgumentData */
256 static int hf_dap_signedListArgument = -1;        /* T_signedListArgument */
257 static int hf_dap_listArgument = -1;              /* ListArgumentData */
258 static int hf_dap_listInfo = -1;                  /* T_listInfo */
259 static int hf_dap_subordinates = -1;              /* T_subordinates */
260 static int hf_dap_subordinates_item = -1;         /* T_subordinates_item */
261 static int hf_dap_aliasEntry = -1;                /* BOOLEAN */
262 static int hf_dap_partialOutcomeQualifier = -1;   /* PartialOutcomeQualifier */
263 static int hf_dap_uncorrelatedListInfo = -1;      /* SET_OF_ListResult */
264 static int hf_dap_uncorrelatedListInfo_item = -1;  /* ListResult */
265 static int hf_dap_unsignedListResult = -1;        /* ListResultData */
266 static int hf_dap_signedListResult = -1;          /* T_signedListResult */
267 static int hf_dap_listResult = -1;                /* ListResultData */
268 static int hf_dap_limitProblem = -1;              /* LimitProblem */
269 static int hf_dap_unexplored = -1;                /* SET_OF_ContinuationReference */
270 static int hf_dap_unexplored_item = -1;           /* ContinuationReference */
271 static int hf_dap_unavailableCriticalExtensions = -1;  /* BOOLEAN */
272 static int hf_dap_unknownErrors = -1;             /* T_unknownErrors */
273 static int hf_dap_unknownErrors_item = -1;        /* OBJECT_IDENTIFIER */
274 static int hf_dap_overspecFilter = -1;            /* Filter */
275 static int hf_dap_entryCount = -1;                /* T_entryCount */
276 static int hf_dap_bestEstimate = -1;              /* INTEGER */
277 static int hf_dap_lowEstimate = -1;               /* INTEGER */
278 static int hf_dap_baseObject = -1;                /* Name */
279 static int hf_dap_subset = -1;                    /* T_subset */
280 static int hf_dap_filter = -1;                    /* Filter */
281 static int hf_dap_searchAliases = -1;             /* BOOLEAN */
282 static int hf_dap_matchedValuesOnly = -1;         /* BOOLEAN */
283 static int hf_dap_extendedFilter = -1;            /* Filter */
284 static int hf_dap_checkOverspecified = -1;        /* BOOLEAN */
285 static int hf_dap_relaxation = -1;                /* RelaxationPolicy */
286 static int hf_dap_extendedArea = -1;              /* INTEGER */
287 static int hf_dap_hierarchySelections = -1;       /* HierarchySelections */
288 static int hf_dap_searchControlOptions = -1;      /* SearchControlOptions */
289 static int hf_dap_joinArguments = -1;             /* SEQUENCE_SIZE_1_MAX_OF_JoinArgument */
290 static int hf_dap_joinArguments_item = -1;        /* JoinArgument */
291 static int hf_dap_joinType = -1;                  /* T_joinType */
292 static int hf_dap_unsignedSearchArgument = -1;    /* SearchArgumentData */
293 static int hf_dap_signedSearchArgument = -1;      /* T_signedSearchArgument */
294 static int hf_dap_searchArgument = -1;            /* SearchArgumentData */
295 static int hf_dap_joinBaseObject = -1;            /* Name */
296 static int hf_dap_domainLocalID = -1;             /* DomainLocalID */
297 static int hf_dap_joinSubset = -1;                /* T_joinSubset */
298 static int hf_dap_joinFilter = -1;                /* Filter */
299 static int hf_dap_joinAttributes = -1;            /* SEQUENCE_OF_JoinAttPair */
300 static int hf_dap_joinAttributes_item = -1;       /* JoinAttPair */
301 static int hf_dap_joinSelection = -1;             /* EntryInformationSelection */
302 static int hf_dap_baseAtt = -1;                   /* AttributeType */
303 static int hf_dap_joinAtt = -1;                   /* AttributeType */
304 static int hf_dap_joinContext = -1;               /* SEQUENCE_OF_JoinContextType */
305 static int hf_dap_joinContext_item = -1;          /* JoinContextType */
306 static int hf_dap_searchInfo = -1;                /* T_searchInfo */
307 static int hf_dap_entries = -1;                   /* SET_OF_EntryInformation */
308 static int hf_dap_entries_item = -1;              /* EntryInformation */
309 static int hf_dap_altMatching = -1;               /* BOOLEAN */
310 static int hf_dap_uncorrelatedSearchInfo = -1;    /* SET_OF_SearchResult */
311 static int hf_dap_uncorrelatedSearchInfo_item = -1;  /* SearchResult */
312 static int hf_dap_unsignedSearchResult = -1;      /* SearchResultData */
313 static int hf_dap_signedSearchResult = -1;        /* T_signedSearchResult */
314 static int hf_dap_searchResult = -1;              /* SearchResultData */
315 static int hf_dap_add_entry = -1;                 /* SET_OF_Attribute */
316 static int hf_dap_entry_item = -1;                /* Attribute */
317 static int hf_dap_targetSystem = -1;              /* AccessPoint */
318 static int hf_dap_unsignedAddEntryArgument = -1;  /* AddEntryArgumentData */
319 static int hf_dap_signedAddEntryArgument = -1;    /* T_signedAddEntryArgument */
320 static int hf_dap_addEntryArgument = -1;          /* AddEntryArgumentData */
321 static int hf_dap_add_entry_information = -1;     /* AddEntryInformation */
322 static int hf_dap_unsignedAddEntryResult = -1;    /* AddEntryResultData */
323 static int hf_dap_signedAddEntryResult = -1;      /* T_signedAddEntryResult */
324 static int hf_dap_addEntryResult = -1;            /* AddEntryResultData */
325 static int hf_dap_unsignedRemoveEntryArgument = -1;  /* RemoveEntryArgumentData */
326 static int hf_dap_signedRemoveEntryArgument = -1;  /* T_signedRemoveEntryArgument */
327 static int hf_dap_removeEntryArgument = -1;       /* RemoveEntryArgumentData */
328 static int hf_dap_remove_entry_information = -1;  /* RemoveEntryInformation */
329 static int hf_dap_unsignedRemoveEntryResult = -1;  /* RemoveEntryResultData */
330 static int hf_dap_signedRemoveEntryResult = -1;   /* T_signedRemoveEntryResult */
331 static int hf_dap_removeEntryResult = -1;         /* RemoveEntryResultData */
332 static int hf_dap_changes = -1;                   /* SEQUENCE_OF_EntryModification */
333 static int hf_dap_changes_item = -1;              /* EntryModification */
334 static int hf_dap_unsignedModifyEntryArgument = -1;  /* ModifyEntryArgumentData */
335 static int hf_dap_signedModifyEntryArgument = -1;  /* T_signedModifyEntryArgument */
336 static int hf_dap_modifyEntryArgument = -1;       /* ModifyEntryArgumentData */
337 static int hf_dap_modify_entry_information = -1;  /* ModifyEntryInformation */
338 static int hf_dap_unsignedModifyEntryResult = -1;  /* ModifyEntryResultData */
339 static int hf_dap_signedModifyEntryResult = -1;   /* T_signedModifyEntryResult */
340 static int hf_dap_modifyEntryResult = -1;         /* ModifyEntryResultData */
341 static int hf_dap_addAttribute = -1;              /* Attribute */
342 static int hf_dap_removeAttribute = -1;           /* AttributeType */
343 static int hf_dap_addValues = -1;                 /* Attribute */
344 static int hf_dap_removeValues = -1;              /* Attribute */
345 static int hf_dap_alterValues = -1;               /* AttributeTypeAndValue */
346 static int hf_dap_resetValue = -1;                /* AttributeType */
347 static int hf_dap_newRDN = -1;                    /* RelativeDistinguishedName */
348 static int hf_dap_deleteOldRDN = -1;              /* BOOLEAN */
349 static int hf_dap_newSuperior = -1;               /* DistinguishedName */
350 static int hf_dap_modify_dn_information = -1;     /* ModifyDNInformation */
351 static int hf_dap_unsignedModifyDNResult = -1;    /* ModifyDNResultData */
352 static int hf_dap_signedModifyDNResult = -1;      /* T_signedModifyDNResult */
353 static int hf_dap_modifyDNResult = -1;            /* ModifyDNResultData */
354 static int hf_dap_unsignedAbandoned = -1;         /* AbandonedData */
355 static int hf_dap_signedAbandoned = -1;           /* T_signedAbandoned */
356 static int hf_dap_abandoned = -1;                 /* AbandonedData */
357 static int hf_dap_abandon_failed_problem = -1;    /* AbandonProblem */
358 static int hf_dap_operation = -1;                 /* InvokeId */
359 static int hf_dap_unsignedAbandonFailedError = -1;  /* AbandonFailedErrorData */
360 static int hf_dap_signedAbandonFailedError = -1;  /* T_signedAbandonFailedError */
361 static int hf_dap_abandonFailedError = -1;        /* AbandonFailedErrorData */
362 static int hf_dap_problems = -1;                  /* T_problems */
363 static int hf_dap_problems_item = -1;             /* T_problems_item */
364 static int hf_dap_attribute_error_problem = -1;   /* AttributeProblem */
365 static int hf_dap_value = -1;                     /* AttributeValue */
366 static int hf_dap_unsignedAttributeError = -1;    /* AttributeErrorData */
367 static int hf_dap_signedAttributeError = -1;      /* T_signedAttributeError */
368 static int hf_dap_attributeError = -1;            /* AttributeErrorData */
369 static int hf_dap_name_error_problem = -1;        /* NameProblem */
370 static int hf_dap_matched_name = -1;              /* Name */
371 static int hf_dap_unsignedNameError = -1;         /* NameErrorData */
372 static int hf_dap_signedNameError = -1;           /* T_signedNameError */
373 static int hf_dap_nameError = -1;                 /* NameErrorData */
374 static int hf_dap_candidate = -1;                 /* ContinuationReference */
375 static int hf_dap_unsignedReferral = -1;          /* ReferralData */
376 static int hf_dap_signedReferral = -1;            /* T_signedReferral */
377 static int hf_dap_referral = -1;                  /* ReferralData */
378 static int hf_dap_security_error_problem = -1;    /* SecurityProblem */
379 static int hf_dap_spkmInfo = -1;                  /* T_spkmInfo */
380 static int hf_dap_unsignedSecurityError = -1;     /* SecurityErrorData */
381 static int hf_dap_signedSecurityError = -1;       /* T_signedSecurityError */
382 static int hf_dap_securityErrorData = -1;         /* SecurityErrorData */
383 static int hf_dap_service_error_problem = -1;     /* ServiceProblem */
384 static int hf_dap_unsignedServiceError = -1;      /* ServiceErrorData */
385 static int hf_dap_signedServiceError = -1;        /* T_signedServiceError */
386 static int hf_dap_serviceError = -1;              /* ServiceErrorData */
387 static int hf_dap_update_error_problem = -1;      /* UpdateProblem */
388 static int hf_dap_attributeInfo = -1;             /* T_attributeInfo */
389 static int hf_dap_attributeInfo_item = -1;        /* T_attributeInfo_item */
390 static int hf_dap_unsignedUpdateError = -1;       /* UpdateErrorData */
391 static int hf_dap_signedUpdateError = -1;         /* T_signedUpdateError */
392 static int hf_dap_updateError = -1;               /* UpdateErrorData */
393 /* named bits */
394 static int hf_dap_ServiceControlOptions_preferChaining = -1;
395 static int hf_dap_ServiceControlOptions_chainingProhibited = -1;
396 static int hf_dap_ServiceControlOptions_localScope = -1;
397 static int hf_dap_ServiceControlOptions_dontUseCopy = -1;
398 static int hf_dap_ServiceControlOptions_dontDereferenceAliases = -1;
399 static int hf_dap_ServiceControlOptions_subentries = -1;
400 static int hf_dap_ServiceControlOptions_copyShallDo = -1;
401 static int hf_dap_ServiceControlOptions_partialNameResolution = -1;
402 static int hf_dap_ServiceControlOptions_manageDSAIT = -1;
403 static int hf_dap_ServiceControlOptions_noSubtypeMatch = -1;
404 static int hf_dap_ServiceControlOptions_noSubtypeSelection = -1;
405 static int hf_dap_ServiceControlOptions_countFamily = -1;
406 static int hf_dap_Versions_v1 = -1;
407 static int hf_dap_Versions_v2 = -1;
408 static int hf_dap_T_permission_add = -1;
409 static int hf_dap_T_permission_remove = -1;
410 static int hf_dap_T_permission_rename = -1;
411 static int hf_dap_T_permission_move = -1;
412 static int hf_dap_HierarchySelections_self = -1;
413 static int hf_dap_HierarchySelections_children = -1;
414 static int hf_dap_HierarchySelections_parent = -1;
415 static int hf_dap_HierarchySelections_hierarchy = -1;
416 static int hf_dap_HierarchySelections_top = -1;
417 static int hf_dap_HierarchySelections_subtree = -1;
418 static int hf_dap_HierarchySelections_siblings = -1;
419 static int hf_dap_HierarchySelections_siblingChildren = -1;
420 static int hf_dap_HierarchySelections_siblingSubtree = -1;
421 static int hf_dap_HierarchySelections_all = -1;
422 static int hf_dap_SearchControlOptions_searchAliases = -1;
423 static int hf_dap_SearchControlOptions_matchedValuesOnly = -1;
424 static int hf_dap_SearchControlOptions_checkOverspecified = -1;
425 static int hf_dap_SearchControlOptions_performExactly = -1;
426 static int hf_dap_SearchControlOptions_includeAllAreas = -1;
427 static int hf_dap_SearchControlOptions_noSystemRelaxation = -1;
428 static int hf_dap_SearchControlOptions_dnAttribute = -1;
429 static int hf_dap_SearchControlOptions_matchOnResidualName = -1;
430 static int hf_dap_SearchControlOptions_entryCount = -1;
431 static int hf_dap_SearchControlOptions_useSubset = -1;
432 static int hf_dap_SearchControlOptions_separateFamilyMembers = -1;
433 static int hf_dap_SearchControlOptions_searchFamily = -1;
434
435 /*--- End of included file: packet-dap-hf.c ---*/
436 #line 70 "packet-dap-template.c"
437
438 /* Initialize the subtree pointers */
439 static gint ett_dap = -1;
440
441 /*--- Included file: packet-dap-ett.c ---*/
442 #line 1 "packet-dap-ett.c"
443 static gint ett_dap_CommonResults = -1;
444 static gint ett_dap_SEQUENCE_OF_Attribute = -1;
445 static gint ett_dap_ServiceControls = -1;
446 static gint ett_dap_T_manageDSAITPlaneRef = -1;
447 static gint ett_dap_ServiceControlOptions = -1;
448 static gint ett_dap_EntryInformationSelection = -1;
449 static gint ett_dap_T_attributes = -1;
450 static gint ett_dap_SET_OF_AttributeType = -1;
451 static gint ett_dap_T_extraAttributes = -1;
452 static gint ett_dap_ContextSelection = -1;
453 static gint ett_dap_SET_OF_TypeAndContextAssertion = -1;
454 static gint ett_dap_TypeAndContextAssertion = -1;
455 static gint ett_dap_T_contextAssertions = -1;
456 static gint ett_dap_SEQUENCE_OF_ContextAssertion = -1;
457 static gint ett_dap_SET_OF_ContextAssertion = -1;
458 static gint ett_dap_FamilyReturn = -1;
459 static gint ett_dap_T_familySelect = -1;
460 static gint ett_dap_EntryInformation = -1;
461 static gint ett_dap_T_information = -1;
462 static gint ett_dap_EntryInformationItem = -1;
463 static gint ett_dap_FamilyEntries = -1;
464 static gint ett_dap_SEQUENCE_OF_FamilyEntry = -1;
465 static gint ett_dap_FamilyEntry = -1;
466 static gint ett_dap_FamilyInformation = -1;
467 static gint ett_dap_T_information_item = -1;
468 static gint ett_dap_SEQUENCE_OF_FamilyEntries = -1;
469 static gint ett_dap_Filter = -1;
470 static gint ett_dap_SetOfFilter = -1;
471 static gint ett_dap_FilterItem = -1;
472 static gint ett_dap_T_substrings = -1;
473 static gint ett_dap_T_strings = -1;
474 static gint ett_dap_T_strings_item = -1;
475 static gint ett_dap_MatchingRuleAssertion = -1;
476 static gint ett_dap_T_matchingRule = -1;
477 static gint ett_dap_PagedResultsRequest = -1;
478 static gint ett_dap_T_newRequest = -1;
479 static gint ett_dap_SEQUENCE_OF_SortKey = -1;
480 static gint ett_dap_SortKey = -1;
481 static gint ett_dap_SecurityParameters = -1;
482 static gint ett_dap_Time = -1;
483 static gint ett_dap_DirectoryBindArgument = -1;
484 static gint ett_dap_Credentials = -1;
485 static gint ett_dap_SimpleCredentials = -1;
486 static gint ett_dap_T_validity = -1;
487 static gint ett_dap_T_time1 = -1;
488 static gint ett_dap_T_time2 = -1;
489 static gint ett_dap_T_password = -1;
490 static gint ett_dap_T_protected = -1;
491 static gint ett_dap_StrongCredentials = -1;
492 static gint ett_dap_SpkmCredentials = -1;
493 static gint ett_dap_Versions = -1;
494 static gint ett_dap_DirectoryBindErrorData = -1;
495 static gint ett_dap_T_error = -1;
496 static gint ett_dap_DirectoryBindError = -1;
497 static gint ett_dap_T_signedDirectoryBindError = -1;
498 static gint ett_dap_ReadArgumentData = -1;
499 static gint ett_dap_Name = -1;
500 static gint ett_dap_ReadArgument = -1;
501 static gint ett_dap_T_signedReadArgument = -1;
502 static gint ett_dap_ReadResultData = -1;
503 static gint ett_dap_ReadResult = -1;
504 static gint ett_dap_T_signedReadResult = -1;
505 static gint ett_dap_ModifyRights = -1;
506 static gint ett_dap_ModifyRights_item = -1;
507 static gint ett_dap_T_item = -1;
508 static gint ett_dap_T_permission = -1;
509 static gint ett_dap_CompareArgumentData = -1;
510 static gint ett_dap_CompareArgument = -1;
511 static gint ett_dap_T_signedCompareArgument = -1;
512 static gint ett_dap_CompareResultData = -1;
513 static gint ett_dap_CompareResult = -1;
514 static gint ett_dap_T_signedCompareResult = -1;
515 static gint ett_dap_AbandonArgumentData = -1;
516 static gint ett_dap_AbandonArgument = -1;
517 static gint ett_dap_T_signedAbandonArgument = -1;
518 static gint ett_dap_AbandonResultData = -1;
519 static gint ett_dap_AbandonResult = -1;
520 static gint ett_dap_AbandonInformation = -1;
521 static gint ett_dap_T_signedAbandonResult = -1;
522 static gint ett_dap_ListArgumentData = -1;
523 static gint ett_dap_ListArgument = -1;
524 static gint ett_dap_T_signedListArgument = -1;
525 static gint ett_dap_ListResultData = -1;
526 static gint ett_dap_T_listInfo = -1;
527 static gint ett_dap_T_subordinates = -1;
528 static gint ett_dap_T_subordinates_item = -1;
529 static gint ett_dap_SET_OF_ListResult = -1;
530 static gint ett_dap_ListResult = -1;
531 static gint ett_dap_T_signedListResult = -1;
532 static gint ett_dap_PartialOutcomeQualifier = -1;
533 static gint ett_dap_SET_OF_ContinuationReference = -1;
534 static gint ett_dap_T_unknownErrors = -1;
535 static gint ett_dap_T_entryCount = -1;
536 static gint ett_dap_SearchArgumentData = -1;
537 static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinArgument = -1;
538 static gint ett_dap_SearchArgument = -1;
539 static gint ett_dap_T_signedSearchArgument = -1;
540 static gint ett_dap_HierarchySelections = -1;
541 static gint ett_dap_SearchControlOptions = -1;
542 static gint ett_dap_JoinArgument = -1;
543 static gint ett_dap_SEQUENCE_OF_JoinAttPair = -1;
544 static gint ett_dap_JoinAttPair = -1;
545 static gint ett_dap_SEQUENCE_OF_JoinContextType = -1;
546 static gint ett_dap_SearchResultData = -1;
547 static gint ett_dap_T_searchInfo = -1;
548 static gint ett_dap_SET_OF_EntryInformation = -1;
549 static gint ett_dap_SET_OF_SearchResult = -1;
550 static gint ett_dap_SearchResult = -1;
551 static gint ett_dap_T_signedSearchResult = -1;
552 static gint ett_dap_AddEntryArgumentData = -1;
553 static gint ett_dap_SET_OF_Attribute = -1;
554 static gint ett_dap_AddEntryArgument = -1;
555 static gint ett_dap_T_signedAddEntryArgument = -1;
556 static gint ett_dap_AddEntryResultData = -1;
557 static gint ett_dap_AddEntryResult = -1;
558 static gint ett_dap_AddEntryInformation = -1;
559 static gint ett_dap_T_signedAddEntryResult = -1;
560 static gint ett_dap_RemoveEntryArgumentData = -1;
561 static gint ett_dap_RemoveEntryArgument = -1;
562 static gint ett_dap_T_signedRemoveEntryArgument = -1;
563 static gint ett_dap_RemoveEntryResultData = -1;
564 static gint ett_dap_RemoveEntryResult = -1;
565 static gint ett_dap_RemoveEntryInformation = -1;
566 static gint ett_dap_T_signedRemoveEntryResult = -1;
567 static gint ett_dap_ModifyEntryArgumentData = -1;
568 static gint ett_dap_SEQUENCE_OF_EntryModification = -1;
569 static gint ett_dap_ModifyEntryArgument = -1;
570 static gint ett_dap_T_signedModifyEntryArgument = -1;
571 static gint ett_dap_ModifyEntryResultData = -1;
572 static gint ett_dap_ModifyEntryResult = -1;
573 static gint ett_dap_ModifyEntryInformation = -1;
574 static gint ett_dap_T_signedModifyEntryResult = -1;
575 static gint ett_dap_EntryModification = -1;
576 static gint ett_dap_ModifyDNArgument = -1;
577 static gint ett_dap_ModifyDNResultData = -1;
578 static gint ett_dap_ModifyDNResult = -1;
579 static gint ett_dap_ModifyDNInformation = -1;
580 static gint ett_dap_T_signedModifyDNResult = -1;
581 static gint ett_dap_AbandonedData = -1;
582 static gint ett_dap_Abandoned = -1;
583 static gint ett_dap_T_signedAbandoned = -1;
584 static gint ett_dap_AbandonFailedErrorData = -1;
585 static gint ett_dap_AbandonFailedError = -1;
586 static gint ett_dap_T_signedAbandonFailedError = -1;
587 static gint ett_dap_AttributeErrorData = -1;
588 static gint ett_dap_T_problems = -1;
589 static gint ett_dap_T_problems_item = -1;
590 static gint ett_dap_AttributeError = -1;
591 static gint ett_dap_T_signedAttributeError = -1;
592 static gint ett_dap_NameErrorData = -1;
593 static gint ett_dap_NameError = -1;
594 static gint ett_dap_T_signedNameError = -1;
595 static gint ett_dap_ReferralData = -1;
596 static gint ett_dap_Referral = -1;
597 static gint ett_dap_T_signedReferral = -1;
598 static gint ett_dap_SecurityErrorData = -1;
599 static gint ett_dap_SecurityError = -1;
600 static gint ett_dap_T_signedSecurityError = -1;
601 static gint ett_dap_ServiceErrorData = -1;
602 static gint ett_dap_ServiceError = -1;
603 static gint ett_dap_T_signedServiceError = -1;
604 static gint ett_dap_UpdateErrorData = -1;
605 static gint ett_dap_T_attributeInfo = -1;
606 static gint ett_dap_T_attributeInfo_item = -1;
607 static gint ett_dap_UpdateError = -1;
608 static gint ett_dap_T_signedUpdateError = -1;
609
610 /*--- End of included file: packet-dap-ett.c ---*/
611 #line 74 "packet-dap-template.c"
612
613
614 /*--- Included file: packet-dap-fn.c ---*/
615 #line 1 "packet-dap-fn.c"
616 /*--- Cyclic dependencies ---*/
617
618 /* FamilyEntries -> FamilyEntries/familyEntries -> FamilyEntry -> FamilyEntry/family-info -> FamilyEntries */
619 static int dissect_dap_FamilyEntries(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
620
621 static int dissect_family_info_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
622   return dissect_dap_FamilyEntries(FALSE, tvb, offset, pinfo, tree, hf_dap_family_info_item);
623 }
624
625 /* Filter -> SetOfFilter -> Filter */
626 /* Filter -> Filter */
627 int dissect_dap_Filter(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
628
629 static int dissect_not(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
630   return dissect_dap_Filter(FALSE, tvb, offset, pinfo, tree, hf_dap_not);
631 }
632 static int dissect_SetOfFilter_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
633   return dissect_dap_Filter(FALSE, tvb, offset, pinfo, tree, hf_dap_SetOfFilter_item);
634 }
635 static int dissect_overspecFilter(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
636   return dissect_dap_Filter(FALSE, tvb, offset, pinfo, tree, hf_dap_overspecFilter);
637 }
638 static int dissect_filter(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
639   return dissect_dap_Filter(FALSE, tvb, offset, pinfo, tree, hf_dap_filter);
640 }
641 static int dissect_extendedFilter(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
642   return dissect_dap_Filter(FALSE, tvb, offset, pinfo, tree, hf_dap_extendedFilter);
643 }
644 static int dissect_joinFilter(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
645   return dissect_dap_Filter(FALSE, tvb, offset, pinfo, tree, hf_dap_joinFilter);
646 }
647
648 /* ListResultData -> ListResultData/uncorrelatedListInfo -> ListResult -> ListResultData */
649 /* ListResultData -> ListResultData/uncorrelatedListInfo -> ListResult -> ListResult/signedListResult -> ListResultData */
650 static int dissect_dap_ListResultData(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
651
652 static int dissect_unsignedListResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
653   return dissect_dap_ListResultData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedListResult);
654 }
655 static int dissect_listResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
656   return dissect_dap_ListResultData(FALSE, tvb, offset, pinfo, tree, hf_dap_listResult);
657 }
658
659 /* SearchResultData -> SearchResultData/uncorrelatedSearchInfo -> SearchResult -> SearchResultData */
660 /* SearchResultData -> SearchResultData/uncorrelatedSearchInfo -> SearchResult -> SearchResult/signedSearchResult -> SearchResultData */
661 static int dissect_dap_SearchResultData(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
662
663 static int dissect_unsignedSearchResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
664   return dissect_dap_SearchResultData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedSearchResult);
665 }
666 static int dissect_searchResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
667   return dissect_dap_SearchResultData(FALSE, tvb, offset, pinfo, tree, hf_dap_searchResult);
668 }
669
670
671 /*--- Fields for imported types ---*/
672
673 static int dissect_performer(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
674   return dissect_x509if_DistinguishedName(FALSE, tvb, offset, pinfo, tree, hf_dap_performer);
675 }
676 static int dissect_notification_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
677   return dissect_x509if_Attribute(FALSE, tvb, offset, pinfo, tree, hf_dap_notification_item);
678 }
679 static int dissect_agreementID(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
680   return dissect_disp_AgreementID(FALSE, tvb, offset, pinfo, tree, hf_dap_agreementID);
681 }
682 static int dissect_select_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
683   return dissect_x509if_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_dap_select_item);
684 }
685 static int dissect_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
686   return dissect_x509if_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_dap_type);
687 }
688 static int dissect_preference_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
689   return dissect_x509if_ContextAssertion(FALSE, tvb, offset, pinfo, tree, hf_dap_preference_item);
690 }
691 static int dissect_all_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
692   return dissect_x509if_ContextAssertion(FALSE, tvb, offset, pinfo, tree, hf_dap_all_item);
693 }
694 static int dissect_attributeType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
695   return dissect_x509if_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_dap_attributeType);
696 }
697 static int dissect_attribute(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
698   return dissect_x509if_Attribute(FALSE, tvb, offset, pinfo, tree, hf_dap_attribute);
699 }
700 static int dissect_rdn(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
701   return dissect_x509if_RelativeDistinguishedName(FALSE, tvb, offset, pinfo, tree, hf_dap_rdn);
702 }
703 static int dissect_equality(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
704   return dissect_x509if_AttributeValueAssertion(FALSE, tvb, offset, pinfo, tree, hf_dap_equality);
705 }
706 static int dissect_control(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
707   return dissect_x509if_Attribute(FALSE, tvb, offset, pinfo, tree, hf_dap_control);
708 }
709 static int dissect_greaterOrEqual(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
710   return dissect_x509if_AttributeValueAssertion(FALSE, tvb, offset, pinfo, tree, hf_dap_greaterOrEqual);
711 }
712 static int dissect_lessOrEqual(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
713   return dissect_x509if_AttributeValueAssertion(FALSE, tvb, offset, pinfo, tree, hf_dap_lessOrEqual);
714 }
715 static int dissect_present(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
716   return dissect_x509if_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_dap_present);
717 }
718 static int dissect_approximateMatch(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
719   return dissect_x509if_AttributeValueAssertion(FALSE, tvb, offset, pinfo, tree, hf_dap_approximateMatch);
720 }
721 static int dissect_contextPresent(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
722   return dissect_x509if_AttributeTypeAssertion(FALSE, tvb, offset, pinfo, tree, hf_dap_contextPresent);
723 }
724 static int dissect_certification_path(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
725   return dissect_x509af_CertificationPath(FALSE, tvb, offset, pinfo, tree, hf_dap_certification_path);
726 }
727 static int dissect_distinguished_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
728   return dissect_x509if_DistinguishedName(FALSE, tvb, offset, pinfo, tree, hf_dap_distinguished_name);
729 }
730 static int dissect_operationCode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
731   return dissect_ros_Code(FALSE, tvb, offset, pinfo, tree, hf_dap_operationCode);
732 }
733 static int dissect_attributeCertificationPath(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
734   return dissect_x509af_AttributeCertificationPath(FALSE, tvb, offset, pinfo, tree, hf_dap_attributeCertificationPath);
735 }
736 static int dissect_errorCode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
737   return dissect_ros_Code(FALSE, tvb, offset, pinfo, tree, hf_dap_errorCode);
738 }
739 static int dissect_externalProcedure(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
740   return dissect_acse_EXTERNAL(FALSE, tvb, offset, pinfo, tree, hf_dap_externalProcedure);
741 }
742 static int dissect_algorithmIdentifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
743   return dissect_x509af_AlgorithmIdentifier(FALSE, tvb, offset, pinfo, tree, hf_dap_algorithmIdentifier);
744 }
745 static int dissect_requestor(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
746   return dissect_x509if_DistinguishedName(FALSE, tvb, offset, pinfo, tree, hf_dap_requestor);
747 }
748 static int dissect_operationProgress(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
749   return dissect_dsp_OperationProgress(FALSE, tvb, offset, pinfo, tree, hf_dap_operationProgress);
750 }
751 static int dissect_referenceType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
752   return dissect_dsp_ReferenceType(FALSE, tvb, offset, pinfo, tree, hf_dap_referenceType);
753 }
754 static int dissect_rdnSequence(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
755   return dissect_x509if_RDNSequence(FALSE, tvb, offset, pinfo, tree, hf_dap_rdnSequence);
756 }
757 static int dissect_attribute_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
758   return dissect_x509if_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_dap_attribute_type);
759 }
760 static int dissect_value_assertion(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
761   return dissect_x509if_AttributeValueAssertion(FALSE, tvb, offset, pinfo, tree, hf_dap_value_assertion);
762 }
763 static int dissect_purported(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
764   return dissect_x509if_AttributeValueAssertion(FALSE, tvb, offset, pinfo, tree, hf_dap_purported);
765 }
766 static int dissect_matchedSubtype(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
767   return dissect_x509if_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_dap_matchedSubtype);
768 }
769 static int dissect_invokeID(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
770   return dissect_ros_InvokeId(FALSE, tvb, offset, pinfo, tree, hf_dap_invokeID);
771 }
772 static int dissect_unexplored_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
773   return dissect_dsp_ContinuationReference(FALSE, tvb, offset, pinfo, tree, hf_dap_unexplored_item);
774 }
775 static int dissect_relaxation(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
776   return dissect_x509if_RelaxationPolicy(FALSE, tvb, offset, pinfo, tree, hf_dap_relaxation);
777 }
778 static int dissect_baseAtt(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
779   return dissect_x509if_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_dap_baseAtt);
780 }
781 static int dissect_joinAtt(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
782   return dissect_x509if_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_dap_joinAtt);
783 }
784 static int dissect_entry_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
785   return dissect_x509if_Attribute(FALSE, tvb, offset, pinfo, tree, hf_dap_entry_item);
786 }
787 static int dissect_targetSystem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
788   return dissect_dsp_AccessPoint(FALSE, tvb, offset, pinfo, tree, hf_dap_targetSystem);
789 }
790 static int dissect_addAttribute(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
791   return dissect_x509if_Attribute(FALSE, tvb, offset, pinfo, tree, hf_dap_addAttribute);
792 }
793 static int dissect_removeAttribute(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
794   return dissect_x509if_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_dap_removeAttribute);
795 }
796 static int dissect_addValues(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
797   return dissect_x509if_Attribute(FALSE, tvb, offset, pinfo, tree, hf_dap_addValues);
798 }
799 static int dissect_removeValues(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
800   return dissect_x509if_Attribute(FALSE, tvb, offset, pinfo, tree, hf_dap_removeValues);
801 }
802 static int dissect_alterValues(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
803   return dissect_crmf_AttributeTypeAndValue(FALSE, tvb, offset, pinfo, tree, hf_dap_alterValues);
804 }
805 static int dissect_resetValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
806   return dissect_x509if_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_dap_resetValue);
807 }
808 static int dissect_newRDN(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
809   return dissect_x509if_RelativeDistinguishedName(FALSE, tvb, offset, pinfo, tree, hf_dap_newRDN);
810 }
811 static int dissect_newSuperior(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
812   return dissect_x509if_DistinguishedName(FALSE, tvb, offset, pinfo, tree, hf_dap_newSuperior);
813 }
814 static int dissect_operation(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
815   return dissect_ros_InvokeId(FALSE, tvb, offset, pinfo, tree, hf_dap_operation);
816 }
817 static int dissect_value(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
818   return dissect_x509if_AttributeValue(FALSE, tvb, offset, pinfo, tree, hf_dap_value);
819 }
820 static int dissect_candidate(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
821   return dissect_dsp_ContinuationReference(FALSE, tvb, offset, pinfo, tree, hf_dap_candidate);
822 }
823
824
825 static const value_string dap_FamilyGrouping_vals[] = {
826   {   1, "entryOnly" },
827   {   2, "compoundEntry" },
828   {   3, "strands" },
829   {   4, "multiStrand" },
830   { 0, NULL }
831 };
832
833
834 static int
835 dissect_dap_FamilyGrouping(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
836   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
837                                   NULL);
838
839   return offset;
840 }
841 static int dissect_familyGrouping(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
842   return dissect_dap_FamilyGrouping(FALSE, tvb, offset, pinfo, tree, hf_dap_familyGrouping);
843 }
844
845
846
847 static int
848 dissect_dap_UTCTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
849   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTCTime,
850                                             pinfo, tree, tvb, offset, hf_index,
851                                             NULL);
852
853   return offset;
854 }
855 static int dissect_utcTime(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
856   return dissect_dap_UTCTime(FALSE, tvb, offset, pinfo, tree, hf_dap_utcTime);
857 }
858 static int dissect_utc(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
859   return dissect_dap_UTCTime(FALSE, tvb, offset, pinfo, tree, hf_dap_utc);
860 }
861
862
863
864 static int
865 dissect_dap_GeneralizedTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
866   offset = dissect_ber_GeneralizedTime(implicit_tag, pinfo, tree, tvb, offset, hf_index);
867
868   return offset;
869 }
870 static int dissect_generalizedTime(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
871   return dissect_dap_GeneralizedTime(FALSE, tvb, offset, pinfo, tree, hf_dap_generalizedTime);
872 }
873 static int dissect_gt(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
874   return dissect_dap_GeneralizedTime(FALSE, tvb, offset, pinfo, tree, hf_dap_gt);
875 }
876
877
878 static const value_string dap_Time_vals[] = {
879   {   0, "utcTime" },
880   {   1, "generalizedTime" },
881   { 0, NULL }
882 };
883
884 static const ber_choice_t Time_choice[] = {
885   {   0, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_utcTime },
886   {   1, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_generalizedTime },
887   { 0, 0, 0, 0, NULL }
888 };
889
890 static int
891 dissect_dap_Time(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
892   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
893                                  Time_choice, hf_index, ett_dap_Time,
894                                  NULL);
895
896   return offset;
897 }
898 static int dissect_time(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
899   return dissect_dap_Time(FALSE, tvb, offset, pinfo, tree, hf_dap_time);
900 }
901
902
903
904 static int
905 dissect_dap_BIT_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
906   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
907                                     NULL, hf_index, -1,
908                                     NULL);
909
910   return offset;
911 }
912 static int dissect_random(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
913   return dissect_dap_BIT_STRING(FALSE, tvb, offset, pinfo, tree, hf_dap_random);
914 }
915 static int dissect_response(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
916   return dissect_dap_BIT_STRING(FALSE, tvb, offset, pinfo, tree, hf_dap_response);
917 }
918 static int dissect_random1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
919   return dissect_dap_BIT_STRING(FALSE, tvb, offset, pinfo, tree, hf_dap_random1);
920 }
921 static int dissect_random2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
922   return dissect_dap_BIT_STRING(FALSE, tvb, offset, pinfo, tree, hf_dap_random2);
923 }
924 static int dissect_encrypted(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
925   return dissect_dap_BIT_STRING(FALSE, tvb, offset, pinfo, tree, hf_dap_encrypted);
926 }
927 static int dissect_criticalExtensions(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
928   return dissect_dap_BIT_STRING(FALSE, tvb, offset, pinfo, tree, hf_dap_criticalExtensions);
929 }
930
931
932 static const value_string dap_ProtectionRequest_vals[] = {
933   {   0, "none" },
934   {   1, "signed" },
935   {   2, "encrypted" },
936   {   3, "signed-encrypted" },
937   { 0, NULL }
938 };
939
940
941 static int
942 dissect_dap_ProtectionRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
943   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
944                                   NULL);
945
946   return offset;
947 }
948 static int dissect_target(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
949   return dissect_dap_ProtectionRequest(FALSE, tvb, offset, pinfo, tree, hf_dap_target);
950 }
951
952
953 static const value_string dap_ErrorProtectionRequest_vals[] = {
954   {   0, "none" },
955   {   1, "signed" },
956   {   2, "encrypted" },
957   {   3, "signed-encrypted" },
958   { 0, NULL }
959 };
960
961
962 static int
963 dissect_dap_ErrorProtectionRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
964   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
965                                   NULL);
966
967   return offset;
968 }
969 static int dissect_errorProtection(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
970   return dissect_dap_ErrorProtectionRequest(FALSE, tvb, offset, pinfo, tree, hf_dap_errorProtection);
971 }
972
973
974 static const ber_sequence_t SecurityParameters_set[] = {
975   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_certification_path },
976   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_distinguished_name },
977   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_time },
978   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_random },
979   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_target },
980   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_response },
981   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_operationCode },
982   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_attributeCertificationPath },
983   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_errorProtection },
984   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_errorCode },
985   { 0, 0, 0, NULL }
986 };
987
988 int
989 dissect_dap_SecurityParameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
990   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
991                               SecurityParameters_set, hf_index, ett_dap_SecurityParameters);
992
993   return offset;
994 }
995 static int dissect_securityParameters(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
996   return dissect_dap_SecurityParameters(FALSE, tvb, offset, pinfo, tree, hf_dap_securityParameters);
997 }
998
999
1000
1001 static int
1002 dissect_dap_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1003   offset = dissect_ber_boolean(implicit_tag, pinfo, tree, tvb, offset, hf_index);
1004
1005   return offset;
1006 }
1007 static int dissect_aliasDereferenced(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1008   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_aliasDereferenced);
1009 }
1010 static int dissect_returnContexts(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1011   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_returnContexts);
1012 }
1013 static int dissect_fromEntry(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1014   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_fromEntry);
1015 }
1016 static int dissect_incompleteEntry(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1017   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_incompleteEntry);
1018 }
1019 static int dissect_partialName(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1020   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_partialName);
1021 }
1022 static int dissect_derivedEntry(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1023   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_derivedEntry);
1024 }
1025 static int dissect_dnAttributes(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1026   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_dnAttributes);
1027 }
1028 static int dissect_reverse(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1029   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_reverse);
1030 }
1031 static int dissect_unmerged(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1032   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_unmerged);
1033 }
1034 static int dissect_modifyRightsRequest(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1035   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_modifyRightsRequest);
1036 }
1037 static int dissect_entryOnly(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1038   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_entryOnly);
1039 }
1040 static int dissect_nameResolveOnMaster(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1041   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_nameResolveOnMaster);
1042 }
1043 static int dissect_matched(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1044   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_matched);
1045 }
1046 static int dissect_listFamily(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1047   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_listFamily);
1048 }
1049 static int dissect_aliasEntry(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1050   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_aliasEntry);
1051 }
1052 static int dissect_unavailableCriticalExtensions(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1053   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_unavailableCriticalExtensions);
1054 }
1055 static int dissect_searchAliases(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1056   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_searchAliases);
1057 }
1058 static int dissect_matchedValuesOnly(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1059   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_matchedValuesOnly);
1060 }
1061 static int dissect_checkOverspecified(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1062   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_checkOverspecified);
1063 }
1064 static int dissect_altMatching(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1065   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_altMatching);
1066 }
1067 static int dissect_deleteOldRDN(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1068   return dissect_dap_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_dap_deleteOldRDN);
1069 }
1070
1071
1072 static const ber_sequence_t SEQUENCE_OF_Attribute_sequence_of[1] = {
1073   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_notification_item },
1074 };
1075
1076 static int
1077 dissect_dap_SEQUENCE_OF_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1078   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1079                                       SEQUENCE_OF_Attribute_sequence_of, hf_index, ett_dap_SEQUENCE_OF_Attribute);
1080
1081   return offset;
1082 }
1083 static int dissect_notification(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1084   return dissect_dap_SEQUENCE_OF_Attribute(FALSE, tvb, offset, pinfo, tree, hf_dap_notification);
1085 }
1086
1087
1088 static const ber_sequence_t CommonResults_set[] = {
1089   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
1090   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
1091   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
1092   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
1093   { 0, 0, 0, NULL }
1094 };
1095
1096 int
1097 dissect_dap_CommonResults(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1098   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1099                               CommonResults_set, hf_index, ett_dap_CommonResults);
1100
1101   return offset;
1102 }
1103
1104
1105 static const asn_namedbit ServiceControlOptions_bits[] = {
1106   {  0, &hf_dap_ServiceControlOptions_preferChaining, -1, -1, "preferChaining", NULL },
1107   {  1, &hf_dap_ServiceControlOptions_chainingProhibited, -1, -1, "chainingProhibited", NULL },
1108   {  2, &hf_dap_ServiceControlOptions_localScope, -1, -1, "localScope", NULL },
1109   {  3, &hf_dap_ServiceControlOptions_dontUseCopy, -1, -1, "dontUseCopy", NULL },
1110   {  4, &hf_dap_ServiceControlOptions_dontDereferenceAliases, -1, -1, "dontDereferenceAliases", NULL },
1111   {  5, &hf_dap_ServiceControlOptions_subentries, -1, -1, "subentries", NULL },
1112   {  6, &hf_dap_ServiceControlOptions_copyShallDo, -1, -1, "copyShallDo", NULL },
1113   {  7, &hf_dap_ServiceControlOptions_partialNameResolution, -1, -1, "partialNameResolution", NULL },
1114   {  8, &hf_dap_ServiceControlOptions_manageDSAIT, -1, -1, "manageDSAIT", NULL },
1115   {  9, &hf_dap_ServiceControlOptions_noSubtypeMatch, -1, -1, "noSubtypeMatch", NULL },
1116   { 10, &hf_dap_ServiceControlOptions_noSubtypeSelection, -1, -1, "noSubtypeSelection", NULL },
1117   { 11, &hf_dap_ServiceControlOptions_countFamily, -1, -1, "countFamily", NULL },
1118   { 0, NULL, 0, 0, NULL, NULL }
1119 };
1120
1121 static int
1122 dissect_dap_ServiceControlOptions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1123   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
1124                                     ServiceControlOptions_bits, hf_index, ett_dap_ServiceControlOptions,
1125                                     NULL);
1126
1127   return offset;
1128 }
1129 static int dissect_options(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1130   return dissect_dap_ServiceControlOptions(FALSE, tvb, offset, pinfo, tree, hf_dap_options);
1131 }
1132
1133
1134 static const value_string dap_T_priority_vals[] = {
1135   {   0, "low" },
1136   {   1, "medium" },
1137   {   2, "high" },
1138   { 0, NULL }
1139 };
1140
1141
1142 static int
1143 dissect_dap_T_priority(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1144   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1145                                   NULL);
1146
1147   return offset;
1148 }
1149 static int dissect_priority(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1150   return dissect_dap_T_priority(FALSE, tvb, offset, pinfo, tree, hf_dap_priority);
1151 }
1152
1153
1154
1155 static int
1156 dissect_dap_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1157   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1158                                   NULL);
1159
1160   return offset;
1161 }
1162 static int dissect_timeLimit(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1163   return dissect_dap_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_dap_timeLimit);
1164 }
1165 static int dissect_sizeLimit(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1166   return dissect_dap_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_dap_sizeLimit);
1167 }
1168 static int dissect_attributeSizeLimit(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1169   return dissect_dap_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_dap_attributeSizeLimit);
1170 }
1171 static int dissect_userClass(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1172   return dissect_dap_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_dap_userClass);
1173 }
1174 static int dissect_pageSize(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1175   return dissect_dap_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_dap_pageSize);
1176 }
1177 static int dissect_aliasedRDNs(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1178   return dissect_dap_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_dap_aliasedRDNs);
1179 }
1180 static int dissect_bestEstimate(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1181   return dissect_dap_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_dap_bestEstimate);
1182 }
1183 static int dissect_lowEstimate(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1184   return dissect_dap_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_dap_lowEstimate);
1185 }
1186 static int dissect_extendedArea(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1187   return dissect_dap_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_dap_extendedArea);
1188 }
1189
1190
1191 static const value_string dap_T_scopeOfReferral_vals[] = {
1192   {   0, "dmd" },
1193   {   1, "country" },
1194   { 0, NULL }
1195 };
1196
1197
1198 static int
1199 dissect_dap_T_scopeOfReferral(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1200   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1201                                   NULL);
1202
1203   return offset;
1204 }
1205 static int dissect_scopeOfReferral(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1206   return dissect_dap_T_scopeOfReferral(FALSE, tvb, offset, pinfo, tree, hf_dap_scopeOfReferral);
1207 }
1208
1209
1210 static const value_string dap_Name_vals[] = {
1211   {   0, "rdnSequence" },
1212   { 0, NULL }
1213 };
1214
1215 static const ber_choice_t Name_choice[] = {
1216   {   0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_rdnSequence },
1217   { 0, 0, 0, 0, NULL }
1218 };
1219
1220 static int
1221 dissect_dap_Name(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1222 #line 260 "dap.cnf"
1223         const char *dn;
1224
1225           offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1226                                  Name_choice, hf_index, ett_dap_Name,
1227                                  NULL);
1228
1229
1230         if(check_col(pinfo->cinfo, COL_INFO)) {
1231                 dn = x509if_get_last_dn();
1232                 col_append_fstr(pinfo->cinfo, COL_INFO, " %s", (dn && *dn) ? dn : "(root)");
1233         }
1234
1235
1236
1237   return offset;
1238 }
1239 static int dissect_dsaName(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1240   return dissect_dap_Name(FALSE, tvb, offset, pinfo, tree, hf_dap_dsaName);
1241 }
1242 static int dissect_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1243   return dissect_dap_Name(FALSE, tvb, offset, pinfo, tree, hf_dap_name);
1244 }
1245 static int dissect_object(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1246   return dissect_dap_Name(FALSE, tvb, offset, pinfo, tree, hf_dap_object);
1247 }
1248 static int dissect_baseObject(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1249   return dissect_dap_Name(FALSE, tvb, offset, pinfo, tree, hf_dap_baseObject);
1250 }
1251 static int dissect_joinBaseObject(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1252   return dissect_dap_Name(FALSE, tvb, offset, pinfo, tree, hf_dap_joinBaseObject);
1253 }
1254 static int dissect_matched_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1255   return dissect_dap_Name(FALSE, tvb, offset, pinfo, tree, hf_dap_matched_name);
1256 }
1257
1258
1259 static const ber_sequence_t T_manageDSAITPlaneRef_sequence[] = {
1260   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_dsaName },
1261   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_agreementID },
1262   { 0, 0, 0, NULL }
1263 };
1264
1265 static int
1266 dissect_dap_T_manageDSAITPlaneRef(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1267   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1268                                    T_manageDSAITPlaneRef_sequence, hf_index, ett_dap_T_manageDSAITPlaneRef);
1269
1270   return offset;
1271 }
1272 static int dissect_manageDSAITPlaneRef(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1273   return dissect_dap_T_manageDSAITPlaneRef(FALSE, tvb, offset, pinfo, tree, hf_dap_manageDSAITPlaneRef);
1274 }
1275
1276
1277
1278 static int
1279 dissect_dap_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1280   offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1281
1282   return offset;
1283 }
1284 static int dissect_serviceType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1285   return dissect_dap_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_dap_serviceType);
1286 }
1287 static int dissect_familySelect_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1288   return dissect_dap_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_dap_familySelect_item);
1289 }
1290 static int dissect_family_class(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1291   return dissect_dap_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_dap_family_class);
1292 }
1293 static int dissect_sunstringType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1294   return dissect_dap_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_dap_sunstringType);
1295 }
1296 static int dissect_matchingRule_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1297   return dissect_dap_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_dap_matchingRule_item);
1298 }
1299 static int dissect_orderingRule(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1300   return dissect_dap_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_dap_orderingRule);
1301 }
1302 static int dissect_unknownErrors_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1303   return dissect_dap_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_dap_unknownErrors_item);
1304 }
1305
1306
1307 static const ber_sequence_t ServiceControls_set[] = {
1308   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_options },
1309   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_priority },
1310   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_timeLimit },
1311   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_sizeLimit },
1312   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_scopeOfReferral },
1313   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_attributeSizeLimit },
1314   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_manageDSAITPlaneRef },
1315   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_serviceType },
1316   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_userClass },
1317   { 0, 0, 0, NULL }
1318 };
1319
1320 static int
1321 dissect_dap_ServiceControls(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1322   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1323                               ServiceControls_set, hf_index, ett_dap_ServiceControls);
1324
1325   return offset;
1326 }
1327 static int dissect_serviceControls(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1328   return dissect_dap_ServiceControls(FALSE, tvb, offset, pinfo, tree, hf_dap_serviceControls);
1329 }
1330
1331
1332
1333 static int
1334 dissect_dap_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1335   offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index);
1336
1337   return offset;
1338 }
1339 static int dissect_allUserAttributes(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1340   return dissect_dap_NULL(FALSE, tvb, offset, pinfo, tree, hf_dap_allUserAttributes);
1341 }
1342 static int dissect_allOperationalAttributes(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1343   return dissect_dap_NULL(FALSE, tvb, offset, pinfo, tree, hf_dap_allOperationalAttributes);
1344 }
1345 static int dissect_allContexts(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1346   return dissect_dap_NULL(FALSE, tvb, offset, pinfo, tree, hf_dap_allContexts);
1347 }
1348 static int dissect_item_entry(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1349   return dissect_dap_NULL(FALSE, tvb, offset, pinfo, tree, hf_dap_item_entry);
1350 }
1351 static int dissect_null(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1352   return dissect_dap_NULL(FALSE, tvb, offset, pinfo, tree, hf_dap_null);
1353 }
1354
1355
1356 static const ber_sequence_t SET_OF_AttributeType_set_of[1] = {
1357   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_select_item },
1358 };
1359
1360 static int
1361 dissect_dap_SET_OF_AttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1362   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1363                                  SET_OF_AttributeType_set_of, hf_index, ett_dap_SET_OF_AttributeType);
1364
1365   return offset;
1366 }
1367 static int dissect_select(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1368   return dissect_dap_SET_OF_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_dap_select);
1369 }
1370
1371
1372 static const value_string dap_T_attributes_vals[] = {
1373   {   0, "allUserAttributes" },
1374   {   1, "select" },
1375   { 0, NULL }
1376 };
1377
1378 static const ber_choice_t T_attributes_choice[] = {
1379   {   0, BER_CLASS_CON, 0, 0, dissect_allUserAttributes },
1380   {   1, BER_CLASS_CON, 1, 0, dissect_select },
1381   { 0, 0, 0, 0, NULL }
1382 };
1383
1384 static int
1385 dissect_dap_T_attributes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1386   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1387                                  T_attributes_choice, hf_index, ett_dap_T_attributes,
1388                                  NULL);
1389
1390   return offset;
1391 }
1392 static int dissect_attributes(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1393   return dissect_dap_T_attributes(FALSE, tvb, offset, pinfo, tree, hf_dap_attributes);
1394 }
1395
1396
1397 static const value_string dap_T_infoTypes_vals[] = {
1398   {   0, "attributeTypesOnly" },
1399   {   1, "attributeTypesAndValues" },
1400   { 0, NULL }
1401 };
1402
1403
1404 static int
1405 dissect_dap_T_infoTypes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1406   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1407                                   NULL);
1408
1409   return offset;
1410 }
1411 static int dissect_infoTypes(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1412   return dissect_dap_T_infoTypes(FALSE, tvb, offset, pinfo, tree, hf_dap_infoTypes);
1413 }
1414
1415
1416 static const value_string dap_T_extraAttributes_vals[] = {
1417   {   3, "allOperationalAttributes" },
1418   {   4, "select" },
1419   { 0, NULL }
1420 };
1421
1422 static const ber_choice_t T_extraAttributes_choice[] = {
1423   {   3, BER_CLASS_CON, 3, 0, dissect_allOperationalAttributes },
1424   {   4, BER_CLASS_CON, 4, 0, dissect_select },
1425   { 0, 0, 0, 0, NULL }
1426 };
1427
1428 static int
1429 dissect_dap_T_extraAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1430   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1431                                  T_extraAttributes_choice, hf_index, ett_dap_T_extraAttributes,
1432                                  NULL);
1433
1434   return offset;
1435 }
1436 static int dissect_extraAttributes(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1437   return dissect_dap_T_extraAttributes(FALSE, tvb, offset, pinfo, tree, hf_dap_extraAttributes);
1438 }
1439
1440
1441 static const ber_sequence_t SEQUENCE_OF_ContextAssertion_sequence_of[1] = {
1442   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_preference_item },
1443 };
1444
1445 static int
1446 dissect_dap_SEQUENCE_OF_ContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1447   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1448                                       SEQUENCE_OF_ContextAssertion_sequence_of, hf_index, ett_dap_SEQUENCE_OF_ContextAssertion);
1449
1450   return offset;
1451 }
1452 static int dissect_preference(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1453   return dissect_dap_SEQUENCE_OF_ContextAssertion(FALSE, tvb, offset, pinfo, tree, hf_dap_preference);
1454 }
1455
1456
1457 static const ber_sequence_t SET_OF_ContextAssertion_set_of[1] = {
1458   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_all_item },
1459 };
1460
1461 static int
1462 dissect_dap_SET_OF_ContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1463   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1464                                  SET_OF_ContextAssertion_set_of, hf_index, ett_dap_SET_OF_ContextAssertion);
1465
1466   return offset;
1467 }
1468 static int dissect_all(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1469   return dissect_dap_SET_OF_ContextAssertion(FALSE, tvb, offset, pinfo, tree, hf_dap_all);
1470 }
1471
1472
1473 static const value_string dap_T_contextAssertions_vals[] = {
1474   {   0, "preference" },
1475   {   1, "all" },
1476   { 0, NULL }
1477 };
1478
1479 static const ber_choice_t T_contextAssertions_choice[] = {
1480   {   0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_preference },
1481   {   1, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_all },
1482   { 0, 0, 0, 0, NULL }
1483 };
1484
1485 static int
1486 dissect_dap_T_contextAssertions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1487   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1488                                  T_contextAssertions_choice, hf_index, ett_dap_T_contextAssertions,
1489                                  NULL);
1490
1491   return offset;
1492 }
1493 static int dissect_contextAssertions(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1494   return dissect_dap_T_contextAssertions(FALSE, tvb, offset, pinfo, tree, hf_dap_contextAssertions);
1495 }
1496
1497
1498 static const ber_sequence_t TypeAndContextAssertion_sequence[] = {
1499   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_type },
1500   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_contextAssertions },
1501   { 0, 0, 0, NULL }
1502 };
1503
1504 static int
1505 dissect_dap_TypeAndContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1506   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1507                                    TypeAndContextAssertion_sequence, hf_index, ett_dap_TypeAndContextAssertion);
1508
1509   return offset;
1510 }
1511 static int dissect_selectedContexts_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1512   return dissect_dap_TypeAndContextAssertion(FALSE, tvb, offset, pinfo, tree, hf_dap_selectedContexts_item);
1513 }
1514
1515
1516 static const ber_sequence_t SET_OF_TypeAndContextAssertion_set_of[1] = {
1517   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_selectedContexts_item },
1518 };
1519
1520 static int
1521 dissect_dap_SET_OF_TypeAndContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1522   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1523                                  SET_OF_TypeAndContextAssertion_set_of, hf_index, ett_dap_SET_OF_TypeAndContextAssertion);
1524
1525   return offset;
1526 }
1527 static int dissect_selectedContexts(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1528   return dissect_dap_SET_OF_TypeAndContextAssertion(FALSE, tvb, offset, pinfo, tree, hf_dap_selectedContexts);
1529 }
1530
1531
1532 const value_string dap_ContextSelection_vals[] = {
1533   {   0, "allContexts" },
1534   {   1, "selectedContexts" },
1535   { 0, NULL }
1536 };
1537
1538 static const ber_choice_t ContextSelection_choice[] = {
1539   {   0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_allContexts },
1540   {   1, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_selectedContexts },
1541   { 0, 0, 0, 0, NULL }
1542 };
1543
1544 int
1545 dissect_dap_ContextSelection(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1546   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1547                                  ContextSelection_choice, hf_index, ett_dap_ContextSelection,
1548                                  NULL);
1549
1550   return offset;
1551 }
1552 static int dissect_contextSelection(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1553   return dissect_dap_ContextSelection(FALSE, tvb, offset, pinfo, tree, hf_dap_contextSelection);
1554 }
1555 static int dissect_operationContexts(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1556   return dissect_dap_ContextSelection(FALSE, tvb, offset, pinfo, tree, hf_dap_operationContexts);
1557 }
1558
1559
1560 static const value_string dap_T_memberSelect_vals[] = {
1561   {   1, "contributingEntriesOnly" },
1562   {   2, "participatingEntriesOnly" },
1563   {   3, "compoundEntry" },
1564   { 0, NULL }
1565 };
1566
1567
1568 static int
1569 dissect_dap_T_memberSelect(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1570   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1571                                   NULL);
1572
1573   return offset;
1574 }
1575 static int dissect_memberSelect(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1576   return dissect_dap_T_memberSelect(FALSE, tvb, offset, pinfo, tree, hf_dap_memberSelect);
1577 }
1578
1579
1580 static const ber_sequence_t T_familySelect_sequence_of[1] = {
1581   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_familySelect_item },
1582 };
1583
1584 static int
1585 dissect_dap_T_familySelect(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1586   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1587                                       T_familySelect_sequence_of, hf_index, ett_dap_T_familySelect);
1588
1589   return offset;
1590 }
1591 static int dissect_familySelect(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1592   return dissect_dap_T_familySelect(FALSE, tvb, offset, pinfo, tree, hf_dap_familySelect);
1593 }
1594
1595
1596 static const ber_sequence_t FamilyReturn_sequence[] = {
1597   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_memberSelect },
1598   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_familySelect },
1599   { 0, 0, 0, NULL }
1600 };
1601
1602 static int
1603 dissect_dap_FamilyReturn(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1604   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1605                                    FamilyReturn_sequence, hf_index, ett_dap_FamilyReturn);
1606
1607   return offset;
1608 }
1609 static int dissect_familyReturn(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1610   return dissect_dap_FamilyReturn(FALSE, tvb, offset, pinfo, tree, hf_dap_familyReturn);
1611 }
1612
1613
1614 static const ber_sequence_t EntryInformationSelection_set[] = {
1615   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_attributes },
1616   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_infoTypes },
1617   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_extraAttributes },
1618   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_contextSelection },
1619   { BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_returnContexts },
1620   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_familyReturn },
1621   { 0, 0, 0, NULL }
1622 };
1623
1624 static int
1625 dissect_dap_EntryInformationSelection(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1626   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
1627                               EntryInformationSelection_set, hf_index, ett_dap_EntryInformationSelection);
1628
1629   return offset;
1630 }
1631 static int dissect_selection(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1632   return dissect_dap_EntryInformationSelection(FALSE, tvb, offset, pinfo, tree, hf_dap_selection);
1633 }
1634 static int dissect_joinSelection(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1635   return dissect_dap_EntryInformationSelection(FALSE, tvb, offset, pinfo, tree, hf_dap_joinSelection);
1636 }
1637
1638
1639 static const value_string dap_EntryInformationItem_vals[] = {
1640   {   0, "attributeType" },
1641   {   1, "attribute" },
1642   { 0, NULL }
1643 };
1644
1645 static const ber_choice_t EntryInformationItem_choice[] = {
1646   {   0, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeType },
1647   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_attribute },
1648   { 0, 0, 0, 0, NULL }
1649 };
1650
1651 static int
1652 dissect_dap_EntryInformationItem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1653   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1654                                  EntryInformationItem_choice, hf_index, ett_dap_EntryInformationItem,
1655                                  NULL);
1656
1657   return offset;
1658 }
1659 static int dissect_entry_information_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1660   return dissect_dap_EntryInformationItem(FALSE, tvb, offset, pinfo, tree, hf_dap_entry_information_item);
1661 }
1662
1663
1664 static const ber_sequence_t T_information_set_of[1] = {
1665   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_entry_information_item },
1666 };
1667
1668 static int
1669 dissect_dap_T_information(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1670   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1671                                  T_information_set_of, hf_index, ett_dap_T_information);
1672
1673   return offset;
1674 }
1675 static int dissect_entry_information(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1676   return dissect_dap_T_information(FALSE, tvb, offset, pinfo, tree, hf_dap_entry_information);
1677 }
1678
1679
1680 static const ber_sequence_t EntryInformation_sequence[] = {
1681   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_name },
1682   { BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_fromEntry },
1683   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_entry_information },
1684   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_incompleteEntry },
1685   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_partialName },
1686   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_derivedEntry },
1687   { 0, 0, 0, NULL }
1688 };
1689
1690 static int
1691 dissect_dap_EntryInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1692   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1693                                    EntryInformation_sequence, hf_index, ett_dap_EntryInformation);
1694
1695   return offset;
1696 }
1697 static int dissect_entry(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1698   return dissect_dap_EntryInformation(FALSE, tvb, offset, pinfo, tree, hf_dap_entry);
1699 }
1700 static int dissect_entries_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1701   return dissect_dap_EntryInformation(FALSE, tvb, offset, pinfo, tree, hf_dap_entries_item);
1702 }
1703
1704
1705 static const value_string dap_T_information_item_vals[] = {
1706   {   0, "attributeType" },
1707   {   1, "attribute" },
1708   { 0, NULL }
1709 };
1710
1711 static const ber_choice_t T_information_item_choice[] = {
1712   {   0, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeType },
1713   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_attribute },
1714   { 0, 0, 0, 0, NULL }
1715 };
1716
1717 static int
1718 dissect_dap_T_information_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1719   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1720                                  T_information_item_choice, hf_index, ett_dap_T_information_item,
1721                                  NULL);
1722
1723   return offset;
1724 }
1725 static int dissect_information_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1726   return dissect_dap_T_information_item(FALSE, tvb, offset, pinfo, tree, hf_dap_information_item);
1727 }
1728
1729
1730 static const ber_sequence_t FamilyInformation_sequence_of[1] = {
1731   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_information_item },
1732 };
1733
1734 static int
1735 dissect_dap_FamilyInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1736   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1737                                       FamilyInformation_sequence_of, hf_index, ett_dap_FamilyInformation);
1738
1739   return offset;
1740 }
1741 static int dissect_family_information(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1742   return dissect_dap_FamilyInformation(FALSE, tvb, offset, pinfo, tree, hf_dap_family_information);
1743 }
1744
1745
1746 static const ber_sequence_t SEQUENCE_OF_FamilyEntries_sequence_of[1] = {
1747   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_family_info_item },
1748 };
1749
1750 static int
1751 dissect_dap_SEQUENCE_OF_FamilyEntries(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1752   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1753                                       SEQUENCE_OF_FamilyEntries_sequence_of, hf_index, ett_dap_SEQUENCE_OF_FamilyEntries);
1754
1755   return offset;
1756 }
1757 static int dissect_family_info(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1758   return dissect_dap_SEQUENCE_OF_FamilyEntries(FALSE, tvb, offset, pinfo, tree, hf_dap_family_info);
1759 }
1760
1761
1762 static const ber_sequence_t FamilyEntry_sequence[] = {
1763   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_rdn },
1764   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_family_information },
1765   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_family_info },
1766   { 0, 0, 0, NULL }
1767 };
1768
1769 static int
1770 dissect_dap_FamilyEntry(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1771   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1772                                    FamilyEntry_sequence, hf_index, ett_dap_FamilyEntry);
1773
1774   return offset;
1775 }
1776 static int dissect_familyEntries_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1777   return dissect_dap_FamilyEntry(FALSE, tvb, offset, pinfo, tree, hf_dap_familyEntries_item);
1778 }
1779
1780
1781 static const ber_sequence_t SEQUENCE_OF_FamilyEntry_sequence_of[1] = {
1782   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_familyEntries_item },
1783 };
1784
1785 static int
1786 dissect_dap_SEQUENCE_OF_FamilyEntry(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1787   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1788                                       SEQUENCE_OF_FamilyEntry_sequence_of, hf_index, ett_dap_SEQUENCE_OF_FamilyEntry);
1789
1790   return offset;
1791 }
1792 static int dissect_familyEntries(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1793   return dissect_dap_SEQUENCE_OF_FamilyEntry(FALSE, tvb, offset, pinfo, tree, hf_dap_familyEntries);
1794 }
1795
1796
1797 static const ber_sequence_t FamilyEntries_sequence[] = {
1798   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_family_class },
1799   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_familyEntries },
1800   { 0, 0, 0, NULL }
1801 };
1802
1803 static int
1804 dissect_dap_FamilyEntries(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1805   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1806                                    FamilyEntries_sequence, hf_index, ett_dap_FamilyEntries);
1807
1808   return offset;
1809 }
1810
1811
1812
1813 static int
1814 dissect_dap_T_initial(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1815 #line 118 "dap.cnf"
1816         proto_item *it;
1817         it = proto_tree_add_item(tree, hf_index, tvb, offset, -1, FALSE);
1818         proto_item_append_text(it," XXX: Not yet implemented!");
1819
1820
1821
1822   return offset;
1823 }
1824 static int dissect_initial(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1825   return dissect_dap_T_initial(FALSE, tvb, offset, pinfo, tree, hf_dap_initial);
1826 }
1827
1828
1829
1830 static int
1831 dissect_dap_T_any(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1832 #line 123 "dap.cnf"
1833         /* XXX: not yet implemented */
1834
1835
1836
1837   return offset;
1838 }
1839 static int dissect_any(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1840   return dissect_dap_T_any(FALSE, tvb, offset, pinfo, tree, hf_dap_any);
1841 }
1842
1843
1844
1845 static int
1846 dissect_dap_T_final(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1847 #line 126 "dap.cnf"
1848         /* XXX: not yet implemented */
1849
1850
1851
1852   return offset;
1853 }
1854 static int dissect_final(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1855   return dissect_dap_T_final(FALSE, tvb, offset, pinfo, tree, hf_dap_final);
1856 }
1857
1858
1859 static const value_string dap_T_strings_item_vals[] = {
1860   {   0, "initial" },
1861   {   1, "any" },
1862   {   2, "final" },
1863   {   3, "control" },
1864   { 0, NULL }
1865 };
1866
1867 static const ber_choice_t T_strings_item_choice[] = {
1868   {   0, BER_CLASS_CON, 0, 0, dissect_initial },
1869   {   1, BER_CLASS_CON, 1, 0, dissect_any },
1870   {   2, BER_CLASS_CON, 2, 0, dissect_final },
1871   {   3, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_control },
1872   { 0, 0, 0, 0, NULL }
1873 };
1874
1875 static int
1876 dissect_dap_T_strings_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1877   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1878                                  T_strings_item_choice, hf_index, ett_dap_T_strings_item,
1879                                  NULL);
1880
1881   return offset;
1882 }
1883 static int dissect_strings_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1884   return dissect_dap_T_strings_item(FALSE, tvb, offset, pinfo, tree, hf_dap_strings_item);
1885 }
1886
1887
1888 static const ber_sequence_t T_strings_sequence_of[1] = {
1889   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_strings_item },
1890 };
1891
1892 static int
1893 dissect_dap_T_strings(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1894   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1895                                       T_strings_sequence_of, hf_index, ett_dap_T_strings);
1896
1897   return offset;
1898 }
1899 static int dissect_strings(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1900   return dissect_dap_T_strings(FALSE, tvb, offset, pinfo, tree, hf_dap_strings);
1901 }
1902
1903
1904 static const ber_sequence_t T_substrings_sequence[] = {
1905   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_sunstringType },
1906   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_strings },
1907   { 0, 0, 0, NULL }
1908 };
1909
1910 static int
1911 dissect_dap_T_substrings(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1912   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1913                                    T_substrings_sequence, hf_index, ett_dap_T_substrings);
1914
1915   return offset;
1916 }
1917 static int dissect_substrings(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1918   return dissect_dap_T_substrings(FALSE, tvb, offset, pinfo, tree, hf_dap_substrings);
1919 }
1920
1921
1922 static const ber_sequence_t T_matchingRule_set_of[1] = {
1923   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_matchingRule_item },
1924 };
1925
1926 static int
1927 dissect_dap_T_matchingRule(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1928   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1929                                  T_matchingRule_set_of, hf_index, ett_dap_T_matchingRule);
1930
1931   return offset;
1932 }
1933 static int dissect_matchingRule(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1934   return dissect_dap_T_matchingRule(FALSE, tvb, offset, pinfo, tree, hf_dap_matchingRule);
1935 }
1936
1937
1938
1939 static int
1940 dissect_dap_T_matchValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1941 #line 129 "dap.cnf"
1942         /* XXX: not yet implemented */
1943
1944
1945
1946   return offset;
1947 }
1948 static int dissect_matchValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1949   return dissect_dap_T_matchValue(FALSE, tvb, offset, pinfo, tree, hf_dap_matchValue);
1950 }
1951
1952
1953 static const ber_sequence_t MatchingRuleAssertion_sequence[] = {
1954   { BER_CLASS_CON, 1, 0, dissect_matchingRule },
1955   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_type },
1956   { BER_CLASS_CON, 3, 0, dissect_matchValue },
1957   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_dnAttributes },
1958   { 0, 0, 0, NULL }
1959 };
1960
1961 static int
1962 dissect_dap_MatchingRuleAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1963   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1964                                    MatchingRuleAssertion_sequence, hf_index, ett_dap_MatchingRuleAssertion);
1965
1966   return offset;
1967 }
1968 static int dissect_extensibleMatch(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1969   return dissect_dap_MatchingRuleAssertion(FALSE, tvb, offset, pinfo, tree, hf_dap_extensibleMatch);
1970 }
1971
1972
1973 static const value_string dap_FilterItem_vals[] = {
1974   {   0, "equality" },
1975   {   1, "substrings" },
1976   {   2, "greaterOrEqual" },
1977   {   3, "lessOrEqual" },
1978   {   4, "present" },
1979   {   5, "approximateMatch" },
1980   {   6, "extensibleMatch" },
1981   {   7, "contextPresent" },
1982   { 0, NULL }
1983 };
1984
1985 static const ber_choice_t FilterItem_choice[] = {
1986   {   0, BER_CLASS_CON, 0, 0, dissect_equality },
1987   {   1, BER_CLASS_CON, 1, 0, dissect_substrings },
1988   {   2, BER_CLASS_CON, 2, 0, dissect_greaterOrEqual },
1989   {   3, BER_CLASS_CON, 3, 0, dissect_lessOrEqual },
1990   {   4, BER_CLASS_CON, 4, 0, dissect_present },
1991   {   5, BER_CLASS_CON, 5, 0, dissect_approximateMatch },
1992   {   6, BER_CLASS_CON, 6, 0, dissect_extensibleMatch },
1993   {   7, BER_CLASS_CON, 7, 0, dissect_contextPresent },
1994   { 0, 0, 0, 0, NULL }
1995 };
1996
1997 static int
1998 dissect_dap_FilterItem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1999   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2000                                  FilterItem_choice, hf_index, ett_dap_FilterItem,
2001                                  NULL);
2002
2003   return offset;
2004 }
2005 static int dissect_filter_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2006   return dissect_dap_FilterItem(FALSE, tvb, offset, pinfo, tree, hf_dap_filter_item);
2007 }
2008
2009
2010 static const ber_sequence_t SetOfFilter_set_of[1] = {
2011   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_SetOfFilter_item },
2012 };
2013
2014 static int
2015 dissect_dap_SetOfFilter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2016   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
2017                                  SetOfFilter_set_of, hf_index, ett_dap_SetOfFilter);
2018
2019   return offset;
2020 }
2021 static int dissect_and(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2022   return dissect_dap_SetOfFilter(FALSE, tvb, offset, pinfo, tree, hf_dap_and);
2023 }
2024 static int dissect_or(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2025   return dissect_dap_SetOfFilter(FALSE, tvb, offset, pinfo, tree, hf_dap_or);
2026 }
2027
2028
2029 const value_string dap_Filter_vals[] = {
2030   {   0, "item" },
2031   {   1, "and" },
2032   {   2, "or" },
2033   {   3, "not" },
2034   { 0, NULL }
2035 };
2036
2037 static const ber_choice_t Filter_choice[] = {
2038   {   0, BER_CLASS_CON, 0, 0, dissect_filter_item },
2039   {   1, BER_CLASS_CON, 1, 0, dissect_and },
2040   {   2, BER_CLASS_CON, 2, 0, dissect_or },
2041   {   3, BER_CLASS_CON, 3, 0, dissect_not },
2042   { 0, 0, 0, 0, NULL }
2043 };
2044
2045 int
2046 dissect_dap_Filter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2047   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2048                                  Filter_choice, hf_index, ett_dap_Filter,
2049                                  NULL);
2050
2051   return offset;
2052 }
2053
2054
2055 static const ber_sequence_t SortKey_sequence[] = {
2056   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_type },
2057   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_orderingRule },
2058   { 0, 0, 0, NULL }
2059 };
2060
2061 static int
2062 dissect_dap_SortKey(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2063   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2064                                    SortKey_sequence, hf_index, ett_dap_SortKey);
2065
2066   return offset;
2067 }
2068 static int dissect_sortKeys_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2069   return dissect_dap_SortKey(FALSE, tvb, offset, pinfo, tree, hf_dap_sortKeys_item);
2070 }
2071
2072
2073 static const ber_sequence_t SEQUENCE_OF_SortKey_sequence_of[1] = {
2074   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_sortKeys_item },
2075 };
2076
2077 static int
2078 dissect_dap_SEQUENCE_OF_SortKey(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2079   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2080                                       SEQUENCE_OF_SortKey_sequence_of, hf_index, ett_dap_SEQUENCE_OF_SortKey);
2081
2082   return offset;
2083 }
2084 static int dissect_sortKeys(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2085   return dissect_dap_SEQUENCE_OF_SortKey(FALSE, tvb, offset, pinfo, tree, hf_dap_sortKeys);
2086 }
2087
2088
2089 static const ber_sequence_t T_newRequest_sequence[] = {
2090   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pageSize },
2091   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_sortKeys },
2092   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_reverse },
2093   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_unmerged },
2094   { 0, 0, 0, NULL }
2095 };
2096
2097 static int
2098 dissect_dap_T_newRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2099   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2100                                    T_newRequest_sequence, hf_index, ett_dap_T_newRequest);
2101
2102   return offset;
2103 }
2104 static int dissect_newRequest(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2105   return dissect_dap_T_newRequest(FALSE, tvb, offset, pinfo, tree, hf_dap_newRequest);
2106 }
2107
2108
2109
2110 static int
2111 dissect_dap_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2112 #line 173 "dap.cnf"
2113         tvbuff_t *out_tvb;
2114         int     i;
2115         int     len;
2116         proto_item      *oct_item;
2117
2118           offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2119                                        &out_tvb);
2120
2121
2122         if(out_tvb) {
2123                 len = tvb_length(out_tvb);
2124                 /* now see if we can add a string representation */
2125                 for(i=0; i<len; i++)
2126                         if(!g_ascii_isprint(tvb_get_guint8(out_tvb, i)))
2127                                 break;
2128         
2129                 if(i == len) {
2130                         if((oct_item = get_ber_last_created_item())) {
2131
2132                                 proto_item_append_text(oct_item," (");
2133                                 for(i=0; i<len; i++)
2134                                         proto_item_append_text(oct_item,"%c",tvb_get_guint8(out_tvb,i));
2135                                 proto_item_append_text(oct_item,")");
2136                         }
2137                 }
2138         }
2139         
2140
2141
2142   return offset;
2143 }
2144 static int dissect_queryReference(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2145   return dissect_dap_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_dap_queryReference);
2146 }
2147 static int dissect_unprotected(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2148   return dissect_dap_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_dap_unprotected);
2149 }
2150 static int dissect_protectedPassword(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2151   return dissect_dap_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_dap_protectedPassword);
2152 }
2153
2154
2155 static const value_string dap_PagedResultsRequest_vals[] = {
2156   {   0, "newRequest" },
2157   {   1, "queryReference" },
2158   { 0, NULL }
2159 };
2160
2161 static const ber_choice_t PagedResultsRequest_choice[] = {
2162   {   0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_newRequest },
2163   {   1, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_queryReference },
2164   { 0, 0, 0, 0, NULL }
2165 };
2166
2167 static int
2168 dissect_dap_PagedResultsRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2169   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2170                                  PagedResultsRequest_choice, hf_index, ett_dap_PagedResultsRequest,
2171                                  NULL);
2172
2173   return offset;
2174 }
2175 static int dissect_pagedResults(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2176   return dissect_dap_PagedResultsRequest(FALSE, tvb, offset, pinfo, tree, hf_dap_pagedResults);
2177 }
2178
2179
2180 static const value_string dap_T_time1_vals[] = {
2181   {   0, "utc" },
2182   {   1, "gt" },
2183   { 0, NULL }
2184 };
2185
2186 static const ber_choice_t T_time1_choice[] = {
2187   {   0, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_utc },
2188   {   1, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_gt },
2189   { 0, 0, 0, 0, NULL }
2190 };
2191
2192 static int
2193 dissect_dap_T_time1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2194   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2195                                  T_time1_choice, hf_index, ett_dap_T_time1,
2196                                  NULL);
2197
2198   return offset;
2199 }
2200 static int dissect_time1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2201   return dissect_dap_T_time1(FALSE, tvb, offset, pinfo, tree, hf_dap_time1);
2202 }
2203
2204
2205 static const value_string dap_T_time2_vals[] = {
2206   {   0, "utc" },
2207   {   1, "gt" },
2208   { 0, NULL }
2209 };
2210
2211 static const ber_choice_t T_time2_choice[] = {
2212   {   0, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_utc },
2213   {   1, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_gt },
2214   { 0, 0, 0, 0, NULL }
2215 };
2216
2217 static int
2218 dissect_dap_T_time2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2219   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2220                                  T_time2_choice, hf_index, ett_dap_T_time2,
2221                                  NULL);
2222
2223   return offset;
2224 }
2225 static int dissect_time2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2226   return dissect_dap_T_time2(FALSE, tvb, offset, pinfo, tree, hf_dap_time2);
2227 }
2228
2229
2230 static const ber_sequence_t T_validity_set[] = {
2231   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_time1 },
2232   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_time2 },
2233   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_random1 },
2234   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_random2 },
2235   { 0, 0, 0, NULL }
2236 };
2237
2238 static int
2239 dissect_dap_T_validity(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2240   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2241                               T_validity_set, hf_index, ett_dap_T_validity);
2242
2243   return offset;
2244 }
2245 static int dissect_validity(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2246   return dissect_dap_T_validity(FALSE, tvb, offset, pinfo, tree, hf_dap_validity);
2247 }
2248
2249
2250 static const ber_sequence_t T_protected_sequence[] = {
2251   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_protectedPassword },
2252   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
2253   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
2254   { 0, 0, 0, NULL }
2255 };
2256
2257 static int
2258 dissect_dap_T_protected(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2259   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2260                                    T_protected_sequence, hf_index, ett_dap_T_protected);
2261
2262   return offset;
2263 }
2264 static int dissect_protected(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2265   return dissect_dap_T_protected(FALSE, tvb, offset, pinfo, tree, hf_dap_protected);
2266 }
2267
2268
2269 static const value_string dap_T_password_vals[] = {
2270   {   0, "unprotected" },
2271   {   1, "protected" },
2272   { 0, NULL }
2273 };
2274
2275 static const ber_choice_t T_password_choice[] = {
2276   {   0, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_unprotected },
2277   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_protected },
2278   { 0, 0, 0, 0, NULL }
2279 };
2280
2281 static int
2282 dissect_dap_T_password(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2283   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2284                                  T_password_choice, hf_index, ett_dap_T_password,
2285                                  NULL);
2286
2287   return offset;
2288 }
2289 static int dissect_password(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2290   return dissect_dap_T_password(FALSE, tvb, offset, pinfo, tree, hf_dap_password);
2291 }
2292
2293
2294 static const ber_sequence_t SimpleCredentials_sequence[] = {
2295   { BER_CLASS_CON, 0, 0, dissect_distinguished_name },
2296   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_validity },
2297   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_password },
2298   { 0, 0, 0, NULL }
2299 };
2300
2301 static int
2302 dissect_dap_SimpleCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2303 #line 163 "dap.cnf"
2304
2305           offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2306                                    SimpleCredentials_sequence, hf_index, ett_dap_SimpleCredentials);
2307
2308
2309         if(check_col(pinfo->cinfo, COL_INFO))   
2310                 col_append_fstr(pinfo->cinfo, COL_INFO, " %s", x509if_get_last_dn());
2311
2312
2313
2314   return offset;
2315 }
2316 static int dissect_simple(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2317   return dissect_dap_SimpleCredentials(FALSE, tvb, offset, pinfo, tree, hf_dap_simple);
2318 }
2319
2320
2321
2322 static int
2323 dissect_dap_T_bind_token(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2324 #line 132 "dap.cnf"
2325         /* XXX: not yet implemented */
2326
2327
2328
2329   return offset;
2330 }
2331 static int dissect_bind_token(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2332   return dissect_dap_T_bind_token(FALSE, tvb, offset, pinfo, tree, hf_dap_bind_token);
2333 }
2334
2335
2336 static const ber_sequence_t StrongCredentials_set[] = {
2337   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_certification_path },
2338   { BER_CLASS_CON, 1, 0, dissect_bind_token },
2339   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_distinguished_name },
2340   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_attributeCertificationPath },
2341   { 0, 0, 0, NULL }
2342 };
2343
2344 static int
2345 dissect_dap_StrongCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2346   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2347                               StrongCredentials_set, hf_index, ett_dap_StrongCredentials);
2348
2349   return offset;
2350 }
2351 static int dissect_strong(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2352   return dissect_dap_StrongCredentials(FALSE, tvb, offset, pinfo, tree, hf_dap_strong);
2353 }
2354
2355
2356
2357 static int
2358 dissect_dap_T_req(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2359 #line 135 "dap.cnf"
2360         /* XXX: not yet implemented */
2361
2362
2363
2364   return offset;
2365 }
2366 static int dissect_req(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2367   return dissect_dap_T_req(FALSE, tvb, offset, pinfo, tree, hf_dap_req);
2368 }
2369
2370
2371
2372 static int
2373 dissect_dap_T_rep(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2374 #line 138 "dap.cnf"
2375         /* XXX: not yet implemented */
2376
2377
2378
2379   return offset;
2380 }
2381 static int dissect_rep(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2382   return dissect_dap_T_rep(FALSE, tvb, offset, pinfo, tree, hf_dap_rep);
2383 }
2384
2385
2386 static const value_string dap_SpkmCredentials_vals[] = {
2387   {   0, "req" },
2388   {   1, "rep" },
2389   { 0, NULL }
2390 };
2391
2392 static const ber_choice_t SpkmCredentials_choice[] = {
2393   {   0, BER_CLASS_CON, 0, 0, dissect_req },
2394   {   1, BER_CLASS_CON, 1, 0, dissect_rep },
2395   { 0, 0, 0, 0, NULL }
2396 };
2397
2398 static int
2399 dissect_dap_SpkmCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2400   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2401                                  SpkmCredentials_choice, hf_index, ett_dap_SpkmCredentials,
2402                                  NULL);
2403
2404   return offset;
2405 }
2406 static int dissect_spkm(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2407   return dissect_dap_SpkmCredentials(FALSE, tvb, offset, pinfo, tree, hf_dap_spkm);
2408 }
2409
2410
2411 static const value_string dap_Credentials_vals[] = {
2412   {   0, "simple" },
2413   {   1, "strong" },
2414   {   2, "externalProcedure" },
2415   {   3, "spkm" },
2416   { 0, NULL }
2417 };
2418
2419 static const ber_choice_t Credentials_choice[] = {
2420   {   0, BER_CLASS_CON, 0, 0, dissect_simple },
2421   {   1, BER_CLASS_CON, 1, 0, dissect_strong },
2422   {   2, BER_CLASS_CON, 2, 0, dissect_externalProcedure },
2423   {   3, BER_CLASS_CON, 3, 0, dissect_spkm },
2424   { 0, 0, 0, 0, NULL }
2425 };
2426
2427 static int
2428 dissect_dap_Credentials(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2429   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2430                                  Credentials_choice, hf_index, ett_dap_Credentials,
2431                                  NULL);
2432
2433   return offset;
2434 }
2435 static int dissect_credentials(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2436   return dissect_dap_Credentials(FALSE, tvb, offset, pinfo, tree, hf_dap_credentials);
2437 }
2438
2439
2440 static const asn_namedbit Versions_bits[] = {
2441   {  0, &hf_dap_Versions_v1, -1, -1, "v1", NULL },
2442   {  1, &hf_dap_Versions_v2, -1, -1, "v2", NULL },
2443   { 0, NULL, 0, 0, NULL, NULL }
2444 };
2445
2446 static int
2447 dissect_dap_Versions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2448   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
2449                                     Versions_bits, hf_index, ett_dap_Versions,
2450                                     NULL);
2451
2452   return offset;
2453 }
2454 static int dissect_versions(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2455   return dissect_dap_Versions(FALSE, tvb, offset, pinfo, tree, hf_dap_versions);
2456 }
2457
2458
2459 static const ber_sequence_t DirectoryBindArgument_set[] = {
2460   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_credentials },
2461   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_versions },
2462   { 0, 0, 0, NULL }
2463 };
2464
2465 int
2466 dissect_dap_DirectoryBindArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2467 #line 144 "dap.cnf"
2468
2469         guint32 len;
2470
2471         /* check and see if this is an empty set */
2472         dissect_ber_length(pinfo, tree, tvb, offset+1, &len, NULL);
2473
2474         if(len == 0) {
2475                 /* its an empty set - i.e anonymous  (assuming version is DEFAULTed) */
2476                 proto_tree_add_text(tree, tvb, offset, -1,"Anonymous");
2477
2478                 if(check_col(pinfo->cinfo, COL_INFO))
2479                         col_append_fstr(pinfo->cinfo, COL_INFO, " anonymous");
2480
2481         }
2482         /* do the default thing */
2483
2484           offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2485                               DirectoryBindArgument_set, hf_index, ett_dap_DirectoryBindArgument);
2486         
2487
2488
2489
2490   return offset;
2491 }
2492
2493
2494
2495 static int
2496 dissect_dap_DirectoryBindResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2497   offset = dissect_dap_DirectoryBindArgument(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2498
2499   return offset;
2500 }
2501
2502
2503 static const value_string dap_ServiceProblem_vals[] = {
2504   {   1, "busy" },
2505   {   2, "unavailable" },
2506   {   3, "unwillingToPerform" },
2507   {   4, "chainingRequired" },
2508   {   5, "unableToProceed" },
2509   {   6, "invalidReference" },
2510   {   7, "timeLimitExceeded" },
2511   {   8, "administrativeLimitExceeded" },
2512   {   9, "loopDetected" },
2513   {  10, "unavailableCriticalExtension" },
2514   {  11, "outOfScope" },
2515   {  12, "ditError" },
2516   {  13, "invalidQueryReference" },
2517   {  14, "requestedServiceNotAvailable" },
2518   {  15, "relaxationNotSupported" },
2519   {  16, "unsupportedMatchingUse" },
2520   { 0, NULL }
2521 };
2522
2523
2524 static int
2525 dissect_dap_ServiceProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2526 #line 214 "dap.cnf"
2527   guint32 problem;
2528
2529     offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2530                                   &problem);
2531
2532
2533   if (check_col(pinfo->cinfo, COL_INFO)) {
2534         col_append_fstr(pinfo->cinfo, COL_INFO, " %s", val_to_str(problem, dap_ServiceProblem_vals, "ServiceProblem(%d)"));
2535   }
2536
2537
2538
2539   return offset;
2540 }
2541 static int dissect_serviceProblem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2542   return dissect_dap_ServiceProblem(FALSE, tvb, offset, pinfo, tree, hf_dap_serviceProblem);
2543 }
2544 static int dissect_service_error_problem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2545   return dissect_dap_ServiceProblem(FALSE, tvb, offset, pinfo, tree, hf_dap_service_error_problem);
2546 }
2547
2548
2549 static const value_string dap_SecurityProblem_vals[] = {
2550   {   1, "inappropriateAuthentication" },
2551   {   2, "invalidCredentials" },
2552   {   3, "insufficientAccessRights" },
2553   {   4, "invalidSignature" },
2554   {   5, "protectionRequired" },
2555   {   6, "noInformation" },
2556   {   7, "blockedCredentials" },
2557   {   8, "invalidQOPMatch" },
2558   {   9, "spkmError" },
2559   { 0, NULL }
2560 };
2561
2562
2563 static int
2564 dissect_dap_SecurityProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2565 #line 202 "dap.cnf"
2566   guint32 problem;
2567
2568     offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2569                                   &problem);
2570
2571
2572   if (check_col(pinfo->cinfo, COL_INFO)) {
2573         col_append_fstr(pinfo->cinfo, COL_INFO, " %s", val_to_str(problem, dap_SecurityProblem_vals, "SecurityProblem(%d)"));
2574   }
2575
2576
2577
2578   return offset;
2579 }
2580 static int dissect_securityProblem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2581   return dissect_dap_SecurityProblem(FALSE, tvb, offset, pinfo, tree, hf_dap_securityProblem);
2582 }
2583 static int dissect_security_error_problem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2584   return dissect_dap_SecurityProblem(FALSE, tvb, offset, pinfo, tree, hf_dap_security_error_problem);
2585 }
2586
2587
2588 static const value_string dap_T_error_vals[] = {
2589   {   1, "serviceError" },
2590   {   2, "securityError" },
2591   { 0, NULL }
2592 };
2593
2594 static const ber_choice_t T_error_choice[] = {
2595   {   1, BER_CLASS_CON, 1, 0, dissect_serviceProblem },
2596   {   2, BER_CLASS_CON, 2, 0, dissect_securityProblem },
2597   { 0, 0, 0, 0, NULL }
2598 };
2599
2600 static int
2601 dissect_dap_T_error(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2602   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2603                                  T_error_choice, hf_index, ett_dap_T_error,
2604                                  NULL);
2605
2606   return offset;
2607 }
2608 static int dissect_error(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2609   return dissect_dap_T_error(FALSE, tvb, offset, pinfo, tree, hf_dap_error);
2610 }
2611
2612
2613 static const ber_sequence_t DirectoryBindErrorData_set[] = {
2614   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_versions },
2615   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_error },
2616   { 0, 0, 0, NULL }
2617 };
2618
2619 static int
2620 dissect_dap_DirectoryBindErrorData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2621   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2622                               DirectoryBindErrorData_set, hf_index, ett_dap_DirectoryBindErrorData);
2623
2624   return offset;
2625 }
2626 static int dissect_unsignedDirectoryBindError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2627   return dissect_dap_DirectoryBindErrorData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedDirectoryBindError);
2628 }
2629 static int dissect_directoryBindError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2630   return dissect_dap_DirectoryBindErrorData(FALSE, tvb, offset, pinfo, tree, hf_dap_directoryBindError);
2631 }
2632
2633
2634 static const ber_sequence_t T_signedDirectoryBindError_sequence[] = {
2635   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_directoryBindError },
2636   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
2637   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
2638   { 0, 0, 0, NULL }
2639 };
2640
2641 static int
2642 dissect_dap_T_signedDirectoryBindError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2643   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2644                                    T_signedDirectoryBindError_sequence, hf_index, ett_dap_T_signedDirectoryBindError);
2645
2646   return offset;
2647 }
2648 static int dissect_signedDirectoryBindError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2649   return dissect_dap_T_signedDirectoryBindError(FALSE, tvb, offset, pinfo, tree, hf_dap_signedDirectoryBindError);
2650 }
2651
2652
2653 const value_string dap_DirectoryBindError_vals[] = {
2654   {   0, "unsignedDirectoryBindError" },
2655   {   1, "signedDirectoryBindError" },
2656   { 0, NULL }
2657 };
2658
2659 static const ber_choice_t DirectoryBindError_choice[] = {
2660   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedDirectoryBindError },
2661   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedDirectoryBindError },
2662   { 0, 0, 0, 0, NULL }
2663 };
2664
2665 int
2666 dissect_dap_DirectoryBindError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2667   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2668                                  DirectoryBindError_choice, hf_index, ett_dap_DirectoryBindError,
2669                                  NULL);
2670
2671   return offset;
2672 }
2673
2674
2675 static const ber_sequence_t ReadArgumentData_set[] = {
2676   { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_object },
2677   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_selection },
2678   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_modifyRightsRequest },
2679   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_serviceControls },
2680   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_securityParameters },
2681   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_requestor },
2682   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_operationProgress },
2683   { BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_aliasedRDNs },
2684   { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_criticalExtensions },
2685   { BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_referenceType },
2686   { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_entryOnly },
2687   { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_nameResolveOnMaster },
2688   { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_operationContexts },
2689   { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_familyGrouping },
2690   { 0, 0, 0, NULL }
2691 };
2692
2693 static int
2694 dissect_dap_ReadArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2695   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2696                               ReadArgumentData_set, hf_index, ett_dap_ReadArgumentData);
2697
2698   return offset;
2699 }
2700 static int dissect_unsignedReadArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2701   return dissect_dap_ReadArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedReadArgument);
2702 }
2703 static int dissect_readArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2704   return dissect_dap_ReadArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dap_readArgument);
2705 }
2706
2707
2708 static const ber_sequence_t T_signedReadArgument_sequence[] = {
2709   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_readArgument },
2710   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
2711   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
2712   { 0, 0, 0, NULL }
2713 };
2714
2715 static int
2716 dissect_dap_T_signedReadArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2717   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2718                                    T_signedReadArgument_sequence, hf_index, ett_dap_T_signedReadArgument);
2719
2720   return offset;
2721 }
2722 static int dissect_signedReadArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2723   return dissect_dap_T_signedReadArgument(FALSE, tvb, offset, pinfo, tree, hf_dap_signedReadArgument);
2724 }
2725
2726
2727 const value_string dap_ReadArgument_vals[] = {
2728   {   0, "unsignedReadArgument" },
2729   {   1, "signedReadArgument" },
2730   { 0, NULL }
2731 };
2732
2733 static const ber_choice_t ReadArgument_choice[] = {
2734   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedReadArgument },
2735   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedReadArgument },
2736   { 0, 0, 0, 0, NULL }
2737 };
2738
2739 int
2740 dissect_dap_ReadArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2741   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2742                                  ReadArgument_choice, hf_index, ett_dap_ReadArgument,
2743                                  NULL);
2744
2745   return offset;
2746 }
2747
2748
2749 static const value_string dap_T_item_vals[] = {
2750   {   0, "entry" },
2751   {   1, "attribute" },
2752   {   2, "value" },
2753   { 0, NULL }
2754 };
2755
2756 static const ber_choice_t T_item_choice[] = {
2757   {   0, BER_CLASS_CON, 0, 0, dissect_item_entry },
2758   {   1, BER_CLASS_CON, 1, 0, dissect_attribute_type },
2759   {   2, BER_CLASS_CON, 2, 0, dissect_value_assertion },
2760   { 0, 0, 0, 0, NULL }
2761 };
2762
2763 static int
2764 dissect_dap_T_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2765   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2766                                  T_item_choice, hf_index, ett_dap_T_item,
2767                                  NULL);
2768
2769   return offset;
2770 }
2771 static int dissect_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2772   return dissect_dap_T_item(FALSE, tvb, offset, pinfo, tree, hf_dap_item);
2773 }
2774
2775
2776 static const asn_namedbit T_permission_bits[] = {
2777   {  0, &hf_dap_T_permission_add, -1, -1, "add", NULL },
2778   {  1, &hf_dap_T_permission_remove, -1, -1, "remove", NULL },
2779   {  2, &hf_dap_T_permission_rename, -1, -1, "rename", NULL },
2780   {  3, &hf_dap_T_permission_move, -1, -1, "move", NULL },
2781   { 0, NULL, 0, 0, NULL, NULL }
2782 };
2783
2784 static int
2785 dissect_dap_T_permission(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2786   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
2787                                     T_permission_bits, hf_index, ett_dap_T_permission,
2788                                     NULL);
2789
2790   return offset;
2791 }
2792 static int dissect_permission(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2793   return dissect_dap_T_permission(FALSE, tvb, offset, pinfo, tree, hf_dap_permission);
2794 }
2795
2796
2797 static const ber_sequence_t ModifyRights_item_sequence[] = {
2798   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_item },
2799   { BER_CLASS_CON, 3, 0, dissect_permission },
2800   { 0, 0, 0, NULL }
2801 };
2802
2803 static int
2804 dissect_dap_ModifyRights_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2805   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2806                                    ModifyRights_item_sequence, hf_index, ett_dap_ModifyRights_item);
2807
2808   return offset;
2809 }
2810 static int dissect_ModifyRights_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2811   return dissect_dap_ModifyRights_item(FALSE, tvb, offset, pinfo, tree, hf_dap_ModifyRights_item);
2812 }
2813
2814
2815 static const ber_sequence_t ModifyRights_set_of[1] = {
2816   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ModifyRights_item },
2817 };
2818
2819 static int
2820 dissect_dap_ModifyRights(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2821   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
2822                                  ModifyRights_set_of, hf_index, ett_dap_ModifyRights);
2823
2824   return offset;
2825 }
2826 static int dissect_modifyRights(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2827   return dissect_dap_ModifyRights(FALSE, tvb, offset, pinfo, tree, hf_dap_modifyRights);
2828 }
2829
2830
2831 static const ber_sequence_t ReadResultData_set[] = {
2832   { BER_CLASS_CON, 0, 0, dissect_entry },
2833   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_modifyRights },
2834   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
2835   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
2836   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
2837   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
2838   { 0, 0, 0, NULL }
2839 };
2840
2841 static int
2842 dissect_dap_ReadResultData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2843   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2844                               ReadResultData_set, hf_index, ett_dap_ReadResultData);
2845
2846   return offset;
2847 }
2848 static int dissect_unsignedReadResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2849   return dissect_dap_ReadResultData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedReadResult);
2850 }
2851 static int dissect_readResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2852   return dissect_dap_ReadResultData(FALSE, tvb, offset, pinfo, tree, hf_dap_readResult);
2853 }
2854
2855
2856 static const ber_sequence_t T_signedReadResult_sequence[] = {
2857   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_readResult },
2858   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
2859   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
2860   { 0, 0, 0, NULL }
2861 };
2862
2863 static int
2864 dissect_dap_T_signedReadResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2865   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2866                                    T_signedReadResult_sequence, hf_index, ett_dap_T_signedReadResult);
2867
2868   return offset;
2869 }
2870 static int dissect_signedReadResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2871   return dissect_dap_T_signedReadResult(FALSE, tvb, offset, pinfo, tree, hf_dap_signedReadResult);
2872 }
2873
2874
2875 const value_string dap_ReadResult_vals[] = {
2876   {   0, "unsignedReadResult" },
2877   {   1, "signedReadResult" },
2878   { 0, NULL }
2879 };
2880
2881 static const ber_choice_t ReadResult_choice[] = {
2882   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedReadResult },
2883   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedReadResult },
2884   { 0, 0, 0, 0, NULL }
2885 };
2886
2887 int
2888 dissect_dap_ReadResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2889   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2890                                  ReadResult_choice, hf_index, ett_dap_ReadResult,
2891                                  NULL);
2892
2893   return offset;
2894 }
2895
2896
2897 static const ber_sequence_t CompareArgumentData_set[] = {
2898   { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_object },
2899   { BER_CLASS_CON, 1, 0, dissect_purported },
2900   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_serviceControls },
2901   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_securityParameters },
2902   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_requestor },
2903   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_operationProgress },
2904   { BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_aliasedRDNs },
2905   { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_criticalExtensions },
2906   { BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_referenceType },
2907   { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_entryOnly },
2908   { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_nameResolveOnMaster },
2909   { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_operationContexts },
2910   { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_familyGrouping },
2911   { 0, 0, 0, NULL }
2912 };
2913
2914 static int
2915 dissect_dap_CompareArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2916   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2917                               CompareArgumentData_set, hf_index, ett_dap_CompareArgumentData);
2918
2919   return offset;
2920 }
2921 static int dissect_unsignedCompareArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2922   return dissect_dap_CompareArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedCompareArgument);
2923 }
2924 static int dissect_compareArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2925   return dissect_dap_CompareArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dap_compareArgument);
2926 }
2927
2928
2929 static const ber_sequence_t T_signedCompareArgument_sequence[] = {
2930   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_compareArgument },
2931   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
2932   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
2933   { 0, 0, 0, NULL }
2934 };
2935
2936 static int
2937 dissect_dap_T_signedCompareArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2938   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2939                                    T_signedCompareArgument_sequence, hf_index, ett_dap_T_signedCompareArgument);
2940
2941   return offset;
2942 }
2943 static int dissect_signedCompareArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2944   return dissect_dap_T_signedCompareArgument(FALSE, tvb, offset, pinfo, tree, hf_dap_signedCompareArgument);
2945 }
2946
2947
2948 const value_string dap_CompareArgument_vals[] = {
2949   {   0, "unsignedCompareArgument" },
2950   {   1, "signedCompareArgument" },
2951   { 0, NULL }
2952 };
2953
2954 static const ber_choice_t CompareArgument_choice[] = {
2955   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedCompareArgument },
2956   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedCompareArgument },
2957   { 0, 0, 0, 0, NULL }
2958 };
2959
2960 int
2961 dissect_dap_CompareArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2962   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2963                                  CompareArgument_choice, hf_index, ett_dap_CompareArgument,
2964                                  NULL);
2965
2966   return offset;
2967 }
2968
2969
2970 static const ber_sequence_t CompareResultData_set[] = {
2971   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_name },
2972   { BER_CLASS_CON, 0, 0, dissect_matched },
2973   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_fromEntry },
2974   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_matchedSubtype },
2975   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
2976   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
2977   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
2978   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
2979   { 0, 0, 0, NULL }
2980 };
2981
2982 static int
2983 dissect_dap_CompareResultData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2984   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
2985                               CompareResultData_set, hf_index, ett_dap_CompareResultData);
2986
2987   return offset;
2988 }
2989 static int dissect_unsignedCompareResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2990   return dissect_dap_CompareResultData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedCompareResult);
2991 }
2992 static int dissect_compareResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2993   return dissect_dap_CompareResultData(FALSE, tvb, offset, pinfo, tree, hf_dap_compareResult);
2994 }
2995
2996
2997 static const ber_sequence_t T_signedCompareResult_sequence[] = {
2998   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_compareResult },
2999   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
3000   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
3001   { 0, 0, 0, NULL }
3002 };
3003
3004 static int
3005 dissect_dap_T_signedCompareResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3006   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3007                                    T_signedCompareResult_sequence, hf_index, ett_dap_T_signedCompareResult);
3008
3009   return offset;
3010 }
3011 static int dissect_signedCompareResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3012   return dissect_dap_T_signedCompareResult(FALSE, tvb, offset, pinfo, tree, hf_dap_signedCompareResult);
3013 }
3014
3015
3016 const value_string dap_CompareResult_vals[] = {
3017   {   0, "unsignedCompareResult" },
3018   {   1, "signedCompareResult" },
3019   { 0, NULL }
3020 };
3021
3022 static const ber_choice_t CompareResult_choice[] = {
3023   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedCompareResult },
3024   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedCompareResult },
3025   { 0, 0, 0, 0, NULL }
3026 };
3027
3028 int
3029 dissect_dap_CompareResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3030   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3031                                  CompareResult_choice, hf_index, ett_dap_CompareResult,
3032                                  NULL);
3033
3034   return offset;
3035 }
3036
3037
3038 static const ber_sequence_t AbandonArgumentData_sequence[] = {
3039   { BER_CLASS_CON, 0, 0, dissect_invokeID },
3040   { 0, 0, 0, NULL }
3041 };
3042
3043 static int
3044 dissect_dap_AbandonArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3045   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3046                                    AbandonArgumentData_sequence, hf_index, ett_dap_AbandonArgumentData);
3047
3048   return offset;
3049 }
3050 static int dissect_unsignedAbandonArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3051   return dissect_dap_AbandonArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedAbandonArgument);
3052 }
3053 static int dissect_abandonArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3054   return dissect_dap_AbandonArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dap_abandonArgument);
3055 }
3056
3057
3058 static const ber_sequence_t T_signedAbandonArgument_sequence[] = {
3059   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_abandonArgument },
3060   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
3061   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
3062   { 0, 0, 0, NULL }
3063 };
3064
3065 static int
3066 dissect_dap_T_signedAbandonArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3067   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3068                                    T_signedAbandonArgument_sequence, hf_index, ett_dap_T_signedAbandonArgument);
3069
3070   return offset;
3071 }
3072 static int dissect_signedAbandonArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3073   return dissect_dap_T_signedAbandonArgument(FALSE, tvb, offset, pinfo, tree, hf_dap_signedAbandonArgument);
3074 }
3075
3076
3077 const value_string dap_AbandonArgument_vals[] = {
3078   {   0, "unsignedAbandonArgument" },
3079   {   1, "signedAbandonArgument" },
3080   { 0, NULL }
3081 };
3082
3083 static const ber_choice_t AbandonArgument_choice[] = {
3084   {   0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_unsignedAbandonArgument },
3085   {   1, BER_CLASS_CON, 0, 0, dissect_signedAbandonArgument },
3086   { 0, 0, 0, 0, NULL }
3087 };
3088
3089 int
3090 dissect_dap_AbandonArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3091   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3092                                  AbandonArgument_choice, hf_index, ett_dap_AbandonArgument,
3093                                  NULL);
3094
3095   return offset;
3096 }
3097
3098
3099 static const ber_sequence_t AbandonResultData_sequence[] = {
3100   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_invokeID },
3101   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
3102   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
3103   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
3104   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
3105   { 0, 0, 0, NULL }
3106 };
3107
3108 static int
3109 dissect_dap_AbandonResultData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3110   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3111                                    AbandonResultData_sequence, hf_index, ett_dap_AbandonResultData);
3112
3113   return offset;
3114 }
3115 static int dissect_unsignedAbandonResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3116   return dissect_dap_AbandonResultData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedAbandonResult);
3117 }
3118 static int dissect_abandonResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3119   return dissect_dap_AbandonResultData(FALSE, tvb, offset, pinfo, tree, hf_dap_abandonResult);
3120 }
3121
3122
3123 static const ber_sequence_t T_signedAbandonResult_sequence[] = {
3124   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_abandonResult },
3125   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
3126   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
3127   { 0, 0, 0, NULL }
3128 };
3129
3130 static int
3131 dissect_dap_T_signedAbandonResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3132   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3133                                    T_signedAbandonResult_sequence, hf_index, ett_dap_T_signedAbandonResult);
3134
3135   return offset;
3136 }
3137 static int dissect_signedAbandonResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3138   return dissect_dap_T_signedAbandonResult(FALSE, tvb, offset, pinfo, tree, hf_dap_signedAbandonResult);
3139 }
3140
3141
3142 static const value_string dap_AbandonInformation_vals[] = {
3143   {   0, "unsignedAbandonResult" },
3144   {   1, "signedAbandonResult" },
3145   { 0, NULL }
3146 };
3147
3148 static const ber_choice_t AbandonInformation_choice[] = {
3149   {   0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_unsignedAbandonResult },
3150   {   1, BER_CLASS_CON, 0, 0, dissect_signedAbandonResult },
3151   { 0, 0, 0, 0, NULL }
3152 };
3153
3154 static int
3155 dissect_dap_AbandonInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3156   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3157                                  AbandonInformation_choice, hf_index, ett_dap_AbandonInformation,
3158                                  NULL);
3159
3160   return offset;
3161 }
3162 static int dissect_abandon_information(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3163   return dissect_dap_AbandonInformation(FALSE, tvb, offset, pinfo, tree, hf_dap_abandon_information);
3164 }
3165
3166
3167 const value_string dap_AbandonResult_vals[] = {
3168   {   0, "null" },
3169   {   1, "information" },
3170   { 0, NULL }
3171 };
3172
3173 static const ber_choice_t AbandonResult_choice[] = {
3174   {   0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_null },
3175   {   1, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_abandon_information },
3176   { 0, 0, 0, 0, NULL }
3177 };
3178
3179 int
3180 dissect_dap_AbandonResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3181   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3182                                  AbandonResult_choice, hf_index, ett_dap_AbandonResult,
3183                                  NULL);
3184
3185   return offset;
3186 }
3187
3188
3189 static const ber_sequence_t ListArgumentData_set[] = {
3190   { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_object },
3191   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_pagedResults },
3192   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_listFamily },
3193   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_serviceControls },
3194   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_securityParameters },
3195   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_requestor },
3196   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_operationProgress },
3197   { BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_aliasedRDNs },
3198   { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_criticalExtensions },
3199   { BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_referenceType },
3200   { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_entryOnly },
3201   { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_nameResolveOnMaster },
3202   { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_operationContexts },
3203   { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_familyGrouping },
3204   { 0, 0, 0, NULL }
3205 };
3206
3207 static int
3208 dissect_dap_ListArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3209   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3210                               ListArgumentData_set, hf_index, ett_dap_ListArgumentData);
3211
3212   return offset;
3213 }
3214 static int dissect_unsignedListArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3215   return dissect_dap_ListArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedListArgument);
3216 }
3217 static int dissect_listArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3218   return dissect_dap_ListArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dap_listArgument);
3219 }
3220
3221
3222 static const ber_sequence_t T_signedListArgument_sequence[] = {
3223   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_listArgument },
3224   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
3225   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
3226   { 0, 0, 0, NULL }
3227 };
3228
3229 static int
3230 dissect_dap_T_signedListArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3231   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3232                                    T_signedListArgument_sequence, hf_index, ett_dap_T_signedListArgument);
3233
3234   return offset;
3235 }
3236 static int dissect_signedListArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3237   return dissect_dap_T_signedListArgument(FALSE, tvb, offset, pinfo, tree, hf_dap_signedListArgument);
3238 }
3239
3240
3241 const value_string dap_ListArgument_vals[] = {
3242   {   0, "unsignedListArgument" },
3243   {   1, "signedListArgument" },
3244   { 0, NULL }
3245 };
3246
3247 static const ber_choice_t ListArgument_choice[] = {
3248   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedListArgument },
3249   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedListArgument },
3250   { 0, 0, 0, 0, NULL }
3251 };
3252
3253 int
3254 dissect_dap_ListArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3255   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3256                                  ListArgument_choice, hf_index, ett_dap_ListArgument,
3257                                  NULL);
3258
3259   return offset;
3260 }
3261
3262
3263 static const ber_sequence_t T_subordinates_item_sequence[] = {
3264   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_rdn },
3265   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_aliasEntry },
3266   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_fromEntry },
3267   { 0, 0, 0, NULL }
3268 };
3269
3270 static int
3271 dissect_dap_T_subordinates_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3272 #line 270 "dap.cnf"
3273         proto_item *sub_item;
3274
3275           offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3276                                    T_subordinates_item_sequence, hf_index, ett_dap_T_subordinates_item);
3277
3278
3279         if((sub_item = get_ber_last_created_item())) {
3280                 
3281                 proto_item_append_text(sub_item," (%s)", x509if_get_last_dn());
3282         }
3283
3284
3285
3286   return offset;
3287 }
3288 static int dissect_subordinates_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3289   return dissect_dap_T_subordinates_item(FALSE, tvb, offset, pinfo, tree, hf_dap_subordinates_item);
3290 }
3291
3292
3293 static const ber_sequence_t T_subordinates_set_of[1] = {
3294   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_subordinates_item },
3295 };
3296
3297 static int
3298 dissect_dap_T_subordinates(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3299   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
3300                                  T_subordinates_set_of, hf_index, ett_dap_T_subordinates);
3301
3302   return offset;
3303 }
3304 static int dissect_subordinates(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3305   return dissect_dap_T_subordinates(FALSE, tvb, offset, pinfo, tree, hf_dap_subordinates);
3306 }
3307
3308
3309 static const value_string dap_LimitProblem_vals[] = {
3310   {   0, "timeLimitExceeded" },
3311   {   1, "sizeLimitExceeded" },
3312   {   2, "administrativeLimitExceeded" },
3313   { 0, NULL }
3314 };
3315
3316
3317 static int
3318 dissect_dap_LimitProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3319 #line 238 "dap.cnf"
3320   guint32 problem;
3321
3322     offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3323                                   &problem);
3324
3325
3326   if (check_col(pinfo->cinfo, COL_INFO)) {
3327         col_append_fstr(pinfo->cinfo, COL_INFO, " %s", val_to_str(problem, dap_LimitProblem_vals, "LimitProblem(%d)"));
3328   }
3329
3330
3331
3332   return offset;
3333 }
3334 static int dissect_limitProblem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3335   return dissect_dap_LimitProblem(FALSE, tvb, offset, pinfo, tree, hf_dap_limitProblem);
3336 }
3337
3338
3339 static const ber_sequence_t SET_OF_ContinuationReference_set_of[1] = {
3340   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unexplored_item },
3341 };
3342
3343 static int
3344 dissect_dap_SET_OF_ContinuationReference(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3345   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
3346                                  SET_OF_ContinuationReference_set_of, hf_index, ett_dap_SET_OF_ContinuationReference);
3347
3348   return offset;
3349 }
3350 static int dissect_unexplored(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3351   return dissect_dap_SET_OF_ContinuationReference(FALSE, tvb, offset, pinfo, tree, hf_dap_unexplored);
3352 }
3353
3354
3355 static const ber_sequence_t T_unknownErrors_set_of[1] = {
3356   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_unknownErrors_item },
3357 };
3358
3359 static int
3360 dissect_dap_T_unknownErrors(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3361   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
3362                                  T_unknownErrors_set_of, hf_index, ett_dap_T_unknownErrors);
3363
3364   return offset;
3365 }
3366 static int dissect_unknownErrors(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3367   return dissect_dap_T_unknownErrors(FALSE, tvb, offset, pinfo, tree, hf_dap_unknownErrors);
3368 }
3369
3370
3371 static const value_string dap_T_entryCount_vals[] = {
3372   {   7, "bestEstimate" },
3373   {   8, "lowEstimate" },
3374   { 0, NULL }
3375 };
3376
3377 static const ber_choice_t T_entryCount_choice[] = {
3378   {   7, BER_CLASS_CON, 7, 0, dissect_bestEstimate },
3379   {   8, BER_CLASS_CON, 8, 0, dissect_lowEstimate },
3380   { 0, 0, 0, 0, NULL }
3381 };
3382
3383 static int
3384 dissect_dap_T_entryCount(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3385   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3386                                  T_entryCount_choice, hf_index, ett_dap_T_entryCount,
3387                                  NULL);
3388
3389   return offset;
3390 }
3391 static int dissect_entryCount(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3392   return dissect_dap_T_entryCount(FALSE, tvb, offset, pinfo, tree, hf_dap_entryCount);
3393 }
3394
3395
3396 static const ber_sequence_t PartialOutcomeQualifier_set[] = {
3397   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_limitProblem },
3398   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_unexplored },
3399   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_unavailableCriticalExtensions },
3400   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_unknownErrors },
3401   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_queryReference },
3402   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_overspecFilter },
3403   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_notification },
3404   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_entryCount },
3405   { 0, 0, 0, NULL }
3406 };
3407
3408 static int
3409 dissect_dap_PartialOutcomeQualifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3410   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3411                               PartialOutcomeQualifier_set, hf_index, ett_dap_PartialOutcomeQualifier);
3412
3413   return offset;
3414 }
3415 static int dissect_partialOutcomeQualifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3416   return dissect_dap_PartialOutcomeQualifier(FALSE, tvb, offset, pinfo, tree, hf_dap_partialOutcomeQualifier);
3417 }
3418
3419
3420 static const ber_sequence_t T_listInfo_set[] = {
3421   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_name },
3422   { BER_CLASS_CON, 1, 0, dissect_subordinates },
3423   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_partialOutcomeQualifier },
3424   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
3425   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
3426   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
3427   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
3428   { 0, 0, 0, NULL }
3429 };
3430
3431 static int
3432 dissect_dap_T_listInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3433   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3434                               T_listInfo_set, hf_index, ett_dap_T_listInfo);
3435
3436   return offset;
3437 }
3438 static int dissect_listInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3439   return dissect_dap_T_listInfo(FALSE, tvb, offset, pinfo, tree, hf_dap_listInfo);
3440 }
3441
3442
3443 static const ber_sequence_t T_signedListResult_sequence[] = {
3444   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_listResult },
3445   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
3446   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
3447   { 0, 0, 0, NULL }
3448 };
3449
3450 static int
3451 dissect_dap_T_signedListResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3452   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3453                                    T_signedListResult_sequence, hf_index, ett_dap_T_signedListResult);
3454
3455   return offset;
3456 }
3457 static int dissect_signedListResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3458   return dissect_dap_T_signedListResult(FALSE, tvb, offset, pinfo, tree, hf_dap_signedListResult);
3459 }
3460
3461
3462 const value_string dap_ListResult_vals[] = {
3463   {   0, "unsignedListResult" },
3464   {   1, "signedListResult" },
3465   { 0, NULL }
3466 };
3467
3468 static const ber_choice_t ListResult_choice[] = {
3469   {   0, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_unsignedListResult },
3470   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedListResult },
3471   { 0, 0, 0, 0, NULL }
3472 };
3473
3474 int
3475 dissect_dap_ListResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3476   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3477                                  ListResult_choice, hf_index, ett_dap_ListResult,
3478                                  NULL);
3479
3480   return offset;
3481 }
3482 static int dissect_uncorrelatedListInfo_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3483   return dissect_dap_ListResult(FALSE, tvb, offset, pinfo, tree, hf_dap_uncorrelatedListInfo_item);
3484 }
3485
3486
3487 static const ber_sequence_t SET_OF_ListResult_set_of[1] = {
3488   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_uncorrelatedListInfo_item },
3489 };
3490
3491 static int
3492 dissect_dap_SET_OF_ListResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3493   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
3494                                  SET_OF_ListResult_set_of, hf_index, ett_dap_SET_OF_ListResult);
3495
3496   return offset;
3497 }
3498 static int dissect_uncorrelatedListInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3499   return dissect_dap_SET_OF_ListResult(FALSE, tvb, offset, pinfo, tree, hf_dap_uncorrelatedListInfo);
3500 }
3501
3502
3503 static const value_string dap_ListResultData_vals[] = {
3504   {   0, "listInfo" },
3505   {   1, "uncorrelatedListInfo" },
3506   { 0, NULL }
3507 };
3508
3509 static const ber_choice_t ListResultData_choice[] = {
3510   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_listInfo },
3511   {   1, BER_CLASS_CON, 0, 0, dissect_uncorrelatedListInfo },
3512   { 0, 0, 0, 0, NULL }
3513 };
3514
3515 static int
3516 dissect_dap_ListResultData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3517   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3518                                  ListResultData_choice, hf_index, ett_dap_ListResultData,
3519                                  NULL);
3520
3521   return offset;
3522 }
3523
3524
3525 static const value_string dap_T_subset_vals[] = {
3526   {   0, "baseObject" },
3527   {   1, "oneLevel" },
3528   {   2, "wholeSubtree" },
3529   { 0, NULL }
3530 };
3531
3532
3533 static int
3534 dissect_dap_T_subset(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3535 #line 250 "dap.cnf"
3536   guint32 subset;
3537
3538     offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3539                                   &subset);
3540
3541
3542   if (check_col(pinfo->cinfo, COL_INFO)) {
3543         col_append_fstr(pinfo->cinfo, COL_INFO, " %s", val_to_str(subset, dap_T_subset_vals, "Subset(%d)"));
3544   }
3545
3546
3547
3548
3549   return offset;
3550 }
3551 static int dissect_subset(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3552   return dissect_dap_T_subset(FALSE, tvb, offset, pinfo, tree, hf_dap_subset);
3553 }
3554
3555
3556 static const asn_namedbit HierarchySelections_bits[] = {
3557   {  0, &hf_dap_HierarchySelections_self, -1, -1, "self", NULL },
3558   {  1, &hf_dap_HierarchySelections_children, -1, -1, "children", NULL },
3559   {  2, &hf_dap_HierarchySelections_parent, -1, -1, "parent", NULL },
3560   {  3, &hf_dap_HierarchySelections_hierarchy, -1, -1, "hierarchy", NULL },
3561   {  4, &hf_dap_HierarchySelections_top, -1, -1, "top", NULL },
3562   {  5, &hf_dap_HierarchySelections_subtree, -1, -1, "subtree", NULL },
3563   {  6, &hf_dap_HierarchySelections_siblings, -1, -1, "siblings", NULL },
3564   {  7, &hf_dap_HierarchySelections_siblingChildren, -1, -1, "siblingChildren", NULL },
3565   {  8, &hf_dap_HierarchySelections_siblingSubtree, -1, -1, "siblingSubtree", NULL },
3566   {  9, &hf_dap_HierarchySelections_all, -1, -1, "all", NULL },
3567   { 0, NULL, 0, 0, NULL, NULL }
3568 };
3569
3570 static int
3571 dissect_dap_HierarchySelections(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3572   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
3573                                     HierarchySelections_bits, hf_index, ett_dap_HierarchySelections,
3574                                     NULL);
3575
3576   return offset;
3577 }
3578 static int dissect_hierarchySelections(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3579   return dissect_dap_HierarchySelections(FALSE, tvb, offset, pinfo, tree, hf_dap_hierarchySelections);
3580 }
3581
3582
3583 static const asn_namedbit SearchControlOptions_bits[] = {
3584   {  0, &hf_dap_SearchControlOptions_searchAliases, -1, -1, "searchAliases", NULL },
3585   {  1, &hf_dap_SearchControlOptions_matchedValuesOnly, -1, -1, "matchedValuesOnly", NULL },
3586   {  2, &hf_dap_SearchControlOptions_checkOverspecified, -1, -1, "checkOverspecified", NULL },
3587   {  3, &hf_dap_SearchControlOptions_performExactly, -1, -1, "performExactly", NULL },
3588   {  4, &hf_dap_SearchControlOptions_includeAllAreas, -1, -1, "includeAllAreas", NULL },
3589   {  5, &hf_dap_SearchControlOptions_noSystemRelaxation, -1, -1, "noSystemRelaxation", NULL },
3590   {  6, &hf_dap_SearchControlOptions_dnAttribute, -1, -1, "dnAttribute", NULL },
3591   {  7, &hf_dap_SearchControlOptions_matchOnResidualName, -1, -1, "matchOnResidualName", NULL },
3592   {  8, &hf_dap_SearchControlOptions_entryCount, -1, -1, "entryCount", NULL },
3593   {  9, &hf_dap_SearchControlOptions_useSubset, -1, -1, "useSubset", NULL },
3594   { 10, &hf_dap_SearchControlOptions_separateFamilyMembers, -1, -1, "separateFamilyMembers", NULL },
3595   { 11, &hf_dap_SearchControlOptions_searchFamily, -1, -1, "searchFamily", NULL },
3596   { 0, NULL, 0, 0, NULL, NULL }
3597 };
3598
3599 static int
3600 dissect_dap_SearchControlOptions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3601   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
3602                                     SearchControlOptions_bits, hf_index, ett_dap_SearchControlOptions,
3603                                     NULL);
3604
3605   return offset;
3606 }
3607 static int dissect_searchControlOptions(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3608   return dissect_dap_SearchControlOptions(FALSE, tvb, offset, pinfo, tree, hf_dap_searchControlOptions);
3609 }
3610
3611
3612
3613 static int
3614 dissect_dap_DomainLocalID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3615   offset = dissect_x509sat_DirectoryString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3616
3617   return offset;
3618 }
3619 static int dissect_domainLocalID(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3620   return dissect_dap_DomainLocalID(FALSE, tvb, offset, pinfo, tree, hf_dap_domainLocalID);
3621 }
3622
3623
3624 static const value_string dap_T_joinSubset_vals[] = {
3625   {   0, "baseObject" },
3626   {   1, "oneLevel" },
3627   {   2, "wholeSubtree" },
3628   { 0, NULL }
3629 };
3630
3631
3632 static int
3633 dissect_dap_T_joinSubset(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3634   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3635                                   NULL);
3636
3637   return offset;
3638 }
3639 static int dissect_joinSubset(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3640   return dissect_dap_T_joinSubset(FALSE, tvb, offset, pinfo, tree, hf_dap_joinSubset);
3641 }
3642
3643
3644
3645 static int
3646 dissect_dap_JoinContextType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3647   offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
3648
3649   return offset;
3650 }
3651 static int dissect_joinContext_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3652   return dissect_dap_JoinContextType(FALSE, tvb, offset, pinfo, tree, hf_dap_joinContext_item);
3653 }
3654
3655
3656 static const ber_sequence_t SEQUENCE_OF_JoinContextType_sequence_of[1] = {
3657   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_joinContext_item },
3658 };
3659
3660 static int
3661 dissect_dap_SEQUENCE_OF_JoinContextType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3662   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3663                                       SEQUENCE_OF_JoinContextType_sequence_of, hf_index, ett_dap_SEQUENCE_OF_JoinContextType);
3664
3665   return offset;
3666 }
3667 static int dissect_joinContext(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3668   return dissect_dap_SEQUENCE_OF_JoinContextType(FALSE, tvb, offset, pinfo, tree, hf_dap_joinContext);
3669 }
3670
3671
3672 static const ber_sequence_t JoinAttPair_sequence[] = {
3673   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_baseAtt },
3674   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_joinAtt },
3675   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_joinContext },
3676   { 0, 0, 0, NULL }
3677 };
3678
3679 static int
3680 dissect_dap_JoinAttPair(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3681   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3682                                    JoinAttPair_sequence, hf_index, ett_dap_JoinAttPair);
3683
3684   return offset;
3685 }
3686 static int dissect_joinAttributes_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3687   return dissect_dap_JoinAttPair(FALSE, tvb, offset, pinfo, tree, hf_dap_joinAttributes_item);
3688 }
3689
3690
3691 static const ber_sequence_t SEQUENCE_OF_JoinAttPair_sequence_of[1] = {
3692   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_joinAttributes_item },
3693 };
3694
3695 static int
3696 dissect_dap_SEQUENCE_OF_JoinAttPair(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3697   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3698                                       SEQUENCE_OF_JoinAttPair_sequence_of, hf_index, ett_dap_SEQUENCE_OF_JoinAttPair);
3699
3700   return offset;
3701 }
3702 static int dissect_joinAttributes(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3703   return dissect_dap_SEQUENCE_OF_JoinAttPair(FALSE, tvb, offset, pinfo, tree, hf_dap_joinAttributes);
3704 }
3705
3706
3707 static const ber_sequence_t JoinArgument_sequence[] = {
3708   { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_joinBaseObject },
3709   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_domainLocalID },
3710   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_joinSubset },
3711   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_joinFilter },
3712   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_joinAttributes },
3713   { BER_CLASS_CON, 5, 0, dissect_joinSelection },
3714   { 0, 0, 0, NULL }
3715 };
3716
3717 static int
3718 dissect_dap_JoinArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3719   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3720                                    JoinArgument_sequence, hf_index, ett_dap_JoinArgument);
3721
3722   return offset;
3723 }
3724 static int dissect_joinArguments_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3725   return dissect_dap_JoinArgument(FALSE, tvb, offset, pinfo, tree, hf_dap_joinArguments_item);
3726 }
3727
3728
3729 static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_JoinArgument_sequence_of[1] = {
3730   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_joinArguments_item },
3731 };
3732
3733 static int
3734 dissect_dap_SEQUENCE_SIZE_1_MAX_OF_JoinArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3735   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3736                                       SEQUENCE_SIZE_1_MAX_OF_JoinArgument_sequence_of, hf_index, ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinArgument);
3737
3738   return offset;
3739 }
3740 static int dissect_joinArguments(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3741   return dissect_dap_SEQUENCE_SIZE_1_MAX_OF_JoinArgument(FALSE, tvb, offset, pinfo, tree, hf_dap_joinArguments);
3742 }
3743
3744
3745 static const value_string dap_T_joinType_vals[] = {
3746   {   0, "innerJoin" },
3747   {   1, "leftOuterJoin" },
3748   {   2, "fullOuterJoin" },
3749   { 0, NULL }
3750 };
3751
3752
3753 static int
3754 dissect_dap_T_joinType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3755   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3756                                   NULL);
3757
3758   return offset;
3759 }
3760 static int dissect_joinType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3761   return dissect_dap_T_joinType(FALSE, tvb, offset, pinfo, tree, hf_dap_joinType);
3762 }
3763
3764
3765 static const ber_sequence_t SearchArgumentData_set[] = {
3766   { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_baseObject },
3767   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_subset },
3768   { BER_CLASS_CON, 2, BER_FLAGS_NOTCHKTAG, dissect_filter },
3769   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_searchAliases },
3770   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_selection },
3771   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_pagedResults },
3772   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_matchedValuesOnly },
3773   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_extendedFilter },
3774   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_checkOverspecified },
3775   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_relaxation },
3776   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_extendedArea },
3777   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_hierarchySelections },
3778   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_searchControlOptions },
3779   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL, dissect_joinArguments },
3780   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_joinType },
3781   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_serviceControls },
3782   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_securityParameters },
3783   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_requestor },
3784   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_operationProgress },
3785   { BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_aliasedRDNs },
3786   { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_criticalExtensions },
3787   { BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_referenceType },
3788   { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_entryOnly },
3789   { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_nameResolveOnMaster },
3790   { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_operationContexts },
3791   { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_familyGrouping },
3792   { 0, 0, 0, NULL }
3793 };
3794
3795 static int
3796 dissect_dap_SearchArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3797   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3798                               SearchArgumentData_set, hf_index, ett_dap_SearchArgumentData);
3799
3800   return offset;
3801 }
3802 static int dissect_unsignedSearchArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3803   return dissect_dap_SearchArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedSearchArgument);
3804 }
3805 static int dissect_searchArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3806   return dissect_dap_SearchArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dap_searchArgument);
3807 }
3808
3809
3810 static const ber_sequence_t T_signedSearchArgument_sequence[] = {
3811   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_searchArgument },
3812   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
3813   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
3814   { 0, 0, 0, NULL }
3815 };
3816
3817 static int
3818 dissect_dap_T_signedSearchArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3819   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3820                                    T_signedSearchArgument_sequence, hf_index, ett_dap_T_signedSearchArgument);
3821
3822   return offset;
3823 }
3824 static int dissect_signedSearchArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3825   return dissect_dap_T_signedSearchArgument(FALSE, tvb, offset, pinfo, tree, hf_dap_signedSearchArgument);
3826 }
3827
3828
3829 const value_string dap_SearchArgument_vals[] = {
3830   {   0, "unsignedSearchArgument" },
3831   {   1, "signedSearchArgument" },
3832   { 0, NULL }
3833 };
3834
3835 static const ber_choice_t SearchArgument_choice[] = {
3836   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedSearchArgument },
3837   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedSearchArgument },
3838   { 0, 0, 0, 0, NULL }
3839 };
3840
3841 int
3842 dissect_dap_SearchArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3843   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3844                                  SearchArgument_choice, hf_index, ett_dap_SearchArgument,
3845                                  NULL);
3846
3847   return offset;
3848 }
3849
3850
3851 static const ber_sequence_t SET_OF_EntryInformation_set_of[1] = {
3852   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_entries_item },
3853 };
3854
3855 static int
3856 dissect_dap_SET_OF_EntryInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3857   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
3858                                  SET_OF_EntryInformation_set_of, hf_index, ett_dap_SET_OF_EntryInformation);
3859
3860   return offset;
3861 }
3862 static int dissect_entries(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3863   return dissect_dap_SET_OF_EntryInformation(FALSE, tvb, offset, pinfo, tree, hf_dap_entries);
3864 }
3865
3866
3867 static const ber_sequence_t T_searchInfo_set[] = {
3868   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_name },
3869   { BER_CLASS_CON, 0, 0, dissect_entries },
3870   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_partialOutcomeQualifier },
3871   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_altMatching },
3872   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
3873   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
3874   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
3875   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
3876   { 0, 0, 0, NULL }
3877 };
3878
3879 static int
3880 dissect_dap_T_searchInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3881   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
3882                               T_searchInfo_set, hf_index, ett_dap_T_searchInfo);
3883
3884   return offset;
3885 }
3886 static int dissect_searchInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3887   return dissect_dap_T_searchInfo(FALSE, tvb, offset, pinfo, tree, hf_dap_searchInfo);
3888 }
3889
3890
3891 static const ber_sequence_t T_signedSearchResult_sequence[] = {
3892   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_searchResult },
3893   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
3894   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
3895   { 0, 0, 0, NULL }
3896 };
3897
3898 static int
3899 dissect_dap_T_signedSearchResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3900   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3901                                    T_signedSearchResult_sequence, hf_index, ett_dap_T_signedSearchResult);
3902
3903   return offset;
3904 }
3905 static int dissect_signedSearchResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3906   return dissect_dap_T_signedSearchResult(FALSE, tvb, offset, pinfo, tree, hf_dap_signedSearchResult);
3907 }
3908
3909
3910 const value_string dap_SearchResult_vals[] = {
3911   {   0, "unsignedSearchResult" },
3912   {   1, "signedSearchResult" },
3913   { 0, NULL }
3914 };
3915
3916 static const ber_choice_t SearchResult_choice[] = {
3917   {   0, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_unsignedSearchResult },
3918   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedSearchResult },
3919   { 0, 0, 0, 0, NULL }
3920 };
3921
3922 int
3923 dissect_dap_SearchResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3924   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3925                                  SearchResult_choice, hf_index, ett_dap_SearchResult,
3926                                  NULL);
3927
3928   return offset;
3929 }
3930 static int dissect_uncorrelatedSearchInfo_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3931   return dissect_dap_SearchResult(FALSE, tvb, offset, pinfo, tree, hf_dap_uncorrelatedSearchInfo_item);
3932 }
3933
3934
3935 static const ber_sequence_t SET_OF_SearchResult_set_of[1] = {
3936   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_uncorrelatedSearchInfo_item },
3937 };
3938
3939 static int
3940 dissect_dap_SET_OF_SearchResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3941   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
3942                                  SET_OF_SearchResult_set_of, hf_index, ett_dap_SET_OF_SearchResult);
3943
3944   return offset;
3945 }
3946 static int dissect_uncorrelatedSearchInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3947   return dissect_dap_SET_OF_SearchResult(FALSE, tvb, offset, pinfo, tree, hf_dap_uncorrelatedSearchInfo);
3948 }
3949
3950
3951 static const value_string dap_SearchResultData_vals[] = {
3952   {   0, "searchInfo" },
3953   {   1, "uncorrelatedSearchInfo" },
3954   { 0, NULL }
3955 };
3956
3957 static const ber_choice_t SearchResultData_choice[] = {
3958   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_searchInfo },
3959   {   1, BER_CLASS_CON, 0, 0, dissect_uncorrelatedSearchInfo },
3960   { 0, 0, 0, 0, NULL }
3961 };
3962
3963 static int
3964 dissect_dap_SearchResultData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3965   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3966                                  SearchResultData_choice, hf_index, ett_dap_SearchResultData,
3967                                  NULL);
3968
3969   return offset;
3970 }
3971
3972
3973 static const ber_sequence_t SET_OF_Attribute_set_of[1] = {
3974   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_entry_item },
3975 };
3976
3977 static int
3978 dissect_dap_SET_OF_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3979   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
3980                                  SET_OF_Attribute_set_of, hf_index, ett_dap_SET_OF_Attribute);
3981
3982   return offset;
3983 }
3984 static int dissect_add_entry(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3985   return dissect_dap_SET_OF_Attribute(FALSE, tvb, offset, pinfo, tree, hf_dap_add_entry);
3986 }
3987
3988
3989 static const ber_sequence_t AddEntryArgumentData_set[] = {
3990   { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_object },
3991   { BER_CLASS_CON, 1, 0, dissect_add_entry },
3992   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_targetSystem },
3993   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_serviceControls },
3994   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_securityParameters },
3995   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_requestor },
3996   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_operationProgress },
3997   { BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_aliasedRDNs },
3998   { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_criticalExtensions },
3999   { BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_referenceType },
4000   { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_entryOnly },
4001   { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_nameResolveOnMaster },
4002   { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_operationContexts },
4003   { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_familyGrouping },
4004   { 0, 0, 0, NULL }
4005 };
4006
4007 static int
4008 dissect_dap_AddEntryArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4009   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4010                               AddEntryArgumentData_set, hf_index, ett_dap_AddEntryArgumentData);
4011
4012   return offset;
4013 }
4014 static int dissect_unsignedAddEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4015   return dissect_dap_AddEntryArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedAddEntryArgument);
4016 }
4017 static int dissect_addEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4018   return dissect_dap_AddEntryArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dap_addEntryArgument);
4019 }
4020
4021
4022 static const ber_sequence_t T_signedAddEntryArgument_sequence[] = {
4023   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_addEntryArgument },
4024   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
4025   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
4026   { 0, 0, 0, NULL }
4027 };
4028
4029 static int
4030 dissect_dap_T_signedAddEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4031   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4032                                    T_signedAddEntryArgument_sequence, hf_index, ett_dap_T_signedAddEntryArgument);
4033
4034   return offset;
4035 }
4036 static int dissect_signedAddEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4037   return dissect_dap_T_signedAddEntryArgument(FALSE, tvb, offset, pinfo, tree, hf_dap_signedAddEntryArgument);
4038 }
4039
4040
4041 const value_string dap_AddEntryArgument_vals[] = {
4042   {   0, "unsignedAddEntryArgument" },
4043   {   1, "signedAddEntryArgument" },
4044   { 0, NULL }
4045 };
4046
4047 static const ber_choice_t AddEntryArgument_choice[] = {
4048   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedAddEntryArgument },
4049   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedAddEntryArgument },
4050   { 0, 0, 0, 0, NULL }
4051 };
4052
4053 int
4054 dissect_dap_AddEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4055   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4056                                  AddEntryArgument_choice, hf_index, ett_dap_AddEntryArgument,
4057                                  NULL);
4058
4059   return offset;
4060 }
4061
4062
4063 static const ber_sequence_t AddEntryResultData_sequence[] = {
4064   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
4065   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
4066   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
4067   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
4068   { 0, 0, 0, NULL }
4069 };
4070
4071 static int
4072 dissect_dap_AddEntryResultData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4073   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4074                                    AddEntryResultData_sequence, hf_index, ett_dap_AddEntryResultData);
4075
4076   return offset;
4077 }
4078 static int dissect_unsignedAddEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4079   return dissect_dap_AddEntryResultData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedAddEntryResult);
4080 }
4081 static int dissect_addEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4082   return dissect_dap_AddEntryResultData(FALSE, tvb, offset, pinfo, tree, hf_dap_addEntryResult);
4083 }
4084
4085
4086 static const ber_sequence_t T_signedAddEntryResult_sequence[] = {
4087   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_addEntryResult },
4088   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
4089   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
4090   { 0, 0, 0, NULL }
4091 };
4092
4093 static int
4094 dissect_dap_T_signedAddEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4095   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4096                                    T_signedAddEntryResult_sequence, hf_index, ett_dap_T_signedAddEntryResult);
4097
4098   return offset;
4099 }
4100 static int dissect_signedAddEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4101   return dissect_dap_T_signedAddEntryResult(FALSE, tvb, offset, pinfo, tree, hf_dap_signedAddEntryResult);
4102 }
4103
4104
4105 static const value_string dap_AddEntryInformation_vals[] = {
4106   {   0, "unsignedAddEntryResult" },
4107   {   1, "signedAddEntryResult" },
4108   { 0, NULL }
4109 };
4110
4111 static const ber_choice_t AddEntryInformation_choice[] = {
4112   {   0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_unsignedAddEntryResult },
4113   {   1, BER_CLASS_CON, 0, 0, dissect_signedAddEntryResult },
4114   { 0, 0, 0, 0, NULL }
4115 };
4116
4117 static int
4118 dissect_dap_AddEntryInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4119   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4120                                  AddEntryInformation_choice, hf_index, ett_dap_AddEntryInformation,
4121                                  NULL);
4122
4123   return offset;
4124 }
4125 static int dissect_add_entry_information(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4126   return dissect_dap_AddEntryInformation(FALSE, tvb, offset, pinfo, tree, hf_dap_add_entry_information);
4127 }
4128
4129
4130 const value_string dap_AddEntryResult_vals[] = {
4131   {   0, "null" },
4132   {   1, "information" },
4133   { 0, NULL }
4134 };
4135
4136 static const ber_choice_t AddEntryResult_choice[] = {
4137   {   0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_null },
4138   {   1, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_add_entry_information },
4139   { 0, 0, 0, 0, NULL }
4140 };
4141
4142 int
4143 dissect_dap_AddEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4144   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4145                                  AddEntryResult_choice, hf_index, ett_dap_AddEntryResult,
4146                                  NULL);
4147
4148   return offset;
4149 }
4150
4151
4152 static const ber_sequence_t RemoveEntryArgumentData_set[] = {
4153   { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_object },
4154   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_serviceControls },
4155   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_securityParameters },
4156   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_requestor },
4157   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_operationProgress },
4158   { BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_aliasedRDNs },
4159   { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_criticalExtensions },
4160   { BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_referenceType },
4161   { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_entryOnly },
4162   { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_nameResolveOnMaster },
4163   { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_operationContexts },
4164   { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_familyGrouping },
4165   { 0, 0, 0, NULL }
4166 };
4167
4168 static int
4169 dissect_dap_RemoveEntryArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4170   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4171                               RemoveEntryArgumentData_set, hf_index, ett_dap_RemoveEntryArgumentData);
4172
4173   return offset;
4174 }
4175 static int dissect_unsignedRemoveEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4176   return dissect_dap_RemoveEntryArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedRemoveEntryArgument);
4177 }
4178 static int dissect_removeEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4179   return dissect_dap_RemoveEntryArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dap_removeEntryArgument);
4180 }
4181
4182
4183 static const ber_sequence_t T_signedRemoveEntryArgument_sequence[] = {
4184   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_removeEntryArgument },
4185   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
4186   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
4187   { 0, 0, 0, NULL }
4188 };
4189
4190 static int
4191 dissect_dap_T_signedRemoveEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4192   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4193                                    T_signedRemoveEntryArgument_sequence, hf_index, ett_dap_T_signedRemoveEntryArgument);
4194
4195   return offset;
4196 }
4197 static int dissect_signedRemoveEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4198   return dissect_dap_T_signedRemoveEntryArgument(FALSE, tvb, offset, pinfo, tree, hf_dap_signedRemoveEntryArgument);
4199 }
4200
4201
4202 const value_string dap_RemoveEntryArgument_vals[] = {
4203   {   0, "unsignedRemoveEntryArgument" },
4204   {   1, "signedRemoveEntryArgument" },
4205   { 0, NULL }
4206 };
4207
4208 static const ber_choice_t RemoveEntryArgument_choice[] = {
4209   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedRemoveEntryArgument },
4210   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedRemoveEntryArgument },
4211   { 0, 0, 0, 0, NULL }
4212 };
4213
4214 int
4215 dissect_dap_RemoveEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4216   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4217                                  RemoveEntryArgument_choice, hf_index, ett_dap_RemoveEntryArgument,
4218                                  NULL);
4219
4220   return offset;
4221 }
4222
4223
4224 static const ber_sequence_t RemoveEntryResultData_sequence[] = {
4225   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
4226   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
4227   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
4228   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
4229   { 0, 0, 0, NULL }
4230 };
4231
4232 static int
4233 dissect_dap_RemoveEntryResultData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4234   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4235                                    RemoveEntryResultData_sequence, hf_index, ett_dap_RemoveEntryResultData);
4236
4237   return offset;
4238 }
4239 static int dissect_unsignedRemoveEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4240   return dissect_dap_RemoveEntryResultData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedRemoveEntryResult);
4241 }
4242 static int dissect_removeEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4243   return dissect_dap_RemoveEntryResultData(FALSE, tvb, offset, pinfo, tree, hf_dap_removeEntryResult);
4244 }
4245
4246
4247 static const ber_sequence_t T_signedRemoveEntryResult_sequence[] = {
4248   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_removeEntryResult },
4249   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
4250   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
4251   { 0, 0, 0, NULL }
4252 };
4253
4254 static int
4255 dissect_dap_T_signedRemoveEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4256   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4257                                    T_signedRemoveEntryResult_sequence, hf_index, ett_dap_T_signedRemoveEntryResult);
4258
4259   return offset;
4260 }
4261 static int dissect_signedRemoveEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4262   return dissect_dap_T_signedRemoveEntryResult(FALSE, tvb, offset, pinfo, tree, hf_dap_signedRemoveEntryResult);
4263 }
4264
4265
4266 static const value_string dap_RemoveEntryInformation_vals[] = {
4267   {   0, "unsignedRemoveEntryResult" },
4268   {   1, "signedRemoveEntryResult" },
4269   { 0, NULL }
4270 };
4271
4272 static const ber_choice_t RemoveEntryInformation_choice[] = {
4273   {   0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_unsignedRemoveEntryResult },
4274   {   1, BER_CLASS_CON, 0, 0, dissect_signedRemoveEntryResult },
4275   { 0, 0, 0, 0, NULL }
4276 };
4277
4278 static int
4279 dissect_dap_RemoveEntryInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4280   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4281                                  RemoveEntryInformation_choice, hf_index, ett_dap_RemoveEntryInformation,
4282                                  NULL);
4283
4284   return offset;
4285 }
4286 static int dissect_remove_entry_information(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4287   return dissect_dap_RemoveEntryInformation(FALSE, tvb, offset, pinfo, tree, hf_dap_remove_entry_information);
4288 }
4289
4290
4291 const value_string dap_RemoveEntryResult_vals[] = {
4292   {   0, "null" },
4293   {   1, "information" },
4294   { 0, NULL }
4295 };
4296
4297 static const ber_choice_t RemoveEntryResult_choice[] = {
4298   {   0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_null },
4299   {   1, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_remove_entry_information },
4300   { 0, 0, 0, 0, NULL }
4301 };
4302
4303 int
4304 dissect_dap_RemoveEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4305   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4306                                  RemoveEntryResult_choice, hf_index, ett_dap_RemoveEntryResult,
4307                                  NULL);
4308
4309   return offset;
4310 }
4311
4312
4313 const value_string dap_EntryModification_vals[] = {
4314   {   0, "addAttribute" },
4315   {   1, "removeAttribute" },
4316   {   2, "addValues" },
4317   {   3, "removeValues" },
4318   {   4, "alterValues" },
4319   {   5, "resetValue" },
4320   { 0, NULL }
4321 };
4322
4323 static const ber_choice_t EntryModification_choice[] = {
4324   {   0, BER_CLASS_CON, 0, 0, dissect_addAttribute },
4325   {   1, BER_CLASS_CON, 1, 0, dissect_removeAttribute },
4326   {   2, BER_CLASS_CON, 2, 0, dissect_addValues },
4327   {   3, BER_CLASS_CON, 3, 0, dissect_removeValues },
4328   {   4, BER_CLASS_CON, 4, 0, dissect_alterValues },
4329   {   5, BER_CLASS_CON, 5, 0, dissect_resetValue },
4330   { 0, 0, 0, 0, NULL }
4331 };
4332
4333 int
4334 dissect_dap_EntryModification(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4335   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4336                                  EntryModification_choice, hf_index, ett_dap_EntryModification,
4337                                  NULL);
4338
4339   return offset;
4340 }
4341 static int dissect_changes_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4342   return dissect_dap_EntryModification(FALSE, tvb, offset, pinfo, tree, hf_dap_changes_item);
4343 }
4344
4345
4346 static const ber_sequence_t SEQUENCE_OF_EntryModification_sequence_of[1] = {
4347   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_changes_item },
4348 };
4349
4350 static int
4351 dissect_dap_SEQUENCE_OF_EntryModification(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4352   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4353                                       SEQUENCE_OF_EntryModification_sequence_of, hf_index, ett_dap_SEQUENCE_OF_EntryModification);
4354
4355   return offset;
4356 }
4357 static int dissect_changes(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4358   return dissect_dap_SEQUENCE_OF_EntryModification(FALSE, tvb, offset, pinfo, tree, hf_dap_changes);
4359 }
4360
4361
4362 static const ber_sequence_t ModifyEntryArgumentData_set[] = {
4363   { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_object },
4364   { BER_CLASS_CON, 1, 0, dissect_changes },
4365   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_selection },
4366   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_serviceControls },
4367   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_securityParameters },
4368   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_requestor },
4369   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_operationProgress },
4370   { BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_aliasedRDNs },
4371   { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_criticalExtensions },
4372   { BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_referenceType },
4373   { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_entryOnly },
4374   { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_nameResolveOnMaster },
4375   { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_operationContexts },
4376   { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_familyGrouping },
4377   { 0, 0, 0, NULL }
4378 };
4379
4380 static int
4381 dissect_dap_ModifyEntryArgumentData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4382   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4383                               ModifyEntryArgumentData_set, hf_index, ett_dap_ModifyEntryArgumentData);
4384
4385   return offset;
4386 }
4387 static int dissect_unsignedModifyEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4388   return dissect_dap_ModifyEntryArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedModifyEntryArgument);
4389 }
4390 static int dissect_modifyEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4391   return dissect_dap_ModifyEntryArgumentData(FALSE, tvb, offset, pinfo, tree, hf_dap_modifyEntryArgument);
4392 }
4393
4394
4395 static const ber_sequence_t T_signedModifyEntryArgument_sequence[] = {
4396   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_modifyEntryArgument },
4397   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
4398   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
4399   { 0, 0, 0, NULL }
4400 };
4401
4402 static int
4403 dissect_dap_T_signedModifyEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4404   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4405                                    T_signedModifyEntryArgument_sequence, hf_index, ett_dap_T_signedModifyEntryArgument);
4406
4407   return offset;
4408 }
4409 static int dissect_signedModifyEntryArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4410   return dissect_dap_T_signedModifyEntryArgument(FALSE, tvb, offset, pinfo, tree, hf_dap_signedModifyEntryArgument);
4411 }
4412
4413
4414 const value_string dap_ModifyEntryArgument_vals[] = {
4415   {   0, "unsignedModifyEntryArgument" },
4416   {   1, "signedModifyEntryArgument" },
4417   { 0, NULL }
4418 };
4419
4420 static const ber_choice_t ModifyEntryArgument_choice[] = {
4421   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedModifyEntryArgument },
4422   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedModifyEntryArgument },
4423   { 0, 0, 0, 0, NULL }
4424 };
4425
4426 int
4427 dissect_dap_ModifyEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4428   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4429                                  ModifyEntryArgument_choice, hf_index, ett_dap_ModifyEntryArgument,
4430                                  NULL);
4431
4432   return offset;
4433 }
4434
4435
4436 static const ber_sequence_t ModifyEntryResultData_sequence[] = {
4437   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_entry },
4438   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
4439   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
4440   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
4441   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
4442   { 0, 0, 0, NULL }
4443 };
4444
4445 static int
4446 dissect_dap_ModifyEntryResultData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4447   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4448                                    ModifyEntryResultData_sequence, hf_index, ett_dap_ModifyEntryResultData);
4449
4450   return offset;
4451 }
4452 static int dissect_unsignedModifyEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4453   return dissect_dap_ModifyEntryResultData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedModifyEntryResult);
4454 }
4455 static int dissect_modifyEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4456   return dissect_dap_ModifyEntryResultData(FALSE, tvb, offset, pinfo, tree, hf_dap_modifyEntryResult);
4457 }
4458
4459
4460 static const ber_sequence_t T_signedModifyEntryResult_sequence[] = {
4461   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_modifyEntryResult },
4462   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
4463   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
4464   { 0, 0, 0, NULL }
4465 };
4466
4467 static int
4468 dissect_dap_T_signedModifyEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4469   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4470                                    T_signedModifyEntryResult_sequence, hf_index, ett_dap_T_signedModifyEntryResult);
4471
4472   return offset;
4473 }
4474 static int dissect_signedModifyEntryResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4475   return dissect_dap_T_signedModifyEntryResult(FALSE, tvb, offset, pinfo, tree, hf_dap_signedModifyEntryResult);
4476 }
4477
4478
4479 static const value_string dap_ModifyEntryInformation_vals[] = {
4480   {   0, "unsignedModifyEntryResult" },
4481   {   1, "signedModifyEntryResult" },
4482   { 0, NULL }
4483 };
4484
4485 static const ber_choice_t ModifyEntryInformation_choice[] = {
4486   {   0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_unsignedModifyEntryResult },
4487   {   1, BER_CLASS_CON, 0, 0, dissect_signedModifyEntryResult },
4488   { 0, 0, 0, 0, NULL }
4489 };
4490
4491 static int
4492 dissect_dap_ModifyEntryInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4493   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4494                                  ModifyEntryInformation_choice, hf_index, ett_dap_ModifyEntryInformation,
4495                                  NULL);
4496
4497   return offset;
4498 }
4499 static int dissect_modify_entry_information(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4500   return dissect_dap_ModifyEntryInformation(FALSE, tvb, offset, pinfo, tree, hf_dap_modify_entry_information);
4501 }
4502
4503
4504 const value_string dap_ModifyEntryResult_vals[] = {
4505   {   0, "null" },
4506   {   1, "information" },
4507   { 0, NULL }
4508 };
4509
4510 static const ber_choice_t ModifyEntryResult_choice[] = {
4511   {   0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_null },
4512   {   1, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_modify_entry_information },
4513   { 0, 0, 0, 0, NULL }
4514 };
4515
4516 int
4517 dissect_dap_ModifyEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4518   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4519                                  ModifyEntryResult_choice, hf_index, ett_dap_ModifyEntryResult,
4520                                  NULL);
4521
4522   return offset;
4523 }
4524
4525
4526 static const ber_sequence_t ModifyDNArgument_set[] = {
4527   { BER_CLASS_CON, 0, 0, dissect_distinguished_name },
4528   { BER_CLASS_CON, 1, 0, dissect_newRDN },
4529   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_deleteOldRDN },
4530   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_newSuperior },
4531   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_serviceControls },
4532   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_securityParameters },
4533   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_requestor },
4534   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_operationProgress },
4535   { BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL, dissect_aliasedRDNs },
4536   { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL, dissect_criticalExtensions },
4537   { BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL, dissect_referenceType },
4538   { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL, dissect_entryOnly },
4539   { BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL, dissect_nameResolveOnMaster },
4540   { BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_operationContexts },
4541   { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL, dissect_familyGrouping },
4542   { 0, 0, 0, NULL }
4543 };
4544
4545 int
4546 dissect_dap_ModifyDNArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4547   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4548                               ModifyDNArgument_set, hf_index, ett_dap_ModifyDNArgument);
4549
4550   return offset;
4551 }
4552
4553
4554 static const ber_sequence_t ModifyDNResultData_sequence[] = {
4555   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_newRDN },
4556   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
4557   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
4558   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
4559   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
4560   { 0, 0, 0, NULL }
4561 };
4562
4563 static int
4564 dissect_dap_ModifyDNResultData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4565   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4566                                    ModifyDNResultData_sequence, hf_index, ett_dap_ModifyDNResultData);
4567
4568   return offset;
4569 }
4570 static int dissect_unsignedModifyDNResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4571   return dissect_dap_ModifyDNResultData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedModifyDNResult);
4572 }
4573 static int dissect_modifyDNResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4574   return dissect_dap_ModifyDNResultData(FALSE, tvb, offset, pinfo, tree, hf_dap_modifyDNResult);
4575 }
4576
4577
4578 static const ber_sequence_t T_signedModifyDNResult_sequence[] = {
4579   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_modifyDNResult },
4580   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
4581   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
4582   { 0, 0, 0, NULL }
4583 };
4584
4585 static int
4586 dissect_dap_T_signedModifyDNResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4587   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4588                                    T_signedModifyDNResult_sequence, hf_index, ett_dap_T_signedModifyDNResult);
4589
4590   return offset;
4591 }
4592 static int dissect_signedModifyDNResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4593   return dissect_dap_T_signedModifyDNResult(FALSE, tvb, offset, pinfo, tree, hf_dap_signedModifyDNResult);
4594 }
4595
4596
4597 static const value_string dap_ModifyDNInformation_vals[] = {
4598   {   0, "unsignedModifyDNResult" },
4599   {   1, "signedModifyDNResult" },
4600   { 0, NULL }
4601 };
4602
4603 static const ber_choice_t ModifyDNInformation_choice[] = {
4604   {   0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_unsignedModifyDNResult },
4605   {   1, BER_CLASS_CON, 0, 0, dissect_signedModifyDNResult },
4606   { 0, 0, 0, 0, NULL }
4607 };
4608
4609 static int
4610 dissect_dap_ModifyDNInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4611   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4612                                  ModifyDNInformation_choice, hf_index, ett_dap_ModifyDNInformation,
4613                                  NULL);
4614
4615   return offset;
4616 }
4617 static int dissect_modify_dn_information(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4618   return dissect_dap_ModifyDNInformation(FALSE, tvb, offset, pinfo, tree, hf_dap_modify_dn_information);
4619 }
4620
4621
4622 const value_string dap_ModifyDNResult_vals[] = {
4623   {   0, "null" },
4624   {   1, "information" },
4625   { 0, NULL }
4626 };
4627
4628 static const ber_choice_t ModifyDNResult_choice[] = {
4629   {   0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_null },
4630   {   1, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_modify_dn_information },
4631   { 0, 0, 0, 0, NULL }
4632 };
4633
4634 int
4635 dissect_dap_ModifyDNResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4636   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4637                                  ModifyDNResult_choice, hf_index, ett_dap_ModifyDNResult,
4638                                  NULL);
4639
4640   return offset;
4641 }
4642
4643
4644 static const ber_sequence_t AbandonedData_set[] = {
4645   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
4646   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
4647   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
4648   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
4649   { 0, 0, 0, NULL }
4650 };
4651
4652 static int
4653 dissect_dap_AbandonedData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4654   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4655                               AbandonedData_set, hf_index, ett_dap_AbandonedData);
4656
4657   return offset;
4658 }
4659 static int dissect_unsignedAbandoned(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4660   return dissect_dap_AbandonedData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedAbandoned);
4661 }
4662 static int dissect_abandoned(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4663   return dissect_dap_AbandonedData(FALSE, tvb, offset, pinfo, tree, hf_dap_abandoned);
4664 }
4665
4666
4667 static const ber_sequence_t T_signedAbandoned_sequence[] = {
4668   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_abandoned },
4669   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
4670   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
4671   { 0, 0, 0, NULL }
4672 };
4673
4674 static int
4675 dissect_dap_T_signedAbandoned(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4676   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4677                                    T_signedAbandoned_sequence, hf_index, ett_dap_T_signedAbandoned);
4678
4679   return offset;
4680 }
4681 static int dissect_signedAbandoned(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4682   return dissect_dap_T_signedAbandoned(FALSE, tvb, offset, pinfo, tree, hf_dap_signedAbandoned);
4683 }
4684
4685
4686 const value_string dap_Abandoned_vals[] = {
4687   {   0, "unsignedAbandoned" },
4688   {   1, "signedAbandoned" },
4689   { 0, NULL }
4690 };
4691
4692 static const ber_choice_t Abandoned_choice[] = {
4693   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedAbandoned },
4694   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedAbandoned },
4695   { 0, 0, 0, 0, NULL }
4696 };
4697
4698 int
4699 dissect_dap_Abandoned(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4700   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4701                                  Abandoned_choice, hf_index, ett_dap_Abandoned,
4702                                  NULL);
4703
4704   return offset;
4705 }
4706
4707
4708 static const value_string dap_AbandonProblem_vals[] = {
4709   {   1, "noSuchOperation" },
4710   {   2, "tooLate" },
4711   {   3, "cannotAbandon" },
4712   { 0, NULL }
4713 };
4714
4715
4716 static int
4717 dissect_dap_AbandonProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4718   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4719                                   NULL);
4720
4721   return offset;
4722 }
4723 static int dissect_abandon_failed_problem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4724   return dissect_dap_AbandonProblem(FALSE, tvb, offset, pinfo, tree, hf_dap_abandon_failed_problem);
4725 }
4726
4727
4728 static const ber_sequence_t AbandonFailedErrorData_set[] = {
4729   { BER_CLASS_CON, 0, 0, dissect_abandon_failed_problem },
4730   { BER_CLASS_CON, 1, 0, dissect_operation },
4731   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
4732   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
4733   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
4734   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
4735   { 0, 0, 0, NULL }
4736 };
4737
4738 static int
4739 dissect_dap_AbandonFailedErrorData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4740   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4741                               AbandonFailedErrorData_set, hf_index, ett_dap_AbandonFailedErrorData);
4742
4743   return offset;
4744 }
4745 static int dissect_unsignedAbandonFailedError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4746   return dissect_dap_AbandonFailedErrorData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedAbandonFailedError);
4747 }
4748 static int dissect_abandonFailedError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4749   return dissect_dap_AbandonFailedErrorData(FALSE, tvb, offset, pinfo, tree, hf_dap_abandonFailedError);
4750 }
4751
4752
4753 static const ber_sequence_t T_signedAbandonFailedError_sequence[] = {
4754   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_abandonFailedError },
4755   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
4756   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
4757   { 0, 0, 0, NULL }
4758 };
4759
4760 static int
4761 dissect_dap_T_signedAbandonFailedError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4762   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4763                                    T_signedAbandonFailedError_sequence, hf_index, ett_dap_T_signedAbandonFailedError);
4764
4765   return offset;
4766 }
4767 static int dissect_signedAbandonFailedError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4768   return dissect_dap_T_signedAbandonFailedError(FALSE, tvb, offset, pinfo, tree, hf_dap_signedAbandonFailedError);
4769 }
4770
4771
4772 const value_string dap_AbandonFailedError_vals[] = {
4773   {   0, "unsignedAbandonFailedError" },
4774   {   1, "signedAbandonFailedError" },
4775   { 0, NULL }
4776 };
4777
4778 static const ber_choice_t AbandonFailedError_choice[] = {
4779   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedAbandonFailedError },
4780   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedAbandonFailedError },
4781   { 0, 0, 0, 0, NULL }
4782 };
4783
4784 int
4785 dissect_dap_AbandonFailedError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4786   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4787                                  AbandonFailedError_choice, hf_index, ett_dap_AbandonFailedError,
4788                                  NULL);
4789
4790   return offset;
4791 }
4792
4793
4794 static const value_string dap_AttributeProblem_vals[] = {
4795   {   1, "noSuchAttributeOrValue" },
4796   {   2, "invalidAttributeSyntax" },
4797   {   3, "undefinedAttributeType" },
4798   {   4, "inappropriateMatching" },
4799   {   5, "constraintViolation" },
4800   {   6, "attributeOrValueAlreadyExists" },
4801   {   7, "contextViolation" },
4802   { 0, NULL }
4803 };
4804
4805
4806 static int
4807 dissect_dap_AttributeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4808   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4809                                   NULL);
4810
4811   return offset;
4812 }
4813 static int dissect_attribute_error_problem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4814   return dissect_dap_AttributeProblem(FALSE, tvb, offset, pinfo, tree, hf_dap_attribute_error_problem);
4815 }
4816
4817
4818 static const ber_sequence_t T_problems_item_sequence[] = {
4819   { BER_CLASS_CON, 0, 0, dissect_attribute_error_problem },
4820   { BER_CLASS_CON, 1, 0, dissect_type },
4821   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_value },
4822   { 0, 0, 0, NULL }
4823 };
4824
4825 static int
4826 dissect_dap_T_problems_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4827   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4828                                    T_problems_item_sequence, hf_index, ett_dap_T_problems_item);
4829
4830   return offset;
4831 }
4832 static int dissect_problems_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4833   return dissect_dap_T_problems_item(FALSE, tvb, offset, pinfo, tree, hf_dap_problems_item);
4834 }
4835
4836
4837 static const ber_sequence_t T_problems_set_of[1] = {
4838   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_problems_item },
4839 };
4840
4841 static int
4842 dissect_dap_T_problems(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4843   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
4844                                  T_problems_set_of, hf_index, ett_dap_T_problems);
4845
4846   return offset;
4847 }
4848 static int dissect_problems(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4849   return dissect_dap_T_problems(FALSE, tvb, offset, pinfo, tree, hf_dap_problems);
4850 }
4851
4852
4853 static const ber_sequence_t AttributeErrorData_set[] = {
4854   { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_object },
4855   { BER_CLASS_CON, 1, 0, dissect_problems },
4856   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
4857   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
4858   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
4859   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
4860   { 0, 0, 0, NULL }
4861 };
4862
4863 static int
4864 dissect_dap_AttributeErrorData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4865   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4866                               AttributeErrorData_set, hf_index, ett_dap_AttributeErrorData);
4867
4868   return offset;
4869 }
4870 static int dissect_unsignedAttributeError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4871   return dissect_dap_AttributeErrorData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedAttributeError);
4872 }
4873 static int dissect_attributeError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4874   return dissect_dap_AttributeErrorData(FALSE, tvb, offset, pinfo, tree, hf_dap_attributeError);
4875 }
4876
4877
4878 static const ber_sequence_t T_signedAttributeError_sequence[] = {
4879   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_attributeError },
4880   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
4881   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
4882   { 0, 0, 0, NULL }
4883 };
4884
4885 static int
4886 dissect_dap_T_signedAttributeError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4887   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4888                                    T_signedAttributeError_sequence, hf_index, ett_dap_T_signedAttributeError);
4889
4890   return offset;
4891 }
4892 static int dissect_signedAttributeError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4893   return dissect_dap_T_signedAttributeError(FALSE, tvb, offset, pinfo, tree, hf_dap_signedAttributeError);
4894 }
4895
4896
4897 const value_string dap_AttributeError_vals[] = {
4898   {   0, "unsignedAttributeError" },
4899   {   1, "signedAttributeError" },
4900   { 0, NULL }
4901 };
4902
4903 static const ber_choice_t AttributeError_choice[] = {
4904   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedAttributeError },
4905   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedAttributeError },
4906   { 0, 0, 0, 0, NULL }
4907 };
4908
4909 int
4910 dissect_dap_AttributeError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4911   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4912                                  AttributeError_choice, hf_index, ett_dap_AttributeError,
4913                                  NULL);
4914
4915   return offset;
4916 }
4917
4918
4919 static const value_string dap_NameProblem_vals[] = {
4920   {   1, "noSuchObject" },
4921   {   2, "aliasProblem" },
4922   {   3, "invalidAttributeSyntax" },
4923   {   4, "aliasDereferencingProblem" },
4924   {   5, "contextProblem" },
4925   { 0, NULL }
4926 };
4927
4928
4929 static int
4930 dissect_dap_NameProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4931   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4932                                   NULL);
4933
4934   return offset;
4935 }
4936 static int dissect_name_error_problem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4937   return dissect_dap_NameProblem(FALSE, tvb, offset, pinfo, tree, hf_dap_name_error_problem);
4938 }
4939
4940
4941 static const ber_sequence_t NameErrorData_set[] = {
4942   { BER_CLASS_CON, 0, 0, dissect_name_error_problem },
4943   { BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_matched_name },
4944   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
4945   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
4946   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
4947   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
4948   { 0, 0, 0, NULL }
4949 };
4950
4951 static int
4952 dissect_dap_NameErrorData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4953   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
4954                               NameErrorData_set, hf_index, ett_dap_NameErrorData);
4955
4956   return offset;
4957 }
4958 static int dissect_unsignedNameError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4959   return dissect_dap_NameErrorData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedNameError);
4960 }
4961 static int dissect_nameError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4962   return dissect_dap_NameErrorData(FALSE, tvb, offset, pinfo, tree, hf_dap_nameError);
4963 }
4964
4965
4966 static const ber_sequence_t T_signedNameError_sequence[] = {
4967   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_nameError },
4968   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
4969   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
4970   { 0, 0, 0, NULL }
4971 };
4972
4973 static int
4974 dissect_dap_T_signedNameError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4975   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4976                                    T_signedNameError_sequence, hf_index, ett_dap_T_signedNameError);
4977
4978   return offset;
4979 }
4980 static int dissect_signedNameError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4981   return dissect_dap_T_signedNameError(FALSE, tvb, offset, pinfo, tree, hf_dap_signedNameError);
4982 }
4983
4984
4985 const value_string dap_NameError_vals[] = {
4986   {   0, "unsignedNameError" },
4987   {   1, "signedNameError" },
4988   { 0, NULL }
4989 };
4990
4991 static const ber_choice_t NameError_choice[] = {
4992   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedNameError },
4993   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedNameError },
4994   { 0, 0, 0, 0, NULL }
4995 };
4996
4997 int
4998 dissect_dap_NameError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4999   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5000                                  NameError_choice, hf_index, ett_dap_NameError,
5001                                  NULL);
5002
5003   return offset;
5004 }
5005
5006
5007 static const ber_sequence_t ReferralData_set[] = {
5008   { BER_CLASS_CON, 0, 0, dissect_candidate },
5009   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
5010   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
5011   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
5012   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
5013   { 0, 0, 0, NULL }
5014 };
5015
5016 static int
5017 dissect_dap_ReferralData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5018   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
5019                               ReferralData_set, hf_index, ett_dap_ReferralData);
5020
5021   return offset;
5022 }
5023 static int dissect_unsignedReferral(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5024   return dissect_dap_ReferralData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedReferral);
5025 }
5026 static int dissect_referral(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5027   return dissect_dap_ReferralData(FALSE, tvb, offset, pinfo, tree, hf_dap_referral);
5028 }
5029
5030
5031 static const ber_sequence_t T_signedReferral_sequence[] = {
5032   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_referral },
5033   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
5034   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
5035   { 0, 0, 0, NULL }
5036 };
5037
5038 static int
5039 dissect_dap_T_signedReferral(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5040   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5041                                    T_signedReferral_sequence, hf_index, ett_dap_T_signedReferral);
5042
5043   return offset;
5044 }
5045 static int dissect_signedReferral(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5046   return dissect_dap_T_signedReferral(FALSE, tvb, offset, pinfo, tree, hf_dap_signedReferral);
5047 }
5048
5049
5050 const value_string dap_Referral_vals[] = {
5051   {   0, "unsignedReferral" },
5052   {   1, "signedReferral" },
5053   { 0, NULL }
5054 };
5055
5056 static const ber_choice_t Referral_choice[] = {
5057   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedReferral },
5058   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedReferral },
5059   { 0, 0, 0, 0, NULL }
5060 };
5061
5062 int
5063 dissect_dap_Referral(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5064   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5065                                  Referral_choice, hf_index, ett_dap_Referral,
5066                                  NULL);
5067
5068   return offset;
5069 }
5070
5071
5072
5073 static int
5074 dissect_dap_T_spkmInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5075 #line 141 "dap.cnf"
5076         /* XXX: not yet implemented */
5077
5078
5079
5080   return offset;
5081 }
5082 static int dissect_spkmInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5083   return dissect_dap_T_spkmInfo(FALSE, tvb, offset, pinfo, tree, hf_dap_spkmInfo);
5084 }
5085
5086
5087 static const ber_sequence_t SecurityErrorData_set[] = {
5088   { BER_CLASS_CON, 0, 0, dissect_security_error_problem },
5089   { BER_CLASS_CON, 1, 0, dissect_spkmInfo },
5090   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
5091   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
5092   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
5093   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
5094   { 0, 0, 0, NULL }
5095 };
5096
5097 static int
5098 dissect_dap_SecurityErrorData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5099   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
5100                               SecurityErrorData_set, hf_index, ett_dap_SecurityErrorData);
5101
5102   return offset;
5103 }
5104 static int dissect_unsignedSecurityError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5105   return dissect_dap_SecurityErrorData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedSecurityError);
5106 }
5107 static int dissect_securityErrorData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5108   return dissect_dap_SecurityErrorData(FALSE, tvb, offset, pinfo, tree, hf_dap_securityErrorData);
5109 }
5110
5111
5112 static const ber_sequence_t T_signedSecurityError_sequence[] = {
5113   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_securityErrorData },
5114   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
5115   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
5116   { 0, 0, 0, NULL }
5117 };
5118
5119 static int
5120 dissect_dap_T_signedSecurityError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5121   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5122                                    T_signedSecurityError_sequence, hf_index, ett_dap_T_signedSecurityError);
5123
5124   return offset;
5125 }
5126 static int dissect_signedSecurityError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5127   return dissect_dap_T_signedSecurityError(FALSE, tvb, offset, pinfo, tree, hf_dap_signedSecurityError);
5128 }
5129
5130
5131 const value_string dap_SecurityError_vals[] = {
5132   {   0, "unsignedSecurityError" },
5133   {   1, "signedSecurityError" },
5134   { 0, NULL }
5135 };
5136
5137 static const ber_choice_t SecurityError_choice[] = {
5138   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedSecurityError },
5139   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedSecurityError },
5140   { 0, 0, 0, 0, NULL }
5141 };
5142
5143 int
5144 dissect_dap_SecurityError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5145   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5146                                  SecurityError_choice, hf_index, ett_dap_SecurityError,
5147                                  NULL);
5148
5149   return offset;
5150 }
5151
5152
5153 static const ber_sequence_t ServiceErrorData_set[] = {
5154   { BER_CLASS_CON, 0, 0, dissect_service_error_problem },
5155   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
5156   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
5157   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
5158   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
5159   { 0, 0, 0, NULL }
5160 };
5161
5162 static int
5163 dissect_dap_ServiceErrorData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5164   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
5165                               ServiceErrorData_set, hf_index, ett_dap_ServiceErrorData);
5166
5167   return offset;
5168 }
5169 static int dissect_unsignedServiceError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5170   return dissect_dap_ServiceErrorData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedServiceError);
5171 }
5172 static int dissect_serviceError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5173   return dissect_dap_ServiceErrorData(FALSE, tvb, offset, pinfo, tree, hf_dap_serviceError);
5174 }
5175
5176
5177 static const ber_sequence_t T_signedServiceError_sequence[] = {
5178   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_serviceError },
5179   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
5180   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
5181   { 0, 0, 0, NULL }
5182 };
5183
5184 static int
5185 dissect_dap_T_signedServiceError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5186   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5187                                    T_signedServiceError_sequence, hf_index, ett_dap_T_signedServiceError);
5188
5189   return offset;
5190 }
5191 static int dissect_signedServiceError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5192   return dissect_dap_T_signedServiceError(FALSE, tvb, offset, pinfo, tree, hf_dap_signedServiceError);
5193 }
5194
5195
5196 const value_string dap_ServiceError_vals[] = {
5197   {   0, "unsignedServiceError" },
5198   {   1, "signedServiceError" },
5199   { 0, NULL }
5200 };
5201
5202 static const ber_choice_t ServiceError_choice[] = {
5203   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedServiceError },
5204   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedServiceError },
5205   { 0, 0, 0, 0, NULL }
5206 };
5207
5208 int
5209 dissect_dap_ServiceError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5210   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5211                                  ServiceError_choice, hf_index, ett_dap_ServiceError,
5212                                  NULL);
5213
5214   return offset;
5215 }
5216
5217
5218 static const value_string dap_UpdateProblem_vals[] = {
5219   {   1, "namingViolation" },
5220   {   2, "objectClassViolation" },
5221   {   3, "notAllowedOnNonLeaf" },
5222   {   4, "notAllowedOnRDN" },
5223   {   5, "entryAlreadyExists" },
5224   {   6, "affectsMultipleDSAs" },
5225   {   7, "objectClassModificationProhibited" },
5226   {   8, "noSuchSuperior" },
5227   {   9, "notAncestor" },
5228   {  10, "parentNotAncestor" },
5229   {  11, "hierarchyRuleViolation" },
5230   {  12, "familyRuleViolation" },
5231   { 0, NULL }
5232 };
5233
5234
5235 static int
5236 dissect_dap_UpdateProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5237 #line 226 "dap.cnf"
5238   guint32 problem;
5239
5240     offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5241                                   &problem);
5242
5243
5244   if (check_col(pinfo->cinfo, COL_INFO)) {
5245         col_append_fstr(pinfo->cinfo, COL_INFO, " %s", val_to_str(problem, dap_UpdateProblem_vals, "UpdateProblem(%d)"));
5246   }
5247
5248
5249
5250   return offset;
5251 }
5252 static int dissect_update_error_problem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5253   return dissect_dap_UpdateProblem(FALSE, tvb, offset, pinfo, tree, hf_dap_update_error_problem);
5254 }
5255
5256
5257 static const value_string dap_T_attributeInfo_item_vals[] = {
5258   {   0, "attributeType" },
5259   {   1, "attribute" },
5260   { 0, NULL }
5261 };
5262
5263 static const ber_choice_t T_attributeInfo_item_choice[] = {
5264   {   0, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeType },
5265   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_attribute },
5266   { 0, 0, 0, 0, NULL }
5267 };
5268
5269 static int
5270 dissect_dap_T_attributeInfo_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5271   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5272                                  T_attributeInfo_item_choice, hf_index, ett_dap_T_attributeInfo_item,
5273                                  NULL);
5274
5275   return offset;
5276 }
5277 static int dissect_attributeInfo_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5278   return dissect_dap_T_attributeInfo_item(FALSE, tvb, offset, pinfo, tree, hf_dap_attributeInfo_item);
5279 }
5280
5281
5282 static const ber_sequence_t T_attributeInfo_set_of[1] = {
5283   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_attributeInfo_item },
5284 };
5285
5286 static int
5287 dissect_dap_T_attributeInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5288   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
5289                                  T_attributeInfo_set_of, hf_index, ett_dap_T_attributeInfo);
5290
5291   return offset;
5292 }
5293 static int dissect_attributeInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5294   return dissect_dap_T_attributeInfo(FALSE, tvb, offset, pinfo, tree, hf_dap_attributeInfo);
5295 }
5296
5297
5298 static const ber_sequence_t UpdateErrorData_set[] = {
5299   { BER_CLASS_CON, 0, 0, dissect_update_error_problem },
5300   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_attributeInfo },
5301   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_securityParameters },
5302   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_performer },
5303   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_aliasDereferenced },
5304   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL, dissect_notification },
5305   { 0, 0, 0, NULL }
5306 };
5307
5308 static int
5309 dissect_dap_UpdateErrorData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5310   offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
5311                               UpdateErrorData_set, hf_index, ett_dap_UpdateErrorData);
5312
5313   return offset;
5314 }
5315 static int dissect_unsignedUpdateError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5316   return dissect_dap_UpdateErrorData(FALSE, tvb, offset, pinfo, tree, hf_dap_unsignedUpdateError);
5317 }
5318 static int dissect_updateError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5319   return dissect_dap_UpdateErrorData(FALSE, tvb, offset, pinfo, tree, hf_dap_updateError);
5320 }
5321
5322
5323 static const ber_sequence_t T_signedUpdateError_sequence[] = {
5324   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_updateError },
5325   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
5326   { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
5327   { 0, 0, 0, NULL }
5328 };
5329
5330 static int
5331 dissect_dap_T_signedUpdateError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5332   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5333                                    T_signedUpdateError_sequence, hf_index, ett_dap_T_signedUpdateError);
5334
5335   return offset;
5336 }
5337 static int dissect_signedUpdateError(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5338   return dissect_dap_T_signedUpdateError(FALSE, tvb, offset, pinfo, tree, hf_dap_signedUpdateError);
5339 }
5340
5341
5342 const value_string dap_UpdateError_vals[] = {
5343   {   0, "unsignedUpdateError" },
5344   {   1, "signedUpdateError" },
5345   { 0, NULL }
5346 };
5347
5348 static const ber_choice_t UpdateError_choice[] = {
5349   {   0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_unsignedUpdateError },
5350   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signedUpdateError },
5351   { 0, 0, 0, 0, NULL }
5352 };
5353
5354 int
5355 dissect_dap_UpdateError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5356   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5357                                  UpdateError_choice, hf_index, ett_dap_UpdateError,
5358                                  NULL);
5359
5360   return offset;
5361 }
5362
5363
5364 /*--- End of included file: packet-dap-fn.c ---*/
5365 #line 76 "packet-dap-template.c"
5366
5367 /*
5368 * Dissect DAP PDUs inside a ROS PDUs
5369 */
5370 static void
5371 dissect_dap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
5372 {
5373         int offset = 0;
5374         int old_offset;
5375         proto_item *item=NULL;
5376         proto_tree *tree=NULL;
5377         int (*dap_dissector)(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) = NULL;
5378         char *dap_op_name;
5379
5380         /* do we have operation information from the ROS dissector?  */
5381         if( !pinfo->private_data ){
5382                 if(parent_tree){
5383                         proto_tree_add_text(parent_tree, tvb, offset, -1,
5384                                 "Internal error: can't get operation information from ROS dissector.");
5385                 } 
5386                 return  ;
5387         } else {
5388                 session  = ( (struct SESSION_DATA_STRUCTURE*)(pinfo->private_data) );
5389         }
5390
5391         if(parent_tree){
5392                 item = proto_tree_add_item(parent_tree, proto_dap, tvb, 0, -1, FALSE);
5393                 tree = proto_item_add_subtree(item, ett_dap);
5394         }
5395         if (check_col(pinfo->cinfo, COL_PROTOCOL))
5396                 col_set_str(pinfo->cinfo, COL_PROTOCOL, "DAP");
5397         if (check_col(pinfo->cinfo, COL_INFO))
5398                 col_clear(pinfo->cinfo, COL_INFO);
5399
5400         switch(session->ros_op & ROS_OP_MASK) {
5401         case (ROS_OP_BIND | ROS_OP_ARGUMENT):   /*  BindInvoke */
5402           dap_dissector = dissect_dap_DirectoryBindArgument;
5403           dap_op_name = "Bind-Argument";
5404           break;
5405         case (ROS_OP_BIND | ROS_OP_RESULT):     /*  BindResult */
5406           dap_dissector = dissect_dap_DirectoryBindResult;
5407           dap_op_name = "Bind-Result";
5408           break;
5409         case (ROS_OP_BIND | ROS_OP_ERROR):      /*  BindError */
5410           dap_dissector = dissect_dap_DirectoryBindError;
5411           dap_op_name = "Bind-Error";
5412           break;
5413         case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /*  Invoke Argument */
5414           switch(session->ros_op & ROS_OP_OPCODE_MASK) {
5415           case 1: /* read */
5416             dap_dissector = dissect_dap_ReadArgument;
5417             dap_op_name = "Read-Argument";
5418             break;
5419           case 2: /* compare */
5420             dap_dissector = dissect_dap_CompareArgument;
5421             dap_op_name = "Compare-Argument";
5422             break;
5423           case 3: /* abandon */
5424             dap_dissector = dissect_dap_AbandonArgument;
5425             dap_op_name = "Abandon-Argument";
5426             break;
5427           case 4: /* list */
5428             dap_dissector = dissect_dap_ListArgument;
5429             dap_op_name = "List-Argument";
5430             break;
5431           case 5: /* search */
5432             dap_dissector = dissect_dap_SearchArgument;
5433             dap_op_name = "Search-Argument";
5434             break;
5435           case 6: /* addEntry */
5436             dap_dissector = dissect_dap_AddEntryArgument;
5437             dap_op_name = "Add-Entry-Argument";
5438             break;
5439           case 7: /* removeEntry */
5440             dap_dissector = dissect_dap_RemoveEntryArgument;
5441             dap_op_name = "Remove-Entry-Argument";
5442             break;
5443           case 8: /* modifyEntry */
5444             dap_dissector = dissect_dap_ModifyEntryArgument;
5445             dap_op_name = "Modify-Entry-Argument";
5446             break;
5447           case 9: /* modifyDN */
5448             dap_dissector = dissect_dap_ModifyDNArgument;
5449             dap_op_name = "Modify-DN-Argument";
5450             break;
5451           default:
5452             proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DAP opcode (%d)",
5453                                 session->ros_op & ROS_OP_OPCODE_MASK);
5454             break;
5455           }
5456           break;
5457         case (ROS_OP_INVOKE | ROS_OP_RESULT):   /*  Return Result */
5458           switch(session->ros_op & ROS_OP_OPCODE_MASK) {
5459           case 1: /* read */
5460             dap_dissector = dissect_dap_ReadResult;
5461             dap_op_name = "Read-Result";
5462             break;
5463           case 2: /* compare */
5464             dap_dissector = dissect_dap_CompareResult;
5465             dap_op_name = "Compare-Result";
5466             break;
5467           case 3: /* abandon */
5468             dap_dissector = dissect_dap_AbandonResult;
5469             dap_op_name = "Abandon-Result";
5470             break;
5471           case 4: /* list */
5472             dap_dissector = dissect_dap_ListResult;
5473             dap_op_name = "List-Result";
5474             break;
5475           case 5: /* search */
5476             dap_dissector = dissect_dap_SearchResult;
5477             dap_op_name = "Search-Result";
5478             break;
5479           case 6: /* addEntry */
5480             dap_dissector = dissect_dap_AddEntryResult;
5481             dap_op_name = "Add-Entry-Result";
5482             break;
5483           case 7: /* removeEntry */
5484             dap_dissector = dissect_dap_RemoveEntryResult;
5485             dap_op_name = "Remove-Entry-Result";
5486             break;
5487           case 8: /* modifyEntry */
5488             dap_dissector = dissect_dap_ModifyEntryResult;
5489             dap_op_name = "Modify-Entry-Result";
5490             break;
5491           case 9: /* modifyDN */
5492             dap_dissector = dissect_dap_ModifyDNResult;
5493             dap_op_name = "Modify-DN-Result";
5494             break;
5495           default:
5496             proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DAP opcode");
5497             break;
5498           }
5499           break;
5500         case (ROS_OP_INVOKE | ROS_OP_ERROR):    /*  Return Error */
5501           switch(session->ros_op & ROS_OP_OPCODE_MASK) {
5502           case 1: /* attributeError */
5503             dap_dissector = dissect_dap_AttributeError;
5504             dap_op_name = "Attribute-Error";
5505             break;
5506           case 2: /* nameError */
5507             dap_dissector = dissect_dap_NameError;
5508             dap_op_name = "Name-Error";
5509             break;
5510           case 3: /* serviceError */
5511             dap_dissector = dissect_dap_ServiceError;
5512             dap_op_name = "Service-Error";
5513             break;
5514           case 4: /* referral */
5515             dap_dissector = dissect_dap_Referral;
5516             dap_op_name = "Referral";
5517             break;
5518           case 5: /* abandoned */
5519             dap_dissector = dissect_dap_Abandoned;
5520             dap_op_name = "Abandoned";
5521             break;
5522           case 6: /* securityError */
5523             dap_dissector = dissect_dap_SecurityError;
5524             dap_op_name = "Security-Error";
5525             break;
5526           case 7: /* abandonFailed */
5527             dap_dissector = dissect_dap_AbandonFailedError;
5528             dap_op_name = "Abandon-Failed-Error";
5529             break;
5530           case 8: /* updateError */
5531             dap_dissector = dissect_dap_UpdateError;
5532             dap_op_name = "Update-Error";
5533             break;
5534           default:
5535             proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DAP errcode");
5536             break;
5537           }
5538           break;
5539         default:
5540           proto_tree_add_text(tree, tvb, offset, -1,"Unsupported DAP PDU");
5541           return;
5542         }
5543
5544         if(dap_dissector) {
5545           if (check_col(pinfo->cinfo, COL_INFO))
5546             col_add_str(pinfo->cinfo, COL_INFO, dap_op_name);
5547
5548           while (tvb_reported_length_remaining(tvb, offset) > 0){
5549             old_offset=offset;
5550             offset=(*dap_dissector)(FALSE, tvb, offset, pinfo , tree, -1);
5551             if(offset == old_offset){
5552               proto_tree_add_text(tree, tvb, offset, -1,"Internal error, zero-byte DAP PDU");
5553               offset = tvb_length(tvb);
5554               break;
5555             }
5556           }
5557         }
5558 }
5559
5560
5561 /*--- proto_register_dap -------------------------------------------*/
5562 void proto_register_dap(void) {
5563
5564   /* List of fields */
5565   static hf_register_info hf[] =
5566   {
5567
5568 /*--- Included file: packet-dap-hfarr.c ---*/
5569 #line 1 "packet-dap-hfarr.c"
5570     { &hf_dap_securityParameters,
5571       { "securityParameters", "dap.securityParameters",
5572         FT_NONE, BASE_NONE, NULL, 0,
5573         "", HFILL }},
5574     { &hf_dap_performer,
5575       { "performer", "dap.performer",
5576         FT_UINT32, BASE_DEC, NULL, 0,
5577         "", HFILL }},
5578     { &hf_dap_aliasDereferenced,
5579       { "aliasDereferenced", "dap.aliasDereferenced",
5580         FT_BOOLEAN, 8, NULL, 0,
5581         "", HFILL }},
5582     { &hf_dap_notification,
5583       { "notification", "dap.notification",
5584         FT_UINT32, BASE_DEC, NULL, 0,
5585         "", HFILL }},
5586     { &hf_dap_notification_item,
5587       { "Item", "dap.notification_item",
5588         FT_NONE, BASE_NONE, NULL, 0,
5589         "", HFILL }},
5590     { &hf_dap_options,
5591       { "options", "dap.options",
5592         FT_BYTES, BASE_HEX, NULL, 0,
5593         "ServiceControls/options", HFILL }},
5594     { &hf_dap_priority,
5595       { "priority", "dap.priority",
5596         FT_INT32, BASE_DEC, VALS(dap_T_priority_vals), 0,
5597         "ServiceControls/priority", HFILL }},
5598     { &hf_dap_timeLimit,
5599       { "timeLimit", "dap.timeLimit",
5600         FT_INT32, BASE_DEC, NULL, 0,
5601         "ServiceControls/timeLimit", HFILL }},
5602     { &hf_dap_sizeLimit,
5603       { "sizeLimit", "dap.sizeLimit",
5604         FT_INT32, BASE_DEC, NULL, 0,
5605         "ServiceControls/sizeLimit", HFILL }},
5606     { &hf_dap_scopeOfReferral,
5607       { "scopeOfReferral", "dap.scopeOfReferral",
5608         FT_INT32, BASE_DEC, VALS(dap_T_scopeOfReferral_vals), 0,
5609         "ServiceControls/scopeOfReferral", HFILL }},
5610     { &hf_dap_attributeSizeLimit,
5611       { "attributeSizeLimit", "dap.attributeSizeLimit",
5612         FT_INT32, BASE_DEC, NULL, 0,
5613         "ServiceControls/attributeSizeLimit", HFILL }},
5614     { &hf_dap_manageDSAITPlaneRef,
5615       { "manageDSAITPlaneRef", "dap.manageDSAITPlaneRef",
5616         FT_NONE, BASE_NONE, NULL, 0,
5617         "ServiceControls/manageDSAITPlaneRef", HFILL }},
5618     { &hf_dap_dsaName,
5619       { "dsaName", "dap.dsaName",
5620         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
5621         "ServiceControls/manageDSAITPlaneRef/dsaName", HFILL }},
5622     { &hf_dap_agreementID,
5623       { "agreementID", "dap.agreementID",
5624         FT_NONE, BASE_NONE, NULL, 0,
5625         "ServiceControls/manageDSAITPlaneRef/agreementID", HFILL }},
5626     { &hf_dap_serviceType,
5627       { "serviceType", "dap.serviceType",
5628         FT_OID, BASE_NONE, NULL, 0,
5629         "ServiceControls/serviceType", HFILL }},
5630     { &hf_dap_userClass,
5631       { "userClass", "dap.userClass",
5632         FT_INT32, BASE_DEC, NULL, 0,
5633         "ServiceControls/userClass", HFILL }},
5634     { &hf_dap_attributes,
5635       { "attributes", "dap.attributes",
5636         FT_UINT32, BASE_DEC, VALS(dap_T_attributes_vals), 0,
5637         "EntryInformationSelection/attributes", HFILL }},
5638     { &hf_dap_allUserAttributes,
5639       { "allUserAttributes", "dap.allUserAttributes",
5640         FT_NONE, BASE_NONE, NULL, 0,
5641         "EntryInformationSelection/attributes/allUserAttributes", HFILL }},
5642     { &hf_dap_select,
5643       { "select", "dap.select",
5644         FT_UINT32, BASE_DEC, NULL, 0,
5645         "", HFILL }},
5646     { &hf_dap_select_item,
5647       { "Item", "dap.select_item",
5648         FT_OID, BASE_NONE, NULL, 0,
5649         "", HFILL }},
5650     { &hf_dap_infoTypes,
5651       { "infoTypes", "dap.infoTypes",
5652         FT_INT32, BASE_DEC, VALS(dap_T_infoTypes_vals), 0,
5653         "EntryInformationSelection/infoTypes", HFILL }},
5654     { &hf_dap_extraAttributes,
5655       { "extraAttributes", "dap.extraAttributes",
5656         FT_UINT32, BASE_DEC, VALS(dap_T_extraAttributes_vals), 0,
5657         "EntryInformationSelection/extraAttributes", HFILL }},
5658     { &hf_dap_allOperationalAttributes,
5659       { "allOperationalAttributes", "dap.allOperationalAttributes",
5660         FT_NONE, BASE_NONE, NULL, 0,
5661         "EntryInformationSelection/extraAttributes/allOperationalAttributes", HFILL }},
5662     { &hf_dap_contextSelection,
5663       { "contextSelection", "dap.contextSelection",
5664         FT_UINT32, BASE_DEC, VALS(dap_ContextSelection_vals), 0,
5665         "EntryInformationSelection/contextSelection", HFILL }},
5666     { &hf_dap_returnContexts,
5667       { "returnContexts", "dap.returnContexts",
5668         FT_BOOLEAN, 8, NULL, 0,
5669         "EntryInformationSelection/returnContexts", HFILL }},
5670     { &hf_dap_familyReturn,
5671       { "familyReturn", "dap.familyReturn",
5672         FT_NONE, BASE_NONE, NULL, 0,
5673         "EntryInformationSelection/familyReturn", HFILL }},
5674     { &hf_dap_allContexts,
5675       { "allContexts", "dap.allContexts",
5676         FT_NONE, BASE_NONE, NULL, 0,
5677         "ContextSelection/allContexts", HFILL }},
5678     { &hf_dap_selectedContexts,
5679       { "selectedContexts", "dap.selectedContexts",
5680         FT_UINT32, BASE_DEC, NULL, 0,
5681         "ContextSelection/selectedContexts", HFILL }},
5682     { &hf_dap_selectedContexts_item,
5683       { "Item", "dap.selectedContexts_item",
5684         FT_NONE, BASE_NONE, NULL, 0,
5685         "ContextSelection/selectedContexts/_item", HFILL }},
5686     { &hf_dap_type,
5687       { "type", "dap.type",
5688         FT_OID, BASE_NONE, NULL, 0,
5689         "", HFILL }},
5690     { &hf_dap_contextAssertions,
5691       { "contextAssertions", "dap.contextAssertions",
5692         FT_UINT32, BASE_DEC, VALS(dap_T_contextAssertions_vals), 0,
5693         "TypeAndContextAssertion/contextAssertions", HFILL }},
5694     { &hf_dap_preference,
5695       { "preference", "dap.preference",
5696         FT_UINT32, BASE_DEC, NULL, 0,
5697         "TypeAndContextAssertion/contextAssertions/preference", HFILL }},
5698     { &hf_dap_preference_item,
5699       { "Item", "dap.preference_item",
5700         FT_NONE, BASE_NONE, NULL, 0,
5701         "TypeAndContextAssertion/contextAssertions/preference/_item", HFILL }},
5702     { &hf_dap_all,
5703       { "all", "dap.all",
5704         FT_UINT32, BASE_DEC, NULL, 0,
5705         "TypeAndContextAssertion/contextAssertions/all", HFILL }},
5706     { &hf_dap_all_item,
5707       { "Item", "dap.all_item",
5708         FT_NONE, BASE_NONE, NULL, 0,
5709         "TypeAndContextAssertion/contextAssertions/all/_item", HFILL }},
5710     { &hf_dap_memberSelect,
5711       { "memberSelect", "dap.memberSelect",
5712         FT_UINT32, BASE_DEC, VALS(dap_T_memberSelect_vals), 0,
5713         "FamilyReturn/memberSelect", HFILL }},
5714     { &hf_dap_familySelect,
5715       { "familySelect", "dap.familySelect",
5716         FT_UINT32, BASE_DEC, NULL, 0,
5717         "FamilyReturn/familySelect", HFILL }},
5718     { &hf_dap_familySelect_item,
5719       { "Item", "dap.familySelect_item",
5720         FT_OID, BASE_NONE, NULL, 0,
5721         "FamilyReturn/familySelect/_item", HFILL }},
5722     { &hf_dap_name,
5723       { "name", "dap.name",
5724         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
5725         "", HFILL }},
5726     { &hf_dap_fromEntry,
5727       { "fromEntry", "dap.fromEntry",
5728         FT_BOOLEAN, 8, NULL, 0,
5729         "", HFILL }},
5730     { &hf_dap_entry_information,
5731       { "information", "dap.information",
5732         FT_UINT32, BASE_DEC, NULL, 0,
5733         "EntryInformation/information", HFILL }},
5734     { &hf_dap_entry_information_item,
5735       { "Item", "dap.information_item",
5736         FT_UINT32, BASE_DEC, VALS(dap_EntryInformationItem_vals), 0,
5737         "EntryInformation/information/_item", HFILL }},
5738     { &hf_dap_attributeType,
5739       { "attributeType", "dap.attributeType",
5740         FT_OID, BASE_NONE, NULL, 0,
5741         "", HFILL }},
5742     { &hf_dap_attribute,
5743       { "attribute", "dap.attribute",
5744         FT_NONE, BASE_NONE, NULL, 0,
5745         "", HFILL }},
5746     { &hf_dap_incompleteEntry,
5747       { "incompleteEntry", "dap.incompleteEntry",
5748         FT_BOOLEAN, 8, NULL, 0,
5749         "EntryInformation/incompleteEntry", HFILL }},
5750     { &hf_dap_partialName,
5751       { "partialName", "dap.partialName",
5752         FT_BOOLEAN, 8, NULL, 0,
5753         "EntryInformation/partialName", HFILL }},
5754     { &hf_dap_derivedEntry,
5755       { "derivedEntry", "dap.derivedEntry",
5756         FT_BOOLEAN, 8, NULL, 0,
5757         "EntryInformation/derivedEntry", HFILL }},
5758     { &hf_dap_family_class,
5759       { "family-class", "dap.family_class",
5760         FT_OID, BASE_NONE, NULL, 0,
5761         "FamilyEntries/family-class", HFILL }},
5762     { &hf_dap_familyEntries,
5763       { "familyEntries", "dap.familyEntries",
5764         FT_UINT32, BASE_DEC, NULL, 0,
5765         "FamilyEntries/familyEntries", HFILL }},
5766     { &hf_dap_familyEntries_item,
5767       { "Item", "dap.familyEntries_item",
5768         FT_NONE, BASE_NONE, NULL, 0,
5769         "FamilyEntries/familyEntries/_item", HFILL }},
5770     { &hf_dap_rdn,
5771       { "rdn", "dap.rdn",
5772         FT_UINT32, BASE_DEC, NULL, 0,
5773         "", HFILL }},
5774     { &hf_dap_family_information,
5775       { "information", "dap.information",
5776         FT_UINT32, BASE_DEC, NULL, 0,
5777         "FamilyEntry/information", HFILL }},
5778     { &hf_dap_information_item,
5779       { "Item", "dap.information_item",
5780         FT_UINT32, BASE_DEC, VALS(dap_T_information_item_vals), 0,
5781         "FamilyEntry/information/_item", HFILL }},
5782     { &hf_dap_family_info,
5783       { "family-info", "dap.family_info",
5784         FT_UINT32, BASE_DEC, NULL, 0,
5785         "FamilyEntry/family-info", HFILL }},
5786     { &hf_dap_family_info_item,
5787       { "Item", "dap.family_info_item",
5788         FT_NONE, BASE_NONE, NULL, 0,
5789         "FamilyEntry/family-info/_item", HFILL }},
5790     { &hf_dap_filter_item,
5791       { "item", "dap.item",
5792         FT_UINT32, BASE_DEC, VALS(dap_FilterItem_vals), 0,
5793         "Filter/item", HFILL }},
5794     { &hf_dap_and,
5795       { "and", "dap.and",
5796         FT_UINT32, BASE_DEC, NULL, 0,
5797         "Filter/and", HFILL }},
5798     { &hf_dap_or,
5799       { "or", "dap.or",
5800         FT_UINT32, BASE_DEC, NULL, 0,
5801         "Filter/or", HFILL }},
5802     { &hf_dap_not,
5803       { "not", "dap.not",
5804         FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
5805         "Filter/not", HFILL }},
5806     { &hf_dap_SetOfFilter_item,
5807       { "Item", "dap.SetOfFilter_item",
5808         FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
5809         "SetOfFilter/_item", HFILL }},
5810     { &hf_dap_equality,
5811       { "equality", "dap.equality",
5812         FT_NONE, BASE_NONE, NULL, 0,
5813         "FilterItem/equality", HFILL }},
5814     { &hf_dap_substrings,
5815       { "substrings", "dap.substrings",
5816         FT_NONE, BASE_NONE, NULL, 0,
5817         "FilterItem/substrings", HFILL }},
5818     { &hf_dap_sunstringType,
5819       { "type", "dap.type",
5820         FT_OID, BASE_NONE, NULL, 0,
5821         "FilterItem/substrings/type", HFILL }},
5822     { &hf_dap_strings,
5823       { "strings", "dap.strings",
5824         FT_UINT32, BASE_DEC, NULL, 0,
5825         "FilterItem/substrings/strings", HFILL }},
5826     { &hf_dap_strings_item,
5827       { "Item", "dap.strings_item",
5828         FT_UINT32, BASE_DEC, VALS(dap_T_strings_item_vals), 0,
5829         "FilterItem/substrings/strings/_item", HFILL }},
5830     { &hf_dap_initial,
5831       { "initial", "dap.initial",
5832         FT_NONE, BASE_NONE, NULL, 0,
5833         "FilterItem/substrings/strings/_item/initial", HFILL }},
5834     { &hf_dap_any,
5835       { "any", "dap.any",
5836         FT_NONE, BASE_NONE, NULL, 0,
5837         "FilterItem/substrings/strings/_item/any", HFILL }},
5838     { &hf_dap_final,
5839       { "final", "dap.final",
5840         FT_NONE, BASE_NONE, NULL, 0,
5841         "FilterItem/substrings/strings/_item/final", HFILL }},
5842     { &hf_dap_control,
5843       { "control", "dap.control",
5844         FT_NONE, BASE_NONE, NULL, 0,
5845         "FilterItem/substrings/strings/_item/control", HFILL }},
5846     { &hf_dap_greaterOrEqual,
5847       { "greaterOrEqual", "dap.greaterOrEqual",
5848         FT_NONE, BASE_NONE, NULL, 0,
5849         "FilterItem/greaterOrEqual", HFILL }},
5850     { &hf_dap_lessOrEqual,
5851       { "lessOrEqual", "dap.lessOrEqual",
5852         FT_NONE, BASE_NONE, NULL, 0,
5853         "FilterItem/lessOrEqual", HFILL }},
5854     { &hf_dap_present,
5855       { "present", "dap.present",
5856         FT_OID, BASE_NONE, NULL, 0,
5857         "FilterItem/present", HFILL }},
5858     { &hf_dap_approximateMatch,
5859       { "approximateMatch", "dap.approximateMatch",
5860         FT_NONE, BASE_NONE, NULL, 0,
5861         "FilterItem/approximateMatch", HFILL }},
5862     { &hf_dap_extensibleMatch,
5863       { "extensibleMatch", "dap.extensibleMatch",
5864         FT_NONE, BASE_NONE, NULL, 0,
5865         "FilterItem/extensibleMatch", HFILL }},
5866     { &hf_dap_contextPresent,
5867       { "contextPresent", "dap.contextPresent",
5868         FT_NONE, BASE_NONE, NULL, 0,
5869         "FilterItem/contextPresent", HFILL }},
5870     { &hf_dap_matchingRule,
5871       { "matchingRule", "dap.matchingRule",
5872         FT_UINT32, BASE_DEC, NULL, 0,
5873         "MatchingRuleAssertion/matchingRule", HFILL }},
5874     { &hf_dap_matchingRule_item,
5875       { "Item", "dap.matchingRule_item",
5876         FT_OID, BASE_NONE, NULL, 0,
5877         "MatchingRuleAssertion/matchingRule/_item", HFILL }},
5878     { &hf_dap_matchValue,
5879       { "matchValue", "dap.matchValue",
5880         FT_NONE, BASE_NONE, NULL, 0,
5881         "MatchingRuleAssertion/matchValue", HFILL }},
5882     { &hf_dap_dnAttributes,
5883       { "dnAttributes", "dap.dnAttributes",
5884         FT_BOOLEAN, 8, NULL, 0,
5885         "MatchingRuleAssertion/dnAttributes", HFILL }},
5886     { &hf_dap_newRequest,
5887       { "newRequest", "dap.newRequest",
5888         FT_NONE, BASE_NONE, NULL, 0,
5889         "PagedResultsRequest/newRequest", HFILL }},
5890     { &hf_dap_pageSize,
5891       { "pageSize", "dap.pageSize",
5892         FT_INT32, BASE_DEC, NULL, 0,
5893         "PagedResultsRequest/newRequest/pageSize", HFILL }},
5894     { &hf_dap_sortKeys,
5895       { "sortKeys", "dap.sortKeys",
5896         FT_UINT32, BASE_DEC, NULL, 0,
5897         "PagedResultsRequest/newRequest/sortKeys", HFILL }},
5898     { &hf_dap_sortKeys_item,
5899       { "Item", "dap.sortKeys_item",
5900         FT_NONE, BASE_NONE, NULL, 0,
5901         "PagedResultsRequest/newRequest/sortKeys/_item", HFILL }},
5902     { &hf_dap_reverse,
5903       { "reverse", "dap.reverse",
5904         FT_BOOLEAN, 8, NULL, 0,
5905         "PagedResultsRequest/newRequest/reverse", HFILL }},
5906     { &hf_dap_unmerged,
5907       { "unmerged", "dap.unmerged",
5908         FT_BOOLEAN, 8, NULL, 0,
5909         "PagedResultsRequest/newRequest/unmerged", HFILL }},
5910     { &hf_dap_queryReference,
5911       { "queryReference", "dap.queryReference",
5912         FT_BYTES, BASE_HEX, NULL, 0,
5913         "", HFILL }},
5914     { &hf_dap_orderingRule,
5915       { "orderingRule", "dap.orderingRule",
5916         FT_OID, BASE_NONE, NULL, 0,
5917         "SortKey/orderingRule", HFILL }},
5918     { &hf_dap_certification_path,
5919       { "certification-path", "dap.certification_path",
5920         FT_NONE, BASE_NONE, NULL, 0,
5921         "", HFILL }},
5922     { &hf_dap_distinguished_name,
5923       { "name", "dap.name",
5924         FT_UINT32, BASE_DEC, NULL, 0,
5925         "", HFILL }},
5926     { &hf_dap_time,
5927       { "time", "dap.time",
5928         FT_UINT32, BASE_DEC, VALS(x509af_Time_vals), 0,
5929         "SecurityParameters/time", HFILL }},
5930     { &hf_dap_random,
5931       { "random", "dap.random",
5932         FT_BYTES, BASE_HEX, NULL, 0,
5933         "SecurityParameters/random", HFILL }},
5934     { &hf_dap_target,
5935       { "target", "dap.target",
5936         FT_INT32, BASE_DEC, VALS(dap_ProtectionRequest_vals), 0,
5937         "SecurityParameters/target", HFILL }},
5938     { &hf_dap_response,
5939       { "response", "dap.response",
5940         FT_BYTES, BASE_HEX, NULL, 0,
5941         "SecurityParameters/response", HFILL }},
5942     { &hf_dap_operationCode,
5943       { "operationCode", "dap.operationCode",
5944         FT_UINT32, BASE_DEC, VALS(ros_Code_vals), 0,
5945         "SecurityParameters/operationCode", HFILL }},
5946     { &hf_dap_attributeCertificationPath,
5947       { "attributeCertificationPath", "dap.attributeCertificationPath",
5948         FT_NONE, BASE_NONE, NULL, 0,
5949         "", HFILL }},
5950     { &hf_dap_errorProtection,
5951       { "errorProtection", "dap.errorProtection",
5952         FT_INT32, BASE_DEC, VALS(dap_ErrorProtectionRequest_vals), 0,
5953         "SecurityParameters/errorProtection", HFILL }},
5954     { &hf_dap_errorCode,
5955       { "errorCode", "dap.errorCode",
5956         FT_UINT32, BASE_DEC, VALS(ros_Code_vals), 0,
5957         "SecurityParameters/errorCode", HFILL }},
5958     { &hf_dap_utcTime,
5959       { "utcTime", "dap.utcTime",
5960         FT_STRING, BASE_NONE, NULL, 0,
5961         "Time/utcTime", HFILL }},
5962     { &hf_dap_generalizedTime,
5963       { "generalizedTime", "dap.generalizedTime",
5964         FT_STRING, BASE_NONE, NULL, 0,
5965         "Time/generalizedTime", HFILL }},
5966     { &hf_dap_credentials,
5967       { "credentials", "dap.credentials",
5968         FT_UINT32, BASE_DEC, VALS(dap_Credentials_vals), 0,
5969         "DirectoryBindArgument/credentials", HFILL }},
5970     { &hf_dap_versions,
5971       { "versions", "dap.versions",
5972         FT_BYTES, BASE_HEX, NULL, 0,
5973         "", HFILL }},
5974     { &hf_dap_simple,
5975       { "simple", "dap.simple",
5976         FT_NONE, BASE_NONE, NULL, 0,
5977         "Credentials/simple", HFILL }},
5978     { &hf_dap_strong,
5979       { "strong", "dap.strong",
5980         FT_NONE, BASE_NONE, NULL, 0,
5981         "Credentials/strong", HFILL }},
5982     { &hf_dap_externalProcedure,
5983       { "externalProcedure", "dap.externalProcedure",
5984         FT_NONE, BASE_NONE, NULL, 0,
5985         "Credentials/externalProcedure", HFILL }},
5986     { &hf_dap_spkm,
5987       { "spkm", "dap.spkm",
5988         FT_UINT32, BASE_DEC, VALS(dap_SpkmCredentials_vals), 0,
5989         "Credentials/spkm", HFILL }},
5990     { &hf_dap_validity,
5991       { "validity", "dap.validity",
5992         FT_NONE, BASE_NONE, NULL, 0,
5993         "SimpleCredentials/validity", HFILL }},
5994     { &hf_dap_time1,
5995       { "time1", "dap.time1",
5996         FT_UINT32, BASE_DEC, VALS(dap_T_time1_vals), 0,
5997         "SimpleCredentials/validity/time1", HFILL }},
5998     { &hf_dap_utc,
5999       { "utc", "dap.utc",
6000         FT_STRING, BASE_NONE, NULL, 0,
6001         "", HFILL }},
6002     { &hf_dap_gt,
6003       { "gt", "dap.gt",
6004         FT_STRING, BASE_NONE, NULL, 0,
6005         "", HFILL }},
6006     { &hf_dap_time2,
6007       { "time2", "dap.time2",
6008         FT_UINT32, BASE_DEC, VALS(dap_T_time2_vals), 0,
6009         "SimpleCredentials/validity/time2", HFILL }},
6010     { &hf_dap_random1,
6011       { "random1", "dap.random1",
6012         FT_BYTES, BASE_HEX, NULL, 0,
6013         "SimpleCredentials/validity/random1", HFILL }},
6014     { &hf_dap_random2,
6015       { "random2", "dap.random2",
6016         FT_BYTES, BASE_HEX, NULL, 0,
6017         "SimpleCredentials/validity/random2", HFILL }},
6018     { &hf_dap_password,
6019       { "password", "dap.password",
6020         FT_UINT32, BASE_DEC, VALS(dap_T_password_vals), 0,
6021         "SimpleCredentials/password", HFILL }},
6022     { &hf_dap_unprotected,
6023       { "unprotected", "dap.unprotected",
6024         FT_BYTES, BASE_HEX, NULL, 0,
6025         "SimpleCredentials/password/unprotected", HFILL }},
6026     { &hf_dap_protected,
6027       { "protected", "dap.protected",
6028         FT_NONE, BASE_NONE, NULL, 0,
6029         "SimpleCredentials/password/protected", HFILL }},
6030     { &hf_dap_protectedPassword,
6031       { "protectedPassword", "dap.protectedPassword",
6032         FT_BYTES, BASE_HEX, NULL, 0,
6033         "SimpleCredentials/password/protected/protectedPassword", HFILL }},
6034     { &hf_dap_algorithmIdentifier,
6035       { "algorithmIdentifier", "dap.algorithmIdentifier",
6036         FT_NONE, BASE_NONE, NULL, 0,
6037         "", HFILL }},
6038     { &hf_dap_encrypted,
6039       { "encrypted", "dap.encrypted",
6040         FT_BYTES, BASE_HEX, NULL, 0,
6041         "", HFILL }},
6042     { &hf_dap_bind_token,
6043       { "bind-token", "dap.bind_token",
6044         FT_NONE, BASE_NONE, NULL, 0,
6045         "StrongCredentials/bind-token", HFILL }},
6046     { &hf_dap_req,
6047       { "req", "dap.req",
6048         FT_NONE, BASE_NONE, NULL, 0,
6049         "SpkmCredentials/req", HFILL }},
6050     { &hf_dap_rep,
6051       { "rep", "dap.rep",
6052         FT_NONE, BASE_NONE, NULL, 0,
6053         "SpkmCredentials/rep", HFILL }},
6054     { &hf_dap_error,
6055       { "error", "dap.error",
6056         FT_UINT32, BASE_DEC, VALS(dap_T_error_vals), 0,
6057         "DirectoryBindErrorData/error", HFILL }},
6058     { &hf_dap_serviceProblem,
6059       { "serviceError", "dap.serviceError",
6060         FT_INT32, BASE_DEC, VALS(dap_ServiceProblem_vals), 0,
6061         "DirectoryBindErrorData/error/serviceError", HFILL }},
6062     { &hf_dap_securityProblem,
6063       { "securityError", "dap.securityError",
6064         FT_INT32, BASE_DEC, VALS(dap_SecurityProblem_vals), 0,
6065         "DirectoryBindErrorData/error/securityError", HFILL }},
6066     { &hf_dap_unsignedDirectoryBindError,
6067       { "unsignedDirectoryBindError", "dap.unsignedDirectoryBindError",
6068         FT_NONE, BASE_NONE, NULL, 0,
6069         "DirectoryBindError/unsignedDirectoryBindError", HFILL }},
6070     { &hf_dap_signedDirectoryBindError,
6071       { "signedDirectoryBindError", "dap.signedDirectoryBindError",
6072         FT_NONE, BASE_NONE, NULL, 0,
6073         "DirectoryBindError/signedDirectoryBindError", HFILL }},
6074     { &hf_dap_directoryBindError,
6075       { "directoryBindError", "dap.directoryBindError",
6076         FT_NONE, BASE_NONE, NULL, 0,
6077         "DirectoryBindError/signedDirectoryBindError/directoryBindError", HFILL }},
6078     { &hf_dap_object,
6079       { "object", "dap.object",
6080         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
6081         "", HFILL }},
6082     { &hf_dap_selection,
6083       { "selection", "dap.selection",
6084         FT_NONE, BASE_NONE, NULL, 0,
6085         "", HFILL }},
6086     { &hf_dap_modifyRightsRequest,
6087       { "modifyRightsRequest", "dap.modifyRightsRequest",
6088         FT_BOOLEAN, 8, NULL, 0,
6089         "ReadArgumentData/modifyRightsRequest", HFILL }},
6090     { &hf_dap_serviceControls,
6091       { "serviceControls", "dap.serviceControls",
6092         FT_NONE, BASE_NONE, NULL, 0,
6093         "", HFILL }},
6094     { &hf_dap_requestor,
6095       { "requestor", "dap.requestor",
6096         FT_UINT32, BASE_DEC, NULL, 0,
6097         "", HFILL }},
6098     { &hf_dap_operationProgress,
6099       { "operationProgress", "dap.operationProgress",
6100         FT_NONE, BASE_NONE, NULL, 0,
6101         "", HFILL }},
6102     { &hf_dap_aliasedRDNs,
6103       { "aliasedRDNs", "dap.aliasedRDNs",
6104         FT_INT32, BASE_DEC, NULL, 0,
6105         "", HFILL }},
6106     { &hf_dap_criticalExtensions,
6107       { "criticalExtensions", "dap.criticalExtensions",
6108         FT_BYTES, BASE_HEX, NULL, 0,
6109         "", HFILL }},
6110     { &hf_dap_referenceType,
6111       { "referenceType", "dap.referenceType",
6112         FT_UINT32, BASE_DEC, VALS(dsp_ReferenceType_vals), 0,
6113         "", HFILL }},
6114     { &hf_dap_entryOnly,
6115       { "entryOnly", "dap.entryOnly",
6116         FT_BOOLEAN, 8, NULL, 0,
6117         "", HFILL }},
6118     { &hf_dap_nameResolveOnMaster,
6119       { "nameResolveOnMaster", "dap.nameResolveOnMaster",
6120         FT_BOOLEAN, 8, NULL, 0,
6121         "", HFILL }},
6122     { &hf_dap_operationContexts,
6123       { "operationContexts", "dap.operationContexts",
6124         FT_UINT32, BASE_DEC, VALS(dap_ContextSelection_vals), 0,
6125         "", HFILL }},
6126     { &hf_dap_familyGrouping,
6127       { "familyGrouping", "dap.familyGrouping",
6128         FT_UINT32, BASE_DEC, VALS(dap_FamilyGrouping_vals), 0,
6129         "", HFILL }},
6130     { &hf_dap_rdnSequence,
6131       { "rdnSequence", "dap.rdnSequence",
6132         FT_UINT32, BASE_DEC, NULL, 0,
6133         "Name/rdnSequence", HFILL }},
6134     { &hf_dap_unsignedReadArgument,
6135       { "unsignedReadArgument", "dap.unsignedReadArgument",
6136         FT_NONE, BASE_NONE, NULL, 0,
6137         "ReadArgument/unsignedReadArgument", HFILL }},
6138     { &hf_dap_signedReadArgument,
6139       { "signedReadArgument", "dap.signedReadArgument",
6140         FT_NONE, BASE_NONE, NULL, 0,
6141         "ReadArgument/signedReadArgument", HFILL }},
6142     { &hf_dap_readArgument,
6143       { "readArgument", "dap.readArgument",
6144         FT_NONE, BASE_NONE, NULL, 0,
6145         "ReadArgument/signedReadArgument/readArgument", HFILL }},
6146     { &hf_dap_entry,
6147       { "entry", "dap.entry",
6148         FT_NONE, BASE_NONE, NULL, 0,
6149         "", HFILL }},
6150     { &hf_dap_modifyRights,
6151       { "modifyRights", "dap.modifyRights",
6152         FT_UINT32, BASE_DEC, NULL, 0,
6153         "ReadResultData/modifyRights", HFILL }},
6154     { &hf_dap_unsignedReadResult,
6155       { "unsignedReadResult", "dap.unsignedReadResult",
6156         FT_NONE, BASE_NONE, NULL, 0,
6157         "ReadResult/unsignedReadResult", HFILL }},
6158     { &hf_dap_signedReadResult,
6159       { "signedReadResult", "dap.signedReadResult",
6160         FT_NONE, BASE_NONE, NULL, 0,
6161         "ReadResult/signedReadResult", HFILL }},
6162     { &hf_dap_readResult,
6163       { "readResult", "dap.readResult",
6164         FT_NONE, BASE_NONE, NULL, 0,
6165         "ReadResult/signedReadResult/readResult", HFILL }},
6166     { &hf_dap_ModifyRights_item,
6167       { "Item", "dap.ModifyRights_item",
6168         FT_NONE, BASE_NONE, NULL, 0,
6169         "ModifyRights/_item", HFILL }},
6170     { &hf_dap_item,
6171       { "item", "dap.item",
6172         FT_UINT32, BASE_DEC, VALS(dap_T_item_vals), 0,
6173         "ModifyRights/_item/item", HFILL }},
6174     { &hf_dap_item_entry,
6175       { "entry", "dap.entry",
6176         FT_NONE, BASE_NONE, NULL, 0,
6177         "ModifyRights/_item/item/entry", HFILL }},
6178     { &hf_dap_attribute_type,
6179       { "attribute", "dap.attribute",
6180         FT_OID, BASE_NONE, NULL, 0,
6181         "ModifyRights/_item/item/attribute", HFILL }},
6182     { &hf_dap_value_assertion,
6183       { "value", "dap.value",
6184         FT_NONE, BASE_NONE, NULL, 0,
6185         "ModifyRights/_item/item/value", HFILL }},
6186     { &hf_dap_permission,
6187       { "permission", "dap.permission",
6188         FT_BYTES, BASE_HEX, NULL, 0,
6189         "ModifyRights/_item/permission", HFILL }},
6190     { &hf_dap_purported,
6191       { "purported", "dap.purported",
6192         FT_NONE, BASE_NONE, NULL, 0,
6193         "CompareArgumentData/purported", HFILL }},
6194     { &hf_dap_unsignedCompareArgument,
6195       { "unsignedCompareArgument", "dap.unsignedCompareArgument",
6196         FT_NONE, BASE_NONE, NULL, 0,
6197         "CompareArgument/unsignedCompareArgument", HFILL }},
6198     { &hf_dap_signedCompareArgument,
6199       { "signedCompareArgument", "dap.signedCompareArgument",
6200         FT_NONE, BASE_NONE, NULL, 0,
6201         "CompareArgument/signedCompareArgument", HFILL }},
6202     { &hf_dap_compareArgument,
6203       { "compareArgument", "dap.compareArgument",
6204         FT_NONE, BASE_NONE, NULL, 0,
6205         "CompareArgument/signedCompareArgument/compareArgument", HFILL }},
6206     { &hf_dap_matched,
6207       { "matched", "dap.matched",
6208         FT_BOOLEAN, 8, NULL, 0,
6209         "CompareResultData/matched", HFILL }},
6210     { &hf_dap_matchedSubtype,
6211       { "matchedSubtype", "dap.matchedSubtype",
6212         FT_OID, BASE_NONE, NULL, 0,
6213         "CompareResultData/matchedSubtype", HFILL }},
6214     { &hf_dap_unsignedCompareResult,
6215       { "unsignedCompareResult", "dap.unsignedCompareResult",
6216         FT_NONE, BASE_NONE, NULL, 0,
6217         "CompareResult/unsignedCompareResult", HFILL }},
6218     { &hf_dap_signedCompareResult,
6219       { "signedCompareResult", "dap.signedCompareResult",
6220         FT_NONE, BASE_NONE, NULL, 0,
6221         "CompareResult/signedCompareResult", HFILL }},
6222     { &hf_dap_compareResult,
6223       { "compareResult", "dap.compareResult",
6224         FT_NONE, BASE_NONE, NULL, 0,
6225         "CompareResult/signedCompareResult/compareResult", HFILL }},
6226     { &hf_dap_invokeID,
6227       { "invokeID", "dap.invokeID",
6228         FT_UINT32, BASE_DEC, VALS(ros_InvokeId_vals), 0,
6229         "", HFILL }},
6230     { &hf_dap_unsignedAbandonArgument,
6231       { "unsignedAbandonArgument", "dap.unsignedAbandonArgument",
6232         FT_NONE, BASE_NONE, NULL, 0,
6233         "AbandonArgument/unsignedAbandonArgument", HFILL }},
6234     { &hf_dap_signedAbandonArgument,
6235       { "signedAbandonArgument", "dap.signedAbandonArgument",
6236         FT_NONE, BASE_NONE, NULL, 0,
6237         "AbandonArgument/signedAbandonArgument", HFILL }},
6238     { &hf_dap_abandonArgument,
6239       { "abandonArgument", "dap.abandonArgument",
6240         FT_NONE, BASE_NONE, NULL, 0,
6241         "AbandonArgument/signedAbandonArgument/abandonArgument", HFILL }},
6242     { &hf_dap_null,
6243       { "null", "dap.null",
6244         FT_NONE, BASE_NONE, NULL, 0,
6245         "", HFILL }},
6246     { &hf_dap_abandon_information,
6247       { "information", "dap.information",
6248         FT_UINT32, BASE_DEC, VALS(dap_AbandonInformation_vals), 0,
6249         "AbandonResult/information", HFILL }},
6250     { &hf_dap_unsignedAbandonResult,
6251       { "unsignedAbandonResult", "dap.unsignedAbandonResult",
6252         FT_NONE, BASE_NONE, NULL, 0,
6253         "AbandonResult/information/unsignedAbandonResult", HFILL }},
6254     { &hf_dap_signedAbandonResult,
6255       { "signedAbandonResult", "dap.signedAbandonResult",
6256         FT_NONE, BASE_NONE, NULL, 0,
6257         "AbandonResult/information/signedAbandonResult", HFILL }},
6258     { &hf_dap_abandonResult,
6259       { "abandonResult", "dap.abandonResult",
6260         FT_NONE, BASE_NONE, NULL, 0,
6261         "AbandonResult/information/signedAbandonResult/abandonResult", HFILL }},
6262     { &hf_dap_pagedResults,
6263       { "pagedResults", "dap.pagedResults",
6264         FT_UINT32, BASE_DEC, VALS(dap_PagedResultsRequest_vals), 0,
6265         "", HFILL }},
6266     { &hf_dap_listFamily,
6267       { "listFamily", "dap.listFamily",
6268         FT_BOOLEAN, 8, NULL, 0,
6269         "ListArgumentData/listFamily", HFILL }},
6270     { &hf_dap_unsignedListArgument,
6271       { "unsignedListArgument", "dap.unsignedListArgument",
6272         FT_NONE, BASE_NONE, NULL, 0,
6273         "ListArgument/unsignedListArgument", HFILL }},
6274     { &hf_dap_signedListArgument,
6275       { "signedListArgument", "dap.signedListArgument",
6276         FT_NONE, BASE_NONE, NULL, 0,
6277         "ListArgument/signedListArgument", HFILL }},
6278     { &hf_dap_listArgument,
6279       { "listArgument", "dap.listArgument",
6280         FT_NONE, BASE_NONE, NULL, 0,
6281         "ListArgument/signedListArgument/listArgument", HFILL }},
6282     { &hf_dap_listInfo,
6283       { "listInfo", "dap.listInfo",
6284         FT_NONE, BASE_NONE, NULL, 0,
6285         "ListResultData/listInfo", HFILL }},
6286     { &hf_dap_subordinates,
6287       { "subordinates", "dap.subordinates",
6288         FT_UINT32, BASE_DEC, NULL, 0,
6289         "ListResultData/listInfo/subordinates", HFILL }},
6290     { &hf_dap_subordinates_item,
6291       { "Item", "dap.subordinates_item",
6292         FT_NONE, BASE_NONE, NULL, 0,
6293         "ListResultData/listInfo/subordinates/_item", HFILL }},
6294     { &hf_dap_aliasEntry,
6295       { "aliasEntry", "dap.aliasEntry",
6296         FT_BOOLEAN, 8, NULL, 0,
6297         "ListResultData/listInfo/subordinates/_item/aliasEntry", HFILL }},
6298     { &hf_dap_partialOutcomeQualifier,
6299       { "partialOutcomeQualifier", "dap.partialOutcomeQualifier",
6300         FT_NONE, BASE_NONE, NULL, 0,
6301         "", HFILL }},
6302     { &hf_dap_uncorrelatedListInfo,
6303       { "uncorrelatedListInfo", "dap.uncorrelatedListInfo",
6304         FT_UINT32, BASE_DEC, NULL, 0,
6305         "ListResultData/uncorrelatedListInfo", HFILL }},
6306     { &hf_dap_uncorrelatedListInfo_item,
6307       { "Item", "dap.uncorrelatedListInfo_item",
6308         FT_UINT32, BASE_DEC, VALS(dap_ListResult_vals), 0,
6309         "ListResultData/uncorrelatedListInfo/_item", HFILL }},
6310     { &hf_dap_unsignedListResult,
6311       { "unsignedListResult", "dap.unsignedListResult",
6312         FT_UINT32, BASE_DEC, VALS(dap_ListResultData_vals), 0,
6313         "ListResult/unsignedListResult", HFILL }},
6314     { &hf_dap_signedListResult,
6315       { "signedListResult", "dap.signedListResult",
6316         FT_NONE, BASE_NONE, NULL, 0,
6317         "ListResult/signedListResult", HFILL }},
6318     { &hf_dap_listResult,
6319       { "listResult", "dap.listResult",
6320         FT_UINT32, BASE_DEC, VALS(dap_ListResultData_vals), 0,
6321         "ListResult/signedListResult/listResult", HFILL }},
6322     { &hf_dap_limitProblem,
6323       { "limitProblem", "dap.limitProblem",
6324         FT_INT32, BASE_DEC, VALS(dap_LimitProblem_vals), 0,
6325         "PartialOutcomeQualifier/limitProblem", HFILL }},
6326     { &hf_dap_unexplored,
6327       { "unexplored", "dap.unexplored",
6328         FT_UINT32, BASE_DEC, NULL, 0,
6329         "PartialOutcomeQualifier/unexplored", HFILL }},
6330     { &hf_dap_unexplored_item,
6331       { "Item", "dap.unexplored_item",
6332         FT_NONE, BASE_NONE, NULL, 0,
6333         "PartialOutcomeQualifier/unexplored/_item", HFILL }},
6334     { &hf_dap_unavailableCriticalExtensions,
6335       { "unavailableCriticalExtensions", "dap.unavailableCriticalExtensions",
6336         FT_BOOLEAN, 8, NULL, 0,
6337         "PartialOutcomeQualifier/unavailableCriticalExtensions", HFILL }},
6338     { &hf_dap_unknownErrors,
6339       { "unknownErrors", "dap.unknownErrors",
6340         FT_UINT32, BASE_DEC, NULL, 0,
6341         "PartialOutcomeQualifier/unknownErrors", HFILL }},
6342     { &hf_dap_unknownErrors_item,
6343       { "Item", "dap.unknownErrors_item",
6344         FT_OID, BASE_NONE, NULL, 0,
6345         "PartialOutcomeQualifier/unknownErrors/_item", HFILL }},
6346     { &hf_dap_overspecFilter,
6347       { "overspecFilter", "dap.overspecFilter",
6348         FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
6349         "PartialOutcomeQualifier/overspecFilter", HFILL }},
6350     { &hf_dap_entryCount,
6351       { "entryCount", "dap.entryCount",
6352         FT_UINT32, BASE_DEC, VALS(dap_T_entryCount_vals), 0,
6353         "PartialOutcomeQualifier/entryCount", HFILL }},
6354     { &hf_dap_bestEstimate,
6355       { "bestEstimate", "dap.bestEstimate",
6356         FT_INT32, BASE_DEC, NULL, 0,
6357         "PartialOutcomeQualifier/entryCount/bestEstimate", HFILL }},
6358     { &hf_dap_lowEstimate,
6359       { "lowEstimate", "dap.lowEstimate",
6360         FT_INT32, BASE_DEC, NULL, 0,
6361         "PartialOutcomeQualifier/entryCount/lowEstimate", HFILL }},
6362     { &hf_dap_baseObject,
6363       { "baseObject", "dap.baseObject",
6364         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
6365         "SearchArgumentData/baseObject", HFILL }},
6366     { &hf_dap_subset,
6367       { "subset", "dap.subset",
6368         FT_INT32, BASE_DEC, VALS(dap_T_subset_vals), 0,
6369         "SearchArgumentData/subset", HFILL }},
6370     { &hf_dap_filter,
6371       { "filter", "dap.filter",
6372         FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
6373         "SearchArgumentData/filter", HFILL }},
6374     { &hf_dap_searchAliases,
6375       { "searchAliases", "dap.searchAliases",
6376         FT_BOOLEAN, 8, NULL, 0,
6377         "SearchArgumentData/searchAliases", HFILL }},
6378     { &hf_dap_matchedValuesOnly,
6379       { "matchedValuesOnly", "dap.matchedValuesOnly",
6380         FT_BOOLEAN, 8, NULL, 0,
6381         "SearchArgumentData/matchedValuesOnly", HFILL }},
6382     { &hf_dap_extendedFilter,
6383       { "extendedFilter", "dap.extendedFilter",
6384         FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
6385         "SearchArgumentData/extendedFilter", HFILL }},
6386     { &hf_dap_checkOverspecified,
6387       { "checkOverspecified", "dap.checkOverspecified",
6388         FT_BOOLEAN, 8, NULL, 0,
6389         "SearchArgumentData/checkOverspecified", HFILL }},
6390     { &hf_dap_relaxation,
6391       { "relaxation", "dap.relaxation",
6392         FT_NONE, BASE_NONE, NULL, 0,
6393         "SearchArgumentData/relaxation", HFILL }},
6394     { &hf_dap_extendedArea,
6395       { "extendedArea", "dap.extendedArea",
6396         FT_INT32, BASE_DEC, NULL, 0,
6397         "SearchArgumentData/extendedArea", HFILL }},
6398     { &hf_dap_hierarchySelections,
6399       { "hierarchySelections", "dap.hierarchySelections",
6400         FT_BYTES, BASE_HEX, NULL, 0,
6401         "SearchArgumentData/hierarchySelections", HFILL }},
6402     { &hf_dap_searchControlOptions,
6403       { "searchControlOptions", "dap.searchControlOptions",
6404         FT_BYTES, BASE_HEX, NULL, 0,
6405         "SearchArgumentData/searchControlOptions", HFILL }},
6406     { &hf_dap_joinArguments,
6407       { "joinArguments", "dap.joinArguments",
6408         FT_UINT32, BASE_DEC, NULL, 0,
6409         "SearchArgumentData/joinArguments", HFILL }},
6410     { &hf_dap_joinArguments_item,
6411       { "Item", "dap.joinArguments_item",
6412         FT_NONE, BASE_NONE, NULL, 0,
6413         "SearchArgumentData/joinArguments/_item", HFILL }},
6414     { &hf_dap_joinType,
6415       { "joinType", "dap.joinType",
6416         FT_UINT32, BASE_DEC, VALS(dap_T_joinType_vals), 0,
6417         "SearchArgumentData/joinType", HFILL }},
6418     { &hf_dap_unsignedSearchArgument,
6419       { "unsignedSearchArgument", "dap.unsignedSearchArgument",
6420         FT_NONE, BASE_NONE, NULL, 0,
6421         "SearchArgument/unsignedSearchArgument", HFILL }},
6422     { &hf_dap_signedSearchArgument,
6423       { "signedSearchArgument", "dap.signedSearchArgument",
6424         FT_NONE, BASE_NONE, NULL, 0,
6425         "SearchArgument/signedSearchArgument", HFILL }},
6426     { &hf_dap_searchArgument,
6427       { "searchArgument", "dap.searchArgument",
6428         FT_NONE, BASE_NONE, NULL, 0,
6429         "SearchArgument/signedSearchArgument/searchArgument", HFILL }},
6430     { &hf_dap_joinBaseObject,
6431       { "joinBaseObject", "dap.joinBaseObject",
6432         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
6433         "JoinArgument/joinBaseObject", HFILL }},
6434     { &hf_dap_domainLocalID,
6435       { "domainLocalID", "dap.domainLocalID",
6436         FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
6437         "JoinArgument/domainLocalID", HFILL }},
6438     { &hf_dap_joinSubset,
6439       { "joinSubset", "dap.joinSubset",
6440         FT_UINT32, BASE_DEC, VALS(dap_T_joinSubset_vals), 0,
6441         "JoinArgument/joinSubset", HFILL }},
6442     { &hf_dap_joinFilter,
6443       { "joinFilter", "dap.joinFilter",
6444         FT_UINT32, BASE_DEC, VALS(dap_Filter_vals), 0,
6445         "JoinArgument/joinFilter", HFILL }},
6446     { &hf_dap_joinAttributes,
6447       { "joinAttributes", "dap.joinAttributes",
6448         FT_UINT32, BASE_DEC, NULL, 0,
6449         "JoinArgument/joinAttributes", HFILL }},
6450     { &hf_dap_joinAttributes_item,
6451       { "Item", "dap.joinAttributes_item",
6452         FT_NONE, BASE_NONE, NULL, 0,
6453         "JoinArgument/joinAttributes/_item", HFILL }},
6454     { &hf_dap_joinSelection,
6455       { "joinSelection", "dap.joinSelection",
6456         FT_NONE, BASE_NONE, NULL, 0,
6457         "JoinArgument/joinSelection", HFILL }},
6458     { &hf_dap_baseAtt,
6459       { "baseAtt", "dap.baseAtt",
6460         FT_OID, BASE_NONE, NULL, 0,
6461         "JoinAttPair/baseAtt", HFILL }},
6462     { &hf_dap_joinAtt,
6463       { "joinAtt", "dap.joinAtt",
6464         FT_OID, BASE_NONE, NULL, 0,
6465         "JoinAttPair/joinAtt", HFILL }},
6466     { &hf_dap_joinContext,
6467       { "joinContext", "dap.joinContext",
6468         FT_UINT32, BASE_DEC, NULL, 0,
6469         "JoinAttPair/joinContext", HFILL }},
6470     { &hf_dap_joinContext_item,
6471       { "Item", "dap.joinContext_item",
6472         FT_OID, BASE_NONE, NULL, 0,
6473         "JoinAttPair/joinContext/_item", HFILL }},
6474     { &hf_dap_searchInfo,
6475       { "searchInfo", "dap.searchInfo",
6476         FT_NONE, BASE_NONE, NULL, 0,
6477         "SearchResultData/searchInfo", HFILL }},
6478     { &hf_dap_entries,
6479       { "entries", "dap.entries",
6480         FT_UINT32, BASE_DEC, NULL, 0,
6481         "SearchResultData/searchInfo/entries", HFILL }},
6482     { &hf_dap_entries_item,
6483       { "Item", "dap.entries_item",
6484         FT_NONE, BASE_NONE, NULL, 0,
6485         "SearchResultData/searchInfo/entries/_item", HFILL }},
6486     { &hf_dap_altMatching,
6487       { "altMatching", "dap.altMatching",
6488         FT_BOOLEAN, 8, NULL, 0,
6489         "SearchResultData/searchInfo/altMatching", HFILL }},
6490     { &hf_dap_uncorrelatedSearchInfo,
6491       { "uncorrelatedSearchInfo", "dap.uncorrelatedSearchInfo",
6492         FT_UINT32, BASE_DEC, NULL, 0,
6493         "SearchResultData/uncorrelatedSearchInfo", HFILL }},
6494     { &hf_dap_uncorrelatedSearchInfo_item,
6495       { "Item", "dap.uncorrelatedSearchInfo_item",
6496         FT_UINT32, BASE_DEC, VALS(dap_SearchResult_vals), 0,
6497         "SearchResultData/uncorrelatedSearchInfo/_item", HFILL }},
6498     { &hf_dap_unsignedSearchResult,
6499       { "unsignedSearchResult", "dap.unsignedSearchResult",
6500         FT_UINT32, BASE_DEC, VALS(dap_SearchResultData_vals), 0,
6501         "SearchResult/unsignedSearchResult", HFILL }},
6502     { &hf_dap_signedSearchResult,
6503       { "signedSearchResult", "dap.signedSearchResult",
6504         FT_NONE, BASE_NONE, NULL, 0,
6505         "SearchResult/signedSearchResult", HFILL }},
6506     { &hf_dap_searchResult,
6507       { "searchResult", "dap.searchResult",
6508         FT_UINT32, BASE_DEC, VALS(dap_SearchResultData_vals), 0,
6509         "SearchResult/signedSearchResult/searchResult", HFILL }},
6510     { &hf_dap_add_entry,
6511       { "entry", "dap.entry",
6512         FT_UINT32, BASE_DEC, NULL, 0,
6513         "AddEntryArgumentData/entry", HFILL }},
6514     { &hf_dap_entry_item,
6515       { "Item", "dap.entry_item",
6516         FT_NONE, BASE_NONE, NULL, 0,
6517         "AddEntryArgumentData/entry/_item", HFILL }},
6518     { &hf_dap_targetSystem,
6519       { "targetSystem", "dap.targetSystem",
6520         FT_NONE, BASE_NONE, NULL, 0,
6521         "AddEntryArgumentData/targetSystem", HFILL }},
6522     { &hf_dap_unsignedAddEntryArgument,
6523       { "unsignedAddEntryArgument", "dap.unsignedAddEntryArgument",
6524         FT_NONE, BASE_NONE, NULL, 0,
6525         "AddEntryArgument/unsignedAddEntryArgument", HFILL }},
6526     { &hf_dap_signedAddEntryArgument,
6527       { "signedAddEntryArgument", "dap.signedAddEntryArgument",
6528         FT_NONE, BASE_NONE, NULL, 0,
6529         "AddEntryArgument/signedAddEntryArgument", HFILL }},
6530     { &hf_dap_addEntryArgument,
6531       { "addEntryArgument", "dap.addEntryArgument",
6532         FT_NONE, BASE_NONE, NULL, 0,
6533         "AddEntryArgument/signedAddEntryArgument/addEntryArgument", HFILL }},
6534     { &hf_dap_add_entry_information,
6535       { "information", "dap.information",
6536         FT_UINT32, BASE_DEC, VALS(dap_AddEntryInformation_vals), 0,
6537         "AddEntryResult/information", HFILL }},
6538     { &hf_dap_unsignedAddEntryResult,
6539       { "unsignedAddEntryResult", "dap.unsignedAddEntryResult",
6540         FT_NONE, BASE_NONE, NULL, 0,
6541         "AddEntryResult/information/unsignedAddEntryResult", HFILL }},
6542     { &hf_dap_signedAddEntryResult,
6543       { "signedAddEntryResult", "dap.signedAddEntryResult",
6544         FT_NONE, BASE_NONE, NULL, 0,
6545         "AddEntryResult/information/signedAddEntryResult", HFILL }},
6546     { &hf_dap_addEntryResult,
6547       { "addEntryResult", "dap.addEntryResult",
6548         FT_NONE, BASE_NONE, NULL, 0,
6549         "AddEntryResult/information/signedAddEntryResult/addEntryResult", HFILL }},
6550     { &hf_dap_unsignedRemoveEntryArgument,
6551       { "unsignedRemoveEntryArgument", "dap.unsignedRemoveEntryArgument",
6552         FT_NONE, BASE_NONE, NULL, 0,
6553         "RemoveEntryArgument/unsignedRemoveEntryArgument", HFILL }},
6554     { &hf_dap_signedRemoveEntryArgument,
6555       { "signedRemoveEntryArgument", "dap.signedRemoveEntryArgument",
6556         FT_NONE, BASE_NONE, NULL, 0,
6557         "RemoveEntryArgument/signedRemoveEntryArgument", HFILL }},
6558     { &hf_dap_removeEntryArgument,
6559       { "removeEntryArgument", "dap.removeEntryArgument",
6560         FT_NONE, BASE_NONE, NULL, 0,
6561         "RemoveEntryArgument/signedRemoveEntryArgument/removeEntryArgument", HFILL }},
6562     { &hf_dap_remove_entry_information,
6563       { "information", "dap.information",
6564         FT_UINT32, BASE_DEC, VALS(dap_RemoveEntryInformation_vals), 0,
6565         "RemoveEntryResult/information", HFILL }},
6566     { &hf_dap_unsignedRemoveEntryResult,
6567       { "unsignedRemoveEntryResult", "dap.unsignedRemoveEntryResult",
6568         FT_NONE, BASE_NONE, NULL, 0,
6569         "RemoveEntryResult/information/unsignedRemoveEntryResult", HFILL }},
6570     { &hf_dap_signedRemoveEntryResult,
6571       { "signedRemoveEntryResult", "dap.signedRemoveEntryResult",
6572         FT_NONE, BASE_NONE, NULL, 0,
6573         "RemoveEntryResult/information/signedRemoveEntryResult", HFILL }},
6574     { &hf_dap_removeEntryResult,
6575       { "removeEntryResult", "dap.removeEntryResult",
6576         FT_NONE, BASE_NONE, NULL, 0,
6577         "RemoveEntryResult/information/signedRemoveEntryResult/removeEntryResult", HFILL }},
6578     { &hf_dap_changes,
6579       { "changes", "dap.changes",
6580         FT_UINT32, BASE_DEC, NULL, 0,
6581         "ModifyEntryArgumentData/changes", HFILL }},
6582     { &hf_dap_changes_item,
6583       { "Item", "dap.changes_item",
6584         FT_UINT32, BASE_DEC, VALS(dap_EntryModification_vals), 0,
6585         "ModifyEntryArgumentData/changes/_item", HFILL }},
6586     { &hf_dap_unsignedModifyEntryArgument,
6587       { "unsignedModifyEntryArgument", "dap.unsignedModifyEntryArgument",
6588         FT_NONE, BASE_NONE, NULL, 0,
6589         "ModifyEntryArgument/unsignedModifyEntryArgument", HFILL }},
6590     { &hf_dap_signedModifyEntryArgument,
6591       { "signedModifyEntryArgument", "dap.signedModifyEntryArgument",
6592         FT_NONE, BASE_NONE, NULL, 0,
6593         "ModifyEntryArgument/signedModifyEntryArgument", HFILL }},
6594     { &hf_dap_modifyEntryArgument,
6595       { "modifyEntryArgument", "dap.modifyEntryArgument",
6596         FT_NONE, BASE_NONE, NULL, 0,
6597         "ModifyEntryArgument/signedModifyEntryArgument/modifyEntryArgument", HFILL }},
6598     { &hf_dap_modify_entry_information,
6599       { "information", "dap.information",
6600         FT_UINT32, BASE_DEC, VALS(dap_ModifyEntryInformation_vals), 0,
6601         "ModifyEntryResult/information", HFILL }},
6602     { &hf_dap_unsignedModifyEntryResult,
6603       { "unsignedModifyEntryResult", "dap.unsignedModifyEntryResult",
6604         FT_NONE, BASE_NONE, NULL, 0,
6605         "ModifyEntryResult/information/unsignedModifyEntryResult", HFILL }},
6606     { &hf_dap_signedModifyEntryResult,
6607       { "signedModifyEntryResult", "dap.signedModifyEntryResult",
6608         FT_NONE, BASE_NONE, NULL, 0,
6609         "ModifyEntryResult/information/signedModifyEntryResult", HFILL }},
6610     { &hf_dap_modifyEntryResult,
6611       { "modifyEntryResult", "dap.modifyEntryResult",
6612         FT_NONE, BASE_NONE, NULL, 0,
6613         "ModifyEntryResult/information/signedModifyEntryResult/modifyEntryResult", HFILL }},
6614     { &hf_dap_addAttribute,
6615       { "addAttribute", "dap.addAttribute",
6616         FT_NONE, BASE_NONE, NULL, 0,
6617         "EntryModification/addAttribute", HFILL }},
6618     { &hf_dap_removeAttribute,
6619       { "removeAttribute", "dap.removeAttribute",
6620         FT_OID, BASE_NONE, NULL, 0,
6621         "EntryModification/removeAttribute", HFILL }},
6622     { &hf_dap_addValues,
6623       { "addValues", "dap.addValues",
6624         FT_NONE, BASE_NONE, NULL, 0,
6625         "EntryModification/addValues", HFILL }},
6626     { &hf_dap_removeValues,
6627       { "removeValues", "dap.removeValues",
6628         FT_NONE, BASE_NONE, NULL, 0,
6629         "EntryModification/removeValues", HFILL }},
6630     { &hf_dap_alterValues,
6631       { "alterValues", "dap.alterValues",
6632         FT_NONE, BASE_NONE, NULL, 0,
6633         "EntryModification/alterValues", HFILL }},
6634     { &hf_dap_resetValue,
6635       { "resetValue", "dap.resetValue",
6636         FT_OID, BASE_NONE, NULL, 0,
6637         "EntryModification/resetValue", HFILL }},
6638     { &hf_dap_newRDN,
6639       { "newRDN", "dap.newRDN",
6640         FT_UINT32, BASE_DEC, NULL, 0,
6641         "", HFILL }},
6642     { &hf_dap_deleteOldRDN,
6643       { "deleteOldRDN", "dap.deleteOldRDN",
6644         FT_BOOLEAN, 8, NULL, 0,
6645         "ModifyDNArgument/deleteOldRDN", HFILL }},
6646     { &hf_dap_newSuperior,
6647       { "newSuperior", "dap.newSuperior",
6648         FT_UINT32, BASE_DEC, NULL, 0,
6649         "ModifyDNArgument/newSuperior", HFILL }},
6650     { &hf_dap_modify_dn_information,
6651       { "information", "dap.information",
6652         FT_UINT32, BASE_DEC, VALS(dap_ModifyDNInformation_vals), 0,
6653         "ModifyDNResult/information", HFILL }},
6654     { &hf_dap_unsignedModifyDNResult,
6655       { "unsignedModifyDNResult", "dap.unsignedModifyDNResult",
6656         FT_NONE, BASE_NONE, NULL, 0,
6657         "ModifyDNResult/information/unsignedModifyDNResult", HFILL }},
6658     { &hf_dap_signedModifyDNResult,
6659       { "signedModifyDNResult", "dap.signedModifyDNResult",
6660         FT_NONE, BASE_NONE, NULL, 0,
6661         "ModifyDNResult/information/signedModifyDNResult", HFILL }},
6662     { &hf_dap_modifyDNResult,
6663       { "modifyDNResult", "dap.modifyDNResult",
6664         FT_NONE, BASE_NONE, NULL, 0,
6665         "ModifyDNResult/information/signedModifyDNResult/modifyDNResult", HFILL }},
6666     { &hf_dap_unsignedAbandoned,
6667       { "unsignedAbandoned", "dap.unsignedAbandoned",
6668         FT_NONE, BASE_NONE, NULL, 0,
6669         "Abandoned/unsignedAbandoned", HFILL }},
6670     { &hf_dap_signedAbandoned,
6671       { "signedAbandoned", "dap.signedAbandoned",
6672         FT_NONE, BASE_NONE, NULL, 0,
6673         "Abandoned/signedAbandoned", HFILL }},
6674     { &hf_dap_abandoned,
6675       { "abandoned", "dap.abandoned",
6676         FT_NONE, BASE_NONE, NULL, 0,
6677         "Abandoned/signedAbandoned/abandoned", HFILL }},
6678     { &hf_dap_abandon_failed_problem,
6679       { "problem", "dap.problem",
6680         FT_INT32, BASE_DEC, VALS(dap_AbandonProblem_vals), 0,
6681         "AbandonFailedErrorData/problem", HFILL }},
6682     { &hf_dap_operation,
6683       { "operation", "dap.operation",
6684         FT_UINT32, BASE_DEC, VALS(ros_InvokeId_vals), 0,
6685         "AbandonFailedErrorData/operation", HFILL }},
6686     { &hf_dap_unsignedAbandonFailedError,
6687       { "unsignedAbandonFailedError", "dap.unsignedAbandonFailedError",
6688         FT_NONE, BASE_NONE, NULL, 0,
6689         "AbandonFailedError/unsignedAbandonFailedError", HFILL }},
6690     { &hf_dap_signedAbandonFailedError,
6691       { "signedAbandonFailedError", "dap.signedAbandonFailedError",
6692         FT_NONE, BASE_NONE, NULL, 0,
6693         "AbandonFailedError/signedAbandonFailedError", HFILL }},
6694     { &hf_dap_abandonFailedError,
6695       { "abandonFailedError", "dap.abandonFailedError",
6696         FT_NONE, BASE_NONE, NULL, 0,
6697         "AbandonFailedError/signedAbandonFailedError/abandonFailedError", HFILL }},
6698     { &hf_dap_problems,
6699       { "problems", "dap.problems",
6700         FT_UINT32, BASE_DEC, NULL, 0,
6701         "AttributeErrorData/problems", HFILL }},
6702     { &hf_dap_problems_item,
6703       { "Item", "dap.problems_item",
6704         FT_NONE, BASE_NONE, NULL, 0,
6705         "AttributeErrorData/problems/_item", HFILL }},
6706     { &hf_dap_attribute_error_problem,
6707       { "problem", "dap.problem",
6708         FT_INT32, BASE_DEC, VALS(dap_AttributeProblem_vals), 0,
6709         "AttributeErrorData/problems/_item/problem", HFILL }},
6710     { &hf_dap_value,
6711       { "value", "dap.value",
6712         FT_NONE, BASE_NONE, NULL, 0,
6713         "AttributeErrorData/problems/_item/value", HFILL }},
6714     { &hf_dap_unsignedAttributeError,
6715       { "unsignedAttributeError", "dap.unsignedAttributeError",
6716         FT_NONE, BASE_NONE, NULL, 0,
6717         "AttributeError/unsignedAttributeError", HFILL }},
6718     { &hf_dap_signedAttributeError,
6719       { "signedAttributeError", "dap.signedAttributeError",
6720         FT_NONE, BASE_NONE, NULL, 0,
6721         "AttributeError/signedAttributeError", HFILL }},
6722     { &hf_dap_attributeError,
6723       { "attributeError", "dap.attributeError",
6724         FT_NONE, BASE_NONE, NULL, 0,
6725         "AttributeError/signedAttributeError/attributeError", HFILL }},
6726     { &hf_dap_name_error_problem,
6727       { "problem", "dap.problem",
6728         FT_INT32, BASE_DEC, VALS(dap_NameProblem_vals), 0,
6729         "NameErrorData/problem", HFILL }},
6730     { &hf_dap_matched_name,
6731       { "matched", "dap.matched",
6732         FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
6733         "NameErrorData/matched", HFILL }},
6734     { &hf_dap_unsignedNameError,
6735       { "unsignedNameError", "dap.unsignedNameError",
6736         FT_NONE, BASE_NONE, NULL, 0,
6737         "NameError/unsignedNameError", HFILL }},
6738     { &hf_dap_signedNameError,
6739       { "signedNameError", "dap.signedNameError",
6740         FT_NONE, BASE_NONE, NULL, 0,
6741         "NameError/signedNameError", HFILL }},
6742     { &hf_dap_nameError,
6743       { "nameError", "dap.nameError",
6744         FT_NONE, BASE_NONE, NULL, 0,
6745         "NameError/signedNameError/nameError", HFILL }},
6746     { &hf_dap_candidate,
6747       { "candidate", "dap.candidate",
6748         FT_NONE, BASE_NONE, NULL, 0,
6749         "ReferralData/candidate", HFILL }},
6750     { &hf_dap_unsignedReferral,
6751       { "unsignedReferral", "dap.unsignedReferral",
6752         FT_NONE, BASE_NONE, NULL, 0,
6753         "Referral/unsignedReferral", HFILL }},
6754     { &hf_dap_signedReferral,
6755       { "signedReferral", "dap.signedReferral",
6756         FT_NONE, BASE_NONE, NULL, 0,
6757         "Referral/signedReferral", HFILL }},
6758     { &hf_dap_referral,
6759       { "referral", "dap.referral",
6760         FT_NONE, BASE_NONE, NULL, 0,
6761         "Referral/signedReferral/referral", HFILL }},
6762     { &hf_dap_security_error_problem,
6763       { "problem", "dap.problem",
6764         FT_INT32, BASE_DEC, VALS(dap_SecurityProblem_vals), 0,
6765         "SecurityErrorData/problem", HFILL }},
6766     { &hf_dap_spkmInfo,
6767       { "spkmInfo", "dap.spkmInfo",
6768         FT_NONE, BASE_NONE, NULL, 0,
6769         "SecurityErrorData/spkmInfo", HFILL }},
6770     { &hf_dap_unsignedSecurityError,
6771       { "unsignedSecurityError", "dap.unsignedSecurityError",
6772         FT_NONE, BASE_NONE, NULL, 0,
6773         "SecurityError/unsignedSecurityError", HFILL }},
6774     { &hf_dap_signedSecurityError,
6775       { "signedSecurityError", "dap.signedSecurityError",
6776         FT_NONE, BASE_NONE, NULL, 0,
6777         "SecurityError/signedSecurityError", HFILL }},
6778     { &hf_dap_securityErrorData,
6779       { "securityError", "dap.securityError",
6780         FT_NONE, BASE_NONE, NULL, 0,
6781         "SecurityError/signedSecurityError/securityError", HFILL }},
6782     { &hf_dap_service_error_problem,
6783       { "problem", "dap.problem",
6784         FT_INT32, BASE_DEC, VALS(dap_ServiceProblem_vals), 0,
6785         "ServiceErrorData/problem", HFILL }},
6786     { &hf_dap_unsignedServiceError,
6787       { "unsignedServiceError", "dap.unsignedServiceError",
6788         FT_NONE, BASE_NONE, NULL, 0,
6789         "ServiceError/unsignedServiceError", HFILL }},
6790     { &hf_dap_signedServiceError,
6791       { "signedServiceError", "dap.signedServiceError",
6792         FT_NONE, BASE_NONE, NULL, 0,
6793         "ServiceError/signedServiceError", HFILL }},
6794     { &hf_dap_serviceError,
6795       { "serviceError", "dap.serviceError",
6796         FT_NONE, BASE_NONE, NULL, 0,
6797         "ServiceError/signedServiceError/serviceError", HFILL }},
6798     { &hf_dap_update_error_problem,
6799       { "problem", "dap.problem",
6800         FT_INT32, BASE_DEC, VALS(dap_UpdateProblem_vals), 0,
6801         "UpdateErrorData/problem", HFILL }},
6802     { &hf_dap_attributeInfo,
6803       { "attributeInfo", "dap.attributeInfo",
6804         FT_UINT32, BASE_DEC, NULL, 0,
6805         "UpdateErrorData/attributeInfo", HFILL }},
6806     { &hf_dap_attributeInfo_item,
6807       { "Item", "dap.attributeInfo_item",
6808         FT_UINT32, BASE_DEC, VALS(dap_T_attributeInfo_item_vals), 0,
6809         "UpdateErrorData/attributeInfo/_item", HFILL }},
6810     { &hf_dap_unsignedUpdateError,
6811       { "unsignedUpdateError", "dap.unsignedUpdateError",
6812         FT_NONE, BASE_NONE, NULL, 0,
6813         "UpdateError/unsignedUpdateError", HFILL }},
6814     { &hf_dap_signedUpdateError,
6815       { "signedUpdateError", "dap.signedUpdateError",
6816         FT_NONE, BASE_NONE, NULL, 0,
6817         "UpdateError/signedUpdateError", HFILL }},
6818     { &hf_dap_updateError,
6819       { "updateError", "dap.updateError",
6820         FT_NONE, BASE_NONE, NULL, 0,
6821         "UpdateError/signedUpdateError/updateError", HFILL }},
6822     { &hf_dap_ServiceControlOptions_preferChaining,
6823       { "preferChaining", "dap.preferChaining",
6824         FT_BOOLEAN, 8, NULL, 0x80,
6825         "", HFILL }},
6826     { &hf_dap_ServiceControlOptions_chainingProhibited,
6827       { "chainingProhibited", "dap.chainingProhibited",
6828         FT_BOOLEAN, 8, NULL, 0x40,
6829         "", HFILL }},
6830     { &hf_dap_ServiceControlOptions_localScope,
6831       { "localScope", "dap.localScope",
6832         FT_BOOLEAN, 8, NULL, 0x20,
6833         "", HFILL }},
6834     { &hf_dap_ServiceControlOptions_dontUseCopy,
6835       { "dontUseCopy", "dap.dontUseCopy",
6836         FT_BOOLEAN, 8, NULL, 0x10,
6837         "", HFILL }},
6838     { &hf_dap_ServiceControlOptions_dontDereferenceAliases,
6839       { "dontDereferenceAliases", "dap.dontDereferenceAliases",
6840         FT_BOOLEAN, 8, NULL, 0x08,
6841         "", HFILL }},
6842     { &hf_dap_ServiceControlOptions_subentries,
6843       { "subentries", "dap.subentries",
6844         FT_BOOLEAN, 8, NULL, 0x04,
6845         "", HFILL }},
6846     { &hf_dap_ServiceControlOptions_copyShallDo,
6847       { "copyShallDo", "dap.copyShallDo",
6848         FT_BOOLEAN, 8, NULL, 0x02,
6849         "", HFILL }},
6850     { &hf_dap_ServiceControlOptions_partialNameResolution,
6851       { "partialNameResolution", "dap.partialNameResolution",
6852         FT_BOOLEAN, 8, NULL, 0x01,
6853         "", HFILL }},
6854     { &hf_dap_ServiceControlOptions_manageDSAIT,
6855       { "manageDSAIT", "dap.manageDSAIT",
6856         FT_BOOLEAN, 8, NULL, 0x80,
6857         "", HFILL }},
6858     { &hf_dap_ServiceControlOptions_noSubtypeMatch,
6859       { "noSubtypeMatch", "dap.noSubtypeMatch",
6860         FT_BOOLEAN, 8, NULL, 0x40,
6861         "", HFILL }},
6862     { &hf_dap_ServiceControlOptions_noSubtypeSelection,
6863       { "noSubtypeSelection", "dap.noSubtypeSelection",
6864         FT_BOOLEAN, 8, NULL, 0x20,
6865         "", HFILL }},
6866     { &hf_dap_ServiceControlOptions_countFamily,
6867       { "countFamily", "dap.countFamily",
6868         FT_BOOLEAN, 8, NULL, 0x10,
6869         "", HFILL }},
6870     { &hf_dap_Versions_v1,
6871       { "v1", "dap.v1",
6872         FT_BOOLEAN, 8, NULL, 0x80,
6873         "", HFILL }},
6874     { &hf_dap_Versions_v2,
6875       { "v2", "dap.v2",
6876         FT_BOOLEAN, 8, NULL, 0x40,
6877         "", HFILL }},
6878     { &hf_dap_T_permission_add,
6879       { "add", "dap.add",
6880         FT_BOOLEAN, 8, NULL, 0x80,
6881         "", HFILL }},
6882     { &hf_dap_T_permission_remove,
6883       { "remove", "dap.remove",
6884         FT_BOOLEAN, 8, NULL, 0x40,
6885         "", HFILL }},
6886     { &hf_dap_T_permission_rename,
6887       { "rename", "dap.rename",
6888         FT_BOOLEAN, 8, NULL, 0x20,
6889         "", HFILL }},
6890     { &hf_dap_T_permission_move,
6891       { "move", "dap.move",
6892         FT_BOOLEAN, 8, NULL, 0x10,
6893         "", HFILL }},
6894     { &hf_dap_HierarchySelections_self,
6895       { "self", "dap.self",
6896         FT_BOOLEAN, 8, NULL, 0x80,
6897         "", HFILL }},
6898     { &hf_dap_HierarchySelections_children,
6899       { "children", "dap.children",
6900         FT_BOOLEAN, 8, NULL, 0x40,
6901         "", HFILL }},
6902     { &hf_dap_HierarchySelections_parent,
6903       { "parent", "dap.parent",
6904         FT_BOOLEAN, 8, NULL, 0x20,
6905         "", HFILL }},
6906     { &hf_dap_HierarchySelections_hierarchy,
6907       { "hierarchy", "dap.hierarchy",
6908         FT_BOOLEAN, 8, NULL, 0x10,
6909         "", HFILL }},
6910     { &hf_dap_HierarchySelections_top,
6911       { "top", "dap.top",
6912         FT_BOOLEAN, 8, NULL, 0x08,
6913         "", HFILL }},
6914     { &hf_dap_HierarchySelections_subtree,
6915       { "subtree", "dap.subtree",
6916         FT_BOOLEAN, 8, NULL, 0x04,
6917         "", HFILL }},
6918     { &hf_dap_HierarchySelections_siblings,
6919       { "siblings", "dap.siblings",
6920         FT_BOOLEAN, 8, NULL, 0x02,
6921         "", HFILL }},
6922     { &hf_dap_HierarchySelections_siblingChildren,
6923       { "siblingChildren", "dap.siblingChildren",
6924         FT_BOOLEAN, 8, NULL, 0x01,
6925         "", HFILL }},
6926     { &hf_dap_HierarchySelections_siblingSubtree,
6927       { "siblingSubtree", "dap.siblingSubtree",
6928         FT_BOOLEAN, 8, NULL, 0x80,
6929         "", HFILL }},
6930     { &hf_dap_HierarchySelections_all,
6931       { "all", "dap.all",
6932         FT_BOOLEAN, 8, NULL, 0x40,
6933         "", HFILL }},
6934     { &hf_dap_SearchControlOptions_searchAliases,
6935       { "searchAliases", "dap.searchAliases",
6936         FT_BOOLEAN, 8, NULL, 0x80,
6937         "", HFILL }},
6938     { &hf_dap_SearchControlOptions_matchedValuesOnly,
6939       { "matchedValuesOnly", "dap.matchedValuesOnly",
6940         FT_BOOLEAN, 8, NULL, 0x40,
6941         "", HFILL }},
6942     { &hf_dap_SearchControlOptions_checkOverspecified,
6943       { "checkOverspecified", "dap.checkOverspecified",
6944         FT_BOOLEAN, 8, NULL, 0x20,
6945         "", HFILL }},
6946     { &hf_dap_SearchControlOptions_performExactly,
6947       { "performExactly", "dap.performExactly",
6948         FT_BOOLEAN, 8, NULL, 0x10,
6949         "", HFILL }},
6950     { &hf_dap_SearchControlOptions_includeAllAreas,
6951       { "includeAllAreas", "dap.includeAllAreas",
6952         FT_BOOLEAN, 8, NULL, 0x08,
6953         "", HFILL }},
6954     { &hf_dap_SearchControlOptions_noSystemRelaxation,
6955       { "noSystemRelaxation", "dap.noSystemRelaxation",
6956         FT_BOOLEAN, 8, NULL, 0x04,
6957         "", HFILL }},
6958     { &hf_dap_SearchControlOptions_dnAttribute,
6959       { "dnAttribute", "dap.dnAttribute",
6960         FT_BOOLEAN, 8, NULL, 0x02,
6961         "", HFILL }},
6962     { &hf_dap_SearchControlOptions_matchOnResidualName,
6963       { "matchOnResidualName", "dap.matchOnResidualName",
6964         FT_BOOLEAN, 8, NULL, 0x01,
6965         "", HFILL }},
6966     { &hf_dap_SearchControlOptions_entryCount,
6967       { "entryCount", "dap.entryCount",
6968         FT_BOOLEAN, 8, NULL, 0x80,
6969         "", HFILL }},
6970     { &hf_dap_SearchControlOptions_useSubset,
6971       { "useSubset", "dap.useSubset",
6972         FT_BOOLEAN, 8, NULL, 0x40,
6973         "", HFILL }},
6974     { &hf_dap_SearchControlOptions_separateFamilyMembers,
6975       { "separateFamilyMembers", "dap.separateFamilyMembers",
6976         FT_BOOLEAN, 8, NULL, 0x20,
6977         "", HFILL }},
6978     { &hf_dap_SearchControlOptions_searchFamily,
6979       { "searchFamily", "dap.searchFamily",
6980         FT_BOOLEAN, 8, NULL, 0x10,
6981         "", HFILL }},
6982
6983 /*--- End of included file: packet-dap-hfarr.c ---*/
6984 #line 278 "packet-dap-template.c"
6985   };
6986
6987   /* List of subtrees */
6988   static gint *ett[] = {
6989     &ett_dap,
6990
6991 /*--- Included file: packet-dap-ettarr.c ---*/
6992 #line 1 "packet-dap-ettarr.c"
6993     &ett_dap_CommonResults,
6994     &ett_dap_SEQUENCE_OF_Attribute,
6995     &ett_dap_ServiceControls,
6996     &ett_dap_T_manageDSAITPlaneRef,
6997     &ett_dap_ServiceControlOptions,
6998     &ett_dap_EntryInformationSelection,
6999     &ett_dap_T_attributes,
7000     &ett_dap_SET_OF_AttributeType,
7001     &ett_dap_T_extraAttributes,
7002     &ett_dap_ContextSelection,
7003     &ett_dap_SET_OF_TypeAndContextAssertion,
7004     &ett_dap_TypeAndContextAssertion,
7005     &ett_dap_T_contextAssertions,
7006     &ett_dap_SEQUENCE_OF_ContextAssertion,
7007     &ett_dap_SET_OF_ContextAssertion,
7008     &ett_dap_FamilyReturn,
7009     &ett_dap_T_familySelect,
7010     &ett_dap_EntryInformation,
7011     &ett_dap_T_information,
7012     &ett_dap_EntryInformationItem,
7013     &ett_dap_FamilyEntries,
7014     &ett_dap_SEQUENCE_OF_FamilyEntry,
7015     &ett_dap_FamilyEntry,
7016     &ett_dap_FamilyInformation,
7017     &ett_dap_T_information_item,
7018     &ett_dap_SEQUENCE_OF_FamilyEntries,
7019     &ett_dap_Filter,
7020     &ett_dap_SetOfFilter,
7021     &ett_dap_FilterItem,
7022     &ett_dap_T_substrings,
7023     &ett_dap_T_strings,
7024     &ett_dap_T_strings_item,
7025     &ett_dap_MatchingRuleAssertion,
7026     &ett_dap_T_matchingRule,
7027     &ett_dap_PagedResultsRequest,
7028     &ett_dap_T_newRequest,
7029     &ett_dap_SEQUENCE_OF_SortKey,
7030     &ett_dap_SortKey,
7031     &ett_dap_SecurityParameters,
7032     &ett_dap_Time,
7033     &ett_dap_DirectoryBindArgument,
7034     &ett_dap_Credentials,
7035     &ett_dap_SimpleCredentials,
7036     &ett_dap_T_validity,
7037     &ett_dap_T_time1,
7038     &ett_dap_T_time2,
7039     &ett_dap_T_password,
7040     &ett_dap_T_protected,
7041     &ett_dap_StrongCredentials,
7042     &ett_dap_SpkmCredentials,
7043     &ett_dap_Versions,
7044     &ett_dap_DirectoryBindErrorData,
7045     &ett_dap_T_error,
7046     &ett_dap_DirectoryBindError,
7047     &ett_dap_T_signedDirectoryBindError,
7048     &ett_dap_ReadArgumentData,
7049     &ett_dap_Name,
7050     &ett_dap_ReadArgument,
7051     &ett_dap_T_signedReadArgument,
7052     &ett_dap_ReadResultData,
7053     &ett_dap_ReadResult,
7054     &ett_dap_T_signedReadResult,
7055     &ett_dap_ModifyRights,
7056     &ett_dap_ModifyRights_item,
7057     &ett_dap_T_item,
7058     &ett_dap_T_permission,
7059     &ett_dap_CompareArgumentData,
7060     &ett_dap_CompareArgument,
7061     &ett_dap_T_signedCompareArgument,
7062     &ett_dap_CompareResultData,
7063     &ett_dap_CompareResult,
7064     &ett_dap_T_signedCompareResult,
7065     &ett_dap_AbandonArgumentData,
7066     &ett_dap_AbandonArgument,
7067     &ett_dap_T_signedAbandonArgument,
7068     &ett_dap_AbandonResultData,
7069     &ett_dap_AbandonResult,
7070     &ett_dap_AbandonInformation,
7071     &ett_dap_T_signedAbandonResult,
7072     &ett_dap_ListArgumentData,
7073     &ett_dap_ListArgument,
7074     &ett_dap_T_signedListArgument,
7075     &ett_dap_ListResultData,
7076     &ett_dap_T_listInfo,
7077     &ett_dap_T_subordinates,
7078     &ett_dap_T_subordinates_item,
7079     &ett_dap_SET_OF_ListResult,
7080     &ett_dap_ListResult,
7081     &ett_dap_T_signedListResult,
7082     &ett_dap_PartialOutcomeQualifier,
7083     &ett_dap_SET_OF_ContinuationReference,
7084     &ett_dap_T_unknownErrors,
7085     &ett_dap_T_entryCount,
7086     &ett_dap_SearchArgumentData,
7087     &ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinArgument,
7088     &ett_dap_SearchArgument,
7089     &ett_dap_T_signedSearchArgument,
7090     &ett_dap_HierarchySelections,
7091     &ett_dap_SearchControlOptions,
7092     &ett_dap_JoinArgument,
7093     &ett_dap_SEQUENCE_OF_JoinAttPair,
7094     &ett_dap_JoinAttPair,
7095     &ett_dap_SEQUENCE_OF_JoinContextType,
7096     &ett_dap_SearchResultData,
7097     &ett_dap_T_searchInfo,
7098     &ett_dap_SET_OF_EntryInformation,
7099     &ett_dap_SET_OF_SearchResult,
7100     &ett_dap_SearchResult,
7101     &ett_dap_T_signedSearchResult,
7102     &ett_dap_AddEntryArgumentData,
7103     &ett_dap_SET_OF_Attribute,
7104     &ett_dap_AddEntryArgument,
7105     &ett_dap_T_signedAddEntryArgument,
7106     &ett_dap_AddEntryResultData,
7107     &ett_dap_AddEntryResult,
7108     &ett_dap_AddEntryInformation,
7109     &ett_dap_T_signedAddEntryResult,
7110     &ett_dap_RemoveEntryArgumentData,
7111     &ett_dap_RemoveEntryArgument,
7112     &ett_dap_T_signedRemoveEntryArgument,
7113     &ett_dap_RemoveEntryResultData,
7114     &ett_dap_RemoveEntryResult,
7115     &ett_dap_RemoveEntryInformation,
7116     &ett_dap_T_signedRemoveEntryResult,
7117     &ett_dap_ModifyEntryArgumentData,
7118     &ett_dap_SEQUENCE_OF_EntryModification,
7119     &ett_dap_ModifyEntryArgument,
7120     &ett_dap_T_signedModifyEntryArgument,
7121     &ett_dap_ModifyEntryResultData,
7122     &ett_dap_ModifyEntryResult,
7123     &ett_dap_ModifyEntryInformation,
7124     &ett_dap_T_signedModifyEntryResult,
7125     &ett_dap_EntryModification,
7126     &ett_dap_ModifyDNArgument,
7127     &ett_dap_ModifyDNResultData,
7128     &ett_dap_ModifyDNResult,
7129     &ett_dap_ModifyDNInformation,
7130     &ett_dap_T_signedModifyDNResult,
7131     &ett_dap_AbandonedData,
7132     &ett_dap_Abandoned,
7133     &ett_dap_T_signedAbandoned,
7134     &ett_dap_AbandonFailedErrorData,
7135     &ett_dap_AbandonFailedError,
7136     &ett_dap_T_signedAbandonFailedError,
7137     &ett_dap_AttributeErrorData,
7138     &ett_dap_T_problems,
7139     &ett_dap_T_problems_item,
7140     &ett_dap_AttributeError,
7141     &ett_dap_T_signedAttributeError,
7142     &ett_dap_NameErrorData,
7143     &ett_dap_NameError,
7144     &ett_dap_T_signedNameError,
7145     &ett_dap_ReferralData,
7146     &ett_dap_Referral,
7147     &ett_dap_T_signedReferral,
7148     &ett_dap_SecurityErrorData,
7149     &ett_dap_SecurityError,
7150     &ett_dap_T_signedSecurityError,
7151     &ett_dap_ServiceErrorData,
7152     &ett_dap_ServiceError,
7153     &ett_dap_T_signedServiceError,
7154     &ett_dap_UpdateErrorData,
7155     &ett_dap_T_attributeInfo,
7156     &ett_dap_T_attributeInfo_item,
7157     &ett_dap_UpdateError,
7158     &ett_dap_T_signedUpdateError,
7159
7160 /*--- End of included file: packet-dap-ettarr.c ---*/
7161 #line 284 "packet-dap-template.c"
7162   };
7163   module_t *dap_module;
7164
7165   /* Register protocol */
7166   proto_dap = proto_register_protocol(PNAME, PSNAME, PFNAME);
7167   register_dissector("dap", dissect_dap, proto_dap);
7168
7169   /* Register fields and subtrees */
7170   proto_register_field_array(proto_dap, hf, array_length(hf));
7171   proto_register_subtree_array(ett, array_length(ett));
7172
7173   /* Register our configuration options for DAP, particularly our port */
7174
7175 #ifdef PREFERENCE_GROUPING
7176   dap_module = prefs_register_protocol_subtree("OSI/X.500", proto_dap, prefs_register_dap);
7177 #else
7178   dap_module = prefs_register_protocol(proto_dap, prefs_register_dap);
7179 #endif
7180
7181   prefs_register_uint_preference(dap_module, "tcp.port", "DAP TCP Port",
7182                                  "Set the port for DAP operations (if other"
7183                                  " than the default of 102)",
7184                                  10, &global_dap_tcp_port);
7185
7186 }
7187
7188
7189 /*--- proto_reg_handoff_dap --- */
7190 void proto_reg_handoff_dap(void) {
7191   dissector_handle_t handle = NULL;
7192
7193   /* #include "packet-dap-dis-tab.c" */
7194
7195   /* APPLICATION CONTEXT */
7196
7197   register_ber_oid_name("2.5.3.1", "id-ac-directory-access");
7198
7199   /* ABSTRACT SYNTAXES */
7200     
7201   /* Register DAP with ROS (with no use of RTSE) */
7202   if((handle = find_dissector("dap"))) {
7203     register_ros_oid_dissector_handle("2.5.9.1", handle, 0, "id-as-directory-access", FALSE); 
7204   }
7205
7206   /* remember the tpkt handler for change in preferences */
7207   tpkt_handle = find_dissector("tpkt");
7208
7209   /* AttributeValueAssertions */
7210   x509if_register_fmt(hf_dap_equality, "=");
7211   x509if_register_fmt(hf_dap_greaterOrEqual, ">=");
7212   x509if_register_fmt(hf_dap_lessOrEqual, "<=");
7213   x509if_register_fmt(hf_dap_approximateMatch, "=~");
7214   /* AttributeTypes */
7215   x509if_register_fmt(hf_dap_present, "= *");
7216
7217
7218 }
7219
7220
7221 void prefs_register_dap(void) {
7222
7223   /* de-register the old port */
7224   /* port 102 is registered by TPKT - don't undo this! */
7225   if((tcp_port != 102) && tpkt_handle)
7226     dissector_delete("tcp.port", tcp_port, tpkt_handle);
7227
7228   /* Set our port number for future use */
7229   tcp_port = global_dap_tcp_port;
7230
7231   if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
7232     dissector_add("tcp.port", global_dap_tcp_port, tpkt_handle);
7233
7234 }