cmip update add all remaining functions Arguments and Results
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>
Sun, 21 Nov 2004 23:25:04 +0000 (23:25 -0000)
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>
Sun, 21 Nov 2004 23:25:04 +0000 (23:25 -0000)
svn path=/trunk/; revision=12570

asn1/cmip/CMIP.asn
asn1/cmip/cmip.cnf
asn1/cmip/packet-cmip-template.c
epan/dissectors/packet-cmip.c

index 2f7fa089d2e4de3cdba7af533c3b8eca6150d7e9..5039c787eec86394307ae1c4d540bafb97f82484 100644 (file)
@@ -9,6 +9,223 @@ IMPORTS
   DistinguishedName, RDNSequence
     FROM InformationFramework;
 
+ModificationItem ::= SEQUENCE {
+  modifyOperator   [2] IMPLICIT ModifyOperator OPTIONAL,
+  attributeId      OBJECT IDENTIFIER,
+  attributeValue   ANY OPTIONAL
+}
+
+GetListError ::= SEQUENCE {
+  managedObjectClass     ObjectClass OPTIONAL,
+  managedObjectInstance  ObjectInstance OPTIONAL,
+  currentTime            [5] IMPLICIT GeneralizedTime OPTIONAL,
+  getInfoList            [6] IMPLICIT SET OF GetInfoStatus,
+  ...
+}
+
+ModifyOperator ::= INTEGER {
+  replace(0), addValues(1), removeValues(2), setToDefault(3)}
+
+GetInfoStatus ::= CHOICE {
+  attributeIdError  [0] IMPLICIT AttributeIdError,
+  attribute         [1] IMPLICIT Attribute
+}
+
+AttributeIdError ::= SEQUENCE {
+  errorStatus  ENUMERATED {accessDenied(2), noSuchAttribute(5), ...
+                           },
+  attributeId  AttributeId,
+  ...
+}
+
+SetListError ::= SEQUENCE {
+  managedObjectClass     ObjectClass OPTIONAL,
+  managedObjectInstance  ObjectInstance OPTIONAL,
+  currentTime            [5] IMPLICIT GeneralizedTime OPTIONAL,
+  setInfoList            [6] IMPLICIT SET OF SetInfoStatus,
+  ...
+}
+
+ActionError ::= SEQUENCE {
+  managedObjectClass     ObjectClass OPTIONAL,
+  managedObjectInstance  ObjectInstance OPTIONAL,
+  currentTime            [5] IMPLICIT GeneralizedTime OPTIONAL,
+  actionErrorInfo        [6]  ActionErrorInfo,
+  ...
+}
+
+ProcessingFailure ::= SEQUENCE {
+  managedObjectClass     ObjectClass,
+  managedObjectInstance  ObjectInstance OPTIONAL,
+  specificErrorInfo      [5]  SpecificErrorInfo,
+  ...
+}
+
+DeleteError ::= SEQUENCE {
+  managedObjectClass     ObjectClass OPTIONAL,
+  managedObjectInstance  ObjectInstance OPTIONAL,
+  currentTime            [5] IMPLICIT GeneralizedTime OPTIONAL,
+  deleteErrorInfo        [6]  ENUMERATED {accessDenied(2), ...
+                                          },
+  ...
+}
+
+SetInfoStatus ::= CHOICE {
+  attributeError  [0] IMPLICIT AttributeError,
+  attribute       [1] IMPLICIT Attribute
+}
+
+SpecificErrorInfo ::= SEQUENCE {
+  errorId    OBJECT IDENTIFIER,
+  errorInfo  ANY
+}
+
+NoSuchArgumentAction ::= SEQUENCE {
+  managedObjectClass  ObjectClass OPTIONAL,
+  actionType          OBJECT IDENTIFIER
+}
+
+NoSuchArgumentEvent ::= SEQUENCE {
+  managedObjectClass  ObjectClass OPTIONAL,
+  eventType           OBJECT IDENTIFIER
+}
+
+NoSuchArgument ::= CHOICE {
+  actionId
+    [0] IMPLICIT NoSuchArgumentAction,
+  eventId
+    [1] IMPLICIT NoSuchArgumentEvent
+}
+
+InvalidArgumentValueEventValue ::= SEQUENCE {
+  eventType  OBJECT IDENTIFIER,
+  eventInfo  [8]  ANY OPTIONAL
+}
+
+InvalidArgumentValue ::= CHOICE {
+  actionValue  [0] IMPLICIT ActionInfo,
+  eventValue
+    [1] IMPLICIT InvalidArgumentValueEventValue
+}
+
+ErrorInfo ::= CHOICE {
+  actionType      OBJECT IDENTIFIER,
+  actionArgument  [0]  NoSuchArgument,
+  argumentValue   [1]  InvalidArgumentValue
+}
+
+ActionErrorInfo ::= SEQUENCE {
+  errorStatus
+    ENUMERATED {accessDenied(2), noSuchAction(9), noSuchArgument(14),
+                invalidArgumentValue(15), ...
+                },
+  errorInfo    
+    ErrorInfo,
+  ...
+}
+
+AttributeError ::= SEQUENCE {
+  errorStatus
+    ENUMERATED {accessDenied(2), noSuchAttribute(5), invalidAttributeValue(6),
+                invalidOperation(24), invalidOperator(25), ...
+                },
+  modifyOperator  [2] IMPLICIT ModifyOperator OPTIONAL, -- present for invalidOperator
+  
+  -- and invalidOperation
+  attributeId     OBJECT IDENTIFIER,
+  attributeValue  ANY OPTIONAL
+  -- value is absent for setToDefault
+}
+
+SetResult ::= SEQUENCE {
+  managedObjectClass     ObjectClass OPTIONAL,
+  managedObjectInstance  ObjectInstance OPTIONAL,
+  currentTime            [5] IMPLICIT GeneralizedTime OPTIONAL,
+  attributeList          [6] IMPLICIT SET OF Attribute OPTIONAL,
+  ...
+}
+
+SetArgument ::= SEQUENCE {
+  baseManagedObjectClass     ObjectClass,
+  baseManagedObjectInstance  ObjectInstance,
+  accessControl     [5]  AccessControl OPTIONAL,
+  synchronization   [6] IMPLICIT CMISSync OPTIONAL,
+  scope             [7]  Scope OPTIONAL,
+  filter            CMISFilter OPTIONAL,
+  modificationList  [12] IMPLICIT SET OF ModificationItem,
+  -- value is absent for setToDefault
+  ...
+}
+
+LinkedReplyArgument ::= CHOICE {
+  getResult          [0] IMPLICIT GetResult,
+  getListError       [1] IMPLICIT GetListError,
+  setResult          [2] IMPLICIT SetResult,
+  setListError       [3] IMPLICIT SetListError,
+  actionResult       [4] IMPLICIT ActionResult,
+  processingFailure  [5] IMPLICIT ProcessingFailure,
+  deleteResult       [6] IMPLICIT DeleteResult,
+  actionError        [7] IMPLICIT ActionError,
+  deleteError        [8] IMPLICIT DeleteError
+}
+
+EventReply ::= SEQUENCE {
+  eventType       OBJECT IDENTIFIER,
+  eventReplyInfo  [8] ANY OPTIONAL
+}
+
+EventReportResult ::= SEQUENCE {
+  managedObjectClass     ObjectClass OPTIONAL,
+  managedObjectInstance  ObjectInstance OPTIONAL,
+  currentTime            [5] IMPLICIT GeneralizedTime OPTIONAL,
+  eventReply             EventReply OPTIONAL,
+  ...
+}
+
+EventReportArgument ::= SEQUENCE {
+  managedObjectClass     ObjectClass,
+  managedObjectInstance  ObjectInstance,
+  eventTime              [5] IMPLICIT GeneralizedTime OPTIONAL,
+  eventType              OBJECT IDENTIFIER,
+  eventInfo              [8] ANY OPTIONAL,
+  ...
+}
+
+DeleteArgument ::= SEQUENCE {
+  baseManagedObjectClass     ObjectClass,
+  baseManagedObjectInstance  ObjectInstance,
+  accessControl    [5]  AccessControl OPTIONAL,
+  synchronization  [6] IMPLICIT CMISSync OPTIONAL,
+  scope            [7]  Scope OPTIONAL,
+  filter           CMISFilter OPTIONAL,
+  ...
+}
+
+DeleteResult ::= SEQUENCE {
+  managedObjectClass     ObjectClass OPTIONAL,
+  managedObjectInstance  ObjectInstance OPTIONAL,
+  currentTime            [5] IMPLICIT GeneralizedTime OPTIONAL,
+  ...
+}
+
+CreateArgument ::= SEQUENCE {
+  managedObjectClass               ObjectClass,
+  managedOrSuperiorObjectInstance
+    CHOICE {managedObjectInstance   ObjectInstance,
+            superiorObjectInstance  [8]  ObjectInstance} OPTIONAL,
+  accessControl                    [5]  AccessControl OPTIONAL,
+  referenceObjectInstance          [6]  ObjectInstance OPTIONAL,
+  attributeList                    [7] IMPLICIT SET OF Attribute OPTIONAL,
+  ...
+}
+
+CreateResult ::= SEQUENCE {
+  managedObjectClass     ObjectClass OPTIONAL,
+  managedObjectInstance  ObjectInstance OPTIONAL, -- shall be returned if omitted from CreateArgument
+  currentTime            [5] IMPLICIT GeneralizedTime OPTIONAL,
+  attributeList          [6] IMPLICIT SET OF Attribute OPTIONAL,
+  ...
+}
 
 ActionReply ::= SEQUENCE {
   actionType       OBJECT IDENTIFIER,
@@ -140,6 +357,8 @@ InvokeLinkedId ::= CHOICE {
   absent  [1] IMPLICIT NULL
 }
 
+InvokeIDType ::= InvokeId
+
 InvokeId ::= CHOICE {
   present InvokeID,
   absent  NULL
index 29737f795ed7ca86155b38ce08363de2b53f1958..90c489310908fb30ad9ac78de879bdb6c14a278e 100644 (file)
@@ -95,27 +95,71 @@ ROS
   switch(opcode_type){
   case OPCODE_INVOKE:
     switch(opcode){
+    case 0: /* M-eventreport */
+      offset = dissect_cmip_EventReportArgument(FALSE, tvb, offset, pinfo, tree, -1);
+      break;
+    case 1: /* M-eventreport-confirmed */
+      offset = dissect_cmip_EventReportArgument(FALSE, tvb, offset, pinfo, tree, -1);
+      break;
+    case 2: /* M-linkedreply */
+      offset = dissect_cmip_LinkedReplyArgument(FALSE, tvb, offset, pinfo, tree, -1);
+      break;
     case 3: /* M-get */
       offset = dissect_cmip_GetArgument(FALSE, tvb, offset, pinfo, tree, -1);
       break;
+    case 4: /* M-set */
+      offset = dissect_cmip_SetArgument(FALSE, tvb, offset, pinfo, tree, -1);
+      break;
+    case 5: /* M-set-confirmed */
+      offset = dissect_cmip_SetArgument(FALSE, tvb, offset, pinfo, tree, -1);
+      break;
     case 6: /* M-action*/
       offset = dissect_cmip_ActionInfo(FALSE, tvb,  offset, pinfo, tree, -1);
       break;
     case 7: /* M-action-confirmed*/
       offset = dissect_cmip_ActionInfo(FALSE, tvb,  offset, pinfo, tree, -1);
       break;
+    case 8: /* M-create*/
+      offset = dissect_cmip_CreateArgument(FALSE, tvb,  offset, pinfo, tree, -1);
+      break;
+    case 9: /* M-delete*/
+      offset = dissect_cmip_DeleteArgument(FALSE, tvb,  offset, pinfo, tree, -1);
+      break;
+    case 10: /* M-cancelget */
+      offset = dissect_cmip_InvokeIDType(FALSE, tvb,  offset, pinfo, tree, -1);
+      break;
     }
     break;
   case OPCODE_RETURN_RESULT:
     switch(opcode){
+    case 0: /* M-eventreport*/
+      break;  /* No return data */
+    case 1: /* M-eventreport-confirmed */
+      offset = dissect_cmip_EventReportResult(FALSE, tvb, offset, pinfo, tree, -1);
+      break;
+    case 2: /* M-linkedreply*/
+      break;  /* No return data */
     case 3: /* M-get */
       offset = dissect_cmip_GetResult(FALSE, tvb, offset, pinfo, tree, -1);
       break;
+    case 4: /* M-set */
+      break;  /* No return data */
+    case 5: /* M-set-confirmed*/
+      offset = dissect_cmip_SetResult(FALSE, tvb, offset, pinfo, tree, -1);
+      break;
     case 6: /* M-action*/
       break;  /* No return data */
     case 7: /* M-action-confirmed*/
       offset = dissect_cmip_ActionResult(FALSE, tvb, offset, pinfo, tree, -1);
       break;
+    case 8: /* M-create*/
+      offset = dissect_cmip_CreateResult(FALSE, tvb,  offset, pinfo, tree, -1);
+      break;
+    case 9: /* M-delete*/
+      offset = dissect_cmip_DeleteResult(FALSE, tvb,  offset, pinfo, tree, -1);
+      break;
+    case 10: /* M-cancelget */
+      break; /* doe this one return any data? */
     }
     break;
   /*XXX add more types here */
@@ -144,6 +188,63 @@ ROS
 #.FN_BODY ActionReply/actionReplyInfo
   offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
 
+#.FN_BODY EventReportArgument/eventType
+  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
+                                         hf_cmip_eventType_OID, object_identifier_id);
+
+#.FN_BODY EventReportArgument/eventInfo
+  offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
+
+
+#.FN_BODY EventReply/eventType
+  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
+                                         hf_cmip_eventType_OID, object_identifier_id);
+
+#.FN_BODY EventReply/eventReplyInfo
+  offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
+
+#.FN_BODY ModificationItem/attributeId
+  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
+                                         hf_cmip_attributeId_OID, object_identifier_id);
+
+#.FN_BODY ModificationItem/attributeValue
+  offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
+
+
+#.FN_BODY SpecificErrorInfo/errorId
+  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
+                                         hf_cmip_errorId_OID, object_identifier_id);
+
+#.FN_BODY SpecificErrorInfo/errorInfo
+  offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
+
+#.FN_BODY AttributeError/attributeId
+  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
+                                         hf_cmip_attributeId_OID, object_identifier_id);
+
+#.FN_BODY AttributeError/attributeValue
+  offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
+
+
+#.FN_BODY ErrorInfo/actionType
+  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
+                                         hf_cmip_actionType_OID, object_identifier_id);
+
+#.FN_BODY NoSuchArgumentAction/actionType
+  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
+                                         hf_cmip_actionType_OID, object_identifier_id);
+
+#.FN_BODY NoSuchArgumentEvent/eventType
+  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
+                                         hf_cmip_eventType_OID, object_identifier_id);
+
+#.FN_BODY InvalidArgumentValueEventValue/eventType
+  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
+                                         hf_cmip_eventType_OID, object_identifier_id);
+
+#.FN_BODY InvalidArgumentValueEventValue/eventInfo
+  offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
+
 
 #.END
 
