7950abbb4f36fd430f7e7d4a764e89c3e357799b
[obnox/wireshark/wip.git] / epan / dissectors / packet-mms.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
3 /* packet-mms.c                                                               */
4 /* ../../tools/asn2wrs.py -b -p mms -c ./mms.cnf -s ./packet-mms-template -D . mms.asn */
5
6 /* Input file: packet-mms-template.c */
7
8 #line 1 "packet-mms-template.c"
9 /* packet-mms_asn1.c
10  *
11  * Ronnie Sahlberg 2005
12  *
13  * $Id$
14  *
15  * Wireshark - Network traffic analyzer
16  * By Gerald Combs <gerald@wireshark.org>
17  * Copyright 1998 Gerald Combs
18  *
19  * This program is free software; you can redistribute it and/or
20  * modify it under the terms of the GNU General Public License
21  * as published by the Free Software Foundation; either version 2
22  * of the License, or (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program; if not, write to the Free Software
31  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
32  */
33
34 #ifdef HAVE_CONFIG_H
35 # include "config.h"
36 #endif
37
38 #include <glib.h>
39 #include <epan/prefs.h>
40 #include <epan/packet.h>
41 #include <epan/asn1.h>
42 #include <epan/expert.h>
43 #include <epan/nstime.h>
44
45 #include <string.h>
46
47 #include "packet-ber.h"
48 #include "packet-acse.h"
49 #include "packet-mms.h"
50
51 #define PNAME  "MMS"
52 #define PSNAME "MMS"
53 #define PFNAME "mms"
54
55 /* Initialize the protocol and registered fields */
56 static int proto_mms = -1;
57
58
59 /*--- Included file: packet-mms-hf.c ---*/
60 #line 1 "packet-mms-hf.c"
61 static int hf_mms_confirmed_RequestPDU = -1;      /* Confirmed_RequestPDU */
62 static int hf_mms_confirmed_ResponsePDU = -1;     /* Confirmed_ResponsePDU */
63 static int hf_mms_confirmed_ErrorPDU = -1;        /* Confirmed_ErrorPDU */
64 static int hf_mms_unconfirmed_PDU = -1;           /* Unconfirmed_PDU */
65 static int hf_mms_rejectPDU = -1;                 /* RejectPDU */
66 static int hf_mms_cancel_RequestPDU = -1;         /* Cancel_RequestPDU */
67 static int hf_mms_cancel_ResponsePDU = -1;        /* Cancel_ResponsePDU */
68 static int hf_mms_cancel_ErrorPDU = -1;           /* Cancel_ErrorPDU */
69 static int hf_mms_initiate_RequestPDU = -1;       /* Initiate_RequestPDU */
70 static int hf_mms_initiate_ResponsePDU = -1;      /* Initiate_ResponsePDU */
71 static int hf_mms_initiate_ErrorPDU = -1;         /* Initiate_ErrorPDU */
72 static int hf_mms_conclude_RequestPDU = -1;       /* Conclude_RequestPDU */
73 static int hf_mms_conclude_ResponsePDU = -1;      /* Conclude_ResponsePDU */
74 static int hf_mms_conclude_ErrorPDU = -1;         /* Conclude_ErrorPDU */
75 static int hf_mms_invokeID = -1;                  /* Unsigned32 */
76 static int hf_mms_listOfModifier = -1;            /* SEQUENCE_OF_Modifier */
77 static int hf_mms_listOfModifier_item = -1;       /* Modifier */
78 static int hf_mms_confirmedServiceRequest = -1;   /* ConfirmedServiceRequest */
79 static int hf_mms_cs_request_detail = -1;         /* CS_Request_Detail */
80 static int hf_mms_unconfirmedService = -1;        /* UnconfirmedService */
81 static int hf_mms_confirmedServiceResponse = -1;  /* ConfirmedServiceResponse */
82 static int hf_mms_modifierPosition = -1;          /* Unsigned32 */
83 static int hf_mms_serviceError = -1;              /* ServiceError */
84 static int hf_mms_informationReport = -1;         /* InformationReport */
85 static int hf_mms_unsolicitedStatus = -1;         /* UnsolicitedStatus */
86 static int hf_mms_eventNotification = -1;         /* EventNotification */
87 static int hf_mms_attach_To_Event_Condition = -1;  /* AttachToEventCondition */
88 static int hf_mms_attach_To_Semaphore = -1;       /* AttachToSemaphore */
89 static int hf_mms_status = -1;                    /* Status_Request */
90 static int hf_mms_getNameList = -1;               /* GetNameList_Request */
91 static int hf_mms_identify = -1;                  /* Identify_Request */
92 static int hf_mms_rename = -1;                    /* Rename_Request */
93 static int hf_mms_read = -1;                      /* Read_Request */
94 static int hf_mms_write = -1;                     /* Write_Request */
95 static int hf_mms_getVariableAccessAttributes = -1;  /* GetVariableAccessAttributes_Request */
96 static int hf_mms_defineNamedVariable = -1;       /* DefineNamedVariable_Request */
97 static int hf_mms_defineScatteredAccess = -1;     /* DefineScatteredAccess_Request */
98 static int hf_mms_getScatteredAccessAttributes = -1;  /* GetScatteredAccessAttributes_Request */
99 static int hf_mms_deleteVariableAccess = -1;      /* DeleteVariableAccess_Request */
100 static int hf_mms_defineNamedVariableList = -1;   /* DefineNamedVariableList_Request */
101 static int hf_mms_getNamedVariableListAttributes = -1;  /* GetNamedVariableListAttributes_Request */
102 static int hf_mms_deleteNamedVariableList = -1;   /* DeleteNamedVariableList_Request */
103 static int hf_mms_defineNamedType = -1;           /* DefineNamedType_Request */
104 static int hf_mms_getNamedTypeAttributes = -1;    /* GetNamedTypeAttributes_Request */
105 static int hf_mms_deleteNamedType = -1;           /* DeleteNamedType_Request */
106 static int hf_mms_input = -1;                     /* Input_Request */
107 static int hf_mms_output = -1;                    /* Output_Request */
108 static int hf_mms_takeControl = -1;               /* TakeControl_Request */
109 static int hf_mms_relinquishControl = -1;         /* RelinquishControl_Request */
110 static int hf_mms_defineSemaphore = -1;           /* DefineSemaphore_Request */
111 static int hf_mms_deleteSemaphore = -1;           /* DeleteSemaphore_Request */
112 static int hf_mms_reportSemaphoreStatus = -1;     /* ReportSemaphoreStatus_Request */
113 static int hf_mms_reportPoolSemaphoreStatus = -1;  /* ReportPoolSemaphoreStatus_Request */
114 static int hf_mms_reportSemaphoreEntryStatus = -1;  /* ReportSemaphoreEntryStatus_Request */
115 static int hf_mms_initiateDownloadSequence = -1;  /* InitiateDownloadSequence_Request */
116 static int hf_mms_downloadSegment = -1;           /* DownloadSegment_Request */
117 static int hf_mms_terminateDownloadSequence = -1;  /* TerminateDownloadSequence_Request */
118 static int hf_mms_initiateUploadSequence = -1;    /* InitiateUploadSequence_Request */
119 static int hf_mms_uploadSegment = -1;             /* UploadSegment_Request */
120 static int hf_mms_terminateUploadSequence = -1;   /* TerminateUploadSequence_Request */
121 static int hf_mms_requestDomainDownload = -1;     /* RequestDomainDownload_Request */
122 static int hf_mms_requestDomainUpload = -1;       /* RequestDomainUpload_Request */
123 static int hf_mms_loadDomainContent = -1;         /* LoadDomainContent_Request */
124 static int hf_mms_storeDomainContent = -1;        /* StoreDomainContent_Request */
125 static int hf_mms_deleteDomain = -1;              /* DeleteDomain_Request */
126 static int hf_mms_getDomainAttributes = -1;       /* GetDomainAttributes_Request */
127 static int hf_mms_createProgramInvocation = -1;   /* CreateProgramInvocation_Request */
128 static int hf_mms_deleteProgramInvocation = -1;   /* DeleteProgramInvocation_Request */
129 static int hf_mms_start = -1;                     /* Start_Request */
130 static int hf_mms_stop = -1;                      /* Stop_Request */
131 static int hf_mms_resume = -1;                    /* Resume_Request */
132 static int hf_mms_reset = -1;                     /* Reset_Request */
133 static int hf_mms_kill = -1;                      /* Kill_Request */
134 static int hf_mms_getProgramInvocationAttributes = -1;  /* GetProgramInvocationAttributes_Request */
135 static int hf_mms_obtainFile = -1;                /* ObtainFile_Request */
136 static int hf_mms_defineEventCondition = -1;      /* DefineEventCondition_Request */
137 static int hf_mms_deleteEventCondition = -1;      /* DeleteEventCondition_Request */
138 static int hf_mms_getEventConditionAttributes = -1;  /* GetEventConditionAttributes_Request */
139 static int hf_mms_reportEventConditionStatus = -1;  /* ReportEventConditionStatus_Request */
140 static int hf_mms_alterEventConditionMonitoring = -1;  /* AlterEventConditionMonitoring_Request */
141 static int hf_mms_triggerEvent = -1;              /* TriggerEvent_Request */
142 static int hf_mms_defineEventAction = -1;         /* DefineEventAction_Request */
143 static int hf_mms_deleteEventAction = -1;         /* DeleteEventAction_Request */
144 static int hf_mms_getEventActionAttributes = -1;  /* GetEventActionAttributes_Request */
145 static int hf_mms_reportEventActionStatus = -1;   /* ReportEventActionStatus_Request */
146 static int hf_mms_defineEventEnrollment = -1;     /* DefineEventEnrollment_Request */
147 static int hf_mms_deleteEventEnrollment = -1;     /* DeleteEventEnrollment_Request */
148 static int hf_mms_alterEventEnrollment = -1;      /* AlterEventEnrollment_Request */
149 static int hf_mms_reportEventEnrollmentStatus = -1;  /* ReportEventEnrollmentStatus_Request */
150 static int hf_mms_getEventEnrollmentAttributes = -1;  /* GetEventEnrollmentAttributes_Request */
151 static int hf_mms_acknowledgeEventNotification = -1;  /* AcknowledgeEventNotification_Request */
152 static int hf_mms_getAlarmSummary = -1;           /* GetAlarmSummary_Request */
153 static int hf_mms_getAlarmEnrollmentSummary = -1;  /* GetAlarmEnrollmentSummary_Request */
154 static int hf_mms_readJournal = -1;               /* ReadJournal_Request */
155 static int hf_mms_writeJournal = -1;              /* WriteJournal_Request */
156 static int hf_mms_initializeJournal = -1;         /* InitializeJournal_Request */
157 static int hf_mms_reportJournalStatus = -1;       /* ReportJournalStatus_Request */
158 static int hf_mms_createJournal = -1;             /* CreateJournal_Request */
159 static int hf_mms_deleteJournal = -1;             /* DeleteJournal_Request */
160 static int hf_mms_getCapabilityList = -1;         /* GetCapabilityList_Request */
161 static int hf_mms_fileOpen = -1;                  /* FileOpen_Request */
162 static int hf_mms_fileRead = -1;                  /* FileRead_Request */
163 static int hf_mms_fileClose = -1;                 /* FileClose_Request */
164 static int hf_mms_fileRename = -1;                /* FileRename_Request */
165 static int hf_mms_fileDelete = -1;                /* FileDelete_Request */
166 static int hf_mms_fileDirectory = -1;             /* FileDirectory_Request */
167 static int hf_mms_foo = -1;                       /* INTEGER */
168 static int hf_mms_status_01 = -1;                 /* Status_Response */
169 static int hf_mms_getNameList_01 = -1;            /* GetNameList_Response */
170 static int hf_mms_identify_01 = -1;               /* Identify_Response */
171 static int hf_mms_rename_01 = -1;                 /* Rename_Response */
172 static int hf_mms_read_01 = -1;                   /* Read_Response */
173 static int hf_mms_write_01 = -1;                  /* Write_Response */
174 static int hf_mms_getVariableAccessAttributes_01 = -1;  /* GetVariableAccessAttributes_Response */
175 static int hf_mms_defineNamedVariable_01 = -1;    /* DefineNamedVariable_Response */
176 static int hf_mms_defineScatteredAccess_01 = -1;  /* DefineScatteredAccess_Response */
177 static int hf_mms_getScatteredAccessAttributes_01 = -1;  /* GetScatteredAccessAttributes_Response */
178 static int hf_mms_deleteVariableAccess_01 = -1;   /* DeleteVariableAccess_Response */
179 static int hf_mms_defineNamedVariableList_01 = -1;  /* DefineNamedVariableList_Response */
180 static int hf_mms_getNamedVariableListAttributes_01 = -1;  /* GetNamedVariableListAttributes_Response */
181 static int hf_mms_deleteNamedVariableList_01 = -1;  /* DeleteNamedVariableList_Response */
182 static int hf_mms_defineNamedType_01 = -1;        /* DefineNamedType_Response */
183 static int hf_mms_getNamedTypeAttributes_01 = -1;  /* GetNamedTypeAttributes_Response */
184 static int hf_mms_deleteNamedType_01 = -1;        /* DeleteNamedType_Response */
185 static int hf_mms_input_01 = -1;                  /* Input_Response */
186 static int hf_mms_output_01 = -1;                 /* Output_Response */
187 static int hf_mms_takeControl_01 = -1;            /* TakeControl_Response */
188 static int hf_mms_relinquishControl_01 = -1;      /* RelinquishControl_Response */
189 static int hf_mms_defineSemaphore_01 = -1;        /* DefineSemaphore_Response */
190 static int hf_mms_deleteSemaphore_01 = -1;        /* DeleteSemaphore_Response */
191 static int hf_mms_reportSemaphoreStatus_01 = -1;  /* ReportSemaphoreStatus_Response */
192 static int hf_mms_reportPoolSemaphoreStatus_01 = -1;  /* ReportPoolSemaphoreStatus_Response */
193 static int hf_mms_reportSemaphoreEntryStatus_01 = -1;  /* ReportSemaphoreEntryStatus_Response */
194 static int hf_mms_initiateDownloadSequence_01 = -1;  /* InitiateDownloadSequence_Response */
195 static int hf_mms_downloadSegment_01 = -1;        /* DownloadSegment_Response */
196 static int hf_mms_terminateDownloadSequence_01 = -1;  /* TerminateDownloadSequence_Response */
197 static int hf_mms_initiateUploadSequence_01 = -1;  /* InitiateUploadSequence_Response */
198 static int hf_mms_uploadSegment_01 = -1;          /* UploadSegment_Response */
199 static int hf_mms_terminateUploadSequence_01 = -1;  /* TerminateUploadSequence_Response */
200 static int hf_mms_requestDomainDownLoad = -1;     /* RequestDomainDownload_Response */
201 static int hf_mms_requestDomainUpload_01 = -1;    /* RequestDomainUpload_Response */
202 static int hf_mms_loadDomainContent_01 = -1;      /* LoadDomainContent_Response */
203 static int hf_mms_storeDomainContent_01 = -1;     /* StoreDomainContent_Response */
204 static int hf_mms_deleteDomain_01 = -1;           /* DeleteDomain_Response */
205 static int hf_mms_getDomainAttributes_01 = -1;    /* GetDomainAttributes_Response */
206 static int hf_mms_createProgramInvocation_01 = -1;  /* CreateProgramInvocation_Response */
207 static int hf_mms_deleteProgramInvocation_01 = -1;  /* DeleteProgramInvocation_Response */
208 static int hf_mms_start_01 = -1;                  /* Start_Response */
209 static int hf_mms_stop_01 = -1;                   /* Stop_Response */
210 static int hf_mms_resume_01 = -1;                 /* Resume_Response */
211 static int hf_mms_reset_01 = -1;                  /* Reset_Response */
212 static int hf_mms_kill_01 = -1;                   /* Kill_Response */
213 static int hf_mms_getProgramInvocationAttributes_01 = -1;  /* GetProgramInvocationAttributes_Response */
214 static int hf_mms_obtainFile_01 = -1;             /* ObtainFile_Response */
215 static int hf_mms_fileOpen_01 = -1;               /* FileOpen_Response */
216 static int hf_mms_defineEventCondition_01 = -1;   /* DefineEventCondition_Response */
217 static int hf_mms_deleteEventCondition_01 = -1;   /* DeleteEventCondition_Response */
218 static int hf_mms_getEventConditionAttributes_01 = -1;  /* GetEventConditionAttributes_Response */
219 static int hf_mms_reportEventConditionStatus_01 = -1;  /* ReportEventConditionStatus_Response */
220 static int hf_mms_alterEventConditionMonitoring_01 = -1;  /* AlterEventConditionMonitoring_Response */
221 static int hf_mms_triggerEvent_01 = -1;           /* TriggerEvent_Response */
222 static int hf_mms_defineEventAction_01 = -1;      /* DefineEventAction_Response */
223 static int hf_mms_deleteEventAction_01 = -1;      /* DeleteEventAction_Response */
224 static int hf_mms_getEventActionAttributes_01 = -1;  /* GetEventActionAttributes_Response */
225 static int hf_mms_reportActionStatus = -1;        /* ReportEventActionStatus_Response */
226 static int hf_mms_defineEventEnrollment_01 = -1;  /* DefineEventEnrollment_Response */
227 static int hf_mms_deleteEventEnrollment_01 = -1;  /* DeleteEventEnrollment_Response */
228 static int hf_mms_alterEventEnrollment_01 = -1;   /* AlterEventEnrollment_Response */
229 static int hf_mms_reportEventEnrollmentStatus_01 = -1;  /* ReportEventEnrollmentStatus_Response */
230 static int hf_mms_getEventEnrollmentAttributes_01 = -1;  /* GetEventEnrollmentAttributes_Response */
231 static int hf_mms_acknowledgeEventNotification_01 = -1;  /* AcknowledgeEventNotification_Response */
232 static int hf_mms_getAlarmSummary_01 = -1;        /* GetAlarmSummary_Response */
233 static int hf_mms_getAlarmEnrollmentSummary_01 = -1;  /* GetAlarmEnrollmentSummary_Response */
234 static int hf_mms_readJournal_01 = -1;            /* ReadJournal_Response */
235 static int hf_mms_writeJournal_01 = -1;           /* WriteJournal_Response */
236 static int hf_mms_initializeJournal_01 = -1;      /* InitializeJournal_Response */
237 static int hf_mms_reportJournalStatus_01 = -1;    /* ReportJournalStatus_Response */
238 static int hf_mms_createJournal_01 = -1;          /* CreateJournal_Response */
239 static int hf_mms_deleteJournal_01 = -1;          /* DeleteJournal_Response */
240 static int hf_mms_getCapabilityList_01 = -1;      /* GetCapabilityList_Response */
241 static int hf_mms_fileRead_01 = -1;               /* FileRead_Response */
242 static int hf_mms_fileClose_01 = -1;              /* FileClose_Response */
243 static int hf_mms_fileRename_01 = -1;             /* FileRename_Response */
244 static int hf_mms_fileDelete_01 = -1;             /* FileDelete_Response */
245 static int hf_mms_fileDirectory_01 = -1;          /* FileDirectory_Response */
246 static int hf_mms_FileName_item = -1;             /* GraphicString */
247 static int hf_mms_vmd_specific = -1;              /* Identifier */
248 static int hf_mms_domain_specific = -1;           /* T_domain_specific */
249 static int hf_mms_domainId = -1;                  /* Identifier */
250 static int hf_mms_itemId = -1;                    /* Identifier */
251 static int hf_mms_aa_specific = -1;               /* Identifier */
252 static int hf_mms_ap_title = -1;                  /* T_ap_title */
253 static int hf_mms_ap_invocation_id = -1;          /* T_ap_invocation_id */
254 static int hf_mms_ae_qualifier = -1;              /* T_ae_qualifier */
255 static int hf_mms_ae_invocation_id = -1;          /* T_ae_invocation_id */
256 static int hf_mms_localDetailCalling = -1;        /* Integer32 */
257 static int hf_mms_proposedMaxServOutstandingCalling = -1;  /* Integer16 */
258 static int hf_mms_proposedMaxServOutstandingCalled = -1;  /* Integer16 */
259 static int hf_mms_proposedDataStructureNestingLevel = -1;  /* Integer8 */
260 static int hf_mms_mmsInitRequestDetail = -1;      /* InitRequestDetail */
261 static int hf_mms_proposedVersionNumber = -1;     /* Integer16 */
262 static int hf_mms_proposedParameterCBB = -1;      /* ParameterSupportOptions */
263 static int hf_mms_servicesSupportedCalling = -1;  /* ServiceSupportOptions */
264 static int hf_mms_localDetailCalled = -1;         /* Integer32 */
265 static int hf_mms_negociatedMaxServOutstandingCalling = -1;  /* Integer16 */
266 static int hf_mms_negociatedMaxServOutstandingCalled = -1;  /* Integer16 */
267 static int hf_mms_negociatedDataStructureNestingLevel = -1;  /* Integer8 */
268 static int hf_mms_mmsInitResponseDetail = -1;     /* InitResponseDetail */
269 static int hf_mms_negociatedVersionNumber = -1;   /* Integer16 */
270 static int hf_mms_negociatedParameterCBB = -1;    /* ParameterSupportOptions */
271 static int hf_mms_servicesSupportedCalled = -1;   /* ServiceSupportOptions */
272 static int hf_mms_originalInvokeID = -1;          /* Unsigned32 */
273 static int hf_mms_errorClass = -1;                /* T_errorClass */
274 static int hf_mms_vmd_state = -1;                 /* T_vmd_state */
275 static int hf_mms_application_reference = -1;     /* T_application_reference */
276 static int hf_mms_definition = -1;                /* T_definition */
277 static int hf_mms_resource = -1;                  /* T_resource */
278 static int hf_mms_service = -1;                   /* T_service */
279 static int hf_mms_service_preempt = -1;           /* T_service_preempt */
280 static int hf_mms_time_resolution = -1;           /* T_time_resolution */
281 static int hf_mms_access = -1;                    /* T_access */
282 static int hf_mms_initiate = -1;                  /* T_initiate */
283 static int hf_mms_conclude = -1;                  /* T_conclude */
284 static int hf_mms_cancel = -1;                    /* T_cancel */
285 static int hf_mms_file = -1;                      /* T_file */
286 static int hf_mms_others = -1;                    /* INTEGER */
287 static int hf_mms_additionalCode = -1;            /* INTEGER */
288 static int hf_mms_additionalDescription = -1;     /* VisibleString */
289 static int hf_mms_serviceSpecificInformation = -1;  /* T_serviceSpecificInformation */
290 static int hf_mms_obtainFile_02 = -1;             /* ObtainFile_Error */
291 static int hf_mms_start_02 = -1;                  /* Start_Error */
292 static int hf_mms_stop_02 = -1;                   /* Stop_Error */
293 static int hf_mms_resume_02 = -1;                 /* Resume_Error */
294 static int hf_mms_reset_02 = -1;                  /* Reset_Error */
295 static int hf_mms_deleteVariableAccess_02 = -1;   /* DeleteVariableAccess_Error */
296 static int hf_mms_deleteNamedVariableList_02 = -1;  /* DeleteNamedVariableList_Error */
297 static int hf_mms_deleteNamedType_02 = -1;        /* DeleteNamedType_Error */
298 static int hf_mms_defineEventEnrollment_Error = -1;  /* DefineEventEnrollment_Error */
299 static int hf_mms_fileRename_02 = -1;             /* FileRename_Error */
300 static int hf_mms_rejectReason = -1;              /* T_rejectReason */
301 static int hf_mms_confirmed_requestPDU = -1;      /* T_confirmed_requestPDU */
302 static int hf_mms_confirmed_responsePDU = -1;     /* T_confirmed_responsePDU */
303 static int hf_mms_confirmed_errorPDU = -1;        /* T_confirmed_errorPDU */
304 static int hf_mms_unconfirmedPDU = -1;            /* T_unconfirmedPDU */
305 static int hf_mms_pdu_error = -1;                 /* T_pdu_error */
306 static int hf_mms_cancel_requestPDU = -1;         /* T_cancel_requestPDU */
307 static int hf_mms_cancel_responsePDU = -1;        /* T_cancel_responsePDU */
308 static int hf_mms_cancel_errorPDU = -1;           /* T_cancel_errorPDU */
309 static int hf_mms_conclude_requestPDU = -1;       /* T_conclude_requestPDU */
310 static int hf_mms_conclude_responsePDU = -1;      /* T_conclude_responsePDU */
311 static int hf_mms_conclude_errorPDU = -1;         /* T_conclude_errorPDU */
312 static int hf_mms_vmdLogicalStatus = -1;          /* T_vmdLogicalStatus */
313 static int hf_mms_vmdPhysicalStatus = -1;         /* T_vmdPhysicalStatus */
314 static int hf_mms_localDetail = -1;               /* BIT_STRING_SIZE_0_128 */
315 static int hf_mms_extendedObjectClass = -1;       /* T_extendedObjectClass */
316 static int hf_mms_objectClass = -1;               /* T_objectClass */
317 static int hf_mms_objectScope = -1;               /* T_objectScope */
318 static int hf_mms_vmdSpecific = -1;               /* NULL */
319 static int hf_mms_domainSpecific = -1;            /* Identifier */
320 static int hf_mms_aaSpecific = -1;                /* NULL */
321 static int hf_mms_continueAfter = -1;             /* Identifier */
322 static int hf_mms_listOfIdentifier = -1;          /* SEQUENCE_OF_Identifier */
323 static int hf_mms_listOfIdentifier_item = -1;     /* Identifier */
324 static int hf_mms_moreFollows = -1;               /* BOOLEAN */
325 static int hf_mms_vendorName = -1;                /* VisibleString */
326 static int hf_mms_modelName = -1;                 /* VisibleString */
327 static int hf_mms_revision = -1;                  /* VisibleString */
328 static int hf_mms_listOfAbstractSyntaxes = -1;    /* T_listOfAbstractSyntaxes */
329 static int hf_mms_listOfAbstractSyntaxes_item = -1;  /* OBJECT_IDENTIFIER */
330 static int hf_mms_extendedObjectClass_01 = -1;    /* T_extendedObjectClass_01 */
331 static int hf_mms_objectClass_01 = -1;            /* T_objectClass_01 */
332 static int hf_mms_currentName = -1;               /* ObjectName */
333 static int hf_mms_newIdentifier = -1;             /* Identifier */
334 static int hf_mms_continueAfter_01 = -1;          /* VisibleString */
335 static int hf_mms_listOfCapabilities = -1;        /* T_listOfCapabilities */
336 static int hf_mms_listOfCapabilities_item = -1;   /* VisibleString */
337 static int hf_mms_domainName = -1;                /* Identifier */
338 static int hf_mms_listOfCapabilities_01 = -1;     /* T_listOfCapabilities_01 */
339 static int hf_mms_sharable = -1;                  /* BOOLEAN */
340 static int hf_mms_loadData = -1;                  /* T_loadData */
341 static int hf_mms_non_coded = -1;                 /* OCTET_STRING */
342 static int hf_mms_coded = -1;                     /* EXTERNALt */
343 static int hf_mms_discard = -1;                   /* ServiceError */
344 static int hf_mms_ulsmID = -1;                    /* Integer32 */
345 static int hf_mms_listOfCapabilities_02 = -1;     /* T_listOfCapabilities_02 */
346 static int hf_mms_loadData_01 = -1;               /* T_loadData_01 */
347 static int hf_mms_listOfCapabilities_03 = -1;     /* T_listOfCapabilities_03 */
348 static int hf_mms_fileName = -1;                  /* FileName */
349 static int hf_mms_listOfCapabilities_04 = -1;     /* T_listOfCapabilities_04 */
350 static int hf_mms_thirdParty = -1;                /* ApplicationReference */
351 static int hf_mms_filenName = -1;                 /* FileName */
352 static int hf_mms_listOfCapabilities_05 = -1;     /* T_listOfCapabilities_05 */
353 static int hf_mms_state = -1;                     /* DomainState */
354 static int hf_mms_mmsDeletable = -1;              /* BOOLEAN */
355 static int hf_mms_listOfProgramInvocations = -1;  /* SEQUENCE_OF_Identifier */
356 static int hf_mms_listOfProgramInvocations_item = -1;  /* Identifier */
357 static int hf_mms_uploadInProgress = -1;          /* Integer8 */
358 static int hf_mms_programInvocationName = -1;     /* Identifier */
359 static int hf_mms_listOfDomainName = -1;          /* SEQUENCE_OF_Identifier */
360 static int hf_mms_listOfDomainName_item = -1;     /* Identifier */
361 static int hf_mms_reusable = -1;                  /* BOOLEAN */
362 static int hf_mms_monitorType = -1;               /* BOOLEAN */
363 static int hf_mms_executionArgument = -1;         /* T_executionArgument */
364 static int hf_mms_simpleString = -1;              /* VisibleString */
365 static int hf_mms_encodedString = -1;             /* EXTERNALt */
366 static int hf_mms_executionArgument_01 = -1;      /* T_executionArgument_01 */
367 static int hf_mms_state_01 = -1;                  /* ProgramInvocationState */
368 static int hf_mms_listOfDomainNames = -1;         /* SEQUENCE_OF_Identifier */
369 static int hf_mms_listOfDomainNames_item = -1;    /* Identifier */
370 static int hf_mms_monitor = -1;                   /* BOOLEAN */
371 static int hf_mms_startArgument = -1;             /* VisibleString */
372 static int hf_mms_executionArgument_02 = -1;      /* T_executionArgument_02 */
373 static int hf_mms_typeName = -1;                  /* ObjectName */
374 static int hf_mms_array = -1;                     /* T_array */
375 static int hf_mms_packed = -1;                    /* BOOLEAN */
376 static int hf_mms_numberOfElements = -1;          /* Unsigned32 */
377 static int hf_mms_elementType = -1;               /* TypeSpecification */
378 static int hf_mms_structure = -1;                 /* T_structure */
379 static int hf_mms_components = -1;                /* T_components */
380 static int hf_mms_components_item = -1;           /* T_components_item */
381 static int hf_mms_componentName = -1;             /* Identifier */
382 static int hf_mms_componentType = -1;             /* TypeSpecification */
383 static int hf_mms_boolean = -1;                   /* NULL */
384 static int hf_mms_bit_string = -1;                /* Integer32 */
385 static int hf_mms_integer = -1;                   /* Unsigned8 */
386 static int hf_mms_unsigned = -1;                  /* Unsigned8 */
387 static int hf_mms_octet_string = -1;              /* Integer32 */
388 static int hf_mms_visible_string = -1;            /* Integer32 */
389 static int hf_mms_generalized_time = -1;          /* NULL */
390 static int hf_mms_binary_time = -1;               /* BOOLEAN */
391 static int hf_mms_bcd = -1;                       /* Unsigned8 */
392 static int hf_mms_objId = -1;                     /* NULL */
393 static int hf_mms_AlternateAccess_item = -1;      /* AlternateAccess_item */
394 static int hf_mms_unnamed = -1;                   /* AlternateAccessSelection */
395 static int hf_mms_named = -1;                     /* T_named */
396 static int hf_mms_accesst = -1;                   /* AlternateAccessSelection */
397 static int hf_mms_selectAlternateAccess = -1;     /* T_selectAlternateAccess */
398 static int hf_mms_accessSelection = -1;           /* T_accessSelection */
399 static int hf_mms_component = -1;                 /* Identifier */
400 static int hf_mms_index = -1;                     /* Unsigned32 */
401 static int hf_mms_indexRange = -1;                /* T_indexRange */
402 static int hf_mms_lowIndex = -1;                  /* Unsigned32 */
403 static int hf_mms_allElements = -1;               /* NULL */
404 static int hf_mms_alternateAccess = -1;           /* AlternateAccess */
405 static int hf_mms_selectAccess = -1;              /* T_selectAccess */
406 static int hf_mms_indexRange_01 = -1;             /* T_indexRange_01 */
407 static int hf_mms_nmberOfElements = -1;           /* Unsigned32 */
408 static int hf_mms_specificationWithResult = -1;   /* BOOLEAN */
409 static int hf_mms_variableAccessSpecificatn = -1;  /* VariableAccessSpecification */
410 static int hf_mms_listOfAccessResult = -1;        /* SEQUENCE_OF_AccessResult */
411 static int hf_mms_listOfAccessResult_item = -1;   /* AccessResult */
412 static int hf_mms_listOfData = -1;                /* SEQUENCE_OF_Data */
413 static int hf_mms_listOfData_item = -1;           /* Data */
414 static int hf_mms_Write_Response_item = -1;       /* Write_Response_item */
415 static int hf_mms_failure = -1;                   /* DataAccessError */
416 static int hf_mms_success = -1;                   /* NULL */
417 static int hf_mms_variableAccessSpecification = -1;  /* VariableAccessSpecification */
418 static int hf_mms_name = -1;                      /* ObjectName */
419 static int hf_mms_address = -1;                   /* Address */
420 static int hf_mms_typeSpecification = -1;         /* TypeSpecification */
421 static int hf_mms_variableName = -1;              /* ObjectName */
422 static int hf_mms_scatteredAccessName = -1;       /* ObjectName */
423 static int hf_mms_scatteredAccessDescription = -1;  /* ScatteredAccessDescription */
424 static int hf_mms_scopeOfDelete = -1;             /* T_scopeOfDelete */
425 static int hf_mms_listOfName = -1;                /* SEQUENCE_OF_ObjectName */
426 static int hf_mms_listOfName_item = -1;           /* ObjectName */
427 static int hf_mms_numberMatched = -1;             /* Unsigned32 */
428 static int hf_mms_numberDeleted = -1;             /* Unsigned32 */
429 static int hf_mms_variableListName = -1;          /* ObjectName */
430 static int hf_mms_listOfVariable = -1;            /* T_listOfVariable */
431 static int hf_mms_listOfVariable_item = -1;       /* T_listOfVariable_item */
432 static int hf_mms_variableSpecification = -1;     /* VariableSpecification */
433 static int hf_mms_listOfVariable_01 = -1;         /* T_listOfVariable_01 */
434 static int hf_mms_listOfVariable_item_01 = -1;    /* T_listOfVariable_item_01 */
435 static int hf_mms_scopeOfDelete_01 = -1;          /* T_scopeOfDelete_01 */
436 static int hf_mms_listOfVariableListName = -1;    /* SEQUENCE_OF_ObjectName */
437 static int hf_mms_listOfVariableListName_item = -1;  /* ObjectName */
438 static int hf_mms_scopeOfDelete_02 = -1;          /* T_scopeOfDelete_02 */
439 static int hf_mms_listOfTypeName = -1;            /* SEQUENCE_OF_ObjectName */
440 static int hf_mms_listOfTypeName_item = -1;       /* ObjectName */
441 static int hf_mms_success_01 = -1;                /* Data */
442 static int hf_mms_array_01 = -1;                  /* SEQUENCE_OF_Data */
443 static int hf_mms_array_item = -1;                /* Data */
444 static int hf_mms_structure_01 = -1;              /* SEQUENCE_OF_Data */
445 static int hf_mms_structure_item = -1;            /* Data */
446 static int hf_mms_boolean_01 = -1;                /* BOOLEAN */
447 static int hf_mms_bit_string_01 = -1;             /* BIT_STRING */
448 static int hf_mms_integer_01 = -1;                /* INTEGER */
449 static int hf_mms_unsigned_01 = -1;               /* INTEGER */
450 static int hf_mms_floating_point = -1;            /* FloatingPoint */
451 static int hf_mms_octet_string_01 = -1;           /* OCTET_STRING */
452 static int hf_mms_visible_string_01 = -1;         /* VisibleString */
453 static int hf_mms_binary_time_01 = -1;            /* TimeOfDay */
454 static int hf_mms_bcd_01 = -1;                    /* INTEGER */
455 static int hf_mms_booleanArray = -1;              /* BIT_STRING */
456 static int hf_mms_objId_01 = -1;                  /* OBJECT_IDENTIFIER */
457 static int hf_mms_mMSString = -1;                 /* MMSString */
458 static int hf_mms_utc_time = -1;                  /* UtcTime */
459 static int hf_mms_listOfVariable_02 = -1;         /* T_listOfVariable_02 */
460 static int hf_mms_listOfVariable_item_02 = -1;    /* T_listOfVariable_item_02 */
461 static int hf_mms_ScatteredAccessDescription_item = -1;  /* ScatteredAccessDescription_item */
462 static int hf_mms_variableDescription = -1;       /* T_variableDescription */
463 static int hf_mms_invalidated = -1;               /* NULL */
464 static int hf_mms_numericAddress = -1;            /* Unsigned32 */
465 static int hf_mms_symbolicAddress = -1;           /* VisibleString */
466 static int hf_mms_unconstrainedAddress = -1;      /* OCTET_STRING */
467 static int hf_mms_semaphoreName = -1;             /* ObjectName */
468 static int hf_mms_namedToken = -1;                /* Identifier */
469 static int hf_mms_priority = -1;                  /* Priority */
470 static int hf_mms_acceptableDelay = -1;           /* Unsigned32 */
471 static int hf_mms_controlTimeOut = -1;            /* Unsigned32 */
472 static int hf_mms_abortOnTimeOut = -1;            /* BOOLEAN */
473 static int hf_mms_relinquishIfConnectionLost = -1;  /* BOOLEAN */
474 static int hf_mms_applicationToPreempt = -1;      /* ApplicationReference */
475 static int hf_mms_noResult = -1;                  /* NULL */
476 static int hf_mms_numbersOfTokens = -1;           /* Unsigned16 */
477 static int hf_mms_class = -1;                     /* T_class */
478 static int hf_mms_numberOfTokens = -1;            /* Unsigned16 */
479 static int hf_mms_numberOfOwnedTokens = -1;       /* Unsigned16 */
480 static int hf_mms_numberOfHungTokens = -1;        /* Unsigned16 */
481 static int hf_mms_nameToStartAfter = -1;          /* Identifier */
482 static int hf_mms_listOfNamedTokens = -1;         /* T_listOfNamedTokens */
483 static int hf_mms_listOfNamedTokens_item = -1;    /* T_listOfNamedTokens_item */
484 static int hf_mms_freeNamedToken = -1;            /* Identifier */
485 static int hf_mms_ownedNamedToken = -1;           /* Identifier */
486 static int hf_mms_hungNamedToken = -1;            /* Identifier */
487 static int hf_mms_state_02 = -1;                  /* T_state */
488 static int hf_mms_entryIdToStartAfter = -1;       /* OCTET_STRING */
489 static int hf_mms_listOfSemaphoreEntry = -1;      /* SEQUENCE_OF_SemaphoreEntry */
490 static int hf_mms_listOfSemaphoreEntry_item = -1;  /* SemaphoreEntry */
491 static int hf_mms_entryId = -1;                   /* OCTET_STRING */
492 static int hf_mms_entryClass = -1;                /* T_entryClass */
493 static int hf_mms_applicationReference = -1;      /* ApplicationReference */
494 static int hf_mms_remainingTimeOut = -1;          /* Unsigned32 */
495 static int hf_mms_operatorStationName = -1;       /* Identifier */
496 static int hf_mms_echo = -1;                      /* BOOLEAN */
497 static int hf_mms_listOfPromptData = -1;          /* T_listOfPromptData */
498 static int hf_mms_listOfPromptData_item = -1;     /* VisibleString */
499 static int hf_mms_inputTimeOut = -1;              /* Unsigned32 */
500 static int hf_mms_listOfOutputData = -1;          /* T_listOfOutputData */
501 static int hf_mms_listOfOutputData_item = -1;     /* VisibleString */
502 static int hf_mms_eventConditionName = -1;        /* ObjectName */
503 static int hf_mms_class_01 = -1;                  /* EC_Class */
504 static int hf_mms_prio_rity = -1;                 /* Priority */
505 static int hf_mms_severity = -1;                  /* Unsigned8 */
506 static int hf_mms_alarmSummaryReports = -1;       /* BOOLEAN */
507 static int hf_mms_monitoredVariable = -1;         /* VariableSpecification */
508 static int hf_mms_evaluationInterval = -1;        /* Unsigned32 */
509 static int hf_mms_specific = -1;                  /* SEQUENCE_OF_ObjectName */
510 static int hf_mms_specific_item = -1;             /* ObjectName */
511 static int hf_mms_aa_specific_01 = -1;            /* NULL */
512 static int hf_mms_domain = -1;                    /* Identifier */
513 static int hf_mms_vmd = -1;                       /* NULL */
514 static int hf_mms_monitoredVariable_01 = -1;      /* T_monitoredVariable */
515 static int hf_mms_variableReference = -1;         /* VariableSpecification */
516 static int hf_mms_undefined = -1;                 /* NULL */
517 static int hf_mms_currentState = -1;              /* EC_State */
518 static int hf_mms_numberOfEventEnrollments = -1;  /* Unsigned32 */
519 static int hf_mms_enabled = -1;                   /* BOOLEAN */
520 static int hf_mms_timeOfLastTransitionToActive = -1;  /* EventTime */
521 static int hf_mms_timeOfLastTransitionToIdle = -1;  /* EventTime */
522 static int hf_mms_eventActionName = -1;           /* ObjectName */
523 static int hf_mms_eventEnrollmentName = -1;       /* ObjectName */
524 static int hf_mms_eventConditionTransition = -1;  /* Transitions */
525 static int hf_mms_alarmAcknowledgementRule = -1;  /* AlarmAckRule */
526 static int hf_mms_clientApplication = -1;         /* ApplicationReference */
527 static int hf_mms_ec = -1;                        /* ObjectName */
528 static int hf_mms_ea = -1;                        /* ObjectName */
529 static int hf_mms_scopeOfRequest = -1;            /* T_scopeOfRequest */
530 static int hf_mms_eventEnrollmentNames = -1;      /* SEQUENCE_OF_ObjectName */
531 static int hf_mms_eventEnrollmentNames_item = -1;  /* ObjectName */
532 static int hf_mms_continueAfter_02 = -1;          /* ObjectName */
533 static int hf_mms_eventConditionName_01 = -1;     /* T_eventConditionName */
534 static int hf_mms_eventCondition = -1;            /* ObjectName */
535 static int hf_mms_eventActionName_01 = -1;        /* T_eventActionName */
536 static int hf_mms_eventAction = -1;               /* ObjectName */
537 static int hf_mms_enrollmentClass = -1;           /* EE_Class */
538 static int hf_mms_duration = -1;                  /* EE_Duration */
539 static int hf_mms_remainingAcceptableDelay = -1;  /* Unsigned32 */
540 static int hf_mms_listOfEventEnrollment = -1;     /* SEQUENCE_OF_EventEnrollment */
541 static int hf_mms_listOfEventEnrollment_item = -1;  /* EventEnrollment */
542 static int hf_mms_eventConditionTransitions = -1;  /* Transitions */
543 static int hf_mms_notificationLost = -1;          /* BOOLEAN */
544 static int hf_mms_alarmAcknowledgmentRule = -1;   /* AlarmAckRule */
545 static int hf_mms_currentState_01 = -1;           /* EE_State */
546 static int hf_mms_currentState_02 = -1;           /* T_currentState */
547 static int hf_mms_state_03 = -1;                  /* EE_State */
548 static int hf_mms_transitionTime = -1;            /* EventTime */
549 static int hf_mms_acknowledgedState = -1;         /* EC_State */
550 static int hf_mms_timeOfAcknowledgedTransition = -1;  /* EventTime */
551 static int hf_mms_enrollmentsOnly = -1;           /* BOOLEAN */
552 static int hf_mms_activeAlarmsOnly = -1;          /* BOOLEAN */
553 static int hf_mms_acknowledgmentFilter = -1;      /* T_acknowledgmentFilter */
554 static int hf_mms_severityFilter = -1;            /* T_severityFilter */
555 static int hf_mms_mostSevere = -1;                /* Unsigned8 */
556 static int hf_mms_leastSevere = -1;               /* Unsigned8 */
557 static int hf_mms_listOfAlarmSummary = -1;        /* SEQUENCE_OF_AlarmSummary */
558 static int hf_mms_listOfAlarmSummary_item = -1;   /* AlarmSummary */
559 static int hf_mms_unacknowledgedState = -1;       /* T_unacknowledgedState */
560 static int hf_mms_acknowledgmentFilter_01 = -1;   /* T_acknowledgmentFilter_01 */
561 static int hf_mms_severityFilter_01 = -1;         /* T_severityFilter_01 */
562 static int hf_mms_listOfAlarmEnrollmentSummary = -1;  /* SEQUENCE_OF_AlarmEnrollmentSummary */
563 static int hf_mms_listOfAlarmEnrollmentSummary_item = -1;  /* AlarmEnrollmentSummary */
564 static int hf_mms_enrollementState = -1;          /* EE_State */
565 static int hf_mms_timeActiveAcknowledged = -1;    /* EventTime */
566 static int hf_mms_timeIdleAcknowledged = -1;      /* EventTime */
567 static int hf_mms_eventConditionName_02 = -1;     /* T_eventConditionName_01 */
568 static int hf_mms_actionResult = -1;              /* T_actionResult */
569 static int hf_mms_eventActioName = -1;            /* ObjectName */
570 static int hf_mms_eventActionResult = -1;         /* T_eventActionResult */
571 static int hf_mms_success_02 = -1;                /* ConfirmedServiceResponse */
572 static int hf_mms_failure_01 = -1;                /* ServiceError */
573 static int hf_mms_causingTransitions = -1;        /* Transitions */
574 static int hf_mms_timeOfDayT = -1;                /* TimeOfDay */
575 static int hf_mms_timeSequenceIdentifier = -1;    /* Unsigned32 */
576 static int hf_mms_journalName = -1;               /* ObjectName */
577 static int hf_mms_rangeStartSpecification = -1;   /* T_rangeStartSpecification */
578 static int hf_mms_startingTime = -1;              /* TimeOfDay */
579 static int hf_mms_startingEntry = -1;             /* OCTET_STRING */
580 static int hf_mms_rangeStopSpecification = -1;    /* T_rangeStopSpecification */
581 static int hf_mms_endingTime = -1;                /* TimeOfDay */
582 static int hf_mms_numberOfEntries = -1;           /* Integer32 */
583 static int hf_mms_listOfVariables = -1;           /* T_listOfVariables */
584 static int hf_mms_listOfVariables_item = -1;      /* VisibleString */
585 static int hf_mms_entryToStartAfter = -1;         /* T_entryToStartAfter */
586 static int hf_mms_timeSpecification = -1;         /* TimeOfDay */
587 static int hf_mms_entrySpecification = -1;        /* OCTET_STRING */
588 static int hf_mms_listOfJournalEntry = -1;        /* SEQUENCE_OF_JournalEntry */
589 static int hf_mms_listOfJournalEntry_item = -1;   /* JournalEntry */
590 static int hf_mms_entryIdentifier = -1;           /* OCTET_STRING */
591 static int hf_mms_originatingApplication = -1;    /* ApplicationReference */
592 static int hf_mms_entryContent = -1;              /* EntryContent */
593 static int hf_mms_listOfJournalEntry_01 = -1;     /* SEQUENCE_OF_EntryContent */
594 static int hf_mms_listOfJournalEntry_item_01 = -1;  /* EntryContent */
595 static int hf_mms_limitSpecification = -1;        /* T_limitSpecification */
596 static int hf_mms_limitingTime = -1;              /* TimeOfDay */
597 static int hf_mms_limitingEntry = -1;             /* OCTET_STRING */
598 static int hf_mms_currentEntries = -1;            /* Unsigned32 */
599 static int hf_mms_occurenceTime = -1;             /* TimeOfDay */
600 static int hf_mms_additionalDetail = -1;          /* JOU_Additional_Detail */
601 static int hf_mms_entryForm = -1;                 /* T_entryForm */
602 static int hf_mms_data = -1;                      /* T_data */
603 static int hf_mms_event = -1;                     /* T_event */
604 static int hf_mms_listOfVariables_01 = -1;        /* T_listOfVariables_01 */
605 static int hf_mms_listOfVariables_item_01 = -1;   /* T_listOfVariables_item */
606 static int hf_mms_variableTag = -1;               /* VisibleString */
607 static int hf_mms_valueSpecification = -1;        /* Data */
608 static int hf_mms_annotation = -1;                /* VisibleString */
609 static int hf_mms_sourceFileServer = -1;          /* ApplicationReference */
610 static int hf_mms_sourceFile = -1;                /* FileName */
611 static int hf_mms_destinationFile = -1;           /* FileName */
612 static int hf_mms_initialPosition = -1;           /* Unsigned32 */
613 static int hf_mms_frsmID = -1;                    /* Integer32 */
614 static int hf_mms_fileAttributes = -1;            /* FileAttributes */
615 static int hf_mms_fileData = -1;                  /* OCTET_STRING */
616 static int hf_mms_currentFileName = -1;           /* FileName */
617 static int hf_mms_newFileName = -1;               /* FileName */
618 static int hf_mms_fileSpecification = -1;         /* FileName */
619 static int hf_mms_continueAfter_03 = -1;          /* FileName */
620 static int hf_mms_listOfDirectoryEntry = -1;      /* SEQUENCE_OF_DirectoryEntry */
621 static int hf_mms_listOfDirectoryEntry_item = -1;  /* DirectoryEntry */
622 static int hf_mms_filename = -1;                  /* FileName */
623 static int hf_mms_sizeOfFile = -1;                /* Unsigned32 */
624 static int hf_mms_lastModified = -1;              /* GeneralizedTime */
625 /* named bits */
626 static int hf_mms_ParameterSupportOptions_str1 = -1;
627 static int hf_mms_ParameterSupportOptions_str2 = -1;
628 static int hf_mms_ParameterSupportOptions_vnam = -1;
629 static int hf_mms_ParameterSupportOptions_valt = -1;
630 static int hf_mms_ParameterSupportOptions_vadr = -1;
631 static int hf_mms_ParameterSupportOptions_vsca = -1;
632 static int hf_mms_ParameterSupportOptions_tpy = -1;
633 static int hf_mms_ParameterSupportOptions_vlis = -1;
634 static int hf_mms_ParameterSupportOptions_real = -1;
635 static int hf_mms_ParameterSupportOptions_cei = -1;
636 static int hf_mms_ServiceSupportOptions_status = -1;
637 static int hf_mms_ServiceSupportOptions_getNameList = -1;
638 static int hf_mms_ServiceSupportOptions_identify = -1;
639 static int hf_mms_ServiceSupportOptions_rename = -1;
640 static int hf_mms_ServiceSupportOptions_read = -1;
641 static int hf_mms_ServiceSupportOptions_write = -1;
642 static int hf_mms_ServiceSupportOptions_getVariableAccessAttributes = -1;
643 static int hf_mms_ServiceSupportOptions_defineNamedVariable = -1;
644 static int hf_mms_ServiceSupportOptions_defineScatteredAccess = -1;
645 static int hf_mms_ServiceSupportOptions_getScatteredAccessAttributes = -1;
646 static int hf_mms_ServiceSupportOptions_deleteVariableAccess = -1;
647 static int hf_mms_ServiceSupportOptions_defineNamedVariableList = -1;
648 static int hf_mms_ServiceSupportOptions_getNamedVariableListAttributes = -1;
649 static int hf_mms_ServiceSupportOptions_deleteNamedVariableList = -1;
650 static int hf_mms_ServiceSupportOptions_defineNamedType = -1;
651 static int hf_mms_ServiceSupportOptions_getNamedTypeAttributes = -1;
652 static int hf_mms_ServiceSupportOptions_deleteNamedType = -1;
653 static int hf_mms_ServiceSupportOptions_input = -1;
654 static int hf_mms_ServiceSupportOptions_output = -1;
655 static int hf_mms_ServiceSupportOptions_takeControl = -1;
656 static int hf_mms_ServiceSupportOptions_relinquishControl = -1;
657 static int hf_mms_ServiceSupportOptions_defineSemaphore = -1;
658 static int hf_mms_ServiceSupportOptions_deleteSemaphore = -1;
659 static int hf_mms_ServiceSupportOptions_reportSemaphoreStatus = -1;
660 static int hf_mms_ServiceSupportOptions_reportPoolSemaphoreStatus = -1;
661 static int hf_mms_ServiceSupportOptions_reportSemaphoreEntryStatus = -1;
662 static int hf_mms_ServiceSupportOptions_initiateDownloadSequence = -1;
663 static int hf_mms_ServiceSupportOptions_downloadSegment = -1;
664 static int hf_mms_ServiceSupportOptions_terminateDownloadSequence = -1;
665 static int hf_mms_ServiceSupportOptions_initiateUploadSequence = -1;
666 static int hf_mms_ServiceSupportOptions_uploadSegment = -1;
667 static int hf_mms_ServiceSupportOptions_terminateUploadSequence = -1;
668 static int hf_mms_ServiceSupportOptions_requestDomainDownload = -1;
669 static int hf_mms_ServiceSupportOptions_requestDomainUpload = -1;
670 static int hf_mms_ServiceSupportOptions_loadDomainContent = -1;
671 static int hf_mms_ServiceSupportOptions_storeDomainContent = -1;
672 static int hf_mms_ServiceSupportOptions_deleteDomain = -1;
673 static int hf_mms_ServiceSupportOptions_getDomainAttributes = -1;
674 static int hf_mms_ServiceSupportOptions_createProgramInvocation = -1;
675 static int hf_mms_ServiceSupportOptions_deleteProgramInvocation = -1;
676 static int hf_mms_ServiceSupportOptions_start = -1;
677 static int hf_mms_ServiceSupportOptions_stop = -1;
678 static int hf_mms_ServiceSupportOptions_resume = -1;
679 static int hf_mms_ServiceSupportOptions_reset = -1;
680 static int hf_mms_ServiceSupportOptions_kill = -1;
681 static int hf_mms_ServiceSupportOptions_getProgramInvocationAttributes = -1;
682 static int hf_mms_ServiceSupportOptions_obtainFile = -1;
683 static int hf_mms_ServiceSupportOptions_defineEventCondition = -1;
684 static int hf_mms_ServiceSupportOptions_deleteEventCondition = -1;
685 static int hf_mms_ServiceSupportOptions_getEventConditionAttributes = -1;
686 static int hf_mms_ServiceSupportOptions_reportEventConditionStatus = -1;
687 static int hf_mms_ServiceSupportOptions_alterEventConditionMonitoring = -1;
688 static int hf_mms_ServiceSupportOptions_triggerEvent = -1;
689 static int hf_mms_ServiceSupportOptions_defineEventAction = -1;
690 static int hf_mms_ServiceSupportOptions_deleteEventAction = -1;
691 static int hf_mms_ServiceSupportOptions_getEventActionAttributes = -1;
692 static int hf_mms_ServiceSupportOptions_reportActionStatus = -1;
693 static int hf_mms_ServiceSupportOptions_defineEventEnrollment = -1;
694 static int hf_mms_ServiceSupportOptions_deleteEventEnrollment = -1;
695 static int hf_mms_ServiceSupportOptions_alterEventEnrollment = -1;
696 static int hf_mms_ServiceSupportOptions_reportEventEnrollmentStatus = -1;
697 static int hf_mms_ServiceSupportOptions_getEventEnrollmentAttributes = -1;
698 static int hf_mms_ServiceSupportOptions_acknowledgeEventNotification = -1;
699 static int hf_mms_ServiceSupportOptions_getAlarmSummary = -1;
700 static int hf_mms_ServiceSupportOptions_getAlarmEnrollmentSummary = -1;
701 static int hf_mms_ServiceSupportOptions_readJournal = -1;
702 static int hf_mms_ServiceSupportOptions_writeJournal = -1;
703 static int hf_mms_ServiceSupportOptions_initializeJournal = -1;
704 static int hf_mms_ServiceSupportOptions_reportJournalStatus = -1;
705 static int hf_mms_ServiceSupportOptions_createJournal = -1;
706 static int hf_mms_ServiceSupportOptions_deleteJournal = -1;
707 static int hf_mms_ServiceSupportOptions_getCapabilityList = -1;
708 static int hf_mms_ServiceSupportOptions_fileOpen = -1;
709 static int hf_mms_ServiceSupportOptions_fileRead = -1;
710 static int hf_mms_ServiceSupportOptions_fileClose = -1;
711 static int hf_mms_ServiceSupportOptions_fileRename = -1;
712 static int hf_mms_ServiceSupportOptions_fileDelete = -1;
713 static int hf_mms_ServiceSupportOptions_fileDirectory = -1;
714 static int hf_mms_ServiceSupportOptions_unsolicitedStatus = -1;
715 static int hf_mms_ServiceSupportOptions_informationReport = -1;
716 static int hf_mms_ServiceSupportOptions_eventNotification = -1;
717 static int hf_mms_ServiceSupportOptions_attachToEventCondition = -1;
718 static int hf_mms_ServiceSupportOptions_attachToSemaphore = -1;
719 static int hf_mms_ServiceSupportOptions_conclude = -1;
720 static int hf_mms_ServiceSupportOptions_cancel = -1;
721 static int hf_mms_Transitions_idle_to_disabled = -1;
722 static int hf_mms_Transitions_active_to_disabled = -1;
723 static int hf_mms_Transitions_disabled_to_idle = -1;
724 static int hf_mms_Transitions_active_to_idle = -1;
725 static int hf_mms_Transitions_disabled_to_active = -1;
726 static int hf_mms_Transitions_idle_to_active = -1;
727 static int hf_mms_Transitions_any_to_deleted = -1;
728
729 /*--- End of included file: packet-mms-hf.c ---*/
730 #line 51 "packet-mms-template.c"
731
732 /* Initialize the subtree pointers */
733 static gint ett_mms = -1;
734
735 /*--- Included file: packet-mms-ett.c ---*/
736 #line 1 "packet-mms-ett.c"
737 static gint ett_mms_MMSpdu = -1;
738 static gint ett_mms_Confirmed_RequestPDU = -1;
739 static gint ett_mms_SEQUENCE_OF_Modifier = -1;
740 static gint ett_mms_Unconfirmed_PDU = -1;
741 static gint ett_mms_Confirmed_ResponsePDU = -1;
742 static gint ett_mms_Confirmed_ErrorPDU = -1;
743 static gint ett_mms_UnconfirmedService = -1;
744 static gint ett_mms_Modifier = -1;
745 static gint ett_mms_ConfirmedServiceRequest = -1;
746 static gint ett_mms_CS_Request_Detail = -1;
747 static gint ett_mms_ConfirmedServiceResponse = -1;
748 static gint ett_mms_FileName = -1;
749 static gint ett_mms_ObjectName = -1;
750 static gint ett_mms_T_domain_specific = -1;
751 static gint ett_mms_ApplicationReference = -1;
752 static gint ett_mms_Initiate_RequestPDU = -1;
753 static gint ett_mms_InitRequestDetail = -1;
754 static gint ett_mms_Initiate_ResponsePDU = -1;
755 static gint ett_mms_InitResponseDetail = -1;
756 static gint ett_mms_ParameterSupportOptions = -1;
757 static gint ett_mms_ServiceSupportOptions = -1;
758 static gint ett_mms_Cancel_ErrorPDU = -1;
759 static gint ett_mms_ServiceError = -1;
760 static gint ett_mms_T_errorClass = -1;
761 static gint ett_mms_T_serviceSpecificInformation = -1;
762 static gint ett_mms_RejectPDU = -1;
763 static gint ett_mms_T_rejectReason = -1;
764 static gint ett_mms_Status_Response = -1;
765 static gint ett_mms_GetNameList_Request = -1;
766 static gint ett_mms_T_extendedObjectClass = -1;
767 static gint ett_mms_T_objectScope = -1;
768 static gint ett_mms_GetNameList_Response = -1;
769 static gint ett_mms_SEQUENCE_OF_Identifier = -1;
770 static gint ett_mms_Identify_Response = -1;
771 static gint ett_mms_T_listOfAbstractSyntaxes = -1;
772 static gint ett_mms_Rename_Request = -1;
773 static gint ett_mms_T_extendedObjectClass_01 = -1;
774 static gint ett_mms_GetCapabilityList_Request = -1;
775 static gint ett_mms_GetCapabilityList_Response = -1;
776 static gint ett_mms_T_listOfCapabilities = -1;
777 static gint ett_mms_InitiateDownloadSequence_Request = -1;
778 static gint ett_mms_T_listOfCapabilities_01 = -1;
779 static gint ett_mms_DownloadSegment_Response = -1;
780 static gint ett_mms_T_loadData = -1;
781 static gint ett_mms_TerminateDownloadSequence_Request = -1;
782 static gint ett_mms_InitiateUploadSequence_Response = -1;
783 static gint ett_mms_T_listOfCapabilities_02 = -1;
784 static gint ett_mms_UploadSegment_Response = -1;
785 static gint ett_mms_T_loadData_01 = -1;
786 static gint ett_mms_RequestDomainDownload_Request = -1;
787 static gint ett_mms_T_listOfCapabilities_03 = -1;
788 static gint ett_mms_RequestDomainUpload_Request = -1;
789 static gint ett_mms_LoadDomainContent_Request = -1;
790 static gint ett_mms_T_listOfCapabilities_04 = -1;
791 static gint ett_mms_StoreDomainContent_Request = -1;
792 static gint ett_mms_GetDomainAttributes_Response = -1;
793 static gint ett_mms_T_listOfCapabilities_05 = -1;
794 static gint ett_mms_CreateProgramInvocation_Request = -1;
795 static gint ett_mms_Start_Request = -1;
796 static gint ett_mms_T_executionArgument = -1;
797 static gint ett_mms_Stop_Request = -1;
798 static gint ett_mms_Resume_Request = -1;
799 static gint ett_mms_T_executionArgument_01 = -1;
800 static gint ett_mms_Reset_Request = -1;
801 static gint ett_mms_Kill_Request = -1;
802 static gint ett_mms_GetProgramInvocationAttributes_Response = -1;
803 static gint ett_mms_T_executionArgument_02 = -1;
804 static gint ett_mms_TypeSpecification = -1;
805 static gint ett_mms_T_array = -1;
806 static gint ett_mms_T_structure = -1;
807 static gint ett_mms_T_components = -1;
808 static gint ett_mms_T_components_item = -1;
809 static gint ett_mms_AlternateAccess = -1;
810 static gint ett_mms_AlternateAccess_item = -1;
811 static gint ett_mms_T_named = -1;
812 static gint ett_mms_AlternateAccessSelection = -1;
813 static gint ett_mms_T_selectAlternateAccess = -1;
814 static gint ett_mms_T_accessSelection = -1;
815 static gint ett_mms_T_indexRange = -1;
816 static gint ett_mms_T_selectAccess = -1;
817 static gint ett_mms_T_indexRange_01 = -1;
818 static gint ett_mms_Read_Request = -1;
819 static gint ett_mms_Read_Response = -1;
820 static gint ett_mms_SEQUENCE_OF_AccessResult = -1;
821 static gint ett_mms_Write_Request = -1;
822 static gint ett_mms_SEQUENCE_OF_Data = -1;
823 static gint ett_mms_Write_Response = -1;
824 static gint ett_mms_Write_Response_item = -1;
825 static gint ett_mms_InformationReport = -1;
826 static gint ett_mms_GetVariableAccessAttributes_Request = -1;
827 static gint ett_mms_GetVariableAccessAttributes_Response = -1;
828 static gint ett_mms_DefineNamedVariable_Request = -1;
829 static gint ett_mms_DefineScatteredAccess_Request = -1;
830 static gint ett_mms_GetScatteredAccessAttributes_Response = -1;
831 static gint ett_mms_DeleteVariableAccess_Request = -1;
832 static gint ett_mms_SEQUENCE_OF_ObjectName = -1;
833 static gint ett_mms_DeleteVariableAccess_Response = -1;
834 static gint ett_mms_DefineNamedVariableList_Request = -1;
835 static gint ett_mms_T_listOfVariable = -1;
836 static gint ett_mms_T_listOfVariable_item = -1;
837 static gint ett_mms_GetNamedVariableListAttributes_Response = -1;
838 static gint ett_mms_T_listOfVariable_01 = -1;
839 static gint ett_mms_T_listOfVariable_item_01 = -1;
840 static gint ett_mms_DeleteNamedVariableList_Request = -1;
841 static gint ett_mms_DeleteNamedVariableList_Response = -1;
842 static gint ett_mms_DefineNamedType_Request = -1;
843 static gint ett_mms_GetNamedTypeAttributes_Response = -1;
844 static gint ett_mms_DeleteNamedType_Request = -1;
845 static gint ett_mms_DeleteNamedType_Response = -1;
846 static gint ett_mms_AccessResult = -1;
847 static gint ett_mms_Data = -1;
848 static gint ett_mms_VariableAccessSpecification = -1;
849 static gint ett_mms_T_listOfVariable_02 = -1;
850 static gint ett_mms_T_listOfVariable_item_02 = -1;
851 static gint ett_mms_ScatteredAccessDescription = -1;
852 static gint ett_mms_ScatteredAccessDescription_item = -1;
853 static gint ett_mms_VariableSpecification = -1;
854 static gint ett_mms_T_variableDescription = -1;
855 static gint ett_mms_Address = -1;
856 static gint ett_mms_TakeControl_Request = -1;
857 static gint ett_mms_TakeControl_Response = -1;
858 static gint ett_mms_RelinquishControl_Request = -1;
859 static gint ett_mms_DefineSemaphore_Request = -1;
860 static gint ett_mms_ReportSemaphoreStatus_Response = -1;
861 static gint ett_mms_ReportPoolSemaphoreStatus_Request = -1;
862 static gint ett_mms_ReportPoolSemaphoreStatus_Response = -1;
863 static gint ett_mms_T_listOfNamedTokens = -1;
864 static gint ett_mms_T_listOfNamedTokens_item = -1;
865 static gint ett_mms_ReportSemaphoreEntryStatus_Request = -1;
866 static gint ett_mms_ReportSemaphoreEntryStatus_Response = -1;
867 static gint ett_mms_SEQUENCE_OF_SemaphoreEntry = -1;
868 static gint ett_mms_AttachToSemaphore = -1;
869 static gint ett_mms_SemaphoreEntry = -1;
870 static gint ett_mms_Input_Request = -1;
871 static gint ett_mms_T_listOfPromptData = -1;
872 static gint ett_mms_Output_Request = -1;
873 static gint ett_mms_T_listOfOutputData = -1;
874 static gint ett_mms_DefineEventCondition_Request = -1;
875 static gint ett_mms_DeleteEventCondition_Request = -1;
876 static gint ett_mms_GetEventConditionAttributes_Response = -1;
877 static gint ett_mms_T_monitoredVariable = -1;
878 static gint ett_mms_ReportEventConditionStatus_Response = -1;
879 static gint ett_mms_AlterEventConditionMonitoring_Request = -1;
880 static gint ett_mms_TriggerEvent_Request = -1;
881 static gint ett_mms_DefineEventAction_Request = -1;
882 static gint ett_mms_DeleteEventAction_Request = -1;
883 static gint ett_mms_GetEventActionAttributes_Response = -1;
884 static gint ett_mms_DefineEventEnrollment_Request = -1;
885 static gint ett_mms_DeleteEventEnrollment_Request = -1;
886 static gint ett_mms_GetEventEnrollmentAttributes_Request = -1;
887 static gint ett_mms_EventEnrollment = -1;
888 static gint ett_mms_T_eventConditionName = -1;
889 static gint ett_mms_T_eventActionName = -1;
890 static gint ett_mms_GetEventEnrollmentAttributes_Response = -1;
891 static gint ett_mms_SEQUENCE_OF_EventEnrollment = -1;
892 static gint ett_mms_ReportEventEnrollmentStatus_Response = -1;
893 static gint ett_mms_AlterEventEnrollment_Request = -1;
894 static gint ett_mms_AlterEventEnrollment_Response = -1;
895 static gint ett_mms_T_currentState = -1;
896 static gint ett_mms_AcknowledgeEventNotification_Request = -1;
897 static gint ett_mms_GetAlarmSummary_Request = -1;
898 static gint ett_mms_T_severityFilter = -1;
899 static gint ett_mms_GetAlarmSummary_Response = -1;
900 static gint ett_mms_SEQUENCE_OF_AlarmSummary = -1;
901 static gint ett_mms_AlarmSummary = -1;
902 static gint ett_mms_GetAlarmEnrollmentSummary_Request = -1;
903 static gint ett_mms_T_severityFilter_01 = -1;
904 static gint ett_mms_GetAlarmEnrollmentSummary_Response = -1;
905 static gint ett_mms_SEQUENCE_OF_AlarmEnrollmentSummary = -1;
906 static gint ett_mms_AlarmEnrollmentSummary = -1;
907 static gint ett_mms_EventNotification = -1;
908 static gint ett_mms_T_eventConditionName_01 = -1;
909 static gint ett_mms_T_actionResult = -1;
910 static gint ett_mms_T_eventActionResult = -1;
911 static gint ett_mms_AttachToEventCondition = -1;
912 static gint ett_mms_EventTime = -1;
913 static gint ett_mms_Transitions = -1;
914 static gint ett_mms_ReadJournal_Request = -1;
915 static gint ett_mms_T_rangeStartSpecification = -1;
916 static gint ett_mms_T_rangeStopSpecification = -1;
917 static gint ett_mms_T_listOfVariables = -1;
918 static gint ett_mms_T_entryToStartAfter = -1;
919 static gint ett_mms_ReadJournal_Response = -1;
920 static gint ett_mms_SEQUENCE_OF_JournalEntry = -1;
921 static gint ett_mms_JournalEntry = -1;
922 static gint ett_mms_WriteJournal_Request = -1;
923 static gint ett_mms_SEQUENCE_OF_EntryContent = -1;
924 static gint ett_mms_InitializeJournal_Request = -1;
925 static gint ett_mms_T_limitSpecification = -1;
926 static gint ett_mms_ReportJournalStatus_Response = -1;
927 static gint ett_mms_CreateJournal_Request = -1;
928 static gint ett_mms_DeleteJournal_Request = -1;
929 static gint ett_mms_EntryContent = -1;
930 static gint ett_mms_T_entryForm = -1;
931 static gint ett_mms_T_data = -1;
932 static gint ett_mms_T_event = -1;
933 static gint ett_mms_T_listOfVariables_01 = -1;
934 static gint ett_mms_T_listOfVariables_item = -1;
935 static gint ett_mms_ObtainFile_Request = -1;
936 static gint ett_mms_FileOpen_Request = -1;
937 static gint ett_mms_FileOpen_Response = -1;
938 static gint ett_mms_FileRead_Response = -1;
939 static gint ett_mms_FileRename_Request = -1;
940 static gint ett_mms_FileDirectory_Request = -1;
941 static gint ett_mms_FileDirectory_Response = -1;
942 static gint ett_mms_SEQUENCE_OF_DirectoryEntry = -1;
943 static gint ett_mms_DirectoryEntry = -1;
944 static gint ett_mms_FileAttributes = -1;
945
946 /*--- End of included file: packet-mms-ett.c ---*/
947 #line 55 "packet-mms-template.c"
948
949
950 /*--- Included file: packet-mms-fn.c ---*/
951 #line 1 "packet-mms-fn.c"
952 /*--- Cyclic dependencies ---*/
953
954 /* TypeSpecification -> TypeSpecification/array -> TypeSpecification */
955 /* TypeSpecification -> TypeSpecification/structure -> TypeSpecification/structure/components -> TypeSpecification/structure/components/_item -> TypeSpecification */
956 static int dissect_mms_TypeSpecification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
957
958 /* VariableSpecification -> ScatteredAccessDescription -> ScatteredAccessDescription/_item -> VariableSpecification */
959 static int dissect_mms_VariableSpecification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
960
961 /* AlternateAccess -> AlternateAccess/_item -> AlternateAccessSelection -> AlternateAccessSelection/selectAlternateAccess -> AlternateAccess */
962 static int dissect_mms_AlternateAccess(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
963
964 /* Data -> Data/array -> Data */
965 static int dissect_mms_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
966
967
968
969
970 static int
971 dissect_mms_Unsigned32(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
972   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
973                                                 NULL);
974
975   return offset;
976 }
977
978
979
980 static int
981 dissect_mms_Identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
982   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_VisibleString,
983                                             actx, tree, tvb, offset, hf_index,
984                                             NULL);
985
986   return offset;
987 }
988
989
990 static const ber_sequence_t T_domain_specific_sequence[] = {
991   { &hf_mms_domainId        , BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_Identifier },
992   { &hf_mms_itemId          , BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_Identifier },
993   { NULL, 0, 0, 0, NULL }
994 };
995
996 static int
997 dissect_mms_T_domain_specific(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
998   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
999                                    T_domain_specific_sequence, hf_index, ett_mms_T_domain_specific);
1000
1001   return offset;
1002 }
1003
1004
1005 static const value_string mms_ObjectName_vals[] = {
1006   {   0, "vmd-specific" },
1007   {   1, "domain-specific" },
1008   {   2, "aa-specific" },
1009   { 0, NULL }
1010 };
1011
1012 static const ber_choice_t ObjectName_choice[] = {
1013   {   0, &hf_mms_vmd_specific    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
1014   {   1, &hf_mms_domain_specific , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_domain_specific },
1015   {   2, &hf_mms_aa_specific     , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
1016   { 0, NULL, 0, 0, 0, NULL }
1017 };
1018
1019 static int
1020 dissect_mms_ObjectName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1021   offset = dissect_ber_choice(actx, tree, tvb, offset,
1022                                  ObjectName_choice, hf_index, ett_mms_ObjectName,
1023                                  NULL);
1024
1025   return offset;
1026 }
1027
1028
1029 static const asn_namedbit Transitions_bits[] = {
1030   {  0, &hf_mms_Transitions_idle_to_disabled, -1, -1, "idle-to-disabled", NULL },
1031   {  1, &hf_mms_Transitions_active_to_disabled, -1, -1, "active-to-disabled", NULL },
1032   {  2, &hf_mms_Transitions_disabled_to_idle, -1, -1, "disabled-to-idle", NULL },
1033   {  3, &hf_mms_Transitions_active_to_idle, -1, -1, "active-to-idle", NULL },
1034   {  4, &hf_mms_Transitions_disabled_to_active, -1, -1, "disabled-to-active", NULL },
1035   {  5, &hf_mms_Transitions_idle_to_active, -1, -1, "idle-to-active", NULL },
1036   {  6, &hf_mms_Transitions_any_to_deleted, -1, -1, "any-to-deleted", NULL },
1037   { 0, NULL, 0, 0, NULL, NULL }
1038 };
1039
1040 static int
1041 dissect_mms_Transitions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1042   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1043                                     Transitions_bits, hf_index, ett_mms_Transitions,
1044                                     NULL);
1045
1046   return offset;
1047 }
1048
1049
1050 static const ber_sequence_t AttachToEventCondition_sequence[] = {
1051   { &hf_mms_eventEnrollmentName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
1052   { &hf_mms_eventConditionName, BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
1053   { &hf_mms_causingTransitions, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Transitions },
1054   { &hf_mms_acceptableDelay , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
1055   { NULL, 0, 0, 0, NULL }
1056 };
1057
1058 static int
1059 dissect_mms_AttachToEventCondition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1060   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1061                                    AttachToEventCondition_sequence, hf_index, ett_mms_AttachToEventCondition);
1062
1063   return offset;
1064 }
1065
1066
1067
1068 static int
1069 dissect_mms_Unsigned8(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1070   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1071                                                 NULL);
1072
1073   return offset;
1074 }
1075
1076
1077
1078 static int
1079 dissect_mms_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1080   offset = dissect_mms_Unsigned8(implicit_tag, tvb, offset, actx, tree, hf_index);
1081
1082   return offset;
1083 }
1084
1085
1086
1087 static int
1088 dissect_mms_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1089   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1090
1091   return offset;
1092 }
1093
1094
1095 static const ber_sequence_t AttachToSemaphore_sequence[] = {
1096   { &hf_mms_semaphoreName   , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
1097   { &hf_mms_namedToken      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
1098   { &hf_mms_priority        , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Priority },
1099   { &hf_mms_acceptableDelay , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
1100   { &hf_mms_controlTimeOut  , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
1101   { &hf_mms_abortOnTimeOut  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
1102   { &hf_mms_relinquishIfConnectionLost, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
1103   { NULL, 0, 0, 0, NULL }
1104 };
1105
1106 static int
1107 dissect_mms_AttachToSemaphore(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1108   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1109                                    AttachToSemaphore_sequence, hf_index, ett_mms_AttachToSemaphore);
1110
1111   return offset;
1112 }
1113
1114
1115 static const value_string mms_Modifier_vals[] = {
1116   {   0, "attach-To-Event-Condition" },
1117   {   1, "attach-To-Semaphore" },
1118   { 0, NULL }
1119 };
1120
1121 static const ber_choice_t Modifier_choice[] = {
1122   {   0, &hf_mms_attach_To_Event_Condition, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_AttachToEventCondition },
1123   {   1, &hf_mms_attach_To_Semaphore, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_AttachToSemaphore },
1124   { 0, NULL, 0, 0, 0, NULL }
1125 };
1126
1127 static int
1128 dissect_mms_Modifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1129   offset = dissect_ber_choice(actx, tree, tvb, offset,
1130                                  Modifier_choice, hf_index, ett_mms_Modifier,
1131                                  NULL);
1132
1133   return offset;
1134 }
1135
1136
1137 static const ber_sequence_t SEQUENCE_OF_Modifier_sequence_of[1] = {
1138   { &hf_mms_listOfModifier_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_Modifier },
1139 };
1140
1141 static int
1142 dissect_mms_SEQUENCE_OF_Modifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1143   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1144                                       SEQUENCE_OF_Modifier_sequence_of, hf_index, ett_mms_SEQUENCE_OF_Modifier);
1145
1146   return offset;
1147 }
1148
1149
1150
1151 static int
1152 dissect_mms_Status_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1153   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1154
1155   return offset;
1156 }
1157
1158
1159 static const value_string mms_T_objectClass_vals[] = {
1160   {   0, "nammedVariable" },
1161   {   1, "scatteredAccess" },
1162   {   2, "namedVariableList" },
1163   {   3, "namedType" },
1164   {   4, "semaphore" },
1165   {   5, "eventCondition" },
1166   {   6, "eventAction" },
1167   {   7, "eventEnrollment" },
1168   {   8, "journal" },
1169   {   9, "domain" },
1170   {  10, "programInvocation" },
1171   {  11, "operatorStation" },
1172   { 0, NULL }
1173 };
1174
1175
1176 static int
1177 dissect_mms_T_objectClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1178   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1179                                                 NULL);
1180
1181   return offset;
1182 }
1183
1184
1185 static const value_string mms_T_extendedObjectClass_vals[] = {
1186   {   0, "objectClass" },
1187   { 0, NULL }
1188 };
1189
1190 static const ber_choice_t T_extendedObjectClass_choice[] = {
1191   {   0, &hf_mms_objectClass     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_objectClass },
1192   { 0, NULL, 0, 0, 0, NULL }
1193 };
1194
1195 static int
1196 dissect_mms_T_extendedObjectClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1197   offset = dissect_ber_choice(actx, tree, tvb, offset,
1198                                  T_extendedObjectClass_choice, hf_index, ett_mms_T_extendedObjectClass,
1199                                  NULL);
1200
1201   return offset;
1202 }
1203
1204
1205
1206 static int
1207 dissect_mms_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1208   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
1209
1210   return offset;
1211 }
1212
1213
1214 static const value_string mms_T_objectScope_vals[] = {
1215   {   0, "vmdSpecific" },
1216   {   1, "domainSpecific" },
1217   {   2, "aaSpecific" },
1218   { 0, NULL }
1219 };
1220
1221 static const ber_choice_t T_objectScope_choice[] = {
1222   {   0, &hf_mms_vmdSpecific     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
1223   {   1, &hf_mms_domainSpecific  , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
1224   {   2, &hf_mms_aaSpecific      , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
1225   { 0, NULL, 0, 0, 0, NULL }
1226 };
1227
1228 static int
1229 dissect_mms_T_objectScope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1230   offset = dissect_ber_choice(actx, tree, tvb, offset,
1231                                  T_objectScope_choice, hf_index, ett_mms_T_objectScope,
1232                                  NULL);
1233
1234   return offset;
1235 }
1236
1237
1238 static const ber_sequence_t GetNameList_Request_sequence[] = {
1239   { &hf_mms_extendedObjectClass, BER_CLASS_CON, 0, 0, dissect_mms_T_extendedObjectClass },
1240   { &hf_mms_objectScope     , BER_CLASS_CON, 1, 0, dissect_mms_T_objectScope },
1241   { &hf_mms_continueAfter   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
1242   { NULL, 0, 0, 0, NULL }
1243 };
1244
1245 static int
1246 dissect_mms_GetNameList_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1247   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1248                                    GetNameList_Request_sequence, hf_index, ett_mms_GetNameList_Request);
1249
1250   return offset;
1251 }
1252
1253
1254
1255 static int
1256 dissect_mms_Identify_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1257   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
1258
1259   return offset;
1260 }
1261
1262
1263 static const value_string mms_T_objectClass_01_vals[] = {
1264   {   0, "namedVariable" },
1265   {   1, "scatteredAccess" },
1266   {   2, "namedVariableList" },
1267   {   3, "namedType" },
1268   {   4, "semaphore" },
1269   {   5, "eventCondition" },
1270   {   6, "eventAction" },
1271   {   7, "eventEnrollment" },
1272   {   8, "journal" },
1273   {   9, "domain" },
1274   {  10, "programInvocation" },
1275   {  11, "operatorStation" },
1276   { 0, NULL }
1277 };
1278
1279
1280 static int
1281 dissect_mms_T_objectClass_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1282   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1283                                                 NULL);
1284
1285   return offset;
1286 }
1287
1288
1289 static const value_string mms_T_extendedObjectClass_01_vals[] = {
1290   {   0, "objectClass" },
1291   { 0, NULL }
1292 };
1293
1294 static const ber_choice_t T_extendedObjectClass_01_choice[] = {
1295   {   0, &hf_mms_objectClass_01  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_objectClass_01 },
1296   { 0, NULL, 0, 0, 0, NULL }
1297 };
1298
1299 static int
1300 dissect_mms_T_extendedObjectClass_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1301   offset = dissect_ber_choice(actx, tree, tvb, offset,
1302                                  T_extendedObjectClass_01_choice, hf_index, ett_mms_T_extendedObjectClass_01,
1303                                  NULL);
1304
1305   return offset;
1306 }
1307
1308
1309 static const ber_sequence_t Rename_Request_sequence[] = {
1310   { &hf_mms_extendedObjectClass_01, BER_CLASS_CON, 0, 0, dissect_mms_T_extendedObjectClass_01 },
1311   { &hf_mms_currentName     , BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
1312   { &hf_mms_newIdentifier   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
1313   { NULL, 0, 0, 0, NULL }
1314 };
1315
1316 static int
1317 dissect_mms_Rename_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1318   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1319                                    Rename_Request_sequence, hf_index, ett_mms_Rename_Request);
1320
1321   return offset;
1322 }
1323
1324
1325
1326 static int
1327 dissect_mms_VisibleString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1328   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_VisibleString,
1329                                             actx, tree, tvb, offset, hf_index,
1330                                             NULL);
1331
1332   return offset;
1333 }
1334
1335
1336
1337 static int
1338 dissect_mms_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1339   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1340                                        NULL);
1341
1342   return offset;
1343 }
1344
1345
1346 static const value_string mms_Address_vals[] = {
1347   {   0, "numericAddress" },
1348   {   1, "symbolicAddress" },
1349   {   2, "unconstrainedAddress" },
1350   { 0, NULL }
1351 };
1352
1353 static const ber_choice_t Address_choice[] = {
1354   {   0, &hf_mms_numericAddress  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
1355   {   1, &hf_mms_symbolicAddress , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_VisibleString },
1356   {   2, &hf_mms_unconstrainedAddress, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_OCTET_STRING },
1357   { 0, NULL, 0, 0, 0, NULL }
1358 };
1359
1360 static int
1361 dissect_mms_Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1362   offset = dissect_ber_choice(actx, tree, tvb, offset,
1363                                  Address_choice, hf_index, ett_mms_Address,
1364                                  NULL);
1365
1366   return offset;
1367 }
1368
1369
1370 static const ber_sequence_t T_array_sequence[] = {
1371   { &hf_mms_packed          , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
1372   { &hf_mms_numberOfElements, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
1373   { &hf_mms_elementType     , BER_CLASS_CON, 2, BER_FLAGS_NOTCHKTAG, dissect_mms_TypeSpecification },
1374   { NULL, 0, 0, 0, NULL }
1375 };
1376
1377 static int
1378 dissect_mms_T_array(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1379   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1380                                    T_array_sequence, hf_index, ett_mms_T_array);
1381
1382   return offset;
1383 }
1384
1385
1386 static const ber_sequence_t T_components_item_sequence[] = {
1387   { &hf_mms_componentName   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
1388   { &hf_mms_componentType   , BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_mms_TypeSpecification },
1389   { NULL, 0, 0, 0, NULL }
1390 };
1391
1392 static int
1393 dissect_mms_T_components_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1394   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1395                                    T_components_item_sequence, hf_index, ett_mms_T_components_item);
1396
1397   return offset;
1398 }
1399
1400
1401 static const ber_sequence_t T_components_sequence_of[1] = {
1402   { &hf_mms_components_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mms_T_components_item },
1403 };
1404
1405 static int
1406 dissect_mms_T_components(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1407   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1408                                       T_components_sequence_of, hf_index, ett_mms_T_components);
1409
1410   return offset;
1411 }
1412
1413
1414 static const ber_sequence_t T_structure_sequence[] = {
1415   { &hf_mms_packed          , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
1416   { &hf_mms_components      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_components },
1417   { NULL, 0, 0, 0, NULL }
1418 };
1419
1420 static int
1421 dissect_mms_T_structure(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1422   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1423                                    T_structure_sequence, hf_index, ett_mms_T_structure);
1424
1425   return offset;
1426 }
1427
1428
1429
1430 static int
1431 dissect_mms_Integer32(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1432   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1433                                                 NULL);
1434
1435   return offset;
1436 }
1437
1438
1439 static const value_string mms_TypeSpecification_vals[] = {
1440   {   0, "typeName" },
1441   {   1, "array" },
1442   {   2, "structure" },
1443   {   3, "boolean" },
1444   {   4, "bit-string" },
1445   {   5, "integer" },
1446   {   6, "unsigned" },
1447   {   9, "octet-string" },
1448   {  10, "visible-string" },
1449   {  11, "generalized-time" },
1450   {  12, "binary-time" },
1451   {  13, "bcd" },
1452   {  15, "objId" },
1453   { 0, NULL }
1454 };
1455
1456 static const ber_choice_t TypeSpecification_choice[] = {
1457   {   0, &hf_mms_typeName        , BER_CLASS_CON, 0, 0, dissect_mms_ObjectName },
1458   {   1, &hf_mms_array           , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_array },
1459   {   2, &hf_mms_structure       , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_T_structure },
1460   {   3, &hf_mms_boolean         , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
1461   {   4, &hf_mms_bit_string      , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_Integer32 },
1462   {   5, &hf_mms_integer         , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned8 },
1463   {   6, &hf_mms_unsigned        , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned8 },
1464   {   9, &hf_mms_octet_string    , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_mms_Integer32 },
1465   {  10, &hf_mms_visible_string  , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_mms_Integer32 },
1466   {  11, &hf_mms_generalized_time, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
1467   {  12, &hf_mms_binary_time     , BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
1468   {  13, &hf_mms_bcd             , BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned8 },
1469   {  15, &hf_mms_objId           , BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
1470   { 0, NULL, 0, 0, 0, NULL }
1471 };
1472
1473 static int
1474 dissect_mms_TypeSpecification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1475   offset = dissect_ber_choice(actx, tree, tvb, offset,
1476                                  TypeSpecification_choice, hf_index, ett_mms_TypeSpecification,
1477                                  NULL);
1478
1479   return offset;
1480 }
1481
1482
1483 static const ber_sequence_t T_variableDescription_sequence[] = {
1484   { &hf_mms_address         , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_Address },
1485   { &hf_mms_typeSpecification, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_TypeSpecification },
1486   { NULL, 0, 0, 0, NULL }
1487 };
1488
1489 static int
1490 dissect_mms_T_variableDescription(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1491   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1492                                    T_variableDescription_sequence, hf_index, ett_mms_T_variableDescription);
1493
1494   return offset;
1495 }
1496
1497
1498 static const ber_sequence_t T_indexRange_sequence[] = {
1499   { &hf_mms_lowIndex        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
1500   { &hf_mms_numberOfElements, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
1501   { NULL, 0, 0, 0, NULL }
1502 };
1503
1504 static int
1505 dissect_mms_T_indexRange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1506   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1507                                    T_indexRange_sequence, hf_index, ett_mms_T_indexRange);
1508
1509   return offset;
1510 }
1511
1512
1513 static const value_string mms_T_accessSelection_vals[] = {
1514   {   0, "component" },
1515   {   1, "index" },
1516   {   2, "indexRange" },
1517   {   3, "allElements" },
1518   { 0, NULL }
1519 };
1520
1521 static const ber_choice_t T_accessSelection_choice[] = {
1522   {   0, &hf_mms_component       , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
1523   {   1, &hf_mms_index           , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
1524   {   2, &hf_mms_indexRange      , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_T_indexRange },
1525   {   3, &hf_mms_allElements     , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
1526   { 0, NULL, 0, 0, 0, NULL }
1527 };
1528
1529 static int
1530 dissect_mms_T_accessSelection(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1531   offset = dissect_ber_choice(actx, tree, tvb, offset,
1532                                  T_accessSelection_choice, hf_index, ett_mms_T_accessSelection,
1533                                  NULL);
1534
1535   return offset;
1536 }
1537
1538
1539 static const ber_sequence_t T_selectAlternateAccess_sequence[] = {
1540   { &hf_mms_accessSelection , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_T_accessSelection },
1541   { &hf_mms_alternateAccess , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mms_AlternateAccess },
1542   { NULL, 0, 0, 0, NULL }
1543 };
1544
1545 static int
1546 dissect_mms_T_selectAlternateAccess(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1547   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1548                                    T_selectAlternateAccess_sequence, hf_index, ett_mms_T_selectAlternateAccess);
1549
1550   return offset;
1551 }
1552
1553
1554 static const ber_sequence_t T_indexRange_01_sequence[] = {
1555   { &hf_mms_lowIndex        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
1556   { &hf_mms_nmberOfElements , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
1557   { NULL, 0, 0, 0, NULL }
1558 };
1559
1560 static int
1561 dissect_mms_T_indexRange_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1562   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1563                                    T_indexRange_01_sequence, hf_index, ett_mms_T_indexRange_01);
1564
1565   return offset;
1566 }
1567
1568
1569 static const value_string mms_T_selectAccess_vals[] = {
1570   {   1, "component" },
1571   {   2, "index" },
1572   {   3, "indexRange" },
1573   {   4, "allElements" },
1574   { 0, NULL }
1575 };
1576
1577 static const ber_choice_t T_selectAccess_choice[] = {
1578   {   1, &hf_mms_component       , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
1579   {   2, &hf_mms_index           , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
1580   {   3, &hf_mms_indexRange_01   , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_T_indexRange_01 },
1581   {   4, &hf_mms_allElements     , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
1582   { 0, NULL, 0, 0, 0, NULL }
1583 };
1584
1585 static int
1586 dissect_mms_T_selectAccess(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1587   offset = dissect_ber_choice(actx, tree, tvb, offset,
1588                                  T_selectAccess_choice, hf_index, ett_mms_T_selectAccess,
1589                                  NULL);
1590
1591   return offset;
1592 }
1593
1594
1595 static const value_string mms_AlternateAccessSelection_vals[] = {
1596   {   0, "selectAlternateAccess" },
1597   {   1, "selectAccess" },
1598   { 0, NULL }
1599 };
1600
1601 static const ber_choice_t AlternateAccessSelection_choice[] = {
1602   {   0, &hf_mms_selectAlternateAccess, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_selectAlternateAccess },
1603   {   1, &hf_mms_selectAccess    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_mms_T_selectAccess },
1604   { 0, NULL, 0, 0, 0, NULL }
1605 };
1606
1607 static int
1608 dissect_mms_AlternateAccessSelection(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1609   offset = dissect_ber_choice(actx, tree, tvb, offset,
1610                                  AlternateAccessSelection_choice, hf_index, ett_mms_AlternateAccessSelection,
1611                                  NULL);
1612
1613   return offset;
1614 }
1615
1616
1617 static const ber_sequence_t T_named_sequence[] = {
1618   { &hf_mms_componentName   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
1619   { &hf_mms_accesst         , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_AlternateAccessSelection },
1620   { NULL, 0, 0, 0, NULL }
1621 };
1622
1623 static int
1624 dissect_mms_T_named(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1625   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1626                                    T_named_sequence, hf_index, ett_mms_T_named);
1627
1628   return offset;
1629 }
1630
1631
1632 static const value_string mms_AlternateAccess_item_vals[] = {
1633   {   0, "unnamed" },
1634   {   1, "named" },
1635   { 0, NULL }
1636 };
1637
1638 static const ber_choice_t AlternateAccess_item_choice[] = {
1639   {   0, &hf_mms_unnamed         , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_mms_AlternateAccessSelection },
1640   {   1, &hf_mms_named           , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_T_named },
1641   { 0, NULL, 0, 0, 0, NULL }
1642 };
1643
1644 static int
1645 dissect_mms_AlternateAccess_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1646   offset = dissect_ber_choice(actx, tree, tvb, offset,
1647                                  AlternateAccess_item_choice, hf_index, ett_mms_AlternateAccess_item,
1648                                  NULL);
1649
1650   return offset;
1651 }
1652
1653
1654 static const ber_sequence_t AlternateAccess_sequence_of[1] = {
1655   { &hf_mms_AlternateAccess_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_AlternateAccess_item },
1656 };
1657
1658 static int
1659 dissect_mms_AlternateAccess(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1660   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1661                                       AlternateAccess_sequence_of, hf_index, ett_mms_AlternateAccess);
1662
1663   return offset;
1664 }
1665
1666
1667 static const ber_sequence_t ScatteredAccessDescription_item_sequence[] = {
1668   { &hf_mms_componentName   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
1669   { &hf_mms_variableSpecification, BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_mms_VariableSpecification },
1670   { &hf_mms_alternateAccess , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_AlternateAccess },
1671   { NULL, 0, 0, 0, NULL }
1672 };
1673
1674 static int
1675 dissect_mms_ScatteredAccessDescription_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1676   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1677                                    ScatteredAccessDescription_item_sequence, hf_index, ett_mms_ScatteredAccessDescription_item);
1678
1679   return offset;
1680 }
1681
1682
1683 static const ber_sequence_t ScatteredAccessDescription_sequence_of[1] = {
1684   { &hf_mms_ScatteredAccessDescription_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mms_ScatteredAccessDescription_item },
1685 };
1686
1687 static int
1688 dissect_mms_ScatteredAccessDescription(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1689   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1690                                       ScatteredAccessDescription_sequence_of, hf_index, ett_mms_ScatteredAccessDescription);
1691
1692   return offset;
1693 }
1694
1695
1696 static const value_string mms_VariableSpecification_vals[] = {
1697   {   0, "name" },
1698   {   1, "address" },
1699   {   2, "variableDescription" },
1700   {   3, "scatteredAccessDescription" },
1701   {   4, "invalidated" },
1702   { 0, NULL }
1703 };
1704
1705 static const ber_choice_t VariableSpecification_choice[] = {
1706   {   0, &hf_mms_name            , BER_CLASS_CON, 0, 0, dissect_mms_ObjectName },
1707   {   1, &hf_mms_address         , BER_CLASS_CON, 1, 0, dissect_mms_Address },
1708   {   2, &hf_mms_variableDescription, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_T_variableDescription },
1709   {   3, &hf_mms_scatteredAccessDescription, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_ScatteredAccessDescription },
1710   {   4, &hf_mms_invalidated     , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
1711   { 0, NULL, 0, 0, 0, NULL }
1712 };
1713
1714 static int
1715 dissect_mms_VariableSpecification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1716   offset = dissect_ber_choice(actx, tree, tvb, offset,
1717                                  VariableSpecification_choice, hf_index, ett_mms_VariableSpecification,
1718                                  NULL);
1719
1720   return offset;
1721 }
1722
1723
1724 static const ber_sequence_t T_listOfVariable_item_02_sequence[] = {
1725   { &hf_mms_variableSpecification, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_VariableSpecification },
1726   { &hf_mms_alternateAccess , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_AlternateAccess },
1727   { NULL, 0, 0, 0, NULL }
1728 };
1729
1730 static int
1731 dissect_mms_T_listOfVariable_item_02(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1732   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1733                                    T_listOfVariable_item_02_sequence, hf_index, ett_mms_T_listOfVariable_item_02);
1734
1735   return offset;
1736 }
1737
1738
1739 static const ber_sequence_t T_listOfVariable_02_sequence_of[1] = {
1740   { &hf_mms_listOfVariable_item_02, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mms_T_listOfVariable_item_02 },
1741 };
1742
1743 static int
1744 dissect_mms_T_listOfVariable_02(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1745   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1746                                       T_listOfVariable_02_sequence_of, hf_index, ett_mms_T_listOfVariable_02);
1747
1748   return offset;
1749 }
1750
1751
1752 static const value_string mms_VariableAccessSpecification_vals[] = {
1753   {   0, "listOfVariable" },
1754   {   1, "variableListName" },
1755   { 0, NULL }
1756 };
1757
1758 static const ber_choice_t VariableAccessSpecification_choice[] = {
1759   {   0, &hf_mms_listOfVariable_02, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_listOfVariable_02 },
1760   {   1, &hf_mms_variableListName, BER_CLASS_CON, 1, 0, dissect_mms_ObjectName },
1761   { 0, NULL, 0, 0, 0, NULL }
1762 };
1763
1764 static int
1765 dissect_mms_VariableAccessSpecification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1766   offset = dissect_ber_choice(actx, tree, tvb, offset,
1767                                  VariableAccessSpecification_choice, hf_index, ett_mms_VariableAccessSpecification,
1768                                  NULL);
1769
1770   return offset;
1771 }
1772
1773
1774 static const ber_sequence_t Read_Request_sequence[] = {
1775   { &hf_mms_specificationWithResult, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
1776   { &hf_mms_variableAccessSpecificatn, BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_mms_VariableAccessSpecification },
1777   { NULL, 0, 0, 0, NULL }
1778 };
1779
1780 static int
1781 dissect_mms_Read_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1782   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1783                                    Read_Request_sequence, hf_index, ett_mms_Read_Request);
1784
1785   return offset;
1786 }
1787
1788
1789 static const ber_sequence_t SEQUENCE_OF_Data_sequence_of[1] = {
1790   { &hf_mms_listOfData_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_Data },
1791 };
1792
1793 static int
1794 dissect_mms_SEQUENCE_OF_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1795   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1796                                       SEQUENCE_OF_Data_sequence_of, hf_index, ett_mms_SEQUENCE_OF_Data);
1797
1798   return offset;
1799 }
1800
1801
1802
1803 static int
1804 dissect_mms_BIT_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1805   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1806                                     NULL, hf_index, -1,
1807                                     NULL);
1808
1809   return offset;
1810 }
1811
1812
1813
1814 static int
1815 dissect_mms_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1816   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1817                                                 NULL);
1818
1819   return offset;
1820 }
1821
1822
1823
1824 static int
1825 dissect_mms_FloatingPoint(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1826   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1827                                        NULL);
1828
1829   return offset;
1830 }
1831
1832
1833
1834 static int
1835 dissect_mms_TimeOfDay(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1836 #line 50 "mms.cnf"
1837
1838         guint32 len;
1839         proto_item *cause;
1840         guint32 milliseconds;
1841         guint16 days;
1842         gchar * ptime;
1843         nstime_t ts;
1844
1845         len = tvb_length_remaining(tvb, offset);
1846
1847         if(len == 4)
1848         {
1849                 milliseconds = tvb_get_ntohl(tvb, offset);
1850                 ptime = time_msecs_to_str(milliseconds);
1851
1852                 if(hf_index >= 0)
1853                 {
1854                         proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
1855                 }
1856                 return offset;
1857         }
1858
1859         if(len == 6)
1860         {
1861                 milliseconds = tvb_get_ntohl(tvb, offset);
1862                 days = tvb_get_ntohs(tvb, offset+4);
1863
1864                 /* 5113 days between 01-01-1970 and 01-01-1984 */
1865                 /* 86400 seconds in one day */
1866
1867                 ts.secs = (days + 5113) * 86400 + milliseconds / 1000;
1868                 ts.nsecs = (milliseconds % 1000) * G_GINT64_CONSTANT(1000000U);
1869
1870                 ptime = abs_time_to_str(&ts, ABSOLUTE_TIME_UTC);
1871                 if(hf_index >= 0)
1872                 {
1873                         proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
1874                 }
1875
1876                 return offset;
1877         }
1878
1879         cause = proto_tree_add_text(tree, tvb, offset, len,
1880                         "BER Error: malformed TimeOfDay encoding, "
1881                         "length must be 4 or 6 bytes");
1882         proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
1883         expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "BER Error: malformed TimeOfDay encoding");
1884         if(hf_index >= 0)
1885         {
1886                 proto_tree_add_string(tree, hf_index, tvb, offset, len, "????");
1887         }
1888         return offset;
1889
1890
1891
1892
1893   return offset;
1894 }
1895
1896
1897
1898 static int
1899 dissect_mms_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1900   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1901
1902   return offset;
1903 }
1904
1905
1906
1907 static int
1908 dissect_mms_MMSString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1909   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTF8String,
1910                                             actx, tree, tvb, offset, hf_index,
1911                                             NULL);
1912
1913   return offset;
1914 }
1915
1916
1917
1918 static int
1919 dissect_mms_UtcTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1920 #line 105 "mms.cnf"
1921
1922         guint32 len;
1923         proto_item *cause;
1924         guint32 seconds;
1925         guint32 fraction;
1926         guint32 nanoseconds;
1927         nstime_t ts;
1928         gchar * ptime;
1929
1930         len = tvb_length_remaining(tvb, offset);
1931
1932         if(len != 8)
1933         {
1934                 cause = proto_tree_add_text(tree, tvb, offset, len,
1935                                 "BER Error: malformed IEC61850 UTCTime encoding, "
1936                                 "length must be 8 bytes");
1937                 proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
1938                 expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "BER Error: malformed IEC61850 UTCTime encoding");
1939                 if(hf_index >= 0)
1940                 {
1941                         proto_tree_add_string(tree, hf_index, tvb, offset, len, "????");
1942                 }
1943                 return offset;
1944         }
1945
1946         seconds = tvb_get_ntohl(tvb, offset);
1947         fraction = tvb_get_ntoh24(tvb, offset+4) * 0x100; /* Only 3 bytes are recommended */
1948         nanoseconds = (guint32)( ((guint64)fraction * G_GINT64_CONSTANT(1000000000U)) / G_GINT64_CONSTANT(0x100000000U) ) ;
1949
1950         ts.secs = seconds;
1951         ts.nsecs = nanoseconds;
1952
1953         ptime = abs_time_to_str(&ts, ABSOLUTE_TIME_UTC);
1954
1955         if(hf_index >= 0)
1956         {
1957                 proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
1958         }
1959
1960         return offset;
1961
1962
1963   return offset;
1964 }
1965
1966
1967 static const value_string mms_Data_vals[] = {
1968   {   1, "array" },
1969   {   2, "structure" },
1970   {   3, "boolean" },
1971   {   4, "bit-string" },
1972   {   5, "integer" },
1973   {   6, "unsigned" },
1974   {   7, "floating-point" },
1975   {   9, "octet-string" },
1976   {  10, "visible-string" },
1977   {  12, "binary-time" },
1978   {  13, "bcd" },
1979   {  14, "booleanArray" },
1980   {  15, "objId" },
1981   {  16, "mMSString" },
1982   {  17, "utc-time" },
1983   { 0, NULL }
1984 };
1985
1986 static const ber_choice_t Data_choice[] = {
1987   {   1, &hf_mms_array_01        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_Data },
1988   {   2, &hf_mms_structure_01    , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_Data },
1989   {   3, &hf_mms_boolean_01      , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
1990   {   4, &hf_mms_bit_string_01   , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_BIT_STRING },
1991   {   5, &hf_mms_integer_01      , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_INTEGER },
1992   {   6, &hf_mms_unsigned_01     , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_mms_INTEGER },
1993   {   7, &hf_mms_floating_point  , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_mms_FloatingPoint },
1994   {   9, &hf_mms_octet_string_01 , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_mms_OCTET_STRING },
1995   {  10, &hf_mms_visible_string_01, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_mms_VisibleString },
1996   {  12, &hf_mms_binary_time_01  , BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_mms_TimeOfDay },
1997   {  13, &hf_mms_bcd_01          , BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_mms_INTEGER },
1998   {  14, &hf_mms_booleanArray    , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_mms_BIT_STRING },
1999   {  15, &hf_mms_objId_01        , BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_mms_OBJECT_IDENTIFIER },
2000   {  16, &hf_mms_mMSString       , BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_mms_MMSString },
2001   {  17, &hf_mms_utc_time        , BER_CLASS_CON, 17, BER_FLAGS_IMPLTAG, dissect_mms_UtcTime },
2002   { 0, NULL, 0, 0, 0, NULL }
2003 };
2004
2005 static int
2006 dissect_mms_Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2007   offset = dissect_ber_choice(actx, tree, tvb, offset,
2008                                  Data_choice, hf_index, ett_mms_Data,
2009                                  NULL);
2010
2011   return offset;
2012 }
2013
2014
2015 static const ber_sequence_t Write_Request_sequence[] = {
2016   { &hf_mms_variableAccessSpecificatn, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_VariableAccessSpecification },
2017   { &hf_mms_listOfData      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_Data },
2018   { NULL, 0, 0, 0, NULL }
2019 };
2020
2021 static int
2022 dissect_mms_Write_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2023   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2024                                    Write_Request_sequence, hf_index, ett_mms_Write_Request);
2025
2026   return offset;
2027 }
2028
2029
2030 static const value_string mms_GetVariableAccessAttributes_Request_vals[] = {
2031   {   0, "name" },
2032   {   1, "address" },
2033   { 0, NULL }
2034 };
2035
2036 static const ber_choice_t GetVariableAccessAttributes_Request_choice[] = {
2037   {   0, &hf_mms_name            , BER_CLASS_CON, 0, 0, dissect_mms_ObjectName },
2038   {   1, &hf_mms_address         , BER_CLASS_CON, 1, 0, dissect_mms_Address },
2039   { 0, NULL, 0, 0, 0, NULL }
2040 };
2041
2042 static int
2043 dissect_mms_GetVariableAccessAttributes_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2044   offset = dissect_ber_choice(actx, tree, tvb, offset,
2045                                  GetVariableAccessAttributes_Request_choice, hf_index, ett_mms_GetVariableAccessAttributes_Request,
2046                                  NULL);
2047
2048   return offset;
2049 }
2050
2051
2052 static const ber_sequence_t DefineNamedVariable_Request_sequence[] = {
2053   { &hf_mms_variableName    , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
2054   { &hf_mms_address         , BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_mms_Address },
2055   { &hf_mms_typeSpecification, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_TypeSpecification },
2056   { NULL, 0, 0, 0, NULL }
2057 };
2058
2059 static int
2060 dissect_mms_DefineNamedVariable_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2061   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2062                                    DefineNamedVariable_Request_sequence, hf_index, ett_mms_DefineNamedVariable_Request);
2063
2064   return offset;
2065 }
2066
2067
2068 static const ber_sequence_t DefineScatteredAccess_Request_sequence[] = {
2069   { &hf_mms_scatteredAccessName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
2070   { &hf_mms_scatteredAccessDescription, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_ScatteredAccessDescription },
2071   { NULL, 0, 0, 0, NULL }
2072 };
2073
2074 static int
2075 dissect_mms_DefineScatteredAccess_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2076   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2077                                    DefineScatteredAccess_Request_sequence, hf_index, ett_mms_DefineScatteredAccess_Request);
2078
2079   return offset;
2080 }
2081
2082
2083
2084 static int
2085 dissect_mms_GetScatteredAccessAttributes_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2086   offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
2087
2088   return offset;
2089 }
2090
2091
2092 static const value_string mms_T_scopeOfDelete_vals[] = {
2093   {   0, "specific" },
2094   {   1, "aa-specific" },
2095   {   2, "domain" },
2096   {   3, "vmd" },
2097   { 0, NULL }
2098 };
2099
2100
2101 static int
2102 dissect_mms_T_scopeOfDelete(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2103   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2104                                                 NULL);
2105
2106   return offset;
2107 }
2108
2109
2110 static const ber_sequence_t SEQUENCE_OF_ObjectName_sequence_of[1] = {
2111   { &hf_mms_listOfName_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
2112 };
2113
2114 static int
2115 dissect_mms_SEQUENCE_OF_ObjectName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2116   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2117                                       SEQUENCE_OF_ObjectName_sequence_of, hf_index, ett_mms_SEQUENCE_OF_ObjectName);
2118
2119   return offset;
2120 }
2121
2122
2123 static const ber_sequence_t DeleteVariableAccess_Request_sequence[] = {
2124   { &hf_mms_scopeOfDelete   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_scopeOfDelete },
2125   { &hf_mms_listOfName      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_ObjectName },
2126   { &hf_mms_domainName      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
2127   { NULL, 0, 0, 0, NULL }
2128 };
2129
2130 static int
2131 dissect_mms_DeleteVariableAccess_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2132   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2133                                    DeleteVariableAccess_Request_sequence, hf_index, ett_mms_DeleteVariableAccess_Request);
2134
2135   return offset;
2136 }
2137
2138
2139 static const ber_sequence_t T_listOfVariable_item_sequence[] = {
2140   { &hf_mms_variableSpecification, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_VariableSpecification },
2141   { &hf_mms_alternateAccess , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_AlternateAccess },
2142   { NULL, 0, 0, 0, NULL }
2143 };
2144
2145 static int
2146 dissect_mms_T_listOfVariable_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2147   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2148                                    T_listOfVariable_item_sequence, hf_index, ett_mms_T_listOfVariable_item);
2149
2150   return offset;
2151 }
2152
2153
2154 static const ber_sequence_t T_listOfVariable_sequence_of[1] = {
2155   { &hf_mms_listOfVariable_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mms_T_listOfVariable_item },
2156 };
2157
2158 static int
2159 dissect_mms_T_listOfVariable(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2160   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2161                                       T_listOfVariable_sequence_of, hf_index, ett_mms_T_listOfVariable);
2162
2163   return offset;
2164 }
2165
2166
2167 static const ber_sequence_t DefineNamedVariableList_Request_sequence[] = {
2168   { &hf_mms_variableListName, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
2169   { &hf_mms_listOfVariable  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_listOfVariable },
2170   { NULL, 0, 0, 0, NULL }
2171 };
2172
2173 static int
2174 dissect_mms_DefineNamedVariableList_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2175   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2176                                    DefineNamedVariableList_Request_sequence, hf_index, ett_mms_DefineNamedVariableList_Request);
2177
2178   return offset;
2179 }
2180
2181
2182
2183 static int
2184 dissect_mms_GetNamedVariableListAttributes_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2185   offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
2186
2187   return offset;
2188 }
2189
2190
2191 static const value_string mms_T_scopeOfDelete_01_vals[] = {
2192   {   0, "specific" },
2193   {   1, "aa-specific" },
2194   {   2, "domain" },
2195   {   3, "vmd" },
2196   { 0, NULL }
2197 };
2198
2199
2200 static int
2201 dissect_mms_T_scopeOfDelete_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2202   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2203                                                 NULL);
2204
2205   return offset;
2206 }
2207
2208
2209 static const ber_sequence_t DeleteNamedVariableList_Request_sequence[] = {
2210   { &hf_mms_scopeOfDelete_01, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_scopeOfDelete_01 },
2211   { &hf_mms_listOfVariableListName, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_ObjectName },
2212   { &hf_mms_domainName      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
2213   { NULL, 0, 0, 0, NULL }
2214 };
2215
2216 static int
2217 dissect_mms_DeleteNamedVariableList_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2218   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2219                                    DeleteNamedVariableList_Request_sequence, hf_index, ett_mms_DeleteNamedVariableList_Request);
2220
2221   return offset;
2222 }
2223
2224
2225 static const ber_sequence_t DefineNamedType_Request_sequence[] = {
2226   { &hf_mms_typeName        , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
2227   { &hf_mms_typeSpecification, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_TypeSpecification },
2228   { NULL, 0, 0, 0, NULL }
2229 };
2230
2231 static int
2232 dissect_mms_DefineNamedType_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2233   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2234                                    DefineNamedType_Request_sequence, hf_index, ett_mms_DefineNamedType_Request);
2235
2236   return offset;
2237 }
2238
2239
2240
2241 static int
2242 dissect_mms_GetNamedTypeAttributes_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2243   offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
2244
2245   return offset;
2246 }
2247
2248
2249 static const value_string mms_T_scopeOfDelete_02_vals[] = {
2250   {   0, "specific" },
2251   {   1, "aa-specific" },
2252   {   2, "domain" },
2253   {   3, "vmd" },
2254   { 0, NULL }
2255 };
2256
2257
2258 static int
2259 dissect_mms_T_scopeOfDelete_02(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2260   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2261                                                 NULL);
2262
2263   return offset;
2264 }
2265
2266
2267 static const ber_sequence_t DeleteNamedType_Request_sequence[] = {
2268   { &hf_mms_scopeOfDelete_02, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_scopeOfDelete_02 },
2269   { &hf_mms_listOfTypeName  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_ObjectName },
2270   { &hf_mms_domainName      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
2271   { NULL, 0, 0, 0, NULL }
2272 };
2273
2274 static int
2275 dissect_mms_DeleteNamedType_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2276   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2277                                    DeleteNamedType_Request_sequence, hf_index, ett_mms_DeleteNamedType_Request);
2278
2279   return offset;
2280 }
2281
2282
2283 static const ber_sequence_t T_listOfPromptData_sequence_of[1] = {
2284   { &hf_mms_listOfPromptData_item, BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_VisibleString },
2285 };
2286
2287 static int
2288 dissect_mms_T_listOfPromptData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2289   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2290                                       T_listOfPromptData_sequence_of, hf_index, ett_mms_T_listOfPromptData);
2291
2292   return offset;
2293 }
2294
2295
2296 static const ber_sequence_t Input_Request_sequence[] = {
2297   { &hf_mms_operatorStationName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
2298   { &hf_mms_echo            , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
2299   { &hf_mms_listOfPromptData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_listOfPromptData },
2300   { &hf_mms_inputTimeOut    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
2301   { NULL, 0, 0, 0, NULL }
2302 };
2303
2304 static int
2305 dissect_mms_Input_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2306   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2307                                    Input_Request_sequence, hf_index, ett_mms_Input_Request);
2308
2309   return offset;
2310 }
2311
2312
2313 static const ber_sequence_t T_listOfOutputData_sequence_of[1] = {
2314   { &hf_mms_listOfOutputData_item, BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_VisibleString },
2315 };
2316
2317 static int
2318 dissect_mms_T_listOfOutputData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2319   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2320                                       T_listOfOutputData_sequence_of, hf_index, ett_mms_T_listOfOutputData);
2321
2322   return offset;
2323 }
2324
2325
2326 static const ber_sequence_t Output_Request_sequence[] = {
2327   { &hf_mms_operatorStationName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
2328   { &hf_mms_listOfOutputData, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_listOfOutputData },
2329   { NULL, 0, 0, 0, NULL }
2330 };
2331
2332 static int
2333 dissect_mms_Output_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2334   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2335                                    Output_Request_sequence, hf_index, ett_mms_Output_Request);
2336
2337   return offset;
2338 }
2339
2340
2341
2342 static int
2343 dissect_mms_T_ap_title(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2344 #line 27 "mms.cnf"
2345   offset=dissect_acse_AP_title(FALSE, tvb, offset, actx, tree, hf_mms_ap_title);
2346
2347
2348
2349   return offset;
2350 }
2351
2352
2353
2354 static int
2355 dissect_mms_T_ap_invocation_id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2356 #line 30 "mms.cnf"
2357   offset=dissect_acse_AP_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_mms_ap_invocation_id);
2358
2359
2360
2361   return offset;
2362 }
2363
2364
2365
2366 static int
2367 dissect_mms_T_ae_qualifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2368 #line 33 "mms.cnf"
2369   offset=dissect_acse_AE_qualifier(FALSE, tvb, offset, actx, tree, hf_mms_ae_qualifier);
2370
2371
2372
2373   return offset;
2374 }
2375
2376
2377
2378 static int
2379 dissect_mms_T_ae_invocation_id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2380 #line 36 "mms.cnf"
2381   offset=dissect_acse_AE_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_mms_ae_invocation_id);
2382
2383
2384
2385   return offset;
2386 }
2387
2388
2389 static const ber_sequence_t ApplicationReference_sequence[] = {
2390   { &hf_mms_ap_title        , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_mms_T_ap_title },
2391   { &hf_mms_ap_invocation_id, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_mms_T_ap_invocation_id },
2392   { &hf_mms_ae_qualifier    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_mms_T_ae_qualifier },
2393   { &hf_mms_ae_invocation_id, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_mms_T_ae_invocation_id },
2394   { NULL, 0, 0, 0, NULL }
2395 };
2396
2397 static int
2398 dissect_mms_ApplicationReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2399   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2400                                    ApplicationReference_sequence, hf_index, ett_mms_ApplicationReference);
2401
2402   return offset;
2403 }
2404
2405
2406 static const ber_sequence_t TakeControl_Request_sequence[] = {
2407   { &hf_mms_semaphoreName   , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
2408   { &hf_mms_namedToken      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
2409   { &hf_mms_priority        , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Priority },
2410   { &hf_mms_acceptableDelay , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
2411   { &hf_mms_controlTimeOut  , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
2412   { &hf_mms_abortOnTimeOut  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
2413   { &hf_mms_relinquishIfConnectionLost, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
2414   { &hf_mms_applicationToPreempt, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_ApplicationReference },
2415   { NULL, 0, 0, 0, NULL }
2416 };
2417
2418 static int
2419 dissect_mms_TakeControl_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2420   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2421                                    TakeControl_Request_sequence, hf_index, ett_mms_TakeControl_Request);
2422
2423   return offset;
2424 }
2425
2426
2427 static const ber_sequence_t RelinquishControl_Request_sequence[] = {
2428   { &hf_mms_semaphoreName   , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
2429   { &hf_mms_namedToken      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
2430   { NULL, 0, 0, 0, NULL }
2431 };
2432
2433 static int
2434 dissect_mms_RelinquishControl_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2435   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2436                                    RelinquishControl_Request_sequence, hf_index, ett_mms_RelinquishControl_Request);
2437
2438   return offset;
2439 }
2440
2441
2442
2443 static int
2444 dissect_mms_Unsigned16(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2445   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2446                                                 NULL);
2447
2448   return offset;
2449 }
2450
2451
2452 static const ber_sequence_t DefineSemaphore_Request_sequence[] = {
2453   { &hf_mms_semaphoreName   , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
2454   { &hf_mms_numbersOfTokens , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned16 },
2455   { NULL, 0, 0, 0, NULL }
2456 };
2457
2458 static int
2459 dissect_mms_DefineSemaphore_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2460   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2461                                    DefineSemaphore_Request_sequence, hf_index, ett_mms_DefineSemaphore_Request);
2462
2463   return offset;
2464 }
2465
2466
2467
2468 static int
2469 dissect_mms_DeleteSemaphore_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2470   offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
2471
2472   return offset;
2473 }
2474
2475
2476
2477 static int
2478 dissect_mms_ReportSemaphoreStatus_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2479   offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
2480
2481   return offset;
2482 }
2483
2484
2485 static const ber_sequence_t ReportPoolSemaphoreStatus_Request_sequence[] = {
2486   { &hf_mms_semaphoreName   , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
2487   { &hf_mms_nameToStartAfter, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
2488   { NULL, 0, 0, 0, NULL }
2489 };
2490
2491 static int
2492 dissect_mms_ReportPoolSemaphoreStatus_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2493   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2494                                    ReportPoolSemaphoreStatus_Request_sequence, hf_index, ett_mms_ReportPoolSemaphoreStatus_Request);
2495
2496   return offset;
2497 }
2498
2499
2500 static const value_string mms_T_state_vals[] = {
2501   {   0, "queued" },
2502   {   1, "owner" },
2503   {   2, "hung" },
2504   { 0, NULL }
2505 };
2506
2507
2508 static int
2509 dissect_mms_T_state(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2510   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2511                                                 NULL);
2512
2513   return offset;
2514 }
2515
2516
2517 static const ber_sequence_t ReportSemaphoreEntryStatus_Request_sequence[] = {
2518   { &hf_mms_semaphoreName   , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
2519   { &hf_mms_state_02        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_state },
2520   { &hf_mms_entryIdToStartAfter, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_OCTET_STRING },
2521   { NULL, 0, 0, 0, NULL }
2522 };
2523
2524 static int
2525 dissect_mms_ReportSemaphoreEntryStatus_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2526   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2527                                    ReportSemaphoreEntryStatus_Request_sequence, hf_index, ett_mms_ReportSemaphoreEntryStatus_Request);
2528
2529   return offset;
2530 }
2531
2532
2533 static const ber_sequence_t T_listOfCapabilities_01_sequence_of[1] = {
2534   { &hf_mms_listOfCapabilities_item, BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_VisibleString },
2535 };
2536
2537 static int
2538 dissect_mms_T_listOfCapabilities_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2539   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2540                                       T_listOfCapabilities_01_sequence_of, hf_index, ett_mms_T_listOfCapabilities_01);
2541
2542   return offset;
2543 }
2544
2545
2546 static const ber_sequence_t InitiateDownloadSequence_Request_sequence[] = {
2547   { &hf_mms_domainName      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
2548   { &hf_mms_listOfCapabilities_01, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_listOfCapabilities_01 },
2549   { &hf_mms_sharable        , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
2550   { NULL, 0, 0, 0, NULL }
2551 };
2552
2553 static int
2554 dissect_mms_InitiateDownloadSequence_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2555   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2556                                    InitiateDownloadSequence_Request_sequence, hf_index, ett_mms_InitiateDownloadSequence_Request);
2557
2558   return offset;
2559 }
2560
2561
2562
2563 static int
2564 dissect_mms_DownloadSegment_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2565   offset = dissect_mms_Identifier(implicit_tag, tvb, offset, actx, tree, hf_index);
2566
2567   return offset;
2568 }
2569
2570
2571 static const value_string mms_T_vmd_state_vals[] = {
2572   {   0, "other" },
2573   {   1, "vmd-state-conflict" },
2574   {   2, "vmd-operational-problem" },
2575   {   3, "domain-transfer-problem" },
2576   {   4, "state-machine-id-invalid" },
2577   { 0, NULL }
2578 };
2579
2580
2581 static int
2582 dissect_mms_T_vmd_state(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2583   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2584                                                 NULL);
2585
2586   return offset;
2587 }
2588
2589
2590 static const value_string mms_T_application_reference_vals[] = {
2591   {   0, "other" },
2592   {   1, "aplication-unreachable" },
2593   {   2, "connection-lost" },
2594   {   3, "application-reference-invalid" },
2595   {   4, "context-unsupported" },
2596   { 0, NULL }
2597 };
2598
2599
2600 static int
2601 dissect_mms_T_application_reference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2602   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2603                                                 NULL);
2604
2605   return offset;
2606 }
2607
2608
2609 static const value_string mms_T_definition_vals[] = {
2610   {   0, "other" },
2611   {   1, "object-undefined" },
2612   {   2, "invalid-address" },
2613   {   3, "type-unsupported" },
2614   {   4, "type-inconsistent" },
2615   {   5, "object-exists" },
2616   {   6, "object-attribute-inconsistent" },
2617   { 0, NULL }
2618 };
2619
2620
2621 static int
2622 dissect_mms_T_definition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2623   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2624                                                 NULL);
2625
2626   return offset;
2627 }
2628
2629
2630 static const value_string mms_T_resource_vals[] = {
2631   {   0, "other" },
2632   {   1, "memory-unavailable" },
2633   {   2, "processor-resource-unavailable" },
2634   {   3, "mass-storage-unavailable" },
2635   {   4, "capability-unavailable" },
2636   {   5, "capability-unknown" },
2637   { 0, NULL }
2638 };
2639
2640
2641 static int
2642 dissect_mms_T_resource(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2643   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2644                                                 NULL);
2645
2646   return offset;
2647 }
2648
2649
2650 static const value_string mms_T_service_vals[] = {
2651   {   0, "other" },
2652   {   1, "primitives-out-of-sequence" },
2653   {   2, "object-sate-conflict" },
2654   {   3, "pdu-size" },
2655   {   4, "continuation-invalid" },
2656   {   5, "object-constraint-conflict" },
2657   { 0, NULL }
2658 };
2659
2660
2661 static int
2662 dissect_mms_T_service(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2663   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2664                                                 NULL);
2665
2666   return offset;
2667 }
2668
2669
2670 static const value_string mms_T_service_preempt_vals[] = {
2671   {   0, "other" },
2672   {   1, "timeout" },
2673   {   2, "deadlock" },
2674   {   3, "cancel" },
2675   { 0, NULL }
2676 };
2677
2678
2679 static int
2680 dissect_mms_T_service_preempt(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2681   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2682                                                 NULL);
2683
2684   return offset;
2685 }
2686
2687
2688 static const value_string mms_T_time_resolution_vals[] = {
2689   {   0, "other" },
2690   {   1, "unsupportable-time-resolution" },
2691   { 0, NULL }
2692 };
2693
2694
2695 static int
2696 dissect_mms_T_time_resolution(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2697   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2698                                                 NULL);
2699
2700   return offset;
2701 }
2702
2703
2704 static const value_string mms_T_access_vals[] = {
2705   {   0, "other" },
2706   {   1, "object-access-unsupported" },
2707   {   2, "object-non-existent" },
2708   {   3, "object-access-denied" },
2709   {   4, "object-invalidated" },
2710   { 0, NULL }
2711 };
2712
2713
2714 static int
2715 dissect_mms_T_access(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2716   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2717                                                 NULL);
2718
2719   return offset;
2720 }
2721
2722
2723 static const value_string mms_T_initiate_vals[] = {
2724   {   0, "other" },
2725   {   1, "version-incompatible" },
2726   {   2, "max-segment-insufficient" },
2727   {   3, "max-services-outstanding-calling-insufficient" },
2728   {   4, "max-services-outstanding-called-insufficient" },
2729   {   5, "service-CBB-insufficient" },
2730   {   6, "parameter-CBB-insufficient" },
2731   {   7, "nesting-level-insufficient" },
2732   { 0, NULL }
2733 };
2734
2735
2736 static int
2737 dissect_mms_T_initiate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2738   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2739                                                 NULL);
2740
2741   return offset;
2742 }
2743
2744
2745 static const value_string mms_T_conclude_vals[] = {
2746   {   0, "other" },
2747   {   1, "further-communication-required" },
2748   { 0, NULL }
2749 };
2750
2751
2752 static int
2753 dissect_mms_T_conclude(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2754   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2755                                                 NULL);
2756
2757   return offset;
2758 }
2759
2760
2761 static const value_string mms_T_cancel_vals[] = {
2762   {   0, "other" },
2763   {   1, "invoke-id-unknown" },
2764   {   2, "cancel-not-possible" },
2765   { 0, NULL }
2766 };
2767
2768
2769 static int
2770 dissect_mms_T_cancel(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2771   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2772                                                 NULL);
2773
2774   return offset;
2775 }
2776
2777
2778 static const value_string mms_T_file_vals[] = {
2779   {   0, "other" },
2780   {   1, "filename-ambiguous" },
2781   {   2, "file-busy" },
2782   {   3, "filename-syntax-error" },
2783   {   4, "content-type-invalid" },
2784   {   5, "position-invalid" },
2785   {   6, "file-acces-denied" },
2786   {   7, "file-non-existent" },
2787   {   8, "duplicate-filename" },
2788   {   9, "insufficient-space-in-filestore" },
2789   { 0, NULL }
2790 };
2791
2792
2793 static int
2794 dissect_mms_T_file(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2795   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2796                                                 NULL);
2797
2798   return offset;
2799 }
2800
2801
2802 static const value_string mms_T_errorClass_vals[] = {
2803   {   0, "vmd-state" },
2804   {   1, "application-reference" },
2805   {   2, "definition" },
2806   {   3, "resource" },
2807   {   4, "service" },
2808   {   5, "service-preempt" },
2809   {   6, "time-resolution" },
2810   {   7, "access" },
2811   {   8, "initiate" },
2812   {   9, "conclude" },
2813   {  10, "cancel" },
2814   {  11, "file" },
2815   {  12, "others" },
2816   { 0, NULL }
2817 };
2818
2819 static const ber_choice_t T_errorClass_choice[] = {
2820   {   0, &hf_mms_vmd_state       , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_vmd_state },
2821   {   1, &hf_mms_application_reference, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_application_reference },
2822   {   2, &hf_mms_definition      , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_T_definition },
2823   {   3, &hf_mms_resource        , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_T_resource },
2824   {   4, &hf_mms_service         , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_T_service },
2825   {   5, &hf_mms_service_preempt , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_T_service_preempt },
2826   {   6, &hf_mms_time_resolution , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_mms_T_time_resolution },
2827   {   7, &hf_mms_access          , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_mms_T_access },
2828   {   8, &hf_mms_initiate        , BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_mms_T_initiate },
2829   {   9, &hf_mms_conclude        , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_mms_T_conclude },
2830   {  10, &hf_mms_cancel          , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_mms_T_cancel },
2831   {  11, &hf_mms_file            , BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_mms_T_file },
2832   {  12, &hf_mms_others          , BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_mms_INTEGER },
2833   { 0, NULL, 0, 0, 0, NULL }
2834 };
2835
2836 static int
2837 dissect_mms_T_errorClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2838   offset = dissect_ber_choice(actx, tree, tvb, offset,
2839                                  T_errorClass_choice, hf_index, ett_mms_T_errorClass,
2840                                  NULL);
2841
2842   return offset;
2843 }
2844
2845
2846 static const value_string mms_ObtainFile_Error_vals[] = {
2847   {   0, "source-file" },
2848   {   1, "destination-file" },
2849   { 0, NULL }
2850 };
2851
2852
2853 static int
2854 dissect_mms_ObtainFile_Error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2855   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2856                                                 NULL);
2857
2858   return offset;
2859 }
2860
2861
2862 static const value_string mms_ProgramInvocationState_vals[] = {
2863   {   0, "non-existent" },
2864   {   1, "unrunable" },
2865   {   2, "idle" },
2866   {   3, "running" },
2867   {   4, "stopped" },
2868   {   5, "starting" },
2869   {   6, "stopping" },
2870   {   7, "resuming" },
2871   {   8, "resetting" },
2872   { 0, NULL }
2873 };
2874
2875
2876 static int
2877 dissect_mms_ProgramInvocationState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2878   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2879                                                 NULL);
2880
2881   return offset;
2882 }
2883
2884
2885
2886 static int
2887 dissect_mms_Start_Error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2888   offset = dissect_mms_ProgramInvocationState(implicit_tag, tvb, offset, actx, tree, hf_index);
2889
2890   return offset;
2891 }
2892
2893
2894
2895 static int
2896 dissect_mms_Stop_Error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2897   offset = dissect_mms_ProgramInvocationState(implicit_tag, tvb, offset, actx, tree, hf_index);
2898
2899   return offset;
2900 }
2901
2902
2903
2904 static int
2905 dissect_mms_Resume_Error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2906   offset = dissect_mms_ProgramInvocationState(implicit_tag, tvb, offset, actx, tree, hf_index);
2907
2908   return offset;
2909 }
2910
2911
2912
2913 static int
2914 dissect_mms_Reset_Error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2915   offset = dissect_mms_ProgramInvocationState(implicit_tag, tvb, offset, actx, tree, hf_index);
2916
2917   return offset;
2918 }
2919
2920
2921
2922 static int
2923 dissect_mms_DeleteVariableAccess_Error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2924   offset = dissect_mms_Unsigned32(implicit_tag, tvb, offset, actx, tree, hf_index);
2925
2926   return offset;
2927 }
2928
2929
2930
2931 static int
2932 dissect_mms_DeleteNamedVariableList_Error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2933   offset = dissect_mms_Unsigned32(implicit_tag, tvb, offset, actx, tree, hf_index);
2934
2935   return offset;
2936 }
2937
2938
2939
2940 static int
2941 dissect_mms_DeleteNamedType_Error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2942   offset = dissect_mms_Unsigned32(implicit_tag, tvb, offset, actx, tree, hf_index);
2943
2944   return offset;
2945 }
2946
2947
2948
2949 static int
2950 dissect_mms_DefineEventEnrollment_Error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2951   offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
2952
2953   return offset;
2954 }
2955
2956
2957 static const value_string mms_FileRename_Error_vals[] = {
2958   {   0, "source-file" },
2959   {   1, "destination-file" },
2960   { 0, NULL }
2961 };
2962
2963
2964 static int
2965 dissect_mms_FileRename_Error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2966   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2967                                                 NULL);
2968
2969   return offset;
2970 }
2971
2972
2973 static const value_string mms_T_serviceSpecificInformation_vals[] = {
2974   {   0, "obtainFile" },
2975   {   1, "start" },
2976   {   2, "stop" },
2977   {   3, "resume" },
2978   {   4, "reset" },
2979   {   5, "deleteVariableAccess" },
2980   {   6, "deleteNamedVariableList" },
2981   {   7, "deleteNamedType" },
2982   {   8, "defineEventEnrollment-Error" },
2983   {   9, "fileRename" },
2984   { 0, NULL }
2985 };
2986
2987 static const ber_choice_t T_serviceSpecificInformation_choice[] = {
2988   {   0, &hf_mms_obtainFile_02   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_ObtainFile_Error },
2989   {   1, &hf_mms_start_02        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Start_Error },
2990   {   2, &hf_mms_stop_02         , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Stop_Error },
2991   {   3, &hf_mms_resume_02       , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_Resume_Error },
2992   {   4, &hf_mms_reset_02        , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_Reset_Error },
2993   {   5, &hf_mms_deleteVariableAccess_02, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_DeleteVariableAccess_Error },
2994   {   6, &hf_mms_deleteNamedVariableList_02, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_mms_DeleteNamedVariableList_Error },
2995   {   7, &hf_mms_deleteNamedType_02, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_mms_DeleteNamedType_Error },
2996   {   8, &hf_mms_defineEventEnrollment_Error, BER_CLASS_CON, 8, 0, dissect_mms_DefineEventEnrollment_Error },
2997   {   9, &hf_mms_fileRename_02   , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_mms_FileRename_Error },
2998   { 0, NULL, 0, 0, 0, NULL }
2999 };
3000
3001 static int
3002 dissect_mms_T_serviceSpecificInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3003   offset = dissect_ber_choice(actx, tree, tvb, offset,
3004                                  T_serviceSpecificInformation_choice, hf_index, ett_mms_T_serviceSpecificInformation,
3005                                  NULL);
3006
3007   return offset;
3008 }
3009
3010
3011 static const ber_sequence_t ServiceError_sequence[] = {
3012   { &hf_mms_errorClass      , BER_CLASS_CON, 0, 0, dissect_mms_T_errorClass },
3013   { &hf_mms_additionalCode  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_INTEGER },
3014   { &hf_mms_additionalDescription, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_VisibleString },
3015   { &hf_mms_serviceSpecificInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_mms_T_serviceSpecificInformation },
3016   { NULL, 0, 0, 0, NULL }
3017 };
3018
3019 static int
3020 dissect_mms_ServiceError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3021   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3022                                    ServiceError_sequence, hf_index, ett_mms_ServiceError);
3023
3024   return offset;
3025 }
3026
3027
3028 static const ber_sequence_t TerminateDownloadSequence_Request_sequence[] = {
3029   { &hf_mms_domainName      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3030   { &hf_mms_discard         , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_ServiceError },
3031   { NULL, 0, 0, 0, NULL }
3032 };
3033
3034 static int
3035 dissect_mms_TerminateDownloadSequence_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3036   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3037                                    TerminateDownloadSequence_Request_sequence, hf_index, ett_mms_TerminateDownloadSequence_Request);
3038
3039   return offset;
3040 }
3041
3042
3043
3044 static int
3045 dissect_mms_InitiateUploadSequence_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3046   offset = dissect_mms_Identifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3047
3048   return offset;
3049 }
3050
3051
3052
3053 static int
3054 dissect_mms_UploadSegment_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3055   offset = dissect_mms_Integer32(implicit_tag, tvb, offset, actx, tree, hf_index);
3056
3057   return offset;
3058 }
3059
3060
3061
3062 static int
3063 dissect_mms_TerminateUploadSequence_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3064   offset = dissect_mms_Integer32(implicit_tag, tvb, offset, actx, tree, hf_index);
3065
3066   return offset;
3067 }
3068
3069
3070 static const ber_sequence_t T_listOfCapabilities_03_sequence_of[1] = {
3071   { &hf_mms_listOfCapabilities_item, BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_VisibleString },
3072 };
3073
3074 static int
3075 dissect_mms_T_listOfCapabilities_03(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3076   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3077                                       T_listOfCapabilities_03_sequence_of, hf_index, ett_mms_T_listOfCapabilities_03);
3078
3079   return offset;
3080 }
3081
3082
3083
3084 static int
3085 dissect_mms_GraphicString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3086   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString,
3087                                             actx, tree, tvb, offset, hf_index,
3088                                             NULL);
3089
3090   return offset;
3091 }
3092
3093
3094 static const ber_sequence_t FileName_sequence_of[1] = {
3095   { &hf_mms_FileName_item   , BER_CLASS_UNI, BER_UNI_TAG_GraphicString, BER_FLAGS_NOOWNTAG, dissect_mms_GraphicString },
3096 };
3097
3098 static int
3099 dissect_mms_FileName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3100   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3101                                       FileName_sequence_of, hf_index, ett_mms_FileName);
3102
3103   return offset;
3104 }
3105
3106
3107 static const ber_sequence_t RequestDomainDownload_Request_sequence[] = {
3108   { &hf_mms_domainName      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3109   { &hf_mms_listOfCapabilities_03, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_listOfCapabilities_03 },
3110   { &hf_mms_sharable        , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
3111   { &hf_mms_fileName        , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_FileName },
3112   { NULL, 0, 0, 0, NULL }
3113 };
3114
3115 static int
3116 dissect_mms_RequestDomainDownload_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3117   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3118                                    RequestDomainDownload_Request_sequence, hf_index, ett_mms_RequestDomainDownload_Request);
3119
3120   return offset;
3121 }
3122
3123
3124 static const ber_sequence_t RequestDomainUpload_Request_sequence[] = {
3125   { &hf_mms_domainName      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3126   { &hf_mms_fileName        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_FileName },
3127   { NULL, 0, 0, 0, NULL }
3128 };
3129
3130 static int
3131 dissect_mms_RequestDomainUpload_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3132   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3133                                    RequestDomainUpload_Request_sequence, hf_index, ett_mms_RequestDomainUpload_Request);
3134
3135   return offset;
3136 }
3137
3138
3139 static const ber_sequence_t T_listOfCapabilities_04_sequence_of[1] = {
3140   { &hf_mms_listOfCapabilities_item, BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_VisibleString },
3141 };
3142
3143 static int
3144 dissect_mms_T_listOfCapabilities_04(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3145   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3146                                       T_listOfCapabilities_04_sequence_of, hf_index, ett_mms_T_listOfCapabilities_04);
3147
3148   return offset;
3149 }
3150
3151
3152 static const ber_sequence_t LoadDomainContent_Request_sequence[] = {
3153   { &hf_mms_domainName      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3154   { &hf_mms_listOfCapabilities_04, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_listOfCapabilities_04 },
3155   { &hf_mms_sharable        , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
3156   { &hf_mms_fileName        , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_FileName },
3157   { &hf_mms_thirdParty      , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_ApplicationReference },
3158   { NULL, 0, 0, 0, NULL }
3159 };
3160
3161 static int
3162 dissect_mms_LoadDomainContent_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3163   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3164                                    LoadDomainContent_Request_sequence, hf_index, ett_mms_LoadDomainContent_Request);
3165
3166   return offset;
3167 }
3168
3169
3170 static const ber_sequence_t StoreDomainContent_Request_sequence[] = {
3171   { &hf_mms_domainName      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3172   { &hf_mms_filenName       , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_FileName },
3173   { &hf_mms_thirdParty      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_ApplicationReference },
3174   { NULL, 0, 0, 0, NULL }
3175 };
3176
3177 static int
3178 dissect_mms_StoreDomainContent_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3179   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3180                                    StoreDomainContent_Request_sequence, hf_index, ett_mms_StoreDomainContent_Request);
3181
3182   return offset;
3183 }
3184
3185
3186
3187 static int
3188 dissect_mms_DeleteDomain_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3189   offset = dissect_mms_Identifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3190
3191   return offset;
3192 }
3193
3194
3195
3196 static int
3197 dissect_mms_GetDomainAttributes_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3198   offset = dissect_mms_Identifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3199
3200   return offset;
3201 }
3202
3203
3204 static const ber_sequence_t SEQUENCE_OF_Identifier_sequence_of[1] = {
3205   { &hf_mms_listOfIdentifier_item, BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_Identifier },
3206 };
3207
3208 static int
3209 dissect_mms_SEQUENCE_OF_Identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3210   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3211                                       SEQUENCE_OF_Identifier_sequence_of, hf_index, ett_mms_SEQUENCE_OF_Identifier);
3212
3213   return offset;
3214 }
3215
3216
3217 static const ber_sequence_t CreateProgramInvocation_Request_sequence[] = {
3218   { &hf_mms_programInvocationName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3219   { &hf_mms_listOfDomainName, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_Identifier },
3220   { &hf_mms_reusable        , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
3221   { &hf_mms_monitorType     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
3222   { NULL, 0, 0, 0, NULL }
3223 };
3224
3225 static int
3226 dissect_mms_CreateProgramInvocation_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3227   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3228                                    CreateProgramInvocation_Request_sequence, hf_index, ett_mms_CreateProgramInvocation_Request);
3229
3230   return offset;
3231 }
3232
3233
3234
3235 static int
3236 dissect_mms_DeleteProgramInvocation_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3237   offset = dissect_mms_Identifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3238
3239   return offset;
3240 }
3241
3242
3243 static const value_string mms_T_executionArgument_vals[] = {
3244   {   0, "simpleString" },
3245   {   1, "encodedString" },
3246   { 0, NULL }
3247 };
3248
3249 static const ber_choice_t T_executionArgument_choice[] = {
3250   {   0, &hf_mms_simpleString    , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_VisibleString },
3251   {   1, &hf_mms_encodedString   , BER_CLASS_UNI, 8, BER_FLAGS_NOOWNTAG, dissect_acse_EXTERNALt },
3252   { 0, NULL, 0, 0, 0, NULL }
3253 };
3254
3255 static int
3256 dissect_mms_T_executionArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3257   offset = dissect_ber_choice(actx, tree, tvb, offset,
3258                                  T_executionArgument_choice, hf_index, ett_mms_T_executionArgument,
3259                                  NULL);
3260
3261   return offset;
3262 }
3263
3264
3265 static const ber_sequence_t Start_Request_sequence[] = {
3266   { &hf_mms_programInvocationName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3267   { &hf_mms_executionArgument, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_T_executionArgument },
3268   { NULL, 0, 0, 0, NULL }
3269 };
3270
3271 static int
3272 dissect_mms_Start_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3273   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3274                                    Start_Request_sequence, hf_index, ett_mms_Start_Request);
3275
3276   return offset;
3277 }
3278
3279
3280 static const ber_sequence_t Stop_Request_sequence[] = {
3281   { &hf_mms_programInvocationName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3282   { NULL, 0, 0, 0, NULL }
3283 };
3284
3285 static int
3286 dissect_mms_Stop_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3287   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3288                                    Stop_Request_sequence, hf_index, ett_mms_Stop_Request);
3289
3290   return offset;
3291 }
3292
3293
3294 static const value_string mms_T_executionArgument_01_vals[] = {
3295   {   0, "simpleString" },
3296   {   1, "encodedString" },
3297   { 0, NULL }
3298 };
3299
3300 static const ber_choice_t T_executionArgument_01_choice[] = {
3301   {   0, &hf_mms_simpleString    , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_VisibleString },
3302   {   1, &hf_mms_encodedString   , BER_CLASS_UNI, 8, BER_FLAGS_NOOWNTAG, dissect_acse_EXTERNALt },
3303   { 0, NULL, 0, 0, 0, NULL }
3304 };
3305
3306 static int
3307 dissect_mms_T_executionArgument_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3308   offset = dissect_ber_choice(actx, tree, tvb, offset,
3309                                  T_executionArgument_01_choice, hf_index, ett_mms_T_executionArgument_01,
3310                                  NULL);
3311
3312   return offset;
3313 }
3314
3315
3316 static const ber_sequence_t Resume_Request_sequence[] = {
3317   { &hf_mms_programInvocationName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3318   { &hf_mms_executionArgument_01, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_T_executionArgument_01 },
3319   { NULL, 0, 0, 0, NULL }
3320 };
3321
3322 static int
3323 dissect_mms_Resume_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3324   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3325                                    Resume_Request_sequence, hf_index, ett_mms_Resume_Request);
3326
3327   return offset;
3328 }
3329
3330
3331 static const ber_sequence_t Reset_Request_sequence[] = {
3332   { &hf_mms_programInvocationName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3333   { NULL, 0, 0, 0, NULL }
3334 };
3335
3336 static int
3337 dissect_mms_Reset_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3338   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3339                                    Reset_Request_sequence, hf_index, ett_mms_Reset_Request);
3340
3341   return offset;
3342 }
3343
3344
3345 static const ber_sequence_t Kill_Request_sequence[] = {
3346   { &hf_mms_programInvocationName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3347   { NULL, 0, 0, 0, NULL }
3348 };
3349
3350 static int
3351 dissect_mms_Kill_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3352   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3353                                    Kill_Request_sequence, hf_index, ett_mms_Kill_Request);
3354
3355   return offset;
3356 }
3357
3358
3359
3360 static int
3361 dissect_mms_GetProgramInvocationAttributes_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3362   offset = dissect_mms_Identifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3363
3364   return offset;
3365 }
3366
3367
3368 static const ber_sequence_t ObtainFile_Request_sequence[] = {
3369   { &hf_mms_sourceFileServer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_ApplicationReference },
3370   { &hf_mms_sourceFile      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_FileName },
3371   { &hf_mms_destinationFile , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_FileName },
3372   { NULL, 0, 0, 0, NULL }
3373 };
3374
3375 static int
3376 dissect_mms_ObtainFile_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3377   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3378                                    ObtainFile_Request_sequence, hf_index, ett_mms_ObtainFile_Request);
3379
3380   return offset;
3381 }
3382
3383
3384 static const value_string mms_EC_Class_vals[] = {
3385   {   0, "network-triggered" },
3386   {   1, "monitored" },
3387   { 0, NULL }
3388 };
3389
3390
3391 static int
3392 dissect_mms_EC_Class(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3393   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3394                                                 NULL);
3395
3396   return offset;
3397 }
3398
3399
3400 static const ber_sequence_t DefineEventCondition_Request_sequence[] = {
3401   { &hf_mms_eventConditionName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3402   { &hf_mms_class_01        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_EC_Class },
3403   { &hf_mms_prio_rity       , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Priority },
3404   { &hf_mms_severity        , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned8 },
3405   { &hf_mms_alarmSummaryReports, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
3406   { &hf_mms_monitoredVariable, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_VariableSpecification },
3407   { &hf_mms_evaluationInterval, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
3408   { NULL, 0, 0, 0, NULL }
3409 };
3410
3411 static int
3412 dissect_mms_DefineEventCondition_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3413   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3414                                    DefineEventCondition_Request_sequence, hf_index, ett_mms_DefineEventCondition_Request);
3415
3416   return offset;
3417 }
3418
3419
3420 static const value_string mms_DeleteEventCondition_Request_vals[] = {
3421   {   0, "specific" },
3422   {   1, "aa-specific" },
3423   {   2, "domain" },
3424   {   3, "vmd" },
3425   { 0, NULL }
3426 };
3427
3428 static const ber_choice_t DeleteEventCondition_Request_choice[] = {
3429   {   0, &hf_mms_specific        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_ObjectName },
3430   {   1, &hf_mms_aa_specific_01  , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
3431   {   2, &hf_mms_domain          , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3432   {   3, &hf_mms_vmd             , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
3433   { 0, NULL, 0, 0, 0, NULL }
3434 };
3435
3436 static int
3437 dissect_mms_DeleteEventCondition_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3438   offset = dissect_ber_choice(actx, tree, tvb, offset,
3439                                  DeleteEventCondition_Request_choice, hf_index, ett_mms_DeleteEventCondition_Request,
3440                                  NULL);
3441
3442   return offset;
3443 }
3444
3445
3446
3447 static int
3448 dissect_mms_GetEventConditionAttributes_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3449   offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
3450
3451   return offset;
3452 }
3453
3454
3455
3456 static int
3457 dissect_mms_ReportEventConditionStatus_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3458   offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
3459
3460   return offset;
3461 }
3462
3463
3464 static const ber_sequence_t AlterEventConditionMonitoring_Request_sequence[] = {
3465   { &hf_mms_eventConditionName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3466   { &hf_mms_enabled         , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
3467   { &hf_mms_priority        , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Priority },
3468   { &hf_mms_alarmSummaryReports, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
3469   { &hf_mms_evaluationInterval, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
3470   { NULL, 0, 0, 0, NULL }
3471 };
3472
3473 static int
3474 dissect_mms_AlterEventConditionMonitoring_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3475   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3476                                    AlterEventConditionMonitoring_Request_sequence, hf_index, ett_mms_AlterEventConditionMonitoring_Request);
3477
3478   return offset;
3479 }
3480
3481
3482 static const ber_sequence_t TriggerEvent_Request_sequence[] = {
3483   { &hf_mms_eventConditionName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3484   { &hf_mms_priority        , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Priority },
3485   { NULL, 0, 0, 0, NULL }
3486 };
3487
3488 static int
3489 dissect_mms_TriggerEvent_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3490   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3491                                    TriggerEvent_Request_sequence, hf_index, ett_mms_TriggerEvent_Request);
3492
3493   return offset;
3494 }
3495
3496
3497 static const ber_sequence_t DefineEventAction_Request_sequence[] = {
3498   { &hf_mms_eventActionName , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3499   { &hf_mms_listOfModifier  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_Modifier },
3500   { NULL, 0, 0, 0, NULL }
3501 };
3502
3503 static int
3504 dissect_mms_DefineEventAction_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3505   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3506                                    DefineEventAction_Request_sequence, hf_index, ett_mms_DefineEventAction_Request);
3507
3508   return offset;
3509 }
3510
3511
3512 static const value_string mms_DeleteEventAction_Request_vals[] = {
3513   {   0, "specific" },
3514   {   1, "aa-specific" },
3515   {   3, "domain" },
3516   {   4, "vmd" },
3517   { 0, NULL }
3518 };
3519
3520 static const ber_choice_t DeleteEventAction_Request_choice[] = {
3521   {   0, &hf_mms_specific        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_ObjectName },
3522   {   1, &hf_mms_aa_specific_01  , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
3523   {   3, &hf_mms_domain          , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3524   {   4, &hf_mms_vmd             , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
3525   { 0, NULL, 0, 0, 0, NULL }
3526 };
3527
3528 static int
3529 dissect_mms_DeleteEventAction_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3530   offset = dissect_ber_choice(actx, tree, tvb, offset,
3531                                  DeleteEventAction_Request_choice, hf_index, ett_mms_DeleteEventAction_Request,
3532                                  NULL);
3533
3534   return offset;
3535 }
3536
3537
3538
3539 static int
3540 dissect_mms_GetEventActionAttributes_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3541   offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
3542
3543   return offset;
3544 }
3545
3546
3547
3548 static int
3549 dissect_mms_ReportEventActionStatus_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3550   offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
3551
3552   return offset;
3553 }
3554
3555
3556 static const value_string mms_AlarmAckRule_vals[] = {
3557   {   0, "none" },
3558   {   1, "simple" },
3559   {   2, "ack-active" },
3560   {   3, "ack-all" },
3561   { 0, NULL }
3562 };
3563
3564
3565 static int
3566 dissect_mms_AlarmAckRule(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3567   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3568                                                 NULL);
3569
3570   return offset;
3571 }
3572
3573
3574 static const ber_sequence_t DefineEventEnrollment_Request_sequence[] = {
3575   { &hf_mms_eventEnrollmentName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3576   { &hf_mms_eventConditionName, BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3577   { &hf_mms_eventConditionTransition, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Transitions },
3578   { &hf_mms_alarmAcknowledgementRule, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_AlarmAckRule },
3579   { &hf_mms_eventActionName , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3580   { &hf_mms_clientApplication, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_mms_ApplicationReference },
3581   { NULL, 0, 0, 0, NULL }
3582 };
3583
3584 static int
3585 dissect_mms_DefineEventEnrollment_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3586   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3587                                    DefineEventEnrollment_Request_sequence, hf_index, ett_mms_DefineEventEnrollment_Request);
3588
3589   return offset;
3590 }
3591
3592
3593 static const value_string mms_DeleteEventEnrollment_Request_vals[] = {
3594   {   0, "specific" },
3595   {   1, "ec" },
3596   {   2, "ea" },
3597   { 0, NULL }
3598 };
3599
3600 static const ber_choice_t DeleteEventEnrollment_Request_choice[] = {
3601   {   0, &hf_mms_specific        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_ObjectName },
3602   {   1, &hf_mms_ec              , BER_CLASS_CON, 1, 0, dissect_mms_ObjectName },
3603   {   2, &hf_mms_ea              , BER_CLASS_CON, 2, 0, dissect_mms_ObjectName },
3604   { 0, NULL, 0, 0, 0, NULL }
3605 };
3606
3607 static int
3608 dissect_mms_DeleteEventEnrollment_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3609   offset = dissect_ber_choice(actx, tree, tvb, offset,
3610                                  DeleteEventEnrollment_Request_choice, hf_index, ett_mms_DeleteEventEnrollment_Request,
3611                                  NULL);
3612
3613   return offset;
3614 }
3615
3616
3617 static const ber_sequence_t AlterEventEnrollment_Request_sequence[] = {
3618   { &hf_mms_eventEnrollmentName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3619   { &hf_mms_eventConditionTransitions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Transitions },
3620   { &hf_mms_alarmAcknowledgmentRule, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_AlarmAckRule },
3621   { NULL, 0, 0, 0, NULL }
3622 };
3623
3624 static int
3625 dissect_mms_AlterEventEnrollment_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3626   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3627                                    AlterEventEnrollment_Request_sequence, hf_index, ett_mms_AlterEventEnrollment_Request);
3628
3629   return offset;
3630 }
3631
3632
3633
3634 static int
3635 dissect_mms_ReportEventEnrollmentStatus_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3636   offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
3637
3638   return offset;
3639 }
3640
3641
3642 static const value_string mms_T_scopeOfRequest_vals[] = {
3643   {   0, "specific" },
3644   {   1, "client" },
3645   {   2, "ec" },
3646   {   3, "ea" },
3647   { 0, NULL }
3648 };
3649
3650
3651 static int
3652 dissect_mms_T_scopeOfRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3653   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3654                                                 NULL);
3655
3656   return offset;
3657 }
3658
3659
3660 static const ber_sequence_t GetEventEnrollmentAttributes_Request_sequence[] = {
3661   { &hf_mms_scopeOfRequest  , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_scopeOfRequest },
3662   { &hf_mms_eventEnrollmentNames, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_ObjectName },
3663   { &hf_mms_clientApplication, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_mms_ApplicationReference },
3664   { &hf_mms_eventConditionName, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3665   { &hf_mms_eventActionName , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3666   { &hf_mms_continueAfter_02, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3667   { NULL, 0, 0, 0, NULL }
3668 };
3669
3670 static int
3671 dissect_mms_GetEventEnrollmentAttributes_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3672   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3673                                    GetEventEnrollmentAttributes_Request_sequence, hf_index, ett_mms_GetEventEnrollmentAttributes_Request);
3674
3675   return offset;
3676 }
3677
3678
3679 static const value_string mms_EC_State_vals[] = {
3680   {   0, "disabled" },
3681   {   1, "idle" },
3682   {   2, "active" },
3683   { 0, NULL }
3684 };
3685
3686
3687 static int
3688 dissect_mms_EC_State(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3689   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3690                                                 NULL);
3691
3692   return offset;
3693 }
3694
3695
3696 static const value_string mms_EventTime_vals[] = {
3697   {   0, "timeOfDayT" },
3698   {   1, "timeSequenceIdentifier" },
3699   { 0, NULL }
3700 };
3701
3702 static const ber_choice_t EventTime_choice[] = {
3703   {   0, &hf_mms_timeOfDayT      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_TimeOfDay },
3704   {   1, &hf_mms_timeSequenceIdentifier, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
3705   { 0, NULL, 0, 0, 0, NULL }
3706 };
3707
3708 static int
3709 dissect_mms_EventTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3710   offset = dissect_ber_choice(actx, tree, tvb, offset,
3711                                  EventTime_choice, hf_index, ett_mms_EventTime,
3712                                  NULL);
3713
3714   return offset;
3715 }
3716
3717
3718 static const ber_sequence_t AcknowledgeEventNotification_Request_sequence[] = {
3719   { &hf_mms_eventEnrollmentName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3720   { &hf_mms_acknowledgedState, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_EC_State },
3721   { &hf_mms_timeOfAcknowledgedTransition, BER_CLASS_CON, 3, BER_FLAGS_NOTCHKTAG, dissect_mms_EventTime },
3722   { NULL, 0, 0, 0, NULL }
3723 };
3724
3725 static int
3726 dissect_mms_AcknowledgeEventNotification_Request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3727   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3728                                    AcknowledgeEventNotification_Request_sequence, hf_index, ett_mms_AcknowledgeEventNotification_Request);
3729