a146f34a078c5356a92af5a207ba5c4ed84cb989
[obnox/wireshark/wip.git] / epan / dissectors / packet-cmip.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Ethereal dissector compiler    */
3 /* .\packet-cmip.c                                                            */
4 /* ../../tools/asn2eth.py -X -b -e -p cmip -c cmip.cnf -s packet-cmip-template CMIP.asn */
5
6 /* Input file: packet-cmip-template.c */
7
8 /* packet-cmip.c
9  * Routines for X.711 CMIP packet dissection
10  *   Ronnie Sahlberg 2004
11  *
12  * $Id$
13  *
14  * Ethereal - Network traffic analyzer
15  * By Gerald Combs <gerald@ethereal.com>
16  * Copyright 1998 Gerald Combs
17  *
18  * This program is free software; you can redistribute it and/or
19  * modify it under the terms of the GNU General Public License
20  * as published by the Free Software Foundation; either version 2
21  * of the License, or (at your option) any later version.
22  *
23  * This program is distributed in the hope that it will be useful,
24  * but WITHOUT ANY WARRANTY; without even the implied warranty of
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
26  * GNU General Public License for more details.
27  *
28  * You should have received a copy of the GNU General Public License
29  * along with this program; if not, write to the Free Software
30  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
31  */
32
33 #ifdef HAVE_CONFIG_H
34 # include "config.h"
35 #endif
36
37 #include <glib.h>
38 #include <epan/packet.h>
39 #include <epan/conversation.h>
40
41 #include <stdio.h>
42 #include <string.h>
43
44 #include "packet-ber.h"
45 #include "packet-acse.h"
46 #include "packet-x509if.h"
47 #include "packet-cmip.h"
48
49 #define PNAME  "X711 CMIP"
50 #define PSNAME "CMIP"
51 #define PFNAME "cmip"
52
53 /* XXX some stuff we need until we can get rid of it */
54 #include "packet-ses.h"
55 #include "packet-pres.h"
56
57 /* Initialize the protocol and registered fields */
58 int proto_cmip = -1;
59 static int hf_cmip_actionType_OID = -1;
60 static int hf_cmip_eventType_OID = -1;
61 static int hf_cmip_attributeId_OID = -1;
62 static int hf_cmip_errorId_OID = -1;
63 static int hf_DiscriminatorConstruct = -1;
64 static int hf_Destination = -1;
65 static int hf_NameBinding = -1;
66 static int hf_ObjectClass = -1;
67 static int hf_OperationalState = -1;
68
69 /*--- Included file: packet-cmip-hf.c ---*/
70
71 static int hf_cmip_modifyOperator = -1;           /* ModifyOperator */
72 static int hf_cmip_attributeId = -1;              /* T_attributeId */
73 static int hf_cmip_attributeValue = -1;           /* T_attributeValue */
74 static int hf_cmip_managedObjectClass = -1;       /* ObjectClass */
75 static int hf_cmip_managedObjectInstance = -1;    /* ObjectInstance */
76 static int hf_cmip_currentTime = -1;              /* GeneralizedTime */
77 static int hf_cmip_getInfoList = -1;              /* SET_OF_GetInfoStatus */
78 static int hf_cmip_getInfoList_item = -1;         /* GetInfoStatus */
79 static int hf_cmip_attributeIdError = -1;         /* AttributeIdError */
80 static int hf_cmip_attribute = -1;                /* Attribute */
81 static int hf_cmip_errorStatus = -1;              /* T_errorStatus */
82 static int hf_cmip_attributeId1 = -1;             /* AttributeId */
83 static int hf_cmip_setInfoList = -1;              /* SET_OF_SetInfoStatus */
84 static int hf_cmip_setInfoList_item = -1;         /* SetInfoStatus */
85 static int hf_cmip_actionErrorInfo = -1;          /* ActionErrorInfo */
86 static int hf_cmip_specificErrorInfo = -1;        /* SpecificErrorInfo */
87 static int hf_cmip_RDNSequence_item = -1;         /* RelativeDistinguishedName */
88 static int hf_cmip_RelativeDistinguishedName_item = -1;  /* AttributeValueAssertion */
89 static int hf_cmip_deleteErrorInfo = -1;          /* T_deleteErrorInfo */
90 static int hf_cmip_attributeError = -1;           /* AttributeError */
91 static int hf_cmip_errorId = -1;                  /* T_errorId */
92 static int hf_cmip_errorInfo = -1;                /* T_errorInfo */
93 static int hf_cmip_actionType = -1;               /* T_actionType */
94 static int hf_cmip_eventType = -1;                /* T_eventType */
95 static int hf_cmip_actionId = -1;                 /* NoSuchArgumentAction */
96 static int hf_cmip_eventId = -1;                  /* NoSuchArgumentEvent */
97 static int hf_cmip_eventType1 = -1;               /* T_eventType1 */
98 static int hf_cmip_eventInfo = -1;                /* T_eventInfo */
99 static int hf_cmip_actionValue = -1;              /* ActionInfo */
100 static int hf_cmip_eventValue = -1;               /* InvalidArgumentValueEventValue */
101 static int hf_cmip_actionType1 = -1;              /* T_actionType1 */
102 static int hf_cmip_actionArgument = -1;           /* NoSuchArgument */
103 static int hf_cmip_argumentValue = -1;            /* InvalidArgumentValue */
104 static int hf_cmip_errorStatus1 = -1;             /* T_errorStatus1 */
105 static int hf_cmip_errorInfo1 = -1;               /* ErrorInfo */
106 static int hf_cmip_errorStatus2 = -1;             /* T_errorStatus2 */
107 static int hf_cmip_attributeId2 = -1;             /* T_attributeId1 */
108 static int hf_cmip_attributeValue1 = -1;          /* T_attributeValue1 */
109 static int hf_cmip_attributeList = -1;            /* SET_OF_Attribute */
110 static int hf_cmip_attributeList_item = -1;       /* Attribute */
111 static int hf_cmip_baseManagedObjectClass = -1;   /* ObjectClass */
112 static int hf_cmip_baseManagedObjectInstance = -1;  /* ObjectInstance */
113 static int hf_cmip_accessControl = -1;            /* AccessControl */
114 static int hf_cmip_synchronization = -1;          /* CMISSync */
115 static int hf_cmip_scope = -1;                    /* Scope */
116 static int hf_cmip_filter = -1;                   /* CMISFilter */
117 static int hf_cmip_modificationList = -1;         /* SET_OF_ModificationItem */
118 static int hf_cmip_modificationList_item = -1;    /* ModificationItem */
119 static int hf_cmip_getResult = -1;                /* GetResult */
120 static int hf_cmip_getListError = -1;             /* GetListError */
121 static int hf_cmip_setResult = -1;                /* SetResult */
122 static int hf_cmip_setListError = -1;             /* SetListError */
123 static int hf_cmip_actionResult = -1;             /* ActionResult */
124 static int hf_cmip_processingFailure = -1;        /* ProcessingFailure */
125 static int hf_cmip_deleteResult = -1;             /* DeleteResult */
126 static int hf_cmip_actionError = -1;              /* ActionError */
127 static int hf_cmip_deleteError = -1;              /* DeleteError */
128 static int hf_cmip_eventType2 = -1;               /* T_eventType2 */
129 static int hf_cmip_eventReplyInfo = -1;           /* T_eventReplyInfo */
130 static int hf_cmip_eventReply = -1;               /* EventReply */
131 static int hf_cmip_eventTime = -1;                /* GeneralizedTime */
132 static int hf_cmip_eventType3 = -1;               /* T_eventType3 */
133 static int hf_cmip_eventInfo1 = -1;               /* T_eventInfo1 */
134 static int hf_cmip_managedOrSuperiorObjectInstance = -1;  /* T_managedOrSuperiorObjectInstance */
135 static int hf_cmip_superiorObjectInstance = -1;   /* ObjectInstance */
136 static int hf_cmip_referenceObjectInstance = -1;  /* ObjectInstance */
137 static int hf_cmip_actionType2 = -1;              /* T_actionType2 */
138 static int hf_cmip_actionReplyInfo = -1;          /* T_actionReplyInfo */
139 static int hf_cmip_actionReply = -1;              /* ActionReply */
140 static int hf_cmip_actionInfo = -1;               /* ActionInfo */
141 static int hf_cmip_actionType3 = -1;              /* T_actionType3 */
142 static int hf_cmip_actionInfoArg = -1;            /* T_actionInfoArg */
143 static int hf_cmip_ocglobalForm = -1;             /* T_ocglobalForm */
144 static int hf_cmip_oclocalForm = -1;              /* T_oclocalForm */
145 static int hf_cmip_distinguishedName = -1;        /* DistinguishedName */
146 static int hf_cmip_nonSpecificForm = -1;          /* OCTET_STRING */
147 static int hf_cmip_localDistinguishedName = -1;   /* RDNSequence */
148 static int hf_cmip_globalForm = -1;               /* T_globalForm */
149 static int hf_cmip_localForm = -1;                /* T_localForm */
150 static int hf_cmip_id = -1;                       /* AttributeId */
151 static int hf_cmip_value = -1;                    /* T_value */
152 static int hf_cmip_id1 = -1;                      /* T_id */
153 static int hf_cmip_value1 = -1;                   /* T_value1 */
154 static int hf_cmip_equality = -1;                 /* Attribute */
155 static int hf_cmip_substrings = -1;               /* T_substrings */
156 static int hf_cmip_substrings_item = -1;          /* T_substrings_item */
157 static int hf_cmip_initialString = -1;            /* Attribute */
158 static int hf_cmip_anyString = -1;                /* Attribute */
159 static int hf_cmip_finalString = -1;              /* Attribute */
160 static int hf_cmip_greaterOrEqual = -1;           /* Attribute */
161 static int hf_cmip_lessOrEqual = -1;              /* Attribute */
162 static int hf_cmip_present = -1;                  /* AttributeId */
163 static int hf_cmip_subsetOf = -1;                 /* Attribute */
164 static int hf_cmip_supersetOf = -1;               /* Attribute */
165 static int hf_cmip_nonNullSetIntersection = -1;   /* Attribute */
166 static int hf_cmip_single = -1;                   /* AE_title */
167 static int hf_cmip_multiple = -1;                 /* SET_OF_AE_title */
168 static int hf_cmip_multiple_item = -1;            /* AE_title */
169 static int hf_cmip_ae_title_form1 = -1;           /* AE_title_form1 */
170 static int hf_cmip_ae_title_form2 = -1;           /* AE_title_form2 */
171 static int hf_cmip_rdnSequence = -1;              /* RDNSequence */
172 static int hf_cmip_item = -1;                     /* FilterItem */
173 static int hf_cmip_and = -1;                      /* SET_OF_CMISFilter */
174 static int hf_cmip_and_item = -1;                 /* CMISFilter */
175 static int hf_cmip_or = -1;                       /* SET_OF_CMISFilter */
176 static int hf_cmip_or_item = -1;                  /* CMISFilter */
177 static int hf_cmip_not = -1;                      /* CMISFilter */
178 static int hf_cmip_namedNumbers = -1;             /* T_namedNumbers */
179 static int hf_cmip_individualLevels = -1;         /* INTEGER */
180 static int hf_cmip_baseToNthLevel = -1;           /* INTEGER */
181 static int hf_cmip_attributeIdList = -1;          /* SET_OF_AttributeId */
182 static int hf_cmip_attributeIdList_item = -1;     /* AttributeId */
183 static int hf_cmip_opcode = -1;                   /* Opcode */
184 static int hf_cmip_argument = -1;                 /* Argument */
185 static int hf_cmip_present1 = -1;                 /* InvokeID */
186 static int hf_cmip_absent = -1;                   /* NULL */
187 static int hf_cmip_invokeId = -1;                 /* InvokeId */
188 static int hf_cmip_linkedId = -1;                 /* InvokeLinkedId */
189 static int hf_cmip_rRBody = -1;                   /* ReturnResultBody */
190 static int hf_cmip_generalProblem = -1;           /* GeneralProblem */
191 static int hf_cmip_invokeProblem = -1;            /* InvokeProblem */
192 static int hf_cmip_returnResultProblem = -1;      /* ReturnResultProblem */
193 static int hf_cmip_returnErrorProblem = -1;       /* ReturnErrorProblem */
194 static int hf_cmip_rejectProblem = -1;            /* RejectProb */
195 static int hf_cmip_invoke = -1;                   /* Invoke */
196 static int hf_cmip_returnResult = -1;             /* ReturnResult */
197 static int hf_cmip_returnError = -1;              /* ReturnError */
198 static int hf_cmip_reject = -1;                   /* Reject */
199 static int hf_cmip_abortSource = -1;              /* CMIPAbortSource */
200 static int hf_cmip_userInfo = -1;                 /* EXTERNAL */
201 static int hf_cmip_protocolVersion = -1;          /* ProtocolVersion */
202 static int hf_cmip_functionalUnits = -1;          /* FunctionalUnits */
203 static int hf_cmip_accessControl1 = -1;           /* EXTERNAL */
204 /* named bits */
205 static int hf_cmip_FunctionalUnits_multipleObjectSelection = -1;
206 static int hf_cmip_FunctionalUnits_filter = -1;
207 static int hf_cmip_FunctionalUnits_multipleReply = -1;
208 static int hf_cmip_FunctionalUnits_extendedService = -1;
209 static int hf_cmip_FunctionalUnits_cancelGet = -1;
210 static int hf_cmip_ProtocolVersion_version1 = -1;
211 static int hf_cmip_ProtocolVersion_version2 = -1;
212
213 /*--- End of included file: packet-cmip-hf.c ---*/
214
215
216 /* Initialize the subtree pointers */
217 static gint ett_cmip = -1;
218
219 /*--- Included file: packet-cmip-ett.c ---*/
220
221 static gint ett_cmip_ModificationItem = -1;
222 static gint ett_cmip_GetListError = -1;
223 static gint ett_cmip_SET_OF_GetInfoStatus = -1;
224 static gint ett_cmip_GetInfoStatus = -1;
225 static gint ett_cmip_AttributeIdError = -1;
226 static gint ett_cmip_SetListError = -1;
227 static gint ett_cmip_SET_OF_SetInfoStatus = -1;
228 static gint ett_cmip_ActionError = -1;
229 static gint ett_cmip_ProcessingFailure = -1;
230 static gint ett_cmip_RDNSequence = -1;
231 static gint ett_cmip_RelativeDistinguishedName = -1;
232 static gint ett_cmip_DeleteError = -1;
233 static gint ett_cmip_SetInfoStatus = -1;
234 static gint ett_cmip_SpecificErrorInfo = -1;
235 static gint ett_cmip_NoSuchArgumentAction = -1;
236 static gint ett_cmip_NoSuchArgumentEvent = -1;
237 static gint ett_cmip_NoSuchArgument = -1;
238 static gint ett_cmip_InvalidArgumentValueEventValue = -1;
239 static gint ett_cmip_InvalidArgumentValue = -1;
240 static gint ett_cmip_ErrorInfo = -1;
241 static gint ett_cmip_ActionErrorInfo = -1;
242 static gint ett_cmip_AttributeError = -1;
243 static gint ett_cmip_SetResult = -1;
244 static gint ett_cmip_SET_OF_Attribute = -1;
245 static gint ett_cmip_SetArgument = -1;
246 static gint ett_cmip_SET_OF_ModificationItem = -1;
247 static gint ett_cmip_LinkedReplyArgument = -1;
248 static gint ett_cmip_EventReply = -1;
249 static gint ett_cmip_EventReportResult = -1;
250 static gint ett_cmip_EventReportArgument = -1;
251 static gint ett_cmip_DeleteArgument = -1;
252 static gint ett_cmip_DeleteResult = -1;
253 static gint ett_cmip_CreateArgument = -1;
254 static gint ett_cmip_T_managedOrSuperiorObjectInstance = -1;
255 static gint ett_cmip_CreateResult = -1;
256 static gint ett_cmip_ActionReply = -1;
257 static gint ett_cmip_ActionResult = -1;
258 static gint ett_cmip_ActionArgument = -1;
259 static gint ett_cmip_ActionInfo = -1;
260 static gint ett_cmip_ObjectClass = -1;
261 static gint ett_cmip_ObjectInstance = -1;
262 static gint ett_cmip_BaseManagedObjectId = -1;
263 static gint ett_cmip_AttributeId = -1;
264 static gint ett_cmip_Attribute = -1;
265 static gint ett_cmip_AttributeValueAssertion = -1;
266 static gint ett_cmip_FilterItem = -1;
267 static gint ett_cmip_T_substrings = -1;
268 static gint ett_cmip_T_substrings_item = -1;
269 static gint ett_cmip_Destination = -1;
270 static gint ett_cmip_SET_OF_AE_title = -1;
271 static gint ett_cmip_AE_title = -1;
272 static gint ett_cmip_Name = -1;
273 static gint ett_cmip_CMISFilter = -1;
274 static gint ett_cmip_SET_OF_CMISFilter = -1;
275 static gint ett_cmip_Scope = -1;
276 static gint ett_cmip_GetArgument = -1;
277 static gint ett_cmip_SET_OF_AttributeId = -1;
278 static gint ett_cmip_GetResult = -1;
279 static gint ett_cmip_ReturnResultBody = -1;
280 static gint ett_cmip_InvokeId = -1;
281 static gint ett_cmip_Invoke = -1;
282 static gint ett_cmip_ReturnResult = -1;
283 static gint ett_cmip_ReturnError = -1;
284 static gint ett_cmip_RejectProb = -1;
285 static gint ett_cmip_Reject = -1;
286 static gint ett_cmip_ROS = -1;
287 static gint ett_cmip_CMIPAbortInfo = -1;
288 static gint ett_cmip_FunctionalUnits = -1;
289 static gint ett_cmip_CMIPUserInfo = -1;
290 static gint ett_cmip_ProtocolVersion = -1;
291
292 /*--- End of included file: packet-cmip-ett.c ---*/
293
294
295 static guint32 opcode;
296
297 static int opcode_type;
298 #define OPCODE_INVOKE        1
299 #define OPCODE_RETURN_RESULT 2
300 #define OPCODE_RETURN_ERROR  3
301 #define OPCODE_REJECT        4
302
303 static int attributeform;
304 #define ATTRIBUTE_LOCAL_FORM  0
305 #define ATTRIBUTE_GLOBAL_FORM 1
306 static char attribute_identifier_id[BER_MAX_OID_STR_LEN];
307
308 static char attributevalueassertion_id[BER_MAX_OID_STR_LEN];
309
310 static char object_identifier_id[BER_MAX_OID_STR_LEN];
311
312 static int objectclassform;
313 #define OBJECTCLASS_LOCAL_FORM  0
314 #define OBJECTCLASS_GLOBAL_FORM 1
315 static char objectclass_identifier_id[BER_MAX_OID_STR_LEN];
316
317
318 /*--- Included file: packet-cmip-fn.c ---*/
319
320 /*--- Cyclic dependencies ---*/
321
322 /* CMISFilter -> CMISFilter/and -> CMISFilter */
323 /* CMISFilter -> CMISFilter */
324 static int dissect_cmip_CMISFilter(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
325
326 static int dissect_filter(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
327   return dissect_cmip_CMISFilter(FALSE, tvb, offset, pinfo, tree, hf_cmip_filter);
328 }
329 static int dissect_and_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
330   return dissect_cmip_CMISFilter(FALSE, tvb, offset, pinfo, tree, hf_cmip_and_item);
331 }
332 static int dissect_or_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
333   return dissect_cmip_CMISFilter(FALSE, tvb, offset, pinfo, tree, hf_cmip_or_item);
334 }
335 static int dissect_not(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
336   return dissect_cmip_CMISFilter(FALSE, tvb, offset, pinfo, tree, hf_cmip_not);
337 }
338
339
340 /*--- Fields for imported types ---*/
341
342 static int dissect_userInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
343   return dissect_acse_EXTERNAL(FALSE, tvb, offset, pinfo, tree, hf_cmip_userInfo);
344 }
345 static int dissect_accessControl1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
346   return dissect_acse_EXTERNAL(FALSE, tvb, offset, pinfo, tree, hf_cmip_accessControl1);
347 }
348
349
350 static const value_string cmip_ModifyOperator_vals[] = {
351   {   0, "replace" },
352   {   1, "addValues" },
353   {   2, "removeValues" },
354   {   3, "setToDefault" },
355   { 0, NULL }
356 };
357
358
359 static int
360 dissect_cmip_ModifyOperator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
361   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
362                                   NULL);
363
364   return offset;
365 }
366 static int dissect_modifyOperator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
367   return dissect_cmip_ModifyOperator(TRUE, tvb, offset, pinfo, tree, hf_cmip_modifyOperator);
368 }
369
370
371
372 static int
373 dissect_cmip_T_attributeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
374   offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
375                                          hf_cmip_attributeId_OID, object_identifier_id);
376
377
378   return offset;
379 }
380 static int dissect_attributeId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
381   return dissect_cmip_T_attributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeId);
382 }
383
384
385
386 static int
387 dissect_cmip_T_attributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
388   offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
389
390
391
392   return offset;
393 }
394 static int dissect_attributeValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
395   return dissect_cmip_T_attributeValue(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeValue);
396 }
397
398
399 static const ber_sequence_t ModificationItem_sequence[] = {
400   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyOperator_impl },
401   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeId },
402   { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_attributeValue },
403   { 0, 0, 0, NULL }
404 };
405
406 static int
407 dissect_cmip_ModificationItem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
408   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
409                                    ModificationItem_sequence, hf_index, ett_cmip_ModificationItem);
410
411   return offset;
412 }
413 static int dissect_modificationList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
414   return dissect_cmip_ModificationItem(FALSE, tvb, offset, pinfo, tree, hf_cmip_modificationList_item);
415 }
416
417
418
419 static int
420 dissect_cmip_T_ocglobalForm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
421   objectclassform = OBJECTCLASS_GLOBAL_FORM;
422   offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset,
423                                          hf_cmip_ocglobalForm, objectclass_identifier_id);
424
425
426   return offset;
427 }
428 static int dissect_ocglobalForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
429   return dissect_cmip_T_ocglobalForm(TRUE, tvb, offset, pinfo, tree, hf_cmip_ocglobalForm);
430 }
431
432
433
434 static int
435 dissect_cmip_T_oclocalForm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
436   objectclassform = OBJECTCLASS_LOCAL_FORM;
437   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_cmip_oclocalForm, NULL);
438
439
440   return offset;
441 }
442 static int dissect_oclocalForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
443   return dissect_cmip_T_oclocalForm(TRUE, tvb, offset, pinfo, tree, hf_cmip_oclocalForm);
444 }
445
446
447 const value_string cmip_ObjectClass_vals[] = {
448   {   0, "ocglobalForm" },
449   {   1, "oclocalForm" },
450   { 0, NULL }
451 };
452
453 static const ber_choice_t ObjectClass_choice[] = {
454   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ocglobalForm_impl },
455   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_oclocalForm_impl },
456   { 0, 0, 0, 0, NULL }
457 };
458
459 int
460 dissect_cmip_ObjectClass(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
461   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
462                                  ObjectClass_choice, hf_index, ett_cmip_ObjectClass,
463                                  NULL);
464
465   return offset;
466 }
467 static int dissect_managedObjectClass(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
468   return dissect_cmip_ObjectClass(FALSE, tvb, offset, pinfo, tree, hf_cmip_managedObjectClass);
469 }
470 static int dissect_baseManagedObjectClass(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
471   return dissect_cmip_ObjectClass(FALSE, tvb, offset, pinfo, tree, hf_cmip_baseManagedObjectClass);
472 }
473
474
475
476 static int
477 dissect_cmip_T_id(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
478   offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index,
479                                             attributevalueassertion_id);
480
481   return offset;
482 }
483 static int dissect_id1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
484   return dissect_cmip_T_id(FALSE, tvb, offset, pinfo, tree, hf_cmip_id1);
485 }
486
487
488
489 static int
490 dissect_cmip_T_value1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
491     offset=call_ber_oid_callback(attributevalueassertion_id, tvb, offset, pinfo, tree);
492
493
494   return offset;
495 }
496 static int dissect_value1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
497   return dissect_cmip_T_value1(FALSE, tvb, offset, pinfo, tree, hf_cmip_value1);
498 }
499
500
501 static const ber_sequence_t AttributeValueAssertion_sequence[] = {
502   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_id1 },
503   { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_value1 },
504   { 0, 0, 0, NULL }
505 };
506
507 static int
508 dissect_cmip_AttributeValueAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
509   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
510                                    AttributeValueAssertion_sequence, hf_index, ett_cmip_AttributeValueAssertion);
511
512   return offset;
513 }
514 static int dissect_RelativeDistinguishedName_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
515   return dissect_cmip_AttributeValueAssertion(FALSE, tvb, offset, pinfo, tree, hf_cmip_RelativeDistinguishedName_item);
516 }
517
518
519 static const ber_sequence_t RelativeDistinguishedName_set_of[1] = {
520   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_RelativeDistinguishedName_item },
521 };
522
523 static int
524 dissect_cmip_RelativeDistinguishedName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
525   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
526                                  RelativeDistinguishedName_set_of, hf_index, ett_cmip_RelativeDistinguishedName);
527
528   return offset;
529 }
530 static int dissect_RDNSequence_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
531   return dissect_cmip_RelativeDistinguishedName(FALSE, tvb, offset, pinfo, tree, hf_cmip_RDNSequence_item);
532 }
533
534
535 static const ber_sequence_t RDNSequence_sequence_of[1] = {
536   { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_RDNSequence_item },
537 };
538
539 int
540 dissect_cmip_RDNSequence(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
541   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
542                                       RDNSequence_sequence_of, hf_index, ett_cmip_RDNSequence);
543
544   return offset;
545 }
546 static int dissect_localDistinguishedName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
547   return dissect_cmip_RDNSequence(TRUE, tvb, offset, pinfo, tree, hf_cmip_localDistinguishedName);
548 }
549 static int dissect_rdnSequence(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
550   return dissect_cmip_RDNSequence(FALSE, tvb, offset, pinfo, tree, hf_cmip_rdnSequence);
551 }
552
553
554
555 static int
556 dissect_cmip_DistinguishedName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
557   offset = dissect_cmip_RDNSequence(implicit_tag, tvb, offset, pinfo, tree, hf_index);
558
559   return offset;
560 }
561 static int dissect_distinguishedName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
562   return dissect_cmip_DistinguishedName(TRUE, tvb, offset, pinfo, tree, hf_cmip_distinguishedName);
563 }
564
565
566
567 static int
568 dissect_cmip_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
569   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
570                                        NULL);
571
572   return offset;
573 }
574 static int dissect_nonSpecificForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
575   return dissect_cmip_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_cmip_nonSpecificForm);
576 }
577
578
579 const value_string cmip_ObjectInstance_vals[] = {
580   {   2, "distinguishedName" },
581   {   3, "nonSpecificForm" },
582   {   4, "localDistinguishedName" },
583   { 0, NULL }
584 };
585
586 static const ber_choice_t ObjectInstance_choice[] = {
587   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_distinguishedName_impl },
588   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_nonSpecificForm_impl },
589   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_localDistinguishedName_impl },
590   { 0, 0, 0, 0, NULL }
591 };
592
593 int
594 dissect_cmip_ObjectInstance(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
595   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
596                                  ObjectInstance_choice, hf_index, ett_cmip_ObjectInstance,
597                                  NULL);
598
599   return offset;
600 }
601 static int dissect_managedObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
602   return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_managedObjectInstance);
603 }
604 static int dissect_baseManagedObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
605   return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_baseManagedObjectInstance);
606 }
607 static int dissect_superiorObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
608   return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_superiorObjectInstance);
609 }
610 static int dissect_referenceObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
611   return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_referenceObjectInstance);
612 }
613
614
615
616 static int
617 dissect_cmip_GeneralizedTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
618   offset = dissect_ber_GeneralizedTime(implicit_tag, pinfo, tree, tvb, offset, hf_index);
619
620   return offset;
621 }
622 static int dissect_currentTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
623   return dissect_cmip_GeneralizedTime(TRUE, tvb, offset, pinfo, tree, hf_cmip_currentTime);
624 }
625 static int dissect_eventTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
626   return dissect_cmip_GeneralizedTime(TRUE, tvb, offset, pinfo, tree, hf_cmip_eventTime);
627 }
628
629
630 static const value_string cmip_T_errorStatus_vals[] = {
631   {   2, "accessDenied" },
632   {   5, "noSuchAttribute" },
633   { 0, NULL }
634 };
635
636
637 static int
638 dissect_cmip_T_errorStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
639   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
640                                   NULL);
641
642   return offset;
643 }
644 static int dissect_errorStatus(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
645   return dissect_cmip_T_errorStatus(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorStatus);
646 }
647
648
649
650 static int
651 dissect_cmip_T_globalForm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
652   attributeform = ATTRIBUTE_GLOBAL_FORM;
653     offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index,
654                                             attribute_identifier_id);
655
656
657
658   return offset;
659 }
660 static int dissect_globalForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
661   return dissect_cmip_T_globalForm(TRUE, tvb, offset, pinfo, tree, hf_cmip_globalForm);
662 }
663
664
665
666 static int
667 dissect_cmip_T_localForm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
668   attributeform = ATTRIBUTE_LOCAL_FORM;
669   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_cmip_localForm, NULL);
670
671
672   return offset;
673 }
674 static int dissect_localForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
675   return dissect_cmip_T_localForm(TRUE, tvb, offset, pinfo, tree, hf_cmip_localForm);
676 }
677
678
679 static const value_string cmip_AttributeId_vals[] = {
680   {   0, "globalForm" },
681   {   1, "localForm" },
682   { 0, NULL }
683 };
684
685 static const ber_choice_t AttributeId_choice[] = {
686   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_globalForm_impl },
687   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_localForm_impl },
688   { 0, 0, 0, 0, NULL }
689 };
690
691 static int
692 dissect_cmip_AttributeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
693   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
694                                  AttributeId_choice, hf_index, ett_cmip_AttributeId,
695                                  NULL);
696
697   return offset;
698 }
699 static int dissect_attributeId1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
700   return dissect_cmip_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeId1);
701 }
702 static int dissect_id(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
703   return dissect_cmip_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_id);
704 }
705 static int dissect_present(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
706   return dissect_cmip_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_present);
707 }
708 static int dissect_attributeIdList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
709   return dissect_cmip_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeIdList_item);
710 }
711
712
713 static const ber_sequence_t AttributeIdError_sequence[] = {
714   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_errorStatus },
715   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_attributeId1 },
716   { 0, 0, 0, NULL }
717 };
718
719 static int
720 dissect_cmip_AttributeIdError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
721   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
722                                    AttributeIdError_sequence, hf_index, ett_cmip_AttributeIdError);
723
724   return offset;
725 }
726 static int dissect_attributeIdError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
727   return dissect_cmip_AttributeIdError(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeIdError);
728 }
729
730
731
732 static int
733 dissect_cmip_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
734   /*XXX handle local form here */
735   if(attributeform==ATTRIBUTE_GLOBAL_FORM){
736     offset=call_ber_oid_callback(attribute_identifier_id, tvb, offset, pinfo, tree);
737   }
738
739   return offset;
740 }
741 static int dissect_value(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
742   return dissect_cmip_T_value(FALSE, tvb, offset, pinfo, tree, hf_cmip_value);
743 }
744
745
746 static const ber_sequence_t Attribute_sequence[] = {
747   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_id },
748   { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_value },
749   { 0, 0, 0, NULL }
750 };
751
752 int
753 dissect_cmip_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
754   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
755                                    Attribute_sequence, hf_index, ett_cmip_Attribute);
756
757   return offset;
758 }
759 static int dissect_attribute_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
760   return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_attribute);
761 }
762 static int dissect_attributeList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
763   return dissect_cmip_Attribute(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeList_item);
764 }
765 static int dissect_equality_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
766   return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_equality);
767 }
768 static int dissect_initialString_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
769   return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_initialString);
770 }
771 static int dissect_anyString_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
772   return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_anyString);
773 }
774 static int dissect_finalString_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
775   return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_finalString);
776 }
777 static int dissect_greaterOrEqual_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
778   return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_greaterOrEqual);
779 }
780 static int dissect_lessOrEqual_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
781   return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_lessOrEqual);
782 }
783 static int dissect_subsetOf_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
784   return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_subsetOf);
785 }
786 static int dissect_supersetOf_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
787   return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_supersetOf);
788 }
789 static int dissect_nonNullSetIntersection_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
790   return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_nonNullSetIntersection);
791 }
792
793
794 static const value_string cmip_GetInfoStatus_vals[] = {
795   {   0, "attributeIdError" },
796   {   1, "attribute" },
797   { 0, NULL }
798 };
799
800 static const ber_choice_t GetInfoStatus_choice[] = {
801   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_attributeIdError_impl },
802   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_attribute_impl },
803   { 0, 0, 0, 0, NULL }
804 };
805
806 static int
807 dissect_cmip_GetInfoStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
808   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
809                                  GetInfoStatus_choice, hf_index, ett_cmip_GetInfoStatus,
810                                  NULL);
811
812   return offset;
813 }
814 static int dissect_getInfoList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
815   return dissect_cmip_GetInfoStatus(FALSE, tvb, offset, pinfo, tree, hf_cmip_getInfoList_item);
816 }
817
818
819 static const ber_sequence_t SET_OF_GetInfoStatus_set_of[1] = {
820   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_getInfoList_item },
821 };
822
823 static int
824 dissect_cmip_SET_OF_GetInfoStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
825   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
826                                  SET_OF_GetInfoStatus_set_of, hf_index, ett_cmip_SET_OF_GetInfoStatus);
827
828   return offset;
829 }
830 static int dissect_getInfoList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
831   return dissect_cmip_SET_OF_GetInfoStatus(TRUE, tvb, offset, pinfo, tree, hf_cmip_getInfoList);
832 }
833
834
835 static const ber_sequence_t GetListError_sequence[] = {
836   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
837   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
838   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
839   { BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_getInfoList_impl },
840   { 0, 0, 0, NULL }
841 };
842
843 static int
844 dissect_cmip_GetListError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
845   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
846                                    GetListError_sequence, hf_index, ett_cmip_GetListError);
847
848   return offset;
849 }
850 static int dissect_getListError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
851   return dissect_cmip_GetListError(TRUE, tvb, offset, pinfo, tree, hf_cmip_getListError);
852 }
853
854
855 static const value_string cmip_T_errorStatus2_vals[] = {
856   {   2, "accessDenied" },
857   {   5, "noSuchAttribute" },
858   {   6, "invalidAttributeValue" },
859   {  24, "invalidOperation" },
860   {  25, "invalidOperator" },
861   { 0, NULL }
862 };
863
864
865 static int
866 dissect_cmip_T_errorStatus2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
867   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
868                                   NULL);
869
870   return offset;
871 }
872 static int dissect_errorStatus2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
873   return dissect_cmip_T_errorStatus2(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorStatus2);
874 }
875
876
877
878 static int
879 dissect_cmip_T_attributeId1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
880   offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
881                                          hf_cmip_attributeId_OID, object_identifier_id);
882
883
884   return offset;
885 }
886 static int dissect_attributeId2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
887   return dissect_cmip_T_attributeId1(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeId2);
888 }
889
890
891
892 static int
893 dissect_cmip_T_attributeValue1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
894   offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
895
896
897
898   return offset;
899 }
900 static int dissect_attributeValue1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
901   return dissect_cmip_T_attributeValue1(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeValue1);
902 }
903
904
905 static const ber_sequence_t AttributeError_sequence[] = {
906   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_errorStatus2 },
907   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyOperator_impl },
908   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeId2 },
909   { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_attributeValue1 },
910   { 0, 0, 0, NULL }
911 };
912
913 static int
914 dissect_cmip_AttributeError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
915   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
916                                    AttributeError_sequence, hf_index, ett_cmip_AttributeError);
917
918   return offset;
919 }
920 static int dissect_attributeError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
921   return dissect_cmip_AttributeError(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeError);
922 }
923
924
925 static const value_string cmip_SetInfoStatus_vals[] = {
926   {   0, "attributeError" },
927   {   1, "attribute" },
928   { 0, NULL }
929 };
930
931 static const ber_choice_t SetInfoStatus_choice[] = {
932   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_attributeError_impl },
933   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_attribute_impl },
934   { 0, 0, 0, 0, NULL }
935 };
936
937 static int
938 dissect_cmip_SetInfoStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
939   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
940                                  SetInfoStatus_choice, hf_index, ett_cmip_SetInfoStatus,
941                                  NULL);
942
943   return offset;
944 }
945 static int dissect_setInfoList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
946   return dissect_cmip_SetInfoStatus(FALSE, tvb, offset, pinfo, tree, hf_cmip_setInfoList_item);
947 }
948
949
950 static const ber_sequence_t SET_OF_SetInfoStatus_set_of[1] = {
951   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_setInfoList_item },
952 };
953
954 static int
955 dissect_cmip_SET_OF_SetInfoStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
956   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
957                                  SET_OF_SetInfoStatus_set_of, hf_index, ett_cmip_SET_OF_SetInfoStatus);
958
959   return offset;
960 }
961 static int dissect_setInfoList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
962   return dissect_cmip_SET_OF_SetInfoStatus(TRUE, tvb, offset, pinfo, tree, hf_cmip_setInfoList);
963 }
964
965
966 static const ber_sequence_t SetListError_sequence[] = {
967   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
968   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
969   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
970   { BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_setInfoList_impl },
971   { 0, 0, 0, NULL }
972 };
973
974 static int
975 dissect_cmip_SetListError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
976   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
977                                    SetListError_sequence, hf_index, ett_cmip_SetListError);
978
979   return offset;
980 }
981 static int dissect_setListError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
982   return dissect_cmip_SetListError(TRUE, tvb, offset, pinfo, tree, hf_cmip_setListError);
983 }
984
985
986 static const value_string cmip_T_errorStatus1_vals[] = {
987   {   2, "accessDenied" },
988   {   9, "noSuchAction" },
989   {  14, "noSuchArgument" },
990   {  15, "invalidArgumentValue" },
991   { 0, NULL }
992 };
993
994
995 static int
996 dissect_cmip_T_errorStatus1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
997   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
998                                   NULL);
999
1000   return offset;
1001 }
1002 static int dissect_errorStatus1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1003   return dissect_cmip_T_errorStatus1(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorStatus1);
1004 }
1005
1006
1007
1008 static int
1009 dissect_cmip_T_actionType1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1010   offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1011                                          hf_cmip_actionType_OID, object_identifier_id);
1012
1013
1014   return offset;
1015 }
1016 static int dissect_actionType1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1017   return dissect_cmip_T_actionType1(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType1);
1018 }
1019
1020
1021
1022 static int
1023 dissect_cmip_T_actionType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1024   offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1025                                          hf_cmip_actionType_OID, object_identifier_id);
1026
1027
1028   return offset;
1029 }
1030 static int dissect_actionType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1031   return dissect_cmip_T_actionType(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType);
1032 }
1033
1034
1035 static const ber_sequence_t NoSuchArgumentAction_sequence[] = {
1036   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1037   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType },
1038   { 0, 0, 0, NULL }
1039 };
1040
1041 static int
1042 dissect_cmip_NoSuchArgumentAction(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1043   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1044                                    NoSuchArgumentAction_sequence, hf_index, ett_cmip_NoSuchArgumentAction);
1045
1046   return offset;
1047 }
1048 static int dissect_actionId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1049   return dissect_cmip_NoSuchArgumentAction(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionId);
1050 }
1051
1052
1053
1054 static int
1055 dissect_cmip_T_eventType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1056   offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1057                                          hf_cmip_eventType_OID, object_identifier_id);
1058
1059
1060   return offset;
1061 }
1062 static int dissect_eventType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1063   return dissect_cmip_T_eventType(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType);
1064 }
1065
1066
1067 static const ber_sequence_t NoSuchArgumentEvent_sequence[] = {
1068   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1069   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType },
1070   { 0, 0, 0, NULL }
1071 };
1072
1073 static int
1074 dissect_cmip_NoSuchArgumentEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1075   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1076                                    NoSuchArgumentEvent_sequence, hf_index, ett_cmip_NoSuchArgumentEvent);
1077
1078   return offset;
1079 }
1080 static int dissect_eventId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1081   return dissect_cmip_NoSuchArgumentEvent(TRUE, tvb, offset, pinfo, tree, hf_cmip_eventId);
1082 }
1083
1084
1085 static const value_string cmip_NoSuchArgument_vals[] = {
1086   {   0, "actionId" },
1087   {   1, "eventId" },
1088   { 0, NULL }
1089 };
1090
1091 static const ber_choice_t NoSuchArgument_choice[] = {
1092   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_actionId_impl },
1093   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_eventId_impl },
1094   { 0, 0, 0, 0, NULL }
1095 };
1096
1097 static int
1098 dissect_cmip_NoSuchArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1099   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1100                                  NoSuchArgument_choice, hf_index, ett_cmip_NoSuchArgument,
1101                                  NULL);
1102
1103   return offset;
1104 }
1105 static int dissect_actionArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1106   return dissect_cmip_NoSuchArgument(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionArgument);
1107 }
1108
1109
1110
1111 static int
1112 dissect_cmip_T_actionType3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1113   offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1114                                          hf_cmip_actionType_OID, object_identifier_id);
1115
1116
1117   return offset;
1118 }
1119 static int dissect_actionType3(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1120   return dissect_cmip_T_actionType3(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType3);
1121 }
1122
1123
1124
1125 static int
1126 dissect_cmip_T_actionInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1127   offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1128
1129
1130   return offset;
1131 }
1132 static int dissect_actionInfoArg(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1133   return dissect_cmip_T_actionInfoArg(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionInfoArg);
1134 }
1135
1136
1137 static const ber_sequence_t ActionInfo_sequence[] = {
1138   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType3 },
1139   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_actionInfoArg },
1140   { 0, 0, 0, NULL }
1141 };
1142
1143 static int
1144 dissect_cmip_ActionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1145   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1146                                    ActionInfo_sequence, hf_index, ett_cmip_ActionInfo);
1147
1148   return offset;
1149 }
1150 static int dissect_actionValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1151   return dissect_cmip_ActionInfo(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionValue);
1152 }
1153 static int dissect_actionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1154   return dissect_cmip_ActionInfo(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionInfo);
1155 }
1156
1157
1158
1159 static int
1160 dissect_cmip_T_eventType1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1161   offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1162                                          hf_cmip_eventType_OID, object_identifier_id);
1163
1164
1165   return offset;
1166 }
1167 static int dissect_eventType1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1168   return dissect_cmip_T_eventType1(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType1);
1169 }
1170
1171
1172
1173 static int
1174 dissect_cmip_T_eventInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1175   offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1176
1177
1178
1179   return offset;
1180 }
1181 static int dissect_eventInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1182   return dissect_cmip_T_eventInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventInfo);
1183 }
1184
1185
1186 static const ber_sequence_t InvalidArgumentValueEventValue_sequence[] = {
1187   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType1 },
1188   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_eventInfo },
1189   { 0, 0, 0, NULL }
1190 };
1191
1192 static int
1193 dissect_cmip_InvalidArgumentValueEventValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1194   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1195                                    InvalidArgumentValueEventValue_sequence, hf_index, ett_cmip_InvalidArgumentValueEventValue);
1196
1197   return offset;
1198 }
1199 static int dissect_eventValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1200   return dissect_cmip_InvalidArgumentValueEventValue(TRUE, tvb, offset, pinfo, tree, hf_cmip_eventValue);
1201 }
1202
1203
1204 static const value_string cmip_InvalidArgumentValue_vals[] = {
1205   {   0, "actionValue" },
1206   {   1, "eventValue" },
1207   { 0, NULL }
1208 };
1209
1210 static const ber_choice_t InvalidArgumentValue_choice[] = {
1211   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_actionValue_impl },
1212   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_eventValue_impl },
1213   { 0, 0, 0, 0, NULL }
1214 };
1215
1216 static int
1217 dissect_cmip_InvalidArgumentValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1218   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1219                                  InvalidArgumentValue_choice, hf_index, ett_cmip_InvalidArgumentValue,
1220                                  NULL);
1221
1222   return offset;
1223 }
1224 static int dissect_argumentValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1225   return dissect_cmip_InvalidArgumentValue(FALSE, tvb, offset, pinfo, tree, hf_cmip_argumentValue);
1226 }
1227
1228
1229 static const value_string cmip_ErrorInfo_vals[] = {
1230   {   0, "actionType" },
1231   {   1, "actionArgument" },
1232   {   2, "argumentValue" },
1233   { 0, NULL }
1234 };
1235
1236 static const ber_choice_t ErrorInfo_choice[] = {
1237   {   0, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType1 },
1238   {   1, BER_CLASS_CON, 0, 0, dissect_actionArgument },
1239   {   2, BER_CLASS_CON, 1, 0, dissect_argumentValue },
1240   { 0, 0, 0, 0, NULL }
1241 };
1242
1243 static int
1244 dissect_cmip_ErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1245   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1246                                  ErrorInfo_choice, hf_index, ett_cmip_ErrorInfo,
1247                                  NULL);
1248
1249   return offset;
1250 }
1251 static int dissect_errorInfo1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1252   return dissect_cmip_ErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorInfo1);
1253 }
1254
1255
1256 static const ber_sequence_t ActionErrorInfo_sequence[] = {
1257   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_errorStatus1 },
1258   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_errorInfo1 },
1259   { 0, 0, 0, NULL }
1260 };
1261
1262 static int
1263 dissect_cmip_ActionErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1264   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1265                                    ActionErrorInfo_sequence, hf_index, ett_cmip_ActionErrorInfo);
1266
1267   return offset;
1268 }
1269 static int dissect_actionErrorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1270   return dissect_cmip_ActionErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionErrorInfo);
1271 }
1272
1273
1274 static const ber_sequence_t ActionError_sequence[] = {
1275   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1276   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1277   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1278   { BER_CLASS_CON, 6, 0, dissect_actionErrorInfo },
1279   { 0, 0, 0, NULL }
1280 };
1281
1282 static int
1283 dissect_cmip_ActionError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1284   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1285                                    ActionError_sequence, hf_index, ett_cmip_ActionError);
1286
1287   return offset;
1288 }
1289 static int dissect_actionError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1290   return dissect_cmip_ActionError(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionError);
1291 }
1292
1293
1294
1295 static int
1296 dissect_cmip_T_errorId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1297   offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1298                                          hf_cmip_errorId_OID, object_identifier_id);
1299
1300
1301   return offset;
1302 }
1303 static int dissect_errorId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1304   return dissect_cmip_T_errorId(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorId);
1305 }
1306
1307
1308
1309 static int
1310 dissect_cmip_T_errorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1311   offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1312
1313
1314   return offset;
1315 }
1316 static int dissect_errorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1317   return dissect_cmip_T_errorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorInfo);
1318 }
1319
1320
1321 static const ber_sequence_t SpecificErrorInfo_sequence[] = {
1322   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_errorId },
1323   { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_errorInfo },
1324   { 0, 0, 0, NULL }
1325 };
1326
1327 static int
1328 dissect_cmip_SpecificErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1329   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1330                                    SpecificErrorInfo_sequence, hf_index, ett_cmip_SpecificErrorInfo);
1331
1332   return offset;
1333 }
1334 static int dissect_specificErrorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1335   return dissect_cmip_SpecificErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_specificErrorInfo);
1336 }
1337
1338
1339 static const ber_sequence_t ProcessingFailure_sequence[] = {
1340   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1341   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1342   { BER_CLASS_CON, 5, 0, dissect_specificErrorInfo },
1343   { 0, 0, 0, NULL }
1344 };
1345
1346 static int
1347 dissect_cmip_ProcessingFailure(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1348   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1349                                    ProcessingFailure_sequence, hf_index, ett_cmip_ProcessingFailure);
1350
1351   return offset;
1352 }
1353 static int dissect_processingFailure_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1354   return dissect_cmip_ProcessingFailure(TRUE, tvb, offset, pinfo, tree, hf_cmip_processingFailure);
1355 }
1356
1357
1358 static const value_string cmip_T_deleteErrorInfo_vals[] = {
1359   {   2, "accessDenied" },
1360   { 0, NULL }
1361 };
1362
1363
1364 static int
1365 dissect_cmip_T_deleteErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1366   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1367                                   NULL);
1368
1369   return offset;
1370 }
1371 static int dissect_deleteErrorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1372   return dissect_cmip_T_deleteErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_deleteErrorInfo);
1373 }
1374
1375
1376 static const ber_sequence_t DeleteError_sequence[] = {
1377   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1378   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1379   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1380   { BER_CLASS_CON, 6, 0, dissect_deleteErrorInfo },
1381   { 0, 0, 0, NULL }
1382 };
1383
1384 static int
1385 dissect_cmip_DeleteError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1386   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1387                                    DeleteError_sequence, hf_index, ett_cmip_DeleteError);
1388
1389   return offset;
1390 }
1391 static int dissect_deleteError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1392   return dissect_cmip_DeleteError(TRUE, tvb, offset, pinfo, tree, hf_cmip_deleteError);
1393 }
1394
1395
1396 static const ber_sequence_t SET_OF_Attribute_set_of[1] = {
1397   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_attributeList_item },
1398 };
1399
1400 static int
1401 dissect_cmip_SET_OF_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1402   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1403                                  SET_OF_Attribute_set_of, hf_index, ett_cmip_SET_OF_Attribute);
1404
1405   return offset;
1406 }
1407 static int dissect_attributeList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1408   return dissect_cmip_SET_OF_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeList);
1409 }
1410
1411
1412 static const ber_sequence_t SetResult_sequence[] = {
1413   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1414   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1415   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1416   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
1417   { 0, 0, 0, NULL }
1418 };
1419
1420 static int
1421 dissect_cmip_SetResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1422   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1423                                    SetResult_sequence, hf_index, ett_cmip_SetResult);
1424
1425   return offset;
1426 }
1427 static int dissect_setResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1428   return dissect_cmip_SetResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_setResult);
1429 }
1430
1431
1432
1433 static int
1434 dissect_cmip_AccessControl(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1435   offset = dissect_acse_EXTERNAL(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1436
1437   return offset;
1438 }
1439 static int dissect_accessControl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1440   return dissect_cmip_AccessControl(FALSE, tvb, offset, pinfo, tree, hf_cmip_accessControl);
1441 }
1442
1443
1444 static const value_string cmip_CMISSync_vals[] = {
1445   {   0, "bestEffort" },
1446   {   1, "atomic" },
1447   { 0, NULL }
1448 };
1449
1450
1451 static int
1452 dissect_cmip_CMISSync(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1453   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1454                                   NULL);
1455
1456   return offset;
1457 }
1458 static int dissect_synchronization_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1459   return dissect_cmip_CMISSync(TRUE, tvb, offset, pinfo, tree, hf_cmip_synchronization);
1460 }
1461
1462
1463 static const value_string cmip_T_namedNumbers_vals[] = {
1464   {   0, "baseObject" },
1465   {   1, "firstLevelOnly" },
1466   {   2, "wholeSubtree" },
1467   { 0, NULL }
1468 };
1469
1470
1471 static int
1472 dissect_cmip_T_namedNumbers(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1473   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1474                                   NULL);
1475
1476   return offset;
1477 }
1478 static int dissect_namedNumbers(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1479   return dissect_cmip_T_namedNumbers(FALSE, tvb, offset, pinfo, tree, hf_cmip_namedNumbers);
1480 }
1481
1482
1483
1484 static int
1485 dissect_cmip_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1486   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1487                                   NULL);
1488
1489   return offset;
1490 }
1491 static int dissect_individualLevels_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1492   return dissect_cmip_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_cmip_individualLevels);
1493 }
1494 static int dissect_baseToNthLevel_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1495   return dissect_cmip_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_cmip_baseToNthLevel);
1496 }
1497
1498
1499 static const value_string cmip_Scope_vals[] = {
1500   {   0, "namedNumbers" },
1501   {   1, "individualLevels" },
1502   {   2, "baseToNthLevel" },
1503   { 0, NULL }
1504 };
1505
1506 static const ber_choice_t Scope_choice[] = {
1507   {   0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_namedNumbers },
1508   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_individualLevels_impl },
1509   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_baseToNthLevel_impl },
1510   { 0, 0, 0, 0, NULL }
1511 };
1512
1513 static int
1514 dissect_cmip_Scope(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1515   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1516                                  Scope_choice, hf_index, ett_cmip_Scope,
1517                                  NULL);
1518
1519   return offset;
1520 }
1521 static int dissect_scope(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1522   return dissect_cmip_Scope(FALSE, tvb, offset, pinfo, tree, hf_cmip_scope);
1523 }
1524
1525
1526 static const value_string cmip_T_substrings_item_vals[] = {
1527   {   0, "initialString" },
1528   {   1, "anyString" },
1529   {   2, "finalString" },
1530   { 0, NULL }
1531 };
1532
1533 static const ber_choice_t T_substrings_item_choice[] = {
1534   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_initialString_impl },
1535   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_anyString_impl },
1536   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_finalString_impl },
1537   { 0, 0, 0, 0, NULL }
1538 };
1539
1540 static int
1541 dissect_cmip_T_substrings_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1542   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1543                                  T_substrings_item_choice, hf_index, ett_cmip_T_substrings_item,
1544                                  NULL);
1545
1546   return offset;
1547 }
1548 static int dissect_substrings_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1549   return dissect_cmip_T_substrings_item(FALSE, tvb, offset, pinfo, tree, hf_cmip_substrings_item);
1550 }
1551
1552
1553 static const ber_sequence_t T_substrings_sequence_of[1] = {
1554   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_substrings_item },
1555 };
1556
1557 static int
1558 dissect_cmip_T_substrings(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1559   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1560                                       T_substrings_sequence_of, hf_index, ett_cmip_T_substrings);
1561
1562   return offset;
1563 }
1564 static int dissect_substrings_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1565   return dissect_cmip_T_substrings(TRUE, tvb, offset, pinfo, tree, hf_cmip_substrings);
1566 }
1567
1568
1569 static const value_string cmip_FilterItem_vals[] = {
1570   {   0, "equality" },
1571   {   1, "substrings" },
1572   {   2, "greaterOrEqual" },
1573   {   3, "lessOrEqual" },
1574   {   4, "present" },
1575   {   5, "subsetOf" },
1576   {   6, "supersetOf" },
1577   {   7, "nonNullSetIntersection" },
1578   { 0, NULL }
1579 };
1580
1581 static const ber_choice_t FilterItem_choice[] = {
1582   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_equality_impl },
1583   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_substrings_impl },
1584   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_greaterOrEqual_impl },
1585   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_lessOrEqual_impl },
1586   {   4, BER_CLASS_CON, 4, 0, dissect_present },
1587   {   5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_subsetOf_impl },
1588   {   6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_supersetOf_impl },
1589   {   7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_nonNullSetIntersection_impl },
1590   { 0, 0, 0, 0, NULL }
1591 };
1592
1593 static int
1594 dissect_cmip_FilterItem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1595   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1596                                  FilterItem_choice, hf_index, ett_cmip_FilterItem,
1597                                  NULL);
1598
1599   return offset;
1600 }
1601 static int dissect_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1602   return dissect_cmip_FilterItem(FALSE, tvb, offset, pinfo, tree, hf_cmip_item);
1603 }
1604
1605
1606 static const ber_sequence_t SET_OF_CMISFilter_set_of[1] = {
1607   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_and_item },
1608 };
1609
1610 static int
1611 dissect_cmip_SET_OF_CMISFilter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1612   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1613                                  SET_OF_CMISFilter_set_of, hf_index, ett_cmip_SET_OF_CMISFilter);
1614
1615   return offset;
1616 }
1617 static int dissect_and_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1618   return dissect_cmip_SET_OF_CMISFilter(TRUE, tvb, offset, pinfo, tree, hf_cmip_and);
1619 }
1620 static int dissect_or_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1621   return dissect_cmip_SET_OF_CMISFilter(TRUE, tvb, offset, pinfo, tree, hf_cmip_or);
1622 }
1623
1624
1625 static const value_string cmip_CMISFilter_vals[] = {
1626   {   8, "item" },
1627   {   9, "and" },
1628   {  10, "or" },
1629   {  11, "not" },
1630   { 0, NULL }
1631 };
1632
1633 static const ber_choice_t CMISFilter_choice[] = {
1634   {   8, BER_CLASS_CON, 8, 0, dissect_item },
1635   {   9, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_and_impl },
1636   {  10, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_or_impl },
1637   {  11, BER_CLASS_CON, 11, 0, dissect_not },
1638   { 0, 0, 0, 0, NULL }
1639 };
1640
1641 static int
1642 dissect_cmip_CMISFilter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1643   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1644                                  CMISFilter_choice, hf_index, ett_cmip_CMISFilter,
1645                                  NULL);
1646
1647   return offset;
1648 }
1649
1650
1651 static const ber_sequence_t SET_OF_ModificationItem_set_of[1] = {
1652   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_modificationList_item },
1653 };
1654
1655 static int
1656 dissect_cmip_SET_OF_ModificationItem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1657   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1658                                  SET_OF_ModificationItem_set_of, hf_index, ett_cmip_SET_OF_ModificationItem);
1659
1660   return offset;
1661 }
1662 static int dissect_modificationList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1663   return dissect_cmip_SET_OF_ModificationItem(TRUE, tvb, offset, pinfo, tree, hf_cmip_modificationList);
1664 }
1665
1666
1667 static const ber_sequence_t SetArgument_sequence[] = {
1668   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
1669   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
1670   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
1671   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_synchronization_impl },
1672   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_scope },
1673   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_filter },
1674   { BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_modificationList_impl },
1675   { 0, 0, 0, NULL }
1676 };
1677
1678 static int
1679 dissect_cmip_SetArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1680   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1681                                    SetArgument_sequence, hf_index, ett_cmip_SetArgument);
1682
1683   return offset;
1684 }
1685
1686
1687 static const ber_sequence_t GetResult_sequence[] = {
1688   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1689   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1690   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1691   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
1692   { 0, 0, 0, NULL }
1693 };
1694
1695 static int
1696 dissect_cmip_GetResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1697   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1698                                    GetResult_sequence, hf_index, ett_cmip_GetResult);
1699
1700   return offset;
1701 }
1702 static int dissect_getResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1703   return dissect_cmip_GetResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_getResult);
1704 }
1705
1706
1707
1708 static int
1709 dissect_cmip_T_actionType2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1710   offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1711                                          hf_cmip_actionType_OID, object_identifier_id);
1712
1713
1714   return offset;
1715 }
1716 static int dissect_actionType2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1717   return dissect_cmip_T_actionType2(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType2);
1718 }
1719
1720
1721
1722 static int
1723 dissect_cmip_T_actionReplyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1724   offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1725
1726
1727   return offset;
1728 }
1729 static int dissect_actionReplyInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1730   return dissect_cmip_T_actionReplyInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionReplyInfo);
1731 }
1732
1733
1734 static const ber_sequence_t ActionReply_sequence[] = {
1735   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType2 },
1736   { BER_CLASS_CON, 4, 0, dissect_actionReplyInfo },
1737   { 0, 0, 0, NULL }
1738 };
1739
1740 static int
1741 dissect_cmip_ActionReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1742   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1743                                    ActionReply_sequence, hf_index, ett_cmip_ActionReply);
1744
1745   return offset;
1746 }
1747 static int dissect_actionReply_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1748   return dissect_cmip_ActionReply(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionReply);
1749 }
1750
1751
1752 static const ber_sequence_t ActionResult_sequence[] = {
1753   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1754   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1755   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1756   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_actionReply_impl },
1757   { 0, 0, 0, NULL }
1758 };
1759
1760 static int
1761 dissect_cmip_ActionResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1762   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1763                                    ActionResult_sequence, hf_index, ett_cmip_ActionResult);
1764
1765   return offset;
1766 }
1767 static int dissect_actionResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1768   return dissect_cmip_ActionResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionResult);
1769 }
1770
1771
1772 static const ber_sequence_t DeleteResult_sequence[] = {
1773   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1774   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1775   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1776   { 0, 0, 0, NULL }
1777 };
1778
1779 static int
1780 dissect_cmip_DeleteResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1781   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1782                                    DeleteResult_sequence, hf_index, ett_cmip_DeleteResult);
1783
1784   return offset;
1785 }
1786 static int dissect_deleteResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1787   return dissect_cmip_DeleteResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_deleteResult);
1788 }
1789
1790
1791 static const value_string cmip_LinkedReplyArgument_vals[] = {
1792   {   0, "getResult" },
1793   {   1, "getListError" },
1794   {   2, "setResult" },
1795   {   3, "setListError" },
1796   {   4, "actionResult" },
1797   {   5, "processingFailure" },
1798   {   6, "deleteResult" },
1799   {   7, "actionError" },
1800   {   8, "deleteError" },
1801   { 0, NULL }
1802 };
1803
1804 static const ber_choice_t LinkedReplyArgument_choice[] = {
1805   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_getResult_impl },
1806   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_getListError_impl },
1807   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_setResult_impl },
1808   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_setListError_impl },
1809   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_actionResult_impl },
1810   {   5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_processingFailure_impl },
1811   {   6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_deleteResult_impl },
1812   {   7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_actionError_impl },
1813   {   8, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_deleteError_impl },
1814   { 0, 0, 0, 0, NULL }
1815 };
1816
1817 static int
1818 dissect_cmip_LinkedReplyArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1819   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1820                                  LinkedReplyArgument_choice, hf_index, ett_cmip_LinkedReplyArgument,
1821                                  NULL);
1822
1823   return offset;
1824 }
1825
1826
1827
1828 static int
1829 dissect_cmip_T_eventType2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1830   offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1831                                          hf_cmip_eventType_OID, object_identifier_id);
1832
1833
1834   return offset;
1835 }
1836 static int dissect_eventType2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1837   return dissect_cmip_T_eventType2(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType2);
1838 }
1839
1840
1841
1842 static int
1843 dissect_cmip_T_eventReplyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1844   offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1845
1846
1847   return offset;
1848 }
1849 static int dissect_eventReplyInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1850   return dissect_cmip_T_eventReplyInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventReplyInfo);
1851 }
1852
1853
1854 static const ber_sequence_t EventReply_sequence[] = {
1855   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType2 },
1856   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_eventReplyInfo },
1857   { 0, 0, 0, NULL }
1858 };
1859
1860 static int
1861 dissect_cmip_EventReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1862   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1863                                    EventReply_sequence, hf_index, ett_cmip_EventReply);
1864
1865   return offset;
1866 }
1867 static int dissect_eventReply(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1868   return dissect_cmip_EventReply(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventReply);
1869 }
1870
1871
1872 static const ber_sequence_t EventReportResult_sequence[] = {
1873   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1874   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1875   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1876   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_eventReply },
1877   { 0, 0, 0, NULL }
1878 };
1879
1880 static int
1881 dissect_cmip_EventReportResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1882   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1883                                    EventReportResult_sequence, hf_index, ett_cmip_EventReportResult);
1884
1885   return offset;
1886 }
1887
1888
1889
1890 static int
1891 dissect_cmip_T_eventType3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1892   offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1893                                          hf_cmip_eventType_OID, object_identifier_id);
1894
1895
1896   return offset;
1897 }
1898 static int dissect_eventType3(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1899   return dissect_cmip_T_eventType3(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType3);
1900 }
1901
1902
1903
1904 static int
1905 dissect_cmip_T_eventInfo1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1906   offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1907
1908
1909
1910   return offset;
1911 }
1912 static int dissect_eventInfo1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1913   return dissect_cmip_T_eventInfo1(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventInfo1);
1914 }
1915
1916
1917 static const ber_sequence_t EventReportArgument_sequence[] = {
1918   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1919   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1920   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventTime_impl },
1921   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType3 },
1922   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_eventInfo1 },
1923   { 0, 0, 0, NULL }
1924 };
1925
1926 static int
1927 dissect_cmip_EventReportArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1928   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1929                                    EventReportArgument_sequence, hf_index, ett_cmip_EventReportArgument);
1930
1931   return offset;
1932 }
1933
1934
1935 static const ber_sequence_t DeleteArgument_sequence[] = {
1936   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
1937   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
1938   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
1939   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_synchronization_impl },
1940   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_scope },
1941   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_filter },
1942   { 0, 0, 0, NULL }
1943 };
1944
1945 static int
1946 dissect_cmip_DeleteArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1947   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1948                                    DeleteArgument_sequence, hf_index, ett_cmip_DeleteArgument);
1949
1950   return offset;
1951 }
1952
1953
1954 static const value_string cmip_T_managedOrSuperiorObjectInstance_vals[] = {
1955   {   0, "managedObjectInstance" },
1956   {   1, "superiorObjectInstance" },
1957   { 0, NULL }
1958 };
1959
1960 static const ber_choice_t T_managedOrSuperiorObjectInstance_choice[] = {
1961   {   0, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_managedObjectInstance },
1962   {   1, BER_CLASS_CON, 8, 0, dissect_superiorObjectInstance },
1963   { 0, 0, 0, 0, NULL }
1964 };
1965
1966 static int
1967 dissect_cmip_T_managedOrSuperiorObjectInstance(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1968   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1969                                  T_managedOrSuperiorObjectInstance_choice, hf_index, ett_cmip_T_managedOrSuperiorObjectInstance,
1970                                  NULL);
1971
1972   return offset;
1973 }
1974 static int dissect_managedOrSuperiorObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1975   return dissect_cmip_T_managedOrSuperiorObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_managedOrSuperiorObjectInstance);
1976 }
1977
1978
1979 static const ber_sequence_t CreateArgument_sequence[] = {
1980   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1981   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedOrSuperiorObjectInstance },
1982   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
1983   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_referenceObjectInstance },
1984   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
1985   { 0, 0, 0, NULL }
1986 };
1987
1988 static int
1989 dissect_cmip_CreateArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1990   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1991                                    CreateArgument_sequence, hf_index, ett_cmip_CreateArgument);
1992
1993   return offset;
1994 }
1995
1996
1997 static const ber_sequence_t CreateResult_sequence[] = {
1998   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1999   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
2000   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
2001   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
2002   { 0, 0, 0, NULL }
2003 };
2004
2005 static int
2006 dissect_cmip_CreateResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2007   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2008                                    CreateResult_sequence, hf_index, ett_cmip_CreateResult);
2009
2010   return offset;
2011 }
2012
2013
2014 static const ber_sequence_t ActionArgument_sequence[] = {
2015   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
2016   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
2017   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
2018   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_synchronization_impl },
2019   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_scope },
2020   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_filter },
2021   { BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_actionInfo_impl },
2022   { 0, 0, 0, NULL }
2023 };
2024
2025 static int
2026 dissect_cmip_ActionArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2027   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2028                                    ActionArgument_sequence, hf_index, ett_cmip_ActionArgument);
2029
2030   return offset;
2031 }
2032
2033
2034 static const ber_sequence_t BaseManagedObjectId_sequence[] = {
2035   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
2036   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
2037   { 0, 0, 0, NULL }
2038 };
2039
2040 static int
2041 dissect_cmip_BaseManagedObjectId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2042   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2043                                    BaseManagedObjectId_sequence, hf_index, ett_cmip_BaseManagedObjectId);
2044
2045   return offset;
2046 }
2047
2048
2049 static const value_string cmip_AdministrativeState_vals[] = {
2050   {   0, "locked" },
2051   {   1, "unlocked" },
2052   {   2, "shuttingDown" },
2053   { 0, NULL }
2054 };
2055
2056
2057 static int
2058 dissect_cmip_AdministrativeState(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2059   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2060                                   NULL);
2061
2062   return offset;
2063 }
2064
2065
2066
2067 static int
2068 dissect_cmip_DiscriminatorConstruct(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2069   offset = dissect_cmip_CMISFilter(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2070
2071   return offset;
2072 }
2073
2074
2075 static const value_string cmip_Name_vals[] = {
2076   {   0, "rdnSequence" },
2077   { 0, NULL }
2078 };
2079
2080 static const ber_choice_t Name_choice[] = {
2081   {   0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_rdnSequence },
2082   { 0, 0, 0, 0, NULL }
2083 };
2084
2085 static int
2086 dissect_cmip_Name(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2087   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2088                                  Name_choice, hf_index, ett_cmip_Name,
2089                                  NULL);
2090
2091   return offset;
2092 }
2093
2094
2095
2096 static int
2097 dissect_cmip_AE_title_form1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2098   offset = dissect_cmip_Name(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2099
2100   return offset;
2101 }
2102 static int dissect_ae_title_form1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2103   return dissect_cmip_AE_title_form1(FALSE, tvb, offset, pinfo, tree, hf_cmip_ae_title_form1);
2104 }
2105
2106
2107
2108 static int
2109 dissect_cmip_AE_title_form2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2110   offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2111                                             NULL);
2112
2113   return offset;
2114 }
2115 static int dissect_ae_title_form2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2116   return dissect_cmip_AE_title_form2(FALSE, tvb, offset, pinfo, tree, hf_cmip_ae_title_form2);
2117 }
2118
2119
2120 static const value_string cmip_AE_title_vals[] = {
2121   {   0, "ae-title-form1" },
2122   {   1, "ae-title-form2" },
2123   { 0, NULL }
2124 };
2125
2126 static const ber_choice_t AE_title_choice[] = {
2127   {   0, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ae_title_form1 },
2128   {   1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_ae_title_form2 },
2129   { 0, 0, 0, 0, NULL }
2130 };
2131
2132 static int
2133 dissect_cmip_AE_title(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2134   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2135                                  AE_title_choice, hf_index, ett_cmip_AE_title,
2136                                  NULL);
2137
2138   return offset;
2139 }
2140 static int dissect_single(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2141   return dissect_cmip_AE_title(FALSE, tvb, offset, pinfo, tree, hf_cmip_single);
2142 }
2143 static int dissect_multiple_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2144   return dissect_cmip_AE_title(FALSE, tvb, offset, pinfo, tree, hf_cmip_multiple_item);
2145 }
2146
2147
2148 static const ber_sequence_t SET_OF_AE_title_set_of[1] = {
2149   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_multiple_item },
2150 };
2151
2152 static int
2153 dissect_cmip_SET_OF_AE_title(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2154   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
2155                                  SET_OF_AE_title_set_of, hf_index, ett_cmip_SET_OF_AE_title);
2156
2157   return offset;
2158 }
2159 static int dissect_multiple(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2160   return dissect_cmip_SET_OF_AE_title(FALSE, tvb, offset, pinfo, tree, hf_cmip_multiple);
2161 }
2162
2163
2164 static const value_string cmip_Destination_vals[] = {
2165   {   0, "single" },
2166   {   1, "multiple" },
2167   { 0, NULL }
2168 };
2169
2170 static const ber_choice_t Destination_choice[] = {
2171   {   0, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_single },
2172   {   1, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_multiple },
2173   { 0, 0, 0, 0, NULL }
2174 };
2175
2176 static int
2177 dissect_cmip_Destination(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2178   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2179                                  Destination_choice, hf_index, ett_cmip_Destination,
2180                                  NULL);
2181
2182   return offset;
2183 }
2184
2185
2186 static const value_string cmip_OperationalState_vals[] = {
2187   {   0, "disabled" },
2188   {   1, "enabled" },
2189   { 0, NULL }
2190 };
2191
2192
2193 static int
2194 dissect_cmip_OperationalState(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2195   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2196                                   NULL);
2197
2198   return offset;
2199 }
2200
2201
2202
2203 static int
2204 dissect_cmip_NameBinding(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2205   offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2206                                             NULL);
2207
2208   return offset;
2209 }
2210
2211
2212 static const ber_sequence_t SET_OF_AttributeId_set_of[1] = {
2213   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_attributeIdList_item },
2214 };
2215
2216 static int
2217 dissect_cmip_SET_OF_AttributeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2218   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
2219                                  SET_OF_AttributeId_set_of, hf_index, ett_cmip_SET_OF_AttributeId);
2220
2221   return offset;
2222 }
2223 static int dissect_attributeIdList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2224   return dissect_cmip_SET_OF_AttributeId(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeIdList);
2225 }
2226
2227
2228 static const ber_sequence_t GetArgument_sequence[] = {
2229   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
2230   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
2231   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
2232   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_synchronization_impl },
2233   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_scope },
2234   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_filter },
2235   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeIdList_impl },
2236   { 0, 0, 0, NULL }
2237 };
2238
2239 static int
2240 dissect_cmip_GetArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2241   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2242                                    GetArgument_sequence, hf_index, ett_cmip_GetArgument);
2243
2244   return offset;
2245 }
2246
2247
2248
2249 static int
2250 dissect_cmip_Argument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2251   switch(opcode_type){
2252   case OPCODE_INVOKE:
2253     switch(opcode){
2254     case 0: /* M-eventreport */
2255       offset = dissect_cmip_EventReportArgument(FALSE, tvb, offset, pinfo, tree, -1);
2256       break;
2257     case 1: /* M-eventreport-confirmed */
2258       offset = dissect_cmip_EventReportArgument(FALSE, tvb, offset, pinfo, tree, -1);
2259       break;
2260     case 2: /* M-linkedreply */
2261       offset = dissect_cmip_LinkedReplyArgument(FALSE, tvb, offset, pinfo, tree, -1);
2262       break;
2263     case 3: /* M-get */
2264       offset = dissect_cmip_GetArgument(FALSE, tvb, offset, pinfo, tree, -1);
2265       break;
2266     case 4: /* M-set */
2267       offset = dissect_cmip_SetArgument(FALSE, tvb, offset, pinfo, tree, -1);
2268       break;
2269     case 5: /* M-set-confirmed */
2270       offset = dissect_cmip_SetArgument(FALSE, tvb, offset, pinfo, tree, -1);
2271       break;
2272     case 6: /* M-action*/
2273       offset = dissect_cmip_ActionArgument(FALSE, tvb,  offset, pinfo, tree, -1);
2274       break;
2275     case 7: /* M-action-confirmed*/
2276       offset = dissect_cmip_ActionArgument(FALSE, tvb,  offset, pinfo, tree, -1);
2277       break;
2278     case 8: /* M-create*/
2279       offset = dissect_cmip_CreateArgument(FALSE, tvb,  offset, pinfo, tree, -1);
2280       break;
2281     case 9: /* M-delete*/
2282       offset = dissect_cmip_DeleteArgument(FALSE, tvb,  offset, pinfo, tree, -1);
2283       break;
2284     case 10: /* M-cancelget */
2285       offset = dissect_cmip_InvokeIDType(FALSE, tvb,  offset, pinfo, tree, -1);
2286       break;
2287     }
2288     break;
2289   case OPCODE_RETURN_RESULT:
2290     switch(opcode){
2291     case 0: /* M-eventreport*/
2292       break;  /* No return data */
2293     case 1: /* M-eventreport-confirmed */
2294       offset = dissect_cmip_EventReportResult(FALSE, tvb, offset, pinfo, tree, -1);
2295       break;
2296     case 2: /* M-linkedreply*/
2297       break;  /* No return data */
2298     case 3: /* M-get */
2299       offset = dissect_cmip_GetResult(FALSE, tvb, offset, pinfo, tree, -1);
2300       break;
2301     case 4: /* M-set */
2302       break;  /* No return data */
2303     case 5: /* M-set-confirmed*/
2304       offset = dissect_cmip_SetResult(FALSE, tvb, offset, pinfo, tree, -1);
2305       break;
2306     case 6: /* M-action*/
2307       break;  /* No return data */
2308     case 7: /* M-action-confirmed*/
2309       offset = dissect_cmip_ActionResult(FALSE, tvb, offset, pinfo, tree, -1);
2310       break;
2311     case 8: /* M-create*/
2312       offset = dissect_cmip_CreateResult(FALSE, tvb,  offset, pinfo, tree, -1);
2313       break;
2314     case 9: /* M-delete*/
2315       offset = dissect_cmip_DeleteResult(FALSE, tvb,  offset, pinfo, tree, -1);
2316       break;
2317     case 10: /* M-cancelget */
2318       break; /* doe this one return any data? */
2319     }
2320     break;
2321   /*XXX add more types here */
2322   }
2323
2324
2325   return offset;
2326 }
2327 static int dissect_argument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2328   return dissect_cmip_Argument(FALSE, tvb, offset, pinfo, tree, hf_cmip_argument);
2329 }
2330
2331
2332 static const value_string cmip_Opcode_vals[] = {
2333   {   0, "m-EventReport" },
2334   {   1, "m-EventReport-Confirmed" },
2335   {   2, "m-Linked-Reply" },
2336   {   3, "m-Get" },
2337   {   4, "m-Set" },
2338   {   5, "m-Set-Confirmed" },
2339   {   6, "m-Action" },
2340   {   7, "m-Action-Confirmed" },
2341   {   8, "m-Create" },
2342   {   9, "m-Delete" },
2343   {  10, "m-CancelGet" },
2344   { 0, NULL }
2345 };
2346
2347
2348 static int
2349 dissect_cmip_Opcode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2350     offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2351                                   &opcode);
2352
2353   if(check_col(pinfo->cinfo, COL_INFO)){
2354     col_prepend_fstr(pinfo->cinfo, COL_INFO, "%s", val_to_str(opcode, cmip_Opcode_vals, " Unknown Opcode:%d"));
2355   }
2356
2357   return offset;
2358 }
2359 static int dissect_opcode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2360   return dissect_cmip_Opcode(FALSE, tvb, offset, pinfo, tree, hf_cmip_opcode);
2361 }
2362
2363
2364 static const ber_sequence_t ReturnResultBody_sequence[] = {
2365   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_opcode },
2366   { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_argument },
2367   { 0, 0, 0, NULL }
2368 };
2369
2370 static int
2371 dissect_cmip_ReturnResultBody(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2372   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2373                                    ReturnResultBody_sequence, hf_index, ett_cmip_ReturnResultBody);
2374
2375   return offset;
2376 }
2377 static int dissect_rRBody(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2378   return dissect_cmip_ReturnResultBody(FALSE, tvb, offset, pinfo, tree, hf_cmip_rRBody);
2379 }
2380
2381
2382
2383 static int
2384 dissect_cmip_InvokeID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2385   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2386                                   NULL);
2387
2388   return offset;
2389 }
2390 static int dissect_present1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2391   return dissect_cmip_InvokeID(FALSE, tvb, offset, pinfo, tree, hf_cmip_present1);
2392 }
2393
2394
2395
2396 static int
2397 dissect_cmip_InvokeLinkedId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2398   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2399                                   NULL);
2400
2401   return offset;
2402 }
2403 static int dissect_linkedId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2404   return dissect_cmip_InvokeLinkedId(TRUE, tvb, offset, pinfo, tree, hf_cmip_linkedId);
2405 }
2406
2407
2408
2409 static int
2410 dissect_cmip_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2411   offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index);
2412
2413   return offset;
2414 }
2415 static int dissect_absent(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2416   return dissect_cmip_NULL(FALSE, tvb, offset, pinfo, tree, hf_cmip_absent);
2417 }
2418
2419
2420 static const value_string cmip_InvokeId_vals[] = {
2421   {   0, "present" },
2422   {   1, "absent" },
2423   { 0, NULL }
2424 };
2425
2426 static const ber_choice_t InvokeId_choice[] = {
2427   {   0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_present1 },
2428   {   1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_absent },
2429   { 0, 0, 0, 0, NULL }
2430 };
2431
2432 static int
2433 dissect_cmip_InvokeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2434   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2435                                  InvokeId_choice, hf_index, ett_cmip_InvokeId,
2436                                  NULL);
2437
2438   return offset;
2439 }
2440 static int dissect_invokeId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2441   return dissect_cmip_InvokeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_invokeId);
2442 }
2443
2444
2445
2446 int
2447 dissect_cmip_InvokeIDType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2448   offset = dissect_cmip_InvokeId(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2449
2450   return offset;
2451 }
2452
2453
2454 static const ber_sequence_t Invoke_sequence[] = {
2455   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
2456   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_linkedId_impl },
2457   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_opcode },
2458   { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_argument },
2459   { 0, 0, 0, NULL }
2460 };
2461
2462 static int
2463 dissect_cmip_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2464   opcode_type=OPCODE_INVOKE;
2465   if(check_col(pinfo->cinfo, COL_INFO)){
2466     col_prepend_fstr(pinfo->cinfo, COL_INFO, "Invoke ");
2467   }
2468   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2469                                    Invoke_sequence, hf_index, ett_cmip_Invoke);
2470
2471   return offset;
2472 }
2473 static int dissect_invoke_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2474   return dissect_cmip_Invoke(TRUE, tvb, offset, pinfo, tree, hf_cmip_invoke);
2475 }
2476
2477
2478 static const ber_sequence_t ReturnResult_sequence[] = {
2479   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
2480   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_rRBody },
2481   { 0, 0, 0, NULL }
2482 };
2483
2484 static int
2485 dissect_cmip_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2486   opcode_type=OPCODE_RETURN_RESULT;
2487   if(check_col(pinfo->cinfo, COL_INFO)){
2488     col_prepend_fstr(pinfo->cinfo, COL_INFO, "ReturnResult ");
2489   }
2490   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2491                                    ReturnResult_sequence, hf_index, ett_cmip_ReturnResult);
2492
2493   return offset;
2494 }
2495 static int dissect_returnResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2496   return dissect_cmip_ReturnResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_returnResult);
2497 }
2498
2499
2500 static const ber_sequence_t ReturnError_sequence[] = {
2501   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
2502   { 0, 0, 0, NULL }
2503 };
2504
2505 static int
2506 dissect_cmip_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2507   opcode_type=OPCODE_RETURN_ERROR;
2508   if(check_col(pinfo->cinfo, COL_INFO)){
2509     col_prepend_fstr(pinfo->cinfo, COL_INFO, "ReturnError ");
2510   }
2511   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2512                                    ReturnError_sequence, hf_index, ett_cmip_ReturnError);
2513
2514   return offset;
2515 }
2516 static int dissect_returnError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2517   return dissect_cmip_ReturnError(TRUE, tvb, offset, pinfo, tree, hf_cmip_returnError);
2518 }
2519
2520
2521 static const value_string cmip_GeneralProblem_vals[] = {
2522   {   0, "unrecognizedPDU" },
2523   {   1, "mistypedPDU" },
2524   {   2, "badlyStructuredPDU" },
2525   { 0, NULL }
2526 };
2527
2528
2529 static int
2530 dissect_cmip_GeneralProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2531   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2532                                   NULL);
2533
2534   return offset;
2535 }
2536 static int dissect_generalProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2537   return dissect_cmip_GeneralProblem(TRUE, tvb, offset, pinfo, tree, hf_cmip_generalProblem);
2538 }
2539
2540
2541 static const value_string cmip_InvokeProblem_vals[] = {
2542   {   0, "duplicateInvocation" },
2543   {   1, "unrecognizedOperation" },
2544   {   2, "mistypedArgument" },
2545   {   3, "resourceLimitation" },
2546   {   4, "releaseInProgress" },
2547   {   5, "unrecognizedLinkedId" },
2548   {   6, "linkedResponseUnexpected" },
2549   {   7, "unexpectedLinkedOperation" },
2550   { 0, NULL }
2551 };
2552
2553
2554 static int
2555 dissect_cmip_InvokeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2556   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2557                                   NULL);
2558
2559   return offset;
2560 }
2561 static int dissect_invokeProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2562   return dissect_cmip_InvokeProblem(TRUE, tvb, offset, pinfo, tree, hf_cmip_invokeProblem);
2563 }
2564
2565
2566 static const value_string cmip_ReturnResultProblem_vals[] = {
2567   {   0, "unrecognizedInvocation" },
2568   {   1, "resultResponseUnexpected" },
2569   {   2, "mistypedResult" },
2570   { 0, NULL }
2571 };
2572
2573
2574 static int
2575 dissect_cmip_ReturnResultProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2576   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2577                                   NULL);
2578
2579   return offset;
2580 }
2581 static int dissect_returnResultProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2582   return dissect_cmip_ReturnResultProblem(TRUE, tvb, offset, pinfo, tree, hf_cmip_returnResultProblem);
2583 }
2584
2585
2586 static const value_string cmip_ReturnErrorProblem_vals[] = {
2587   {   0, "unrecognizedInvocation" },
2588   {   1, "errorResponseUnexpected" },
2589   {   2, "unrecognizedError" },
2590   {   3, "unexpectedError" },
2591   {   4, "mistypedParameter" },
2592   { 0, NULL }
2593 };
2594
2595
2596 static int
2597 dissect_cmip_ReturnErrorProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2598   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2599                                   NULL);
2600
2601   return offset;
2602 }
2603 static int dissect_returnErrorProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2604   return dissect_cmip_ReturnErrorProblem(TRUE, tvb, offset, pinfo, tree, hf_cmip_returnErrorProblem);
2605 }
2606
2607
2608 static const value_string cmip_RejectProblem_vals[] = {
2609   {   0, "general-unrecognizedPDU" },
2610   {   1, "general-mistypedPDU" },
2611   {   2, "general-badlyStructuredPDU" },
2612   {  10, "invoke-duplicateInvocation" },
2613   {  11, "invoke-unrecognizedOperation" },
2614   {  12, "invoke-mistypedArgument" },
2615   {  13, "invoke-resourceLimitation" },
2616   {  14, "invoke-releaseInProgress" },
2617   {  15, "invoke-unrecognizedLinkedId" },
2618   {  16, "invoke-linkedResponseUnexpected" },
2619   {  17, "invoke-unexpectedLinkedOperation" },
2620   {  20, "returnResult-unrecognizedInvocation" },
2621   {  21, "returnResult-resultResponseUnexpected" },
2622   {  22, "returnResult-mistypedResult" },
2623   {  30, "returnError-unrecognizedInvocation" },
2624   {  31, "returnError-errorResponseUnexpected" },
2625   {  32, "returnError-unrecognizedError" },
2626   {  33, "returnError-unexpectedError" },
2627   {  34, "returnError-mistypedParameter" },
2628   { 0, NULL }
2629 };
2630
2631
2632 static int
2633 dissect_cmip_RejectProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2634   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2635                                   NULL);
2636
2637   return offset;
2638 }
2639
2640
2641 static const value_string cmip_RejectProb_vals[] = {
2642   {   0, "generalProblem" },
2643   {   1, "invokeProblem" },
2644   {   2, "returnResultProblem" },
2645   {   3, "returnErrorProblem" },
2646   { 0, NULL }
2647 };
2648
2649 static const ber_choice_t RejectProb_choice[] = {
2650   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_generalProblem_impl },
2651   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invokeProblem_impl },
2652   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResultProblem_impl },
2653   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnErrorProblem_impl },
2654   { 0, 0, 0, 0, NULL }
2655 };
2656
2657 static int
2658 dissect_cmip_RejectProb(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2659   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2660                                  RejectProb_choice, hf_index, ett_cmip_RejectProb,
2661                                  NULL);
2662
2663   return offset;
2664 }
2665 static int dissect_rejectProblem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2666   return dissect_cmip_RejectProb(FALSE, tvb, offset, pinfo, tree, hf_cmip_rejectProblem);
2667 }
2668
2669
2670 static const ber_sequence_t Reject_sequence[] = {
2671   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
2672   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_rejectProblem },
2673   { 0, 0, 0, NULL }
2674 };
2675
2676 static int
2677 dissect_cmip_Reject(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2678   opcode_type=OPCODE_REJECT;
2679   if(check_col(pinfo->cinfo, COL_INFO)){
2680     col_prepend_fstr(pinfo->cinfo, COL_INFO, "Reject ");
2681   }
2682   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2683                                    Reject_sequence, hf_index, ett_cmip_Reject);
2684
2685   return offset;
2686 }
2687 static int dissect_reject_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2688   return dissect_cmip_Reject(TRUE, tvb, offset, pinfo, tree, hf_cmip_reject);
2689 }
2690
2691
2692 const value_string cmip_ROS_vals[] = {
2693   {   1, "invoke" },
2694   {   2, "returnResult" },
2695   {   3, "returnError" },
2696   {   4, "reject" },
2697   { 0, NULL }
2698 };
2699
2700 static const ber_choice_t ROS_choice[] = {
2701   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invoke_impl },
2702   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResult_impl },
2703   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnError_impl },
2704   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_reject_impl },
2705   { 0, 0, 0, 0, NULL }
2706 };
2707
2708 int
2709 dissect_cmip_ROS(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2710   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2711                                  ROS_choice, hf_index, ett_cmip_ROS,
2712                                  NULL);
2713
2714   return offset;
2715 }
2716
2717
2718 static const value_string cmip_CMIPAbortSource_vals[] = {
2719   {   0, "cmiseServiceUser" },
2720   {   1, "cmiseServiceProvider" },
2721   { 0, NULL }
2722 };
2723
2724
2725 static int
2726 dissect_cmip_CMIPAbortSource(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2727   guint32 value;
2728
2729     offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2730                                   &value);
2731
2732   if(check_col(pinfo->cinfo, COL_INFO)){
2733     col_append_fstr(pinfo->cinfo, COL_INFO, " AbortSource:%s", val_to_str(value, cmip_CMIPAbortSource_vals, " Unknown AbortSource:%d"));
2734   }
2735
2736   return offset;
2737 }
2738 static int dissect_abortSource_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2739   return dissect_cmip_CMIPAbortSource(TRUE, tvb, offset, pinfo, tree, hf_cmip_abortSource);
2740 }
2741
2742
2743 static const ber_sequence_t CMIPAbortInfo_sequence[] = {
2744   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_abortSource_impl },
2745   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_userInfo },
2746   { 0, 0, 0, NULL }
2747 };
2748
2749 int
2750 dissect_cmip_CMIPAbortInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2751   if(check_col(pinfo->cinfo, COL_INFO)){
2752     col_append_fstr(pinfo->cinfo, COL_INFO, "CMIP-A-ABORT");
2753   }
2754   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2755                                    CMIPAbortInfo_sequence, hf_index, ett_cmip_CMIPAbortInfo);
2756
2757   return offset;
2758 }
2759
2760
2761 static const asn_namedbit FunctionalUnits_bits[] = {
2762   {  0, &hf_cmip_FunctionalUnits_multipleObjectSelection, -1, -1, "multipleObjectSelection", NULL },
2763   {  1, &hf_cmip_FunctionalUnits_filter, -1, -1, "filter", NULL },
2764   {  2, &hf_cmip_FunctionalUnits_multipleReply, -1, -1, "multipleReply", NULL },
2765   {  3, &hf_cmip_FunctionalUnits_extendedService, -1, -1, "extendedService", NULL },
2766   {  4, &hf_cmip_FunctionalUnits_cancelGet, -1, -1, "cancelGet", NULL },
2767   { 0, NULL, 0, 0, NULL, NULL }
2768 };
2769
2770 static int
2771 dissect_cmip_FunctionalUnits(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2772   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
2773                                     FunctionalUnits_bits, hf_index, ett_cmip_FunctionalUnits,
2774                                     NULL);
2775
2776   return offset;
2777 }
2778 static int dissect_functionalUnits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2779   return dissect_cmip_FunctionalUnits(TRUE, tvb, offset, pinfo, tree, hf_cmip_functionalUnits);
2780 }
2781
2782
2783 static const asn_namedbit ProtocolVersion_bits[] = {
2784   {  0, &hf_cmip_ProtocolVersion_version1, -1, -1, "version1", NULL },
2785   {  1, &hf_cmip_ProtocolVersion_version2, -1, -1, "version2", NULL },
2786   { 0, NULL, 0, 0, NULL, NULL }
2787 };
2788
2789 static int
2790 dissect_cmip_ProtocolVersion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2791   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
2792                                     ProtocolVersion_bits, hf_index, ett_cmip_ProtocolVersion,
2793                                     NULL);
2794
2795   return offset;
2796 }
2797 static int dissect_protocolVersion_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2798   return dissect_cmip_ProtocolVersion(TRUE, tvb, offset, pinfo, tree, hf_cmip_protocolVersion);
2799 }
2800
2801
2802 static const ber_sequence_t CMIPUserInfo_sequence[] = {
2803   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_protocolVersion_impl },
2804   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_functionalUnits_impl },
2805   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_accessControl1 },
2806   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_userInfo },
2807   { 0, 0, 0, NULL }
2808 };
2809
2810 int
2811 dissect_cmip_CMIPUserInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2812   if(check_col(pinfo->cinfo, COL_INFO)){
2813     col_append_fstr(pinfo->cinfo, COL_INFO, "CMIP-A-ASSOCIATE");
2814   }
2815   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2816                                    CMIPUserInfo_sequence, hf_index, ett_cmip_CMIPUserInfo);
2817
2818   return offset;
2819 }
2820
2821
2822 /*--- End of included file: packet-cmip-fn.c ---*/
2823
2824
2825
2826 static void
2827 dissect_cmip_attribute_35(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
2828 {
2829
2830         dissect_cmip_OperationalState(FALSE, tvb, 0, pinfo, parent_tree, hf_OperationalState);
2831
2832 }
2833
2834 static void
2835 dissect_cmip_attribute_55(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
2836 {
2837
2838         dissect_cmip_Destination(FALSE, tvb, 0, pinfo, parent_tree,hf_Destination);
2839
2840 }
2841
2842 static void
2843 dissect_cmip_attribute_56(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
2844 {
2845
2846         dissect_cmip_DiscriminatorConstruct(FALSE, tvb, 0, pinfo, parent_tree, hf_DiscriminatorConstruct);
2847
2848 }
2849
2850 static void
2851 dissect_cmip_attribute_63(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
2852 {
2853
2854         dissect_cmip_NameBinding(FALSE, tvb, 0, pinfo, parent_tree, hf_NameBinding);
2855
2856 }
2857
2858 static void
2859 dissect_cmip_attribute_65(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
2860 {
2861
2862         dissect_cmip_ObjectClass(FALSE, tvb, 0, pinfo, parent_tree, hf_ObjectClass);
2863
2864 }
2865
2866
2867 /* XXX this one should be broken out later and moved into the conformance file */
2868 static void
2869 dissect_cmip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
2870 {
2871         static struct SESSION_DATA_STRUCTURE* session = NULL;
2872         proto_item *item = NULL;
2873         proto_tree *tree = NULL;
2874
2875
2876         /* do we have spdu type from the session dissector?  */
2877         if( !pinfo->private_data ){
2878                 if(tree){
2879                         proto_tree_add_text(tree, tvb, 0, -1,
2880                                 "Internal error:can't get spdu type from session dissector.");
2881                         return;
2882                 }
2883         } else {
2884                 session  = ( (struct SESSION_DATA_STRUCTURE*)(pinfo->private_data) );
2885                 if(session->spdu_type == 0 ){
2886                         if(tree){
2887                                 proto_tree_add_text(tree, tvb, 0, -1,
2888                                         "Internal error:wrong spdu type %x from session dissector.",session->spdu_type);
2889                                 return;
2890                         }
2891                 }
2892         }
2893
2894         if(parent_tree){
2895                 item = proto_tree_add_item(parent_tree, proto_cmip, tvb, 0, -1, FALSE);
2896                 tree = proto_item_add_subtree(item, ett_cmip);
2897         }
2898
2899         if (check_col(pinfo->cinfo, COL_PROTOCOL))
2900                 col_set_str(pinfo->cinfo, COL_PROTOCOL, "CMIP");
2901         if (check_col(pinfo->cinfo, COL_INFO))
2902                 col_clear(pinfo->cinfo, COL_INFO);
2903         switch(session->spdu_type){
2904                 case SES_CONNECTION_REQUEST:
2905                 case SES_CONNECTION_ACCEPT:
2906                 case SES_DISCONNECT:
2907                 case SES_FINISH:
2908                 case SES_REFUSE:
2909                         dissect_cmip_CMIPUserInfo(FALSE,tvb,0,pinfo,tree,-1);
2910                         break;
2911                 case SES_ABORT:
2912                         dissect_cmip_CMIPAbortInfo(FALSE,tvb,0,pinfo,tree,-1);
2913                         break;
2914                 case SES_DATA_TRANSFER:
2915                         dissect_cmip_ROS(FALSE,tvb,0,pinfo,tree,-1);
2916                         break;
2917                 default:
2918                         ;
2919         }
2920 }
2921
2922 /*--- proto_register_cmip ----------------------------------------------*/
2923 void proto_register_cmip(void) {
2924
2925   /* List of fields */
2926   static hf_register_info hf[] = {
2927     { &hf_cmip_actionType_OID,
2928       { "actionType", "cmip.actionType_OID",
2929         FT_STRING, BASE_NONE, NULL, 0,
2930         "actionType", HFILL }},
2931     { &hf_cmip_eventType_OID,
2932       { "eventType", "cmip.eventType_OID",
2933         FT_STRING, BASE_NONE, NULL, 0,
2934         "eventType", HFILL }},
2935     { &hf_cmip_attributeId_OID,
2936       { "attributeId", "cmip.attributeId_OID",
2937         FT_STRING, BASE_NONE, NULL, 0,
2938         "attributeId", HFILL }},
2939     { &hf_cmip_errorId_OID,
2940       { "errorId", "cmip.errorId_OID",
2941         FT_STRING, BASE_NONE, NULL, 0,
2942         "errorId", HFILL }},
2943    { &hf_DiscriminatorConstruct,
2944       { "DiscriminatorConstruct", "cmip.DiscriminatorConstruct",
2945         FT_UINT32, BASE_DEC, NULL, 0,
2946         "", HFILL }},
2947     { &hf_Destination,
2948       { "Destination", "cmip.Destination",
2949         FT_UINT32, BASE_DEC, NULL, 0,
2950         "", HFILL }},
2951     { &hf_NameBinding,
2952       { "NameBinding", "cmip.NameBinding",
2953         FT_STRING, BASE_NONE, NULL, 0,
2954         "", HFILL }},
2955     { &hf_ObjectClass,
2956       { "ObjectClass", "cmip.ObjectClass",
2957         FT_UINT32, BASE_DEC, VALS(cmip_ObjectClass_vals), 0,
2958         "", HFILL }},
2959     { &hf_OperationalState,
2960       { "OperationalState", "cmip.OperationalState",
2961         FT_UINT32, BASE_DEC, VALS(cmip_OperationalState_vals), 0,
2962         "", HFILL }},
2963
2964
2965 /*--- Included file: packet-cmip-hfarr.c ---*/
2966
2967     { &hf_cmip_modifyOperator,
2968       { "modifyOperator", "cmip.modifyOperator",
2969         FT_INT32, BASE_DEC, VALS(cmip_ModifyOperator_vals), 0,
2970         "", HFILL }},
2971     { &hf_cmip_attributeId,
2972       { "attributeId", "cmip.attributeId",
2973         FT_STRING, BASE_NONE, NULL, 0,
2974         "ModificationItem/attributeId", HFILL }},
2975     { &hf_cmip_attributeValue,
2976       { "attributeValue", "cmip.attributeValue",
2977         FT_NONE, BASE_NONE, NULL, 0,
2978         "ModificationItem/attributeValue", HFILL }},
2979     { &hf_cmip_managedObjectClass,
2980       { "managedObjectClass", "cmip.managedObjectClass",
2981         FT_UINT32, BASE_DEC, VALS(cmip_ObjectClass_vals), 0,
2982         "", HFILL }},
2983     { &hf_cmip_managedObjectInstance,
2984       { "managedObjectInstance", "cmip.managedObjectInstance",
2985         FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
2986         "", HFILL }},
2987     { &hf_cmip_currentTime,
2988       { "currentTime", "cmip.currentTime",
2989         FT_STRING, BASE_NONE, NULL, 0,
2990         "", HFILL }},
2991     { &hf_cmip_getInfoList,
2992       { "getInfoList", "cmip.getInfoList",
2993         FT_UINT32, BASE_DEC, NULL, 0,
2994         "GetListError/getInfoList", HFILL }},
2995     { &hf_cmip_getInfoList_item,
2996       { "Item", "cmip.getInfoList_item",
2997         FT_UINT32, BASE_DEC, VALS(cmip_GetInfoStatus_vals), 0,
2998         "GetListError/getInfoList/_item", HFILL }},
2999     { &hf_cmip_attributeIdError,
3000       { "attributeIdError", "cmip.attributeIdError",
3001         FT_NONE, BASE_NONE, NULL, 0,
3002         "GetInfoStatus/attributeIdError", HFILL }},
3003     { &hf_cmip_attribute,
3004       { "attribute", "cmip.attribute",
3005         FT_NONE, BASE_NONE, NULL, 0,
3006         "", HFILL }},
3007     { &hf_cmip_errorStatus,
3008       { "errorStatus", "cmip.errorStatus",
3009         FT_UINT32, BASE_DEC, VALS(cmip_T_errorStatus_vals), 0,
3010         "AttributeIdError/errorStatus", HFILL }},
3011     { &hf_cmip_attributeId1,
3012       { "attributeId", "cmip.attributeId",
3013         FT_UINT32, BASE_DEC, VALS(cmip_AttributeId_vals), 0,
3014         "AttributeIdError/attributeId", HFILL }},
3015     { &hf_cmip_setInfoList,
3016       { "setInfoList", "cmip.setInfoList",
3017         FT_UINT32, BASE_DEC, NULL, 0,
3018         "SetListError/setInfoList", HFILL }},
3019     { &hf_cmip_setInfoList_item,
3020       { "Item", "cmip.setInfoList_item",
3021         FT_UINT32, BASE_DEC, VALS(cmip_SetInfoStatus_vals), 0,
3022         "SetListError/setInfoList/_item", HFILL }},
3023     { &hf_cmip_actionErrorInfo,
3024       { "actionErrorInfo", "cmip.actionErrorInfo",
3025         FT_NONE, BASE_NONE, NULL, 0,
3026         "ActionError/actionErrorInfo", HFILL }},
3027     { &hf_cmip_specificErrorInfo,
3028       { "specificErrorInfo", "cmip.specificErrorInfo",
3029         FT_NONE, BASE_NONE, NULL, 0,
3030         "ProcessingFailure/specificErrorInfo", HFILL }},
3031     { &hf_cmip_RDNSequence_item,
3032       { "Item", "cmip.RDNSequence_item",
3033         FT_UINT32, BASE_DEC, NULL, 0,
3034         "RDNSequence/_item", HFILL }},
3035     { &hf_cmip_RelativeDistinguishedName_item,
3036       { "Item", "cmip.RelativeDistinguishedName_item",
3037         FT_NONE, BASE_NONE, NULL, 0,
3038         "RelativeDistinguishedName/_item", HFILL }},
3039     { &hf_cmip_deleteErrorInfo,
3040       { "deleteErrorInfo", "cmip.deleteErrorInfo",
3041         FT_UINT32, BASE_DEC, VALS(cmip_T_deleteErrorInfo_vals), 0,
3042         "DeleteError/deleteErrorInfo", HFILL }},
3043     { &hf_cmip_attributeError,
3044       { "attributeError", "cmip.attributeError",
3045         FT_NONE, BASE_NONE, NULL, 0,
3046         "SetInfoStatus/attributeError", HFILL }},
3047     { &hf_cmip_errorId,
3048       { "errorId", "cmip.errorId",
3049         FT_STRING, BASE_NONE, NULL, 0,
3050         "SpecificErrorInfo/errorId", HFILL }},
3051     { &hf_cmip_errorInfo,
3052       { "errorInfo", "cmip.errorInfo",
3053         FT_NONE, BASE_NONE, NULL, 0,
3054         "SpecificErrorInfo/errorInfo", HFILL }},
3055     { &hf_cmip_actionType,
3056       { "actionType", "cmip.actionType",
3057         FT_STRING, BASE_NONE, NULL, 0,
3058         "NoSuchArgumentAction/actionType", HFILL }},
3059     { &hf_cmip_eventType,
3060       { "eventType", "cmip.eventType",
3061         FT_STRING, BASE_NONE, NULL, 0,
3062         "NoSuchArgumentEvent/eventType", HFILL }},
3063     { &hf_cmip_actionId,
3064       { "actionId", "cmip.actionId",
3065         FT_NONE, BASE_NONE, NULL, 0,
3066         "NoSuchArgument/actionId", HFILL }},
3067     { &hf_cmip_eventId,
3068       { "eventId", "cmip.eventId",
3069         FT_NONE, BASE_NONE, NULL, 0,
3070         "NoSuchArgument/eventId", HFILL }},
3071     { &hf_cmip_eventType1,
3072       { "eventType", "cmip.eventType",
3073         FT_STRING, BASE_NONE, NULL, 0,
3074         "InvalidArgumentValueEventValue/eventType", HFILL }},
3075     { &hf_cmip_eventInfo,
3076       { "eventInfo", "cmip.eventInfo",
3077         FT_NONE, BASE_NONE, NULL, 0,
3078         "InvalidArgumentValueEventValue/eventInfo", HFILL }},
3079     { &hf_cmip_actionValue,
3080       { "actionValue", "cmip.actionValue",
3081         FT_NONE, BASE_NONE, NULL, 0,
3082         "InvalidArgumentValue/actionValue", HFILL }},
3083     { &hf_cmip_eventValue,
3084       { "eventValue", "cmip.eventValue",
3085         FT_NONE, BASE_NONE, NULL, 0,
3086         "InvalidArgumentValue/eventValue", HFILL }},
3087     { &hf_cmip_actionType1,
3088       { "actionType", "cmip.actionType",
3089         FT_STRING, BASE_NONE, NULL, 0,
3090         "ErrorInfo/actionType", HFILL }},
3091     { &hf_cmip_actionArgument,
3092       { "actionArgument", "cmip.actionArgument",
3093         FT_UINT32, BASE_DEC, VALS(cmip_NoSuchArgument_vals), 0,
3094         "ErrorInfo/actionArgument", HFILL }},
3095     { &hf_cmip_argumentValue,
3096       { "argumentValue", "cmip.argumentValue",
3097         FT_UINT32, BASE_DEC, VALS(cmip_InvalidArgumentValue_vals), 0,
3098         "ErrorInfo/argumentValue", HFILL }},
3099     { &hf_cmip_errorStatus1,
3100       { "errorStatus", "cmip.errorStatus",
3101         FT_UINT32, BASE_DEC, VALS(cmip_T_errorStatus1_vals), 0,
3102         "ActionErrorInfo/errorStatus", HFILL }},
3103     { &hf_cmip_errorInfo1,
3104       { "errorInfo", "cmip.errorInfo",
3105         FT_UINT32, BASE_DEC, VALS(cmip_ErrorInfo_vals), 0,
3106         "ActionErrorInfo/errorInfo", HFILL }},
3107     { &hf_cmip_errorStatus2,
3108       { "errorStatus", "cmip.errorStatus",
3109         FT_UINT32, BASE_DEC, VALS(cmip_T_errorStatus2_vals), 0,
3110         "AttributeError/errorStatus", HFILL }},
3111     { &hf_cmip_attributeId2,
3112       { "attributeId", "cmip.attributeId",
3113         FT_STRING, BASE_NONE, NULL, 0,
3114         "AttributeError/attributeId", HFILL }},
3115     { &hf_cmip_attributeValue1,
3116       { "attributeValue", "cmip.attributeValue",
3117         FT_NONE, BASE_NONE, NULL, 0,
3118         "AttributeError/attributeValue", HFILL }},
3119     { &hf_cmip_attributeList,
3120       { "attributeList", "cmip.attributeList",
3121         FT_UINT32, BASE_DEC, NULL, 0,
3122         "", HFILL }},
3123     { &hf_cmip_attributeList_item,
3124       { "Item", "cmip.attributeList_item",
3125         FT_NONE, BASE_NONE, NULL, 0,
3126         "", HFILL }},
3127     { &hf_cmip_baseManagedObjectClass,
3128       { "baseManagedObjectClass", "cmip.baseManagedObjectClass",
3129         FT_UINT32, BASE_DEC, VALS(cmip_ObjectClass_vals), 0,
3130         "", HFILL }},
3131     { &hf_cmip_baseManagedObjectInstance,
3132       { "baseManagedObjectInstance", "cmip.baseManagedObjectInstance",
3133         FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
3134         "", HFILL }},
3135     { &hf_cmip_accessControl,
3136       { "accessControl", "cmip.accessControl",
3137         FT_NONE, BASE_NONE, NULL, 0,
3138         "", HFILL }},
3139     { &hf_cmip_synchronization,
3140       { "synchronization", "cmip.synchronization",
3141         FT_UINT32, BASE_DEC, VALS(cmip_CMISSync_vals), 0,
3142         "", HFILL }},
3143     { &hf_cmip_scope,
3144       { "scope", "cmip.scope",
3145         FT_UINT32, BASE_DEC, VALS(cmip_Scope_vals), 0,
3146         "", HFILL }},
3147     { &hf_cmip_filter,
3148       { "filter", "cmip.filter",
3149         FT_UINT32, BASE_DEC, VALS(cmip_CMISFilter_vals), 0,
3150         "", HFILL }},
3151     { &hf_cmip_modificationList,
3152       { "modificationList", "cmip.modificationList",
3153         FT_UINT32, BASE_DEC, NULL, 0,
3154         "SetArgument/modificationList", HFILL }},
3155     { &hf_cmip_modificationList_item,
3156       { "Item", "cmip.modificationList_item",
3157         FT_NONE, BASE_NONE, NULL, 0,
3158         "SetArgument/modificationList/_item", HFILL }},
3159     { &hf_cmip_getResult,
3160       { "getResult", "cmip.getResult",
3161         FT_NONE, BASE_NONE, NULL, 0,
3162         "LinkedReplyArgument/getResult", HFILL }},
3163     { &hf_cmip_getListError,
3164       { "getListError", "cmip.getListError",
3165         FT_NONE, BASE_NONE, NULL, 0,
3166         "LinkedReplyArgument/getListError", HFILL }},
3167     { &hf_cmip_setResult,
3168       { "setResult", "cmip.setResult",
3169         FT_NONE, BASE_NONE, NULL, 0,
3170         "LinkedReplyArgument/setResult", HFILL }},
3171     { &hf_cmip_setListError,
3172       { "setListError", "cmip.setListError",
3173         FT_NONE, BASE_NONE, NULL, 0,
3174         "LinkedReplyArgument/setListError", HFILL }},
3175     { &hf_cmip_actionResult,
3176       { "actionResult", "cmip.actionResult",
3177         FT_NONE, BASE_NONE, NULL, 0,
3178         "LinkedReplyArgument/actionResult", HFILL }},
3179     { &hf_cmip_processingFailure,
3180       { "processingFailure", "cmip.processingFailure",
3181         FT_NONE, BASE_NONE, NULL, 0,
3182         "LinkedReplyArgument/processingFailure", HFILL }},
3183     { &hf_cmip_deleteResult,
3184       { "deleteResult", "cmip.deleteResult",
3185         FT_NONE, BASE_NONE, NULL, 0,
3186         "LinkedReplyArgument/deleteResult", HFILL }},
3187     { &hf_cmip_actionError,
3188       { "actionError", "cmip.actionError",
3189         FT_NONE, BASE_NONE, NULL, 0,
3190         "LinkedReplyArgument/actionError", HFILL }},
3191     { &hf_cmip_deleteError,
3192       { "deleteError", "cmip.deleteError",
3193         FT_NONE, BASE_NONE, NULL, 0,
3194         "LinkedReplyArgument/deleteError", HFILL }},
3195     { &hf_cmip_eventType2,
3196       { "eventType", "cmip.eventType",
3197         FT_STRING, BASE_NONE, NULL, 0,
3198         "EventReply/eventType", HFILL }},
3199     { &hf_cmip_eventReplyInfo,
3200       { "eventReplyInfo", "cmip.eventReplyInfo",
3201         FT_NONE, BASE_NONE, NULL, 0,
3202         "EventReply/eventReplyInfo", HFILL }},
3203     { &hf_cmip_eventReply,
3204       { "eventReply", "cmip.eventReply",
3205         FT_NONE, BASE_NONE, NULL, 0,
3206         "EventReportResult/eventReply", HFILL }},
3207     { &hf_cmip_eventTime,
3208       { "eventTime", "cmip.eventTime",
3209         FT_STRING, BASE_NONE, NULL, 0,
3210         "EventReportArgument/eventTime", HFILL }},
3211     { &hf_cmip_eventType3,
3212       { "eventType", "cmip.eventType",
3213         FT_STRING, BASE_NONE, NULL, 0,
3214         "EventReportArgument/eventType", HFILL }},
3215     { &hf_cmip_eventInfo1,
3216       { "eventInfo", "cmip.eventInfo",
3217         FT_NONE, BASE_NONE, NULL, 0,
3218         "EventReportArgument/eventInfo", HFILL }},
3219     { &hf_cmip_managedOrSuperiorObjectInstance,
3220       { "managedOrSuperiorObjectInstance", "cmip.managedOrSuperiorObjectInstance",
3221         FT_UINT32, BASE_DEC, VALS(cmip_T_managedOrSuperiorObjectInstance_vals), 0,
3222         "CreateArgument/managedOrSuperiorObjectInstance", HFILL }},
3223     { &hf_cmip_superiorObjectInstance,
3224       { "superiorObjectInstance", "cmip.superiorObjectInstance",
3225         FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
3226         "CreateArgument/managedOrSuperiorObjectInstance/superiorObjectInstance", HFILL }},
3227     { &hf_cmip_referenceObjectInstance,
3228       { "referenceObjectInstance", "cmip.referenceObjectInstance",
3229         FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
3230         "CreateArgument/referenceObjectInstance", HFILL }},
3231     { &hf_cmip_actionType2,
3232       { "actionType", "cmip.actionType",
3233         FT_STRING, BASE_NONE, NULL, 0,
3234         "ActionReply/actionType", HFILL }},
3235     { &hf_cmip_actionReplyInfo,
3236       { "actionReplyInfo", "cmip.actionReplyInfo",
3237         FT_NONE, BASE_NONE, NULL, 0,
3238         "ActionReply/actionReplyInfo", HFILL }},
3239     { &hf_cmip_actionReply,
3240       { "actionReply", "cmip.actionReply",
3241         FT_NONE, BASE_NONE, NULL, 0,
3242         "ActionResult/actionReply", HFILL }},
3243     { &hf_cmip_actionInfo,
3244       { "actionInfo", "cmip.actionInfo",
3245         FT_NONE, BASE_NONE, NULL, 0,
3246         "ActionArgument/actionInfo", HFILL }},
3247     { &hf_cmip_actionType3,
3248       { "actionType", "cmip.actionType",
3249         FT_STRING, BASE_NONE, NULL, 0,
3250         "ActionInfo/actionType", HFILL }},
3251     { &hf_cmip_actionInfoArg,
3252       { "actionInfoArg", "cmip.actionInfoArg",
3253         FT_NONE, BASE_NONE, NULL, 0,
3254         "ActionInfo/actionInfoArg", HFILL }},
3255     { &hf_cmip_ocglobalForm,
3256       { "ocglobalForm", "cmip.ocglobalForm",
3257         FT_STRING, BASE_NONE, NULL, 0,
3258         "ObjectClass/ocglobalForm", HFILL }},
3259     { &hf_cmip_oclocalForm,
3260       { "oclocalForm", "cmip.oclocalForm",
3261         FT_INT32, BASE_DEC, NULL, 0,
3262         "ObjectClass/oclocalForm", HFILL }},
3263     { &hf_cmip_distinguishedName,
3264       { "distinguishedName", "cmip.distinguishedName",
3265         FT_UINT32, BASE_DEC, NULL, 0,
3266         "ObjectInstance/distinguishedName", HFILL }},
3267     { &hf_cmip_nonSpecificForm,
3268       { "nonSpecificForm", "cmip.nonSpecificForm",
3269         FT_BYTES, BASE_HEX, NULL, 0,
3270         "ObjectInstance/nonSpecificForm", HFILL }},
3271     { &hf_cmip_localDistinguishedName,
3272       { "localDistinguishedName", "cmip.localDistinguishedName",
3273         FT_UINT32, BASE_DEC, NULL, 0,
3274         "ObjectInstance/localDistinguishedName", HFILL }},
3275     { &hf_cmip_globalForm,
3276       { "globalForm", "cmip.globalForm",
3277         FT_STRING, BASE_NONE, NULL, 0,
3278         "AttributeId/globalForm", HFILL }},
3279     { &hf_cmip_localForm,
3280       { "localForm", "cmip.localForm",
3281         FT_INT32, BASE_DEC, NULL, 0,
3282         "AttributeId/localForm", HFILL }},
3283     { &hf_cmip_id,
3284       { "id", "cmip.id",
3285         FT_UINT32, BASE_DEC, VALS(cmip_AttributeId_vals), 0,
3286         "Attribute/id", HFILL }},
3287     { &hf_cmip_value,
3288       { "value", "cmip.value",
3289         FT_NONE, BASE_NONE, NULL, 0,
3290         "Attribute/value", HFILL }},
3291     { &hf_cmip_id1,
3292       { "id", "cmip.id",
3293         FT_STRING, BASE_NONE, NULL, 0,
3294         "AttributeValueAssertion/id", HFILL }},
3295     { &hf_cmip_value1,
3296       { "value", "cmip.value",
3297         FT_NONE, BASE_NONE, NULL, 0,
3298         "AttributeValueAssertion/value", HFILL }},
3299     { &hf_cmip_equality,
3300       { "equality", "cmip.equality",
3301         FT_NONE, BASE_NONE, NULL, 0,
3302         "FilterItem/equality", HFILL }},
3303     { &hf_cmip_substrings,
3304       { "substrings", "cmip.substrings",
3305         FT_UINT32, BASE_DEC, NULL, 0,
3306         "FilterItem/substrings", HFILL }},
3307     { &hf_cmip_substrings_item,
3308       { "Item", "cmip.substrings_item",
3309         FT_UINT32, BASE_DEC, VALS(cmip_T_substrings_item_vals), 0,
3310         "FilterItem/substrings/_item", HFILL }},
3311     { &hf_cmip_initialString,
3312       { "initialString", "cmip.initialString",
3313         FT_NONE, BASE_NONE, NULL, 0,
3314         "FilterItem/substrings/_item/initialString", HFILL }},
3315     { &hf_cmip_anyString,
3316       { "anyString", "cmip.anyString",
3317         FT_NONE, BASE_NONE, NULL, 0,
3318         "FilterItem/substrings/_item/anyString", HFILL }},
3319     { &hf_cmip_finalString,
3320       { "finalString", "cmip.finalString",
3321         FT_NONE, BASE_NONE, NULL, 0,
3322         "FilterItem/substrings/_item/finalString", HFILL }},
3323     { &hf_cmip_greaterOrEqual,
3324       { "greaterOrEqual", "cmip.greaterOrEqual",
3325         FT_NONE, BASE_NONE, NULL, 0,
3326         "FilterItem/greaterOrEqual", HFILL }},
3327     { &hf_cmip_lessOrEqual,
3328       { "lessOrEqual", "cmip.lessOrEqual",
3329         FT_NONE, BASE_NONE, NULL, 0,
3330         "FilterItem/lessOrEqual", HFILL }},
3331     { &hf_cmip_present,
3332       { "present", "cmip.present",
3333         FT_UINT32, BASE_DEC, VALS(cmip_AttributeId_vals), 0,
3334         "FilterItem/present", HFILL }},
3335     { &hf_cmip_subsetOf,
3336       { "subsetOf", "cmip.subsetOf",
3337         FT_NONE, BASE_NONE, NULL, 0,
3338         "FilterItem/subsetOf", HFILL }},
3339     { &hf_cmip_supersetOf,
3340       { "supersetOf", "cmip.supersetOf",
3341         FT_NONE, BASE_NONE, NULL, 0,
3342         "FilterItem/supersetOf", HFILL }},
3343     { &hf_cmip_nonNullSetIntersection,
3344       { "nonNullSetIntersection", "cmip.nonNullSetIntersection",
3345         FT_NONE, BASE_NONE, NULL, 0,
3346         "FilterItem/nonNullSetIntersection", HFILL }},
3347     { &hf_cmip_single,
3348       { "single", "cmip.single",
3349         FT_UINT32, BASE_DEC, VALS(cmip_AE_title_vals), 0,
3350         "Destination/single", HFILL }},
3351     { &hf_cmip_multiple,
3352       { "multiple", "cmip.multiple",
3353         FT_UINT32, BASE_DEC, NULL, 0,
3354         "Destination/multiple", HFILL }},
3355     { &hf_cmip_multiple_item,
3356       { "Item", "cmip.multiple_item",
3357         FT_UINT32, BASE_DEC, VALS(cmip_AE_title_vals), 0,
3358         "Destination/multiple/_item", HFILL }},
3359     { &hf_cmip_ae_title_form1,
3360       { "ae-title-form1", "cmip.ae_title_form1",
3361         FT_UINT32, BASE_DEC, VALS(cmip_Name_vals), 0,
3362         "AE-title/ae-title-form1", HFILL }},
3363     { &hf_cmip_ae_title_form2,
3364       { "ae-title-form2", "cmip.ae_title_form2",
3365         FT_STRING, BASE_NONE, NULL, 0,
3366         "AE-title/ae-title-form2", HFILL }},
3367     { &hf_cmip_rdnSequence,
3368       { "rdnSequence", "cmip.rdnSequence",
3369         FT_UINT32, BASE_DEC, NULL, 0,
3370         "Name/rdnSequence", HFILL }},
3371     { &hf_cmip_item,
3372       { "item", "cmip.item",
3373         FT_UINT32, BASE_DEC, VALS(cmip_FilterItem_vals), 0,
3374         "CMISFilter/item", HFILL }},
3375     { &hf_cmip_and,
3376       { "and", "cmip.and",
3377         FT_UINT32, BASE_DEC, NULL, 0,
3378         "CMISFilter/and", HFILL }},
3379     { &hf_cmip_and_item,
3380       { "Item", "cmip.and_item",
3381         FT_UINT32, BASE_DEC, VALS(cmip_CMISFilter_vals), 0,
3382         "CMISFilter/and/_item", HFILL }},
3383     { &hf_cmip_or,
3384       { "or", "cmip.or",
3385         FT_UINT32, BASE_DEC, NULL, 0,
3386         "CMISFilter/or", HFILL }},
3387     { &hf_cmip_or_item,
3388       { "Item", "cmip.or_item",
3389         FT_UINT32, BASE_DEC, VALS(cmip_CMISFilter_vals), 0,
3390         "CMISFilter/or/_item", HFILL }},
3391     { &hf_cmip_not,
3392       { "not", "cmip.not",
3393         FT_UINT32, BASE_DEC, VALS(cmip_CMISFilter_vals), 0,
3394         "CMISFilter/not", HFILL }},
3395     { &hf_cmip_namedNumbers,
3396       { "namedNumbers", "cmip.namedNumbers",
3397         FT_INT32, BASE_DEC, VALS(cmip_T_namedNumbers_vals), 0,
3398         "Scope/namedNumbers", HFILL }},
3399     { &hf_cmip_individualLevels,
3400       { "individualLevels", "cmip.individualLevels",
3401         FT_INT32, BASE_DEC, NULL, 0,
3402         "Scope/individualLevels", HFILL }},
3403     { &hf_cmip_baseToNthLevel,
3404       { "baseToNthLevel", "cmip.baseToNthLevel",
3405         FT_INT32, BASE_DEC, NULL, 0,
3406         "Scope/baseToNthLevel", HFILL }},
3407     { &hf_cmip_attributeIdList,
3408       { "attributeIdList", "cmip.attributeIdList",
3409         FT_UINT32, BASE_DEC, NULL, 0,
3410         "GetArgument/attributeIdList", HFILL }},
3411     { &hf_cmip_attributeIdList_item,
3412       { "Item", "cmip.attributeIdList_item",
3413         FT_UINT32, BASE_DEC, VALS(cmip_AttributeId_vals), 0,
3414         "GetArgument/attributeIdList/_item", HFILL }},
3415     { &hf_cmip_opcode,
3416       { "opcode", "cmip.opcode",
3417         FT_INT32, BASE_DEC, VALS(cmip_Opcode_vals), 0,
3418         "", HFILL }},
3419     { &hf_cmip_argument,
3420       { "argument", "cmip.argument",
3421         FT_NONE, BASE_NONE, NULL, 0,
3422         "", HFILL }},
3423     { &hf_cmip_present1,
3424       { "present", "cmip.present",
3425         FT_INT32, BASE_DEC, NULL, 0,
3426         "InvokeId/present", HFILL }},
3427     { &hf_cmip_absent,
3428       { "absent", "cmip.absent",
3429         FT_NONE, BASE_NONE, NULL, 0,
3430         "InvokeId/absent", HFILL }},
3431     { &hf_cmip_invokeId,
3432       { "invokeId", "cmip.invokeId",
3433         FT_UINT32, BASE_DEC, VALS(cmip_InvokeId_vals), 0,
3434         "", HFILL }},
3435     { &hf_cmip_linkedId,
3436       { "linkedId", "cmip.linkedId",
3437         FT_INT32, BASE_DEC, NULL, 0,
3438         "Invoke/linkedId", HFILL }},
3439     { &hf_cmip_rRBody,
3440       { "rRBody", "cmip.rRBody",
3441         FT_NONE, BASE_NONE, NULL, 0,
3442         "ReturnResult/rRBody", HFILL }},
3443     { &hf_cmip_generalProblem,
3444       { "generalProblem", "cmip.generalProblem",
3445         FT_INT32, BASE_DEC, VALS(cmip_GeneralProblem_vals), 0,
3446         "RejectProb/generalProblem", HFILL }},
3447     { &hf_cmip_invokeProblem,
3448       { "invokeProblem", "cmip.invokeProblem",
3449         FT_INT32, BASE_DEC, VALS(cmip_InvokeProblem_vals), 0,
3450         "RejectProb/invokeProblem", HFILL }},
3451     { &hf_cmip_returnResultProblem,
3452       { "returnResultProblem", "cmip.returnResultProblem",
3453         FT_INT32, BASE_DEC, VALS(cmip_ReturnResultProblem_vals), 0,
3454         "RejectProb/returnResultProblem", HFILL }},
3455     { &hf_cmip_returnErrorProblem,
3456       { "returnErrorProblem", "cmip.returnErrorProblem",
3457         FT_INT32, BASE_DEC, VALS(cmip_ReturnErrorProblem_vals), 0,
3458         "RejectProb/returnErrorProblem", HFILL }},
3459     { &hf_cmip_rejectProblem,
3460       { "rejectProblem", "cmip.rejectProblem",
3461         FT_UINT32, BASE_DEC, VALS(cmip_RejectProb_vals), 0,
3462         "Reject/rejectProblem", HFILL }},
3463     { &hf_cmip_invoke,
3464       { "invoke", "cmip.invoke",
3465         FT_NONE, BASE_NONE, NULL, 0,
3466         "ROS/invoke", HFILL }},
3467     { &hf_cmip_returnResult,
3468       { "returnResult", "cmip.returnResult",
3469         FT_NONE, BASE_NONE, NULL, 0,
3470         "ROS/returnResult", HFILL }},
3471     { &hf_cmip_returnError,
3472       { "returnError", "cmip.returnError",
3473         FT_NONE, BASE_NONE, NULL, 0,
3474         "ROS/returnError", HFILL }},
3475     { &hf_cmip_reject,
3476       { "reject", "cmip.reject",
3477         FT_NONE, BASE_NONE, NULL, 0,
3478         "ROS/reject", HFILL }},
3479     { &hf_cmip_abortSource,
3480       { "abortSource", "cmip.abortSource",
3481         FT_UINT32, BASE_DEC, VALS(cmip_CMIPAbortSource_vals), 0,
3482         "CMIPAbortInfo/abortSource", HFILL }},
3483     { &hf_cmip_userInfo,
3484       { "userInfo", "cmip.userInfo",
3485         FT_NONE, BASE_NONE, NULL, 0,
3486         "", HFILL }},
3487     { &hf_cmip_protocolVersion,
3488       { "protocolVersion", "cmip.protocolVersion",
3489         FT_BYTES, BASE_HEX, NULL, 0,
3490         "CMIPUserInfo/protocolVersion", HFILL }},
3491     { &hf_cmip_functionalUnits,
3492       { "functionalUnits", "cmip.functionalUnits",
3493         FT_BYTES, BASE_HEX, NULL, 0,
3494         "CMIPUserInfo/functionalUnits", HFILL }},
3495     { &hf_cmip_accessControl1,
3496       { "accessControl", "cmip.accessControl",
3497         FT_NONE, BASE_NONE, NULL, 0,
3498         "CMIPUserInfo/accessControl", HFILL }},
3499     { &hf_cmip_FunctionalUnits_multipleObjectSelection,
3500       { "multipleObjectSelection", "cmip.multipleObjectSelection",
3501         FT_BOOLEAN, 8, NULL, 0x80,
3502         "", HFILL }},
3503     { &hf_cmip_FunctionalUnits_filter,
3504       { "filter", "cmip.filter",
3505         FT_BOOLEAN, 8, NULL, 0x40,
3506         "", HFILL }},
3507     { &hf_cmip_FunctionalUnits_multipleReply,
3508       { "multipleReply", "cmip.multipleReply",
3509         FT_BOOLEAN, 8, NULL, 0x20,
3510         "", HFILL }},
3511     { &hf_cmip_FunctionalUnits_extendedService,
3512       { "extendedService", "cmip.extendedService",
3513         FT_BOOLEAN, 8, NULL, 0x10,
3514         "", HFILL }},
3515     { &hf_cmip_FunctionalUnits_cancelGet,
3516       { "cancelGet", "cmip.cancelGet",
3517         FT_BOOLEAN, 8, NULL, 0x08,
3518         "", HFILL }},
3519     { &hf_cmip_ProtocolVersion_version1,
3520       { "version1", "cmip.version1",
3521         FT_BOOLEAN, 8, NULL, 0x80,
3522         "", HFILL }},
3523     { &hf_cmip_ProtocolVersion_version2,
3524       { "version2", "cmip.version2",
3525         FT_BOOLEAN, 8, NULL, 0x40,
3526         "", HFILL }},
3527
3528 /*--- End of included file: packet-cmip-hfarr.c ---*/
3529
3530   };
3531
3532   /* List of subtrees */
3533   static gint *ett[] = {
3534     &ett_cmip,
3535
3536 /*--- Included file: packet-cmip-ettarr.c ---*/
3537
3538     &ett_cmip_ModificationItem,
3539     &ett_cmip_GetListError,
3540     &ett_cmip_SET_OF_GetInfoStatus,
3541     &ett_cmip_GetInfoStatus,
3542     &ett_cmip_AttributeIdError,
3543     &ett_cmip_SetListError,
3544     &ett_cmip_SET_OF_SetInfoStatus,
3545     &ett_cmip_ActionError,
3546     &ett_cmip_ProcessingFailure,
3547     &ett_cmip_RDNSequence,
3548     &ett_cmip_RelativeDistinguishedName,
3549     &ett_cmip_DeleteError,
3550     &ett_cmip_SetInfoStatus,
3551     &ett_cmip_SpecificErrorInfo,
3552     &ett_cmip_NoSuchArgumentAction,
3553     &ett_cmip_NoSuchArgumentEvent,
3554     &ett_cmip_NoSuchArgument,
3555     &ett_cmip_InvalidArgumentValueEventValue,
3556     &ett_cmip_InvalidArgumentValue,
3557     &ett_cmip_ErrorInfo,
3558     &ett_cmip_ActionErrorInfo,
3559     &ett_cmip_AttributeError,
3560     &ett_cmip_SetResult,
3561     &ett_cmip_SET_OF_Attribute,
3562     &ett_cmip_SetArgument,
3563     &ett_cmip_SET_OF_ModificationItem,
3564     &ett_cmip_LinkedReplyArgument,
3565     &ett_cmip_EventReply,
3566     &ett_cmip_EventReportResult,
3567     &ett_cmip_EventReportArgument,
3568     &ett_cmip_DeleteArgument,
3569     &ett_cmip_DeleteResult,
3570     &ett_cmip_CreateArgument,
3571     &ett_cmip_T_managedOrSuperiorObjectInstance,
3572     &ett_cmip_CreateResult,
3573     &ett_cmip_ActionReply,
3574     &ett_cmip_ActionResult,
3575     &ett_cmip_ActionArgument,
3576     &ett_cmip_ActionInfo,
3577     &ett_cmip_ObjectClass,
3578     &ett_cmip_ObjectInstance,
3579     &ett_cmip_BaseManagedObjectId,
3580     &ett_cmip_AttributeId,
3581     &ett_cmip_Attribute,
3582     &ett_cmip_AttributeValueAssertion,
3583     &ett_cmip_FilterItem,
3584     &ett_cmip_T_substrings,
3585     &ett_cmip_T_substrings_item,
3586     &ett_cmip_Destination,
3587     &ett_cmip_SET_OF_AE_title,
3588     &ett_cmip_AE_title,
3589     &ett_cmip_Name,
3590     &ett_cmip_CMISFilter,
3591     &ett_cmip_SET_OF_CMISFilter,
3592     &ett_cmip_Scope,
3593     &ett_cmip_GetArgument,
3594     &ett_cmip_SET_OF_AttributeId,
3595     &ett_cmip_GetResult,
3596     &ett_cmip_ReturnResultBody,
3597     &ett_cmip_InvokeId,
3598     &ett_cmip_Invoke,
3599     &ett_cmip_ReturnResult,
3600     &ett_cmip_ReturnError,
3601     &ett_cmip_RejectProb,
3602     &ett_cmip_Reject,
3603     &ett_cmip_ROS,
3604     &ett_cmip_CMIPAbortInfo,
3605     &ett_cmip_FunctionalUnits,
3606     &ett_cmip_CMIPUserInfo,
3607     &ett_cmip_ProtocolVersion,
3608
3609 /*--- End of included file: packet-cmip-ettarr.c ---*/
3610
3611   };
3612
3613   /* Register protocol */
3614   proto_cmip = proto_register_protocol(PNAME, PSNAME, PFNAME);
3615
3616   /* Register fields and subtrees */
3617   proto_register_field_array(proto_cmip, hf, array_length(hf));
3618   proto_register_subtree_array(ett, array_length(ett));
3619
3620 }
3621
3622
3623 /*--- proto_reg_handoff_cmip -------------------------------------------*/
3624 void proto_reg_handoff_cmip(void) {
3625         register_ber_oid_dissector("2.9.0.0.2", dissect_cmip, proto_cmip, "cmip");
3626         register_ber_oid_dissector("2.9.1.1.4", dissect_cmip, proto_cmip, "joint-iso-itu-t(2) ms(9) cmip(1) cmip-pci(1) abstractSyntax(4)");
3627         register_ber_oid_dissector("2.9.3.2.7.35", dissect_cmip_attribute_35, proto_cmip, "smi2AttributeID (7) operationalState(35)");
3628         register_ber_oid_dissector("2.9.3.2.7.55", dissect_cmip_attribute_55, proto_cmip, "smi2AttributeID (7) destination(55)");
3629         register_ber_oid_dissector("2.9.3.2.7.56", dissect_cmip_attribute_56, proto_cmip, "smi2AttributeID (7) discriminatorConstruct(56)");
3630         register_ber_oid_dissector("2.9.3.2.7.63", dissect_cmip_attribute_63, proto_cmip, "smi2AttributeID (7) nameBinding(63)");
3631         register_ber_oid_dissector("2.9.3.2.7.65", dissect_cmip_attribute_65, proto_cmip, "smi2AttributeID (7) objectClass(65)");
3632
3633         register_ber_oid_name("2.9.3.2.3.4","eventForwardingDiscriminator(4)");
3634         register_ber_oid_name("2.9.1.1.4","joint-iso-itu-t(2) ms(9) cmip(1) cmip-pci(1) abstractSyntax(4)");
3635
3636 }
3637