index f06c8ff1fd285ea19b5eecb9f9d5008ee8420b49..d6e62344e37da5f9299f96e9f4405d11524ff4c1 100644 (file)
@@ -48,6 +48,9 @@
 /* Initialize the protocol and registered fields */
 int proto_cmip = -1;
 static int hf_cmip_actionType_OID = -1;
+static int hf_cmip_eventType_OID = -1;
+static int hf_cmip_attributeId_OID = -1;
+static int hf_cmip_errorId_OID = -1;
 #include "packet-cmip-hf.c"
 
 /* Initialize the subtree pointers */
@@ -140,6 +143,18 @@ void proto_register_cmip(void) {
       { "actionType", "cmip.actionType_OID",
         FT_STRING, BASE_NONE, NULL, 0,
         "actionType", HFILL }},
+    { &hf_cmip_eventType_OID,
+      { "eventType", "cmip.eventType_OID",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "eventType", HFILL }},
+    { &hf_cmip_attributeId_OID,
+      { "attributeId", "cmip.attributeId_OID",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "attributeId", HFILL }},
+    { &hf_cmip_errorId_OID,
+      { "errorId", "cmip.errorId_OID",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "errorId", HFILL }},
 #include "packet-cmip-hfarr.c"
   };
 
index cc1f78bbaf3d5f5bef19f662edcfa2ed46ba59bf..d54bfc76ea91bf944f17659568c6fd03c6ec4076 100644 (file)
 /* Initialize the protocol and registered fields */
 int proto_cmip = -1;
 static int hf_cmip_actionType_OID = -1;
+static int hf_cmip_eventType_OID = -1;
+static int hf_cmip_attributeId_OID = -1;
+static int hf_cmip_errorId_OID = -1;
 
 /*--- Included file: packet-cmip-hf.c ---*/
 
-static int hf_cmip_actionType = -1;               /* T_actionType */
-static int hf_cmip_actionReplyInfo = -1;          /* T_actionReplyInfo */
+static int hf_cmip_modifyOperator = -1;           /* ModifyOperator */
+static int hf_cmip_attributeId = -1;              /* T_attributeId */
+static int hf_cmip_attributeValue = -1;           /* T_attributeValue */
 static int hf_cmip_managedObjectClass = -1;       /* ObjectClass */
 static int hf_cmip_managedObjectInstance = -1;    /* ObjectInstance */
 static int hf_cmip_currentTime = -1;              /* GeneralizedTime */
-static int hf_cmip_actionReply = -1;              /* ActionReply */
+static int hf_cmip_getInfoList = -1;              /* SET_OF_GetInfoStatus */
+static int hf_cmip_getInfoList_item = -1;         /* GetInfoStatus */
+static int hf_cmip_attributeIdError = -1;         /* AttributeIdError */
+static int hf_cmip_attribute = -1;                /* Attribute */
+static int hf_cmip_errorStatus = -1;              /* T_errorStatus */
+static int hf_cmip_attributeId1 = -1;             /* AttributeId */
+static int hf_cmip_setInfoList = -1;              /* SET_OF_SetInfoStatus */
+static int hf_cmip_setInfoList_item = -1;         /* SetInfoStatus */
+static int hf_cmip_actionErrorInfo = -1;          /* ActionErrorInfo */
+static int hf_cmip_specificErrorInfo = -1;        /* SpecificErrorInfo */
+static int hf_cmip_deleteErrorInfo = -1;          /* T_deleteErrorInfo */
+static int hf_cmip_attributeError = -1;           /* AttributeError */
+static int hf_cmip_errorId = -1;                  /* T_errorId */
+static int hf_cmip_errorInfo = -1;                /* T_errorInfo */
+static int hf_cmip_actionType = -1;               /* T_actionType */
+static int hf_cmip_eventType = -1;                /* T_eventType */
+static int hf_cmip_actionId = -1;                 /* NoSuchArgumentAction */
+static int hf_cmip_eventId = -1;                  /* NoSuchArgumentEvent */
+static int hf_cmip_eventType1 = -1;               /* T_eventType1 */
+static int hf_cmip_eventInfo = -1;                /* T_eventInfo */
+static int hf_cmip_actionValue = -1;              /* ActionInfo */
+static int hf_cmip_eventValue = -1;               /* InvalidArgumentValueEventValue */
+static int hf_cmip_actionType1 = -1;              /* T_actionType1 */
+static int hf_cmip_actionArgument = -1;           /* NoSuchArgument */
+static int hf_cmip_argumentValue = -1;            /* InvalidArgumentValue */
+static int hf_cmip_errorStatus1 = -1;             /* T_errorStatus1 */
+static int hf_cmip_errorInfo1 = -1;               /* ErrorInfo */
+static int hf_cmip_errorStatus2 = -1;             /* T_errorStatus2 */
+static int hf_cmip_attributeId2 = -1;             /* T_attributeId1 */
+static int hf_cmip_attributeValue1 = -1;          /* T_attributeValue1 */
+static int hf_cmip_attributeList = -1;            /* SET_OF_Attribute */
+static int hf_cmip_attributeList_item = -1;       /* Attribute */
 static int hf_cmip_baseManagedObjectClass = -1;   /* ObjectClass */
 static int hf_cmip_baseManagedObjectInstance = -1;  /* ObjectInstance */
 static int hf_cmip_accessControl = -1;            /* AccessControl */
 static int hf_cmip_synchronization = -1;          /* CMISSync */
 static int hf_cmip_scope = -1;                    /* Scope */
 static int hf_cmip_filter = -1;                   /* CMISFilter */
