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