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