+static int hf_cmip_modificationList = -1;         /* SET_OF_ModificationItem */
+static int hf_cmip_modificationList_item = -1;    /* ModificationItem */
+static int hf_cmip_getResult = -1;                /* GetResult */
+static int hf_cmip_getListError = -1;             /* GetListError */
+static int hf_cmip_setResult = -1;                /* SetResult */
+static int hf_cmip_setListError = -1;             /* SetListError */
+static int hf_cmip_actionResult = -1;             /* ActionResult */
+static int hf_cmip_processingFailure = -1;        /* ProcessingFailure */
+static int hf_cmip_deleteResult = -1;             /* DeleteResult */
+static int hf_cmip_actionError = -1;              /* ActionError */
+static int hf_cmip_deleteError = -1;              /* DeleteError */
+static int hf_cmip_eventType2 = -1;               /* T_eventType2 */
+static int hf_cmip_eventReplyInfo = -1;           /* T_eventReplyInfo */
+static int hf_cmip_eventReply = -1;               /* EventReply */
+static int hf_cmip_eventTime = -1;                /* GeneralizedTime */
+static int hf_cmip_eventType3 = -1;               /* T_eventType3 */
+static int hf_cmip_eventInfo1 = -1;               /* T_eventInfo1 */
+static int hf_cmip_managedOrSuperiorObjectInstance = -1;  /* T_managedOrSuperiorObjectInstance */
+static int hf_cmip_superiorObjectInstance = -1;   /* ObjectInstance */
+static int hf_cmip_referenceObjectInstance = -1;  /* ObjectInstance */
+static int hf_cmip_actionType2 = -1;              /* T_actionType2 */
+static int hf_cmip_actionReplyInfo = -1;          /* T_actionReplyInfo */
+static int hf_cmip_actionReply = -1;              /* ActionReply */
 static int hf_cmip_actionInfo = -1;               /* ActionInfo */
-static int hf_cmip_actionType1 = -1;              /* T_actionType1 */
+static int hf_cmip_actionType3 = -1;              /* T_actionType3 */
 static int hf_cmip_actionInfoArg = -1;            /* T_actionInfoArg */
 static int hf_cmip_ocglobalForm = -1;             /* T_ocglobalForm */
 static int hf_cmip_oclocalForm = -1;              /* T_oclocalForm */
@@ -105,8 +163,6 @@ static int hf_cmip_individualLevels = -1;         /* INTEGER */
 static int hf_cmip_baseToNthLevel = -1;           /* INTEGER */
 static int hf_cmip_attributeIdList = -1;          /* SET_OF_AttributeId */
 static int hf_cmip_attributeIdList_item = -1;     /* AttributeId */
-static int hf_cmip_attributeList = -1;            /* SET_OF_Attribute */
-static int hf_cmip_attributeList_item = -1;       /* Attribute */
 static int hf_cmip_opcode = -1;                   /* Opcode */
 static int hf_cmip_argument = -1;                 /* Argument */
 static int hf_cmip_present1 = -1;                 /* InvokeId */
@@ -144,6 +200,39 @@ static gint ett_cmip = -1;
 
 /*--- Included file: packet-cmip-ett.c ---*/
 
+static gint ett_cmip_ModificationItem = -1;
+static gint ett_cmip_GetListError = -1;
+static gint ett_cmip_SET_OF_GetInfoStatus = -1;
+static gint ett_cmip_GetInfoStatus = -1;
+static gint ett_cmip_AttributeIdError = -1;
+static gint ett_cmip_SetListError = -1;
+static gint ett_cmip_SET_OF_SetInfoStatus = -1;
+static gint ett_cmip_ActionError = -1;
+static gint ett_cmip_ProcessingFailure = -1;
+static gint ett_cmip_DeleteError = -1;
+static gint ett_cmip_SetInfoStatus = -1;
+static gint ett_cmip_SpecificErrorInfo = -1;
+static gint ett_cmip_NoSuchArgumentAction = -1;
+static gint ett_cmip_NoSuchArgumentEvent = -1;
+static gint ett_cmip_NoSuchArgument = -1;
+static gint ett_cmip_InvalidArgumentValueEventValue = -1;
+static gint ett_cmip_InvalidArgumentValue = -1;
+static gint ett_cmip_ErrorInfo = -1;
+static gint ett_cmip_ActionErrorInfo = -1;
+static gint ett_cmip_AttributeError = -1;
+static gint ett_cmip_SetResult = -1;
+static gint ett_cmip_SET_OF_Attribute = -1;
+static gint ett_cmip_SetArgument = -1;
+static gint ett_cmip_SET_OF_ModificationItem = -1;
+static gint ett_cmip_LinkedReplyArgument = -1;
+static gint ett_cmip_EventReply = -1;
+static gint ett_cmip_EventReportResult = -1;
+static gint ett_cmip_EventReportArgument = -1;
+static gint ett_cmip_DeleteArgument = -1;
+static gint ett_cmip_DeleteResult = -1;
+static gint ett_cmip_CreateArgument = -1;
+static gint ett_cmip_T_managedOrSuperiorObjectInstance = -1;
+static gint ett_cmip_CreateResult = -1;
 static gint ett_cmip_ActionReply = -1;
 static gint ett_cmip_ActionResult = -1;
 static gint ett_cmip_ActionArgument = -1;
@@ -162,7 +251,6 @@ static gint ett_cmip_Scope = -1;
 static gint ett_cmip_GetArgument = -1;
 static gint ett_cmip_SET_OF_AttributeId = -1;
 static gint ett_cmip_GetResult = -1;
-static gint ett_cmip_SET_OF_Attribute = -1;
 static gint ett_cmip_ReturnResultBody = -1;
 static gint ett_cmip_InvokeLinkedId = -1;
 static gint ett_cmip_InvokeId = -1;
@@ -233,47 +321,68 @@ static int dissect_localDistinguishedName_impl(packet_info *pinfo, proto_tree *t
 }
 
 
+static const value_string ModifyOperator_vals[] = {
+  {   0, "replace" },
+  {   1, "addValues" },
+  {   2, "removeValues" },
+  {   3, "setToDefault" },
+  { 0, NULL }
+};
+
+
+static int
+dissect_cmip_ModifyOperator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+
+  return offset;
+}
+static int dissect_modifyOperator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_ModifyOperator(TRUE, tvb, offset, pinfo, tree, hf_cmip_modifyOperator);
+}
+
+
 static int
-dissect_cmip_T_actionType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_cmip_T_attributeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
   offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
-                                         hf_cmip_actionType_OID, object_identifier_id);
+                                         hf_cmip_attributeId_OID, object_identifier_id);
 
 
   return offset;
 }
-static int dissect_actionType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-  return dissect_cmip_T_actionType(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType);
+static int dissect_attributeId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_attributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeId);
 }
 
 
 
 static int
-dissect_cmip_T_actionReplyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_cmip_T_attributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
   offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
 
 
 
   return offset;
 }
-static int dissect_actionReplyInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-  return dissect_cmip_T_actionReplyInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionReplyInfo);
+static int dissect_attributeValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_attributeValue(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeValue);
 }
 
-static const ber_sequence ActionReply_sequence[] = {
-  { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType },
-  { BER_CLASS_CON, 4, 0, dissect_actionReplyInfo },
+static const ber_sequence ModificationItem_sequence[] = {
+  { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyOperator_impl },
+  { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeId },
+  { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_attributeValue },
   { 0, 0, 0, NULL }
 };
 
 static int
-dissect_cmip_ActionReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_cmip_ModificationItem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
-                                ActionReply_sequence, hf_index, ett_cmip_ActionReply);
+                                ModificationItem_sequence, hf_index, ett_cmip_ModificationItem);
 
   return offset;
 }
-static int dissect_actionReply_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-  return dissect_cmip_ActionReply(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionReply);
+static int dissect_modificationList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_ModificationItem(FALSE, tvb, offset, pinfo, tree, hf_cmip_modificationList_item);
 }
 
 
@@ -371,6 +480,12 @@ static int dissect_managedObjectInstance(packet_info *pinfo, proto_tree *tree, t
 static int dissect_baseManagedObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
   return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_baseManagedObjectInstance);
 }
+static int dissect_superiorObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_superiorObjectInstance);
+}
+static int dissect_referenceObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_referenceObjectInstance);
+}
 
 
 static int
@@ -382,111 +497,26 @@ dissect_cmip_GeneralizedTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offse
 static int dissect_currentTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
   return dissect_cmip_GeneralizedTime(TRUE, tvb, offset, pinfo, tree, hf_cmip_currentTime);
 }
-
-static const ber_sequence ActionResult_sequence[] = {
-  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
-  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
-  { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
-  { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_actionReply_impl },
-  { 0, 0, 0, NULL }
-};
-
-static int
-dissect_cmip_ActionResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
-                                ActionResult_sequence, hf_index, ett_cmip_ActionResult);
-
-  return offset;
-}
-
-
-static int
-dissect_cmip_AccessControl(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
-                                    NULL);
-
-  return offset;
-}
-static int dissect_accessControl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-  return dissect_cmip_AccessControl(FALSE, tvb, offset, pinfo, tree, hf_cmip_accessControl);
-}
-
-
-static const value_string CMISSync_vals[] = {
-  {   0, "bestEffort" },
-  {   1, "atomic" },
-  { 0, NULL }
-};
-
-
-static int
-dissect_cmip_CMISSync(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-  offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
-
-  return offset;
-}
-static int dissect_synchronization_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-  return dissect_cmip_CMISSync(TRUE, tvb, offset, pinfo, tree, hf_cmip_synchronization);
+static int dissect_eventTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_GeneralizedTime(TRUE, tvb, offset, pinfo, tree, hf_cmip_eventTime);
 }
 
 
-static const value_string T_namedNumbers_vals[] = {
-  {   0, "baseObject" },
-  {   1, "firstLevelOnly" },
-  {   2, "wholeSubtree" },
+static const value_string T_errorStatus_vals[] = {
+  {   2, "accessDenied" },
+  {   5, "noSuchAttribute" },
   { 0, NULL }
 };
 
 
 static int
-dissect_cmip_T_namedNumbers(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-  offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
-
-  return offset;
-}
-static int dissect_namedNumbers(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-  return dissect_cmip_T_namedNumbers(FALSE, tvb, offset, pinfo, tree, hf_cmip_namedNumbers);
-}
-
-
-
-static int
-dissect_cmip_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_cmip_T_errorStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
   offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
 
   return offset;
 }
