1 /* Do not modify this file. */
2 /* It is created automatically by the ASN.1 to Ethereal dissector compiler */
4 /* ../../tools/asn2eth.py -X -b -e -p cmip -c cmip.cnf -s packet-cmip-template CMIP.asn */
6 /* Input file: packet-cmip-template.c */
9 * Routines for X.711 CMIP packet dissection
10 * Ronnie Sahlberg 2004
12 * $Id: packet-cmip-template.c 12245 2004-10-08 20:28:04Z guy $
14 * Ethereal - Network traffic analyzer
15 * By Gerald Combs <gerald@ethereal.com>
16 * Copyright 1998 Gerald Combs
18 * This program is free software; you can redistribute it and/or
19 * modify it under the terms of the GNU General Public License
20 * as published by the Free Software Foundation; either version 2
21 * of the License, or (at your option) any later version.
23 * This program is distributed in the hope that it will be useful,
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 * GNU General Public License for more details.
28 * You should have received a copy of the GNU General Public License
29 * along with this program; if not, write to the Free Software
30 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
38 #include <epan/packet.h>
39 #include <epan/conversation.h>
44 #include "packet-ber.h"
45 #include "packet-x509if.h"
46 #include "packet-cmip.h"
48 #define PNAME "X711 CMIP"
52 /* XXX some stuff we need until we can get rid of it */
53 #include "packet-ses.h"
54 #include "packet-pres.h"
56 /* Initialize the protocol and registered fields */
58 static int hf_cmip_actionType_OID = -1;
59 static int hf_cmip_eventType_OID = -1;
60 static int hf_cmip_attributeId_OID = -1;
61 static int hf_cmip_errorId_OID = -1;
63 /*--- Included file: packet-cmip-hf.c ---*/
65 static int hf_cmip_modifyOperator = -1; /* ModifyOperator */
66 static int hf_cmip_attributeId = -1; /* T_attributeId */
67 static int hf_cmip_attributeValue = -1; /* T_attributeValue */
68 static int hf_cmip_managedObjectClass = -1; /* ObjectClass */
69 static int hf_cmip_managedObjectInstance = -1; /* ObjectInstance */
70 static int hf_cmip_currentTime = -1; /* GeneralizedTime */
71 static int hf_cmip_getInfoList = -1; /* SET_OF_GetInfoStatus */
72 static int hf_cmip_getInfoList_item = -1; /* GetInfoStatus */
73 static int hf_cmip_attributeIdError = -1; /* AttributeIdError */
74 static int hf_cmip_attribute = -1; /* Attribute */
75 static int hf_cmip_errorStatus = -1; /* T_errorStatus */
76 static int hf_cmip_attributeId1 = -1; /* AttributeId */
77 static int hf_cmip_setInfoList = -1; /* SET_OF_SetInfoStatus */
78 static int hf_cmip_setInfoList_item = -1; /* SetInfoStatus */
79 static int hf_cmip_actionErrorInfo = -1; /* ActionErrorInfo */
80 static int hf_cmip_specificErrorInfo = -1; /* SpecificErrorInfo */
81 static int hf_cmip_deleteErrorInfo = -1; /* T_deleteErrorInfo */
82 static int hf_cmip_attributeError = -1; /* AttributeError */
83 static int hf_cmip_errorId = -1; /* T_errorId */
84 static int hf_cmip_errorInfo = -1; /* T_errorInfo */
85 static int hf_cmip_actionType = -1; /* T_actionType */
86 static int hf_cmip_eventType = -1; /* T_eventType */
87 static int hf_cmip_actionId = -1; /* NoSuchArgumentAction */
88 static int hf_cmip_eventId = -1; /* NoSuchArgumentEvent */
89 static int hf_cmip_eventType1 = -1; /* T_eventType1 */
90 static int hf_cmip_eventInfo = -1; /* T_eventInfo */
91 static int hf_cmip_actionValue = -1; /* ActionInfo */
92 static int hf_cmip_eventValue = -1; /* InvalidArgumentValueEventValue */
93 static int hf_cmip_actionType1 = -1; /* T_actionType1 */
94 static int hf_cmip_actionArgument = -1; /* NoSuchArgument */
95 static int hf_cmip_argumentValue = -1; /* InvalidArgumentValue */
96 static int hf_cmip_errorStatus1 = -1; /* T_errorStatus1 */
97 static int hf_cmip_errorInfo1 = -1; /* ErrorInfo */
98 static int hf_cmip_errorStatus2 = -1; /* T_errorStatus2 */
99 static int hf_cmip_attributeId2 = -1; /* T_attributeId1 */
100 static int hf_cmip_attributeValue1 = -1; /* T_attributeValue1 */
101 static int hf_cmip_attributeList = -1; /* SET_OF_Attribute */
102 static int hf_cmip_attributeList_item = -1; /* Attribute */
103 static int hf_cmip_baseManagedObjectClass = -1; /* ObjectClass */
104 static int hf_cmip_baseManagedObjectInstance = -1; /* ObjectInstance */
105 static int hf_cmip_accessControl = -1; /* AccessControl */
106 static int hf_cmip_synchronization = -1; /* CMISSync */
107 static int hf_cmip_scope = -1; /* Scope */
108 static int hf_cmip_filter = -1; /* CMISFilter */
109 static int hf_cmip_modificationList = -1; /* SET_OF_ModificationItem */
110 static int hf_cmip_modificationList_item = -1; /* ModificationItem */
111 static int hf_cmip_getResult = -1; /* GetResult */
112 static int hf_cmip_getListError = -1; /* GetListError */
113 static int hf_cmip_setResult = -1; /* SetResult */
114 static int hf_cmip_setListError = -1; /* SetListError */
115 static int hf_cmip_actionResult = -1; /* ActionResult */
116 static int hf_cmip_processingFailure = -1; /* ProcessingFailure */
117 static int hf_cmip_deleteResult = -1; /* DeleteResult */
118 static int hf_cmip_actionError = -1; /* ActionError */
119 static int hf_cmip_deleteError = -1; /* DeleteError */
120 static int hf_cmip_eventType2 = -1; /* T_eventType2 */
121 static int hf_cmip_eventReplyInfo = -1; /* T_eventReplyInfo */
122 static int hf_cmip_eventReply = -1; /* EventReply */
123 static int hf_cmip_eventTime = -1; /* GeneralizedTime */
124 static int hf_cmip_eventType3 = -1; /* T_eventType3 */
125 static int hf_cmip_eventInfo1 = -1; /* T_eventInfo1 */
126 static int hf_cmip_managedOrSuperiorObjectInstance = -1; /* T_managedOrSuperiorObjectInstance */
127 static int hf_cmip_superiorObjectInstance = -1; /* ObjectInstance */
128 static int hf_cmip_referenceObjectInstance = -1; /* ObjectInstance */
129 static int hf_cmip_actionType2 = -1; /* T_actionType2 */
130 static int hf_cmip_actionReplyInfo = -1; /* T_actionReplyInfo */
131 static int hf_cmip_actionReply = -1; /* ActionReply */
132 static int hf_cmip_actionInfo = -1; /* ActionInfo */
133 static int hf_cmip_actionType3 = -1; /* T_actionType3 */
134 static int hf_cmip_actionInfoArg = -1; /* T_actionInfoArg */
135 static int hf_cmip_ocglobalForm = -1; /* T_ocglobalForm */
136 static int hf_cmip_oclocalForm = -1; /* T_oclocalForm */
137 static int hf_cmip_distinguishedName = -1; /* DistinguishedName */
138 static int hf_cmip_nonSpecificForm = -1; /* OCTET_STRING */
139 static int hf_cmip_localDistinguishedName = -1; /* RDNSequence */
140 static int hf_cmip_globalForm = -1; /* T_globalForm */
141 static int hf_cmip_localForm = -1; /* T_localForm */
142 static int hf_cmip_id = -1; /* AttributeId */
143 static int hf_cmip_value = -1; /* T_value */
144 static int hf_cmip_equality = -1; /* Attribute */
145 static int hf_cmip_substrings = -1; /* T_substrings */
146 static int hf_cmip_substrings_item = -1; /* T_substrings_item */
147 static int hf_cmip_initialString = -1; /* Attribute */
148 static int hf_cmip_anyString = -1; /* Attribute */
149 static int hf_cmip_finalString = -1; /* Attribute */
150 static int hf_cmip_greaterOrEqual = -1; /* Attribute */
151 static int hf_cmip_lessOrEqual = -1; /* Attribute */
152 static int hf_cmip_present = -1; /* AttributeId */
153 static int hf_cmip_subsetOf = -1; /* Attribute */
154 static int hf_cmip_supersetOf = -1; /* Attribute */
155 static int hf_cmip_nonNullSetIntersection = -1; /* Attribute */
156 static int hf_cmip_item = -1; /* FilterItem */
157 static int hf_cmip_and = -1; /* SET_OF_CMISFilter */
158 static int hf_cmip_and_item = -1; /* CMISFilter */
159 static int hf_cmip_or = -1; /* SET_OF_CMISFilter */
160 static int hf_cmip_or_item = -1; /* CMISFilter */
161 static int hf_cmip_not = -1; /* CMISFilter */
162 static int hf_cmip_namedNumbers = -1; /* T_namedNumbers */
163 static int hf_cmip_individualLevels = -1; /* INTEGER */
164 static int hf_cmip_baseToNthLevel = -1; /* INTEGER */
165 static int hf_cmip_attributeIdList = -1; /* SET_OF_AttributeId */
166 static int hf_cmip_attributeIdList_item = -1; /* AttributeId */
167 static int hf_cmip_opcode = -1; /* Opcode */
168 static int hf_cmip_argument = -1; /* Argument */
169 static int hf_cmip_present1 = -1; /* InvokeId */
170 static int hf_cmip_absent = -1; /* NULL */
171 static int hf_cmip_present2 = -1; /* InvokeID */
172 static int hf_cmip_invokeId = -1; /* InvokeId */
173 static int hf_cmip_linkedId = -1; /* InvokeLinkedId */
174 static int hf_cmip_rRBody = -1; /* ReturnResultBody */
175 static int hf_cmip_generalProblem = -1; /* GeneralProblem */
176 static int hf_cmip_invokeProblem = -1; /* InvokeProblem */
177 static int hf_cmip_returnResultProblem = -1; /* ReturnResultProblem */
178 static int hf_cmip_returnErrorProblem = -1; /* ReturnErrorProblem */
179 static int hf_cmip_rejectProblem = -1; /* RejectProb */
180 static int hf_cmip_invoke = -1; /* Invoke */
181 static int hf_cmip_returnResult = -1; /* ReturnResult */
182 static int hf_cmip_returnError = -1; /* ReturnError */
183 static int hf_cmip_reject = -1; /* Reject */
184 static int hf_cmip_abortSource = -1; /* CMIPAbortSource */
185 static int hf_cmip_protocolVersion = -1; /* ProtocolVersion */
186 static int hf_cmip_functionalUnits = -1; /* FunctionalUnits */
188 static int hf_cmip_FunctionalUnits_multipleObjectSelection = -1;
189 static int hf_cmip_FunctionalUnits_filter = -1;
190 static int hf_cmip_FunctionalUnits_multipleReply = -1;
191 static int hf_cmip_FunctionalUnits_extendedService = -1;
192 static int hf_cmip_FunctionalUnits_cancelGet = -1;
193 static int hf_cmip_ProtocolVersion_version1 = -1;
194 static int hf_cmip_ProtocolVersion_version2 = -1;
196 /*--- End of included file: packet-cmip-hf.c ---*/
199 /* Initialize the subtree pointers */
200 static gint ett_cmip = -1;
202 /*--- Included file: packet-cmip-ett.c ---*/
204 static gint ett_cmip_ModificationItem = -1;
205 static gint ett_cmip_GetListError = -1;
206 static gint ett_cmip_SET_OF_GetInfoStatus = -1;
207 static gint ett_cmip_GetInfoStatus = -1;
208 static gint ett_cmip_AttributeIdError = -1;
209 static gint ett_cmip_SetListError = -1;
210 static gint ett_cmip_SET_OF_SetInfoStatus = -1;
211 static gint ett_cmip_ActionError = -1;
212 static gint ett_cmip_ProcessingFailure = -1;
213 static gint ett_cmip_DeleteError = -1;
214 static gint ett_cmip_SetInfoStatus = -1;
215 static gint ett_cmip_SpecificErrorInfo = -1;
216 static gint ett_cmip_NoSuchArgumentAction = -1;
217 static gint ett_cmip_NoSuchArgumentEvent = -1;
218 static gint ett_cmip_NoSuchArgument = -1;
219 static gint ett_cmip_InvalidArgumentValueEventValue = -1;
220 static gint ett_cmip_InvalidArgumentValue = -1;
221 static gint ett_cmip_ErrorInfo = -1;
222 static gint ett_cmip_ActionErrorInfo = -1;
223 static gint ett_cmip_AttributeError = -1;
224 static gint ett_cmip_SetResult = -1;
225 static gint ett_cmip_SET_OF_Attribute = -1;
226 static gint ett_cmip_SetArgument = -1;
227 static gint ett_cmip_SET_OF_ModificationItem = -1;
228 static gint ett_cmip_LinkedReplyArgument = -1;
229 static gint ett_cmip_EventReply = -1;
230 static gint ett_cmip_EventReportResult = -1;
231 static gint ett_cmip_EventReportArgument = -1;
232 static gint ett_cmip_DeleteArgument = -1;
233 static gint ett_cmip_DeleteResult = -1;
234 static gint ett_cmip_CreateArgument = -1;
235 static gint ett_cmip_T_managedOrSuperiorObjectInstance = -1;
236 static gint ett_cmip_CreateResult = -1;
237 static gint ett_cmip_ActionReply = -1;
238 static gint ett_cmip_ActionResult = -1;
239 static gint ett_cmip_ActionArgument = -1;
240 static gint ett_cmip_ActionInfo = -1;
241 static gint ett_cmip_ObjectClass = -1;
242 static gint ett_cmip_ObjectInstance = -1;
243 static gint ett_cmip_BaseManagedObjectId = -1;
244 static gint ett_cmip_AttributeId = -1;
245 static gint ett_cmip_Attribute = -1;
246 static gint ett_cmip_FilterItem = -1;
247 static gint ett_cmip_T_substrings = -1;
248 static gint ett_cmip_T_substrings_item = -1;
249 static gint ett_cmip_CMISFilter = -1;
250 static gint ett_cmip_SET_OF_CMISFilter = -1;
251 static gint ett_cmip_Scope = -1;
252 static gint ett_cmip_GetArgument = -1;
253 static gint ett_cmip_SET_OF_AttributeId = -1;
254 static gint ett_cmip_GetResult = -1;
255 static gint ett_cmip_ReturnResultBody = -1;
256 static gint ett_cmip_InvokeLinkedId = -1;
257 static gint ett_cmip_InvokeId = -1;
258 static gint ett_cmip_Invoke = -1;
259 static gint ett_cmip_ReturnResult = -1;
260 static gint ett_cmip_ReturnError = -1;
261 static gint ett_cmip_RejectProb = -1;
262 static gint ett_cmip_Reject = -1;
263 static gint ett_cmip_ROS = -1;
264 static gint ett_cmip_CMIPAbortInfo = -1;
265 static gint ett_cmip_FunctionalUnits = -1;
266 static gint ett_cmip_CMIPUserInfo = -1;
267 static gint ett_cmip_ProtocolVersion = -1;
269 /*--- End of included file: packet-cmip-ett.c ---*/
272 static guint32 opcode;
274 static int opcode_type;
275 #define OPCODE_INVOKE 1
276 #define OPCODE_RETURN_RESULT 2
277 #define OPCODE_RETURN_ERROR 3
278 #define OPCODE_REJECT 4
280 static int attributeform;
281 #define ATTRIBUTE_LOCAL_FORM 0
282 #define ATTRIBUTE_GLOBAL_FORM 1
283 static char attribute_identifier_id[64]; /*64 chars should be long enough? */
285 static char object_identifier_id[64]; /*64 chars should be long enough? */
287 static int objectclassform;
288 #define OBJECTCLASS_LOCAL_FORM 0
289 #define OBJECTCLASS_GLOBAL_FORM 1
290 static char objectclass_identifier_id[64]; /*64 chars should be long enough? */
293 /*--- Included file: packet-cmip-fn.c ---*/
295 /*--- Cyclic dependencies ---*/
297 /* CMISFilter -> CMISFilter/and -> CMISFilter */
298 /* CMISFilter -> CMISFilter */
299 static int dissect_cmip_CMISFilter(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
301 static int dissect_filter(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
302 return dissect_cmip_CMISFilter(FALSE, tvb, offset, pinfo, tree, hf_cmip_filter);
304 static int dissect_and_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
305 return dissect_cmip_CMISFilter(FALSE, tvb, offset, pinfo, tree, hf_cmip_and_item);
307 static int dissect_or_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
308 return dissect_cmip_CMISFilter(FALSE, tvb, offset, pinfo, tree, hf_cmip_or_item);
310 static int dissect_not(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
311 return dissect_cmip_CMISFilter(FALSE, tvb, offset, pinfo, tree, hf_cmip_not);
315 /*--- Fields for imported types ---*/
317 static int dissect_distinguishedName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
318 return dissect_x509if_DistinguishedName(TRUE, tvb, offset, pinfo, tree, hf_cmip_distinguishedName);
320 static int dissect_localDistinguishedName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
321 return dissect_x509if_RDNSequence(TRUE, tvb, offset, pinfo, tree, hf_cmip_localDistinguishedName);
325 static const value_string ModifyOperator_vals[] = {
328 { 2, "removeValues" },
329 { 3, "setToDefault" },
335 dissect_cmip_ModifyOperator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
336 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
340 static int dissect_modifyOperator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
341 return dissect_cmip_ModifyOperator(TRUE, tvb, offset, pinfo, tree, hf_cmip_modifyOperator);
346 dissect_cmip_T_attributeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
347 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
348 hf_cmip_attributeId_OID, object_identifier_id);
353 static int dissect_attributeId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
354 return dissect_cmip_T_attributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeId);
360 dissect_cmip_T_attributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
361 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
367 static int dissect_attributeValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
368 return dissect_cmip_T_attributeValue(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeValue);
371 static const ber_sequence_t ModificationItem_sequence[] = {
372 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyOperator_impl },
373 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeId },
374 { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_attributeValue },
379 dissect_cmip_ModificationItem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
380 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
381 ModificationItem_sequence, hf_index, ett_cmip_ModificationItem);
385 static int dissect_modificationList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
386 return dissect_cmip_ModificationItem(FALSE, tvb, offset, pinfo, tree, hf_cmip_modificationList_item);
391 dissect_cmip_T_ocglobalForm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
392 objectclassform = OBJECTCLASS_GLOBAL_FORM;
393 offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset,
394 hf_cmip_ocglobalForm, objectclass_identifier_id);
399 static int dissect_ocglobalForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
400 return dissect_cmip_T_ocglobalForm(TRUE, tvb, offset, pinfo, tree, hf_cmip_ocglobalForm);
406 dissect_cmip_T_oclocalForm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
407 objectclassform = OBJECTCLASS_LOCAL_FORM;
408 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_cmip_oclocalForm, NULL);
413 static int dissect_oclocalForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
414 return dissect_cmip_T_oclocalForm(TRUE, tvb, offset, pinfo, tree, hf_cmip_oclocalForm);
418 static const value_string ObjectClass_vals[] = {
419 { 0, "ocglobalForm" },
420 { 1, "oclocalForm" },
424 static const ber_choice_t ObjectClass_choice[] = {
425 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ocglobalForm_impl },
426 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_oclocalForm_impl },
431 dissect_cmip_ObjectClass(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
432 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
433 ObjectClass_choice, hf_index, ett_cmip_ObjectClass);
437 static int dissect_managedObjectClass(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
438 return dissect_cmip_ObjectClass(FALSE, tvb, offset, pinfo, tree, hf_cmip_managedObjectClass);
440 static int dissect_baseManagedObjectClass(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
441 return dissect_cmip_ObjectClass(FALSE, tvb, offset, pinfo, tree, hf_cmip_baseManagedObjectClass);
446 dissect_cmip_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
447 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
452 static int dissect_nonSpecificForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
453 return dissect_cmip_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_cmip_nonSpecificForm);
457 static const value_string ObjectInstance_vals[] = {
458 { 2, "distinguishedName" },
459 { 3, "nonSpecificForm" },
460 { 4, "localDistinguishedName" },
464 static const ber_choice_t ObjectInstance_choice[] = {
465 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_distinguishedName_impl },
466 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_nonSpecificForm_impl },
467 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_localDistinguishedName_impl },
472 dissect_cmip_ObjectInstance(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
473 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
474 ObjectInstance_choice, hf_index, ett_cmip_ObjectInstance);
478 static int dissect_managedObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
479 return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_managedObjectInstance);
481 static int dissect_baseManagedObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
482 return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_baseManagedObjectInstance);
484 static int dissect_superiorObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
485 return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_superiorObjectInstance);
487 static int dissect_referenceObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
488 return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_referenceObjectInstance);
493 dissect_cmip_GeneralizedTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
494 offset = dissect_ber_GeneralizedTime(implicit_tag, pinfo, tree, tvb, offset, hf_index);
498 static int dissect_currentTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
499 return dissect_cmip_GeneralizedTime(TRUE, tvb, offset, pinfo, tree, hf_cmip_currentTime);
501 static int dissect_eventTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
502 return dissect_cmip_GeneralizedTime(TRUE, tvb, offset, pinfo, tree, hf_cmip_eventTime);
506 static const value_string T_errorStatus_vals[] = {
507 { 2, "accessDenied" },
508 { 5, "noSuchAttribute" },
514 dissect_cmip_T_errorStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
515 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
519 static int dissect_errorStatus(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
520 return dissect_cmip_T_errorStatus(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorStatus);
525 dissect_cmip_T_globalForm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
526 attributeform = ATTRIBUTE_GLOBAL_FORM;
527 offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset,
528 hf_cmip_globalForm, attribute_identifier_id);
533 static int dissect_globalForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
534 return dissect_cmip_T_globalForm(TRUE, tvb, offset, pinfo, tree, hf_cmip_globalForm);
540 dissect_cmip_T_localForm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
541 attributeform = ATTRIBUTE_LOCAL_FORM;
542 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_cmip_localForm, NULL);
547 static int dissect_localForm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
548 return dissect_cmip_T_localForm(TRUE, tvb, offset, pinfo, tree, hf_cmip_localForm);
552 static const value_string AttributeId_vals[] = {
558 static const ber_choice_t AttributeId_choice[] = {
559 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_globalForm_impl },
560 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_localForm_impl },
565 dissect_cmip_AttributeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
566 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
567 AttributeId_choice, hf_index, ett_cmip_AttributeId);
571 static int dissect_attributeId1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
572 return dissect_cmip_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeId1);
574 static int dissect_id(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
575 return dissect_cmip_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_id);
577 static int dissect_present(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
578 return dissect_cmip_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_present);
580 static int dissect_attributeIdList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
581 return dissect_cmip_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeIdList_item);
584 static const ber_sequence_t AttributeIdError_sequence[] = {
585 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_errorStatus },
586 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_attributeId1 },
591 dissect_cmip_AttributeIdError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
592 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
593 AttributeIdError_sequence, hf_index, ett_cmip_AttributeIdError);
597 static int dissect_attributeIdError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
598 return dissect_cmip_AttributeIdError(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeIdError);
604 dissect_cmip_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
605 /*XXX handle local form here */
606 if(attributeform==ATTRIBUTE_GLOBAL_FORM){
607 offset=call_ber_oid_callback(attribute_identifier_id, tvb, offset, pinfo, tree);
613 static int dissect_value(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
614 return dissect_cmip_T_value(FALSE, tvb, offset, pinfo, tree, hf_cmip_value);
617 static const ber_sequence_t Attribute_sequence[] = {
618 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_id },
619 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_value },
624 dissect_cmip_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
625 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
626 Attribute_sequence, hf_index, ett_cmip_Attribute);
630 static int dissect_attribute_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
631 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_attribute);
633 static int dissect_attributeList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
634 return dissect_cmip_Attribute(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeList_item);
636 static int dissect_equality_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
637 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_equality);
639 static int dissect_initialString_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
640 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_initialString);
642 static int dissect_anyString_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
643 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_anyString);
645 static int dissect_finalString_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
646 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_finalString);
648 static int dissect_greaterOrEqual_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
649 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_greaterOrEqual);
651 static int dissect_lessOrEqual_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
652 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_lessOrEqual);
654 static int dissect_subsetOf_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
655 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_subsetOf);
657 static int dissect_supersetOf_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
658 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_supersetOf);
660 static int dissect_nonNullSetIntersection_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
661 return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_nonNullSetIntersection);
665 static const value_string GetInfoStatus_vals[] = {
666 { 0, "attributeIdError" },
671 static const ber_choice_t GetInfoStatus_choice[] = {
672 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_attributeIdError_impl },
673 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_attribute_impl },
678 dissect_cmip_GetInfoStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
679 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
680 GetInfoStatus_choice, hf_index, ett_cmip_GetInfoStatus);
684 static int dissect_getInfoList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
685 return dissect_cmip_GetInfoStatus(FALSE, tvb, offset, pinfo, tree, hf_cmip_getInfoList_item);
688 static const ber_sequence_t SET_OF_GetInfoStatus_set_of[1] = {
689 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_getInfoList_item },
693 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_) {
694 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
695 SET_OF_GetInfoStatus_set_of, hf_index, ett_cmip_SET_OF_GetInfoStatus);
699 static int dissect_getInfoList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
700 return dissect_cmip_SET_OF_GetInfoStatus(TRUE, tvb, offset, pinfo, tree, hf_cmip_getInfoList);
703 static const ber_sequence_t GetListError_sequence[] = {
704 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
705 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
706 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
707 { BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_getInfoList_impl },
712 dissect_cmip_GetListError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
713 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
714 GetListError_sequence, hf_index, ett_cmip_GetListError);
718 static int dissect_getListError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
719 return dissect_cmip_GetListError(TRUE, tvb, offset, pinfo, tree, hf_cmip_getListError);
723 static const value_string T_errorStatus2_vals[] = {
724 { 2, "accessDenied" },
725 { 5, "noSuchAttribute" },
726 { 6, "invalidAttributeValue" },
727 { 24, "invalidOperation" },
728 { 25, "invalidOperator" },
734 dissect_cmip_T_errorStatus2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
735 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
739 static int dissect_errorStatus2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
740 return dissect_cmip_T_errorStatus2(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorStatus2);
745 dissect_cmip_T_attributeId1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
746 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
747 hf_cmip_attributeId_OID, object_identifier_id);
752 static int dissect_attributeId2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
753 return dissect_cmip_T_attributeId1(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeId2);
759 dissect_cmip_T_attributeValue1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
760 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
766 static int dissect_attributeValue1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
767 return dissect_cmip_T_attributeValue1(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeValue1);
770 static const ber_sequence_t AttributeError_sequence[] = {
771 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_errorStatus2 },
772 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyOperator_impl },
773 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeId2 },
774 { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_attributeValue1 },
779 dissect_cmip_AttributeError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
780 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
781 AttributeError_sequence, hf_index, ett_cmip_AttributeError);
785 static int dissect_attributeError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
786 return dissect_cmip_AttributeError(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeError);
790 static const value_string SetInfoStatus_vals[] = {
791 { 0, "attributeError" },
796 static const ber_choice_t SetInfoStatus_choice[] = {
797 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_attributeError_impl },
798 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_attribute_impl },
803 dissect_cmip_SetInfoStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
804 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
805 SetInfoStatus_choice, hf_index, ett_cmip_SetInfoStatus);
809 static int dissect_setInfoList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
810 return dissect_cmip_SetInfoStatus(FALSE, tvb, offset, pinfo, tree, hf_cmip_setInfoList_item);
813 static const ber_sequence_t SET_OF_SetInfoStatus_set_of[1] = {
814 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_setInfoList_item },
818 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_) {
819 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
820 SET_OF_SetInfoStatus_set_of, hf_index, ett_cmip_SET_OF_SetInfoStatus);
824 static int dissect_setInfoList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
825 return dissect_cmip_SET_OF_SetInfoStatus(TRUE, tvb, offset, pinfo, tree, hf_cmip_setInfoList);
828 static const ber_sequence_t SetListError_sequence[] = {
829 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
830 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
831 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
832 { BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_setInfoList_impl },
837 dissect_cmip_SetListError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
838 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
839 SetListError_sequence, hf_index, ett_cmip_SetListError);
843 static int dissect_setListError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
844 return dissect_cmip_SetListError(TRUE, tvb, offset, pinfo, tree, hf_cmip_setListError);
848 static const value_string T_errorStatus1_vals[] = {
849 { 2, "accessDenied" },
850 { 9, "noSuchAction" },
851 { 14, "noSuchArgument" },
852 { 15, "invalidArgumentValue" },
858 dissect_cmip_T_errorStatus1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
859 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
863 static int dissect_errorStatus1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
864 return dissect_cmip_T_errorStatus1(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorStatus1);
869 dissect_cmip_T_actionType1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
870 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
871 hf_cmip_actionType_OID, object_identifier_id);
876 static int dissect_actionType1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
877 return dissect_cmip_T_actionType1(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType1);
882 dissect_cmip_T_actionType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
883 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
884 hf_cmip_actionType_OID, object_identifier_id);
889 static int dissect_actionType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
890 return dissect_cmip_T_actionType(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType);
893 static const ber_sequence_t NoSuchArgumentAction_sequence[] = {
894 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
895 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType },
900 dissect_cmip_NoSuchArgumentAction(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
901 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
902 NoSuchArgumentAction_sequence, hf_index, ett_cmip_NoSuchArgumentAction);
906 static int dissect_actionId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
907 return dissect_cmip_NoSuchArgumentAction(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionId);
912 dissect_cmip_T_eventType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
913 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
914 hf_cmip_eventType_OID, object_identifier_id);
919 static int dissect_eventType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
920 return dissect_cmip_T_eventType(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType);
923 static const ber_sequence_t NoSuchArgumentEvent_sequence[] = {
924 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
925 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType },
930 dissect_cmip_NoSuchArgumentEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
931 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
932 NoSuchArgumentEvent_sequence, hf_index, ett_cmip_NoSuchArgumentEvent);
936 static int dissect_eventId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
937 return dissect_cmip_NoSuchArgumentEvent(TRUE, tvb, offset, pinfo, tree, hf_cmip_eventId);
941 static const value_string NoSuchArgument_vals[] = {
947 static const ber_choice_t NoSuchArgument_choice[] = {
948 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_actionId_impl },
949 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_eventId_impl },
954 dissect_cmip_NoSuchArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
955 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
956 NoSuchArgument_choice, hf_index, ett_cmip_NoSuchArgument);
960 static int dissect_actionArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
961 return dissect_cmip_NoSuchArgument(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionArgument);
966 dissect_cmip_T_actionType3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
967 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
968 hf_cmip_actionType_OID, object_identifier_id);
973 static int dissect_actionType3(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
974 return dissect_cmip_T_actionType3(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType3);
980 dissect_cmip_T_actionInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
981 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
986 static int dissect_actionInfoArg(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
987 return dissect_cmip_T_actionInfoArg(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionInfoArg);
990 static const ber_sequence_t ActionInfo_sequence[] = {
991 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType3 },
992 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_actionInfoArg },
997 dissect_cmip_ActionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
998 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
999 ActionInfo_sequence, hf_index, ett_cmip_ActionInfo);
1003 static int dissect_actionValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1004 return dissect_cmip_ActionInfo(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionValue);
1006 static int dissect_actionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1007 return dissect_cmip_ActionInfo(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionInfo);
1012 dissect_cmip_T_eventType1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1013 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1014 hf_cmip_eventType_OID, object_identifier_id);
1019 static int dissect_eventType1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1020 return dissect_cmip_T_eventType1(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType1);
1026 dissect_cmip_T_eventInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1027 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1033 static int dissect_eventInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1034 return dissect_cmip_T_eventInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventInfo);
1037 static const ber_sequence_t InvalidArgumentValueEventValue_sequence[] = {
1038 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType1 },
1039 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_eventInfo },
1044 dissect_cmip_InvalidArgumentValueEventValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1045 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1046 InvalidArgumentValueEventValue_sequence, hf_index, ett_cmip_InvalidArgumentValueEventValue);
1050 static int dissect_eventValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1051 return dissect_cmip_InvalidArgumentValueEventValue(TRUE, tvb, offset, pinfo, tree, hf_cmip_eventValue);
1055 static const value_string InvalidArgumentValue_vals[] = {
1056 { 0, "actionValue" },
1057 { 1, "eventValue" },
1061 static const ber_choice_t InvalidArgumentValue_choice[] = {
1062 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_actionValue_impl },
1063 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_eventValue_impl },
1064 { 0, 0, 0, 0, NULL }
1068 dissect_cmip_InvalidArgumentValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1069 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1070 InvalidArgumentValue_choice, hf_index, ett_cmip_InvalidArgumentValue);
1074 static int dissect_argumentValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1075 return dissect_cmip_InvalidArgumentValue(FALSE, tvb, offset, pinfo, tree, hf_cmip_argumentValue);
1079 static const value_string ErrorInfo_vals[] = {
1080 { 0, "actionType" },
1081 { 1, "actionArgument" },
1082 { 2, "argumentValue" },
1086 static const ber_choice_t ErrorInfo_choice[] = {
1087 { 0, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType1 },
1088 { 1, BER_CLASS_CON, 0, 0, dissect_actionArgument },
1089 { 2, BER_CLASS_CON, 1, 0, dissect_argumentValue },
1090 { 0, 0, 0, 0, NULL }
1094 dissect_cmip_ErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1095 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1096 ErrorInfo_choice, hf_index, ett_cmip_ErrorInfo);
1100 static int dissect_errorInfo1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1101 return dissect_cmip_ErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorInfo1);
1104 static const ber_sequence_t ActionErrorInfo_sequence[] = {
1105 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_errorStatus1 },
1106 { -1/*choice*/ , -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_errorInfo1 },
1111 dissect_cmip_ActionErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1112 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1113 ActionErrorInfo_sequence, hf_index, ett_cmip_ActionErrorInfo);
1117 static int dissect_actionErrorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1118 return dissect_cmip_ActionErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionErrorInfo);
1121 static const ber_sequence_t ActionError_sequence[] = {
1122 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1123 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1124 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1125 { BER_CLASS_CON, 6, 0, dissect_actionErrorInfo },
1130 dissect_cmip_ActionError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1131 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1132 ActionError_sequence, hf_index, ett_cmip_ActionError);
1136 static int dissect_actionError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1137 return dissect_cmip_ActionError(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionError);
1142 dissect_cmip_T_errorId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1143 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1144 hf_cmip_errorId_OID, object_identifier_id);
1149 static int dissect_errorId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1150 return dissect_cmip_T_errorId(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorId);
1156 dissect_cmip_T_errorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1157 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1162 static int dissect_errorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1163 return dissect_cmip_T_errorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorInfo);
1166 static const ber_sequence_t SpecificErrorInfo_sequence[] = {
1167 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_errorId },
1168 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_errorInfo },
1173 dissect_cmip_SpecificErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1174 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1175 SpecificErrorInfo_sequence, hf_index, ett_cmip_SpecificErrorInfo);
1179 static int dissect_specificErrorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1180 return dissect_cmip_SpecificErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_specificErrorInfo);
1183 static const ber_sequence_t ProcessingFailure_sequence[] = {
1184 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1185 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1186 { BER_CLASS_CON, 5, 0, dissect_specificErrorInfo },
1191 dissect_cmip_ProcessingFailure(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1192 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1193 ProcessingFailure_sequence, hf_index, ett_cmip_ProcessingFailure);
1197 static int dissect_processingFailure_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1198 return dissect_cmip_ProcessingFailure(TRUE, tvb, offset, pinfo, tree, hf_cmip_processingFailure);
1202 static const value_string T_deleteErrorInfo_vals[] = {
1203 { 2, "accessDenied" },
1209 dissect_cmip_T_deleteErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1210 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1214 static int dissect_deleteErrorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1215 return dissect_cmip_T_deleteErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_deleteErrorInfo);
1218 static const ber_sequence_t DeleteError_sequence[] = {
1219 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1220 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1221 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1222 { BER_CLASS_CON, 6, 0, dissect_deleteErrorInfo },
1227 dissect_cmip_DeleteError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1228 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1229 DeleteError_sequence, hf_index, ett_cmip_DeleteError);
1233 static int dissect_deleteError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1234 return dissect_cmip_DeleteError(TRUE, tvb, offset, pinfo, tree, hf_cmip_deleteError);
1237 static const ber_sequence_t SET_OF_Attribute_set_of[1] = {
1238 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_attributeList_item },
1242 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_) {
1243 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1244 SET_OF_Attribute_set_of, hf_index, ett_cmip_SET_OF_Attribute);
1248 static int dissect_attributeList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1249 return dissect_cmip_SET_OF_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeList);
1252 static const ber_sequence_t SetResult_sequence[] = {
1253 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1254 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1255 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1256 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
1261 dissect_cmip_SetResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1262 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1263 SetResult_sequence, hf_index, ett_cmip_SetResult);
1267 static int dissect_setResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1268 return dissect_cmip_SetResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_setResult);
1273 dissect_cmip_AccessControl(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1274 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1279 static int dissect_accessControl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1280 return dissect_cmip_AccessControl(FALSE, tvb, offset, pinfo, tree, hf_cmip_accessControl);
1284 static const value_string CMISSync_vals[] = {
1285 { 0, "bestEffort" },
1292 dissect_cmip_CMISSync(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1293 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1297 static int dissect_synchronization_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1298 return dissect_cmip_CMISSync(TRUE, tvb, offset, pinfo, tree, hf_cmip_synchronization);
1302 static const value_string T_namedNumbers_vals[] = {
1303 { 0, "baseObject" },
1304 { 1, "firstLevelOnly" },
1305 { 2, "wholeSubtree" },
1311 dissect_cmip_T_namedNumbers(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1312 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1316 static int dissect_namedNumbers(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1317 return dissect_cmip_T_namedNumbers(FALSE, tvb, offset, pinfo, tree, hf_cmip_namedNumbers);
1323 dissect_cmip_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1324 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1328 static int dissect_individualLevels_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1329 return dissect_cmip_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_cmip_individualLevels);
1331 static int dissect_baseToNthLevel_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1332 return dissect_cmip_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_cmip_baseToNthLevel);
1336 static const value_string Scope_vals[] = {
1337 { 0, "namedNumbers" },
1338 { 1, "individualLevels" },
1339 { 2, "baseToNthLevel" },
1343 static const ber_choice_t Scope_choice[] = {
1344 { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_namedNumbers },
1345 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_individualLevels_impl },
1346 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_baseToNthLevel_impl },
1347 { 0, 0, 0, 0, NULL }
1351 dissect_cmip_Scope(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1352 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1353 Scope_choice, hf_index, ett_cmip_Scope);
1357 static int dissect_scope(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1358 return dissect_cmip_Scope(FALSE, tvb, offset, pinfo, tree, hf_cmip_scope);
1362 static const value_string T_substrings_item_vals[] = {
1363 { 0, "initialString" },
1365 { 2, "finalString" },
1369 static const ber_choice_t T_substrings_item_choice[] = {
1370 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_initialString_impl },
1371 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_anyString_impl },
1372 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_finalString_impl },
1373 { 0, 0, 0, 0, NULL }
1377 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_) {
1378 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1379 T_substrings_item_choice, hf_index, ett_cmip_T_substrings_item);
1383 static int dissect_substrings_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1384 return dissect_cmip_T_substrings_item(FALSE, tvb, offset, pinfo, tree, hf_cmip_substrings_item);
1387 static const ber_sequence_t T_substrings_sequence_of[1] = {
1388 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_substrings_item },
1392 dissect_cmip_T_substrings(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1393 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1394 T_substrings_sequence_of, hf_index, ett_cmip_T_substrings);
1398 static int dissect_substrings_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1399 return dissect_cmip_T_substrings(TRUE, tvb, offset, pinfo, tree, hf_cmip_substrings);
1403 static const value_string FilterItem_vals[] = {
1405 { 1, "substrings" },
1406 { 2, "greaterOrEqual" },
1407 { 3, "lessOrEqual" },
1410 { 6, "supersetOf" },
1411 { 7, "nonNullSetIntersection" },
1415 static const ber_choice_t FilterItem_choice[] = {
1416 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_equality_impl },
1417 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_substrings_impl },
1418 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_greaterOrEqual_impl },
1419 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_lessOrEqual_impl },
1420 { 4, BER_CLASS_CON, 4, 0, dissect_present },
1421 { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_subsetOf_impl },
1422 { 6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_supersetOf_impl },
1423 { 7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_nonNullSetIntersection_impl },
1424 { 0, 0, 0, 0, NULL }
1428 dissect_cmip_FilterItem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1429 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1430 FilterItem_choice, hf_index, ett_cmip_FilterItem);
1434 static int dissect_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1435 return dissect_cmip_FilterItem(FALSE, tvb, offset, pinfo, tree, hf_cmip_item);
1438 static const ber_sequence_t SET_OF_CMISFilter_set_of[1] = {
1439 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_and_item },
1443 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_) {
1444 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1445 SET_OF_CMISFilter_set_of, hf_index, ett_cmip_SET_OF_CMISFilter);
1449 static int dissect_and_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1450 return dissect_cmip_SET_OF_CMISFilter(TRUE, tvb, offset, pinfo, tree, hf_cmip_and);
1452 static int dissect_or_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1453 return dissect_cmip_SET_OF_CMISFilter(TRUE, tvb, offset, pinfo, tree, hf_cmip_or);
1457 static const value_string CMISFilter_vals[] = {
1465 static const ber_choice_t CMISFilter_choice[] = {
1466 { 8, BER_CLASS_CON, 8, 0, dissect_item },
1467 { 9, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_and_impl },
1468 { 10, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_or_impl },
1469 { 11, BER_CLASS_CON, 11, 0, dissect_not },
1470 { 0, 0, 0, 0, NULL }
1474 dissect_cmip_CMISFilter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1475 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1476 CMISFilter_choice, hf_index, ett_cmip_CMISFilter);
1481 static const ber_sequence_t SET_OF_ModificationItem_set_of[1] = {
1482 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_modificationList_item },
1486 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_) {
1487 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1488 SET_OF_ModificationItem_set_of, hf_index, ett_cmip_SET_OF_ModificationItem);
1492 static int dissect_modificationList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1493 return dissect_cmip_SET_OF_ModificationItem(TRUE, tvb, offset, pinfo, tree, hf_cmip_modificationList);
1496 static const ber_sequence_t SetArgument_sequence[] = {
1497 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
1498 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
1499 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
1500 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_synchronization_impl },
1501 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_scope },
1502 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_filter },
1503 { BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_modificationList_impl },
1508 dissect_cmip_SetArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1509 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1510 SetArgument_sequence, hf_index, ett_cmip_SetArgument);
1515 static const ber_sequence_t GetResult_sequence[] = {
1516 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1517 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1518 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1519 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
1524 dissect_cmip_GetResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1525 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1526 GetResult_sequence, hf_index, ett_cmip_GetResult);
1530 static int dissect_getResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1531 return dissect_cmip_GetResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_getResult);
1536 dissect_cmip_T_actionType2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1537 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1538 hf_cmip_actionType_OID, object_identifier_id);
1543 static int dissect_actionType2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1544 return dissect_cmip_T_actionType2(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType2);
1550 dissect_cmip_T_actionReplyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1551 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1556 static int dissect_actionReplyInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1557 return dissect_cmip_T_actionReplyInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionReplyInfo);
1560 static const ber_sequence_t ActionReply_sequence[] = {
1561 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType2 },
1562 { BER_CLASS_CON, 4, 0, dissect_actionReplyInfo },
1567 dissect_cmip_ActionReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1568 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1569 ActionReply_sequence, hf_index, ett_cmip_ActionReply);
1573 static int dissect_actionReply_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1574 return dissect_cmip_ActionReply(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionReply);
1577 static const ber_sequence_t ActionResult_sequence[] = {
1578 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1579 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1580 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1581 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_actionReply_impl },
1586 dissect_cmip_ActionResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1587 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1588 ActionResult_sequence, hf_index, ett_cmip_ActionResult);
1592 static int dissect_actionResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1593 return dissect_cmip_ActionResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionResult);
1596 static const ber_sequence_t DeleteResult_sequence[] = {
1597 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1598 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1599 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1604 dissect_cmip_DeleteResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1605 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1606 DeleteResult_sequence, hf_index, ett_cmip_DeleteResult);
1610 static int dissect_deleteResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1611 return dissect_cmip_DeleteResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_deleteResult);
1615 static const value_string LinkedReplyArgument_vals[] = {
1617 { 1, "getListError" },
1619 { 3, "setListError" },
1620 { 4, "actionResult" },
1621 { 5, "processingFailure" },
1622 { 6, "deleteResult" },
1623 { 7, "actionError" },
1624 { 8, "deleteError" },
1628 static const ber_choice_t LinkedReplyArgument_choice[] = {
1629 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_getResult_impl },
1630 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_getListError_impl },
1631 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_setResult_impl },
1632 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_setListError_impl },
1633 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_actionResult_impl },
1634 { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_processingFailure_impl },
1635 { 6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_deleteResult_impl },
1636 { 7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_actionError_impl },
1637 { 8, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_deleteError_impl },
1638 { 0, 0, 0, 0, NULL }
1642 dissect_cmip_LinkedReplyArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1643 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1644 LinkedReplyArgument_choice, hf_index, ett_cmip_LinkedReplyArgument);
1651 dissect_cmip_T_eventType2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1652 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1653 hf_cmip_eventType_OID, object_identifier_id);
1658 static int dissect_eventType2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1659 return dissect_cmip_T_eventType2(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType2);
1665 dissect_cmip_T_eventReplyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1666 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1671 static int dissect_eventReplyInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1672 return dissect_cmip_T_eventReplyInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventReplyInfo);
1675 static const ber_sequence_t EventReply_sequence[] = {
1676 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType2 },
1677 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_eventReplyInfo },
1682 dissect_cmip_EventReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1683 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1684 EventReply_sequence, hf_index, ett_cmip_EventReply);
1688 static int dissect_eventReply(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1689 return dissect_cmip_EventReply(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventReply);
1692 static const ber_sequence_t EventReportResult_sequence[] = {
1693 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1694 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1695 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1696 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_eventReply },
1701 dissect_cmip_EventReportResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1702 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1703 EventReportResult_sequence, hf_index, ett_cmip_EventReportResult);
1710 dissect_cmip_T_eventType3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1711 offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
1712 hf_cmip_eventType_OID, object_identifier_id);
1717 static int dissect_eventType3(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1718 return dissect_cmip_T_eventType3(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType3);
1724 dissect_cmip_T_eventInfo1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1725 offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
1731 static int dissect_eventInfo1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1732 return dissect_cmip_T_eventInfo1(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventInfo1);
1735 static const ber_sequence_t EventReportArgument_sequence[] = {
1736 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1737 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1738 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventTime_impl },
1739 { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType3 },
1740 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_eventInfo1 },
1745 dissect_cmip_EventReportArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1746 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1747 EventReportArgument_sequence, hf_index, ett_cmip_EventReportArgument);
1752 static const ber_sequence_t DeleteArgument_sequence[] = {
1753 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
1754 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
1755 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
1756 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_synchronization_impl },
1757 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_scope },
1758 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_filter },
1763 dissect_cmip_DeleteArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1764 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1765 DeleteArgument_sequence, hf_index, ett_cmip_DeleteArgument);
1771 static const value_string T_managedOrSuperiorObjectInstance_vals[] = {
1772 { -1/*choice*/, "managedObjectInstance" },
1773 { 8, "superiorObjectInstance" },
1777 static const ber_choice_t T_managedOrSuperiorObjectInstance_choice[] = {
1778 { -1/*choice*/, BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_managedObjectInstance },
1779 { 8, BER_CLASS_CON, 8, 0, dissect_superiorObjectInstance },
1780 { 0, 0, 0, 0, NULL }
1784 dissect_cmip_T_managedOrSuperiorObjectInstance(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1785 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1786 T_managedOrSuperiorObjectInstance_choice, hf_index, ett_cmip_T_managedOrSuperiorObjectInstance);
1790 static int dissect_managedOrSuperiorObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1791 return dissect_cmip_T_managedOrSuperiorObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_managedOrSuperiorObjectInstance);
1794 static const ber_sequence_t CreateArgument_sequence[] = {
1795 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1796 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedOrSuperiorObjectInstance },
1797 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
1798 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_referenceObjectInstance },
1799 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
1804 dissect_cmip_CreateArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1805 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1806 CreateArgument_sequence, hf_index, ett_cmip_CreateArgument);
1811 static const ber_sequence_t CreateResult_sequence[] = {
1812 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
1813 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
1814 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
1815 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
1820 dissect_cmip_CreateResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1821 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1822 CreateResult_sequence, hf_index, ett_cmip_CreateResult);
1827 static const ber_sequence_t ActionArgument_sequence[] = {
1828 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
1829 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
1830 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
1831 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_synchronization_impl },
1832 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_scope },
1833 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_filter },
1834 { BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_actionInfo_impl },
1839 dissect_cmip_ActionArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1840 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1841 ActionArgument_sequence, hf_index, ett_cmip_ActionArgument);
1846 static const ber_sequence_t BaseManagedObjectId_sequence[] = {
1847 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
1848 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
1853 dissect_cmip_BaseManagedObjectId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1854 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1855 BaseManagedObjectId_sequence, hf_index, ett_cmip_BaseManagedObjectId);
1860 static const ber_sequence_t SET_OF_AttributeId_set_of[1] = {
1861 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_attributeIdList_item },
1865 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_) {
1866 offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
1867 SET_OF_AttributeId_set_of, hf_index, ett_cmip_SET_OF_AttributeId);
1871 static int dissect_attributeIdList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1872 return dissect_cmip_SET_OF_AttributeId(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeIdList);
1875 static const ber_sequence_t GetArgument_sequence[] = {
1876 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
1877 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
1878 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
1879 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_synchronization_impl },
1880 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_scope },
1881 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_filter },
1882 { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeIdList_impl },
1887 dissect_cmip_GetArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1888 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1889 GetArgument_sequence, hf_index, ett_cmip_GetArgument);
1897 dissect_cmip_Argument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1898 switch(opcode_type){
1901 case 0: /* M-eventreport */
1902 offset = dissect_cmip_EventReportArgument(FALSE, tvb, offset, pinfo, tree, -1);
1904 case 1: /* M-eventreport-confirmed */
1905 offset = dissect_cmip_EventReportArgument(FALSE, tvb, offset, pinfo, tree, -1);
1907 case 2: /* M-linkedreply */
1908 offset = dissect_cmip_LinkedReplyArgument(FALSE, tvb, offset, pinfo, tree, -1);
1911 offset = dissect_cmip_GetArgument(FALSE, tvb, offset, pinfo, tree, -1);
1914 offset = dissect_cmip_SetArgument(FALSE, tvb, offset, pinfo, tree, -1);
1916 case 5: /* M-set-confirmed */
1917 offset = dissect_cmip_SetArgument(FALSE, tvb, offset, pinfo, tree, -1);
1919 case 6: /* M-action*/
1920 offset = dissect_cmip_ActionArgument(FALSE, tvb, offset, pinfo, tree, -1);
1922 case 7: /* M-action-confirmed*/
1923 offset = dissect_cmip_ActionArgument(FALSE, tvb, offset, pinfo, tree, -1);
1925 case 8: /* M-create*/
1926 offset = dissect_cmip_CreateArgument(FALSE, tvb, offset, pinfo, tree, -1);
1928 case 9: /* M-delete*/
1929 offset = dissect_cmip_DeleteArgument(FALSE, tvb, offset, pinfo, tree, -1);
1931 case 10: /* M-cancelget */
1932 offset = dissect_cmip_InvokeIDType(FALSE, tvb, offset, pinfo, tree, -1);
1936 case OPCODE_RETURN_RESULT:
1938 case 0: /* M-eventreport*/
1939 break; /* No return data */
1940 case 1: /* M-eventreport-confirmed */
1941 offset = dissect_cmip_EventReportResult(FALSE, tvb, offset, pinfo, tree, -1);
1943 case 2: /* M-linkedreply*/
1944 break; /* No return data */
1946 offset = dissect_cmip_GetResult(FALSE, tvb, offset, pinfo, tree, -1);
1949 break; /* No return data */
1950 case 5: /* M-set-confirmed*/
1951 offset = dissect_cmip_SetResult(FALSE, tvb, offset, pinfo, tree, -1);
1953 case 6: /* M-action*/
1954 break; /* No return data */
1955 case 7: /* M-action-confirmed*/
1956 offset = dissect_cmip_ActionResult(FALSE, tvb, offset, pinfo, tree, -1);
1958 case 8: /* M-create*/
1959 offset = dissect_cmip_CreateResult(FALSE, tvb, offset, pinfo, tree, -1);
1961 case 9: /* M-delete*/
1962 offset = dissect_cmip_DeleteResult(FALSE, tvb, offset, pinfo, tree, -1);
1964 case 10: /* M-cancelget */
1965 break; /* doe this one return any data? */
1968 /*XXX add more types here */
1974 static int dissect_argument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1975 return dissect_cmip_Argument(FALSE, tvb, offset, pinfo, tree, hf_cmip_argument);
1979 static const value_string Opcode_vals[] = {
1980 { 0, "m-EventReport" },
1981 { 1, "m-EventReport-Confirmed" },
1982 { 2, "m-Linked-Reply" },
1985 { 5, "m-Set-Confirmed" },
1987 { 7, "m-Action-Confirmed" },
1990 { 10, "m-CancelGet" },
1996 dissect_cmip_Opcode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1997 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, &opcode);
1998 if(check_col(pinfo->cinfo, COL_INFO)){
1999 col_prepend_fstr(pinfo->cinfo, COL_INFO, "%s", val_to_str(opcode, Opcode_vals, " Unknown Opcode:%d"));
2004 static int dissect_opcode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2005 return dissect_cmip_Opcode(FALSE, tvb, offset, pinfo, tree, hf_cmip_opcode);
2008 static const ber_sequence_t ReturnResultBody_sequence[] = {
2009 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_opcode },
2010 { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_argument },
2015 dissect_cmip_ReturnResultBody(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2016 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2017 ReturnResultBody_sequence, hf_index, ett_cmip_ReturnResultBody);
2021 static int dissect_rRBody(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2022 return dissect_cmip_ReturnResultBody(FALSE, tvb, offset, pinfo, tree, hf_cmip_rRBody);
2028 dissect_cmip_InvokeID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2029 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2033 static int dissect_present2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2034 return dissect_cmip_InvokeID(FALSE, tvb, offset, pinfo, tree, hf_cmip_present2);
2039 dissect_cmip_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2040 { proto_item *ti_tmp;
2041 ti_tmp = proto_tree_add_item(tree, hf_index, tvb, offset>>8, 0, FALSE);
2042 proto_item_append_text(ti_tmp, ": NULL");
2047 static int dissect_absent(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2048 return dissect_cmip_NULL(FALSE, tvb, offset, pinfo, tree, hf_cmip_absent);
2050 static int dissect_absent_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2051 return dissect_cmip_NULL(TRUE, tvb, offset, pinfo, tree, hf_cmip_absent);
2055 static const value_string InvokeId_vals[] = {
2061 static const ber_choice_t InvokeId_choice[] = {
2062 { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_present2 },
2063 { 1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_absent },
2064 { 0, 0, 0, 0, NULL }
2068 dissect_cmip_InvokeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2069 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2070 InvokeId_choice, hf_index, ett_cmip_InvokeId);
2074 static int dissect_present1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2075 return dissect_cmip_InvokeId(TRUE, tvb, offset, pinfo, tree, hf_cmip_present1);
2077 static int dissect_invokeId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2078 return dissect_cmip_InvokeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_invokeId);
2082 static const value_string InvokeLinkedId_vals[] = {
2088 static const ber_choice_t InvokeLinkedId_choice[] = {
2089 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_present1_impl },
2090 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_absent_impl },
2091 { 0, 0, 0, 0, NULL }
2095 dissect_cmip_InvokeLinkedId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2096 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2097 InvokeLinkedId_choice, hf_index, ett_cmip_InvokeLinkedId);
2101 static int dissect_linkedId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2102 return dissect_cmip_InvokeLinkedId(FALSE, tvb, offset, pinfo, tree, hf_cmip_linkedId);
2107 dissect_cmip_InvokeIDType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2108 offset = dissect_cmip_InvokeId(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2113 static const ber_sequence_t Invoke_sequence[] = {
2114 { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
2115 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_linkedId },
2116 { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_opcode },
2117 { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_argument },
2122 dissect_cmip_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2123 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2124 Invoke_sequence, hf_index, ett_cmip_Invoke);
2126 opcode_type=OPCODE_INVOKE;
2127 if(check_col(pinfo->cinfo, COL_INFO)){
2128 col_prepend_fstr(pinfo->cinfo, COL_INFO, "Invoke ");
2132 static int dissect_invoke_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2133 return dissect_cmip_Invoke(TRUE, tvb, offset, pinfo, tree, hf_cmip_invoke);
2136 static const ber_sequence_t ReturnResult_sequence[] = {
2137 { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
2138 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_rRBody },
2143 dissect_cmip_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2144 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2145 ReturnResult_sequence, hf_index, ett_cmip_ReturnResult);
2147 opcode_type=OPCODE_RETURN_RESULT;
2148 if(check_col(pinfo->cinfo, COL_INFO)){
2149 col_prepend_fstr(pinfo->cinfo, COL_INFO, "ReturnResult ");
2153 static int dissect_returnResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2154 return dissect_cmip_ReturnResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_returnResult);
2157 static const ber_sequence_t ReturnError_sequence[] = {
2158 { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
2163 dissect_cmip_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2164 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2165 ReturnError_sequence, hf_index, ett_cmip_ReturnError);
2167 opcode_type=OPCODE_RETURN_ERROR;
2168 if(check_col(pinfo->cinfo, COL_INFO)){
2169 col_prepend_fstr(pinfo->cinfo, COL_INFO, "ReturnError ");
2173 static int dissect_returnError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2174 return dissect_cmip_ReturnError(TRUE, tvb, offset, pinfo, tree, hf_cmip_returnError);
2178 static const value_string GeneralProblem_vals[] = {
2179 { 0, "unrecognizedPDU" },
2180 { 1, "mistypedPDU" },
2181 { 2, "badlyStructuredPDU" },
2187 dissect_cmip_GeneralProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2188 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2192 static int dissect_generalProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2193 return dissect_cmip_GeneralProblem(TRUE, tvb, offset, pinfo, tree, hf_cmip_generalProblem);
2197 static const value_string InvokeProblem_vals[] = {
2198 { 0, "duplicateInvocation" },
2199 { 1, "unrecognizedOperation" },
2200 { 2, "mistypedArgument" },
2201 { 3, "resourceLimitation" },
2202 { 4, "releaseInProgress" },
2203 { 5, "unrecognizedLinkedId" },
2204 { 6, "linkedResponseUnexpected" },
2205 { 7, "unexpectedLinkedOperation" },
2211 dissect_cmip_InvokeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2212 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2216 static int dissect_invokeProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2217 return dissect_cmip_InvokeProblem(TRUE, tvb, offset, pinfo, tree, hf_cmip_invokeProblem);
2221 static const value_string ReturnResultProblem_vals[] = {
2222 { 0, "unrecognizedInvocation" },
2223 { 1, "resultResponseUnexpected" },
2224 { 2, "mistypedResult" },
2230 dissect_cmip_ReturnResultProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2231 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2235 static int dissect_returnResultProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2236 return dissect_cmip_ReturnResultProblem(TRUE, tvb, offset, pinfo, tree, hf_cmip_returnResultProblem);
2240 static const value_string ReturnErrorProblem_vals[] = {
2241 { 0, "unrecognizedInvocation" },
2242 { 1, "errorResponseUnexpected" },
2243 { 2, "unrecognizedError" },
2244 { 3, "unexpectedError" },
2245 { 4, "mistypedParameter" },
2251 dissect_cmip_ReturnErrorProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2252 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2256 static int dissect_returnErrorProblem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2257 return dissect_cmip_ReturnErrorProblem(TRUE, tvb, offset, pinfo, tree, hf_cmip_returnErrorProblem);
2261 static const value_string RejectProblem_vals[] = {
2262 { 0, "general-unrecognizedPDU" },
2263 { 1, "general-mistypedPDU" },
2264 { 2, "general-badlyStructuredPDU" },
2265 { 10, "invoke-duplicateInvocation" },
2266 { 11, "invoke-unrecognizedOperation" },
2267 { 12, "invoke-mistypedArgument" },
2268 { 13, "invoke-resourceLimitation" },
2269 { 14, "invoke-releaseInProgress" },
2270 { 15, "invoke-unrecognizedLinkedId" },
2271 { 16, "invoke-linkedResponseUnexpected" },
2272 { 17, "invoke-unexpectedLinkedOperation" },
2273 { 20, "returnResult-unrecognizedInvocation" },
2274 { 21, "returnResult-resultResponseUnexpected" },
2275 { 22, "returnResult-mistypedResult" },
2276 { 30, "returnError-unrecognizedInvocation" },
2277 { 31, "returnError-errorResponseUnexpected" },
2278 { 32, "returnError-unrecognizedError" },
2279 { 33, "returnError-unexpectedError" },
2280 { 34, "returnError-mistypedParameter" },
2286 dissect_cmip_RejectProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2287 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
2293 static const value_string RejectProb_vals[] = {
2294 { 0, "generalProblem" },
2295 { 1, "invokeProblem" },
2296 { 2, "returnResultProblem" },
2297 { 3, "returnErrorProblem" },
2301 static const ber_choice_t RejectProb_choice[] = {
2302 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_generalProblem_impl },
2303 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invokeProblem_impl },
2304 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResultProblem_impl },
2305 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnErrorProblem_impl },
2306 { 0, 0, 0, 0, NULL }
2310 dissect_cmip_RejectProb(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2311 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2312 RejectProb_choice, hf_index, ett_cmip_RejectProb);
2316 static int dissect_rejectProblem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2317 return dissect_cmip_RejectProb(FALSE, tvb, offset, pinfo, tree, hf_cmip_rejectProblem);
2320 static const ber_sequence_t Reject_sequence[] = {
2321 { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
2322 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_rejectProblem },
2327 dissect_cmip_Reject(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2328 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2329 Reject_sequence, hf_index, ett_cmip_Reject);
2331 opcode_type=OPCODE_REJECT;
2332 if(check_col(pinfo->cinfo, COL_INFO)){
2333 col_prepend_fstr(pinfo->cinfo, COL_INFO, "Reject ");
2337 static int dissect_reject_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2338 return dissect_cmip_Reject(TRUE, tvb, offset, pinfo, tree, hf_cmip_reject);
2342 const value_string ROS_vals[] = {
2344 { 2, "returnResult" },
2345 { 3, "returnError" },
2350 static const ber_choice_t ROS_choice[] = {
2351 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invoke_impl },
2352 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResult_impl },
2353 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnError_impl },
2354 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_reject_impl },
2355 { 0, 0, 0, 0, NULL }
2359 dissect_cmip_ROS(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2360 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2361 ROS_choice, hf_index, ett_cmip_ROS);
2367 static const value_string CMIPAbortSource_vals[] = {
2368 { 0, "cmiseServiceUser" },
2369 { 1, "cmiseServiceProvider" },
2375 dissect_cmip_CMIPAbortSource(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2377 offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, &value);
2378 if(check_col(pinfo->cinfo, COL_INFO)){
2379 col_append_fstr(pinfo->cinfo, COL_INFO, " AbortSource:%s", val_to_str(value, CMIPAbortSource_vals, " Unknown AbortSource:%d"));
2384 static int dissect_abortSource_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2385 return dissect_cmip_CMIPAbortSource(TRUE, tvb, offset, pinfo, tree, hf_cmip_abortSource);
2388 static const ber_sequence_t CMIPAbortInfo_sequence[] = {
2389 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_abortSource_impl },
2394 dissect_cmip_CMIPAbortInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2395 if(check_col(pinfo->cinfo, COL_INFO)){
2396 col_append_fstr(pinfo->cinfo, COL_INFO, "CMIP-A-ABORT");
2398 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2399 CMIPAbortInfo_sequence, hf_index, ett_cmip_CMIPAbortInfo);
2404 static const asn_namedbit FunctionalUnits_bits[] = {
2405 { 0, &hf_cmip_FunctionalUnits_multipleObjectSelection, -1, -1, NULL, NULL },
2406 { 1, &hf_cmip_FunctionalUnits_filter, -1, -1, NULL, NULL },
2407 { 2, &hf_cmip_FunctionalUnits_multipleReply, -1, -1, NULL, NULL },
2408 { 3, &hf_cmip_FunctionalUnits_extendedService, -1, -1, NULL, NULL },
2409 { 4, &hf_cmip_FunctionalUnits_cancelGet, -1, -1, NULL, NULL },
2410 { 0, NULL, 0, 0, NULL, NULL }
2414 dissect_cmip_FunctionalUnits(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2415 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
2416 FunctionalUnits_bits, hf_index, ett_cmip_FunctionalUnits,
2421 static int dissect_functionalUnits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2422 return dissect_cmip_FunctionalUnits(TRUE, tvb, offset, pinfo, tree, hf_cmip_functionalUnits);
2425 static const asn_namedbit ProtocolVersion_bits[] = {
2426 { 0, &hf_cmip_ProtocolVersion_version1, -1, -1, NULL, NULL },
2427 { 1, &hf_cmip_ProtocolVersion_version2, -1, -1, NULL, NULL },
2428 { 0, NULL, 0, 0, NULL, NULL }
2432 dissect_cmip_ProtocolVersion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2433 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
2434 ProtocolVersion_bits, hf_index, ett_cmip_ProtocolVersion,
2439 static int dissect_protocolVersion_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2440 return dissect_cmip_ProtocolVersion(TRUE, tvb, offset, pinfo, tree, hf_cmip_protocolVersion);
2443 static const ber_sequence_t CMIPUserInfo_sequence[] = {
2444 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_protocolVersion_impl },
2445 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_functionalUnits_impl },
2450 dissect_cmip_CMIPUserInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2451 if(check_col(pinfo->cinfo, COL_INFO)){
2452 col_append_fstr(pinfo->cinfo, COL_INFO, "CMIP-A-ASSOCIATE");
2454 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2455 CMIPUserInfo_sequence, hf_index, ett_cmip_CMIPUserInfo);
2461 /*--- End of included file: packet-cmip-fn.c ---*/
2464 /* XXX this one should be broken out later and moved into the conformance file */
2466 dissect_cmip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
2468 static struct SESSION_DATA_STRUCTURE* session = NULL;
2469 proto_item *item = NULL;
2470 proto_tree *tree = NULL;
2473 /* do we have spdu type from the session dissector? */
2474 if( !pinfo->private_data ){
2476 proto_tree_add_text(tree, tvb, 0, -1,
2477 "Internal error:can't get spdu type from session dissector.");
2481 session = ( (struct SESSION_DATA_STRUCTURE*)(pinfo->private_data) );
2482 if(session->spdu_type == 0 ){
2484 proto_tree_add_text(tree, tvb, 0, -1,
2485 "Internal error:wrong spdu type %x from session dissector.",session->spdu_type);
2492 item = proto_tree_add_item(parent_tree, proto_cmip, tvb, 0, -1, FALSE);
2493 tree = proto_item_add_subtree(item, ett_cmip);
2496 if (check_col(pinfo->cinfo, COL_PROTOCOL))
2497 col_set_str(pinfo->cinfo, COL_PROTOCOL, "CMIP");
2498 if (check_col(pinfo->cinfo, COL_INFO))
2499 col_clear(pinfo->cinfo, COL_INFO);
2500 switch(session->spdu_type){
2501 case SES_CONNECTION_REQUEST:
2502 case SES_CONNECTION_ACCEPT:
2503 case SES_DISCONNECT:
2506 dissect_cmip_CMIPUserInfo(FALSE,tvb,0,pinfo,tree,-1);
2509 dissect_cmip_CMIPAbortInfo(FALSE,tvb,0,pinfo,tree,-1);
2511 case SES_DATA_TRANSFER:
2512 dissect_cmip_ROS(FALSE,tvb,0,pinfo,tree,-1);
2519 /*--- proto_register_cmip ----------------------------------------------*/
2520 void proto_register_cmip(void) {
2522 /* List of fields */
2523 static hf_register_info hf[] = {
2524 { &hf_cmip_actionType_OID,
2525 { "actionType", "cmip.actionType_OID",
2526 FT_STRING, BASE_NONE, NULL, 0,
2527 "actionType", HFILL }},
2528 { &hf_cmip_eventType_OID,
2529 { "eventType", "cmip.eventType_OID",
2530 FT_STRING, BASE_NONE, NULL, 0,
2531 "eventType", HFILL }},
2532 { &hf_cmip_attributeId_OID,
2533 { "attributeId", "cmip.attributeId_OID",
2534 FT_STRING, BASE_NONE, NULL, 0,
2535 "attributeId", HFILL }},
2536 { &hf_cmip_errorId_OID,
2537 { "errorId", "cmip.errorId_OID",
2538 FT_STRING, BASE_NONE, NULL, 0,
2539 "errorId", HFILL }},
2541 /*--- Included file: packet-cmip-hfarr.c ---*/
2543 { &hf_cmip_modifyOperator,
2544 { "modifyOperator", "cmip.modifyOperator",
2545 FT_INT32, BASE_DEC, VALS(ModifyOperator_vals), 0,
2547 { &hf_cmip_attributeId,
2548 { "attributeId", "cmip.attributeId",
2549 FT_STRING, BASE_NONE, NULL, 0,
2550 "ModificationItem/attributeId", HFILL }},
2551 { &hf_cmip_attributeValue,
2552 { "attributeValue", "cmip.attributeValue",
2553 FT_NONE, BASE_NONE, NULL, 0,
2554 "ModificationItem/attributeValue", HFILL }},
2555 { &hf_cmip_managedObjectClass,
2556 { "managedObjectClass", "cmip.managedObjectClass",
2557 FT_UINT32, BASE_DEC, VALS(ObjectClass_vals), 0,
2559 { &hf_cmip_managedObjectInstance,
2560 { "managedObjectInstance", "cmip.managedObjectInstance",
2561 FT_UINT32, BASE_DEC, VALS(ObjectInstance_vals), 0,
2563 { &hf_cmip_currentTime,
2564 { "currentTime", "cmip.currentTime",
2565 FT_STRING, BASE_NONE, NULL, 0,
2567 { &hf_cmip_getInfoList,
2568 { "getInfoList", "cmip.getInfoList",
2569 FT_NONE, BASE_NONE, NULL, 0,
2570 "GetListError/getInfoList", HFILL }},
2571 { &hf_cmip_getInfoList_item,
2572 { "Item", "cmip.getInfoList_item",
2573 FT_UINT32, BASE_DEC, VALS(GetInfoStatus_vals), 0,
2574 "GetListError/getInfoList/_item", HFILL }},
2575 { &hf_cmip_attributeIdError,
2576 { "attributeIdError", "cmip.attributeIdError",
2577 FT_NONE, BASE_NONE, NULL, 0,
2578 "GetInfoStatus/attributeIdError", HFILL }},
2579 { &hf_cmip_attribute,
2580 { "attribute", "cmip.attribute",
2581 FT_NONE, BASE_NONE, NULL, 0,
2583 { &hf_cmip_errorStatus,
2584 { "errorStatus", "cmip.errorStatus",
2585 FT_UINT32, BASE_DEC, VALS(T_errorStatus_vals), 0,
2586 "AttributeIdError/errorStatus", HFILL }},
2587 { &hf_cmip_attributeId1,
2588 { "attributeId", "cmip.attributeId",
2589 FT_UINT32, BASE_DEC, VALS(AttributeId_vals), 0,
2590 "AttributeIdError/attributeId", HFILL }},
2591 { &hf_cmip_setInfoList,
2592 { "setInfoList", "cmip.setInfoList",
2593 FT_NONE, BASE_NONE, NULL, 0,
2594 "SetListError/setInfoList", HFILL }},
2595 { &hf_cmip_setInfoList_item,
2596 { "Item", "cmip.setInfoList_item",
2597 FT_UINT32, BASE_DEC, VALS(SetInfoStatus_vals), 0,
2598 "SetListError/setInfoList/_item", HFILL }},
2599 { &hf_cmip_actionErrorInfo,
2600 { "actionErrorInfo", "cmip.actionErrorInfo",
2601 FT_NONE, BASE_NONE, NULL, 0,
2602 "ActionError/actionErrorInfo", HFILL }},
2603 { &hf_cmip_specificErrorInfo,
2604 { "specificErrorInfo", "cmip.specificErrorInfo",
2605 FT_NONE, BASE_NONE, NULL, 0,
2606 "ProcessingFailure/specificErrorInfo", HFILL }},
2607 { &hf_cmip_deleteErrorInfo,
2608 { "deleteErrorInfo", "cmip.deleteErrorInfo",
2609 FT_UINT32, BASE_DEC, VALS(T_deleteErrorInfo_vals), 0,
2610 "DeleteError/deleteErrorInfo", HFILL }},
2611 { &hf_cmip_attributeError,
2612 { "attributeError", "cmip.attributeError",
2613 FT_NONE, BASE_NONE, NULL, 0,
2614 "SetInfoStatus/attributeError", HFILL }},
2616 { "errorId", "cmip.errorId",
2617 FT_STRING, BASE_NONE, NULL, 0,
2618 "SpecificErrorInfo/errorId", HFILL }},
2619 { &hf_cmip_errorInfo,
2620 { "errorInfo", "cmip.errorInfo",
2621 FT_NONE, BASE_NONE, NULL, 0,
2622 "SpecificErrorInfo/errorInfo", HFILL }},
2623 { &hf_cmip_actionType,
2624 { "actionType", "cmip.actionType",
2625 FT_STRING, BASE_NONE, NULL, 0,
2626 "NoSuchArgumentAction/actionType", HFILL }},
2627 { &hf_cmip_eventType,
2628 { "eventType", "cmip.eventType",
2629 FT_STRING, BASE_NONE, NULL, 0,
2630 "NoSuchArgumentEvent/eventType", HFILL }},
2631 { &hf_cmip_actionId,
2632 { "actionId", "cmip.actionId",
2633 FT_NONE, BASE_NONE, NULL, 0,
2634 "NoSuchArgument/actionId", HFILL }},
2636 { "eventId", "cmip.eventId",
2637 FT_NONE, BASE_NONE, NULL, 0,
2638 "NoSuchArgument/eventId", HFILL }},
2639 { &hf_cmip_eventType1,
2640 { "eventType", "cmip.eventType",
2641 FT_STRING, BASE_NONE, NULL, 0,
2642 "InvalidArgumentValueEventValue/eventType", HFILL }},
2643 { &hf_cmip_eventInfo,
2644 { "eventInfo", "cmip.eventInfo",
2645 FT_NONE, BASE_NONE, NULL, 0,
2646 "InvalidArgumentValueEventValue/eventInfo", HFILL }},
2647 { &hf_cmip_actionValue,
2648 { "actionValue", "cmip.actionValue",
2649 FT_NONE, BASE_NONE, NULL, 0,
2650 "InvalidArgumentValue/actionValue", HFILL }},
2651 { &hf_cmip_eventValue,
2652 { "eventValue", "cmip.eventValue",
2653 FT_NONE, BASE_NONE, NULL, 0,
2654 "InvalidArgumentValue/eventValue", HFILL }},
2655 { &hf_cmip_actionType1,
2656 { "actionType", "cmip.actionType",
2657 FT_STRING, BASE_NONE, NULL, 0,
2658 "ErrorInfo/actionType", HFILL }},
2659 { &hf_cmip_actionArgument,
2660 { "actionArgument", "cmip.actionArgument",
2661 FT_UINT32, BASE_DEC, VALS(NoSuchArgument_vals), 0,
2662 "ErrorInfo/actionArgument", HFILL }},
2663 { &hf_cmip_argumentValue,
2664 { "argumentValue", "cmip.argumentValue",
2665 FT_UINT32, BASE_DEC, VALS(InvalidArgumentValue_vals), 0,
2666 "ErrorInfo/argumentValue", HFILL }},
2667 { &hf_cmip_errorStatus1,
2668 { "errorStatus", "cmip.errorStatus",
2669 FT_UINT32, BASE_DEC, VALS(T_errorStatus1_vals), 0,
2670 "ActionErrorInfo/errorStatus", HFILL }},
2671 { &hf_cmip_errorInfo1,
2672 { "errorInfo", "cmip.errorInfo",
2673 FT_UINT32, BASE_DEC, VALS(ErrorInfo_vals), 0,
2674 "ActionErrorInfo/errorInfo", HFILL }},
2675 { &hf_cmip_errorStatus2,
2676 { "errorStatus", "cmip.errorStatus",
2677 FT_UINT32, BASE_DEC, VALS(T_errorStatus2_vals), 0,
2678 "AttributeError/errorStatus", HFILL }},
2679 { &hf_cmip_attributeId2,
2680 { "attributeId", "cmip.attributeId",
2681 FT_STRING, BASE_NONE, NULL, 0,
2682 "AttributeError/attributeId", HFILL }},
2683 { &hf_cmip_attributeValue1,
2684 { "attributeValue", "cmip.attributeValue",
2685 FT_NONE, BASE_NONE, NULL, 0,
2686 "AttributeError/attributeValue", HFILL }},
2687 { &hf_cmip_attributeList,
2688 { "attributeList", "cmip.attributeList",
2689 FT_NONE, BASE_NONE, NULL, 0,
2691 { &hf_cmip_attributeList_item,
2692 { "Item", "cmip.attributeList_item",
2693 FT_NONE, BASE_NONE, NULL, 0,
2695 { &hf_cmip_baseManagedObjectClass,
2696 { "baseManagedObjectClass", "cmip.baseManagedObjectClass",
2697 FT_UINT32, BASE_DEC, VALS(ObjectClass_vals), 0,
2699 { &hf_cmip_baseManagedObjectInstance,
2700 { "baseManagedObjectInstance", "cmip.baseManagedObjectInstance",
2701 FT_UINT32, BASE_DEC, VALS(ObjectInstance_vals), 0,
2703 { &hf_cmip_accessControl,
2704 { "accessControl", "cmip.accessControl",
2705 FT_BYTES, BASE_HEX, NULL, 0,
2707 { &hf_cmip_synchronization,
2708 { "synchronization", "cmip.synchronization",
2709 FT_UINT32, BASE_DEC, VALS(CMISSync_vals), 0,
2712 { "scope", "cmip.scope",
2713 FT_UINT32, BASE_DEC, VALS(Scope_vals), 0,
2716 { "filter", "cmip.filter",
2717 FT_UINT32, BASE_DEC, VALS(CMISFilter_vals), 0,
2719 { &hf_cmip_modificationList,
2720 { "modificationList", "cmip.modificationList",
2721 FT_NONE, BASE_NONE, NULL, 0,
2722 "SetArgument/modificationList", HFILL }},
2723 { &hf_cmip_modificationList_item,
2724 { "Item", "cmip.modificationList_item",
2725 FT_NONE, BASE_NONE, NULL, 0,
2726 "SetArgument/modificationList/_item", HFILL }},
2727 { &hf_cmip_getResult,
2728 { "getResult", "cmip.getResult",
2729 FT_NONE, BASE_NONE, NULL, 0,
2730 "LinkedReplyArgument/getResult", HFILL }},
2731 { &hf_cmip_getListError,
2732 { "getListError", "cmip.getListError",
2733 FT_NONE, BASE_NONE, NULL, 0,
2734 "LinkedReplyArgument/getListError", HFILL }},
2735 { &hf_cmip_setResult,
2736 { "setResult", "cmip.setResult",
2737 FT_NONE, BASE_NONE, NULL, 0,
2738 "LinkedReplyArgument/setResult", HFILL }},
2739 { &hf_cmip_setListError,
2740 { "setListError", "cmip.setListError",
2741 FT_NONE, BASE_NONE, NULL, 0,
2742 "LinkedReplyArgument/setListError", HFILL }},
2743 { &hf_cmip_actionResult,
2744 { "actionResult", "cmip.actionResult",
2745 FT_NONE, BASE_NONE, NULL, 0,
2746 "LinkedReplyArgument/actionResult", HFILL }},
2747 { &hf_cmip_processingFailure,
2748 { "processingFailure", "cmip.processingFailure",
2749 FT_NONE, BASE_NONE, NULL, 0,
2750 "LinkedReplyArgument/processingFailure", HFILL }},
2751 { &hf_cmip_deleteResult,
2752 { "deleteResult", "cmip.deleteResult",
2753 FT_NONE, BASE_NONE, NULL, 0,
2754 "LinkedReplyArgument/deleteResult", HFILL }},
2755 { &hf_cmip_actionError,
2756 { "actionError", "cmip.actionError",
2757 FT_NONE, BASE_NONE, NULL, 0,
2758 "LinkedReplyArgument/actionError", HFILL }},
2759 { &hf_cmip_deleteError,
2760 { "deleteError", "cmip.deleteError",
2761 FT_NONE, BASE_NONE, NULL, 0,
2762 "LinkedReplyArgument/deleteError", HFILL }},
2763 { &hf_cmip_eventType2,
2764 { "eventType", "cmip.eventType",
2765 FT_STRING, BASE_NONE, NULL, 0,
2766 "EventReply/eventType", HFILL }},
2767 { &hf_cmip_eventReplyInfo,
2768 { "eventReplyInfo", "cmip.eventReplyInfo",
2769 FT_NONE, BASE_NONE, NULL, 0,
2770 "EventReply/eventReplyInfo", HFILL }},
2771 { &hf_cmip_eventReply,
2772 { "eventReply", "cmip.eventReply",
2773 FT_NONE, BASE_NONE, NULL, 0,
2774 "EventReportResult/eventReply", HFILL }},
2775 { &hf_cmip_eventTime,
2776 { "eventTime", "cmip.eventTime",
2777 FT_STRING, BASE_NONE, NULL, 0,
2778 "EventReportArgument/eventTime", HFILL }},
2779 { &hf_cmip_eventType3,
2780 { "eventType", "cmip.eventType",
2781 FT_STRING, BASE_NONE, NULL, 0,
2782 "EventReportArgument/eventType", HFILL }},
2783 { &hf_cmip_eventInfo1,
2784 { "eventInfo", "cmip.eventInfo",
2785 FT_NONE, BASE_NONE, NULL, 0,
2786 "EventReportArgument/eventInfo", HFILL }},
2787 { &hf_cmip_managedOrSuperiorObjectInstance,
2788 { "managedOrSuperiorObjectInstance", "cmip.managedOrSuperiorObjectInstance",
2789 FT_UINT32, BASE_DEC, VALS(T_managedOrSuperiorObjectInstance_vals), 0,
2790 "CreateArgument/managedOrSuperiorObjectInstance", HFILL }},
2791 { &hf_cmip_superiorObjectInstance,
2792 { "superiorObjectInstance", "cmip.superiorObjectInstance",
2793 FT_UINT32, BASE_DEC, VALS(ObjectInstance_vals), 0,
2794 "CreateArgument/managedOrSuperiorObjectInstance/superiorObjectInstance", HFILL }},
2795 { &hf_cmip_referenceObjectInstance,
2796 { "referenceObjectInstance", "cmip.referenceObjectInstance",
2797 FT_UINT32, BASE_DEC, VALS(ObjectInstance_vals), 0,
2798 "CreateArgument/referenceObjectInstance", HFILL }},
2799 { &hf_cmip_actionType2,
2800 { "actionType", "cmip.actionType",
2801 FT_STRING, BASE_NONE, NULL, 0,
2802 "ActionReply/actionType", HFILL }},
2803 { &hf_cmip_actionReplyInfo,
2804 { "actionReplyInfo", "cmip.actionReplyInfo",
2805 FT_NONE, BASE_NONE, NULL, 0,
2806 "ActionReply/actionReplyInfo", HFILL }},
2807 { &hf_cmip_actionReply,
2808 { "actionReply", "cmip.actionReply",
2809 FT_NONE, BASE_NONE, NULL, 0,
2810 "ActionResult/actionReply", HFILL }},
2811 { &hf_cmip_actionInfo,
2812 { "actionInfo", "cmip.actionInfo",
2813 FT_NONE, BASE_NONE, NULL, 0,
2814 "ActionArgument/actionInfo", HFILL }},
2815 { &hf_cmip_actionType3,
2816 { "actionType", "cmip.actionType",
2817 FT_STRING, BASE_NONE, NULL, 0,
2818 "ActionInfo/actionType", HFILL }},
2819 { &hf_cmip_actionInfoArg,
2820 { "actionInfoArg", "cmip.actionInfoArg",
2821 FT_NONE, BASE_NONE, NULL, 0,
2822 "ActionInfo/actionInfoArg", HFILL }},
2823 { &hf_cmip_ocglobalForm,
2824 { "ocglobalForm", "cmip.ocglobalForm",
2825 FT_STRING, BASE_NONE, NULL, 0,
2826 "ObjectClass/ocglobalForm", HFILL }},
2827 { &hf_cmip_oclocalForm,
2828 { "oclocalForm", "cmip.oclocalForm",
2829 FT_INT32, BASE_DEC, NULL, 0,
2830 "ObjectClass/oclocalForm", HFILL }},
2831 { &hf_cmip_distinguishedName,
2832 { "distinguishedName", "cmip.distinguishedName",
2833 FT_NONE, BASE_NONE, NULL, 0,
2834 "ObjectInstance/distinguishedName", HFILL }},
2835 { &hf_cmip_nonSpecificForm,
2836 { "nonSpecificForm", "cmip.nonSpecificForm",
2837 FT_BYTES, BASE_HEX, NULL, 0,
2838 "ObjectInstance/nonSpecificForm", HFILL }},
2839 { &hf_cmip_localDistinguishedName,
2840 { "localDistinguishedName", "cmip.localDistinguishedName",
2841 FT_NONE, BASE_NONE, NULL, 0,
2842 "ObjectInstance/localDistinguishedName", HFILL }},
2843 { &hf_cmip_globalForm,
2844 { "globalForm", "cmip.globalForm",
2845 FT_STRING, BASE_NONE, NULL, 0,
2846 "AttributeId/globalForm", HFILL }},
2847 { &hf_cmip_localForm,
2848 { "localForm", "cmip.localForm",
2849 FT_INT32, BASE_DEC, NULL, 0,
2850 "AttributeId/localForm", HFILL }},
2853 FT_UINT32, BASE_DEC, VALS(AttributeId_vals), 0,
2854 "Attribute/id", HFILL }},
2856 { "value", "cmip.value",
2857 FT_NONE, BASE_NONE, NULL, 0,
2858 "Attribute/value", HFILL }},
2859 { &hf_cmip_equality,
2860 { "equality", "cmip.equality",
2861 FT_NONE, BASE_NONE, NULL, 0,
2862 "FilterItem/equality", HFILL }},
2863 { &hf_cmip_substrings,
2864 { "substrings", "cmip.substrings",
2865 FT_NONE, BASE_NONE, NULL, 0,
2866 "FilterItem/substrings", HFILL }},
2867 { &hf_cmip_substrings_item,
2868 { "Item", "cmip.substrings_item",
2869 FT_UINT32, BASE_DEC, VALS(T_substrings_item_vals), 0,
2870 "FilterItem/substrings/_item", HFILL }},
2871 { &hf_cmip_initialString,
2872 { "initialString", "cmip.initialString",
2873 FT_NONE, BASE_NONE, NULL, 0,
2874 "FilterItem/substrings/_item/initialString", HFILL }},
2875 { &hf_cmip_anyString,
2876 { "anyString", "cmip.anyString",
2877 FT_NONE, BASE_NONE, NULL, 0,
2878 "FilterItem/substrings/_item/anyString", HFILL }},
2879 { &hf_cmip_finalString,
2880 { "finalString", "cmip.finalString",
2881 FT_NONE, BASE_NONE, NULL, 0,
2882 "FilterItem/substrings/_item/finalString", HFILL }},
2883 { &hf_cmip_greaterOrEqual,
2884 { "greaterOrEqual", "cmip.greaterOrEqual",
2885 FT_NONE, BASE_NONE, NULL, 0,
2886 "FilterItem/greaterOrEqual", HFILL }},
2887 { &hf_cmip_lessOrEqual,
2888 { "lessOrEqual", "cmip.lessOrEqual",
2889 FT_NONE, BASE_NONE, NULL, 0,
2890 "FilterItem/lessOrEqual", HFILL }},
2892 { "present", "cmip.present",
2893 FT_UINT32, BASE_DEC, VALS(AttributeId_vals), 0,
2894 "FilterItem/present", HFILL }},
2895 { &hf_cmip_subsetOf,
2896 { "subsetOf", "cmip.subsetOf",
2897 FT_NONE, BASE_NONE, NULL, 0,
2898 "FilterItem/subsetOf", HFILL }},
2899 { &hf_cmip_supersetOf,
2900 { "supersetOf", "cmip.supersetOf",
2901 FT_NONE, BASE_NONE, NULL, 0,
2902 "FilterItem/supersetOf", HFILL }},
2903 { &hf_cmip_nonNullSetIntersection,
2904 { "nonNullSetIntersection", "cmip.nonNullSetIntersection",
2905 FT_NONE, BASE_NONE, NULL, 0,
2906 "FilterItem/nonNullSetIntersection", HFILL }},
2908 { "item", "cmip.item",
2909 FT_UINT32, BASE_DEC, VALS(FilterItem_vals), 0,
2910 "CMISFilter/item", HFILL }},
2912 { "and", "cmip.and",
2913 FT_NONE, BASE_NONE, NULL, 0,
2914 "CMISFilter/and", HFILL }},
2915 { &hf_cmip_and_item,
2916 { "Item", "cmip.and_item",
2917 FT_UINT32, BASE_DEC, VALS(CMISFilter_vals), 0,
2918 "CMISFilter/and/_item", HFILL }},
2921 FT_NONE, BASE_NONE, NULL, 0,
2922 "CMISFilter/or", HFILL }},
2924 { "Item", "cmip.or_item",
2925 FT_UINT32, BASE_DEC, VALS(CMISFilter_vals), 0,
2926 "CMISFilter/or/_item", HFILL }},
2928 { "not", "cmip.not",
2929 FT_UINT32, BASE_DEC, VALS(CMISFilter_vals), 0,
2930 "CMISFilter/not", HFILL }},
2931 { &hf_cmip_namedNumbers,
2932 { "namedNumbers", "cmip.namedNumbers",
2933 FT_INT32, BASE_DEC, VALS(T_namedNumbers_vals), 0,
2934 "Scope/namedNumbers", HFILL }},
2935 { &hf_cmip_individualLevels,
2936 { "individualLevels", "cmip.individualLevels",
2937 FT_INT32, BASE_DEC, NULL, 0,
2938 "Scope/individualLevels", HFILL }},
2939 { &hf_cmip_baseToNthLevel,
2940 { "baseToNthLevel", "cmip.baseToNthLevel",
2941 FT_INT32, BASE_DEC, NULL, 0,
2942 "Scope/baseToNthLevel", HFILL }},
2943 { &hf_cmip_attributeIdList,
2944 { "attributeIdList", "cmip.attributeIdList",
2945 FT_NONE, BASE_NONE, NULL, 0,
2946 "GetArgument/attributeIdList", HFILL }},
2947 { &hf_cmip_attributeIdList_item,
2948 { "Item", "cmip.attributeIdList_item",
2949 FT_UINT32, BASE_DEC, VALS(AttributeId_vals), 0,
2950 "GetArgument/attributeIdList/_item", HFILL }},
2952 { "opcode", "cmip.opcode",
2953 FT_INT32, BASE_DEC, VALS(Opcode_vals), 0,
2955 { &hf_cmip_argument,
2956 { "argument", "cmip.argument",
2957 FT_NONE, BASE_NONE, NULL, 0,
2959 { &hf_cmip_present1,
2960 { "present", "cmip.present",
2961 FT_UINT32, BASE_DEC, VALS(InvokeId_vals), 0,
2962 "InvokeLinkedId/present", HFILL }},
2964 { "absent", "cmip.absent",
2965 FT_NONE, BASE_NONE, NULL, 0,
2967 { &hf_cmip_present2,
2968 { "present", "cmip.present",
2969 FT_INT32, BASE_DEC, NULL, 0,
2970 "InvokeId/present", HFILL }},
2971 { &hf_cmip_invokeId,
2972 { "invokeId", "cmip.invokeId",
2973 FT_UINT32, BASE_DEC, VALS(InvokeId_vals), 0,
2975 { &hf_cmip_linkedId,
2976 { "linkedId", "cmip.linkedId",
2977 FT_UINT32, BASE_DEC, VALS(InvokeLinkedId_vals), 0,
2978 "Invoke/linkedId", HFILL }},
2980 { "rRBody", "cmip.rRBody",
2981 FT_NONE, BASE_NONE, NULL, 0,
2982 "ReturnResult/rRBody", HFILL }},
2983 { &hf_cmip_generalProblem,
2984 { "generalProblem", "cmip.generalProblem",
2985 FT_INT32, BASE_DEC, VALS(GeneralProblem_vals), 0,
2986 "RejectProb/generalProblem", HFILL }},
2987 { &hf_cmip_invokeProblem,
2988 { "invokeProblem", "cmip.invokeProblem",
2989 FT_INT32, BASE_DEC, VALS(InvokeProblem_vals), 0,
2990 "RejectProb/invokeProblem", HFILL }},
2991 { &hf_cmip_returnResultProblem,
2992 { "returnResultProblem", "cmip.returnResultProblem",
2993 FT_INT32, BASE_DEC, VALS(ReturnResultProblem_vals), 0,
2994 "RejectProb/returnResultProblem", HFILL }},
2995 { &hf_cmip_returnErrorProblem,
2996 { "returnErrorProblem", "cmip.returnErrorProblem",
2997 FT_INT32, BASE_DEC, VALS(ReturnErrorProblem_vals), 0,
2998 "RejectProb/returnErrorProblem", HFILL }},
2999 { &hf_cmip_rejectProblem,
3000 { "rejectProblem", "cmip.rejectProblem",
3001 FT_UINT32, BASE_DEC, VALS(RejectProb_vals), 0,
3002 "Reject/rejectProblem", HFILL }},
3004 { "invoke", "cmip.invoke",
3005 FT_NONE, BASE_NONE, NULL, 0,
3006 "ROS/invoke", HFILL }},
3007 { &hf_cmip_returnResult,
3008 { "returnResult", "cmip.returnResult",
3009 FT_NONE, BASE_NONE, NULL, 0,
3010 "ROS/returnResult", HFILL }},
3011 { &hf_cmip_returnError,
3012 { "returnError", "cmip.returnError",
3013 FT_NONE, BASE_NONE, NULL, 0,
3014 "ROS/returnError", HFILL }},
3016 { "reject", "cmip.reject",
3017 FT_NONE, BASE_NONE, NULL, 0,
3018 "ROS/reject", HFILL }},
3019 { &hf_cmip_abortSource,
3020 { "abortSource", "cmip.abortSource",
3021 FT_UINT32, BASE_DEC, VALS(CMIPAbortSource_vals), 0,
3022 "CMIPAbortInfo/abortSource", HFILL }},
3023 { &hf_cmip_protocolVersion,
3024 { "protocolVersion", "cmip.protocolVersion",
3025 FT_BYTES, BASE_HEX, NULL, 0,
3026 "CMIPUserInfo/protocolVersion", HFILL }},
3027 { &hf_cmip_functionalUnits,
3028 { "functionalUnits", "cmip.functionalUnits",
3029 FT_BYTES, BASE_HEX, NULL, 0,
3030 "CMIPUserInfo/functionalUnits", HFILL }},
3031 { &hf_cmip_FunctionalUnits_multipleObjectSelection,
3032 { "multipleObjectSelection", "cmip.multipleObjectSelection",
3033 FT_BOOLEAN, 8, NULL, 0x80,
3035 { &hf_cmip_FunctionalUnits_filter,
3036 { "filter", "cmip.filter",
3037 FT_BOOLEAN, 8, NULL, 0x40,
3039 { &hf_cmip_FunctionalUnits_multipleReply,
3040 { "multipleReply", "cmip.multipleReply",
3041 FT_BOOLEAN, 8, NULL, 0x20,
3043 { &hf_cmip_FunctionalUnits_extendedService,
3044 { "extendedService", "cmip.extendedService",
3045 FT_BOOLEAN, 8, NULL, 0x10,
3047 { &hf_cmip_FunctionalUnits_cancelGet,
3048 { "cancelGet", "cmip.cancelGet",
3049 FT_BOOLEAN, 8, NULL, 0x08,
3051 { &hf_cmip_ProtocolVersion_version1,
3052 { "version1", "cmip.version1",
3053 FT_BOOLEAN, 8, NULL, 0x80,
3055 { &hf_cmip_ProtocolVersion_version2,
3056 { "version2", "cmip.version2",
3057 FT_BOOLEAN, 8, NULL, 0x40,
3060 /*--- End of included file: packet-cmip-hfarr.c ---*/
3064 /* List of subtrees */
3065 static gint *ett[] = {
3068 /*--- Included file: packet-cmip-ettarr.c ---*/
3070 &ett_cmip_ModificationItem,
3071 &ett_cmip_GetListError,
3072 &ett_cmip_SET_OF_GetInfoStatus,
3073 &ett_cmip_GetInfoStatus,
3074 &ett_cmip_AttributeIdError,
3075 &ett_cmip_SetListError,
3076 &ett_cmip_SET_OF_SetInfoStatus,
3077 &ett_cmip_ActionError,
3078 &ett_cmip_ProcessingFailure,
3079 &ett_cmip_DeleteError,
3080 &ett_cmip_SetInfoStatus,
3081 &ett_cmip_SpecificErrorInfo,
3082 &ett_cmip_NoSuchArgumentAction,
3083 &ett_cmip_NoSuchArgumentEvent,
3084 &ett_cmip_NoSuchArgument,
3085 &ett_cmip_InvalidArgumentValueEventValue,
3086 &ett_cmip_InvalidArgumentValue,
3087 &ett_cmip_ErrorInfo,
3088 &ett_cmip_ActionErrorInfo,
3089 &ett_cmip_AttributeError,
3090 &ett_cmip_SetResult,
3091 &ett_cmip_SET_OF_Attribute,
3092 &ett_cmip_SetArgument,
3093 &ett_cmip_SET_OF_ModificationItem,
3094 &ett_cmip_LinkedReplyArgument,
3095 &ett_cmip_EventReply,
3096 &ett_cmip_EventReportResult,
3097 &ett_cmip_EventReportArgument,
3098 &ett_cmip_DeleteArgument,
3099 &ett_cmip_DeleteResult,
3100 &ett_cmip_CreateArgument,
3101 &ett_cmip_T_managedOrSuperiorObjectInstance,
3102 &ett_cmip_CreateResult,
3103 &ett_cmip_ActionReply,
3104 &ett_cmip_ActionResult,
3105 &ett_cmip_ActionArgument,
3106 &ett_cmip_ActionInfo,
3107 &ett_cmip_ObjectClass,
3108 &ett_cmip_ObjectInstance,
3109 &ett_cmip_BaseManagedObjectId,
3110 &ett_cmip_AttributeId,
3111 &ett_cmip_Attribute,
3112 &ett_cmip_FilterItem,
3113 &ett_cmip_T_substrings,
3114 &ett_cmip_T_substrings_item,
3115 &ett_cmip_CMISFilter,
3116 &ett_cmip_SET_OF_CMISFilter,
3118 &ett_cmip_GetArgument,
3119 &ett_cmip_SET_OF_AttributeId,
3120 &ett_cmip_GetResult,
3121 &ett_cmip_ReturnResultBody,
3122 &ett_cmip_InvokeLinkedId,
3125 &ett_cmip_ReturnResult,
3126 &ett_cmip_ReturnError,
3127 &ett_cmip_RejectProb,
3130 &ett_cmip_CMIPAbortInfo,
3131 &ett_cmip_FunctionalUnits,
3132 &ett_cmip_CMIPUserInfo,
3133 &ett_cmip_ProtocolVersion,
3135 /*--- End of included file: packet-cmip-ettarr.c ---*/
3139 /* Register protocol */
3140 proto_cmip = proto_register_protocol(PNAME, PSNAME, PFNAME);
3142 /* Register fields and subtrees */
3143 proto_register_field_array(proto_cmip, hf, array_length(hf));
3144 proto_register_subtree_array(ett, array_length(ett));
3149 /*--- proto_reg_handoff_cmip -------------------------------------------*/
3150 void proto_reg_handoff_cmip(void) {
3151 dissector_handle_t cmip_handle;
3153 /*XXX this to be removed later and shoved into the conformance file */
3154 cmip_handle = create_dissector_handle(dissect_cmip,proto_cmip);
3155 dissector_add_string("acse.application_context", "2.9.0.0.2", cmip_handle);