Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / asn1 / mms / mms.asn
blobdd52432cb58217b863afa8b674eddaa6108afa6f
1 -- ASN definition from
2 -- http://www.sisconet.com/techinfo.htm
3 -- slightly modified
4 --
5 --
6 --Corrections made July 2, 1994
7 --
8 --
9 -- Modified to pass asn2wrs
11 MMS { iso standard 9506 part(2) mms-general-module-version(2) }
13 DEFINITIONS ::=
15 BEGIN
17 EXPORTS MMSpdu;
19 IMPORTS
20         EXTERNALt,
21         AP-title,
22         AP-invocation-identifier,
23         AE-qualifier,
24     AE-invocation-identifier
25 FROM ISO-8650-ACSE-1;
28 -- WS additions for IEC 61850
30 ReportedOptFlds ::= BIT STRING {
31     reserved(0),
32     sequence-number(1),
33     report-time-stamp(2),
34     reason-for-inclusion(3),
35     data-set-name(4),
36     data-reference(5),
37     buffer-overflow(6),
38     entryID(7),
39     conf-revision(8),
40     segmentation(9)
41     }
43 -- End WS additions for IEC 61850
45 MMSpdu ::= CHOICE
46         {
47         confirmed-RequestPDU            [0]     IMPLICIT Confirmed-RequestPDU,
48         confirmed-ResponsePDU           [1]     IMPLICIT Confirmed-ResponsePDU,
49         confirmed-ErrorPDU              [2]     IMPLICIT Confirmed-ErrorPDU,
50         unconfirmed-PDU                 [3]     IMPLICIT Unconfirmed-PDU,
51         rejectPDU                       [4]     IMPLICIT RejectPDU,
52         cancel-RequestPDU               [5]     IMPLICIT Cancel-RequestPDU,
53         cancel-ResponsePDU              [6]     IMPLICIT Cancel-ResponsePDU,
54         cancel-ErrorPDU                 [7]     IMPLICIT Cancel-ErrorPDU,
55         initiate-RequestPDU             [8]     IMPLICIT Initiate-RequestPDU,
56         initiate-ResponsePDU            [9]     IMPLICIT Initiate-ResponsePDU,
57         initiate-ErrorPDU               [10]    IMPLICIT Initiate-ErrorPDU,
58         conclude-RequestPDU             [11]    IMPLICIT Conclude-RequestPDU,
59         conclude-ResponsePDU            [12]    IMPLICIT Conclude-ResponsePDU,
60         conclude-ErrorPDU               [13]    IMPLICIT Conclude-ErrorPDU
61         }
64 Confirmed-RequestPDU ::= SEQUENCE
65         {
66         invokeID                        Unsigned32,
67         listOfModifier                  SEQUENCE OF Modifier OPTIONAL,
68         confirmedServiceRequest         ConfirmedServiceRequest,
69         cs-request-detail               [79] CS-Request-Detail OPTIONAL
70         }
73 Unconfirmed-PDU ::= SEQUENCE
74         {
75         unconfirmedService              UnconfirmedService,
76         cs-request-detail               [79] CS-Request-Detail OPTIONAL
77         }
80 Confirmed-ResponsePDU ::= SEQUENCE 
81         {
82         invokeID                        Unsigned32,
83         confirmedServiceResponse        ConfirmedServiceResponse,
84         cs-request-detail               [79] CS-Request-Detail OPTIONAL
85         }
88 Confirmed-ErrorPDU ::= SEQUENCE 
89         {
90         invokeID                        [0]     IMPLICIT Unsigned32,
91         modifierPosition                [1]     IMPLICIT Unsigned32 OPTIONAL,
92         serviceError                    [2]     IMPLICIT ServiceError
93         }
96 UnconfirmedService ::= CHOICE 
97         {
98         informationReport               [0]     IMPLICIT InformationReport,
99         unsolicitedStatus               [1]     IMPLICIT UnsolicitedStatus,
100         eventNotification               [2]     IMPLICIT EventNotification
101 -- XXX this one is neither in this ASN nor in the IMPORTS
102 --      additionalService               [3]     AdditionalUnconfirmedService
103         }
106 Modifier ::= CHOICE
107         {
108         attach-To-Event-Condition               [0]     IMPLICIT AttachToEventCondition,
109         attach-To-Semaphore                     [1]     IMPLICIT AttachToSemaphore
110         }
113 ConfirmedServiceRequest  ::= CHOICE 
114         {
115         status                                  [0] IMPLICIT Status-Request,
116         getNameList                             [1] IMPLICIT GetNameList-Request,
117         identify                                [2] IMPLICIT Identify-Request,
118         rename                                  [3] IMPLICIT Rename-Request,
119         read                                    [4] IMPLICIT Read-Request,
120         write                                   [5] IMPLICIT Write-Request,
121         getVariableAccessAttributes             [6] GetVariableAccessAttributes-Request,
122         defineNamedVariable                     [7] IMPLICIT DefineNamedVariable-Request,
123         defineScatteredAccess                   [8] IMPLICIT DefineScatteredAccess-Request,
124         getScatteredAccessAttributes            [9] IMPLICIT GetScatteredAccessAttributes-Request,
125         deleteVariableAccess                    [10] IMPLICIT DeleteVariableAccess-Request,
126         defineNamedVariableList                 [11] IMPLICIT DefineNamedVariableList-Request,
127         getNamedVariableListAttributes          [12] IMPLICIT GetNamedVariableListAttributes-Request,
128         deleteNamedVariableList                 [13] IMPLICIT DeleteNamedVariableList-Request,
129         defineNamedType                         [14] IMPLICIT DefineNamedType-Request,
130         getNamedTypeAttributes                  [15] IMPLICIT GetNamedTypeAttributes-Request,
131         deleteNamedType                         [16] IMPLICIT DeleteNamedType-Request,
132         input                                   [17] IMPLICIT Input-Request,
133         output                                  [18] IMPLICIT Output-Request,
134         takeControl                             [19] IMPLICIT TakeControl-Request,
135         relinquishControl                       [20] IMPLICIT RelinquishControl-Request,
136         defineSemaphore                         [21] IMPLICIT DefineSemaphore-Request,
137         deleteSemaphore                         [22] IMPLICIT DeleteSemaphore-Request,
138         reportSemaphoreStatus                   [23] IMPLICIT ReportSemaphoreStatus-Request,
139         reportPoolSemaphoreStatus               [24] IMPLICIT ReportPoolSemaphoreStatus-Request,
140         reportSemaphoreEntryStatus              [25] IMPLICIT ReportSemaphoreEntryStatus-Request,
141         initiateDownloadSequence                [26] IMPLICIT InitiateDownloadSequence-Request,
142         downloadSegment                         [27] IMPLICIT DownloadSegment-Request,
143         terminateDownloadSequence               [28] IMPLICIT TerminateDownloadSequence-Request,
144         initiateUploadSequence                  [29] IMPLICIT InitiateUploadSequence-Request,
145         uploadSegment                           [30] IMPLICIT UploadSegment-Request,
146         terminateUploadSequence                 [31] IMPLICIT TerminateUploadSequence-Request,
147         requestDomainDownload                   [32] IMPLICIT RequestDomainDownload-Request,
148         requestDomainUpload                     [33] IMPLICIT RequestDomainUpload-Request,
149         loadDomainContent                       [34] IMPLICIT LoadDomainContent-Request,
150         storeDomainContent                      [35] IMPLICIT StoreDomainContent-Request,
151         deleteDomain                            [36] IMPLICIT DeleteDomain-Request,
152         getDomainAttributes                     [37] IMPLICIT GetDomainAttributes-Request,
153         createProgramInvocation                 [38] IMPLICIT CreateProgramInvocation-Request,
154         deleteProgramInvocation                 [39] IMPLICIT DeleteProgramInvocation-Request,
155         start                                   [40] IMPLICIT Start-Request,
156         stop                                    [41] IMPLICIT Stop-Request,
157         resume                                  [42] IMPLICIT Resume-Request,
158         reset                                   [43] IMPLICIT Reset-Request,
159         kill                                    [44] IMPLICIT Kill-Request,
160         getProgramInvocationAttributes          [45] IMPLICIT GetProgramInvocationAttributes-Request,
161         obtainFile                              [46] IMPLICIT ObtainFile-Request,
162         defineEventCondition                    [47] IMPLICIT DefineEventCondition-Request,
163         deleteEventCondition                    [48] DeleteEventCondition-Request,
164         getEventConditionAttributes             [49] GetEventConditionAttributes-Request,
165         reportEventConditionStatus              [50] ReportEventConditionStatus-Request,
166         alterEventConditionMonitoring           [51] IMPLICIT AlterEventConditionMonitoring-Request,
167         triggerEvent                            [52] IMPLICIT TriggerEvent-Request,
168         defineEventAction                       [53] IMPLICIT DefineEventAction-Request,
169         deleteEventAction                       [54] DeleteEventAction-Request,
170         getEventActionAttributes                [55] GetEventActionAttributes-Request,
171         reportEventActionStatus                 [56] ReportEventActionStatus-Request,
172         defineEventEnrollment                   [57] IMPLICIT DefineEventEnrollment-Request,
173         deleteEventEnrollment                   [58] DeleteEventEnrollment-Request,
174         alterEventEnrollment                    [59] IMPLICIT AlterEventEnrollment-Request,
175         reportEventEnrollmentStatus             [60] ReportEventEnrollmentStatus-Request,
176         getEventEnrollmentAttributes            [61] IMPLICIT GetEventEnrollmentAttributes-Request,
177         acknowledgeEventNotification            [62] IMPLICIT AcknowledgeEventNotification-Request,
178         getAlarmSummary                         [63] IMPLICIT GetAlarmSummary-Request,
179         getAlarmEnrollmentSummary               [64] IMPLICIT GetAlarmEnrollmentSummary-Request,
180         readJournal                             [65] IMPLICIT ReadJournal-Request,
181         writeJournal                            [66] IMPLICIT WriteJournal-Request,
182         initializeJournal                       [67] IMPLICIT InitializeJournal-Request,
183         reportJournalStatus                     [68] IMPLICIT ReportJournalStatus-Request,
184         createJournal                           [69] IMPLICIT CreateJournal-Request,
185         deleteJournal                           [70] IMPLICIT DeleteJournal-Request,
186         getCapabilityList                       [71] IMPLICIT GetCapabilityList-Request,
187         fileOpen                                [72] IMPLICIT FileOpen-Request,
188         fileRead                                [73] IMPLICIT FileRead-Request,
189         fileClose                               [74] IMPLICIT FileClose-Request,
190         fileRename                              [75] IMPLICIT FileRename-Request,
191         fileDelete                              [76] IMPLICIT FileDelete-Request,
192         fileDirectory                           [77] IMPLICIT FileDirectory-Request
193 -- XXX this one is neither in this ASN nor in the IMPORTS
194 --      additionalService                       [78] AdditionalService-Request
195         }
197 CS-Request-Detail ::= CHOICE {
198 -- see ISO 9506-2
199 -- XXX can not handle empty choice
200 -- XXX fix me later
201                 foo INTEGER
202         }
204 ConfirmedServiceResponse  ::= CHOICE
205         {
206         status                                  [0]     IMPLICIT Status-Response,
207         getNameList                             [1]     IMPLICIT GetNameList-Response,
208         identify                                [2]     IMPLICIT Identify-Response,
209         rename                                  [3]     IMPLICIT Rename-Response,
210         read                                    [4]     IMPLICIT Read-Response,
211         write                                   [5]     IMPLICIT Write-Response,
212         getVariableAccessAttributes             [6]     IMPLICIT GetVariableAccessAttributes-Response,
213         defineNamedVariable                     [7]     IMPLICIT DefineNamedVariable-Response,
214         defineScatteredAccess                   [8]     IMPLICIT DefineScatteredAccess-Response,
215         getScatteredAccessAttributes            [9]     IMPLICIT GetScatteredAccessAttributes-Response,
216         deleteVariableAccess                    [10]    IMPLICIT DeleteVariableAccess-Response,
217         defineNamedVariableList                 [11]    IMPLICIT DefineNamedVariableList-Response,
218         getNamedVariableListAttributes          [12]    IMPLICIT GetNamedVariableListAttributes-Response,
219         deleteNamedVariableList                 [13]    IMPLICIT DeleteNamedVariableList-Response,
220         defineNamedType                         [14]    IMPLICIT DefineNamedType-Response,
221         getNamedTypeAttributes                  [15]    IMPLICIT GetNamedTypeAttributes-Response,
222         deleteNamedType                         [16]    IMPLICIT DeleteNamedType-Response,
223         input                                   [17]    IMPLICIT Input-Response,
224         output                                  [18]    IMPLICIT Output-Response,
225         takeControl                             [19]    TakeControl-Response,
226         relinquishControl                       [20]    IMPLICIT RelinquishControl-Response,
227         defineSemaphore                         [21]    IMPLICIT DefineSemaphore-Response,
228         deleteSemaphore                         [22]    IMPLICIT DeleteSemaphore-Response,
229         reportSemaphoreStatus                   [23]    IMPLICIT ReportSemaphoreStatus-Response,
230         reportPoolSemaphoreStatus               [24]    IMPLICIT ReportPoolSemaphoreStatus-Response,
231         reportSemaphoreEntryStatus              [25]    IMPLICIT ReportSemaphoreEntryStatus-Response,
232         initiateDownloadSequence                [26]    IMPLICIT InitiateDownloadSequence-Response,
233         downloadSegment                         [27]    IMPLICIT DownloadSegment-Response,
234         terminateDownloadSequence               [28]    IMPLICIT TerminateDownloadSequence-Response,
235         initiateUploadSequence                  [29]    IMPLICIT InitiateUploadSequence-Response,
236         uploadSegment                           [30]    IMPLICIT UploadSegment-Response,
237         terminateUploadSequence                 [31]    IMPLICIT TerminateUploadSequence-Response,
238         requestDomainDownLoad                   [32]    IMPLICIT RequestDomainDownload-Response,
239         requestDomainUpload                     [33]    IMPLICIT RequestDomainUpload-Response,
240         loadDomainContent                       [34]    IMPLICIT LoadDomainContent-Response,
241         storeDomainContent                      [35]    IMPLICIT StoreDomainContent-Response,
242         deleteDomain                            [36]    IMPLICIT DeleteDomain-Response,
243         getDomainAttributes                     [37]    IMPLICIT GetDomainAttributes-Response,
244         createProgramInvocation                 [38]    IMPLICIT CreateProgramInvocation-Response,
245         deleteProgramInvocation                 [39]    IMPLICIT DeleteProgramInvocation-Response,
246         start                                   [40]    IMPLICIT Start-Response,
247         stop                                    [41]    IMPLICIT Stop-Response,
248         resume                                  [42]    IMPLICIT Resume-Response,
249         reset                                   [43]    IMPLICIT Reset-Response,
250         kill                                    [44]    IMPLICIT Kill-Response,
251         getProgramInvocationAttributes          [45]    IMPLICIT GetProgramInvocationAttributes-Response,
252         obtainFile                              [46]    IMPLICIT ObtainFile-Response,
253         fileOpen                                [72]    IMPLICIT FileOpen-Response,
254         defineEventCondition                    [47]    IMPLICIT DefineEventCondition-Response,
255         deleteEventCondition                    [48]    IMPLICIT DeleteEventCondition-Response,
256         getEventConditionAttributes             [49]    IMPLICIT GetEventConditionAttributes-Response,
257         reportEventConditionStatus              [50]    IMPLICIT ReportEventConditionStatus-Response,
258         alterEventConditionMonitoring           [51]    IMPLICIT AlterEventConditionMonitoring-Response,
259         triggerEvent                            [52]    IMPLICIT TriggerEvent-Response,
260         defineEventAction                       [53]    IMPLICIT DefineEventAction-Response,
261         deleteEventAction                       [54]    IMPLICIT DeleteEventAction-Response,
262         getEventActionAttributes                [55]    IMPLICIT GetEventActionAttributes-Response,
263         reportActionStatus                      [56]    IMPLICIT ReportEventActionStatus-Response,
264         defineEventEnrollment                   [57]    IMPLICIT DefineEventEnrollment-Response,
265         deleteEventEnrollment                   [58]    IMPLICIT DeleteEventEnrollment-Response,
266         alterEventEnrollment                    [59]    IMPLICIT AlterEventEnrollment-Response,
267         reportEventEnrollmentStatus             [60]    IMPLICIT ReportEventEnrollmentStatus-Response,
268         getEventEnrollmentAttributes            [61]    IMPLICIT GetEventEnrollmentAttributes-Response,
269         acknowledgeEventNotification            [62]    IMPLICIT AcknowledgeEventNotification-Response,
270         getAlarmSummary                         [63]    IMPLICIT GetAlarmSummary-Response,
271         getAlarmEnrollmentSummary               [64]    IMPLICIT GetAlarmEnrollmentSummary-Response,
272         readJournal                             [65]    IMPLICIT ReadJournal-Response,
273         writeJournal                            [66]    IMPLICIT WriteJournal-Response,
274         initializeJournal                       [67]    IMPLICIT InitializeJournal-Response,
275         reportJournalStatus                     [68]    IMPLICIT ReportJournalStatus-Response,
276         createJournal                           [69]    IMPLICIT CreateJournal-Response,
277         deleteJournal                           [70]    IMPLICIT DeleteJournal-Response,
278         getCapabilityList                       [71]    IMPLICIT GetCapabilityList-Response,
279         fileRead                                [73]    IMPLICIT FileRead-Response,
280         fileClose                               [74]    IMPLICIT FileClose-Response,
281         fileRename                              [75]    IMPLICIT FileRename-Response,
282         fileDelete                              [76]    IMPLICIT FileDelete-Response,
283         fileDirectory                           [77]    IMPLICIT FileDirectory-Response
284 -- XXX this one is neither in this ASN nor in the IMPORTS
285 --      additionalService                       [78]    AdditionalService-Response
286         }
288 --********************************** COMMON MMS TYPES ***********************************
290 FileName ::= SEQUENCE OF GraphicString
292 TimeOfDay ::= OCTET STRING -- (SIZE (4 | 6))
294 Identifier ::= VisibleString
296 MMSString ::= UTF8String
298 Integer8   ::= INTEGER
299 Integer16  ::= INTEGER
300 Integer32  ::= INTEGER
303 Unsigned8  ::= INTEGER
304 Unsigned16 ::= INTEGER
305 Unsigned32 ::= INTEGER
308 ObjectName ::= CHOICE 
309         {
310         vmd-specific            [0] IMPLICIT Identifier,
311         domain-specific         [1] IMPLICIT SEQUENCE
312                 {
313                 domainId        Identifier,
314                 itemId          Identifier
315                 },
316         aa-specific             [2] IMPLICIT Identifier
317         }
320 ApplicationReference ::= SEQUENCE
321         {
322         ap-title                [0] AP-title            OPTIONAL,
323         ap-invocation-id        [1] AP-invocation-identifier OPTIONAL,
324         ae-qualifier            [2] AE-qualifier                OPTIONAL,
325         ae-invocation-id        [3] AE-invocation-identifier OPTIONAL
326         }
329 Priority ::= Unsigned8
331 normalPriority Priority ::= 64
337 -- ************************************ GENERAL *************************************
339 Initiate-ErrorPDU ::= ServiceError
341 Initiate-RequestPDU ::= SEQUENCE
342         {
343         localDetailCalling                      [0] IMPLICIT Integer32 OPTIONAL,
344         proposedMaxServOutstandingCalling       [1] IMPLICIT Integer16,
345         proposedMaxServOutstandingCalled        [2] IMPLICIT Integer16,
346         proposedDataStructureNestingLevel       [3] IMPLICIT Integer8 OPTIONAL,
347         mmsInitRequestDetail                    [4] IMPLICIT InitRequestDetail
348         }
350 InitRequestDetail ::= SEQUENCE
351         {
352         proposedVersionNumber                   [0] IMPLICIT Integer16,
353         proposedParameterCBB                    [1] IMPLICIT ParameterSupportOptions,
354         servicesSupportedCalling                [2] IMPLICIT ServiceSupportOptions
355         }
357 Initiate-ResponsePDU ::= SEQUENCE
358         {
359         localDetailCalled                       [0] IMPLICIT Integer32 OPTIONAL,
360         negociatedMaxServOutstandingCalling     [1] IMPLICIT Integer16,
361         negociatedMaxServOutstandingCalled      [2] IMPLICIT Integer16,
362         negociatedDataStructureNestingLevel     [3] IMPLICIT Integer8 OPTIONAL,
363         mmsInitResponseDetail                   [4] IMPLICIT InitResponseDetail
364         }
366 InitResponseDetail ::= SEQUENCE
367         {
368         negociatedVersionNumber                 [0] IMPLICIT Integer16,
369         negociatedParameterCBB                  [1] IMPLICIT ParameterSupportOptions,
370         servicesSupportedCalled                 [2] IMPLICIT ServiceSupportOptions
371         }
374 ParameterSupportOptions ::= BIT STRING {
375         str1 (0),
376         str2 (1),
377         vnam (2),
378         valt (3),
379         vadr (4),
380         vsca (5),
381         tpy  (6),
382         vlis (7),
383         real (8),
384         cei  (10)
385         }
388 ServiceSupportOptions ::= BIT STRING 
389         {
390         status                                  (0),
391         getNameList                             (1),    
392         identify                                (2),            
393         rename                                  (3),
394         read                                    (4),
395         write                                   (5),
396         getVariableAccessAttributes             (6),
397         defineNamedVariable                     (7),
398         defineScatteredAccess                   (8),
399         getScatteredAccessAttributes            (9),
400         deleteVariableAccess                    (10),   
401         defineNamedVariableList                 (11),
402         getNamedVariableListAttributes          (12),
403         deleteNamedVariableList                 (13),
404         defineNamedType                         (14),   
405         getNamedTypeAttributes                  (15),
406         deleteNamedType                         (16),
407         input                                   (17),
408         output                                  (18),
409         takeControl                             (19),
410         relinquishControl                       (20),
411         defineSemaphore                         (21),
412         deleteSemaphore                         (22),
413         reportSemaphoreStatus                   (23),
414         reportPoolSemaphoreStatus               (24),
415         reportSemaphoreEntryStatus              (25),
416         initiateDownloadSequence                (26),
417         downloadSegment                         (27),
418         terminateDownloadSequence               (28),
419         initiateUploadSequence                  (29),
420         uploadSegment                           (30),
421         terminateUploadSequence                 (31),
422         requestDomainDownload                   (32),
423         requestDomainUpload                     (33),
424         loadDomainContent                       (34),
425         storeDomainContent                      (35),
426         deleteDomain                            (36),
427         getDomainAttributes                     (37),
428         createProgramInvocation                 (38),
429         deleteProgramInvocation                 (39),
430         start                                   (40),
431         stop                                    (41),
432         resume                                  (42),
433         reset                                   (43),
434         kill                                    (44),
435         getProgramInvocationAttributes          (45),
436         obtainFile                              (46),
437         defineEventCondition                    (47),
438         deleteEventCondition                    (48),
439         getEventConditionAttributes             (49),
440         reportEventConditionStatus              (50),
441         alterEventConditionMonitoring           (51),
442         triggerEvent                            (52),
443         defineEventAction                       (53),
444         deleteEventAction                       (54),
445         getEventActionAttributes                (55),
446         reportActionStatus                      (56),
447         defineEventEnrollment                   (57),
448         deleteEventEnrollment                   (58),
449         alterEventEnrollment                    (59),
450         reportEventEnrollmentStatus             (60),
451         getEventEnrollmentAttributes            (61),
452         acknowledgeEventNotification            (62),
453         getAlarmSummary                         (63),
454         getAlarmEnrollmentSummary               (64),
455         readJournal                             (65),
456         writeJournal                            (66),
457         initializeJournal                       (67),
458         reportJournalStatus                     (68),
459         createJournal                           (69),
460         deleteJournal                           (70),
461         getCapabilityList                       (71),
462         fileOpen                                (72),
463         fileRead                                (73),
464         fileClose                               (74),
465         fileRename                              (75),
466         fileDelete                              (76),
467         fileDirectory                           (77),
468         unsolicitedStatus                       (78),
469         informationReport                       (79),
470         eventNotification                       (80),
471         attachToEventCondition                  (81),
472         attachToSemaphore                       (82),
473         conclude                                (83),
474         cancel                                  (84)
475         }
477 ---------------------------------- CONCLUDE --------------------------------
479 Conclude-RequestPDU ::= NULL
481 Conclude-ResponsePDU ::= NULL
483 Conclude-ErrorPDU ::= ServiceError
485 ---------------------------------- CANCEL --------------------------------
487 Cancel-RequestPDU ::= Unsigned32        -- originalInvokeID
489 Cancel-ResponsePDU ::= Unsigned32       -- originalInvokeID
491 Cancel-ErrorPDU ::= SEQUENCE
492         {
493         originalInvokeID        [0] IMPLICIT Unsigned32,
494         serviceError            [1] IMPLICIT ServiceError
495         }
497 ------------------------------ Service-Error --------------------------------
499 ServiceError ::= SEQUENCE 
500         {       
501         errorClass      [0] CHOICE
502                 { 
503                 vmd-state       [0] IMPLICIT INTEGER    
504                         {       
505                         other                                   (0),                   
506                         vmd-state-conflict                      (1),    
507                         vmd-operational-problem                 (2), 
508                         domain-transfer-problem                 (3),
509                         state-machine-id-invalid                (4)     
510                         },
511                 application-reference   [1] IMPLICIT INTEGER
512                         {
513                         other                                   (0),
514                         aplication-unreachable                  (1),
515                         connection-lost                         (2),
516                         application-reference-invalid           (3),
517                         context-unsupported                     (4)
518                         },
519                 definition                      [2] IMPLICIT INTEGER
520                         {
521                         other                                   (0),
522                         object-undefined                        (1),
523                         invalid-address                         (2),
524                         type-unsupported                        (3),
525                         type-inconsistent                       (4),
526                         object-exists                           (5),
527                         object-attribute-inconsistent           (6)
528                         },
529                 resource                        [3] IMPLICIT INTEGER
530                         {
531                         other                                   (0),
532                         memory-unavailable                      (1),
533                         processor-resource-unavailable          (2),
534                         mass-storage-unavailable                (3),
535                         capability-unavailable                  (4),
536                         capability-unknown                      (5)
537                         },
538                 service                         [4] IMPLICIT INTEGER
539                         {       
540                         other                                   (0),
541                         primitives-out-of-sequence              (1),
542                         object-sate-conflict                    (2),
543                         pdu-size                                (3),
544                         continuation-invalid                    (4),
545                         object-constraint-conflict              (5)
546                         },
547                 service-preempt                 [5] IMPLICIT INTEGER
548                         {       
549                         other                                   (0),
550                         timeout                                 (1),
551                         deadlock                                (2),
552                         cancel                                  (3)
553                         },
554                 time-resolution                 [6] IMPLICIT INTEGER
555                         {       
556                         other                                   (0),
557                         unsupportable-time-resolution           (1)
558                         },
559                 access                          [7] IMPLICIT INTEGER
560                         {
561                         other                                   (0),
562                         object-access-unsupported               (1),
563                         object-non-existent                     (2),
564                         object-access-denied                    (3),
565                         object-invalidated                      (4)
566                         },
567                 initiate                        [8] IMPLICIT INTEGER
568                         {
569                         other                                   (0),
570                         version-incompatible                    (1),
571                         max-segment-insufficient                (2),
572                         max-services-outstanding-calling-insufficient (3),
573                         max-services-outstanding-called-insufficient  (4),
574                         service-CBB-insufficient                (5),
575                         parameter-CBB-insufficient              (6),
576                         nesting-level-insufficient              (7)
577                         },
578                 conclude                        [9] IMPLICIT INTEGER
579                         {
580                         other                                   (0),
581                         further-communication-required          (1)
582                         },
583                 cancel                          [10] IMPLICIT INTEGER
584                         {
585                         other                                   (0),
586                         invoke-id-unknown                       (1),
587                         cancel-not-possible                     (2)
588                         },
589                 file                            [11] IMPLICIT INTEGER
590                         {
591                         other                                   (0),
592                         filename-ambiguous                      (1),
593                         file-busy                               (2),
594                         filename-syntax-error                   (3),
595                         content-type-invalid                    (4),
596                         position-invalid                        (5),
597                         file-acces-denied                       (6),
598                         file-non-existent                       (7),
599                         duplicate-filename                      (8),
600                         insufficient-space-in-filestore         (9)
601                         },
602                 others                          [12] IMPLICIT INTEGER
603                 },
604         additionalCode                          [1] IMPLICIT INTEGER OPTIONAL,
605         additionalDescription           [2] IMPLICIT VisibleString OPTIONAL,
606         serviceSpecificInformation      [3] CHOICE
607                         {
608                         obtainFile                      [0] IMPLICIT ObtainFile-Error,
609                         start                           [1] IMPLICIT Start-Error,
610                         stop                            [2] IMPLICIT Stop-Error,
611                         resume                          [3] IMPLICIT Resume-Error,
612                         reset                           [4] IMPLICIT Reset-Error,
613                         deleteVariableAccess            [5] IMPLICIT DeleteVariableAccess-Error,
614                         deleteNamedVariableList         [6] IMPLICIT DeleteNamedVariableList-Error,
615                         deleteNamedType                 [7] IMPLICIT DeleteNamedType-Error,
616                         defineEventEnrollment-Error     [8] DefineEventEnrollment-Error,
617                         fileRename                      [9] IMPLICIT FileRename-Error,
618                         additionalService               [10] AdditionalService-Error,
619                         changeAccessControl             [11] IMPLICIT ChangeAccessControl-Error
620                         } OPTIONAL
621         }
623         AdditionalService-Error ::= CHOICE
624         {
625                 defineEcl               [0] DefineEventConditionList-Error,
626                 addECLReference         [1] AddEventConditionListReference-Error,
627                 removeECLReference      [2] RemoveEventConditionListReference-Error,
628                 initiateUC              [3] InitiateUnitControl-Error,
629                 startUC                 [4] IMPLICIT StartUnitControl-Error,
630                 stopUC                  [5] IMPLICIT StopUnitControl-Error,
631                 deleteUC                [6] DeleteUnitControl-Error,
632                 loadUCFromFile          [7] LoadUnitControlFromFile-Error
633         }
635         DefineEventConditionList-Error ::= ObjectName
637         AddEventConditionListReference-Error ::= ObjectName
639         RemoveEventConditionListReference-Error ::= CHOICE
640         {
641                 eventCondition          [0] ObjectName,
642                 eventConditionList      [1] ObjectName
643         }
645         InitiateUnitControl-Error ::= CHOICE
646         {
647                 domain                  [0] IMPLICIT Identifier,
648                 programInvocation       [1] IMPLICIT Identifier
649         }
651         StartUnitControl-Error ::= SEQUENCE
652         {
653                 programInvocationName   [0] IMPLICIT Identifier,
654                 programInvocationState  [1] IMPLICIT ProgramInvocationState
655         }
657         StopUnitControl-Error ::= SEQUENCE
658         {
659                 programInvocationName   [0] IMPLICIT Identifier,
660                 programInvocationState  [1] IMPLICIT ProgramInvocationState
661         }
663         DeleteUnitControl-Error ::= CHOICE
664         {
665                 domain                  [0] IMPLICIT Identifier,
666                 programInvocation       [1] IMPLICIT Identifier
667         }
669         LoadUnitControlFromFile-Error ::= CHOICE
670         {
671                 none                    [0] IMPLICIT NULL,
672                 domain                  [1] IMPLICIT Identifier,
673                 programInvocation       [2] IMPLICIT Identifier
674         }
676         ChangeAccessControl-Error ::= Unsigned32
678 ---------------------------------- REJECT --------------------------------
680 RejectPDU ::= SEQUENCE
681         {
682         originalInvokeID                [0] IMPLICIT Unsigned32 OPTIONAL,
683         rejectReason                        CHOICE 
684                 {
685                 confirmed-requestPDU            [1] IMPLICIT INTEGER 
686                         {
687                         other                                   (0),
688                         unrecognized-service                    (1),
689                         unrecognized-modifier                   (2),
690                         invalid-invokeID                        (3),
691                         invalid-argument                        (4),
692                         invalid-modifier                        (5),
693                         max-serv-outstanding-exceeded           (6),
694                         max-recursion-exceeded                  (8),
695                         value-out-of-range                      (9)
696                         },
698                 confirmed-responsePDU           [2] IMPLICIT INTEGER 
699                         {
700                         other                                   (0),
701                         unrecognized-service                    (1),
702                         invalid-invokeID                        (2),
703                         invalid-result                          (3),
704                         max-recursion-exceeded                  (5),
705                         value-out-of-range                      (6)     
706                         },
707                 
708                 confirmed-errorPDU              [3] IMPLICIT INTEGER 
709                         {
710                         other                                   (0),
711                         unrecognized-service                    (1),
712                         invalid-invokeID                        (2),
713                         invalid-serviceError                    (3),
714                         value-out-of-range                      (4)      
715                         } ,             
716                         
717                 unconfirmedPDU                  [4] IMPLICIT INTEGER
718                         {
719                         other                                   (0),
720                         unrecognized-service                    (1),
721                         invalid-argument                        (2),
722                         max-recursion-exceeded                  (3),
723                         value-out-of-range                      (4)     
724                         },
726                 pdu-error                       [5] IMPLICIT INTEGER
727                         {
728                         unknown-pdu-type                        (0),
729                         invalid-pdu                             (1),
730                         illegal-acse-mapping                    (2)
731                         },
733                 cancel-requestPDU               [6] IMPLICIT INTEGER
734                         {
735                         other                                   (0),
736                         invalid-invokeID                        (1)     
737                         },
739                 cancel-responsePDU              [7] IMPLICIT INTEGER
740                         {
741                         other                                   (0),
742                         invalid-invokeID                        (1)     
743                         },
745                 cancel-errorPDU                 [8] IMPLICIT INTEGER
746                         {
747                         other                                   (0),
748                         invalid-invokeID                        (1),
749                         invalid-serviceError                    (2),
750                         value-out-of-range                      (3)     
751                         },
753                 conclude-requestPDU             [9] IMPLICIT INTEGER
754                         {
755                         other                                   (0),
756                         invalid-argument                        (1)     
757                         },
759                 conclude-responsePDU            [10] IMPLICIT INTEGER
760                         {
761                         other                                   (0),
762                         invalid-result                          (1)     
763                         },
765                 conclude-errorPDU               [11] IMPLICIT INTEGER
766                         {
767                         other                                   (0),
768                         invalid-serviceError                    (1),
769                         value-out-of-range                      (2)     
770                         }
771                 }
772         }
775 -- *************************************** VMD ********************************************
778 Status-Request ::= BOOLEAN
780 Status-Response ::= SEQUENCE {
781     vmdLogicalStatus         [0] IMPLICIT INTEGER {
782       state-changes-allowed       (0),
783       no-state-changes-allowed    (1),
784       limited-services-allowed    (2),
785       support-services-allowed    (3)
786       },
787     vmdPhysicalStatus        [1] IMPLICIT INTEGER {
788       operational                 (0),
789       partially-operational       (1),
790       inoperable                  (2),
791       needs-commissioning         (3)
792       },
793     localDetail              [2] IMPLICIT BIT STRING(SIZE(0..128)) OPTIONAL
795     }
797 -- UNSOLICITEDSTATUS
799 UnsolicitedStatus ::= Status-Response
801 -- GETNAMELIST
802 ObjectClass ::= INTEGER
803         {
804         nammedVariable          (0),
805         scatteredAccess         (1),
806         namedVariableList       (2),
807         namedType               (3),
808         semaphore               (4),
809         eventCondition          (5),
810         eventAction             (6),
811         eventEnrollment         (7),
812         journal                 (8),
813         domain                  (9),
814         programInvocation       (10),
815         operatorStation         (11)
816         }
818 ObjectScope ::= CHOICE
819         {
820         vmdSpecific             [0] IMPLICIT NULL,
821         domainSpecific          [1] IMPLICIT Identifier,
822         aaSpecific              [2] IMPLICIT NULL
823         }
826 GetNameList-Request ::= SEQUENCE
827         {
828         extendedObjectClass [0] CHOICE
829                 {
830                 objectClass             [0] IMPLICIT ObjectClass
831                 },
832         objectScope         [1] ObjectScope,
833         continueAfter       [2] IMPLICIT Identifier OPTIONAL
834         }
836 GetNameList-Response ::= SEQUENCE
837         {
838         listOfIdentifier        [0] IMPLICIT SEQUENCE OF Identifier,
839         moreFollows             [1] IMPLICIT BOOLEAN DEFAULT TRUE
840         }
843 ---------------------------------- IDENTIFY --------------------------------
845 Identify-Request ::= NULL
847 Identify-Response ::= SEQUENCE {
848         vendorName              [0] IMPLICIT VisibleString,
849         modelName               [1] IMPLICIT VisibleString,
850         revision                [2] IMPLICIT VisibleString,
851         listOfAbstractSyntaxes  [3] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL
852         }
854 ---------------------------------- RENAME --------------------------------
856 Rename-Request ::= SEQUENCE 
857         {
858         extendedObjectClass     [0] CHOICE {
859         objectClass                     [0] IMPLICIT INTEGER
860                 {
861                 namedVariable           (0),
862                 scatteredAccess         (1),
863                 namedVariableList       (2),
864                 namedType               (3),
865                 semaphore               (4),
866                 eventCondition          (5),
867                 eventAction             (6),
868                 eventEnrollment         (7),
869                 journal                 (8),
870                 domain                  (9),
871                 programInvocation       (10),
872                 operatorStation         (11)
873                 }
875             },
876         currentName             [1] ObjectName,
877         newIdentifier           [2] IMPLICIT Identifier
878         }
880 Rename-Response ::= NULL
882 ---------------------------------- GET CAPABILITY LIST --------------------------------
884 GetCapabilityList-Request ::= SEQUENCE {
885         continueAfter   VisibleString OPTIONAL
886         }
888 GetCapabilityList-Response ::= SEQUENCE {
889         listOfCapabilities      [0] IMPLICIT SEQUENCE OF VisibleString,
890         moreFollows             [1] IMPLICIT BOOLEAN DEFAULT TRUE
891         }
897 -- ************************************* DOMAIN ****************************************
899 InitiateDownloadSequence-Request ::= SEQUENCE
900         {
901         domainName              [0] IMPLICIT Identifier,
902         listOfCapabilities      [1] IMPLICIT SEQUENCE OF VisibleString,
903         sharable                [2] IMPLICIT BOOLEAN
904         }
906 InitiateDownloadSequence-Response ::= NULL
908 -- DOWNLOAD SEGMENT
910 DownloadSegment-Request ::= Identifier
912 DownloadSegment-Response ::= SEQUENCE
913         {
914         loadData        CHOICE {
915            non-coded            [0] IMPLICIT OCTET STRING,
916            coded                EXTERNALt
917            },
918         moreFollows     [1] IMPLICIT BOOLEAN DEFAULT TRUE
919         }
921 -- TERMINATE DOWNLOAD
923 TerminateDownloadSequence-Request ::= SEQUENCE
924         {
925         domainName      [0] IMPLICIT Identifier,
926         discard         [1] IMPLICIT ServiceError OPTIONAL
927         }
928         
929 TerminateDownloadSequence-Response ::= NULL 
931 -- INITIATE UPLOAD
933 InitiateUploadSequence-Request ::= Identifier   -- Domain Name
935 InitiateUploadSequence-Response ::= SEQUENCE
936         {
937         ulsmID                  [0] IMPLICIT Integer32,
938         listOfCapabilities      [1] IMPLICIT SEQUENCE OF VisibleString
939         }
941 -- UPLOAD SEGMENT
943 UploadSegment-Request ::= Integer32     -- ULSM Identifier
945 UploadSegment-Response ::= SEQUENCE
946         {
947         loadData        CHOICE {
948            non-coded            [0] IMPLICIT OCTET STRING,
949            coded                EXTERNALt
950            },
951         moreFollows     [1] IMPLICIT BOOLEAN DEFAULT TRUE
952         }
954 -- TERMINATE UPLOAD
956 TerminateUploadSequence-Request ::= Integer32   -- ULSM Identifer
958 TerminateUploadSequence-Response ::= NULL
960 -- REQUEST DOMAIN DOWNLOAD
962 RequestDomainDownload-Request ::= SEQUENCE
963         {
964         domainName              [0] IMPLICIT Identifier,
965         listOfCapabilities      [1] IMPLICIT SEQUENCE OF VisibleString OPTIONAL,
966         sharable                [2] IMPLICIT BOOLEAN,
967         fileName                [4] IMPLICIT FileName
968         }
969 RequestDomainDownload-Response ::= NULL
971 -- REQUEST DOMAIN UPLOAD
973 RequestDomainUpload-Request ::= SEQUENCE
974         {
975         domainName      [0] IMPLICIT Identifier,
976         fileName        [1] IMPLICIT FileName
977         }
979 RequestDomainUpload-Response ::= NULL
981 -- LOAD DOMAIN CONTENT
983 LoadDomainContent-Request ::= SEQUENCE
984         {
985         domainName              [0] IMPLICIT Identifier,
986         listOfCapabilities      [1] IMPLICIT SEQUENCE OF VisibleString OPTIONAL,
987         sharable                [2] IMPLICIT BOOLEAN,
988         fileName                [4] IMPLICIT FileName,
989         thirdParty              [5] IMPLICIT ApplicationReference OPTIONAL
990         }
992 LoadDomainContent-Response ::= NULL
994 -- STORE DOMAIN CONTENT
996 StoreDomainContent-Request ::= SEQUENCE
997         {
998         domainName      [0] IMPLICIT Identifier,
999         filenName       [1] IMPLICIT FileName,
1000         thirdParty      [2] IMPLICIT ApplicationReference OPTIONAL
1001         }
1003 StoreDomainContent-Response ::= NULL
1005 -- DELETE DOMAIN
1007 DeleteDomain-Request ::= Identifier     -- Domain Name 
1009 DeleteDomain-Response ::= NULL
1011 -- GET DOMAIN ATTRIBUTES 
1013 GetDomainAttributes-Request ::= Identifier      -- Domain Name
1015 GetDomainAttributes-Response ::= SEQUENCE
1016         {
1017         listOfCapabilities              [0] IMPLICIT SEQUENCE OF VisibleString,
1018         state                           [1] IMPLICIT DomainState,
1019         mmsDeletable                    [2] IMPLICIT BOOLEAN,
1020         sharable                        [3] IMPLICIT BOOLEAN,
1021         listOfProgramInvocations        [4] IMPLICIT SEQUENCE OF Identifier,    -- PI Names
1022         uploadInProgress                [5] IMPLICIT Integer8
1023         }
1026 DomainState ::= INTEGER
1027         {
1028         non-existent    (0),
1029         loading         (1),
1030         ready           (2),
1031         in-use          (3),
1032         complete        (4),
1033         incomplete      (5),
1034         d1              (7),
1035         d2              (8),
1036         d3              (9),
1037         d4              (10),
1038         d5              (11),
1039         d6              (12),
1040         d7              (13),
1041         d8              (14),
1042         d9              (15)
1043         }
1045 -- ********************************* PROGRAM INVOCATION *********************************
1048 -- CREATE PROGRAM INVOCATION
1050 CreateProgramInvocation-Request ::= SEQUENCE
1051         {
1052         programInvocationName   [0] IMPLICIT Identifier,
1053         listOfDomainName                [1] IMPLICIT SEQUENCE OF Identifier,
1054         reusable                        [2] IMPLICIT BOOLEAN DEFAULT TRUE,
1055         monitorType                     [3] IMPLICIT BOOLEAN OPTIONAL
1056                 -- TRUE indicates PERMANENT monitoring
1057                 -- FALSE indicates CURRENT monitoring
1058         }
1060 CreateProgramInvocation-Response ::= NULL
1062 -- DELETE PROGRAM INVOCATION
1064 DeleteProgramInvocation-Request   ::= Identifier        -- Program Invocation Name
1066 DeleteProgramInvocation-Response ::= NULL
1068 -- START
1070 Start-Request ::= SEQUENCE      
1071         {
1072         programInvocationName   [0] IMPLICIT Identifier,
1073         executionArgument       CHOICE {
1074             simpleString          [1] IMPLICIT VisibleString,
1075             encodedString         EXTERNALt
1076             } OPTIONAL
1077         }
1079 Start-Response ::= NULL
1081 Start-Error ::= ProgramInvocationState
1083 -- STOP
1085 Stop-Request ::= SEQUENCE 
1086         {
1087         programInvocationName   [0] IMPLICIT Identifier
1088         }
1090 Stop-Response ::= NULL
1092 Stop-Error ::= ProgramInvocationState
1094 -- RESUME
1096 Resume-Request ::= SEQUENCE
1097         {
1098         programInvocationName   [0] IMPLICIT Identifier,
1099         executionArgument       CHOICE {
1100             simpleString          [1] IMPLICIT VisibleString,
1101             encodedString         EXTERNALt
1102             } OPTIONAL
1103         }
1105 Resume-Response ::= NULL
1107 Resume-Error ::= ProgramInvocationState
1109 -- RESET
1111 Reset-Request ::= SEQUENCE 
1112         {
1113         programInvocationName   [0] IMPLICIT Identifier
1114         }
1116 Reset-Response ::= NULL
1118 Reset-Error ::= ProgramInvocationState
1120 -- KILL
1122 Kill-Request ::= SEQUENCE
1123         {
1124         programInvocationName   [0] IMPLICIT Identifier
1125         }
1127 Kill-Response ::= NULL
1129 -- GET PI ATTRIBUTES
1131 GetProgramInvocationAttributes-Request ::= Identifier   -- Program Invocation Name
1133 GetProgramInvocationAttributes-Response ::= SEQUENCE
1134         {
1135         state                   [0] IMPLICIT ProgramInvocationState,
1136         listOfDomainNames       [1] IMPLICIT SEQUENCE OF Identifier,                    
1137         mmsDeletable            [2] IMPLICIT BOOLEAN,
1138         reusable                [3] IMPLICIT BOOLEAN,
1139         monitor                 [4] IMPLICIT BOOLEAN,
1140         startArgument           [5] IMPLICIT VisibleString,
1141         executionArgument       CHOICE {
1142             simpleString          [1] IMPLICIT VisibleString,
1143             encodedString         EXTERNALt
1144             } OPTIONAL
1145         }
1148 ProgramInvocationState ::= INTEGER
1149         {
1150         non-existent            (0),
1151         unrunable               (1),
1152         idle                    (2),
1153         running                 (3),
1154         stopped                 (4),
1155         starting                (5),
1156         stopping                (6),
1157         resuming                (7),
1158         resetting               (8)
1159         }
1160         -- Companion Standard may add additional values
1163 -- *********************************** VARIABLES ****************************************
1166 TypeSpecification ::= CHOICE 
1167         {
1168         typeName                [0] ObjectName,
1169         array                   [1] IMPLICIT SEQUENCE
1170                 {
1171                 packed                  [0] IMPLICIT BOOLEAN DEFAULT FALSE,
1172                 numberOfElements        [1] IMPLICIT Unsigned32,
1173                 elementType             [2] TypeSpecification
1174                 },
1175         structure               [2] IMPLICIT SEQUENCE
1176                 {
1177                 packed                  [0] IMPLICIT BOOLEAN DEFAULT FALSE,
1178                 components              [1] IMPLICIT SEQUENCE OF SEQUENCE
1179                         {
1180                         componentName           [0] IMPLICIT Identifier OPTIONAL,
1181                         componentType           [1] TypeSpecification
1182                         }
1183                 },
1184         
1185         -- Simple Type
1186         boolean                 [3] IMPLICIT NULL,
1187         bit-string              [4] IMPLICIT Integer32,
1188         integer                 [5] IMPLICIT Unsigned8,
1189         unsigned                [6] IMPLICIT Unsigned8,
1190         octet-string            [9] IMPLICIT Integer32,
1191         visible-string          [10] IMPLICIT Integer32,
1192         generalized-time        [11] IMPLICIT NULL,
1193         binary-time             [12] IMPLICIT BOOLEAN,
1194         bcd                     [13] IMPLICIT Unsigned8,
1195         objId                   [15] IMPLICIT NULL
1196         }
1198 AlternateAccess ::= SEQUENCE OF CHOICE
1199         {
1200         unnamed AlternateAccessSelection,
1201         named           [5] IMPLICIT SEQUENCE 
1202                 {
1203                 componentName   [0] IMPLICIT Identifier,
1204                 accesst         AlternateAccessSelection
1205                 }
1206         }
1208 AlternateAccessSelection ::= CHOICE 
1209     {
1210     selectAlternateAccess    [0] IMPLICIT SEQUENCE 
1211        {
1212        accessSelection CHOICE 
1213           {
1214           component    [0] IMPLICIT Identifier,
1215           index        [1] IMPLICIT Unsigned32,
1216           indexRange   [2] IMPLICIT SEQUENCE 
1217              {
1218              lowIndex            [0] IMPLICIT Unsigned32,
1219              numberOfElements    [1] IMPLICIT Unsigned32},
1220              allElements         [3] IMPLICIT NULL
1221              },
1222           alternateAccess  AlternateAccess
1223           },
1224     selectAccess CHOICE 
1225        {
1226        component    [1] IMPLICIT Identifier,
1227        index        [2] IMPLICIT Unsigned32,
1228        indexRange   [3] IMPLICIT SEQUENCE 
1229           {
1230           lowIndex          [0] IMPLICIT Unsigned32,
1231           nmberOfElements  [1] IMPLICIT Unsigned32
1232           },
1233        allElements  [4] IMPLICIT NULL
1234        }
1235    }
1247 -- READ
1249 Read-Request ::= SEQUENCE
1250         {
1251         specificationWithResult         [0] IMPLICIT BOOLEAN DEFAULT FALSE,
1252         variableAccessSpecificatn       [1] VariableAccessSpecification
1253         }
1256 Read-Response ::= SEQUENCE
1257         {
1258         variableAccessSpecificatn [0] VariableAccessSpecification OPTIONAL,
1259         listOfAccessResult        [1] IMPLICIT SEQUENCE OF AccessResult
1260         }
1262 -- WRITE
1266 Write-Request ::= SEQUENCE
1267         {
1268         variableAccessSpecificatn       VariableAccessSpecification,
1269         listOfData                      [0] IMPLICIT SEQUENCE OF Data
1270         }
1272 Write-Response ::= SEQUENCE OF CHOICE
1273         {
1274         failure         [0] IMPLICIT DataAccessError,
1275         success         [1] IMPLICIT NULL
1276         }
1278 -- INFORMATION REPORT
1280 InformationReport ::= SEQUENCE
1281         {
1282         variableAccessSpecification     VariableAccessSpecification,
1283         listOfAccessResult              [0] IMPLICIT SEQUENCE OF AccessResult
1284         }
1286 -- GET VARIABLE ACCESS ATTRIBUTES
1288 GetVariableAccessAttributes-Request ::= CHOICE
1289         {
1290         name            [0] ObjectName,
1291         address         [1] Address
1292         }
1295 GetVariableAccessAttributes-Response ::= SEQUENCE
1296         {
1297         mmsDeletable            [0] IMPLICIT BOOLEAN,
1298         address                 [1] Address OPTIONAL,
1299         typeSpecification       [2] TypeSpecification
1300         }
1301 -- DEFINE NAMED VARIABLE
1303 DefineNamedVariable-Request ::= SEQUENCE
1304         {
1305         variableName            [0] ObjectName,
1306         address                 [1] Address,
1307         typeSpecification       [2] TypeSpecification OPTIONAL
1308         }
1310 DefineNamedVariable-Response ::= NULL
1312 -- DEFINE SCATTERED ACCESS
1314 DefineScatteredAccess-Request ::= SEQUENCE
1315         {
1316         scatteredAccessName             [0] ObjectName,
1317         scatteredAccessDescription      [1] IMPLICIT ScatteredAccessDescription
1318         }
1321 DefineScatteredAccess-Response ::= NULL
1323 -- GET SCATTERED ACCESS ATTRIBUTES
1325 GetScatteredAccessAttributes-Request ::= ObjectName     -- ScatteredAccessName
1328 GetScatteredAccessAttributes-Response ::= SEQUENCE
1329         {
1330         mmsDeletable                    [0] IMPLICIT BOOLEAN,
1331         scatteredAccessDescription      [1] IMPLICIT ScatteredAccessDescription
1332         }
1334 -- DELETE VARIABLE ACCESS
1336 DeleteVariableAccess-Request ::= SEQUENCE
1337         {
1338         scopeOfDelete           [0] IMPLICIT INTEGER
1339                 {
1340                 specific                (0),
1341                 aa-specific             (1),
1342                 domain                  (2),
1343                 vmd                     (3) 
1344                 } DEFAULT specific,
1345         listOfName              [1] IMPLICIT SEQUENCE OF ObjectName OPTIONAL,
1346         domainName              [2] IMPLICIT Identifier OPTIONAL
1347         }
1349 DeleteVariableAccess-Response ::= SEQUENCE
1350         {
1351         numberMatched   [0] IMPLICIT Unsigned32,
1352         numberDeleted   [1] IMPLICIT Unsigned32
1353         }
1356 DeleteVariableAccess-Error ::= Unsigned32       -- numberDeleted
1358 -- DEFINE NAMED VAR. LIST
1360 DefineNamedVariableList-Request ::= SEQUENCE
1361         {
1362         variableListName        ObjectName,
1363         listOfVariable          [0] IMPLICIT SEQUENCE OF SEQUENCE
1364                 {
1365                 variableSpecification   VariableSpecification,
1366                 alternateAccess         [5] IMPLICIT AlternateAccess OPTIONAL
1367                 }
1368         }
1371 DefineNamedVariableList-Response ::= NULL
1373 -- GET NAMED VAR. LIST ATTRIBUTES
1375 GetNamedVariableListAttributes-Request ::= ObjectName   -- VariableListName
1378 GetNamedVariableListAttributes-Response ::= SEQUENCE
1379         {
1380         mmsDeletable            [0] IMPLICIT BOOLEAN,
1381         listOfVariable          [1] IMPLICIT SEQUENCE OF SEQUENCE 
1382                 {
1383                 variableSpecification           VariableSpecification,
1384                 alternateAccess                 [5] IMPLICIT AlternateAccess OPTIONAL
1385                 }
1386         }
1388 -- DELETE NAMED VAR. LIST
1390 DeleteNamedVariableList-Request ::= SEQUENCE
1391         {
1392         scopeOfDelete           [0] IMPLICIT INTEGER
1393                 {
1394                 specific                        (0),
1395                 aa-specific                     (1),
1396                 domain                          (2),
1397                 vmd                             (3) 
1398                 } DEFAULT specific,
1399         listOfVariableListName  [1] IMPLICIT SEQUENCE OF ObjectName OPTIONAL,
1400         domainName                      [2] IMPLICIT Identifier OPTIONAL
1401         }
1404 DeleteNamedVariableList-Response ::= SEQUENCE
1405         {
1406         numberMatched   [0] IMPLICIT Unsigned32,
1407         numberDeleted   [1] IMPLICIT Unsigned32
1408         }
1411 DeleteNamedVariableList-Error ::= Unsigned32    --      number Deleted
1413 -- DEFINE NAMED TYPE
1415 DefineNamedType-Request ::= SEQUENCE 
1416         {
1417         typeName                ObjectName,
1418         typeSpecification       TypeSpecification
1419         }
1422 DefineNamedType-Response ::= NULL
1425 -- GET NAMED TYPE ATTRIB.
1427 GetNamedTypeAttributes-Request ::= ObjectName -- TypeName
1429 GetNamedTypeAttributes-Response ::= SEQUENCE
1430         {
1431         mmsDeletable            [0] IMPLICIT BOOLEAN,
1432         typeSpecification       TypeSpecification
1433         } 
1435 -- DELETE NAMED TYPE
1437 DeleteNamedType-Request ::= SEQUENCE
1438         {
1439         scopeOfDelete           [0] IMPLICIT INTEGER
1440                 {
1441                 specific                (0),
1442                 aa-specific             (1),
1443                 domain                  (2),
1444                 vmd                     (3) 
1445                 } DEFAULT specific,
1446         listOfTypeName          [1] IMPLICIT SEQUENCE OF ObjectName OPTIONAL,
1447         domainName              [2] IMPLICIT Identifier OPTIONAL
1448         }
1450 DeleteNamedType-Response ::= SEQUENCE
1451         {
1452         numberMatched   [0] IMPLICIT Unsigned32,
1453         numberDeleted   [1] IMPLICIT Unsigned32
1454         }
1456 DeleteNamedType-Error ::= Unsigned32    --      number Deleted
1458 -- SUPPORT DEFINITIONS
1460 AccessResult ::= CHOICE 
1461     {
1462     failure  [0] IMPLICIT DataAccessError,
1463     success  Data
1464     }
1466 DataAccessError ::= INTEGER
1467         {
1468         object-invalidated              (0),
1469         hardware-fault                  (1),
1470         temporarily-unavailable         (2),
1471         object-access-denied            (3),
1472         object-undefined                (4),
1473         invalid-address                 (5),
1474         type-unsupported                (6),
1475         type-inconsistent               (7),
1476         object-attribute-inconsistent   (8),
1477         object-access-unsupported       (9),
1478         object-non-existent             (10),
1479         object-value-invalid            (11)
1480         }
1484 Data ::= CHOICE
1485         {
1486         -- context tag 0 is reserved for AccessResult
1487         array                       [1] IMPLICIT SEQUENCE OF Data,
1488         structure                   [2] IMPLICIT SEQUENCE OF Data,
1489         boolean                     [3] IMPLICIT BOOLEAN,
1490         bit-string                  [4] IMPLICIT BIT STRING,
1491         integer                     [5] IMPLICIT INTEGER,
1492         unsigned                    [6] IMPLICIT INTEGER,
1493         floating-point          [7] IMPLICIT FloatingPoint,
1494 -- XXX asn2wrs and packet-ber can not handle REAL yet
1495 --      real                        [8] IMPLICIT REAL,
1496         octet-string            [9] IMPLICIT OCTET STRING,
1497         visible-string          [10] IMPLICIT VisibleString,
1498         binary-time                 [12] IMPLICIT TimeOfDay,
1499         bcd                             [13] IMPLICIT INTEGER,
1500         booleanArray            [14] IMPLICIT BIT STRING,
1501     objId               [15] IMPLICIT OBJECT IDENTIFIER,
1502   ...,
1503     mMSString           [16] IMPLICIT MMSString,
1504     utc-time            [17] IMPLICIT UtcTime                           -- added by IEC61850 8.1 G3     
1505     }
1507 UtcTime ::= OCTET STRING                                        -- added by IEC61850 8.1 G3     
1509 FloatingPoint ::= OCTET STRING
1512 VariableAccessSpecification ::= CHOICE
1513         {
1514         listOfVariable          [0] IMPLICIT SEQUENCE OF SEQUENCE
1515                 {
1516                 variableSpecification   VariableSpecification,
1517                 alternateAccess         [5] IMPLICIT AlternateAccess OPTIONAL
1518                 },
1519         variableListName        [1] ObjectName
1520         }
1523 ScatteredAccessDescription ::= SEQUENCE OF SEQUENCE 
1524         {
1525         componentName           [0] IMPLICIT Identifier OPTIONAL,
1526         variableSpecification   [1] VariableSpecification,
1527         alternateAccess         [2] IMPLICIT AlternateAccess OPTIONAL
1528         }
1531 VariableSpecification ::= CHOICE
1532         {
1533         name                            [0] ObjectName,
1534         address                         [1] Address,
1535         variableDescription             [2] IMPLICIT SEQUENCE
1536                 {
1537                 address                 Address,
1538                 typeSpecification       TypeSpecification
1539                 },
1540         scatteredAccessDescription      [3] IMPLICIT ScatteredAccessDescription,
1541         invalidated                     [4] IMPLICIT NULL
1542         }
1544 Address ::= CHOICE
1545         {
1546         numericAddress          [0] IMPLICIT Unsigned32,
1547         symbolicAddress         [1] IMPLICIT VisibleString,
1548         unconstrainedAddress    [2] IMPLICIT OCTET STRING
1549         }
1552 -- ********************************* SEMAPHORES *****************************************
1554 TakeControl-Request ::= SEQUENCE
1555         {
1556         semaphoreName                   [0] ObjectName,
1557         namedToken                      [1] IMPLICIT Identifier OPTIONAL,
1558         priority                        [2] IMPLICIT Priority DEFAULT 64,
1559         acceptableDelay                 [3] IMPLICIT Unsigned32 OPTIONAL,
1560         controlTimeOut                  [4] IMPLICIT Unsigned32 OPTIONAL,
1561         abortOnTimeOut                  [5] IMPLICIT BOOLEAN OPTIONAL,
1562         relinquishIfConnectionLost      [6] IMPLICIT BOOLEAN DEFAULT TRUE,
1563         applicationToPreempt            [7] IMPLICIT ApplicationReference OPTIONAL
1564         }
1566 TakeControl-Response ::= CHOICE
1567         {       
1568         noResult                [0] IMPLICIT NULL,
1569         namedToken              [1] IMPLICIT Identifier
1570         }
1572 -- RELINQUISH CONTROL
1574 RelinquishControl-Request ::= SEQUENCE
1575         {
1576         semaphoreName           [0] ObjectName,
1577         namedToken              [1] IMPLICIT Identifier OPTIONAL
1578         }
1580 RelinquishControl-Response ::= NULL
1582 -- DEFINE SEMAPHORE
1584 DefineSemaphore-Request ::= SEQUENCE
1585         {
1586         semaphoreName           [0] ObjectName,
1587         numbersOfTokens         [1] IMPLICIT Unsigned16
1588         }
1590 DefineSemaphore-Response ::= NULL
1592 -- DELETE SEMAPHORE
1594 DeleteSemaphore-Request ::= ObjectName          -- Semaphore Name
1596 DeleteSemaphore-Response ::= NULL
1598 -- REPORT SEMAPHORE STATUS
1600 ReportSemaphoreStatus-Request ::= ObjectName    -- SemaphoreName
1602 ReportSemaphoreStatus-Response ::= SEQUENCE
1603         {
1604         mmsDeletable            [0] IMPLICIT BOOLEAN,
1605         class                   [1] IMPLICIT INTEGER
1606                 {
1607                 token   (0),
1608                 pool    (1)
1609                 },
1610         numberOfTokens          [2] IMPLICIT Unsigned16,
1611         numberOfOwnedTokens     [3] IMPLICIT Unsigned16,
1612         numberOfHungTokens      [4] IMPLICIT Unsigned16
1613         }
1615 -- REPORT POOL SEMAPHORE STATUS
1617 ReportPoolSemaphoreStatus-Request ::= SEQUENCE
1618         {
1619         semaphoreName           [0] ObjectName,
1620         nameToStartAfter        [1] IMPLICIT Identifier OPTIONAL
1621         }
1623 ReportPoolSemaphoreStatus-Response ::= SEQUENCE
1624         {
1625         listOfNamedTokens       [0] IMPLICIT SEQUENCE OF CHOICE
1626                 {
1627                 freeNamedToken          [0] IMPLICIT Identifier,
1628                 ownedNamedToken         [1] IMPLICIT Identifier,
1629                 hungNamedToken          [2] IMPLICIT Identifier
1630                 },
1631         moreFollows             [1] IMPLICIT BOOLEAN DEFAULT TRUE
1632         }
1634 -- REPORT SEMAPHORE ENTRY STATUS
1636 ReportSemaphoreEntryStatus-Request ::=SEQUENCE
1637         {
1638         semaphoreName           [0] ObjectName,
1639         state                   [1] IMPLICIT INTEGER
1640                 {
1641                 queued  (0),
1642                 owner   (1),
1643                 hung    (2)
1644                 } ,
1645         entryIdToStartAfter     [2] IMPLICIT OCTET STRING OPTIONAL
1646         }
1648 ReportSemaphoreEntryStatus-Response ::= SEQUENCE
1649         {
1650         listOfSemaphoreEntry    [0] IMPLICIT SEQUENCE OF SemaphoreEntry,
1651         moreFollows             [1] IMPLICIT BOOLEAN DEFAULT TRUE
1652         }
1655 AttachToSemaphore ::= SEQUENCE
1656         {
1657         semaphoreName                   [0] ObjectName,
1658         namedToken                      [1] IMPLICIT Identifier OPTIONAL,
1659         priority                        [2] IMPLICIT Priority DEFAULT 64,
1660         acceptableDelay                 [3] IMPLICIT Unsigned32 OPTIONAL,
1661         controlTimeOut                  [4] IMPLICIT Unsigned32 OPTIONAL,
1662         abortOnTimeOut                  [5] IMPLICIT BOOLEAN OPTIONAL,
1663         relinquishIfConnectionLost      [6] IMPLICIT BOOLEAN DEFAULT TRUE
1664         }
1667 SemaphoreEntry ::= SEQUENCE
1668         {       
1669         entryId                         [0] IMPLICIT OCTET STRING,
1670         entryClass                      [1] IMPLICIT INTEGER
1671                 {
1672                 simple          (0),
1673                 modifier        (1)
1674                 },
1675         applicationReference            [2] ApplicationReference,
1676         namedToken                      [3] IMPLICIT Identifier OPTIONAL,
1677         priority                        [4] IMPLICIT Priority DEFAULT 64,
1678         remainingTimeOut                [5] IMPLICIT Unsigned32 OPTIONAL,
1679         abortOnTimeOut                  [6] IMPLICIT BOOLEAN OPTIONAL,
1680         relinquishIfConnectionLost      [7] IMPLICIT BOOLEAN DEFAULT TRUE
1681         }
1683 --******************************** OPERATOR COMMUNICATION *****************************
1686 -- INPUT
1688 Input-Request ::= SEQUENCE
1689         {
1690         operatorStationName     [0] IMPLICIT Identifier,
1691         echo                    [1] IMPLICIT BOOLEAN DEFAULT TRUE,
1692         listOfPromptData        [2] IMPLICIT SEQUENCE OF VisibleString OPTIONAL,
1693         inputTimeOut            [3] IMPLICIT Unsigned32 OPTIONAL
1694         }
1697 Input-Response ::= VisibleString        -- Input String
1699 -- OUTPUT
1701 Output-Request ::= SEQUENCE
1702         {
1703         operatorStationName     [0] IMPLICIT Identifier,
1704         listOfOutputData        [1] IMPLICIT SEQUENCE OF VisibleString
1705         }
1708 Output-Response ::= NULL
1711 -- ************************************ EVENTS *********************************************
1713 DefineEventCondition-Request ::= SEQUENCE
1714         {
1715         eventConditionName              [0] ObjectName,
1716         class                           [1] IMPLICIT EC-Class,
1717         prio-rity                       [2] IMPLICIT Priority DEFAULT 64,
1718         severity                        [3] IMPLICIT Unsigned8 DEFAULT 64,
1719         alarmSummaryReports             [4] IMPLICIT BOOLEAN OPTIONAL,
1720         monitoredVariable               [6] VariableSpecification OPTIONAL,
1721         evaluationInterval              [7] IMPLICIT Unsigned32 OPTIONAL
1722         }
1724 DefineEventCondition-Response ::= NULL
1727 DeleteEventCondition-Request ::= CHOICE
1728         {
1729         specific                [0] IMPLICIT SEQUENCE OF ObjectName,
1730         aa-specific             [1] IMPLICIT NULL,
1731         domain                  [2] IMPLICIT Identifier,
1732         vmd                     [3] IMPLICIT NULL
1733         }
1735 DeleteEventCondition-Response ::= Unsigned32    -- Candidates Not Deleted
1738 GetEventConditionAttributes-Request ::= ObjectName      -- Event Condition Name
1740 GetEventConditionAttributes-Response ::= SEQUENCE
1741         {
1742         mmsDeletable                    [0] IMPLICIT BOOLEAN DEFAULT FALSE,
1743         class                           [1] IMPLICIT EC-Class,
1744         prio-rity                       [2] IMPLICIT Priority DEFAULT 64,
1745         severity                        [3] IMPLICIT Unsigned8 DEFAULT 64,
1746         alarmSummaryReports             [4] IMPLICIT BOOLEAN DEFAULT FALSE,
1747         monitoredVariable               [6] CHOICE
1748                 {
1749                 variableReference               [0] VariableSpecification,
1750                 undefined                       [1] IMPLICIT NULL
1751                 } OPTIONAL,
1752         evaluationInterval              [7] IMPLICIT Unsigned32 OPTIONAL
1753         }
1756 ReportEventConditionStatus-Request ::= ObjectName       -- EventConditionName
1758 ReportEventConditionStatus-Response ::= SEQUENCE
1759         {
1760         currentState                    [0] IMPLICIT EC-State,
1761         numberOfEventEnrollments        [1] IMPLICIT Unsigned32,
1762         enabled                         [2] IMPLICIT BOOLEAN OPTIONAL,
1763         timeOfLastTransitionToActive    [3] EventTime OPTIONAL,
1764         timeOfLastTransitionToIdle      [4] EventTime OPTIONAL
1765         }
1768 AlterEventConditionMonitoring-Request ::= SEQUENCE
1769         {
1770         eventConditionName              [0] ObjectName,
1771         enabled                         [1] IMPLICIT BOOLEAN OPTIONAL,
1772         priority                        [2] IMPLICIT Priority OPTIONAL,
1773         alarmSummaryReports             [3] IMPLICIT BOOLEAN OPTIONAL,
1774         evaluationInterval              [4] IMPLICIT Unsigned32 OPTIONAL
1775         }
1777 AlterEventConditionMonitoring-Response ::= NULL
1780 TriggerEvent-Request ::= SEQUENCE
1781         {
1782         eventConditionName              [0] ObjectName,
1783         priority                        [1] IMPLICIT Priority OPTIONAL
1784         }
1786 TriggerEvent-Response ::= NULL
1789 DefineEventAction-Request ::= SEQUENCE
1790         {
1791         eventActionName                 [0] ObjectName,
1792         listOfModifier                  [1] IMPLICIT SEQUENCE OF Modifier OPTIONAL
1793 -- XXX this one is neither in this ASN nor in the IMPORTS
1794 --      confirmed-Service-Request       [2] DefineEventAction-ConfirmedServiceRequest
1796         }
1799 DefineEventAction-Response ::= NULL
1801 DeleteEventAction-Request ::= CHOICE
1802         {
1803         specific                [0] IMPLICIT SEQUENCE OF ObjectName,
1804         aa-specific             [1] IMPLICIT NULL,
1805         domain                  [3] IMPLICIT Identifier,
1806         vmd                     [4] IMPLICIT NULL
1807         }
1809 DeleteEventAction-Response ::= Unsigned32       -- candidates not deleted
1811 GetEventActionAttributes-Request ::= ObjectName -- Event Action Name
1814 GetEventActionAttributes-Response ::= SEQUENCE
1815         {
1816         mmsDeletable                    [0] IMPLICIT BOOLEAN DEFAULT FALSE,
1817         listOfModifier                  [1] IMPLICIT SEQUENCE OF Modifier
1818 -- XXX this one is neither in this ASN nor in the IMPORTS
1819 --      confirmed-Service-Request       [2] DefineEventAction-ConfirmedServiceRequest
1820         }
1822 ReportEventActionStatus-Request ::= ObjectName   -- EventActionName
1824 ReportEventActionStatus-Response ::=  Unsigned32 -- Number of Event Enrollments
1827 DefineEventEnrollment-Request ::= SEQUENCE
1828         {
1829         eventEnrollmentName             [0] ObjectName,
1830         eventConditionName              [1] ObjectName,
1831         eventConditionTransition        [2] IMPLICIT Transitions,
1832         alarmAcknowledgementRule        [3] IMPLICIT AlarmAckRule,
1833         eventActionName                 [4] ObjectName OPTIONAL,
1834         clientApplication               [5] ApplicationReference OPTIONAL
1835         }
1837 DefineEventEnrollment-Response ::= NULL
1839 DefineEventEnrollment-Error ::= ObjectName
1842 DeleteEventEnrollment-Request ::= CHOICE
1843         {
1844         specific        [0] IMPLICIT SEQUENCE OF ObjectName,
1845         ec              [1] ObjectName,
1846         ea              [2] ObjectName
1847         }
1849 DeleteEventEnrollment-Response ::= Unsigned32   -- candidates not deleted
1852 GetEventEnrollmentAttributes-Request ::= SEQUENCE
1853         {
1854         scopeOfRequest          [0] IMPLICIT INTEGER 
1855                 {
1856                 specific        (0),
1857                 client          (1),
1858                 ec              (2),
1859                 ea              (3)
1860                 } DEFAULT client,
1861         eventEnrollmentNames    [1] IMPLICIT SEQUENCE OF ObjectName OPTIONAL,
1862         clientApplication       [2] ApplicationReference OPTIONAL,
1863         eventConditionName      [3] ObjectName OPTIONAL,
1864         eventActionName         [4] ObjectName OPTIONAL,
1865         continueAfter           [5] ObjectName OPTIONAL
1866         }
1869 EventEnrollment ::= SEQUENCE
1870         {
1871         eventEnrollmentName             [0] ObjectName,
1872         eventConditionName              [1] CHOICE
1873                 {
1874                 eventCondition                  [0] ObjectName,
1875                 undefined                       [1] IMPLICIT NULL
1876                 },
1877         eventActionName                 [2] CHOICE
1878                 {
1879                 eventAction                     [0] ObjectName,
1880                 undefined                       [1] IMPLICIT NULL
1881                 } OPTIONAL,
1882         clientApplication               [3] ApplicationReference OPTIONAL,
1883         mmsDeletable                    [4] IMPLICIT BOOLEAN DEFAULT FALSE,
1884         enrollmentClass                 [5] IMPLICIT EE-Class,
1885         duration                        [6] IMPLICIT EE-Duration DEFAULT current,
1886         invokeID                        [7] IMPLICIT Unsigned32,
1887         remainingAcceptableDelay        [8] IMPLICIT Unsigned32 OPTIONAL
1888         }
1891 GetEventEnrollmentAttributes-Response ::= SEQUENCE
1892         {
1893         listOfEventEnrollment   [0] IMPLICIT SEQUENCE OF EventEnrollment,
1894         moreFollows             [1] IMPLICIT BOOLEAN DEFAULT FALSE
1895         }
1898 ReportEventEnrollmentStatus-Request ::= ObjectName      -- Event Enrollment Name
1900 ReportEventEnrollmentStatus-Response ::= SEQUENCE
1901         {
1902         eventConditionTransitions       [0] IMPLICIT Transitions,
1903         notificationLost                [1] IMPLICIT BOOLEAN DEFAULT FALSE,
1904         duration                        [2] IMPLICIT EE-Duration,
1905         alarmAcknowledgmentRule         [3] IMPLICIT AlarmAckRule OPTIONAL,
1906         currentState                    [4] IMPLICIT EE-State
1907         }
1909 AlterEventEnrollment-Request ::= SEQUENCE
1910         {
1911         eventEnrollmentName             [0] ObjectName,
1912         eventConditionTransitions       [1] IMPLICIT Transitions OPTIONAL,
1913         alarmAcknowledgmentRule         [2] IMPLICIT AlarmAckRule OPTIONAL
1914         }
1916 AlterEventEnrollment-Response ::= SEQUENCE
1917         {
1918         currentState            [0] CHOICE
1919                 {
1920                 state                   [0] IMPLICIT EE-State,
1921                 undefined               [1] IMPLICIT NULL
1922                 },
1923         transitionTime          [1] EventTime
1924         }
1927 AcknowledgeEventNotification-Request ::= SEQUENCE
1928         {
1929         eventEnrollmentName             [0] ObjectName,
1930         acknowledgedState               [2] IMPLICIT EC-State,
1931         timeOfAcknowledgedTransition    [3] EventTime
1932         }
1934 AcknowledgeEventNotification-Response ::= NULL
1937 GetAlarmSummary-Request ::= SEQUENCE
1938         {
1939         enrollmentsOnly                 [0] IMPLICIT BOOLEAN DEFAULT TRUE,
1940         activeAlarmsOnly                [1] IMPLICIT BOOLEAN DEFAULT TRUE,
1941         acknowledgmentFilter            [2] IMPLICIT INTEGER 
1942                 {
1943                 not-acked                       (0),
1944                 acked                           (1),
1945                 all                             (2) 
1946                 } DEFAULT not-acked,
1947         severityFilter                  [3] IMPLICIT SEQUENCE
1948                 {
1949                 mostSevere                      [0] IMPLICIT Unsigned8,
1950                 leastSevere                     [1] IMPLICIT Unsigned8 
1951                 } OPTIONAL,
1952         continueAfter                   [5] ObjectName OPTIONAL
1953         }
1955 GetAlarmSummary-Response ::= SEQUENCE
1956         {
1957         listOfAlarmSummary              [0] IMPLICIT SEQUENCE OF AlarmSummary,
1958         moreFollows                     [1] IMPLICIT BOOLEAN DEFAULT FALSE
1959         }
1962 AlarmSummary ::= SEQUENCE
1963         {
1964         eventConditionName                      [0] ObjectName,
1965         severity                                [1] IMPLICIT Unsigned8,
1966         currentState                            [2] IMPLICIT EC-State,
1967         unacknowledgedState                     [3] IMPLICIT INTEGER
1968                 {
1969                 none            (0),
1970                 active          (1),
1971                 idle            (2),
1972                 both            (3)
1973                 },
1974         timeOfLastTransitionToActive            [5] EventTime OPTIONAL,
1975         timeOfLastTransitionToIdle              [6] EventTime OPTIONAL
1976         }
1979 GetAlarmEnrollmentSummary-Request ::= SEQUENCE
1980         {
1981         enrollmentsOnly                 [0] IMPLICIT BOOLEAN DEFAULT TRUE,
1982         activeAlarmsOnly                [1] IMPLICIT BOOLEAN DEFAULT TRUE,
1983         acknowledgmentFilter            [2] IMPLICIT INTEGER 
1984                 {
1985                 not-acked                       (0),
1986                 acked                           (1),
1987                 all                             (2) 
1988                 } DEFAULT not-acked,
1989         severityFilter                  [3] IMPLICIT SEQUENCE
1990                 {
1991                 mostSevere                      [0] IMPLICIT Unsigned8,
1992                 leastSevere                     [1] IMPLICIT Unsigned8 
1993                 } OPTIONAL,
1994         continueAfter                   [5] ObjectName OPTIONAL
1995         }
1997 GetAlarmEnrollmentSummary-Response ::= SEQUENCE
1998         {
1999         listOfAlarmEnrollmentSummary    [0] IMPLICIT SEQUENCE OF AlarmEnrollmentSummary,
2000         moreFollows                     [1] IMPLICIT BOOLEAN DEFAULT FALSE
2001         }
2004 AlarmEnrollmentSummary ::= SEQUENCE
2005         {
2006         eventEnrollmentName             [0] ObjectName,
2007         clientApplication               [2] ApplicationReference OPTIONAL,
2008         severity                        [3] IMPLICIT Unsigned8,
2009         currentState                    [4] IMPLICIT EC-State,
2010         notificationLost                [6] IMPLICIT BOOLEAN DEFAULT FALSE,
2011         alarmAcknowledgmentRule         [7] IMPLICIT AlarmAckRule OPTIONAL,
2012         enrollementState                [8] IMPLICIT EE-State OPTIONAL,
2013         timeOfLastTransitionToActive    [9] EventTime OPTIONAL,
2014         timeActiveAcknowledged          [10] EventTime OPTIONAL,
2015         timeOfLastTransitionToIdle      [11] EventTime OPTIONAL,
2016         timeIdleAcknowledged            [12] EventTime OPTIONAL
2017         }
2020 EventNotification ::= SEQUENCE
2021         {
2022         eventEnrollmentName             [0] ObjectName,
2023         eventConditionName              [1] CHOICE
2024                 {
2025                 eventCondition                  [0] ObjectName,
2026                 undefined                       [1] IMPLICIT NULL
2027                 },
2028         severity                        [2] IMPLICIT Unsigned8,
2029         currentState                    [3] IMPLICIT EC-State OPTIONAL,
2030         transitionTime                  [4] EventTime,
2031         notificationLost                [6] IMPLICIT BOOLEAN DEFAULT FALSE,
2032         alarmAcknowledgmentRule         [7] IMPLICIT AlarmAckRule OPTIONAL,
2033         actionResult                    [8] IMPLICIT SEQUENCE
2034                 {
2035                 eventActioName                  ObjectName,
2036                 eventActionResult               CHOICE
2037                         {
2038                         success                 [0] ConfirmedServiceResponse,
2039                         failure                 [1] IMPLICIT ServiceError
2040                         }
2041                 } OPTIONAL
2042         }
2045 AttachToEventCondition ::= SEQUENCE
2046         {
2047         eventEnrollmentName             [0] ObjectName,
2048         eventConditionName              [1] ObjectName,
2049         causingTransitions              [2] IMPLICIT Transitions,
2050         acceptableDelay                 [3] IMPLICIT Unsigned32 OPTIONAL
2051         }
2054 EventTime ::= CHOICE
2055         {
2056         timeOfDayT                      [0] IMPLICIT TimeOfDay,
2057         timeSequenceIdentifier          [1] IMPLICIT Unsigned32
2058         }
2061 EC-Class ::= INTEGER
2062         {
2063         network-triggered       (0),
2064         monitored               (1)
2065         }
2067 EC-State ::= INTEGER
2068         {
2069         disabled                (0),
2070         idle                    (1),
2071         active                  (2)
2072         }
2074 EE-State ::= INTEGER
2075         {
2076         disabled                (0),
2077         idle                    (1),
2078         active                  (2),
2079         activeNoAckA            (3),
2080         idleNoAckI              (4),
2081         idleNoAckA              (5),
2082         idleAcked               (6),
2083         activeAcked             (7)
2084         }
2086 Transitions ::= BIT STRING
2087         {
2088         idle-to-disabled        (0),
2089         active-to-disabled      (1),
2090         disabled-to-idle        (2),
2091         active-to-idle          (3),
2092         disabled-to-active      (4),
2093         idle-to-active          (5),
2094         any-to-deleted          (6)
2095         }
2097 AlarmAckRule ::= INTEGER
2098         {
2099         none                    (0),
2100         simple                  (1),
2101         ack-active              (2),
2102         ack-all                 (3)
2103         }
2105 EE-Class ::= INTEGER
2106         {
2107         modifier                (0),
2108         notification            (1)
2109         }
2111 EE-Duration ::= INTEGER
2112         {
2113         current                 (0),
2114         permanent               (1)
2115         }
2118 -- ********************************** JOURNAL *******************************************
2121 -- READ JOURNAL
2123 ReadJournal-Request ::= SEQUENCE
2124         {
2125         journalName                     [0] ObjectName,
2126         rangeStartSpecification [1] CHOICE
2127                 {
2128                 startingTime                    [0] IMPLICIT TimeOfDay,
2129                 startingEntry                   [1] IMPLICIT OCTET STRING
2130                 } OPTIONAL,
2131         rangeStopSpecification  [2] CHOICE
2132                 {
2133                 endingTime                      [0] IMPLICIT TimeOfDay,
2134                 numberOfEntries         [1] IMPLICIT Integer32
2135                 } OPTIONAL,
2136         listOfVariables         [4] IMPLICIT SEQUENCE OF VisibleString OPTIONAL,
2137         entryToStartAfter       [5] IMPLICIT SEQUENCE
2138                 {
2139                 timeSpecification               [0] IMPLICIT TimeOfDay,
2140                 entrySpecification              [1] IMPLICIT OCTET STRING
2141                 }
2142         }
2144 ReadJournal-Response ::= SEQUENCE
2145         {
2146         listOfJournalEntry              [0] IMPLICIT SEQUENCE OF JournalEntry,
2147         moreFollows                     [1] IMPLICIT BOOLEAN DEFAULT FALSE
2148         }
2151 JournalEntry ::= SEQUENCE
2152         {
2153         entryIdentifier         [0] IMPLICIT OCTET STRING,
2154         originatingApplication          [1] ApplicationReference,
2155         entryContent                    [2] IMPLICIT EntryContent
2156         }
2158 -- WRITE JOURNAL
2160 WriteJournal-Request ::= SEQUENCE
2161         {
2162         journalName                     [0] ObjectName,
2163         listOfJournalEntry              [1] IMPLICIT SEQUENCE OF EntryContent
2164         }
2166 WriteJournal-Response ::= NULL
2168 -- INITIALIZE JOURNAL
2170 InitializeJournal-Request ::= SEQUENCE
2171         {
2172         journalName                     [0] ObjectName,
2173         limitSpecification              [1] IMPLICIT SEQUENCE
2174                 {
2175                 limitingTime                    [0] IMPLICIT TimeOfDay,
2176                 limitingEntry                   [1] IMPLICIT OCTET STRING OPTIONAL
2177                 } OPTIONAL
2178         }
2180 InitializeJournal-Response ::= Unsigned32       -- entries deleted
2182 -- REPORT JOURNAL STATUS
2184 ReportJournalStatus-Request ::= ObjectName      -- Journal Name
2186 ReportJournalStatus-Response ::= SEQUENCE
2187         {
2188         currentEntries          [0] IMPLICIT Unsigned32,
2189         mmsDeletable            [1] IMPLICIT  BOOLEAN
2190         }       
2192 -- CREATE JOURNAL
2194 CreateJournal-Request ::= SEQUENCE
2195         {
2196         journalName     [0] ObjectName
2197         }
2199 CreateJournal-Response ::= NULL
2201 -- DELETE JOURNAL
2203 DeleteJournal-Request ::= SEQUENCE
2204         {
2205         journalName     [0] ObjectName
2206         }
2208 DeleteJournal-Response ::= NULL
2211 -- SUPPORTING PRODUCTIONS
2213 EntryContent ::= SEQUENCE
2214         {
2215         occurenceTime           [0] IMPLICIT TimeOfDay,
2216         additionalDetail        [1] JOU-Additional-Detail OPTIONAL,
2217                 -- additionalDetail shall be omitted
2218                 -- from abstract syntax defined in this standard
2219         entryForm                CHOICE
2220                 {
2221                 data                    [2] IMPLICIT SEQUENCE
2222                         {
2223                         event                   [0] IMPLICIT SEQUENCE
2224                                 {
2225                                 eventConditionName      [0] ObjectName,
2226                                 currentState            [1] IMPLICIT EC-State
2227                                 } OPTIONAL,
2228                         listOfVariables [1] IMPLICIT SEQUENCE OF SEQUENCE
2229                                 {
2230                                 variableTag             [0] IMPLICIT VisibleString,
2231                                 valueSpecification      [1] Data
2232                                 } OPTIONAL
2233                         },
2234                 annotation              [3] IMPLICIT VisibleString
2235                 }
2236         }
2239 JOU-Additional-Detail ::= NULL  -- Defined by Companion Standard
2243 -- **************************************** FILES *********************************************
2245 ObtainFile-Request ::= SEQUENCE {
2246         sourceFileServer        [0] IMPLICIT ApplicationReference OPTIONAL,
2247         sourceFile              [1] IMPLICIT FileName,
2248         destinationFile         [2] IMPLICIT FileName
2249         }
2251 ObtainFile-Response ::= NULL
2253 ObtainFile-Error ::= INTEGER {
2254         source-file      (0),
2255         destination-file (1)
2256         }
2259 FileOpen-Request ::= SEQUENCE {
2260         fileName        [0] IMPLICIT FileName,
2261         initialPosition [1] IMPLICIT Unsigned32
2262         }
2264 FileOpen-Response ::= SEQUENCE {
2265         frsmID          [0] IMPLICIT Integer32,
2266         fileAttributes  [1] IMPLICIT FileAttributes
2267         }
2269 FileRead-Request ::= Integer32
2271 FileRead-Response ::= SEQUENCE {
2272         fileData        [0] IMPLICIT OCTET STRING,
2273         moreFollows     [1] IMPLICIT BOOLEAN DEFAULT TRUE
2274         }
2276 FileClose-Request ::= Integer32
2278 FileClose-Response ::= NULL
2281 FileRename-Request ::= SEQUENCE {
2282         currentFileName [0] IMPLICIT FileName,
2283         newFileName     [1] IMPLICIT FileName
2284         }
2286 FileRename-Response ::= NULL
2288 FileRename-Error ::= INTEGER {
2289         source-file      (0),
2290         destination-file (1)
2291         }
2293 FileDelete-Request ::= FileName
2295 FileDelete-Response ::= NULL
2298 FileDirectory-Request ::= SEQUENCE {
2299         fileSpecification       [0] IMPLICIT FileName OPTIONAL,
2300         continueAfter           [1] IMPLICIT FileName OPTIONAL
2301         }
2303 FileDirectory-Response ::= SEQUENCE {
2304         listOfDirectoryEntry    [0] SEQUENCE OF DirectoryEntry,
2305         moreFollows             [1] IMPLICIT BOOLEAN DEFAULT FALSE
2306         }
2308 DirectoryEntry ::= SEQUENCE {
2309         filename                [0] IMPLICIT FileName,
2310         fileAttributes          [1] IMPLICIT FileAttributes
2311         }
2314 FileAttributes ::= SEQUENCE {
2315         sizeOfFile      [0] IMPLICIT Unsigned32,
2316         lastModified    [1] IMPLICIT GeneralizedTime OPTIONAL
2317         }