-static int dissect_individualLevels_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-  return dissect_cmip_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_cmip_individualLevels);
-}
-static int dissect_baseToNthLevel_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-  return dissect_cmip_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_cmip_baseToNthLevel);
-}
-
-
-static const value_string Scope_vals[] = {
-  {   0, "namedNumbers" },
-  {   1, "individualLevels" },
-  {   2, "baseToNthLevel" },
-  { 0, NULL }
-};
-
-static const ber_choice Scope_choice[] = {
-  {   0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_namedNumbers },
-  {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_individualLevels_impl },
-  {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_baseToNthLevel_impl },
-  { 0, 0, 0, 0, NULL }
-};
-
-static int
-dissect_cmip_Scope(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-  offset = dissect_ber_choice(pinfo, tree, tvb, offset,
-                              Scope_choice, hf_index, ett_cmip_Scope);
-
-  return offset;
-}
-static int dissect_scope(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-  return dissect_cmip_Scope(FALSE, tvb, offset, pinfo, tree, hf_cmip_scope);
+static int dissect_errorStatus(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_errorStatus(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorStatus);
 }
 
 
@@ -537,6 +567,9 @@ dissect_cmip_AttributeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, p
 
   return offset;
 }
+static int dissect_attributeId1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeId1);
+}
 static int dissect_id(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
   return dissect_cmip_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_id);
 }
@@ -547,6 +580,23 @@ static int dissect_attributeIdList_item(packet_info *pinfo, proto_tree *tree, tv
   return dissect_cmip_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeIdList_item);
 }
 
+static const ber_sequence AttributeIdError_sequence[] = {
+  { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_errorStatus },
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_attributeId1 },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_AttributeIdError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                AttributeIdError_sequence, hf_index, ett_cmip_AttributeIdError);
+
+  return offset;
+}
+static int dissect_attributeIdError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_AttributeIdError(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeIdError);
+}
+
 
 
 static int
@@ -576,6 +626,12 @@ dissect_cmip_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pac
 
   return offset;
 }
+static int dissect_attribute_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_attribute);
+}
+static int dissect_attributeList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_Attribute(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeList_item);
+}
 static int dissect_equality_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
   return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_equality);
 }
@@ -603,172 +659,1169 @@ static int dissect_supersetOf_impl(packet_info *pinfo, proto_tree *tree, tvbuff_
 static int dissect_nonNullSetIntersection_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
   return dissect_cmip_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_nonNullSetIntersection);
 }
-static int dissect_attributeList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-  return dissect_cmip_Attribute(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeList_item);
+
+
+static const value_string GetInfoStatus_vals[] = {
+  {   0, "attributeIdError" },
+  {   1, "attribute" },
+  { 0, NULL }
+};
+
+static const ber_choice GetInfoStatus_choice[] = {
+  {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_attributeIdError_impl },
+  {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_attribute_impl },
+  { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_GetInfoStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+                              GetInfoStatus_choice, hf_index, ett_cmip_GetInfoStatus);
+
+  return offset;
+}
+static int dissect_getInfoList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_GetInfoStatus(FALSE, tvb, offset, pinfo, tree, hf_cmip_getInfoList_item);
 }
 
+static const ber_sequence SET_OF_GetInfoStatus_set_of[1] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_getInfoList_item },
+};
 
-static const value_string T_substrings_item_vals[] = {
-  {   0, "initialString" },
-  {   1, "anyString" },
-  {   2, "finalString" },
+static int
+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_) {
+  offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+                              SET_OF_GetInfoStatus_set_of, hf_index, ett_cmip_SET_OF_GetInfoStatus);
+
+  return offset;
+}
+static int dissect_getInfoList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_SET_OF_GetInfoStatus(TRUE, tvb, offset, pinfo, tree, hf_cmip_getInfoList);
+}
+
+static const ber_sequence GetListError_sequence[] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
+  { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
+  { BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_getInfoList_impl },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_GetListError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                GetListError_sequence, hf_index, ett_cmip_GetListError);
+
+  return offset;
+}
+static int dissect_getListError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_GetListError(TRUE, tvb, offset, pinfo, tree, hf_cmip_getListError);
+}
+
+
+static const value_string T_errorStatus2_vals[] = {
+  {   2, "accessDenied" },
+  {   5, "noSuchAttribute" },
+  {   6, "invalidAttributeValue" },
+  {  24, "invalidOperation" },
+  {  25, "invalidOperator" },
   { 0, NULL }
 };
 
-static const ber_choice T_substrings_item_choice[] = {
-  {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_initialString_impl },
-  {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_anyString_impl },
-  {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_finalString_impl },
+
+static int
+dissect_cmip_T_errorStatus2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+
+  return offset;
+}
+static int dissect_errorStatus2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_errorStatus2(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorStatus2);
+}
+
+
+static int
+dissect_cmip_T_attributeId1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
+                                         hf_cmip_attributeId_OID, object_identifier_id);
+
+
+  return offset;
+}
+static int dissect_attributeId2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_attributeId1(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeId2);
+}
+
+
+
+static int
+dissect_cmip_T_attributeValue1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
+
+
+
+  return offset;
+}
+static int dissect_attributeValue1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_attributeValue1(FALSE, tvb, offset, pinfo, tree, hf_cmip_attributeValue1);
+}
+
+static const ber_sequence AttributeError_sequence[] = {
+  { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_errorStatus2 },
+  { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_modifyOperator_impl },
+  { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeId2 },
+  { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_attributeValue1 },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_AttributeError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                AttributeError_sequence, hf_index, ett_cmip_AttributeError);
+
+  return offset;
+}
+static int dissect_attributeError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_AttributeError(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeError);
+}
+
+
+static const value_string SetInfoStatus_vals[] = {
+  {   0, "attributeError" },
+  {   1, "attribute" },
+  { 0, NULL }
+};
+
+static const ber_choice SetInfoStatus_choice[] = {
+  {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_attributeError_impl },
+  {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_attribute_impl },
   { 0, 0, 0, 0, NULL }
 };
 
 static int
