1 /* Do not modify this file. */
2 /* It is created automatically by the ASN.1 to Ethereal dissector compiler */
4 /* ../../tools/asn2eth.py -X -b -e -p cmip -c cmip.cnf -s packet-cmip-template CMIP.asn */
6 /* Input file: packet-cmip-template.c */
9 * Routines for X.711 CMIP packet dissection
10 * Ronnie Sahlberg 2004
12 * $Id: packet-cmip-template.c 12245 2004-10-08 20:28:04Z guy $
14 * Ethereal - Network traffic analyzer
15 * By Gerald Combs <gerald@ethereal.com>
16 * Copyright 1998 Gerald Combs
18 * This program is free software; you can redistribute it and/or
19 * modify it under the terms of the GNU General Public License
20 * as published by the Free Software Foundation; either version 2
21 * of the License, or (at your option) any later version.
23 * This program is distributed in the hope that it will be useful,
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 * GNU General Public License for more details.
28 * You should have received a copy of the GNU General Public License
29 * along with this program; if not, write to the Free Software
30 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
38 #include <epan/packet.h>
39 #include <epan/conversation.h>
44 #include "packet-ber.h"
45 #include "packet-x509if.h"
46 #include "packet-cmip.h"
48 #define PNAME "X711 CMIP"
52 /* XXX some stuff we need until we can get rid of it */
53 #include "packet-ses.h"
54 #include "packet-pres.h"
56 /* Initialize the protocol and registered fields */
58 static int hf_cmip_actionType_OID = -1;
59 static int hf_cmip_eventType_OID = -1;
60 static int hf_cmip_attributeId_OID = -1;
61 static int hf_cmip_errorId_OID = -1;
63 /*--- Included file: packet-cmip-hf.c ---*/
65 static int hf_cmip_modifyOperator = -1; /* ModifyOperator */
66 static int hf_cmip_attributeId = -1; /* T_attributeId */
67 static int hf_cmip_attributeValue = -1; /* T_attributeValue */
68 static int hf_cmip_managedObjectClass = -1; /* ObjectClass */
69 static int hf_cmip_managedObjectInstance = -1; /* ObjectInstance */
70 static int hf_cmip_currentTime = -1; /* GeneralizedTime */
71 static int hf_cmip_getInfoList = -1; /* SET_OF_GetInfoStatus */
72 static int hf_cmip_getInfoList_item = -1; /* GetInfoStatus */
73 static int hf_cmip_attributeIdError = -1; /* AttributeIdError */
74 static int hf_cmip_attribute = -1; /* Attribute */
75 static int hf_cmip_errorStatus = -1; /* T_errorStatus */
76 static int hf_cmip_attributeId1 = -1; /* AttributeId */
77 static int hf_cmip_setInfoList = -1; /* SET_OF_SetInfoStatus */
78 static int hf_cmip_setInfoList_item = -1; /* SetInfoStatus */
79 static int hf_cmip_actionErrorInfo = -1; /* ActionErrorInfo */
80 static int hf_cmip_specificErrorInfo = -1; /* SpecificErrorInfo */
81 static int hf_cmip_deleteErrorInfo = -1; /* T_deleteErrorInfo */
82 static int hf_cmip_attributeError = -1; /* AttributeError */
83 static int hf_cmip_errorId = -1; /* T_errorId */
84 static int hf_cmip_errorInfo = -1; /* T_errorInfo */
85 static int hf_cmip_actionType = -1; /* T_actionType */
86 static int hf_cmip_eventType = -1; /* T_eventType */
87 static int hf_cmip_actionId = -1; /* NoSuchArgumentAction */
88 static int hf_cmip_eventId = -1; /* NoSuchArgumentEvent */
89 static int hf_cmip_eventType1 = -1; /* T_eventType1 */
90 static int hf_cmip_eventInfo = -1; /* T_eventInfo */
91 static int hf_cmip_actionValue = -1; /* ActionInfo */
92 static int hf_cmip_eventValue = -1; /* InvalidArgumentValueEventValue */
93 static int hf_cmip_actionType1 = -1; /* T_actionType1 */
94 static int hf_cmip_actionArgument = -1; /* NoSuchArgument */
95 static int hf_cmip_argumentValue = -1; /* InvalidArgumentValue */
96 static int hf_cmip_errorStatus1 = -1; /* T_errorStatus1 */
97 static int hf_cmip_errorInfo1 = -1; /* ErrorInfo */
98 static int hf_cmip_errorStatus2 = -1; /* T_errorStatus2 */
99 static int hf_cmip_attributeId2 = -1; /* T_attributeId1 */
100 static int hf_cmip_attributeValue1 = -1; /* T_attributeValue1 */
101 static int hf_cmip_attributeList = -1; /* SET_OF_Attribute */
102 static int hf_cmip_attributeList_item = -1; /* Attribute */
103 static int hf_cmip_baseManagedObjectClass = -1; /* ObjectClass */
104 static int hf_cmip_baseManagedObjectInstance = -1; /* ObjectInstance */
105 static int hf_cmip_accessControl = -1; /* AccessControl */
106 static int hf_cmip_synchronization = -1; /* CMISSync */
107 static int hf_cmip_scope = -1; /* Scope */
108 static int hf_cmip_filter = -1; /* CMISFilter */
109 static int hf_cmip_modificationList = -1; /* SET_OF_ModificationItem */
110 static int hf_cmip_modificationList_item = -1; /* ModificationItem */
111 static int hf_cmip_getResult = -1; /* GetResult */
112 static int hf_cmip_getListError = -1; /* GetListError */
113 static int hf_cmip_setResult = -1; /* SetResult */
114 static int hf_cmip_setListError = -1; /* SetListError */
115 static int hf_cmip_actionResult = -1; /* ActionResult */
116 static int hf_cmip_processingFailure = -1; /* ProcessingFailure */
117 static int hf_cmip_deleteResult = -1; /* DeleteResult */
118 static int hf_cmip_actionError = -1; /* ActionError */
119 static int hf_cmip_deleteError = -1; /* DeleteError */
120 static int hf_cmip_eventType2 = -1; /* T_eventType2 */
121 static int hf_cmip_eventReplyInfo = -1; /* T_eventReplyInfo */
122 static int hf_cmip_eventReply = -1; /* EventReply */
123 static int hf_cmip_eventTime = -1; /* GeneralizedTime */
124 static int hf_cmip_eventType3 = -1; /* T_eventType3 */
125 static int hf_cmip_eventInfo1 = -1; /* T_eventInfo1 */
126 static int hf_cmip_managedOrSuperiorObjectInstance = -1; /* T_managedOrSuperiorObjectInstance */
127 static int hf_cmip_superiorObjectInstance = -1; /* ObjectInstance */
128 static int hf_cmip_referenceObjectInstance = -1; /* ObjectInstance */
129 static int hf_cmip_actionType2 = -1; /* T_actionType2 */
130 static int hf_cmip_actionReplyInfo = -1; /* T_actionReplyInfo */
131 static int hf_cmip_actionReply = -1; /* ActionReply */
132 static int hf_cmip_actionInfo = -1; /* ActionInfo */
133 static int hf_cmip_actionType3 = -1; /* T_actionType3 */
134 static int hf_cmip_actionInfoArg = -1; /* T_actionInfoArg */
135 static int hf_cmip_ocglobalForm = -1; /* T_ocglobalForm */
136 static int hf_cmip_oclocalForm = -1; /* T_oclocalForm */
137 static int hf_cmip_distinguishedName = -1; /* DistinguishedName */
138 static int hf_cmip_nonSpecificForm = -1; /* OCTET_STRING */
139 static int hf_cmip_localDistinguishedName = -1; /* RDNSequence */
140 static int hf_cmip_globalForm = -1; /* T_globalForm */
141 static int hf_cmip_localForm = -1; /* T_localForm */
142 static int hf_cmip_id = -1; /* AttributeId */
143 static int hf_cmip_value = -1; /* T_value */
144 static int hf_cmip_equality = -1; /* Attribute */
145 static int hf_cmip_substrings = -1; /* T_substrings */
146 static int hf_cmip_substrings_item = -1; /* T_substrings_item */
147 static int hf_cmip_initialString = -1; /* Attribute */
148 static int hf_cmip_anyString = -1; /* Attribute */
149 static int hf_cmip_finalString = -1; /* Attribute */
150 static int hf_cmip_greaterOrEqual = -1; /* Attribute */
151 static int hf_cmip_lessOrEqual = -1; /* Attribute */
152 static int hf_cmip_present = -1; /* AttributeId */
153 static int hf_cmip_subsetOf = -1; /* Attribute */
154 static int hf_cmip_supersetOf = -1; /* Attribute */
155 static int hf_cmip_nonNullSetIntersection = -1; /* Attribute */
156 static int hf_cmip_item = -1; /* FilterItem */
157 static int hf_cmip_and = -1; /* SET_OF_CMISFilter */
158 static int hf_cmip_and_item = -1; /* CMISFilter */
159 static int hf_cmip_or = -1; /* SET_OF_CMISFilter */
160 static int hf_cmip_or_item = -1; /* CMISFilter */
161 static int hf_cmip_not = -1; /* CMISFilter */
162 static int hf_cmip_namedNumbers = -1; /* T_namedNumbers */
163 static int hf_cmip_individualLevels = -1; /* INTEGER */
164 static int hf_cmip_baseToNthLevel = -1; /* INTEGER */
165 static int hf_cmip_attributeIdList = -1; /* SET_OF_AttributeId */
166 static int hf_cmip_attributeIdList_item = -1; /* AttributeId */
167 static int hf_cmip_opcode = -1; /* Opcode */
168 static int hf_cmip_argument = -1; /* Argument */
169 static int hf_cmip_present1 = -1; /* InvokeId */
170 static int hf_cmip_absent = -1; /* NULL */
171 static int hf_cmip_present2 = -1; /* InvokeID */
172 static int hf_cmip_invokeId = -1; /* InvokeId */
173 static int hf_cmip_linkedId = -1; /* InvokeLinkedId */
174 static int hf_cmip_rRBody = -1; /* ReturnResultBody */
175 static int hf_cmip_generalProblem = -1; /* GeneralProblem */
176 static int hf_cmip_invokeProblem = -1; /* InvokeProblem */
177 static int hf_cmip_returnResultProblem = -1; /* ReturnResultProblem */
178 static int hf_cmip_returnErrorProblem = -1; /* ReturnErrorProblem */
179 static int hf_cmip_rejectProblem = -1; /* RejectProb */
180 static int hf_cmip_invoke = -1; /* Invoke */
181 static int hf_cmip_returnResult = -1; /* ReturnResult */
182 static int hf_cmip_returnError = -1; /* ReturnError */
183 static int hf_cmip_reject = -1; /* Reject */
184 static int hf_cmip_abortSource = -1; /* CMIPAbortSource */
185 static int hf_cmip_protocolVersion = -1; /* ProtocolVersion */
186 static int hf_cmip_functionalUnits = -1; /* FunctionalUnits */
188 static int hf_cmip_FunctionalUnits_multipleObjectSelection = -1;
189 static int hf_cmip_FunctionalUnits_filter = -1;
190 static int hf_cmip_FunctionalUnits_multipleReply = -1;
191 static int hf_cmip_FunctionalUnits_extendedService = -1;
192 static int hf_cmip_FunctionalUnits_cancelGet = -1;
193 static int hf_cmip_ProtocolVersion_version1 = -1;
194 static int hf_cmip_ProtocolVersion_version2 = -1;
196 /*--- End of included file: packet-cmip-hf.c ---*/
199 /* Initialize the subtree pointers */
200 static gint ett_cmip = -1;
202 /*--- Included file: packet-cmip-ett.c ---*/
204 static gint ett_cmip_ModificationItem = -1;
205 static gint ett_cmip_GetListError = -1;
206 static gint ett_cmip_SET_OF_GetInfoStatus = -1;
207 static gint ett_cmip_GetInfoStatus = -1;
208 static gint ett_cmip_AttributeIdError = -1;
209 static gint ett_cmip_SetListError = -1;
210 static gint ett_cmip_SET_OF_SetInfoStatus = -1;
211 static gint ett_cmip_ActionError = -1;
212 static gint ett_cmip_ProcessingFailure = -1;
213 static gint ett_cmip_DeleteError = -1;
214 static gint ett_cmip_SetInfoStatus = -1;
215 static gint ett_cmip_SpecificErrorInfo = -1;
216 static gint ett_cmip_NoSuchArgumentAction = -1;
217 static gint ett_cmip_NoSuchArgumentEvent = -1;
218 static gint ett_cmip_NoSuchArgument = -1;
219 static gint ett_cmip_InvalidArgumentValueEventValue = -1;
220 static gint ett_cmip_InvalidArgumentValue = -1;
221 static gint ett_cmip_ErrorInfo = -1;
222 static gint ett_cmip_ActionErrorInfo = -1;
223 static gint ett_cmip_AttributeError = -1;
224 static gint ett_cmip_SetResult = -1;
225 static gint ett_cmip_SET_OF_Attribute = -1;
226 static gint ett_cmip_SetArgument = -1;
227 static gint ett_cmip_SET_OF_ModificationItem = -1;
228 static gint ett_cmip_LinkedReplyArgument = -1;
229 static gint ett_cmip_EventReply = -1;
230 static gint ett_cmip_EventReportResult = -1;
231 static gint ett_cmip_EventReportArgument = -1;
232 static gint ett_cmip_DeleteArgument = -1;
233 static gint ett_cmip_DeleteResult = -1;
234 static gint ett_cmip_CreateArgument = -1;
235 static gint ett_cmip_T_managedOrSuperiorObjectInstance = -1;
236 static gint ett_cmip_CreateResult = -1;
237 static gint ett_cmip_ActionReply = -1;
238 static gint ett_cmip_ActionResult = -1;
239 static gint ett_cmip_ActionArgument = -1;
240 static gint ett_cmip_ActionInfo = -1;
241 static gint ett_cmip_ObjectClass = -1;
242 static gint ett_cmip_ObjectInstance = -1;
243 static gint ett_cmip_BaseManagedObjectId = -1;
244 static gint ett_cmip_AttributeId = -1;
245 static gint ett_cmip_Attribute = -1;
246 static gint ett_cmip_FilterItem = -1;
247 static gint ett_cmip_T_substrings = -1;
248 static gint ett_cmip_T_substrings_item = -1;
249 static gint ett_cmip_CMISFilter = -1;
250 static gint ett_cmip_SET_OF_CMISFilter = -1;
251 static gint ett_cmip_Scope = -1;
252 static gint ett_cmip_GetArgument = -1;
253 static gint ett_cmip_SET_OF_AttributeId = -1;
254 static gint ett_cmip_GetResult = -1;
255 static gint ett_cmip_ReturnResultBody = -1;
256 static gint ett_cmip_InvokeLinkedId = -1;
257 static gint ett_cmip_InvokeId = -1;
258 static gint ett_cmip_Invoke = -1;
259 static gint ett_cmip_ReturnResult = -1;
260 static gint ett_cmip_ReturnError = -1;
261 static gint ett_cmip_RejectProb = -1;
262 static gint ett_cmip_Reject = -1;
263 static gint ett_cmip_ROS = -1;
264 static gint ett_cmip_CMIPAbortInfo = -1;
265 static gint ett_cmip_FunctionalUnits = -1;
266 static gint ett_cmip_CMIPUserInfo = -1;
267 static gint ett_cmip_ProtocolVersion = -1;
269 /*--- End of included file: packet-cmip-ett.c ---*/
272 static guint32 opcode;
274 static int opcode_type;
275 #define OPCODE_INVOKE 1
276 #define OPCODE_RETURN_RESULT 2
277 #define OPCODE_RETURN_ERROR 3
278 #define OPCODE_REJECT 4
280 static int attributeform;
281 #define ATTRIBUTE_LOCAL_FORM 0
282 #define ATTRIBUTE_GLOBAL_FORM 1
283 static char attribute_identifier_id[BER_MAX_OID_STR_LEN];
285 static char object_identifier_id[BER_MAX_OID_STR_LEN];
287 static int objectclassform;
288 #define OBJECTCLASS_LOCAL_FORM 0
289 #define OBJECTCLASS_GLOBAL_FORM 1
290 static char objectclass_identifier_id[BER_MAX_OID_STR_LEN];
293 /*--- Included file: packet-cmip-fn.c ---*/
295 /*--- Cyclic dependencies ---*/
297 /* CMISFilter -> CMISFilter/and -> CMISFilter */
298 /* CMISFilter -> CMISFilter */
299 static int dissect_cmip_CMISFilter(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
301 static int dissect_filter(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
302 return dissect_cmip_CMISFilter(FALSE, tvb, offset, pinfo, tree, hf_cmip_filter);
304 static int dissect_and_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
305 return dissect_cmip_CMISFilter(FALSE, tvb, offset, pinfo, tree, hf_cmip_and_item);
308 static int dissect_or_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
309 return dissect_cmip_CMISFilter(FALSE, tvb, offset, pinfo, tree, hf_cmip_or_item);
312 static int dissect_not(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
313 return dissect_cmip_CMISFilter(FALSE, tvb, offset, pinfo, tree, hf_cmip_not);
317 /*--- Fields for imported types ---*/
319 static int dissect_distinguishedName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
320 return dissect_x509if_DistinguishedName(TRUE, tvb, offset, pinfo, tree, hf_cmip_distinguishedName);
322 static int dissect_localDistinguishedName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
323 return dissect_x509if_RDNSequence(TRUE, tvb, offset, pinfo, tree, hf_cmip_localDistinguishedName);
327 static const value_string ModifyOperator_vals[] = {
330 { 2, "removeValues" },
331 { 3, "setToDefault" },
337 dissect_cmip_ModifyOperator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
338 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
342 static int dissect_modifyOperator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
343 return dissect_cmip_ModifyOperator(TRUE, tvb, offset, pinfo, tree, hf_cmip_modifyOperator);
348 dissect_cmip_T_attributeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
349 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
350 hf_cmip_attributeId_OID, object_identifier_id);
355 static int dissect_attributeId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
356 return dissect_cmip_T_attributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeId);
362 dissect_cmip_T_attributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
363 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
369 static int dissect_attributeValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
370 return dissect_cmip_T_attributeValue(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeValue);
373 static const ber_sequence_t ModificationItem_sequence[] = {
374 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyOperator_impl },
375 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeId },
376 { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_attributeValue },
381 dissect_cmip_ModificationItem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
382 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
383 ModificationItem_sequence, hf_index, ett_cmip_ModificationItem);
387 static int dissect_modificationList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
388 return dissect_cmip_ModificationItem(FALSE, tvb, offset, pinfo, tree, hf_cmip_modificationList_item);
393 dissect_cmip_T_ocglobalForm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
394 objectclassform = OBJECTCLASS_GLOBAL_FORM;
395 offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset,
396 hf_cmip_ocglobalForm, objectclass_identifier_id);
401 static int dissect_ocglobalForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
402 return dissect_cmip_T_ocglobalForm(TRUE, tvb, offset, pinfo, tree, hf_cmip_ocglobalForm);
408 dissect_cmip_T_oclocalForm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
409 objectclassform = OBJECTCLASS_LOCAL_FORM;
410 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_cmip_oclocalForm, NULL);
415 static int dissect_oclocalForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
416 return dissect_cmip_T_oclocalForm(TRUE, tvb, offset, pinfo, tree, hf_cmip_oclocalForm);
420 static const value_string ObjectClass_vals[] = {
421 { 0, "ocglobalForm" },
422 { 1, "oclocalForm" },
426 static const ber_choice_t ObjectClass_choice[] = {
427 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ocglobalForm_impl },
428 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_oclocalForm_impl },
433 dissect_cmip_ObjectClass(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
434 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
435 ObjectClass_choice, hf_index, ett_cmip_ObjectClass);
439 static int dissect_managedObjectClass(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
440 return dissect_cmip_ObjectClass(FALSE, tvb, offset, pinfo, tree, hf_cmip_managedObjectClass);
442 static int dissect_baseManagedObjectClass(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
443 return dissect_cmip_ObjectClass(FALSE, tvb, offset, pinfo, tree, hf_cmip_baseManagedObjectClass);
448 dissect_cmip_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
449 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
454 static int dissect_nonSpecificForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
455 return dissect_cmip_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_cmip_nonSpecificForm);
459 static const value_string ObjectInstance_vals[] = {
460 { 2, "distinguishedName" },
461 { 3, "nonSpecificForm" },
462 { 4, "localDistinguishedName" },
466 static const ber_choice_t ObjectInstance_choice[] = {
467 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_distinguishedName_impl },
468 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_nonSpecificForm_impl },
469 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_localDistinguishedName_impl },
474 dissect_cmip_ObjectInstance(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
475 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
476 ObjectInstance_choice, hf_index, ett_cmip_ObjectInstance);
480 static int dissect_managedObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
481 return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_managedObjectInstance);
483 static int dissect_baseManagedObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
484 return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_baseManagedObjectInstance);
486 static int dissect_superiorObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
487 return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_superiorObjectInstance);
489 static int dissect_referenceObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
490 return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_referenceObjectInstance);
495 dissect_cmip_GeneralizedTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
496 offset = dissect_ber_GeneralizedTime(implicit_tag, pinfo, tree, tvb, offset, hf_index);
500 static int dissect_currentTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
501 return dissect_cmip_GeneralizedTime(TRUE, tvb, offset, pinfo, tree, hf_cmip_currentTime);
503 static int dissect_eventTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
504 return dissect_cmip_GeneralizedTime(TRUE, tvb, offset, pinfo, tree, hf_cmip_eventTime);
508 static const value_string T_errorStatus_vals[] = {
509 { 2, "accessDenied" },
510 { 5, "noSuchAttribute" },
516 dissect_cmip_T_errorStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
517 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
521 static int dissect_errorStatus(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
522 return dissect_cmip_T_errorStatus(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorStatus);
527 dissect_cmip_T_globalForm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
528 attributeform = ATTRIBUTE_GLOBAL_FORM;
529 offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset,
530 hf_cmip_globalForm, attribute_identifier_id);
535 static int dissect_globalForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
536 return dissect_cmip_T_globalForm(TRUE, tvb, offset, pinfo, tree, hf_cmip_globalForm);
542 dissect_cmip_T_localForm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
543 attributeform = ATTRIBUTE_LOCAL_FORM;
544 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_cmip_localForm, NULL);
549 static int dissect_localForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
550 return dissect_cmip_T_localForm(TRUE, tvb, offset, pinfo, tree, hf_cmip_localForm);
554 static const value_string AttributeId_vals[] = {
560 static const ber_choice_t AttributeId_choice[] = {
561 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_globalForm_impl },
562 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_localForm_impl },
567 dissect_cmip_AttributeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
568 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
569 AttributeId_choice, hf_index, ett_cmip_AttributeId);
573 static int dissect_attributeId1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
574 return dissect_cmip_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeId1);
576 static int dissect_id(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
577 return dissect_cmip_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_id);
579 static int dissect_present(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
580 return dissect_cmip_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_present);
582 static int dissect_attributeIdList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
583 return dissect_cmip_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeIdList_item);
586 static const ber_sequence_t AttributeIdError_sequence[] = {
587 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_errorStatus },
588 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_attributeId1 },
593 dissect_cmip_AttributeIdError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
594 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
595 AttributeIdError_sequence, hf_index, ett_cmip_AttributeIdError);
599 static int dissect_attributeIdError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
600 return dissect_cmip_AttributeIdError(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeIdError);
606 dissect_cmip_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
607 /*XXX handle local form here */
608 if(attributeform==ATTRIBUTE_GLOBAL_FORM){
609 offset=call_ber_oid_callback(attribute_identifier_id, tvb, offset, pinfo, tree);
615 static int dissect_value(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
616 return dissect_cmip_T_value(FALSE, tvb, offset, pinfo, tree, hf_cmip_value);
619 static const ber_sequence_t Attribute_sequence[] = {
620 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_id },
621 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_value },
626 dissect_cmip_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
627 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
628 Attribute_sequence, hf_index, ett_cmip_Attribute);
632 static int dissect_attribute_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
633 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_attribute);
635 static int dissect_attributeList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
636 return dissect_cmip_Attribute(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeList_item);
638 static int dissect_equality_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
639 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_equality);
641 static int dissect_initialString_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
642 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_initialString);
644 static int dissect_anyString_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
645 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_anyString);
647 static int dissect_finalString_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
648 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_finalString);
650 static int dissect_greaterOrEqual_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
651 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_greaterOrEqual);
653 static int dissect_lessOrEqual_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
654 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_lessOrEqual);
656 static int dissect_subsetOf_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
657 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_subsetOf);
659 static int dissect_supersetOf_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
660 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_supersetOf);
662 static int dissect_nonNullSetIntersection_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
663 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_nonNullSetIntersection);
667 static const value_string GetInfoStatus_vals[] = {
668 { 0, "attributeIdError" },
673 static const ber_choice_t GetInfoStatus_choice[] = {
674 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_attributeIdError_impl },
675 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_attribute_impl },
680 dissect_cmip_GetInfoStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
681 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
682 GetInfoStatus_choice, hf_index, ett_cmip_GetInfoStatus);
686 static int dissect_getInfoList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
687 return dissect_cmip_GetInfoStatus(FALSE, tvb, offset, pinfo, tree, hf_cmip_getInfoList_item);
690 static const ber_sequence_t SET_OF_GetInfoStatus_set_of[1] = {
691 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_getInfoList_item },
695 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_) {
696 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
697 SET_OF_GetInfoStatus_set_of, hf_index, ett_cmip_SET_OF_GetInfoStatus);
701 static int dissect_getInfoList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
702 return dissect_cmip_SET_OF_GetInfoStatus(TRUE, tvb, offset, pinfo, tree, hf_cmip_getInfoList);
705 static const ber_sequence_t GetListError_sequence[] = {
706 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
707 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
708 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
709 { BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_getInfoList_impl },
714 dissect_cmip_GetListError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
715 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
716 GetListError_sequence, hf_index, ett_cmip_GetListError);
720 static int dissect_getListError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
721 return dissect_cmip_GetListError(TRUE, tvb, offset, pinfo, tree, hf_cmip_getListError);
725 static const value_string T_errorStatus2_vals[] = {
726 { 2, "accessDenied" },
727 { 5, "noSuchAttribute" },
728 { 6, "invalidAttributeValue" },
729 { 24, "invalidOperation" },
730 { 25, "invalidOperator" },
736 dissect_cmip_T_errorStatus2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
737 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
741 static int dissect_errorStatus2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
742 return dissect_cmip_T_errorStatus2(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorStatus2);
747 dissect_cmip_T_attributeId1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
748 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
749 hf_cmip_attributeId_OID, object_identifier_id);
754 static int dissect_attributeId2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
755 return dissect_cmip_T_attributeId1(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeId2);
761 dissect_cmip_T_attributeValue1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
762 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
768 static int dissect_attributeValue1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
769 return dissect_cmip_T_attributeValue1(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeValue1);
772 static const ber_sequence_t AttributeError_sequence[] = {
773 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_errorStatus2 },
774 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyOperator_impl },
775 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeId2 },
776 { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_attributeValue1 },
781 dissect_cmip_AttributeError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
782 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
783 AttributeError_sequence, hf_index, ett_cmip_AttributeError);
787 static int dissect_attributeError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
788 return dissect_cmip_AttributeError(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeError);
792 static const value_string SetInfoStatus_vals[] = {
793 { 0, "attributeError" },
798 static const ber_choice_t SetInfoStatus_choice[] = {
799 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_attributeError_impl },
800 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_attribute_impl },
805 dissect_cmip_SetInfoStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
806 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
807 SetInfoStatus_choice, hf_index, ett_cmip_SetInfoStatus);
811 static int dissect_setInfoList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
812 return dissect_cmip_SetInfoStatus(FALSE, tvb, offset, pinfo, tree, hf_cmip_setInfoList_item);
815 static const ber_sequence_t SET_OF_SetInfoStatus_set_of[1] = {
816 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_setInfoList_item },
820 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_) {
821 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
822 SET_OF_SetInfoStatus_set_of, hf_index, ett_cmip_SET_OF_SetInfoStatus);
826 static int dissect_setInfoList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
827 return dissect_cmip_SET_OF_SetInfoStatus(TRUE, tvb, offset, pinfo, tree, hf_cmip_setInfoList);
830 static const ber_sequence_t SetListError_sequence[] = {
831 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
832 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
833 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
834 { BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_setInfoList_impl },
839 dissect_cmip_SetListError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
840 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
841 SetListError_sequence, hf_index, ett_cmip_SetListError);
845 static int dissect_setListError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
846 return dissect_cmip_SetListError(TRUE, tvb, offset, pinfo, tree, hf_cmip_setListError);
850 static const value_string T_errorStatus1_vals[] = {
851 { 2, "accessDenied" },
852 { 9, "noSuchAction" },
853 { 14, "noSuchArgument" },
854 { 15, "invalidArgumentValue" },
860 dissect_cmip_T_errorStatus1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
861 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
865 static int dissect_errorStatus1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
866 return dissect_cmip_T_errorStatus1(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorStatus1);
871 dissect_cmip_T_actionType1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
872 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
873 hf_cmip_actionType_OID, object_identifier_id);
878 static int dissect_actionType1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
879 return dissect_cmip_T_actionType1(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType1);
884 dissect_cmip_T_actionType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
885 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
886 hf_cmip_actionType_OID, object_identifier_id);
891 static int dissect_actionType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
892 return dissect_cmip_T_actionType(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType);
895 static const ber_sequence_t NoSuchArgumentAction_sequence[] = {
896 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
897 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType },
902 dissect_cmip_NoSuchArgumentAction(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
903 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
904 NoSuchArgumentAction_sequence, hf_index, ett_cmip_NoSuchArgumentAction);
908 static int dissect_actionId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
909 return dissect_cmip_NoSuchArgumentAction(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionId);
914 dissect_cmip_T_eventType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
915 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
916 hf_cmip_eventType_OID, object_identifier_id);
921 static int dissect_eventType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
922 return dissect_cmip_T_eventType(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType);
925 static const ber_sequence_t NoSuchArgumentEvent_sequence[] = {
926 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
927 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType },
932 dissect_cmip_NoSuchArgumentEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
933 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
934 NoSuchArgumentEvent_sequence, hf_index, ett_cmip_NoSuchArgumentEvent);
938 static int dissect_eventId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
939 return dissect_cmip_NoSuchArgumentEvent(TRUE, tvb, offset, pinfo, tree, hf_cmip_eventId);
943 static const value_string NoSuchArgument_vals[] = {
949 static const ber_choice_t NoSuchArgument_choice[] = {
950 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_actionId_impl },
951 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_eventId_impl },
956 dissect_cmip_NoSuchArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
957 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
958 NoSuchArgument_choice, hf_index, ett_cmip_NoSuchArgument);
962 static int dissect_actionArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
963 return dissect_cmip_NoSuchArgument(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionArgument);
968 dissect_cmip_T_actionType3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
969 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
970 hf_cmip_actionType_OID, object_identifier_id);
975 static int dissect_actionType3(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
976 return dissect_cmip_T_actionType3(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType3);
982 dissect_cmip_T_actionInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
983 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
988 static int dissect_actionInfoArg(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
989 return dissect_cmip_T_actionInfoArg(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionInfoArg);
992 static const ber_sequence_t ActionInfo_sequence[] = {
993 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType3 },
994 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_actionInfoArg },
999 dissect_cmip_ActionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1000 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1001 ActionInfo_sequence, hf_index, ett_cmip_ActionInfo);
1005 static int dissect_actionValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1006 return dissect_cmip_ActionInfo(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionValue);
1008 static int dissect_actionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1009 return dissect_cmip_ActionInfo(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionInfo);
1014 dissect_cmip_T_eventType1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1015 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1016 hf_cmip_eventType_OID, object_identifier_id);
1021 static int dissect_eventType1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1022 return dissect_cmip_T_eventType1(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType1);
1028 dissect_cmip_T_eventInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1029 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1035 static int dissect_eventInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1036 return dissect_cmip_T_eventInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventInfo);
1039 static const ber_sequence_t InvalidArgumentValueEventValue_sequence[] = {
1040 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType1 },
1041 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_eventInfo },
1046 dissect_cmip_InvalidArgumentValueEventValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1047 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1048 InvalidArgumentValueEventValue_sequence, hf_index, ett_cmip_InvalidArgumentValueEventValue);
1052 static int dissect_eventValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1053 return dissect_cmip_InvalidArgumentValueEventValue(TRUE, tvb, offset, pinfo, tree, hf_cmip_eventValue);
1057 static const value_string InvalidArgumentValue_vals[] = {
1058 { 0, "actionValue" },
1059 { 1, "eventValue" },
1063 static const ber_choice_t InvalidArgumentValue_choice[] = {
1064 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_actionValue_impl },
1065 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_eventValue_impl },
1066 { 0, 0, 0, 0, NULL }
1070 dissect_cmip_InvalidArgumentValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1071 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1072 InvalidArgumentValue_choice, hf_index, ett_cmip_InvalidArgumentValue);
1076 static int dissect_argumentValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1077 return dissect_cmip_InvalidArgumentValue(FALSE, tvb, offset, pinfo, tree, hf_cmip_argumentValue);
1081 static const value_string ErrorInfo_vals[] = {
1082 { 0, "actionType" },
1083 { 1, "actionArgument" },
1084 { 2, "argumentValue" },
1088 static const ber_choice_t ErrorInfo_choice[] = {
1089 { 0, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType1 },
1090 { 1, BER_CLASS_CON, 0, 0, dissect_actionArgument },
1091 { 2, BER_CLASS_CON, 1, 0, dissect_argumentValue },
1092 { 0, 0, 0, 0, NULL }
1096 dissect_cmip_ErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1097 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1098 ErrorInfo_choice, hf_index, ett_cmip_ErrorInfo);
1102 static int dissect_errorInfo1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1103 return dissect_cmip_ErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorInfo1);
1106 static const ber_sequence_t ActionErrorInfo_sequence[] = {
1107 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_errorStatus1 },
1108 { -1/*choice*/ , -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_errorInfo1 },
1113 dissect_cmip_ActionErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1114 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1115 ActionErrorInfo_sequence, hf_index, ett_cmip_ActionErrorInfo);
1119 static int dissect_actionErrorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1120 return dissect_cmip_ActionErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionErrorInfo);
1123 static const ber_sequence_t ActionError_sequence[] = {
1124 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1125 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1126 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1127 { BER_CLASS_CON, 6, 0, dissect_actionErrorInfo },
1132 dissect_cmip_ActionError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1133 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1134 ActionError_sequence, hf_index, ett_cmip_ActionError);
1138 static int dissect_actionError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1139 return dissect_cmip_ActionError(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionError);
1144 dissect_cmip_T_errorId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1145 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1146 hf_cmip_errorId_OID, object_identifier_id);
1151 static int dissect_errorId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1152 return dissect_cmip_T_errorId(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorId);
1158 dissect_cmip_T_errorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1159 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1164 static int dissect_errorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1165 return dissect_cmip_T_errorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorInfo);
1168 static const ber_sequence_t SpecificErrorInfo_sequence[] = {
1169 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_errorId },
1170 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_errorInfo },
1175 dissect_cmip_SpecificErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1176 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1177 SpecificErrorInfo_sequence, hf_index, ett_cmip_SpecificErrorInfo);
1181 static int dissect_specificErrorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1182 return dissect_cmip_SpecificErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_specificErrorInfo);
1185 static const ber_sequence_t ProcessingFailure_sequence[] = {
1186 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1187 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1188 { BER_CLASS_CON, 5, 0, dissect_specificErrorInfo },
1193 dissect_cmip_ProcessingFailure(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1194 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1195 ProcessingFailure_sequence, hf_index, ett_cmip_ProcessingFailure);
1199 static int dissect_processingFailure_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1200 return dissect_cmip_ProcessingFailure(TRUE, tvb, offset, pinfo, tree, hf_cmip_processingFailure);
1204 static const value_string T_deleteErrorInfo_vals[] = {
1205 { 2, "accessDenied" },
1211 dissect_cmip_T_deleteErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1212 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1216 static int dissect_deleteErrorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1217 return dissect_cmip_T_deleteErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_deleteErrorInfo);
1220 static const ber_sequence_t DeleteError_sequence[] = {
1221 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1222 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1223 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1224 { BER_CLASS_CON, 6, 0, dissect_deleteErrorInfo },
1229 dissect_cmip_DeleteError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1230 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1231 DeleteError_sequence, hf_index, ett_cmip_DeleteError);
1235 static int dissect_deleteError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1236 return dissect_cmip_DeleteError(TRUE, tvb, offset, pinfo, tree, hf_cmip_deleteError);
1239 static const ber_sequence_t SET_OF_Attribute_set_of[1] = {
1240 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_attributeList_item },
1244 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_) {
1245 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1246 SET_OF_Attribute_set_of, hf_index, ett_cmip_SET_OF_Attribute);
1250 static int dissect_attributeList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1251 return dissect_cmip_SET_OF_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeList);
1254 static const ber_sequence_t SetResult_sequence[] = {
1255 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1256 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1257 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1258 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
1263 dissect_cmip_SetResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1264 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1265 SetResult_sequence, hf_index, ett_cmip_SetResult);
1269 static int dissect_setResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1270 return dissect_cmip_SetResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_setResult);
1275 dissect_cmip_AccessControl(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1276 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1281 static int dissect_accessControl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1282 return dissect_cmip_AccessControl(FALSE, tvb, offset, pinfo, tree, hf_cmip_accessControl);
1286 static const value_string CMISSync_vals[] = {
1287 { 0, "bestEffort" },
1294 dissect_cmip_CMISSync(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1295 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1299 static int dissect_synchronization_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1300 return dissect_cmip_CMISSync(TRUE, tvb, offset, pinfo, tree, hf_cmip_synchronization);
1304 static const value_string T_namedNumbers_vals[] = {
1305 { 0, "baseObject" },
1306 { 1, "firstLevelOnly" },
1307 { 2, "wholeSubtree" },
1313 dissect_cmip_T_namedNumbers(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1314 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1318 static int dissect_namedNumbers(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1319 return dissect_cmip_T_namedNumbers(FALSE, tvb, offset, pinfo, tree, hf_cmip_namedNumbers);
1325 dissect_cmip_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1326 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1330 static int dissect_individualLevels_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1331 return dissect_cmip_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_cmip_individualLevels);
1333 static int dissect_baseToNthLevel_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1334 return dissect_cmip_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_cmip_baseToNthLevel);
1338 static const value_string Scope_vals[] = {
1339 { 0, "namedNumbers" },
1340 { 1, "individualLevels" },
1341 { 2, "baseToNthLevel" },
1345 static const ber_choice_t Scope_choice[] = {
1346 { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_namedNumbers },
1347 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_individualLevels_impl },
1348 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_baseToNthLevel_impl },
1349 { 0, 0, 0, 0, NULL }
1353 dissect_cmip_Scope(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1354 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1355 Scope_choice, hf_index, ett_cmip_Scope);
1359 static int dissect_scope(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1360 return dissect_cmip_Scope(FALSE, tvb, offset, pinfo, tree, hf_cmip_scope);
1364 static const value_string T_substrings_item_vals[] = {
1365 { 0, "initialString" },
1367 { 2, "finalString" },
1371 static const ber_choice_t T_substrings_item_choice[] = {
1372 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_initialString_impl },
1373 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_anyString_impl },
1374 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_finalString_impl },
1375 { 0, 0, 0, 0, NULL }
1379 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_) {
1380 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1381 T_substrings_item_choice, hf_index, ett_cmip_T_substrings_item);
1385 static int dissect_substrings_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1386 return dissect_cmip_T_substrings_item(FALSE, tvb, offset, pinfo, tree, hf_cmip_substrings_item);
1389 static const ber_sequence_t T_substrings_sequence_of[1] = {
1390 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_substrings_item },
1394 dissect_cmip_T_substrings(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1395 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1396 T_substrings_sequence_of, hf_index, ett_cmip_T_substrings);
1400 static int dissect_substrings_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1401 return dissect_cmip_T_substrings(TRUE, tvb, offset, pinfo, tree, hf_cmip_substrings);
1405 static const value_string FilterItem_vals[] = {
1407 { 1, "substrings" },
1408 { 2, "greaterOrEqual" },
1409 { 3, "lessOrEqual" },
1412 { 6, "supersetOf" },
1413 { 7, "nonNullSetIntersection" },
1417 static const ber_choice_t FilterItem_choice[] = {
1418 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_equality_impl },
1419 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_substrings_impl },
1420 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_greaterOrEqual_impl },
1421 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_lessOrEqual_impl },
1422 { 4, BER_CLASS_CON, 4, 0, dissect_present },
1423 { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_subsetOf_impl },
1424 { 6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_supersetOf_impl },
1425 { 7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_nonNullSetIntersection_impl },
1426 { 0, 0, 0, 0, NULL }
1430 dissect_cmip_FilterItem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1431 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1432 FilterItem_choice, hf_index, ett_cmip_FilterItem);
1436 static int dissect_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1437 return dissect_cmip_FilterItem(FALSE, tvb, offset, pinfo, tree, hf_cmip_item);
1440 static const ber_sequence_t SET_OF_CMISFilter_set_of[1] = {
1441 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_and_item },
1445 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_) {
1446 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1447 SET_OF_CMISFilter_set_of, hf_index, ett_cmip_SET_OF_CMISFilter);
1451 static int dissect_and_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1452 return dissect_cmip_SET_OF_CMISFilter(TRUE, tvb, offset, pinfo, tree, hf_cmip_and);
1454 static int dissect_or_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1455 return dissect_cmip_SET_OF_CMISFilter(TRUE, tvb, offset, pinfo, tree, hf_cmip_or);
1459 static const value_string CMISFilter_vals[] = {
1467 static const ber_choice_t CMISFilter_choice[] = {
1468 { 8, BER_CLASS_CON, 8, 0, dissect_item },
1469 { 9, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_and_impl },
1470 { 10, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_or_impl },
1471 { 11, BER_CLASS_CON, 11, 0, dissect_not },
1472 { 0, 0, 0, 0, NULL }
1476 dissect_cmip_CMISFilter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1477 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1478 CMISFilter_choice, hf_index, ett_cmip_CMISFilter);
1483 static const ber_sequence_t SET_OF_ModificationItem_set_of[1] = {
1484 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_modificationList_item },
1488 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_) {
1489 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1490 SET_OF_ModificationItem_set_of, hf_index, ett_cmip_SET_OF_ModificationItem);
1494 static int dissect_modificationList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1495 return dissect_cmip_SET_OF_ModificationItem(TRUE, tvb, offset, pinfo, tree, hf_cmip_modificationList);
1498 static const ber_sequence_t SetArgument_sequence[] = {
1499 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
1500 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
1501 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
1502 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_synchronization_impl },
1503 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_scope },
1504 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_filter },
1505 { BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_modificationList_impl },
1510 dissect_cmip_SetArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1511 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1512 SetArgument_sequence, hf_index, ett_cmip_SetArgument);
1517 static const ber_sequence_t GetResult_sequence[] = {
1518 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1519 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1520 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1521 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
1526 dissect_cmip_GetResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1527 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1528 GetResult_sequence, hf_index, ett_cmip_GetResult);
1532 static int dissect_getResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1533 return dissect_cmip_GetResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_getResult);
1538 dissect_cmip_T_actionType2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1539 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1540 hf_cmip_actionType_OID, object_identifier_id);
1545 static int dissect_actionType2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1546 return dissect_cmip_T_actionType2(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType2);
1552 dissect_cmip_T_actionReplyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1553 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1558 static int dissect_actionReplyInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1559 return dissect_cmip_T_actionReplyInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionReplyInfo);
1562 static const ber_sequence_t ActionReply_sequence[] = {
1563 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType2 },
1564 { BER_CLASS_CON, 4, 0, dissect_actionReplyInfo },
1569 dissect_cmip_ActionReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1570 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1571 ActionReply_sequence, hf_index, ett_cmip_ActionReply);
1575 static int dissect_actionReply_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1576 return dissect_cmip_ActionReply(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionReply);
1579 static const ber_sequence_t ActionResult_sequence[] = {
1580 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1581 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1582 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1583 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_actionReply_impl },
1588 dissect_cmip_ActionResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1589 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1590 ActionResult_sequence, hf_index, ett_cmip_ActionResult);
1594 static int dissect_actionResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1595 return dissect_cmip_ActionResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionResult);
1598 static const ber_sequence_t DeleteResult_sequence[] = {
1599 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1600 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1601 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1606 dissect_cmip_DeleteResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1607 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1608 DeleteResult_sequence, hf_index, ett_cmip_DeleteResult);
1612 static int dissect_deleteResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1613 return dissect_cmip_DeleteResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_deleteResult);
1617 static const value_string LinkedReplyArgument_vals[] = {
1619 { 1, "getListError" },
1621 { 3, "setListError" },
1622 { 4, "actionResult" },
1623 { 5, "processingFailure" },
1624 { 6, "deleteResult" },
1625 { 7, "actionError" },
1626 { 8, "deleteError" },
1630 static const ber_choice_t LinkedReplyArgument_choice[] = {
1631 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_getResult_impl },
1632 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_getListError_impl },
1633 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_setResult_impl },
1634 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_setListError_impl },
1635 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_actionResult_impl },
1636 { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_processingFailure_impl },
1637 { 6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_deleteResult_impl },
1638 { 7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_actionError_impl },
1639 { 8, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_deleteError_impl },
1640 { 0, 0, 0, 0, NULL }
1644 dissect_cmip_LinkedReplyArgument(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 LinkedReplyArgument_choice, hf_index, ett_cmip_LinkedReplyArgument);
1653 dissect_cmip_T_eventType2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1654 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1655 hf_cmip_eventType_OID, object_identifier_id);
1660 static int dissect_eventType2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1661 return dissect_cmip_T_eventType2(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType2);
1667 dissect_cmip_T_eventReplyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1668 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1673 static int dissect_eventReplyInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1674 return dissect_cmip_T_eventReplyInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventReplyInfo);
1677 static const ber_sequence_t EventReply_sequence[] = {
1678 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType2 },
1679 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_eventReplyInfo },
1684 dissect_cmip_EventReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1685 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1686 EventReply_sequence, hf_index, ett_cmip_EventReply);
1690 static int dissect_eventReply(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1691 return dissect_cmip_EventReply(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventReply);
1694 static const ber_sequence_t EventReportResult_sequence[] = {
1695 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1696 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1697 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1698 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_eventReply },
1703 dissect_cmip_EventReportResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1704 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1705 EventReportResult_sequence, hf_index, ett_cmip_EventReportResult);
1712 dissect_cmip_T_eventType3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1713 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1714 hf_cmip_eventType_OID, object_identifier_id);
1719 static int dissect_eventType3(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1720 return dissect_cmip_T_eventType3(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType3);
1726 dissect_cmip_T_eventInfo1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1727 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1733 static int dissect_eventInfo1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1734 return dissect_cmip_T_eventInfo1(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventInfo1);
1737 static const ber_sequence_t EventReportArgument_sequence[] = {
1738 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1739 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1740 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventTime_impl },
1741 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType3 },
1742 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_eventInfo1 },
1747 dissect_cmip_EventReportArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1748 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1749 EventReportArgument_sequence, hf_index, ett_cmip_EventReportArgument);
1754 static const ber_sequence_t DeleteArgument_sequence[] = {
1755 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
1756 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
1757 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
1758 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_synchronization_impl },
1759 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_scope },
1760 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_filter },
1765 dissect_cmip_DeleteArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1766 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1767 DeleteArgument_sequence, hf_index, ett_cmip_DeleteArgument);
1773 static const value_string T_managedOrSuperiorObjectInstance_vals[] = {
1774 { -1/*choice*/, "managedObjectInstance" },
1775 { 8, "superiorObjectInstance" },
1779 static const ber_choice_t T_managedOrSuperiorObjectInstance_choice[] = {
1780 { -1/*choice*/, BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_managedObjectInstance },
1781 { 8, BER_CLASS_CON, 8, 0, dissect_superiorObjectInstance },
1782 { 0, 0, 0, 0, NULL }
1786 dissect_cmip_T_managedOrSuperiorObjectInstance(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1787 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1788 T_managedOrSuperiorObjectInstance_choice, hf_index, ett_cmip_T_managedOrSuperiorObjectInstance);
1792 static int dissect_managedOrSuperiorObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1793 return dissect_cmip_T_managedOrSuperiorObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_managedOrSuperiorObjectInstance);
1796 static const ber_sequence_t CreateArgument_sequence[] = {
1797 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1798 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedOrSuperiorObjectInstance },
1799 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
1800 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_referenceObjectInstance },
1801 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
1806 dissect_cmip_CreateArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1807 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1808 CreateArgument_sequence, hf_index, ett_cmip_CreateArgument);
1813 static const ber_sequence_t CreateResult_sequence[] = {
1814 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1815 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1816 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1817 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
1822 dissect_cmip_CreateResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1823 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1824 CreateResult_sequence, hf_index, ett_cmip_CreateResult);
1829 static const ber_sequence_t ActionArgument_sequence[] = {
1830 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
1831 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
1832 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
1833 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_synchronization_impl },
1834 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_scope },
1835 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_filter },
1836 { BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_actionInfo_impl },
1841 dissect_cmip_ActionArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1842 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1843 ActionArgument_sequence, hf_index, ett_cmip_ActionArgument);
1848 static const ber_sequence_t BaseManagedObjectId_sequence[] = {
1849 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
1850 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
1856 dissect_cmip_BaseManagedObjectId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1857 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1858 BaseManagedObjectId_sequence, hf_index, ett_cmip_BaseManagedObjectId);
1864 static const ber_sequence_t SET_OF_AttributeId_set_of[1] = {
1865 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_attributeIdList_item },
1869 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_) {
1870 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1871 SET_OF_AttributeId_set_of, hf_index, ett_cmip_SET_OF_AttributeId);
1875 static int dissect_attributeIdList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1876 return dissect_cmip_SET_OF_AttributeId(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeIdList);
1879 static const ber_sequence_t GetArgument_sequence[] = {
1880 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
1881 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
1882 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
1883 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_synchronization_impl },
1884 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_scope },
1885 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_filter },
1886 { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeIdList_impl },
1891 dissect_cmip_GetArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1892 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1893 GetArgument_sequence, hf_index, ett_cmip_GetArgument);
1901 dissect_cmip_Argument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1902 switch(opcode_type){
1905 case 0: /* M-eventreport */
1906 offset = dissect_cmip_EventReportArgument(FALSE, tvb, offset, pinfo, tree, -1);
1908 case 1: /* M-eventreport-confirmed */
1909 offset = dissect_cmip_EventReportArgument(FALSE, tvb, offset, pinfo, tree, -1);
1911 case 2: /* M-linkedreply */
1912 offset = dissect_cmip_LinkedReplyArgument(FALSE, tvb, offset, pinfo, tree, -1);
1915 offset = dissect_cmip_GetArgument(FALSE, tvb, offset, pinfo, tree, -1);
1918 offset = dissect_cmip_SetArgument(FALSE, tvb, offset, pinfo, tree, -1);
1920 case 5: /* M-set-confirmed */
1921 offset = dissect_cmip_SetArgument(FALSE, tvb, offset, pinfo, tree, -1);
1923 case 6: /* M-action*/
1924 offset = dissect_cmip_ActionArgument(FALSE, tvb, offset, pinfo, tree, -1);
1926 case 7: /* M-action-confirmed*/
1927 offset = dissect_cmip_ActionArgument(FALSE, tvb, offset, pinfo, tree, -1);
1929 case 8: /* M-create*/
1930 offset = dissect_cmip_CreateArgument(FALSE, tvb, offset, pinfo, tree, -1);
1932 case 9: /* M-delete*/
1933 offset = dissect_cmip_DeleteArgument(FALSE, tvb, offset, pinfo, tree, -1);
1935 case 10: /* M-cancelget */
1936 offset = dissect_cmip_InvokeIDType(FALSE, tvb, offset, pinfo, tree, -1);
1940 case OPCODE_RETURN_RESULT:
1942 case 0: /* M-eventreport*/
1943 break; /* No return data */
1944 case 1: /* M-eventreport-confirmed */
1945 offset = dissect_cmip_EventReportResult(FALSE, tvb, offset, pinfo, tree, -1);
1947 case 2: /* M-linkedreply*/
1948 break; /* No return data */
1950 offset = dissect_cmip_GetResult(FALSE, tvb, offset, pinfo, tree, -1);
1953 break; /* No return data */
1954 case 5: /* M-set-confirmed*/
1955 offset = dissect_cmip_SetResult(FALSE, tvb, offset, pinfo, tree, -1);
1957 case 6: /* M-action*/
1958 break; /* No return data */
1959 case 7: /* M-action-confirmed*/
1960 offset = dissect_cmip_ActionResult(FALSE, tvb, offset, pinfo, tree, -1);
1962 case 8: /* M-create*/
1963 offset = dissect_cmip_CreateResult(FALSE, tvb, offset, pinfo, tree, -1);
1965 case 9: /* M-delete*/
1966 offset = dissect_cmip_DeleteResult(FALSE, tvb, offset, pinfo, tree, -1);
1968 case 10: /* M-cancelget */
1969 break; /* doe this one return any data? */
1972 /*XXX add more types here */
1978 static int dissect_argument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1979 return dissect_cmip_Argument(FALSE, tvb, offset, pinfo, tree, hf_cmip_argument);
1983 static const value_string Opcode_vals[] = {
1984 { 0, "m-EventReport" },
1985 { 1, "m-EventReport-Confirmed" },
1986 { 2, "m-Linked-Reply" },
1989 { 5, "m-Set-Confirmed" },
1991 { 7, "m-Action-Confirmed" },
1994 { 10, "m-CancelGet" },
2000 dissect_cmip_Opcode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2001 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, &opcode);
2002 if(check_col(pinfo->cinfo, COL_INFO)){
2003 col_prepend_fstr(pinfo->cinfo, COL_INFO, "%s", val_to_str(opcode, Opcode_vals, " Unknown Opcode:%d"));
2008 static int dissect_opcode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2009 return dissect_cmip_Opcode(FALSE, tvb, offset, pinfo, tree, hf_cmip_opcode);
2012 static const ber_sequence_t ReturnResultBody_sequence[] = {
2013 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_opcode },
2014 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_argument },
2019 dissect_cmip_ReturnResultBody(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2020 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2021 ReturnResultBody_sequence, hf_index, ett_cmip_ReturnResultBody);
2025 static int dissect_rRBody(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2026 return dissect_cmip_ReturnResultBody(FALSE, tvb, offset, pinfo, tree, hf_cmip_rRBody);
2032 dissect_cmip_InvokeID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2033 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2037 static int dissect_present2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2038 return dissect_cmip_InvokeID(FALSE, tvb, offset, pinfo, tree, hf_cmip_present2);
2043 dissect_cmip_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2044 { proto_item *ti_tmp;
2045 ti_tmp = proto_tree_add_item(tree, hf_index, tvb, offset>>8, 0, FALSE);
2046 proto_item_append_text(ti_tmp, ": NULL");
2051 static int dissect_absent(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2052 return dissect_cmip_NULL(FALSE, tvb, offset, pinfo, tree, hf_cmip_absent);
2054 static int dissect_absent_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2055 return dissect_cmip_NULL(TRUE, tvb, offset, pinfo, tree, hf_cmip_absent);
2059 static const value_string InvokeId_vals[] = {
2065 static const ber_choice_t InvokeId_choice[] = {
2066 { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_present2 },
2067 { 1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_absent },
2068 { 0, 0, 0, 0, NULL }
2072 dissect_cmip_InvokeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2073 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2074 InvokeId_choice, hf_index, ett_cmip_InvokeId);
2078 static int dissect_present1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2079 return dissect_cmip_InvokeId(TRUE, tvb, offset, pinfo, tree, hf_cmip_present1);
2081 static int dissect_invokeId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2082 return dissect_cmip_InvokeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_invokeId);
2086 static const value_string InvokeLinkedId_vals[] = {
2092 static const ber_choice_t InvokeLinkedId_choice[] = {
2093 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_present1_impl },
2094 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_absent_impl },
2095 { 0, 0, 0, 0, NULL }
2099 dissect_cmip_InvokeLinkedId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2100 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2101 InvokeLinkedId_choice, hf_index, ett_cmip_InvokeLinkedId);
2105 static int dissect_linkedId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2106 return dissect_cmip_InvokeLinkedId(FALSE, tvb, offset, pinfo, tree, hf_cmip_linkedId);
2111 dissect_cmip_InvokeIDType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2112 offset = dissect_cmip_InvokeId(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2117 static const ber_sequence_t Invoke_sequence[] = {
2118 { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
2119 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_linkedId },
2120 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_opcode },
2121 { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_argument },
2126 dissect_cmip_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2127 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2128 Invoke_sequence, hf_index, ett_cmip_Invoke);
2130 opcode_type=OPCODE_INVOKE;
2131 if(check_col(pinfo->cinfo, COL_INFO)){
2132 col_prepend_fstr(pinfo->cinfo, COL_INFO, "Invoke ");
2136 static int dissect_invoke_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2137 return dissect_cmip_Invoke(TRUE, tvb, offset, pinfo, tree, hf_cmip_invoke);
2140 static const ber_sequence_t ReturnResult_sequence[] = {
2141 { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
2142 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_rRBody },
2147 dissect_cmip_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2148 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2149 ReturnResult_sequence, hf_index, ett_cmip_ReturnResult);
2151 opcode_type=OPCODE_RETURN_RESULT;
2152 if(check_col(pinfo->cinfo, COL_INFO)){
2153 col_prepend_fstr(pinfo->cinfo, COL_INFO, "ReturnResult ");
2157 static int dissect_returnResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2158 return dissect_cmip_ReturnResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_returnResult);
2161 static const ber_sequence_t ReturnError_sequence[] = {
2162 { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
2167 dissect_cmip_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2168 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2169 ReturnError_sequence, hf_index, ett_cmip_ReturnError);
2171 opcode_type=OPCODE_RETURN_ERROR;
2172 if(check_col(pinfo->cinfo, COL_INFO)){
2173 col_prepend_fstr(pinfo->cinfo, COL_INFO, "ReturnError ");
2177 static int dissect_returnError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2178 return dissect_cmip_ReturnError(TRUE, tvb, offset, pinfo, tree, hf_cmip_returnError);
2182 static const value_string GeneralProblem_vals[] = {
2183 { 0, "unrecognizedPDU" },
2184 { 1, "mistypedPDU" },
2185 { 2, "badlyStructuredPDU" },
2191 dissect_cmip_GeneralProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2192 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2196 static int dissect_generalProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2197 return dissect_cmip_GeneralProblem(TRUE, tvb, offset, pinfo, tree, hf_cmip_generalProblem);
2201 static const value_string InvokeProblem_vals[] = {
2202 { 0, "duplicateInvocation" },
2203 { 1, "unrecognizedOperation" },
2204 { 2, "mistypedArgument" },
2205 { 3, "resourceLimitation" },
2206 { 4, "releaseInProgress" },
2207 { 5, "unrecognizedLinkedId" },
2208 { 6, "linkedResponseUnexpected" },
2209 { 7, "unexpectedLinkedOperation" },
2215 dissect_cmip_InvokeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2216 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2220 static int dissect_invokeProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2221 return dissect_cmip_InvokeProblem(TRUE, tvb, offset, pinfo, tree, hf_cmip_invokeProblem);
2225 static const value_string ReturnResultProblem_vals[] = {
2226 { 0, "unrecognizedInvocation" },
2227 { 1, "resultResponseUnexpected" },
2228 { 2, "mistypedResult" },
2234 dissect_cmip_ReturnResultProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2235 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2239 static int dissect_returnResultProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2240 return dissect_cmip_ReturnResultProblem(TRUE, tvb, offset, pinfo, tree, hf_cmip_returnResultProblem);
2244 static const value_string ReturnErrorProblem_vals[] = {
2245 { 0, "unrecognizedInvocation" },
2246 { 1, "errorResponseUnexpected" },
2247 { 2, "unrecognizedError" },
2248 { 3, "unexpectedError" },
2249 { 4, "mistypedParameter" },
2255 dissect_cmip_ReturnErrorProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2256 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2260 static int dissect_returnErrorProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2261 return dissect_cmip_ReturnErrorProblem(TRUE, tvb, offset, pinfo, tree, hf_cmip_returnErrorProblem);
2265 static const value_string RejectProblem_vals[] = {
2266 { 0, "general-unrecognizedPDU" },
2267 { 1, "general-mistypedPDU" },
2268 { 2, "general-badlyStructuredPDU" },
2269 { 10, "invoke-duplicateInvocation" },
2270 { 11, "invoke-unrecognizedOperation" },
2271 { 12, "invoke-mistypedArgument" },
2272 { 13, "invoke-resourceLimitation" },
2273 { 14, "invoke-releaseInProgress" },
2274 { 15, "invoke-unrecognizedLinkedId" },
2275 { 16, "invoke-linkedResponseUnexpected" },
2276 { 17, "invoke-unexpectedLinkedOperation" },
2277 { 20, "returnResult-unrecognizedInvocation" },
2278 { 21, "returnResult-resultResponseUnexpected" },
2279 { 22, "returnResult-mistypedResult" },
2280 { 30, "returnError-unrecognizedInvocation" },
2281 { 31, "returnError-errorResponseUnexpected" },
2282 { 32, "returnError-unrecognizedError" },
2283 { 33, "returnError-unexpectedError" },
2284 { 34, "returnError-mistypedParameter" },
2290 dissect_cmip_RejectProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2291 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2298 static const value_string RejectProb_vals[] = {
2299 { 0, "generalProblem" },
2300 { 1, "invokeProblem" },
2301 { 2, "returnResultProblem" },
2302 { 3, "returnErrorProblem" },
2306 static const ber_choice_t RejectProb_choice[] = {
2307 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_generalProblem_impl },
2308 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invokeProblem_impl },
2309 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResultProblem_impl },
2310 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnErrorProblem_impl },
2311 { 0, 0, 0, 0, NULL }
2315 dissect_cmip_RejectProb(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2316 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2317 RejectProb_choice, hf_index, ett_cmip_RejectProb);
2321 static int dissect_rejectProblem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2322 return dissect_cmip_RejectProb(FALSE, tvb, offset, pinfo, tree, hf_cmip_rejectProblem);
2325 static const ber_sequence_t Reject_sequence[] = {
2326 { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
2327 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_rejectProblem },
2332 dissect_cmip_Reject(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2333 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2334 Reject_sequence, hf_index, ett_cmip_Reject);
2336 opcode_type=OPCODE_REJECT;
2337 if(check_col(pinfo->cinfo, COL_INFO)){
2338 col_prepend_fstr(pinfo->cinfo, COL_INFO, "Reject ");
2342 static int dissect_reject_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2343 return dissect_cmip_Reject(TRUE, tvb, offset, pinfo, tree, hf_cmip_reject);
2347 const value_string ROS_vals[] = {
2349 { 2, "returnResult" },
2350 { 3, "returnError" },
2355 static const ber_choice_t ROS_choice[] = {
2356 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invoke_impl },
2357 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResult_impl },
2358 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnError_impl },
2359 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_reject_impl },
2360 { 0, 0, 0, 0, NULL }
2364 dissect_cmip_ROS(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2365 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2366 ROS_choice, hf_index, ett_cmip_ROS);
2372 static const value_string CMIPAbortSource_vals[] = {
2373 { 0, "cmiseServiceUser" },
2374 { 1, "cmiseServiceProvider" },
2380 dissect_cmip_CMIPAbortSource(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2382 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, &value);
2383 if(check_col(pinfo->cinfo, COL_INFO)){
2384 col_append_fstr(pinfo->cinfo, COL_INFO, " AbortSource:%s", val_to_str(value, CMIPAbortSource_vals, " Unknown AbortSource:%d"));
2389 static int dissect_abortSource_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2390 return dissect_cmip_CMIPAbortSource(TRUE, tvb, offset, pinfo, tree, hf_cmip_abortSource);
2393 static const ber_sequence_t CMIPAbortInfo_sequence[] = {
2394 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_abortSource_impl },
2399 dissect_cmip_CMIPAbortInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2400 if(check_col(pinfo->cinfo, COL_INFO)){
2401 col_append_fstr(pinfo->cinfo, COL_INFO, "CMIP-A-ABORT");
2403 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2404 CMIPAbortInfo_sequence, hf_index, ett_cmip_CMIPAbortInfo);
2409 static const asn_namedbit FunctionalUnits_bits[] = {
2410 { 0, &hf_cmip_FunctionalUnits_multipleObjectSelection, -1, -1, NULL, NULL },
2411 { 1, &hf_cmip_FunctionalUnits_filter, -1, -1, NULL, NULL },
2412 { 2, &hf_cmip_FunctionalUnits_multipleReply, -1, -1, NULL, NULL },
2413 { 3, &hf_cmip_FunctionalUnits_extendedService, -1, -1, NULL, NULL },
2414 { 4, &hf_cmip_FunctionalUnits_cancelGet, -1, -1, NULL, NULL },
2415 { 0, NULL, 0, 0, NULL, NULL }
2419 dissect_cmip_FunctionalUnits(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2420 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
2421 FunctionalUnits_bits, hf_index, ett_cmip_FunctionalUnits,
2426 static int dissect_functionalUnits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2427 return dissect_cmip_FunctionalUnits(TRUE, tvb, offset, pinfo, tree, hf_cmip_functionalUnits);
2430 static const asn_namedbit ProtocolVersion_bits[] = {
2431 { 0, &hf_cmip_ProtocolVersion_version1, -1, -1, NULL, NULL },
2432 { 1, &hf_cmip_ProtocolVersion_version2, -1, -1, NULL, NULL },
2433 { 0, NULL, 0, 0, NULL, NULL }
2437 dissect_cmip_ProtocolVersion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2438 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
2439 ProtocolVersion_bits, hf_index, ett_cmip_ProtocolVersion,
2444 static int dissect_protocolVersion_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2445 return dissect_cmip_ProtocolVersion(TRUE, tvb, offset, pinfo, tree, hf_cmip_protocolVersion);
2448 static const ber_sequence_t CMIPUserInfo_sequence[] = {
2449 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_protocolVersion_impl },
2450 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_functionalUnits_impl },
2455 dissect_cmip_CMIPUserInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2456 if(check_col(pinfo->cinfo, COL_INFO)){
2457 col_append_fstr(pinfo->cinfo, COL_INFO, "CMIP-A-ASSOCIATE");
2459 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2460 CMIPUserInfo_sequence, hf_index, ett_cmip_CMIPUserInfo);
2466 /*--- End of included file: packet-cmip-fn.c ---*/
2469 /* XXX this one should be broken out later and moved into the conformance file */
2471 dissect_cmip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
2473 static struct SESSION_DATA_STRUCTURE* session = NULL;
2474 proto_item *item = NULL;
2475 proto_tree *tree = NULL;
2478 /* do we have spdu type from the session dissector? */
2479 if( !pinfo->private_data ){
2481 proto_tree_add_text(tree, tvb, 0, -1,
2482 "Internal error:can't get spdu type from session dissector.");
2486 session = ( (struct SESSION_DATA_STRUCTURE*)(pinfo->private_data) );
2487 if(session->spdu_type == 0 ){
2489 proto_tree_add_text(tree, tvb, 0, -1,
2490 "Internal error:wrong spdu type %x from session dissector.",session->spdu_type);
2497 item = proto_tree_add_item(parent_tree, proto_cmip, tvb, 0, -1, FALSE);
2498 tree = proto_item_add_subtree(item, ett_cmip);
2501 if (check_col(pinfo->cinfo, COL_PROTOCOL))
2502 col_set_str(pinfo->cinfo, COL_PROTOCOL, "CMIP");
2503 if (check_col(pinfo->cinfo, COL_INFO))
2504 col_clear(pinfo->cinfo, COL_INFO);
2505 switch(session->spdu_type){
2506 case SES_CONNECTION_REQUEST:
2507 case SES_CONNECTION_ACCEPT:
2508 case SES_DISCONNECT:
2511 dissect_cmip_CMIPUserInfo(FALSE,tvb,0,pinfo,tree,-1);
2514 dissect_cmip_CMIPAbortInfo(FALSE,tvb,0,pinfo,tree,-1);
2516 case SES_DATA_TRANSFER:
2517 dissect_cmip_ROS(FALSE,tvb,0,pinfo,tree,-1);
2524 /*--- proto_register_cmip ----------------------------------------------*/
2525 void proto_register_cmip(void) {
2527 /* List of fields */
2528 static hf_register_info hf[] = {
2529 { &hf_cmip_actionType_OID,
2530 { "actionType", "cmip.actionType_OID",
2531 FT_STRING, BASE_NONE, NULL, 0,
2532 "actionType", HFILL }},
2533 { &hf_cmip_eventType_OID,
2534 { "eventType", "cmip.eventType_OID",
2535 FT_STRING, BASE_NONE, NULL, 0,
2536 "eventType", HFILL }},
2537 { &hf_cmip_attributeId_OID,
2538 { "attributeId", "cmip.attributeId_OID",
2539 FT_STRING, BASE_NONE, NULL, 0,
2540 "attributeId", HFILL }},
2541 { &hf_cmip_errorId_OID,
2542 { "errorId", "cmip.errorId_OID",
2543 FT_STRING, BASE_NONE, NULL, 0,
2544 "errorId", HFILL }},
2546 /*--- Included file: packet-cmip-hfarr.c ---*/
2548 { &hf_cmip_modifyOperator,
2549 { "modifyOperator", "cmip.modifyOperator",
2550 FT_INT32, BASE_DEC, VALS(ModifyOperator_vals), 0,
2552 { &hf_cmip_attributeId,
2553 { "attributeId", "cmip.attributeId",
2554 FT_STRING, BASE_NONE, NULL, 0,
2555 "ModificationItem/attributeId", HFILL }},
2556 { &hf_cmip_attributeValue,
2557 { "attributeValue", "cmip.attributeValue",
2558 FT_NONE, BASE_NONE, NULL, 0,
2559 "ModificationItem/attributeValue", HFILL }},
2560 { &hf_cmip_managedObjectClass,
2561 { "managedObjectClass", "cmip.managedObjectClass",
2562 FT_UINT32, BASE_DEC, VALS(ObjectClass_vals), 0,
2564 { &hf_cmip_managedObjectInstance,
2565 { "managedObjectInstance", "cmip.managedObjectInstance",
2566 FT_UINT32, BASE_DEC, VALS(ObjectInstance_vals), 0,
2568 { &hf_cmip_currentTime,
2569 { "currentTime", "cmip.currentTime",
2570 FT_STRING, BASE_NONE, NULL, 0,
2572 { &hf_cmip_getInfoList,
2573 { "getInfoList", "cmip.getInfoList",
2574 FT_NONE, BASE_NONE, NULL, 0,
2575 "GetListError/getInfoList", HFILL }},
2576 { &hf_cmip_getInfoList_item,
2577 { "Item", "cmip.getInfoList_item",
2578 FT_UINT32, BASE_DEC, VALS(GetInfoStatus_vals), 0,
2579 "GetListError/getInfoList/_item", HFILL }},
2580 { &hf_cmip_attributeIdError,
2581 { "attributeIdError", "cmip.attributeIdError",
2582 FT_NONE, BASE_NONE, NULL, 0,
2583 "GetInfoStatus/attributeIdError", HFILL }},
2584 { &hf_cmip_attribute,
2585 { "attribute", "cmip.attribute",
2586 FT_NONE, BASE_NONE, NULL, 0,
2588 { &hf_cmip_errorStatus,
2589 { "errorStatus", "cmip.errorStatus",
2590 FT_UINT32, BASE_DEC, VALS(T_errorStatus_vals), 0,
2591 "AttributeIdError/errorStatus", HFILL }},
2592 { &hf_cmip_attributeId1,
2593 { "attributeId", "cmip.attributeId",
2594 FT_UINT32, BASE_DEC, VALS(AttributeId_vals), 0,
2595 "AttributeIdError/attributeId", HFILL }},
2596 { &hf_cmip_setInfoList,
2597 { "setInfoList", "cmip.setInfoList",
2598 FT_NONE, BASE_NONE, NULL, 0,
2599 "SetListError/setInfoList", HFILL }},
2600 { &hf_cmip_setInfoList_item,
2601 { "Item", "cmip.setInfoList_item",
2602 FT_UINT32, BASE_DEC, VALS(SetInfoStatus_vals), 0,
2603 "SetListError/setInfoList/_item", HFILL }},
2604 { &hf_cmip_actionErrorInfo,
2605 { "actionErrorInfo", "cmip.actionErrorInfo",
2606 FT_NONE, BASE_NONE, NULL, 0,
2607 "ActionError/actionErrorInfo", HFILL }},
2608 { &hf_cmip_specificErrorInfo,
2609 { "specificErrorInfo", "cmip.specificErrorInfo",
2610 FT_NONE, BASE_NONE, NULL, 0,
2611 "ProcessingFailure/specificErrorInfo", HFILL }},
2612 { &hf_cmip_deleteErrorInfo,
2613 { "deleteErrorInfo", "cmip.deleteErrorInfo",
2614 FT_UINT32, BASE_DEC, VALS(T_deleteErrorInfo_vals), 0,
2615 "DeleteError/deleteErrorInfo", HFILL }},
2616 { &hf_cmip_attributeError,
2617 { "attributeError", "cmip.attributeError",
2618 FT_NONE, BASE_NONE, NULL, 0,
2619 "SetInfoStatus/attributeError", HFILL }},
2621 { "errorId", "cmip.errorId",
2622 FT_STRING, BASE_NONE, NULL, 0,
2623 "SpecificErrorInfo/errorId", HFILL }},
2624 { &hf_cmip_errorInfo,
2625 { "errorInfo", "cmip.errorInfo",
2626 FT_NONE, BASE_NONE, NULL, 0,
2627 "SpecificErrorInfo/errorInfo", HFILL }},
2628 { &hf_cmip_actionType,
2629 { "actionType", "cmip.actionType",
2630 FT_STRING, BASE_NONE, NULL, 0,
2631 "NoSuchArgumentAction/actionType", HFILL }},
2632 { &hf_cmip_eventType,
2633 { "eventType", "cmip.eventType",
2634 FT_STRING, BASE_NONE, NULL, 0,
2635 "NoSuchArgumentEvent/eventType", HFILL }},
2636 { &hf_cmip_actionId,
2637 { "actionId", "cmip.actionId",
2638 FT_NONE, BASE_NONE, NULL, 0,
2639 "NoSuchArgument/actionId", HFILL }},
2641 { "eventId", "cmip.eventId",
2642 FT_NONE, BASE_NONE, NULL, 0,
2643 "NoSuchArgument/eventId", HFILL }},
2644 { &hf_cmip_eventType1,
2645 { "eventType", "cmip.eventType",
2646 FT_STRING, BASE_NONE, NULL, 0,
2647 "InvalidArgumentValueEventValue/eventType", HFILL }},
2648 { &hf_cmip_eventInfo,
2649 { "eventInfo", "cmip.eventInfo",
2650 FT_NONE, BASE_NONE, NULL, 0,
2651 "InvalidArgumentValueEventValue/eventInfo", HFILL }},
2652 { &hf_cmip_actionValue,
2653 { "actionValue", "cmip.actionValue",
2654 FT_NONE, BASE_NONE, NULL, 0,
2655 "InvalidArgumentValue/actionValue", HFILL }},
2656 { &hf_cmip_eventValue,
2657 { "eventValue", "cmip.eventValue",
2658 FT_NONE, BASE_NONE, NULL, 0,
2659 "InvalidArgumentValue/eventValue", HFILL }},
2660 { &hf_cmip_actionType1,
2661 { "actionType", "cmip.actionType",
2662 FT_STRING, BASE_NONE, NULL, 0,
2663 "ErrorInfo/actionType", HFILL }},
2664 { &hf_cmip_actionArgument,
2665 { "actionArgument", "cmip.actionArgument",
2666 FT_UINT32, BASE_DEC, VALS(NoSuchArgument_vals), 0,
2667 "ErrorInfo/actionArgument", HFILL }},
2668 { &hf_cmip_argumentValue,
2669 { "argumentValue", "cmip.argumentValue",
2670 FT_UINT32, BASE_DEC, VALS(InvalidArgumentValue_vals), 0,
2671 "ErrorInfo/argumentValue", HFILL }},
2672 { &hf_cmip_errorStatus1,
2673 { "errorStatus", "cmip.errorStatus",
2674 FT_UINT32, BASE_DEC, VALS(T_errorStatus1_vals), 0,
2675 "ActionErrorInfo/errorStatus", HFILL }},
2676 { &hf_cmip_errorInfo1,
2677 { "errorInfo", "cmip.errorInfo",
2678 FT_UINT32, BASE_DEC, VALS(ErrorInfo_vals), 0,
2679 "ActionErrorInfo/errorInfo", HFILL }},
2680 { &hf_cmip_errorStatus2,
2681 { "errorStatus", "cmip.errorStatus",
2682 FT_UINT32, BASE_DEC, VALS(T_errorStatus2_vals), 0,
2683 "AttributeError/errorStatus", HFILL }},
2684 { &hf_cmip_attributeId2,
2685 { "attributeId", "cmip.attributeId",
2686 FT_STRING, BASE_NONE, NULL, 0,
2687 "AttributeError/attributeId", HFILL }},
2688 { &hf_cmip_attributeValue1,
2689 { "attributeValue", "cmip.attributeValue",
2690 FT_NONE, BASE_NONE, NULL, 0,
2691 "AttributeError/attributeValue", HFILL }},
2692 { &hf_cmip_attributeList,
2693 { "attributeList", "cmip.attributeList",
2694 FT_NONE, BASE_NONE, NULL, 0,
2696 { &hf_cmip_attributeList_item,
2697 { "Item", "cmip.attributeList_item",
2698 FT_NONE, BASE_NONE, NULL, 0,
2700 { &hf_cmip_baseManagedObjectClass,
2701 { "baseManagedObjectClass", "cmip.baseManagedObjectClass",
2702 FT_UINT32, BASE_DEC, VALS(ObjectClass_vals), 0,
2704 { &hf_cmip_baseManagedObjectInstance,
2705 { "baseManagedObjectInstance", "cmip.baseManagedObjectInstance",
2706 FT_UINT32, BASE_DEC, VALS(ObjectInstance_vals), 0,
2708 { &hf_cmip_accessControl,
2709 { "accessControl", "cmip.accessControl",
2710 FT_BYTES, BASE_HEX, NULL, 0,
2712 { &hf_cmip_synchronization,
2713 { "synchronization", "cmip.synchronization",
2714 FT_UINT32, BASE_DEC, VALS(CMISSync_vals), 0,
2717 { "scope", "cmip.scope",
2718 FT_UINT32, BASE_DEC, VALS(Scope_vals), 0,
2721 { "filter", "cmip.filter",
2722 FT_UINT32, BASE_DEC, VALS(CMISFilter_vals), 0,
2724 { &hf_cmip_modificationList,
2725 { "modificationList", "cmip.modificationList",
2726 FT_NONE, BASE_NONE, NULL, 0,
2727 "SetArgument/modificationList", HFILL }},
2728 { &hf_cmip_modificationList_item,
2729 { "Item", "cmip.modificationList_item",
2730 FT_NONE, BASE_NONE, NULL, 0,
2731 "SetArgument/modificationList/_item", HFILL }},
2732 { &hf_cmip_getResult,
2733 { "getResult", "cmip.getResult",
2734 FT_NONE, BASE_NONE, NULL, 0,
2735 "LinkedReplyArgument/getResult", HFILL }},
2736 { &hf_cmip_getListError,
2737 { "getListError", "cmip.getListError",
2738 FT_NONE, BASE_NONE, NULL, 0,
2739 "LinkedReplyArgument/getListError", HFILL }},
2740 { &hf_cmip_setResult,
2741 { "setResult", "cmip.setResult",
2742 FT_NONE, BASE_NONE, NULL, 0,
2743 "LinkedReplyArgument/setResult", HFILL }},
2744 { &hf_cmip_setListError,
2745 { "setListError", "cmip.setListError",
2746 FT_NONE, BASE_NONE, NULL, 0,
2747 "LinkedReplyArgument/setListError", HFILL }},
2748 { &hf_cmip_actionResult,
2749 { "actionResult", "cmip.actionResult",
2750 FT_NONE, BASE_NONE, NULL, 0,
2751 "LinkedReplyArgument/actionResult", HFILL }},
2752 { &hf_cmip_processingFailure,
2753 { "processingFailure", "cmip.processingFailure",
2754 FT_NONE, BASE_NONE, NULL, 0,
2755 "LinkedReplyArgument/processingFailure", HFILL }},
2756 { &hf_cmip_deleteResult,
2757 { "deleteResult", "cmip.deleteResult",
2758 FT_NONE, BASE_NONE, NULL, 0,
2759 "LinkedReplyArgument/deleteResult", HFILL }},
2760 { &hf_cmip_actionError,
2761 { "actionError", "cmip.actionError",
2762 FT_NONE, BASE_NONE, NULL, 0,
2763 "LinkedReplyArgument/actionError", HFILL }},
2764 { &hf_cmip_deleteError,
2765 { "deleteError", "cmip.deleteError",
2766 FT_NONE, BASE_NONE, NULL, 0,
2767 "LinkedReplyArgument/deleteError", HFILL }},
2768 { &hf_cmip_eventType2,
2769 { "eventType", "cmip.eventType",
2770 FT_STRING, BASE_NONE, NULL, 0,
2771 "EventReply/eventType", HFILL }},
2772 { &hf_cmip_eventReplyInfo,
2773 { "eventReplyInfo", "cmip.eventReplyInfo",
2774 FT_NONE, BASE_NONE, NULL, 0,
2775 "EventReply/eventReplyInfo", HFILL }},
2776 { &hf_cmip_eventReply,
2777 { "eventReply", "cmip.eventReply",
2778 FT_NONE, BASE_NONE, NULL, 0,
2779 "EventReportResult/eventReply", HFILL }},
2780 { &hf_cmip_eventTime,
2781 { "eventTime", "cmip.eventTime",
2782 FT_STRING, BASE_NONE, NULL, 0,
2783 "EventReportArgument/eventTime", HFILL }},
2784 { &hf_cmip_eventType3,
2785 { "eventType", "cmip.eventType",
2786 FT_STRING, BASE_NONE, NULL, 0,
2787 "EventReportArgument/eventType", HFILL }},
2788 { &hf_cmip_eventInfo1,
2789 { "eventInfo", "cmip.eventInfo",
2790 FT_NONE, BASE_NONE, NULL, 0,
2791 "EventReportArgument/eventInfo", HFILL }},
2792 { &hf_cmip_managedOrSuperiorObjectInstance,
2793 { "managedOrSuperiorObjectInstance", "cmip.managedOrSuperiorObjectInstance",
2794 FT_UINT32, BASE_DEC, VALS(T_managedOrSuperiorObjectInstance_vals), 0,
2795 "CreateArgument/managedOrSuperiorObjectInstance", HFILL }},
2796 { &hf_cmip_superiorObjectInstance,
2797 { "superiorObjectInstance", "cmip.superiorObjectInstance",
2798 FT_UINT32, BASE_DEC, VALS(ObjectInstance_vals), 0,
2799 "CreateArgument/managedOrSuperiorObjectInstance/superiorObjectInstance", HFILL }},
2800 { &hf_cmip_referenceObjectInstance,
2801 { "referenceObjectInstance", "cmip.referenceObjectInstance",
2802 FT_UINT32, BASE_DEC, VALS(ObjectInstance_vals), 0,
2803 "CreateArgument/referenceObjectInstance", HFILL }},
2804 { &hf_cmip_actionType2,
2805 { "actionType", "cmip.actionType",
2806 FT_STRING, BASE_NONE, NULL, 0,
2807 "ActionReply/actionType", HFILL }},
2808 { &hf_cmip_actionReplyInfo,
2809 { "actionReplyInfo", "cmip.actionReplyInfo",
2810 FT_NONE, BASE_NONE, NULL, 0,
2811 "ActionReply/actionReplyInfo", HFILL }},
2812 { &hf_cmip_actionReply,
2813 { "actionReply", "cmip.actionReply",
2814 FT_NONE, BASE_NONE, NULL, 0,
2815 "ActionResult/actionReply", HFILL }},
2816 { &hf_cmip_actionInfo,
2817 { "actionInfo", "cmip.actionInfo",
2818 FT_NONE, BASE_NONE, NULL, 0,
2819 "ActionArgument/actionInfo", HFILL }},
2820 { &hf_cmip_actionType3,
2821 { "actionType", "cmip.actionType",
2822 FT_STRING, BASE_NONE, NULL, 0,
2823 "ActionInfo/actionType", HFILL }},
2824 { &hf_cmip_actionInfoArg,
2825 { "actionInfoArg", "cmip.actionInfoArg",
2826 FT_NONE, BASE_NONE, NULL, 0,
2827 "ActionInfo/actionInfoArg", HFILL }},
2828 { &hf_cmip_ocglobalForm,
2829 { "ocglobalForm", "cmip.ocglobalForm",
2830 FT_STRING, BASE_NONE, NULL, 0,
2831 "ObjectClass/ocglobalForm", HFILL }},
2832 { &hf_cmip_oclocalForm,
2833 { "oclocalForm", "cmip.oclocalForm",
2834 FT_INT32, BASE_DEC, NULL, 0,
2835 "ObjectClass/oclocalForm", HFILL }},
2836 { &hf_cmip_distinguishedName,
2837 { "distinguishedName", "cmip.distinguishedName",
2838 FT_NONE, BASE_NONE, NULL, 0,
2839 "ObjectInstance/distinguishedName", HFILL }},
2840 { &hf_cmip_nonSpecificForm,
2841 { "nonSpecificForm", "cmip.nonSpecificForm",
2842 FT_BYTES, BASE_HEX, NULL, 0,
2843 "ObjectInstance/nonSpecificForm", HFILL }},
2844 { &hf_cmip_localDistinguishedName,
2845 { "localDistinguishedName", "cmip.localDistinguishedName",
2846 FT_NONE, BASE_NONE, NULL, 0,
2847 "ObjectInstance/localDistinguishedName", HFILL }},
2848 { &hf_cmip_globalForm,
2849 { "globalForm", "cmip.globalForm",
2850 FT_STRING, BASE_NONE, NULL, 0,
2851 "AttributeId/globalForm", HFILL }},
2852 { &hf_cmip_localForm,
2853 { "localForm", "cmip.localForm",
2854 FT_INT32, BASE_DEC, NULL, 0,
2855 "AttributeId/localForm", HFILL }},
2858 FT_UINT32, BASE_DEC, VALS(AttributeId_vals), 0,
2859 "Attribute/id", HFILL }},
2861 { "value", "cmip.value",
2862 FT_NONE, BASE_NONE, NULL, 0,
2863 "Attribute/value", HFILL }},
2864 { &hf_cmip_equality,
2865 { "equality", "cmip.equality",
2866 FT_NONE, BASE_NONE, NULL, 0,
2867 "FilterItem/equality", HFILL }},
2868 { &hf_cmip_substrings,
2869 { "substrings", "cmip.substrings",
2870 FT_NONE, BASE_NONE, NULL, 0,
2871 "FilterItem/substrings", HFILL }},
2872 { &hf_cmip_substrings_item,
2873 { "Item", "cmip.substrings_item",
2874 FT_UINT32, BASE_DEC, VALS(T_substrings_item_vals), 0,
2875 "FilterItem/substrings/_item", HFILL }},
2876 { &hf_cmip_initialString,
2877 { "initialString", "cmip.initialString",
2878 FT_NONE, BASE_NONE, NULL, 0,
2879 "FilterItem/substrings/_item/initialString", HFILL }},
2880 { &hf_cmip_anyString,
2881 { "anyString", "cmip.anyString",
2882 FT_NONE, BASE_NONE, NULL, 0,
2883 "FilterItem/substrings/_item/anyString", HFILL }},
2884 { &hf_cmip_finalString,
2885 { "finalString", "cmip.finalString",
2886 FT_NONE, BASE_NONE, NULL, 0,
2887 "FilterItem/substrings/_item/finalString", HFILL }},
2888 { &hf_cmip_greaterOrEqual,
2889 { "greaterOrEqual", "cmip.greaterOrEqual",
2890 FT_NONE, BASE_NONE, NULL, 0,
2891 "FilterItem/greaterOrEqual", HFILL }},
2892 { &hf_cmip_lessOrEqual,
2893 { "lessOrEqual", "cmip.lessOrEqual",
2894 FT_NONE, BASE_NONE, NULL, 0,
2895 "FilterItem/lessOrEqual", HFILL }},
2897 { "present", "cmip.present",
2898 FT_UINT32, BASE_DEC, VALS(AttributeId_vals), 0,
2899 "FilterItem/present", HFILL }},
2900 { &hf_cmip_subsetOf,
2901 { "subsetOf", "cmip.subsetOf",
2902 FT_NONE, BASE_NONE, NULL, 0,
2903 "FilterItem/subsetOf", HFILL }},
2904 { &hf_cmip_supersetOf,
2905 { "supersetOf", "cmip.supersetOf",
2906 FT_NONE, BASE_NONE, NULL, 0,
2907 "FilterItem/supersetOf", HFILL }},
2908 { &hf_cmip_nonNullSetIntersection,
2909 { "nonNullSetIntersection", "cmip.nonNullSetIntersection",
2910 FT_NONE, BASE_NONE, NULL, 0,
2911 "FilterItem/nonNullSetIntersection", HFILL }},
2913 { "item", "cmip.item",
2914 FT_UINT32, BASE_DEC, VALS(FilterItem_vals), 0,
2915 "CMISFilter/item", HFILL }},
2917 { "and", "cmip.and",
2918 FT_NONE, BASE_NONE, NULL, 0,
2919 "CMISFilter/and", HFILL }},
2920 { &hf_cmip_and_item,
2921 { "Item", "cmip.and_item",
2922 FT_UINT32, BASE_DEC, VALS(CMISFilter_vals), 0,
2923 "CMISFilter/and/_item", HFILL }},
2926 FT_NONE, BASE_NONE, NULL, 0,
2927 "CMISFilter/or", HFILL }},
2929 { "Item", "cmip.or_item",
2930 FT_UINT32, BASE_DEC, VALS(CMISFilter_vals), 0,
2931 "CMISFilter/or/_item", HFILL }},
2933 { "not", "cmip.not",
2934 FT_UINT32, BASE_DEC, VALS(CMISFilter_vals), 0,
2935 "CMISFilter/not", HFILL }},
2936 { &hf_cmip_namedNumbers,
2937 { "namedNumbers", "cmip.namedNumbers",
2938 FT_INT32, BASE_DEC, VALS(T_namedNumbers_vals), 0,
2939 "Scope/namedNumbers", HFILL }},
2940 { &hf_cmip_individualLevels,
2941 { "individualLevels", "cmip.individualLevels",
2942 FT_INT32, BASE_DEC, NULL, 0,
2943 "Scope/individualLevels", HFILL }},
2944 { &hf_cmip_baseToNthLevel,
2945 { "baseToNthLevel", "cmip.baseToNthLevel",
2946 FT_INT32, BASE_DEC, NULL, 0,
2947 "Scope/baseToNthLevel", HFILL }},
2948 { &hf_cmip_attributeIdList,
2949 { "attributeIdList", "cmip.attributeIdList",
2950 FT_NONE, BASE_NONE, NULL, 0,
2951 "GetArgument/attributeIdList", HFILL }},
2952 { &hf_cmip_attributeIdList_item,
2953 { "Item", "cmip.attributeIdList_item",
2954 FT_UINT32, BASE_DEC, VALS(AttributeId_vals), 0,
2955 "GetArgument/attributeIdList/_item", HFILL }},
2957 { "opcode", "cmip.opcode",
2958 FT_INT32, BASE_DEC, VALS(Opcode_vals), 0,
2960 { &hf_cmip_argument,
2961 { "argument", "cmip.argument",
2962 FT_NONE, BASE_NONE, NULL, 0,
2964 { &hf_cmip_present1,
2965 { "present", "cmip.present",
2966 FT_UINT32, BASE_DEC, VALS(InvokeId_vals), 0,
2967 "InvokeLinkedId/present", HFILL }},
2969 { "absent", "cmip.absent",
2970 FT_NONE, BASE_NONE, NULL, 0,
2972 { &hf_cmip_present2,
2973 { "present", "cmip.present",
2974 FT_INT32, BASE_DEC, NULL, 0,
2975 "InvokeId/present", HFILL }},
2976 { &hf_cmip_invokeId,
2977 { "invokeId", "cmip.invokeId",
2978 FT_UINT32, BASE_DEC, VALS(InvokeId_vals), 0,
2980 { &hf_cmip_linkedId,
2981 { "linkedId", "cmip.linkedId",
2982 FT_UINT32, BASE_DEC, VALS(InvokeLinkedId_vals), 0,
2983 "Invoke/linkedId", HFILL }},
2985 { "rRBody", "cmip.rRBody",
2986 FT_NONE, BASE_NONE, NULL, 0,
2987 "ReturnResult/rRBody", HFILL }},
2988 { &hf_cmip_generalProblem,
2989 { "generalProblem", "cmip.generalProblem",
2990 FT_INT32, BASE_DEC, VALS(GeneralProblem_vals), 0,
2991 "RejectProb/generalProblem", HFILL }},
2992 { &hf_cmip_invokeProblem,
2993 { "invokeProblem", "cmip.invokeProblem",
2994 FT_INT32, BASE_DEC, VALS(InvokeProblem_vals), 0,
2995 "RejectProb/invokeProblem", HFILL }},
2996 { &hf_cmip_returnResultProblem,
2997 { "returnResultProblem", "cmip.returnResultProblem",
2998 FT_INT32, BASE_DEC, VALS(ReturnResultProblem_vals), 0,
2999 "RejectProb/returnResultProblem", HFILL }},
3000 { &hf_cmip_returnErrorProblem,
3001 { "returnErrorProblem", "cmip.returnErrorProblem",
3002 FT_INT32, BASE_DEC, VALS(ReturnErrorProblem_vals), 0,
3003 "RejectProb/returnErrorProblem", HFILL }},
3004 { &hf_cmip_rejectProblem,
3005 { "rejectProblem", "cmip.rejectProblem",
3006 FT_UINT32, BASE_DEC, VALS(RejectProb_vals), 0,
3007 "Reject/rejectProblem", HFILL }},
3009 { "invoke", "cmip.invoke",
3010 FT_NONE, BASE_NONE, NULL, 0,
3011 "ROS/invoke", HFILL }},
3012 { &hf_cmip_returnResult,
3013 { "returnResult", "cmip.returnResult",
3014 FT_NONE, BASE_NONE, NULL, 0,
3015 "ROS/returnResult", HFILL }},
3016 { &hf_cmip_returnError,
3017 { "returnError", "cmip.returnError",
3018 FT_NONE, BASE_NONE, NULL, 0,
3019 "ROS/returnError", HFILL }},
3021 { "reject", "cmip.reject",
3022 FT_NONE, BASE_NONE, NULL, 0,
3023 "ROS/reject", HFILL }},
3024 { &hf_cmip_abortSource,
3025 { "abortSource", "cmip.abortSource",
3026 FT_UINT32, BASE_DEC, VALS(CMIPAbortSource_vals), 0,
3027 "CMIPAbortInfo/abortSource", HFILL }},
3028 { &hf_cmip_protocolVersion,
3029 { "protocolVersion", "cmip.protocolVersion",
3030 FT_BYTES, BASE_HEX, NULL, 0,
3031 "CMIPUserInfo/protocolVersion", HFILL }},
3032 { &hf_cmip_functionalUnits,
3033 { "functionalUnits", "cmip.functionalUnits",
3034 FT_BYTES, BASE_HEX, NULL, 0,
3035 "CMIPUserInfo/functionalUnits", HFILL }},
3036 { &hf_cmip_FunctionalUnits_multipleObjectSelection,
3037 { "multipleObjectSelection", "cmip.multipleObjectSelection",
3038 FT_BOOLEAN, 8, NULL, 0x80,
3040 { &hf_cmip_FunctionalUnits_filter,
3041 { "filter", "cmip.filter",
3042 FT_BOOLEAN, 8, NULL, 0x40,
3044 { &hf_cmip_FunctionalUnits_multipleReply,
3045 { "multipleReply", "cmip.multipleReply",
3046 FT_BOOLEAN, 8, NULL, 0x20,
3048 { &hf_cmip_FunctionalUnits_extendedService,
3049 { "extendedService", "cmip.extendedService",
3050 FT_BOOLEAN, 8, NULL, 0x10,
3052 { &hf_cmip_FunctionalUnits_cancelGet,
3053 { "cancelGet", "cmip.cancelGet",
3054 FT_BOOLEAN, 8, NULL, 0x08,
3056 { &hf_cmip_ProtocolVersion_version1,
3057 { "version1", "cmip.version1",
3058 FT_BOOLEAN, 8, NULL, 0x80,
3060 { &hf_cmip_ProtocolVersion_version2,
3061 { "version2", "cmip.version2",
3062 FT_BOOLEAN, 8, NULL, 0x40,
3065 /*--- End of included file: packet-cmip-hfarr.c ---*/
3069 /* List of subtrees */
3070 static gint *ett[] = {
3073 /*--- Included file: packet-cmip-ettarr.c ---*/
3075 &ett_cmip_ModificationItem,
3076 &ett_cmip_GetListError,
3077 &ett_cmip_SET_OF_GetInfoStatus,
3078 &ett_cmip_GetInfoStatus,
3079 &ett_cmip_AttributeIdError,
3080 &ett_cmip_SetListError,
3081 &ett_cmip_SET_OF_SetInfoStatus,
3082 &ett_cmip_ActionError,
3083 &ett_cmip_ProcessingFailure,
3084 &ett_cmip_DeleteError,
3085 &ett_cmip_SetInfoStatus,
3086 &ett_cmip_SpecificErrorInfo,
3087 &ett_cmip_NoSuchArgumentAction,
3088 &ett_cmip_NoSuchArgumentEvent,
3089 &ett_cmip_NoSuchArgument,
3090 &ett_cmip_InvalidArgumentValueEventValue,
3091 &ett_cmip_InvalidArgumentValue,
3092 &ett_cmip_ErrorInfo,
3093 &ett_cmip_ActionErrorInfo,
3094 &ett_cmip_AttributeError,
3095 &ett_cmip_SetResult,
3096 &ett_cmip_SET_OF_Attribute,
3097 &ett_cmip_SetArgument,
3098 &ett_cmip_SET_OF_ModificationItem,
3099 &ett_cmip_LinkedReplyArgument,
3100 &ett_cmip_EventReply,
3101 &ett_cmip_EventReportResult,
3102 &ett_cmip_EventReportArgument,
3103 &ett_cmip_DeleteArgument,
3104 &ett_cmip_DeleteResult,
3105 &ett_cmip_CreateArgument,
3106 &ett_cmip_T_managedOrSuperiorObjectInstance,
3107 &ett_cmip_CreateResult,
3108 &ett_cmip_ActionReply,
3109 &ett_cmip_ActionResult,
3110 &ett_cmip_ActionArgument,
3111 &ett_cmip_ActionInfo,
3112 &ett_cmip_ObjectClass,
3113 &ett_cmip_ObjectInstance,
3114 &ett_cmip_BaseManagedObjectId,
3115 &ett_cmip_AttributeId,
3116 &ett_cmip_Attribute,
3117 &ett_cmip_FilterItem,
3118 &ett_cmip_T_substrings,
3119 &ett_cmip_T_substrings_item,
3120 &ett_cmip_CMISFilter,
3121 &ett_cmip_SET_OF_CMISFilter,
3123 &ett_cmip_GetArgument,
3124 &ett_cmip_SET_OF_AttributeId,
3125 &ett_cmip_GetResult,
3126 &ett_cmip_ReturnResultBody,
3127 &ett_cmip_InvokeLinkedId,
3130 &ett_cmip_ReturnResult,
3131 &ett_cmip_ReturnError,
3132 &ett_cmip_RejectProb,
3135 &ett_cmip_CMIPAbortInfo,
3136 &ett_cmip_FunctionalUnits,
3137 &ett_cmip_CMIPUserInfo,
3138 &ett_cmip_ProtocolVersion,
3140 /*--- End of included file: packet-cmip-ettarr.c ---*/
3144 /* Register protocol */
3145 proto_cmip = proto_register_protocol(PNAME, PSNAME, PFNAME);
3147 /* Register fields and subtrees */
3148 proto_register_field_array(proto_cmip, hf, array_length(hf));
3149 proto_register_subtree_array(ett, array_length(ett));
3154 /*--- proto_reg_handoff_cmip -------------------------------------------*/
3155 void proto_reg_handoff_cmip(void) {
3156 register_ber_oid_dissector("2.9.0.0.2", dissect_cmip, proto_cmip, "cmip");