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