-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_) {
-  offset = dissect_ber_choice(pinfo, tree, tvb, offset,
-                              T_substrings_item_choice, hf_index, ett_cmip_T_substrings_item);
+dissect_cmip_SetInfoStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+                              SetInfoStatus_choice, hf_index, ett_cmip_SetInfoStatus);
+
+  return offset;
+}
+static int dissect_setInfoList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_SetInfoStatus(FALSE, tvb, offset, pinfo, tree, hf_cmip_setInfoList_item);
+}
+
+static const ber_sequence SET_OF_SetInfoStatus_set_of[1] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_setInfoList_item },
+};
+
+static int
+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_) {
+  offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+                              SET_OF_SetInfoStatus_set_of, hf_index, ett_cmip_SET_OF_SetInfoStatus);
+
+  return offset;
+}
+static int dissect_setInfoList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_SET_OF_SetInfoStatus(TRUE, tvb, offset, pinfo, tree, hf_cmip_setInfoList);
+}
+
+static const ber_sequence SetListError_sequence[] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
+  { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
+  { BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_setInfoList_impl },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_SetListError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                SetListError_sequence, hf_index, ett_cmip_SetListError);
+
+  return offset;
+}
+static int dissect_setListError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_SetListError(TRUE, tvb, offset, pinfo, tree, hf_cmip_setListError);
+}
+
+
+static const value_string T_errorStatus1_vals[] = {
+  {   2, "accessDenied" },
+  {   9, "noSuchAction" },
+  {  14, "noSuchArgument" },
+  {  15, "invalidArgumentValue" },
+  { 0, NULL }
+};
+
+
+static int
+dissect_cmip_T_errorStatus1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+
+  return offset;
+}
+static int dissect_errorStatus1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_errorStatus1(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorStatus1);
+}
+
+
+static int
+dissect_cmip_T_actionType1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
+                                         hf_cmip_actionType_OID, object_identifier_id);
+
+
+  return offset;
+}
+static int dissect_actionType1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_actionType1(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType1);
+}
+
+
+static int
+dissect_cmip_T_actionType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
+                                         hf_cmip_actionType_OID, object_identifier_id);
+
+
+  return offset;
+}
+static int dissect_actionType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_actionType(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType);
+}
+
+static const ber_sequence NoSuchArgumentAction_sequence[] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
+  { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_NoSuchArgumentAction(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                NoSuchArgumentAction_sequence, hf_index, ett_cmip_NoSuchArgumentAction);
+
+  return offset;
+}
+static int dissect_actionId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_NoSuchArgumentAction(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionId);
+}
+
+
+static int
+dissect_cmip_T_eventType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
+                                         hf_cmip_eventType_OID, object_identifier_id);
+
+
+  return offset;
+}
+static int dissect_eventType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_eventType(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType);
+}
+
+static const ber_sequence NoSuchArgumentEvent_sequence[] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
+  { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_NoSuchArgumentEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                NoSuchArgumentEvent_sequence, hf_index, ett_cmip_NoSuchArgumentEvent);
+
+  return offset;
+}
+static int dissect_eventId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_NoSuchArgumentEvent(TRUE, tvb, offset, pinfo, tree, hf_cmip_eventId);
+}
+
+
+static const value_string NoSuchArgument_vals[] = {
+  {   0, "actionId" },
+  {   1, "eventId" },
+  { 0, NULL }
+};
+
+static const ber_choice NoSuchArgument_choice[] = {
+  {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_actionId_impl },
+  {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_eventId_impl },
+  { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_NoSuchArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+                              NoSuchArgument_choice, hf_index, ett_cmip_NoSuchArgument);
+
+  return offset;
+}
+static int dissect_actionArgument(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_NoSuchArgument(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionArgument);
+}
+
+
+static int
+dissect_cmip_T_actionType3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
+                                         hf_cmip_actionType_OID, object_identifier_id);
+
+
+  return offset;
+}
+static int dissect_actionType3(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_actionType3(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType3);
+}
+
+
+
+static int
+dissect_cmip_T_actionInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
+
+
+  return offset;
+}
+static int dissect_actionInfoArg(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_actionInfoArg(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionInfoArg);
+}
+
+static const ber_sequence ActionInfo_sequence[] = {
+  { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType3 },
+  { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_actionInfoArg },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_ActionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                ActionInfo_sequence, hf_index, ett_cmip_ActionInfo);
+
+  return offset;
+}
+static int dissect_actionValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_ActionInfo(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionValue);
+}
+static int dissect_actionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_ActionInfo(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionInfo);
+}
+
+
+static int
+dissect_cmip_T_eventType1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
+                                         hf_cmip_eventType_OID, object_identifier_id);
+
+
+  return offset;
+}
+static int dissect_eventType1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_eventType1(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType1);
+}
+
+
+
+static int
+dissect_cmip_T_eventInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
+
+
+
+  return offset;
+}
+static int dissect_eventInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_eventInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventInfo);
+}
+
+static const ber_sequence InvalidArgumentValueEventValue_sequence[] = {
+  { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType1 },
+  { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_eventInfo },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_InvalidArgumentValueEventValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                InvalidArgumentValueEventValue_sequence, hf_index, ett_cmip_InvalidArgumentValueEventValue);
+
+  return offset;
+}
+static int dissect_eventValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_InvalidArgumentValueEventValue(TRUE, tvb, offset, pinfo, tree, hf_cmip_eventValue);
+}
+
+
+static const value_string InvalidArgumentValue_vals[] = {
+  {   0, "actionValue" },
+  {   1, "eventValue" },
+  { 0, NULL }
+};
+
+static const ber_choice InvalidArgumentValue_choice[] = {
+  {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_actionValue_impl },
+  {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_eventValue_impl },
+  { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_InvalidArgumentValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+                              InvalidArgumentValue_choice, hf_index, ett_cmip_InvalidArgumentValue);
+
+  return offset;
+}
+static int dissect_argumentValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_InvalidArgumentValue(FALSE, tvb, offset, pinfo, tree, hf_cmip_argumentValue);
+}
+
+
+static const value_string ErrorInfo_vals[] = {
+  {   0, "actionType" },
+  {   1, "actionArgument" },
+  {   2, "argumentValue" },
+  { 0, NULL }
+};
+
+static const ber_choice ErrorInfo_choice[] = {
+  {   0, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType1 },
+  {   1, BER_CLASS_CON, 0, 0, dissect_actionArgument },
+  {   2, BER_CLASS_CON, 1, 0, dissect_argumentValue },
+  { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_ErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+                              ErrorInfo_choice, hf_index, ett_cmip_ErrorInfo);
+
+  return offset;
+}
+static int dissect_errorInfo1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_ErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorInfo1);
+}
+
+static const ber_sequence ActionErrorInfo_sequence[] = {
+  { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_errorStatus1 },
+  { -1/*choice*/ , -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_errorInfo1 },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_ActionErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                ActionErrorInfo_sequence, hf_index, ett_cmip_ActionErrorInfo);
+
+  return offset;
+}
+static int dissect_actionErrorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_ActionErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionErrorInfo);
+}
+
+static const ber_sequence ActionError_sequence[] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
+  { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
+  { BER_CLASS_CON, 6, 0, dissect_actionErrorInfo },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_ActionError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                ActionError_sequence, hf_index, ett_cmip_ActionError);
+
+  return offset;
+}
+static int dissect_actionError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_ActionError(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionError);
+}
+
+
+static int
+dissect_cmip_T_errorId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
+                                         hf_cmip_errorId_OID, object_identifier_id);
+
+
+  return offset;
+}
+static int dissect_errorId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_errorId(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorId);
+}
+
+
+
+static int
+dissect_cmip_T_errorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
+
+
+  return offset;
+}
+static int dissect_errorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_errorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_errorInfo);
+}
+
+static const ber_sequence SpecificErrorInfo_sequence[] = {
+  { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_errorId },
+  { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_errorInfo },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_SpecificErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                SpecificErrorInfo_sequence, hf_index, ett_cmip_SpecificErrorInfo);
+
+  return offset;
+}
+static int dissect_specificErrorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_SpecificErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_specificErrorInfo);
+}
+
+static const ber_sequence ProcessingFailure_sequence[] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
+  { BER_CLASS_CON, 5, 0, dissect_specificErrorInfo },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_ProcessingFailure(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                ProcessingFailure_sequence, hf_index, ett_cmip_ProcessingFailure);
+
+  return offset;
+}
+static int dissect_processingFailure_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_ProcessingFailure(TRUE, tvb, offset, pinfo, tree, hf_cmip_processingFailure);
+}
+
+
+static const value_string T_deleteErrorInfo_vals[] = {
+  {   2, "accessDenied" },
+  { 0, NULL }
+};
+
+
+static int
+dissect_cmip_T_deleteErrorInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+
+  return offset;
+}
+static int dissect_deleteErrorInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_deleteErrorInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_deleteErrorInfo);
+}
+
+static const ber_sequence DeleteError_sequence[] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
+  { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
+  { BER_CLASS_CON, 6, 0, dissect_deleteErrorInfo },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_DeleteError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                DeleteError_sequence, hf_index, ett_cmip_DeleteError);
+
+  return offset;
+}
+static int dissect_deleteError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_DeleteError(TRUE, tvb, offset, pinfo, tree, hf_cmip_deleteError);
+}
+
+static const ber_sequence SET_OF_Attribute_set_of[1] = {
+  { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_attributeList_item },
+};
+
+static int
+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_) {
+  offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+                              SET_OF_Attribute_set_of, hf_index, ett_cmip_SET_OF_Attribute);
+
+  return offset;
+}
+static int dissect_attributeList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_SET_OF_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeList);
+}
+
+static const ber_sequence SetResult_sequence[] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
+  { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
+  { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_SetResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                SetResult_sequence, hf_index, ett_cmip_SetResult);
+
+  return offset;
+}
+static int dissect_setResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_SetResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_setResult);
+}
+
+
+static int
+dissect_cmip_AccessControl(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+                                    NULL);
+
+  return offset;
+}
+static int dissect_accessControl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_AccessControl(FALSE, tvb, offset, pinfo, tree, hf_cmip_accessControl);
+}
+
+
+static const value_string CMISSync_vals[] = {
+  {   0, "bestEffort" },
+  {   1, "atomic" },
+  { 0, NULL }
+};
+
+
+static int
+dissect_cmip_CMISSync(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+
+  return offset;
+}
+static int dissect_synchronization_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_CMISSync(TRUE, tvb, offset, pinfo, tree, hf_cmip_synchronization);
+}
+
+
+static const value_string T_namedNumbers_vals[] = {
+  {   0, "baseObject" },
+  {   1, "firstLevelOnly" },
+  {   2, "wholeSubtree" },
+  { 0, NULL }
+};
+
+
+static int
+dissect_cmip_T_namedNumbers(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+
+  return offset;
+}
+static int dissect_namedNumbers(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_namedNumbers(FALSE, tvb, offset, pinfo, tree, hf_cmip_namedNumbers);
+}
+
+
+
+static int
+dissect_cmip_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
+
+  return offset;
+}
+static int dissect_individualLevels_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_cmip_individualLevels);
+}
+static int dissect_baseToNthLevel_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_cmip_baseToNthLevel);
+}
+
+
+static const value_string Scope_vals[] = {
+  {   0, "namedNumbers" },
+  {   1, "individualLevels" },
+  {   2, "baseToNthLevel" },
+  { 0, NULL }
+};
+
+static const ber_choice Scope_choice[] = {
+  {   0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_namedNumbers },
+  {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_individualLevels_impl },
+  {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_baseToNthLevel_impl },
+  { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_Scope(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+                              Scope_choice, hf_index, ett_cmip_Scope);
+
+  return offset;
+}
+static int dissect_scope(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_Scope(FALSE, tvb, offset, pinfo, tree, hf_cmip_scope);
+}
+
+
+static const value_string T_substrings_item_vals[] = {
+  {   0, "initialString" },
+  {   1, "anyString" },
+  {   2, "finalString" },
+  { 0, NULL }
+};
+
+static const ber_choice T_substrings_item_choice[] = {
+  {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_initialString_impl },
+  {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_anyString_impl },
+  {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_finalString_impl },
+  { 0, 0, 0, 0, NULL }
+};
+
+static int
+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_) {
+  offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+                              T_substrings_item_choice, hf_index, ett_cmip_T_substrings_item);
+
+  return offset;
+}
+static int dissect_substrings_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_substrings_item(FALSE, tvb, offset, pinfo, tree, hf_cmip_substrings_item);
+}
+
+static const ber_sequence T_substrings_sequence_of[1] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_substrings_item },
+};
+
+static int
+dissect_cmip_T_substrings(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+                                   T_substrings_sequence_of, hf_index, ett_cmip_T_substrings);
+
+  return offset;
+}
+static int dissect_substrings_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_substrings(TRUE, tvb, offset, pinfo, tree, hf_cmip_substrings);
+}
+
+
+static const value_string FilterItem_vals[] = {
+  {   0, "equality" },
+  {   1, "substrings" },
+  {   2, "greaterOrEqual" },
+  {   3, "lessOrEqual" },
+  {   4, "present" },
+  {   5, "subsetOf" },
+  {   6, "supersetOf" },
+  {   7, "nonNullSetIntersection" },
+  { 0, NULL }
+};
+
+static const ber_choice FilterItem_choice[] = {
+  {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_equality_impl },
+  {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_substrings_impl },
+  {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_greaterOrEqual_impl },
+  {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_lessOrEqual_impl },
+  {   4, BER_CLASS_CON, 4, 0, dissect_present },
+  {   5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_subsetOf_impl },
+  {   6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_supersetOf_impl },
+  {   7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_nonNullSetIntersection_impl },
+  { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_FilterItem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+                              FilterItem_choice, hf_index, ett_cmip_FilterItem);
+
+  return offset;
+}
+static int dissect_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_FilterItem(FALSE, tvb, offset, pinfo, tree, hf_cmip_item);
+}
+
+static const ber_sequence SET_OF_CMISFilter_set_of[1] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_and_item },
+};
+
+static int
+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_) {
+  offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+                              SET_OF_CMISFilter_set_of, hf_index, ett_cmip_SET_OF_CMISFilter);
+
+  return offset;
+}
+static int dissect_and_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_SET_OF_CMISFilter(TRUE, tvb, offset, pinfo, tree, hf_cmip_and);
+}
+static int dissect_or_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_SET_OF_CMISFilter(TRUE, tvb, offset, pinfo, tree, hf_cmip_or);
+}
+
+
+static const value_string CMISFilter_vals[] = {
+  {   8, "item" },
+  {   9, "and" },
+  {  10, "or" },
+  {  11, "not" },
+  { 0, NULL }
+};
+
+static const ber_choice CMISFilter_choice[] = {
+  {   8, BER_CLASS_CON, 8, 0, dissect_item },
+  {   9, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_and_impl },
+  {  10, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_or_impl },
+  {  11, BER_CLASS_CON, 11, 0, dissect_not },
+  { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_CMISFilter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+                              CMISFilter_choice, hf_index, ett_cmip_CMISFilter);
+
+  return offset;
+}
+
+static const ber_sequence SET_OF_ModificationItem_set_of[1] = {
+  { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_modificationList_item },
+};
+
+static int
+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_) {
+  offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+                              SET_OF_ModificationItem_set_of, hf_index, ett_cmip_SET_OF_ModificationItem);
+
+  return offset;
+}
+static int dissect_modificationList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_SET_OF_ModificationItem(TRUE, tvb, offset, pinfo, tree, hf_cmip_modificationList);
+}
+
+static const ber_sequence SetArgument_sequence[] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
+  { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
+  { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_synchronization_impl },
+  { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_scope },
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_filter },
+  { BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_modificationList_impl },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_SetArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                SetArgument_sequence, hf_index, ett_cmip_SetArgument);
+
+  return offset;
+}
+
+static const ber_sequence GetResult_sequence[] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
+  { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
+  { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_GetResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                GetResult_sequence, hf_index, ett_cmip_GetResult);
+
+  return offset;
+}
+static int dissect_getResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_GetResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_getResult);
+}
+
+
+static int
+dissect_cmip_T_actionType2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
+                                         hf_cmip_actionType_OID, object_identifier_id);
+
+
+  return offset;
+}
+static int dissect_actionType2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_actionType2(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType2);
+}
+
+
+
+static int
+dissect_cmip_T_actionReplyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
+
+
+  return offset;
+}
+static int dissect_actionReplyInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_actionReplyInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionReplyInfo);
+}
+
+static const ber_sequence ActionReply_sequence[] = {
+  { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType2 },
+  { BER_CLASS_CON, 4, 0, dissect_actionReplyInfo },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_ActionReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                ActionReply_sequence, hf_index, ett_cmip_ActionReply);
+
+  return offset;
+}
+static int dissect_actionReply_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_ActionReply(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionReply);
+}
+
+static const ber_sequence ActionResult_sequence[] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
+  { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
+  { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_actionReply_impl },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_ActionResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                ActionResult_sequence, hf_index, ett_cmip_ActionResult);
+
+  return offset;
+}
+static int dissect_actionResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_ActionResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionResult);
+}
+
+static const ber_sequence DeleteResult_sequence[] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
+  { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_DeleteResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                DeleteResult_sequence, hf_index, ett_cmip_DeleteResult);
+
+  return offset;
+}
+static int dissect_deleteResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_DeleteResult(TRUE, tvb, offset, pinfo, tree, hf_cmip_deleteResult);
+}
+
+
+static const value_string LinkedReplyArgument_vals[] = {
+  {   0, "getResult" },
+  {   1, "getListError" },
+  {   2, "setResult" },
+  {   3, "setListError" },
+  {   4, "actionResult" },
+  {   5, "processingFailure" },
+  {   6, "deleteResult" },
+  {   7, "actionError" },
+  {   8, "deleteError" },
+  { 0, NULL }
+};
+
+static const ber_choice LinkedReplyArgument_choice[] = {
+  {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_getResult_impl },
+  {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_getListError_impl },
+  {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_setResult_impl },
+  {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_setListError_impl },
+  {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_actionResult_impl },
+  {   5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_processingFailure_impl },
+  {   6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_deleteResult_impl },
+  {   7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_actionError_impl },
+  {   8, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_deleteError_impl },
+  { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_LinkedReplyArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+                              LinkedReplyArgument_choice, hf_index, ett_cmip_LinkedReplyArgument);
+
+  return offset;
+}
+
+
+static int
+dissect_cmip_T_eventType2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
+                                         hf_cmip_eventType_OID, object_identifier_id);
+
+
+  return offset;
+}
+static int dissect_eventType2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_eventType2(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType2);
+}
+
+
+
+static int
+dissect_cmip_T_eventReplyInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
+
+
+  return offset;
+}
+static int dissect_eventReplyInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_eventReplyInfo(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventReplyInfo);
+}
+
+static const ber_sequence EventReply_sequence[] = {
+  { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType2 },
+  { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_eventReplyInfo },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_EventReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                EventReply_sequence, hf_index, ett_cmip_EventReply);
+
+  return offset;
+}
+static int dissect_eventReply(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_EventReply(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventReply);
+}
+
+static const ber_sequence EventReportResult_sequence[] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
+  { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
+  { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_eventReply },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_cmip_EventReportResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                EventReportResult_sequence, hf_index, ett_cmip_EventReportResult);
+
+  return offset;
+}
+
+
+static int
+dissect_cmip_T_eventType3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
+                                         hf_cmip_eventType_OID, object_identifier_id);
+
 
   return offset;
 }
