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