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