-static int dissect_substrings_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-  return dissect_cmip_T_substrings_item(FALSE, tvb, offset, pinfo, tree, hf_cmip_substrings_item);
+static int dissect_eventType3(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_eventType3(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventType3);
 }
 
-static const ber_sequence T_substrings_sequence_of[1] = {
-  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_substrings_item },
-};
+
 
 static int
-dissect_cmip_T_substrings(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-  offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
-                                   T_substrings_sequence_of, hf_index, ett_cmip_T_substrings);
+dissect_cmip_T_eventInfo1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
+
+
 
   return offset;
 }
-static int dissect_substrings_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-  return dissect_cmip_T_substrings(TRUE, tvb, offset, pinfo, tree, hf_cmip_substrings);
+static int dissect_eventInfo1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_eventInfo1(FALSE, tvb, offset, pinfo, tree, hf_cmip_eventInfo1);
 }
 
-
-static const value_string FilterItem_vals[] = {
-  {   0, "equality" },
-  {   1, "substrings" },
-  {   2, "greaterOrEqual" },
-  {   3, "lessOrEqual" },
-  {   4, "present" },
-  {   5, "subsetOf" },
-  {   6, "supersetOf" },
-  {   7, "nonNullSetIntersection" },
-  { 0, NULL }
-};
-
-static const ber_choice FilterItem_choice[] = {
-  {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_equality_impl },
-  {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_substrings_impl },
-  {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_greaterOrEqual_impl },
-  {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_lessOrEqual_impl },
-  {   4, BER_CLASS_CON, 4, 0, dissect_present },
-  {   5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_subsetOf_impl },
-  {   6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_supersetOf_impl },
-  {   7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_nonNullSetIntersection_impl },
-  { 0, 0, 0, 0, NULL }
+static const ber_sequence EventReportArgument_sequence[] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
+  { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventTime_impl },
+  { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_eventType3 },
+  { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_eventInfo1 },
+  { 0, 0, 0, NULL }
 };
 
 static int
-dissect_cmip_FilterItem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-  offset = dissect_ber_choice(pinfo, tree, tvb, offset,
-                              FilterItem_choice, hf_index, ett_cmip_FilterItem);
+dissect_cmip_EventReportArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                EventReportArgument_sequence, hf_index, ett_cmip_EventReportArgument);
 
   return offset;
 }
-static int dissect_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-  return dissect_cmip_FilterItem(FALSE, tvb, offset, pinfo, tree, hf_cmip_item);
-}
 
-static const ber_sequence SET_OF_CMISFilter_set_of[1] = {
-  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_and_item },
+static const ber_sequence DeleteArgument_sequence[] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectInstance },
+  { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
+  { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_synchronization_impl },
+  { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_scope },
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_filter },
+  { 0, 0, 0, NULL }
 };
 
 static int
-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_) {
-  offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
-                              SET_OF_CMISFilter_set_of, hf_index, ett_cmip_SET_OF_CMISFilter);
+dissect_cmip_DeleteArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                DeleteArgument_sequence, hf_index, ett_cmip_DeleteArgument);
 
   return offset;
 }
-static int dissect_and_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-  return dissect_cmip_SET_OF_CMISFilter(TRUE, tvb, offset, pinfo, tree, hf_cmip_and);
-}
-static int dissect_or_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-  return dissect_cmip_SET_OF_CMISFilter(TRUE, tvb, offset, pinfo, tree, hf_cmip_or);
-}
 
 
-static const value_string CMISFilter_vals[] = {
-  {   8, "item" },
-  {   9, "and" },
-  {  10, "or" },
-  {  11, "not" },
+static const value_string T_managedOrSuperiorObjectInstance_vals[] = {
+  { -1/*choice*/, "managedObjectInstance" },
+  {   8, "superiorObjectInstance" },
   { 0, NULL }
 };
 
-static const ber_choice CMISFilter_choice[] = {
-  {   8, BER_CLASS_CON, 8, 0, dissect_item },
-  {   9, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_and_impl },
-  {  10, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_or_impl },
-  {  11, BER_CLASS_CON, 11, 0, dissect_not },
+static const ber_choice T_managedOrSuperiorObjectInstance_choice[] = {
+  { -1/*choice*/, BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_managedObjectInstance },
+  {   8, BER_CLASS_CON, 8, 0, dissect_superiorObjectInstance },
   { 0, 0, 0, 0, NULL }
 };
 
 static int
-dissect_cmip_CMISFilter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_cmip_T_managedOrSuperiorObjectInstance(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
-                              CMISFilter_choice, hf_index, ett_cmip_CMISFilter);
-
-  return offset;
-}
-
-
-static int
-dissect_cmip_T_actionType1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-  offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset,
-                                         hf_cmip_actionType_OID, object_identifier_id);
-
+                              T_managedOrSuperiorObjectInstance_choice, hf_index, ett_cmip_T_managedOrSuperiorObjectInstance);
 
   return offset;
 }
-static int dissect_actionType1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-  return dissect_cmip_T_actionType1(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionType1);
+static int dissect_managedOrSuperiorObjectInstance(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_cmip_T_managedOrSuperiorObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_cmip_managedOrSuperiorObjectInstance);
 }
 
-
+static const ber_sequence CreateArgument_sequence[] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedOrSuperiorObjectInstance },
+  { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_accessControl },
+  { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_referenceObjectInstance },
+  { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
+  { 0, 0, 0, NULL }
+};
 
 static int
-dissect_cmip_T_actionInfoArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-  offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
-
+dissect_cmip_CreateArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                CreateArgument_sequence, hf_index, ett_cmip_CreateArgument);
 
   return offset;
 }
-static int dissect_actionInfoArg(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-  return dissect_cmip_T_actionInfoArg(FALSE, tvb, offset, pinfo, tree, hf_cmip_actionInfoArg);
-}
 
-static const ber_sequence ActionInfo_sequence[] = {
-  { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_actionType1 },
-  { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_actionInfoArg },
+static const ber_sequence CreateResult_sequence[] = {
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
+  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
+  { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
+  { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
   { 0, 0, 0, NULL }
 };
 
 static int
-dissect_cmip_ActionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_cmip_CreateResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
-                                ActionInfo_sequence, hf_index, ett_cmip_ActionInfo);
+                                CreateResult_sequence, hf_index, ett_cmip_CreateResult);
 
   return offset;
 }
-static int dissect_actionInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-  return dissect_cmip_ActionInfo(TRUE, tvb, offset, pinfo, tree, hf_cmip_actionInfo);
-}
 
 static const ber_sequence ActionArgument_sequence[] = {
   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_baseManagedObjectClass },
