1 /* Do not modify this file. */
2 /* It is created automatically by the ASN.1 to Ethereal dissector compiler */
4 /* ../../tools/asn2eth.py -e -X -b -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-cmip.h"
47 #define PNAME "X711 CMIP"
51 /* XXX some stuff we need until we can get rid of it */
52 #include "packet-ses.h"
53 #include "packet-pres.h"
55 /* Initialize the protocol and registered fields */
57 static int hf_cmip_actionType_OID = -1;
58 static int hf_cmip_eventType_OID = -1;
59 static int hf_cmip_attributeId_OID = -1;
60 static int hf_cmip_errorId_OID = -1;
62 /*--- Included file: packet-cmip-hf.c ---*/
64 static int hf_cmip_modifyOperator = -1; /* ModifyOperator */
65 static int hf_cmip_attributeId = -1; /* T_attributeId */
66 static int hf_cmip_attributeValue = -1; /* T_attributeValue */
67 static int hf_cmip_managedObjectClass = -1; /* ObjectClass */
68 static int hf_cmip_managedObjectInstance = -1; /* ObjectInstance */
69 static int hf_cmip_currentTime = -1; /* GeneralizedTime */
70 static int hf_cmip_getInfoList = -1; /* SET_OF_GetInfoStatus */
71 static int hf_cmip_getInfoList_item = -1; /* GetInfoStatus */
72 static int hf_cmip_attributeIdError = -1; /* AttributeIdError */
73 static int hf_cmip_attribute = -1; /* Attribute */
74 static int hf_cmip_errorStatus = -1; /* T_errorStatus */
75 static int hf_cmip_attributeId1 = -1; /* AttributeId */
76 static int hf_cmip_setInfoList = -1; /* SET_OF_SetInfoStatus */
77 static int hf_cmip_setInfoList_item = -1; /* SetInfoStatus */
78 static int hf_cmip_actionErrorInfo = -1; /* ActionErrorInfo */
79 static int hf_cmip_specificErrorInfo = -1; /* SpecificErrorInfo */
80 static int hf_cmip_deleteErrorInfo = -1; /* T_deleteErrorInfo */
81 static int hf_cmip_attributeError = -1; /* AttributeError */
82 static int hf_cmip_errorId = -1; /* T_errorId */
83 static int hf_cmip_errorInfo = -1; /* T_errorInfo */
84 static int hf_cmip_actionType = -1; /* T_actionType */
85 static int hf_cmip_eventType = -1; /* T_eventType */
86 static int hf_cmip_actionId = -1; /* NoSuchArgumentAction */
87 static int hf_cmip_eventId = -1; /* NoSuchArgumentEvent */
88 static int hf_cmip_eventType1 = -1; /* T_eventType1 */
89 static int hf_cmip_eventInfo = -1; /* T_eventInfo */
90 static int hf_cmip_actionValue = -1; /* ActionInfo */
91 static int hf_cmip_eventValue = -1; /* InvalidArgumentValueEventValue */
92 static int hf_cmip_actionType1 = -1; /* T_actionType1 */
93 static int hf_cmip_actionArgument = -1; /* NoSuchArgument */
94 static int hf_cmip_argumentValue = -1; /* InvalidArgumentValue */
95 static int hf_cmip_errorStatus1 = -1; /* T_errorStatus1 */
96 static int hf_cmip_errorInfo1 = -1; /* ErrorInfo */
97 static int hf_cmip_errorStatus2 = -1; /* T_errorStatus2 */
98 static int hf_cmip_attributeId2 = -1; /* T_attributeId1 */
99 static int hf_cmip_attributeValue1 = -1; /* T_attributeValue1 */
100 static int hf_cmip_attributeList = -1; /* SET_OF_Attribute */
101 static int hf_cmip_attributeList_item = -1; /* Attribute */
102 static int hf_cmip_baseManagedObjectClass = -1; /* ObjectClass */
103 static int hf_cmip_baseManagedObjectInstance = -1; /* ObjectInstance */
104 static int hf_cmip_accessControl = -1; /* AccessControl */
105 static int hf_cmip_synchronization = -1; /* CMISSync */
106 static int hf_cmip_scope = -1; /* Scope */
107 static int hf_cmip_filter = -1; /* CMISFilter */
108 static int hf_cmip_modificationList = -1; /* SET_OF_ModificationItem */
109 static int hf_cmip_modificationList_item = -1; /* ModificationItem */
110 static int hf_cmip_getResult = -1; /* GetResult */
111 static int hf_cmip_getListError = -1; /* GetListError */
112 static int hf_cmip_setResult = -1; /* SetResult */
113 static int hf_cmip_setListError = -1; /* SetListError */
114 static int hf_cmip_actionResult = -1; /* ActionResult */
115 static int hf_cmip_processingFailure = -1; /* ProcessingFailure */
116 static int hf_cmip_deleteResult = -1; /* DeleteResult */
117 static int hf_cmip_actionError = -1; /* ActionError */
118 static int hf_cmip_deleteError = -1; /* DeleteError */
119 static int hf_cmip_eventType2 = -1; /* T_eventType2 */
120 static int hf_cmip_eventReplyInfo = -1; /* T_eventReplyInfo */
121 static int hf_cmip_eventReply = -1; /* EventReply */
122 static int hf_cmip_eventTime = -1; /* GeneralizedTime */
123 static int hf_cmip_eventType3 = -1; /* T_eventType3 */
124 static int hf_cmip_eventInfo1 = -1; /* T_eventInfo1 */
125 static int hf_cmip_managedOrSuperiorObjectInstance = -1; /* T_managedOrSuperiorObjectInstance */
126 static int hf_cmip_superiorObjectInstance = -1; /* ObjectInstance */
127 static int hf_cmip_referenceObjectInstance = -1; /* ObjectInstance */
128 static int hf_cmip_actionType2 = -1; /* T_actionType2 */
129 static int hf_cmip_actionReplyInfo = -1; /* T_actionReplyInfo */
130 static int hf_cmip_actionReply = -1; /* ActionReply */
131 static int hf_cmip_actionInfo = -1; /* ActionInfo */
132 static int hf_cmip_actionType3 = -1; /* T_actionType3 */
133 static int hf_cmip_actionInfoArg = -1; /* T_actionInfoArg */
134 static int hf_cmip_ocglobalForm = -1; /* T_ocglobalForm */
135 static int hf_cmip_oclocalForm = -1; /* T_oclocalForm */
136 static int hf_cmip_distinguishedName = -1; /* DistinguishedName */
137 static int hf_cmip_nonSpecificForm = -1; /* OCTET_STRING */
138 static int hf_cmip_localDistinguishedName = -1; /* RDNSequence */
139 static int hf_cmip_globalForm = -1; /* T_globalForm */
140 static int hf_cmip_localForm = -1; /* T_localForm */
141 static int hf_cmip_id = -1; /* AttributeId */
142 static int hf_cmip_value = -1; /* T_value */
143 static int hf_cmip_equality = -1; /* Attribute */
144 static int hf_cmip_substrings = -1; /* T_substrings */
145 static int hf_cmip_substrings_item = -1; /* T_substrings_item */
146 static int hf_cmip_initialString = -1; /* Attribute */
147 static int hf_cmip_anyString = -1; /* Attribute */
148 static int hf_cmip_finalString = -1; /* Attribute */
149 static int hf_cmip_greaterOrEqual = -1; /* Attribute */
150 static int hf_cmip_lessOrEqual = -1; /* Attribute */
151 static int hf_cmip_present = -1; /* AttributeId */
152 static int hf_cmip_subsetOf = -1; /* Attribute */
153 static int hf_cmip_supersetOf = -1; /* Attribute */
154 static int hf_cmip_nonNullSetIntersection = -1; /* Attribute */
155 static int hf_cmip_item = -1; /* FilterItem */
156 static int hf_cmip_and = -1; /* SET_OF_CMISFilter */
157 static int hf_cmip_and_item = -1; /* CMISFilter */
158 static int hf_cmip_or = -1; /* SET_OF_CMISFilter */
159 static int hf_cmip_or_item = -1; /* CMISFilter */
160 static int hf_cmip_not = -1; /* CMISFilter */
161 static int hf_cmip_namedNumbers = -1; /* T_namedNumbers */
162 static int hf_cmip_individualLevels = -1; /* INTEGER */
163 static int hf_cmip_baseToNthLevel = -1; /* INTEGER */
164 static int hf_cmip_attributeIdList = -1; /* SET_OF_AttributeId */
165 static int hf_cmip_attributeIdList_item = -1; /* AttributeId */
166 static int hf_cmip_opcode = -1; /* Opcode */
167 static int hf_cmip_argument = -1; /* Argument */
168 static int hf_cmip_present1 = -1; /* InvokeId */
169 static int hf_cmip_absent = -1; /* NULL */
170 static int hf_cmip_present2 = -1; /* InvokeID */
171 static int hf_cmip_invokeId = -1; /* InvokeId */
172 static int hf_cmip_linkedId = -1; /* InvokeLinkedId */
173 static int hf_cmip_rRBody = -1; /* ReturnResultBody */
174 static int hf_cmip_generalProblem = -1; /* GeneralProblem */
175 static int hf_cmip_invokeProblem = -1; /* InvokeProblem */
176 static int hf_cmip_returnResultProblem = -1; /* ReturnResultProblem */
177 static int hf_cmip_returnErrorProblem = -1; /* ReturnErrorProblem */
178 static int hf_cmip_rejectProblem = -1; /* RejectProb */
179 static int hf_cmip_invoke = -1; /* Invoke */
180 static int hf_cmip_returnResult = -1; /* ReturnResult */
181 static int hf_cmip_returnError = -1; /* ReturnError */
182 static int hf_cmip_reject = -1; /* Reject */
183 static int hf_cmip_abortSource = -1; /* CMIPAbortSource */
184 static int hf_cmip_protocolVersion = -1; /* ProtocolVersion */
185 static int hf_cmip_functionalUnits = -1; /* FunctionalUnits */
187 static int hf_cmip_FunctionalUnits_multipleObjectSelection = -1;
188 static int hf_cmip_FunctionalUnits_filter = -1;
189 static int hf_cmip_FunctionalUnits_multipleReply = -1;
190 static int hf_cmip_FunctionalUnits_extendedService = -1;
191 static int hf_cmip_FunctionalUnits_cancelGet = -1;
192 static int hf_cmip_ProtocolVersion_version1 = -1;
193 static int hf_cmip_ProtocolVersion_version2 = -1;
195 /*--- End of included file: packet-cmip-hf.c ---*/
198 /* Initialize the subtree pointers */
199 static gint ett_cmip = -1;
201 /*--- Included file: packet-cmip-ett.c ---*/
203 static gint ett_cmip_ModificationItem = -1;
204 static gint ett_cmip_GetListError = -1;
205 static gint ett_cmip_SET_OF_GetInfoStatus = -1;
206 static gint ett_cmip_GetInfoStatus = -1;
207 static gint ett_cmip_AttributeIdError = -1;
208 static gint ett_cmip_SetListError = -1;
209 static gint ett_cmip_SET_OF_SetInfoStatus = -1;
210 static gint ett_cmip_ActionError = -1;
211 static gint ett_cmip_ProcessingFailure = -1;
212 static gint ett_cmip_DeleteError = -1;
213 static gint ett_cmip_SetInfoStatus = -1;
214 static gint ett_cmip_SpecificErrorInfo = -1;
215 static gint ett_cmip_NoSuchArgumentAction = -1;
216 static gint ett_cmip_NoSuchArgumentEvent = -1;
217 static gint ett_cmip_NoSuchArgument = -1;
218 static gint ett_cmip_InvalidArgumentValueEventValue = -1;
219 static gint ett_cmip_InvalidArgumentValue = -1;
220 static gint ett_cmip_ErrorInfo = -1;
221 static gint ett_cmip_ActionErrorInfo = -1;
222 static gint ett_cmip_AttributeError = -1;
223 static gint ett_cmip_SetResult = -1;
224 static gint ett_cmip_SET_OF_Attribute = -1;
225 static gint ett_cmip_SetArgument = -1;
226 static gint ett_cmip_SET_OF_ModificationItem = -1;
227 static gint ett_cmip_LinkedReplyArgument = -1;
228 static gint ett_cmip_EventReply = -1;
229 static gint ett_cmip_EventReportResult = -1;
230 static gint ett_cmip_EventReportArgument = -1;
231 static gint ett_cmip_DeleteArgument = -1;
232 static gint ett_cmip_DeleteResult = -1;
233 static gint ett_cmip_CreateArgument = -1;
234 static gint ett_cmip_T_managedOrSuperiorObjectInstance = -1;
235 static gint ett_cmip_CreateResult = -1;
236 static gint ett_cmip_ActionReply = -1;
237 static gint ett_cmip_ActionResult = -1;
238 static gint ett_cmip_ActionArgument = -1;
239 static gint ett_cmip_ActionInfo = -1;
240 static gint ett_cmip_ObjectClass = -1;
241 static gint ett_cmip_ObjectInstance = -1;
242 static gint ett_cmip_BaseManagedObjectId = -1;
243 static gint ett_cmip_AttributeId = -1;
244 static gint ett_cmip_Attribute = -1;
245 static gint ett_cmip_FilterItem = -1;
246 static gint ett_cmip_T_substrings = -1;
247 static gint ett_cmip_T_substrings_item = -1;
248 static gint ett_cmip_CMISFilter = -1;
249 static gint ett_cmip_SET_OF_CMISFilter = -1;
250 static gint ett_cmip_Scope = -1;
251 static gint ett_cmip_GetArgument = -1;
252 static gint ett_cmip_SET_OF_AttributeId = -1;
253 static gint ett_cmip_GetResult = -1;
254 static gint ett_cmip_ReturnResultBody = -1;
255 static gint ett_cmip_InvokeLinkedId = -1;
256 static gint ett_cmip_InvokeId = -1;
257 static gint ett_cmip_Invoke = -1;
258 static gint ett_cmip_ReturnResult = -1;
259 static gint ett_cmip_ReturnError = -1;
260 static gint ett_cmip_RejectProb = -1;
261 static gint ett_cmip_Reject = -1;
262 static gint ett_cmip_ROS = -1;
263 static gint ett_cmip_CMIPAbortInfo = -1;
264 static gint ett_cmip_FunctionalUnits = -1;
265 static gint ett_cmip_CMIPUserInfo = -1;
266 static gint ett_cmip_ProtocolVersion = -1;
268 /*--- End of included file: packet-cmip-ett.c ---*/
271 static guint32 opcode;
273 static int opcode_type;
274 #define OPCODE_INVOKE 1
275 #define OPCODE_RETURN_RESULT 2
276 #define OPCODE_RETURN_ERROR 3
277 #define OPCODE_REJECT 4
279 static int attributeform;
280 #define ATTRIBUTE_LOCAL_FORM 0
281 #define ATTRIBUTE_GLOBAL_FORM 1
282 static char attribute_identifier_id[64]; /*64 chars should be long enough? */
284 static char object_identifier_id[64]; /*64 chars should be long enough? */
286 static int objectclassform;
287 #define OBJECTCLASS_LOCAL_FORM 0
288 #define OBJECTCLASS_GLOBAL_FORM 1
289 static char objectclass_identifier_id[64]; /*64 chars should be long enough? */
292 /*--- Included file: packet-cmip-fn.c ---*/
294 /*--- Cyclic dependencies ---*/
296 /* CMISFilter -> CMISFilter/and -> CMISFilter */
297 /* CMISFilter -> CMISFilter */
298 static int dissect_cmip_CMISFilter(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
300 static int dissect_filter(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
301 return dissect_cmip_CMISFilter(FALSE, tvb, offset, pinfo, tree, hf_cmip_filter);
303 static int dissect_and_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
304 return dissect_cmip_CMISFilter(FALSE, tvb, offset, pinfo, tree, hf_cmip_and_item);
306 static int dissect_or_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
307 return dissect_cmip_CMISFilter(FALSE, tvb, offset, pinfo, tree, hf_cmip_or_item);
309 static int dissect_not(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
310 return dissect_cmip_CMISFilter(FALSE, tvb, offset, pinfo, tree, hf_cmip_not);
314 /*--- Fields for imported types ---*/
316 static int dissect_distinguishedName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
317 return dissect_x509if_DistinguishedName(TRUE, tvb, offset, pinfo, tree, hf_cmip_distinguishedName);
319 static int dissect_localDistinguishedName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
320 return dissect_x509if_RDNSequence(TRUE, tvb, offset, pinfo, tree, hf_cmip_localDistinguishedName);
324 static const value_string ModifyOperator_vals[] = {
327 { 2, "removeValues" },
328 { 3, "setToDefault" },
334 dissect_cmip_ModifyOperator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
335 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
339 static int dissect_modifyOperator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
340 return dissect_cmip_ModifyOperator(TRUE, tvb, offset, pinfo, tree, hf_cmip_modifyOperator);
345 dissect_cmip_T_attributeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
346 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
347 hf_cmip_attributeId_OID, object_identifier_id);
352 static int dissect_attributeId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
353 return dissect_cmip_T_attributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeId);
359 dissect_cmip_T_attributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
360 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
366 static int dissect_attributeValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
367 return dissect_cmip_T_attributeValue(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeValue);
370 static const ber_sequence ModificationItem_sequence[] = {
371 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyOperator_impl },
372 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeId },
373 { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_attributeValue },
378 dissect_cmip_ModificationItem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
379 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
380 ModificationItem_sequence, hf_index, ett_cmip_ModificationItem);
384 static int dissect_modificationList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
385 return dissect_cmip_ModificationItem(FALSE, tvb, offset, pinfo, tree, hf_cmip_modificationList_item);
390 dissect_cmip_T_ocglobalForm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
391 objectclassform = OBJECTCLASS_GLOBAL_FORM;
392 offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset,
393 hf_cmip_ocglobalForm, objectclass_identifier_id);
398 static int dissect_ocglobalForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
399 return dissect_cmip_T_ocglobalForm(TRUE, tvb, offset, pinfo, tree, hf_cmip_ocglobalForm);
405 dissect_cmip_T_oclocalForm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
406 objectclassform = OBJECTCLASS_LOCAL_FORM;
407 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_cmip_oclocalForm, NULL);
412 static int dissect_oclocalForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
413 return dissect_cmip_T_oclocalForm(TRUE, tvb, offset, pinfo, tree, hf_cmip_oclocalForm);
417 static const value_string ObjectClass_vals[] = {
418 { 0, "ocglobalForm" },
419 { 1, "oclocalForm" },
423 static const ber_choice ObjectClass_choice[] = {
424 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ocglobalForm_impl },
425 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_oclocalForm_impl },
430 dissect_cmip_ObjectClass(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
431 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
432 ObjectClass_choice, hf_index, ett_cmip_ObjectClass);
436 static int dissect_managedObjectClass(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
437 return dissect_cmip_ObjectClass(FALSE, tvb, offset, pinfo, tree, hf_cmip_managedObjectClass);
439 static int dissect_baseManagedObjectClass(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
440 return dissect_cmip_ObjectClass(FALSE, tvb, offset, pinfo, tree, hf_cmip_baseManagedObjectClass);
445 dissect_cmip_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
446 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
451 static int dissect_nonSpecificForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
452 return dissect_cmip_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_cmip_nonSpecificForm);
456 static const value_string ObjectInstance_vals[] = {
457 { 2, "distinguishedName" },
458 { 3, "nonSpecificForm" },
459 { 4, "localDistinguishedName" },
463 static const ber_choice ObjectInstance_choice[] = {
464 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_distinguishedName_impl },
465 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_nonSpecificForm_impl },
466 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_localDistinguishedName_impl },
471 dissect_cmip_ObjectInstance(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
472 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
473 ObjectInstance_choice, hf_index, ett_cmip_ObjectInstance);
477 static int dissect_managedObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
478 return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_managedObjectInstance);
480 static int dissect_baseManagedObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
481 return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_baseManagedObjectInstance);
483 static int dissect_superiorObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
484 return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_superiorObjectInstance);
486 static int dissect_referenceObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
487 return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_referenceObjectInstance);
492 dissect_cmip_GeneralizedTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
493 offset = dissect_ber_generalized_time(pinfo, tree, tvb, offset, hf_index);
497 static int dissect_currentTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
498 return dissect_cmip_GeneralizedTime(TRUE, tvb, offset, pinfo, tree, hf_cmip_currentTime);
500 static int dissect_eventTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
501 return dissect_cmip_GeneralizedTime(TRUE, tvb, offset, pinfo, tree, hf_cmip_eventTime);
505 static const value_string T_errorStatus_vals[] = {
506 { 2, "accessDenied" },
507 { 5, "noSuchAttribute" },
513 dissect_cmip_T_errorStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
514 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
518 static int dissect_errorStatus(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
519 return dissect_cmip_T_errorStatus(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorStatus);
524 dissect_cmip_T_globalForm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
525 attributeform = ATTRIBUTE_GLOBAL_FORM;
526 offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset,
527 hf_cmip_globalForm, attribute_identifier_id);
532 static int dissect_globalForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
533 return dissect_cmip_T_globalForm(TRUE, tvb, offset, pinfo, tree, hf_cmip_globalForm);
539 dissect_cmip_T_localForm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
540 attributeform = ATTRIBUTE_LOCAL_FORM;
541 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_cmip_localForm, NULL);
546 static int dissect_localForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
547 return dissect_cmip_T_localForm(TRUE, tvb, offset, pinfo, tree, hf_cmip_localForm);
551 static const value_string AttributeId_vals[] = {
557 static const ber_choice AttributeId_choice[] = {
558 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_globalForm_impl },
559 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_localForm_impl },
564 dissect_cmip_AttributeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
565 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
566 AttributeId_choice, hf_index, ett_cmip_AttributeId);
570 static int dissect_attributeId1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
571 return dissect_cmip_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeId1);
573 static int dissect_id(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
574 return dissect_cmip_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_id);
576 static int dissect_present(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
577 return dissect_cmip_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_present);
579 static int dissect_attributeIdList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
580 return dissect_cmip_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeIdList_item);
583 static const ber_sequence AttributeIdError_sequence[] = {
584 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_errorStatus },
585 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_attributeId1 },
590 dissect_cmip_AttributeIdError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
591 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
592 AttributeIdError_sequence, hf_index, ett_cmip_AttributeIdError);
596 static int dissect_attributeIdError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
597 return dissect_cmip_AttributeIdError(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeIdError);
603 dissect_cmip_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
604 /*XXX handle local form here */
605 if(attributeform==ATTRIBUTE_GLOBAL_FORM){
606 offset=call_ber_oid_callback(attribute_identifier_id, tvb, offset, pinfo, tree);
612 static int dissect_value(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
613 return dissect_cmip_T_value(FALSE, tvb, offset, pinfo, tree, hf_cmip_value);
616 static const ber_sequence Attribute_sequence[] = {
617 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_id },
618 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_value },
623 dissect_cmip_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
624 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
625 Attribute_sequence, hf_index, ett_cmip_Attribute);
629 static int dissect_attribute_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
630 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_attribute);
632 static int dissect_attributeList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
633 return dissect_cmip_Attribute(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeList_item);
635 static int dissect_equality_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
636 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_equality);
638 static int dissect_initialString_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
639 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_initialString);
641 static int dissect_anyString_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
642 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_anyString);
644 static int dissect_finalString_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
645 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_finalString);
647 static int dissect_greaterOrEqual_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
648 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_greaterOrEqual);
650 static int dissect_lessOrEqual_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
651 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_lessOrEqual);
653 static int dissect_subsetOf_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
654 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_subsetOf);
656 static int dissect_supersetOf_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
657 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_supersetOf);
659 static int dissect_nonNullSetIntersection_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
660 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_nonNullSetIntersection);
664 static const value_string GetInfoStatus_vals[] = {
665 { 0, "attributeIdError" },
670 static const ber_choice GetInfoStatus_choice[] = {
671 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_attributeIdError_impl },
672 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_attribute_impl },
677 dissect_cmip_GetInfoStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
678 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
679 GetInfoStatus_choice, hf_index, ett_cmip_GetInfoStatus);
683 static int dissect_getInfoList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
684 return dissect_cmip_GetInfoStatus(FALSE, tvb, offset, pinfo, tree, hf_cmip_getInfoList_item);
687 static const ber_sequence SET_OF_GetInfoStatus_set_of[1] = {
688 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_getInfoList_item },
692 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_) {
693 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
694 SET_OF_GetInfoStatus_set_of, hf_index, ett_cmip_SET_OF_GetInfoStatus);
698 static int dissect_getInfoList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
699 return dissect_cmip_SET_OF_GetInfoStatus(TRUE, tvb, offset, pinfo, tree, hf_cmip_getInfoList);
702 static const ber_sequence GetListError_sequence[] = {
703 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
704 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
705 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
706 { BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_getInfoList_impl },
711 dissect_cmip_GetListError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
712 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
713 GetListError_sequence, hf_index, ett_cmip_GetListError);
717 static int dissect_getListError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
718 return dissect_cmip_GetListError(TRUE, tvb, offset, pinfo, tree, hf_cmip_getListError);
722 static const value_string T_errorStatus2_vals[] = {
723 { 2, "accessDenied" },
724 { 5, "noSuchAttribute" },
725 { 6, "invalidAttributeValue" },
726 { 24, "invalidOperation" },
727 { 25, "invalidOperator" },
733 dissect_cmip_T_errorStatus2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
734 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
738 static int dissect_errorStatus2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
739 return dissect_cmip_T_errorStatus2(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorStatus2);
744 dissect_cmip_T_attributeId1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
745 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
746 hf_cmip_attributeId_OID, object_identifier_id);
751 static int dissect_attributeId2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
752 return dissect_cmip_T_attributeId1(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeId2);
758 dissect_cmip_T_attributeValue1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
759 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
765 static int dissect_attributeValue1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
766 return dissect_cmip_T_attributeValue1(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeValue1);
769 static const ber_sequence AttributeError_sequence[] = {
770 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_errorStatus2 },
771 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyOperator_impl },
772 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeId2 },
773 { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_attributeValue1 },
778 dissect_cmip_AttributeError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
779 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
780 AttributeError_sequence, hf_index, ett_cmip_AttributeError);
784 static int dissect_attributeError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
785 return dissect_cmip_AttributeError(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeError);
789 static const value_string SetInfoStatus_vals[] = {
790 { 0, "attributeError" },
795 static const ber_choice SetInfoStatus_choice[] = {
796 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_attributeError_impl },
797 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_attribute_impl },
802 dissect_cmip_SetInfoStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
803 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
804 SetInfoStatus_choice, hf_index, ett_cmip_SetInfoStatus);
808 static int dissect_setInfoList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
809 return dissect_cmip_SetInfoStatus(FALSE, tvb, offset, pinfo, tree, hf_cmip_setInfoList_item);
812 static const ber_sequence SET_OF_SetInfoStatus_set_of[1] = {
813 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_setInfoList_item },
817 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_) {
818 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
819 SET_OF_SetInfoStatus_set_of, hf_index, ett_cmip_SET_OF_SetInfoStatus);
823 static int dissect_setInfoList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
824 return dissect_cmip_SET_OF_SetInfoStatus(TRUE, tvb, offset, pinfo, tree, hf_cmip_setInfoList);
827 static const ber_sequence SetListError_sequence[] = {
828 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
829 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
830 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
831 { BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_setInfoList_impl },
836 dissect_cmip_SetListError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
837 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
838 SetListError_sequence, hf_index, ett_cmip_SetListError);
842 static int dissect_setListError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
843 return dissect_cmip_SetListError(TRUE, tvb, offset, pinfo, tree, hf_cmip_setListError);
847 static const value_string T_errorStatus1_vals[] = {
848 { 2, "accessDenied" },
849 { 9, "noSuchAction" },
850 { 14, "noSuchArgument" },
851 { 15, "invalidArgumentValue" },
857 dissect_cmip_T_errorStatus1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
858 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
862 static int dissect_errorStatus1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
863 return dissect_cmip_T_errorStatus1(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorStatus1);
868 dissect_cmip_T_actionType1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
869 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
870 hf_cmip_actionType_OID, object_identifier_id);
875 static int dissect_actionType1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
876 return dissect_cmip_T_actionType1(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType1);
881 dissect_cmip_T_actionType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
882 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
883 hf_cmip_actionType_OID, object_identifier_id);
888 static int dissect_actionType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
889 return dissect_cmip_T_actionType(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType);
892 static const ber_sequence NoSuchArgumentAction_sequence[] = {
893 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
894 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType },
899 dissect_cmip_NoSuchArgumentAction(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
900 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
901 NoSuchArgumentAction_sequence, hf_index, ett_cmip_NoSuchArgumentAction);
905 static int dissect_actionId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
906 return dissect_cmip_NoSuchArgumentAction(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionId);
911 dissect_cmip_T_eventType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
912 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
913 hf_cmip_eventType_OID, object_identifier_id);
918 static int dissect_eventType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
919 return dissect_cmip_T_eventType(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType);
922 static const ber_sequence NoSuchArgumentEvent_sequence[] = {
923 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
924 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType },
929 dissect_cmip_NoSuchArgumentEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
930 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
931 NoSuchArgumentEvent_sequence, hf_index, ett_cmip_NoSuchArgumentEvent);
935 static int dissect_eventId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
936 return dissect_cmip_NoSuchArgumentEvent(TRUE, tvb, offset, pinfo, tree, hf_cmip_eventId);
940 static const value_string NoSuchArgument_vals[] = {
946 static const ber_choice NoSuchArgument_choice[] = {
947 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_actionId_impl },
948 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_eventId_impl },
953 dissect_cmip_NoSuchArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
954 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
955 NoSuchArgument_choice, hf_index, ett_cmip_NoSuchArgument);
959 static int dissect_actionArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
960 return dissect_cmip_NoSuchArgument(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionArgument);
965 dissect_cmip_T_actionType3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
966 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
967 hf_cmip_actionType_OID, object_identifier_id);
972 static int dissect_actionType3(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
973 return dissect_cmip_T_actionType3(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType3);
979 dissect_cmip_T_actionInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
980 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
985 static int dissect_actionInfoArg(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
986 return dissect_cmip_T_actionInfoArg(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionInfoArg);
989 static const ber_sequence ActionInfo_sequence[] = {
990 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType3 },
991 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_actionInfoArg },
996 dissect_cmip_ActionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
997 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
998 ActionInfo_sequence, hf_index, ett_cmip_ActionInfo);
1002 static int dissect_actionValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1003 return dissect_cmip_ActionInfo(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionValue);
1005 static int dissect_actionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1006 return dissect_cmip_ActionInfo(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionInfo);
1011 dissect_cmip_T_eventType1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1012 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1013 hf_cmip_eventType_OID, object_identifier_id);
1018 static int dissect_eventType1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1019 return dissect_cmip_T_eventType1(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType1);
1025 dissect_cmip_T_eventInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1026 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1032 static int dissect_eventInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1033 return dissect_cmip_T_eventInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventInfo);
1036 static const ber_sequence InvalidArgumentValueEventValue_sequence[] = {
1037 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType1 },
1038 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_eventInfo },
1043 dissect_cmip_InvalidArgumentValueEventValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1044 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1045 InvalidArgumentValueEventValue_sequence, hf_index, ett_cmip_InvalidArgumentValueEventValue);
1049 static int dissect_eventValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1050 return dissect_cmip_InvalidArgumentValueEventValue(TRUE, tvb, offset, pinfo, tree, hf_cmip_eventValue);
1054 static const value_string InvalidArgumentValue_vals[] = {
1055 { 0, "actionValue" },
1056 { 1, "eventValue" },
1060 static const ber_choice InvalidArgumentValue_choice[] = {
1061 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_actionValue_impl },
1062 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_eventValue_impl },
1063 { 0, 0, 0, 0, NULL }
1067 dissect_cmip_InvalidArgumentValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1068 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1069 InvalidArgumentValue_choice, hf_index, ett_cmip_InvalidArgumentValue);
1073 static int dissect_argumentValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1074 return dissect_cmip_InvalidArgumentValue(FALSE, tvb, offset, pinfo, tree, hf_cmip_argumentValue);
1078 static const value_string ErrorInfo_vals[] = {
1079 { 0, "actionType" },
1080 { 1, "actionArgument" },
1081 { 2, "argumentValue" },
1085 static const ber_choice ErrorInfo_choice[] = {
1086 { 0, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType1 },
1087 { 1, BER_CLASS_CON, 0, 0, dissect_actionArgument },
1088 { 2, BER_CLASS_CON, 1, 0, dissect_argumentValue },
1089 { 0, 0, 0, 0, NULL }
1093 dissect_cmip_ErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1094 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1095 ErrorInfo_choice, hf_index, ett_cmip_ErrorInfo);
1099 static int dissect_errorInfo1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1100 return dissect_cmip_ErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorInfo1);
1103 static const ber_sequence ActionErrorInfo_sequence[] = {
1104 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_errorStatus1 },
1105 { -1/*choice*/ , -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_errorInfo1 },
1110 dissect_cmip_ActionErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1111 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1112 ActionErrorInfo_sequence, hf_index, ett_cmip_ActionErrorInfo);
1116 static int dissect_actionErrorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1117 return dissect_cmip_ActionErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionErrorInfo);
1120 static const ber_sequence ActionError_sequence[] = {
1121 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1122 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1123 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1124 { BER_CLASS_CON, 6, 0, dissect_actionErrorInfo },
1129 dissect_cmip_ActionError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1130 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1131 ActionError_sequence, hf_index, ett_cmip_ActionError);
1135 static int dissect_actionError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1136 return dissect_cmip_ActionError(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionError);
1141 dissect_cmip_T_errorId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1142 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1143 hf_cmip_errorId_OID, object_identifier_id);
1148 static int dissect_errorId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1149 return dissect_cmip_T_errorId(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorId);
1155 dissect_cmip_T_errorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1156 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1161 static int dissect_errorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1162 return dissect_cmip_T_errorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorInfo);
1165 static const ber_sequence SpecificErrorInfo_sequence[] = {
1166 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_errorId },
1167 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_errorInfo },
1172 dissect_cmip_SpecificErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1173 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1174 SpecificErrorInfo_sequence, hf_index, ett_cmip_SpecificErrorInfo);
1178 static int dissect_specificErrorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1179 return dissect_cmip_SpecificErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_specificErrorInfo);
1182 static const ber_sequence ProcessingFailure_sequence[] = {
1183 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1184 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1185 { BER_CLASS_CON, 5, 0, dissect_specificErrorInfo },
1190 dissect_cmip_ProcessingFailure(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1191 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1192 ProcessingFailure_sequence, hf_index, ett_cmip_ProcessingFailure);
1196 static int dissect_processingFailure_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1197 return dissect_cmip_ProcessingFailure(TRUE, tvb, offset, pinfo, tree, hf_cmip_processingFailure);
1201 static const value_string T_deleteErrorInfo_vals[] = {
1202 { 2, "accessDenied" },
1208 dissect_cmip_T_deleteErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1209 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1213 static int dissect_deleteErrorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1214 return dissect_cmip_T_deleteErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_deleteErrorInfo);
1217 static const ber_sequence DeleteError_sequence[] = {
1218 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1219 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1220 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1221 { BER_CLASS_CON, 6, 0, dissect_deleteErrorInfo },
1226 dissect_cmip_DeleteError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1227 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1228 DeleteError_sequence, hf_index, ett_cmip_DeleteError);
1232 static int dissect_deleteError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1233 return dissect_cmip_DeleteError(TRUE, tvb, offset, pinfo, tree, hf_cmip_deleteError);
1236 static const ber_sequence SET_OF_Attribute_set_of[1] = {
1237 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_attributeList_item },
1241 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_) {
1242 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1243 SET_OF_Attribute_set_of, hf_index, ett_cmip_SET_OF_Attribute);
1247 static int dissect_attributeList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1248 return dissect_cmip_SET_OF_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeList);
1251 static const ber_sequence SetResult_sequence[] = {
1252 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1253 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1254 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1255 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
1260 dissect_cmip_SetResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1261 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1262 SetResult_sequence, hf_index, ett_cmip_SetResult);
1266 static int dissect_setResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1267 return dissect_cmip_SetResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_setResult);
1272 dissect_cmip_AccessControl(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1273 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1278 static int dissect_accessControl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1279 return dissect_cmip_AccessControl(FALSE, tvb, offset, pinfo, tree, hf_cmip_accessControl);
1283 static const value_string CMISSync_vals[] = {
1284 { 0, "bestEffort" },
1291 dissect_cmip_CMISSync(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1292 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1296 static int dissect_synchronization_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1297 return dissect_cmip_CMISSync(TRUE, tvb, offset, pinfo, tree, hf_cmip_synchronization);
1301 static const value_string T_namedNumbers_vals[] = {
1302 { 0, "baseObject" },
1303 { 1, "firstLevelOnly" },
1304 { 2, "wholeSubtree" },
1310 dissect_cmip_T_namedNumbers(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1311 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1315 static int dissect_namedNumbers(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1316 return dissect_cmip_T_namedNumbers(FALSE, tvb, offset, pinfo, tree, hf_cmip_namedNumbers);
1322 dissect_cmip_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1323 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1327 static int dissect_individualLevels_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1328 return dissect_cmip_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_cmip_individualLevels);
1330 static int dissect_baseToNthLevel_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1331 return dissect_cmip_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_cmip_baseToNthLevel);
1335 static const value_string Scope_vals[] = {
1336 { 0, "namedNumbers" },
1337 { 1, "individualLevels" },
1338 { 2, "baseToNthLevel" },
1342 static const ber_choice Scope_choice[] = {
1343 { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_namedNumbers },
1344 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_individualLevels_impl },
1345 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_baseToNthLevel_impl },
1346 { 0, 0, 0, 0, NULL }
1350 dissect_cmip_Scope(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1351 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1352 Scope_choice, hf_index, ett_cmip_Scope);
1356 static int dissect_scope(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1357 return dissect_cmip_Scope(FALSE, tvb, offset, pinfo, tree, hf_cmip_scope);
1361 static const value_string T_substrings_item_vals[] = {
1362 { 0, "initialString" },
1364 { 2, "finalString" },
1368 static const ber_choice T_substrings_item_choice[] = {
1369 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_initialString_impl },
1370 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_anyString_impl },
1371 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_finalString_impl },
1372 { 0, 0, 0, 0, NULL }
1376 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_) {
1377 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1378 T_substrings_item_choice, hf_index, ett_cmip_T_substrings_item);
1382 static int dissect_substrings_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1383 return dissect_cmip_T_substrings_item(FALSE, tvb, offset, pinfo, tree, hf_cmip_substrings_item);
1386 static const ber_sequence T_substrings_sequence_of[1] = {
1387 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_substrings_item },
1391 dissect_cmip_T_substrings(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1392 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1393 T_substrings_sequence_of, hf_index, ett_cmip_T_substrings);
1397 static int dissect_substrings_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1398 return dissect_cmip_T_substrings(TRUE, tvb, offset, pinfo, tree, hf_cmip_substrings);
1402 static const value_string FilterItem_vals[] = {
1404 { 1, "substrings" },
1405 { 2, "greaterOrEqual" },
1406 { 3, "lessOrEqual" },
1409 { 6, "supersetOf" },
1410 { 7, "nonNullSetIntersection" },
1414 static const ber_choice FilterItem_choice[] = {
1415 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_equality_impl },
1416 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_substrings_impl },
1417 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_greaterOrEqual_impl },
1418 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_lessOrEqual_impl },
1419 { 4, BER_CLASS_CON, 4, 0, dissect_present },
1420 { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_subsetOf_impl },
1421 { 6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_supersetOf_impl },
1422 { 7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_nonNullSetIntersection_impl },
1423 { 0, 0, 0, 0, NULL }
1427 dissect_cmip_FilterItem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1428 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1429 FilterItem_choice, hf_index, ett_cmip_FilterItem);
1433 static int dissect_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1434 return dissect_cmip_FilterItem(FALSE, tvb, offset, pinfo, tree, hf_cmip_item);
1437 static const ber_sequence SET_OF_CMISFilter_set_of[1] = {
1438 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_and_item },
1442 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_) {
1443 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1444 SET_OF_CMISFilter_set_of, hf_index, ett_cmip_SET_OF_CMISFilter);
1448 static int dissect_and_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1449 return dissect_cmip_SET_OF_CMISFilter(TRUE, tvb, offset, pinfo, tree, hf_cmip_and);
1451 static int dissect_or_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_or);
1456 static const value_string CMISFilter_vals[] = {
1464 static const ber_choice CMISFilter_choice[] = {
1465 { 8, BER_CLASS_CON, 8, 0, dissect_item },
1466 { 9, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_and_impl },
1467 { 10, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_or_impl },
1468 { 11, BER_CLASS_CON, 11, 0, dissect_not },
1469 { 0, 0, 0, 0, NULL }
1473 dissect_cmip_CMISFilter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1474 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1475 CMISFilter_choice, hf_index, ett_cmip_CMISFilter);
1480 static const ber_sequence SET_OF_ModificationItem_set_of[1] = {
1481 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_modificationList_item },
1485 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_) {
1486 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1487 SET_OF_ModificationItem_set_of, hf_index, ett_cmip_SET_OF_ModificationItem);
1491 static int dissect_modificationList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1492 return dissect_cmip_SET_OF_ModificationItem(TRUE, tvb, offset, pinfo, tree, hf_cmip_modificationList);
1495 static const ber_sequence SetArgument_sequence[] = {
1496 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
1497 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
1498 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
1499 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_synchronization_impl },
1500 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_scope },
1501 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_filter },
1502 { BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_modificationList_impl },
1507 dissect_cmip_SetArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1508 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1509 SetArgument_sequence, hf_index, ett_cmip_SetArgument);
1514 static const ber_sequence GetResult_sequence[] = {
1515 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1516 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1517 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1518 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
1523 dissect_cmip_GetResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1524 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1525 GetResult_sequence, hf_index, ett_cmip_GetResult);
1529 static int dissect_getResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1530 return dissect_cmip_GetResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_getResult);
1535 dissect_cmip_T_actionType2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1536 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1537 hf_cmip_actionType_OID, object_identifier_id);
1542 static int dissect_actionType2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1543 return dissect_cmip_T_actionType2(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType2);
1549 dissect_cmip_T_actionReplyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1550 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1555 static int dissect_actionReplyInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1556 return dissect_cmip_T_actionReplyInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionReplyInfo);
1559 static const ber_sequence ActionReply_sequence[] = {
1560 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType2 },
1561 { BER_CLASS_CON, 4, 0, dissect_actionReplyInfo },
1566 dissect_cmip_ActionReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1567 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1568 ActionReply_sequence, hf_index, ett_cmip_ActionReply);
1572 static int dissect_actionReply_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1573 return dissect_cmip_ActionReply(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionReply);
1576 static const ber_sequence ActionResult_sequence[] = {
1577 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1578 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1579 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1580 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_actionReply_impl },
1585 dissect_cmip_ActionResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1586 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1587 ActionResult_sequence, hf_index, ett_cmip_ActionResult);
1591 static int dissect_actionResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1592 return dissect_cmip_ActionResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionResult);
1595 static const ber_sequence DeleteResult_sequence[] = {
1596 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1597 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1598 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1603 dissect_cmip_DeleteResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1604 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1605 DeleteResult_sequence, hf_index, ett_cmip_DeleteResult);
1609 static int dissect_deleteResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1610 return dissect_cmip_DeleteResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_deleteResult);
1614 static const value_string LinkedReplyArgument_vals[] = {
1616 { 1, "getListError" },
1618 { 3, "setListError" },
1619 { 4, "actionResult" },
1620 { 5, "processingFailure" },
1621 { 6, "deleteResult" },
1622 { 7, "actionError" },
1623 { 8, "deleteError" },
1627 static const ber_choice LinkedReplyArgument_choice[] = {
1628 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_getResult_impl },
1629 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_getListError_impl },
1630 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_setResult_impl },
1631 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_setListError_impl },
1632 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_actionResult_impl },
1633 { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_processingFailure_impl },
1634 { 6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_deleteResult_impl },
1635 { 7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_actionError_impl },
1636 { 8, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_deleteError_impl },
1637 { 0, 0, 0, 0, NULL }
1641 dissect_cmip_LinkedReplyArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1642 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1643 LinkedReplyArgument_choice, hf_index, ett_cmip_LinkedReplyArgument);
1650 dissect_cmip_T_eventType2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1651 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1652 hf_cmip_eventType_OID, object_identifier_id);
1657 static int dissect_eventType2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1658 return dissect_cmip_T_eventType2(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType2);
1664 dissect_cmip_T_eventReplyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1665 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1670 static int dissect_eventReplyInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1671 return dissect_cmip_T_eventReplyInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventReplyInfo);
1674 static const ber_sequence EventReply_sequence[] = {
1675 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType2 },
1676 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_eventReplyInfo },
1681 dissect_cmip_EventReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1682 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1683 EventReply_sequence, hf_index, ett_cmip_EventReply);
1687 static int dissect_eventReply(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1688 return dissect_cmip_EventReply(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventReply);
1691 static const ber_sequence EventReportResult_sequence[] = {
1692 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1693 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1694 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1695 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_eventReply },
1700 dissect_cmip_EventReportResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1701 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1702 EventReportResult_sequence, hf_index, ett_cmip_EventReportResult);
1709 dissect_cmip_T_eventType3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1710 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1711 hf_cmip_eventType_OID, object_identifier_id);
1716 static int dissect_eventType3(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1717 return dissect_cmip_T_eventType3(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType3);
1723 dissect_cmip_T_eventInfo1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1724 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1730 static int dissect_eventInfo1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1731 return dissect_cmip_T_eventInfo1(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventInfo1);
1734 static const ber_sequence EventReportArgument_sequence[] = {
1735 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1736 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1737 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventTime_impl },
1738 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType3 },
1739 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_eventInfo1 },
1744 dissect_cmip_EventReportArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1745 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1746 EventReportArgument_sequence, hf_index, ett_cmip_EventReportArgument);
1751 static const ber_sequence DeleteArgument_sequence[] = {
1752 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
1753 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
1754 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
1755 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_synchronization_impl },
1756 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_scope },
1757 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_filter },
1762 dissect_cmip_DeleteArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1763 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1764 DeleteArgument_sequence, hf_index, ett_cmip_DeleteArgument);
1770 static const value_string T_managedOrSuperiorObjectInstance_vals[] = {
1771 { -1/*choice*/, "managedObjectInstance" },
1772 { 8, "superiorObjectInstance" },
1776 static const ber_choice T_managedOrSuperiorObjectInstance_choice[] = {
1777 { -1/*choice*/, BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_managedObjectInstance },
1778 { 8, BER_CLASS_CON, 8, 0, dissect_superiorObjectInstance },
1779 { 0, 0, 0, 0, NULL }
1783 dissect_cmip_T_managedOrSuperiorObjectInstance(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1784 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1785 T_managedOrSuperiorObjectInstance_choice, hf_index, ett_cmip_T_managedOrSuperiorObjectInstance);
1789 static int dissect_managedOrSuperiorObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1790 return dissect_cmip_T_managedOrSuperiorObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_managedOrSuperiorObjectInstance);
1793 static const ber_sequence CreateArgument_sequence[] = {
1794 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1795 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedOrSuperiorObjectInstance },
1796 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
1797 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_referenceObjectInstance },
1798 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
1803 dissect_cmip_CreateArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1804 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1805 CreateArgument_sequence, hf_index, ett_cmip_CreateArgument);
1810 static const ber_sequence CreateResult_sequence[] = {
1811 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1812 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1813 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1814 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
1819 dissect_cmip_CreateResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1820 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1821 CreateResult_sequence, hf_index, ett_cmip_CreateResult);
1826 static const ber_sequence ActionArgument_sequence[] = {
1827 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
1828 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
1829 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
1830 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_synchronization_impl },
1831 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_scope },
1832 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_filter },
1833 { BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_actionInfo_impl },
1838 dissect_cmip_ActionArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1839 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1840 ActionArgument_sequence, hf_index, ett_cmip_ActionArgument);
1845 static const ber_sequence BaseManagedObjectId_sequence[] = {
1846 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
1847 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
1852 dissect_cmip_BaseManagedObjectId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1853 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1854 BaseManagedObjectId_sequence, hf_index, ett_cmip_BaseManagedObjectId);
1859 static const ber_sequence SET_OF_AttributeId_set_of[1] = {
1860 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_attributeIdList_item },
1864 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_) {
1865 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1866 SET_OF_AttributeId_set_of, hf_index, ett_cmip_SET_OF_AttributeId);
1870 static int dissect_attributeIdList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1871 return dissect_cmip_SET_OF_AttributeId(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeIdList);
1874 static const ber_sequence GetArgument_sequence[] = {
1875 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
1876 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
1877 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
1878 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_synchronization_impl },
1879 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_scope },
1880 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_filter },
1881 { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeIdList_impl },
1886 dissect_cmip_GetArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1887 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1888 GetArgument_sequence, hf_index, ett_cmip_GetArgument);
1896 dissect_cmip_Argument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1897 switch(opcode_type){
1900 case 0: /* M-eventreport */
1901 offset = dissect_cmip_EventReportArgument(FALSE, tvb, offset, pinfo, tree, -1);
1903 case 1: /* M-eventreport-confirmed */
1904 offset = dissect_cmip_EventReportArgument(FALSE, tvb, offset, pinfo, tree, -1);
1906 case 2: /* M-linkedreply */
1907 offset = dissect_cmip_LinkedReplyArgument(FALSE, tvb, offset, pinfo, tree, -1);
1910 offset = dissect_cmip_GetArgument(FALSE, tvb, offset, pinfo, tree, -1);
1913 offset = dissect_cmip_SetArgument(FALSE, tvb, offset, pinfo, tree, -1);
1915 case 5: /* M-set-confirmed */
1916 offset = dissect_cmip_SetArgument(FALSE, tvb, offset, pinfo, tree, -1);
1918 case 6: /* M-action*/
1919 offset = dissect_cmip_ActionInfo(FALSE, tvb, offset, pinfo, tree, -1);
1921 case 7: /* M-action-confirmed*/
1922 offset = dissect_cmip_ActionInfo(FALSE, tvb, offset, pinfo, tree, -1);
1924 case 8: /* M-create*/
1925 offset = dissect_cmip_CreateArgument(FALSE, tvb, offset, pinfo, tree, -1);
1927 case 9: /* M-delete*/
1928 offset = dissect_cmip_DeleteArgument(FALSE, tvb, offset, pinfo, tree, -1);
1930 case 10: /* M-cancelget */
1931 offset = dissect_cmip_InvokeIDType(FALSE, tvb, offset, pinfo, tree, -1);
1935 case OPCODE_RETURN_RESULT:
1937 case 0: /* M-eventreport*/
1938 break; /* No return data */
1939 case 1: /* M-eventreport-confirmed */
1940 offset = dissect_cmip_EventReportResult(FALSE, tvb, offset, pinfo, tree, -1);
1942 case 2: /* M-linkedreply*/
1943 break; /* No return data */
1945 offset = dissect_cmip_GetResult(FALSE, tvb, offset, pinfo, tree, -1);
1948 break; /* No return data */
1949 case 5: /* M-set-confirmed*/
1950 offset = dissect_cmip_SetResult(FALSE, tvb, offset, pinfo, tree, -1);
1952 case 6: /* M-action*/
1953 break; /* No return data */
1954 case 7: /* M-action-confirmed*/
1955 offset = dissect_cmip_ActionResult(FALSE, tvb, offset, pinfo, tree, -1);
1957 case 8: /* M-create*/
1958 offset = dissect_cmip_CreateResult(FALSE, tvb, offset, pinfo, tree, -1);
1960 case 9: /* M-delete*/
1961 offset = dissect_cmip_DeleteResult(FALSE, tvb, offset, pinfo, tree, -1);
1963 case 10: /* M-cancelget */
1964 break; /* doe this one return any data? */
1967 /*XXX add more types here */
1973 static int dissect_argument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1974 return dissect_cmip_Argument(FALSE, tvb, offset, pinfo, tree, hf_cmip_argument);
1978 static const value_string Opcode_vals[] = {
1979 { 0, "m-EventReport" },
1980 { 1, "m-EventReport-Confirmed" },
1981 { 2, "m-Linked-Reply" },
1984 { 5, "m-Set-Confirmed" },
1986 { 7, "m-Action-Confirmed" },
1989 { 10, "m-CancelGet" },
1995 dissect_cmip_Opcode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1996 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, &opcode);
1997 if(check_col(pinfo->cinfo, COL_INFO)){
1998 col_prepend_fstr(pinfo->cinfo, COL_INFO, "%s", val_to_str(opcode, Opcode_vals, " Unknown Opcode:%d"));
2003 static int dissect_opcode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2004 return dissect_cmip_Opcode(FALSE, tvb, offset, pinfo, tree, hf_cmip_opcode);
2007 static const ber_sequence ReturnResultBody_sequence[] = {
2008 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_opcode },
2009 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_argument },
2014 dissect_cmip_ReturnResultBody(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2015 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2016 ReturnResultBody_sequence, hf_index, ett_cmip_ReturnResultBody);
2020 static int dissect_rRBody(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2021 return dissect_cmip_ReturnResultBody(FALSE, tvb, offset, pinfo, tree, hf_cmip_rRBody);
2027 dissect_cmip_InvokeID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2028 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2032 static int dissect_present2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2033 return dissect_cmip_InvokeID(FALSE, tvb, offset, pinfo, tree, hf_cmip_present2);
2038 dissect_cmip_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2039 { proto_item *ti_tmp;
2040 ti_tmp = proto_tree_add_item(tree, hf_index, tvb, offset>>8, 0, FALSE);
2041 proto_item_append_text(ti_tmp, ": NULL");
2046 static int dissect_absent(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2047 return dissect_cmip_NULL(FALSE, tvb, offset, pinfo, tree, hf_cmip_absent);
2049 static int dissect_absent_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2050 return dissect_cmip_NULL(TRUE, tvb, offset, pinfo, tree, hf_cmip_absent);
2054 static const value_string InvokeId_vals[] = {
2060 static const ber_choice InvokeId_choice[] = {
2061 { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_present2 },
2062 { 1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_absent },
2063 { 0, 0, 0, 0, NULL }
2067 dissect_cmip_InvokeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2068 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2069 InvokeId_choice, hf_index, ett_cmip_InvokeId);
2073 static int dissect_present1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2074 return dissect_cmip_InvokeId(TRUE, tvb, offset, pinfo, tree, hf_cmip_present1);
2076 static int dissect_invokeId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2077 return dissect_cmip_InvokeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_invokeId);
2081 static const value_string InvokeLinkedId_vals[] = {
2087 static const ber_choice InvokeLinkedId_choice[] = {
2088 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_present1_impl },
2089 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_absent_impl },
2090 { 0, 0, 0, 0, NULL }
2094 dissect_cmip_InvokeLinkedId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2095 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2096 InvokeLinkedId_choice, hf_index, ett_cmip_InvokeLinkedId);
2100 static int dissect_linkedId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2101 return dissect_cmip_InvokeLinkedId(FALSE, tvb, offset, pinfo, tree, hf_cmip_linkedId);
2106 dissect_cmip_InvokeIDType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2107 offset = dissect_cmip_InvokeId(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2112 static const ber_sequence Invoke_sequence[] = {
2113 { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
2114 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_linkedId },
2115 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_opcode },
2116 { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_argument },
2121 dissect_cmip_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2122 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2123 Invoke_sequence, hf_index, ett_cmip_Invoke);
2125 opcode_type=OPCODE_INVOKE;
2126 if(check_col(pinfo->cinfo, COL_INFO)){
2127 col_prepend_fstr(pinfo->cinfo, COL_INFO, "Invoke ");
2131 static int dissect_invoke_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2132 return dissect_cmip_Invoke(TRUE, tvb, offset, pinfo, tree, hf_cmip_invoke);
2135 static const ber_sequence ReturnResult_sequence[] = {
2136 { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
2137 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_rRBody },
2142 dissect_cmip_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2143 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2144 ReturnResult_sequence, hf_index, ett_cmip_ReturnResult);
2146 opcode_type=OPCODE_RETURN_RESULT;
2147 if(check_col(pinfo->cinfo, COL_INFO)){
2148 col_prepend_fstr(pinfo->cinfo, COL_INFO, "ReturnResult ");
2152 static int dissect_returnResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2153 return dissect_cmip_ReturnResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_returnResult);
2156 static const ber_sequence ReturnError_sequence[] = {
2157 { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
2162 dissect_cmip_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2163 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2164 ReturnError_sequence, hf_index, ett_cmip_ReturnError);
2166 opcode_type=OPCODE_RETURN_ERROR;
2167 if(check_col(pinfo->cinfo, COL_INFO)){
2168 col_prepend_fstr(pinfo->cinfo, COL_INFO, "ReturnError ");
2172 static int dissect_returnError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2173 return dissect_cmip_ReturnError(TRUE, tvb, offset, pinfo, tree, hf_cmip_returnError);
2177 static const value_string GeneralProblem_vals[] = {
2178 { 0, "unrecognizedPDU" },
2179 { 1, "mistypedPDU" },
2180 { 2, "badlyStructuredPDU" },
2186 dissect_cmip_GeneralProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2187 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2191 static int dissect_generalProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2192 return dissect_cmip_GeneralProblem(TRUE, tvb, offset, pinfo, tree, hf_cmip_generalProblem);
2196 static const value_string InvokeProblem_vals[] = {
2197 { 0, "duplicateInvocation" },
2198 { 1, "unrecognizedOperation" },
2199 { 2, "mistypedArgument" },
2200 { 3, "resourceLimitation" },
2201 { 4, "releaseInProgress" },
2202 { 5, "unrecognizedLinkedId" },
2203 { 6, "linkedResponseUnexpected" },
2204 { 7, "unexpectedLinkedOperation" },
2210 dissect_cmip_InvokeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2211 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2215 static int dissect_invokeProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2216 return dissect_cmip_InvokeProblem(TRUE, tvb, offset, pinfo, tree, hf_cmip_invokeProblem);
2220 static const value_string ReturnResultProblem_vals[] = {
2221 { 0, "unrecognizedInvocation" },
2222 { 1, "resultResponseUnexpected" },
2223 { 2, "mistypedResult" },
2229 dissect_cmip_ReturnResultProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2230 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2234 static int dissect_returnResultProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2235 return dissect_cmip_ReturnResultProblem(TRUE, tvb, offset, pinfo, tree, hf_cmip_returnResultProblem);
2239 static const value_string ReturnErrorProblem_vals[] = {
2240 { 0, "unrecognizedInvocation" },
2241 { 1, "errorResponseUnexpected" },
2242 { 2, "unrecognizedError" },
2243 { 3, "unexpectedError" },
2244 { 4, "mistypedParameter" },
2250 dissect_cmip_ReturnErrorProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2251 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2255 static int dissect_returnErrorProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2256 return dissect_cmip_ReturnErrorProblem(TRUE, tvb, offset, pinfo, tree, hf_cmip_returnErrorProblem);
2260 static const value_string RejectProblem_vals[] = {
2261 { 0, "general-unrecognizedPDU" },
2262 { 1, "general-mistypedPDU" },
2263 { 2, "general-badlyStructuredPDU" },
2264 { 10, "invoke-duplicateInvocation" },
2265 { 11, "invoke-unrecognizedOperation" },
2266 { 12, "invoke-mistypedArgument" },
2267 { 13, "invoke-resourceLimitation" },
2268 { 14, "invoke-releaseInProgress" },
2269 { 15, "invoke-unrecognizedLinkedId" },
2270 { 16, "invoke-linkedResponseUnexpected" },
2271 { 17, "invoke-unexpectedLinkedOperation" },
2272 { 20, "returnResult-unrecognizedInvocation" },
2273 { 21, "returnResult-resultResponseUnexpected" },
2274 { 22, "returnResult-mistypedResult" },
2275 { 30, "returnError-unrecognizedInvocation" },
2276 { 31, "returnError-errorResponseUnexpected" },
2277 { 32, "returnError-unrecognizedError" },
2278 { 33, "returnError-unexpectedError" },
2279 { 34, "returnError-mistypedParameter" },
2285 dissect_cmip_RejectProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2286 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2292 static const value_string RejectProb_vals[] = {
2293 { 0, "generalProblem" },
2294 { 1, "invokeProblem" },
2295 { 2, "returnResultProblem" },
2296 { 3, "returnErrorProblem" },
2300 static const ber_choice RejectProb_choice[] = {
2301 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_generalProblem_impl },
2302 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invokeProblem_impl },
2303 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResultProblem_impl },
2304 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnErrorProblem_impl },
2305 { 0, 0, 0, 0, NULL }
2309 dissect_cmip_RejectProb(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2310 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2311 RejectProb_choice, hf_index, ett_cmip_RejectProb);
2315 static int dissect_rejectProblem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2316 return dissect_cmip_RejectProb(FALSE, tvb, offset, pinfo, tree, hf_cmip_rejectProblem);
2319 static const ber_sequence Reject_sequence[] = {
2320 { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
2321 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_rejectProblem },
2326 dissect_cmip_Reject(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2327 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2328 Reject_sequence, hf_index, ett_cmip_Reject);
2330 opcode_type=OPCODE_REJECT;
2331 if(check_col(pinfo->cinfo, COL_INFO)){
2332 col_prepend_fstr(pinfo->cinfo, COL_INFO, "Reject ");
2336 static int dissect_reject_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2337 return dissect_cmip_Reject(TRUE, tvb, offset, pinfo, tree, hf_cmip_reject);
2341 const value_string ROS_vals[] = {
2343 { 2, "returnResult" },
2344 { 3, "returnError" },
2349 static const ber_choice ROS_choice[] = {
2350 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invoke_impl },
2351 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResult_impl },
2352 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnError_impl },
2353 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_reject_impl },
2354 { 0, 0, 0, 0, NULL }
2358 dissect_cmip_ROS(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2359 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2360 ROS_choice, hf_index, ett_cmip_ROS);
2366 static const value_string CMIPAbortSource_vals[] = {
2367 { 0, "cmiseServiceUser" },
2368 { 1, "cmiseServiceProvider" },
2374 dissect_cmip_CMIPAbortSource(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2376 offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, &value);
2377 if(check_col(pinfo->cinfo, COL_INFO)){
2378 col_append_fstr(pinfo->cinfo, COL_INFO, " AbortSource:%s", val_to_str(value, CMIPAbortSource_vals, " Unknown AbortSource:%d"));
2383 static int dissect_abortSource_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2384 return dissect_cmip_CMIPAbortSource(TRUE, tvb, offset, pinfo, tree, hf_cmip_abortSource);
2387 static const ber_sequence CMIPAbortInfo_sequence[] = {
2388 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_abortSource_impl },
2393 dissect_cmip_CMIPAbortInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2394 if(check_col(pinfo->cinfo, COL_INFO)){
2395 col_append_fstr(pinfo->cinfo, COL_INFO, "CMIP-A-ABORT");
2397 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2398 CMIPAbortInfo_sequence, hf_index, ett_cmip_CMIPAbortInfo);
2403 static const asn_namedbit FunctionalUnits_bits[] = {
2404 { 0, &hf_cmip_FunctionalUnits_multipleObjectSelection, -1, -1, NULL, NULL },
2405 { 1, &hf_cmip_FunctionalUnits_filter, -1, -1, NULL, NULL },
2406 { 2, &hf_cmip_FunctionalUnits_multipleReply, -1, -1, NULL, NULL },
2407 { 3, &hf_cmip_FunctionalUnits_extendedService, -1, -1, NULL, NULL },
2408 { 4, &hf_cmip_FunctionalUnits_cancelGet, -1, -1, NULL, NULL },
2409 { 0, NULL, 0, 0, NULL, NULL }
2413 dissect_cmip_FunctionalUnits(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2414 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
2415 FunctionalUnits_bits, hf_index, ett_cmip_FunctionalUnits,
2420 static int dissect_functionalUnits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2421 return dissect_cmip_FunctionalUnits(TRUE, tvb, offset, pinfo, tree, hf_cmip_functionalUnits);
2424 static const asn_namedbit ProtocolVersion_bits[] = {
2425 { 0, &hf_cmip_ProtocolVersion_version1, -1, -1, NULL, NULL },
2426 { 1, &hf_cmip_ProtocolVersion_version2, -1, -1, NULL, NULL },
2427 { 0, NULL, 0, 0, NULL, NULL }
2431 dissect_cmip_ProtocolVersion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2432 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
2433 ProtocolVersion_bits, hf_index, ett_cmip_ProtocolVersion,
2438 static int dissect_protocolVersion_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2439 return dissect_cmip_ProtocolVersion(TRUE, tvb, offset, pinfo, tree, hf_cmip_protocolVersion);
2442 static const ber_sequence CMIPUserInfo_sequence[] = {
2443 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_protocolVersion_impl },
2444 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_functionalUnits_impl },
2449 dissect_cmip_CMIPUserInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2450 if(check_col(pinfo->cinfo, COL_INFO)){
2451 col_append_fstr(pinfo->cinfo, COL_INFO, "CMIP-A-ASSOCIATE");
2453 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2454 CMIPUserInfo_sequence, hf_index, ett_cmip_CMIPUserInfo);
2460 /*--- End of included file: packet-cmip-fn.c ---*/
2463 /* XXX this one should be broken out later and moved into the conformance file */
2465 dissect_cmip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
2467 static struct SESSION_DATA_STRUCTURE* session = NULL;
2468 proto_item *item = NULL;
2469 proto_tree *tree = NULL;
2472 /* do we have spdu type from the session dissector? */
2473 if( !pinfo->private_data ){
2475 proto_tree_add_text(tree, tvb, 0, -1,
2476 "Internal error:can't get spdu type from session dissector.");
2480 session = ( (struct SESSION_DATA_STRUCTURE*)(pinfo->private_data) );
2481 if(session->spdu_type == 0 ){
2483 proto_tree_add_text(tree, tvb, 0, -1,
2484 "Internal error:wrong spdu type %x from session dissector.",session->spdu_type);
2491 item = proto_tree_add_item(parent_tree, proto_cmip, tvb, 0, -1, FALSE);
2492 tree = proto_item_add_subtree(item, ett_cmip);
2495 if (check_col(pinfo->cinfo, COL_PROTOCOL))
2496 col_set_str(pinfo->cinfo, COL_PROTOCOL, "CMIP");
2497 if (check_col(pinfo->cinfo, COL_INFO))
2498 col_clear(pinfo->cinfo, COL_INFO);
2499 switch(session->spdu_type){
2500 case SES_CONNECTION_REQUEST:
2501 case SES_CONNECTION_ACCEPT:
2502 case SES_DISCONNECT:
2504 dissect_cmip_CMIPUserInfo(FALSE,tvb,0,pinfo,tree,-1);
2508 dissect_cmip_CMIPAbortInfo(FALSE,tvb,0,pinfo,tree,-1);
2510 case SES_DATA_TRANSFER:
2511 dissect_cmip_ROS(FALSE,tvb,0,pinfo,tree,-1);
2518 /*--- proto_register_cmip ----------------------------------------------*/
2519 void proto_register_cmip(void) {
2521 /* List of fields */
2522 static hf_register_info hf[] = {
2523 { &hf_cmip_actionType_OID,
2524 { "actionType", "cmip.actionType_OID",
2525 FT_STRING, BASE_NONE, NULL, 0,
2526 "actionType", HFILL }},
2527 { &hf_cmip_eventType_OID,
2528 { "eventType", "cmip.eventType_OID",
2529 FT_STRING, BASE_NONE, NULL, 0,
2530 "eventType", HFILL }},
2531 { &hf_cmip_attributeId_OID,
2532 { "attributeId", "cmip.attributeId_OID",
2533 FT_STRING, BASE_NONE, NULL, 0,
2534 "attributeId", HFILL }},
2535 { &hf_cmip_errorId_OID,
2536 { "errorId", "cmip.errorId_OID",
2537 FT_STRING, BASE_NONE, NULL, 0,
2538 "errorId", HFILL }},
2540 /*--- Included file: packet-cmip-hfarr.c ---*/
2542 { &hf_cmip_modifyOperator,
2543 { "modifyOperator", "cmip.modifyOperator",
2544 FT_INT32, BASE_DEC, VALS(ModifyOperator_vals), 0,
2546 { &hf_cmip_attributeId,
2547 { "attributeId", "cmip.attributeId",
2548 FT_STRING, BASE_NONE, NULL, 0,
2549 "ModificationItem/attributeId", HFILL }},
2550 { &hf_cmip_attributeValue,
2551 { "attributeValue", "cmip.attributeValue",
2552 FT_NONE, BASE_NONE, NULL, 0,
2553 "ModificationItem/attributeValue", HFILL }},
2554 { &hf_cmip_managedObjectClass,
2555 { "managedObjectClass", "cmip.managedObjectClass",
2556 FT_UINT32, BASE_DEC, VALS(ObjectClass_vals), 0,
2558 { &hf_cmip_managedObjectInstance,
2559 { "managedObjectInstance", "cmip.managedObjectInstance",
2560 FT_UINT32, BASE_DEC, VALS(ObjectInstance_vals), 0,
2562 { &hf_cmip_currentTime,
2563 { "currentTime", "cmip.currentTime",
2564 FT_STRING, BASE_NONE, NULL, 0,
2566 { &hf_cmip_getInfoList,
2567 { "getInfoList", "cmip.getInfoList",
2568 FT_UINT32, BASE_DEC, NULL, 0,
2569 "GetListError/getInfoList", HFILL }},
2570 { &hf_cmip_getInfoList_item,
2571 { "Item", "cmip.getInfoList_item",
2572 FT_UINT32, BASE_DEC, VALS(GetInfoStatus_vals), 0,
2573 "GetListError/getInfoList/_item", HFILL }},
2574 { &hf_cmip_attributeIdError,
2575 { "attributeIdError", "cmip.attributeIdError",
2576 FT_NONE, BASE_NONE, NULL, 0,
2577 "GetInfoStatus/attributeIdError", HFILL }},
2578 { &hf_cmip_attribute,
2579 { "attribute", "cmip.attribute",
2580 FT_NONE, BASE_NONE, NULL, 0,
2582 { &hf_cmip_errorStatus,
2583 { "errorStatus", "cmip.errorStatus",
2584 FT_UINT32, BASE_DEC, VALS(T_errorStatus_vals), 0,
2585 "AttributeIdError/errorStatus", HFILL }},
2586 { &hf_cmip_attributeId1,
2587 { "attributeId", "cmip.attributeId",
2588 FT_UINT32, BASE_DEC, VALS(AttributeId_vals), 0,
2589 "AttributeIdError/attributeId", HFILL }},
2590 { &hf_cmip_setInfoList,
2591 { "setInfoList", "cmip.setInfoList",
2592 FT_UINT32, BASE_DEC, NULL, 0,
2593 "SetListError/setInfoList", HFILL }},
2594 { &hf_cmip_setInfoList_item,
2595 { "Item", "cmip.setInfoList_item",
2596 FT_UINT32, BASE_DEC, VALS(SetInfoStatus_vals), 0,
2597 "SetListError/setInfoList/_item", HFILL }},
2598 { &hf_cmip_actionErrorInfo,
2599 { "actionErrorInfo", "cmip.actionErrorInfo",
2600 FT_NONE, BASE_NONE, NULL, 0,
2601 "ActionError/actionErrorInfo", HFILL }},
2602 { &hf_cmip_specificErrorInfo,
2603 { "specificErrorInfo", "cmip.specificErrorInfo",
2604 FT_NONE, BASE_NONE, NULL, 0,
2605 "ProcessingFailure/specificErrorInfo", HFILL }},
2606 { &hf_cmip_deleteErrorInfo,
2607 { "deleteErrorInfo", "cmip.deleteErrorInfo",
2608 FT_UINT32, BASE_DEC, VALS(T_deleteErrorInfo_vals), 0,
2609 "DeleteError/deleteErrorInfo", HFILL }},
2610 { &hf_cmip_attributeError,
2611 { "attributeError", "cmip.attributeError",
2612 FT_NONE, BASE_NONE, NULL, 0,
2613 "SetInfoStatus/attributeError", HFILL }},
2615 { "errorId", "cmip.errorId",
2616 FT_STRING, BASE_NONE, NULL, 0,
2617 "SpecificErrorInfo/errorId", HFILL }},
2618 { &hf_cmip_errorInfo,
2619 { "errorInfo", "cmip.errorInfo",
2620 FT_NONE, BASE_NONE, NULL, 0,
2621 "SpecificErrorInfo/errorInfo", HFILL }},
2622 { &hf_cmip_actionType,
2623 { "actionType", "cmip.actionType",
2624 FT_STRING, BASE_NONE, NULL, 0,
2625 "NoSuchArgumentAction/actionType", HFILL }},
2626 { &hf_cmip_eventType,
2627 { "eventType", "cmip.eventType",
2628 FT_STRING, BASE_NONE, NULL, 0,
2629 "NoSuchArgumentEvent/eventType", HFILL }},
2630 { &hf_cmip_actionId,
2631 { "actionId", "cmip.actionId",
2632 FT_NONE, BASE_NONE, NULL, 0,
2633 "NoSuchArgument/actionId", HFILL }},
2635 { "eventId", "cmip.eventId",
2636 FT_NONE, BASE_NONE, NULL, 0,
2637 "NoSuchArgument/eventId", HFILL }},
2638 { &hf_cmip_eventType1,
2639 { "eventType", "cmip.eventType",
2640 FT_STRING, BASE_NONE, NULL, 0,
2641 "InvalidArgumentValueEventValue/eventType", HFILL }},
2642 { &hf_cmip_eventInfo,
2643 { "eventInfo", "cmip.eventInfo",
2644 FT_NONE, BASE_NONE, NULL, 0,
2645 "InvalidArgumentValueEventValue/eventInfo", HFILL }},
2646 { &hf_cmip_actionValue,
2647 { "actionValue", "cmip.actionValue",
2648 FT_NONE, BASE_NONE, NULL, 0,
2649 "InvalidArgumentValue/actionValue", HFILL }},
2650 { &hf_cmip_eventValue,
2651 { "eventValue", "cmip.eventValue",
2652 FT_NONE, BASE_NONE, NULL, 0,
2653 "InvalidArgumentValue/eventValue", HFILL }},
2654 { &hf_cmip_actionType1,
2655 { "actionType", "cmip.actionType",
2656 FT_STRING, BASE_NONE, NULL, 0,
2657 "ErrorInfo/actionType", HFILL }},
2658 { &hf_cmip_actionArgument,
2659 { "actionArgument", "cmip.actionArgument",
2660 FT_UINT32, BASE_DEC, VALS(NoSuchArgument_vals), 0,
2661 "ErrorInfo/actionArgument", HFILL }},
2662 { &hf_cmip_argumentValue,
2663 { "argumentValue", "cmip.argumentValue",
2664 FT_UINT32, BASE_DEC, VALS(InvalidArgumentValue_vals), 0,
2665 "ErrorInfo/argumentValue", HFILL }},
2666 { &hf_cmip_errorStatus1,
2667 { "errorStatus", "cmip.errorStatus",
2668 FT_UINT32, BASE_DEC, VALS(T_errorStatus1_vals), 0,
2669 "ActionErrorInfo/errorStatus", HFILL }},
2670 { &hf_cmip_errorInfo1,
2671 { "errorInfo", "cmip.errorInfo",
2672 FT_UINT32, BASE_DEC, VALS(ErrorInfo_vals), 0,
2673 "ActionErrorInfo/errorInfo", HFILL }},
2674 { &hf_cmip_errorStatus2,
2675 { "errorStatus", "cmip.errorStatus",
2676 FT_UINT32, BASE_DEC, VALS(T_errorStatus2_vals), 0,
2677 "AttributeError/errorStatus", HFILL }},
2678 { &hf_cmip_attributeId2,
2679 { "attributeId", "cmip.attributeId",
2680 FT_STRING, BASE_NONE, NULL, 0,
2681 "AttributeError/attributeId", HFILL }},
2682 { &hf_cmip_attributeValue1,
2683 { "attributeValue", "cmip.attributeValue",
2684 FT_NONE, BASE_NONE, NULL, 0,
2685 "AttributeError/attributeValue", HFILL }},
2686 { &hf_cmip_attributeList,
2687 { "attributeList", "cmip.attributeList",
2688 FT_UINT32, BASE_DEC, NULL, 0,
2690 { &hf_cmip_attributeList_item,
2691 { "Item", "cmip.attributeList_item",
2692 FT_NONE, BASE_NONE, NULL, 0,
2694 { &hf_cmip_baseManagedObjectClass,
2695 { "baseManagedObjectClass", "cmip.baseManagedObjectClass",
2696 FT_UINT32, BASE_DEC, VALS(ObjectClass_vals), 0,
2698 { &hf_cmip_baseManagedObjectInstance,
2699 { "baseManagedObjectInstance", "cmip.baseManagedObjectInstance",
2700 FT_UINT32, BASE_DEC, VALS(ObjectInstance_vals), 0,
2702 { &hf_cmip_accessControl,
2703 { "accessControl", "cmip.accessControl",
2704 FT_BYTES, BASE_HEX, NULL, 0,
2706 { &hf_cmip_synchronization,
2707 { "synchronization", "cmip.synchronization",
2708 FT_UINT32, BASE_DEC, VALS(CMISSync_vals), 0,
2711 { "scope", "cmip.scope",
2712 FT_UINT32, BASE_DEC, VALS(Scope_vals), 0,
2715 { "filter", "cmip.filter",
2716 FT_UINT32, BASE_DEC, VALS(CMISFilter_vals), 0,
2718 { &hf_cmip_modificationList,
2719 { "modificationList", "cmip.modificationList",
2720 FT_UINT32, BASE_DEC, NULL, 0,
2721 "SetArgument/modificationList", HFILL }},
2722 { &hf_cmip_modificationList_item,
2723 { "Item", "cmip.modificationList_item",
2724 FT_NONE, BASE_NONE, NULL, 0,
2725 "SetArgument/modificationList/_item", HFILL }},
2726 { &hf_cmip_getResult,
2727 { "getResult", "cmip.getResult",
2728 FT_NONE, BASE_NONE, NULL, 0,
2729 "LinkedReplyArgument/getResult", HFILL }},
2730 { &hf_cmip_getListError,
2731 { "getListError", "cmip.getListError",
2732 FT_NONE, BASE_NONE, NULL, 0,
2733 "LinkedReplyArgument/getListError", HFILL }},
2734 { &hf_cmip_setResult,
2735 { "setResult", "cmip.setResult",
2736 FT_NONE, BASE_NONE, NULL, 0,
2737 "LinkedReplyArgument/setResult", HFILL }},
2738 { &hf_cmip_setListError,
2739 { "setListError", "cmip.setListError",
2740 FT_NONE, BASE_NONE, NULL, 0,
2741 "LinkedReplyArgument/setListError", HFILL }},
2742 { &hf_cmip_actionResult,
2743 { "actionResult", "cmip.actionResult",
2744 FT_NONE, BASE_NONE, NULL, 0,
2745 "LinkedReplyArgument/actionResult", HFILL }},
2746 { &hf_cmip_processingFailure,
2747 { "processingFailure", "cmip.processingFailure",
2748 FT_NONE, BASE_NONE, NULL, 0,
2749 "LinkedReplyArgument/processingFailure", HFILL }},
2750 { &hf_cmip_deleteResult,
2751 { "deleteResult", "cmip.deleteResult",
2752 FT_NONE, BASE_NONE, NULL, 0,
2753 "LinkedReplyArgument/deleteResult", HFILL }},
2754 { &hf_cmip_actionError,
2755 { "actionError", "cmip.actionError",
2756 FT_NONE, BASE_NONE, NULL, 0,
2757 "LinkedReplyArgument/actionError", HFILL }},
2758 { &hf_cmip_deleteError,
2759 { "deleteError", "cmip.deleteError",
2760 FT_NONE, BASE_NONE, NULL, 0,
2761 "LinkedReplyArgument/deleteError", HFILL }},
2762 { &hf_cmip_eventType2,
2763 { "eventType", "cmip.eventType",
2764 FT_STRING, BASE_NONE, NULL, 0,
2765 "EventReply/eventType", HFILL }},
2766 { &hf_cmip_eventReplyInfo,
2767 { "eventReplyInfo", "cmip.eventReplyInfo",
2768 FT_NONE, BASE_NONE, NULL, 0,
2769 "EventReply/eventReplyInfo", HFILL }},
2770 { &hf_cmip_eventReply,
2771 { "eventReply", "cmip.eventReply",
2772 FT_NONE, BASE_NONE, NULL, 0,
2773 "EventReportResult/eventReply", HFILL }},
2774 { &hf_cmip_eventTime,
2775 { "eventTime", "cmip.eventTime",
2776 FT_STRING, BASE_NONE, NULL, 0,
2777 "EventReportArgument/eventTime", HFILL }},
2778 { &hf_cmip_eventType3,
2779 { "eventType", "cmip.eventType",
2780 FT_STRING, BASE_NONE, NULL, 0,
2781 "EventReportArgument/eventType", HFILL }},
2782 { &hf_cmip_eventInfo1,
2783 { "eventInfo", "cmip.eventInfo",
2784 FT_NONE, BASE_NONE, NULL, 0,
2785 "EventReportArgument/eventInfo", HFILL }},
2786 { &hf_cmip_managedOrSuperiorObjectInstance,
2787 { "managedOrSuperiorObjectInstance", "cmip.managedOrSuperiorObjectInstance",
2788 FT_UINT32, BASE_DEC, VALS(T_managedOrSuperiorObjectInstance_vals), 0,
2789 "CreateArgument/managedOrSuperiorObjectInstance", HFILL }},
2790 { &hf_cmip_superiorObjectInstance,
2791 { "superiorObjectInstance", "cmip.superiorObjectInstance",
2792 FT_UINT32, BASE_DEC, VALS(ObjectInstance_vals), 0,
2793 "CreateArgument/managedOrSuperiorObjectInstance/superiorObjectInstance", HFILL }},
2794 { &hf_cmip_referenceObjectInstance,
2795 { "referenceObjectInstance", "cmip.referenceObjectInstance",
2796 FT_UINT32, BASE_DEC, VALS(ObjectInstance_vals), 0,
2797 "CreateArgument/referenceObjectInstance", HFILL }},
2798 { &hf_cmip_actionType2,
2799 { "actionType", "cmip.actionType",
2800 FT_STRING, BASE_NONE, NULL, 0,
2801 "ActionReply/actionType", HFILL }},
2802 { &hf_cmip_actionReplyInfo,
2803 { "actionReplyInfo", "cmip.actionReplyInfo",
2804 FT_NONE, BASE_NONE, NULL, 0,
2805 "ActionReply/actionReplyInfo", HFILL }},
2806 { &hf_cmip_actionReply,
2807 { "actionReply", "cmip.actionReply",
2808 FT_NONE, BASE_NONE, NULL, 0,
2809 "ActionResult/actionReply", HFILL }},
2810 { &hf_cmip_actionInfo,
2811 { "actionInfo", "cmip.actionInfo",
2812 FT_NONE, BASE_NONE, NULL, 0,
2813 "ActionArgument/actionInfo", HFILL }},
2814 { &hf_cmip_actionType3,
2815 { "actionType", "cmip.actionType",
2816 FT_STRING, BASE_NONE, NULL, 0,
2817 "ActionInfo/actionType", HFILL }},
2818 { &hf_cmip_actionInfoArg,
2819 { "actionInfoArg", "cmip.actionInfoArg",
2820 FT_NONE, BASE_NONE, NULL, 0,
2821 "ActionInfo/actionInfoArg", HFILL }},
2822 { &hf_cmip_ocglobalForm,
2823 { "ocglobalForm", "cmip.ocglobalForm",
2824 FT_STRING, BASE_NONE, NULL, 0,
2825 "ObjectClass/ocglobalForm", HFILL }},
2826 { &hf_cmip_oclocalForm,
2827 { "oclocalForm", "cmip.oclocalForm",
2828 FT_INT32, BASE_DEC, NULL, 0,
2829 "ObjectClass/oclocalForm", HFILL }},
2830 { &hf_cmip_distinguishedName,
2831 { "distinguishedName", "cmip.distinguishedName",
2832 FT_UINT32, BASE_DEC, NULL, 0,
2833 "ObjectInstance/distinguishedName", HFILL }},
2834 { &hf_cmip_nonSpecificForm,
2835 { "nonSpecificForm", "cmip.nonSpecificForm",
2836 FT_BYTES, BASE_HEX, NULL, 0,
2837 "ObjectInstance/nonSpecificForm", HFILL }},
2838 { &hf_cmip_localDistinguishedName,
2839 { "localDistinguishedName", "cmip.localDistinguishedName",
2840 FT_UINT32, BASE_DEC, NULL, 0,
2841 "ObjectInstance/localDistinguishedName", HFILL }},
2842 { &hf_cmip_globalForm,
2843 { "globalForm", "cmip.globalForm",
2844 FT_STRING, BASE_NONE, NULL, 0,
2845 "AttributeId/globalForm", HFILL }},
2846 { &hf_cmip_localForm,
2847 { "localForm", "cmip.localForm",
2848 FT_INT32, BASE_DEC, NULL, 0,
2849 "AttributeId/localForm", HFILL }},
2852 FT_UINT32, BASE_DEC, VALS(AttributeId_vals), 0,
2853 "Attribute/id", HFILL }},
2855 { "value", "cmip.value",
2856 FT_NONE, BASE_NONE, NULL, 0,
2857 "Attribute/value", HFILL }},
2858 { &hf_cmip_equality,
2859 { "equality", "cmip.equality",
2860 FT_NONE, BASE_NONE, NULL, 0,
2861 "FilterItem/equality", HFILL }},
2862 { &hf_cmip_substrings,
2863 { "substrings", "cmip.substrings",
2864 FT_UINT32, BASE_DEC, NULL, 0,
2865 "FilterItem/substrings", HFILL }},
2866 { &hf_cmip_substrings_item,
2867 { "Item", "cmip.substrings_item",
2868 FT_UINT32, BASE_DEC, VALS(T_substrings_item_vals), 0,
2869 "FilterItem/substrings/_item", HFILL }},
2870 { &hf_cmip_initialString,
2871 { "initialString", "cmip.initialString",
2872 FT_NONE, BASE_NONE, NULL, 0,
2873 "FilterItem/substrings/_item/initialString", HFILL }},
2874 { &hf_cmip_anyString,
2875 { "anyString", "cmip.anyString",
2876 FT_NONE, BASE_NONE, NULL, 0,
2877 "FilterItem/substrings/_item/anyString", HFILL }},
2878 { &hf_cmip_finalString,
2879 { "finalString", "cmip.finalString",
2880 FT_NONE, BASE_NONE, NULL, 0,
2881 "FilterItem/substrings/_item/finalString", HFILL }},
2882 { &hf_cmip_greaterOrEqual,
2883 { "greaterOrEqual", "cmip.greaterOrEqual",
2884 FT_NONE, BASE_NONE, NULL, 0,
2885 "FilterItem/greaterOrEqual", HFILL }},
2886 { &hf_cmip_lessOrEqual,
2887 { "lessOrEqual", "cmip.lessOrEqual",
2888 FT_NONE, BASE_NONE, NULL, 0,
2889 "FilterItem/lessOrEqual", HFILL }},
2891 { "present", "cmip.present",
2892 FT_UINT32, BASE_DEC, VALS(AttributeId_vals), 0,
2893 "FilterItem/present", HFILL }},
2894 { &hf_cmip_subsetOf,
2895 { "subsetOf", "cmip.subsetOf",
2896 FT_NONE, BASE_NONE, NULL, 0,
2897 "FilterItem/subsetOf", HFILL }},
2898 { &hf_cmip_supersetOf,
2899 { "supersetOf", "cmip.supersetOf",
2900 FT_NONE, BASE_NONE, NULL, 0,
2901 "FilterItem/supersetOf", HFILL }},
2902 { &hf_cmip_nonNullSetIntersection,
2903 { "nonNullSetIntersection", "cmip.nonNullSetIntersection",
2904 FT_NONE, BASE_NONE, NULL, 0,
2905 "FilterItem/nonNullSetIntersection", HFILL }},
2907 { "item", "cmip.item",
2908 FT_UINT32, BASE_DEC, VALS(FilterItem_vals), 0,
2909 "CMISFilter/item", HFILL }},
2911 { "and", "cmip.and",
2912 FT_UINT32, BASE_DEC, NULL, 0,
2913 "CMISFilter/and", HFILL }},
2914 { &hf_cmip_and_item,
2915 { "Item", "cmip.and_item",
2916 FT_UINT32, BASE_DEC, VALS(CMISFilter_vals), 0,
2917 "CMISFilter/and/_item", HFILL }},
2920 FT_UINT32, BASE_DEC, NULL, 0,
2921 "CMISFilter/or", HFILL }},
2923 { "Item", "cmip.or_item",
2924 FT_UINT32, BASE_DEC, VALS(CMISFilter_vals), 0,
2925 "CMISFilter/or/_item", HFILL }},
2927 { "not", "cmip.not",
2928 FT_UINT32, BASE_DEC, VALS(CMISFilter_vals), 0,
2929 "CMISFilter/not", HFILL }},
2930 { &hf_cmip_namedNumbers,
2931 { "namedNumbers", "cmip.namedNumbers",
2932 FT_INT32, BASE_DEC, VALS(T_namedNumbers_vals), 0,
2933 "Scope/namedNumbers", HFILL }},
2934 { &hf_cmip_individualLevels,
2935 { "individualLevels", "cmip.individualLevels",
2936 FT_INT32, BASE_DEC, NULL, 0,
2937 "Scope/individualLevels", HFILL }},
2938 { &hf_cmip_baseToNthLevel,
2939 { "baseToNthLevel", "cmip.baseToNthLevel",
2940 FT_INT32, BASE_DEC, NULL, 0,
2941 "Scope/baseToNthLevel", HFILL }},
2942 { &hf_cmip_attributeIdList,
2943 { "attributeIdList", "cmip.attributeIdList",
2944 FT_UINT32, BASE_DEC, NULL, 0,
2945 "GetArgument/attributeIdList", HFILL }},
2946 { &hf_cmip_attributeIdList_item,
2947 { "Item", "cmip.attributeIdList_item",
2948 FT_UINT32, BASE_DEC, VALS(AttributeId_vals), 0,
2949 "GetArgument/attributeIdList/_item", HFILL }},
2951 { "opcode", "cmip.opcode",
2952 FT_INT32, BASE_DEC, VALS(Opcode_vals), 0,
2954 { &hf_cmip_argument,
2955 { "argument", "cmip.argument",
2956 FT_NONE, BASE_NONE, NULL, 0,
2958 { &hf_cmip_present1,
2959 { "present", "cmip.present",
2960 FT_UINT32, BASE_DEC, VALS(InvokeId_vals), 0,
2961 "InvokeLinkedId/present", HFILL }},
2963 { "absent", "cmip.absent",
2964 FT_NONE, BASE_NONE, NULL, 0,
2966 { &hf_cmip_present2,
2967 { "present", "cmip.present",
2968 FT_INT32, BASE_DEC, NULL, 0,
2969 "InvokeId/present", HFILL }},
2970 { &hf_cmip_invokeId,
2971 { "invokeId", "cmip.invokeId",
2972 FT_UINT32, BASE_DEC, VALS(InvokeId_vals), 0,
2974 { &hf_cmip_linkedId,
2975 { "linkedId", "cmip.linkedId",
2976 FT_UINT32, BASE_DEC, VALS(InvokeLinkedId_vals), 0,
2977 "Invoke/linkedId", HFILL }},
2979 { "rRBody", "cmip.rRBody",
2980 FT_NONE, BASE_NONE, NULL, 0,
2981 "ReturnResult/rRBody", HFILL }},
2982 { &hf_cmip_generalProblem,
2983 { "generalProblem", "cmip.generalProblem",
2984 FT_INT32, BASE_DEC, VALS(GeneralProblem_vals), 0,
2985 "RejectProb/generalProblem", HFILL }},
2986 { &hf_cmip_invokeProblem,
2987 { "invokeProblem", "cmip.invokeProblem",
2988 FT_INT32, BASE_DEC, VALS(InvokeProblem_vals), 0,
2989 "RejectProb/invokeProblem", HFILL }},
2990 { &hf_cmip_returnResultProblem,
2991 { "returnResultProblem", "cmip.returnResultProblem",
2992 FT_INT32, BASE_DEC, VALS(ReturnResultProblem_vals), 0,
2993 "RejectProb/returnResultProblem", HFILL }},
2994 { &hf_cmip_returnErrorProblem,
2995 { "returnErrorProblem", "cmip.returnErrorProblem",
2996 FT_INT32, BASE_DEC, VALS(ReturnErrorProblem_vals), 0,
2997 "RejectProb/returnErrorProblem", HFILL }},
2998 { &hf_cmip_rejectProblem,
2999 { "rejectProblem", "cmip.rejectProblem",
3000 FT_UINT32, BASE_DEC, VALS(RejectProb_vals), 0,
3001 "Reject/rejectProblem", HFILL }},
3003 { "invoke", "cmip.invoke",
3004 FT_NONE, BASE_NONE, NULL, 0,
3005 "ROS/invoke", HFILL }},
3006 { &hf_cmip_returnResult,
3007 { "returnResult", "cmip.returnResult",
3008 FT_NONE, BASE_NONE, NULL, 0,
3009 "ROS/returnResult", HFILL }},
3010 { &hf_cmip_returnError,
3011 { "returnError", "cmip.returnError",
3012 FT_NONE, BASE_NONE, NULL, 0,
3013 "ROS/returnError", HFILL }},
3015 { "reject", "cmip.reject",
3016 FT_NONE, BASE_NONE, NULL, 0,
3017 "ROS/reject", HFILL }},
3018 { &hf_cmip_abortSource,
3019 { "abortSource", "cmip.abortSource",
3020 FT_UINT32, BASE_DEC, VALS(CMIPAbortSource_vals), 0,
3021 "CMIPAbortInfo/abortSource", HFILL }},
3022 { &hf_cmip_protocolVersion,
3023 { "protocolVersion", "cmip.protocolVersion",
3024 FT_BYTES, BASE_HEX, NULL, 0,
3025 "CMIPUserInfo/protocolVersion", HFILL }},
3026 { &hf_cmip_functionalUnits,
3027 { "functionalUnits", "cmip.functionalUnits",
3028 FT_BYTES, BASE_HEX, NULL, 0,
3029 "CMIPUserInfo/functionalUnits", HFILL }},
3030 { &hf_cmip_FunctionalUnits_multipleObjectSelection,
3031 { "multipleObjectSelection", "cmip.multipleObjectSelection",
3032 FT_BOOLEAN, 8, NULL, 0x80,
3034 { &hf_cmip_FunctionalUnits_filter,
3035 { "filter", "cmip.filter",
3036 FT_BOOLEAN, 8, NULL, 0x40,
3038 { &hf_cmip_FunctionalUnits_multipleReply,
3039 { "multipleReply", "cmip.multipleReply",
3040 FT_BOOLEAN, 8, NULL, 0x20,
3042 { &hf_cmip_FunctionalUnits_extendedService,
3043 { "extendedService", "cmip.extendedService",
3044 FT_BOOLEAN, 8, NULL, 0x10,
3046 { &hf_cmip_FunctionalUnits_cancelGet,
3047 { "cancelGet", "cmip.cancelGet",
3048 FT_BOOLEAN, 8, NULL, 0x08,
3050 { &hf_cmip_ProtocolVersion_version1,
3051 { "version1", "cmip.version1",
3052 FT_BOOLEAN, 8, NULL, 0x80,
3054 { &hf_cmip_ProtocolVersion_version2,
3055 { "version2", "cmip.version2",
3056 FT_BOOLEAN, 8, NULL, 0x40,
3059 /*--- End of included file: packet-cmip-hfarr.c ---*/
3063 /* List of subtrees */
3064 static gint *ett[] = {
3067 /*--- Included file: packet-cmip-ettarr.c ---*/
3069 &ett_cmip_ModificationItem,
3070 &ett_cmip_GetListError,
3071 &ett_cmip_SET_OF_GetInfoStatus,
3072 &ett_cmip_GetInfoStatus,
3073 &ett_cmip_AttributeIdError,
3074 &ett_cmip_SetListError,
3075 &ett_cmip_SET_OF_SetInfoStatus,
3076 &ett_cmip_ActionError,
3077 &ett_cmip_ProcessingFailure,
3078 &ett_cmip_DeleteError,
3079 &ett_cmip_SetInfoStatus,
3080 &ett_cmip_SpecificErrorInfo,
3081 &ett_cmip_NoSuchArgumentAction,
3082 &ett_cmip_NoSuchArgumentEvent,
3083 &ett_cmip_NoSuchArgument,
3084 &ett_cmip_InvalidArgumentValueEventValue,
3085 &ett_cmip_InvalidArgumentValue,
3086 &ett_cmip_ErrorInfo,
3087 &ett_cmip_ActionErrorInfo,
3088 &ett_cmip_AttributeError,
3089 &ett_cmip_SetResult,
3090 &ett_cmip_SET_OF_Attribute,
3091 &ett_cmip_SetArgument,
3092 &ett_cmip_SET_OF_ModificationItem,
3093 &ett_cmip_LinkedReplyArgument,
3094 &ett_cmip_EventReply,
3095 &ett_cmip_EventReportResult,
3096 &ett_cmip_EventReportArgument,
3097 &ett_cmip_DeleteArgument,
3098 &ett_cmip_DeleteResult,
3099 &ett_cmip_CreateArgument,
3100 &ett_cmip_T_managedOrSuperiorObjectInstance,
3101 &ett_cmip_CreateResult,
3102 &ett_cmip_ActionReply,
3103 &ett_cmip_ActionResult,
3104 &ett_cmip_ActionArgument,
3105 &ett_cmip_ActionInfo,
3106 &ett_cmip_ObjectClass,
3107 &ett_cmip_ObjectInstance,
3108 &ett_cmip_BaseManagedObjectId,
3109 &ett_cmip_AttributeId,
3110 &ett_cmip_Attribute,
3111 &ett_cmip_FilterItem,
3112 &ett_cmip_T_substrings,
3113 &ett_cmip_T_substrings_item,
3114 &ett_cmip_CMISFilter,
3115 &ett_cmip_SET_OF_CMISFilter,
3117 &ett_cmip_GetArgument,
3118 &ett_cmip_SET_OF_AttributeId,
3119 &ett_cmip_GetResult,
3120 &ett_cmip_ReturnResultBody,
3121 &ett_cmip_InvokeLinkedId,
3124 &ett_cmip_ReturnResult,
3125 &ett_cmip_ReturnError,
3126 &ett_cmip_RejectProb,
3129 &ett_cmip_CMIPAbortInfo,
3130 &ett_cmip_FunctionalUnits,
3131 &ett_cmip_CMIPUserInfo,
3132 &ett_cmip_ProtocolVersion,
3134 /*--- End of included file: packet-cmip-ettarr.c ---*/
3138 /* Register protocol */
3139 proto_cmip = proto_register_protocol(PNAME, PSNAME, PFNAME);
3141 /* Register fields and subtrees */
3142 proto_register_field_array(proto_cmip, hf, array_length(hf));
3143 proto_register_subtree_array(ett, array_length(ett));
3148 /*--- proto_reg_handoff_cmip -------------------------------------------*/
3149 void proto_reg_handoff_cmip(void) {
3150 dissector_handle_t cmip_handle;
3152 /*XXX this to be removed later and shoved into the conformance file */
3153 cmip_handle = create_dissector_handle(dissect_cmip,proto_cmip);
3154 dissector_add_string("acse.application_context", "2.9.0.0.2", cmip_handle);