Coverage Report

Created: 2026-06-30 07:22

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/wireshark/epan/dissectors/packet-mms.c
Line
Count
Source
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
/* asn2wrs.py -b -q -L -p mms -c ./mms.cnf -s ./packet-mms-template -D . -O ../.. mms.asn */
5
6
/* packet-mms_asn1.c
7
 *
8
 * Ronnie Sahlberg 2005
9
 *
10
 * Wireshark - Network traffic analyzer
11
 * By Gerald Combs <gerald@wireshark.org>
12
 * Copyright 1998 Gerald Combs
13
 *
14
 * SPDX-License-Identifier: GPL-2.0-or-later
15
 */
16
17
#include "config.h"
18
19
#include <epan/packet.h>
20
#include <epan/prefs.h>
21
#include <epan/asn1.h>
22
#include <epan/expert.h>
23
#include <epan/proto_data.h>
24
#include <epan/conversation.h>
25
#include <wsutil/array.h>
26
27
#include "packet-ber.h"
28
#include "packet-acse.h"
29
#include "packet-mms.h"
30
31
void proto_register_mms(void);
32
void proto_reg_handoff_mms(void);
33
34
static bool use_iec61850_mapping = true;
35
36
/* Initialize the protocol and registered fields */
37
static int proto_mms;
38
39
/* Conversation */
40
static int hf_mms_response_in;
41
static int hf_mms_response_to;
42
static int hf_mms_response_time;
43
44
/* IEC 61850-8-1 filters */
45
static int hf_mms_iec61850_rptid;
46
static int hf_mms_iec61850_reported_optflds;
47
static int hf_mms_iec61850_seqnum;
48
static int hf_mms_iec61850_timeofentry;
49
static int hf_mms_iec61850_datset;
50
static int hf_mms_iec61850_bufovfl;
51
static int hf_mms_iec61850_confrev;
52
static int hf_mms_iec61850_inclusion_bitstring;
53
static int hf_mms_iec61850_ctlModel;
54
55
static int hf_mms_iec61850_QualityC0;
56
static int hf_mms_iec61850_Quality20;
57
static int hf_mms_iec61850_Quality10;
58
static int hf_mms_iec61850_Quality8;
59
static int hf_mms_iec61850_Quality4;
60
static int hf_mms_iec61850_Quality2;
61
static int hf_mms_iec61850_Quality1;
62
static int hf_mms_iec61850_Quality0080;
63
static int hf_mms_iec61850_Quality0040;
64
static int hf_mms_iec61850_Quality0020;
65
static int hf_mms_iec61850_Quality0010;
66
static int hf_mms_iec61850_Quality0008;
67
static int hf_mms_iec61850_quality_bitstring;
68
static int hf_mms_iec61850_timequality80;
69
static int hf_mms_iec61850_timequality40;
70
static int hf_mms_iec61850_timequality20;
71
static int hf_mms_iec61850_timequality1F;
72
static int hf_mms_iec61850_check_bitstring;
73
static int hf_mms_iec61850_check_b15;
74
static int hf_mms_iec61850_check_b14;
75
static int hf_mms_iec61850_check_b13_b0;
76
static int hf_mms_iec61850_orcategory;
77
static int hf_mms_iec61850_beh$stval;
78
static int hf_mms_iec61850_mod$stval;
79
static int hf_mms_iec61850_health$stval;
80
static int hf_mms_iec61850_ctlval;
81
static int hf_mms_iec61850_origin;
82
static int hf_mms_iec61850_origin_orcat;
83
static int hf_mms_iec61850_origin_orident;
84
static int hf_mms_iec61850_ctlNum;
85
static int hf_mms_iec61850_T;
86
static int hf_mms_iec61850_test;
87
88
static int hf_mms_confirmed_RequestPDU;           /* Confirmed_RequestPDU */
89
static int hf_mms_confirmed_ResponsePDU;          /* Confirmed_ResponsePDU */
90
static int hf_mms_confirmed_ErrorPDU;             /* Confirmed_ErrorPDU */
91
static int hf_mms_unconfirmed_PDU;                /* Unconfirmed_PDU */
92
static int hf_mms_rejectPDU;                      /* RejectPDU */
93
static int hf_mms_cancel_RequestPDU;              /* Cancel_RequestPDU */
94
static int hf_mms_cancel_ResponsePDU;             /* Cancel_ResponsePDU */
95
static int hf_mms_cancel_ErrorPDU;                /* Cancel_ErrorPDU */
96
static int hf_mms_initiate_RequestPDU;            /* Initiate_RequestPDU */
97
static int hf_mms_initiate_ResponsePDU;           /* Initiate_ResponsePDU */
98
static int hf_mms_initiate_ErrorPDU;              /* Initiate_ErrorPDU */
99
static int hf_mms_conclude_RequestPDU;            /* Conclude_RequestPDU */
100
static int hf_mms_conclude_ResponsePDU;           /* Conclude_ResponsePDU */
101
static int hf_mms_conclude_ErrorPDU;              /* Conclude_ErrorPDU */
102
static int hf_mms_invokeID;                       /* Unsigned32 */
103
static int hf_mms_listOfModifier;                 /* SEQUENCE_OF_Modifier */
104
static int hf_mms_listOfModifier_item;            /* Modifier */
105
static int hf_mms_confirmedServiceRequest;        /* ConfirmedServiceRequest */
106
static int hf_mms_cs_request_detail;              /* CS_Request_Detail */
107
static int hf_mms_unconfirmedService;             /* UnconfirmedService */
108
static int hf_mms_confirmedServiceResponse;       /* ConfirmedServiceResponse */
109
static int hf_mms_modifierPosition;               /* Unsigned32 */
110
static int hf_mms_serviceError;                   /* ServiceError */
111
static int hf_mms_informationReport;              /* InformationReport */
112
static int hf_mms_unsolicitedStatus;              /* UnsolicitedStatus */
113
static int hf_mms_eventNotification;              /* EventNotification */
114
static int hf_mms_attach_To_Event_Condition;      /* AttachToEventCondition */
115
static int hf_mms_attach_To_Semaphore;            /* AttachToSemaphore */
116
static int hf_mms_status;                         /* Status_Request */
117
static int hf_mms_getNameList;                    /* GetNameList_Request */
118
static int hf_mms_identify;                       /* Identify_Request */
119
static int hf_mms_rename;                         /* Rename_Request */
120
static int hf_mms_read;                           /* Read_Request */
121
static int hf_mms_write;                          /* Write_Request */
122
static int hf_mms_getVariableAccessAttributes;    /* GetVariableAccessAttributes_Request */
123
static int hf_mms_defineNamedVariable;            /* DefineNamedVariable_Request */
124
static int hf_mms_defineScatteredAccess;          /* DefineScatteredAccess_Request */
125
static int hf_mms_getScatteredAccessAttributes;   /* GetScatteredAccessAttributes_Request */
126
static int hf_mms_deleteVariableAccess;           /* DeleteVariableAccess_Request */
127
static int hf_mms_defineNamedVariableList;        /* DefineNamedVariableList_Request */
128
static int hf_mms_getNamedVariableListAttributes;  /* GetNamedVariableListAttributes_Request */
129
static int hf_mms_deleteNamedVariableList;        /* DeleteNamedVariableList_Request */
130
static int hf_mms_defineNamedType;                /* DefineNamedType_Request */
131
static int hf_mms_getNamedTypeAttributes;         /* GetNamedTypeAttributes_Request */
132
static int hf_mms_deleteNamedType;                /* DeleteNamedType_Request */
133
static int hf_mms_input;                          /* Input_Request */
134
static int hf_mms_output;                         /* Output_Request */
135
static int hf_mms_takeControl;                    /* TakeControl_Request */
136
static int hf_mms_relinquishControl;              /* RelinquishControl_Request */
137
static int hf_mms_defineSemaphore;                /* DefineSemaphore_Request */
138
static int hf_mms_deleteSemaphore;                /* DeleteSemaphore_Request */
139
static int hf_mms_reportSemaphoreStatus;          /* ReportSemaphoreStatus_Request */
140
static int hf_mms_reportPoolSemaphoreStatus;      /* ReportPoolSemaphoreStatus_Request */
141
static int hf_mms_reportSemaphoreEntryStatus;     /* ReportSemaphoreEntryStatus_Request */
142
static int hf_mms_initiateDownloadSequence;       /* InitiateDownloadSequence_Request */
143
static int hf_mms_downloadSegment;                /* DownloadSegment_Request */
144
static int hf_mms_terminateDownloadSequence;      /* TerminateDownloadSequence_Request */
145
static int hf_mms_initiateUploadSequence;         /* InitiateUploadSequence_Request */
146
static int hf_mms_uploadSegment;                  /* UploadSegment_Request */
147
static int hf_mms_terminateUploadSequence;        /* TerminateUploadSequence_Request */
148
static int hf_mms_requestDomainDownload;          /* RequestDomainDownload_Request */
149
static int hf_mms_requestDomainUpload;            /* RequestDomainUpload_Request */
150
static int hf_mms_loadDomainContent;              /* LoadDomainContent_Request */
151
static int hf_mms_storeDomainContent;             /* StoreDomainContent_Request */
152
static int hf_mms_deleteDomain;                   /* DeleteDomain_Request */
153
static int hf_mms_getDomainAttributes;            /* GetDomainAttributes_Request */
154
static int hf_mms_createProgramInvocation;        /* CreateProgramInvocation_Request */
155
static int hf_mms_deleteProgramInvocation;        /* DeleteProgramInvocation_Request */
156
static int hf_mms_start;                          /* Start_Request */
157
static int hf_mms_stop;                           /* Stop_Request */
158
static int hf_mms_resume;                         /* Resume_Request */
159
static int hf_mms_reset;                          /* Reset_Request */
160
static int hf_mms_kill;                           /* Kill_Request */
161
static int hf_mms_getProgramInvocationAttributes;  /* GetProgramInvocationAttributes_Request */
162
static int hf_mms_obtainFile;                     /* ObtainFile_Request */
163
static int hf_mms_defineEventCondition;           /* DefineEventCondition_Request */
164
static int hf_mms_confirmedServiceRequest_deleteEventCondition;  /* DeleteEventCondition_Request */
165
static int hf_mms_getEventConditionAttributes;    /* GetEventConditionAttributes_Request */
166
static int hf_mms_reportEventConditionStatus;     /* ReportEventConditionStatus_Request */
167
static int hf_mms_alterEventConditionMonitoring;  /* AlterEventConditionMonitoring_Request */
168
static int hf_mms_triggerEvent;                   /* TriggerEvent_Request */
169
static int hf_mms_defineEventAction;              /* DefineEventAction_Request */
170
static int hf_mms_confirmedServiceRequest_deleteEventAction;  /* DeleteEventAction_Request */
171
static int hf_mms_getEventActionAttributes;       /* GetEventActionAttributes_Request */
172
static int hf_mms_reportEventActionStatus;        /* ReportEventActionStatus_Request */
173
static int hf_mms_defineEventEnrollment;          /* DefineEventEnrollment_Request */
174
static int hf_mms_confirmedServiceRequest_deleteEventEnrollment;  /* DeleteEventEnrollment_Request */
175
static int hf_mms_alterEventEnrollment;           /* AlterEventEnrollment_Request */
176
static int hf_mms_reportEventEnrollmentStatus;    /* ReportEventEnrollmentStatus_Request */
177
static int hf_mms_getEventEnrollmentAttributes;   /* GetEventEnrollmentAttributes_Request */
178
static int hf_mms_acknowledgeEventNotification;   /* AcknowledgeEventNotification_Request */
179
static int hf_mms_getAlarmSummary;                /* GetAlarmSummary_Request */
180
static int hf_mms_getAlarmEnrollmentSummary;      /* GetAlarmEnrollmentSummary_Request */
181
static int hf_mms_readJournal;                    /* ReadJournal_Request */
182
static int hf_mms_writeJournal;                   /* WriteJournal_Request */
183
static int hf_mms_initializeJournal;              /* InitializeJournal_Request */
184
static int hf_mms_reportJournalStatus;            /* ReportJournalStatus_Request */
185
static int hf_mms_createJournal;                  /* CreateJournal_Request */
186
static int hf_mms_deleteJournal;                  /* DeleteJournal_Request */
187
static int hf_mms_getCapabilityList;              /* GetCapabilityList_Request */
188
static int hf_mms_fileOpen;                       /* FileOpen_Request */
189
static int hf_mms_fileRead;                       /* FileRead_Request */
190
static int hf_mms_fileClose;                      /* FileClose_Request */
191
static int hf_mms_fileRename;                     /* FileRename_Request */
192
static int hf_mms_fileDelete;                     /* FileDelete_Request */
193
static int hf_mms_fileDirectory;                  /* FileDirectory_Request */
194
static int hf_mms_foo;                            /* INTEGER */
195
static int hf_mms_status_01;                      /* Status_Response */
196
static int hf_mms_getNameList_01;                 /* GetNameList_Response */
197
static int hf_mms_identify_01;                    /* Identify_Response */
198
static int hf_mms_rename_01;                      /* Rename_Response */
199
static int hf_mms_read_01;                        /* Read_Response */
200
static int hf_mms_write_01;                       /* Write_Response */
201
static int hf_mms_getVariableAccessAttributes_01;  /* GetVariableAccessAttributes_Response */
202
static int hf_mms_defineNamedVariable_01;         /* DefineNamedVariable_Response */
203
static int hf_mms_defineScatteredAccess_01;       /* DefineScatteredAccess_Response */
204
static int hf_mms_getScatteredAccessAttributes_01;  /* GetScatteredAccessAttributes_Response */
205
static int hf_mms_deleteVariableAccess_01;        /* DeleteVariableAccess_Response */
206
static int hf_mms_defineNamedVariableList_01;     /* DefineNamedVariableList_Response */
207
static int hf_mms_getNamedVariableListAttributes_01;  /* GetNamedVariableListAttributes_Response */
208
static int hf_mms_deleteNamedVariableList_01;     /* DeleteNamedVariableList_Response */
209
static int hf_mms_defineNamedType_01;             /* DefineNamedType_Response */
210
static int hf_mms_getNamedTypeAttributes_01;      /* GetNamedTypeAttributes_Response */
211
static int hf_mms_deleteNamedType_01;             /* DeleteNamedType_Response */
212
static int hf_mms_input_01;                       /* Input_Response */
213
static int hf_mms_output_01;                      /* Output_Response */
214
static int hf_mms_takeControl_01;                 /* TakeControl_Response */
215
static int hf_mms_relinquishControl_01;           /* RelinquishControl_Response */
216
static int hf_mms_defineSemaphore_01;             /* DefineSemaphore_Response */
217
static int hf_mms_deleteSemaphore_01;             /* DeleteSemaphore_Response */
218
static int hf_mms_reportSemaphoreStatus_01;       /* ReportSemaphoreStatus_Response */
219
static int hf_mms_reportPoolSemaphoreStatus_01;   /* ReportPoolSemaphoreStatus_Response */
220
static int hf_mms_reportSemaphoreEntryStatus_01;  /* ReportSemaphoreEntryStatus_Response */
221
static int hf_mms_initiateDownloadSequence_01;    /* InitiateDownloadSequence_Response */
222
static int hf_mms_downloadSegment_01;             /* DownloadSegment_Response */
223
static int hf_mms_terminateDownloadSequence_01;   /* TerminateDownloadSequence_Response */
224
static int hf_mms_initiateUploadSequence_01;      /* InitiateUploadSequence_Response */
225
static int hf_mms_uploadSegment_01;               /* UploadSegment_Response */
226
static int hf_mms_terminateUploadSequence_01;     /* TerminateUploadSequence_Response */
227
static int hf_mms_requestDomainDownLoad;          /* RequestDomainDownload_Response */
228
static int hf_mms_requestDomainUpload_01;         /* RequestDomainUpload_Response */
229
static int hf_mms_loadDomainContent_01;           /* LoadDomainContent_Response */
230
static int hf_mms_storeDomainContent_01;          /* StoreDomainContent_Response */
231
static int hf_mms_deleteDomain_01;                /* DeleteDomain_Response */
232
static int hf_mms_getDomainAttributes_01;         /* GetDomainAttributes_Response */
233
static int hf_mms_createProgramInvocation_01;     /* CreateProgramInvocation_Response */
234
static int hf_mms_deleteProgramInvocation_01;     /* DeleteProgramInvocation_Response */
235
static int hf_mms_start_01;                       /* Start_Response */
236
static int hf_mms_stop_01;                        /* Stop_Response */
237
static int hf_mms_resume_01;                      /* Resume_Response */
238
static int hf_mms_reset_01;                       /* Reset_Response */
239
static int hf_mms_kill_01;                        /* Kill_Response */
240
static int hf_mms_getProgramInvocationAttributes_01;  /* GetProgramInvocationAttributes_Response */
241
static int hf_mms_obtainFile_01;                  /* ObtainFile_Response */
242
static int hf_mms_fileOpen_01;                    /* FileOpen_Response */
243
static int hf_mms_defineEventCondition_01;        /* DefineEventCondition_Response */
244
static int hf_mms_confirmedServiceResponse_deleteEventCondition;  /* DeleteEventCondition_Response */
245
static int hf_mms_getEventConditionAttributes_01;  /* GetEventConditionAttributes_Response */
246
static int hf_mms_reportEventConditionStatus_01;  /* ReportEventConditionStatus_Response */
247
static int hf_mms_alterEventConditionMonitoring_01;  /* AlterEventConditionMonitoring_Response */
248
static int hf_mms_triggerEvent_01;                /* TriggerEvent_Response */
249
static int hf_mms_defineEventAction_01;           /* DefineEventAction_Response */
250
static int hf_mms_confirmedServiceRequest_deleteEventAction_01;  /* DeleteEventAction_Response */
251
static int hf_mms_getEventActionAttributes_01;    /* GetEventActionAttributes_Response */
252
static int hf_mms_reportActionStatus;             /* ReportEventActionStatus_Response */
253
static int hf_mms_defineEventEnrollment_01;       /* DefineEventEnrollment_Response */
254
static int hf_mms_confirmedServiceResponse_deleteEventEnrollment;  /* DeleteEventEnrollment_Response */
255
static int hf_mms_alterEventEnrollment_01;        /* AlterEventEnrollment_Response */
256
static int hf_mms_reportEventEnrollmentStatus_01;  /* ReportEventEnrollmentStatus_Response */
257
static int hf_mms_getEventEnrollmentAttributes_01;  /* GetEventEnrollmentAttributes_Response */
258
static int hf_mms_acknowledgeEventNotification_01;  /* AcknowledgeEventNotification_Response */
259
static int hf_mms_getAlarmSummary_01;             /* GetAlarmSummary_Response */
260
static int hf_mms_getAlarmEnrollmentSummary_01;   /* GetAlarmEnrollmentSummary_Response */
261
static int hf_mms_readJournal_01;                 /* ReadJournal_Response */
262
static int hf_mms_writeJournal_01;                /* WriteJournal_Response */
263
static int hf_mms_initializeJournal_01;           /* InitializeJournal_Response */
264
static int hf_mms_reportJournalStatus_01;         /* ReportJournalStatus_Response */
265
static int hf_mms_createJournal_01;               /* CreateJournal_Response */
266
static int hf_mms_deleteJournal_01;               /* DeleteJournal_Response */
267
static int hf_mms_getCapabilityList_01;           /* GetCapabilityList_Response */
268
static int hf_mms_fileRead_01;                    /* FileRead_Response */
269
static int hf_mms_fileClose_01;                   /* FileClose_Response */
270
static int hf_mms_fileRename_01;                  /* FileRename_Response */
271
static int hf_mms_fileDelete_01;                  /* FileDelete_Response */
272
static int hf_mms_fileDirectory_01;               /* FileDirectory_Response */
273
static int hf_mms_FileName_item;                  /* GraphicString */
274
static int hf_mms_vmd_specific;                   /* Identifier */
275
static int hf_mms_domain_specific;                /* T_domain_specific */
276
static int hf_mms_domainId;                       /* Identifier */
277
static int hf_mms_objectName_domain_specific_itemId;  /* ObjectName_domain_specific_itemid */
278
static int hf_mms_aa_specific;                    /* Identifier */
279
static int hf_mms_ap_title;                       /* T_ap_title */
280
static int hf_mms_ap_invocation_id;               /* T_ap_invocation_id */
281
static int hf_mms_ae_qualifier;                   /* T_ae_qualifier */
282
static int hf_mms_ae_invocation_id;               /* T_ae_invocation_id */
283
static int hf_mms_localDetailCalling;             /* Integer32 */
284
static int hf_mms_proposedMaxServOutstandingCalling;  /* Integer16 */
285
static int hf_mms_proposedMaxServOutstandingCalled;  /* Integer16 */
286
static int hf_mms_proposedDataStructureNestingLevel;  /* Integer8 */
287
static int hf_mms_mmsInitRequestDetail;           /* InitRequestDetail */
288
static int hf_mms_proposedVersionNumber;          /* Integer16 */
289
static int hf_mms_proposedParameterCBB;           /* ParameterSupportOptions */
290
static int hf_mms_servicesSupportedCalling;       /* ServiceSupportOptions */
291
static int hf_mms_localDetailCalled;              /* Integer32 */
292
static int hf_mms_negociatedMaxServOutstandingCalling;  /* Integer16 */
293
static int hf_mms_negociatedMaxServOutstandingCalled;  /* Integer16 */
294
static int hf_mms_negociatedDataStructureNestingLevel;  /* Integer8 */
295
static int hf_mms_mmsInitResponseDetail;          /* InitResponseDetail */
296
static int hf_mms_negociatedVersionNumber;        /* Integer16 */
297
static int hf_mms_negociatedParameterCBB;         /* ParameterSupportOptions */
298
static int hf_mms_servicesSupportedCalled;        /* ServiceSupportOptions */
299
static int hf_mms_originalInvokeID;               /* Unsigned32 */
300
static int hf_mms_errorClass;                     /* T_errorClass */
301
static int hf_mms_vmd_state;                      /* T_vmd_state */
302
static int hf_mms_application_reference;          /* T_application_reference */
303
static int hf_mms_definition;                     /* T_definition */
304
static int hf_mms_resource;                       /* T_resource */
305
static int hf_mms_service;                        /* T_service */
306
static int hf_mms_service_preempt;                /* T_service_preempt */
307
static int hf_mms_time_resolution;                /* T_time_resolution */
308
static int hf_mms_access;                         /* T_access */
309
static int hf_mms_initiate;                       /* T_initiate */
310
static int hf_mms_conclude;                       /* T_conclude */
311
static int hf_mms_cancel;                         /* T_cancel */
312
static int hf_mms_file;                           /* T_file */
313
static int hf_mms_others;                         /* INTEGER */
314
static int hf_mms_additionalCode;                 /* INTEGER */
315
static int hf_mms_additionalDescription;          /* VisibleString */
316
static int hf_mms_serviceSpecificInformation;     /* T_serviceSpecificInformation */
317
static int hf_mms_obtainFile_02;                  /* ObtainFile_Error */
318
static int hf_mms_start_02;                       /* Start_Error */
319
static int hf_mms_stop_02;                        /* Stop_Error */
320
static int hf_mms_resume_02;                      /* Resume_Error */
321
static int hf_mms_reset_02;                       /* Reset_Error */
322
static int hf_mms_deleteVariableAccess_02;        /* DeleteVariableAccess_Error */
323
static int hf_mms_deleteNamedVariableList_02;     /* DeleteNamedVariableList_Error */
324
static int hf_mms_deleteNamedType_02;             /* DeleteNamedType_Error */
325
static int hf_mms_defineEventEnrollment_Error;    /* DefineEventEnrollment_Error */
326
static int hf_mms_fileRename_02;                  /* FileRename_Error */
327
static int hf_mms_additionalService;              /* AdditionalService_Error */
328
static int hf_mms_changeAccessControl;            /* ChangeAccessControl_Error */
329
static int hf_mms_defineEcl;                      /* DefineEventConditionList_Error */
330
static int hf_mms_addECLReference;                /* AddEventConditionListReference_Error */
331
static int hf_mms_removeECLReference;             /* RemoveEventConditionListReference_Error */
332
static int hf_mms_initiateUC;                     /* InitiateUnitControl_Error */
333
static int hf_mms_startUC;                        /* StartUnitControl_Error */
334
static int hf_mms_stopUC;                         /* StopUnitControl_Error */
335
static int hf_mms_deleteUC;                       /* DeleteUnitControl_Error */
336
static int hf_mms_loadUCFromFile;                 /* LoadUnitControlFromFile_Error */
337
static int hf_mms_eventCondition;                 /* ObjectName */
338
static int hf_mms_eventConditionList;             /* ObjectName */
339
static int hf_mms_domain;                         /* Identifier */
340
static int hf_mms_programInvocation;              /* Identifier */
341
static int hf_mms_programInvocationName;          /* Identifier */
342
static int hf_mms_programInvocationState;         /* ProgramInvocationState */
343
static int hf_mms_none;                           /* NULL */
344
static int hf_mms_rejectReason;                   /* T_rejectReason */
345
static int hf_mms_confirmed_requestPDU;           /* T_confirmed_requestPDU */
346
static int hf_mms_confirmed_responsePDU;          /* T_confirmed_responsePDU */
347
static int hf_mms_confirmed_errorPDU;             /* T_confirmed_errorPDU */
348
static int hf_mms_unconfirmedPDU;                 /* T_unconfirmedPDU */
349
static int hf_mms_pdu_error;                      /* T_pdu_error */
350
static int hf_mms_cancel_requestPDU;              /* T_cancel_requestPDU */
351
static int hf_mms_cancel_responsePDU;             /* T_cancel_responsePDU */
352
static int hf_mms_cancel_errorPDU;                /* T_cancel_errorPDU */
353
static int hf_mms_conclude_requestPDU;            /* T_conclude_requestPDU */
354
static int hf_mms_conclude_responsePDU;           /* T_conclude_responsePDU */
355
static int hf_mms_conclude_errorPDU;              /* T_conclude_errorPDU */
356
static int hf_mms_vmdLogicalStatus;               /* T_vmdLogicalStatus */
357
static int hf_mms_vmdPhysicalStatus;              /* T_vmdPhysicalStatus */
358
static int hf_mms_localDetail;                    /* BIT_STRING_SIZE_0_128 */
359
static int hf_mms_vmdSpecific;                    /* NULL */
360
static int hf_mms_domainSpecific;                 /* Identifier */
361
static int hf_mms_aaSpecific;                     /* NULL */
362
static int hf_mms_extendedObjectClass;            /* T_extendedObjectClass */
363
static int hf_mms_objectClass;                    /* ObjectClass */
364
static int hf_mms_objectScope;                    /* ObjectScope */
365
static int hf_mms_getNameList_Request_continueAfter;  /* Identifier */
366
static int hf_mms_listOfIdentifier;               /* SEQUENCE_OF_Identifier */
367
static int hf_mms_listOfIdentifier_item;          /* Identifier */
368
static int hf_mms_moreFollows;                    /* BOOLEAN */
369
static int hf_mms_vendorName;                     /* VisibleString */
370
static int hf_mms_modelName;                      /* VisibleString */
371
static int hf_mms_revision;                       /* VisibleString */
372
static int hf_mms_listOfAbstractSyntaxes;         /* T_listOfAbstractSyntaxes */
373
static int hf_mms_listOfAbstractSyntaxes_item;    /* OBJECT_IDENTIFIER */
374
static int hf_mms_extendedObjectClass_01;         /* T_extendedObjectClass_01 */
375
static int hf_mms_objectClass_01;                 /* T_objectClass */
376
static int hf_mms_currentName;                    /* ObjectName */
377
static int hf_mms_newIdentifier;                  /* Identifier */
378
static int hf_mms_getCapabilityList_Request_continueAfter;  /* VisibleString */
379
static int hf_mms_listOfCapabilities;             /* T_listOfCapabilities */
380
static int hf_mms_listOfCapabilities_item;        /* VisibleString */
381
static int hf_mms_domainName;                     /* Identifier */
382
static int hf_mms_listOfCapabilities_01;          /* T_listOfCapabilities_01 */
383
static int hf_mms_sharable;                       /* BOOLEAN */
384
static int hf_mms_loadData;                       /* T_loadData */
385
static int hf_mms_non_coded;                      /* OCTET_STRING */
386
static int hf_mms_coded;                          /* EXTERNALt */
387
static int hf_mms_discard;                        /* ServiceError */
388
static int hf_mms_ulsmID;                         /* Integer32 */
389
static int hf_mms_listOfCapabilities_02;          /* T_listOfCapabilities_02 */
390
static int hf_mms_loadData_01;                    /* T_loadData_01 */
391
static int hf_mms_listOfCapabilities_03;          /* T_listOfCapabilities_03 */
392
static int hf_mms_fileName;                       /* FileName */
393
static int hf_mms_listOfCapabilities_04;          /* T_listOfCapabilities_04 */
394
static int hf_mms_thirdParty;                     /* ApplicationReference */
395
static int hf_mms_filenName;                      /* FileName */
396
static int hf_mms_listOfCapabilities_05;          /* T_listOfCapabilities_05 */
397
static int hf_mms_getDomainAttributes_Response_state;  /* DomainState */
398
static int hf_mms_mmsDeletable;                   /* BOOLEAN */
399
static int hf_mms_listOfProgramInvocations;       /* SEQUENCE_OF_Identifier */
400
static int hf_mms_listOfProgramInvocations_item;  /* Identifier */
401
static int hf_mms_uploadInProgress;               /* Integer8 */
402
static int hf_mms_listOfDomainName;               /* SEQUENCE_OF_Identifier */
403
static int hf_mms_listOfDomainName_item;          /* Identifier */
404
static int hf_mms_reusable;                       /* BOOLEAN */
405
static int hf_mms_monitorType;                    /* BOOLEAN */
406
static int hf_mms_executionArgument;              /* T_executionArgument */
407
static int hf_mms_simpleString;                   /* VisibleString */
408
static int hf_mms_encodedString;                  /* EXTERNALt */
409
static int hf_mms_executionArgument_01;           /* T_executionArgument_01 */
410
static int hf_mms_getProgramInvocationAttributes_Response_state;  /* ProgramInvocationState */
411
static int hf_mms_listOfDomainNames;              /* SEQUENCE_OF_Identifier */
412
static int hf_mms_listOfDomainNames_item;         /* Identifier */
413
static int hf_mms_monitor;                        /* BOOLEAN */
414
static int hf_mms_startArgument;                  /* VisibleString */
415
static int hf_mms_executionArgument_02;           /* T_executionArgument_02 */
416
static int hf_mms_typeName;                       /* ObjectName */
417
static int hf_mms_array;                          /* T_array */
418
static int hf_mms_packed;                         /* BOOLEAN */
419
static int hf_mms_numberOfElements;               /* Unsigned32 */
420
static int hf_mms_elementType;                    /* TypeSpecification */
421
static int hf_mms_structure;                      /* T_structure */
422
static int hf_mms_components;                     /* T_components */
423
static int hf_mms_components_item;                /* T_components_item */
424
static int hf_mms_componentName;                  /* Identifier */
425
static int hf_mms_componentType;                  /* TypeSpecification */
426
static int hf_mms_boolean;                        /* NULL */
427
static int hf_mms_typeSpecification_bit_string;   /* Integer32 */
428
static int hf_mms_integer;                        /* Unsigned8 */
429
static int hf_mms_unsigned;                       /* Unsigned8 */
430
static int hf_mms_typeSpecification_octet_string;  /* Integer32 */
431
static int hf_mms_typeSpecification_visible_string;  /* Integer32 */
432
static int hf_mms_generalized_time;               /* NULL */
433
static int hf_mms_typeSpecification_binary_time;  /* BOOLEAN */
434
static int hf_mms_bcd;                            /* Unsigned8 */
435
static int hf_mms_objId;                          /* NULL */
436
static int hf_mms_AlternateAccess_item;           /* AlternateAccess_item */
437
static int hf_mms_unnamed;                        /* AlternateAccessSelection */
438
static int hf_mms_named;                          /* T_named */
439
static int hf_mms_accesst;                        /* AlternateAccessSelection */
440
static int hf_mms_selectAlternateAccess;          /* T_selectAlternateAccess */
441
static int hf_mms_accessSelection;                /* T_accessSelection */
442
static int hf_mms_component;                      /* Identifier */
443
static int hf_mms_index;                          /* Unsigned32 */
444
static int hf_mms_indexRange;                     /* T_indexRange */
445
static int hf_mms_lowIndex;                       /* Unsigned32 */
446
static int hf_mms_allElements;                    /* NULL */
447
static int hf_mms_alternateAccess;                /* AlternateAccess */
448
static int hf_mms_selectAccess;                   /* T_selectAccess */
449
static int hf_mms_indexRange_01;                  /* T_indexRange_01 */
450
static int hf_mms_nmberOfElements;                /* Unsigned32 */
451
static int hf_mms_specificationWithResult;        /* BOOLEAN */
452
static int hf_mms_variableAccessSpecification;    /* VariableAccessSpecification */
453
static int hf_mms_listOfAccessResult;             /* SEQUENCE_OF_AccessResult */
454
static int hf_mms_listOfAccessResult_item;        /* AccessResult */
455
static int hf_mms_listOfData;                     /* T_listOfData */
456
static int hf_mms_listOfData_item;                /* Data */
457
static int hf_mms_Write_Response_item;            /* Write_Response_item */
458
static int hf_mms_failure;                        /* DataAccessError */
459
static int hf_mms_success;                        /* NULL */
460
static int hf_mms_listOfAccessResult_01;          /* T_listOfAccessResult */
461
static int hf_mms_name;                           /* ObjectName */
462
static int hf_mms_address;                        /* Address */
463
static int hf_mms_typeSpecification;              /* TypeSpecification */
464
static int hf_mms_variableName;                   /* ObjectName */
465
static int hf_mms_scatteredAccessName;            /* ObjectName */
466
static int hf_mms_scatteredAccessDescription;     /* ScatteredAccessDescription */
467
static int hf_mms_scopeOfDelete;                  /* T_scopeOfDelete */
468
static int hf_mms_listOfName;                     /* SEQUENCE_OF_ObjectName */
469
static int hf_mms_listOfName_item;                /* ObjectName */
470
static int hf_mms_numberMatched;                  /* Unsigned32 */
471
static int hf_mms_numberDeleted;                  /* Unsigned32 */
472
static int hf_mms_variableListName;               /* ObjectName */
473
static int hf_mms_listOfVariable;                 /* T_listOfVariable */
474
static int hf_mms_listOfVariable_item;            /* T_listOfVariable_item */
475
static int hf_mms_variableSpecification;          /* VariableSpecification */
476
static int hf_mms_listOfVariable_01;              /* T_listOfVariable_01 */
477
static int hf_mms_listOfVariable_item_01;         /* T_listOfVariable_item_01 */
478
static int hf_mms_scopeOfDelete_01;               /* T_scopeOfDelete_01 */
479
static int hf_mms_listOfVariableListName;         /* SEQUENCE_OF_ObjectName */
480
static int hf_mms_listOfVariableListName_item;    /* ObjectName */
481
static int hf_mms_scopeOfDelete_02;               /* T_scopeOfDelete_02 */
482
static int hf_mms_listOfTypeName;                 /* SEQUENCE_OF_ObjectName */
483
static int hf_mms_listOfTypeName_item;            /* ObjectName */
484
static int hf_mms_success_01;                     /* Data */
485
static int hf_mms_array_01;                       /* SEQUENCE_OF_Data */
486
static int hf_mms_array_item;                     /* Data */
487
static int hf_mms_structure_01;                   /* T_structure_01 */
488
static int hf_mms_structure_item;                 /* Data */
489
static int hf_mms_boolean_01;                     /* T_boolean */
490
static int hf_mms_data_bit_string;                /* T_data_bit_string */
491
static int hf_mms_integer_01;                     /* T_integer */
492
static int hf_mms_unsigned_01;                    /* T_unsigned */
493
static int hf_mms_floating_point;                 /* FloatingPoint */
494
static int hf_mms_real;                           /* REAL */
495
static int hf_mms_data_octet_string;              /* T_data_octet_string */
496
static int hf_mms_data_visible_string;            /* T_data_visible_string */
497
static int hf_mms_data_binary_time;               /* T_data_binary_time */
498
static int hf_mms_bcd_01;                         /* INTEGER */
499
static int hf_mms_booleanArray;                   /* BIT_STRING */
500
static int hf_mms_objId_01;                       /* OBJECT_IDENTIFIER */
501
static int hf_mms_mMSString;                      /* MMSString */
502
static int hf_mms_utc_time;                       /* UtcTime */
503
static int hf_mms_listOfVariable_02;              /* T_listOfVariable_02 */
504
static int hf_mms_listOfVariable_item_02;         /* T_listOfVariable_item_02 */
505
static int hf_mms_ScatteredAccessDescription_item;  /* ScatteredAccessDescription_item */
506
static int hf_mms_variableDescription;            /* T_variableDescription */
507
static int hf_mms_invalidated;                    /* NULL */
508
static int hf_mms_numericAddress;                 /* Unsigned32 */
509
static int hf_mms_symbolicAddress;                /* VisibleString */
510
static int hf_mms_unconstrainedAddress;           /* OCTET_STRING */
511
static int hf_mms_semaphoreName;                  /* ObjectName */
512
static int hf_mms_namedToken;                     /* Identifier */
513
static int hf_mms_priority;                       /* Priority */
514
static int hf_mms_acceptableDelay;                /* Unsigned32 */
515
static int hf_mms_controlTimeOut;                 /* Unsigned32 */
516
static int hf_mms_abortOnTimeOut;                 /* BOOLEAN */
517
static int hf_mms_relinquishIfConnectionLost;     /* BOOLEAN */
518
static int hf_mms_applicationToPreempt;           /* ApplicationReference */
519
static int hf_mms_noResult;                       /* NULL */
520
static int hf_mms_numbersOfTokens;                /* Unsigned16 */
521
static int hf_mms_class;                          /* T_class */
522
static int hf_mms_numberOfTokens;                 /* Unsigned16 */
523
static int hf_mms_numberOfOwnedTokens;            /* Unsigned16 */
524
static int hf_mms_numberOfHungTokens;             /* Unsigned16 */
525
static int hf_mms_nameToStartAfter;               /* Identifier */
526
static int hf_mms_listOfNamedTokens;              /* T_listOfNamedTokens */
527
static int hf_mms_listOfNamedTokens_item;         /* T_listOfNamedTokens_item */
528
static int hf_mms_freeNamedToken;                 /* Identifier */
529
static int hf_mms_ownedNamedToken;                /* Identifier */
530
static int hf_mms_hungNamedToken;                 /* Identifier */
531
static int hf_mms_reportSemaphoreEntryStatus_Request_state;  /* T_reportSemaphoreEntryStatus_Request_state */
532
static int hf_mms_entryIdToStartAfter;            /* OCTET_STRING */
533
static int hf_mms_listOfSemaphoreEntry;           /* SEQUENCE_OF_SemaphoreEntry */
534
static int hf_mms_listOfSemaphoreEntry_item;      /* SemaphoreEntry */
535
static int hf_mms_entryId;                        /* OCTET_STRING */
536
static int hf_mms_entryClass;                     /* T_entryClass */
537
static int hf_mms_applicationReference;           /* ApplicationReference */
538
static int hf_mms_remainingTimeOut;               /* Unsigned32 */
539
static int hf_mms_operatorStationName;            /* Identifier */
540
static int hf_mms_echo;                           /* BOOLEAN */
541
static int hf_mms_listOfPromptData;               /* T_listOfPromptData */
542
static int hf_mms_listOfPromptData_item;          /* VisibleString */
543
static int hf_mms_inputTimeOut;                   /* Unsigned32 */
544
static int hf_mms_listOfOutputData;               /* T_listOfOutputData */
545
static int hf_mms_listOfOutputData_item;          /* VisibleString */
546
static int hf_mms_eventConditionName;             /* ObjectName */
547
static int hf_mms_class_01;                       /* EC_Class */
548
static int hf_mms_prio_rity;                      /* Priority */
549
static int hf_mms_severity;                       /* Unsigned8 */
550
static int hf_mms_alarmSummaryReports;            /* BOOLEAN */
551
static int hf_mms_monitoredVariable;              /* VariableSpecification */
552
static int hf_mms_evaluationInterval;             /* Unsigned32 */
553
static int hf_mms_specific;                       /* SEQUENCE_OF_ObjectName */
554
static int hf_mms_specific_item;                  /* ObjectName */
555
static int hf_mms_aa_specific_01;                 /* NULL */
556
static int hf_mms_vmd;                            /* NULL */
557
static int hf_mms_monitoredVariable_01;           /* T_monitoredVariable */
558
static int hf_mms_variableReference;              /* VariableSpecification */
559
static int hf_mms_undefined;                      /* NULL */
560
static int hf_mms_currentState;                   /* EC_State */
561
static int hf_mms_numberOfEventEnrollments;       /* Unsigned32 */
562
static int hf_mms_enabled;                        /* BOOLEAN */
563
static int hf_mms_timeOfLastTransitionToActive;   /* EventTime */
564
static int hf_mms_timeOfLastTransitionToIdle;     /* EventTime */
565
static int hf_mms_eventActionName;                /* ObjectName */
566
static int hf_mms_eventEnrollmentName;            /* ObjectName */
567
static int hf_mms_eventConditionTransition;       /* Transitions */
568
static int hf_mms_alarmAcknowledgementRule;       /* AlarmAckRule */
569
static int hf_mms_clientApplication;              /* ApplicationReference */
570
static int hf_mms_ec;                             /* ObjectName */
571
static int hf_mms_ea;                             /* ObjectName */
572
static int hf_mms_scopeOfRequest;                 /* T_scopeOfRequest */
573
static int hf_mms_eventEnrollmentNames;           /* SEQUENCE_OF_ObjectName */
574
static int hf_mms_eventEnrollmentNames_item;      /* ObjectName */
575
static int hf_mms_getEventEnrollmentAttributes_Request_continueAfter;  /* ObjectName */
576
static int hf_mms_eventConditionName_01;          /* T_eventConditionName */
577
static int hf_mms_eventActionName_01;             /* T_eventActionName */
578
static int hf_mms_eventAction;                    /* ObjectName */
579
static int hf_mms_enrollmentClass;                /* EE_Class */
580
static int hf_mms_duration;                       /* EE_Duration */
581
static int hf_mms_remainingAcceptableDelay;       /* Unsigned32 */
582
static int hf_mms_listOfEventEnrollment;          /* SEQUENCE_OF_EventEnrollment */
583
static int hf_mms_listOfEventEnrollment_item;     /* EventEnrollment */
584
static int hf_mms_eventConditionTransitions;      /* Transitions */
585
static int hf_mms_notificationLost;               /* BOOLEAN */
586
static int hf_mms_alarmAcknowledgmentRule;        /* AlarmAckRule */
587
static int hf_mms_currentState_01;                /* EE_State */
588
static int hf_mms_currentState_02;                /* T_currentState */
589
static int hf_mms_alterEventEnrollment_Response_currentState_state;  /* EE_State */
590
static int hf_mms_transitionTime;                 /* EventTime */
591
static int hf_mms_acknowledgedState;              /* EC_State */
592
static int hf_mms_timeOfAcknowledgedTransition;   /* EventTime */
593
static int hf_mms_enrollmentsOnly;                /* BOOLEAN */
594
static int hf_mms_activeAlarmsOnly;               /* BOOLEAN */
595
static int hf_mms_acknowledgmentFilter;           /* T_acknowledgmentFilter */
596
static int hf_mms_severityFilter;                 /* T_severityFilter */
597
static int hf_mms_mostSevere;                     /* Unsigned8 */
598
static int hf_mms_leastSevere;                    /* Unsigned8 */
599
static int hf_mms_continueAfter;                  /* ObjectName */
600
static int hf_mms_listOfAlarmSummary;             /* SEQUENCE_OF_AlarmSummary */
601
static int hf_mms_listOfAlarmSummary_item;        /* AlarmSummary */
602
static int hf_mms_unacknowledgedState;            /* T_unacknowledgedState */
603
static int hf_mms_acknowledgmentFilter_01;        /* T_acknowledgmentFilter_01 */
604
static int hf_mms_severityFilter_01;              /* T_severityFilter_01 */
605
static int hf_mms_getAlarmEnrollmentSummary_Request_continueAfter;  /* ObjectName */
606
static int hf_mms_listOfAlarmEnrollmentSummary;   /* SEQUENCE_OF_AlarmEnrollmentSummary */
607
static int hf_mms_listOfAlarmEnrollmentSummary_item;  /* AlarmEnrollmentSummary */
608
static int hf_mms_enrollementState;               /* EE_State */
609
static int hf_mms_timeActiveAcknowledged;         /* EventTime */
610
static int hf_mms_timeIdleAcknowledged;           /* EventTime */
611
static int hf_mms_eventConditionName_02;          /* T_eventConditionName_01 */
612
static int hf_mms_actionResult;                   /* T_actionResult */
613
static int hf_mms_eventActioName;                 /* ObjectName */
614
static int hf_mms_eventActionResult;              /* T_eventActionResult */
615
static int hf_mms_success_02;                     /* ConfirmedServiceResponse */
616
static int hf_mms_failure_01;                     /* ServiceError */
617
static int hf_mms_causingTransitions;             /* Transitions */
618
static int hf_mms_timeOfDayT;                     /* TimeOfDay */
619
static int hf_mms_timeSequenceIdentifier;         /* Unsigned32 */
620
static int hf_mms_journalName;                    /* ObjectName */
621
static int hf_mms_rangeStartSpecification;        /* T_rangeStartSpecification */
622
static int hf_mms_startingTime;                   /* TimeOfDay */
623
static int hf_mms_startingEntry;                  /* OCTET_STRING */
624
static int hf_mms_rangeStopSpecification;         /* T_rangeStopSpecification */
625
static int hf_mms_endingTime;                     /* TimeOfDay */
626
static int hf_mms_numberOfEntries;                /* Integer32 */
627
static int hf_mms_listOfVariables;                /* T_listOfVariables */
628
static int hf_mms_listOfVariables_item;           /* VisibleString */
629
static int hf_mms_entryToStartAfter;              /* T_entryToStartAfter */
630
static int hf_mms_timeSpecification;              /* TimeOfDay */
631
static int hf_mms_entrySpecification;             /* OCTET_STRING */
632
static int hf_mms_listOfJournalEntry;             /* SEQUENCE_OF_JournalEntry */
633
static int hf_mms_listOfJournalEntry_item;        /* JournalEntry */
634
static int hf_mms_entryIdentifier;                /* OCTET_STRING */
635
static int hf_mms_originatingApplication;         /* ApplicationReference */
636
static int hf_mms_entryContent;                   /* EntryContent */
637
static int hf_mms_listOfJournalEntry_01;          /* SEQUENCE_OF_EntryContent */
638
static int hf_mms_listOfJournalEntry_item_01;     /* EntryContent */
639
static int hf_mms_limitSpecification;             /* T_limitSpecification */
640
static int hf_mms_limitingTime;                   /* TimeOfDay */
641
static int hf_mms_limitingEntry;                  /* OCTET_STRING */
642
static int hf_mms_currentEntries;                 /* Unsigned32 */
643
static int hf_mms_occurenceTime;                  /* TimeOfDay */
644
static int hf_mms_additionalDetail;               /* JOU_Additional_Detail */
645
static int hf_mms_entryForm;                      /* T_entryForm */
646
static int hf_mms_data;                           /* T_data */
647
static int hf_mms_event;                          /* T_event */
648
static int hf_mms_listOfVariables_01;             /* T_listOfVariables_01 */
649
static int hf_mms_listOfVariables_item_01;        /* T_listOfVariables_item */
650
static int hf_mms_variableTag;                    /* VisibleString */
651
static int hf_mms_valueSpecification;             /* Data */
652
static int hf_mms_annotation;                     /* VisibleString */
653
static int hf_mms_sourceFileServer;               /* ApplicationReference */
654
static int hf_mms_sourceFile;                     /* FileName */
655
static int hf_mms_destinationFile;                /* FileName */
656
static int hf_mms_initialPosition;                /* Unsigned32 */
657
static int hf_mms_frsmID;                         /* Integer32 */
658
static int hf_mms_fileAttributes;                 /* FileAttributes */
659
static int hf_mms_fileData;                       /* OCTET_STRING */
660
static int hf_mms_currentFileName;                /* FileName */
661
static int hf_mms_newFileName;                    /* FileName */
662
static int hf_mms_fileSpecification;              /* FileName */
663
static int hf_mms_fileDirectory_Request_continueAfter;  /* FileName */
664
static int hf_mms_listOfDirectoryEntry;           /* SEQUENCE_OF_DirectoryEntry */
665
static int hf_mms_listOfDirectoryEntry_item;      /* DirectoryEntry */
666
static int hf_mms_filename;                       /* FileName */
667
static int hf_mms_sizeOfFile;                     /* Unsigned32 */
668
static int hf_mms_lastModified;                   /* GeneralizedTime */
669
/* named bits */
670
static int hf_mms_ReportedOptFlds_reserved;
671
static int hf_mms_ReportedOptFlds_sequence_number;
672
static int hf_mms_ReportedOptFlds_report_time_stamp;
673
static int hf_mms_ReportedOptFlds_reason_for_inclusion;
674
static int hf_mms_ReportedOptFlds_data_set_name;
675
static int hf_mms_ReportedOptFlds_data_reference;
676
static int hf_mms_ReportedOptFlds_buffer_overflow;
677
static int hf_mms_ReportedOptFlds_entryID;
678
static int hf_mms_ReportedOptFlds_conf_revision;
679
static int hf_mms_ReportedOptFlds_segmentation;
680
static int hf_mms_ParameterSupportOptions_str1;
681
static int hf_mms_ParameterSupportOptions_str2;
682
static int hf_mms_ParameterSupportOptions_vnam;
683
static int hf_mms_ParameterSupportOptions_valt;
684
static int hf_mms_ParameterSupportOptions_vadr;
685
static int hf_mms_ParameterSupportOptions_vsca;
686
static int hf_mms_ParameterSupportOptions_tpy;
687
static int hf_mms_ParameterSupportOptions_vlis;
688
static int hf_mms_ParameterSupportOptions_real;
689
static int hf_mms_ParameterSupportOptions_spare_bit9;
690
static int hf_mms_ParameterSupportOptions_cei;
691
static int hf_mms_ServiceSupportOptions_status;
692
static int hf_mms_ServiceSupportOptions_getNameList;
693
static int hf_mms_ServiceSupportOptions_identify;
694
static int hf_mms_ServiceSupportOptions_rename;
695
static int hf_mms_ServiceSupportOptions_read;
696
static int hf_mms_ServiceSupportOptions_write;
697
static int hf_mms_ServiceSupportOptions_getVariableAccessAttributes;
698
static int hf_mms_ServiceSupportOptions_defineNamedVariable;
699
static int hf_mms_ServiceSupportOptions_defineScatteredAccess;
700
static int hf_mms_ServiceSupportOptions_getScatteredAccessAttributes;
701
static int hf_mms_ServiceSupportOptions_deleteVariableAccess;
702
static int hf_mms_ServiceSupportOptions_defineNamedVariableList;
703
static int hf_mms_ServiceSupportOptions_getNamedVariableListAttributes;
704
static int hf_mms_ServiceSupportOptions_deleteNamedVariableList;
705
static int hf_mms_ServiceSupportOptions_defineNamedType;
706
static int hf_mms_ServiceSupportOptions_getNamedTypeAttributes;
707
static int hf_mms_ServiceSupportOptions_deleteNamedType;
708
static int hf_mms_ServiceSupportOptions_input;
709
static int hf_mms_ServiceSupportOptions_output;
710
static int hf_mms_ServiceSupportOptions_takeControl;
711
static int hf_mms_ServiceSupportOptions_relinquishControl;
712
static int hf_mms_ServiceSupportOptions_defineSemaphore;
713
static int hf_mms_ServiceSupportOptions_deleteSemaphore;
714
static int hf_mms_ServiceSupportOptions_reportSemaphoreStatus;
715
static int hf_mms_ServiceSupportOptions_reportPoolSemaphoreStatus;
716
static int hf_mms_ServiceSupportOptions_reportSemaphoreEntryStatus;
717
static int hf_mms_ServiceSupportOptions_initiateDownloadSequence;
718
static int hf_mms_ServiceSupportOptions_downloadSegment;
719
static int hf_mms_ServiceSupportOptions_terminateDownloadSequence;
720
static int hf_mms_ServiceSupportOptions_initiateUploadSequence;
721
static int hf_mms_ServiceSupportOptions_uploadSegment;
722
static int hf_mms_ServiceSupportOptions_terminateUploadSequence;
723
static int hf_mms_ServiceSupportOptions_requestDomainDownload;
724
static int hf_mms_ServiceSupportOptions_requestDomainUpload;
725
static int hf_mms_ServiceSupportOptions_loadDomainContent;
726
static int hf_mms_ServiceSupportOptions_storeDomainContent;
727
static int hf_mms_ServiceSupportOptions_deleteDomain;
728
static int hf_mms_ServiceSupportOptions_getDomainAttributes;
729
static int hf_mms_ServiceSupportOptions_createProgramInvocation;
730
static int hf_mms_ServiceSupportOptions_deleteProgramInvocation;
731
static int hf_mms_ServiceSupportOptions_start;
732
static int hf_mms_ServiceSupportOptions_stop;
733
static int hf_mms_ServiceSupportOptions_resume;
734
static int hf_mms_ServiceSupportOptions_reset;
735
static int hf_mms_ServiceSupportOptions_kill;
736
static int hf_mms_ServiceSupportOptions_getProgramInvocationAttributes;
737
static int hf_mms_ServiceSupportOptions_obtainFile;
738
static int hf_mms_ServiceSupportOptions_defineEventCondition;
739
static int hf_mms_ServiceSupportOptions_deleteEventCondition;
740
static int hf_mms_ServiceSupportOptions_getEventConditionAttributes;
741
static int hf_mms_ServiceSupportOptions_reportEventConditionStatus;
742
static int hf_mms_ServiceSupportOptions_alterEventConditionMonitoring;
743
static int hf_mms_ServiceSupportOptions_triggerEvent;
744
static int hf_mms_ServiceSupportOptions_defineEventAction;
745
static int hf_mms_ServiceSupportOptions_deleteEventAction;
746
static int hf_mms_ServiceSupportOptions_getEventActionAttributes;
747
static int hf_mms_ServiceSupportOptions_reportActionStatus;
748
static int hf_mms_ServiceSupportOptions_defineEventEnrollment;
749
static int hf_mms_ServiceSupportOptions_deleteEventEnrollment;
750
static int hf_mms_ServiceSupportOptions_alterEventEnrollment;
751
static int hf_mms_ServiceSupportOptions_reportEventEnrollmentStatus;
752
static int hf_mms_ServiceSupportOptions_getEventEnrollmentAttributes;
753
static int hf_mms_ServiceSupportOptions_acknowledgeEventNotification;
754
static int hf_mms_ServiceSupportOptions_getAlarmSummary;
755
static int hf_mms_ServiceSupportOptions_getAlarmEnrollmentSummary;
756
static int hf_mms_ServiceSupportOptions_readJournal;
757
static int hf_mms_ServiceSupportOptions_writeJournal;
758
static int hf_mms_ServiceSupportOptions_initializeJournal;
759
static int hf_mms_ServiceSupportOptions_reportJournalStatus;
760
static int hf_mms_ServiceSupportOptions_createJournal;
761
static int hf_mms_ServiceSupportOptions_deleteJournal;
762
static int hf_mms_ServiceSupportOptions_getCapabilityList;
763
static int hf_mms_ServiceSupportOptions_fileOpen;
764
static int hf_mms_ServiceSupportOptions_fileRead;
765
static int hf_mms_ServiceSupportOptions_fileClose;
766
static int hf_mms_ServiceSupportOptions_fileRename;
767
static int hf_mms_ServiceSupportOptions_fileDelete;
768
static int hf_mms_ServiceSupportOptions_fileDirectory;
769
static int hf_mms_ServiceSupportOptions_unsolicitedStatus;
770
static int hf_mms_ServiceSupportOptions_informationReport;
771
static int hf_mms_ServiceSupportOptions_eventNotification;
772
static int hf_mms_ServiceSupportOptions_attachToEventCondition;
773
static int hf_mms_ServiceSupportOptions_attachToSemaphore;
774
static int hf_mms_ServiceSupportOptions_conclude;
775
static int hf_mms_ServiceSupportOptions_cancel;
776
static int hf_mms_Transitions_idle_to_disabled;
777
static int hf_mms_Transitions_active_to_disabled;
778
static int hf_mms_Transitions_disabled_to_idle;
779
static int hf_mms_Transitions_active_to_idle;
780
static int hf_mms_Transitions_disabled_to_active;
781
static int hf_mms_Transitions_idle_to_active;
782
static int hf_mms_Transitions_any_to_deleted;
783
784
/* Initialize the subtree pointers */
785
static int ett_mms;
786
static int ett_mms_iec61850_quality_bitstring;
787
static int ett_mms_iec61850_check_bitstring;
788
static int ett_mms_ReportedOptFlds;
789
static int ett_mms_MMSpdu;
790
static int ett_mms_Confirmed_RequestPDU;
791
static int ett_mms_SEQUENCE_OF_Modifier;
792
static int ett_mms_Unconfirmed_PDU;
793
static int ett_mms_Confirmed_ResponsePDU;
794
static int ett_mms_Confirmed_ErrorPDU;
795
static int ett_mms_UnconfirmedService;
796
static int ett_mms_Modifier;
797
static int ett_mms_ConfirmedServiceRequest;
798
static int ett_mms_CS_Request_Detail;
799
static int ett_mms_ConfirmedServiceResponse;
800
static int ett_mms_FileName;
801
static int ett_mms_ObjectName;
802
static int ett_mms_T_domain_specific;
803
static int ett_mms_ApplicationReference;
804
static int ett_mms_Initiate_RequestPDU;
805
static int ett_mms_InitRequestDetail;
806
static int ett_mms_Initiate_ResponsePDU;
807
static int ett_mms_InitResponseDetail;
808
static int ett_mms_ParameterSupportOptions;
809
static int ett_mms_ServiceSupportOptions;
810
static int ett_mms_Cancel_ErrorPDU;
811
static int ett_mms_ServiceError;
812
static int ett_mms_T_errorClass;
813
static int ett_mms_T_serviceSpecificInformation;
814
static int ett_mms_AdditionalService_Error;
815
static int ett_mms_RemoveEventConditionListReference_Error;
816
static int ett_mms_InitiateUnitControl_Error;
817
static int ett_mms_StartUnitControl_Error;
818
static int ett_mms_StopUnitControl_Error;
819
static int ett_mms_DeleteUnitControl_Error;
820
static int ett_mms_LoadUnitControlFromFile_Error;
821
static int ett_mms_RejectPDU;
822
static int ett_mms_T_rejectReason;
823
static int ett_mms_Status_Response;
824
static int ett_mms_ObjectScope;
825
static int ett_mms_GetNameList_Request;
826
static int ett_mms_T_extendedObjectClass;
827
static int ett_mms_GetNameList_Response;
828
static int ett_mms_SEQUENCE_OF_Identifier;
829
static int ett_mms_Identify_Response;
830
static int ett_mms_T_listOfAbstractSyntaxes;
831
static int ett_mms_Rename_Request;
832
static int ett_mms_T_extendedObjectClass_01;
833
static int ett_mms_GetCapabilityList_Request;
834
static int ett_mms_GetCapabilityList_Response;
835
static int ett_mms_T_listOfCapabilities;
836
static int ett_mms_InitiateDownloadSequence_Request;
837
static int ett_mms_T_listOfCapabilities_01;
838
static int ett_mms_DownloadSegment_Response;
839
static int ett_mms_T_loadData;
840
static int ett_mms_TerminateDownloadSequence_Request;
841
static int ett_mms_InitiateUploadSequence_Response;
842
static int ett_mms_T_listOfCapabilities_02;
843
static int ett_mms_UploadSegment_Response;
844
static int ett_mms_T_loadData_01;
845
static int ett_mms_RequestDomainDownload_Request;
846
static int ett_mms_T_listOfCapabilities_03;
847
static int ett_mms_RequestDomainUpload_Request;
848
static int ett_mms_LoadDomainContent_Request;
849
static int ett_mms_T_listOfCapabilities_04;
850
static int ett_mms_StoreDomainContent_Request;
851
static int ett_mms_GetDomainAttributes_Response;
852
static int ett_mms_T_listOfCapabilities_05;
853
static int ett_mms_CreateProgramInvocation_Request;
854
static int ett_mms_Start_Request;
855
static int ett_mms_T_executionArgument;
856
static int ett_mms_Stop_Request;
857
static int ett_mms_Resume_Request;
858
static int ett_mms_T_executionArgument_01;
859
static int ett_mms_Reset_Request;
860
static int ett_mms_Kill_Request;
861
static int ett_mms_GetProgramInvocationAttributes_Response;
862
static int ett_mms_T_executionArgument_02;
863
static int ett_mms_TypeSpecification;
864
static int ett_mms_T_array;
865
static int ett_mms_T_structure;
866
static int ett_mms_T_components;
867
static int ett_mms_T_components_item;
868
static int ett_mms_AlternateAccess;
869
static int ett_mms_AlternateAccess_item;
870
static int ett_mms_T_named;
871
static int ett_mms_AlternateAccessSelection;
872
static int ett_mms_T_selectAlternateAccess;
873
static int ett_mms_T_accessSelection;
874
static int ett_mms_T_indexRange;
875
static int ett_mms_T_selectAccess;
876
static int ett_mms_T_indexRange_01;
877
static int ett_mms_Read_Request;
878
static int ett_mms_Read_Response;
879
static int ett_mms_SEQUENCE_OF_AccessResult;
880
static int ett_mms_Write_Request;
881
static int ett_mms_T_listOfData;
882
static int ett_mms_Write_Response;
883
static int ett_mms_Write_Response_item;
884
static int ett_mms_InformationReport;
885
static int ett_mms_T_listOfAccessResult;
886
static int ett_mms_GetVariableAccessAttributes_Request;
887
static int ett_mms_GetVariableAccessAttributes_Response;
888
static int ett_mms_DefineNamedVariable_Request;
889
static int ett_mms_DefineScatteredAccess_Request;
890
static int ett_mms_GetScatteredAccessAttributes_Response;
891
static int ett_mms_DeleteVariableAccess_Request;
892
static int ett_mms_SEQUENCE_OF_ObjectName;
893
static int ett_mms_DeleteVariableAccess_Response;
894
static int ett_mms_DefineNamedVariableList_Request;
895
static int ett_mms_T_listOfVariable;
896
static int ett_mms_T_listOfVariable_item;
897
static int ett_mms_GetNamedVariableListAttributes_Response;
898
static int ett_mms_T_listOfVariable_01;
899
static int ett_mms_T_listOfVariable_item_01;
900
static int ett_mms_DeleteNamedVariableList_Request;
901
static int ett_mms_DeleteNamedVariableList_Response;
902
static int ett_mms_DefineNamedType_Request;
903
static int ett_mms_GetNamedTypeAttributes_Response;
904
static int ett_mms_DeleteNamedType_Request;
905
static int ett_mms_DeleteNamedType_Response;
906
static int ett_mms_AccessResult;
907
static int ett_mms_Data;
908
static int ett_mms_SEQUENCE_OF_Data;
909
static int ett_mms_T_structure_01;
910
static int ett_mms_VariableAccessSpecification;
911
static int ett_mms_T_listOfVariable_02;
912
static int ett_mms_T_listOfVariable_item_02;
913
static int ett_mms_ScatteredAccessDescription;
914
static int ett_mms_ScatteredAccessDescription_item;
915
static int ett_mms_VariableSpecification;
916
static int ett_mms_T_variableDescription;
917
static int ett_mms_Address;
918
static int ett_mms_TakeControl_Request;
919
static int ett_mms_TakeControl_Response;
920
static int ett_mms_RelinquishControl_Request;
921
static int ett_mms_DefineSemaphore_Request;
922
static int ett_mms_ReportSemaphoreStatus_Response;
923
static int ett_mms_ReportPoolSemaphoreStatus_Request;
924
static int ett_mms_ReportPoolSemaphoreStatus_Response;
925
static int ett_mms_T_listOfNamedTokens;
926
static int ett_mms_T_listOfNamedTokens_item;
927
static int ett_mms_ReportSemaphoreEntryStatus_Request;
928
static int ett_mms_ReportSemaphoreEntryStatus_Response;
929
static int ett_mms_SEQUENCE_OF_SemaphoreEntry;
930
static int ett_mms_AttachToSemaphore;
931
static int ett_mms_SemaphoreEntry;
932
static int ett_mms_Input_Request;
933
static int ett_mms_T_listOfPromptData;
934
static int ett_mms_Output_Request;
935
static int ett_mms_T_listOfOutputData;
936
static int ett_mms_DefineEventCondition_Request;
937
static int ett_mms_DeleteEventCondition_Request;
938
static int ett_mms_GetEventConditionAttributes_Response;
939
static int ett_mms_T_monitoredVariable;
940
static int ett_mms_ReportEventConditionStatus_Response;
941
static int ett_mms_AlterEventConditionMonitoring_Request;
942
static int ett_mms_TriggerEvent_Request;
943
static int ett_mms_DefineEventAction_Request;
944
static int ett_mms_DeleteEventAction_Request;
945
static int ett_mms_GetEventActionAttributes_Response;
946
static int ett_mms_DefineEventEnrollment_Request;
947
static int ett_mms_DeleteEventEnrollment_Request;
948
static int ett_mms_GetEventEnrollmentAttributes_Request;
949
static int ett_mms_EventEnrollment;
950
static int ett_mms_T_eventConditionName;
951
static int ett_mms_T_eventActionName;
952
static int ett_mms_GetEventEnrollmentAttributes_Response;
953
static int ett_mms_SEQUENCE_OF_EventEnrollment;
954
static int ett_mms_ReportEventEnrollmentStatus_Response;
955
static int ett_mms_AlterEventEnrollment_Request;
956
static int ett_mms_AlterEventEnrollment_Response;
957
static int ett_mms_T_currentState;
958
static int ett_mms_AcknowledgeEventNotification_Request;
959
static int ett_mms_GetAlarmSummary_Request;
960
static int ett_mms_T_severityFilter;
961
static int ett_mms_GetAlarmSummary_Response;
962
static int ett_mms_SEQUENCE_OF_AlarmSummary;
963
static int ett_mms_AlarmSummary;
964
static int ett_mms_GetAlarmEnrollmentSummary_Request;
965
static int ett_mms_T_severityFilter_01;
966
static int ett_mms_GetAlarmEnrollmentSummary_Response;
967
static int ett_mms_SEQUENCE_OF_AlarmEnrollmentSummary;
968
static int ett_mms_AlarmEnrollmentSummary;
969
static int ett_mms_EventNotification;
970
static int ett_mms_T_eventConditionName_01;
971
static int ett_mms_T_actionResult;
972
static int ett_mms_T_eventActionResult;
973
static int ett_mms_AttachToEventCondition;
974
static int ett_mms_EventTime;
975
static int ett_mms_Transitions;
976
static int ett_mms_ReadJournal_Request;
977
static int ett_mms_T_rangeStartSpecification;
978
static int ett_mms_T_rangeStopSpecification;
979
static int ett_mms_T_listOfVariables;
980
static int ett_mms_T_entryToStartAfter;
981
static int ett_mms_ReadJournal_Response;
982
static int ett_mms_SEQUENCE_OF_JournalEntry;
983
static int ett_mms_JournalEntry;
984
static int ett_mms_WriteJournal_Request;
985
static int ett_mms_SEQUENCE_OF_EntryContent;
986
static int ett_mms_InitializeJournal_Request;
987
static int ett_mms_T_limitSpecification;
988
static int ett_mms_ReportJournalStatus_Response;
989
static int ett_mms_CreateJournal_Request;
990
static int ett_mms_DeleteJournal_Request;
991
static int ett_mms_EntryContent;
992
static int ett_mms_T_entryForm;
993
static int ett_mms_T_data;
994
static int ett_mms_T_event;
995
static int ett_mms_T_listOfVariables_01;
996
static int ett_mms_T_listOfVariables_item;
997
static int ett_mms_ObtainFile_Request;
998
static int ett_mms_FileOpen_Request;
999
static int ett_mms_FileOpen_Response;
1000
static int ett_mms_FileRead_Response;
1001
static int ett_mms_FileRename_Request;
1002
static int ett_mms_FileDirectory_Request;
1003
static int ett_mms_FileDirectory_Response;
1004
static int ett_mms_SEQUENCE_OF_DirectoryEntry;
1005
static int ett_mms_DirectoryEntry;
1006
static int ett_mms_FileAttributes;
1007
1008
static expert_field ei_mms_mal_timeofday_encoding;
1009
static expert_field ei_mms_mal_utctime_encoding;
1010
static expert_field ei_mms_zero_pdu;
1011
1012
/*****************************************************************************/
1013
/* Packet private data                                                       */
1014
/* For this dissector, all access to actx->private_data should be made       */
1015
/* through this API, which ensures that they will not overwrite each other!! */
1016
/*****************************************************************************/
1017
1018
#define BUFFER_SIZE_PRE 10
1019
0
#define BUFFER_SIZE_MORE 1024
1020
1021
typedef enum _iec61850_8_1_vmd_specific {
1022
    IEC61850_8_1_NOT_SET = 0,
1023
    IEC61850_8_1_RPT
1024
} iec61850_8_1_vmd_specific;
1025
1026
typedef enum _itemid_type {
1027
    IEC61850_ITEM_ID_NOT_SET = 0,
1028
    IEC61850_ITEM_ID_CTLMODEL,
1029
    IEC61850_ITEM_ID_Q,
1030
    IEC61850_ITEM_ID_OPER,
1031
    IEC61850_ITEM_ID_CHECK,
1032
    IEC61850_ITEM_ID_OR_CAT,
1033
    IEC61850_ITEM_ID_BEH$STVAL,
1034
    IEC61850_ITEM_ID_MOD$STVAL,
1035
    IEC61850_ITEM_ID_HEALTH$STVAL,
1036
    IEC61850_ITEM_ID_$BR$_OR_$RP$,
1037
    IEC61850_ITEM_ID_$SBOW
1038
} itemid_type;
1039
1040
typedef struct _mms_transaction_t {
1041
    uint32_t req_frame;
1042
    uint32_t rep_frame;
1043
    nstime_t req_time;
1044
    /* Request info*/
1045
    itemid_type itemid;    /* Numeric representation of ItemId substring */
1046
    int conf_serv_pdu_type_req;
1047
} mms_transaction_t;
1048
1049
typedef struct _mms_conv_info_t {
1050
    wmem_map_t* pdus;
1051
} mms_conv_info_t;
1052
1053
typedef struct mms_private_data_t
1054
{
1055
    char preCinfo[BUFFER_SIZE_PRE];
1056
    char moreCinfo[BUFFER_SIZE_MORE];
1057
} mms_private_data_t;
1058
1059
82
#define MMS_CONFIRMED_REQUEST_PDU        0
1060
73
#define MMS_CONFIRMED_RESPONSE_PDU       1
1061
#define MMS_CONFIRMED_ERROR_PDU          2
1062
4
#define MMS_UNCONFIRMED_PDU              3
1063
#define MMS_REJECT_PDU                   4
1064
#define MMS_CANCEL_REQUEST_PDU           5
1065
#define MMS_CANCEL_RESPONSE_PDU          6
1066
#define MMS_CANCEL_ERROR_PDU             7
1067
18
#define MMS_INITIATE_REQUEST_PDU         8
1068
0
#define MMS_INITIATE_RESPONSE_PDU        9
1069
#define MMS_INITIATE_ERROR_PDU          10
1070
#define MMS_CONCLUDE_REQUEST_PDU        11
1071
#define MMS_CONCLUDE_RESPONSE_PDU       12
1072
#define MMS_CONCLUDE_ERROR_PDU          13
1073
1074
#define MMS_CONFIRMEDSERVICE_STATUS    0
1075
5
#define MMS_CONFIRMEDSERVICE_GETNAMELIST    1
1076
#define MMS_CONFIRMEDSERVICE_IDENTIFY    2
1077
#define MMS_CONFIRMEDSERVICE_RENAME    3
1078
4
#define MMS_CONFIRMEDSERVICE_READ    4
1079
4
#define MMS_CONFIRMEDSERVICE_WRITE    5
1080
2
#define MMS_CONFIRMEDSERVICE_GETVARIABLEACCESSATTRIBUTES    6
1081
#define MMS_CONFIRMEDSERVICE_DEFINENAMEDVARIABLE    7
1082
#define MMS_CONFIRMEDSERVICE_DEFINESCATTEREDACCESS    8
1083
#define MMS_CONFIRMEDSERVICE_GETSCATTEREDACCESSATTRIBUTES    9
1084
#define MMS_CONFIRMEDSERVICE_DELETEVARIABLEACCESS    10
1085
#define MMS_CONFIRMEDSERVICE_DEFINENAMEDVARIABLELIST    11
1086
5
#define MMS_CONFIRMEDSERVICE_GETNAMEDVARIABLELISTATTRIBUTES    12
1087
#define MMS_CONFIRMEDSERVICE_DELETENAMEDVARIABLELIST    13
1088
#define MMS_CONFIRMEDSERVICE_DEFINENAMEDTYPE    14
1089
#define MMS_CONFIRMEDSERVICE_GETNAMEDTYPEATTRIBUTES    15
1090
#define MMS_CONFIRMEDSERVICE_DELETENAMEDTYPE    16
1091
#define MMS_CONFIRMEDSERVICE_INPUT    17
1092
#define MMS_CONFIRMEDSERVICE_OUTPUT    18
1093
#define MMS_CONFIRMEDSERVICE_TAKECONTROL    19
1094
#define MMS_CONFIRMEDSERVICE_RELINQUISHCONTROL    20
1095
#define MMS_CONFIRMEDSERVICE_DEFINESEMAPHORE    21
1096
#define MMS_CONFIRMEDSERVICE_DELETESEMAPHORE    22
1097
#define MMS_CONFIRMEDSERVICE_REPORTSEMAPHORESTATUS    23
1098
#define MMS_CONFIRMEDSERVICE_REPORTPOOLSEMAPHORESTATUS    24
1099
#define MMS_CONFIRMEDSERVICE_REPORTSEMAPHOREENTRYSTATUS    25
1100
#define MMS_CONFIRMEDSERVICE_INITIATEDOWNLOADSEQUENCE    26
1101
#define MMS_CONFIRMEDSERVICE_DOWNLOADSEGMENT    27
1102
#define MMS_CONFIRMEDSERVICE_TERMINATEDOWNLOADSEQUENCE    28
1103
#define MMS_CONFIRMEDSERVICE_INITIATEUPLOADSEQUENCE    29
1104
#define MMS_CONFIRMEDSERVICE_UPLOADSEGMENT    30
1105
#define MMS_CONFIRMEDSERVICE_TERMINATEUPLOADSEQUENCE    31
1106
#define MMS_CONFIRMEDSERVICE_REQUESTDOMAINDOWNLOAD    32
1107
#define MMS_CONFIRMEDSERVICE_REQUESTDOMAINUPLOAD    33
1108
#define MMS_CONFIRMEDSERVICE_LOADDOMAINCONTENT    34
1109
#define MMS_CONFIRMEDSERVICE_STOREDOMAINCONTENT    35
1110
#define MMS_CONFIRMEDSERVICE_DELETEDOMAIN    36
1111
#define MMS_CONFIRMEDSERVICE_GETDOMAINATTRIBUTES    37
1112
#define MMS_CONFIRMEDSERVICE_CREATEPROGRAMINVOCATION    38
1113
#define MMS_CONFIRMEDSERVICE_DELETEPROGRAMINVOCATION    39
1114
#define MMS_CONFIRMEDSERVICE_START    40
1115
#define MMS_CONFIRMEDSERVICE_STOP    41
1116
#define MMS_CONFIRMEDSERVICE_RESUME    42
1117
#define MMS_CONFIRMEDSERVICE_RESET    43
1118
#define MMS_CONFIRMEDSERVICE_KILL    44
1119
#define MMS_CONFIRMEDSERVICE_GETPROGRAMINVOCATIONATTRIBUTES    45
1120
#define MMS_CONFIRMEDSERVICE_OBTAINFILE    46
1121
#define MMS_CONFIRMEDSERVICE_DEFINEEVENTCONDITION    47
1122
#define MMS_CONFIRMEDSERVICE_DELETEEVENTCONDITION    48
1123
#define MMS_CONFIRMEDSERVICE_GETEVENTCONDITIONATTRIBUTES    49
1124
#define MMS_CONFIRMEDSERVICE_REPORTEVENTCONDITIONSTATUS    50
1125
#define MMS_CONFIRMEDSERVICE_ALTEREVENTCONDITIONMONITORING    51
1126
#define MMS_CONFIRMEDSERVICE_TRIGGEREVENT    52
1127
#define MMS_CONFIRMEDSERVICE_DEFINEEVENTACTION    53
1128
#define MMS_CONFIRMEDSERVICE_DELETEEVENTACTION    54
1129
#define MMS_CONFIRMEDSERVICE_GETEVENTACTIONATTRIBUTES    55
1130
#define MMS_CONFIRMEDSERVICE_REPORTEVENTACTIONSTATUS    56
1131
#define MMS_CONFIRMEDSERVICE_DEFINEEVENTENROLLMENT    57
1132
#define MMS_CONFIRMEDSERVICE_DELETEEVENTENROLLMENT    58
1133
#define MMS_CONFIRMEDSERVICE_ALTEREVENTENROLLMENT    59
1134
#define MMS_CONFIRMEDSERVICE_REPORTEVENTENROLLMENTSTATUS    60
1135
#define MMS_CONFIRMEDSERVICE_GETEVENTENROLLMENTATTRIBUTES    61
1136
#define MMS_CONFIRMEDSERVICE_ACKNOWLEDGEEVENTNOTIFICATION    62
1137
#define MMS_CONFIRMEDSERVICE_GETALARMSUMMARY    63
1138
#define MMS_CONFIRMEDSERVICE_GETALARMENROLLMENTSUMMARY    64
1139
#define MMS_CONFIRMEDSERVICE_READJOURNAL    65
1140
#define MMS_CONFIRMEDSERVICE_WRITEJOURNAL    66
1141
#define MMS_CONFIRMEDSERVICE_INITIALIZEJOURNAL    67
1142
#define MMS_CONFIRMEDSERVICE_REPORTJOURNALSTATUS    68
1143
#define MMS_CONFIRMEDSERVICE_CREATEJOURNAL    69
1144
#define MMS_CONFIRMEDSERVICE_DELETEJOURNAL    70
1145
#define MMS_CONFIRMEDSERVICE_GETCAPABILITYLIST    71
1146
#define MMS_CONFIRMEDSERVICE_FILEOPEN    72
1147
#define MMS_FILEREAD    73
1148
#define MMS_FILECLOSE    74
1149
#define MMS_FILERENAME    75
1150
#define MMS_FILEDELETE    76
1151
#define MMS_FILEDIRECTORY    77
1152
1153
0
#define MMS_OBJECTCLASS_NAMMEDVARIABLE 0
1154
0
#define MMS_OBJECTCLASS_NAMEDVARIABLELIST 2
1155
0
#define MMS_OBJECTCLASS_DOMAIN 9
1156
1157
0
#define MMS_OBJECTSCOPE_VMDSPECIFIC 0
1158
#define MMS_OBJECTSCOPE_DOMAINSPECIFIC 1
1159
1160
#define MMS_IEC_61850_CONF_SERV_PDU_NOT_SET 0
1161
14
#define MMS_IEC_61850_CONF_SERV_PDU_GET_SERV_DIR 1
1162
14
#define MMS_IEC_61850_CONF_SERV_PDU_GETLOGICALDEVICEDIRECTORY 2
1163
15
#define MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY 3
1164
14
#define MMS_IEC_61850_CONF_SERV_PDU_GETDATADIRECTORY 4
1165
13
#define MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE 5
1166
14
#define MMS_IEC_61850_CONF_SERV_PDU_READ 6
1167
16
#define MMS_IEC_61850_CONF_SERV_PDU_WRITE 7
1168
1169
typedef struct mms_actx_private_data_t
1170
{
1171
    int mms_pdu_type;                               /* MMSpdu type taken from MMSpdu CHOICE branch_taken */
1172
    int invokeid;
1173
    iec61850_8_1_vmd_specific vmd_specific;         /* Numeric representation of decode vmd_specific strings */
1174
    int listOfAccessResult_cnt;                     /* Position in the list, 1 count */
1175
    int data_cnt;                                   /* Number of times data occurred(depth)*/
1176
    uint16_t reported_optflds;                       /* Bitmap over included fields */
1177
    proto_item* pdu_item;                           /* The item to append PDU info to */
1178
    int confirmedservice_type;                      /* Requested service */
1179
    int objectclass;
1180
    int objectscope;
1181
    mms_transaction_t* mms_trans_p;                 /* Pointer to the transaction record */
1182
    char* itemid_str;
1183
    int success;                                    /* If variable access succeeded or not */
1184
} mms_actx_private_data_t;
1185
1186
1187
static const value_string mms_iec6150_cntmodel_vals[] = {
1188
    {0, "status-only"},
1189
    {1, "direct-with-normal-security"},
1190
    {2, "sbo-with-normal-security"},
1191
    {3, "direct-with-enhanced-security"},
1192
    {4, "sbo-with-enhanced-security"},
1193
    {0, NULL}
1194
};
1195
1196
static const value_string mms_iec6150_validity_vals[] = {
1197
    {0, "Good"},
1198
    {1, "Invalid"},
1199
    {2, "Reserved"},
1200
    {3, "Questionable"},
1201
    {0, NULL}
1202
};
1203
1204
static const value_string mms_iec6150_source_vals[] = {
1205
    {0, "Process"},
1206
    {1, "Substituted"},
1207
    {0, NULL}
1208
};
1209
1210
static const value_string mms_iec6150_timeaccuracy_vals[] = {
1211
    {0,  "0 bits accuracy"},
1212
    {1,  "1 bits accuracy"},
1213
    {2,  "2 bits accuracy"},
1214
    {3,  "3 bits accuracy"},
1215
    {4,  "4 bits accuracy"},
1216
    {5,  "5 bits accuracy"},
1217
    {6,  "6 bits accuracy"},
1218
    {7,  "7 bits accuracy"},
1219
    {8,  "8 bits accuracy"},
1220
    {9,  "9 bits accuracy"},
1221
    {10, "10 bits accuracy"},
1222
    {11, "11 bits accuracy"},
1223
    {12, "12 bits accuracy"},
1224
    {13, "13 bits accuracy"},
1225
    {14, "14 bits accuracy"},
1226
    {15, "15 bits accuracy"},
1227
    {16, "16 bits accuracy"},
1228
    {17, "17 bits accuracy"},
1229
    {18, "18 bits accuracy"},
1230
    {19, "19 bits accuracy"},
1231
    {20, "20 bits accuracy"},
1232
    {21, "21 bits accuracy"},
1233
    {22, "22 bits accuracy"},
1234
    {23, "23 bits accuracy"},
1235
    {24, "24 bits accuracy"},
1236
    {25, "25 bits accuracy"},
1237
    {26, "26 bits accuracy"},
1238
    {27, "27 bits accuracy"},
1239
    {28, "28 bits accuracy"},
1240
    {29, "29 bits accuracy"},
1241
    {30, "Invalid"},
1242
    {31, "Unspecified"},
1243
    {0, NULL}
1244
};
1245
1246
static const value_string mms_iec6150_orcategory_vals[] = {
1247
    {0, "not-supported"},
1248
    {1, "bay-control"},
1249
    {2, "station-control"},
1250
    {3, "remote-control"},
1251
    {4, "automatic-bay"},
1252
    {5, "automatic-station"},
1253
    {6, "automatic-station"},
1254
    {7, "maintenance"},
1255
    {8, "process"},
1256
    {0, NULL}
1257
};
1258
1259
static const value_string mms_iec6150_beh_vals[] = {
1260
    {0,"Uninitialised"},
1261
    {1, "on"},
1262
    {2, "blocked"},
1263
    {3, "test"},
1264
    {4, "test/blocked"},
1265
    {5, "off"},
1266
    {0, NULL}
1267
};
1268
1269
static const value_string mms_iec6150_health_vals[] = {
1270
    {0,"Uninitialised"},
1271
    {1,"Ok"},
1272
    {2,"Warning"},
1273
    {3,"Alarm"},
1274
    {0, NULL}
1275
};
1276
1277
/* Helper function to get or create the private data struct */
1278
static
1279
mms_private_data_t* mms_get_private_data(asn1_ctx_t* actx)
1280
136
{
1281
136
    packet_info* pinfo = actx->pinfo;
1282
136
    mms_private_data_t* private_data = (mms_private_data_t*)p_get_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num);
1283
136
    if (private_data != NULL) {
1284
53
        return private_data;
1285
83
    } else {
1286
83
        private_data = wmem_new0(pinfo->pool, mms_private_data_t);
1287
83
        p_add_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num, private_data);
1288
83
        return private_data;
1289
83
    }
1290
136
}
1291
1292
/* Helper function to test presence of private data struct */
1293
static bool
1294
mms_has_private_data(asn1_ctx_t* actx)
1295
141
{
1296
141
    packet_info* pinfo = actx->pinfo;
1297
141
    return (p_get_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num) != NULL);
1298
141
}
1299
1300
static void
1301
private_data_add_preCinfo(asn1_ctx_t* actx, uint32_t val)
1302
41
{
1303
41
    mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
1304
41
    snprintf(private_data->preCinfo, BUFFER_SIZE_PRE, "%02d ", val);
1305
41
}
1306
1307
static char*
1308
private_data_get_preCinfo(asn1_ctx_t* actx)
1309
47
{
1310
47
    mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
1311
47
    return private_data->preCinfo;
1312
47
}
1313
1314
static void
1315
private_data_add_moreCinfo_id(asn1_ctx_t* actx, tvbuff_t* tvb)
1316
0
{
1317
0
    mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
1318
0
    (void)g_strlcat(private_data->moreCinfo, " ", BUFFER_SIZE_MORE);
1319
0
    (void)g_strlcat(private_data->moreCinfo, (char*)tvb_get_string_enc(actx->pinfo->pool, tvb,
1320
0
        0, tvb_reported_length(tvb), ENC_ASCII | ENC_NA), BUFFER_SIZE_MORE);
1321
0
}
1322
1323
static void
1324
private_data_add_moreCinfo_float(asn1_ctx_t* actx, tvbuff_t* tvb)
1325
0
{
1326
0
    mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
1327
0
    snprintf(private_data->moreCinfo, BUFFER_SIZE_MORE,
1328
0
        " %f", tvb_get_ieee_float(tvb, 1, ENC_BIG_ENDIAN));
1329
0
}
1330
1331
static char*
1332
private_data_get_moreCinfo(asn1_ctx_t* actx)
1333
48
{
1334
48
    mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
1335
48
    return private_data->moreCinfo;
1336
48
}
1337
1338
/*****************************************************************************/
1339
1340
1341
/*--- Cyclic dependencies ---*/
1342
1343
/* TypeSpecification -> TypeSpecification/array -> TypeSpecification */
1344
/* TypeSpecification -> TypeSpecification/structure -> TypeSpecification/structure/components -> TypeSpecification/structure/components/_item -> TypeSpecification */
1345
static unsigned dissect_mms_TypeSpecification(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
1346
1347
/* VariableSpecification -> ScatteredAccessDescription -> ScatteredAccessDescription/_item -> VariableSpecification */
1348
static unsigned dissect_mms_VariableSpecification(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
1349
1350
/* AlternateAccess -> AlternateAccess/_item -> AlternateAccessSelection -> AlternateAccessSelection/selectAlternateAccess -> AlternateAccess */
1351
static unsigned dissect_mms_AlternateAccess(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
1352
1353
/* Data -> Data/array -> Data */
1354
/* Data -> Data/structure -> Data */
1355
static unsigned dissect_mms_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
1356
1357
1358
1359
static int * const ReportedOptFlds_bits[] = {
1360
  &hf_mms_ReportedOptFlds_reserved,
1361
  &hf_mms_ReportedOptFlds_sequence_number,
1362
  &hf_mms_ReportedOptFlds_report_time_stamp,
1363
  &hf_mms_ReportedOptFlds_reason_for_inclusion,
1364
  &hf_mms_ReportedOptFlds_data_set_name,
1365
  &hf_mms_ReportedOptFlds_data_reference,
1366
  &hf_mms_ReportedOptFlds_buffer_overflow,
1367
  &hf_mms_ReportedOptFlds_entryID,
1368
  &hf_mms_ReportedOptFlds_conf_revision,
1369
  &hf_mms_ReportedOptFlds_segmentation,
1370
  NULL
1371
};
1372
1373
static unsigned
1374
0
dissect_mms_ReportedOptFlds(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1375
0
    tvbuff_t *parameter_tvb = NULL;
1376
0
  offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1377
0
                                    ReportedOptFlds_bits, 10, hf_index, ett_mms_ReportedOptFlds,
1378
0
                                    &parameter_tvb);
1379
1380
0
    mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
1381
0
    if(mms_priv && parameter_tvb){
1382
0
        mms_priv->reported_optflds = tvb_get_ntohs(parameter_tvb,0);
1383
0
    }
1384
1385
1386
0
  return offset;
1387
0
}
1388
1389
1390
1391
static unsigned
1392
66
dissect_mms_Unsigned32(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1393
66
    uint32_t  val;
1394
66
    conversation_t *conversation;
1395
66
    mms_conv_info_t *mms_info;
1396
66
    mms_transaction_t *mms_trans;
1397
1398
66
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1399
66
                                                &val);
1400
1401
66
    if (hf_index == hf_mms_invokeID){
1402
41
        mms_actx_private_data_t* mms_priv = (mms_actx_private_data_t*)actx->private_data;
1403
41
        if(mms_priv){
1404
41
            mms_priv->invokeid=val;
1405
41
            private_data_add_preCinfo(actx, val);
1406
41
            conversation = find_or_create_conversation(actx->pinfo);
1407
1408
41
            mms_info = (mms_conv_info_t *)conversation_get_proto_data(conversation, proto_mms);
1409
41
            if (!mms_info) {
1410
                /*
1411
                 * No.  Attach that information to the conversation, and add
1412
                 * it to the list of information structures.
1413
                 */
1414
6
                mms_info = wmem_new(wmem_file_scope(), mms_conv_info_t);
1415
6
                mms_info->pdus=wmem_map_new(wmem_file_scope(), g_direct_hash, g_direct_equal);
1416
1417
6
                conversation_add_proto_data(conversation, proto_mms, mms_info);
1418
6
            }
1419
            /* Request or response? */
1420
41
            bool is_request;
1421
1422
41
            switch(mms_priv->mms_pdu_type){
1423
18
                case 0:
1424
                    /* Confirmed-RequestPDU */
1425
18
                    is_request = true;
1426
18
                    break;
1427
23
                case 1:
1428
                    /* confirmed-ResponsePDU */
1429
23
                    is_request = false;
1430
23
                    break;
1431
0
                case 2:
1432
                    /* Confirmed-ErrorPDU */
1433
0
                    is_request = false;
1434
0
                    break;
1435
0
                default:
1436
0
                    is_request = false;
1437
0
                    break;
1438
41
            }
1439
1440
41
            if (!PINFO_FD_VISITED(actx->pinfo)) {
1441
41
                if (is_request==true) {
1442
                    /* This is a request */
1443
18
                    mms_trans=wmem_new0(wmem_file_scope(), mms_transaction_t);
1444
18
                    mms_trans->req_frame = actx->pinfo->num;
1445
18
                    mms_trans->req_time = actx->pinfo->fd->abs_ts;
1446
18
                    wmem_map_insert(mms_info->pdus, GUINT_TO_POINTER(mms_priv->invokeid), (void *)mms_trans);
1447
23
                } else {
1448
23
                    mms_trans=(mms_transaction_t *)wmem_map_lookup(mms_info->pdus, GUINT_TO_POINTER(mms_priv->invokeid));
1449
23
                    if (mms_trans) {
1450
7
                        mms_trans->rep_frame = actx->pinfo->num;
1451
7
                    }
1452
23
                }
1453
41
            } else {
1454
0
                mms_trans=(mms_transaction_t *)wmem_map_lookup(mms_info->pdus, GUINT_TO_POINTER(mms_priv->invokeid));
1455
0
            }
1456
41
            if (!mms_trans) {
1457
                /* create a "fake" mms_trans structure */
1458
16
                mms_trans=wmem_new0(actx->pinfo->pool, mms_transaction_t);
1459
16
                mms_trans->req_frame = 0;
1460
16
                mms_trans->rep_frame = 0;
1461
16
                mms_trans->req_time = actx->pinfo->fd->abs_ts;
1462
16
            }
1463
41
            mms_priv->mms_trans_p = mms_trans;
1464
1465
            /* print state tracking in the tree */
1466
41
            if (is_request) {
1467
                    /* This is a request */
1468
18
                    if (mms_trans->rep_frame) {
1469
0
                            proto_item *it;
1470
1471
0
                            it = proto_tree_add_uint(actx->subtree.top_tree, hf_mms_response_in, tvb, 0, 0, mms_trans->rep_frame);
1472
0
                            proto_item_set_generated(it);
1473
0
                    }
1474
23
            } else {
1475
                /* This is a reply */
1476
23
                if (mms_trans->req_frame) {
1477
7
                        proto_item *it;
1478
7
                        nstime_t ns;
1479
1480
7
                        it = proto_tree_add_uint(actx->subtree.top_tree, hf_mms_response_to, tvb, 0, 0, mms_trans->req_frame);
1481
7
                        proto_item_set_generated(it);
1482
1483
7
                        nstime_delta(&ns, &actx->pinfo->fd->abs_ts, &mms_trans->req_time);
1484
7
                        it = proto_tree_add_time(actx->subtree.top_tree, hf_mms_response_time, tvb, 0, 0, &ns);
1485
7
                        proto_item_set_generated(it);
1486
7
                }
1487
23
            }
1488
41
        }
1489
41
    }
1490
1491
1492
66
  return offset;
1493
66
}
1494
1495
1496
1497
static unsigned
1498
12
dissect_mms_Identifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1499
12
    tvbuff_t *parameter_tvb = NULL;
1500
12
    mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
1501
1502
12
  offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_VisibleString,
1503
12
                                            actx, tree, tvb, offset, hf_index,
1504
12
                                            &parameter_tvb);
1505
1506
12
    if (parameter_tvb) {
1507
0
        if (hf_index == hf_mms_domainId) {
1508
0
                private_data_add_moreCinfo_id(actx,parameter_tvb);
1509
0
        }
1510
0
        if ((mms_priv) && ((hf_index == hf_mms_objectName_domain_specific_itemId)||
1511
0
                (hf_index ==hf_mms_listOfIdentifier_item))) {
1512
0
            private_data_add_moreCinfo_id(actx,parameter_tvb);
1513
0
            if((mms_priv->mms_trans_p)&&(parameter_tvb)){
1514
0
                mms_priv->itemid_str = (char*)tvb_get_string_enc(actx->pinfo->pool, parameter_tvb, 0, tvb_reported_length(parameter_tvb), ENC_ASCII|ENC_NA);
1515
0
                if(g_str_has_suffix(mms_priv->itemid_str,"$ctlModel")){
1516
0
                    mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_CTLMODEL;
1517
0
                }else  if(g_str_has_suffix(mms_priv->itemid_str,"$q")){
1518
0
                    mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_Q;
1519
0
                }else if(g_str_has_suffix(mms_priv->itemid_str,"$Oper")){
1520
0
                    mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_OPER;
1521
0
                 }else if((g_str_has_suffix(mms_priv->itemid_str,"$Oper$Check")) || (g_str_has_suffix(mms_priv->itemid_str,"$SBOw$Check"))){
1522
0
                     mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_CHECK;
1523
0
                 }else if(g_str_has_suffix(mms_priv->itemid_str,"$orCat")){
1524
0
                     mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_OR_CAT;
1525
0
                 }else if(g_str_has_suffix(mms_priv->itemid_str,"Beh$stVal")){
1526
0
                    mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_BEH$STVAL;
1527
0
                 }else if(g_str_has_suffix(mms_priv->itemid_str,"Mod$stVal")){
1528
0
                    mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_MOD$STVAL;
1529
0
                 }else if(g_str_has_suffix(mms_priv->itemid_str,"Health$stVal")){
1530
0
                    mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_HEALTH$STVAL;
1531
0
                 }else if((g_strrstr(mms_priv->itemid_str,"$BR$") || g_strrstr(mms_priv->itemid_str,"$RP$"))){ //GetBRCBValues,GetURCBValues,)
1532
0
                    mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_$BR$_OR_$RP$;
1533
0
                 }else if(g_str_has_suffix(mms_priv->itemid_str,"$SBOw")){
1534
0
                    mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_$SBOW;
1535
0
                    mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE;
1536
0
                 }
1537
0
            }
1538
0
        }
1539
1540
0
        if ((mms_priv) && (hf_index == hf_mms_vmd_specific)){
1541
0
            const char *vmd_specific_str = (char*)tvb_get_string_enc(actx->pinfo->pool, parameter_tvb, 0, tvb_reported_length(parameter_tvb), ENC_ASCII|ENC_NA);
1542
0
            if (strcmp(vmd_specific_str, "RPT") == 0) {
1543
0
                    mms_priv->vmd_specific = IEC61850_8_1_RPT;
1544
0
            }
1545
0
        }
1546
0
    }
1547
1548
1549
12
  return offset;
1550
12
}
1551
1552
1553
1554
static unsigned
1555
0
dissect_mms_ObjectName_domain_specific_itemid(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1556
0
  offset = dissect_mms_Identifier(implicit_tag, tvb, offset, actx, tree, hf_index);
1557
1558
0
  return offset;
1559
0
}
1560
1561
1562
static const ber_sequence_t T_domain_specific_sequence[] = {
1563
  { &hf_mms_domainId        , BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_Identifier },
1564
  { &hf_mms_objectName_domain_specific_itemId, BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_ObjectName_domain_specific_itemid },
1565
  { NULL, 0, 0, 0, NULL }
1566
};
1567
1568
static unsigned
1569
3
dissect_mms_T_domain_specific(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1570
3
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1571
3
                                   T_domain_specific_sequence, hf_index, ett_mms_T_domain_specific);
1572
1573
3
  return offset;
1574
3
}
1575
1576
1577
static const value_string mms_ObjectName_vals[] = {
1578
  {   0, "vmd-specific" },
1579
  {   1, "domain-specific" },
1580
  {   2, "aa-specific" },
1581
  { 0, NULL }
1582
};
1583
1584
static const ber_choice_t ObjectName_choice[] = {
1585
  {   0, &hf_mms_vmd_specific    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
1586
  {   1, &hf_mms_domain_specific , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_domain_specific },
1587
  {   2, &hf_mms_aa_specific     , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
1588
  { 0, NULL, 0, 0, 0, NULL }
1589
};
1590
1591
static unsigned
1592
36
dissect_mms_ObjectName(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1593
36
  offset = dissect_ber_choice(actx, tree, tvb, offset,
1594
36
                                 ObjectName_choice, hf_index, ett_mms_ObjectName,
1595
36
                                 NULL);
1596
1597
36
  return offset;
1598
36
}
1599
1600
1601
static int * const Transitions_bits[] = {
1602
  &hf_mms_Transitions_idle_to_disabled,
1603
  &hf_mms_Transitions_active_to_disabled,
1604
  &hf_mms_Transitions_disabled_to_idle,
1605
  &hf_mms_Transitions_active_to_idle,
1606
  &hf_mms_Transitions_disabled_to_active,
1607
  &hf_mms_Transitions_idle_to_active,
1608
  &hf_mms_Transitions_any_to_deleted,
1609
  NULL
1610
};
1611
1612
static unsigned
1613
0
dissect_mms_Transitions(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1614
0
  offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1615
0
                                    Transitions_bits, 7, hf_index, ett_mms_Transitions,
1616
0
                                    NULL);
1617
1618
0
  return offset;
1619
0
}
1620
1621
1622
static const ber_sequence_t AttachToEventCondition_sequence[] = {
1623
  { &hf_mms_eventEnrollmentName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
1624
  { &hf_mms_eventConditionName, BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
1625
  { &hf_mms_causingTransitions, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Transitions },
1626
  { &hf_mms_acceptableDelay , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
1627
  { NULL, 0, 0, 0, NULL }
1628
};
1629
1630
static unsigned
1631
0
dissect_mms_AttachToEventCondition(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1632
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1633
0
                                   AttachToEventCondition_sequence, hf_index, ett_mms_AttachToEventCondition);
1634
1635
0
  return offset;
1636
0
}
1637
1638
1639
1640
static unsigned
1641
0
dissect_mms_Unsigned8(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1642
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1643
0
                                                NULL);
1644
1645
0
  return offset;
1646
0
}
1647
1648
1649
1650
static unsigned
1651
0
dissect_mms_Priority(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1652
0
  offset = dissect_mms_Unsigned8(implicit_tag, tvb, offset, actx, tree, hf_index);
1653
1654
0
  return offset;
1655
0
}
1656
1657
1658
1659
static unsigned
1660
0
dissect_mms_BOOLEAN(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1661
0
  offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1662
1663
0
  return offset;
1664
0
}
1665
1666
1667
static const ber_sequence_t AttachToSemaphore_sequence[] = {
1668
  { &hf_mms_semaphoreName   , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
1669
  { &hf_mms_namedToken      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
1670
  { &hf_mms_priority        , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Priority },
1671
  { &hf_mms_acceptableDelay , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
1672
  { &hf_mms_controlTimeOut  , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
1673
  { &hf_mms_abortOnTimeOut  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
1674
  { &hf_mms_relinquishIfConnectionLost, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
1675
  { NULL, 0, 0, 0, NULL }
1676
};
1677
1678
static unsigned
1679
0
dissect_mms_AttachToSemaphore(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1680
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1681
0
                                   AttachToSemaphore_sequence, hf_index, ett_mms_AttachToSemaphore);
1682
1683
0
  return offset;
1684
0
}
1685
1686
1687
static const value_string mms_Modifier_vals[] = {
1688
  {   0, "attach-To-Event-Condition" },
1689
  {   1, "attach-To-Semaphore" },
1690
  { 0, NULL }
1691
};
1692
1693
static const ber_choice_t Modifier_choice[] = {
1694
  {   0, &hf_mms_attach_To_Event_Condition, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_AttachToEventCondition },
1695
  {   1, &hf_mms_attach_To_Semaphore, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_AttachToSemaphore },
1696
  { 0, NULL, 0, 0, 0, NULL }
1697
};
1698
1699
static unsigned
1700
3
dissect_mms_Modifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1701
3
  offset = dissect_ber_choice(actx, tree, tvb, offset,
1702
3
                                 Modifier_choice, hf_index, ett_mms_Modifier,
1703
3
                                 NULL);
1704
1705
3
  return offset;
1706
3
}
1707
1708
1709
static const ber_sequence_t SEQUENCE_OF_Modifier_sequence_of[1] = {
1710
  { &hf_mms_listOfModifier_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_Modifier },
1711
};
1712
1713
static unsigned
1714
3
dissect_mms_SEQUENCE_OF_Modifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1715
3
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1716
3
                                      SEQUENCE_OF_Modifier_sequence_of, hf_index, ett_mms_SEQUENCE_OF_Modifier);
1717
1718
3
  return offset;
1719
3
}
1720
1721
1722
1723
static unsigned
1724
0
dissect_mms_Status_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1725
0
  offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1726
1727
0
  return offset;
1728
0
}
1729
1730
1731
static const value_string mms_ObjectClass_vals[] = {
1732
  {   0, "nammedVariable" },
1733
  {   1, "scatteredAccess" },
1734
  {   2, "namedVariableList" },
1735
  {   3, "namedType" },
1736
  {   4, "semaphore" },
1737
  {   5, "eventCondition" },
1738
  {   6, "eventAction" },
1739
  {   7, "eventEnrollment" },
1740
  {   8, "journal" },
1741
  {   9, "domain" },
1742
  {  10, "programInvocation" },
1743
  {  11, "operatorStation" },
1744
  { 0, NULL }
1745
};
1746
1747
1748
static unsigned
1749
0
dissect_mms_ObjectClass(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1750
0
    uint32_t  val;
1751
1752
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1753
0
                                                &val);
1754
1755
0
        mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
1756
0
        if(mms_priv){
1757
0
            mms_priv->objectclass = val;
1758
0
        }
1759
1760
1761
0
  return offset;
1762
0
}
1763
1764
1765
static const value_string mms_T_extendedObjectClass_vals[] = {
1766
  {   0, "objectClass" },
1767
  { 0, NULL }
1768
};
1769
1770
static const ber_choice_t T_extendedObjectClass_choice[] = {
1771
  {   0, &hf_mms_objectClass     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_ObjectClass },
1772
  { 0, NULL, 0, 0, 0, NULL }
1773
};
1774
1775
static unsigned
1776
0
dissect_mms_T_extendedObjectClass(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1777
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
1778
0
                                 T_extendedObjectClass_choice, hf_index, ett_mms_T_extendedObjectClass,
1779
0
                                 NULL);
1780
1781
0
  return offset;
1782
0
}
1783
1784
1785
1786
static unsigned
1787
0
dissect_mms_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1788
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
1789
1790
0
  return offset;
1791
0
}
1792
1793
1794
static const value_string mms_ObjectScope_vals[] = {
1795
  {   0, "vmdSpecific" },
1796
  {   1, "domainSpecific" },
1797
  {   2, "aaSpecific" },
1798
  { 0, NULL }
1799
};
1800
1801
static const ber_choice_t ObjectScope_choice[] = {
1802
  {   0, &hf_mms_vmdSpecific     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
1803
  {   1, &hf_mms_domainSpecific  , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
1804
  {   2, &hf_mms_aaSpecific      , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
1805
  { 0, NULL, 0, 0, 0, NULL }
1806
};
1807
1808
static unsigned
1809
0
dissect_mms_ObjectScope(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1810
0
    int  val;
1811
1812
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
1813
0
                                 ObjectScope_choice, hf_index, ett_mms_ObjectScope,
1814
0
                                 &val);
1815
1816
0
        mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
1817
0
        if(mms_priv){
1818
0
            mms_priv->objectscope = val;
1819
0
        }
1820
1821
1822
0
  return offset;
1823
0
}
1824
1825
1826
static const ber_sequence_t GetNameList_Request_sequence[] = {
1827
  { &hf_mms_extendedObjectClass, BER_CLASS_CON, 0, 0, dissect_mms_T_extendedObjectClass },
1828
  { &hf_mms_objectScope     , BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectScope },
1829
  { &hf_mms_getNameList_Request_continueAfter, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
1830
  { NULL, 0, 0, 0, NULL }
1831
};
1832
1833
static unsigned
1834
2
dissect_mms_GetNameList_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1835
2
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1836
2
                                   GetNameList_Request_sequence, hf_index, ett_mms_GetNameList_Request);
1837
1838
2
  return offset;
1839
2
}
1840
1841
1842
1843
static unsigned
1844
10
dissect_mms_Identify_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1845
10
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
1846
1847
10
  return offset;
1848
10
}
1849
1850
1851
static const value_string mms_T_objectClass_vals[] = {
1852
  {   0, "namedVariable" },
1853
  {   1, "scatteredAccess" },
1854
  {   2, "namedVariableList" },
1855
  {   3, "namedType" },
1856
  {   4, "semaphore" },
1857
  {   5, "eventCondition" },
1858
  {   6, "eventAction" },
1859
  {   7, "eventEnrollment" },
1860
  {   8, "journal" },
1861
  {   9, "domain" },
1862
  {  10, "programInvocation" },
1863
  {  11, "operatorStation" },
1864
  { 0, NULL }
1865
};
1866
1867
1868
static unsigned
1869
0
dissect_mms_T_objectClass(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1870
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1871
0
                                                NULL);
1872
1873
0
  return offset;
1874
0
}
1875
1876
1877
static const value_string mms_T_extendedObjectClass_01_vals[] = {
1878
  {   0, "objectClass" },
1879
  { 0, NULL }
1880
};
1881
1882
static const ber_choice_t T_extendedObjectClass_01_choice[] = {
1883
  {   0, &hf_mms_objectClass_01  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_objectClass },
1884
  { 0, NULL, 0, 0, 0, NULL }
1885
};
1886
1887
static unsigned
1888
0
dissect_mms_T_extendedObjectClass_01(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1889
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
1890
0
                                 T_extendedObjectClass_01_choice, hf_index, ett_mms_T_extendedObjectClass_01,
1891
0
                                 NULL);
1892
1893
0
  return offset;
1894
0
}
1895
1896
1897
static const ber_sequence_t Rename_Request_sequence[] = {
1898
  { &hf_mms_extendedObjectClass_01, BER_CLASS_CON, 0, 0, dissect_mms_T_extendedObjectClass_01 },
1899
  { &hf_mms_currentName     , BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
1900
  { &hf_mms_newIdentifier   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
1901
  { NULL, 0, 0, 0, NULL }
1902
};
1903
1904
static unsigned
1905
3
dissect_mms_Rename_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1906
3
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1907
3
                                   Rename_Request_sequence, hf_index, ett_mms_Rename_Request);
1908
1909
3
  return offset;
1910
3
}
1911
1912
1913
1914
static unsigned
1915
0
dissect_mms_VisibleString(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1916
0
  offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_VisibleString,
1917
0
                                            actx, tree, tvb, offset, hf_index,
1918
0
                                            NULL);
1919
1920
0
  return offset;
1921
0
}
1922
1923
1924
1925
static unsigned
1926
0
dissect_mms_OCTET_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1927
0
  offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1928
0
                                       NULL);
1929
1930
0
  return offset;
1931
0
}
1932
1933
1934
static const value_string mms_Address_vals[] = {
1935
  {   0, "numericAddress" },
1936
  {   1, "symbolicAddress" },
1937
  {   2, "unconstrainedAddress" },
1938
  { 0, NULL }
1939
};
1940
1941
static const ber_choice_t Address_choice[] = {
1942
  {   0, &hf_mms_numericAddress  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
1943
  {   1, &hf_mms_symbolicAddress , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_VisibleString },
1944
  {   2, &hf_mms_unconstrainedAddress, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_OCTET_STRING },
1945
  { 0, NULL, 0, 0, 0, NULL }
1946
};
1947
1948
static unsigned
1949
0
dissect_mms_Address(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1950
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
1951
0
                                 Address_choice, hf_index, ett_mms_Address,
1952
0
                                 NULL);
1953
1954
0
  return offset;
1955
0
}
1956
1957
1958
static const ber_sequence_t T_array_sequence[] = {
1959
  { &hf_mms_packed          , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
1960
  { &hf_mms_numberOfElements, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
1961
  { &hf_mms_elementType     , BER_CLASS_CON, 2, BER_FLAGS_NOTCHKTAG, dissect_mms_TypeSpecification },
1962
  { NULL, 0, 0, 0, NULL }
1963
};
1964
1965
static unsigned
1966
0
dissect_mms_T_array(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1967
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1968
0
                                   T_array_sequence, hf_index, ett_mms_T_array);
1969
1970
0
  return offset;
1971
0
}
1972
1973
1974
static const ber_sequence_t T_components_item_sequence[] = {
1975
  { &hf_mms_componentName   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
1976
  { &hf_mms_componentType   , BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_mms_TypeSpecification },
1977
  { NULL, 0, 0, 0, NULL }
1978
};
1979
1980
static unsigned
1981
0
dissect_mms_T_components_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1982
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1983
0
                                   T_components_item_sequence, hf_index, ett_mms_T_components_item);
1984
1985
0
  return offset;
1986
0
}
1987
1988
1989
static const ber_sequence_t T_components_sequence_of[1] = {
1990
  { &hf_mms_components_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mms_T_components_item },
1991
};
1992
1993
static unsigned
1994
0
dissect_mms_T_components(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1995
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1996
0
                                      T_components_sequence_of, hf_index, ett_mms_T_components);
1997
1998
0
  return offset;
1999
0
}
2000
2001
2002
static const ber_sequence_t T_structure_sequence[] = {
2003
  { &hf_mms_packed          , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
2004
  { &hf_mms_components      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_components },
2005
  { NULL, 0, 0, 0, NULL }
2006
};
2007
2008
static unsigned
2009
0
dissect_mms_T_structure(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2010
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2011
0
                                   T_structure_sequence, hf_index, ett_mms_T_structure);
2012
2013
0
  return offset;
2014
0
}
2015
2016
2017
2018
static unsigned
2019
15
dissect_mms_Integer32(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2020
15
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2021
15
                                                NULL);
2022
2023
15
  return offset;
2024
15
}
2025
2026
2027
static const value_string mms_TypeSpecification_vals[] = {
2028
  {   0, "typeName" },
2029
  {   1, "array" },
2030
  {   2, "structure" },
2031
  {   3, "boolean" },
2032
  {   4, "bit-string" },
2033
  {   5, "integer" },
2034
  {   6, "unsigned" },
2035
  {   9, "octet-string" },
2036
  {  10, "visible-string" },
2037
  {  11, "generalized-time" },
2038
  {  12, "binary-time" },
2039
  {  13, "bcd" },
2040
  {  15, "objId" },
2041
  { 0, NULL }
2042
};
2043
2044
static const ber_choice_t TypeSpecification_choice[] = {
2045
  {   0, &hf_mms_typeName        , BER_CLASS_CON, 0, 0, dissect_mms_ObjectName },
2046
  {   1, &hf_mms_array           , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_array },
2047
  {   2, &hf_mms_structure       , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_T_structure },
2048
  {   3, &hf_mms_boolean         , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
2049
  {   4, &hf_mms_typeSpecification_bit_string, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_Integer32 },
2050
  {   5, &hf_mms_integer         , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned8 },
2051
  {   6, &hf_mms_unsigned        , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned8 },
2052
  {   9, &hf_mms_typeSpecification_octet_string, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_mms_Integer32 },
2053
  {  10, &hf_mms_typeSpecification_visible_string, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_mms_Integer32 },
2054
  {  11, &hf_mms_generalized_time, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
2055
  {  12, &hf_mms_typeSpecification_binary_time, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
2056
  {  13, &hf_mms_bcd             , BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned8 },
2057
  {  15, &hf_mms_objId           , BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
2058
  { 0, NULL, 0, 0, 0, NULL }
2059
};
2060
2061
static unsigned
2062
0
dissect_mms_TypeSpecification(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2063
  // TypeSpecification -> TypeSpecification/array -> TypeSpecification
2064
0
  increment_dissection_depth_by_n(actx->pinfo, 2);
2065
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
2066
0
                                 TypeSpecification_choice, hf_index, ett_mms_TypeSpecification,
2067
0
                                 NULL);
2068
2069
0
  decrement_dissection_depth_by_n(actx->pinfo, 2);
2070
0
  return offset;
2071
0
}
2072
2073
2074
static const ber_sequence_t T_variableDescription_sequence[] = {
2075
  { &hf_mms_address         , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_Address },
2076
  { &hf_mms_typeSpecification, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_TypeSpecification },
2077
  { NULL, 0, 0, 0, NULL }
2078
};
2079
2080
static unsigned
2081
0
dissect_mms_T_variableDescription(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2082
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2083
0
                                   T_variableDescription_sequence, hf_index, ett_mms_T_variableDescription);
2084
2085
0
  return offset;
2086
0
}
2087
2088
2089
static const ber_sequence_t T_indexRange_sequence[] = {
2090
  { &hf_mms_lowIndex        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
2091
  { &hf_mms_numberOfElements, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
2092
  { NULL, 0, 0, 0, NULL }
2093
};
2094
2095
static unsigned
2096
0
dissect_mms_T_indexRange(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2097
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2098
0
                                   T_indexRange_sequence, hf_index, ett_mms_T_indexRange);
2099
2100
0
  return offset;
2101
0
}
2102
2103
2104
static const value_string mms_T_accessSelection_vals[] = {
2105
  {   0, "component" },
2106
  {   1, "index" },
2107
  {   2, "indexRange" },
2108
  {   3, "allElements" },
2109
  { 0, NULL }
2110
};
2111
2112
static const ber_choice_t T_accessSelection_choice[] = {
2113
  {   0, &hf_mms_component       , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
2114
  {   1, &hf_mms_index           , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
2115
  {   2, &hf_mms_indexRange      , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_T_indexRange },
2116
  {   3, &hf_mms_allElements     , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
2117
  { 0, NULL, 0, 0, 0, NULL }
2118
};
2119
2120
static unsigned
2121
0
dissect_mms_T_accessSelection(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2122
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
2123
0
                                 T_accessSelection_choice, hf_index, ett_mms_T_accessSelection,
2124
0
                                 NULL);
2125
2126
0
  return offset;
2127
0
}
2128
2129
2130
static const ber_sequence_t T_selectAlternateAccess_sequence[] = {
2131
  { &hf_mms_accessSelection , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_T_accessSelection },
2132
  { &hf_mms_alternateAccess , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mms_AlternateAccess },
2133
  { NULL, 0, 0, 0, NULL }
2134
};
2135
2136
static unsigned
2137
0
dissect_mms_T_selectAlternateAccess(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2138
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2139
0
                                   T_selectAlternateAccess_sequence, hf_index, ett_mms_T_selectAlternateAccess);
2140
2141
0
  return offset;
2142
0
}
2143
2144
2145
static const ber_sequence_t T_indexRange_01_sequence[] = {
2146
  { &hf_mms_lowIndex        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
2147
  { &hf_mms_nmberOfElements , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
2148
  { NULL, 0, 0, 0, NULL }
2149
};
2150
2151
static unsigned
2152
0
dissect_mms_T_indexRange_01(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2153
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2154
0
                                   T_indexRange_01_sequence, hf_index, ett_mms_T_indexRange_01);
2155
2156
0
  return offset;
2157
0
}
2158
2159
2160
static const value_string mms_T_selectAccess_vals[] = {
2161
  {   1, "component" },
2162
  {   2, "index" },
2163
  {   3, "indexRange" },
2164
  {   4, "allElements" },
2165
  { 0, NULL }
2166
};
2167
2168
static const ber_choice_t T_selectAccess_choice[] = {
2169
  {   1, &hf_mms_component       , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
2170
  {   2, &hf_mms_index           , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
2171
  {   3, &hf_mms_indexRange_01   , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_T_indexRange_01 },
2172
  {   4, &hf_mms_allElements     , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
2173
  { 0, NULL, 0, 0, 0, NULL }
2174
};
2175
2176
static unsigned
2177
0
dissect_mms_T_selectAccess(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2178
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
2179
0
                                 T_selectAccess_choice, hf_index, ett_mms_T_selectAccess,
2180
0
                                 NULL);
2181
2182
0
  return offset;
2183
0
}
2184
2185
2186
static const value_string mms_AlternateAccessSelection_vals[] = {
2187
  {   0, "selectAlternateAccess" },
2188
  {   1, "selectAccess" },
2189
  { 0, NULL }
2190
};
2191
2192
static const ber_choice_t AlternateAccessSelection_choice[] = {
2193
  {   0, &hf_mms_selectAlternateAccess, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_selectAlternateAccess },
2194
  {   1, &hf_mms_selectAccess    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_mms_T_selectAccess },
2195
  { 0, NULL, 0, 0, 0, NULL }
2196
};
2197
2198
static unsigned
2199
0
dissect_mms_AlternateAccessSelection(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2200
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
2201
0
                                 AlternateAccessSelection_choice, hf_index, ett_mms_AlternateAccessSelection,
2202
0
                                 NULL);
2203
2204
0
  return offset;
2205
0
}
2206
2207
2208
static const ber_sequence_t T_named_sequence[] = {
2209
  { &hf_mms_componentName   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
2210
  { &hf_mms_accesst         , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_AlternateAccessSelection },
2211
  { NULL, 0, 0, 0, NULL }
2212
};
2213
2214
static unsigned
2215
0
dissect_mms_T_named(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2216
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2217
0
                                   T_named_sequence, hf_index, ett_mms_T_named);
2218
2219
0
  return offset;
2220
0
}
2221
2222
2223
static const value_string mms_AlternateAccess_item_vals[] = {
2224
  {   0, "unnamed" },
2225
  {   1, "named" },
2226
  { 0, NULL }
2227
};
2228
2229
static const ber_choice_t AlternateAccess_item_choice[] = {
2230
  {   0, &hf_mms_unnamed         , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_mms_AlternateAccessSelection },
2231
  {   1, &hf_mms_named           , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_T_named },
2232
  { 0, NULL, 0, 0, 0, NULL }
2233
};
2234
2235
static unsigned
2236
0
dissect_mms_AlternateAccess_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2237
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
2238
0
                                 AlternateAccess_item_choice, hf_index, ett_mms_AlternateAccess_item,
2239
0
                                 NULL);
2240
2241
0
  return offset;
2242
0
}
2243
2244
2245
static const ber_sequence_t AlternateAccess_sequence_of[1] = {
2246
  { &hf_mms_AlternateAccess_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_AlternateAccess_item },
2247
};
2248
2249
static unsigned
2250
0
dissect_mms_AlternateAccess(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2251
  // AlternateAccess -> AlternateAccess/_item -> AlternateAccessSelection -> AlternateAccessSelection/selectAlternateAccess -> AlternateAccess
2252
0
  increment_dissection_depth_by_n(actx->pinfo, 4);
2253
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2254
0
                                      AlternateAccess_sequence_of, hf_index, ett_mms_AlternateAccess);
2255
2256
0
  decrement_dissection_depth_by_n(actx->pinfo, 4);
2257
0
  return offset;
2258
0
}
2259
2260
2261
static const ber_sequence_t ScatteredAccessDescription_item_sequence[] = {
2262
  { &hf_mms_componentName   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
2263
  { &hf_mms_variableSpecification, BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_mms_VariableSpecification },
2264
  { &hf_mms_alternateAccess , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_AlternateAccess },
2265
  { NULL, 0, 0, 0, NULL }
2266
};
2267
2268
static unsigned
2269
0
dissect_mms_ScatteredAccessDescription_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2270
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2271
0
                                   ScatteredAccessDescription_item_sequence, hf_index, ett_mms_ScatteredAccessDescription_item);
2272
2273
0
  return offset;
2274
0
}
2275
2276
2277
static const ber_sequence_t ScatteredAccessDescription_sequence_of[1] = {
2278
  { &hf_mms_ScatteredAccessDescription_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mms_ScatteredAccessDescription_item },
2279
};
2280
2281
static unsigned
2282
0
dissect_mms_ScatteredAccessDescription(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2283
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2284
0
                                      ScatteredAccessDescription_sequence_of, hf_index, ett_mms_ScatteredAccessDescription);
2285
2286
0
  return offset;
2287
0
}
2288
2289
2290
static const value_string mms_VariableSpecification_vals[] = {
2291
  {   0, "name" },
2292
  {   1, "address" },
2293
  {   2, "variableDescription" },
2294
  {   3, "scatteredAccessDescription" },
2295
  {   4, "invalidated" },
2296
  { 0, NULL }
2297
};
2298
2299
static const ber_choice_t VariableSpecification_choice[] = {
2300
  {   0, &hf_mms_name            , BER_CLASS_CON, 0, 0, dissect_mms_ObjectName },
2301
  {   1, &hf_mms_address         , BER_CLASS_CON, 1, 0, dissect_mms_Address },
2302
  {   2, &hf_mms_variableDescription, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_T_variableDescription },
2303
  {   3, &hf_mms_scatteredAccessDescription, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_ScatteredAccessDescription },
2304
  {   4, &hf_mms_invalidated     , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
2305
  { 0, NULL, 0, 0, 0, NULL }
2306
};
2307
2308
static unsigned
2309
0
dissect_mms_VariableSpecification(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2310
  // VariableSpecification -> ScatteredAccessDescription -> ScatteredAccessDescription/_item -> VariableSpecification
2311
0
  increment_dissection_depth_by_n(actx->pinfo, 3);
2312
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
2313
0
                                 VariableSpecification_choice, hf_index, ett_mms_VariableSpecification,
2314
0
                                 NULL);
2315
2316
0
  decrement_dissection_depth_by_n(actx->pinfo, 3);
2317
0
  return offset;
2318
0
}
2319
2320
2321
static const ber_sequence_t T_listOfVariable_item_02_sequence[] = {
2322
  { &hf_mms_variableSpecification, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_VariableSpecification },
2323
  { &hf_mms_alternateAccess , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_AlternateAccess },
2324
  { NULL, 0, 0, 0, NULL }
2325
};
2326
2327
static unsigned
2328
0
dissect_mms_T_listOfVariable_item_02(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2329
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2330
0
                                   T_listOfVariable_item_02_sequence, hf_index, ett_mms_T_listOfVariable_item_02);
2331
2332
0
  return offset;
2333
0
}
2334
2335
2336
static const ber_sequence_t T_listOfVariable_02_sequence_of[1] = {
2337
  { &hf_mms_listOfVariable_item_02, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mms_T_listOfVariable_item_02 },
2338
};
2339
2340
static unsigned
2341
0
dissect_mms_T_listOfVariable_02(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2342
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2343
0
                                      T_listOfVariable_02_sequence_of, hf_index, ett_mms_T_listOfVariable_02);
2344
2345
0
  return offset;
2346
0
}
2347
2348
2349
static const value_string mms_VariableAccessSpecification_vals[] = {
2350
  {   0, "listOfVariable" },
2351
  {   1, "variableListName" },
2352
  { 0, NULL }
2353
};
2354
2355
static const ber_choice_t VariableAccessSpecification_choice[] = {
2356
  {   0, &hf_mms_listOfVariable_02, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_listOfVariable_02 },
2357
  {   1, &hf_mms_variableListName, BER_CLASS_CON, 1, 0, dissect_mms_ObjectName },
2358
  { 0, NULL, 0, 0, 0, NULL }
2359
};
2360
2361
static unsigned
2362
0
dissect_mms_VariableAccessSpecification(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2363
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
2364
0
                                 VariableAccessSpecification_choice, hf_index, ett_mms_VariableAccessSpecification,
2365
0
                                 NULL);
2366
2367
0
  return offset;
2368
0
}
2369
2370
2371
static const ber_sequence_t Read_Request_sequence[] = {
2372
  { &hf_mms_specificationWithResult, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
2373
  { &hf_mms_variableAccessSpecification, BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_mms_VariableAccessSpecification },
2374
  { NULL, 0, 0, 0, NULL }
2375
};
2376
2377
static unsigned
2378
10
dissect_mms_Read_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2379
10
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2380
10
                                   Read_Request_sequence, hf_index, ett_mms_Read_Request);
2381
2382
10
  return offset;
2383
10
}
2384
2385
2386
static const ber_sequence_t SEQUENCE_OF_Data_sequence_of[1] = {
2387
  { &hf_mms_array_item      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_Data },
2388
};
2389
2390
static unsigned
2391
0
dissect_mms_SEQUENCE_OF_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2392
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2393
0
                                      SEQUENCE_OF_Data_sequence_of, hf_index, ett_mms_SEQUENCE_OF_Data);
2394
2395
0
  return offset;
2396
0
}
2397
2398
2399
static const ber_sequence_t T_structure_01_sequence_of[1] = {
2400
  { &hf_mms_structure_item  , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_Data },
2401
};
2402
2403
static unsigned
2404
0
dissect_mms_T_structure_01(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2405
0
    mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
2406
0
    if((mms_priv)&& (mms_priv->mms_trans_p)){
2407
0
        if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
2408
0
            if(mms_priv->data_cnt == 3){
2409
                /* IEC 61850-8-1 origin, if we hgave a struct here Tm was not there */
2410
0
                hf_index = hf_mms_iec61850_origin;
2411
0
                mms_priv->data_cnt++;
2412
0
            }else if(mms_priv->data_cnt == 4){
2413
                /* IEC 61850-8-1 origin, if we hgave a struct here Tm was not there */
2414
0
                hf_index = hf_mms_iec61850_origin;
2415
0
            }
2416
0
        }
2417
0
    }
2418
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2419
0
                                      T_structure_01_sequence_of, hf_index, ett_mms_T_structure_01);
2420
2421
2422
2423
0
  return offset;
2424
0
}
2425
2426
2427
2428
static unsigned
2429
0
dissect_mms_T_boolean(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2430
0
    mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
2431
0
    if((mms_priv) && (mms_priv->mms_trans_p)){
2432
0
        if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
2433
0
            if(mms_priv->listOfAccessResult_cnt == 6){
2434
                /* IEC 61850-8-1 BufOvfl */
2435
0
                hf_index = hf_mms_iec61850_bufovfl;
2436
0
            }
2437
0
        }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
2438
0
            if(mms_priv->data_cnt == 2){
2439
                /* IEC 61850-8-1 ctlVal */
2440
0
                hf_index = hf_mms_iec61850_ctlval;
2441
0
            }else if(mms_priv->data_cnt == 9){
2442
                /* IEC 61850-8-1 Test */
2443
0
                hf_index = hf_mms_iec61850_test;
2444
0
            }
2445
0
        }
2446
0
    }
2447
0
  offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2448
2449
2450
2451
0
  return offset;
2452
0
}
2453
2454
2455
2456
static unsigned
2457
0
dissect_mms_T_data_bit_string(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2458
2459
0
static int* const quality_field_bits_oct1[] = {
2460
0
    &hf_mms_iec61850_QualityC0,
2461
0
    &hf_mms_iec61850_Quality20,
2462
0
    &hf_mms_iec61850_Quality10,
2463
0
    &hf_mms_iec61850_Quality8,
2464
0
    &hf_mms_iec61850_Quality4,
2465
0
    &hf_mms_iec61850_Quality2,
2466
0
    &hf_mms_iec61850_Quality1,
2467
0
    NULL
2468
0
};
2469
2470
0
static int* const quality_field_bits_oct2[] = {
2471
0
    &hf_mms_iec61850_Quality0080,
2472
0
    &hf_mms_iec61850_Quality0040,
2473
0
    &hf_mms_iec61850_Quality0020,
2474
0
    &hf_mms_iec61850_Quality0010,
2475
0
    &hf_mms_iec61850_Quality0008,
2476
0
    NULL
2477
0
};
2478
2479
0
static int * const mms_iec61850_chec_bits[] = {
2480
0
    &hf_mms_iec61850_check_b15,
2481
0
    &hf_mms_iec61850_check_b14,
2482
0
    &hf_mms_iec61850_check_b13_b0,
2483
0
    NULL
2484
0
};
2485
0
    tvbuff_t *parameter_tvb = NULL;
2486
0
    proto_tree *sub_tree;
2487
2488
0
    mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
2489
0
    if((mms_priv)&&(mms_priv->mms_trans_p)){
2490
0
        if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
2491
0
            if(mms_priv->listOfAccessResult_cnt == 2){
2492
                    /* IEC 61850-8-1 Reported OptFlds */
2493
0
                    return dissect_mms_ReportedOptFlds(implicit_tag, tvb, offset, actx, tree, hf_mms_iec61850_reported_optflds);
2494
0
            }else{
2495
0
                if(mms_priv->listOfAccessResult_cnt == 11){
2496
0
                    hf_index = hf_mms_iec61850_inclusion_bitstring;
2497
0
                }
2498
0
            }
2499
0
        }else if (mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_Q){
2500
0
            hf_index = hf_mms_iec61850_quality_bitstring;
2501
0
        }else if (mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_CHECK){
2502
0
            hf_index = hf_mms_iec61850_check_bitstring;
2503
0
        }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
2504
0
            if(mms_priv->data_cnt == 10){
2505
0
                hf_index = hf_mms_iec61850_check_bitstring;
2506
0
            }
2507
0
        }
2508
0
    }
2509
2510
0
  offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2511
0
                                    NULL, 0, hf_index, -1,
2512
0
                                    &parameter_tvb);
2513
2514
2515
0
    if((mms_priv)&&(parameter_tvb) && (mms_priv->mms_trans_p)){
2516
0
        if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_Q){
2517
0
            sub_tree = proto_item_add_subtree(actx->created_item, ett_mms_iec61850_quality_bitstring);
2518
0
            proto_tree_add_bitmask_list(sub_tree, parameter_tvb, 0, 1, quality_field_bits_oct1, ENC_NA);
2519
0
            proto_tree_add_bitmask_list(sub_tree, parameter_tvb, 1, 1, quality_field_bits_oct2, ENC_NA);
2520
0
        }else if (mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_CHECK){
2521
0
            sub_tree = proto_item_add_subtree(actx->created_item, ett_mms_iec61850_check_bitstring);
2522
0
            proto_tree_add_bitmask_list(sub_tree, parameter_tvb, 0, 1, mms_iec61850_chec_bits, ENC_NA);
2523
0
        }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
2524
0
            if(mms_priv->data_cnt == 10){
2525
0
                sub_tree = proto_item_add_subtree(actx->created_item, ett_mms_iec61850_check_bitstring);
2526
0
                proto_tree_add_bitmask_list(sub_tree, parameter_tvb, 0, 1, mms_iec61850_chec_bits, ENC_NA);
2527
0
            }
2528
0
        }
2529
0
    }
2530
2531
2532
0
  return offset;
2533
0
}
2534
2535
2536
2537
static unsigned
2538
0
dissect_mms_T_integer(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2539
0
    mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
2540
0
    if((mms_priv) && (mms_priv->mms_trans_p)){
2541
0
        if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_CTLMODEL){
2542
0
            hf_index = hf_mms_iec61850_ctlModel;
2543
0
        }else if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_OR_CAT){
2544
0
            hf_index = hf_mms_iec61850_orcategory;
2545
0
        }else if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_BEH$STVAL){
2546
0
            hf_index = hf_mms_iec61850_beh$stval;
2547
0
        }else if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_MOD$STVAL){
2548
0
            hf_index = hf_mms_iec61850_beh$stval;
2549
0
        }else if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_HEALTH$STVAL){
2550
0
            hf_index = hf_mms_iec61850_health$stval;
2551
0
        }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
2552
0
            if(mms_priv->data_cnt == 5){
2553
                /* IEC 61850-8-1 Origin Catagory */
2554
0
                hf_index = hf_mms_iec61850_origin_orcat;
2555
0
            }
2556
0
        }
2557
0
    }
2558
2559
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2560
0
                                                NULL);
2561
2562
2563
2564
0
  return offset;
2565
0
}
2566
2567
2568
2569
static unsigned
2570
0
dissect_mms_T_unsigned(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2571
0
    mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
2572
0
    if((mms_priv) && (mms_priv->mms_trans_p)){
2573
0
        if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
2574
0
            if(mms_priv->listOfAccessResult_cnt == 3){
2575
                    /* IEC 61850-8-1 SeqNum */
2576
0
                    hf_index = hf_mms_iec61850_seqnum;
2577
0
            }else if(mms_priv->listOfAccessResult_cnt == 8){
2578
                    /* IEC 61850-8-1 ConfRev */
2579
0
                    hf_index = hf_mms_iec61850_confrev;
2580
0
            }
2581
0
        }
2582
0
        if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
2583
0
            if(mms_priv->data_cnt == 7){
2584
0
                hf_index = hf_mms_iec61850_ctlNum;
2585
0
            }
2586
0
        }
2587
0
    }
2588
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2589
0
                                                NULL);
2590
2591
2592
2593
0
  return offset;
2594
0
}
2595
2596
2597
2598
static unsigned
2599
0
dissect_mms_FloatingPoint(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2600
0
  offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2601
0
                                       NULL);
2602
2603
0
        private_data_add_moreCinfo_float(actx, tvb);
2604
2605
2606
0
  return offset;
2607
0
}
2608
2609
2610
2611
static unsigned
2612
0
dissect_mms_REAL(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2613
0
  offset = dissect_ber_real(implicit_tag, actx, tree, tvb, offset, hf_index,
2614
0
                               NULL);
2615
2616
0
  return offset;
2617
0
}
2618
2619
2620
2621
static unsigned
2622
0
dissect_mms_T_data_octet_string(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2623
0
    mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
2624
0
    if((mms_priv)&& (mms_priv->mms_trans_p)){
2625
0
        if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
2626
0
            if(mms_priv->data_cnt == 6){
2627
0
                hf_index = hf_mms_iec61850_origin_orident;
2628
0
            }
2629
0
        }
2630
0
    }
2631
0
      offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2632
0
                                       NULL);
2633
2634
2635
2636
0
  return offset;
2637
0
}
2638
2639
2640
2641
static unsigned
2642
0
dissect_mms_T_data_visible_string(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2643
2644
0
    mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
2645
0
    if(mms_priv){
2646
0
        if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
2647
0
            if(mms_priv->listOfAccessResult_cnt == 1){
2648
                    /* IEC 61850-8-1 RptID */
2649
0
                    hf_index = hf_mms_iec61850_rptid;
2650
0
            }else if(mms_priv->listOfAccessResult_cnt == 5){
2651
                    /* IEC 61850-8-1 DatSet */
2652
0
                    hf_index = hf_mms_iec61850_datset;
2653
0
            }
2654
0
        }
2655
0
    }
2656
0
  offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_VisibleString,
2657
0
                                            actx, tree, tvb, offset, hf_index,
2658
0
                                            NULL);
2659
2660
2661
2662
0
  return offset;
2663
0
}
2664
2665
2666
2667
static unsigned
2668
0
dissect_mms_TimeOfDay(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2669
2670
0
        uint32_t  len;
2671
0
        uint32_t  milliseconds;
2672
0
        uint16_t  days;
2673
0
        char *  ptime;
2674
0
        nstime_t ts;
2675
2676
0
        len = tvb_reported_length_remaining(tvb, offset);
2677
2678
0
        if(len == 4)
2679
0
        {
2680
0
                milliseconds = tvb_get_ntohl(tvb, offset);
2681
0
                ptime = signed_time_msecs_to_str(actx->pinfo->pool, milliseconds);
2682
2683
0
                if(hf_index > 0)
2684
0
                {
2685
0
                        proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
2686
0
                }
2687
0
                return offset;
2688
0
        }
2689
2690
0
        if(len == 6)
2691
0
        {
2692
0
                milliseconds = tvb_get_ntohl(tvb, offset);
2693
0
                days = tvb_get_ntohs(tvb, offset+4);
2694
2695
                /* 5113 days between 01-01-1970 and 01-01-1984 */
2696
                /* 86400 seconds in one day */
2697
2698
0
                ts.secs = (days + 5113) * 86400 + milliseconds / 1000;
2699
0
                ts.nsecs = (milliseconds % 1000) * 1000000U;
2700
2701
0
                ptime = abs_time_to_str(actx->pinfo->pool, &ts, ABSOLUTE_TIME_UTC, true);
2702
0
                if(hf_index > 0)
2703
0
                {
2704
0
                        proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
2705
0
                }
2706
2707
0
                return offset;
2708
0
        }
2709
2710
0
        proto_tree_add_expert_format(tree, actx->pinfo, &ei_mms_mal_timeofday_encoding,
2711
0
                        tvb, offset, len, "BER Error: malformed TimeOfDay encoding, length must be 4 or 6 bytes");
2712
0
        if(hf_index > 0)
2713
0
        {
2714
0
                proto_tree_add_string(tree, hf_index, tvb, offset, len, "????");
2715
0
        }
2716
2717
2718
0
  return offset;
2719
0
}
2720
2721
2722
2723
static unsigned
2724
0
dissect_mms_T_data_binary_time(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2725
0
    mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
2726
0
    if(mms_priv){
2727
0
        if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
2728
0
            if(mms_priv->listOfAccessResult_cnt == 4){
2729
                    /* IEC 61850-8-1 TimeOfEntry */
2730
0
                    hf_index = hf_mms_iec61850_timeofentry;
2731
0
            }
2732
0
        }
2733
0
    }
2734
0
  offset = dissect_mms_TimeOfDay(implicit_tag, tvb, offset, actx, tree, hf_index);
2735
2736
2737
2738
0
  return offset;
2739
0
}
2740
2741
2742
2743
static unsigned
2744
0
dissect_mms_INTEGER(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2745
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2746
0
                                                NULL);
2747
2748
0
  return offset;
2749
0
}
2750
2751
2752
2753
static unsigned
2754
0
dissect_mms_BIT_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2755
0
  offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2756
0
                                    NULL, 0, hf_index, -1,
2757
0
                                    NULL);
2758
2759
0
  return offset;
2760
0
}
2761
2762
2763
2764
static unsigned
2765
0
dissect_mms_OBJECT_IDENTIFIER(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2766
0
  offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2767
2768
0
  return offset;
2769
0
}
2770
2771
2772
2773
static unsigned
2774
0
dissect_mms_MMSString(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2775
0
  offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTF8String,
2776
0
                                            actx, tree, tvb, offset, hf_index,
2777
0
                                            NULL);
2778
2779
0
  return offset;
2780
0
}
2781
2782
2783
2784
static unsigned
2785
0
dissect_mms_UtcTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2786
2787
0
        uint32_t  len;
2788
0
        uint32_t  seconds;
2789
0
        uint32_t  fraction;
2790
0
        uint32_t  nanoseconds;
2791
0
        nstime_t  ts;
2792
0
        char *   ptime;
2793
2794
0
    static int * const TimeQuality_bits[] = {
2795
0
        &hf_mms_iec61850_timequality80,
2796
0
        &hf_mms_iec61850_timequality40,
2797
0
        &hf_mms_iec61850_timequality20,
2798
0
        &hf_mms_iec61850_timequality1F,
2799
0
        NULL
2800
0
    };
2801
0
        len = tvb_reported_length_remaining(tvb, offset);
2802
2803
0
        if(len != 8)
2804
0
        {
2805
                /* The octet format shall be (using ASN.1 bstring notation):
2806
                 *  ‘ssssssssssssssssssssssssssssssssffffffffffffffffffffffffqqqqqqqq’B
2807
                 *  q stands for TimeQuality, i.e. reserved to represent TimeQuality based upon the referencing standard.
2808
                 */
2809
0
                proto_tree_add_expert_format(tree, actx->pinfo, &ei_mms_mal_utctime_encoding,
2810
0
                                tvb, offset, len, "BER Error: malformed IEC61850 UTCTime encoding, length must be 8 bytes");
2811
0
                if(hf_index > 0)
2812
0
                {
2813
0
                        proto_tree_add_string(tree, hf_index, tvb, offset, len, "????");
2814
0
                }
2815
0
                return offset;
2816
0
        }
2817
2818
0
        seconds = tvb_get_ntohl(tvb, offset);
2819
0
        fraction = tvb_get_ntoh24(tvb, offset+4) * 0x100; /* Only 3 bytes are recommended */
2820
0
        nanoseconds = (uint32_t )( ((uint64_t)fraction * UINT64_C(1000000000)) / UINT64_C(0x100000000) ) ;
2821
2822
0
        ts.secs = seconds;
2823
0
        ts.nsecs = nanoseconds;
2824
2825
0
        ptime = abs_time_to_str(actx->pinfo->pool, &ts, ABSOLUTE_TIME_UTC, true);
2826
2827
0
        if(hf_index > 0)
2828
0
        {
2829
0
            mms_actx_private_data_t* mms_priv = (mms_actx_private_data_t*)actx->private_data;
2830
0
            if((mms_priv)&& (mms_priv->mms_trans_p)){
2831
0
                if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
2832
0
                    if(mms_priv->data_cnt == 8){
2833
0
                        hf_index = hf_mms_iec61850_T;
2834
0
                    }
2835
0
                }
2836
0
            }
2837
0
            proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
2838
0
            proto_tree_add_bitmask_list(tree, tvb, offset+7, 1, TimeQuality_bits, ENC_BIG_ENDIAN);
2839
0
        }
2840
2841
2842
2843
2844
0
  return offset;
2845
0
}
2846
2847
2848
static const value_string mms_Data_vals[] = {
2849
  {   1, "array" },
2850
  {   2, "structure" },
2851
  {   3, "boolean" },
2852
  {   4, "bit-string" },
2853
  {   5, "integer" },
2854
  {   6, "unsigned" },
2855
  {   7, "floating-point" },
2856
  {   8, "real" },
2857
  {   9, "octet-string" },
2858
  {  10, "visible-string" },
2859
  {  12, "binary-time" },
2860
  {  13, "bcd" },
2861
  {  14, "booleanArray" },
2862
  {  15, "objId" },
2863
  {  16, "mMSString" },
2864
  {  17, "utc-time" },
2865
  { 0, NULL }
2866
};
2867
2868
static const ber_choice_t Data_choice[] = {
2869
  {   1, &hf_mms_array_01        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_Data },
2870
  {   2, &hf_mms_structure_01    , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_T_structure_01 },
2871
  {   3, &hf_mms_boolean_01      , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_T_boolean },
2872
  {   4, &hf_mms_data_bit_string , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_T_data_bit_string },
2873
  {   5, &hf_mms_integer_01      , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_T_integer },
2874
  {   6, &hf_mms_unsigned_01     , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_mms_T_unsigned },
2875
  {   7, &hf_mms_floating_point  , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_mms_FloatingPoint },
2876
  {   8, &hf_mms_real            , BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_mms_REAL },
2877
  {   9, &hf_mms_data_octet_string, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_mms_T_data_octet_string },
2878
  {  10, &hf_mms_data_visible_string, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_mms_T_data_visible_string },
2879
  {  12, &hf_mms_data_binary_time, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_mms_T_data_binary_time },
2880
  {  13, &hf_mms_bcd_01          , BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_mms_INTEGER },
2881
  {  14, &hf_mms_booleanArray    , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_mms_BIT_STRING },
2882
  {  15, &hf_mms_objId_01        , BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_mms_OBJECT_IDENTIFIER },
2883
  {  16, &hf_mms_mMSString       , BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_mms_MMSString },
2884
  {  17, &hf_mms_utc_time        , BER_CLASS_CON, 17, BER_FLAGS_IMPLTAG, dissect_mms_UtcTime },
2885
  { 0, NULL, 0, 0, 0, NULL }
2886
};
2887
2888
static unsigned
2889
0
dissect_mms_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2890
  // Data -> Data/array -> Data
2891
0
  increment_dissection_depth_by_n(actx->pinfo, 2);
2892
0
    mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
2893
0
    if(mms_priv){
2894
0
        mms_priv->data_cnt += 1;
2895
0
    }
2896
2897
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
2898
0
                                 Data_choice, hf_index, ett_mms_Data,
2899
0
                                 NULL);
2900
2901
2902
2903
0
  decrement_dissection_depth_by_n(actx->pinfo, 2);
2904
0
  return offset;
2905
0
}
2906
2907
2908
static const ber_sequence_t T_listOfData_sequence_of[1] = {
2909
  { &hf_mms_listOfData_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_Data },
2910
};
2911
2912
static unsigned
2913
0
dissect_mms_T_listOfData(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2914
0
    mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
2915
0
    if(mms_priv){
2916
0
        mms_priv->data_cnt = 0;
2917
0
     }
2918
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2919
0
                                      T_listOfData_sequence_of, hf_index, ett_mms_T_listOfData);
2920
2921
0
    if(mms_priv){
2922
0
        mms_priv->data_cnt = 0;
2923
0
     }
2924
2925
2926
0
  return offset;
2927
0
}
2928
2929
2930
static const ber_sequence_t Write_Request_sequence[] = {
2931
  { &hf_mms_variableAccessSpecification, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_VariableAccessSpecification },
2932
  { &hf_mms_listOfData      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_listOfData },
2933
  { NULL, 0, 0, 0, NULL }
2934
};
2935
2936
static unsigned
2937
0
dissect_mms_Write_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2938
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2939
0
                                   Write_Request_sequence, hf_index, ett_mms_Write_Request);
2940
2941
0
  return offset;
2942
0
}
2943
2944
2945
static const value_string mms_GetVariableAccessAttributes_Request_vals[] = {
2946
  {   0, "name" },
2947
  {   1, "address" },
2948
  { 0, NULL }
2949
};
2950
2951
static const ber_choice_t GetVariableAccessAttributes_Request_choice[] = {
2952
  {   0, &hf_mms_name            , BER_CLASS_CON, 0, 0, dissect_mms_ObjectName },
2953
  {   1, &hf_mms_address         , BER_CLASS_CON, 1, 0, dissect_mms_Address },
2954
  { 0, NULL, 0, 0, 0, NULL }
2955
};
2956
2957
static unsigned
2958
4
dissect_mms_GetVariableAccessAttributes_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2959
4
  offset = dissect_ber_choice(actx, tree, tvb, offset,
2960
4
                                 GetVariableAccessAttributes_Request_choice, hf_index, ett_mms_GetVariableAccessAttributes_Request,
2961
4
                                 NULL);
2962
2963
4
  return offset;
2964
4
}
2965
2966
2967
static const ber_sequence_t DefineNamedVariable_Request_sequence[] = {
2968
  { &hf_mms_variableName    , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
2969
  { &hf_mms_address         , BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_mms_Address },
2970
  { &hf_mms_typeSpecification, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_TypeSpecification },
2971
  { NULL, 0, 0, 0, NULL }
2972
};
2973
2974
static unsigned
2975
0
dissect_mms_DefineNamedVariable_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2976
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2977
0
                                   DefineNamedVariable_Request_sequence, hf_index, ett_mms_DefineNamedVariable_Request);
2978
2979
0
  return offset;
2980
0
}
2981
2982
2983
static const ber_sequence_t DefineScatteredAccess_Request_sequence[] = {
2984
  { &hf_mms_scatteredAccessName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
2985
  { &hf_mms_scatteredAccessDescription, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_ScatteredAccessDescription },
2986
  { NULL, 0, 0, 0, NULL }
2987
};
2988
2989
static unsigned
2990
0
dissect_mms_DefineScatteredAccess_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2991
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2992
0
                                   DefineScatteredAccess_Request_sequence, hf_index, ett_mms_DefineScatteredAccess_Request);
2993
2994
0
  return offset;
2995
0
}
2996
2997
2998
2999
static unsigned
3000
6
dissect_mms_GetScatteredAccessAttributes_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3001
6
  offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
3002
3003
6
  return offset;
3004
6
}
3005
3006
3007
static const value_string mms_T_scopeOfDelete_vals[] = {
3008
  {   0, "specific" },
3009
  {   1, "aa-specific" },
3010
  {   2, "domain" },
3011
  {   3, "vmd" },
3012
  { 0, NULL }
3013
};
3014
3015
3016
static unsigned
3017
0
dissect_mms_T_scopeOfDelete(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3018
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3019
0
                                                NULL);
3020
3021
0
  return offset;
3022
0
}
3023
3024
3025
static const ber_sequence_t SEQUENCE_OF_ObjectName_sequence_of[1] = {
3026
  { &hf_mms_listOfName_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3027
};
3028
3029
static unsigned
3030
0
dissect_mms_SEQUENCE_OF_ObjectName(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3031
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3032
0
                                      SEQUENCE_OF_ObjectName_sequence_of, hf_index, ett_mms_SEQUENCE_OF_ObjectName);
3033
3034
0
  return offset;
3035
0
}
3036
3037
3038
static const ber_sequence_t DeleteVariableAccess_Request_sequence[] = {
3039
  { &hf_mms_scopeOfDelete   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_scopeOfDelete },
3040
  { &hf_mms_listOfName      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_ObjectName },
3041
  { &hf_mms_domainName      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3042
  { NULL, 0, 0, 0, NULL }
3043
};
3044
3045
static unsigned
3046
0
dissect_mms_DeleteVariableAccess_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3047
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3048
0
                                   DeleteVariableAccess_Request_sequence, hf_index, ett_mms_DeleteVariableAccess_Request);
3049
3050
0
  return offset;
3051
0
}
3052
3053
3054
static const ber_sequence_t T_listOfVariable_item_sequence[] = {
3055
  { &hf_mms_variableSpecification, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_VariableSpecification },
3056
  { &hf_mms_alternateAccess , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_AlternateAccess },
3057
  { NULL, 0, 0, 0, NULL }
3058
};
3059
3060
static unsigned
3061
0
dissect_mms_T_listOfVariable_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3062
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3063
0
                                   T_listOfVariable_item_sequence, hf_index, ett_mms_T_listOfVariable_item);
3064
3065
0
  return offset;
3066
0
}
3067
3068
3069
static const ber_sequence_t T_listOfVariable_sequence_of[1] = {
3070
  { &hf_mms_listOfVariable_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mms_T_listOfVariable_item },
3071
};
3072
3073
static unsigned
3074
0
dissect_mms_T_listOfVariable(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3075
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3076
0
                                      T_listOfVariable_sequence_of, hf_index, ett_mms_T_listOfVariable);
3077
3078
0
  return offset;
3079
0
}
3080
3081
3082
static const ber_sequence_t DefineNamedVariableList_Request_sequence[] = {
3083
  { &hf_mms_variableListName, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3084
  { &hf_mms_listOfVariable  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_listOfVariable },
3085
  { NULL, 0, 0, 0, NULL }
3086
};
3087
3088
static unsigned
3089
0
dissect_mms_DefineNamedVariableList_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3090
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3091
0
                                   DefineNamedVariableList_Request_sequence, hf_index, ett_mms_DefineNamedVariableList_Request);
3092
3093
0
  return offset;
3094
0
}
3095
3096
3097
3098
static unsigned
3099
14
dissect_mms_GetNamedVariableListAttributes_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3100
14
  offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
3101
3102
14
  return offset;
3103
14
}
3104
3105
3106
static const value_string mms_T_scopeOfDelete_01_vals[] = {
3107
  {   0, "specific" },
3108
  {   1, "aa-specific" },
3109
  {   2, "domain" },
3110
  {   3, "vmd" },
3111
  { 0, NULL }
3112
};
3113
3114
3115
static unsigned
3116
0
dissect_mms_T_scopeOfDelete_01(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3117
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3118
0
                                                NULL);
3119
3120
0
  return offset;
3121
0
}
3122
3123
3124
static const ber_sequence_t DeleteNamedVariableList_Request_sequence[] = {
3125
  { &hf_mms_scopeOfDelete_01, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_scopeOfDelete_01 },
3126
  { &hf_mms_listOfVariableListName, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_ObjectName },
3127
  { &hf_mms_domainName      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3128
  { NULL, 0, 0, 0, NULL }
3129
};
3130
3131
static unsigned
3132
0
dissect_mms_DeleteNamedVariableList_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3133
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3134
0
                                   DeleteNamedVariableList_Request_sequence, hf_index, ett_mms_DeleteNamedVariableList_Request);
3135
3136
0
  return offset;
3137
0
}
3138
3139
3140
static const ber_sequence_t DefineNamedType_Request_sequence[] = {
3141
  { &hf_mms_typeName        , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3142
  { &hf_mms_typeSpecification, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_TypeSpecification },
3143
  { NULL, 0, 0, 0, NULL }
3144
};
3145
3146
static unsigned
3147
2
dissect_mms_DefineNamedType_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3148
2
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3149
2
                                   DefineNamedType_Request_sequence, hf_index, ett_mms_DefineNamedType_Request);
3150
3151
2
  return offset;
3152
2
}
3153
3154
3155
3156
static unsigned
3157
0
dissect_mms_GetNamedTypeAttributes_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3158
0
  offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
3159
3160
0
  return offset;
3161
0
}
3162
3163
3164
static const value_string mms_T_scopeOfDelete_02_vals[] = {
3165
  {   0, "specific" },
3166
  {   1, "aa-specific" },
3167
  {   2, "domain" },
3168
  {   3, "vmd" },
3169
  { 0, NULL }
3170
};
3171
3172
3173
static unsigned
3174
0
dissect_mms_T_scopeOfDelete_02(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3175
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3176
0
                                                NULL);
3177
3178
0
  return offset;
3179
0
}
3180
3181
3182
static const ber_sequence_t DeleteNamedType_Request_sequence[] = {
3183
  { &hf_mms_scopeOfDelete_02, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_scopeOfDelete_02 },
3184
  { &hf_mms_listOfTypeName  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_ObjectName },
3185
  { &hf_mms_domainName      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3186
  { NULL, 0, 0, 0, NULL }
3187
};
3188
3189
static unsigned
3190
0
dissect_mms_DeleteNamedType_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3191
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3192
0
                                   DeleteNamedType_Request_sequence, hf_index, ett_mms_DeleteNamedType_Request);
3193
3194
0
  return offset;
3195
0
}
3196
3197
3198
static const ber_sequence_t T_listOfPromptData_sequence_of[1] = {
3199
  { &hf_mms_listOfPromptData_item, BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_VisibleString },
3200
};
3201
3202
static unsigned
3203
0
dissect_mms_T_listOfPromptData(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3204
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3205
0
                                      T_listOfPromptData_sequence_of, hf_index, ett_mms_T_listOfPromptData);
3206
3207
0
  return offset;
3208
0
}
3209
3210
3211
static const ber_sequence_t Input_Request_sequence[] = {
3212
  { &hf_mms_operatorStationName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3213
  { &hf_mms_echo            , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
3214
  { &hf_mms_listOfPromptData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_listOfPromptData },
3215
  { &hf_mms_inputTimeOut    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
3216
  { NULL, 0, 0, 0, NULL }
3217
};
3218
3219
static unsigned
3220
0
dissect_mms_Input_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3221
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3222
0
                                   Input_Request_sequence, hf_index, ett_mms_Input_Request);
3223
3224
0
  return offset;
3225
0
}
3226
3227
3228
static const ber_sequence_t T_listOfOutputData_sequence_of[1] = {
3229
  { &hf_mms_listOfOutputData_item, BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_VisibleString },
3230
};
3231
3232
static unsigned
3233
0
dissect_mms_T_listOfOutputData(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3234
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3235
0
                                      T_listOfOutputData_sequence_of, hf_index, ett_mms_T_listOfOutputData);
3236
3237
0
  return offset;
3238
0
}
3239
3240
3241
static const ber_sequence_t Output_Request_sequence[] = {
3242
  { &hf_mms_operatorStationName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3243
  { &hf_mms_listOfOutputData, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_listOfOutputData },
3244
  { NULL, 0, 0, 0, NULL }
3245
};
3246
3247
static unsigned
3248
0
dissect_mms_Output_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3249
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3250
0
                                   Output_Request_sequence, hf_index, ett_mms_Output_Request);
3251
3252
0
  return offset;
3253
0
}
3254
3255
3256
3257
static unsigned
3258
0
dissect_mms_T_ap_title(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3259
0
        offset=dissect_acse_AP_title(false, tvb, offset, actx, tree, hf_mms_ap_title);
3260
3261
3262
0
  return offset;
3263
0
}
3264
3265
3266
3267
static unsigned
3268
0
dissect_mms_T_ap_invocation_id(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3269
0
        offset=dissect_acse_AP_invocation_identifier(false, tvb, offset, actx, tree, hf_mms_ap_invocation_id);
3270
3271
3272
0
  return offset;
3273
0
}
3274
3275
3276
3277
static unsigned
3278
0
dissect_mms_T_ae_qualifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3279
0
        offset=dissect_acse_AE_qualifier(false, tvb, offset, actx, tree, hf_mms_ae_qualifier);
3280
3281
3282
0
  return offset;
3283
0
}
3284
3285
3286
3287
static unsigned
3288
0
dissect_mms_T_ae_invocation_id(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3289
0
        offset=dissect_acse_AE_invocation_identifier(false, tvb, offset, actx, tree, hf_mms_ae_invocation_id);
3290
3291
3292
0
  return offset;
3293
0
}
3294
3295
3296
static const ber_sequence_t ApplicationReference_sequence[] = {
3297
  { &hf_mms_ap_title        , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_mms_T_ap_title },
3298
  { &hf_mms_ap_invocation_id, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_mms_T_ap_invocation_id },
3299
  { &hf_mms_ae_qualifier    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_mms_T_ae_qualifier },
3300
  { &hf_mms_ae_invocation_id, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_mms_T_ae_invocation_id },
3301
  { NULL, 0, 0, 0, NULL }
3302
};
3303
3304
static unsigned
3305
0
dissect_mms_ApplicationReference(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3306
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3307
0
                                   ApplicationReference_sequence, hf_index, ett_mms_ApplicationReference);
3308
3309
0
  return offset;
3310
0
}
3311
3312
3313
static const ber_sequence_t TakeControl_Request_sequence[] = {
3314
  { &hf_mms_semaphoreName   , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3315
  { &hf_mms_namedToken      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3316
  { &hf_mms_priority        , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Priority },
3317
  { &hf_mms_acceptableDelay , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
3318
  { &hf_mms_controlTimeOut  , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
3319
  { &hf_mms_abortOnTimeOut  , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
3320
  { &hf_mms_relinquishIfConnectionLost, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
3321
  { &hf_mms_applicationToPreempt, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_ApplicationReference },
3322
  { NULL, 0, 0, 0, NULL }
3323
};
3324
3325
static unsigned
3326
0
dissect_mms_TakeControl_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3327
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3328
0
                                   TakeControl_Request_sequence, hf_index, ett_mms_TakeControl_Request);
3329
3330
0
  return offset;
3331
0
}
3332
3333
3334
static const ber_sequence_t RelinquishControl_Request_sequence[] = {
3335
  { &hf_mms_semaphoreName   , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3336
  { &hf_mms_namedToken      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3337
  { NULL, 0, 0, 0, NULL }
3338
};
3339
3340
static unsigned
3341
0
dissect_mms_RelinquishControl_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3342
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3343
0
                                   RelinquishControl_Request_sequence, hf_index, ett_mms_RelinquishControl_Request);
3344
3345
0
  return offset;
3346
0
}
3347
3348
3349
3350
static unsigned
3351
0
dissect_mms_Unsigned16(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3352
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3353
0
                                                NULL);
3354
3355
0
  return offset;
3356
0
}
3357
3358
3359
static const ber_sequence_t DefineSemaphore_Request_sequence[] = {
3360
  { &hf_mms_semaphoreName   , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3361
  { &hf_mms_numbersOfTokens , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned16 },
3362
  { NULL, 0, 0, 0, NULL }
3363
};
3364
3365
static unsigned
3366
1
dissect_mms_DefineSemaphore_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3367
1
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3368
1
                                   DefineSemaphore_Request_sequence, hf_index, ett_mms_DefineSemaphore_Request);
3369
3370
1
  return offset;
3371
1
}
3372
3373
3374
3375
static unsigned
3376
4
dissect_mms_DeleteSemaphore_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3377
4
  offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
3378
3379
4
  return offset;
3380
4
}
3381
3382
3383
3384
static unsigned
3385
0
dissect_mms_ReportSemaphoreStatus_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3386
0
  offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
3387
3388
0
  return offset;
3389
0
}
3390
3391
3392
static const ber_sequence_t ReportPoolSemaphoreStatus_Request_sequence[] = {
3393
  { &hf_mms_semaphoreName   , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3394
  { &hf_mms_nameToStartAfter, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3395
  { NULL, 0, 0, 0, NULL }
3396
};
3397
3398
static unsigned
3399
1
dissect_mms_ReportPoolSemaphoreStatus_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3400
1
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3401
1
                                   ReportPoolSemaphoreStatus_Request_sequence, hf_index, ett_mms_ReportPoolSemaphoreStatus_Request);
3402
3403
1
  return offset;
3404
1
}
3405
3406
3407
static const value_string mms_T_reportSemaphoreEntryStatus_Request_state_vals[] = {
3408
  {   0, "queued" },
3409
  {   1, "owner" },
3410
  {   2, "hung" },
3411
  { 0, NULL }
3412
};
3413
3414
3415
static unsigned
3416
0
dissect_mms_T_reportSemaphoreEntryStatus_Request_state(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3417
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3418
0
                                                NULL);
3419
3420
0
  return offset;
3421
0
}
3422
3423
3424
static const ber_sequence_t ReportSemaphoreEntryStatus_Request_sequence[] = {
3425
  { &hf_mms_semaphoreName   , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
3426
  { &hf_mms_reportSemaphoreEntryStatus_Request_state, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_reportSemaphoreEntryStatus_Request_state },
3427
  { &hf_mms_entryIdToStartAfter, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_OCTET_STRING },
3428
  { NULL, 0, 0, 0, NULL }
3429
};
3430
3431
static unsigned
3432
0
dissect_mms_ReportSemaphoreEntryStatus_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3433
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3434
0
                                   ReportSemaphoreEntryStatus_Request_sequence, hf_index, ett_mms_ReportSemaphoreEntryStatus_Request);
3435
3436
0
  return offset;
3437
0
}
3438
3439
3440
static const ber_sequence_t T_listOfCapabilities_01_sequence_of[1] = {
3441
  { &hf_mms_listOfCapabilities_item, BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_VisibleString },
3442
};
3443
3444
static unsigned
3445
0
dissect_mms_T_listOfCapabilities_01(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3446
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3447
0
                                      T_listOfCapabilities_01_sequence_of, hf_index, ett_mms_T_listOfCapabilities_01);
3448
3449
0
  return offset;
3450
0
}
3451
3452
3453
static const ber_sequence_t InitiateDownloadSequence_Request_sequence[] = {
3454
  { &hf_mms_domainName      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3455
  { &hf_mms_listOfCapabilities_01, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_listOfCapabilities_01 },
3456
  { &hf_mms_sharable        , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
3457
  { NULL, 0, 0, 0, NULL }
3458
};
3459
3460
static unsigned
3461
0
dissect_mms_InitiateDownloadSequence_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3462
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3463
0
                                   InitiateDownloadSequence_Request_sequence, hf_index, ett_mms_InitiateDownloadSequence_Request);
3464
3465
0
  return offset;
3466
0
}
3467
3468
3469
3470
static unsigned
3471
0
dissect_mms_DownloadSegment_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3472
0
  offset = dissect_mms_Identifier(implicit_tag, tvb, offset, actx, tree, hf_index);
3473
3474
0
  return offset;
3475
0
}
3476
3477
3478
static const value_string mms_T_vmd_state_vals[] = {
3479
  {   0, "other" },
3480
  {   1, "vmd-state-conflict" },
3481
  {   2, "vmd-operational-problem" },
3482
  {   3, "domain-transfer-problem" },
3483
  {   4, "state-machine-id-invalid" },
3484
  { 0, NULL }
3485
};
3486
3487
3488
static unsigned
3489
0
dissect_mms_T_vmd_state(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3490
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3491
0
                                                NULL);
3492
3493
0
  return offset;
3494
0
}
3495
3496
3497
static const value_string mms_T_application_reference_vals[] = {
3498
  {   0, "other" },
3499
  {   1, "aplication-unreachable" },
3500
  {   2, "connection-lost" },
3501
  {   3, "application-reference-invalid" },
3502
  {   4, "context-unsupported" },
3503
  { 0, NULL }
3504
};
3505
3506
3507
static unsigned
3508
0
dissect_mms_T_application_reference(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3509
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3510
0
                                                NULL);
3511
3512
0
  return offset;
3513
0
}
3514
3515
3516
static const value_string mms_T_definition_vals[] = {
3517
  {   0, "other" },
3518
  {   1, "object-undefined" },
3519
  {   2, "invalid-address" },
3520
  {   3, "type-unsupported" },
3521
  {   4, "type-inconsistent" },
3522
  {   5, "object-exists" },
3523
  {   6, "object-attribute-inconsistent" },
3524
  { 0, NULL }
3525
};
3526
3527
3528
static unsigned
3529
0
dissect_mms_T_definition(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3530
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3531
0
                                                NULL);
3532
3533
0
  return offset;
3534
0
}
3535
3536
3537
static const value_string mms_T_resource_vals[] = {
3538
  {   0, "other" },
3539
  {   1, "memory-unavailable" },
3540
  {   2, "processor-resource-unavailable" },
3541
  {   3, "mass-storage-unavailable" },
3542
  {   4, "capability-unavailable" },
3543
  {   5, "capability-unknown" },
3544
  { 0, NULL }
3545
};
3546
3547
3548
static unsigned
3549
0
dissect_mms_T_resource(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3550
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3551
0
                                                NULL);
3552
3553
0
  return offset;
3554
0
}
3555
3556
3557
static const value_string mms_T_service_vals[] = {
3558
  {   0, "other" },
3559
  {   1, "primitives-out-of-sequence" },
3560
  {   2, "object-sate-conflict" },
3561
  {   3, "pdu-size" },
3562
  {   4, "continuation-invalid" },
3563
  {   5, "object-constraint-conflict" },
3564
  { 0, NULL }
3565
};
3566
3567
3568
static unsigned
3569
0
dissect_mms_T_service(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3570
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3571
0
                                                NULL);
3572
3573
0
  return offset;
3574
0
}
3575
3576
3577
static const value_string mms_T_service_preempt_vals[] = {
3578
  {   0, "other" },
3579
  {   1, "timeout" },
3580
  {   2, "deadlock" },
3581
  {   3, "cancel" },
3582
  { 0, NULL }
3583
};
3584
3585
3586
static unsigned
3587
0
dissect_mms_T_service_preempt(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3588
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3589
0
                                                NULL);
3590
3591
0
  return offset;
3592
0
}
3593
3594
3595
static const value_string mms_T_time_resolution_vals[] = {
3596
  {   0, "other" },
3597
  {   1, "unsupportable-time-resolution" },
3598
  { 0, NULL }
3599
};
3600
3601
3602
static unsigned
3603
0
dissect_mms_T_time_resolution(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3604
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3605
0
                                                NULL);
3606
3607
0
  return offset;
3608
0
}
3609
3610
3611
static const value_string mms_T_access_vals[] = {
3612
  {   0, "other" },
3613
  {   1, "object-access-unsupported" },
3614
  {   2, "object-non-existent" },
3615
  {   3, "object-access-denied" },
3616
  {   4, "object-invalidated" },
3617
  { 0, NULL }
3618
};
3619
3620
3621
static unsigned
3622
0
dissect_mms_T_access(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3623
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3624
0
                                                NULL);
3625
3626
0
  return offset;
3627
0
}
3628
3629
3630
static const value_string mms_T_initiate_vals[] = {
3631
  {   0, "other" },
3632
  {   1, "version-incompatible" },
3633
  {   2, "max-segment-insufficient" },
3634
  {   3, "max-services-outstanding-calling-insufficient" },
3635
  {   4, "max-services-outstanding-called-insufficient" },
3636
  {   5, "service-CBB-insufficient" },
3637
  {   6, "parameter-CBB-insufficient" },
3638
  {   7, "nesting-level-insufficient" },
3639
  { 0, NULL }
3640
};
3641
3642
3643
static unsigned
3644
0
dissect_mms_T_initiate(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3645
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3646
0
                                                NULL);
3647
3648
0
  return offset;
3649
0
}
3650
3651
3652
static const value_string mms_T_conclude_vals[] = {
3653
  {   0, "other" },
3654
  {   1, "further-communication-required" },
3655
  { 0, NULL }
3656
};
3657
3658
3659
static unsigned
3660
0
dissect_mms_T_conclude(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3661
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3662
0
                                                NULL);
3663
3664
0
  return offset;
3665
0
}
3666
3667
3668
static const value_string mms_T_cancel_vals[] = {
3669
  {   0, "other" },
3670
  {   1, "invoke-id-unknown" },
3671
  {   2, "cancel-not-possible" },
3672
  { 0, NULL }
3673
};
3674
3675
3676
static unsigned
3677
0
dissect_mms_T_cancel(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3678
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3679
0
                                                NULL);
3680
3681
0
  return offset;
3682
0
}
3683
3684
3685
static const value_string mms_T_file_vals[] = {
3686
  {   0, "other" },
3687
  {   1, "filename-ambiguous" },
3688
  {   2, "file-busy" },
3689
  {   3, "filename-syntax-error" },
3690
  {   4, "content-type-invalid" },
3691
  {   5, "position-invalid" },
3692
  {   6, "file-acces-denied" },
3693
  {   7, "file-non-existent" },
3694
  {   8, "duplicate-filename" },
3695
  {   9, "insufficient-space-in-filestore" },
3696
  { 0, NULL }
3697
};
3698
3699
3700
static unsigned
3701
0
dissect_mms_T_file(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3702
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3703
0
                                                NULL);
3704
3705
0
  return offset;
3706
0
}
3707
3708
3709
static const value_string mms_T_errorClass_vals[] = {
3710
  {   0, "vmd-state" },
3711
  {   1, "application-reference" },
3712
  {   2, "definition" },
3713
  {   3, "resource" },
3714
  {   4, "service" },
3715
  {   5, "service-preempt" },
3716
  {   6, "time-resolution" },
3717
  {   7, "access" },
3718
  {   8, "initiate" },
3719
  {   9, "conclude" },
3720
  {  10, "cancel" },
3721
  {  11, "file" },
3722
  {  12, "others" },
3723
  { 0, NULL }
3724
};
3725
3726
static const ber_choice_t T_errorClass_choice[] = {
3727
  {   0, &hf_mms_vmd_state       , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_vmd_state },
3728
  {   1, &hf_mms_application_reference, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_application_reference },
3729
  {   2, &hf_mms_definition      , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_T_definition },
3730
  {   3, &hf_mms_resource        , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_T_resource },
3731
  {   4, &hf_mms_service         , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_T_service },
3732
  {   5, &hf_mms_service_preempt , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_T_service_preempt },
3733
  {   6, &hf_mms_time_resolution , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_mms_T_time_resolution },
3734
  {   7, &hf_mms_access          , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_mms_T_access },
3735
  {   8, &hf_mms_initiate        , BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_mms_T_initiate },
3736
  {   9, &hf_mms_conclude        , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_mms_T_conclude },
3737
  {  10, &hf_mms_cancel          , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_mms_T_cancel },
3738
  {  11, &hf_mms_file            , BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_mms_T_file },
3739
  {  12, &hf_mms_others          , BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_mms_INTEGER },
3740
  { 0, NULL, 0, 0, 0, NULL }
3741
};
3742
3743
static unsigned
3744
0
dissect_mms_T_errorClass(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3745
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
3746
0
                                 T_errorClass_choice, hf_index, ett_mms_T_errorClass,
3747
0
                                 NULL);
3748
3749
0
  return offset;
3750
0
}
3751
3752
3753
static const value_string mms_ObtainFile_Error_vals[] = {
3754
  {   0, "source-file" },
3755
  {   1, "destination-file" },
3756
  { 0, NULL }
3757
};
3758
3759
3760
static unsigned
3761
0
dissect_mms_ObtainFile_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3762
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3763
0
                                                NULL);
3764
3765
0
  return offset;
3766
0
}
3767
3768
3769
static const value_string mms_ProgramInvocationState_vals[] = {
3770
  {   0, "non-existent" },
3771
  {   1, "unrunable" },
3772
  {   2, "idle" },
3773
  {   3, "running" },
3774
  {   4, "stopped" },
3775
  {   5, "starting" },
3776
  {   6, "stopping" },
3777
  {   7, "resuming" },
3778
  {   8, "resetting" },
3779
  { 0, NULL }
3780
};
3781
3782
3783
static unsigned
3784
0
dissect_mms_ProgramInvocationState(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3785
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3786
0
                                                NULL);
3787
3788
0
  return offset;
3789
0
}
3790
3791
3792
3793
static unsigned
3794
0
dissect_mms_Start_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3795
0
  offset = dissect_mms_ProgramInvocationState(implicit_tag, tvb, offset, actx, tree, hf_index);
3796
3797
0
  return offset;
3798
0
}
3799
3800
3801
3802
static unsigned
3803
0
dissect_mms_Stop_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3804
0
  offset = dissect_mms_ProgramInvocationState(implicit_tag, tvb, offset, actx, tree, hf_index);
3805
3806
0
  return offset;
3807
0
}
3808
3809
3810
3811
static unsigned
3812
0
dissect_mms_Resume_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3813
0
  offset = dissect_mms_ProgramInvocationState(implicit_tag, tvb, offset, actx, tree, hf_index);
3814
3815
0
  return offset;
3816
0
}
3817
3818
3819
3820
static unsigned
3821
0
dissect_mms_Reset_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3822
0
  offset = dissect_mms_ProgramInvocationState(implicit_tag, tvb, offset, actx, tree, hf_index);
3823
3824
0
  return offset;
3825
0
}
3826
3827
3828
3829
static unsigned
3830
0
dissect_mms_DeleteVariableAccess_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3831
0
  offset = dissect_mms_Unsigned32(implicit_tag, tvb, offset, actx, tree, hf_index);
3832
3833
0
  return offset;
3834
0
}
3835
3836
3837
3838
static unsigned
3839
0
dissect_mms_DeleteNamedVariableList_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3840
0
  offset = dissect_mms_Unsigned32(implicit_tag, tvb, offset, actx, tree, hf_index);
3841
3842
0
  return offset;
3843
0
}
3844
3845
3846
3847
static unsigned
3848
0
dissect_mms_DeleteNamedType_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3849
0
  offset = dissect_mms_Unsigned32(implicit_tag, tvb, offset, actx, tree, hf_index);
3850
3851
0
  return offset;
3852
0
}
3853
3854
3855
3856
static unsigned
3857
0
dissect_mms_DefineEventEnrollment_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3858
0
  offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
3859
3860
0
  return offset;
3861
0
}
3862
3863
3864
static const value_string mms_FileRename_Error_vals[] = {
3865
  {   0, "source-file" },
3866
  {   1, "destination-file" },
3867
  { 0, NULL }
3868
};
3869
3870
3871
static unsigned
3872
0
dissect_mms_FileRename_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3873
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3874
0
                                                NULL);
3875
3876
0
  return offset;
3877
0
}
3878
3879
3880
3881
static unsigned
3882
0
dissect_mms_DefineEventConditionList_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3883
0
  offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
3884
3885
0
  return offset;
3886
0
}
3887
3888
3889
3890
static unsigned
3891
0
dissect_mms_AddEventConditionListReference_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3892
0
  offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
3893
3894
0
  return offset;
3895
0
}
3896
3897
3898
static const value_string mms_RemoveEventConditionListReference_Error_vals[] = {
3899
  {   0, "eventCondition" },
3900
  {   1, "eventConditionList" },
3901
  { 0, NULL }
3902
};
3903
3904
static const ber_choice_t RemoveEventConditionListReference_Error_choice[] = {
3905
  {   0, &hf_mms_eventCondition  , BER_CLASS_CON, 0, 0, dissect_mms_ObjectName },
3906
  {   1, &hf_mms_eventConditionList, BER_CLASS_CON, 1, 0, dissect_mms_ObjectName },
3907
  { 0, NULL, 0, 0, 0, NULL }
3908
};
3909
3910
static unsigned
3911
0
dissect_mms_RemoveEventConditionListReference_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3912
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
3913
0
                                 RemoveEventConditionListReference_Error_choice, hf_index, ett_mms_RemoveEventConditionListReference_Error,
3914
0
                                 NULL);
3915
3916
0
  return offset;
3917
0
}
3918
3919
3920
static const value_string mms_InitiateUnitControl_Error_vals[] = {
3921
  {   0, "domain" },
3922
  {   1, "programInvocation" },
3923
  { 0, NULL }
3924
};
3925
3926
static const ber_choice_t InitiateUnitControl_Error_choice[] = {
3927
  {   0, &hf_mms_domain          , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3928
  {   1, &hf_mms_programInvocation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3929
  { 0, NULL, 0, 0, 0, NULL }
3930
};
3931
3932
static unsigned
3933
0
dissect_mms_InitiateUnitControl_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3934
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
3935
0
                                 InitiateUnitControl_Error_choice, hf_index, ett_mms_InitiateUnitControl_Error,
3936
0
                                 NULL);
3937
3938
0
  return offset;
3939
0
}
3940
3941
3942
static const ber_sequence_t StartUnitControl_Error_sequence[] = {
3943
  { &hf_mms_programInvocationName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3944
  { &hf_mms_programInvocationState, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_ProgramInvocationState },
3945
  { NULL, 0, 0, 0, NULL }
3946
};
3947
3948
static unsigned
3949
0
dissect_mms_StartUnitControl_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3950
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3951
0
                                   StartUnitControl_Error_sequence, hf_index, ett_mms_StartUnitControl_Error);
3952
3953
0
  return offset;
3954
0
}
3955
3956
3957
static const ber_sequence_t StopUnitControl_Error_sequence[] = {
3958
  { &hf_mms_programInvocationName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3959
  { &hf_mms_programInvocationState, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_ProgramInvocationState },
3960
  { NULL, 0, 0, 0, NULL }
3961
};
3962
3963
static unsigned
3964
0
dissect_mms_StopUnitControl_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3965
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3966
0
                                   StopUnitControl_Error_sequence, hf_index, ett_mms_StopUnitControl_Error);
3967
3968
0
  return offset;
3969
0
}
3970
3971
3972
static const value_string mms_DeleteUnitControl_Error_vals[] = {
3973
  {   0, "domain" },
3974
  {   1, "programInvocation" },
3975
  { 0, NULL }
3976
};
3977
3978
static const ber_choice_t DeleteUnitControl_Error_choice[] = {
3979
  {   0, &hf_mms_domain          , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3980
  {   1, &hf_mms_programInvocation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
3981
  { 0, NULL, 0, 0, 0, NULL }
3982
};
3983
3984
static unsigned
3985
0
dissect_mms_DeleteUnitControl_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3986
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
3987
0
                                 DeleteUnitControl_Error_choice, hf_index, ett_mms_DeleteUnitControl_Error,
3988
0
                                 NULL);
3989
3990
0
  return offset;
3991
0
}
3992
3993
3994
static const value_string mms_LoadUnitControlFromFile_Error_vals[] = {
3995
  {   0, "none" },
3996
  {   1, "domain" },
3997
  {   2, "programInvocation" },
3998
  { 0, NULL }
3999
};
4000
4001
static const ber_choice_t LoadUnitControlFromFile_Error_choice[] = {
4002
  {   0, &hf_mms_none            , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
4003
  {   1, &hf_mms_domain          , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
4004
  {   2, &hf_mms_programInvocation, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
4005
  { 0, NULL, 0, 0, 0, NULL }
4006
};
4007
4008
static unsigned
4009
0
dissect_mms_LoadUnitControlFromFile_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4010
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
4011
0
                                 LoadUnitControlFromFile_Error_choice, hf_index, ett_mms_LoadUnitControlFromFile_Error,
4012
0
                                 NULL);
4013
4014
0
  return offset;
4015
0
}
4016
4017
4018
static const value_string mms_AdditionalService_Error_vals[] = {
4019
  {   0, "defineEcl" },
4020
  {   1, "addECLReference" },
4021
  {   2, "removeECLReference" },
4022
  {   3, "initiateUC" },
4023
  {   4, "startUC" },
4024
  {   5, "stopUC" },
4025
  {   6, "deleteUC" },
4026
  {   7, "loadUCFromFile" },
4027
  { 0, NULL }
4028
};
4029
4030
static const ber_choice_t AdditionalService_Error_choice[] = {
4031
  {   0, &hf_mms_defineEcl       , BER_CLASS_CON, 0, 0, dissect_mms_DefineEventConditionList_Error },
4032
  {   1, &hf_mms_addECLReference , BER_CLASS_CON, 1, 0, dissect_mms_AddEventConditionListReference_Error },
4033
  {   2, &hf_mms_removeECLReference, BER_CLASS_CON, 2, 0, dissect_mms_RemoveEventConditionListReference_Error },
4034
  {   3, &hf_mms_initiateUC      , BER_CLASS_CON, 3, 0, dissect_mms_InitiateUnitControl_Error },
4035
  {   4, &hf_mms_startUC         , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_StartUnitControl_Error },
4036
  {   5, &hf_mms_stopUC          , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_StopUnitControl_Error },
4037
  {   6, &hf_mms_deleteUC        , BER_CLASS_CON, 6, 0, dissect_mms_DeleteUnitControl_Error },
4038
  {   7, &hf_mms_loadUCFromFile  , BER_CLASS_CON, 7, 0, dissect_mms_LoadUnitControlFromFile_Error },
4039
  { 0, NULL, 0, 0, 0, NULL }
4040
};
4041
4042
static unsigned
4043
0
dissect_mms_AdditionalService_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4044
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
4045
0
                                 AdditionalService_Error_choice, hf_index, ett_mms_AdditionalService_Error,
4046
0
                                 NULL);
4047
4048
0
  return offset;
4049
0
}
4050
4051
4052
4053
static unsigned
4054
0
dissect_mms_ChangeAccessControl_Error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4055
0
  offset = dissect_mms_Unsigned32(implicit_tag, tvb, offset, actx, tree, hf_index);
4056
4057
0
  return offset;
4058
0
}
4059
4060
4061
static const value_string mms_T_serviceSpecificInformation_vals[] = {
4062
  {   0, "obtainFile" },
4063
  {   1, "start" },
4064
  {   2, "stop" },
4065
  {   3, "resume" },
4066
  {   4, "reset" },
4067
  {   5, "deleteVariableAccess" },
4068
  {   6, "deleteNamedVariableList" },
4069
  {   7, "deleteNamedType" },
4070
  {   8, "defineEventEnrollment-Error" },
4071
  {   9, "fileRename" },
4072
  {  10, "additionalService" },
4073
  {  11, "changeAccessControl" },
4074
  { 0, NULL }
4075
};
4076
4077
static const ber_choice_t T_serviceSpecificInformation_choice[] = {
4078
  {   0, &hf_mms_obtainFile_02   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_ObtainFile_Error },
4079
  {   1, &hf_mms_start_02        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Start_Error },
4080
  {   2, &hf_mms_stop_02         , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Stop_Error },
4081
  {   3, &hf_mms_resume_02       , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_Resume_Error },
4082
  {   4, &hf_mms_reset_02        , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_Reset_Error },
4083
  {   5, &hf_mms_deleteVariableAccess_02, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_DeleteVariableAccess_Error },
4084
  {   6, &hf_mms_deleteNamedVariableList_02, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_mms_DeleteNamedVariableList_Error },
4085
  {   7, &hf_mms_deleteNamedType_02, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_mms_DeleteNamedType_Error },
4086
  {   8, &hf_mms_defineEventEnrollment_Error, BER_CLASS_CON, 8, 0, dissect_mms_DefineEventEnrollment_Error },
4087
  {   9, &hf_mms_fileRename_02   , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_mms_FileRename_Error },
4088
  {  10, &hf_mms_additionalService, BER_CLASS_CON, 10, 0, dissect_mms_AdditionalService_Error },
4089
  {  11, &hf_mms_changeAccessControl, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_mms_ChangeAccessControl_Error },
4090
  { 0, NULL, 0, 0, 0, NULL }
4091
};
4092
4093
static unsigned
4094
0
dissect_mms_T_serviceSpecificInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4095
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
4096
0
                                 T_serviceSpecificInformation_choice, hf_index, ett_mms_T_serviceSpecificInformation,
4097
0
                                 NULL);
4098
4099
0
  return offset;
4100
0
}
4101
4102
4103
static const ber_sequence_t ServiceError_sequence[] = {
4104
  { &hf_mms_errorClass      , BER_CLASS_CON, 0, 0, dissect_mms_T_errorClass },
4105
  { &hf_mms_additionalCode  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_INTEGER },
4106
  { &hf_mms_additionalDescription, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_VisibleString },
4107
  { &hf_mms_serviceSpecificInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_mms_T_serviceSpecificInformation },
4108
  { NULL, 0, 0, 0, NULL }
4109
};
4110
4111
static unsigned
4112
18
dissect_mms_ServiceError(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4113
18
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4114
18
                                   ServiceError_sequence, hf_index, ett_mms_ServiceError);
4115
4116
18
  return offset;
4117
18
}
4118
4119
4120
static const ber_sequence_t TerminateDownloadSequence_Request_sequence[] = {
4121
  { &hf_mms_domainName      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
4122
  { &hf_mms_discard         , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_ServiceError },
4123
  { NULL, 0, 0, 0, NULL }
4124
};
4125
4126
static unsigned
4127
9
dissect_mms_TerminateDownloadSequence_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4128
9
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4129
9
                                   TerminateDownloadSequence_Request_sequence, hf_index, ett_mms_TerminateDownloadSequence_Request);
4130
4131
9
  return offset;
4132
9
}
4133
4134
4135
4136
static unsigned
4137
0
dissect_mms_InitiateUploadSequence_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4138
0
  offset = dissect_mms_Identifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4139
4140
0
  return offset;
4141
0
}
4142
4143
4144
4145
static unsigned
4146
5
dissect_mms_UploadSegment_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4147
5
  offset = dissect_mms_Integer32(implicit_tag, tvb, offset, actx, tree, hf_index);
4148
4149
5
  return offset;
4150
5
}
4151
4152
4153
4154
static unsigned
4155
0
dissect_mms_TerminateUploadSequence_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4156
0
  offset = dissect_mms_Integer32(implicit_tag, tvb, offset, actx, tree, hf_index);
4157
4158
0
  return offset;
4159
0
}
4160
4161
4162
static const ber_sequence_t T_listOfCapabilities_03_sequence_of[1] = {
4163
  { &hf_mms_listOfCapabilities_item, BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_VisibleString },
4164
};
4165
4166
static unsigned
4167
0
dissect_mms_T_listOfCapabilities_03(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4168
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4169
0
                                      T_listOfCapabilities_03_sequence_of, hf_index, ett_mms_T_listOfCapabilities_03);
4170
4171
0
  return offset;
4172
0
}
4173
4174
4175
4176
static unsigned
4177
0
dissect_mms_GraphicString(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4178
0
  offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString,
4179
0
                                            actx, tree, tvb, offset, hf_index,
4180
0
                                            NULL);
4181
4182
0
  return offset;
4183
0
}
4184
4185
4186
static const ber_sequence_t FileName_sequence_of[1] = {
4187
  { &hf_mms_FileName_item   , BER_CLASS_UNI, BER_UNI_TAG_GraphicString, BER_FLAGS_NOOWNTAG, dissect_mms_GraphicString },
4188
};
4189
4190
static unsigned
4191
0
dissect_mms_FileName(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4192
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4193
0
                                      FileName_sequence_of, hf_index, ett_mms_FileName);
4194
4195
0
  return offset;
4196
0
}
4197
4198
4199
static const ber_sequence_t RequestDomainDownload_Request_sequence[] = {
4200
  { &hf_mms_domainName      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
4201
  { &hf_mms_listOfCapabilities_03, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_listOfCapabilities_03 },
4202
  { &hf_mms_sharable        , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
4203
  { &hf_mms_fileName        , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_FileName },
4204
  { NULL, 0, 0, 0, NULL }
4205
};
4206
4207
static unsigned
4208
19
dissect_mms_RequestDomainDownload_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4209
19
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4210
19
                                   RequestDomainDownload_Request_sequence, hf_index, ett_mms_RequestDomainDownload_Request);
4211
4212
19
  return offset;
4213
19
}
4214
4215
4216
static const ber_sequence_t RequestDomainUpload_Request_sequence[] = {
4217
  { &hf_mms_domainName      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
4218
  { &hf_mms_fileName        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_FileName },
4219
  { NULL, 0, 0, 0, NULL }
4220
};
4221
4222
static unsigned
4223
1
dissect_mms_RequestDomainUpload_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4224
1
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4225
1
                                   RequestDomainUpload_Request_sequence, hf_index, ett_mms_RequestDomainUpload_Request);
4226
4227
1
  return offset;
4228
1
}
4229
4230
4231
static const ber_sequence_t T_listOfCapabilities_04_sequence_of[1] = {
4232
  { &hf_mms_listOfCapabilities_item, BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_VisibleString },
4233
};
4234
4235
static unsigned
4236
0
dissect_mms_T_listOfCapabilities_04(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4237
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4238
0
                                      T_listOfCapabilities_04_sequence_of, hf_index, ett_mms_T_listOfCapabilities_04);
4239
4240
0
  return offset;
4241
0
}
4242
4243
4244
static const ber_sequence_t LoadDomainContent_Request_sequence[] = {
4245
  { &hf_mms_domainName      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
4246
  { &hf_mms_listOfCapabilities_04, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_listOfCapabilities_04 },
4247
  { &hf_mms_sharable        , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
4248
  { &hf_mms_fileName        , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_FileName },
4249
  { &hf_mms_thirdParty      , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_ApplicationReference },
4250
  { NULL, 0, 0, 0, NULL }
4251
};
4252
4253
static unsigned
4254
0
dissect_mms_LoadDomainContent_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4255
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4256
0
                                   LoadDomainContent_Request_sequence, hf_index, ett_mms_LoadDomainContent_Request);
4257
4258
0
  return offset;
4259
0
}
4260
4261
4262
static const ber_sequence_t StoreDomainContent_Request_sequence[] = {
4263
  { &hf_mms_domainName      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
4264
  { &hf_mms_filenName       , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_FileName },
4265
  { &hf_mms_thirdParty      , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_ApplicationReference },
4266
  { NULL, 0, 0, 0, NULL }
4267
};
4268
4269
static unsigned
4270
75
dissect_mms_StoreDomainContent_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4271
75
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4272
75
                                   StoreDomainContent_Request_sequence, hf_index, ett_mms_StoreDomainContent_Request);
4273
4274
75
  return offset;
4275
75
}
4276
4277
4278
4279
static unsigned
4280
0
dissect_mms_DeleteDomain_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4281
0
  offset = dissect_mms_Identifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4282
4283
0
  return offset;
4284
0
}
4285
4286
4287
4288
static unsigned
4289
0
dissect_mms_GetDomainAttributes_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4290
0
  offset = dissect_mms_Identifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4291
4292
0
  return offset;
4293
0
}
4294
4295
4296
static const ber_sequence_t SEQUENCE_OF_Identifier_sequence_of[1] = {
4297
  { &hf_mms_listOfIdentifier_item, BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_Identifier },
4298
};
4299
4300
static unsigned
4301
0
dissect_mms_SEQUENCE_OF_Identifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4302
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4303
0
                                      SEQUENCE_OF_Identifier_sequence_of, hf_index, ett_mms_SEQUENCE_OF_Identifier);
4304
4305
0
  return offset;
4306
0
}
4307
4308
4309
static const ber_sequence_t CreateProgramInvocation_Request_sequence[] = {
4310
  { &hf_mms_programInvocationName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
4311
  { &hf_mms_listOfDomainName, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_Identifier },
4312
  { &hf_mms_reusable        , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
4313
  { &hf_mms_monitorType     , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
4314
  { NULL, 0, 0, 0, NULL }
4315
};
4316
4317
static unsigned
4318
0
dissect_mms_CreateProgramInvocation_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4319
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4320
0
                                   CreateProgramInvocation_Request_sequence, hf_index, ett_mms_CreateProgramInvocation_Request);
4321
4322
0
  return offset;
4323
0
}
4324
4325
4326
4327
static unsigned
4328
11
dissect_mms_DeleteProgramInvocation_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4329
11
  offset = dissect_mms_Identifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4330
4331
11
  return offset;
4332
11
}
4333
4334
4335
static const value_string mms_T_executionArgument_vals[] = {
4336
  {   0, "simpleString" },
4337
  {   1, "encodedString" },
4338
  { 0, NULL }
4339
};
4340
4341
static const ber_choice_t T_executionArgument_choice[] = {
4342
  {   0, &hf_mms_simpleString    , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_VisibleString },
4343
  {   1, &hf_mms_encodedString   , BER_CLASS_UNI, 8, BER_FLAGS_NOOWNTAG, dissect_acse_EXTERNALt },
4344
  { 0, NULL, 0, 0, 0, NULL }
4345
};
4346
4347
static unsigned
4348
0
dissect_mms_T_executionArgument(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4349
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
4350
0
                                 T_executionArgument_choice, hf_index, ett_mms_T_executionArgument,
4351
0
                                 NULL);
4352
4353
0
  return offset;
4354
0
}
4355
4356
4357
static const ber_sequence_t Start_Request_sequence[] = {
4358
  { &hf_mms_programInvocationName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
4359
  { &hf_mms_executionArgument, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_T_executionArgument },
4360
  { NULL, 0, 0, 0, NULL }
4361
};
4362
4363
static unsigned
4364
0
dissect_mms_Start_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4365
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4366
0
                                   Start_Request_sequence, hf_index, ett_mms_Start_Request);
4367
4368
0
  return offset;
4369
0
}
4370
4371
4372
static const ber_sequence_t Stop_Request_sequence[] = {
4373
  { &hf_mms_programInvocationName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
4374
  { NULL, 0, 0, 0, NULL }
4375
};
4376
4377
static unsigned
4378
0
dissect_mms_Stop_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4379
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4380
0
                                   Stop_Request_sequence, hf_index, ett_mms_Stop_Request);
4381
4382
0
  return offset;
4383
0
}
4384
4385
4386
static const value_string mms_T_executionArgument_01_vals[] = {
4387
  {   0, "simpleString" },
4388
  {   1, "encodedString" },
4389
  { 0, NULL }
4390
};
4391
4392
static const ber_choice_t T_executionArgument_01_choice[] = {
4393
  {   0, &hf_mms_simpleString    , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_VisibleString },
4394
  {   1, &hf_mms_encodedString   , BER_CLASS_UNI, 8, BER_FLAGS_NOOWNTAG, dissect_acse_EXTERNALt },
4395
  { 0, NULL, 0, 0, 0, NULL }
4396
};
4397
4398
static unsigned
4399
0
dissect_mms_T_executionArgument_01(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4400
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
4401
0
                                 T_executionArgument_01_choice, hf_index, ett_mms_T_executionArgument_01,
4402
0
                                 NULL);
4403
4404
0
  return offset;
4405
0
}
4406
4407
4408
static const ber_sequence_t Resume_Request_sequence[] = {
4409
  { &hf_mms_programInvocationName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
4410
  { &hf_mms_executionArgument_01, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_T_executionArgument_01 },
4411
  { NULL, 0, 0, 0, NULL }
4412
};
4413
4414
static unsigned
4415
0
dissect_mms_Resume_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4416
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4417
0
                                   Resume_Request_sequence, hf_index, ett_mms_Resume_Request);
4418
4419
0
  return offset;
4420
0
}
4421
4422
4423
static const ber_sequence_t Reset_Request_sequence[] = {
4424
  { &hf_mms_programInvocationName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
4425
  { NULL, 0, 0, 0, NULL }
4426
};
4427
4428
static unsigned
4429
0
dissect_mms_Reset_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4430
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4431
0
                                   Reset_Request_sequence, hf_index, ett_mms_Reset_Request);
4432
4433
0
  return offset;
4434
0
}
4435
4436
4437
static const ber_sequence_t Kill_Request_sequence[] = {
4438
  { &hf_mms_programInvocationName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
4439
  { NULL, 0, 0, 0, NULL }
4440
};
4441
4442
static unsigned
4443
11
dissect_mms_Kill_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4444
11
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4445
11
                                   Kill_Request_sequence, hf_index, ett_mms_Kill_Request);
4446
4447
11
  return offset;
4448
11
}
4449
4450
4451
4452
static unsigned
4453
1
dissect_mms_GetProgramInvocationAttributes_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4454
1
  offset = dissect_mms_Identifier(implicit_tag, tvb, offset, actx, tree, hf_index);
4455
4456
1
  return offset;
4457
1
}
4458
4459
4460
static const ber_sequence_t ObtainFile_Request_sequence[] = {
4461
  { &hf_mms_sourceFileServer, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_ApplicationReference },
4462
  { &hf_mms_sourceFile      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_FileName },
4463
  { &hf_mms_destinationFile , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_FileName },
4464
  { NULL, 0, 0, 0, NULL }
4465
};
4466
4467
static unsigned
4468
0
dissect_mms_ObtainFile_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4469
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4470
0
                                   ObtainFile_Request_sequence, hf_index, ett_mms_ObtainFile_Request);
4471
4472
0
  return offset;
4473
0
}
4474
4475
4476
static const value_string mms_EC_Class_vals[] = {
4477
  {   0, "network-triggered" },
4478
  {   1, "monitored" },
4479
  { 0, NULL }
4480
};
4481
4482
4483
static unsigned
4484
0
dissect_mms_EC_Class(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4485
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4486
0
                                                NULL);
4487
4488
0
  return offset;
4489
0
}
4490
4491
4492
static const ber_sequence_t DefineEventCondition_Request_sequence[] = {
4493
  { &hf_mms_eventConditionName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
4494
  { &hf_mms_class_01        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_EC_Class },
4495
  { &hf_mms_prio_rity       , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Priority },
4496
  { &hf_mms_severity        , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned8 },
4497
  { &hf_mms_alarmSummaryReports, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
4498
  { &hf_mms_monitoredVariable, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_VariableSpecification },
4499
  { &hf_mms_evaluationInterval, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
4500
  { NULL, 0, 0, 0, NULL }
4501
};
4502
4503
static unsigned
4504
2
dissect_mms_DefineEventCondition_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4505
2
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4506
2
                                   DefineEventCondition_Request_sequence, hf_index, ett_mms_DefineEventCondition_Request);
4507
4508
2
  return offset;
4509
2
}
4510
4511
4512
static const value_string mms_DeleteEventCondition_Request_vals[] = {
4513
  {   0, "specific" },
4514
  {   1, "aa-specific" },
4515
  {   2, "domain" },
4516
  {   3, "vmd" },
4517
  { 0, NULL }
4518
};
4519
4520
static const ber_choice_t DeleteEventCondition_Request_choice[] = {
4521
  {   0, &hf_mms_specific        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_ObjectName },
4522
  {   1, &hf_mms_aa_specific_01  , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
4523
  {   2, &hf_mms_domain          , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
4524
  {   3, &hf_mms_vmd             , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
4525
  { 0, NULL, 0, 0, 0, NULL }
4526
};
4527
4528
static unsigned
4529
0
dissect_mms_DeleteEventCondition_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4530
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
4531
0
                                 DeleteEventCondition_Request_choice, hf_index, ett_mms_DeleteEventCondition_Request,
4532
0
                                 NULL);
4533
4534
0
  return offset;
4535
0
}
4536
4537
4538
4539
static unsigned
4540
0
dissect_mms_GetEventConditionAttributes_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4541
0
  offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
4542
4543
0
  return offset;
4544
0
}
4545
4546
4547
4548
static unsigned
4549
3
dissect_mms_ReportEventConditionStatus_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4550
3
  offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
4551
4552
3
  return offset;
4553
3
}
4554
4555
4556
static const ber_sequence_t AlterEventConditionMonitoring_Request_sequence[] = {
4557
  { &hf_mms_eventConditionName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
4558
  { &hf_mms_enabled         , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
4559
  { &hf_mms_priority        , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Priority },
4560
  { &hf_mms_alarmSummaryReports, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
4561
  { &hf_mms_evaluationInterval, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
4562
  { NULL, 0, 0, 0, NULL }
4563
};
4564
4565
static unsigned
4566
7
dissect_mms_AlterEventConditionMonitoring_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4567
7
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4568
7
                                   AlterEventConditionMonitoring_Request_sequence, hf_index, ett_mms_AlterEventConditionMonitoring_Request);
4569
4570
7
  return offset;
4571
7
}
4572
4573
4574
static const ber_sequence_t TriggerEvent_Request_sequence[] = {
4575
  { &hf_mms_eventConditionName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
4576
  { &hf_mms_priority        , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Priority },
4577
  { NULL, 0, 0, 0, NULL }
4578
};
4579
4580
static unsigned
4581
0
dissect_mms_TriggerEvent_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4582
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4583
0
                                   TriggerEvent_Request_sequence, hf_index, ett_mms_TriggerEvent_Request);
4584
4585
0
  return offset;
4586
0
}
4587
4588
4589
static const ber_sequence_t DefineEventAction_Request_sequence[] = {
4590
  { &hf_mms_eventActionName , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
4591
  { &hf_mms_listOfModifier  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_Modifier },
4592
  { NULL, 0, 0, 0, NULL }
4593
};
4594
4595
static unsigned
4596
9
dissect_mms_DefineEventAction_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4597
9
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4598
9
                                   DefineEventAction_Request_sequence, hf_index, ett_mms_DefineEventAction_Request);
4599
4600
9
  return offset;
4601
9
}
4602
4603
4604
static const value_string mms_DeleteEventAction_Request_vals[] = {
4605
  {   0, "specific" },
4606
  {   1, "aa-specific" },
4607
  {   3, "domain" },
4608
  {   4, "vmd" },
4609
  { 0, NULL }
4610
};
4611
4612
static const ber_choice_t DeleteEventAction_Request_choice[] = {
4613
  {   0, &hf_mms_specific        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_ObjectName },
4614
  {   1, &hf_mms_aa_specific_01  , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
4615
  {   3, &hf_mms_domain          , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
4616
  {   4, &hf_mms_vmd             , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
4617
  { 0, NULL, 0, 0, 0, NULL }
4618
};
4619
4620
static unsigned
4621
0
dissect_mms_DeleteEventAction_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4622
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
4623
0
                                 DeleteEventAction_Request_choice, hf_index, ett_mms_DeleteEventAction_Request,
4624
0
                                 NULL);
4625
4626
0
  return offset;
4627
0
}
4628
4629
4630
4631
static unsigned
4632
0
dissect_mms_GetEventActionAttributes_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4633
0
  offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
4634
4635
0
  return offset;
4636
0
}
4637
4638
4639
4640
static unsigned
4641
2
dissect_mms_ReportEventActionStatus_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4642
2
  offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
4643
4644
2
  return offset;
4645
2
}
4646
4647
4648
static const value_string mms_AlarmAckRule_vals[] = {
4649
  {   0, "none" },
4650
  {   1, "simple" },
4651
  {   2, "ack-active" },
4652
  {   3, "ack-all" },
4653
  { 0, NULL }
4654
};
4655
4656
4657
static unsigned
4658
0
dissect_mms_AlarmAckRule(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4659
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4660
0
                                                NULL);
4661
4662
0
  return offset;
4663
0
}
4664
4665
4666
static const ber_sequence_t DefineEventEnrollment_Request_sequence[] = {
4667
  { &hf_mms_eventEnrollmentName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
4668
  { &hf_mms_eventConditionName, BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
4669
  { &hf_mms_eventConditionTransition, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Transitions },
4670
  { &hf_mms_alarmAcknowledgementRule, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_AlarmAckRule },
4671
  { &hf_mms_eventActionName , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
4672
  { &hf_mms_clientApplication, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_mms_ApplicationReference },
4673
  { NULL, 0, 0, 0, NULL }
4674
};
4675
4676
static unsigned
4677
0
dissect_mms_DefineEventEnrollment_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4678
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4679
0
                                   DefineEventEnrollment_Request_sequence, hf_index, ett_mms_DefineEventEnrollment_Request);
4680
4681
0
  return offset;
4682
0
}
4683
4684
4685
static const value_string mms_DeleteEventEnrollment_Request_vals[] = {
4686
  {   0, "specific" },
4687
  {   1, "ec" },
4688
  {   2, "ea" },
4689
  { 0, NULL }
4690
};
4691
4692
static const ber_choice_t DeleteEventEnrollment_Request_choice[] = {
4693
  {   0, &hf_mms_specific        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_ObjectName },
4694
  {   1, &hf_mms_ec              , BER_CLASS_CON, 1, 0, dissect_mms_ObjectName },
4695
  {   2, &hf_mms_ea              , BER_CLASS_CON, 2, 0, dissect_mms_ObjectName },
4696
  { 0, NULL, 0, 0, 0, NULL }
4697
};
4698
4699
static unsigned
4700
0
dissect_mms_DeleteEventEnrollment_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4701
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
4702
0
                                 DeleteEventEnrollment_Request_choice, hf_index, ett_mms_DeleteEventEnrollment_Request,
4703
0
                                 NULL);
4704
4705
0
  return offset;
4706
0
}
4707
4708
4709
static const ber_sequence_t AlterEventEnrollment_Request_sequence[] = {
4710
  { &hf_mms_eventEnrollmentName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
4711
  { &hf_mms_eventConditionTransitions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Transitions },
4712
  { &hf_mms_alarmAcknowledgmentRule, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_AlarmAckRule },
4713
  { NULL, 0, 0, 0, NULL }
4714
};
4715
4716
static unsigned
4717
1
dissect_mms_AlterEventEnrollment_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4718
1
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4719
1
                                   AlterEventEnrollment_Request_sequence, hf_index, ett_mms_AlterEventEnrollment_Request);
4720
4721
1
  return offset;
4722
1
}
4723
4724
4725
4726
static unsigned
4727
7
dissect_mms_ReportEventEnrollmentStatus_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4728
7
  offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
4729
4730
7
  return offset;
4731
7
}
4732
4733
4734
static const value_string mms_T_scopeOfRequest_vals[] = {
4735
  {   0, "specific" },
4736
  {   1, "client" },
4737
  {   2, "ec" },
4738
  {   3, "ea" },
4739
  { 0, NULL }
4740
};
4741
4742
4743
static unsigned
4744
0
dissect_mms_T_scopeOfRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4745
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4746
0
                                                NULL);
4747
4748
0
  return offset;
4749
0
}
4750
4751
4752
static const ber_sequence_t GetEventEnrollmentAttributes_Request_sequence[] = {
4753
  { &hf_mms_scopeOfRequest  , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_scopeOfRequest },
4754
  { &hf_mms_eventEnrollmentNames, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_ObjectName },
4755
  { &hf_mms_clientApplication, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_mms_ApplicationReference },
4756
  { &hf_mms_eventConditionName, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
4757
  { &hf_mms_eventActionName , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
4758
  { &hf_mms_getEventEnrollmentAttributes_Request_continueAfter, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
4759
  { NULL, 0, 0, 0, NULL }
4760
};
4761
4762
static unsigned
4763
0
dissect_mms_GetEventEnrollmentAttributes_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4764
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4765
0
                                   GetEventEnrollmentAttributes_Request_sequence, hf_index, ett_mms_GetEventEnrollmentAttributes_Request);
4766
4767
0
  return offset;
4768
0
}
4769
4770
4771
static const value_string mms_EC_State_vals[] = {
4772
  {   0, "disabled" },
4773
  {   1, "idle" },
4774
  {   2, "active" },
4775
  { 0, NULL }
4776
};
4777
4778
4779
static unsigned
4780
0
dissect_mms_EC_State(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4781
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4782
0
                                                NULL);
4783
4784
0
  return offset;
4785
0
}
4786
4787
4788
static const value_string mms_EventTime_vals[] = {
4789
  {   0, "timeOfDayT" },
4790
  {   1, "timeSequenceIdentifier" },
4791
  { 0, NULL }
4792
};
4793
4794
static const ber_choice_t EventTime_choice[] = {
4795
  {   0, &hf_mms_timeOfDayT      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_TimeOfDay },
4796
  {   1, &hf_mms_timeSequenceIdentifier, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
4797
  { 0, NULL, 0, 0, 0, NULL }
4798
};
4799
4800
static unsigned
4801
0
dissect_mms_EventTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4802
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
4803
0
                                 EventTime_choice, hf_index, ett_mms_EventTime,
4804
0
                                 NULL);
4805
4806
0
  return offset;
4807
0
}
4808
4809
4810
static const ber_sequence_t AcknowledgeEventNotification_Request_sequence[] = {
4811
  { &hf_mms_eventEnrollmentName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
4812
  { &hf_mms_acknowledgedState, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_EC_State },
4813
  { &hf_mms_timeOfAcknowledgedTransition, BER_CLASS_CON, 3, BER_FLAGS_NOTCHKTAG, dissect_mms_EventTime },
4814
  { NULL, 0, 0, 0, NULL }
4815
};
4816
4817
static unsigned
4818
0
dissect_mms_AcknowledgeEventNotification_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4819
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4820
0
                                   AcknowledgeEventNotification_Request_sequence, hf_index, ett_mms_AcknowledgeEventNotification_Request);
4821
4822
0
  return offset;
4823
0
}
4824
4825
4826
static const value_string mms_T_acknowledgmentFilter_vals[] = {
4827
  {   0, "not-acked" },
4828
  {   1, "acked" },
4829
  {   2, "all" },
4830
  { 0, NULL }
4831
};
4832
4833
4834
static unsigned
4835
0
dissect_mms_T_acknowledgmentFilter(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4836
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4837
0
                                                NULL);
4838
4839
0
  return offset;
4840
0
}
4841
4842
4843
static const ber_sequence_t T_severityFilter_sequence[] = {
4844
  { &hf_mms_mostSevere      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned8 },
4845
  { &hf_mms_leastSevere     , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned8 },
4846
  { NULL, 0, 0, 0, NULL }
4847
};
4848
4849
static unsigned
4850
0
dissect_mms_T_severityFilter(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4851
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4852
0
                                   T_severityFilter_sequence, hf_index, ett_mms_T_severityFilter);
4853
4854
0
  return offset;
4855
0
}
4856
4857
4858
static const ber_sequence_t GetAlarmSummary_Request_sequence[] = {
4859
  { &hf_mms_enrollmentsOnly , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
4860
  { &hf_mms_activeAlarmsOnly, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
4861
  { &hf_mms_acknowledgmentFilter, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_acknowledgmentFilter },
4862
  { &hf_mms_severityFilter  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_severityFilter },
4863
  { &hf_mms_continueAfter   , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
4864
  { NULL, 0, 0, 0, NULL }
4865
};
4866
4867
static unsigned
4868
0
dissect_mms_GetAlarmSummary_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4869
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4870
0
                                   GetAlarmSummary_Request_sequence, hf_index, ett_mms_GetAlarmSummary_Request);
4871
4872
0
  return offset;
4873
0
}
4874
4875
4876
static const value_string mms_T_acknowledgmentFilter_01_vals[] = {
4877
  {   0, "not-acked" },
4878
  {   1, "acked" },
4879
  {   2, "all" },
4880
  { 0, NULL }
4881
};
4882
4883
4884
static unsigned
4885
0
dissect_mms_T_acknowledgmentFilter_01(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4886
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4887
0
                                                NULL);
4888
4889
0
  return offset;
4890
0
}
4891
4892
4893
static const ber_sequence_t T_severityFilter_01_sequence[] = {
4894
  { &hf_mms_mostSevere      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned8 },
4895
  { &hf_mms_leastSevere     , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned8 },
4896
  { NULL, 0, 0, 0, NULL }
4897
};
4898
4899
static unsigned
4900
0
dissect_mms_T_severityFilter_01(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4901
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4902
0
                                   T_severityFilter_01_sequence, hf_index, ett_mms_T_severityFilter_01);
4903
4904
0
  return offset;
4905
0
}
4906
4907
4908
static const ber_sequence_t GetAlarmEnrollmentSummary_Request_sequence[] = {
4909
  { &hf_mms_enrollmentsOnly , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
4910
  { &hf_mms_activeAlarmsOnly, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
4911
  { &hf_mms_acknowledgmentFilter_01, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_acknowledgmentFilter_01 },
4912
  { &hf_mms_severityFilter_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_severityFilter_01 },
4913
  { &hf_mms_getAlarmEnrollmentSummary_Request_continueAfter, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
4914
  { NULL, 0, 0, 0, NULL }
4915
};
4916
4917
static unsigned
4918
0
dissect_mms_GetAlarmEnrollmentSummary_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4919
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4920
0
                                   GetAlarmEnrollmentSummary_Request_sequence, hf_index, ett_mms_GetAlarmEnrollmentSummary_Request);
4921
4922
0
  return offset;
4923
0
}
4924
4925
4926
static const value_string mms_T_rangeStartSpecification_vals[] = {
4927
  {   0, "startingTime" },
4928
  {   1, "startingEntry" },
4929
  { 0, NULL }
4930
};
4931
4932
static const ber_choice_t T_rangeStartSpecification_choice[] = {
4933
  {   0, &hf_mms_startingTime    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_TimeOfDay },
4934
  {   1, &hf_mms_startingEntry   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_OCTET_STRING },
4935
  { 0, NULL, 0, 0, 0, NULL }
4936
};
4937
4938
static unsigned
4939
0
dissect_mms_T_rangeStartSpecification(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4940
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
4941
0
                                 T_rangeStartSpecification_choice, hf_index, ett_mms_T_rangeStartSpecification,
4942
0
                                 NULL);
4943
4944
0
  return offset;
4945
0
}
4946
4947
4948
static const value_string mms_T_rangeStopSpecification_vals[] = {
4949
  {   0, "endingTime" },
4950
  {   1, "numberOfEntries" },
4951
  { 0, NULL }
4952
};
4953
4954
static const ber_choice_t T_rangeStopSpecification_choice[] = {
4955
  {   0, &hf_mms_endingTime      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_TimeOfDay },
4956
  {   1, &hf_mms_numberOfEntries , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Integer32 },
4957
  { 0, NULL, 0, 0, 0, NULL }
4958
};
4959
4960
static unsigned
4961
0
dissect_mms_T_rangeStopSpecification(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4962
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
4963
0
                                 T_rangeStopSpecification_choice, hf_index, ett_mms_T_rangeStopSpecification,
4964
0
                                 NULL);
4965
4966
0
  return offset;
4967
0
}
4968
4969
4970
static const ber_sequence_t T_listOfVariables_sequence_of[1] = {
4971
  { &hf_mms_listOfVariables_item, BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_VisibleString },
4972
};
4973
4974
static unsigned
4975
0
dissect_mms_T_listOfVariables(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4976
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4977
0
                                      T_listOfVariables_sequence_of, hf_index, ett_mms_T_listOfVariables);
4978
4979
0
  return offset;
4980
0
}
4981
4982
4983
static const ber_sequence_t T_entryToStartAfter_sequence[] = {
4984
  { &hf_mms_timeSpecification, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_TimeOfDay },
4985
  { &hf_mms_entrySpecification, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_OCTET_STRING },
4986
  { NULL, 0, 0, 0, NULL }
4987
};
4988
4989
static unsigned
4990
0
dissect_mms_T_entryToStartAfter(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4991
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4992
0
                                   T_entryToStartAfter_sequence, hf_index, ett_mms_T_entryToStartAfter);
4993
4994
0
  return offset;
4995
0
}
4996
4997
4998
static const ber_sequence_t ReadJournal_Request_sequence[] = {
4999
  { &hf_mms_journalName     , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
5000
  { &hf_mms_rangeStartSpecification, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_mms_T_rangeStartSpecification },
5001
  { &hf_mms_rangeStopSpecification, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_mms_T_rangeStopSpecification },
5002
  { &hf_mms_listOfVariables , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_listOfVariables },
5003
  { &hf_mms_entryToStartAfter, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_T_entryToStartAfter },
5004
  { NULL, 0, 0, 0, NULL }
5005
};
5006
5007
static unsigned
5008
0
dissect_mms_ReadJournal_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5009
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5010
0
                                   ReadJournal_Request_sequence, hf_index, ett_mms_ReadJournal_Request);
5011
5012
0
  return offset;
5013
0
}
5014
5015
5016
5017
static unsigned
5018
0
dissect_mms_JOU_Additional_Detail(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5019
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5020
5021
0
  return offset;
5022
0
}
5023
5024
5025
static const ber_sequence_t T_event_sequence[] = {
5026
  { &hf_mms_eventConditionName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
5027
  { &hf_mms_currentState    , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_EC_State },
5028
  { NULL, 0, 0, 0, NULL }
5029
};
5030
5031
static unsigned
5032
0
dissect_mms_T_event(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5033
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5034
0
                                   T_event_sequence, hf_index, ett_mms_T_event);
5035
5036
0
  return offset;
5037
0
}
5038
5039
5040
static const ber_sequence_t T_listOfVariables_item_sequence[] = {
5041
  { &hf_mms_variableTag     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_VisibleString },
5042
  { &hf_mms_valueSpecification, BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_mms_Data },
5043
  { NULL, 0, 0, 0, NULL }
5044
};
5045
5046
static unsigned
5047
0
dissect_mms_T_listOfVariables_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5048
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5049
0
                                   T_listOfVariables_item_sequence, hf_index, ett_mms_T_listOfVariables_item);
5050
5051
0
  return offset;
5052
0
}
5053
5054
5055
static const ber_sequence_t T_listOfVariables_01_sequence_of[1] = {
5056
  { &hf_mms_listOfVariables_item_01, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mms_T_listOfVariables_item },
5057
};
5058
5059
static unsigned
5060
0
dissect_mms_T_listOfVariables_01(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5061
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5062
0
                                      T_listOfVariables_01_sequence_of, hf_index, ett_mms_T_listOfVariables_01);
5063
5064
0
  return offset;
5065
0
}
5066
5067
5068
static const ber_sequence_t T_data_sequence[] = {
5069
  { &hf_mms_event           , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_event },
5070
  { &hf_mms_listOfVariables_01, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_listOfVariables_01 },
5071
  { NULL, 0, 0, 0, NULL }
5072
};
5073
5074
static unsigned
5075
0
dissect_mms_T_data(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5076
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5077
0
                                   T_data_sequence, hf_index, ett_mms_T_data);
5078
5079
0
  return offset;
5080
0
}
5081
5082
5083
static const value_string mms_T_entryForm_vals[] = {
5084
  {   2, "data" },
5085
  {   3, "annotation" },
5086
  { 0, NULL }
5087
};
5088
5089
static const ber_choice_t T_entryForm_choice[] = {
5090
  {   2, &hf_mms_data            , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_T_data },
5091
  {   3, &hf_mms_annotation      , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_VisibleString },
5092
  { 0, NULL, 0, 0, 0, NULL }
5093
};
5094
5095
static unsigned
5096
0
dissect_mms_T_entryForm(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5097
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
5098
0
                                 T_entryForm_choice, hf_index, ett_mms_T_entryForm,
5099
0
                                 NULL);
5100
5101
0
  return offset;
5102
0
}
5103
5104
5105
static const ber_sequence_t EntryContent_sequence[] = {
5106
  { &hf_mms_occurenceTime   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_TimeOfDay },
5107
  { &hf_mms_additionalDetail, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_mms_JOU_Additional_Detail },
5108
  { &hf_mms_entryForm       , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_T_entryForm },
5109
  { NULL, 0, 0, 0, NULL }
5110
};
5111
5112
static unsigned
5113
0
dissect_mms_EntryContent(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5114
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5115
0
                                   EntryContent_sequence, hf_index, ett_mms_EntryContent);
5116
5117
0
  return offset;
5118
0
}
5119
5120
5121
static const ber_sequence_t SEQUENCE_OF_EntryContent_sequence_of[1] = {
5122
  { &hf_mms_listOfJournalEntry_item_01, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mms_EntryContent },
5123
};
5124
5125
static unsigned
5126
0
dissect_mms_SEQUENCE_OF_EntryContent(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5127
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5128
0
                                      SEQUENCE_OF_EntryContent_sequence_of, hf_index, ett_mms_SEQUENCE_OF_EntryContent);
5129
5130
0
  return offset;
5131
0
}
5132
5133
5134
static const ber_sequence_t WriteJournal_Request_sequence[] = {
5135
  { &hf_mms_journalName     , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
5136
  { &hf_mms_listOfJournalEntry_01, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_EntryContent },
5137
  { NULL, 0, 0, 0, NULL }
5138
};
5139
5140
static unsigned
5141
0
dissect_mms_WriteJournal_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5142
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5143
0
                                   WriteJournal_Request_sequence, hf_index, ett_mms_WriteJournal_Request);
5144
5145
0
  return offset;
5146
0
}
5147
5148
5149
static const ber_sequence_t T_limitSpecification_sequence[] = {
5150
  { &hf_mms_limitingTime    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_TimeOfDay },
5151
  { &hf_mms_limitingEntry   , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_OCTET_STRING },
5152
  { NULL, 0, 0, 0, NULL }
5153
};
5154
5155
static unsigned
5156
0
dissect_mms_T_limitSpecification(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5157
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5158
0
                                   T_limitSpecification_sequence, hf_index, ett_mms_T_limitSpecification);
5159
5160
0
  return offset;
5161
0
}
5162
5163
5164
static const ber_sequence_t InitializeJournal_Request_sequence[] = {
5165
  { &hf_mms_journalName     , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
5166
  { &hf_mms_limitSpecification, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_limitSpecification },
5167
  { NULL, 0, 0, 0, NULL }
5168
};
5169
5170
static unsigned
5171
0
dissect_mms_InitializeJournal_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5172
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5173
0
                                   InitializeJournal_Request_sequence, hf_index, ett_mms_InitializeJournal_Request);
5174
5175
0
  return offset;
5176
0
}
5177
5178
5179
5180
static unsigned
5181
0
dissect_mms_ReportJournalStatus_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5182
0
  offset = dissect_mms_ObjectName(implicit_tag, tvb, offset, actx, tree, hf_index);
5183
5184
0
  return offset;
5185
0
}
5186
5187
5188
static const ber_sequence_t CreateJournal_Request_sequence[] = {
5189
  { &hf_mms_journalName     , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
5190
  { NULL, 0, 0, 0, NULL }
5191
};
5192
5193
static unsigned
5194
1
dissect_mms_CreateJournal_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5195
1
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5196
1
                                   CreateJournal_Request_sequence, hf_index, ett_mms_CreateJournal_Request);
5197
5198
1
  return offset;
5199
1
}
5200
5201
5202
static const ber_sequence_t DeleteJournal_Request_sequence[] = {
5203
  { &hf_mms_journalName     , BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
5204
  { NULL, 0, 0, 0, NULL }
5205
};
5206
5207
static unsigned
5208
0
dissect_mms_DeleteJournal_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5209
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5210
0
                                   DeleteJournal_Request_sequence, hf_index, ett_mms_DeleteJournal_Request);
5211
5212
0
  return offset;
5213
0
}
5214
5215
5216
static const ber_sequence_t GetCapabilityList_Request_sequence[] = {
5217
  { &hf_mms_getCapabilityList_Request_continueAfter, BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_mms_VisibleString },
5218
  { NULL, 0, 0, 0, NULL }
5219
};
5220
5221
static unsigned
5222
0
dissect_mms_GetCapabilityList_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5223
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5224
0
                                   GetCapabilityList_Request_sequence, hf_index, ett_mms_GetCapabilityList_Request);
5225
5226
0
  return offset;
5227
0
}
5228
5229
5230
static const ber_sequence_t FileOpen_Request_sequence[] = {
5231
  { &hf_mms_fileName        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_FileName },
5232
  { &hf_mms_initialPosition , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
5233
  { NULL, 0, 0, 0, NULL }
5234
};
5235
5236
static unsigned
5237
0
dissect_mms_FileOpen_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5238
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5239
0
                                   FileOpen_Request_sequence, hf_index, ett_mms_FileOpen_Request);
5240
5241
0
  return offset;
5242
0
}
5243
5244
5245
5246
static unsigned
5247
6
dissect_mms_FileRead_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5248
6
  offset = dissect_mms_Integer32(implicit_tag, tvb, offset, actx, tree, hf_index);
5249
5250
6
  return offset;
5251
6
}
5252
5253
5254
5255
static unsigned
5256
4
dissect_mms_FileClose_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5257
4
  offset = dissect_mms_Integer32(implicit_tag, tvb, offset, actx, tree, hf_index);
5258
5259
4
  return offset;
5260
4
}
5261
5262
5263
static const ber_sequence_t FileRename_Request_sequence[] = {
5264
  { &hf_mms_currentFileName , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_FileName },
5265
  { &hf_mms_newFileName     , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_FileName },
5266
  { NULL, 0, 0, 0, NULL }
5267
};
5268
5269
static unsigned
5270
0
dissect_mms_FileRename_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5271
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5272
0
                                   FileRename_Request_sequence, hf_index, ett_mms_FileRename_Request);
5273
5274
0
  return offset;
5275
0
}
5276
5277
5278
5279
static unsigned
5280
0
dissect_mms_FileDelete_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5281
0
  offset = dissect_mms_FileName(implicit_tag, tvb, offset, actx, tree, hf_index);
5282
5283
0
  return offset;
5284
0
}
5285
5286
5287
static const ber_sequence_t FileDirectory_Request_sequence[] = {
5288
  { &hf_mms_fileSpecification, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_FileName },
5289
  { &hf_mms_fileDirectory_Request_continueAfter, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_FileName },
5290
  { NULL, 0, 0, 0, NULL }
5291
};
5292
5293
static unsigned
5294
0
dissect_mms_FileDirectory_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5295
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5296
0
                                   FileDirectory_Request_sequence, hf_index, ett_mms_FileDirectory_Request);
5297
5298
0
  return offset;
5299
0
}
5300
5301
5302
static const value_string mms_ConfirmedServiceRequest_vals[] = {
5303
  {   0, "status" },
5304
  {   1, "getNameList" },
5305
  {   2, "identify" },
5306
  {   3, "rename" },
5307
  {   4, "read" },
5308
  {   5, "write" },
5309
  {   6, "getVariableAccessAttributes" },
5310
  {   7, "defineNamedVariable" },
5311
  {   8, "defineScatteredAccess" },
5312
  {   9, "getScatteredAccessAttributes" },
5313
  {  10, "deleteVariableAccess" },
5314
  {  11, "defineNamedVariableList" },
5315
  {  12, "getNamedVariableListAttributes" },
5316
  {  13, "deleteNamedVariableList" },
5317
  {  14, "defineNamedType" },
5318
  {  15, "getNamedTypeAttributes" },
5319
  {  16, "deleteNamedType" },
5320
  {  17, "input" },
5321
  {  18, "output" },
5322
  {  19, "takeControl" },
5323
  {  20, "relinquishControl" },
5324
  {  21, "defineSemaphore" },
5325
  {  22, "deleteSemaphore" },
5326
  {  23, "reportSemaphoreStatus" },
5327
  {  24, "reportPoolSemaphoreStatus" },
5328
  {  25, "reportSemaphoreEntryStatus" },
5329
  {  26, "initiateDownloadSequence" },
5330
  {  27, "downloadSegment" },
5331
  {  28, "terminateDownloadSequence" },
5332
  {  29, "initiateUploadSequence" },
5333
  {  30, "uploadSegment" },
5334
  {  31, "terminateUploadSequence" },
5335
  {  32, "requestDomainDownload" },
5336
  {  33, "requestDomainUpload" },
5337
  {  34, "loadDomainContent" },
5338
  {  35, "storeDomainContent" },
5339
  {  36, "deleteDomain" },
5340
  {  37, "getDomainAttributes" },
5341
  {  38, "createProgramInvocation" },
5342
  {  39, "deleteProgramInvocation" },
5343
  {  40, "start" },
5344
  {  41, "stop" },
5345
  {  42, "resume" },
5346
  {  43, "reset" },
5347
  {  44, "kill" },
5348
  {  45, "getProgramInvocationAttributes" },
5349
  {  46, "obtainFile" },
5350
  {  47, "defineEventCondition" },
5351
  {  48, "deleteEventCondition" },
5352
  {  49, "getEventConditionAttributes" },
5353
  {  50, "reportEventConditionStatus" },
5354
  {  51, "alterEventConditionMonitoring" },
5355
  {  52, "triggerEvent" },
5356
  {  53, "defineEventAction" },
5357
  {  54, "deleteEventAction" },
5358
  {  55, "getEventActionAttributes" },
5359
  {  56, "reportEventActionStatus" },
5360
  {  57, "defineEventEnrollment" },
5361
  {  58, "deleteEventEnrollment" },
5362
  {  59, "alterEventEnrollment" },
5363
  {  60, "reportEventEnrollmentStatus" },
5364
  {  61, "getEventEnrollmentAttributes" },
5365
  {  62, "acknowledgeEventNotification" },
5366
  {  63, "getAlarmSummary" },
5367
  {  64, "getAlarmEnrollmentSummary" },
5368
  {  65, "readJournal" },
5369
  {  66, "writeJournal" },
5370
  {  67, "initializeJournal" },
5371
  {  68, "reportJournalStatus" },
5372
  {  69, "createJournal" },
5373
  {  70, "deleteJournal" },
5374
  {  71, "getCapabilityList" },
5375
  {  72, "fileOpen" },
5376
  {  73, "fileRead" },
5377
  {  74, "fileClose" },
5378
  {  75, "fileRename" },
5379
  {  76, "fileDelete" },
5380
  {  77, "fileDirectory" },
5381
  { 0, NULL }
5382
};
5383
5384
static value_string_ext mms_ConfirmedServiceRequest_vals_ext = VALUE_STRING_EXT_INIT(mms_ConfirmedServiceRequest_vals);
5385
5386
static const ber_choice_t ConfirmedServiceRequest_choice[] = {
5387
  {   0, &hf_mms_status          , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Status_Request },
5388
  {   1, &hf_mms_getNameList     , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_GetNameList_Request },
5389
  {   2, &hf_mms_identify        , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Identify_Request },
5390
  {   3, &hf_mms_rename          , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_Rename_Request },
5391
  {   4, &hf_mms_read            , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_Read_Request },
5392
  {   5, &hf_mms_write           , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_Write_Request },
5393
  {   6, &hf_mms_getVariableAccessAttributes, BER_CLASS_CON, 6, 0, dissect_mms_GetVariableAccessAttributes_Request },
5394
  {   7, &hf_mms_defineNamedVariable, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_mms_DefineNamedVariable_Request },
5395
  {   8, &hf_mms_defineScatteredAccess, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_mms_DefineScatteredAccess_Request },
5396
  {   9, &hf_mms_getScatteredAccessAttributes, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_mms_GetScatteredAccessAttributes_Request },
5397
  {  10, &hf_mms_deleteVariableAccess, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_mms_DeleteVariableAccess_Request },
5398
  {  11, &hf_mms_defineNamedVariableList, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_mms_DefineNamedVariableList_Request },
5399
  {  12, &hf_mms_getNamedVariableListAttributes, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_mms_GetNamedVariableListAttributes_Request },
5400
  {  13, &hf_mms_deleteNamedVariableList, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_mms_DeleteNamedVariableList_Request },
5401
  {  14, &hf_mms_defineNamedType , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_mms_DefineNamedType_Request },
5402
  {  15, &hf_mms_getNamedTypeAttributes, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_mms_GetNamedTypeAttributes_Request },
5403
  {  16, &hf_mms_deleteNamedType , BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_mms_DeleteNamedType_Request },
5404
  {  17, &hf_mms_input           , BER_CLASS_CON, 17, BER_FLAGS_IMPLTAG, dissect_mms_Input_Request },
5405
  {  18, &hf_mms_output          , BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_mms_Output_Request },
5406
  {  19, &hf_mms_takeControl     , BER_CLASS_CON, 19, BER_FLAGS_IMPLTAG, dissect_mms_TakeControl_Request },
5407
  {  20, &hf_mms_relinquishControl, BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_mms_RelinquishControl_Request },
5408
  {  21, &hf_mms_defineSemaphore , BER_CLASS_CON, 21, BER_FLAGS_IMPLTAG, dissect_mms_DefineSemaphore_Request },
5409
  {  22, &hf_mms_deleteSemaphore , BER_CLASS_CON, 22, BER_FLAGS_IMPLTAG, dissect_mms_DeleteSemaphore_Request },
5410
  {  23, &hf_mms_reportSemaphoreStatus, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_mms_ReportSemaphoreStatus_Request },
5411
  {  24, &hf_mms_reportPoolSemaphoreStatus, BER_CLASS_CON, 24, BER_FLAGS_IMPLTAG, dissect_mms_ReportPoolSemaphoreStatus_Request },
5412
  {  25, &hf_mms_reportSemaphoreEntryStatus, BER_CLASS_CON, 25, BER_FLAGS_IMPLTAG, dissect_mms_ReportSemaphoreEntryStatus_Request },
5413
  {  26, &hf_mms_initiateDownloadSequence, BER_CLASS_CON, 26, BER_FLAGS_IMPLTAG, dissect_mms_InitiateDownloadSequence_Request },
5414
  {  27, &hf_mms_downloadSegment , BER_CLASS_CON, 27, BER_FLAGS_IMPLTAG, dissect_mms_DownloadSegment_Request },
5415
  {  28, &hf_mms_terminateDownloadSequence, BER_CLASS_CON, 28, BER_FLAGS_IMPLTAG, dissect_mms_TerminateDownloadSequence_Request },
5416
  {  29, &hf_mms_initiateUploadSequence, BER_CLASS_CON, 29, BER_FLAGS_IMPLTAG, dissect_mms_InitiateUploadSequence_Request },
5417
  {  30, &hf_mms_uploadSegment   , BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_mms_UploadSegment_Request },
5418
  {  31, &hf_mms_terminateUploadSequence, BER_CLASS_CON, 31, BER_FLAGS_IMPLTAG, dissect_mms_TerminateUploadSequence_Request },
5419
  {  32, &hf_mms_requestDomainDownload, BER_CLASS_CON, 32, BER_FLAGS_IMPLTAG, dissect_mms_RequestDomainDownload_Request },
5420
  {  33, &hf_mms_requestDomainUpload, BER_CLASS_CON, 33, BER_FLAGS_IMPLTAG, dissect_mms_RequestDomainUpload_Request },
5421
  {  34, &hf_mms_loadDomainContent, BER_CLASS_CON, 34, BER_FLAGS_IMPLTAG, dissect_mms_LoadDomainContent_Request },
5422
  {  35, &hf_mms_storeDomainContent, BER_CLASS_CON, 35, BER_FLAGS_IMPLTAG, dissect_mms_StoreDomainContent_Request },
5423
  {  36, &hf_mms_deleteDomain    , BER_CLASS_CON, 36, BER_FLAGS_IMPLTAG, dissect_mms_DeleteDomain_Request },
5424
  {  37, &hf_mms_getDomainAttributes, BER_CLASS_CON, 37, BER_FLAGS_IMPLTAG, dissect_mms_GetDomainAttributes_Request },
5425
  {  38, &hf_mms_createProgramInvocation, BER_CLASS_CON, 38, BER_FLAGS_IMPLTAG, dissect_mms_CreateProgramInvocation_Request },
5426
  {  39, &hf_mms_deleteProgramInvocation, BER_CLASS_CON, 39, BER_FLAGS_IMPLTAG, dissect_mms_DeleteProgramInvocation_Request },
5427
  {  40, &hf_mms_start           , BER_CLASS_CON, 40, BER_FLAGS_IMPLTAG, dissect_mms_Start_Request },
5428
  {  41, &hf_mms_stop            , BER_CLASS_CON, 41, BER_FLAGS_IMPLTAG, dissect_mms_Stop_Request },
5429
  {  42, &hf_mms_resume          , BER_CLASS_CON, 42, BER_FLAGS_IMPLTAG, dissect_mms_Resume_Request },
5430
  {  43, &hf_mms_reset           , BER_CLASS_CON, 43, BER_FLAGS_IMPLTAG, dissect_mms_Reset_Request },
5431
  {  44, &hf_mms_kill            , BER_CLASS_CON, 44, BER_FLAGS_IMPLTAG, dissect_mms_Kill_Request },
5432
  {  45, &hf_mms_getProgramInvocationAttributes, BER_CLASS_CON, 45, BER_FLAGS_IMPLTAG, dissect_mms_GetProgramInvocationAttributes_Request },
5433
  {  46, &hf_mms_obtainFile      , BER_CLASS_CON, 46, BER_FLAGS_IMPLTAG, dissect_mms_ObtainFile_Request },
5434
  {  47, &hf_mms_defineEventCondition, BER_CLASS_CON, 47, BER_FLAGS_IMPLTAG, dissect_mms_DefineEventCondition_Request },
5435
  {  48, &hf_mms_confirmedServiceRequest_deleteEventCondition, BER_CLASS_CON, 48, 0, dissect_mms_DeleteEventCondition_Request },
5436
  {  49, &hf_mms_getEventConditionAttributes, BER_CLASS_CON, 49, 0, dissect_mms_GetEventConditionAttributes_Request },
5437
  {  50, &hf_mms_reportEventConditionStatus, BER_CLASS_CON, 50, 0, dissect_mms_ReportEventConditionStatus_Request },
5438
  {  51, &hf_mms_alterEventConditionMonitoring, BER_CLASS_CON, 51, BER_FLAGS_IMPLTAG, dissect_mms_AlterEventConditionMonitoring_Request },
5439
  {  52, &hf_mms_triggerEvent    , BER_CLASS_CON, 52, BER_FLAGS_IMPLTAG, dissect_mms_TriggerEvent_Request },
5440
  {  53, &hf_mms_defineEventAction, BER_CLASS_CON, 53, BER_FLAGS_IMPLTAG, dissect_mms_DefineEventAction_Request },
5441
  {  54, &hf_mms_confirmedServiceRequest_deleteEventAction, BER_CLASS_CON, 54, 0, dissect_mms_DeleteEventAction_Request },
5442
  {  55, &hf_mms_getEventActionAttributes, BER_CLASS_CON, 55, 0, dissect_mms_GetEventActionAttributes_Request },
5443
  {  56, &hf_mms_reportEventActionStatus, BER_CLASS_CON, 56, 0, dissect_mms_ReportEventActionStatus_Request },
5444
  {  57, &hf_mms_defineEventEnrollment, BER_CLASS_CON, 57, BER_FLAGS_IMPLTAG, dissect_mms_DefineEventEnrollment_Request },
5445
  {  58, &hf_mms_confirmedServiceRequest_deleteEventEnrollment, BER_CLASS_CON, 58, 0, dissect_mms_DeleteEventEnrollment_Request },
5446
  {  59, &hf_mms_alterEventEnrollment, BER_CLASS_CON, 59, BER_FLAGS_IMPLTAG, dissect_mms_AlterEventEnrollment_Request },
5447
  {  60, &hf_mms_reportEventEnrollmentStatus, BER_CLASS_CON, 60, 0, dissect_mms_ReportEventEnrollmentStatus_Request },
5448
  {  61, &hf_mms_getEventEnrollmentAttributes, BER_CLASS_CON, 61, BER_FLAGS_IMPLTAG, dissect_mms_GetEventEnrollmentAttributes_Request },
5449
  {  62, &hf_mms_acknowledgeEventNotification, BER_CLASS_CON, 62, BER_FLAGS_IMPLTAG, dissect_mms_AcknowledgeEventNotification_Request },
5450
  {  63, &hf_mms_getAlarmSummary , BER_CLASS_CON, 63, BER_FLAGS_IMPLTAG, dissect_mms_GetAlarmSummary_Request },
5451
  {  64, &hf_mms_getAlarmEnrollmentSummary, BER_CLASS_CON, 64, BER_FLAGS_IMPLTAG, dissect_mms_GetAlarmEnrollmentSummary_Request },
5452
  {  65, &hf_mms_readJournal     , BER_CLASS_CON, 65, BER_FLAGS_IMPLTAG, dissect_mms_ReadJournal_Request },
5453
  {  66, &hf_mms_writeJournal    , BER_CLASS_CON, 66, BER_FLAGS_IMPLTAG, dissect_mms_WriteJournal_Request },
5454
  {  67, &hf_mms_initializeJournal, BER_CLASS_CON, 67, BER_FLAGS_IMPLTAG, dissect_mms_InitializeJournal_Request },
5455
  {  68, &hf_mms_reportJournalStatus, BER_CLASS_CON, 68, BER_FLAGS_IMPLTAG, dissect_mms_ReportJournalStatus_Request },
5456
  {  69, &hf_mms_createJournal   , BER_CLASS_CON, 69, BER_FLAGS_IMPLTAG, dissect_mms_CreateJournal_Request },
5457
  {  70, &hf_mms_deleteJournal   , BER_CLASS_CON, 70, BER_FLAGS_IMPLTAG, dissect_mms_DeleteJournal_Request },
5458
  {  71, &hf_mms_getCapabilityList, BER_CLASS_CON, 71, BER_FLAGS_IMPLTAG, dissect_mms_GetCapabilityList_Request },
5459
  {  72, &hf_mms_fileOpen        , BER_CLASS_CON, 72, BER_FLAGS_IMPLTAG, dissect_mms_FileOpen_Request },
5460
  {  73, &hf_mms_fileRead        , BER_CLASS_CON, 73, BER_FLAGS_IMPLTAG, dissect_mms_FileRead_Request },
5461
  {  74, &hf_mms_fileClose       , BER_CLASS_CON, 74, BER_FLAGS_IMPLTAG, dissect_mms_FileClose_Request },
5462
  {  75, &hf_mms_fileRename      , BER_CLASS_CON, 75, BER_FLAGS_IMPLTAG, dissect_mms_FileRename_Request },
5463
  {  76, &hf_mms_fileDelete      , BER_CLASS_CON, 76, BER_FLAGS_IMPLTAG, dissect_mms_FileDelete_Request },
5464
  {  77, &hf_mms_fileDirectory   , BER_CLASS_CON, 77, BER_FLAGS_IMPLTAG, dissect_mms_FileDirectory_Request },
5465
  { 0, NULL, 0, 0, 0, NULL }
5466
};
5467
5468
static unsigned
5469
341
dissect_mms_ConfirmedServiceRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5470
341
        int8_t   ber_class;
5471
341
        bool     pc;
5472
341
        int32_t  tag;
5473
5474
341
        get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
5475
341
        mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
5476
341
        if(mms_priv){
5477
341
            mms_priv->confirmedservice_type = tag;
5478
341
        }
5479
5480
341
  offset = dissect_ber_choice(actx, tree, tvb, offset,
5481
341
                                 ConfirmedServiceRequest_choice, hf_index, ett_mms_ConfirmedServiceRequest,
5482
341
                                 NULL);
5483
5484
5485
341
        if(mms_priv && mms_priv->mms_trans_p){
5486
5
            if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_GETNAMELIST){
5487
0
                if(mms_priv->objectclass == MMS_OBJECTCLASS_DOMAIN){
5488
0
                    if(mms_priv->objectscope == MMS_OBJECTSCOPE_VMDSPECIFIC){
5489
0
                        mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GET_SERV_DIR;
5490
0
                    }
5491
0
                }else if(mms_priv->objectclass == MMS_OBJECTCLASS_NAMMEDVARIABLE){
5492
0
                    mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GETLOGICALDEVICEDIRECTORY;
5493
0
                }else if(mms_priv->objectclass == MMS_OBJECTCLASS_NAMEDVARIABLELIST){
5494
0
                    mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY;
5495
0
                }
5496
5
            }else if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_GETNAMEDVARIABLELISTATTRIBUTES){
5497
1
                mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY;
5498
4
            }else if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_READ){
5499
0
                mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_READ;
5500
4
            }else if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_WRITE){
5501
2
                mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_WRITE;
5502
2
            }else if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_GETVARIABLEACCESSATTRIBUTES){
5503
0
                mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GETDATADIRECTORY;
5504
0
            }
5505
5
        }
5506
5507
5508
5509
341
  return offset;
5510
341
}
5511
5512
5513
static const value_string mms_CS_Request_Detail_vals[] = {
5514
  {   0, "foo" },
5515
  { 0, NULL }
5516
};
5517
5518
static const ber_choice_t CS_Request_Detail_choice[] = {
5519
  {   0, &hf_mms_foo             , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_mms_INTEGER },
5520
  { 0, NULL, 0, 0, 0, NULL }
5521
};
5522
5523
static unsigned
5524
0
dissect_mms_CS_Request_Detail(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5525
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
5526
0
                                 CS_Request_Detail_choice, hf_index, ett_mms_CS_Request_Detail,
5527
0
                                 NULL);
5528
5529
0
  return offset;
5530
0
}
5531
5532
5533
static const ber_sequence_t Confirmed_RequestPDU_sequence[] = {
5534
  { &hf_mms_invokeID        , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_mms_Unsigned32 },
5535
  { &hf_mms_listOfModifier  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_mms_SEQUENCE_OF_Modifier },
5536
  { &hf_mms_confirmedServiceRequest, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_ConfirmedServiceRequest },
5537
  { &hf_mms_cs_request_detail, BER_CLASS_CON, 79, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_CS_Request_Detail },
5538
  { NULL, 0, 0, 0, NULL }
5539
};
5540
5541
static unsigned
5542
387
dissect_mms_Confirmed_RequestPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5543
5544
387
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5545
387
                                   Confirmed_RequestPDU_sequence, hf_index, ett_mms_Confirmed_RequestPDU);
5546
5547
387
    mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
5548
387
    if(tree && mms_priv){
5549
82
        mms_priv->pdu_item = (proto_item*)tree->last_child;
5550
82
    }
5551
5552
5553
387
  return offset;
5554
387
}
5555
5556
5557
static const value_string mms_T_vmdLogicalStatus_vals[] = {
5558
  {   0, "state-changes-allowed" },
5559
  {   1, "no-state-changes-allowed" },
5560
  {   2, "limited-services-allowed" },
5561
  {   3, "support-services-allowed" },
5562
  { 0, NULL }
5563
};
5564
5565
5566
static unsigned
5567
0
dissect_mms_T_vmdLogicalStatus(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5568
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5569
0
                                                NULL);
5570
5571
0
  return offset;
5572
0
}
5573
5574
5575
static const value_string mms_T_vmdPhysicalStatus_vals[] = {
5576
  {   0, "operational" },
5577
  {   1, "partially-operational" },
5578
  {   2, "inoperable" },
5579
  {   3, "needs-commissioning" },
5580
  { 0, NULL }
5581
};
5582
5583
5584
static unsigned
5585
0
dissect_mms_T_vmdPhysicalStatus(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5586
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5587
0
                                                NULL);
5588
5589
0
  return offset;
5590
0
}
5591
5592
5593
5594
static unsigned
5595
0
dissect_mms_BIT_STRING_SIZE_0_128(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5596
0
  offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
5597
0
                                                0, 128, NULL, 0, hf_index, -1,
5598
0
                                                NULL);
5599
5600
0
  return offset;
5601
0
}
5602
5603
5604
static const ber_sequence_t Status_Response_sequence[] = {
5605
  { &hf_mms_vmdLogicalStatus, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_vmdLogicalStatus },
5606
  { &hf_mms_vmdPhysicalStatus, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_vmdPhysicalStatus },
5607
  { &hf_mms_localDetail     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BIT_STRING_SIZE_0_128 },
5608
  { NULL, 0, 0, 0, NULL }
5609
};
5610
5611
static unsigned
5612
12
dissect_mms_Status_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5613
12
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5614
12
                                   Status_Response_sequence, hf_index, ett_mms_Status_Response);
5615
5616
12
  return offset;
5617
12
}
5618
5619
5620
static const ber_sequence_t GetNameList_Response_sequence[] = {
5621
  { &hf_mms_listOfIdentifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_Identifier },
5622
  { &hf_mms_moreFollows     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
5623
  { NULL, 0, 0, 0, NULL }
5624
};
5625
5626
static unsigned
5627
7
dissect_mms_GetNameList_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5628
7
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5629
7
                                   GetNameList_Response_sequence, hf_index, ett_mms_GetNameList_Response);
5630
5631
7
  return offset;
5632
7
}
5633
5634
5635
static const ber_sequence_t T_listOfAbstractSyntaxes_sequence_of[1] = {
5636
  { &hf_mms_listOfAbstractSyntaxes_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_mms_OBJECT_IDENTIFIER },
5637
};
5638
5639
static unsigned
5640
0
dissect_mms_T_listOfAbstractSyntaxes(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5641
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5642
0
                                      T_listOfAbstractSyntaxes_sequence_of, hf_index, ett_mms_T_listOfAbstractSyntaxes);
5643
5644
0
  return offset;
5645
0
}
5646
5647
5648
static const ber_sequence_t Identify_Response_sequence[] = {
5649
  { &hf_mms_vendorName      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_VisibleString },
5650
  { &hf_mms_modelName       , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_VisibleString },
5651
  { &hf_mms_revision        , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_VisibleString },
5652
  { &hf_mms_listOfAbstractSyntaxes, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_listOfAbstractSyntaxes },
5653
  { NULL, 0, 0, 0, NULL }
5654
};
5655
5656
static unsigned
5657
1
dissect_mms_Identify_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5658
1
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5659
1
                                   Identify_Response_sequence, hf_index, ett_mms_Identify_Response);
5660
5661
1
  return offset;
5662
1
}
5663
5664
5665
5666
static unsigned
5667
1
dissect_mms_Rename_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5668
1
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5669
5670
1
  return offset;
5671
1
}
5672
5673
5674
static const value_string mms_DataAccessError_vals[] = {
5675
  {   0, "object-invalidated" },
5676
  {   1, "hardware-fault" },
5677
  {   2, "temporarily-unavailable" },
5678
  {   3, "object-access-denied" },
5679
  {   4, "object-undefined" },
5680
  {   5, "invalid-address" },
5681
  {   6, "type-unsupported" },
5682
  {   7, "type-inconsistent" },
5683
  {   8, "object-attribute-inconsistent" },
5684
  {   9, "object-access-unsupported" },
5685
  {  10, "object-non-existent" },
5686
  {  11, "object-value-invalid" },
5687
  { 0, NULL }
5688
};
5689
5690
5691
static unsigned
5692
0
dissect_mms_DataAccessError(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5693
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5694
0
                                                NULL);
5695
5696
0
  return offset;
5697
0
}
5698
5699
5700
static const value_string mms_AccessResult_vals[] = {
5701
  {   0, "failure" },
5702
  {   1, "success" },
5703
  { 0, NULL }
5704
};
5705
5706
static const ber_choice_t AccessResult_choice[] = {
5707
  {   0, &hf_mms_failure         , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_DataAccessError },
5708
  {   1, &hf_mms_success_01      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_mms_Data },
5709
  { 0, NULL, 0, 0, 0, NULL }
5710
};
5711
5712
static unsigned
5713
0
dissect_mms_AccessResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5714
0
    int branch_taken;
5715
0
    mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
5716
0
    if(mms_priv){
5717
        /* If listOfAccessResult_cnt > 2 we are into the optional data.
5718
         * if data is not present increase count.
5719
         */
5720
0
        bool present;
5721
0
        do {
5722
0
            mms_priv->listOfAccessResult_cnt+=1;
5723
0
            present = true;
5724
0
            switch(mms_priv->listOfAccessResult_cnt){
5725
0
            case 1: /*RptID*/
5726
0
                break;
5727
0
            case 2: /* Reported OptFlds */
5728
0
                break;
5729
0
            case 3: /* SeqNum Shall be present if OptFlds.sequence-number is true */
5730
0
                if((mms_priv->reported_optflds & 0x4000) != 0x4000){
5731
0
                    present = false;
5732
0
                }
5733
0
                break;
5734
0
            case 4: /*TimeOfEntry Shall be present if OptFlds.report-time-stamp is true */
5735
0
                if((mms_priv->reported_optflds & 0x2000) != 0x2000){
5736
0
                    present = false;
5737
0
                }
5738
0
                break;
5739
0
            case 5: /*DatSet Shall be present if OptFlds.data-set-name is true */
5740
0
                if((mms_priv->reported_optflds & 0x0800) !=0x0800){
5741
0
                    present = false;
5742
0
                }
5743
0
                break;
5744
0
            case 6: /*BufOvfl Shall be present if OptFlds.buffer-overflow is true */
5745
0
                if((mms_priv->reported_optflds & 0x0200) !=0x0200){
5746
0
                    present = false;
5747
0
                }
5748
0
                break;
5749
0
            case 7: /*EntryID Shall be present if OptFlds.entryID is true */
5750
0
                if((mms_priv->reported_optflds & 0x0100) !=0x0100){
5751
0
                    present = false;
5752
0
                }
5753
0
                break;
5754
0
            case 8: /*ConfRev Shall be present if OptFlds.conf-rev is true */
5755
0
                if((mms_priv->reported_optflds & 0x0080) !=0x0080){
5756
0
                    present = false;
5757
0
                }
5758
0
                break;
5759
0
            case 9: /*SubSeqNum Shall be present if OptFlds.segmentation is true */
5760
0
                if((mms_priv->reported_optflds & 0x0040) !=0x0040){
5761
0
                    present = false;
5762
0
                }
5763
0
                break;
5764
0
            case 10: /*MoreSegmentsFollow Shall be present if OptFlds.segmentation is true */
5765
0
                if((mms_priv->reported_optflds & 0x0040) !=0x0040){
5766
0
                    present = false;
5767
0
                }
5768
0
                break;
5769
0
            case 11: /*Inclusion-bitstring Shall be present */
5770
0
                break;
5771
0
            case 12: /*data-reference(s) Shall be present if OptFlds.data-reference is true */
5772
0
                if((mms_priv->reported_optflds & 0x0400) !=0x0400){
5773
0
                    present = false;
5774
0
                }
5775
0
                break;
5776
0
            case 13: /*value(s) See AccessResult for value(s) */
5777
0
                break;
5778
0
            case 14: /*ReasonCode(s) Shall be present if OptFlds OptFlds.reason-for-inclusion is true */
5779
0
                if((mms_priv->reported_optflds & 0x1000) !=0x1000){
5780
0
                    present = false;
5781
0
                }
5782
0
                break;
5783
0
            default:
5784
0
                break;
5785
0
            }
5786
0
         } while(!present);
5787
0
    }
5788
5789
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
5790
0
                                 AccessResult_choice, hf_index, ett_mms_AccessResult,
5791
0
                                 &branch_taken);
5792
5793
0
    if(mms_priv){
5794
0
        mms_priv->success = branch_taken;
5795
0
    }
5796
5797
5798
0
  return offset;
5799
0
}
5800
5801
5802
static const ber_sequence_t SEQUENCE_OF_AccessResult_sequence_of[1] = {
5803
  { &hf_mms_listOfAccessResult_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_AccessResult },
5804
};
5805
5806
static unsigned
5807
0
dissect_mms_SEQUENCE_OF_AccessResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5808
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5809
0
                                      SEQUENCE_OF_AccessResult_sequence_of, hf_index, ett_mms_SEQUENCE_OF_AccessResult);
5810
5811
0
  return offset;
5812
0
}
5813
5814
5815
static const ber_sequence_t Read_Response_sequence[] = {
5816
  { &hf_mms_variableAccessSpecification, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_VariableAccessSpecification },
5817
  { &hf_mms_listOfAccessResult, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_AccessResult },
5818
  { NULL, 0, 0, 0, NULL }
5819
};
5820
5821
static unsigned
5822
3
dissect_mms_Read_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5823
3
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5824
3
                                   Read_Response_sequence, hf_index, ett_mms_Read_Response);
5825
5826
3
  return offset;
5827
3
}
5828
5829
5830
static const value_string mms_Write_Response_item_vals[] = {
5831
  {   0, "failure" },
5832
  {   1, "success" },
5833
  { 0, NULL }
5834
};
5835
5836
static const ber_choice_t Write_Response_item_choice[] = {
5837
  {   0, &hf_mms_failure         , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_DataAccessError },
5838
  {   1, &hf_mms_success         , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
5839
  { 0, NULL, 0, 0, 0, NULL }
5840
};
5841
5842
static unsigned
5843
1
dissect_mms_Write_Response_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5844
1
  offset = dissect_ber_choice(actx, tree, tvb, offset,
5845
1
                                 Write_Response_item_choice, hf_index, ett_mms_Write_Response_item,
5846
1
                                 NULL);
5847
5848
1
  return offset;
5849
1
}
5850
5851
5852
static const ber_sequence_t Write_Response_sequence_of[1] = {
5853
  { &hf_mms_Write_Response_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_Write_Response_item },
5854
};
5855
5856
static unsigned
5857
1
dissect_mms_Write_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5858
1
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5859
1
                                      Write_Response_sequence_of, hf_index, ett_mms_Write_Response);
5860
5861
1
  return offset;
5862
1
}
5863
5864
5865
static const ber_sequence_t GetVariableAccessAttributes_Response_sequence[] = {
5866
  { &hf_mms_mmsDeletable    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
5867
  { &hf_mms_address         , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_Address },
5868
  { &hf_mms_typeSpecification, BER_CLASS_CON, 2, BER_FLAGS_NOTCHKTAG, dissect_mms_TypeSpecification },
5869
  { NULL, 0, 0, 0, NULL }
5870
};
5871
5872
static unsigned
5873
1
dissect_mms_GetVariableAccessAttributes_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5874
1
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5875
1
                                   GetVariableAccessAttributes_Response_sequence, hf_index, ett_mms_GetVariableAccessAttributes_Response);
5876
5877
1
  return offset;
5878
1
}
5879
5880
5881
5882
static unsigned
5883
0
dissect_mms_DefineNamedVariable_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5884
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5885
5886
0
  return offset;
5887
0
}
5888
5889
5890
5891
static unsigned
5892
14
dissect_mms_DefineScatteredAccess_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5893
14
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5894
5895
14
  return offset;
5896
14
}
5897
5898
5899
static const ber_sequence_t GetScatteredAccessAttributes_Response_sequence[] = {
5900
  { &hf_mms_mmsDeletable    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
5901
  { &hf_mms_scatteredAccessDescription, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_ScatteredAccessDescription },
5902
  { NULL, 0, 0, 0, NULL }
5903
};
5904
5905
static unsigned
5906
10
dissect_mms_GetScatteredAccessAttributes_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5907
10
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5908
10
                                   GetScatteredAccessAttributes_Response_sequence, hf_index, ett_mms_GetScatteredAccessAttributes_Response);
5909
5910
10
  return offset;
5911
10
}
5912
5913
5914
static const ber_sequence_t DeleteVariableAccess_Response_sequence[] = {
5915
  { &hf_mms_numberMatched   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
5916
  { &hf_mms_numberDeleted   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
5917
  { NULL, 0, 0, 0, NULL }
5918
};
5919
5920
static unsigned
5921
3
dissect_mms_DeleteVariableAccess_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5922
3
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5923
3
                                   DeleteVariableAccess_Response_sequence, hf_index, ett_mms_DeleteVariableAccess_Response);
5924
5925
3
  return offset;
5926
3
}
5927
5928
5929
5930
static unsigned
5931
1
dissect_mms_DefineNamedVariableList_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5932
1
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
5933
5934
1
  return offset;
5935
1
}
5936
5937
5938
static const ber_sequence_t T_listOfVariable_item_01_sequence[] = {
5939
  { &hf_mms_variableSpecification, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_VariableSpecification },
5940
  { &hf_mms_alternateAccess , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_AlternateAccess },
5941
  { NULL, 0, 0, 0, NULL }
5942
};
5943
5944
static unsigned
5945
0
dissect_mms_T_listOfVariable_item_01(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5946
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5947
0
                                   T_listOfVariable_item_01_sequence, hf_index, ett_mms_T_listOfVariable_item_01);
5948
5949
0
  return offset;
5950
0
}
5951
5952
5953
static const ber_sequence_t T_listOfVariable_01_sequence_of[1] = {
5954
  { &hf_mms_listOfVariable_item_01, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mms_T_listOfVariable_item_01 },
5955
};
5956
5957
static unsigned
5958
0
dissect_mms_T_listOfVariable_01(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5959
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5960
0
                                      T_listOfVariable_01_sequence_of, hf_index, ett_mms_T_listOfVariable_01);
5961
5962
0
  return offset;
5963
0
}
5964
5965
5966
static const ber_sequence_t GetNamedVariableListAttributes_Response_sequence[] = {
5967
  { &hf_mms_mmsDeletable    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
5968
  { &hf_mms_listOfVariable_01, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_listOfVariable_01 },
5969
  { NULL, 0, 0, 0, NULL }
5970
};
5971
5972
static unsigned
5973
15
dissect_mms_GetNamedVariableListAttributes_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5974
15
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5975
15
                                   GetNamedVariableListAttributes_Response_sequence, hf_index, ett_mms_GetNamedVariableListAttributes_Response);
5976
5977
15
  return offset;
5978
15
}
5979
5980
5981
static const ber_sequence_t DeleteNamedVariableList_Response_sequence[] = {
5982
  { &hf_mms_numberMatched   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
5983
  { &hf_mms_numberDeleted   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
5984
  { NULL, 0, 0, 0, NULL }
5985
};
5986
5987
static unsigned
5988
0
dissect_mms_DeleteNamedVariableList_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5989
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5990
0
                                   DeleteNamedVariableList_Response_sequence, hf_index, ett_mms_DeleteNamedVariableList_Response);
5991
5992
0
  return offset;
5993
0
}
5994
5995
5996
5997
static unsigned
5998
3
dissect_mms_DefineNamedType_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5999
3
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6000
6001
3
  return offset;
6002
3
}
6003
6004
6005
static const ber_sequence_t GetNamedTypeAttributes_Response_sequence[] = {
6006
  { &hf_mms_mmsDeletable    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
6007
  { &hf_mms_typeSpecification, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_TypeSpecification },
6008
  { NULL, 0, 0, 0, NULL }
6009
};
6010
6011
static unsigned
6012
3
dissect_mms_GetNamedTypeAttributes_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6013
3
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6014
3
                                   GetNamedTypeAttributes_Response_sequence, hf_index, ett_mms_GetNamedTypeAttributes_Response);
6015
6016
3
  return offset;
6017
3
}
6018
6019
6020
static const ber_sequence_t DeleteNamedType_Response_sequence[] = {
6021
  { &hf_mms_numberMatched   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
6022
  { &hf_mms_numberDeleted   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
6023
  { NULL, 0, 0, 0, NULL }
6024
};
6025
6026
static unsigned
6027
11
dissect_mms_DeleteNamedType_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6028
11
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6029
11
                                   DeleteNamedType_Response_sequence, hf_index, ett_mms_DeleteNamedType_Response);
6030
6031
11
  return offset;
6032
11
}
6033
6034
6035
6036
static unsigned
6037
5
dissect_mms_Input_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6038
5
  offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_VisibleString,
6039
5
                                            actx, tree, tvb, offset, hf_index,
6040
5
                                            NULL);
6041
6042
5
  return offset;
6043
5
}
6044
6045
6046
6047
static unsigned
6048
0
dissect_mms_Output_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6049
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6050
6051
0
  return offset;
6052
0
}
6053
6054
6055
static const value_string mms_TakeControl_Response_vals[] = {
6056
  {   0, "noResult" },
6057
  {   1, "namedToken" },
6058
  { 0, NULL }
6059
};
6060
6061
static const ber_choice_t TakeControl_Response_choice[] = {
6062
  {   0, &hf_mms_noResult        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
6063
  {   1, &hf_mms_namedToken      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
6064
  { 0, NULL, 0, 0, 0, NULL }
6065
};
6066
6067
static unsigned
6068
1
dissect_mms_TakeControl_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6069
1
  offset = dissect_ber_choice(actx, tree, tvb, offset,
6070
1
                                 TakeControl_Response_choice, hf_index, ett_mms_TakeControl_Response,
6071
1
                                 NULL);
6072
6073
1
  return offset;
6074
1
}
6075
6076
6077
6078
static unsigned
6079
3
dissect_mms_RelinquishControl_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6080
3
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6081
6082
3
  return offset;
6083
3
}
6084
6085
6086
6087
static unsigned
6088
1
dissect_mms_DefineSemaphore_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6089
1
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6090
6091
1
  return offset;
6092
1
}
6093
6094
6095
6096
static unsigned
6097
0
dissect_mms_DeleteSemaphore_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6098
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6099
6100
0
  return offset;
6101
0
}
6102
6103
6104
static const value_string mms_T_class_vals[] = {
6105
  {   0, "token" },
6106
  {   1, "pool" },
6107
  { 0, NULL }
6108
};
6109
6110
6111
static unsigned
6112
0
dissect_mms_T_class(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6113
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6114
0
                                                NULL);
6115
6116
0
  return offset;
6117
0
}
6118
6119
6120
static const ber_sequence_t ReportSemaphoreStatus_Response_sequence[] = {
6121
  { &hf_mms_mmsDeletable    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
6122
  { &hf_mms_class           , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_class },
6123
  { &hf_mms_numberOfTokens  , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned16 },
6124
  { &hf_mms_numberOfOwnedTokens, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned16 },
6125
  { &hf_mms_numberOfHungTokens, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned16 },
6126
  { NULL, 0, 0, 0, NULL }
6127
};
6128
6129
static unsigned
6130
1
dissect_mms_ReportSemaphoreStatus_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6131
1
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6132
1
                                   ReportSemaphoreStatus_Response_sequence, hf_index, ett_mms_ReportSemaphoreStatus_Response);
6133
6134
1
  return offset;
6135
1
}
6136
6137
6138
static const value_string mms_T_listOfNamedTokens_item_vals[] = {
6139
  {   0, "freeNamedToken" },
6140
  {   1, "ownedNamedToken" },
6141
  {   2, "hungNamedToken" },
6142
  { 0, NULL }
6143
};
6144
6145
static const ber_choice_t T_listOfNamedTokens_item_choice[] = {
6146
  {   0, &hf_mms_freeNamedToken  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
6147
  {   1, &hf_mms_ownedNamedToken , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
6148
  {   2, &hf_mms_hungNamedToken  , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
6149
  { 0, NULL, 0, 0, 0, NULL }
6150
};
6151
6152
static unsigned
6153
0
dissect_mms_T_listOfNamedTokens_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6154
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
6155
0
                                 T_listOfNamedTokens_item_choice, hf_index, ett_mms_T_listOfNamedTokens_item,
6156
0
                                 NULL);
6157
6158
0
  return offset;
6159
0
}
6160
6161
6162
static const ber_sequence_t T_listOfNamedTokens_sequence_of[1] = {
6163
  { &hf_mms_listOfNamedTokens_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_T_listOfNamedTokens_item },
6164
};
6165
6166
static unsigned
6167
0
dissect_mms_T_listOfNamedTokens(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6168
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6169
0
                                      T_listOfNamedTokens_sequence_of, hf_index, ett_mms_T_listOfNamedTokens);
6170
6171
0
  return offset;
6172
0
}
6173
6174
6175
static const ber_sequence_t ReportPoolSemaphoreStatus_Response_sequence[] = {
6176
  { &hf_mms_listOfNamedTokens, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_listOfNamedTokens },
6177
  { &hf_mms_moreFollows     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
6178
  { NULL, 0, 0, 0, NULL }
6179
};
6180
6181
static unsigned
6182
0
dissect_mms_ReportPoolSemaphoreStatus_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6183
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6184
0
                                   ReportPoolSemaphoreStatus_Response_sequence, hf_index, ett_mms_ReportPoolSemaphoreStatus_Response);
6185
6186
0
  return offset;
6187
0
}
6188
6189
6190
static const value_string mms_T_entryClass_vals[] = {
6191
  {   0, "simple" },
6192
  {   1, "modifier" },
6193
  { 0, NULL }
6194
};
6195
6196
6197
static unsigned
6198
0
dissect_mms_T_entryClass(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6199
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6200
0
                                                NULL);
6201
6202
0
  return offset;
6203
0
}
6204
6205
6206
static const ber_sequence_t SemaphoreEntry_sequence[] = {
6207
  { &hf_mms_entryId         , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_OCTET_STRING },
6208
  { &hf_mms_entryClass      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_entryClass },
6209
  { &hf_mms_applicationReference, BER_CLASS_CON, 2, 0, dissect_mms_ApplicationReference },
6210
  { &hf_mms_namedToken      , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
6211
  { &hf_mms_priority        , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Priority },
6212
  { &hf_mms_remainingTimeOut, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
6213
  { &hf_mms_abortOnTimeOut  , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
6214
  { &hf_mms_relinquishIfConnectionLost, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
6215
  { NULL, 0, 0, 0, NULL }
6216
};
6217
6218
static unsigned
6219
0
dissect_mms_SemaphoreEntry(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6220
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6221
0
                                   SemaphoreEntry_sequence, hf_index, ett_mms_SemaphoreEntry);
6222
6223
0
  return offset;
6224
0
}
6225
6226
6227
static const ber_sequence_t SEQUENCE_OF_SemaphoreEntry_sequence_of[1] = {
6228
  { &hf_mms_listOfSemaphoreEntry_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mms_SemaphoreEntry },
6229
};
6230
6231
static unsigned
6232
0
dissect_mms_SEQUENCE_OF_SemaphoreEntry(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6233
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6234
0
                                      SEQUENCE_OF_SemaphoreEntry_sequence_of, hf_index, ett_mms_SEQUENCE_OF_SemaphoreEntry);
6235
6236
0
  return offset;
6237
0
}
6238
6239
6240
static const ber_sequence_t ReportSemaphoreEntryStatus_Response_sequence[] = {
6241
  { &hf_mms_listOfSemaphoreEntry, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_SemaphoreEntry },
6242
  { &hf_mms_moreFollows     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
6243
  { NULL, 0, 0, 0, NULL }
6244
};
6245
6246
static unsigned
6247
15
dissect_mms_ReportSemaphoreEntryStatus_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6248
15
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6249
15
                                   ReportSemaphoreEntryStatus_Response_sequence, hf_index, ett_mms_ReportSemaphoreEntryStatus_Response);
6250
6251
15
  return offset;
6252
15
}
6253
6254
6255
6256
static unsigned
6257
1
dissect_mms_InitiateDownloadSequence_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6258
1
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6259
6260
1
  return offset;
6261
1
}
6262
6263
6264
static const value_string mms_T_loadData_vals[] = {
6265
  {   0, "non-coded" },
6266
  {   1, "coded" },
6267
  { 0, NULL }
6268
};
6269
6270
static const ber_choice_t T_loadData_choice[] = {
6271
  {   0, &hf_mms_non_coded       , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_OCTET_STRING },
6272
  {   1, &hf_mms_coded           , BER_CLASS_UNI, 8, BER_FLAGS_NOOWNTAG, dissect_acse_EXTERNALt },
6273
  { 0, NULL, 0, 0, 0, NULL }
6274
};
6275
6276
static unsigned
6277
2
dissect_mms_T_loadData(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6278
2
  offset = dissect_ber_choice(actx, tree, tvb, offset,
6279
2
                                 T_loadData_choice, hf_index, ett_mms_T_loadData,
6280
2
                                 NULL);
6281
6282
2
  return offset;
6283
2
}
6284
6285
6286
static const ber_sequence_t DownloadSegment_Response_sequence[] = {
6287
  { &hf_mms_loadData        , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_T_loadData },
6288
  { &hf_mms_moreFollows     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
6289
  { NULL, 0, 0, 0, NULL }
6290
};
6291
6292
static unsigned
6293
2
dissect_mms_DownloadSegment_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6294
2
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6295
2
                                   DownloadSegment_Response_sequence, hf_index, ett_mms_DownloadSegment_Response);
6296
6297
2
  return offset;
6298
2
}
6299
6300
6301
6302
static unsigned
6303
0
dissect_mms_TerminateDownloadSequence_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6304
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6305
6306
0
  return offset;
6307
0
}
6308
6309
6310
static const ber_sequence_t T_listOfCapabilities_02_sequence_of[1] = {
6311
  { &hf_mms_listOfCapabilities_item, BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_VisibleString },
6312
};
6313
6314
static unsigned
6315
0
dissect_mms_T_listOfCapabilities_02(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6316
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6317
0
                                      T_listOfCapabilities_02_sequence_of, hf_index, ett_mms_T_listOfCapabilities_02);
6318
6319
0
  return offset;
6320
0
}
6321
6322
6323
static const ber_sequence_t InitiateUploadSequence_Response_sequence[] = {
6324
  { &hf_mms_ulsmID          , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Integer32 },
6325
  { &hf_mms_listOfCapabilities_02, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_listOfCapabilities_02 },
6326
  { NULL, 0, 0, 0, NULL }
6327
};
6328
6329
static unsigned
6330
0
dissect_mms_InitiateUploadSequence_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6331
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6332
0
                                   InitiateUploadSequence_Response_sequence, hf_index, ett_mms_InitiateUploadSequence_Response);
6333
6334
0
  return offset;
6335
0
}
6336
6337
6338
static const value_string mms_T_loadData_01_vals[] = {
6339
  {   0, "non-coded" },
6340
  {   1, "coded" },
6341
  { 0, NULL }
6342
};
6343
6344
static const ber_choice_t T_loadData_01_choice[] = {
6345
  {   0, &hf_mms_non_coded       , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_OCTET_STRING },
6346
  {   1, &hf_mms_coded           , BER_CLASS_UNI, 8, BER_FLAGS_NOOWNTAG, dissect_acse_EXTERNALt },
6347
  { 0, NULL, 0, 0, 0, NULL }
6348
};
6349
6350
static unsigned
6351
2
dissect_mms_T_loadData_01(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6352
2
  offset = dissect_ber_choice(actx, tree, tvb, offset,
6353
2
                                 T_loadData_01_choice, hf_index, ett_mms_T_loadData_01,
6354
2
                                 NULL);
6355
6356
2
  return offset;
6357
2
}
6358
6359
6360
static const ber_sequence_t UploadSegment_Response_sequence[] = {
6361
  { &hf_mms_loadData_01     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_T_loadData_01 },
6362
  { &hf_mms_moreFollows     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
6363
  { NULL, 0, 0, 0, NULL }
6364
};
6365
6366
static unsigned
6367
2
dissect_mms_UploadSegment_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6368
2
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6369
2
                                   UploadSegment_Response_sequence, hf_index, ett_mms_UploadSegment_Response);
6370
6371
2
  return offset;
6372
2
}
6373
6374
6375
6376
static unsigned
6377
0
dissect_mms_TerminateUploadSequence_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6378
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6379
6380
0
  return offset;
6381
0
}
6382
6383
6384
6385
static unsigned
6386
0
dissect_mms_RequestDomainDownload_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6387
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6388
6389
0
  return offset;
6390
0
}
6391
6392
6393
6394
static unsigned
6395
0
dissect_mms_RequestDomainUpload_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6396
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6397
6398
0
  return offset;
6399
0
}
6400
6401
6402
6403
static unsigned
6404
2
dissect_mms_LoadDomainContent_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6405
2
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6406
6407
2
  return offset;
6408
2
}
6409
6410
6411
6412
static unsigned
6413
45
dissect_mms_StoreDomainContent_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6414
45
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6415
6416
45
  return offset;
6417
45
}
6418
6419
6420
6421
static unsigned
6422
0
dissect_mms_DeleteDomain_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6423
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6424
6425
0
  return offset;
6426
0
}
6427
6428
6429
static const ber_sequence_t T_listOfCapabilities_05_sequence_of[1] = {
6430
  { &hf_mms_listOfCapabilities_item, BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_VisibleString },
6431
};
6432
6433
static unsigned
6434
0
dissect_mms_T_listOfCapabilities_05(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6435
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6436
0
                                      T_listOfCapabilities_05_sequence_of, hf_index, ett_mms_T_listOfCapabilities_05);
6437
6438
0
  return offset;
6439
0
}
6440
6441
6442
static const value_string mms_DomainState_vals[] = {
6443
  {   0, "non-existent" },
6444
  {   1, "loading" },
6445
  {   2, "ready" },
6446
  {   3, "in-use" },
6447
  {   4, "complete" },
6448
  {   5, "incomplete" },
6449
  {   7, "d1" },
6450
  {   8, "d2" },
6451
  {   9, "d3" },
6452
  {  10, "d4" },
6453
  {  11, "d5" },
6454
  {  12, "d6" },
6455
  {  13, "d7" },
6456
  {  14, "d8" },
6457
  {  15, "d9" },
6458
  { 0, NULL }
6459
};
6460
6461
6462
static unsigned
6463
0
dissect_mms_DomainState(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6464
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6465
0
                                                NULL);
6466
6467
0
  return offset;
6468
0
}
6469
6470
6471
6472
static unsigned
6473
0
dissect_mms_Integer8(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6474
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6475
0
                                                NULL);
6476
6477
0
  return offset;
6478
0
}
6479
6480
6481
static const ber_sequence_t GetDomainAttributes_Response_sequence[] = {
6482
  { &hf_mms_listOfCapabilities_05, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_listOfCapabilities_05 },
6483
  { &hf_mms_getDomainAttributes_Response_state, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_DomainState },
6484
  { &hf_mms_mmsDeletable    , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
6485
  { &hf_mms_sharable        , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
6486
  { &hf_mms_listOfProgramInvocations, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_Identifier },
6487
  { &hf_mms_uploadInProgress, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_Integer8 },
6488
  { NULL, 0, 0, 0, NULL }
6489
};
6490
6491
static unsigned
6492
0
dissect_mms_GetDomainAttributes_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6493
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6494
0
                                   GetDomainAttributes_Response_sequence, hf_index, ett_mms_GetDomainAttributes_Response);
6495
6496
0
  return offset;
6497
0
}
6498
6499
6500
6501
static unsigned
6502
0
dissect_mms_CreateProgramInvocation_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6503
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6504
6505
0
  return offset;
6506
0
}
6507
6508
6509
6510
static unsigned
6511
9
dissect_mms_DeleteProgramInvocation_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6512
9
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6513
6514
9
  return offset;
6515
9
}
6516
6517
6518
6519
static unsigned
6520
0
dissect_mms_Start_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6521
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6522
6523
0
  return offset;
6524
0
}
6525
6526
6527
6528
static unsigned
6529
0
dissect_mms_Stop_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6530
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6531
6532
0
  return offset;
6533
0
}
6534
6535
6536
6537
static unsigned
6538
7
dissect_mms_Resume_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6539
7
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6540
6541
7
  return offset;
6542
7
}
6543
6544
6545
6546
static unsigned
6547
2
dissect_mms_Reset_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6548
2
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6549
6550
2
  return offset;
6551
2
}
6552
6553
6554
6555
static unsigned
6556
0
dissect_mms_Kill_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6557
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6558
6559
0
  return offset;
6560
0
}
6561
6562
6563
static const value_string mms_T_executionArgument_02_vals[] = {
6564
  {   0, "simpleString" },
6565
  {   1, "encodedString" },
6566
  { 0, NULL }
6567
};
6568
6569
static const ber_choice_t T_executionArgument_02_choice[] = {
6570
  {   0, &hf_mms_simpleString    , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_VisibleString },
6571
  {   1, &hf_mms_encodedString   , BER_CLASS_UNI, 8, BER_FLAGS_NOOWNTAG, dissect_acse_EXTERNALt },
6572
  { 0, NULL, 0, 0, 0, NULL }
6573
};
6574
6575
static unsigned
6576
0
dissect_mms_T_executionArgument_02(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6577
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
6578
0
                                 T_executionArgument_02_choice, hf_index, ett_mms_T_executionArgument_02,
6579
0
                                 NULL);
6580
6581
0
  return offset;
6582
0
}
6583
6584
6585
static const ber_sequence_t GetProgramInvocationAttributes_Response_sequence[] = {
6586
  { &hf_mms_getProgramInvocationAttributes_Response_state, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_ProgramInvocationState },
6587
  { &hf_mms_listOfDomainNames, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_Identifier },
6588
  { &hf_mms_mmsDeletable    , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
6589
  { &hf_mms_reusable        , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
6590
  { &hf_mms_monitor         , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
6591
  { &hf_mms_startArgument   , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_VisibleString },
6592
  { &hf_mms_executionArgument_02, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_T_executionArgument_02 },
6593
  { NULL, 0, 0, 0, NULL }
6594
};
6595
6596
static unsigned
6597
0
dissect_mms_GetProgramInvocationAttributes_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6598
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6599
0
                                   GetProgramInvocationAttributes_Response_sequence, hf_index, ett_mms_GetProgramInvocationAttributes_Response);
6600
6601
0
  return offset;
6602
0
}
6603
6604
6605
6606
static unsigned
6607
5
dissect_mms_ObtainFile_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6608
5
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6609
6610
5
  return offset;
6611
5
}
6612
6613
6614
6615
static unsigned
6616
0
dissect_mms_GeneralizedTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6617
0
  offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
6618
6619
0
  return offset;
6620
0
}
6621
6622
6623
static const ber_sequence_t FileAttributes_sequence[] = {
6624
  { &hf_mms_sizeOfFile      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
6625
  { &hf_mms_lastModified    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_GeneralizedTime },
6626
  { NULL, 0, 0, 0, NULL }
6627
};
6628
6629
static unsigned
6630
0
dissect_mms_FileAttributes(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6631
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6632
0
                                   FileAttributes_sequence, hf_index, ett_mms_FileAttributes);
6633
6634
0
  return offset;
6635
0
}
6636
6637
6638
static const ber_sequence_t FileOpen_Response_sequence[] = {
6639
  { &hf_mms_frsmID          , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Integer32 },
6640
  { &hf_mms_fileAttributes  , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_FileAttributes },
6641
  { NULL, 0, 0, 0, NULL }
6642
};
6643
6644
static unsigned
6645
0
dissect_mms_FileOpen_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6646
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6647
0
                                   FileOpen_Response_sequence, hf_index, ett_mms_FileOpen_Response);
6648
6649
0
  return offset;
6650
0
}
6651
6652
6653
6654
static unsigned
6655
25
dissect_mms_DefineEventCondition_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6656
25
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6657
6658
25
  return offset;
6659
25
}
6660
6661
6662
6663
static unsigned
6664
4
dissect_mms_DeleteEventCondition_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6665
4
  offset = dissect_mms_Unsigned32(implicit_tag, tvb, offset, actx, tree, hf_index);
6666
6667
4
  return offset;
6668
4
}
6669
6670
6671
static const value_string mms_T_monitoredVariable_vals[] = {
6672
  {   0, "variableReference" },
6673
  {   1, "undefined" },
6674
  { 0, NULL }
6675
};
6676
6677
static const ber_choice_t T_monitoredVariable_choice[] = {
6678
  {   0, &hf_mms_variableReference, BER_CLASS_CON, 0, 0, dissect_mms_VariableSpecification },
6679
  {   1, &hf_mms_undefined       , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
6680
  { 0, NULL, 0, 0, 0, NULL }
6681
};
6682
6683
static unsigned
6684
0
dissect_mms_T_monitoredVariable(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6685
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
6686
0
                                 T_monitoredVariable_choice, hf_index, ett_mms_T_monitoredVariable,
6687
0
                                 NULL);
6688
6689
0
  return offset;
6690
0
}
6691
6692
6693
static const ber_sequence_t GetEventConditionAttributes_Response_sequence[] = {
6694
  { &hf_mms_mmsDeletable    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
6695
  { &hf_mms_class_01        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_EC_Class },
6696
  { &hf_mms_prio_rity       , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Priority },
6697
  { &hf_mms_severity        , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned8 },
6698
  { &hf_mms_alarmSummaryReports, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
6699
  { &hf_mms_monitoredVariable_01, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_mms_T_monitoredVariable },
6700
  { &hf_mms_evaluationInterval, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
6701
  { NULL, 0, 0, 0, NULL }
6702
};
6703
6704
static unsigned
6705
0
dissect_mms_GetEventConditionAttributes_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6706
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6707
0
                                   GetEventConditionAttributes_Response_sequence, hf_index, ett_mms_GetEventConditionAttributes_Response);
6708
6709
0
  return offset;
6710
0
}
6711
6712
6713
static const ber_sequence_t ReportEventConditionStatus_Response_sequence[] = {
6714
  { &hf_mms_currentState    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_EC_State },
6715
  { &hf_mms_numberOfEventEnrollments, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
6716
  { &hf_mms_enabled         , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
6717
  { &hf_mms_timeOfLastTransitionToActive, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_EventTime },
6718
  { &hf_mms_timeOfLastTransitionToIdle, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_EventTime },
6719
  { NULL, 0, 0, 0, NULL }
6720
};
6721
6722
static unsigned
6723
2
dissect_mms_ReportEventConditionStatus_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6724
2
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6725
2
                                   ReportEventConditionStatus_Response_sequence, hf_index, ett_mms_ReportEventConditionStatus_Response);
6726
6727
2
  return offset;
6728
2
}
6729
6730
6731
6732
static unsigned
6733
0
dissect_mms_AlterEventConditionMonitoring_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6734
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6735
6736
0
  return offset;
6737
0
}
6738
6739
6740
6741
static unsigned
6742
2
dissect_mms_TriggerEvent_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6743
2
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6744
6745
2
  return offset;
6746
2
}
6747
6748
6749
6750
static unsigned
6751
1
dissect_mms_DefineEventAction_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6752
1
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6753
6754
1
  return offset;
6755
1
}
6756
6757
6758
6759
static unsigned
6760
0
dissect_mms_DeleteEventAction_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6761
0
  offset = dissect_mms_Unsigned32(implicit_tag, tvb, offset, actx, tree, hf_index);
6762
6763
0
  return offset;
6764
0
}
6765
6766
6767
static const ber_sequence_t GetEventActionAttributes_Response_sequence[] = {
6768
  { &hf_mms_mmsDeletable    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
6769
  { &hf_mms_listOfModifier  , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_Modifier },
6770
  { NULL, 0, 0, 0, NULL }
6771
};
6772
6773
static unsigned
6774
0
dissect_mms_GetEventActionAttributes_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6775
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6776
0
                                   GetEventActionAttributes_Response_sequence, hf_index, ett_mms_GetEventActionAttributes_Response);
6777
6778
0
  return offset;
6779
0
}
6780
6781
6782
6783
static unsigned
6784
0
dissect_mms_ReportEventActionStatus_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6785
0
  offset = dissect_mms_Unsigned32(implicit_tag, tvb, offset, actx, tree, hf_index);
6786
6787
0
  return offset;
6788
0
}
6789
6790
6791
6792
static unsigned
6793
0
dissect_mms_DefineEventEnrollment_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6794
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
6795
6796
0
  return offset;
6797
0
}
6798
6799
6800
6801
static unsigned
6802
0
dissect_mms_DeleteEventEnrollment_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6803
0
  offset = dissect_mms_Unsigned32(implicit_tag, tvb, offset, actx, tree, hf_index);
6804
6805
0
  return offset;
6806
0
}
6807
6808
6809
static const value_string mms_EE_State_vals[] = {
6810
  {   0, "disabled" },
6811
  {   1, "idle" },
6812
  {   2, "active" },
6813
  {   3, "activeNoAckA" },
6814
  {   4, "idleNoAckI" },
6815
  {   5, "idleNoAckA" },
6816
  {   6, "idleAcked" },
6817
  {   7, "activeAcked" },
6818
  { 0, NULL }
6819
};
6820
6821
6822
static unsigned
6823
0
dissect_mms_EE_State(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6824
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6825
0
                                                NULL);
6826
6827
0
  return offset;
6828
0
}
6829
6830
6831
static const value_string mms_T_currentState_vals[] = {
6832
  {   0, "state" },
6833
  {   1, "undefined" },
6834
  { 0, NULL }
6835
};
6836
6837
static const ber_choice_t T_currentState_choice[] = {
6838
  {   0, &hf_mms_alterEventEnrollment_Response_currentState_state, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_EE_State },
6839
  {   1, &hf_mms_undefined       , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
6840
  { 0, NULL, 0, 0, 0, NULL }
6841
};
6842
6843
static unsigned
6844
0
dissect_mms_T_currentState(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6845
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
6846
0
                                 T_currentState_choice, hf_index, ett_mms_T_currentState,
6847
0
                                 NULL);
6848
6849
0
  return offset;
6850
0
}
6851
6852
6853
static const ber_sequence_t AlterEventEnrollment_Response_sequence[] = {
6854
  { &hf_mms_currentState_02 , BER_CLASS_CON, 0, 0, dissect_mms_T_currentState },
6855
  { &hf_mms_transitionTime  , BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_mms_EventTime },
6856
  { NULL, 0, 0, 0, NULL }
6857
};
6858
6859
static unsigned
6860
0
dissect_mms_AlterEventEnrollment_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6861
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6862
0
                                   AlterEventEnrollment_Response_sequence, hf_index, ett_mms_AlterEventEnrollment_Response);
6863
6864
0
  return offset;
6865
0
}
6866
6867
6868
static const value_string mms_EE_Duration_vals[] = {
6869
  {   0, "current" },
6870
  {   1, "permanent" },
6871
  { 0, NULL }
6872
};
6873
6874
6875
static unsigned
6876
0
dissect_mms_EE_Duration(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6877
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6878
0
                                                NULL);
6879
6880
0
  return offset;
6881
0
}
6882
6883
6884
static const ber_sequence_t ReportEventEnrollmentStatus_Response_sequence[] = {
6885
  { &hf_mms_eventConditionTransitions, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Transitions },
6886
  { &hf_mms_notificationLost, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
6887
  { &hf_mms_duration        , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_EE_Duration },
6888
  { &hf_mms_alarmAcknowledgmentRule, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_AlarmAckRule },
6889
  { &hf_mms_currentState_01 , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_EE_State },
6890
  { NULL, 0, 0, 0, NULL }
6891
};
6892
6893
static unsigned
6894
1
dissect_mms_ReportEventEnrollmentStatus_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6895
1
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6896
1
                                   ReportEventEnrollmentStatus_Response_sequence, hf_index, ett_mms_ReportEventEnrollmentStatus_Response);
6897
6898
1
  return offset;
6899
1
}
6900
6901
6902
static const value_string mms_T_eventConditionName_vals[] = {
6903
  {   0, "eventCondition" },
6904
  {   1, "undefined" },
6905
  { 0, NULL }
6906
};
6907
6908
static const ber_choice_t T_eventConditionName_choice[] = {
6909
  {   0, &hf_mms_eventCondition  , BER_CLASS_CON, 0, 0, dissect_mms_ObjectName },
6910
  {   1, &hf_mms_undefined       , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
6911
  { 0, NULL, 0, 0, 0, NULL }
6912
};
6913
6914
static unsigned
6915
0
dissect_mms_T_eventConditionName(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6916
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
6917
0
                                 T_eventConditionName_choice, hf_index, ett_mms_T_eventConditionName,
6918
0
                                 NULL);
6919
6920
0
  return offset;
6921
0
}
6922
6923
6924
static const value_string mms_T_eventActionName_vals[] = {
6925
  {   0, "eventAction" },
6926
  {   1, "undefined" },
6927
  { 0, NULL }
6928
};
6929
6930
static const ber_choice_t T_eventActionName_choice[] = {
6931
  {   0, &hf_mms_eventAction     , BER_CLASS_CON, 0, 0, dissect_mms_ObjectName },
6932
  {   1, &hf_mms_undefined       , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
6933
  { 0, NULL, 0, 0, 0, NULL }
6934
};
6935
6936
static unsigned
6937
0
dissect_mms_T_eventActionName(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6938
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
6939
0
                                 T_eventActionName_choice, hf_index, ett_mms_T_eventActionName,
6940
0
                                 NULL);
6941
6942
0
  return offset;
6943
0
}
6944
6945
6946
static const value_string mms_EE_Class_vals[] = {
6947
  {   0, "modifier" },
6948
  {   1, "notification" },
6949
  { 0, NULL }
6950
};
6951
6952
6953
static unsigned
6954
0
dissect_mms_EE_Class(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6955
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6956
0
                                                NULL);
6957
6958
0
  return offset;
6959
0
}
6960
6961
6962
static const ber_sequence_t EventEnrollment_sequence[] = {
6963
  { &hf_mms_eventEnrollmentName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
6964
  { &hf_mms_eventConditionName_01, BER_CLASS_CON, 1, 0, dissect_mms_T_eventConditionName },
6965
  { &hf_mms_eventActionName_01, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_mms_T_eventActionName },
6966
  { &hf_mms_clientApplication, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_mms_ApplicationReference },
6967
  { &hf_mms_mmsDeletable    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
6968
  { &hf_mms_enrollmentClass , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_EE_Class },
6969
  { &hf_mms_duration        , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_EE_Duration },
6970
  { &hf_mms_invokeID        , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
6971
  { &hf_mms_remainingAcceptableDelay, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
6972
  { NULL, 0, 0, 0, NULL }
6973
};
6974
6975
static unsigned
6976
0
dissect_mms_EventEnrollment(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6977
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6978
0
                                   EventEnrollment_sequence, hf_index, ett_mms_EventEnrollment);
6979
6980
0
  return offset;
6981
0
}
6982
6983
6984
static const ber_sequence_t SEQUENCE_OF_EventEnrollment_sequence_of[1] = {
6985
  { &hf_mms_listOfEventEnrollment_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mms_EventEnrollment },
6986
};
6987
6988
static unsigned
6989
0
dissect_mms_SEQUENCE_OF_EventEnrollment(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6990
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6991
0
                                      SEQUENCE_OF_EventEnrollment_sequence_of, hf_index, ett_mms_SEQUENCE_OF_EventEnrollment);
6992
6993
0
  return offset;
6994
0
}
6995
6996
6997
static const ber_sequence_t GetEventEnrollmentAttributes_Response_sequence[] = {
6998
  { &hf_mms_listOfEventEnrollment, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_EventEnrollment },
6999
  { &hf_mms_moreFollows     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
7000
  { NULL, 0, 0, 0, NULL }
7001
};
7002
7003
static unsigned
7004
0
dissect_mms_GetEventEnrollmentAttributes_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7005
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7006
0
                                   GetEventEnrollmentAttributes_Response_sequence, hf_index, ett_mms_GetEventEnrollmentAttributes_Response);
7007
7008
0
  return offset;
7009
0
}
7010
7011
7012
7013
static unsigned
7014
0
dissect_mms_AcknowledgeEventNotification_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7015
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
7016
7017
0
  return offset;
7018
0
}
7019
7020
7021
static const value_string mms_T_unacknowledgedState_vals[] = {
7022
  {   0, "none" },
7023
  {   1, "active" },
7024
  {   2, "idle" },
7025
  {   3, "both" },
7026
  { 0, NULL }
7027
};
7028
7029
7030
static unsigned
7031
0
dissect_mms_T_unacknowledgedState(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7032
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7033
0
                                                NULL);
7034
7035
0
  return offset;
7036
0
}
7037
7038
7039
static const ber_sequence_t AlarmSummary_sequence[] = {
7040
  { &hf_mms_eventConditionName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
7041
  { &hf_mms_severity        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned8 },
7042
  { &hf_mms_currentState    , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_EC_State },
7043
  { &hf_mms_unacknowledgedState, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_T_unacknowledgedState },
7044
  { &hf_mms_timeOfLastTransitionToActive, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_EventTime },
7045
  { &hf_mms_timeOfLastTransitionToIdle, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_EventTime },
7046
  { NULL, 0, 0, 0, NULL }
7047
};
7048
7049
static unsigned
7050
0
dissect_mms_AlarmSummary(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7051
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7052
0
                                   AlarmSummary_sequence, hf_index, ett_mms_AlarmSummary);
7053
7054
0
  return offset;
7055
0
}
7056
7057
7058
static const ber_sequence_t SEQUENCE_OF_AlarmSummary_sequence_of[1] = {
7059
  { &hf_mms_listOfAlarmSummary_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mms_AlarmSummary },
7060
};
7061
7062
static unsigned
7063
0
dissect_mms_SEQUENCE_OF_AlarmSummary(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7064
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7065
0
                                      SEQUENCE_OF_AlarmSummary_sequence_of, hf_index, ett_mms_SEQUENCE_OF_AlarmSummary);
7066
7067
0
  return offset;
7068
0
}
7069
7070
7071
static const ber_sequence_t GetAlarmSummary_Response_sequence[] = {
7072
  { &hf_mms_listOfAlarmSummary, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_AlarmSummary },
7073
  { &hf_mms_moreFollows     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
7074
  { NULL, 0, 0, 0, NULL }
7075
};
7076
7077
static unsigned
7078
0
dissect_mms_GetAlarmSummary_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7079
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7080
0
                                   GetAlarmSummary_Response_sequence, hf_index, ett_mms_GetAlarmSummary_Response);
7081
7082
0
  return offset;
7083
0
}
7084
7085
7086
static const ber_sequence_t AlarmEnrollmentSummary_sequence[] = {
7087
  { &hf_mms_eventEnrollmentName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
7088
  { &hf_mms_clientApplication, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_mms_ApplicationReference },
7089
  { &hf_mms_severity        , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned8 },
7090
  { &hf_mms_currentState    , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_EC_State },
7091
  { &hf_mms_notificationLost, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
7092
  { &hf_mms_alarmAcknowledgmentRule, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_AlarmAckRule },
7093
  { &hf_mms_enrollementState, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_EE_State },
7094
  { &hf_mms_timeOfLastTransitionToActive, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_EventTime },
7095
  { &hf_mms_timeActiveAcknowledged, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_EventTime },
7096
  { &hf_mms_timeOfLastTransitionToIdle, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_EventTime },
7097
  { &hf_mms_timeIdleAcknowledged, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_EventTime },
7098
  { NULL, 0, 0, 0, NULL }
7099
};
7100
7101
static unsigned
7102
0
dissect_mms_AlarmEnrollmentSummary(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7103
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7104
0
                                   AlarmEnrollmentSummary_sequence, hf_index, ett_mms_AlarmEnrollmentSummary);
7105
7106
0
  return offset;
7107
0
}
7108
7109
7110
static const ber_sequence_t SEQUENCE_OF_AlarmEnrollmentSummary_sequence_of[1] = {
7111
  { &hf_mms_listOfAlarmEnrollmentSummary_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mms_AlarmEnrollmentSummary },
7112
};
7113
7114
static unsigned
7115
0
dissect_mms_SEQUENCE_OF_AlarmEnrollmentSummary(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7116
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7117
0
                                      SEQUENCE_OF_AlarmEnrollmentSummary_sequence_of, hf_index, ett_mms_SEQUENCE_OF_AlarmEnrollmentSummary);
7118
7119
0
  return offset;
7120
0
}
7121
7122
7123
static const ber_sequence_t GetAlarmEnrollmentSummary_Response_sequence[] = {
7124
  { &hf_mms_listOfAlarmEnrollmentSummary, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_AlarmEnrollmentSummary },
7125
  { &hf_mms_moreFollows     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
7126
  { NULL, 0, 0, 0, NULL }
7127
};
7128
7129
static unsigned
7130
0
dissect_mms_GetAlarmEnrollmentSummary_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7131
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7132
0
                                   GetAlarmEnrollmentSummary_Response_sequence, hf_index, ett_mms_GetAlarmEnrollmentSummary_Response);
7133
7134
0
  return offset;
7135
0
}
7136
7137
7138
static const ber_sequence_t JournalEntry_sequence[] = {
7139
  { &hf_mms_entryIdentifier , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_OCTET_STRING },
7140
  { &hf_mms_originatingApplication, BER_CLASS_CON, 1, 0, dissect_mms_ApplicationReference },
7141
  { &hf_mms_entryContent    , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_EntryContent },
7142
  { NULL, 0, 0, 0, NULL }
7143
};
7144
7145
static unsigned
7146
0
dissect_mms_JournalEntry(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7147
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7148
0
                                   JournalEntry_sequence, hf_index, ett_mms_JournalEntry);
7149
7150
0
  return offset;
7151
0
}
7152
7153
7154
static const ber_sequence_t SEQUENCE_OF_JournalEntry_sequence_of[1] = {
7155
  { &hf_mms_listOfJournalEntry_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mms_JournalEntry },
7156
};
7157
7158
static unsigned
7159
0
dissect_mms_SEQUENCE_OF_JournalEntry(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7160
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7161
0
                                      SEQUENCE_OF_JournalEntry_sequence_of, hf_index, ett_mms_SEQUENCE_OF_JournalEntry);
7162
7163
0
  return offset;
7164
0
}
7165
7166
7167
static const ber_sequence_t ReadJournal_Response_sequence[] = {
7168
  { &hf_mms_listOfJournalEntry, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_JournalEntry },
7169
  { &hf_mms_moreFollows     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
7170
  { NULL, 0, 0, 0, NULL }
7171
};
7172
7173
static unsigned
7174
0
dissect_mms_ReadJournal_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7175
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7176
0
                                   ReadJournal_Response_sequence, hf_index, ett_mms_ReadJournal_Response);
7177
7178
0
  return offset;
7179
0
}
7180
7181
7182
7183
static unsigned
7184
0
dissect_mms_WriteJournal_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7185
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
7186
7187
0
  return offset;
7188
0
}
7189
7190
7191
7192
static unsigned
7193
0
dissect_mms_InitializeJournal_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7194
0
  offset = dissect_mms_Unsigned32(implicit_tag, tvb, offset, actx, tree, hf_index);
7195
7196
0
  return offset;
7197
0
}
7198
7199
7200
static const ber_sequence_t ReportJournalStatus_Response_sequence[] = {
7201
  { &hf_mms_currentEntries  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
7202
  { &hf_mms_mmsDeletable    , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
7203
  { NULL, 0, 0, 0, NULL }
7204
};
7205
7206
static unsigned
7207
0
dissect_mms_ReportJournalStatus_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7208
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7209
0
                                   ReportJournalStatus_Response_sequence, hf_index, ett_mms_ReportJournalStatus_Response);
7210
7211
0
  return offset;
7212
0
}
7213
7214
7215
7216
static unsigned
7217
0
dissect_mms_CreateJournal_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7218
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
7219
7220
0
  return offset;
7221
0
}
7222
7223
7224
7225
static unsigned
7226
0
dissect_mms_DeleteJournal_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7227
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
7228
7229
0
  return offset;
7230
0
}
7231
7232
7233
static const ber_sequence_t T_listOfCapabilities_sequence_of[1] = {
7234
  { &hf_mms_listOfCapabilities_item, BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_VisibleString },
7235
};
7236
7237
static unsigned
7238
0
dissect_mms_T_listOfCapabilities(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7239
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7240
0
                                      T_listOfCapabilities_sequence_of, hf_index, ett_mms_T_listOfCapabilities);
7241
7242
0
  return offset;
7243
0
}
7244
7245
7246
static const ber_sequence_t GetCapabilityList_Response_sequence[] = {
7247
  { &hf_mms_listOfCapabilities, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_listOfCapabilities },
7248
  { &hf_mms_moreFollows     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
7249
  { NULL, 0, 0, 0, NULL }
7250
};
7251
7252
static unsigned
7253
0
dissect_mms_GetCapabilityList_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7254
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7255
0
                                   GetCapabilityList_Response_sequence, hf_index, ett_mms_GetCapabilityList_Response);
7256
7257
0
  return offset;
7258
0
}
7259
7260
7261
static const ber_sequence_t FileRead_Response_sequence[] = {
7262
  { &hf_mms_fileData        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_OCTET_STRING },
7263
  { &hf_mms_moreFollows     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
7264
  { NULL, 0, 0, 0, NULL }
7265
};
7266
7267
static unsigned
7268
0
dissect_mms_FileRead_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7269
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7270
0
                                   FileRead_Response_sequence, hf_index, ett_mms_FileRead_Response);
7271
7272
0
  return offset;
7273
0
}
7274
7275
7276
7277
static unsigned
7278
0
dissect_mms_FileClose_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7279
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
7280
7281
0
  return offset;
7282
0
}
7283
7284
7285
7286
static unsigned
7287
0
dissect_mms_FileRename_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7288
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
7289
7290
0
  return offset;
7291
0
}
7292
7293
7294
7295
static unsigned
7296
0
dissect_mms_FileDelete_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7297
0
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
7298
7299
0
  return offset;
7300
0
}
7301
7302
7303
static const ber_sequence_t DirectoryEntry_sequence[] = {
7304
  { &hf_mms_filename        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_FileName },
7305
  { &hf_mms_fileAttributes  , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_FileAttributes },
7306
  { NULL, 0, 0, 0, NULL }
7307
};
7308
7309
static unsigned
7310
0
dissect_mms_DirectoryEntry(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7311
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7312
0
                                   DirectoryEntry_sequence, hf_index, ett_mms_DirectoryEntry);
7313
7314
0
  return offset;
7315
0
}
7316
7317
7318
static const ber_sequence_t SEQUENCE_OF_DirectoryEntry_sequence_of[1] = {
7319
  { &hf_mms_listOfDirectoryEntry_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mms_DirectoryEntry },
7320
};
7321
7322
static unsigned
7323
0
dissect_mms_SEQUENCE_OF_DirectoryEntry(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7324
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7325
0
                                      SEQUENCE_OF_DirectoryEntry_sequence_of, hf_index, ett_mms_SEQUENCE_OF_DirectoryEntry);
7326
7327
0
  return offset;
7328
0
}
7329
7330
7331
static const ber_sequence_t FileDirectory_Response_sequence[] = {
7332
  { &hf_mms_listOfDirectoryEntry, BER_CLASS_CON, 0, 0, dissect_mms_SEQUENCE_OF_DirectoryEntry },
7333
  { &hf_mms_moreFollows     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
7334
  { NULL, 0, 0, 0, NULL }
7335
};
7336
7337
static unsigned
7338
0
dissect_mms_FileDirectory_Response(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7339
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7340
0
                                   FileDirectory_Response_sequence, hf_index, ett_mms_FileDirectory_Response);
7341
7342
0
  return offset;
7343
0
}
7344
7345
7346
static const value_string mms_ConfirmedServiceResponse_vals[] = {
7347
  {   0, "status" },
7348
  {   1, "getNameList" },
7349
  {   2, "identify" },
7350
  {   3, "rename" },
7351
  {   4, "read" },
7352
  {   5, "write" },
7353
  {   6, "getVariableAccessAttributes" },
7354
  {   7, "defineNamedVariable" },
7355
  {   8, "defineScatteredAccess" },
7356
  {   9, "getScatteredAccessAttributes" },
7357
  {  10, "deleteVariableAccess" },
7358
  {  11, "defineNamedVariableList" },
7359
  {  12, "getNamedVariableListAttributes" },
7360
  {  13, "deleteNamedVariableList" },
7361
  {  14, "defineNamedType" },
7362
  {  15, "getNamedTypeAttributes" },
7363
  {  16, "deleteNamedType" },
7364
  {  17, "input" },
7365
  {  18, "output" },
7366
  {  19, "takeControl" },
7367
  {  20, "relinquishControl" },
7368
  {  21, "defineSemaphore" },
7369
  {  22, "deleteSemaphore" },
7370
  {  23, "reportSemaphoreStatus" },
7371
  {  24, "reportPoolSemaphoreStatus" },
7372
  {  25, "reportSemaphoreEntryStatus" },
7373
  {  26, "initiateDownloadSequence" },
7374
  {  27, "downloadSegment" },
7375
  {  28, "terminateDownloadSequence" },
7376
  {  29, "initiateUploadSequence" },
7377
  {  30, "uploadSegment" },
7378
  {  31, "terminateUploadSequence" },
7379
  {  32, "requestDomainDownLoad" },
7380
  {  33, "requestDomainUpload" },
7381
  {  34, "loadDomainContent" },
7382
  {  35, "storeDomainContent" },
7383
  {  36, "deleteDomain" },
7384
  {  37, "getDomainAttributes" },
7385
  {  38, "createProgramInvocation" },
7386
  {  39, "deleteProgramInvocation" },
7387
  {  40, "start" },
7388
  {  41, "stop" },
7389
  {  42, "resume" },
7390
  {  43, "reset" },
7391
  {  44, "kill" },
7392
  {  45, "getProgramInvocationAttributes" },
7393
  {  46, "obtainFile" },
7394
  {  72, "fileOpen" },
7395
  {  47, "defineEventCondition" },
7396
  {  48, "deleteEventCondition" },
7397
  {  49, "getEventConditionAttributes" },
7398
  {  50, "reportEventConditionStatus" },
7399
  {  51, "alterEventConditionMonitoring" },
7400
  {  52, "triggerEvent" },
7401
  {  53, "defineEventAction" },
7402
  {  54, "deleteEventAction" },
7403
  {  55, "getEventActionAttributes" },
7404
  {  56, "reportActionStatus" },
7405
  {  57, "defineEventEnrollment" },
7406
  {  58, "deleteEventEnrollment" },
7407
  {  59, "alterEventEnrollment" },
7408
  {  60, "reportEventEnrollmentStatus" },
7409
  {  61, "getEventEnrollmentAttributes" },
7410
  {  62, "acknowledgeEventNotification" },
7411
  {  63, "getAlarmSummary" },
7412
  {  64, "getAlarmEnrollmentSummary" },
7413
  {  65, "readJournal" },
7414
  {  66, "writeJournal" },
7415
  {  67, "initializeJournal" },
7416
  {  68, "reportJournalStatus" },
7417
  {  69, "createJournal" },
7418
  {  70, "deleteJournal" },
7419
  {  71, "getCapabilityList" },
7420
  {  73, "fileRead" },
7421
  {  74, "fileClose" },
7422
  {  75, "fileRename" },
7423
  {  76, "fileDelete" },
7424
  {  77, "fileDirectory" },
7425
  { 0, NULL }
7426
};
7427
7428
static const ber_choice_t ConfirmedServiceResponse_choice[] = {
7429
  {   0, &hf_mms_status_01       , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Status_Response },
7430
  {   1, &hf_mms_getNameList_01  , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_GetNameList_Response },
7431
  {   2, &hf_mms_identify_01     , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Identify_Response },
7432
  {   3, &hf_mms_rename_01       , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_Rename_Response },
7433
  {   4, &hf_mms_read_01         , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_Read_Response },
7434
  {   5, &hf_mms_write_01        , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_Write_Response },
7435
  {   6, &hf_mms_getVariableAccessAttributes_01, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_mms_GetVariableAccessAttributes_Response },
7436
  {   7, &hf_mms_defineNamedVariable_01, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_mms_DefineNamedVariable_Response },
7437
  {   8, &hf_mms_defineScatteredAccess_01, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_mms_DefineScatteredAccess_Response },
7438
  {   9, &hf_mms_getScatteredAccessAttributes_01, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_mms_GetScatteredAccessAttributes_Response },
7439
  {  10, &hf_mms_deleteVariableAccess_01, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_mms_DeleteVariableAccess_Response },
7440
  {  11, &hf_mms_defineNamedVariableList_01, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_mms_DefineNamedVariableList_Response },
7441
  {  12, &hf_mms_getNamedVariableListAttributes_01, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_mms_GetNamedVariableListAttributes_Response },
7442
  {  13, &hf_mms_deleteNamedVariableList_01, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_mms_DeleteNamedVariableList_Response },
7443
  {  14, &hf_mms_defineNamedType_01, BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_mms_DefineNamedType_Response },
7444
  {  15, &hf_mms_getNamedTypeAttributes_01, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_mms_GetNamedTypeAttributes_Response },
7445
  {  16, &hf_mms_deleteNamedType_01, BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_mms_DeleteNamedType_Response },
7446
  {  17, &hf_mms_input_01        , BER_CLASS_CON, 17, BER_FLAGS_IMPLTAG, dissect_mms_Input_Response },
7447
  {  18, &hf_mms_output_01       , BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_mms_Output_Response },
7448
  {  19, &hf_mms_takeControl_01  , BER_CLASS_CON, 19, 0, dissect_mms_TakeControl_Response },
7449
  {  20, &hf_mms_relinquishControl_01, BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_mms_RelinquishControl_Response },
7450
  {  21, &hf_mms_defineSemaphore_01, BER_CLASS_CON, 21, BER_FLAGS_IMPLTAG, dissect_mms_DefineSemaphore_Response },
7451
  {  22, &hf_mms_deleteSemaphore_01, BER_CLASS_CON, 22, BER_FLAGS_IMPLTAG, dissect_mms_DeleteSemaphore_Response },
7452
  {  23, &hf_mms_reportSemaphoreStatus_01, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_mms_ReportSemaphoreStatus_Response },
7453
  {  24, &hf_mms_reportPoolSemaphoreStatus_01, BER_CLASS_CON, 24, BER_FLAGS_IMPLTAG, dissect_mms_ReportPoolSemaphoreStatus_Response },
7454
  {  25, &hf_mms_reportSemaphoreEntryStatus_01, BER_CLASS_CON, 25, BER_FLAGS_IMPLTAG, dissect_mms_ReportSemaphoreEntryStatus_Response },
7455
  {  26, &hf_mms_initiateDownloadSequence_01, BER_CLASS_CON, 26, BER_FLAGS_IMPLTAG, dissect_mms_InitiateDownloadSequence_Response },
7456
  {  27, &hf_mms_downloadSegment_01, BER_CLASS_CON, 27, BER_FLAGS_IMPLTAG, dissect_mms_DownloadSegment_Response },
7457
  {  28, &hf_mms_terminateDownloadSequence_01, BER_CLASS_CON, 28, BER_FLAGS_IMPLTAG, dissect_mms_TerminateDownloadSequence_Response },
7458
  {  29, &hf_mms_initiateUploadSequence_01, BER_CLASS_CON, 29, BER_FLAGS_IMPLTAG, dissect_mms_InitiateUploadSequence_Response },
7459
  {  30, &hf_mms_uploadSegment_01, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_mms_UploadSegment_Response },
7460
  {  31, &hf_mms_terminateUploadSequence_01, BER_CLASS_CON, 31, BER_FLAGS_IMPLTAG, dissect_mms_TerminateUploadSequence_Response },
7461
  {  32, &hf_mms_requestDomainDownLoad, BER_CLASS_CON, 32, BER_FLAGS_IMPLTAG, dissect_mms_RequestDomainDownload_Response },
7462
  {  33, &hf_mms_requestDomainUpload_01, BER_CLASS_CON, 33, BER_FLAGS_IMPLTAG, dissect_mms_RequestDomainUpload_Response },
7463
  {  34, &hf_mms_loadDomainContent_01, BER_CLASS_CON, 34, BER_FLAGS_IMPLTAG, dissect_mms_LoadDomainContent_Response },
7464
  {  35, &hf_mms_storeDomainContent_01, BER_CLASS_CON, 35, BER_FLAGS_IMPLTAG, dissect_mms_StoreDomainContent_Response },
7465
  {  36, &hf_mms_deleteDomain_01 , BER_CLASS_CON, 36, BER_FLAGS_IMPLTAG, dissect_mms_DeleteDomain_Response },
7466
  {  37, &hf_mms_getDomainAttributes_01, BER_CLASS_CON, 37, BER_FLAGS_IMPLTAG, dissect_mms_GetDomainAttributes_Response },
7467
  {  38, &hf_mms_createProgramInvocation_01, BER_CLASS_CON, 38, BER_FLAGS_IMPLTAG, dissect_mms_CreateProgramInvocation_Response },
7468
  {  39, &hf_mms_deleteProgramInvocation_01, BER_CLASS_CON, 39, BER_FLAGS_IMPLTAG, dissect_mms_DeleteProgramInvocation_Response },
7469
  {  40, &hf_mms_start_01        , BER_CLASS_CON, 40, BER_FLAGS_IMPLTAG, dissect_mms_Start_Response },
7470
  {  41, &hf_mms_stop_01         , BER_CLASS_CON, 41, BER_FLAGS_IMPLTAG, dissect_mms_Stop_Response },
7471
  {  42, &hf_mms_resume_01       , BER_CLASS_CON, 42, BER_FLAGS_IMPLTAG, dissect_mms_Resume_Response },
7472
  {  43, &hf_mms_reset_01        , BER_CLASS_CON, 43, BER_FLAGS_IMPLTAG, dissect_mms_Reset_Response },
7473
  {  44, &hf_mms_kill_01         , BER_CLASS_CON, 44, BER_FLAGS_IMPLTAG, dissect_mms_Kill_Response },
7474
  {  45, &hf_mms_getProgramInvocationAttributes_01, BER_CLASS_CON, 45, BER_FLAGS_IMPLTAG, dissect_mms_GetProgramInvocationAttributes_Response },
7475
  {  46, &hf_mms_obtainFile_01   , BER_CLASS_CON, 46, BER_FLAGS_IMPLTAG, dissect_mms_ObtainFile_Response },
7476
  {  72, &hf_mms_fileOpen_01     , BER_CLASS_CON, 72, BER_FLAGS_IMPLTAG, dissect_mms_FileOpen_Response },
7477
  {  47, &hf_mms_defineEventCondition_01, BER_CLASS_CON, 47, BER_FLAGS_IMPLTAG, dissect_mms_DefineEventCondition_Response },
7478
  {  48, &hf_mms_confirmedServiceResponse_deleteEventCondition, BER_CLASS_CON, 48, BER_FLAGS_IMPLTAG, dissect_mms_DeleteEventCondition_Response },
7479
  {  49, &hf_mms_getEventConditionAttributes_01, BER_CLASS_CON, 49, BER_FLAGS_IMPLTAG, dissect_mms_GetEventConditionAttributes_Response },
7480
  {  50, &hf_mms_reportEventConditionStatus_01, BER_CLASS_CON, 50, BER_FLAGS_IMPLTAG, dissect_mms_ReportEventConditionStatus_Response },
7481
  {  51, &hf_mms_alterEventConditionMonitoring_01, BER_CLASS_CON, 51, BER_FLAGS_IMPLTAG, dissect_mms_AlterEventConditionMonitoring_Response },
7482
  {  52, &hf_mms_triggerEvent_01 , BER_CLASS_CON, 52, BER_FLAGS_IMPLTAG, dissect_mms_TriggerEvent_Response },
7483
  {  53, &hf_mms_defineEventAction_01, BER_CLASS_CON, 53, BER_FLAGS_IMPLTAG, dissect_mms_DefineEventAction_Response },
7484
  {  54, &hf_mms_confirmedServiceRequest_deleteEventAction_01, BER_CLASS_CON, 54, BER_FLAGS_IMPLTAG, dissect_mms_DeleteEventAction_Response },
7485
  {  55, &hf_mms_getEventActionAttributes_01, BER_CLASS_CON, 55, BER_FLAGS_IMPLTAG, dissect_mms_GetEventActionAttributes_Response },
7486
  {  56, &hf_mms_reportActionStatus, BER_CLASS_CON, 56, BER_FLAGS_IMPLTAG, dissect_mms_ReportEventActionStatus_Response },
7487
  {  57, &hf_mms_defineEventEnrollment_01, BER_CLASS_CON, 57, BER_FLAGS_IMPLTAG, dissect_mms_DefineEventEnrollment_Response },
7488
  {  58, &hf_mms_confirmedServiceResponse_deleteEventEnrollment, BER_CLASS_CON, 58, BER_FLAGS_IMPLTAG, dissect_mms_DeleteEventEnrollment_Response },
7489
  {  59, &hf_mms_alterEventEnrollment_01, BER_CLASS_CON, 59, BER_FLAGS_IMPLTAG, dissect_mms_AlterEventEnrollment_Response },
7490
  {  60, &hf_mms_reportEventEnrollmentStatus_01, BER_CLASS_CON, 60, BER_FLAGS_IMPLTAG, dissect_mms_ReportEventEnrollmentStatus_Response },
7491
  {  61, &hf_mms_getEventEnrollmentAttributes_01, BER_CLASS_CON, 61, BER_FLAGS_IMPLTAG, dissect_mms_GetEventEnrollmentAttributes_Response },
7492
  {  62, &hf_mms_acknowledgeEventNotification_01, BER_CLASS_CON, 62, BER_FLAGS_IMPLTAG, dissect_mms_AcknowledgeEventNotification_Response },
7493
  {  63, &hf_mms_getAlarmSummary_01, BER_CLASS_CON, 63, BER_FLAGS_IMPLTAG, dissect_mms_GetAlarmSummary_Response },
7494
  {  64, &hf_mms_getAlarmEnrollmentSummary_01, BER_CLASS_CON, 64, BER_FLAGS_IMPLTAG, dissect_mms_GetAlarmEnrollmentSummary_Response },
7495
  {  65, &hf_mms_readJournal_01  , BER_CLASS_CON, 65, BER_FLAGS_IMPLTAG, dissect_mms_ReadJournal_Response },
7496
  {  66, &hf_mms_writeJournal_01 , BER_CLASS_CON, 66, BER_FLAGS_IMPLTAG, dissect_mms_WriteJournal_Response },
7497
  {  67, &hf_mms_initializeJournal_01, BER_CLASS_CON, 67, BER_FLAGS_IMPLTAG, dissect_mms_InitializeJournal_Response },
7498
  {  68, &hf_mms_reportJournalStatus_01, BER_CLASS_CON, 68, BER_FLAGS_IMPLTAG, dissect_mms_ReportJournalStatus_Response },
7499
  {  69, &hf_mms_createJournal_01, BER_CLASS_CON, 69, BER_FLAGS_IMPLTAG, dissect_mms_CreateJournal_Response },
7500
  {  70, &hf_mms_deleteJournal_01, BER_CLASS_CON, 70, BER_FLAGS_IMPLTAG, dissect_mms_DeleteJournal_Response },
7501
  {  71, &hf_mms_getCapabilityList_01, BER_CLASS_CON, 71, BER_FLAGS_IMPLTAG, dissect_mms_GetCapabilityList_Response },
7502
  {  73, &hf_mms_fileRead_01     , BER_CLASS_CON, 73, BER_FLAGS_IMPLTAG, dissect_mms_FileRead_Response },
7503
  {  74, &hf_mms_fileClose_01    , BER_CLASS_CON, 74, BER_FLAGS_IMPLTAG, dissect_mms_FileClose_Response },
7504
  {  75, &hf_mms_fileRename_01   , BER_CLASS_CON, 75, BER_FLAGS_IMPLTAG, dissect_mms_FileRename_Response },
7505
  {  76, &hf_mms_fileDelete_01   , BER_CLASS_CON, 76, BER_FLAGS_IMPLTAG, dissect_mms_FileDelete_Response },
7506
  {  77, &hf_mms_fileDirectory_01, BER_CLASS_CON, 77, BER_FLAGS_IMPLTAG, dissect_mms_FileDirectory_Response },
7507
  { 0, NULL, 0, 0, 0, NULL }
7508
};
7509
7510
static unsigned
7511
235
dissect_mms_ConfirmedServiceResponse(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7512
235
        int8_t   ber_class;
7513
235
        bool     pc;
7514
235
        int32_t  tag;
7515
7516
235
        get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
7517
235
        mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
7518
235
        if(mms_priv){
7519
235
            mms_priv->confirmedservice_type = tag;
7520
235
        }
7521
7522
235
  offset = dissect_ber_choice(actx, tree, tvb, offset,
7523
235
                                 ConfirmedServiceResponse_choice, hf_index, ett_mms_ConfirmedServiceResponse,
7524
235
                                 NULL);
7525
7526
7527
7528
235
  return offset;
7529
235
}
7530
7531
7532
static const ber_sequence_t Confirmed_ResponsePDU_sequence[] = {
7533
  { &hf_mms_invokeID        , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_mms_Unsigned32 },
7534
  { &hf_mms_confirmedServiceResponse, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_ConfirmedServiceResponse },
7535
  { &hf_mms_cs_request_detail, BER_CLASS_CON, 79, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_CS_Request_Detail },
7536
  { NULL, 0, 0, 0, NULL }
7537
};
7538
7539
static unsigned
7540
302
dissect_mms_Confirmed_ResponsePDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7541
7542
302
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7543
302
                                   Confirmed_ResponsePDU_sequence, hf_index, ett_mms_Confirmed_ResponsePDU);
7544
7545
302
    mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
7546
302
    if(tree && mms_priv){
7547
77
        mms_priv->pdu_item = (proto_item*)tree->last_child;
7548
77
    }
7549
7550
7551
302
  return offset;
7552
302
}
7553
7554
7555
static const ber_sequence_t Confirmed_ErrorPDU_sequence[] = {
7556
  { &hf_mms_invokeID        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
7557
  { &hf_mms_modifierPosition, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
7558
  { &hf_mms_serviceError    , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_ServiceError },
7559
  { NULL, 0, 0, 0, NULL }
7560
};
7561
7562
static unsigned
7563
2
dissect_mms_Confirmed_ErrorPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7564
2
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7565
2
                                   Confirmed_ErrorPDU_sequence, hf_index, ett_mms_Confirmed_ErrorPDU);
7566
7567
2
  return offset;
7568
2
}
7569
7570
7571
static const ber_sequence_t T_listOfAccessResult_sequence_of[1] = {
7572
  { &hf_mms_listOfAccessResult_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_AccessResult },
7573
};
7574
7575
static unsigned
7576
0
dissect_mms_T_listOfAccessResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7577
7578
0
    mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
7579
0
    if(mms_priv){
7580
0
        mms_priv->listOfAccessResult_cnt = 0;
7581
0
    }
7582
7583
0
  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7584
0
                                      T_listOfAccessResult_sequence_of, hf_index, ett_mms_T_listOfAccessResult);
7585
7586
7587
7588
0
  return offset;
7589
0
}
7590
7591
7592
static const ber_sequence_t InformationReport_sequence[] = {
7593
  { &hf_mms_variableAccessSpecification, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_VariableAccessSpecification },
7594
  { &hf_mms_listOfAccessResult_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_listOfAccessResult },
7595
  { NULL, 0, 0, 0, NULL }
7596
};
7597
7598
static unsigned
7599
0
dissect_mms_InformationReport(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7600
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7601
0
                                   InformationReport_sequence, hf_index, ett_mms_InformationReport);
7602
7603
0
  return offset;
7604
0
}
7605
7606
7607
7608
static unsigned
7609
0
dissect_mms_UnsolicitedStatus(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7610
0
  offset = dissect_mms_Status_Response(implicit_tag, tvb, offset, actx, tree, hf_index);
7611
7612
0
  return offset;
7613
0
}
7614
7615
7616
static const value_string mms_T_eventConditionName_01_vals[] = {
7617
  {   0, "eventCondition" },
7618
  {   1, "undefined" },
7619
  { 0, NULL }
7620
};
7621
7622
static const ber_choice_t T_eventConditionName_01_choice[] = {
7623
  {   0, &hf_mms_eventCondition  , BER_CLASS_CON, 0, 0, dissect_mms_ObjectName },
7624
  {   1, &hf_mms_undefined       , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
7625
  { 0, NULL, 0, 0, 0, NULL }
7626
};
7627
7628
static unsigned
7629
0
dissect_mms_T_eventConditionName_01(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7630
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
7631
0
                                 T_eventConditionName_01_choice, hf_index, ett_mms_T_eventConditionName_01,
7632
0
                                 NULL);
7633
7634
0
  return offset;
7635
0
}
7636
7637
7638
static const value_string mms_T_eventActionResult_vals[] = {
7639
  {   0, "success" },
7640
  {   1, "failure" },
7641
  { 0, NULL }
7642
};
7643
7644
static const ber_choice_t T_eventActionResult_choice[] = {
7645
  {   0, &hf_mms_success_02      , BER_CLASS_CON, 0, 0, dissect_mms_ConfirmedServiceResponse },
7646
  {   1, &hf_mms_failure_01      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_ServiceError },
7647
  { 0, NULL, 0, 0, 0, NULL }
7648
};
7649
7650
static unsigned
7651
0
dissect_mms_T_eventActionResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7652
0
  offset = dissect_ber_choice(actx, tree, tvb, offset,
7653
0
                                 T_eventActionResult_choice, hf_index, ett_mms_T_eventActionResult,
7654
0
                                 NULL);
7655
7656
0
  return offset;
7657
0
}
7658
7659
7660
static const ber_sequence_t T_actionResult_sequence[] = {
7661
  { &hf_mms_eventActioName  , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
7662
  { &hf_mms_eventActionResult, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_T_eventActionResult },
7663
  { NULL, 0, 0, 0, NULL }
7664
};
7665
7666
static unsigned
7667
0
dissect_mms_T_actionResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7668
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7669
0
                                   T_actionResult_sequence, hf_index, ett_mms_T_actionResult);
7670
7671
0
  return offset;
7672
0
}
7673
7674
7675
static const ber_sequence_t EventNotification_sequence[] = {
7676
  { &hf_mms_eventEnrollmentName, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectName },
7677
  { &hf_mms_eventConditionName_02, BER_CLASS_CON, 1, 0, dissect_mms_T_eventConditionName_01 },
7678
  { &hf_mms_severity        , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned8 },
7679
  { &hf_mms_currentState    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_EC_State },
7680
  { &hf_mms_transitionTime  , BER_CLASS_CON, 4, BER_FLAGS_NOTCHKTAG, dissect_mms_EventTime },
7681
  { &hf_mms_notificationLost, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
7682
  { &hf_mms_alarmAcknowledgmentRule, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_AlarmAckRule },
7683
  { &hf_mms_actionResult    , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_T_actionResult },
7684
  { NULL, 0, 0, 0, NULL }
7685
};
7686
7687
static unsigned
7688
0
dissect_mms_EventNotification(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7689
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7690
0
                                   EventNotification_sequence, hf_index, ett_mms_EventNotification);
7691
7692
0
  return offset;
7693
0
}
7694
7695
7696
static const value_string mms_UnconfirmedService_vals[] = {
7697
  {   0, "informationReport" },
7698
  {   1, "unsolicitedStatus" },
7699
  {   2, "eventNotification" },
7700
  { 0, NULL }
7701
};
7702
7703
static const ber_choice_t UnconfirmedService_choice[] = {
7704
  {   0, &hf_mms_informationReport, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_InformationReport },
7705
  {   1, &hf_mms_unsolicitedStatus, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_UnsolicitedStatus },
7706
  {   2, &hf_mms_eventNotification, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_EventNotification },
7707
  { 0, NULL, 0, 0, 0, NULL }
7708
};
7709
7710
static unsigned
7711
6
dissect_mms_UnconfirmedService(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7712
6
  offset = dissect_ber_choice(actx, tree, tvb, offset,
7713
6
                                 UnconfirmedService_choice, hf_index, ett_mms_UnconfirmedService,
7714
6
                                 NULL);
7715
7716
6
  return offset;
7717
6
}
7718
7719
7720
static const ber_sequence_t Unconfirmed_PDU_sequence[] = {
7721
  { &hf_mms_unconfirmedService, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_UnconfirmedService },
7722
  { &hf_mms_cs_request_detail, BER_CLASS_CON, 79, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_mms_CS_Request_Detail },
7723
  { NULL, 0, 0, 0, NULL }
7724
};
7725
7726
static unsigned
7727
30
dissect_mms_Unconfirmed_PDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7728
30
   mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
7729
30
    if (mms_priv && !mms_priv->mms_trans_p) {
7730
        /* create a "fake" mms_trans structure */
7731
30
        mms_priv->mms_trans_p=wmem_new0(actx->pinfo->pool, mms_transaction_t);
7732
30
        mms_priv->mms_trans_p->req_time = actx->pinfo->fd->abs_ts;
7733
7734
30
    }
7735
7736
30
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7737
30
                                   Unconfirmed_PDU_sequence, hf_index, ett_mms_Unconfirmed_PDU);
7738
7739
30
    if(tree && mms_priv){
7740
4
        mms_priv->pdu_item = (proto_item*)tree->last_child;
7741
4
    }
7742
7743
30
  return offset;
7744
30
}
7745
7746
7747
static const value_string mms_T_confirmed_requestPDU_vals[] = {
7748
  {   0, "other" },
7749
  {   1, "unrecognized-service" },
7750
  {   2, "unrecognized-modifier" },
7751
  {   3, "invalid-invokeID" },
7752
  {   4, "invalid-argument" },
7753
  {   5, "invalid-modifier" },
7754
  {   6, "max-serv-outstanding-exceeded" },
7755
  {   8, "max-recursion-exceeded" },
7756
  {   9, "value-out-of-range" },
7757
  { 0, NULL }
7758
};
7759
7760
7761
static unsigned
7762
0
dissect_mms_T_confirmed_requestPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7763
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7764
0
                                                NULL);
7765
7766
0
  return offset;
7767
0
}
7768
7769
7770
static const value_string mms_T_confirmed_responsePDU_vals[] = {
7771
  {   0, "other" },
7772
  {   1, "unrecognized-service" },
7773
  {   2, "invalid-invokeID" },
7774
  {   3, "invalid-result" },
7775
  {   5, "max-recursion-exceeded" },
7776
  {   6, "value-out-of-range" },
7777
  { 0, NULL }
7778
};
7779
7780
7781
static unsigned
7782
1
dissect_mms_T_confirmed_responsePDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7783
1
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7784
1
                                                NULL);
7785
7786
1
  return offset;
7787
1
}
7788
7789
7790
static const value_string mms_T_confirmed_errorPDU_vals[] = {
7791
  {   0, "other" },
7792
  {   1, "unrecognized-service" },
7793
  {   2, "invalid-invokeID" },
7794
  {   3, "invalid-serviceError" },
7795
  {   4, "value-out-of-range" },
7796
  { 0, NULL }
7797
};
7798
7799
7800
static unsigned
7801
0
dissect_mms_T_confirmed_errorPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7802
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7803
0
                                                NULL);
7804
7805
0
  return offset;
7806
0
}
7807
7808
7809
static const value_string mms_T_unconfirmedPDU_vals[] = {
7810
  {   0, "other" },
7811
  {   1, "unrecognized-service" },
7812
  {   2, "invalid-argument" },
7813
  {   3, "max-recursion-exceeded" },
7814
  {   4, "value-out-of-range" },
7815
  { 0, NULL }
7816
};
7817
7818
7819
static unsigned
7820
0
dissect_mms_T_unconfirmedPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7821
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7822
0
                                                NULL);
7823
7824
0
  return offset;
7825
0
}
7826
7827
7828
static const value_string mms_T_pdu_error_vals[] = {
7829
  {   0, "unknown-pdu-type" },
7830
  {   1, "invalid-pdu" },
7831
  {   2, "illegal-acse-mapping" },
7832
  { 0, NULL }
7833
};
7834
7835
7836
static unsigned
7837
0
dissect_mms_T_pdu_error(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7838
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7839
0
                                                NULL);
7840
7841
0
  return offset;
7842
0
}
7843
7844
7845
static const value_string mms_T_cancel_requestPDU_vals[] = {
7846
  {   0, "other" },
7847
  {   1, "invalid-invokeID" },
7848
  { 0, NULL }
7849
};
7850
7851
7852
static unsigned
7853
0
dissect_mms_T_cancel_requestPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7854
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7855
0
                                                NULL);
7856
7857
0
  return offset;
7858
0
}
7859
7860
7861
static const value_string mms_T_cancel_responsePDU_vals[] = {
7862
  {   0, "other" },
7863
  {   1, "invalid-invokeID" },
7864
  { 0, NULL }
7865
};
7866
7867
7868
static unsigned
7869
0
dissect_mms_T_cancel_responsePDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7870
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7871
0
                                                NULL);
7872
7873
0
  return offset;
7874
0
}
7875
7876
7877
static const value_string mms_T_cancel_errorPDU_vals[] = {
7878
  {   0, "other" },
7879
  {   1, "invalid-invokeID" },
7880
  {   2, "invalid-serviceError" },
7881
  {   3, "value-out-of-range" },
7882
  { 0, NULL }
7883
};
7884
7885
7886
static unsigned
7887
0
dissect_mms_T_cancel_errorPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7888
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7889
0
                                                NULL);
7890
7891
0
  return offset;
7892
0
}
7893
7894
7895
static const value_string mms_T_conclude_requestPDU_vals[] = {
7896
  {   0, "other" },
7897
  {   1, "invalid-argument" },
7898
  { 0, NULL }
7899
};
7900
7901
7902
static unsigned
7903
0
dissect_mms_T_conclude_requestPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7904
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7905
0
                                                NULL);
7906
7907
0
  return offset;
7908
0
}
7909
7910
7911
static const value_string mms_T_conclude_responsePDU_vals[] = {
7912
  {   0, "other" },
7913
  {   1, "invalid-result" },
7914
  { 0, NULL }
7915
};
7916
7917
7918
static unsigned
7919
0
dissect_mms_T_conclude_responsePDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7920
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7921
0
                                                NULL);
7922
7923
0
  return offset;
7924
0
}
7925
7926
7927
static const value_string mms_T_conclude_errorPDU_vals[] = {
7928
  {   0, "other" },
7929
  {   1, "invalid-serviceError" },
7930
  {   2, "value-out-of-range" },
7931
  { 0, NULL }
7932
};
7933
7934
7935
static unsigned
7936
0
dissect_mms_T_conclude_errorPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7937
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7938
0
                                                NULL);
7939
7940
0
  return offset;
7941
0
}
7942
7943
7944
static const value_string mms_T_rejectReason_vals[] = {
7945
  {   1, "confirmed-requestPDU" },
7946
  {   2, "confirmed-responsePDU" },
7947
  {   3, "confirmed-errorPDU" },
7948
  {   4, "unconfirmedPDU" },
7949
  {   5, "pdu-error" },
7950
  {   6, "cancel-requestPDU" },
7951
  {   7, "cancel-responsePDU" },
7952
  {   8, "cancel-errorPDU" },
7953
  {   9, "conclude-requestPDU" },
7954
  {  10, "conclude-responsePDU" },
7955
  {  11, "conclude-errorPDU" },
7956
  { 0, NULL }
7957
};
7958
7959
static const ber_choice_t T_rejectReason_choice[] = {
7960
  {   1, &hf_mms_confirmed_requestPDU, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_T_confirmed_requestPDU },
7961
  {   2, &hf_mms_confirmed_responsePDU, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_T_confirmed_responsePDU },
7962
  {   3, &hf_mms_confirmed_errorPDU, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_T_confirmed_errorPDU },
7963
  {   4, &hf_mms_unconfirmedPDU  , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_T_unconfirmedPDU },
7964
  {   5, &hf_mms_pdu_error       , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_T_pdu_error },
7965
  {   6, &hf_mms_cancel_requestPDU, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_mms_T_cancel_requestPDU },
7966
  {   7, &hf_mms_cancel_responsePDU, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_mms_T_cancel_responsePDU },
7967
  {   8, &hf_mms_cancel_errorPDU , BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_mms_T_cancel_errorPDU },
7968
  {   9, &hf_mms_conclude_requestPDU, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_mms_T_conclude_requestPDU },
7969
  {  10, &hf_mms_conclude_responsePDU, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_mms_T_conclude_responsePDU },
7970
  {  11, &hf_mms_conclude_errorPDU, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_mms_T_conclude_errorPDU },
7971
  { 0, NULL, 0, 0, 0, NULL }
7972
};
7973
7974
static unsigned
7975
1
dissect_mms_T_rejectReason(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7976
1
  offset = dissect_ber_choice(actx, tree, tvb, offset,
7977
1
                                 T_rejectReason_choice, hf_index, ett_mms_T_rejectReason,
7978
1
                                 NULL);
7979
7980
1
  return offset;
7981
1
}
7982
7983
7984
static const ber_sequence_t RejectPDU_sequence[] = {
7985
  { &hf_mms_originalInvokeID, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
7986
  { &hf_mms_rejectReason    , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_T_rejectReason },
7987
  { NULL, 0, 0, 0, NULL }
7988
};
7989
7990
static unsigned
7991
2
dissect_mms_RejectPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7992
2
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7993
2
                                   RejectPDU_sequence, hf_index, ett_mms_RejectPDU);
7994
7995
2
  return offset;
7996
2
}
7997
7998
7999
8000
static unsigned
8001
11
dissect_mms_Cancel_RequestPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8002
11
  offset = dissect_mms_Unsigned32(implicit_tag, tvb, offset, actx, tree, hf_index);
8003
8004
11
  return offset;
8005
11
}
8006
8007
8008
8009
static unsigned
8010
8
dissect_mms_Cancel_ResponsePDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8011
8
  offset = dissect_mms_Unsigned32(implicit_tag, tvb, offset, actx, tree, hf_index);
8012
8013
8
  return offset;
8014
8
}
8015
8016
8017
static const ber_sequence_t Cancel_ErrorPDU_sequence[] = {
8018
  { &hf_mms_originalInvokeID, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Unsigned32 },
8019
  { &hf_mms_serviceError    , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_ServiceError },
8020
  { NULL, 0, 0, 0, NULL }
8021
};
8022
8023
static unsigned
8024
7
dissect_mms_Cancel_ErrorPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8025
7
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8026
7
                                   Cancel_ErrorPDU_sequence, hf_index, ett_mms_Cancel_ErrorPDU);
8027
8028
7
  return offset;
8029
7
}
8030
8031
8032
8033
static unsigned
8034
0
dissect_mms_Integer16(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8035
0
  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8036
0
                                                NULL);
8037
8038
0
  return offset;
8039
0
}
8040
8041
8042
static int * const ParameterSupportOptions_bits[] = {
8043
  &hf_mms_ParameterSupportOptions_str1,
8044
  &hf_mms_ParameterSupportOptions_str2,
8045
  &hf_mms_ParameterSupportOptions_vnam,
8046
  &hf_mms_ParameterSupportOptions_valt,
8047
  &hf_mms_ParameterSupportOptions_vadr,
8048
  &hf_mms_ParameterSupportOptions_vsca,
8049
  &hf_mms_ParameterSupportOptions_tpy,
8050
  &hf_mms_ParameterSupportOptions_vlis,
8051
  &hf_mms_ParameterSupportOptions_real,
8052
  &hf_mms_ParameterSupportOptions_spare_bit9,
8053
  &hf_mms_ParameterSupportOptions_cei,
8054
  NULL
8055
};
8056
8057
static unsigned
8058
0
dissect_mms_ParameterSupportOptions(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8059
0
  offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8060
0
                                    ParameterSupportOptions_bits, 11, hf_index, ett_mms_ParameterSupportOptions,
8061
0
                                    NULL);
8062
8063
0
  return offset;
8064
0
}
8065
8066
8067
static int * const ServiceSupportOptions_bits[] = {
8068
  &hf_mms_ServiceSupportOptions_status,
8069
  &hf_mms_ServiceSupportOptions_getNameList,
8070
  &hf_mms_ServiceSupportOptions_identify,
8071
  &hf_mms_ServiceSupportOptions_rename,
8072
  &hf_mms_ServiceSupportOptions_read,
8073
  &hf_mms_ServiceSupportOptions_write,
8074
  &hf_mms_ServiceSupportOptions_getVariableAccessAttributes,
8075
  &hf_mms_ServiceSupportOptions_defineNamedVariable,
8076
  &hf_mms_ServiceSupportOptions_defineScatteredAccess,
8077
  &hf_mms_ServiceSupportOptions_getScatteredAccessAttributes,
8078
  &hf_mms_ServiceSupportOptions_deleteVariableAccess,
8079
  &hf_mms_ServiceSupportOptions_defineNamedVariableList,
8080
  &hf_mms_ServiceSupportOptions_getNamedVariableListAttributes,
8081
  &hf_mms_ServiceSupportOptions_deleteNamedVariableList,
8082
  &hf_mms_ServiceSupportOptions_defineNamedType,
8083
  &hf_mms_ServiceSupportOptions_getNamedTypeAttributes,
8084
  &hf_mms_ServiceSupportOptions_deleteNamedType,
8085
  &hf_mms_ServiceSupportOptions_input,
8086
  &hf_mms_ServiceSupportOptions_output,
8087
  &hf_mms_ServiceSupportOptions_takeControl,
8088
  &hf_mms_ServiceSupportOptions_relinquishControl,
8089
  &hf_mms_ServiceSupportOptions_defineSemaphore,
8090
  &hf_mms_ServiceSupportOptions_deleteSemaphore,
8091
  &hf_mms_ServiceSupportOptions_reportSemaphoreStatus,
8092
  &hf_mms_ServiceSupportOptions_reportPoolSemaphoreStatus,
8093
  &hf_mms_ServiceSupportOptions_reportSemaphoreEntryStatus,
8094
  &hf_mms_ServiceSupportOptions_initiateDownloadSequence,
8095
  &hf_mms_ServiceSupportOptions_downloadSegment,
8096
  &hf_mms_ServiceSupportOptions_terminateDownloadSequence,
8097
  &hf_mms_ServiceSupportOptions_initiateUploadSequence,
8098
  &hf_mms_ServiceSupportOptions_uploadSegment,
8099
  &hf_mms_ServiceSupportOptions_terminateUploadSequence,
8100
  &hf_mms_ServiceSupportOptions_requestDomainDownload,
8101
  &hf_mms_ServiceSupportOptions_requestDomainUpload,
8102
  &hf_mms_ServiceSupportOptions_loadDomainContent,
8103
  &hf_mms_ServiceSupportOptions_storeDomainContent,
8104
  &hf_mms_ServiceSupportOptions_deleteDomain,
8105
  &hf_mms_ServiceSupportOptions_getDomainAttributes,
8106
  &hf_mms_ServiceSupportOptions_createProgramInvocation,
8107
  &hf_mms_ServiceSupportOptions_deleteProgramInvocation,
8108
  &hf_mms_ServiceSupportOptions_start,
8109
  &hf_mms_ServiceSupportOptions_stop,
8110
  &hf_mms_ServiceSupportOptions_resume,
8111
  &hf_mms_ServiceSupportOptions_reset,
8112
  &hf_mms_ServiceSupportOptions_kill,
8113
  &hf_mms_ServiceSupportOptions_getProgramInvocationAttributes,
8114
  &hf_mms_ServiceSupportOptions_obtainFile,
8115
  &hf_mms_ServiceSupportOptions_defineEventCondition,
8116
  &hf_mms_ServiceSupportOptions_deleteEventCondition,
8117
  &hf_mms_ServiceSupportOptions_getEventConditionAttributes,
8118
  &hf_mms_ServiceSupportOptions_reportEventConditionStatus,
8119
  &hf_mms_ServiceSupportOptions_alterEventConditionMonitoring,
8120
  &hf_mms_ServiceSupportOptions_triggerEvent,
8121
  &hf_mms_ServiceSupportOptions_defineEventAction,
8122
  &hf_mms_ServiceSupportOptions_deleteEventAction,
8123
  &hf_mms_ServiceSupportOptions_getEventActionAttributes,
8124
  &hf_mms_ServiceSupportOptions_reportActionStatus,
8125
  &hf_mms_ServiceSupportOptions_defineEventEnrollment,
8126
  &hf_mms_ServiceSupportOptions_deleteEventEnrollment,
8127
  &hf_mms_ServiceSupportOptions_alterEventEnrollment,
8128
  &hf_mms_ServiceSupportOptions_reportEventEnrollmentStatus,
8129
  &hf_mms_ServiceSupportOptions_getEventEnrollmentAttributes,
8130
  &hf_mms_ServiceSupportOptions_acknowledgeEventNotification,
8131
  &hf_mms_ServiceSupportOptions_getAlarmSummary,
8132
  &hf_mms_ServiceSupportOptions_getAlarmEnrollmentSummary,
8133
  &hf_mms_ServiceSupportOptions_readJournal,
8134
  &hf_mms_ServiceSupportOptions_writeJournal,
8135
  &hf_mms_ServiceSupportOptions_initializeJournal,
8136
  &hf_mms_ServiceSupportOptions_reportJournalStatus,
8137
  &hf_mms_ServiceSupportOptions_createJournal,
8138
  &hf_mms_ServiceSupportOptions_deleteJournal,
8139
  &hf_mms_ServiceSupportOptions_getCapabilityList,
8140
  &hf_mms_ServiceSupportOptions_fileOpen,
8141
  &hf_mms_ServiceSupportOptions_fileRead,
8142
  &hf_mms_ServiceSupportOptions_fileClose,
8143
  &hf_mms_ServiceSupportOptions_fileRename,
8144
  &hf_mms_ServiceSupportOptions_fileDelete,
8145
  &hf_mms_ServiceSupportOptions_fileDirectory,
8146
  &hf_mms_ServiceSupportOptions_unsolicitedStatus,
8147
  &hf_mms_ServiceSupportOptions_informationReport,
8148
  &hf_mms_ServiceSupportOptions_eventNotification,
8149
  &hf_mms_ServiceSupportOptions_attachToEventCondition,
8150
  &hf_mms_ServiceSupportOptions_attachToSemaphore,
8151
  &hf_mms_ServiceSupportOptions_conclude,
8152
  &hf_mms_ServiceSupportOptions_cancel,
8153
  NULL
8154
};
8155
8156
static unsigned
8157
0
dissect_mms_ServiceSupportOptions(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8158
0
  offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
8159
0
                                    ServiceSupportOptions_bits, 85, hf_index, ett_mms_ServiceSupportOptions,
8160
0
                                    NULL);
8161
8162
0
  return offset;
8163
0
}
8164
8165
8166
static const ber_sequence_t InitRequestDetail_sequence[] = {
8167
  { &hf_mms_proposedVersionNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Integer16 },
8168
  { &hf_mms_proposedParameterCBB, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_ParameterSupportOptions },
8169
  { &hf_mms_servicesSupportedCalling, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_ServiceSupportOptions },
8170
  { NULL, 0, 0, 0, NULL }
8171
};
8172
8173
static unsigned
8174
0
dissect_mms_InitRequestDetail(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8175
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8176
0
                                   InitRequestDetail_sequence, hf_index, ett_mms_InitRequestDetail);
8177
8178
0
  return offset;
8179
0
}
8180
8181
8182
static const ber_sequence_t Initiate_RequestPDU_sequence[] = {
8183
  { &hf_mms_localDetailCalling, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Integer32 },
8184
  { &hf_mms_proposedMaxServOutstandingCalling, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Integer16 },
8185
  { &hf_mms_proposedMaxServOutstandingCalled, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Integer16 },
8186
  { &hf_mms_proposedDataStructureNestingLevel, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Integer8 },
8187
  { &hf_mms_mmsInitRequestDetail, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_InitRequestDetail },
8188
  { NULL, 0, 0, 0, NULL }
8189
};
8190
8191
static unsigned
8192
36
dissect_mms_Initiate_RequestPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8193
8194
36
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8195
36
                                   Initiate_RequestPDU_sequence, hf_index, ett_mms_Initiate_RequestPDU);
8196
8197
36
    mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
8198
36
    if(tree && mms_priv){
8199
18
        mms_priv->pdu_item = (proto_item*)tree->last_child;
8200
18
    }
8201
8202
8203
8204
36
  return offset;
8205
36
}
8206
8207
8208
static const ber_sequence_t InitResponseDetail_sequence[] = {
8209
  { &hf_mms_negociatedVersionNumber, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Integer16 },
8210
  { &hf_mms_negociatedParameterCBB, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_ParameterSupportOptions },
8211
  { &hf_mms_servicesSupportedCalled, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_ServiceSupportOptions },
8212
  { NULL, 0, 0, 0, NULL }
8213
};
8214
8215
static unsigned
8216
0
dissect_mms_InitResponseDetail(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8217
0
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8218
0
                                   InitResponseDetail_sequence, hf_index, ett_mms_InitResponseDetail);
8219
8220
0
  return offset;
8221
0
}
8222
8223
8224
static const ber_sequence_t Initiate_ResponsePDU_sequence[] = {
8225
  { &hf_mms_localDetailCalled, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Integer32 },
8226
  { &hf_mms_negociatedMaxServOutstandingCalling, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Integer16 },
8227
  { &hf_mms_negociatedMaxServOutstandingCalled, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Integer16 },
8228
  { &hf_mms_negociatedDataStructureNestingLevel, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Integer8 },
8229
  { &hf_mms_mmsInitResponseDetail, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_InitResponseDetail },
8230
  { NULL, 0, 0, 0, NULL }
8231
};
8232
8233
static unsigned
8234
1
dissect_mms_Initiate_ResponsePDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8235
8236
1
  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8237
1
                                   Initiate_ResponsePDU_sequence, hf_index, ett_mms_Initiate_ResponsePDU);
8238
8239
1
    mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
8240
1
    if(tree && mms_priv){
8241
0
        mms_priv->pdu_item = (proto_item*)tree->last_child;
8242
0
    }
8243
8244
1
  return offset;
8245
1
}
8246
8247
8248
8249
static unsigned
8250
17
dissect_mms_Initiate_ErrorPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8251
17
  offset = dissect_mms_ServiceError(implicit_tag, tvb, offset, actx, tree, hf_index);
8252
8253
17
  return offset;
8254
17
}
8255
8256
8257
8258
static unsigned
8259
8
dissect_mms_Conclude_RequestPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8260
8
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
8261
8262
8
  return offset;
8263
8
}
8264
8265
8266
8267
static unsigned
8268
3
dissect_mms_Conclude_ResponsePDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8269
3
  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
8270
8271
3
  return offset;
8272
3
}
8273
8274
8275
8276
static unsigned
8277
1
dissect_mms_Conclude_ErrorPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8278
1
  offset = dissect_mms_ServiceError(implicit_tag, tvb, offset, actx, tree, hf_index);
8279
8280
1
  return offset;
8281
1
}
8282
8283
8284
const value_string mms_MMSpdu_vals[] = {
8285
  {   0, "confirmed-RequestPDU" },
8286
  {   1, "confirmed-ResponsePDU" },
8287
  {   2, "confirmed-ErrorPDU" },
8288
  {   3, "unconfirmed-PDU" },
8289
  {   4, "rejectPDU" },
8290
  {   5, "cancel-RequestPDU" },
8291
  {   6, "cancel-ResponsePDU" },
8292
  {   7, "cancel-ErrorPDU" },
8293
  {   8, "initiate-RequestPDU" },
8294
  {   9, "initiate-ResponsePDU" },
8295
  {  10, "initiate-ErrorPDU" },
8296
  {  11, "conclude-RequestPDU" },
8297
  {  12, "conclude-ResponsePDU" },
8298
  {  13, "conclude-ErrorPDU" },
8299
  { 0, NULL }
8300
};
8301
8302
static const ber_choice_t MMSpdu_choice[] = {
8303
  {   0, &hf_mms_confirmed_RequestPDU, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_Confirmed_RequestPDU },
8304
  {   1, &hf_mms_confirmed_ResponsePDU, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Confirmed_ResponsePDU },
8305
  {   2, &hf_mms_confirmed_ErrorPDU, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_Confirmed_ErrorPDU },
8306
  {   3, &hf_mms_unconfirmed_PDU , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_Unconfirmed_PDU },
8307
  {   4, &hf_mms_rejectPDU       , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_RejectPDU },
8308
  {   5, &hf_mms_cancel_RequestPDU, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_Cancel_RequestPDU },
8309
  {   6, &hf_mms_cancel_ResponsePDU, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_mms_Cancel_ResponsePDU },
8310
  {   7, &hf_mms_cancel_ErrorPDU , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_mms_Cancel_ErrorPDU },
8311
  {   8, &hf_mms_initiate_RequestPDU, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_mms_Initiate_RequestPDU },
8312
  {   9, &hf_mms_initiate_ResponsePDU, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_mms_Initiate_ResponsePDU },
8313
  {  10, &hf_mms_initiate_ErrorPDU, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_mms_Initiate_ErrorPDU },
8314
  {  11, &hf_mms_conclude_RequestPDU, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_mms_Conclude_RequestPDU },
8315
  {  12, &hf_mms_conclude_ResponsePDU, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_mms_Conclude_ResponsePDU },
8316
  {  13, &hf_mms_conclude_ErrorPDU, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_mms_Conclude_ErrorPDU },
8317
  { 0, NULL, 0, 0, 0, NULL }
8318
};
8319
8320
unsigned
8321
975
dissect_mms_MMSpdu(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8322
975
        int branch_taken;
8323
975
        int8_t   ber_class;
8324
975
        bool     pc;
8325
975
        int32_t  tag;
8326
8327
975
        get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
8328
975
        mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
8329
975
        if(mms_priv){
8330
975
            mms_priv->mms_pdu_type = tag;
8331
975
        }
8332
8333
8334
975
  offset = dissect_ber_choice(actx, tree, tvb, offset,
8335
975
                                 MMSpdu_choice, hf_index, ett_mms_MMSpdu,
8336
975
                                 &branch_taken);
8337
8338
8339
975
    if( (branch_taken!=-1) && mms_MMSpdu_vals[branch_taken].strptr ){
8340
221
            if(mms_priv){
8341
221
                switch(mms_priv->mms_pdu_type){
8342
4
                    case MMS_UNCONFIRMED_PDU:
8343
4
                        if(mms_priv->vmd_specific==IEC61850_8_1_RPT){
8344
0
                            col_append_str(actx->pinfo->cinfo, COL_INFO, "Unconfirmed <RPT>");
8345
0
                            proto_item_append_text(mms_priv->pdu_item, " [RPT]");
8346
4
                        }else if((mms_priv->mms_trans_p)&&(mms_priv->mms_trans_p->itemid==IEC61850_ITEM_ID_OPER)){
8347
0
                            col_append_str(actx->pinfo->cinfo, COL_INFO, "Unconfirmed-CommandTermination");
8348
0
                            proto_item_append_text(mms_priv->pdu_item, " [Unconfirmed-CommandTermination]");
8349
0
                        }
8350
4
                    break;
8351
18
                    case MMS_INITIATE_REQUEST_PDU:
8352
18
                        col_append_str(actx->pinfo->cinfo, COL_INFO, "Associate Request");
8353
18
                        proto_item_append_text(mms_priv->pdu_item, " [Associate Request]");
8354
18
                        break;
8355
0
                    case MMS_INITIATE_RESPONSE_PDU:
8356
0
                        col_append_str(actx->pinfo->cinfo, COL_INFO, "Associate Response");
8357
0
                        proto_item_append_text(mms_priv->pdu_item, " [Associate Response]");
8358
0
                        break;
8359
82
                    case MMS_CONFIRMED_REQUEST_PDU:
8360
82
                        if(mms_priv->mms_trans_p){
8361
13
                            if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GET_SERV_DIR){
8362
0
                                col_append_str(actx->pinfo->cinfo, COL_INFO, "GetServerDirectoryRequest");
8363
0
                                proto_item_append_text(mms_priv->pdu_item, " [GetServerDirectoryRequest]");
8364
13
                            }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETLOGICALDEVICEDIRECTORY){
8365
0
                                col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetLogicalDeviceDirectoryRequest %s", mms_priv->itemid_str);
8366
0
                                proto_item_append_text(mms_priv->pdu_item, " [GetLogicalDeviceDirectoryRequest ]");
8367
13
                            }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY){
8368
0
                                col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataSetDirectoryRequest %s", mms_priv->itemid_str);
8369
0
                                proto_item_append_text(mms_priv->pdu_item, " [GetDataSetDirectoryRequest]");
8370
13
                            }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETDATADIRECTORY){
8371
0
                                col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataDirectoryRequest%s", private_data_get_moreCinfo(actx));
8372
0
                                proto_item_append_text(mms_priv->pdu_item, " [GetDataDirectoryRequest]");
8373
13
                            } else if (mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_READ){
8374
0
                                if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_$BR$_OR_$RP$){
8375
0
                                    col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetRCBValuesRequest %s", private_data_get_moreCinfo(actx));
8376
0
                                    proto_item_append_text(mms_priv->pdu_item, " [GetRCBValuesRequest]");
8377
0
                                }else{
8378
0
                                    col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataValueRequest %s", private_data_get_moreCinfo(actx));
8379
0
                                    proto_item_append_text(mms_priv->pdu_item, " [GetDataValueRequest]");
8380
0
                                }
8381
13
                            } else if (mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_WRITE){
8382
1
                                if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_$BR$_OR_$RP$){
8383
0
                                    col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SetRCBValuesRequest %s", private_data_get_moreCinfo(actx));
8384
0
                                    proto_item_append_text(mms_priv->pdu_item, " [SetRCBValuesRequest]");
8385
1
                                }else{
8386
1
                                    col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SetDataValueRequest %s", private_data_get_moreCinfo(actx));
8387
1
                                    proto_item_append_text(mms_priv->pdu_item, " [SetDataValueRequest]");
8388
1
                                }
8389
12
                            }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
8390
0
                                col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SelectWithValueRequest %s", private_data_get_moreCinfo(actx));
8391
0
                                proto_item_append_text(mms_priv->pdu_item, " [SelectWithValueRequest]");
8392
0
                            }
8393
69
                        }else if (mms_has_private_data(actx)){
8394
3
                            col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%s%s%s",
8395
3
                                    private_data_get_preCinfo(actx), mms_MMSpdu_vals[branch_taken].strptr, private_data_get_moreCinfo(actx));
8396
3
                        }
8397
82
                    break;
8398
73
                    case MMS_CONFIRMED_RESPONSE_PDU:
8399
73
                        if(mms_priv->mms_trans_p){
8400
1
                            if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GET_SERV_DIR){
8401
0
                                col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetServerDirectoryResponse %s", mms_priv->itemid_str);
8402
0
                                proto_item_append_text(mms_priv->pdu_item, " [GetServerDirectoryResponse ]");
8403
1
                            }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETLOGICALDEVICEDIRECTORY){
8404
0
                                col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetLogicalDeviceDirectoryResponse%s", private_data_get_moreCinfo(actx));
8405
0
                                proto_item_append_text(mms_priv->pdu_item, " [GetLogicalDeviceDirectoryResponse ]");
8406
1
                            }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY){
8407
0
                                col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataSetDirectoryResponse%s", private_data_get_moreCinfo(actx));
8408
0
                                proto_item_append_text(mms_priv->pdu_item, " [GetDataSetDirectoryResponse ]");
8409
1
                            }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETDATADIRECTORY){
8410
0
                                col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataDirectoryResponse%s", private_data_get_moreCinfo(actx));
8411
0
                                proto_item_append_text(mms_priv->pdu_item, " [GetDataDirectoryResponse ]");
8412
1
                            }else if (mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_READ){
8413
0
                                if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_$BR$_OR_$RP$){
8414
0
                                    col_append_str(actx->pinfo->cinfo, COL_INFO, "GetRCBValuesResponse");
8415
0
                                    proto_item_append_text(mms_priv->pdu_item, " [GetRCBValuesResponse]");
8416
0
                                }else{
8417
0
                                    col_append_str(actx->pinfo->cinfo, COL_INFO, "GetDataValueResponse");
8418
0
                                    proto_item_append_text(mms_priv->pdu_item, " [GetDataValueResponse ]");
8419
0
                                }
8420
0
                                if(mms_priv->success == 1){
8421
0
                                    col_append_str(actx->pinfo->cinfo, COL_INFO, " success");
8422
0
                                }else{
8423
0
                                     col_append_str(actx->pinfo->cinfo, COL_INFO, " failure");
8424
0
                                }
8425
1
                            } else if (mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_WRITE){
8426
0
                                if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_$BR$_OR_$RP$){
8427
0
                                    col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SetRCBValuesResponse %s", private_data_get_moreCinfo(actx));
8428
0
                                    proto_item_append_text(mms_priv->pdu_item, " [SetRCBValuesResponse]");
8429
0
                                }else{
8430
0
                                    col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SetDataValueResponse %s", private_data_get_moreCinfo(actx));
8431
0
                                    proto_item_append_text(mms_priv->pdu_item, " [SetDataValueResponse]");
8432
0
                                }
8433
1
                            }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
8434
0
                                col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SelectWithValueResponse %s", private_data_get_moreCinfo(actx));
8435
0
                                proto_item_append_text(mms_priv->pdu_item, " [SelectWithValueResponse]");
8436
0
                            }
8437
72
                        }else if(mms_has_private_data(actx)){
8438
0
                            col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%s%s%s",
8439
0
                                    private_data_get_preCinfo(actx), mms_MMSpdu_vals[branch_taken].strptr, private_data_get_moreCinfo(actx));
8440
0
                        }
8441
73
                    break;
8442
44
                   default:
8443
44
                        col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%s%s%s",
8444
44
                                private_data_get_preCinfo(actx), mms_MMSpdu_vals[branch_taken].strptr, private_data_get_moreCinfo(actx));
8445
44
                   break;
8446
221
                 }
8447
221
            }else if (mms_has_private_data(actx)){
8448
0
                    col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%s%s%s",
8449
0
                            private_data_get_preCinfo(actx), mms_MMSpdu_vals[branch_taken].strptr, private_data_get_moreCinfo(actx));
8450
0
            }else{
8451
0
                    col_append_str(actx->pinfo->cinfo, COL_INFO,
8452
0
                            mms_MMSpdu_vals[branch_taken].strptr);
8453
0
            }
8454
221
    }
8455
8456
8457
975
  return offset;
8458
975
}
8459
8460
8461
/*
8462
* Dissect MMS PDUs inside a PPDU.
8463
*/
8464
static int
8465
dissect_mms(tvbuff_t* tvb, packet_info* pinfo, proto_tree* parent_tree, void* data _U_)
8466
761
{
8467
761
    unsigned offset = 0;
8468
761
    unsigned old_offset;
8469
761
    proto_item* item = NULL;
8470
761
    proto_tree* tree = NULL;
8471
761
    asn1_ctx_t asn1_ctx;
8472
761
    asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo);
8473
8474
761
    if (parent_tree) {
8475
761
        item = proto_tree_add_item(parent_tree, proto_mms, tvb, 0, -1, ENC_NA);
8476
761
        tree = proto_item_add_subtree(item, ett_mms);
8477
761
        asn1_ctx.subtree.top_tree = parent_tree;
8478
761
    }
8479
761
    if (use_iec61850_mapping) {
8480
761
        col_set_str(pinfo->cinfo, COL_PROTOCOL, "MMS/IEC61850");
8481
761
    }
8482
0
    else {
8483
0
        col_set_str(pinfo->cinfo, COL_PROTOCOL, "MMS");
8484
0
    }
8485
761
    col_clear(pinfo->cinfo, COL_INFO);
8486
8487
1.62k
    while (tvb_reported_length_remaining(tvb, offset) > 0) {
8488
975
        old_offset = offset;
8489
975
        if (use_iec61850_mapping) {
8490
975
            asn1_ctx.private_data = (void*)wmem_new0(pinfo->pool, mms_actx_private_data_t);
8491
975
        }
8492
975
        offset = dissect_mms_MMSpdu(false, tvb, offset, &asn1_ctx, tree, -1);
8493
975
        if (asn1_ctx.private_data) {
8494
328
            wmem_free(pinfo->pool, asn1_ctx.private_data);
8495
328
        }
8496
975
        if (offset == old_offset) {
8497
107
            proto_tree_add_expert_remaining(tree, pinfo, &ei_mms_zero_pdu, tvb, offset);
8498
107
            break;
8499
107
        }
8500
975
    }
8501
761
    return tvb_captured_length(tvb);
8502
761
}
8503
8504
8505
/*--- proto_register_mms -------------------------------------------*/
8506
14
void proto_register_mms(void) {
8507
8508
    /* List of fields */
8509
14
    static hf_register_info hf[] =
8510
14
    {
8511
14
        { &hf_mms_response_in,
8512
14
                { "Response In", "mms.response_in",
8513
14
                FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_RESPONSE), 0x0,
8514
14
                "The response to this mms request is in this frame", HFILL }
8515
14
        },
8516
14
        { &hf_mms_response_to,
8517
14
                { "Request In", "mms.response_to",
8518
14
                FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_REQUEST), 0x0,
8519
14
                "This is a response to the mms request in this frame", HFILL }
8520
14
        },
8521
14
        { &hf_mms_response_time,
8522
14
                { "Response Time", "mms.response_time",
8523
14
                FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
8524
14
                "The time between the Call and the Reply", HFILL }
8525
14
        },
8526
14
        { &hf_mms_iec61850_rptid,
8527
14
          { "RptID", "mms.iec61850.rptid",
8528
14
            FT_STRING, BASE_NONE, NULL, 0,
8529
14
            NULL, HFILL }},
8530
14
        { &hf_mms_iec61850_reported_optflds,
8531
14
          { "Reported OptFlds", "mms.iec61850.reported_optfld",
8532
14
            FT_BYTES, BASE_NONE, NULL, 0,
8533
14
            NULL, HFILL }},
8534
14
        { &hf_mms_iec61850_seqnum,
8535
14
          { "SeqNum", "mms.iec61850.seqnum",
8536
14
            FT_INT32, BASE_DEC, NULL, 0,
8537
14
            NULL, HFILL }},
8538
14
        { &hf_mms_iec61850_timeofentry,
8539
14
          { "TimeOfEntry", "mms.iec61850.timeofentry",
8540
14
            FT_STRING, BASE_NONE, NULL, 0,
8541
14
            NULL, HFILL }},
8542
14
        { &hf_mms_iec61850_datset,
8543
14
          { "DatSet", "mms.iec61850.datset",
8544
14
            FT_STRING, BASE_NONE, NULL, 0,
8545
14
            NULL, HFILL }},
8546
14
        { &hf_mms_iec61850_bufovfl,
8547
14
          { "BufOvfl", "mms.iec61850.bufovfl",
8548
14
            FT_BOOLEAN, BASE_NONE, NULL, 0,
8549
14
            NULL, HFILL }},
8550
14
        { &hf_mms_iec61850_confrev,
8551
14
          { "ConfRev", "mms.iec61850.confrev",
8552
14
            FT_INT32, BASE_DEC, NULL, 0,
8553
14
            NULL, HFILL }},
8554
14
        { &hf_mms_iec61850_inclusion_bitstring,
8555
14
          { "Inclusion-bitstring", "mms.iec61850.inclusion_bitstring",
8556
14
            FT_BYTES, BASE_NONE, NULL, 0,
8557
14
            NULL, HFILL }},
8558
14
        { &hf_mms_iec61850_ctlModel,
8559
14
        { "ctlModel", "mms.iec61850.ctlmodel",
8560
14
            FT_UINT8, BASE_DEC, VALS(mms_iec6150_cntmodel_vals), 0,
8561
14
            NULL, HFILL }},
8562
14
        { &hf_mms_iec61850_QualityC0,
8563
14
        { "Validity", "mms.iec61850.validity",
8564
14
            FT_UINT8, BASE_HEX, VALS(mms_iec6150_validity_vals), 0xC0,
8565
14
            NULL, HFILL }},
8566
14
        { &hf_mms_iec61850_Quality20,
8567
14
        { "Overflow", "mms.iec61850.overflow",
8568
14
            FT_BOOLEAN, 8, NULL, 0x20,
8569
14
            NULL, HFILL }},
8570
14
        { &hf_mms_iec61850_Quality10,
8571
14
        { "OutofRange", "mms.iec61850.outofrange",
8572
14
            FT_BOOLEAN, 8, NULL, 0x10,
8573
14
            NULL, HFILL }},
8574
14
        { &hf_mms_iec61850_Quality8,
8575
14
        { "BadReference", "mms.iec61850.badreference",
8576
14
            FT_BOOLEAN, 8, NULL, 0x08,
8577
14
            NULL, HFILL }},
8578
14
        { &hf_mms_iec61850_Quality4,
8579
14
        { "Oscillatory", "mms.iec61850.oscillatory",
8580
14
            FT_BOOLEAN, 8, NULL, 0x04,
8581
14
            NULL, HFILL }},
8582
14
        { &hf_mms_iec61850_Quality2,
8583
14
        { "Failure", "mms.iec61850.failure",
8584
14
            FT_BOOLEAN, 8, NULL, 0x02,
8585
14
            NULL, HFILL }},
8586
14
        { &hf_mms_iec61850_Quality1,
8587
14
        { "OldData", "mms.iec61850.oldData",
8588
14
            FT_BOOLEAN, 8, NULL, 0x01,
8589
14
            NULL, HFILL }},
8590
14
        { &hf_mms_iec61850_Quality0080,
8591
14
        { "Inconsistent", "mms.iec61850.inconsistent",
8592
14
            FT_BOOLEAN, 8, NULL, 0x80,
8593
14
            NULL, HFILL }},
8594
14
        { &hf_mms_iec61850_Quality0040,
8595
14
        { "Inaccurate", "mms.iec61850.inaccurate",
8596
14
            FT_BOOLEAN, 8, NULL, 0x40,
8597
14
            NULL, HFILL }},
8598
14
        { &hf_mms_iec61850_Quality0020,
8599
14
        { "Source", "mms.iec61850.source",
8600
14
            FT_UINT8, BASE_HEX, VALS(mms_iec6150_source_vals), 0x20,
8601
14
            NULL, HFILL }},
8602
14
        { &hf_mms_iec61850_Quality0010,
8603
14
        { "Test", "mms.iec61850.test",
8604
14
            FT_BOOLEAN, 8, NULL, 0x10,
8605
14
            NULL, HFILL }},
8606
14
        { &hf_mms_iec61850_Quality0008,
8607
14
        { "OperatorBlocked", "mms.iec61850.operatorblocked",
8608
14
            FT_BOOLEAN, 8, NULL, 0x08,
8609
14
            NULL, HFILL }},
8610
14
        { &hf_mms_iec61850_quality_bitstring,
8611
14
          { "Quality", "mms.iec61850.quality_bitstring",
8612
14
            FT_BYTES, BASE_NONE, NULL, 0,
8613
14
            NULL, HFILL } },
8614
14
        { &hf_mms_iec61850_timequality80,
8615
14
        { "Leap Second Known", "mms.iec61850.leapsecondknown",
8616
14
            FT_BOOLEAN, 8, NULL, 0x80,
8617
14
            NULL, HFILL } },
8618
14
        { &hf_mms_iec61850_timequality40,
8619
14
        { "ClockFailure", "mms.iec61850.clockfailure",
8620
14
            FT_BOOLEAN, 8, NULL, 0x40,
8621
14
            NULL, HFILL } },
8622
14
        { &hf_mms_iec61850_timequality20,
8623
14
        { "Clock not synchronized", "mms.iec61850.clocknotsynchronized",
8624
14
            FT_BOOLEAN, 8, NULL, 0x20,
8625
14
            NULL, HFILL } },
8626
14
        { &hf_mms_iec61850_timequality1F,
8627
14
        { "Time Accuracy", "mms.iec61850.timeaccuracy",
8628
14
            FT_UINT8, BASE_HEX, VALS(mms_iec6150_timeaccuracy_vals), 0x1F,
8629
14
            NULL, HFILL } },
8630
14
        { &hf_mms_iec61850_check_bitstring,
8631
14
          { "Check", "mms.iec61850.check_bitstring",
8632
14
            FT_BYTES, BASE_NONE, NULL, 0,
8633
14
            NULL, HFILL } },
8634
14
        { &hf_mms_iec61850_check_b15,
8635
14
        { "Synchrocheck", "mms.iec61850.synchrocheck",
8636
14
            FT_BOOLEAN, 8, NULL, 0x80,
8637
14
            NULL, HFILL } },
8638
14
        { &hf_mms_iec61850_check_b14,
8639
14
        { "Interlock-check", "mms.iec61850.interlockcheck",
8640
14
            FT_BOOLEAN, 8, NULL, 0x40,
8641
14
            NULL, HFILL } },
8642
14
        { &hf_mms_iec61850_check_b13_b0,
8643
14
        { "Padding", "mms.iec61850.check.padding",
8644
14
            FT_UINT8, BASE_HEX, NULL, 0x3f,
8645
14
            NULL, HFILL } },
8646
14
        { &hf_mms_iec61850_orcategory,
8647
14
        { "orCategory", "mms.iec61850.orcategory",
8648
14
            FT_UINT8, BASE_DEC, VALS(mms_iec6150_orcategory_vals), 0,
8649
14
            NULL, HFILL } },
8650
14
        { &hf_mms_iec61850_beh$stval,
8651
14
        { "beh", "mms.iec61850.beh",
8652
14
            FT_UINT8, BASE_DEC, VALS(mms_iec6150_beh_vals), 0,
8653
14
            NULL, HFILL } },
8654
14
        { &hf_mms_iec61850_mod$stval,
8655
14
        { "mod", "mms.iec61850.mod",
8656
14
            FT_UINT8, BASE_DEC, VALS(mms_iec6150_beh_vals), 0,
8657
14
            NULL, HFILL } },
8658
14
        { &hf_mms_iec61850_health$stval,
8659
14
        { "health", "mms.iec61850.health",
8660
14
            FT_UINT8, BASE_DEC, VALS(mms_iec6150_health_vals), 0,
8661
14
            NULL, HFILL } },
8662
14
        { &hf_mms_iec61850_ctlval,
8663
14
        { "ctlVal", "mms.iec61850.ctlval",
8664
14
            FT_BOOLEAN, BASE_NONE, NULL, 0,
8665
14
            NULL, HFILL } },
8666
14
        { &hf_mms_iec61850_origin,
8667
14
          { "Origin", "mms.iec61850.origin",
8668
14
            FT_UINT32, BASE_DEC, NULL, 0,
8669
14
            NULL, HFILL } },
8670
14
        { &hf_mms_iec61850_origin_orcat,
8671
14
        { "Origin Category", "mms.iec61850.orcat",
8672
14
            FT_UINT8, BASE_DEC, NULL, 0,
8673
14
            NULL, HFILL } },
8674
14
        { &hf_mms_iec61850_origin_orident,
8675
14
        { "Origin Identifier", "mms.iec61850.orident",
8676
14
            FT_BYTES, BASE_NONE, NULL, 0,
8677
14
            NULL, HFILL } },
8678
14
        { &hf_mms_iec61850_ctlNum,
8679
14
        { "ctlNum", "mms.iec61850.ctlnum",
8680
14
            FT_INT8, BASE_DEC, NULL, 0,
8681
14
            NULL, HFILL } },
8682
14
        { &hf_mms_iec61850_T,
8683
14
        { "T(Timestamp)", "mms.iec61850.timestamp",
8684
14
            FT_STRING, BASE_NONE, NULL, 0,
8685
14
            NULL, HFILL } },
8686
14
        { &hf_mms_iec61850_test,
8687
14
        { "Test", "mms.iec61850.test",
8688
14
            FT_BOOLEAN, BASE_NONE, NULL, 0,
8689
14
            NULL, HFILL }},
8690
14
    { &hf_mms_confirmed_RequestPDU,
8691
14
      { "confirmed-RequestPDU", "mms.confirmed_RequestPDU_element",
8692
14
        FT_NONE, BASE_NONE, NULL, 0,
8693
14
        NULL, HFILL }},
8694
14
    { &hf_mms_confirmed_ResponsePDU,
8695
14
      { "confirmed-ResponsePDU", "mms.confirmed_ResponsePDU_element",
8696
14
        FT_NONE, BASE_NONE, NULL, 0,
8697
14
        NULL, HFILL }},
8698
14
    { &hf_mms_confirmed_ErrorPDU,
8699
14
      { "confirmed-ErrorPDU", "mms.confirmed_ErrorPDU_element",
8700
14
        FT_NONE, BASE_NONE, NULL, 0,
8701
14
        NULL, HFILL }},
8702
14
    { &hf_mms_unconfirmed_PDU,
8703
14
      { "unconfirmed-PDU", "mms.unconfirmed_PDU_element",
8704
14
        FT_NONE, BASE_NONE, NULL, 0,
8705
14
        NULL, HFILL }},
8706
14
    { &hf_mms_rejectPDU,
8707
14
      { "rejectPDU", "mms.rejectPDU_element",
8708
14
        FT_NONE, BASE_NONE, NULL, 0,
8709
14
        NULL, HFILL }},
8710
14
    { &hf_mms_cancel_RequestPDU,
8711
14
      { "cancel-RequestPDU", "mms.cancel_RequestPDU",
8712
14
        FT_INT32, BASE_DEC, NULL, 0,
8713
14
        NULL, HFILL }},
8714
14
    { &hf_mms_cancel_ResponsePDU,
8715
14
      { "cancel-ResponsePDU", "mms.cancel_ResponsePDU",
8716
14
        FT_INT32, BASE_DEC, NULL, 0,
8717
14
        NULL, HFILL }},
8718
14
    { &hf_mms_cancel_ErrorPDU,
8719
14
      { "cancel-ErrorPDU", "mms.cancel_ErrorPDU_element",
8720
14
        FT_NONE, BASE_NONE, NULL, 0,
8721
14
        NULL, HFILL }},
8722
14
    { &hf_mms_initiate_RequestPDU,
8723
14
      { "initiate-RequestPDU", "mms.initiate_RequestPDU_element",
8724
14
        FT_NONE, BASE_NONE, NULL, 0,
8725
14
        NULL, HFILL }},
8726
14
    { &hf_mms_initiate_ResponsePDU,
8727
14
      { "initiate-ResponsePDU", "mms.initiate_ResponsePDU_element",
8728
14
        FT_NONE, BASE_NONE, NULL, 0,
8729
14
        NULL, HFILL }},
8730
14
    { &hf_mms_initiate_ErrorPDU,
8731
14
      { "initiate-ErrorPDU", "mms.initiate_ErrorPDU_element",
8732
14
        FT_NONE, BASE_NONE, NULL, 0,
8733
14
        NULL, HFILL }},
8734
14
    { &hf_mms_conclude_RequestPDU,
8735
14
      { "conclude-RequestPDU", "mms.conclude_RequestPDU_element",
8736
14
        FT_NONE, BASE_NONE, NULL, 0,
8737
14
        NULL, HFILL }},
8738
14
    { &hf_mms_conclude_ResponsePDU,
8739
14
      { "conclude-ResponsePDU", "mms.conclude_ResponsePDU_element",
8740
14
        FT_NONE, BASE_NONE, NULL, 0,
8741
14
        NULL, HFILL }},
8742
14
    { &hf_mms_conclude_ErrorPDU,
8743
14
      { "conclude-ErrorPDU", "mms.conclude_ErrorPDU_element",
8744
14
        FT_NONE, BASE_NONE, NULL, 0,
8745
14
        NULL, HFILL }},
8746
14
    { &hf_mms_invokeID,
8747
14
      { "invokeID", "mms.invokeID",
8748
14
        FT_INT32, BASE_DEC, NULL, 0,
8749
14
        "Unsigned32", HFILL }},
8750
14
    { &hf_mms_listOfModifier,
8751
14
      { "listOfModifier", "mms.listOfModifier",
8752
14
        FT_UINT32, BASE_DEC, NULL, 0,
8753
14
        "SEQUENCE_OF_Modifier", HFILL }},
8754
14
    { &hf_mms_listOfModifier_item,
8755
14
      { "Modifier", "mms.Modifier",
8756
14
        FT_UINT32, BASE_DEC, VALS(mms_Modifier_vals), 0,
8757
14
        NULL, HFILL }},
8758
14
    { &hf_mms_confirmedServiceRequest,
8759
14
      { "confirmedServiceRequest", "mms.confirmedServiceRequest",
8760
14
        FT_UINT32, BASE_DEC|BASE_EXT_STRING, &mms_ConfirmedServiceRequest_vals_ext, 0,
8761
14
        NULL, HFILL }},
8762
14
    { &hf_mms_cs_request_detail,
8763
14
      { "cs-request-detail", "mms.cs_request_detail",
8764
14
        FT_UINT32, BASE_DEC, VALS(mms_CS_Request_Detail_vals), 0,
8765
14
        NULL, HFILL }},
8766
14
    { &hf_mms_unconfirmedService,
8767
14
      { "unconfirmedService", "mms.unconfirmedService",
8768
14
        FT_UINT32, BASE_DEC, VALS(mms_UnconfirmedService_vals), 0,
8769
14
        NULL, HFILL }},
8770
14
    { &hf_mms_confirmedServiceResponse,
8771
14
      { "confirmedServiceResponse", "mms.confirmedServiceResponse",
8772
14
        FT_UINT32, BASE_DEC, VALS(mms_ConfirmedServiceResponse_vals), 0,
8773
14
        NULL, HFILL }},
8774
14
    { &hf_mms_modifierPosition,
8775
14
      { "modifierPosition", "mms.modifierPosition",
8776
14
        FT_INT32, BASE_DEC, NULL, 0,
8777
14
        "Unsigned32", HFILL }},
8778
14
    { &hf_mms_serviceError,
8779
14
      { "serviceError", "mms.serviceError_element",
8780
14
        FT_NONE, BASE_NONE, NULL, 0,
8781
14
        NULL, HFILL }},
8782
14
    { &hf_mms_informationReport,
8783
14
      { "informationReport", "mms.informationReport_element",
8784
14
        FT_NONE, BASE_NONE, NULL, 0,
8785
14
        NULL, HFILL }},
8786
14
    { &hf_mms_unsolicitedStatus,
8787
14
      { "unsolicitedStatus", "mms.unsolicitedStatus_element",
8788
14
        FT_NONE, BASE_NONE, NULL, 0,
8789
14
        NULL, HFILL }},
8790
14
    { &hf_mms_eventNotification,
8791
14
      { "eventNotification", "mms.eventNotification_element",
8792
14
        FT_NONE, BASE_NONE, NULL, 0,
8793
14
        NULL, HFILL }},
8794
14
    { &hf_mms_attach_To_Event_Condition,
8795
14
      { "attach-To-Event-Condition", "mms.attach_To_Event_Condition_element",
8796
14
        FT_NONE, BASE_NONE, NULL, 0,
8797
14
        "AttachToEventCondition", HFILL }},
8798
14
    { &hf_mms_attach_To_Semaphore,
8799
14
      { "attach-To-Semaphore", "mms.attach_To_Semaphore_element",
8800
14
        FT_NONE, BASE_NONE, NULL, 0,
8801
14
        "AttachToSemaphore", HFILL }},
8802
14
    { &hf_mms_status,
8803
14
      { "status", "mms.status",
8804
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
8805
14
        "Status_Request", HFILL }},
8806
14
    { &hf_mms_getNameList,
8807
14
      { "getNameList", "mms.getNameList_element",
8808
14
        FT_NONE, BASE_NONE, NULL, 0,
8809
14
        "GetNameList_Request", HFILL }},
8810
14
    { &hf_mms_identify,
8811
14
      { "identify", "mms.identify_element",
8812
14
        FT_NONE, BASE_NONE, NULL, 0,
8813
14
        "Identify_Request", HFILL }},
8814
14
    { &hf_mms_rename,
8815
14
      { "rename", "mms.rename_element",
8816
14
        FT_NONE, BASE_NONE, NULL, 0,
8817
14
        "Rename_Request", HFILL }},
8818
14
    { &hf_mms_read,
8819
14
      { "read", "mms.read_element",
8820
14
        FT_NONE, BASE_NONE, NULL, 0,
8821
14
        "Read_Request", HFILL }},
8822
14
    { &hf_mms_write,
8823
14
      { "write", "mms.write_element",
8824
14
        FT_NONE, BASE_NONE, NULL, 0,
8825
14
        "Write_Request", HFILL }},
8826
14
    { &hf_mms_getVariableAccessAttributes,
8827
14
      { "getVariableAccessAttributes", "mms.getVariableAccessAttributes",
8828
14
        FT_UINT32, BASE_DEC, VALS(mms_GetVariableAccessAttributes_Request_vals), 0,
8829
14
        "GetVariableAccessAttributes_Request", HFILL }},
8830
14
    { &hf_mms_defineNamedVariable,
8831
14
      { "defineNamedVariable", "mms.defineNamedVariable_element",
8832
14
        FT_NONE, BASE_NONE, NULL, 0,
8833
14
        "DefineNamedVariable_Request", HFILL }},
8834
14
    { &hf_mms_defineScatteredAccess,
8835
14
      { "defineScatteredAccess", "mms.defineScatteredAccess_element",
8836
14
        FT_NONE, BASE_NONE, NULL, 0,
8837
14
        "DefineScatteredAccess_Request", HFILL }},
8838
14
    { &hf_mms_getScatteredAccessAttributes,
8839
14
      { "getScatteredAccessAttributes", "mms.getScatteredAccessAttributes",
8840
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
8841
14
        "GetScatteredAccessAttributes_Request", HFILL }},
8842
14
    { &hf_mms_deleteVariableAccess,
8843
14
      { "deleteVariableAccess", "mms.deleteVariableAccess_element",
8844
14
        FT_NONE, BASE_NONE, NULL, 0,
8845
14
        "DeleteVariableAccess_Request", HFILL }},
8846
14
    { &hf_mms_defineNamedVariableList,
8847
14
      { "defineNamedVariableList", "mms.defineNamedVariableList_element",
8848
14
        FT_NONE, BASE_NONE, NULL, 0,
8849
14
        "DefineNamedVariableList_Request", HFILL }},
8850
14
    { &hf_mms_getNamedVariableListAttributes,
8851
14
      { "getNamedVariableListAttributes", "mms.getNamedVariableListAttributes",
8852
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
8853
14
        "GetNamedVariableListAttributes_Request", HFILL }},
8854
14
    { &hf_mms_deleteNamedVariableList,
8855
14
      { "deleteNamedVariableList", "mms.deleteNamedVariableList_element",
8856
14
        FT_NONE, BASE_NONE, NULL, 0,
8857
14
        "DeleteNamedVariableList_Request", HFILL }},
8858
14
    { &hf_mms_defineNamedType,
8859
14
      { "defineNamedType", "mms.defineNamedType_element",
8860
14
        FT_NONE, BASE_NONE, NULL, 0,
8861
14
        "DefineNamedType_Request", HFILL }},
8862
14
    { &hf_mms_getNamedTypeAttributes,
8863
14
      { "getNamedTypeAttributes", "mms.getNamedTypeAttributes",
8864
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
8865
14
        "GetNamedTypeAttributes_Request", HFILL }},
8866
14
    { &hf_mms_deleteNamedType,
8867
14
      { "deleteNamedType", "mms.deleteNamedType_element",
8868
14
        FT_NONE, BASE_NONE, NULL, 0,
8869
14
        "DeleteNamedType_Request", HFILL }},
8870
14
    { &hf_mms_input,
8871
14
      { "input", "mms.input_element",
8872
14
        FT_NONE, BASE_NONE, NULL, 0,
8873
14
        "Input_Request", HFILL }},
8874
14
    { &hf_mms_output,
8875
14
      { "output", "mms.output_element",
8876
14
        FT_NONE, BASE_NONE, NULL, 0,
8877
14
        "Output_Request", HFILL }},
8878
14
    { &hf_mms_takeControl,
8879
14
      { "takeControl", "mms.takeControl_element",
8880
14
        FT_NONE, BASE_NONE, NULL, 0,
8881
14
        "TakeControl_Request", HFILL }},
8882
14
    { &hf_mms_relinquishControl,
8883
14
      { "relinquishControl", "mms.relinquishControl_element",
8884
14
        FT_NONE, BASE_NONE, NULL, 0,
8885
14
        "RelinquishControl_Request", HFILL }},
8886
14
    { &hf_mms_defineSemaphore,
8887
14
      { "defineSemaphore", "mms.defineSemaphore_element",
8888
14
        FT_NONE, BASE_NONE, NULL, 0,
8889
14
        "DefineSemaphore_Request", HFILL }},
8890
14
    { &hf_mms_deleteSemaphore,
8891
14
      { "deleteSemaphore", "mms.deleteSemaphore",
8892
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
8893
14
        "DeleteSemaphore_Request", HFILL }},
8894
14
    { &hf_mms_reportSemaphoreStatus,
8895
14
      { "reportSemaphoreStatus", "mms.reportSemaphoreStatus",
8896
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
8897
14
        "ReportSemaphoreStatus_Request", HFILL }},
8898
14
    { &hf_mms_reportPoolSemaphoreStatus,
8899
14
      { "reportPoolSemaphoreStatus", "mms.reportPoolSemaphoreStatus_element",
8900
14
        FT_NONE, BASE_NONE, NULL, 0,
8901
14
        "ReportPoolSemaphoreStatus_Request", HFILL }},
8902
14
    { &hf_mms_reportSemaphoreEntryStatus,
8903
14
      { "reportSemaphoreEntryStatus", "mms.reportSemaphoreEntryStatus_element",
8904
14
        FT_NONE, BASE_NONE, NULL, 0,
8905
14
        "ReportSemaphoreEntryStatus_Request", HFILL }},
8906
14
    { &hf_mms_initiateDownloadSequence,
8907
14
      { "initiateDownloadSequence", "mms.initiateDownloadSequence_element",
8908
14
        FT_NONE, BASE_NONE, NULL, 0,
8909
14
        "InitiateDownloadSequence_Request", HFILL }},
8910
14
    { &hf_mms_downloadSegment,
8911
14
      { "downloadSegment", "mms.downloadSegment",
8912
14
        FT_STRING, BASE_NONE, NULL, 0,
8913
14
        "DownloadSegment_Request", HFILL }},
8914
14
    { &hf_mms_terminateDownloadSequence,
8915
14
      { "terminateDownloadSequence", "mms.terminateDownloadSequence_element",
8916
14
        FT_NONE, BASE_NONE, NULL, 0,
8917
14
        "TerminateDownloadSequence_Request", HFILL }},
8918
14
    { &hf_mms_initiateUploadSequence,
8919
14
      { "initiateUploadSequence", "mms.initiateUploadSequence",
8920
14
        FT_STRING, BASE_NONE, NULL, 0,
8921
14
        "InitiateUploadSequence_Request", HFILL }},
8922
14
    { &hf_mms_uploadSegment,
8923
14
      { "uploadSegment", "mms.uploadSegment",
8924
14
        FT_INT32, BASE_DEC, NULL, 0,
8925
14
        "UploadSegment_Request", HFILL }},
8926
14
    { &hf_mms_terminateUploadSequence,
8927
14
      { "terminateUploadSequence", "mms.terminateUploadSequence",
8928
14
        FT_INT32, BASE_DEC, NULL, 0,
8929
14
        "TerminateUploadSequence_Request", HFILL }},
8930
14
    { &hf_mms_requestDomainDownload,
8931
14
      { "requestDomainDownload", "mms.requestDomainDownload_element",
8932
14
        FT_NONE, BASE_NONE, NULL, 0,
8933
14
        "RequestDomainDownload_Request", HFILL }},
8934
14
    { &hf_mms_requestDomainUpload,
8935
14
      { "requestDomainUpload", "mms.requestDomainUpload_element",
8936
14
        FT_NONE, BASE_NONE, NULL, 0,
8937
14
        "RequestDomainUpload_Request", HFILL }},
8938
14
    { &hf_mms_loadDomainContent,
8939
14
      { "loadDomainContent", "mms.loadDomainContent_element",
8940
14
        FT_NONE, BASE_NONE, NULL, 0,
8941
14
        "LoadDomainContent_Request", HFILL }},
8942
14
    { &hf_mms_storeDomainContent,
8943
14
      { "storeDomainContent", "mms.storeDomainContent_element",
8944
14
        FT_NONE, BASE_NONE, NULL, 0,
8945
14
        "StoreDomainContent_Request", HFILL }},
8946
14
    { &hf_mms_deleteDomain,
8947
14
      { "deleteDomain", "mms.deleteDomain",
8948
14
        FT_STRING, BASE_NONE, NULL, 0,
8949
14
        "DeleteDomain_Request", HFILL }},
8950
14
    { &hf_mms_getDomainAttributes,
8951
14
      { "getDomainAttributes", "mms.getDomainAttributes",
8952
14
        FT_STRING, BASE_NONE, NULL, 0,
8953
14
        "GetDomainAttributes_Request", HFILL }},
8954
14
    { &hf_mms_createProgramInvocation,
8955
14
      { "createProgramInvocation", "mms.createProgramInvocation_element",
8956
14
        FT_NONE, BASE_NONE, NULL, 0,
8957
14
        "CreateProgramInvocation_Request", HFILL }},
8958
14
    { &hf_mms_deleteProgramInvocation,
8959
14
      { "deleteProgramInvocation", "mms.deleteProgramInvocation",
8960
14
        FT_STRING, BASE_NONE, NULL, 0,
8961
14
        "DeleteProgramInvocation_Request", HFILL }},
8962
14
    { &hf_mms_start,
8963
14
      { "start", "mms.start_element",
8964
14
        FT_NONE, BASE_NONE, NULL, 0,
8965
14
        "Start_Request", HFILL }},
8966
14
    { &hf_mms_stop,
8967
14
      { "stop", "mms.stop_element",
8968
14
        FT_NONE, BASE_NONE, NULL, 0,
8969
14
        "Stop_Request", HFILL }},
8970
14
    { &hf_mms_resume,
8971
14
      { "resume", "mms.resume_element",
8972
14
        FT_NONE, BASE_NONE, NULL, 0,
8973
14
        "Resume_Request", HFILL }},
8974
14
    { &hf_mms_reset,
8975
14
      { "reset", "mms.reset_element",
8976
14
        FT_NONE, BASE_NONE, NULL, 0,
8977
14
        "Reset_Request", HFILL }},
8978
14
    { &hf_mms_kill,
8979
14
      { "kill", "mms.kill_element",
8980
14
        FT_NONE, BASE_NONE, NULL, 0,
8981
14
        "Kill_Request", HFILL }},
8982
14
    { &hf_mms_getProgramInvocationAttributes,
8983
14
      { "getProgramInvocationAttributes", "mms.getProgramInvocationAttributes",
8984
14
        FT_STRING, BASE_NONE, NULL, 0,
8985
14
        "GetProgramInvocationAttributes_Request", HFILL }},
8986
14
    { &hf_mms_obtainFile,
8987
14
      { "obtainFile", "mms.obtainFile_element",
8988
14
        FT_NONE, BASE_NONE, NULL, 0,
8989
14
        "ObtainFile_Request", HFILL }},
8990
14
    { &hf_mms_defineEventCondition,
8991
14
      { "defineEventCondition", "mms.defineEventCondition_element",
8992
14
        FT_NONE, BASE_NONE, NULL, 0,
8993
14
        "DefineEventCondition_Request", HFILL }},
8994
14
    { &hf_mms_confirmedServiceRequest_deleteEventCondition,
8995
14
      { "deleteEventCondition", "mms.confirmedServiceRequest.deleteEventCondition",
8996
14
        FT_UINT32, BASE_DEC, VALS(mms_DeleteEventCondition_Request_vals), 0,
8997
14
        "DeleteEventCondition_Request", HFILL }},
8998
14
    { &hf_mms_getEventConditionAttributes,
8999
14
      { "getEventConditionAttributes", "mms.getEventConditionAttributes",
9000
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
9001
14
        "GetEventConditionAttributes_Request", HFILL }},
9002
14
    { &hf_mms_reportEventConditionStatus,
9003
14
      { "reportEventConditionStatus", "mms.reportEventConditionStatus",
9004
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
9005
14
        "ReportEventConditionStatus_Request", HFILL }},
9006
14
    { &hf_mms_alterEventConditionMonitoring,
9007
14
      { "alterEventConditionMonitoring", "mms.alterEventConditionMonitoring_element",
9008
14
        FT_NONE, BASE_NONE, NULL, 0,
9009
14
        "AlterEventConditionMonitoring_Request", HFILL }},
9010
14
    { &hf_mms_triggerEvent,
9011
14
      { "triggerEvent", "mms.triggerEvent_element",
9012
14
        FT_NONE, BASE_NONE, NULL, 0,
9013
14
        "TriggerEvent_Request", HFILL }},
9014
14
    { &hf_mms_defineEventAction,
9015
14
      { "defineEventAction", "mms.defineEventAction_element",
9016
14
        FT_NONE, BASE_NONE, NULL, 0,
9017
14
        "DefineEventAction_Request", HFILL }},
9018
14
    { &hf_mms_confirmedServiceRequest_deleteEventAction,
9019
14
      { "deleteEventAction", "mms.confirmedServiceRequest.deleteEventAction",
9020
14
        FT_UINT32, BASE_DEC, VALS(mms_DeleteEventAction_Request_vals), 0,
9021
14
        "DeleteEventAction_Request", HFILL }},
9022
14
    { &hf_mms_getEventActionAttributes,
9023
14
      { "getEventActionAttributes", "mms.getEventActionAttributes",
9024
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
9025
14
        "GetEventActionAttributes_Request", HFILL }},
9026
14
    { &hf_mms_reportEventActionStatus,
9027
14
      { "reportEventActionStatus", "mms.reportEventActionStatus",
9028
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
9029
14
        "ReportEventActionStatus_Request", HFILL }},
9030
14
    { &hf_mms_defineEventEnrollment,
9031
14
      { "defineEventEnrollment", "mms.defineEventEnrollment_element",
9032
14
        FT_NONE, BASE_NONE, NULL, 0,
9033
14
        "DefineEventEnrollment_Request", HFILL }},
9034
14
    { &hf_mms_confirmedServiceRequest_deleteEventEnrollment,
9035
14
      { "deleteEventEnrollment", "mms.confirmedServiceRequest.deleteEventEnrollment",
9036
14
        FT_UINT32, BASE_DEC, VALS(mms_DeleteEventEnrollment_Request_vals), 0,
9037
14
        "DeleteEventEnrollment_Request", HFILL }},
9038
14
    { &hf_mms_alterEventEnrollment,
9039
14
      { "alterEventEnrollment", "mms.alterEventEnrollment_element",
9040
14
        FT_NONE, BASE_NONE, NULL, 0,
9041
14
        "AlterEventEnrollment_Request", HFILL }},
9042
14
    { &hf_mms_reportEventEnrollmentStatus,
9043
14
      { "reportEventEnrollmentStatus", "mms.reportEventEnrollmentStatus",
9044
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
9045
14
        "ReportEventEnrollmentStatus_Request", HFILL }},
9046
14
    { &hf_mms_getEventEnrollmentAttributes,
9047
14
      { "getEventEnrollmentAttributes", "mms.getEventEnrollmentAttributes_element",
9048
14
        FT_NONE, BASE_NONE, NULL, 0,
9049
14
        "GetEventEnrollmentAttributes_Request", HFILL }},
9050
14
    { &hf_mms_acknowledgeEventNotification,
9051
14
      { "acknowledgeEventNotification", "mms.acknowledgeEventNotification_element",
9052
14
        FT_NONE, BASE_NONE, NULL, 0,
9053
14
        "AcknowledgeEventNotification_Request", HFILL }},
9054
14
    { &hf_mms_getAlarmSummary,
9055
14
      { "getAlarmSummary", "mms.getAlarmSummary_element",
9056
14
        FT_NONE, BASE_NONE, NULL, 0,
9057
14
        "GetAlarmSummary_Request", HFILL }},
9058
14
    { &hf_mms_getAlarmEnrollmentSummary,
9059
14
      { "getAlarmEnrollmentSummary", "mms.getAlarmEnrollmentSummary_element",
9060
14
        FT_NONE, BASE_NONE, NULL, 0,
9061
14
        "GetAlarmEnrollmentSummary_Request", HFILL }},
9062
14
    { &hf_mms_readJournal,
9063
14
      { "readJournal", "mms.readJournal_element",
9064
14
        FT_NONE, BASE_NONE, NULL, 0,
9065
14
        "ReadJournal_Request", HFILL }},
9066
14
    { &hf_mms_writeJournal,
9067
14
      { "writeJournal", "mms.writeJournal_element",
9068
14
        FT_NONE, BASE_NONE, NULL, 0,
9069
14
        "WriteJournal_Request", HFILL }},
9070
14
    { &hf_mms_initializeJournal,
9071
14
      { "initializeJournal", "mms.initializeJournal_element",
9072
14
        FT_NONE, BASE_NONE, NULL, 0,
9073
14
        "InitializeJournal_Request", HFILL }},
9074
14
    { &hf_mms_reportJournalStatus,
9075
14
      { "reportJournalStatus", "mms.reportJournalStatus",
9076
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
9077
14
        "ReportJournalStatus_Request", HFILL }},
9078
14
    { &hf_mms_createJournal,
9079
14
      { "createJournal", "mms.createJournal_element",
9080
14
        FT_NONE, BASE_NONE, NULL, 0,
9081
14
        "CreateJournal_Request", HFILL }},
9082
14
    { &hf_mms_deleteJournal,
9083
14
      { "deleteJournal", "mms.deleteJournal_element",
9084
14
        FT_NONE, BASE_NONE, NULL, 0,
9085
14
        "DeleteJournal_Request", HFILL }},
9086
14
    { &hf_mms_getCapabilityList,
9087
14
      { "getCapabilityList", "mms.getCapabilityList_element",
9088
14
        FT_NONE, BASE_NONE, NULL, 0,
9089
14
        "GetCapabilityList_Request", HFILL }},
9090
14
    { &hf_mms_fileOpen,
9091
14
      { "fileOpen", "mms.fileOpen_element",
9092
14
        FT_NONE, BASE_NONE, NULL, 0,
9093
14
        "FileOpen_Request", HFILL }},
9094
14
    { &hf_mms_fileRead,
9095
14
      { "fileRead", "mms.fileRead",
9096
14
        FT_INT32, BASE_DEC, NULL, 0,
9097
14
        "FileRead_Request", HFILL }},
9098
14
    { &hf_mms_fileClose,
9099
14
      { "fileClose", "mms.fileClose",
9100
14
        FT_INT32, BASE_DEC, NULL, 0,
9101
14
        "FileClose_Request", HFILL }},
9102
14
    { &hf_mms_fileRename,
9103
14
      { "fileRename", "mms.fileRename_element",
9104
14
        FT_NONE, BASE_NONE, NULL, 0,
9105
14
        "FileRename_Request", HFILL }},
9106
14
    { &hf_mms_fileDelete,
9107
14
      { "fileDelete", "mms.fileDelete",
9108
14
        FT_UINT32, BASE_DEC, NULL, 0,
9109
14
        "FileDelete_Request", HFILL }},
9110
14
    { &hf_mms_fileDirectory,
9111
14
      { "fileDirectory", "mms.fileDirectory_element",
9112
14
        FT_NONE, BASE_NONE, NULL, 0,
9113
14
        "FileDirectory_Request", HFILL }},
9114
14
    { &hf_mms_foo,
9115
14
      { "foo", "mms.foo",
9116
14
        FT_INT32, BASE_DEC, NULL, 0,
9117
14
        "INTEGER", HFILL }},
9118
14
    { &hf_mms_status_01,
9119
14
      { "status", "mms.status_element",
9120
14
        FT_NONE, BASE_NONE, NULL, 0,
9121
14
        "Status_Response", HFILL }},
9122
14
    { &hf_mms_getNameList_01,
9123
14
      { "getNameList", "mms.getNameList_element",
9124
14
        FT_NONE, BASE_NONE, NULL, 0,
9125
14
        "GetNameList_Response", HFILL }},
9126
14
    { &hf_mms_identify_01,
9127
14
      { "identify", "mms.identify_element",
9128
14
        FT_NONE, BASE_NONE, NULL, 0,
9129
14
        "Identify_Response", HFILL }},
9130
14
    { &hf_mms_rename_01,
9131
14
      { "rename", "mms.rename_element",
9132
14
        FT_NONE, BASE_NONE, NULL, 0,
9133
14
        "Rename_Response", HFILL }},
9134
14
    { &hf_mms_read_01,
9135
14
      { "read", "mms.read_element",
9136
14
        FT_NONE, BASE_NONE, NULL, 0,
9137
14
        "Read_Response", HFILL }},
9138
14
    { &hf_mms_write_01,
9139
14
      { "write", "mms.write",
9140
14
        FT_UINT32, BASE_DEC, NULL, 0,
9141
14
        "Write_Response", HFILL }},
9142
14
    { &hf_mms_getVariableAccessAttributes_01,
9143
14
      { "getVariableAccessAttributes", "mms.getVariableAccessAttributes_element",
9144
14
        FT_NONE, BASE_NONE, NULL, 0,
9145
14
        "GetVariableAccessAttributes_Response", HFILL }},
9146
14
    { &hf_mms_defineNamedVariable_01,
9147
14
      { "defineNamedVariable", "mms.defineNamedVariable_element",
9148
14
        FT_NONE, BASE_NONE, NULL, 0,
9149
14
        "DefineNamedVariable_Response", HFILL }},
9150
14
    { &hf_mms_defineScatteredAccess_01,
9151
14
      { "defineScatteredAccess", "mms.defineScatteredAccess_element",
9152
14
        FT_NONE, BASE_NONE, NULL, 0,
9153
14
        "DefineScatteredAccess_Response", HFILL }},
9154
14
    { &hf_mms_getScatteredAccessAttributes_01,
9155
14
      { "getScatteredAccessAttributes", "mms.getScatteredAccessAttributes_element",
9156
14
        FT_NONE, BASE_NONE, NULL, 0,
9157
14
        "GetScatteredAccessAttributes_Response", HFILL }},
9158
14
    { &hf_mms_deleteVariableAccess_01,
9159
14
      { "deleteVariableAccess", "mms.deleteVariableAccess_element",
9160
14
        FT_NONE, BASE_NONE, NULL, 0,
9161
14
        "DeleteVariableAccess_Response", HFILL }},
9162
14
    { &hf_mms_defineNamedVariableList_01,
9163
14
      { "defineNamedVariableList", "mms.defineNamedVariableList_element",
9164
14
        FT_NONE, BASE_NONE, NULL, 0,
9165
14
        "DefineNamedVariableList_Response", HFILL }},
9166
14
    { &hf_mms_getNamedVariableListAttributes_01,
9167
14
      { "getNamedVariableListAttributes", "mms.getNamedVariableListAttributes_element",
9168
14
        FT_NONE, BASE_NONE, NULL, 0,
9169
14
        "GetNamedVariableListAttributes_Response", HFILL }},
9170
14
    { &hf_mms_deleteNamedVariableList_01,
9171
14
      { "deleteNamedVariableList", "mms.deleteNamedVariableList_element",
9172
14
        FT_NONE, BASE_NONE, NULL, 0,
9173
14
        "DeleteNamedVariableList_Response", HFILL }},
9174
14
    { &hf_mms_defineNamedType_01,
9175
14
      { "defineNamedType", "mms.defineNamedType_element",
9176
14
        FT_NONE, BASE_NONE, NULL, 0,
9177
14
        "DefineNamedType_Response", HFILL }},
9178
14
    { &hf_mms_getNamedTypeAttributes_01,
9179
14
      { "getNamedTypeAttributes", "mms.getNamedTypeAttributes_element",
9180
14
        FT_NONE, BASE_NONE, NULL, 0,
9181
14
        "GetNamedTypeAttributes_Response", HFILL }},
9182
14
    { &hf_mms_deleteNamedType_01,
9183
14
      { "deleteNamedType", "mms.deleteNamedType_element",
9184
14
        FT_NONE, BASE_NONE, NULL, 0,
9185
14
        "DeleteNamedType_Response", HFILL }},
9186
14
    { &hf_mms_input_01,
9187
14
      { "input", "mms.input",
9188
14
        FT_STRING, BASE_NONE, NULL, 0,
9189
14
        "Input_Response", HFILL }},
9190
14
    { &hf_mms_output_01,
9191
14
      { "output", "mms.output_element",
9192
14
        FT_NONE, BASE_NONE, NULL, 0,
9193
14
        "Output_Response", HFILL }},
9194
14
    { &hf_mms_takeControl_01,
9195
14
      { "takeControl", "mms.takeControl",
9196
14
        FT_UINT32, BASE_DEC, VALS(mms_TakeControl_Response_vals), 0,
9197
14
        "TakeControl_Response", HFILL }},
9198
14
    { &hf_mms_relinquishControl_01,
9199
14
      { "relinquishControl", "mms.relinquishControl_element",
9200
14
        FT_NONE, BASE_NONE, NULL, 0,
9201
14
        "RelinquishControl_Response", HFILL }},
9202
14
    { &hf_mms_defineSemaphore_01,
9203
14
      { "defineSemaphore", "mms.defineSemaphore_element",
9204
14
        FT_NONE, BASE_NONE, NULL, 0,
9205
14
        "DefineSemaphore_Response", HFILL }},
9206
14
    { &hf_mms_deleteSemaphore_01,
9207
14
      { "deleteSemaphore", "mms.deleteSemaphore_element",
9208
14
        FT_NONE, BASE_NONE, NULL, 0,
9209
14
        "DeleteSemaphore_Response", HFILL }},
9210
14
    { &hf_mms_reportSemaphoreStatus_01,
9211
14
      { "reportSemaphoreStatus", "mms.reportSemaphoreStatus_element",
9212
14
        FT_NONE, BASE_NONE, NULL, 0,
9213
14
        "ReportSemaphoreStatus_Response", HFILL }},
9214
14
    { &hf_mms_reportPoolSemaphoreStatus_01,
9215
14
      { "reportPoolSemaphoreStatus", "mms.reportPoolSemaphoreStatus_element",
9216
14
        FT_NONE, BASE_NONE, NULL, 0,
9217
14
        "ReportPoolSemaphoreStatus_Response", HFILL }},
9218
14
    { &hf_mms_reportSemaphoreEntryStatus_01,
9219
14
      { "reportSemaphoreEntryStatus", "mms.reportSemaphoreEntryStatus_element",
9220
14
        FT_NONE, BASE_NONE, NULL, 0,
9221
14
        "ReportSemaphoreEntryStatus_Response", HFILL }},
9222
14
    { &hf_mms_initiateDownloadSequence_01,
9223
14
      { "initiateDownloadSequence", "mms.initiateDownloadSequence_element",
9224
14
        FT_NONE, BASE_NONE, NULL, 0,
9225
14
        "InitiateDownloadSequence_Response", HFILL }},
9226
14
    { &hf_mms_downloadSegment_01,
9227
14
      { "downloadSegment", "mms.downloadSegment_element",
9228
14
        FT_NONE, BASE_NONE, NULL, 0,
9229
14
        "DownloadSegment_Response", HFILL }},
9230
14
    { &hf_mms_terminateDownloadSequence_01,
9231
14
      { "terminateDownloadSequence", "mms.terminateDownloadSequence_element",
9232
14
        FT_NONE, BASE_NONE, NULL, 0,
9233
14
        "TerminateDownloadSequence_Response", HFILL }},
9234
14
    { &hf_mms_initiateUploadSequence_01,
9235
14
      { "initiateUploadSequence", "mms.initiateUploadSequence_element",
9236
14
        FT_NONE, BASE_NONE, NULL, 0,
9237
14
        "InitiateUploadSequence_Response", HFILL }},
9238
14
    { &hf_mms_uploadSegment_01,
9239
14
      { "uploadSegment", "mms.uploadSegment_element",
9240
14
        FT_NONE, BASE_NONE, NULL, 0,
9241
14
        "UploadSegment_Response", HFILL }},
9242
14
    { &hf_mms_terminateUploadSequence_01,
9243
14
      { "terminateUploadSequence", "mms.terminateUploadSequence_element",
9244
14
        FT_NONE, BASE_NONE, NULL, 0,
9245
14
        "TerminateUploadSequence_Response", HFILL }},
9246
14
    { &hf_mms_requestDomainDownLoad,
9247
14
      { "requestDomainDownLoad", "mms.requestDomainDownLoad_element",
9248
14
        FT_NONE, BASE_NONE, NULL, 0,
9249
14
        "RequestDomainDownload_Response", HFILL }},
9250
14
    { &hf_mms_requestDomainUpload_01,
9251
14
      { "requestDomainUpload", "mms.requestDomainUpload_element",
9252
14
        FT_NONE, BASE_NONE, NULL, 0,
9253
14
        "RequestDomainUpload_Response", HFILL }},
9254
14
    { &hf_mms_loadDomainContent_01,
9255
14
      { "loadDomainContent", "mms.loadDomainContent_element",
9256
14
        FT_NONE, BASE_NONE, NULL, 0,
9257
14
        "LoadDomainContent_Response", HFILL }},
9258
14
    { &hf_mms_storeDomainContent_01,
9259
14
      { "storeDomainContent", "mms.storeDomainContent_element",
9260
14
        FT_NONE, BASE_NONE, NULL, 0,
9261
14
        "StoreDomainContent_Response", HFILL }},
9262
14
    { &hf_mms_deleteDomain_01,
9263
14
      { "deleteDomain", "mms.deleteDomain_element",
9264
14
        FT_NONE, BASE_NONE, NULL, 0,
9265
14
        "DeleteDomain_Response", HFILL }},
9266
14
    { &hf_mms_getDomainAttributes_01,
9267
14
      { "getDomainAttributes", "mms.getDomainAttributes_element",
9268
14
        FT_NONE, BASE_NONE, NULL, 0,
9269
14
        "GetDomainAttributes_Response", HFILL }},
9270
14
    { &hf_mms_createProgramInvocation_01,
9271
14
      { "createProgramInvocation", "mms.createProgramInvocation_element",
9272
14
        FT_NONE, BASE_NONE, NULL, 0,
9273
14
        "CreateProgramInvocation_Response", HFILL }},
9274
14
    { &hf_mms_deleteProgramInvocation_01,
9275
14
      { "deleteProgramInvocation", "mms.deleteProgramInvocation_element",
9276
14
        FT_NONE, BASE_NONE, NULL, 0,
9277
14
        "DeleteProgramInvocation_Response", HFILL }},
9278
14
    { &hf_mms_start_01,
9279
14
      { "start", "mms.start_element",
9280
14
        FT_NONE, BASE_NONE, NULL, 0,
9281
14
        "Start_Response", HFILL }},
9282
14
    { &hf_mms_stop_01,
9283
14
      { "stop", "mms.stop_element",
9284
14
        FT_NONE, BASE_NONE, NULL, 0,
9285
14
        "Stop_Response", HFILL }},
9286
14
    { &hf_mms_resume_01,
9287
14
      { "resume", "mms.resume_element",
9288
14
        FT_NONE, BASE_NONE, NULL, 0,
9289
14
        "Resume_Response", HFILL }},
9290
14
    { &hf_mms_reset_01,
9291
14
      { "reset", "mms.reset_element",
9292
14
        FT_NONE, BASE_NONE, NULL, 0,
9293
14
        "Reset_Response", HFILL }},
9294
14
    { &hf_mms_kill_01,
9295
14
      { "kill", "mms.kill_element",
9296
14
        FT_NONE, BASE_NONE, NULL, 0,
9297
14
        "Kill_Response", HFILL }},
9298
14
    { &hf_mms_getProgramInvocationAttributes_01,
9299
14
      { "getProgramInvocationAttributes", "mms.getProgramInvocationAttributes_element",
9300
14
        FT_NONE, BASE_NONE, NULL, 0,
9301
14
        "GetProgramInvocationAttributes_Response", HFILL }},
9302
14
    { &hf_mms_obtainFile_01,
9303
14
      { "obtainFile", "mms.obtainFile_element",
9304
14
        FT_NONE, BASE_NONE, NULL, 0,
9305
14
        "ObtainFile_Response", HFILL }},
9306
14
    { &hf_mms_fileOpen_01,
9307
14
      { "fileOpen", "mms.fileOpen_element",
9308
14
        FT_NONE, BASE_NONE, NULL, 0,
9309
14
        "FileOpen_Response", HFILL }},
9310
14
    { &hf_mms_defineEventCondition_01,
9311
14
      { "defineEventCondition", "mms.defineEventCondition_element",
9312
14
        FT_NONE, BASE_NONE, NULL, 0,
9313
14
        "DefineEventCondition_Response", HFILL }},
9314
14
    { &hf_mms_confirmedServiceResponse_deleteEventCondition,
9315
14
      { "deleteEventCondition", "mms.confirmedServiceResponse.deleteEventCondition",
9316
14
        FT_INT32, BASE_DEC, NULL, 0,
9317
14
        "DeleteEventCondition_Response", HFILL }},
9318
14
    { &hf_mms_getEventConditionAttributes_01,
9319
14
      { "getEventConditionAttributes", "mms.getEventConditionAttributes_element",
9320
14
        FT_NONE, BASE_NONE, NULL, 0,
9321
14
        "GetEventConditionAttributes_Response", HFILL }},
9322
14
    { &hf_mms_reportEventConditionStatus_01,
9323
14
      { "reportEventConditionStatus", "mms.reportEventConditionStatus_element",
9324
14
        FT_NONE, BASE_NONE, NULL, 0,
9325
14
        "ReportEventConditionStatus_Response", HFILL }},
9326
14
    { &hf_mms_alterEventConditionMonitoring_01,
9327
14
      { "alterEventConditionMonitoring", "mms.alterEventConditionMonitoring_element",
9328
14
        FT_NONE, BASE_NONE, NULL, 0,
9329
14
        "AlterEventConditionMonitoring_Response", HFILL }},
9330
14
    { &hf_mms_triggerEvent_01,
9331
14
      { "triggerEvent", "mms.triggerEvent_element",
9332
14
        FT_NONE, BASE_NONE, NULL, 0,
9333
14
        "TriggerEvent_Response", HFILL }},
9334
14
    { &hf_mms_defineEventAction_01,
9335
14
      { "defineEventAction", "mms.defineEventAction_element",
9336
14
        FT_NONE, BASE_NONE, NULL, 0,
9337
14
        "DefineEventAction_Response", HFILL }},
9338
14
    { &hf_mms_confirmedServiceRequest_deleteEventAction_01,
9339
14
      { "deleteEventAction", "mms.confirmedServiceRequest.deleteEventAction",
9340
14
        FT_INT32, BASE_DEC, NULL, 0,
9341
14
        "DeleteEventAction_Response", HFILL }},
9342
14
    { &hf_mms_getEventActionAttributes_01,
9343
14
      { "getEventActionAttributes", "mms.getEventActionAttributes_element",
9344
14
        FT_NONE, BASE_NONE, NULL, 0,
9345
14
        "GetEventActionAttributes_Response", HFILL }},
9346
14
    { &hf_mms_reportActionStatus,
9347
14
      { "reportActionStatus", "mms.reportActionStatus",
9348
14
        FT_INT32, BASE_DEC, NULL, 0,
9349
14
        "ReportEventActionStatus_Response", HFILL }},
9350
14
    { &hf_mms_defineEventEnrollment_01,
9351
14
      { "defineEventEnrollment", "mms.defineEventEnrollment_element",
9352
14
        FT_NONE, BASE_NONE, NULL, 0,
9353
14
        "DefineEventEnrollment_Response", HFILL }},
9354
14
    { &hf_mms_confirmedServiceResponse_deleteEventEnrollment,
9355
14
      { "deleteEventEnrollment", "mms.confirmedServiceResponse.deleteEventEnrollment",
9356
14
        FT_INT32, BASE_DEC, NULL, 0,
9357
14
        "DeleteEventEnrollment_Response", HFILL }},
9358
14
    { &hf_mms_alterEventEnrollment_01,
9359
14
      { "alterEventEnrollment", "mms.alterEventEnrollment_element",
9360
14
        FT_NONE, BASE_NONE, NULL, 0,
9361
14
        "AlterEventEnrollment_Response", HFILL }},
9362
14
    { &hf_mms_reportEventEnrollmentStatus_01,
9363
14
      { "reportEventEnrollmentStatus", "mms.reportEventEnrollmentStatus_element",
9364
14
        FT_NONE, BASE_NONE, NULL, 0,
9365
14
        "ReportEventEnrollmentStatus_Response", HFILL }},
9366
14
    { &hf_mms_getEventEnrollmentAttributes_01,
9367
14
      { "getEventEnrollmentAttributes", "mms.getEventEnrollmentAttributes_element",
9368
14
        FT_NONE, BASE_NONE, NULL, 0,
9369
14
        "GetEventEnrollmentAttributes_Response", HFILL }},
9370
14
    { &hf_mms_acknowledgeEventNotification_01,
9371
14
      { "acknowledgeEventNotification", "mms.acknowledgeEventNotification_element",
9372
14
        FT_NONE, BASE_NONE, NULL, 0,
9373
14
        "AcknowledgeEventNotification_Response", HFILL }},
9374
14
    { &hf_mms_getAlarmSummary_01,
9375
14
      { "getAlarmSummary", "mms.getAlarmSummary_element",
9376
14
        FT_NONE, BASE_NONE, NULL, 0,
9377
14
        "GetAlarmSummary_Response", HFILL }},
9378
14
    { &hf_mms_getAlarmEnrollmentSummary_01,
9379
14
      { "getAlarmEnrollmentSummary", "mms.getAlarmEnrollmentSummary_element",
9380
14
        FT_NONE, BASE_NONE, NULL, 0,
9381
14
        "GetAlarmEnrollmentSummary_Response", HFILL }},
9382
14
    { &hf_mms_readJournal_01,
9383
14
      { "readJournal", "mms.readJournal_element",
9384
14
        FT_NONE, BASE_NONE, NULL, 0,
9385
14
        "ReadJournal_Response", HFILL }},
9386
14
    { &hf_mms_writeJournal_01,
9387
14
      { "writeJournal", "mms.writeJournal_element",
9388
14
        FT_NONE, BASE_NONE, NULL, 0,
9389
14
        "WriteJournal_Response", HFILL }},
9390
14
    { &hf_mms_initializeJournal_01,
9391
14
      { "initializeJournal", "mms.initializeJournal",
9392
14
        FT_INT32, BASE_DEC, NULL, 0,
9393
14
        "InitializeJournal_Response", HFILL }},
9394
14
    { &hf_mms_reportJournalStatus_01,
9395
14
      { "reportJournalStatus", "mms.reportJournalStatus_element",
9396
14
        FT_NONE, BASE_NONE, NULL, 0,
9397
14
        "ReportJournalStatus_Response", HFILL }},
9398
14
    { &hf_mms_createJournal_01,
9399
14
      { "createJournal", "mms.createJournal_element",
9400
14
        FT_NONE, BASE_NONE, NULL, 0,
9401
14
        "CreateJournal_Response", HFILL }},
9402
14
    { &hf_mms_deleteJournal_01,
9403
14
      { "deleteJournal", "mms.deleteJournal_element",
9404
14
        FT_NONE, BASE_NONE, NULL, 0,
9405
14
        "DeleteJournal_Response", HFILL }},
9406
14
    { &hf_mms_getCapabilityList_01,
9407
14
      { "getCapabilityList", "mms.getCapabilityList_element",
9408
14
        FT_NONE, BASE_NONE, NULL, 0,
9409
14
        "GetCapabilityList_Response", HFILL }},
9410
14
    { &hf_mms_fileRead_01,
9411
14
      { "fileRead", "mms.fileRead_element",
9412
14
        FT_NONE, BASE_NONE, NULL, 0,
9413
14
        "FileRead_Response", HFILL }},
9414
14
    { &hf_mms_fileClose_01,
9415
14
      { "fileClose", "mms.fileClose_element",
9416
14
        FT_NONE, BASE_NONE, NULL, 0,
9417
14
        "FileClose_Response", HFILL }},
9418
14
    { &hf_mms_fileRename_01,
9419
14
      { "fileRename", "mms.fileRename_element",
9420
14
        FT_NONE, BASE_NONE, NULL, 0,
9421
14
        "FileRename_Response", HFILL }},
9422
14
    { &hf_mms_fileDelete_01,
9423
14
      { "fileDelete", "mms.fileDelete_element",
9424
14
        FT_NONE, BASE_NONE, NULL, 0,
9425
14
        "FileDelete_Response", HFILL }},
9426
14
    { &hf_mms_fileDirectory_01,
9427
14
      { "fileDirectory", "mms.fileDirectory_element",
9428
14
        FT_NONE, BASE_NONE, NULL, 0,
9429
14
        "FileDirectory_Response", HFILL }},
9430
14
    { &hf_mms_FileName_item,
9431
14
      { "FileName item", "mms.FileName_item",
9432
14
        FT_STRING, BASE_NONE, NULL, 0,
9433
14
        "GraphicString", HFILL }},
9434
14
    { &hf_mms_vmd_specific,
9435
14
      { "vmd-specific", "mms.vmd_specific",
9436
14
        FT_STRING, BASE_NONE, NULL, 0,
9437
14
        "Identifier", HFILL }},
9438
14
    { &hf_mms_domain_specific,
9439
14
      { "domain-specific", "mms.domain_specific_element",
9440
14
        FT_NONE, BASE_NONE, NULL, 0,
9441
14
        NULL, HFILL }},
9442
14
    { &hf_mms_domainId,
9443
14
      { "domainId", "mms.domainId",
9444
14
        FT_STRING, BASE_NONE, NULL, 0,
9445
14
        "Identifier", HFILL }},
9446
14
    { &hf_mms_objectName_domain_specific_itemId,
9447
14
      { "itemId", "mms.objectName_domain_specific_itemId",
9448
14
        FT_STRING, BASE_NONE, NULL, 0,
9449
14
        "ObjectName_domain_specific_itemid", HFILL }},
9450
14
    { &hf_mms_aa_specific,
9451
14
      { "aa-specific", "mms.aa_specific",
9452
14
        FT_STRING, BASE_NONE, NULL, 0,
9453
14
        "Identifier", HFILL }},
9454
14
    { &hf_mms_ap_title,
9455
14
      { "ap-title", "mms.ap_title",
9456
14
        FT_UINT32, BASE_DEC, VALS(acse_AP_title_vals), 0,
9457
14
        NULL, HFILL }},
9458
14
    { &hf_mms_ap_invocation_id,
9459
14
      { "ap-invocation-id", "mms.ap_invocation_id",
9460
14
        FT_INT32, BASE_DEC, NULL, 0,
9461
14
        NULL, HFILL }},
9462
14
    { &hf_mms_ae_qualifier,
9463
14
      { "ae-qualifier", "mms.ae_qualifier",
9464
14
        FT_UINT32, BASE_DEC, VALS(acse_ASO_qualifier_vals), 0,
9465
14
        NULL, HFILL }},
9466
14
    { &hf_mms_ae_invocation_id,
9467
14
      { "ae-invocation-id", "mms.ae_invocation_id",
9468
14
        FT_INT32, BASE_DEC, NULL, 0,
9469
14
        NULL, HFILL }},
9470
14
    { &hf_mms_localDetailCalling,
9471
14
      { "localDetailCalling", "mms.localDetailCalling",
9472
14
        FT_INT32, BASE_DEC, NULL, 0,
9473
14
        "Integer32", HFILL }},
9474
14
    { &hf_mms_proposedMaxServOutstandingCalling,
9475
14
      { "proposedMaxServOutstandingCalling", "mms.proposedMaxServOutstandingCalling",
9476
14
        FT_INT32, BASE_DEC, NULL, 0,
9477
14
        "Integer16", HFILL }},
9478
14
    { &hf_mms_proposedMaxServOutstandingCalled,
9479
14
      { "proposedMaxServOutstandingCalled", "mms.proposedMaxServOutstandingCalled",
9480
14
        FT_INT32, BASE_DEC, NULL, 0,
9481
14
        "Integer16", HFILL }},
9482
14
    { &hf_mms_proposedDataStructureNestingLevel,
9483
14
      { "proposedDataStructureNestingLevel", "mms.proposedDataStructureNestingLevel",
9484
14
        FT_INT32, BASE_DEC, NULL, 0,
9485
14
        "Integer8", HFILL }},
9486
14
    { &hf_mms_mmsInitRequestDetail,
9487
14
      { "mmsInitRequestDetail", "mms.mmsInitRequestDetail_element",
9488
14
        FT_NONE, BASE_NONE, NULL, 0,
9489
14
        "InitRequestDetail", HFILL }},
9490
14
    { &hf_mms_proposedVersionNumber,
9491
14
      { "proposedVersionNumber", "mms.proposedVersionNumber",
9492
14
        FT_INT32, BASE_DEC, NULL, 0,
9493
14
        "Integer16", HFILL }},
9494
14
    { &hf_mms_proposedParameterCBB,
9495
14
      { "proposedParameterCBB", "mms.proposedParameterCBB",
9496
14
        FT_BYTES, BASE_NONE, NULL, 0,
9497
14
        "ParameterSupportOptions", HFILL }},
9498
14
    { &hf_mms_servicesSupportedCalling,
9499
14
      { "servicesSupportedCalling", "mms.servicesSupportedCalling",
9500
14
        FT_BYTES, BASE_NONE, NULL, 0,
9501
14
        "ServiceSupportOptions", HFILL }},
9502
14
    { &hf_mms_localDetailCalled,
9503
14
      { "localDetailCalled", "mms.localDetailCalled",
9504
14
        FT_INT32, BASE_DEC, NULL, 0,
9505
14
        "Integer32", HFILL }},
9506
14
    { &hf_mms_negociatedMaxServOutstandingCalling,
9507
14
      { "negociatedMaxServOutstandingCalling", "mms.negociatedMaxServOutstandingCalling",
9508
14
        FT_INT32, BASE_DEC, NULL, 0,
9509
14
        "Integer16", HFILL }},
9510
14
    { &hf_mms_negociatedMaxServOutstandingCalled,
9511
14
      { "negociatedMaxServOutstandingCalled", "mms.negociatedMaxServOutstandingCalled",
9512
14
        FT_INT32, BASE_DEC, NULL, 0,
9513
14
        "Integer16", HFILL }},
9514
14
    { &hf_mms_negociatedDataStructureNestingLevel,
9515
14
      { "negociatedDataStructureNestingLevel", "mms.negociatedDataStructureNestingLevel",
9516
14
        FT_INT32, BASE_DEC, NULL, 0,
9517
14
        "Integer8", HFILL }},
9518
14
    { &hf_mms_mmsInitResponseDetail,
9519
14
      { "mmsInitResponseDetail", "mms.mmsInitResponseDetail_element",
9520
14
        FT_NONE, BASE_NONE, NULL, 0,
9521
14
        "InitResponseDetail", HFILL }},
9522
14
    { &hf_mms_negociatedVersionNumber,
9523
14
      { "negociatedVersionNumber", "mms.negociatedVersionNumber",
9524
14
        FT_INT32, BASE_DEC, NULL, 0,
9525
14
        "Integer16", HFILL }},
9526
14
    { &hf_mms_negociatedParameterCBB,
9527
14
      { "negociatedParameterCBB", "mms.negociatedParameterCBB",
9528
14
        FT_BYTES, BASE_NONE, NULL, 0,
9529
14
        "ParameterSupportOptions", HFILL }},
9530
14
    { &hf_mms_servicesSupportedCalled,
9531
14
      { "servicesSupportedCalled", "mms.servicesSupportedCalled",
9532
14
        FT_BYTES, BASE_NONE, NULL, 0,
9533
14
        "ServiceSupportOptions", HFILL }},
9534
14
    { &hf_mms_originalInvokeID,
9535
14
      { "originalInvokeID", "mms.originalInvokeID",
9536
14
        FT_INT32, BASE_DEC, NULL, 0,
9537
14
        "Unsigned32", HFILL }},
9538
14
    { &hf_mms_errorClass,
9539
14
      { "errorClass", "mms.errorClass",
9540
14
        FT_UINT32, BASE_DEC, VALS(mms_T_errorClass_vals), 0,
9541
14
        NULL, HFILL }},
9542
14
    { &hf_mms_vmd_state,
9543
14
      { "vmd-state", "mms.vmd_state",
9544
14
        FT_INT32, BASE_DEC, VALS(mms_T_vmd_state_vals), 0,
9545
14
        NULL, HFILL }},
9546
14
    { &hf_mms_application_reference,
9547
14
      { "application-reference", "mms.application_reference",
9548
14
        FT_INT32, BASE_DEC, VALS(mms_T_application_reference_vals), 0,
9549
14
        NULL, HFILL }},
9550
14
    { &hf_mms_definition,
9551
14
      { "definition", "mms.definition",
9552
14
        FT_INT32, BASE_DEC, VALS(mms_T_definition_vals), 0,
9553
14
        NULL, HFILL }},
9554
14
    { &hf_mms_resource,
9555
14
      { "resource", "mms.resource",
9556
14
        FT_INT32, BASE_DEC, VALS(mms_T_resource_vals), 0,
9557
14
        NULL, HFILL }},
9558
14
    { &hf_mms_service,
9559
14
      { "service", "mms.service",
9560
14
        FT_INT32, BASE_DEC, VALS(mms_T_service_vals), 0,
9561
14
        NULL, HFILL }},
9562
14
    { &hf_mms_service_preempt,
9563
14
      { "service-preempt", "mms.service_preempt",
9564
14
        FT_INT32, BASE_DEC, VALS(mms_T_service_preempt_vals), 0,
9565
14
        NULL, HFILL }},
9566
14
    { &hf_mms_time_resolution,
9567
14
      { "time-resolution", "mms.time_resolution",
9568
14
        FT_INT32, BASE_DEC, VALS(mms_T_time_resolution_vals), 0,
9569
14
        NULL, HFILL }},
9570
14
    { &hf_mms_access,
9571
14
      { "access", "mms.access",
9572
14
        FT_INT32, BASE_DEC, VALS(mms_T_access_vals), 0,
9573
14
        NULL, HFILL }},
9574
14
    { &hf_mms_initiate,
9575
14
      { "initiate", "mms.initiate",
9576
14
        FT_INT32, BASE_DEC, VALS(mms_T_initiate_vals), 0,
9577
14
        NULL, HFILL }},
9578
14
    { &hf_mms_conclude,
9579
14
      { "conclude", "mms.conclude",
9580
14
        FT_INT32, BASE_DEC, VALS(mms_T_conclude_vals), 0,
9581
14
        NULL, HFILL }},
9582
14
    { &hf_mms_cancel,
9583
14
      { "cancel", "mms.cancel",
9584
14
        FT_INT32, BASE_DEC, VALS(mms_T_cancel_vals), 0,
9585
14
        NULL, HFILL }},
9586
14
    { &hf_mms_file,
9587
14
      { "file", "mms.file",
9588
14
        FT_INT32, BASE_DEC, VALS(mms_T_file_vals), 0,
9589
14
        NULL, HFILL }},
9590
14
    { &hf_mms_others,
9591
14
      { "others", "mms.others",
9592
14
        FT_INT32, BASE_DEC, NULL, 0,
9593
14
        "INTEGER", HFILL }},
9594
14
    { &hf_mms_additionalCode,
9595
14
      { "additionalCode", "mms.additionalCode",
9596
14
        FT_INT32, BASE_DEC, NULL, 0,
9597
14
        "INTEGER", HFILL }},
9598
14
    { &hf_mms_additionalDescription,
9599
14
      { "additionalDescription", "mms.additionalDescription",
9600
14
        FT_STRING, BASE_NONE, NULL, 0,
9601
14
        "VisibleString", HFILL }},
9602
14
    { &hf_mms_serviceSpecificInformation,
9603
14
      { "serviceSpecificInformation", "mms.serviceSpecificInformation",
9604
14
        FT_UINT32, BASE_DEC, VALS(mms_T_serviceSpecificInformation_vals), 0,
9605
14
        NULL, HFILL }},
9606
14
    { &hf_mms_obtainFile_02,
9607
14
      { "obtainFile", "mms.obtainFile",
9608
14
        FT_INT32, BASE_DEC, VALS(mms_ObtainFile_Error_vals), 0,
9609
14
        "ObtainFile_Error", HFILL }},
9610
14
    { &hf_mms_start_02,
9611
14
      { "start", "mms.start",
9612
14
        FT_INT32, BASE_DEC, VALS(mms_ProgramInvocationState_vals), 0,
9613
14
        "Start_Error", HFILL }},
9614
14
    { &hf_mms_stop_02,
9615
14
      { "stop", "mms.stop",
9616
14
        FT_INT32, BASE_DEC, VALS(mms_ProgramInvocationState_vals), 0,
9617
14
        "Stop_Error", HFILL }},
9618
14
    { &hf_mms_resume_02,
9619
14
      { "resume", "mms.resume",
9620
14
        FT_INT32, BASE_DEC, VALS(mms_ProgramInvocationState_vals), 0,
9621
14
        "Resume_Error", HFILL }},
9622
14
    { &hf_mms_reset_02,
9623
14
      { "reset", "mms.reset",
9624
14
        FT_INT32, BASE_DEC, VALS(mms_ProgramInvocationState_vals), 0,
9625
14
        "Reset_Error", HFILL }},
9626
14
    { &hf_mms_deleteVariableAccess_02,
9627
14
      { "deleteVariableAccess", "mms.deleteVariableAccess",
9628
14
        FT_INT32, BASE_DEC, NULL, 0,
9629
14
        "DeleteVariableAccess_Error", HFILL }},
9630
14
    { &hf_mms_deleteNamedVariableList_02,
9631
14
      { "deleteNamedVariableList", "mms.deleteNamedVariableList",
9632
14
        FT_INT32, BASE_DEC, NULL, 0,
9633
14
        "DeleteNamedVariableList_Error", HFILL }},
9634
14
    { &hf_mms_deleteNamedType_02,
9635
14
      { "deleteNamedType", "mms.deleteNamedType",
9636
14
        FT_INT32, BASE_DEC, NULL, 0,
9637
14
        "DeleteNamedType_Error", HFILL }},
9638
14
    { &hf_mms_defineEventEnrollment_Error,
9639
14
      { "defineEventEnrollment-Error", "mms.defineEventEnrollment_Error",
9640
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
9641
14
        NULL, HFILL }},
9642
14
    { &hf_mms_fileRename_02,
9643
14
      { "fileRename", "mms.fileRename",
9644
14
        FT_INT32, BASE_DEC, VALS(mms_FileRename_Error_vals), 0,
9645
14
        "FileRename_Error", HFILL }},
9646
14
    { &hf_mms_additionalService,
9647
14
      { "additionalService", "mms.additionalService",
9648
14
        FT_UINT32, BASE_DEC, VALS(mms_AdditionalService_Error_vals), 0,
9649
14
        "AdditionalService_Error", HFILL }},
9650
14
    { &hf_mms_changeAccessControl,
9651
14
      { "changeAccessControl", "mms.changeAccessControl",
9652
14
        FT_INT32, BASE_DEC, NULL, 0,
9653
14
        "ChangeAccessControl_Error", HFILL }},
9654
14
    { &hf_mms_defineEcl,
9655
14
      { "defineEcl", "mms.defineEcl",
9656
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
9657
14
        "DefineEventConditionList_Error", HFILL }},
9658
14
    { &hf_mms_addECLReference,
9659
14
      { "addECLReference", "mms.addECLReference",
9660
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
9661
14
        "AddEventConditionListReference_Error", HFILL }},
9662
14
    { &hf_mms_removeECLReference,
9663
14
      { "removeECLReference", "mms.removeECLReference",
9664
14
        FT_UINT32, BASE_DEC, VALS(mms_RemoveEventConditionListReference_Error_vals), 0,
9665
14
        "RemoveEventConditionListReference_Error", HFILL }},
9666
14
    { &hf_mms_initiateUC,
9667
14
      { "initiateUC", "mms.initiateUC",
9668
14
        FT_UINT32, BASE_DEC, VALS(mms_InitiateUnitControl_Error_vals), 0,
9669
14
        "InitiateUnitControl_Error", HFILL }},
9670
14
    { &hf_mms_startUC,
9671
14
      { "startUC", "mms.startUC_element",
9672
14
        FT_NONE, BASE_NONE, NULL, 0,
9673
14
        "StartUnitControl_Error", HFILL }},
9674
14
    { &hf_mms_stopUC,
9675
14
      { "stopUC", "mms.stopUC_element",
9676
14
        FT_NONE, BASE_NONE, NULL, 0,
9677
14
        "StopUnitControl_Error", HFILL }},
9678
14
    { &hf_mms_deleteUC,
9679
14
      { "deleteUC", "mms.deleteUC",
9680
14
        FT_UINT32, BASE_DEC, VALS(mms_DeleteUnitControl_Error_vals), 0,
9681
14
        "DeleteUnitControl_Error", HFILL }},
9682
14
    { &hf_mms_loadUCFromFile,
9683
14
      { "loadUCFromFile", "mms.loadUCFromFile",
9684
14
        FT_UINT32, BASE_DEC, VALS(mms_LoadUnitControlFromFile_Error_vals), 0,
9685
14
        "LoadUnitControlFromFile_Error", HFILL }},
9686
14
    { &hf_mms_eventCondition,
9687
14
      { "eventCondition", "mms.eventCondition",
9688
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
9689
14
        "ObjectName", HFILL }},
9690
14
    { &hf_mms_eventConditionList,
9691
14
      { "eventConditionList", "mms.eventConditionList",
9692
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
9693
14
        "ObjectName", HFILL }},
9694
14
    { &hf_mms_domain,
9695
14
      { "domain", "mms.domain",
9696
14
        FT_STRING, BASE_NONE, NULL, 0,
9697
14
        "Identifier", HFILL }},
9698
14
    { &hf_mms_programInvocation,
9699
14
      { "programInvocation", "mms.programInvocation",
9700
14
        FT_STRING, BASE_NONE, NULL, 0,
9701
14
        "Identifier", HFILL }},
9702
14
    { &hf_mms_programInvocationName,
9703
14
      { "programInvocationName", "mms.programInvocationName",
9704
14
        FT_STRING, BASE_NONE, NULL, 0,
9705
14
        "Identifier", HFILL }},
9706
14
    { &hf_mms_programInvocationState,
9707
14
      { "programInvocationState", "mms.programInvocationState",
9708
14
        FT_INT32, BASE_DEC, VALS(mms_ProgramInvocationState_vals), 0,
9709
14
        NULL, HFILL }},
9710
14
    { &hf_mms_none,
9711
14
      { "none", "mms.none_element",
9712
14
        FT_NONE, BASE_NONE, NULL, 0,
9713
14
        NULL, HFILL }},
9714
14
    { &hf_mms_rejectReason,
9715
14
      { "rejectReason", "mms.rejectReason",
9716
14
        FT_UINT32, BASE_DEC, VALS(mms_T_rejectReason_vals), 0,
9717
14
        NULL, HFILL }},
9718
14
    { &hf_mms_confirmed_requestPDU,
9719
14
      { "confirmed-requestPDU", "mms.confirmed_requestPDU",
9720
14
        FT_INT32, BASE_DEC, VALS(mms_T_confirmed_requestPDU_vals), 0,
9721
14
        NULL, HFILL }},
9722
14
    { &hf_mms_confirmed_responsePDU,
9723
14
      { "confirmed-responsePDU", "mms.confirmed_responsePDU",
9724
14
        FT_INT32, BASE_DEC, VALS(mms_T_confirmed_responsePDU_vals), 0,
9725
14
        NULL, HFILL }},
9726
14
    { &hf_mms_confirmed_errorPDU,
9727
14
      { "confirmed-errorPDU", "mms.confirmed_errorPDU",
9728
14
        FT_INT32, BASE_DEC, VALS(mms_T_confirmed_errorPDU_vals), 0,
9729
14
        NULL, HFILL }},
9730
14
    { &hf_mms_unconfirmedPDU,
9731
14
      { "unconfirmedPDU", "mms.unconfirmedPDU",
9732
14
        FT_INT32, BASE_DEC, VALS(mms_T_unconfirmedPDU_vals), 0,
9733
14
        NULL, HFILL }},
9734
14
    { &hf_mms_pdu_error,
9735
14
      { "pdu-error", "mms.pdu_error",
9736
14
        FT_INT32, BASE_DEC, VALS(mms_T_pdu_error_vals), 0,
9737
14
        NULL, HFILL }},
9738
14
    { &hf_mms_cancel_requestPDU,
9739
14
      { "cancel-requestPDU", "mms.cancel_requestPDU",
9740
14
        FT_INT32, BASE_DEC, VALS(mms_T_cancel_requestPDU_vals), 0,
9741
14
        NULL, HFILL }},
9742
14
    { &hf_mms_cancel_responsePDU,
9743
14
      { "cancel-responsePDU", "mms.cancel_responsePDU",
9744
14
        FT_INT32, BASE_DEC, VALS(mms_T_cancel_responsePDU_vals), 0,
9745
14
        NULL, HFILL }},
9746
14
    { &hf_mms_cancel_errorPDU,
9747
14
      { "cancel-errorPDU", "mms.cancel_errorPDU",
9748
14
        FT_INT32, BASE_DEC, VALS(mms_T_cancel_errorPDU_vals), 0,
9749
14
        NULL, HFILL }},
9750
14
    { &hf_mms_conclude_requestPDU,
9751
14
      { "conclude-requestPDU", "mms.conclude_requestPDU",
9752
14
        FT_INT32, BASE_DEC, VALS(mms_T_conclude_requestPDU_vals), 0,
9753
14
        NULL, HFILL }},
9754
14
    { &hf_mms_conclude_responsePDU,
9755
14
      { "conclude-responsePDU", "mms.conclude_responsePDU",
9756
14
        FT_INT32, BASE_DEC, VALS(mms_T_conclude_responsePDU_vals), 0,
9757
14
        NULL, HFILL }},
9758
14
    { &hf_mms_conclude_errorPDU,
9759
14
      { "conclude-errorPDU", "mms.conclude_errorPDU",
9760
14
        FT_INT32, BASE_DEC, VALS(mms_T_conclude_errorPDU_vals), 0,
9761
14
        NULL, HFILL }},
9762
14
    { &hf_mms_vmdLogicalStatus,
9763
14
      { "vmdLogicalStatus", "mms.vmdLogicalStatus",
9764
14
        FT_INT32, BASE_DEC, VALS(mms_T_vmdLogicalStatus_vals), 0,
9765
14
        NULL, HFILL }},
9766
14
    { &hf_mms_vmdPhysicalStatus,
9767
14
      { "vmdPhysicalStatus", "mms.vmdPhysicalStatus",
9768
14
        FT_INT32, BASE_DEC, VALS(mms_T_vmdPhysicalStatus_vals), 0,
9769
14
        NULL, HFILL }},
9770
14
    { &hf_mms_localDetail,
9771
14
      { "localDetail", "mms.localDetail",
9772
14
        FT_BYTES, BASE_NONE, NULL, 0,
9773
14
        "BIT_STRING_SIZE_0_128", HFILL }},
9774
14
    { &hf_mms_vmdSpecific,
9775
14
      { "vmdSpecific", "mms.vmdSpecific_element",
9776
14
        FT_NONE, BASE_NONE, NULL, 0,
9777
14
        NULL, HFILL }},
9778
14
    { &hf_mms_domainSpecific,
9779
14
      { "domainSpecific", "mms.domainSpecific",
9780
14
        FT_STRING, BASE_NONE, NULL, 0,
9781
14
        "Identifier", HFILL }},
9782
14
    { &hf_mms_aaSpecific,
9783
14
      { "aaSpecific", "mms.aaSpecific_element",
9784
14
        FT_NONE, BASE_NONE, NULL, 0,
9785
14
        NULL, HFILL }},
9786
14
    { &hf_mms_extendedObjectClass,
9787
14
      { "extendedObjectClass", "mms.extendedObjectClass",
9788
14
        FT_UINT32, BASE_DEC, VALS(mms_T_extendedObjectClass_vals), 0,
9789
14
        NULL, HFILL }},
9790
14
    { &hf_mms_objectClass,
9791
14
      { "objectClass", "mms.objectClass",
9792
14
        FT_INT32, BASE_DEC, VALS(mms_ObjectClass_vals), 0,
9793
14
        NULL, HFILL }},
9794
14
    { &hf_mms_objectScope,
9795
14
      { "objectScope", "mms.objectScope",
9796
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectScope_vals), 0,
9797
14
        NULL, HFILL }},
9798
14
    { &hf_mms_getNameList_Request_continueAfter,
9799
14
      { "continueAfter", "mms.getNameList-Request_continueAfter",
9800
14
        FT_STRING, BASE_NONE, NULL, 0,
9801
14
        "Identifier", HFILL }},
9802
14
    { &hf_mms_listOfIdentifier,
9803
14
      { "listOfIdentifier", "mms.listOfIdentifier",
9804
14
        FT_UINT32, BASE_DEC, NULL, 0,
9805
14
        "SEQUENCE_OF_Identifier", HFILL }},
9806
14
    { &hf_mms_listOfIdentifier_item,
9807
14
      { "Identifier", "mms.Identifier",
9808
14
        FT_STRING, BASE_NONE, NULL, 0,
9809
14
        NULL, HFILL }},
9810
14
    { &hf_mms_moreFollows,
9811
14
      { "moreFollows", "mms.moreFollows",
9812
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9813
14
        "BOOLEAN", HFILL }},
9814
14
    { &hf_mms_vendorName,
9815
14
      { "vendorName", "mms.vendorName",
9816
14
        FT_STRING, BASE_NONE, NULL, 0,
9817
14
        "VisibleString", HFILL }},
9818
14
    { &hf_mms_modelName,
9819
14
      { "modelName", "mms.modelName",
9820
14
        FT_STRING, BASE_NONE, NULL, 0,
9821
14
        "VisibleString", HFILL }},
9822
14
    { &hf_mms_revision,
9823
14
      { "revision", "mms.revision",
9824
14
        FT_STRING, BASE_NONE, NULL, 0,
9825
14
        "VisibleString", HFILL }},
9826
14
    { &hf_mms_listOfAbstractSyntaxes,
9827
14
      { "listOfAbstractSyntaxes", "mms.listOfAbstractSyntaxes",
9828
14
        FT_UINT32, BASE_DEC, NULL, 0,
9829
14
        NULL, HFILL }},
9830
14
    { &hf_mms_listOfAbstractSyntaxes_item,
9831
14
      { "listOfAbstractSyntaxes item", "mms.listOfAbstractSyntaxes_item",
9832
14
        FT_OID, BASE_NONE, NULL, 0,
9833
14
        "OBJECT_IDENTIFIER", HFILL }},
9834
14
    { &hf_mms_extendedObjectClass_01,
9835
14
      { "extendedObjectClass", "mms.extendedObjectClass",
9836
14
        FT_UINT32, BASE_DEC, VALS(mms_T_extendedObjectClass_01_vals), 0,
9837
14
        "T_extendedObjectClass_01", HFILL }},
9838
14
    { &hf_mms_objectClass_01,
9839
14
      { "objectClass", "mms.objectClass",
9840
14
        FT_INT32, BASE_DEC, VALS(mms_T_objectClass_vals), 0,
9841
14
        NULL, HFILL }},
9842
14
    { &hf_mms_currentName,
9843
14
      { "currentName", "mms.currentName",
9844
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
9845
14
        "ObjectName", HFILL }},
9846
14
    { &hf_mms_newIdentifier,
9847
14
      { "newIdentifier", "mms.newIdentifier",
9848
14
        FT_STRING, BASE_NONE, NULL, 0,
9849
14
        "Identifier", HFILL }},
9850
14
    { &hf_mms_getCapabilityList_Request_continueAfter,
9851
14
      { "continueAfter", "mms.getCapabilityList-Request_continueAfter",
9852
14
        FT_STRING, BASE_NONE, NULL, 0,
9853
14
        "VisibleString", HFILL }},
9854
14
    { &hf_mms_listOfCapabilities,
9855
14
      { "listOfCapabilities", "mms.listOfCapabilities",
9856
14
        FT_UINT32, BASE_DEC, NULL, 0,
9857
14
        NULL, HFILL }},
9858
14
    { &hf_mms_listOfCapabilities_item,
9859
14
      { "listOfCapabilities item", "mms.listOfCapabilities_item",
9860
14
        FT_STRING, BASE_NONE, NULL, 0,
9861
14
        "VisibleString", HFILL }},
9862
14
    { &hf_mms_domainName,
9863
14
      { "domainName", "mms.domainName",
9864
14
        FT_STRING, BASE_NONE, NULL, 0,
9865
14
        "Identifier", HFILL }},
9866
14
    { &hf_mms_listOfCapabilities_01,
9867
14
      { "listOfCapabilities", "mms.listOfCapabilities",
9868
14
        FT_UINT32, BASE_DEC, NULL, 0,
9869
14
        "T_listOfCapabilities_01", HFILL }},
9870
14
    { &hf_mms_sharable,
9871
14
      { "sharable", "mms.sharable",
9872
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9873
14
        "BOOLEAN", HFILL }},
9874
14
    { &hf_mms_loadData,
9875
14
      { "loadData", "mms.loadData",
9876
14
        FT_UINT32, BASE_DEC, VALS(mms_T_loadData_vals), 0,
9877
14
        NULL, HFILL }},
9878
14
    { &hf_mms_non_coded,
9879
14
      { "non-coded", "mms.non_coded",
9880
14
        FT_BYTES, BASE_NONE, NULL, 0,
9881
14
        "OCTET_STRING", HFILL }},
9882
14
    { &hf_mms_coded,
9883
14
      { "coded", "mms.coded_element",
9884
14
        FT_NONE, BASE_NONE, NULL, 0,
9885
14
        "EXTERNALt", HFILL }},
9886
14
    { &hf_mms_discard,
9887
14
      { "discard", "mms.discard_element",
9888
14
        FT_NONE, BASE_NONE, NULL, 0,
9889
14
        "ServiceError", HFILL }},
9890
14
    { &hf_mms_ulsmID,
9891
14
      { "ulsmID", "mms.ulsmID",
9892
14
        FT_INT32, BASE_DEC, NULL, 0,
9893
14
        "Integer32", HFILL }},
9894
14
    { &hf_mms_listOfCapabilities_02,
9895
14
      { "listOfCapabilities", "mms.listOfCapabilities",
9896
14
        FT_UINT32, BASE_DEC, NULL, 0,
9897
14
        "T_listOfCapabilities_02", HFILL }},
9898
14
    { &hf_mms_loadData_01,
9899
14
      { "loadData", "mms.loadData",
9900
14
        FT_UINT32, BASE_DEC, VALS(mms_T_loadData_01_vals), 0,
9901
14
        "T_loadData_01", HFILL }},
9902
14
    { &hf_mms_listOfCapabilities_03,
9903
14
      { "listOfCapabilities", "mms.listOfCapabilities",
9904
14
        FT_UINT32, BASE_DEC, NULL, 0,
9905
14
        "T_listOfCapabilities_03", HFILL }},
9906
14
    { &hf_mms_fileName,
9907
14
      { "fileName", "mms.fileName",
9908
14
        FT_UINT32, BASE_DEC, NULL, 0,
9909
14
        NULL, HFILL }},
9910
14
    { &hf_mms_listOfCapabilities_04,
9911
14
      { "listOfCapabilities", "mms.listOfCapabilities",
9912
14
        FT_UINT32, BASE_DEC, NULL, 0,
9913
14
        "T_listOfCapabilities_04", HFILL }},
9914
14
    { &hf_mms_thirdParty,
9915
14
      { "thirdParty", "mms.thirdParty_element",
9916
14
        FT_NONE, BASE_NONE, NULL, 0,
9917
14
        "ApplicationReference", HFILL }},
9918
14
    { &hf_mms_filenName,
9919
14
      { "filenName", "mms.filenName",
9920
14
        FT_UINT32, BASE_DEC, NULL, 0,
9921
14
        "FileName", HFILL }},
9922
14
    { &hf_mms_listOfCapabilities_05,
9923
14
      { "listOfCapabilities", "mms.listOfCapabilities",
9924
14
        FT_UINT32, BASE_DEC, NULL, 0,
9925
14
        "T_listOfCapabilities_05", HFILL }},
9926
14
    { &hf_mms_getDomainAttributes_Response_state,
9927
14
      { "state", "mms.getDomainAttributes-Response_state",
9928
14
        FT_INT32, BASE_DEC, VALS(mms_DomainState_vals), 0,
9929
14
        "DomainState", HFILL }},
9930
14
    { &hf_mms_mmsDeletable,
9931
14
      { "mmsDeletable", "mms.mmsDeletable",
9932
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9933
14
        "BOOLEAN", HFILL }},
9934
14
    { &hf_mms_listOfProgramInvocations,
9935
14
      { "listOfProgramInvocations", "mms.listOfProgramInvocations",
9936
14
        FT_UINT32, BASE_DEC, NULL, 0,
9937
14
        "SEQUENCE_OF_Identifier", HFILL }},
9938
14
    { &hf_mms_listOfProgramInvocations_item,
9939
14
      { "Identifier", "mms.Identifier",
9940
14
        FT_STRING, BASE_NONE, NULL, 0,
9941
14
        NULL, HFILL }},
9942
14
    { &hf_mms_uploadInProgress,
9943
14
      { "uploadInProgress", "mms.uploadInProgress",
9944
14
        FT_INT32, BASE_DEC, NULL, 0,
9945
14
        "Integer8", HFILL }},
9946
14
    { &hf_mms_listOfDomainName,
9947
14
      { "listOfDomainName", "mms.listOfDomainName",
9948
14
        FT_UINT32, BASE_DEC, NULL, 0,
9949
14
        "SEQUENCE_OF_Identifier", HFILL }},
9950
14
    { &hf_mms_listOfDomainName_item,
9951
14
      { "Identifier", "mms.Identifier",
9952
14
        FT_STRING, BASE_NONE, NULL, 0,
9953
14
        NULL, HFILL }},
9954
14
    { &hf_mms_reusable,
9955
14
      { "reusable", "mms.reusable",
9956
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9957
14
        "BOOLEAN", HFILL }},
9958
14
    { &hf_mms_monitorType,
9959
14
      { "monitorType", "mms.monitorType",
9960
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9961
14
        "BOOLEAN", HFILL }},
9962
14
    { &hf_mms_executionArgument,
9963
14
      { "executionArgument", "mms.executionArgument",
9964
14
        FT_UINT32, BASE_DEC, VALS(mms_T_executionArgument_vals), 0,
9965
14
        NULL, HFILL }},
9966
14
    { &hf_mms_simpleString,
9967
14
      { "simpleString", "mms.simpleString",
9968
14
        FT_STRING, BASE_NONE, NULL, 0,
9969
14
        "VisibleString", HFILL }},
9970
14
    { &hf_mms_encodedString,
9971
14
      { "encodedString", "mms.encodedString_element",
9972
14
        FT_NONE, BASE_NONE, NULL, 0,
9973
14
        "EXTERNALt", HFILL }},
9974
14
    { &hf_mms_executionArgument_01,
9975
14
      { "executionArgument", "mms.executionArgument",
9976
14
        FT_UINT32, BASE_DEC, VALS(mms_T_executionArgument_01_vals), 0,
9977
14
        "T_executionArgument_01", HFILL }},
9978
14
    { &hf_mms_getProgramInvocationAttributes_Response_state,
9979
14
      { "state", "mms.getProgramInvocationAttributes-Response_state",
9980
14
        FT_INT32, BASE_DEC, VALS(mms_ProgramInvocationState_vals), 0,
9981
14
        "ProgramInvocationState", HFILL }},
9982
14
    { &hf_mms_listOfDomainNames,
9983
14
      { "listOfDomainNames", "mms.listOfDomainNames",
9984
14
        FT_UINT32, BASE_DEC, NULL, 0,
9985
14
        "SEQUENCE_OF_Identifier", HFILL }},
9986
14
    { &hf_mms_listOfDomainNames_item,
9987
14
      { "Identifier", "mms.Identifier",
9988
14
        FT_STRING, BASE_NONE, NULL, 0,
9989
14
        NULL, HFILL }},
9990
14
    { &hf_mms_monitor,
9991
14
      { "monitor", "mms.monitor",
9992
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
9993
14
        "BOOLEAN", HFILL }},
9994
14
    { &hf_mms_startArgument,
9995
14
      { "startArgument", "mms.startArgument",
9996
14
        FT_STRING, BASE_NONE, NULL, 0,
9997
14
        "VisibleString", HFILL }},
9998
14
    { &hf_mms_executionArgument_02,
9999
14
      { "executionArgument", "mms.executionArgument",
10000
14
        FT_UINT32, BASE_DEC, VALS(mms_T_executionArgument_02_vals), 0,
10001
14
        "T_executionArgument_02", HFILL }},
10002
14
    { &hf_mms_typeName,
10003
14
      { "typeName", "mms.typeName",
10004
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10005
14
        "ObjectName", HFILL }},
10006
14
    { &hf_mms_array,
10007
14
      { "array", "mms.array_element",
10008
14
        FT_NONE, BASE_NONE, NULL, 0,
10009
14
        NULL, HFILL }},
10010
14
    { &hf_mms_packed,
10011
14
      { "packed", "mms.packed",
10012
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10013
14
        "BOOLEAN", HFILL }},
10014
14
    { &hf_mms_numberOfElements,
10015
14
      { "numberOfElements", "mms.numberOfElements",
10016
14
        FT_INT32, BASE_DEC, NULL, 0,
10017
14
        "Unsigned32", HFILL }},
10018
14
    { &hf_mms_elementType,
10019
14
      { "elementType", "mms.elementType",
10020
14
        FT_UINT32, BASE_DEC, VALS(mms_TypeSpecification_vals), 0,
10021
14
        "TypeSpecification", HFILL }},
10022
14
    { &hf_mms_structure,
10023
14
      { "structure", "mms.structure_element",
10024
14
        FT_NONE, BASE_NONE, NULL, 0,
10025
14
        NULL, HFILL }},
10026
14
    { &hf_mms_components,
10027
14
      { "components", "mms.components",
10028
14
        FT_UINT32, BASE_DEC, NULL, 0,
10029
14
        NULL, HFILL }},
10030
14
    { &hf_mms_components_item,
10031
14
      { "components item", "mms.components_item_element",
10032
14
        FT_NONE, BASE_NONE, NULL, 0,
10033
14
        NULL, HFILL }},
10034
14
    { &hf_mms_componentName,
10035
14
      { "componentName", "mms.componentName",
10036
14
        FT_STRING, BASE_NONE, NULL, 0,
10037
14
        "Identifier", HFILL }},
10038
14
    { &hf_mms_componentType,
10039
14
      { "componentType", "mms.componentType",
10040
14
        FT_UINT32, BASE_DEC, VALS(mms_TypeSpecification_vals), 0,
10041
14
        "TypeSpecification", HFILL }},
10042
14
    { &hf_mms_boolean,
10043
14
      { "boolean", "mms.boolean_element",
10044
14
        FT_NONE, BASE_NONE, NULL, 0,
10045
14
        NULL, HFILL }},
10046
14
    { &hf_mms_typeSpecification_bit_string,
10047
14
      { "bit-string", "mms.typeSpecification_bit-string",
10048
14
        FT_INT32, BASE_DEC, NULL, 0,
10049
14
        "Integer32", HFILL }},
10050
14
    { &hf_mms_integer,
10051
14
      { "integer", "mms.integer",
10052
14
        FT_INT32, BASE_DEC, NULL, 0,
10053
14
        "Unsigned8", HFILL }},
10054
14
    { &hf_mms_unsigned,
10055
14
      { "unsigned", "mms.unsigned",
10056
14
        FT_INT32, BASE_DEC, NULL, 0,
10057
14
        "Unsigned8", HFILL }},
10058
14
    { &hf_mms_typeSpecification_octet_string,
10059
14
      { "octet-string", "mms.typeSpecification.octet-string",
10060
14
        FT_INT32, BASE_DEC, NULL, 0,
10061
14
        "Integer32", HFILL }},
10062
14
    { &hf_mms_typeSpecification_visible_string,
10063
14
      { "visible-string", "mms.typeSpecification.visible-string",
10064
14
        FT_INT32, BASE_DEC, NULL, 0,
10065
14
        "Integer32", HFILL }},
10066
14
    { &hf_mms_generalized_time,
10067
14
      { "generalized-time", "mms.generalized_time_element",
10068
14
        FT_NONE, BASE_NONE, NULL, 0,
10069
14
        NULL, HFILL }},
10070
14
    { &hf_mms_typeSpecification_binary_time,
10071
14
      { "binary-time", "mms.typeSpecification.binary-time",
10072
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10073
14
        "BOOLEAN", HFILL }},
10074
14
    { &hf_mms_bcd,
10075
14
      { "bcd", "mms.bcd",
10076
14
        FT_INT32, BASE_DEC, NULL, 0,
10077
14
        "Unsigned8", HFILL }},
10078
14
    { &hf_mms_objId,
10079
14
      { "objId", "mms.objId_element",
10080
14
        FT_NONE, BASE_NONE, NULL, 0,
10081
14
        NULL, HFILL }},
10082
14
    { &hf_mms_AlternateAccess_item,
10083
14
      { "AlternateAccess item", "mms.AlternateAccess_item",
10084
14
        FT_UINT32, BASE_DEC, VALS(mms_AlternateAccess_item_vals), 0,
10085
14
        NULL, HFILL }},
10086
14
    { &hf_mms_unnamed,
10087
14
      { "unnamed", "mms.unnamed",
10088
14
        FT_UINT32, BASE_DEC, VALS(mms_AlternateAccessSelection_vals), 0,
10089
14
        "AlternateAccessSelection", HFILL }},
10090
14
    { &hf_mms_named,
10091
14
      { "named", "mms.named_element",
10092
14
        FT_NONE, BASE_NONE, NULL, 0,
10093
14
        NULL, HFILL }},
10094
14
    { &hf_mms_accesst,
10095
14
      { "accesst", "mms.accesst",
10096
14
        FT_UINT32, BASE_DEC, VALS(mms_AlternateAccessSelection_vals), 0,
10097
14
        "AlternateAccessSelection", HFILL }},
10098
14
    { &hf_mms_selectAlternateAccess,
10099
14
      { "selectAlternateAccess", "mms.selectAlternateAccess_element",
10100
14
        FT_NONE, BASE_NONE, NULL, 0,
10101
14
        NULL, HFILL }},
10102
14
    { &hf_mms_accessSelection,
10103
14
      { "accessSelection", "mms.accessSelection",
10104
14
        FT_UINT32, BASE_DEC, VALS(mms_T_accessSelection_vals), 0,
10105
14
        NULL, HFILL }},
10106
14
    { &hf_mms_component,
10107
14
      { "component", "mms.component",
10108
14
        FT_STRING, BASE_NONE, NULL, 0,
10109
14
        "Identifier", HFILL }},
10110
14
    { &hf_mms_index,
10111
14
      { "index", "mms.index",
10112
14
        FT_INT32, BASE_DEC, NULL, 0,
10113
14
        "Unsigned32", HFILL }},
10114
14
    { &hf_mms_indexRange,
10115
14
      { "indexRange", "mms.indexRange_element",
10116
14
        FT_NONE, BASE_NONE, NULL, 0,
10117
14
        NULL, HFILL }},
10118
14
    { &hf_mms_lowIndex,
10119
14
      { "lowIndex", "mms.lowIndex",
10120
14
        FT_INT32, BASE_DEC, NULL, 0,
10121
14
        "Unsigned32", HFILL }},
10122
14
    { &hf_mms_allElements,
10123
14
      { "allElements", "mms.allElements_element",
10124
14
        FT_NONE, BASE_NONE, NULL, 0,
10125
14
        NULL, HFILL }},
10126
14
    { &hf_mms_alternateAccess,
10127
14
      { "alternateAccess", "mms.alternateAccess",
10128
14
        FT_UINT32, BASE_DEC, NULL, 0,
10129
14
        NULL, HFILL }},
10130
14
    { &hf_mms_selectAccess,
10131
14
      { "selectAccess", "mms.selectAccess",
10132
14
        FT_UINT32, BASE_DEC, VALS(mms_T_selectAccess_vals), 0,
10133
14
        NULL, HFILL }},
10134
14
    { &hf_mms_indexRange_01,
10135
14
      { "indexRange", "mms.indexRange_element",
10136
14
        FT_NONE, BASE_NONE, NULL, 0,
10137
14
        "T_indexRange_01", HFILL }},
10138
14
    { &hf_mms_nmberOfElements,
10139
14
      { "nmberOfElements", "mms.nmberOfElements",
10140
14
        FT_INT32, BASE_DEC, NULL, 0,
10141
14
        "Unsigned32", HFILL }},
10142
14
    { &hf_mms_specificationWithResult,
10143
14
      { "specificationWithResult", "mms.specificationWithResult",
10144
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10145
14
        "BOOLEAN", HFILL }},
10146
14
    { &hf_mms_variableAccessSpecification,
10147
14
      { "variableAccessSpecification", "mms.variableAccessSpecification",
10148
14
        FT_UINT32, BASE_DEC, VALS(mms_VariableAccessSpecification_vals), 0,
10149
14
        NULL, HFILL }},
10150
14
    { &hf_mms_listOfAccessResult,
10151
14
      { "listOfAccessResult", "mms.listOfAccessResult",
10152
14
        FT_UINT32, BASE_DEC, NULL, 0,
10153
14
        "SEQUENCE_OF_AccessResult", HFILL }},
10154
14
    { &hf_mms_listOfAccessResult_item,
10155
14
      { "AccessResult", "mms.AccessResult",
10156
14
        FT_UINT32, BASE_DEC, VALS(mms_AccessResult_vals), 0,
10157
14
        NULL, HFILL }},
10158
14
    { &hf_mms_listOfData,
10159
14
      { "listOfData", "mms.listOfData",
10160
14
        FT_UINT32, BASE_DEC, NULL, 0,
10161
14
        NULL, HFILL }},
10162
14
    { &hf_mms_listOfData_item,
10163
14
      { "Data", "mms.Data",
10164
14
        FT_UINT32, BASE_DEC, VALS(mms_Data_vals), 0,
10165
14
        NULL, HFILL }},
10166
14
    { &hf_mms_Write_Response_item,
10167
14
      { "Write-Response item", "mms.Write_Response_item",
10168
14
        FT_UINT32, BASE_DEC, VALS(mms_Write_Response_item_vals), 0,
10169
14
        NULL, HFILL }},
10170
14
    { &hf_mms_failure,
10171
14
      { "failure", "mms.failure",
10172
14
        FT_INT32, BASE_DEC, VALS(mms_DataAccessError_vals), 0,
10173
14
        "DataAccessError", HFILL }},
10174
14
    { &hf_mms_success,
10175
14
      { "success", "mms.success_element",
10176
14
        FT_NONE, BASE_NONE, NULL, 0,
10177
14
        NULL, HFILL }},
10178
14
    { &hf_mms_listOfAccessResult_01,
10179
14
      { "listOfAccessResult", "mms.listOfAccessResult",
10180
14
        FT_UINT32, BASE_DEC, NULL, 0,
10181
14
        NULL, HFILL }},
10182
14
    { &hf_mms_name,
10183
14
      { "name", "mms.name",
10184
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10185
14
        "ObjectName", HFILL }},
10186
14
    { &hf_mms_address,
10187
14
      { "address", "mms.address",
10188
14
        FT_UINT32, BASE_DEC, VALS(mms_Address_vals), 0,
10189
14
        NULL, HFILL }},
10190
14
    { &hf_mms_typeSpecification,
10191
14
      { "typeSpecification", "mms.typeSpecification",
10192
14
        FT_UINT32, BASE_DEC, VALS(mms_TypeSpecification_vals), 0,
10193
14
        NULL, HFILL }},
10194
14
    { &hf_mms_variableName,
10195
14
      { "variableName", "mms.variableName",
10196
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10197
14
        "ObjectName", HFILL }},
10198
14
    { &hf_mms_scatteredAccessName,
10199
14
      { "scatteredAccessName", "mms.scatteredAccessName",
10200
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10201
14
        "ObjectName", HFILL }},
10202
14
    { &hf_mms_scatteredAccessDescription,
10203
14
      { "scatteredAccessDescription", "mms.scatteredAccessDescription",
10204
14
        FT_UINT32, BASE_DEC, NULL, 0,
10205
14
        NULL, HFILL }},
10206
14
    { &hf_mms_scopeOfDelete,
10207
14
      { "scopeOfDelete", "mms.scopeOfDelete",
10208
14
        FT_INT32, BASE_DEC, VALS(mms_T_scopeOfDelete_vals), 0,
10209
14
        NULL, HFILL }},
10210
14
    { &hf_mms_listOfName,
10211
14
      { "listOfName", "mms.listOfName",
10212
14
        FT_UINT32, BASE_DEC, NULL, 0,
10213
14
        "SEQUENCE_OF_ObjectName", HFILL }},
10214
14
    { &hf_mms_listOfName_item,
10215
14
      { "ObjectName", "mms.ObjectName",
10216
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10217
14
        NULL, HFILL }},
10218
14
    { &hf_mms_numberMatched,
10219
14
      { "numberMatched", "mms.numberMatched",
10220
14
        FT_INT32, BASE_DEC, NULL, 0,
10221
14
        "Unsigned32", HFILL }},
10222
14
    { &hf_mms_numberDeleted,
10223
14
      { "numberDeleted", "mms.numberDeleted",
10224
14
        FT_INT32, BASE_DEC, NULL, 0,
10225
14
        "Unsigned32", HFILL }},
10226
14
    { &hf_mms_variableListName,
10227
14
      { "variableListName", "mms.variableListName",
10228
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10229
14
        "ObjectName", HFILL }},
10230
14
    { &hf_mms_listOfVariable,
10231
14
      { "listOfVariable", "mms.listOfVariable",
10232
14
        FT_UINT32, BASE_DEC, NULL, 0,
10233
14
        NULL, HFILL }},
10234
14
    { &hf_mms_listOfVariable_item,
10235
14
      { "listOfVariable item", "mms.listOfVariable_item_element",
10236
14
        FT_NONE, BASE_NONE, NULL, 0,
10237
14
        NULL, HFILL }},
10238
14
    { &hf_mms_variableSpecification,
10239
14
      { "variableSpecification", "mms.variableSpecification",
10240
14
        FT_UINT32, BASE_DEC, VALS(mms_VariableSpecification_vals), 0,
10241
14
        NULL, HFILL }},
10242
14
    { &hf_mms_listOfVariable_01,
10243
14
      { "listOfVariable", "mms.listOfVariable",
10244
14
        FT_UINT32, BASE_DEC, NULL, 0,
10245
14
        "T_listOfVariable_01", HFILL }},
10246
14
    { &hf_mms_listOfVariable_item_01,
10247
14
      { "listOfVariable item", "mms.listOfVariable_item_element",
10248
14
        FT_NONE, BASE_NONE, NULL, 0,
10249
14
        "T_listOfVariable_item_01", HFILL }},
10250
14
    { &hf_mms_scopeOfDelete_01,
10251
14
      { "scopeOfDelete", "mms.scopeOfDelete",
10252
14
        FT_INT32, BASE_DEC, VALS(mms_T_scopeOfDelete_01_vals), 0,
10253
14
        "T_scopeOfDelete_01", HFILL }},
10254
14
    { &hf_mms_listOfVariableListName,
10255
14
      { "listOfVariableListName", "mms.listOfVariableListName",
10256
14
        FT_UINT32, BASE_DEC, NULL, 0,
10257
14
        "SEQUENCE_OF_ObjectName", HFILL }},
10258
14
    { &hf_mms_listOfVariableListName_item,
10259
14
      { "ObjectName", "mms.ObjectName",
10260
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10261
14
        NULL, HFILL }},
10262
14
    { &hf_mms_scopeOfDelete_02,
10263
14
      { "scopeOfDelete", "mms.scopeOfDelete",
10264
14
        FT_INT32, BASE_DEC, VALS(mms_T_scopeOfDelete_02_vals), 0,
10265
14
        "T_scopeOfDelete_02", HFILL }},
10266
14
    { &hf_mms_listOfTypeName,
10267
14
      { "listOfTypeName", "mms.listOfTypeName",
10268
14
        FT_UINT32, BASE_DEC, NULL, 0,
10269
14
        "SEQUENCE_OF_ObjectName", HFILL }},
10270
14
    { &hf_mms_listOfTypeName_item,
10271
14
      { "ObjectName", "mms.ObjectName",
10272
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10273
14
        NULL, HFILL }},
10274
14
    { &hf_mms_success_01,
10275
14
      { "success", "mms.success",
10276
14
        FT_UINT32, BASE_DEC, VALS(mms_Data_vals), 0,
10277
14
        "Data", HFILL }},
10278
14
    { &hf_mms_array_01,
10279
14
      { "array", "mms.array",
10280
14
        FT_UINT32, BASE_DEC, NULL, 0,
10281
14
        "SEQUENCE_OF_Data", HFILL }},
10282
14
    { &hf_mms_array_item,
10283
14
      { "Data", "mms.Data",
10284
14
        FT_UINT32, BASE_DEC, VALS(mms_Data_vals), 0,
10285
14
        NULL, HFILL }},
10286
14
    { &hf_mms_structure_01,
10287
14
      { "structure", "mms.structure",
10288
14
        FT_UINT32, BASE_DEC, NULL, 0,
10289
14
        "T_structure_01", HFILL }},
10290
14
    { &hf_mms_structure_item,
10291
14
      { "Data", "mms.Data",
10292
14
        FT_UINT32, BASE_DEC, VALS(mms_Data_vals), 0,
10293
14
        NULL, HFILL }},
10294
14
    { &hf_mms_boolean_01,
10295
14
      { "boolean", "mms.boolean",
10296
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10297
14
        NULL, HFILL }},
10298
14
    { &hf_mms_data_bit_string,
10299
14
      { "bit-string", "mms.data_bit-string",
10300
14
        FT_BYTES, BASE_NONE, NULL, 0,
10301
14
        "T_data_bit_string", HFILL }},
10302
14
    { &hf_mms_integer_01,
10303
14
      { "integer", "mms.integer",
10304
14
        FT_INT32, BASE_DEC, NULL, 0,
10305
14
        NULL, HFILL }},
10306
14
    { &hf_mms_unsigned_01,
10307
14
      { "unsigned", "mms.unsigned",
10308
14
        FT_INT32, BASE_DEC, NULL, 0,
10309
14
        NULL, HFILL }},
10310
14
    { &hf_mms_floating_point,
10311
14
      { "floating-point", "mms.floating_point",
10312
14
        FT_BYTES, BASE_NONE, NULL, 0,
10313
14
        "FloatingPoint", HFILL }},
10314
14
    { &hf_mms_real,
10315
14
      { "real", "mms.real",
10316
14
        FT_DOUBLE, BASE_NONE, NULL, 0,
10317
14
        NULL, HFILL }},
10318
14
    { &hf_mms_data_octet_string,
10319
14
      { "octet-string", "mms.data.octet-string",
10320
14
        FT_BYTES, BASE_NONE, NULL, 0,
10321
14
        "T_data_octet_string", HFILL }},
10322
14
    { &hf_mms_data_visible_string,
10323
14
      { "visible-string", "mms.data.visible-string",
10324
14
        FT_STRING, BASE_NONE, NULL, 0,
10325
14
        "T_data_visible_string", HFILL }},
10326
14
    { &hf_mms_data_binary_time,
10327
14
      { "binary-time", "mms.data.binary-time",
10328
14
        FT_STRING, BASE_NONE, NULL, 0,
10329
14
        "T_data_binary_time", HFILL }},
10330
14
    { &hf_mms_bcd_01,
10331
14
      { "bcd", "mms.bcd",
10332
14
        FT_INT32, BASE_DEC, NULL, 0,
10333
14
        "INTEGER", HFILL }},
10334
14
    { &hf_mms_booleanArray,
10335
14
      { "booleanArray", "mms.booleanArray",
10336
14
        FT_BYTES, BASE_NONE, NULL, 0,
10337
14
        "BIT_STRING", HFILL }},
10338
14
    { &hf_mms_objId_01,
10339
14
      { "objId", "mms.objId",
10340
14
        FT_OID, BASE_NONE, NULL, 0,
10341
14
        "OBJECT_IDENTIFIER", HFILL }},
10342
14
    { &hf_mms_mMSString,
10343
14
      { "mMSString", "mms.mMSString",
10344
14
        FT_STRING, BASE_NONE, NULL, 0,
10345
14
        NULL, HFILL }},
10346
14
    { &hf_mms_utc_time,
10347
14
      { "utc-time", "mms.utc_time",
10348
14
        FT_STRING, BASE_NONE, NULL, 0,
10349
14
        "UtcTime", HFILL }},
10350
14
    { &hf_mms_listOfVariable_02,
10351
14
      { "listOfVariable", "mms.listOfVariable",
10352
14
        FT_UINT32, BASE_DEC, NULL, 0,
10353
14
        "T_listOfVariable_02", HFILL }},
10354
14
    { &hf_mms_listOfVariable_item_02,
10355
14
      { "listOfVariable item", "mms.listOfVariable_item_element",
10356
14
        FT_NONE, BASE_NONE, NULL, 0,
10357
14
        "T_listOfVariable_item_02", HFILL }},
10358
14
    { &hf_mms_ScatteredAccessDescription_item,
10359
14
      { "ScatteredAccessDescription item", "mms.ScatteredAccessDescription_item_element",
10360
14
        FT_NONE, BASE_NONE, NULL, 0,
10361
14
        NULL, HFILL }},
10362
14
    { &hf_mms_variableDescription,
10363
14
      { "variableDescription", "mms.variableDescription_element",
10364
14
        FT_NONE, BASE_NONE, NULL, 0,
10365
14
        NULL, HFILL }},
10366
14
    { &hf_mms_invalidated,
10367
14
      { "invalidated", "mms.invalidated_element",
10368
14
        FT_NONE, BASE_NONE, NULL, 0,
10369
14
        NULL, HFILL }},
10370
14
    { &hf_mms_numericAddress,
10371
14
      { "numericAddress", "mms.numericAddress",
10372
14
        FT_INT32, BASE_DEC, NULL, 0,
10373
14
        "Unsigned32", HFILL }},
10374
14
    { &hf_mms_symbolicAddress,
10375
14
      { "symbolicAddress", "mms.symbolicAddress",
10376
14
        FT_STRING, BASE_NONE, NULL, 0,
10377
14
        "VisibleString", HFILL }},
10378
14
    { &hf_mms_unconstrainedAddress,
10379
14
      { "unconstrainedAddress", "mms.unconstrainedAddress",
10380
14
        FT_BYTES, BASE_NONE, NULL, 0,
10381
14
        "OCTET_STRING", HFILL }},
10382
14
    { &hf_mms_semaphoreName,
10383
14
      { "semaphoreName", "mms.semaphoreName",
10384
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10385
14
        "ObjectName", HFILL }},
10386
14
    { &hf_mms_namedToken,
10387
14
      { "namedToken", "mms.namedToken",
10388
14
        FT_STRING, BASE_NONE, NULL, 0,
10389
14
        "Identifier", HFILL }},
10390
14
    { &hf_mms_priority,
10391
14
      { "priority", "mms.priority",
10392
14
        FT_INT32, BASE_DEC, NULL, 0,
10393
14
        NULL, HFILL }},
10394
14
    { &hf_mms_acceptableDelay,
10395
14
      { "acceptableDelay", "mms.acceptableDelay",
10396
14
        FT_INT32, BASE_DEC, NULL, 0,
10397
14
        "Unsigned32", HFILL }},
10398
14
    { &hf_mms_controlTimeOut,
10399
14
      { "controlTimeOut", "mms.controlTimeOut",
10400
14
        FT_INT32, BASE_DEC, NULL, 0,
10401
14
        "Unsigned32", HFILL }},
10402
14
    { &hf_mms_abortOnTimeOut,
10403
14
      { "abortOnTimeOut", "mms.abortOnTimeOut",
10404
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10405
14
        "BOOLEAN", HFILL }},
10406
14
    { &hf_mms_relinquishIfConnectionLost,
10407
14
      { "relinquishIfConnectionLost", "mms.relinquishIfConnectionLost",
10408
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10409
14
        "BOOLEAN", HFILL }},
10410
14
    { &hf_mms_applicationToPreempt,
10411
14
      { "applicationToPreempt", "mms.applicationToPreempt_element",
10412
14
        FT_NONE, BASE_NONE, NULL, 0,
10413
14
        "ApplicationReference", HFILL }},
10414
14
    { &hf_mms_noResult,
10415
14
      { "noResult", "mms.noResult_element",
10416
14
        FT_NONE, BASE_NONE, NULL, 0,
10417
14
        NULL, HFILL }},
10418
14
    { &hf_mms_numbersOfTokens,
10419
14
      { "numbersOfTokens", "mms.numbersOfTokens",
10420
14
        FT_INT32, BASE_DEC, NULL, 0,
10421
14
        "Unsigned16", HFILL }},
10422
14
    { &hf_mms_class,
10423
14
      { "class", "mms.class",
10424
14
        FT_INT32, BASE_DEC, VALS(mms_T_class_vals), 0,
10425
14
        NULL, HFILL }},
10426
14
    { &hf_mms_numberOfTokens,
10427
14
      { "numberOfTokens", "mms.numberOfTokens",
10428
14
        FT_INT32, BASE_DEC, NULL, 0,
10429
14
        "Unsigned16", HFILL }},
10430
14
    { &hf_mms_numberOfOwnedTokens,
10431
14
      { "numberOfOwnedTokens", "mms.numberOfOwnedTokens",
10432
14
        FT_INT32, BASE_DEC, NULL, 0,
10433
14
        "Unsigned16", HFILL }},
10434
14
    { &hf_mms_numberOfHungTokens,
10435
14
      { "numberOfHungTokens", "mms.numberOfHungTokens",
10436
14
        FT_INT32, BASE_DEC, NULL, 0,
10437
14
        "Unsigned16", HFILL }},
10438
14
    { &hf_mms_nameToStartAfter,
10439
14
      { "nameToStartAfter", "mms.nameToStartAfter",
10440
14
        FT_STRING, BASE_NONE, NULL, 0,
10441
14
        "Identifier", HFILL }},
10442
14
    { &hf_mms_listOfNamedTokens,
10443
14
      { "listOfNamedTokens", "mms.listOfNamedTokens",
10444
14
        FT_UINT32, BASE_DEC, NULL, 0,
10445
14
        NULL, HFILL }},
10446
14
    { &hf_mms_listOfNamedTokens_item,
10447
14
      { "listOfNamedTokens item", "mms.listOfNamedTokens_item",
10448
14
        FT_UINT32, BASE_DEC, VALS(mms_T_listOfNamedTokens_item_vals), 0,
10449
14
        NULL, HFILL }},
10450
14
    { &hf_mms_freeNamedToken,
10451
14
      { "freeNamedToken", "mms.freeNamedToken",
10452
14
        FT_STRING, BASE_NONE, NULL, 0,
10453
14
        "Identifier", HFILL }},
10454
14
    { &hf_mms_ownedNamedToken,
10455
14
      { "ownedNamedToken", "mms.ownedNamedToken",
10456
14
        FT_STRING, BASE_NONE, NULL, 0,
10457
14
        "Identifier", HFILL }},
10458
14
    { &hf_mms_hungNamedToken,
10459
14
      { "hungNamedToken", "mms.hungNamedToken",
10460
14
        FT_STRING, BASE_NONE, NULL, 0,
10461
14
        "Identifier", HFILL }},
10462
14
    { &hf_mms_reportSemaphoreEntryStatus_Request_state,
10463
14
      { "state", "mms.reportSemaphoreEntryStatus-Request_state",
10464
14
        FT_INT32, BASE_DEC, VALS(mms_T_reportSemaphoreEntryStatus_Request_state_vals), 0,
10465
14
        "T_reportSemaphoreEntryStatus_Request_state", HFILL }},
10466
14
    { &hf_mms_entryIdToStartAfter,
10467
14
      { "entryIdToStartAfter", "mms.entryIdToStartAfter",
10468
14
        FT_BYTES, BASE_NONE, NULL, 0,
10469
14
        "OCTET_STRING", HFILL }},
10470
14
    { &hf_mms_listOfSemaphoreEntry,
10471
14
      { "listOfSemaphoreEntry", "mms.listOfSemaphoreEntry",
10472
14
        FT_UINT32, BASE_DEC, NULL, 0,
10473
14
        "SEQUENCE_OF_SemaphoreEntry", HFILL }},
10474
14
    { &hf_mms_listOfSemaphoreEntry_item,
10475
14
      { "SemaphoreEntry", "mms.SemaphoreEntry_element",
10476
14
        FT_NONE, BASE_NONE, NULL, 0,
10477
14
        NULL, HFILL }},
10478
14
    { &hf_mms_entryId,
10479
14
      { "entryId", "mms.entryId",
10480
14
        FT_BYTES, BASE_NONE, NULL, 0,
10481
14
        "OCTET_STRING", HFILL }},
10482
14
    { &hf_mms_entryClass,
10483
14
      { "entryClass", "mms.entryClass",
10484
14
        FT_INT32, BASE_DEC, VALS(mms_T_entryClass_vals), 0,
10485
14
        NULL, HFILL }},
10486
14
    { &hf_mms_applicationReference,
10487
14
      { "applicationReference", "mms.applicationReference_element",
10488
14
        FT_NONE, BASE_NONE, NULL, 0,
10489
14
        NULL, HFILL }},
10490
14
    { &hf_mms_remainingTimeOut,
10491
14
      { "remainingTimeOut", "mms.remainingTimeOut",
10492
14
        FT_INT32, BASE_DEC, NULL, 0,
10493
14
        "Unsigned32", HFILL }},
10494
14
    { &hf_mms_operatorStationName,
10495
14
      { "operatorStationName", "mms.operatorStationName",
10496
14
        FT_STRING, BASE_NONE, NULL, 0,
10497
14
        "Identifier", HFILL }},
10498
14
    { &hf_mms_echo,
10499
14
      { "echo", "mms.echo",
10500
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10501
14
        "BOOLEAN", HFILL }},
10502
14
    { &hf_mms_listOfPromptData,
10503
14
      { "listOfPromptData", "mms.listOfPromptData",
10504
14
        FT_UINT32, BASE_DEC, NULL, 0,
10505
14
        NULL, HFILL }},
10506
14
    { &hf_mms_listOfPromptData_item,
10507
14
      { "listOfPromptData item", "mms.listOfPromptData_item",
10508
14
        FT_STRING, BASE_NONE, NULL, 0,
10509
14
        "VisibleString", HFILL }},
10510
14
    { &hf_mms_inputTimeOut,
10511
14
      { "inputTimeOut", "mms.inputTimeOut",
10512
14
        FT_INT32, BASE_DEC, NULL, 0,
10513
14
        "Unsigned32", HFILL }},
10514
14
    { &hf_mms_listOfOutputData,
10515
14
      { "listOfOutputData", "mms.listOfOutputData",
10516
14
        FT_UINT32, BASE_DEC, NULL, 0,
10517
14
        NULL, HFILL }},
10518
14
    { &hf_mms_listOfOutputData_item,
10519
14
      { "listOfOutputData item", "mms.listOfOutputData_item",
10520
14
        FT_STRING, BASE_NONE, NULL, 0,
10521
14
        "VisibleString", HFILL }},
10522
14
    { &hf_mms_eventConditionName,
10523
14
      { "eventConditionName", "mms.eventConditionName",
10524
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10525
14
        "ObjectName", HFILL }},
10526
14
    { &hf_mms_class_01,
10527
14
      { "class", "mms.class",
10528
14
        FT_INT32, BASE_DEC, VALS(mms_EC_Class_vals), 0,
10529
14
        "EC_Class", HFILL }},
10530
14
    { &hf_mms_prio_rity,
10531
14
      { "prio-rity", "mms.prio_rity",
10532
14
        FT_INT32, BASE_DEC, NULL, 0,
10533
14
        "Priority", HFILL }},
10534
14
    { &hf_mms_severity,
10535
14
      { "severity", "mms.severity",
10536
14
        FT_INT32, BASE_DEC, NULL, 0,
10537
14
        "Unsigned8", HFILL }},
10538
14
    { &hf_mms_alarmSummaryReports,
10539
14
      { "alarmSummaryReports", "mms.alarmSummaryReports",
10540
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10541
14
        "BOOLEAN", HFILL }},
10542
14
    { &hf_mms_monitoredVariable,
10543
14
      { "monitoredVariable", "mms.monitoredVariable",
10544
14
        FT_UINT32, BASE_DEC, VALS(mms_VariableSpecification_vals), 0,
10545
14
        "VariableSpecification", HFILL }},
10546
14
    { &hf_mms_evaluationInterval,
10547
14
      { "evaluationInterval", "mms.evaluationInterval",
10548
14
        FT_INT32, BASE_DEC, NULL, 0,
10549
14
        "Unsigned32", HFILL }},
10550
14
    { &hf_mms_specific,
10551
14
      { "specific", "mms.specific",
10552
14
        FT_UINT32, BASE_DEC, NULL, 0,
10553
14
        "SEQUENCE_OF_ObjectName", HFILL }},
10554
14
    { &hf_mms_specific_item,
10555
14
      { "ObjectName", "mms.ObjectName",
10556
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10557
14
        NULL, HFILL }},
10558
14
    { &hf_mms_aa_specific_01,
10559
14
      { "aa-specific", "mms.aa_specific_element",
10560
14
        FT_NONE, BASE_NONE, NULL, 0,
10561
14
        NULL, HFILL }},
10562
14
    { &hf_mms_vmd,
10563
14
      { "vmd", "mms.vmd_element",
10564
14
        FT_NONE, BASE_NONE, NULL, 0,
10565
14
        NULL, HFILL }},
10566
14
    { &hf_mms_monitoredVariable_01,
10567
14
      { "monitoredVariable", "mms.monitoredVariable",
10568
14
        FT_UINT32, BASE_DEC, VALS(mms_T_monitoredVariable_vals), 0,
10569
14
        NULL, HFILL }},
10570
14
    { &hf_mms_variableReference,
10571
14
      { "variableReference", "mms.variableReference",
10572
14
        FT_UINT32, BASE_DEC, VALS(mms_VariableSpecification_vals), 0,
10573
14
        "VariableSpecification", HFILL }},
10574
14
    { &hf_mms_undefined,
10575
14
      { "undefined", "mms.undefined_element",
10576
14
        FT_NONE, BASE_NONE, NULL, 0,
10577
14
        NULL, HFILL }},
10578
14
    { &hf_mms_currentState,
10579
14
      { "currentState", "mms.currentState",
10580
14
        FT_INT32, BASE_DEC, VALS(mms_EC_State_vals), 0,
10581
14
        "EC_State", HFILL }},
10582
14
    { &hf_mms_numberOfEventEnrollments,
10583
14
      { "numberOfEventEnrollments", "mms.numberOfEventEnrollments",
10584
14
        FT_INT32, BASE_DEC, NULL, 0,
10585
14
        "Unsigned32", HFILL }},
10586
14
    { &hf_mms_enabled,
10587
14
      { "enabled", "mms.enabled",
10588
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10589
14
        "BOOLEAN", HFILL }},
10590
14
    { &hf_mms_timeOfLastTransitionToActive,
10591
14
      { "timeOfLastTransitionToActive", "mms.timeOfLastTransitionToActive",
10592
14
        FT_UINT32, BASE_DEC, VALS(mms_EventTime_vals), 0,
10593
14
        "EventTime", HFILL }},
10594
14
    { &hf_mms_timeOfLastTransitionToIdle,
10595
14
      { "timeOfLastTransitionToIdle", "mms.timeOfLastTransitionToIdle",
10596
14
        FT_UINT32, BASE_DEC, VALS(mms_EventTime_vals), 0,
10597
14
        "EventTime", HFILL }},
10598
14
    { &hf_mms_eventActionName,
10599
14
      { "eventActionName", "mms.eventActionName",
10600
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10601
14
        "ObjectName", HFILL }},
10602
14
    { &hf_mms_eventEnrollmentName,
10603
14
      { "eventEnrollmentName", "mms.eventEnrollmentName",
10604
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10605
14
        "ObjectName", HFILL }},
10606
14
    { &hf_mms_eventConditionTransition,
10607
14
      { "eventConditionTransition", "mms.eventConditionTransition",
10608
14
        FT_BYTES, BASE_NONE, NULL, 0,
10609
14
        "Transitions", HFILL }},
10610
14
    { &hf_mms_alarmAcknowledgementRule,
10611
14
      { "alarmAcknowledgementRule", "mms.alarmAcknowledgementRule",
10612
14
        FT_INT32, BASE_DEC, VALS(mms_AlarmAckRule_vals), 0,
10613
14
        "AlarmAckRule", HFILL }},
10614
14
    { &hf_mms_clientApplication,
10615
14
      { "clientApplication", "mms.clientApplication_element",
10616
14
        FT_NONE, BASE_NONE, NULL, 0,
10617
14
        "ApplicationReference", HFILL }},
10618
14
    { &hf_mms_ec,
10619
14
      { "ec", "mms.ec",
10620
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10621
14
        "ObjectName", HFILL }},
10622
14
    { &hf_mms_ea,
10623
14
      { "ea", "mms.ea",
10624
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10625
14
        "ObjectName", HFILL }},
10626
14
    { &hf_mms_scopeOfRequest,
10627
14
      { "scopeOfRequest", "mms.scopeOfRequest",
10628
14
        FT_INT32, BASE_DEC, VALS(mms_T_scopeOfRequest_vals), 0,
10629
14
        NULL, HFILL }},
10630
14
    { &hf_mms_eventEnrollmentNames,
10631
14
      { "eventEnrollmentNames", "mms.eventEnrollmentNames",
10632
14
        FT_UINT32, BASE_DEC, NULL, 0,
10633
14
        "SEQUENCE_OF_ObjectName", HFILL }},
10634
14
    { &hf_mms_eventEnrollmentNames_item,
10635
14
      { "ObjectName", "mms.ObjectName",
10636
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10637
14
        NULL, HFILL }},
10638
14
    { &hf_mms_getEventEnrollmentAttributes_Request_continueAfter,
10639
14
      { "continueAfter", "mms.getEventEnrollmentAttributes-Request_continueAfter",
10640
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10641
14
        "ObjectName", HFILL }},
10642
14
    { &hf_mms_eventConditionName_01,
10643
14
      { "eventConditionName", "mms.eventConditionName",
10644
14
        FT_UINT32, BASE_DEC, VALS(mms_T_eventConditionName_vals), 0,
10645
14
        NULL, HFILL }},
10646
14
    { &hf_mms_eventActionName_01,
10647
14
      { "eventActionName", "mms.eventActionName",
10648
14
        FT_UINT32, BASE_DEC, VALS(mms_T_eventActionName_vals), 0,
10649
14
        NULL, HFILL }},
10650
14
    { &hf_mms_eventAction,
10651
14
      { "eventAction", "mms.eventAction",
10652
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10653
14
        "ObjectName", HFILL }},
10654
14
    { &hf_mms_enrollmentClass,
10655
14
      { "enrollmentClass", "mms.enrollmentClass",
10656
14
        FT_INT32, BASE_DEC, VALS(mms_EE_Class_vals), 0,
10657
14
        "EE_Class", HFILL }},
10658
14
    { &hf_mms_duration,
10659
14
      { "duration", "mms.duration",
10660
14
        FT_INT32, BASE_DEC, VALS(mms_EE_Duration_vals), 0,
10661
14
        "EE_Duration", HFILL }},
10662
14
    { &hf_mms_remainingAcceptableDelay,
10663
14
      { "remainingAcceptableDelay", "mms.remainingAcceptableDelay",
10664
14
        FT_INT32, BASE_DEC, NULL, 0,
10665
14
        "Unsigned32", HFILL }},
10666
14
    { &hf_mms_listOfEventEnrollment,
10667
14
      { "listOfEventEnrollment", "mms.listOfEventEnrollment",
10668
14
        FT_UINT32, BASE_DEC, NULL, 0,
10669
14
        "SEQUENCE_OF_EventEnrollment", HFILL }},
10670
14
    { &hf_mms_listOfEventEnrollment_item,
10671
14
      { "EventEnrollment", "mms.EventEnrollment_element",
10672
14
        FT_NONE, BASE_NONE, NULL, 0,
10673
14
        NULL, HFILL }},
10674
14
    { &hf_mms_eventConditionTransitions,
10675
14
      { "eventConditionTransitions", "mms.eventConditionTransitions",
10676
14
        FT_BYTES, BASE_NONE, NULL, 0,
10677
14
        "Transitions", HFILL }},
10678
14
    { &hf_mms_notificationLost,
10679
14
      { "notificationLost", "mms.notificationLost",
10680
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10681
14
        "BOOLEAN", HFILL }},
10682
14
    { &hf_mms_alarmAcknowledgmentRule,
10683
14
      { "alarmAcknowledgmentRule", "mms.alarmAcknowledgmentRule",
10684
14
        FT_INT32, BASE_DEC, VALS(mms_AlarmAckRule_vals), 0,
10685
14
        "AlarmAckRule", HFILL }},
10686
14
    { &hf_mms_currentState_01,
10687
14
      { "currentState", "mms.currentState",
10688
14
        FT_INT32, BASE_DEC, VALS(mms_EE_State_vals), 0,
10689
14
        "EE_State", HFILL }},
10690
14
    { &hf_mms_currentState_02,
10691
14
      { "currentState", "mms.currentState",
10692
14
        FT_UINT32, BASE_DEC, VALS(mms_T_currentState_vals), 0,
10693
14
        NULL, HFILL }},
10694
14
    { &hf_mms_alterEventEnrollment_Response_currentState_state,
10695
14
      { "state", "mms.alterEventEnrollment-Response_currentState_state",
10696
14
        FT_INT32, BASE_DEC, VALS(mms_EE_State_vals), 0,
10697
14
        "EE_State", HFILL }},
10698
14
    { &hf_mms_transitionTime,
10699
14
      { "transitionTime", "mms.transitionTime",
10700
14
        FT_UINT32, BASE_DEC, VALS(mms_EventTime_vals), 0,
10701
14
        "EventTime", HFILL }},
10702
14
    { &hf_mms_acknowledgedState,
10703
14
      { "acknowledgedState", "mms.acknowledgedState",
10704
14
        FT_INT32, BASE_DEC, VALS(mms_EC_State_vals), 0,
10705
14
        "EC_State", HFILL }},
10706
14
    { &hf_mms_timeOfAcknowledgedTransition,
10707
14
      { "timeOfAcknowledgedTransition", "mms.timeOfAcknowledgedTransition",
10708
14
        FT_UINT32, BASE_DEC, VALS(mms_EventTime_vals), 0,
10709
14
        "EventTime", HFILL }},
10710
14
    { &hf_mms_enrollmentsOnly,
10711
14
      { "enrollmentsOnly", "mms.enrollmentsOnly",
10712
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10713
14
        "BOOLEAN", HFILL }},
10714
14
    { &hf_mms_activeAlarmsOnly,
10715
14
      { "activeAlarmsOnly", "mms.activeAlarmsOnly",
10716
14
        FT_BOOLEAN, BASE_NONE, NULL, 0,
10717
14
        "BOOLEAN", HFILL }},
10718
14
    { &hf_mms_acknowledgmentFilter,
10719
14
      { "acknowledgmentFilter", "mms.acknowledgmentFilter",
10720
14
        FT_INT32, BASE_DEC, VALS(mms_T_acknowledgmentFilter_vals), 0,
10721
14
        NULL, HFILL }},
10722
14
    { &hf_mms_severityFilter,
10723
14
      { "severityFilter", "mms.severityFilter_element",
10724
14
        FT_NONE, BASE_NONE, NULL, 0,
10725
14
        NULL, HFILL }},
10726
14
    { &hf_mms_mostSevere,
10727
14
      { "mostSevere", "mms.mostSevere",
10728
14
        FT_INT32, BASE_DEC, NULL, 0,
10729
14
        "Unsigned8", HFILL }},
10730
14
    { &hf_mms_leastSevere,
10731
14
      { "leastSevere", "mms.leastSevere",
10732
14
        FT_INT32, BASE_DEC, NULL, 0,
10733
14
        "Unsigned8", HFILL }},
10734
14
    { &hf_mms_continueAfter,
10735
14
      { "continueAfter", "mms.continueAfter",
10736
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10737
14
        "ObjectName", HFILL }},
10738
14
    { &hf_mms_listOfAlarmSummary,
10739
14
      { "listOfAlarmSummary", "mms.listOfAlarmSummary",
10740
14
        FT_UINT32, BASE_DEC, NULL, 0,
10741
14
        "SEQUENCE_OF_AlarmSummary", HFILL }},
10742
14
    { &hf_mms_listOfAlarmSummary_item,
10743
14
      { "AlarmSummary", "mms.AlarmSummary_element",
10744
14
        FT_NONE, BASE_NONE, NULL, 0,
10745
14
        NULL, HFILL }},
10746
14
    { &hf_mms_unacknowledgedState,
10747
14
      { "unacknowledgedState", "mms.unacknowledgedState",
10748
14
        FT_INT32, BASE_DEC, VALS(mms_T_unacknowledgedState_vals), 0,
10749
14
        NULL, HFILL }},
10750
14
    { &hf_mms_acknowledgmentFilter_01,
10751
14
      { "acknowledgmentFilter", "mms.acknowledgmentFilter",
10752
14
        FT_INT32, BASE_DEC, VALS(mms_T_acknowledgmentFilter_01_vals), 0,
10753
14
        "T_acknowledgmentFilter_01", HFILL }},
10754
14
    { &hf_mms_severityFilter_01,
10755
14
      { "severityFilter", "mms.severityFilter_element",
10756
14
        FT_NONE, BASE_NONE, NULL, 0,
10757
14
        "T_severityFilter_01", HFILL }},
10758
14
    { &hf_mms_getAlarmEnrollmentSummary_Request_continueAfter,
10759
14
      { "continueAfter", "mms.getAlarmEnrollmentSummary-Request_continueAfter",
10760
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10761
14
        "ObjectName", HFILL }},
10762
14
    { &hf_mms_listOfAlarmEnrollmentSummary,
10763
14
      { "listOfAlarmEnrollmentSummary", "mms.listOfAlarmEnrollmentSummary",
10764
14
        FT_UINT32, BASE_DEC, NULL, 0,
10765
14
        "SEQUENCE_OF_AlarmEnrollmentSummary", HFILL }},
10766
14
    { &hf_mms_listOfAlarmEnrollmentSummary_item,
10767
14
      { "AlarmEnrollmentSummary", "mms.AlarmEnrollmentSummary_element",
10768
14
        FT_NONE, BASE_NONE, NULL, 0,
10769
14
        NULL, HFILL }},
10770
14
    { &hf_mms_enrollementState,
10771
14
      { "enrollementState", "mms.enrollementState",
10772
14
        FT_INT32, BASE_DEC, VALS(mms_EE_State_vals), 0,
10773
14
        "EE_State", HFILL }},
10774
14
    { &hf_mms_timeActiveAcknowledged,
10775
14
      { "timeActiveAcknowledged", "mms.timeActiveAcknowledged",
10776
14
        FT_UINT32, BASE_DEC, VALS(mms_EventTime_vals), 0,
10777
14
        "EventTime", HFILL }},
10778
14
    { &hf_mms_timeIdleAcknowledged,
10779
14
      { "timeIdleAcknowledged", "mms.timeIdleAcknowledged",
10780
14
        FT_UINT32, BASE_DEC, VALS(mms_EventTime_vals), 0,
10781
14
        "EventTime", HFILL }},
10782
14
    { &hf_mms_eventConditionName_02,
10783
14
      { "eventConditionName", "mms.eventConditionName",
10784
14
        FT_UINT32, BASE_DEC, VALS(mms_T_eventConditionName_01_vals), 0,
10785
14
        "T_eventConditionName_01", HFILL }},
10786
14
    { &hf_mms_actionResult,
10787
14
      { "actionResult", "mms.actionResult_element",
10788
14
        FT_NONE, BASE_NONE, NULL, 0,
10789
14
        NULL, HFILL }},
10790
14
    { &hf_mms_eventActioName,
10791
14
      { "eventActioName", "mms.eventActioName",
10792
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10793
14
        "ObjectName", HFILL }},
10794
14
    { &hf_mms_eventActionResult,
10795
14
      { "eventActionResult", "mms.eventActionResult",
10796
14
        FT_UINT32, BASE_DEC, VALS(mms_T_eventActionResult_vals), 0,
10797
14
        NULL, HFILL }},
10798
14
    { &hf_mms_success_02,
10799
14
      { "success", "mms.success",
10800
14
        FT_UINT32, BASE_DEC, VALS(mms_ConfirmedServiceResponse_vals), 0,
10801
14
        "ConfirmedServiceResponse", HFILL }},
10802
14
    { &hf_mms_failure_01,
10803
14
      { "failure", "mms.failure_element",
10804
14
        FT_NONE, BASE_NONE, NULL, 0,
10805
14
        "ServiceError", HFILL }},
10806
14
    { &hf_mms_causingTransitions,
10807
14
      { "causingTransitions", "mms.causingTransitions",
10808
14
        FT_BYTES, BASE_NONE, NULL, 0,
10809
14
        "Transitions", HFILL }},
10810
14
    { &hf_mms_timeOfDayT,
10811
14
      { "timeOfDayT", "mms.timeOfDayT",
10812
14
        FT_STRING, BASE_NONE, NULL, 0,
10813
14
        "TimeOfDay", HFILL }},
10814
14
    { &hf_mms_timeSequenceIdentifier,
10815
14
      { "timeSequenceIdentifier", "mms.timeSequenceIdentifier",
10816
14
        FT_INT32, BASE_DEC, NULL, 0,
10817
14
        "Unsigned32", HFILL }},
10818
14
    { &hf_mms_journalName,
10819
14
      { "journalName", "mms.journalName",
10820
14
        FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
10821
14
        "ObjectName", HFILL }},
10822
14
    { &hf_mms_rangeStartSpecification,
10823
14
      { "rangeStartSpecification", "mms.rangeStartSpecification",
10824
14
        FT_UINT32, BASE_DEC, VALS(mms_T_rangeStartSpecification_vals), 0,
10825
14
        NULL, HFILL }},
10826
14
    { &hf_mms_startingTime,
10827
14
      { "startingTime", "mms.startingTime",
10828
14
        FT_STRING, BASE_NONE, NULL, 0,
10829
14
        "TimeOfDay", HFILL }},
10830
14
    { &hf_mms_startingEntry,
10831
14
      { "startingEntry", "mms.startingEntry",
10832
14
        FT_BYTES, BASE_NONE, NULL, 0,
10833
14
        "OCTET_STRING", HFILL }},
10834
14
    { &hf_mms_rangeStopSpecification,
10835
14
      { "rangeStopSpecification", "mms.rangeStopSpecification",
10836
14
        FT_UINT32, BASE_DEC, VALS(mms_T_rangeStopSpecification_vals), 0,
10837
14
        NULL, HFILL }},
10838
14
    { &hf_mms_endingTime,
10839
14
      { "endingTime", "mms.endingTime",
10840
14
        FT_STRING, BASE_NONE, NULL, 0,
10841
14
        "TimeOfDay", HFILL }},
10842
14
    { &hf_mms_numberOfEntries,
10843
14
      { "numberOfEntries", "mms.numberOfEntries",
10844
14
        FT_INT32, BASE_DEC, NULL, 0,
10845
14
        "Integer32", HFILL }},
10846
14
    { &hf_mms_listOfVariables,
10847
14
      { "listOfVariables", "mms.listOfVariables",
10848
14
        FT_UINT32, BASE_DEC, NULL, 0,
10849
14
        NULL, HFILL }},
10850
14
    { &hf_mms_listOfVariables_item,
10851
14
      { "listOfVariables item", "mms.listOfVariables_item",
10852
14
        FT_STRING, BASE_NONE, NULL, 0,
10853
14
        "VisibleString", HFILL }},
10854
14
    { &hf_mms_entryToStartAfter,
10855
14
      { "entryToStartAfter", "mms.entryToStartAfter_element",
10856
14
        FT_NONE, BASE_NONE, NULL, 0,
10857
14
        NULL, HFILL }},
10858
14
    { &hf_mms_timeSpecification,
10859
14
      { "timeSpecification", "mms.timeSpecification",
10860
14
        FT_STRING, BASE_NONE, NULL, 0,
10861
14
        "TimeOfDay", HFILL }},
10862
14
    { &hf_mms_entrySpecification,
10863
14
      { "entrySpecification", "mms.entrySpecification",
10864
14
        FT_BYTES, BASE_NONE, NULL, 0,
10865
14
        "OCTET_STRING", HFILL }},
10866
14
    { &hf_mms_listOfJournalEntry,
10867
14
      { "listOfJournalEntry", "mms.listOfJournalEntry",
10868
14
        FT_UINT32, BASE_DEC, NULL, 0,
10869
14
        "SEQUENCE_OF_JournalEntry", HFILL }},
10870
14
    { &hf_mms_listOfJournalEntry_item,
10871
14
      { "JournalEntry", "mms.JournalEntry_element",
10872
14
        FT_NONE, BASE_NONE, NULL, 0,
10873
14
        NULL, HFILL }},
10874
14
    { &hf_mms_entryIdentifier,
10875
14
      { "entryIdentifier", "mms.entryIdentifier",
10876
14
        FT_BYTES, BASE_NONE, NULL, 0,
10877
14
        "OCTET_STRING", HFILL }},
10878
14
    { &hf_mms_originatingApplication,
10879
14
      { "originatingApplication", "mms.originatingApplication_element",
10880
14
        FT_NONE, BASE_NONE, NULL, 0,
10881
14
        "ApplicationReference", HFILL }},
10882
14
    { &hf_mms_entryContent,
10883
14
      { "entryContent", "mms.entryContent_element",
10884
14
        FT_NONE, BASE_NONE, NULL, 0,
10885
14
        NULL, HFILL }},
10886
14
    { &hf_mms_listOfJournalEntry_01,
10887
14
      { "listOfJournalEntry", "mms.listOfJournalEntry",
10888
14
        FT_UINT32, BASE_DEC, NULL, 0,
10889
14
        "SEQUENCE_OF_EntryContent", HFILL }},
10890
14
    { &hf_mms_listOfJournalEntry_item_01,
10891
14
      { "EntryContent", "mms.EntryContent_element",
10892
14
        FT_NONE, BASE_NONE, NULL, 0,
10893
14
        NULL, HFILL }},
10894
14
    { &hf_mms_limitSpecification,
10895
14
      { "limitSpecification", "mms.limitSpecification_element",
10896
14
        FT_NONE, BASE_NONE, NULL, 0,
10897
14
        NULL, HFILL }},
10898
14
    { &hf_mms_limitingTime,
10899
14
      { "limitingTime", "mms.limitingTime",
10900
14
        FT_STRING, BASE_NONE, NULL, 0,
10901
14
        "TimeOfDay", HFILL }},
10902
14
    { &hf_mms_limitingEntry,
10903
14
      { "limitingEntry", "mms.limitingEntry",
10904
14
        FT_BYTES, BASE_NONE, NULL, 0,
10905
14
        "OCTET_STRING", HFILL }},
10906
14
    { &hf_mms_currentEntries,
10907
14
      { "currentEntries", "mms.currentEntries",
10908
14
        FT_INT32, BASE_DEC, NULL, 0,
10909
14
        "Unsigned32", HFILL }},
10910
14
    { &hf_mms_occurenceTime,
10911
14
      { "occurenceTime", "mms.occurenceTime",
10912
14
        FT_STRING, BASE_NONE, NULL, 0,
10913
14
        "TimeOfDay", HFILL }},
10914
14
    { &hf_mms_additionalDetail,
10915
14
      { "additionalDetail", "mms.additionalDetail_element",
10916
14
        FT_NONE, BASE_NONE, NULL, 0,
10917
14
        "JOU_Additional_Detail", HFILL }},
10918
14
    { &hf_mms_entryForm,
10919
14
      { "entryForm", "mms.entryForm",
10920
14
        FT_UINT32, BASE_DEC, VALS(mms_T_entryForm_vals), 0,
10921
14
        NULL, HFILL }},
10922
14
    { &hf_mms_data,
10923
14
      { "data", "mms.data_element",
10924
14
        FT_NONE, BASE_NONE, NULL, 0,
10925
14
        NULL, HFILL }},
10926
14
    { &hf_mms_event,
10927
14
      { "event", "mms.event_element",
10928
14
        FT_NONE, BASE_NONE, NULL, 0,
10929
14
        NULL, HFILL }},
10930
14
    { &hf_mms_listOfVariables_01,
10931
14
      { "listOfVariables", "mms.listOfVariables",
10932
14
        FT_UINT32, BASE_DEC, NULL, 0,
10933
14
        "T_listOfVariables_01", HFILL }},
10934
14
    { &hf_mms_listOfVariables_item_01,
10935
14
      { "listOfVariables item", "mms.listOfVariables_item_element",
10936
14
        FT_NONE, BASE_NONE, NULL, 0,
10937
14
        NULL, HFILL }},
10938
14
    { &hf_mms_variableTag,
10939
14
      { "variableTag", "mms.variableTag",
10940
14
        FT_STRING, BASE_NONE, NULL, 0,
10941
14
        "VisibleString", HFILL }},
10942
14
    { &hf_mms_valueSpecification,
10943
14
      { "valueSpecification", "mms.valueSpecification",
10944
14
        FT_UINT32, BASE_DEC, VALS(mms_Data_vals), 0,
10945
14
        "Data", HFILL }},
10946
14
    { &hf_mms_annotation,
10947
14
      { "annotation", "mms.annotation",
10948
14
        FT_STRING, BASE_NONE, NULL, 0,
10949
14
        "VisibleString", HFILL }},
10950
14
    { &hf_mms_sourceFileServer,
10951
14
      { "sourceFileServer", "mms.sourceFileServer_element",
10952
14
        FT_NONE, BASE_NONE, NULL, 0,
10953
14
        "ApplicationReference", HFILL }},
10954
14
    { &hf_mms_sourceFile,
10955
14
      { "sourceFile", "mms.sourceFile",
10956
14
        FT_UINT32, BASE_DEC, NULL, 0,
10957
14
        "FileName", HFILL }},
10958
14
    { &hf_mms_destinationFile,
10959
14
      { "destinationFile", "mms.destinationFile",
10960
14
        FT_UINT32, BASE_DEC, NULL, 0,
10961
14
        "FileName", HFILL }},
10962
14
    { &hf_mms_initialPosition,
10963
14
      { "initialPosition", "mms.initialPosition",
10964
14
        FT_INT32, BASE_DEC, NULL, 0,
10965
14
        "Unsigned32", HFILL }},
10966
14
    { &hf_mms_frsmID,
10967
14
      { "frsmID", "mms.frsmID",
10968
14
        FT_INT32, BASE_DEC, NULL, 0,
10969
14
        "Integer32", HFILL }},
10970
14
    { &hf_mms_fileAttributes,
10971
14
      { "fileAttributes", "mms.fileAttributes_element",
10972
14
        FT_NONE, BASE_NONE, NULL, 0,
10973
14
        NULL, HFILL }},
10974
14
    { &hf_mms_fileData,
10975
14
      { "fileData", "mms.fileData",
10976
14
        FT_BYTES, BASE_NONE, NULL, 0,
10977
14
        "OCTET_STRING", HFILL }},
10978
14
    { &hf_mms_currentFileName,
10979
14
      { "currentFileName", "mms.currentFileName",
10980
14
        FT_UINT32, BASE_DEC, NULL, 0,
10981
14
        "FileName", HFILL }},
10982
14
    { &hf_mms_newFileName,
10983
14
      { "newFileName", "mms.newFileName",
10984
14
        FT_UINT32, BASE_DEC, NULL, 0,
10985
14
        "FileName", HFILL }},
10986
14
    { &hf_mms_fileSpecification,
10987
14
      { "fileSpecification", "mms.fileSpecification",
10988
14
        FT_UINT32, BASE_DEC, NULL, 0,
10989
14
        "FileName", HFILL }},
10990
14
    { &hf_mms_fileDirectory_Request_continueAfter,
10991
14
      { "continueAfter", "mms.fileDirectory-Request_continueAfter",
10992
14
        FT_UINT32, BASE_DEC, NULL, 0,
10993
14
        "FileName", HFILL }},
10994
14
    { &hf_mms_listOfDirectoryEntry,
10995
14
      { "listOfDirectoryEntry", "mms.listOfDirectoryEntry",
10996
14
        FT_UINT32, BASE_DEC, NULL, 0,
10997
14
        "SEQUENCE_OF_DirectoryEntry", HFILL }},
10998
14
    { &hf_mms_listOfDirectoryEntry_item,
10999
14
      { "DirectoryEntry", "mms.DirectoryEntry_element",
11000
14
        FT_NONE, BASE_NONE, NULL, 0,
11001
14
        NULL, HFILL }},
11002
14
    { &hf_mms_filename,
11003
14
      { "filename", "mms.filename",
11004
14
        FT_UINT32, BASE_DEC, NULL, 0,
11005
14
        NULL, HFILL }},
11006
14
    { &hf_mms_sizeOfFile,
11007
14
      { "sizeOfFile", "mms.sizeOfFile",
11008
14
        FT_INT32, BASE_DEC, NULL, 0,
11009
14
        "Unsigned32", HFILL }},
11010
14
    { &hf_mms_lastModified,
11011
14
      { "lastModified", "mms.lastModified",
11012
14
        FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
11013
14
        "GeneralizedTime", HFILL }},
11014
14
    { &hf_mms_ReportedOptFlds_reserved,
11015
14
      { "reserved", "mms.ReportedOptFlds.reserved",
11016
14
        FT_BOOLEAN, 8, NULL, 0x80,
11017
14
        NULL, HFILL }},
11018
14
    { &hf_mms_ReportedOptFlds_sequence_number,
11019
14
      { "sequence-number", "mms.ReportedOptFlds.sequence.number",
11020
14
        FT_BOOLEAN, 8, NULL, 0x40,
11021
14
        NULL, HFILL }},
11022
14
    { &hf_mms_ReportedOptFlds_report_time_stamp,
11023
14
      { "report-time-stamp", "mms.ReportedOptFlds.report.time.stamp",
11024
14
        FT_BOOLEAN, 8, NULL, 0x20,
11025
14
        NULL, HFILL }},
11026
14
    { &hf_mms_ReportedOptFlds_reason_for_inclusion,
11027
14
      { "reason-for-inclusion", "mms.ReportedOptFlds.reason.for.inclusion",
11028
14
        FT_BOOLEAN, 8, NULL, 0x10,
11029
14
        NULL, HFILL }},
11030
14
    { &hf_mms_ReportedOptFlds_data_set_name,
11031
14
      { "data-set-name", "mms.ReportedOptFlds.data.set.name",
11032
14
        FT_BOOLEAN, 8, NULL, 0x08,
11033
14
        NULL, HFILL }},
11034
14
    { &hf_mms_ReportedOptFlds_data_reference,
11035
14
      { "data-reference", "mms.ReportedOptFlds.data.reference",
11036
14
        FT_BOOLEAN, 8, NULL, 0x04,
11037
14
        NULL, HFILL }},
11038
14
    { &hf_mms_ReportedOptFlds_buffer_overflow,
11039
14
      { "buffer-overflow", "mms.ReportedOptFlds.buffer.overflow",
11040
14
        FT_BOOLEAN, 8, NULL, 0x02,
11041
14
        NULL, HFILL }},
11042
14
    { &hf_mms_ReportedOptFlds_entryID,
11043
14
      { "entryID", "mms.ReportedOptFlds.entryID",
11044
14
        FT_BOOLEAN, 8, NULL, 0x01,
11045
14
        NULL, HFILL }},
11046
14
    { &hf_mms_ReportedOptFlds_conf_revision,
11047
14
      { "conf-revision", "mms.ReportedOptFlds.conf.revision",
11048
14
        FT_BOOLEAN, 8, NULL, 0x80,
11049
14
        NULL, HFILL }},
11050
14
    { &hf_mms_ReportedOptFlds_segmentation,
11051
14
      { "segmentation", "mms.ReportedOptFlds.segmentation",
11052
14
        FT_BOOLEAN, 8, NULL, 0x40,
11053
14
        NULL, HFILL }},
11054
14
    { &hf_mms_ParameterSupportOptions_str1,
11055
14
      { "str1", "mms.ParameterSupportOptions.str1",
11056
14
        FT_BOOLEAN, 8, NULL, 0x80,
11057
14
        NULL, HFILL }},
11058
14
    { &hf_mms_ParameterSupportOptions_str2,
11059
14
      { "str2", "mms.ParameterSupportOptions.str2",
11060
14
        FT_BOOLEAN, 8, NULL, 0x40,
11061
14
        NULL, HFILL }},
11062
14
    { &hf_mms_ParameterSupportOptions_vnam,
11063
14
      { "vnam", "mms.ParameterSupportOptions.vnam",
11064
14
        FT_BOOLEAN, 8, NULL, 0x20,
11065
14
        NULL, HFILL }},
11066
14
    { &hf_mms_ParameterSupportOptions_valt,
11067
14
      { "valt", "mms.ParameterSupportOptions.valt",
11068
14
        FT_BOOLEAN, 8, NULL, 0x10,
11069
14
        NULL, HFILL }},
11070
14
    { &hf_mms_ParameterSupportOptions_vadr,
11071
14
      { "vadr", "mms.ParameterSupportOptions.vadr",
11072
14
        FT_BOOLEAN, 8, NULL, 0x08,
11073
14
        NULL, HFILL }},
11074
14
    { &hf_mms_ParameterSupportOptions_vsca,
11075
14
      { "vsca", "mms.ParameterSupportOptions.vsca",
11076
14
        FT_BOOLEAN, 8, NULL, 0x04,
11077
14
        NULL, HFILL }},
11078
14
    { &hf_mms_ParameterSupportOptions_tpy,
11079
14
      { "tpy", "mms.ParameterSupportOptions.tpy",
11080
14
        FT_BOOLEAN, 8, NULL, 0x02,
11081
14
        NULL, HFILL }},
11082
14
    { &hf_mms_ParameterSupportOptions_vlis,
11083
14
      { "vlis", "mms.ParameterSupportOptions.vlis",
11084
14
        FT_BOOLEAN, 8, NULL, 0x01,
11085
14
        NULL, HFILL }},
11086
14
    { &hf_mms_ParameterSupportOptions_real,
11087
14
      { "real", "mms.ParameterSupportOptions.real",
11088
14
        FT_BOOLEAN, 8, NULL, 0x80,
11089
14
        NULL, HFILL }},
11090
14
    { &hf_mms_ParameterSupportOptions_spare_bit9,
11091
14
      { "spare_bit9", "mms.ParameterSupportOptions.spare.bit9",
11092
14
        FT_BOOLEAN, 8, NULL, 0x40,
11093
14
        NULL, HFILL }},
11094
14
    { &hf_mms_ParameterSupportOptions_cei,
11095
14
      { "cei", "mms.ParameterSupportOptions.cei",
11096
14
        FT_BOOLEAN, 8, NULL, 0x20,
11097
14
        NULL, HFILL }},
11098
14
    { &hf_mms_ServiceSupportOptions_status,
11099
14
      { "status", "mms.ServiceSupportOptions.status",
11100
14
        FT_BOOLEAN, 8, NULL, 0x80,
11101
14
        NULL, HFILL }},
11102
14
    { &hf_mms_ServiceSupportOptions_getNameList,
11103
14
      { "getNameList", "mms.ServiceSupportOptions.getNameList",
11104
14
        FT_BOOLEAN, 8, NULL, 0x40,
11105
14
        NULL, HFILL }},
11106
14
    { &hf_mms_ServiceSupportOptions_identify,
11107
14
      { "identify", "mms.ServiceSupportOptions.identify",
11108
14
        FT_BOOLEAN, 8, NULL, 0x20,
11109
14
        NULL, HFILL }},
11110
14
    { &hf_mms_ServiceSupportOptions_rename,
11111
14
      { "rename", "mms.ServiceSupportOptions.rename",
11112
14
        FT_BOOLEAN, 8, NULL, 0x10,
11113
14
        NULL, HFILL }},
11114
14
    { &hf_mms_ServiceSupportOptions_read,
11115
14
      { "read", "mms.ServiceSupportOptions.read",
11116
14
        FT_BOOLEAN, 8, NULL, 0x08,
11117
14
        NULL, HFILL }},
11118
14
    { &hf_mms_ServiceSupportOptions_write,
11119
14
      { "write", "mms.ServiceSupportOptions.write",
11120
14
        FT_BOOLEAN, 8, NULL, 0x04,
11121
14
        NULL, HFILL }},
11122
14
    { &hf_mms_ServiceSupportOptions_getVariableAccessAttributes,
11123
14
      { "getVariableAccessAttributes", "mms.ServiceSupportOptions.getVariableAccessAttributes",
11124
14
        FT_BOOLEAN, 8, NULL, 0x02,
11125
14
        NULL, HFILL }},
11126
14
    { &hf_mms_ServiceSupportOptions_defineNamedVariable,
11127
14
      { "defineNamedVariable", "mms.ServiceSupportOptions.defineNamedVariable",
11128
14
        FT_BOOLEAN, 8, NULL, 0x01,
11129
14
        NULL, HFILL }},
11130
14
    { &hf_mms_ServiceSupportOptions_defineScatteredAccess,
11131
14
      { "defineScatteredAccess", "mms.ServiceSupportOptions.defineScatteredAccess",
11132
14
        FT_BOOLEAN, 8, NULL, 0x80,
11133
14
        NULL, HFILL }},
11134
14
    { &hf_mms_ServiceSupportOptions_getScatteredAccessAttributes,
11135
14
      { "getScatteredAccessAttributes", "mms.ServiceSupportOptions.getScatteredAccessAttributes",
11136
14
        FT_BOOLEAN, 8, NULL, 0x40,
11137
14
        NULL, HFILL }},
11138
14
    { &hf_mms_ServiceSupportOptions_deleteVariableAccess,
11139
14
      { "deleteVariableAccess", "mms.ServiceSupportOptions.deleteVariableAccess",
11140
14
        FT_BOOLEAN, 8, NULL, 0x20,
11141
14
        NULL, HFILL }},
11142
14
    { &hf_mms_ServiceSupportOptions_defineNamedVariableList,
11143
14
      { "defineNamedVariableList", "mms.ServiceSupportOptions.defineNamedVariableList",
11144
14
        FT_BOOLEAN, 8, NULL, 0x10,
11145
14
        NULL, HFILL }},
11146
14
    { &hf_mms_ServiceSupportOptions_getNamedVariableListAttributes,
11147
14
      { "getNamedVariableListAttributes", "mms.ServiceSupportOptions.getNamedVariableListAttributes",
11148
14
        FT_BOOLEAN, 8, NULL, 0x08,
11149
14
        NULL, HFILL }},
11150
14
    { &hf_mms_ServiceSupportOptions_deleteNamedVariableList,
11151
14
      { "deleteNamedVariableList", "mms.ServiceSupportOptions.deleteNamedVariableList",
11152
14
        FT_BOOLEAN, 8, NULL, 0x04,
11153
14
        NULL, HFILL }},
11154
14
    { &hf_mms_ServiceSupportOptions_defineNamedType,
11155
14
      { "defineNamedType", "mms.ServiceSupportOptions.defineNamedType",
11156
14
        FT_BOOLEAN, 8, NULL, 0x02,
11157
14
        NULL, HFILL }},
11158
14
    { &hf_mms_ServiceSupportOptions_getNamedTypeAttributes,
11159
14
      { "getNamedTypeAttributes", "mms.ServiceSupportOptions.getNamedTypeAttributes",
11160
14
        FT_BOOLEAN, 8, NULL, 0x01,
11161
14
        NULL, HFILL }},
11162
14
    { &hf_mms_ServiceSupportOptions_deleteNamedType,
11163
14
      { "deleteNamedType", "mms.ServiceSupportOptions.deleteNamedType",
11164
14
        FT_BOOLEAN, 8, NULL, 0x80,
11165
14
        NULL, HFILL }},
11166
14
    { &hf_mms_ServiceSupportOptions_input,
11167
14
      { "input", "mms.ServiceSupportOptions.input",
11168
14
        FT_BOOLEAN, 8, NULL, 0x40,
11169
14
        NULL, HFILL }},
11170
14
    { &hf_mms_ServiceSupportOptions_output,
11171
14
      { "output", "mms.ServiceSupportOptions.output",
11172
14
        FT_BOOLEAN, 8, NULL, 0x20,
11173
14
        NULL, HFILL }},
11174
14
    { &hf_mms_ServiceSupportOptions_takeControl,
11175
14
      { "takeControl", "mms.ServiceSupportOptions.takeControl",
11176
14
        FT_BOOLEAN, 8, NULL, 0x10,
11177
14
        NULL, HFILL }},
11178
14
    { &hf_mms_ServiceSupportOptions_relinquishControl,
11179
14
      { "relinquishControl", "mms.ServiceSupportOptions.relinquishControl",
11180
14
        FT_BOOLEAN, 8, NULL, 0x08,
11181
14
        NULL, HFILL }},
11182
14
    { &hf_mms_ServiceSupportOptions_defineSemaphore,
11183
14
      { "defineSemaphore", "mms.ServiceSupportOptions.defineSemaphore",
11184
14
        FT_BOOLEAN, 8, NULL, 0x04,
11185
14
        NULL, HFILL }},
11186
14
    { &hf_mms_ServiceSupportOptions_deleteSemaphore,
11187
14
      { "deleteSemaphore", "mms.ServiceSupportOptions.deleteSemaphore",
11188
14
        FT_BOOLEAN, 8, NULL, 0x02,
11189
14
        NULL, HFILL }},
11190
14
    { &hf_mms_ServiceSupportOptions_reportSemaphoreStatus,
11191
14
      { "reportSemaphoreStatus", "mms.ServiceSupportOptions.reportSemaphoreStatus",
11192
14
        FT_BOOLEAN, 8, NULL, 0x01,
11193
14
        NULL, HFILL }},
11194
14
    { &hf_mms_ServiceSupportOptions_reportPoolSemaphoreStatus,
11195
14
      { "reportPoolSemaphoreStatus", "mms.ServiceSupportOptions.reportPoolSemaphoreStatus",
11196
14
        FT_BOOLEAN, 8, NULL, 0x80,
11197
14
        NULL, HFILL }},
11198
14
    { &hf_mms_ServiceSupportOptions_reportSemaphoreEntryStatus,
11199
14
      { "reportSemaphoreEntryStatus", "mms.ServiceSupportOptions.reportSemaphoreEntryStatus",
11200
14
        FT_BOOLEAN, 8, NULL, 0x40,
11201
14
        NULL, HFILL }},
11202
14
    { &hf_mms_ServiceSupportOptions_initiateDownloadSequence,
11203
14
      { "initiateDownloadSequence", "mms.ServiceSupportOptions.initiateDownloadSequence",
11204
14
        FT_BOOLEAN, 8, NULL, 0x20,
11205
14
        NULL, HFILL }},
11206
14
    { &hf_mms_ServiceSupportOptions_downloadSegment,
11207
14
      { "downloadSegment", "mms.ServiceSupportOptions.downloadSegment",
11208
14
        FT_BOOLEAN, 8, NULL, 0x10,
11209
14
        NULL, HFILL }},
11210
14
    { &hf_mms_ServiceSupportOptions_terminateDownloadSequence,
11211
14
      { "terminateDownloadSequence", "mms.ServiceSupportOptions.terminateDownloadSequence",
11212
14
        FT_BOOLEAN, 8, NULL, 0x08,
11213
14
        NULL, HFILL }},
11214
14
    { &hf_mms_ServiceSupportOptions_initiateUploadSequence,
11215
14
      { "initiateUploadSequence", "mms.ServiceSupportOptions.initiateUploadSequence",
11216
14
        FT_BOOLEAN, 8, NULL, 0x04,
11217
14
        NULL, HFILL }},
11218
14
    { &hf_mms_ServiceSupportOptions_uploadSegment,
11219
14
      { "uploadSegment", "mms.ServiceSupportOptions.uploadSegment",
11220
14
        FT_BOOLEAN, 8, NULL, 0x02,
11221
14
        NULL, HFILL }},
11222
14
    { &hf_mms_ServiceSupportOptions_terminateUploadSequence,
11223
14
      { "terminateUploadSequence", "mms.ServiceSupportOptions.terminateUploadSequence",
11224
14
        FT_BOOLEAN, 8, NULL, 0x01,
11225
14
        NULL, HFILL }},
11226
14
    { &hf_mms_ServiceSupportOptions_requestDomainDownload,
11227
14
      { "requestDomainDownload", "mms.ServiceSupportOptions.requestDomainDownload",
11228
14
        FT_BOOLEAN, 8, NULL, 0x80,
11229
14
        NULL, HFILL }},
11230
14
    { &hf_mms_ServiceSupportOptions_requestDomainUpload,
11231
14
      { "requestDomainUpload", "mms.ServiceSupportOptions.requestDomainUpload",
11232
14
        FT_BOOLEAN, 8, NULL, 0x40,
11233
14
        NULL, HFILL }},
11234
14
    { &hf_mms_ServiceSupportOptions_loadDomainContent,
11235
14
      { "loadDomainContent", "mms.ServiceSupportOptions.loadDomainContent",
11236
14
        FT_BOOLEAN, 8, NULL, 0x20,
11237
14
        NULL, HFILL }},
11238
14
    { &hf_mms_ServiceSupportOptions_storeDomainContent,
11239
14
      { "storeDomainContent", "mms.ServiceSupportOptions.storeDomainContent",
11240
14
        FT_BOOLEAN, 8, NULL, 0x10,
11241
14
        NULL, HFILL }},
11242
14
    { &hf_mms_ServiceSupportOptions_deleteDomain,
11243
14
      { "deleteDomain", "mms.ServiceSupportOptions.deleteDomain",
11244
14
        FT_BOOLEAN, 8, NULL, 0x08,
11245
14
        NULL, HFILL }},
11246
14
    { &hf_mms_ServiceSupportOptions_getDomainAttributes,
11247
14
      { "getDomainAttributes", "mms.ServiceSupportOptions.getDomainAttributes",
11248
14
        FT_BOOLEAN, 8, NULL, 0x04,
11249
14
        NULL, HFILL }},
11250
14
    { &hf_mms_ServiceSupportOptions_createProgramInvocation,
11251
14
      { "createProgramInvocation", "mms.ServiceSupportOptions.createProgramInvocation",
11252
14
        FT_BOOLEAN, 8, NULL, 0x02,
11253
14
        NULL, HFILL }},
11254
14
    { &hf_mms_ServiceSupportOptions_deleteProgramInvocation,
11255
14
      { "deleteProgramInvocation", "mms.ServiceSupportOptions.deleteProgramInvocation",
11256
14
        FT_BOOLEAN, 8, NULL, 0x01,
11257
14
        NULL, HFILL }},
11258
14
    { &hf_mms_ServiceSupportOptions_start,
11259
14
      { "start", "mms.ServiceSupportOptions.start",
11260
14
        FT_BOOLEAN, 8, NULL, 0x80,
11261
14
        NULL, HFILL }},
11262
14
    { &hf_mms_ServiceSupportOptions_stop,
11263
14
      { "stop", "mms.ServiceSupportOptions.stop",
11264
14
        FT_BOOLEAN, 8, NULL, 0x40,
11265
14
        NULL, HFILL }},
11266
14
    { &hf_mms_ServiceSupportOptions_resume,
11267
14
      { "resume", "mms.ServiceSupportOptions.resume",
11268
14
        FT_BOOLEAN, 8, NULL, 0x20,
11269
14
        NULL, HFILL }},
11270
14
    { &hf_mms_ServiceSupportOptions_reset,
11271
14
      { "reset", "mms.ServiceSupportOptions.reset",
11272
14
        FT_BOOLEAN, 8, NULL, 0x10,
11273
14
        NULL, HFILL }},
11274
14
    { &hf_mms_ServiceSupportOptions_kill,
11275
14
      { "kill", "mms.ServiceSupportOptions.kill",
11276
14
        FT_BOOLEAN, 8, NULL, 0x08,
11277
14
        NULL, HFILL }},
11278
14
    { &hf_mms_ServiceSupportOptions_getProgramInvocationAttributes,
11279
14
      { "getProgramInvocationAttributes", "mms.ServiceSupportOptions.getProgramInvocationAttributes",
11280
14
        FT_BOOLEAN, 8, NULL, 0x04,
11281
14
        NULL, HFILL }},
11282
14
    { &hf_mms_ServiceSupportOptions_obtainFile,
11283
14
      { "obtainFile", "mms.ServiceSupportOptions.obtainFile",
11284
14
        FT_BOOLEAN, 8, NULL, 0x02,
11285
14
        NULL, HFILL }},
11286
14
    { &hf_mms_ServiceSupportOptions_defineEventCondition,
11287
14
      { "defineEventCondition", "mms.ServiceSupportOptions.defineEventCondition",
11288
14
        FT_BOOLEAN, 8, NULL, 0x01,
11289
14
        NULL, HFILL }},
11290
14
    { &hf_mms_ServiceSupportOptions_deleteEventCondition,
11291
14
      { "deleteEventCondition", "mms.ServiceSupportOptions.deleteEventCondition",
11292
14
        FT_BOOLEAN, 8, NULL, 0x80,
11293
14
        NULL, HFILL }},
11294
14
    { &hf_mms_ServiceSupportOptions_getEventConditionAttributes,
11295
14
      { "getEventConditionAttributes", "mms.ServiceSupportOptions.getEventConditionAttributes",
11296
14
        FT_BOOLEAN, 8, NULL, 0x40,
11297
14
        NULL, HFILL }},
11298
14
    { &hf_mms_ServiceSupportOptions_reportEventConditionStatus,
11299
14
      { "reportEventConditionStatus", "mms.ServiceSupportOptions.reportEventConditionStatus",
11300
14
        FT_BOOLEAN, 8, NULL, 0x20,
11301
14
        NULL, HFILL }},
11302
14
    { &hf_mms_ServiceSupportOptions_alterEventConditionMonitoring,
11303
14
      { "alterEventConditionMonitoring", "mms.ServiceSupportOptions.alterEventConditionMonitoring",
11304
14
        FT_BOOLEAN, 8, NULL, 0x10,
11305
14
        NULL, HFILL }},
11306
14
    { &hf_mms_ServiceSupportOptions_triggerEvent,
11307
14
      { "triggerEvent", "mms.ServiceSupportOptions.triggerEvent",
11308
14
        FT_BOOLEAN, 8, NULL, 0x08,
11309
14
        NULL, HFILL }},
11310
14
    { &hf_mms_ServiceSupportOptions_defineEventAction,
11311
14
      { "defineEventAction", "mms.ServiceSupportOptions.defineEventAction",
11312
14
        FT_BOOLEAN, 8, NULL, 0x04,
11313
14
        NULL, HFILL }},
11314
14
    { &hf_mms_ServiceSupportOptions_deleteEventAction,
11315
14
      { "deleteEventAction", "mms.ServiceSupportOptions.deleteEventAction",
11316
14
        FT_BOOLEAN, 8, NULL, 0x02,
11317
14
        NULL, HFILL }},
11318
14
    { &hf_mms_ServiceSupportOptions_getEventActionAttributes,
11319
14
      { "getEventActionAttributes", "mms.ServiceSupportOptions.getEventActionAttributes",
11320
14
        FT_BOOLEAN, 8, NULL, 0x01,
11321
14
        NULL, HFILL }},
11322
14
    { &hf_mms_ServiceSupportOptions_reportActionStatus,
11323
14
      { "reportActionStatus", "mms.ServiceSupportOptions.reportActionStatus",
11324
14
        FT_BOOLEAN, 8, NULL, 0x80,
11325
14
        NULL, HFILL }},
11326
14
    { &hf_mms_ServiceSupportOptions_defineEventEnrollment,
11327
14
      { "defineEventEnrollment", "mms.ServiceSupportOptions.defineEventEnrollment",
11328
14
        FT_BOOLEAN, 8, NULL, 0x40,
11329
14
        NULL, HFILL }},
11330
14
    { &hf_mms_ServiceSupportOptions_deleteEventEnrollment,
11331
14
      { "deleteEventEnrollment", "mms.ServiceSupportOptions.deleteEventEnrollment",
11332
14
        FT_BOOLEAN, 8, NULL, 0x20,
11333
14
        NULL, HFILL }},
11334
14
    { &hf_mms_ServiceSupportOptions_alterEventEnrollment,
11335
14
      { "alterEventEnrollment", "mms.ServiceSupportOptions.alterEventEnrollment",
11336
14
        FT_BOOLEAN, 8, NULL, 0x10,
11337
14
        NULL, HFILL }},
11338
14
    { &hf_mms_ServiceSupportOptions_reportEventEnrollmentStatus,
11339
14
      { "reportEventEnrollmentStatus", "mms.ServiceSupportOptions.reportEventEnrollmentStatus",
11340
14
        FT_BOOLEAN, 8, NULL, 0x08,
11341
14
        NULL, HFILL }},
11342
14
    { &hf_mms_ServiceSupportOptions_getEventEnrollmentAttributes,
11343
14
      { "getEventEnrollmentAttributes", "mms.ServiceSupportOptions.getEventEnrollmentAttributes",
11344
14
        FT_BOOLEAN, 8, NULL, 0x04,
11345
14
        NULL, HFILL }},
11346
14
    { &hf_mms_ServiceSupportOptions_acknowledgeEventNotification,
11347
14
      { "acknowledgeEventNotification", "mms.ServiceSupportOptions.acknowledgeEventNotification",
11348
14
        FT_BOOLEAN, 8, NULL, 0x02,
11349
14
        NULL, HFILL }},
11350
14
    { &hf_mms_ServiceSupportOptions_getAlarmSummary,
11351
14
      { "getAlarmSummary", "mms.ServiceSupportOptions.getAlarmSummary",
11352
14
        FT_BOOLEAN, 8, NULL, 0x01,
11353
14
        NULL, HFILL }},
11354
14
    { &hf_mms_ServiceSupportOptions_getAlarmEnrollmentSummary,
11355
14
      { "getAlarmEnrollmentSummary", "mms.ServiceSupportOptions.getAlarmEnrollmentSummary",
11356
14
        FT_BOOLEAN, 8, NULL, 0x80,
11357
14
        NULL, HFILL }},
11358
14
    { &hf_mms_ServiceSupportOptions_readJournal,
11359
14
      { "readJournal", "mms.ServiceSupportOptions.readJournal",
11360
14
        FT_BOOLEAN, 8, NULL, 0x40,
11361
14
        NULL, HFILL }},
11362
14
    { &hf_mms_ServiceSupportOptions_writeJournal,
11363
14
      { "writeJournal", "mms.ServiceSupportOptions.writeJournal",
11364
14
        FT_BOOLEAN, 8, NULL, 0x20,
11365
14
        NULL, HFILL }},
11366
14
    { &hf_mms_ServiceSupportOptions_initializeJournal,
11367
14
      { "initializeJournal", "mms.ServiceSupportOptions.initializeJournal",
11368
14
        FT_BOOLEAN, 8, NULL, 0x10,
11369
14
        NULL, HFILL }},
11370
14
    { &hf_mms_ServiceSupportOptions_reportJournalStatus,
11371
14
      { "reportJournalStatus", "mms.ServiceSupportOptions.reportJournalStatus",
11372
14
        FT_BOOLEAN, 8, NULL, 0x08,
11373
14
        NULL, HFILL }},
11374
14
    { &hf_mms_ServiceSupportOptions_createJournal,
11375
14
      { "createJournal", "mms.ServiceSupportOptions.createJournal",
11376
14
        FT_BOOLEAN, 8, NULL, 0x04,
11377
14
        NULL, HFILL }},
11378
14
    { &hf_mms_ServiceSupportOptions_deleteJournal,
11379
14
      { "deleteJournal", "mms.ServiceSupportOptions.deleteJournal",
11380
14
        FT_BOOLEAN, 8, NULL, 0x02,
11381
14
        NULL, HFILL }},
11382
14
    { &hf_mms_ServiceSupportOptions_getCapabilityList,
11383
14
      { "getCapabilityList", "mms.ServiceSupportOptions.getCapabilityList",
11384
14
        FT_BOOLEAN, 8, NULL, 0x01,
11385
14
        NULL, HFILL }},
11386
14
    { &hf_mms_ServiceSupportOptions_fileOpen,
11387
14
      { "fileOpen", "mms.ServiceSupportOptions.fileOpen",
11388
14
        FT_BOOLEAN, 8, NULL, 0x80,
11389
14
        NULL, HFILL }},
11390
14
    { &hf_mms_ServiceSupportOptions_fileRead,
11391
14
      { "fileRead", "mms.ServiceSupportOptions.fileRead",
11392
14
        FT_BOOLEAN, 8, NULL, 0x40,
11393
14
        NULL, HFILL }},
11394
14
    { &hf_mms_ServiceSupportOptions_fileClose,
11395
14
      { "fileClose", "mms.ServiceSupportOptions.fileClose",
11396
14
        FT_BOOLEAN, 8, NULL, 0x20,
11397
14
        NULL, HFILL }},
11398
14
    { &hf_mms_ServiceSupportOptions_fileRename,
11399
14
      { "fileRename", "mms.ServiceSupportOptions.fileRename",
11400
14
        FT_BOOLEAN, 8, NULL, 0x10,
11401
14
        NULL, HFILL }},
11402
14
    { &hf_mms_ServiceSupportOptions_fileDelete,
11403
14
      { "fileDelete", "mms.ServiceSupportOptions.fileDelete",
11404
14
        FT_BOOLEAN, 8, NULL, 0x08,
11405
14
        NULL, HFILL }},
11406
14
    { &hf_mms_ServiceSupportOptions_fileDirectory,
11407
14
      { "fileDirectory", "mms.ServiceSupportOptions.fileDirectory",
11408
14
        FT_BOOLEAN, 8, NULL, 0x04,
11409
14
        NULL, HFILL }},
11410
14
    { &hf_mms_ServiceSupportOptions_unsolicitedStatus,
11411
14
      { "unsolicitedStatus", "mms.ServiceSupportOptions.unsolicitedStatus",
11412
14
        FT_BOOLEAN, 8, NULL, 0x02,
11413
14
        NULL, HFILL }},
11414
14
    { &hf_mms_ServiceSupportOptions_informationReport,
11415
14
      { "informationReport", "mms.ServiceSupportOptions.informationReport",
11416
14
        FT_BOOLEAN, 8, NULL, 0x01,
11417
14
        NULL, HFILL }},
11418
14
    { &hf_mms_ServiceSupportOptions_eventNotification,
11419
14
      { "eventNotification", "mms.ServiceSupportOptions.eventNotification",
11420
14
        FT_BOOLEAN, 8, NULL, 0x80,
11421
14
        NULL, HFILL }},
11422
14
    { &hf_mms_ServiceSupportOptions_attachToEventCondition,
11423
14
      { "attachToEventCondition", "mms.ServiceSupportOptions.attachToEventCondition",
11424
14
        FT_BOOLEAN, 8, NULL, 0x40,
11425
14
        NULL, HFILL }},
11426
14
    { &hf_mms_ServiceSupportOptions_attachToSemaphore,
11427
14
      { "attachToSemaphore", "mms.ServiceSupportOptions.attachToSemaphore",
11428
14
        FT_BOOLEAN, 8, NULL, 0x20,
11429
14
        NULL, HFILL }},
11430
14
    { &hf_mms_ServiceSupportOptions_conclude,
11431
14
      { "conclude", "mms.ServiceSupportOptions.conclude",
11432
14
        FT_BOOLEAN, 8, NULL, 0x10,
11433
14
        NULL, HFILL }},
11434
14
    { &hf_mms_ServiceSupportOptions_cancel,
11435
14
      { "cancel", "mms.ServiceSupportOptions.cancel",
11436
14
        FT_BOOLEAN, 8, NULL, 0x08,
11437
14
        NULL, HFILL }},
11438
14
    { &hf_mms_Transitions_idle_to_disabled,
11439
14
      { "idle-to-disabled", "mms.Transitions.idle.to.disabled",
11440
14
        FT_BOOLEAN, 8, NULL, 0x80,
11441
14
        NULL, HFILL }},
11442
14
    { &hf_mms_Transitions_active_to_disabled,
11443
14
      { "active-to-disabled", "mms.Transitions.active.to.disabled",
11444
14
        FT_BOOLEAN, 8, NULL, 0x40,
11445
14
        NULL, HFILL }},
11446
14
    { &hf_mms_Transitions_disabled_to_idle,
11447
14
      { "disabled-to-idle", "mms.Transitions.disabled.to.idle",
11448
14
        FT_BOOLEAN, 8, NULL, 0x20,
11449
14
        NULL, HFILL }},
11450
14
    { &hf_mms_Transitions_active_to_idle,
11451
14
      { "active-to-idle", "mms.Transitions.active.to.idle",
11452
14
        FT_BOOLEAN, 8, NULL, 0x10,
11453
14
        NULL, HFILL }},
11454
14
    { &hf_mms_Transitions_disabled_to_active,
11455
14
      { "disabled-to-active", "mms.Transitions.disabled.to.active",
11456
14
        FT_BOOLEAN, 8, NULL, 0x08,
11457
14
        NULL, HFILL }},
11458
14
    { &hf_mms_Transitions_idle_to_active,
11459
14
      { "idle-to-active", "mms.Transitions.idle.to.active",
11460
14
        FT_BOOLEAN, 8, NULL, 0x04,
11461
14
        NULL, HFILL }},
11462
14
    { &hf_mms_Transitions_any_to_deleted,
11463
14
      { "any-to-deleted", "mms.Transitions.any.to.deleted",
11464
14
        FT_BOOLEAN, 8, NULL, 0x02,
11465
14
        NULL, HFILL }},
11466
14
    };
11467
11468
    /* List of subtrees */
11469
14
    static int* ett[] = {
11470
14
            &ett_mms,
11471
14
            &ett_mms_iec61850_quality_bitstring,
11472
14
            &ett_mms_iec61850_check_bitstring,
11473
14
    &ett_mms_ReportedOptFlds,
11474
14
    &ett_mms_MMSpdu,
11475
14
    &ett_mms_Confirmed_RequestPDU,
11476
14
    &ett_mms_SEQUENCE_OF_Modifier,
11477
14
    &ett_mms_Unconfirmed_PDU,
11478
14
    &ett_mms_Confirmed_ResponsePDU,
11479
14
    &ett_mms_Confirmed_ErrorPDU,
11480
14
    &ett_mms_UnconfirmedService,
11481
14
    &ett_mms_Modifier,
11482
14
    &ett_mms_ConfirmedServiceRequest,
11483
14
    &ett_mms_CS_Request_Detail,
11484
14
    &ett_mms_ConfirmedServiceResponse,
11485
14
    &ett_mms_FileName,
11486
14
    &ett_mms_ObjectName,
11487
14
    &ett_mms_T_domain_specific,
11488
14
    &ett_mms_ApplicationReference,
11489
14
    &ett_mms_Initiate_RequestPDU,
11490
14
    &ett_mms_InitRequestDetail,
11491
14
    &ett_mms_Initiate_ResponsePDU,
11492
14
    &ett_mms_InitResponseDetail,
11493
14
    &ett_mms_ParameterSupportOptions,
11494
14
    &ett_mms_ServiceSupportOptions,
11495
14
    &ett_mms_Cancel_ErrorPDU,
11496
14
    &ett_mms_ServiceError,
11497
14
    &ett_mms_T_errorClass,
11498
14
    &ett_mms_T_serviceSpecificInformation,
11499
14
    &ett_mms_AdditionalService_Error,
11500
14
    &ett_mms_RemoveEventConditionListReference_Error,
11501
14
    &ett_mms_InitiateUnitControl_Error,
11502
14
    &ett_mms_StartUnitControl_Error,
11503
14
    &ett_mms_StopUnitControl_Error,
11504
14
    &ett_mms_DeleteUnitControl_Error,
11505
14
    &ett_mms_LoadUnitControlFromFile_Error,
11506
14
    &ett_mms_RejectPDU,
11507
14
    &ett_mms_T_rejectReason,
11508
14
    &ett_mms_Status_Response,
11509
14
    &ett_mms_ObjectScope,
11510
14
    &ett_mms_GetNameList_Request,
11511
14
    &ett_mms_T_extendedObjectClass,
11512
14
    &ett_mms_GetNameList_Response,
11513
14
    &ett_mms_SEQUENCE_OF_Identifier,
11514
14
    &ett_mms_Identify_Response,
11515
14
    &ett_mms_T_listOfAbstractSyntaxes,
11516
14
    &ett_mms_Rename_Request,
11517
14
    &ett_mms_T_extendedObjectClass_01,
11518
14
    &ett_mms_GetCapabilityList_Request,
11519
14
    &ett_mms_GetCapabilityList_Response,
11520
14
    &ett_mms_T_listOfCapabilities,
11521
14
    &ett_mms_InitiateDownloadSequence_Request,
11522
14
    &ett_mms_T_listOfCapabilities_01,
11523
14
    &ett_mms_DownloadSegment_Response,
11524
14
    &ett_mms_T_loadData,
11525
14
    &ett_mms_TerminateDownloadSequence_Request,
11526
14
    &ett_mms_InitiateUploadSequence_Response,
11527
14
    &ett_mms_T_listOfCapabilities_02,
11528
14
    &ett_mms_UploadSegment_Response,
11529
14
    &ett_mms_T_loadData_01,
11530
14
    &ett_mms_RequestDomainDownload_Request,
11531
14
    &ett_mms_T_listOfCapabilities_03,
11532
14
    &ett_mms_RequestDomainUpload_Request,
11533
14
    &ett_mms_LoadDomainContent_Request,
11534
14
    &ett_mms_T_listOfCapabilities_04,
11535
14
    &ett_mms_StoreDomainContent_Request,
11536
14
    &ett_mms_GetDomainAttributes_Response,
11537
14
    &ett_mms_T_listOfCapabilities_05,
11538
14
    &ett_mms_CreateProgramInvocation_Request,
11539
14
    &ett_mms_Start_Request,
11540
14
    &ett_mms_T_executionArgument,
11541
14
    &ett_mms_Stop_Request,
11542
14
    &ett_mms_Resume_Request,
11543
14
    &ett_mms_T_executionArgument_01,
11544
14
    &ett_mms_Reset_Request,
11545
14
    &ett_mms_Kill_Request,
11546
14
    &ett_mms_GetProgramInvocationAttributes_Response,
11547
14
    &ett_mms_T_executionArgument_02,
11548
14
    &ett_mms_TypeSpecification,
11549
14
    &ett_mms_T_array,
11550
14
    &ett_mms_T_structure,
11551
14
    &ett_mms_T_components,
11552
14
    &ett_mms_T_components_item,
11553
14
    &ett_mms_AlternateAccess,
11554
14
    &ett_mms_AlternateAccess_item,
11555
14
    &ett_mms_T_named,
11556
14
    &ett_mms_AlternateAccessSelection,
11557
14
    &ett_mms_T_selectAlternateAccess,
11558
14
    &ett_mms_T_accessSelection,
11559
14
    &ett_mms_T_indexRange,
11560
14
    &ett_mms_T_selectAccess,
11561
14
    &ett_mms_T_indexRange_01,
11562
14
    &ett_mms_Read_Request,
11563
14
    &ett_mms_Read_Response,
11564
14
    &ett_mms_SEQUENCE_OF_AccessResult,
11565
14
    &ett_mms_Write_Request,
11566
14
    &ett_mms_T_listOfData,
11567
14
    &ett_mms_Write_Response,
11568
14
    &ett_mms_Write_Response_item,
11569
14
    &ett_mms_InformationReport,
11570
14
    &ett_mms_T_listOfAccessResult,
11571
14
    &ett_mms_GetVariableAccessAttributes_Request,
11572
14
    &ett_mms_GetVariableAccessAttributes_Response,
11573
14
    &ett_mms_DefineNamedVariable_Request,
11574
14
    &ett_mms_DefineScatteredAccess_Request,
11575
14
    &ett_mms_GetScatteredAccessAttributes_Response,
11576
14
    &ett_mms_DeleteVariableAccess_Request,
11577
14
    &ett_mms_SEQUENCE_OF_ObjectName,
11578
14
    &ett_mms_DeleteVariableAccess_Response,
11579
14
    &ett_mms_DefineNamedVariableList_Request,
11580
14
    &ett_mms_T_listOfVariable,
11581
14
    &ett_mms_T_listOfVariable_item,
11582
14
    &ett_mms_GetNamedVariableListAttributes_Response,
11583
14
    &ett_mms_T_listOfVariable_01,
11584
14
    &ett_mms_T_listOfVariable_item_01,
11585
14
    &ett_mms_DeleteNamedVariableList_Request,
11586
14
    &ett_mms_DeleteNamedVariableList_Response,
11587
14
    &ett_mms_DefineNamedType_Request,
11588
14
    &ett_mms_GetNamedTypeAttributes_Response,
11589
14
    &ett_mms_DeleteNamedType_Request,
11590
14
    &ett_mms_DeleteNamedType_Response,
11591
14
    &ett_mms_AccessResult,
11592
14
    &ett_mms_Data,
11593
14
    &ett_mms_SEQUENCE_OF_Data,
11594
14
    &ett_mms_T_structure_01,
11595
14
    &ett_mms_VariableAccessSpecification,
11596
14
    &ett_mms_T_listOfVariable_02,
11597
14
    &ett_mms_T_listOfVariable_item_02,
11598
14
    &ett_mms_ScatteredAccessDescription,
11599
14
    &ett_mms_ScatteredAccessDescription_item,
11600
14
    &ett_mms_VariableSpecification,
11601
14
    &ett_mms_T_variableDescription,
11602
14
    &ett_mms_Address,
11603
14
    &ett_mms_TakeControl_Request,
11604
14
    &ett_mms_TakeControl_Response,
11605
14
    &ett_mms_RelinquishControl_Request,
11606
14
    &ett_mms_DefineSemaphore_Request,
11607
14
    &ett_mms_ReportSemaphoreStatus_Response,
11608
14
    &ett_mms_ReportPoolSemaphoreStatus_Request,
11609
14
    &ett_mms_ReportPoolSemaphoreStatus_Response,
11610
14
    &ett_mms_T_listOfNamedTokens,
11611
14
    &ett_mms_T_listOfNamedTokens_item,
11612
14
    &ett_mms_ReportSemaphoreEntryStatus_Request,
11613
14
    &ett_mms_ReportSemaphoreEntryStatus_Response,
11614
14
    &ett_mms_SEQUENCE_OF_SemaphoreEntry,
11615
14
    &ett_mms_AttachToSemaphore,
11616
14
    &ett_mms_SemaphoreEntry,
11617
14
    &ett_mms_Input_Request,
11618
14
    &ett_mms_T_listOfPromptData,
11619
14
    &ett_mms_Output_Request,
11620
14
    &ett_mms_T_listOfOutputData,
11621
14
    &ett_mms_DefineEventCondition_Request,
11622
14
    &ett_mms_DeleteEventCondition_Request,
11623
14
    &ett_mms_GetEventConditionAttributes_Response,
11624
14
    &ett_mms_T_monitoredVariable,
11625
14
    &ett_mms_ReportEventConditionStatus_Response,
11626
14
    &ett_mms_AlterEventConditionMonitoring_Request,
11627
14
    &ett_mms_TriggerEvent_Request,
11628
14
    &ett_mms_DefineEventAction_Request,
11629
14
    &ett_mms_DeleteEventAction_Request,
11630
14
    &ett_mms_GetEventActionAttributes_Response,
11631
14
    &ett_mms_DefineEventEnrollment_Request,
11632
14
    &ett_mms_DeleteEventEnrollment_Request,
11633
14
    &ett_mms_GetEventEnrollmentAttributes_Request,
11634
14
    &ett_mms_EventEnrollment,
11635
14
    &ett_mms_T_eventConditionName,
11636
14
    &ett_mms_T_eventActionName,
11637
14
    &ett_mms_GetEventEnrollmentAttributes_Response,
11638
14
    &ett_mms_SEQUENCE_OF_EventEnrollment,
11639
14
    &ett_mms_ReportEventEnrollmentStatus_Response,
11640
14
    &ett_mms_AlterEventEnrollment_Request,
11641
14
    &ett_mms_AlterEventEnrollment_Response,
11642
14
    &ett_mms_T_currentState,
11643
14
    &ett_mms_AcknowledgeEventNotification_Request,
11644
14
    &ett_mms_GetAlarmSummary_Request,
11645
14
    &ett_mms_T_severityFilter,
11646
14
    &ett_mms_GetAlarmSummary_Response,
11647
14
    &ett_mms_SEQUENCE_OF_AlarmSummary,
11648
14
    &ett_mms_AlarmSummary,
11649
14
    &ett_mms_GetAlarmEnrollmentSummary_Request,
11650
14
    &ett_mms_T_severityFilter_01,
11651
14
    &ett_mms_GetAlarmEnrollmentSummary_Response,
11652
14
    &ett_mms_SEQUENCE_OF_AlarmEnrollmentSummary,
11653
14
    &ett_mms_AlarmEnrollmentSummary,
11654
14
    &ett_mms_EventNotification,
11655
14
    &ett_mms_T_eventConditionName_01,
11656
14
    &ett_mms_T_actionResult,
11657
14
    &ett_mms_T_eventActionResult,
11658
14
    &ett_mms_AttachToEventCondition,
11659
14
    &ett_mms_EventTime,
11660
14
    &ett_mms_Transitions,
11661
14
    &ett_mms_ReadJournal_Request,
11662
14
    &ett_mms_T_rangeStartSpecification,
11663
14
    &ett_mms_T_rangeStopSpecification,
11664
14
    &ett_mms_T_listOfVariables,
11665
14
    &ett_mms_T_entryToStartAfter,
11666
14
    &ett_mms_ReadJournal_Response,
11667
14
    &ett_mms_SEQUENCE_OF_JournalEntry,
11668
14
    &ett_mms_JournalEntry,
11669
14
    &ett_mms_WriteJournal_Request,
11670
14
    &ett_mms_SEQUENCE_OF_EntryContent,
11671
14
    &ett_mms_InitializeJournal_Request,
11672
14
    &ett_mms_T_limitSpecification,
11673
14
    &ett_mms_ReportJournalStatus_Response,
11674
14
    &ett_mms_CreateJournal_Request,
11675
14
    &ett_mms_DeleteJournal_Request,
11676
14
    &ett_mms_EntryContent,
11677
14
    &ett_mms_T_entryForm,
11678
14
    &ett_mms_T_data,
11679
14
    &ett_mms_T_event,
11680
14
    &ett_mms_T_listOfVariables_01,
11681
14
    &ett_mms_T_listOfVariables_item,
11682
14
    &ett_mms_ObtainFile_Request,
11683
14
    &ett_mms_FileOpen_Request,
11684
14
    &ett_mms_FileOpen_Response,
11685
14
    &ett_mms_FileRead_Response,
11686
14
    &ett_mms_FileRename_Request,
11687
14
    &ett_mms_FileDirectory_Request,
11688
14
    &ett_mms_FileDirectory_Response,
11689
14
    &ett_mms_SEQUENCE_OF_DirectoryEntry,
11690
14
    &ett_mms_DirectoryEntry,
11691
14
    &ett_mms_FileAttributes,
11692
14
    };
11693
11694
14
    static ei_register_info ei[] = {
11695
14
            { &ei_mms_mal_timeofday_encoding, { "mms.malformed.timeofday_encoding", PI_MALFORMED, PI_WARN, "BER Error: malformed TimeOfDay encoding", EXPFILL }},
11696
14
            { &ei_mms_mal_utctime_encoding, { "mms.malformed.utctime", PI_MALFORMED, PI_WARN, "BER Error: malformed IEC61850 UTCTime encoding", EXPFILL }},
11697
14
            { &ei_mms_zero_pdu, { "mms.zero_pdu", PI_PROTOCOL, PI_ERROR, "Internal error, zero-byte MMS PDU", EXPFILL }},
11698
14
    };
11699
11700
14
    expert_module_t* expert_mms;
11701
11702
    /* Register protocol */
11703
14
    proto_mms = proto_register_protocol("MMS", "MMS", "mms");
11704
14
    register_dissector("mms", dissect_mms, proto_mms);
11705
    /* Register fields and subtrees */
11706
14
    proto_register_field_array(proto_mms, hf, array_length(hf));
11707
14
    proto_register_subtree_array(ett, array_length(ett));
11708
14
    expert_mms = expert_register_protocol(proto_mms);
11709
14
    expert_register_field_array(expert_mms, ei, array_length(ei));
11710
11711
    /* Setting to enable/disable the IEC-61850 mapping on MMS */
11712
14
    module_t* mms_module = prefs_register_protocol(proto_mms, NULL);
11713
11714
14
    prefs_register_bool_preference(mms_module, "use_iec61850_mapping",
11715
14
        "Dissect MMS as IEC-61850",
11716
14
        "Enables or disables dissection as IEC-61850 on top of MMS",
11717
14
        &use_iec61850_mapping);
11718
14
}
11719
11720
11721
static bool
11722
dissect_mms_heur(tvbuff_t* tvb, packet_info* pinfo, proto_tree* parent_tree, void* data)
11723
2.52k
{
11724
    /* must check that this really is an mms packet */
11725
2.52k
    unsigned offset = 0;
11726
2.52k
    uint32_t length = 0;
11727
2.52k
    uint32_t oct;
11728
2.52k
    int idx = 0;
11729
11730
2.52k
    int8_t tmp_class;
11731
2.52k
    bool tmp_pc;
11732
2.52k
    int32_t tmp_tag;
11733
11734
    /* first, check do we have at least 2 bytes (pdu) */
11735
2.52k
    if (!tvb_bytes_exist(tvb, 0, 2))
11736
94
        return false;  /* no */
11737
11738
    /* can we recognize MMS PDU ? Return false if  not */
11739
    /*   get MMS PDU type */
11740
2.43k
    offset = get_ber_identifier(tvb, offset, &tmp_class, &tmp_pc, &tmp_tag);
11741
11742
    /* check MMS type */
11743
11744
    /* Class should be constructed */
11745
2.43k
    if (tmp_class != BER_CLASS_CON)
11746
1.44k
        return false;
11747
11748
    /* see if the tag is a valid MMS PDU */
11749
982
    try_val_to_str_idx(tmp_tag, mms_MMSpdu_vals, &idx);
11750
982
    if (idx == -1) {
11751
94
        return false;  /* no, it isn't an MMS PDU */
11752
94
    }
11753
11754
    /* check MMS length  */
11755
888
    oct = tvb_get_uint8(tvb, offset) & 0x7F;
11756
888
    if (oct == 0)
11757
        /* MMS requires length after tag so not MMS if indefinite length*/
11758
29
        return false;
11759
11760
859
    offset = get_ber_length(tvb, offset, &length, NULL);
11761
    /* do we have enough bytes? */
11762
859
    if (!tvb_bytes_exist(tvb, offset, length))
11763
77
        return false;
11764
11765
782
    dissect_mms(tvb, pinfo, parent_tree, data);
11766
782
    return true;
11767
859
}
11768
11769
/*--- proto_reg_handoff_mms --- */
11770
14
void proto_reg_handoff_mms(void) {
11771
14
    register_ber_oid_dissector("1.0.9506.2.3", dissect_mms, proto_mms, "MMS");
11772
14
    register_ber_oid_dissector("1.0.9506.2.1", dissect_mms, proto_mms, "mms-abstract-syntax-version1(1)");
11773
14
    heur_dissector_add("cotp", dissect_mms_heur, "MMS over COTP", "mms_cotp", proto_mms, HEURISTIC_ENABLE);
11774
14
    heur_dissector_add("cotp_is", dissect_mms_heur, "MMS over COTP (inactive subset)", "mms_cotp_is", proto_mms, HEURISTIC_ENABLE);
11775
14
}
11776