@@ -837,37 +1890,6 @@ dissect_cmip_GetArgument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, p
   return offset;
 }
 
-static const ber_sequence SET_OF_Attribute_set_of[1] = {
-  { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_attributeList_item },
-};
-
-static int
-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_) {
-  offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
-                              SET_OF_Attribute_set_of, hf_index, ett_cmip_SET_OF_Attribute);
-
-  return offset;
-}
-static int dissect_attributeList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
-  return dissect_cmip_SET_OF_Attribute(TRUE, tvb, offset, pinfo, tree, hf_cmip_attributeList);
-}
-
-static const ber_sequence GetResult_sequence[] = {
-  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectClass },
-  { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_managedObjectInstance },
-  { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentTime_impl },
-  { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
-  { 0, 0, 0, NULL }
-};
-
-static int
-dissect_cmip_GetResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
-                                GetResult_sequence, hf_index, ett_cmip_GetResult);
-
-  return offset;
-}
-
 
 
 static int
@@ -875,27 +1897,71 @@ dissect_cmip_Argument(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pack
   switch(opcode_type){
   case OPCODE_INVOKE:
     switch(opcode){
+    case 0: /* M-eventreport */
+      offset = dissect_cmip_EventReportArgument(FALSE, tvb, offset, pinfo, tree, -1);
+      break;
+    case 1: /* M-eventreport-confirmed */
+      offset = dissect_cmip_EventReportArgument(FALSE, tvb, offset, pinfo, tree, -1);
+      break;
+    case 2: /* M-linkedreply */
+      offset = dissect_cmip_LinkedReplyArgument(FALSE, tvb, offset, pinfo, tree, -1);
+      break;
     case 3: /* M-get */
       offset = dissect_cmip_GetArgument(FALSE, tvb, offset, pinfo, tree, -1);
       break;
+    case 4: /* M-set */
+      offset = dissect_cmip_SetArgument(FALSE, tvb, offset, pinfo, tree, -1);
+      break;
+    case 5: /* M-set-confirmed */
+      offset = dissect_cmip_SetArgument(FALSE, tvb, offset, pinfo, tree, -1);
+      break;
     case 6: /* M-action*/
       offset = dissect_cmip_ActionInfo(FALSE, tvb,  offset, pinfo, tree, -1);
       break;
     case 7: /* M-action-confirmed*/
       offset = dissect_cmip_ActionInfo(FALSE, tvb,  offset, pinfo, tree, -1);
       break;
+    case 8: /* M-create*/
+      offset = dissect_cmip_CreateArgument(FALSE, tvb,  offset, pinfo, tree, -1);
+      break;
+    case 9: /* M-delete*/
+      offset = dissect_cmip_DeleteArgument(FALSE, tvb,  offset, pinfo, tree, -1);
+      break;
+    case 10: /* M-cancelget */
+      offset = dissect_cmip_InvokeIDType(FALSE, tvb,  offset, pinfo, tree, -1);
+      break;
     }
     break;
   case OPCODE_RETURN_RESULT:
     switch(opcode){
+    case 0: /* M-eventreport*/
+      break;  /* No return data */
+    case 1: /* M-eventreport-confirmed */
+      offset = dissect_cmip_EventReportResult(FALSE, tvb, offset, pinfo, tree, -1);
+      break;
+    case 2: /* M-linkedreply*/
+      break;  /* No return data */
     case 3: /* M-get */
       offset = dissect_cmip_GetResult(FALSE, tvb, offset, pinfo, tree, -1);
       break;
+    case 4: /* M-set */
+      break;  /* No return data */
+    case 5: /* M-set-confirmed*/
+      offset = dissect_cmip_SetResult(FALSE, tvb, offset, pinfo, tree, -1);
+      break;
     case 6: /* M-action*/
       break;  /* No return data */
     case 7: /* M-action-confirmed*/
       offset = dissect_cmip_ActionResult(FALSE, tvb, offset, pinfo, tree, -1);
       break;
+    case 8: /* M-create*/
+      offset = dissect_cmip_CreateResult(FALSE, tvb,  offset, pinfo, tree, -1);
+      break;
+    case 9: /* M-delete*/
+      offset = dissect_cmip_DeleteResult(FALSE, tvb,  offset, pinfo, tree, -1);
+      break;
+    case 10: /* M-cancelget */
+      break; /* doe this one return any data? */
     }
     break;
   /*XXX add more types here */
@@ -1035,6 +2101,14 @@ static int dissect_linkedId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb,
   return dissect_cmip_InvokeLinkedId(FALSE, tvb, offset, pinfo, tree, hf_cmip_linkedId);
 }
 
+
+static int
+dissect_cmip_InvokeIDType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+  offset = dissect_cmip_InvokeId(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+  return offset;
+}
+
 static const ber_sequence Invoke_sequence[] = {
   { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
   { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_linkedId },
@@ -1450,17 +2524,33 @@ void proto_register_cmip(void) {
       { "actionType", "cmip.actionType_OID",
         FT_STRING, BASE_NONE, NULL, 0,
         "actionType", HFILL }},
+    { &hf_cmip_eventType_OID,
+      { "eventType", "cmip.eventType_OID",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "eventType", HFILL }},
+    { &hf_cmip_attributeId_OID,
+      { "attributeId", "cmip.attributeId_OID",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "attributeId", HFILL }},
+    { &hf_cmip_errorId_OID,
+      { "errorId", "cmip.errorId_OID",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "errorId", HFILL }},
 
 /*--- Included file: packet-cmip-hfarr.c ---*/
 
-    { &hf_cmip_actionType,
-      { "actionType", "cmip.actionType",
+    { &hf_cmip_modifyOperator,
+      { "modifyOperator", "cmip.modifyOperator",
+        FT_INT32, BASE_DEC, VALS(ModifyOperator_vals), 0,
+        "", HFILL }},
+    { &hf_cmip_attributeId,
+      { "attributeId", "cmip.attributeId",
         FT_STRING, BASE_NONE, NULL, 0,
-        "ActionReply/actionType", HFILL }},
-    { &hf_cmip_actionReplyInfo,
-      { "actionReplyInfo", "cmip.actionReplyInfo",
+        "ModificationItem/attributeId", HFILL }},
+    { &hf_cmip_attributeValue,
+      { "attributeValue", "cmip.attributeValue",
         FT_NONE, BASE_NONE, NULL, 0,
-        "ActionReply/actionReplyInfo", HFILL }},
+        "ModificationItem/attributeValue", HFILL }},
     { &hf_cmip_managedObjectClass,
       { "managedObjectClass", "cmip.managedObjectClass",
         FT_UINT32, BASE_DEC, VALS(ObjectClass_vals), 0,
@@ -1473,10 +2563,134 @@ void proto_register_cmip(void) {
       { "currentTime", "cmip.currentTime",
         FT_STRING, BASE_NONE, NULL, 0,
         "", HFILL }},
-    { &hf_cmip_actionReply,
-      { "actionReply", "cmip.actionReply",
+    { &hf_cmip_getInfoList,
+      { "getInfoList", "cmip.getInfoList",
+        FT_UINT32, BASE_DEC, NULL, 0,
+        "GetListError/getInfoList", HFILL }},
+    { &hf_cmip_getInfoList_item,
+      { "Item", "cmip.getInfoList_item",
+        FT_UINT32, BASE_DEC, VALS(GetInfoStatus_vals), 0,
+        "GetListError/getInfoList/_item", HFILL }},
+    { &hf_cmip_attributeIdError,
+      { "attributeIdError", "cmip.attributeIdError",
         FT_NONE, BASE_NONE, NULL, 0,
-        "ActionResult/actionReply", HFILL }},
+        "GetInfoStatus/attributeIdError", HFILL }},
+    { &hf_cmip_attribute,
+      { "attribute", "cmip.attribute",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "", HFILL }},
+    { &hf_cmip_errorStatus,
+      { "errorStatus", "cmip.errorStatus",
+        FT_UINT32, BASE_DEC, VALS(T_errorStatus_vals), 0,
+        "AttributeIdError/errorStatus", HFILL }},
+    { &hf_cmip_attributeId1,
+      { "attributeId", "cmip.attributeId",
+        FT_UINT32, BASE_DEC, VALS(AttributeId_vals), 0,
+        "AttributeIdError/attributeId", HFILL }},
+    { &hf_cmip_setInfoList,
+      { "setInfoList", "cmip.setInfoList",
+        FT_UINT32, BASE_DEC, NULL, 0,
+        "SetListError/setInfoList", HFILL }},
+    { &hf_cmip_setInfoList_item,
+      { "Item", "cmip.setInfoList_item",
+        FT_UINT32, BASE_DEC, VALS(SetInfoStatus_vals), 0,
+        "SetListError/setInfoList/_item", HFILL }},
+    { &hf_cmip_actionErrorInfo,
+      { "actionErrorInfo", "cmip.actionErrorInfo",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "ActionError/actionErrorInfo", HFILL }},
+    { &hf_cmip_specificErrorInfo,
+      { "specificErrorInfo", "cmip.specificErrorInfo",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "ProcessingFailure/specificErrorInfo", HFILL }},
+    { &hf_cmip_deleteErrorInfo,
+      { "deleteErrorInfo", "cmip.deleteErrorInfo",
+        FT_UINT32, BASE_DEC, VALS(T_deleteErrorInfo_vals), 0,
+        "DeleteError/deleteErrorInfo", HFILL }},
+    { &hf_cmip_attributeError,
+      { "attributeError", "cmip.attributeError",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "SetInfoStatus/attributeError", HFILL }},
+    { &hf_cmip_errorId,
+      { "errorId", "cmip.errorId",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "SpecificErrorInfo/errorId", HFILL }},
+    { &hf_cmip_errorInfo,
+      { "errorInfo", "cmip.errorInfo",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "SpecificErrorInfo/errorInfo", HFILL }},
+    { &hf_cmip_actionType,
+      { "actionType", "cmip.actionType",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "NoSuchArgumentAction/actionType", HFILL }},
+    { &hf_cmip_eventType,
+      { "eventType", "cmip.eventType",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "NoSuchArgumentEvent/eventType", HFILL }},
+    { &hf_cmip_actionId,
+      { "actionId", "cmip.actionId",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "NoSuchArgument/actionId", HFILL }},
+    { &hf_cmip_eventId,
+      { "eventId", "cmip.eventId",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "NoSuchArgument/eventId", HFILL }},
+    { &hf_cmip_eventType1,
+      { "eventType", "cmip.eventType",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "InvalidArgumentValueEventValue/eventType", HFILL }},
+    { &hf_cmip_eventInfo,
+      { "eventInfo", "cmip.eventInfo",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "InvalidArgumentValueEventValue/eventInfo", HFILL }},
+    { &hf_cmip_actionValue,
+      { "actionValue", "cmip.actionValue",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "InvalidArgumentValue/actionValue", HFILL }},
+    { &hf_cmip_eventValue,
+      { "eventValue", "cmip.eventValue",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "InvalidArgumentValue/eventValue", HFILL }},
+    { &hf_cmip_actionType1,
+      { "actionType", "cmip.actionType",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "ErrorInfo/actionType", HFILL }},
+    { &hf_cmip_actionArgument,
+      { "actionArgument", "cmip.actionArgument",
+        FT_UINT32, BASE_DEC, VALS(NoSuchArgument_vals), 0,
+        "ErrorInfo/actionArgument", HFILL }},
+    { &hf_cmip_argumentValue,
+      { "argumentValue", "cmip.argumentValue",
+        FT_UINT32, BASE_DEC, VALS(InvalidArgumentValue_vals), 0,
+        "ErrorInfo/argumentValue", HFILL }},
+    { &hf_cmip_errorStatus1,
+      { "errorStatus", "cmip.errorStatus",
+        FT_UINT32, BASE_DEC, VALS(T_errorStatus1_vals), 0,
+        "ActionErrorInfo/errorStatus", HFILL }},
+    { &hf_cmip_errorInfo1,
+      { "errorInfo", "cmip.errorInfo",
+        FT_UINT32, BASE_DEC, VALS(ErrorInfo_vals), 0,
+        "ActionErrorInfo/errorInfo", HFILL }},
+    { &hf_cmip_errorStatus2,
+      { "errorStatus", "cmip.errorStatus",
+        FT_UINT32, BASE_DEC, VALS(T_errorStatus2_vals), 0,
+        "AttributeError/errorStatus", HFILL }},
+    { &hf_cmip_attributeId2,
+      { "attributeId", "cmip.attributeId",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "AttributeError/attributeId", HFILL }},
+    { &hf_cmip_attributeValue1,
+      { "attributeValue", "cmip.attributeValue",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "AttributeError/attributeValue", HFILL }},
+    { &hf_cmip_attributeList,
+      { "attributeList", "cmip.attributeList",
+        FT_UINT32, BASE_DEC, NULL, 0,
+        "", HFILL }},
+    { &hf_cmip_attributeList_item,
+      { "Item", "cmip.attributeList_item",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "", HFILL }},
     { &hf_cmip_baseManagedObjectClass,
       { "baseManagedObjectClass", "cmip.baseManagedObjectClass",
         FT_UINT32, BASE_DEC, VALS(ObjectClass_vals), 0,
@@ -1501,11 +2715,103 @@ void proto_register_cmip(void) {
       { "filter", "cmip.filter",
         FT_UINT32, BASE_DEC, VALS(CMISFilter_vals), 0,
         "", HFILL }},
+    { &hf_cmip_modificationList,
+      { "modificationList", "cmip.modificationList",
+        FT_UINT32, BASE_DEC, NULL, 0,
+        "SetArgument/modificationList", HFILL }},
+    { &hf_cmip_modificationList_item,
+      { "Item", "cmip.modificationList_item",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "SetArgument/modificationList/_item", HFILL }},
+    { &hf_cmip_getResult,
+      { "getResult", "cmip.getResult",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "LinkedReplyArgument/getResult", HFILL }},
+    { &hf_cmip_getListError,
+      { "getListError", "cmip.getListError",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "LinkedReplyArgument/getListError", HFILL }},
+    { &hf_cmip_setResult,
+      { "setResult", "cmip.setResult",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "LinkedReplyArgument/setResult", HFILL }},
+    { &hf_cmip_setListError,
+      { "setListError", "cmip.setListError",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "LinkedReplyArgument/setListError", HFILL }},
+    { &hf_cmip_actionResult,
+      { "actionResult", "cmip.actionResult",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "LinkedReplyArgument/actionResult", HFILL }},
+    { &hf_cmip_processingFailure,
+      { "processingFailure", "cmip.processingFailure",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "LinkedReplyArgument/processingFailure", HFILL }},
+    { &hf_cmip_deleteResult,
+      { "deleteResult", "cmip.deleteResult",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "LinkedReplyArgument/deleteResult", HFILL }},
+    { &hf_cmip_actionError,
+      { "actionError", "cmip.actionError",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "LinkedReplyArgument/actionError", HFILL }},
+    { &hf_cmip_deleteError,
+      { "deleteError", "cmip.deleteError",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "LinkedReplyArgument/deleteError", HFILL }},
+    { &hf_cmip_eventType2,
+      { "eventType", "cmip.eventType",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "EventReply/eventType", HFILL }},
+    { &hf_cmip_eventReplyInfo,
+      { "eventReplyInfo", "cmip.eventReplyInfo",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "EventReply/eventReplyInfo", HFILL }},
+    { &hf_cmip_eventReply,
+      { "eventReply", "cmip.eventReply",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "EventReportResult/eventReply", HFILL }},
+    { &hf_cmip_eventTime,
+      { "eventTime", "cmip.eventTime",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "EventReportArgument/eventTime", HFILL }},
+    { &hf_cmip_eventType3,
+      { "eventType", "cmip.eventType",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "EventReportArgument/eventType", HFILL }},
+    { &hf_cmip_eventInfo1,
+      { "eventInfo", "cmip.eventInfo",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "EventReportArgument/eventInfo", HFILL }},
+    { &hf_cmip_managedOrSuperiorObjectInstance,
+      { "managedOrSuperiorObjectInstance", "cmip.managedOrSuperiorObjectInstance",
+        FT_UINT32, BASE_DEC, VALS(T_managedOrSuperiorObjectInstance_vals), 0,
+        "CreateArgument/managedOrSuperiorObjectInstance", HFILL }},
+    { &hf_cmip_superiorObjectInstance,
+      { "superiorObjectInstance", "cmip.superiorObjectInstance",
+        FT_UINT32, BASE_DEC, VALS(ObjectInstance_vals), 0,
+        "CreateArgument/managedOrSuperiorObjectInstance/superiorObjectInstance", HFILL }},
+    { &hf_cmip_referenceObjectInstance,
+      { "referenceObjectInstance", "cmip.referenceObjectInstance",
+        FT_UINT32, BASE_DEC, VALS(ObjectInstance_vals), 0,
+        "CreateArgument/referenceObjectInstance", HFILL }},
+    { &hf_cmip_actionType2,
+      { "actionType", "cmip.actionType",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "ActionReply/actionType", HFILL }},
+    { &hf_cmip_actionReplyInfo,
+      { "actionReplyInfo", "cmip.actionReplyInfo",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "ActionReply/actionReplyInfo", HFILL }},
+    { &hf_cmip_actionReply,
+      { "actionReply", "cmip.actionReply",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "ActionResult/actionReply", HFILL }},
     { &hf_cmip_actionInfo,
       { "actionInfo", "cmip.actionInfo",
         FT_NONE, BASE_NONE, NULL, 0,
         "ActionArgument/actionInfo", HFILL }},
-    { &hf_cmip_actionType1,
+    { &hf_cmip_actionType3,
       { "actionType", "cmip.actionType",
         FT_STRING, BASE_NONE, NULL, 0,
         "ActionInfo/actionType", HFILL }},
@@ -1641,14 +2947,6 @@ void proto_register_cmip(void) {
       { "Item", "cmip.attributeIdList_item",
         FT_UINT32, BASE_DEC, VALS(AttributeId_vals), 0,
         "GetArgument/attributeIdList/_item", HFILL }},
-    { &hf_cmip_attributeList,
-      { "attributeList", "cmip.attributeList",
-        FT_UINT32, BASE_DEC, NULL, 0,
-        "GetResult/attributeList", HFILL }},
-    { &hf_cmip_attributeList_item,
-      { "Item", "cmip.attributeList_item",
-        FT_NONE, BASE_NONE, NULL, 0,
-        "GetResult/attributeList/_item", HFILL }},
     { &hf_cmip_opcode,
       { "opcode", "cmip.opcode",
         FT_INT32, BASE_DEC, VALS(Opcode_vals), 0,
@@ -1768,6 +3066,39 @@ void proto_register_cmip(void) {
 
 /*--- Included file: packet-cmip-ettarr.c ---*/
 
+    &ett_cmip_ModificationItem,
+    &ett_cmip_GetListError,
+    &ett_cmip_SET_OF_GetInfoStatus,
+    &ett_cmip_GetInfoStatus,
+    &ett_cmip_AttributeIdError,
+    &ett_cmip_SetListError,
+    &ett_cmip_SET_OF_SetInfoStatus,
+    &ett_cmip_ActionError,
+    &ett_cmip_ProcessingFailure,
+    &ett_cmip_DeleteError,
+    &ett_cmip_SetInfoStatus,
+    &ett_cmip_SpecificErrorInfo,
+    &ett_cmip_NoSuchArgumentAction,
+    &ett_cmip_NoSuchArgumentEvent,
+    &ett_cmip_NoSuchArgument,
+    &ett_cmip_InvalidArgumentValueEventValue,
+    &ett_cmip_InvalidArgumentValue,
+    &ett_cmip_ErrorInfo,
+    &ett_cmip_ActionErrorInfo,
+    &ett_cmip_AttributeError,
+    &ett_cmip_SetResult,
+    &ett_cmip_SET_OF_Attribute,
+    &ett_cmip_SetArgument,
+    &ett_cmip_SET_OF_ModificationItem,
+    &ett_cmip_LinkedReplyArgument,
+    &ett_cmip_EventReply,
+    &ett_cmip_EventReportResult,
+    &ett_cmip_EventReportArgument,
+    &ett_cmip_DeleteArgument,
+    &ett_cmip_DeleteResult,
+    &ett_cmip_CreateArgument,
+    &ett_cmip_T_managedOrSuperiorObjectInstance,
+    &ett_cmip_CreateResult,
     &ett_cmip_ActionReply,
     &ett_cmip_ActionResult,
     &ett_cmip_ActionArgument,
@@ -1786,7 +3117,6 @@ void proto_register_cmip(void) {
     &ett_cmip_GetArgument,
     &ett_cmip_SET_OF_AttributeId,
     &ett_cmip_GetResult,
-    &ett_cmip_SET_OF_Attribute,
     &ett_cmip_ReturnResultBody,
     &ett_cmip_InvokeLinkedId,
     &ett_cmip_InvokeId,