From Shaun J
[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         EXTERNAL,
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                EXTERNAL
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                EXTERNAL
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         EXTERNAL
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         EXTERNAL
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         EXTERNAL
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         }
1365
1366
1367 DataAccessError ::= INTEGER
1368         {
1369         object-invalidated              (0),
1370         hardware-fault                  (1),
1371         temporarily-unavailable         (2),
1372         object-access-denied            (3),
1373         object-undefined                (4),
1374         invalid-address                 (5),
1375         type-unsupported                (6),
1376         type-inconsistent               (7),
1377         object-attribute-inconsistent   (8),
1378         object-access-unsupported       (9),
1379         object-non-existent             (10)
1380         }
1381
1382
1383
1384 Data ::= CHOICE
1385         {
1386         -- context tag 0 is reserved for AccessResult
1387         array                   [1] IMPLICIT SEQUENCE OF Data,
1388         structure               [2] IMPLICIT SEQUENCE OF Data,
1389         boolean                 [3] IMPLICIT BOOLEAN,   
1390         bit-string              [4] IMPLICIT BIT STRING,
1391         integer                 [5] IMPLICIT INTEGER,
1392         unsigned                [6] IMPLICIT INTEGER,
1393         floating-point          [7] IMPLICIT FloatingPoint,
1394 -- XXX asn2wrs and packet-ber can not handle REAL yet
1395 --      real                    [8] IMPLICIT REAL,
1396         octet-string            [9] IMPLICIT OCTET STRING,
1397         visible-string          [10] IMPLICIT VisibleString,
1398         binary-time             [12] IMPLICIT TimeOfDay,
1399         bcd                     [13] IMPLICIT INTEGER,
1400         booleanArray            [14] IMPLICIT BIT STRING
1401         }
1402
1403 FloatingPoint ::= OCTET STRING
1404
1405
1406 VariableAccessSpecification ::= CHOICE
1407         {
1408         listOfVariable          [0] IMPLICIT SEQUENCE OF SEQUENCE
1409                 {
1410                 variableSpecification   VariableSpecification,
1411                 alternateAccess         [5] IMPLICIT AlternateAccess OPTIONAL
1412                 },
1413         variableListName        [1] ObjectName
1414         }
1415
1416
1417 ScatteredAccessDescription ::= SEQUENCE OF SEQUENCE 
1418         {
1419         componentName           [0] IMPLICIT Identifier OPTIONAL,
1420         variableSpecification   [1] VariableSpecification,
1421         alternateAccess         [2] IMPLICIT AlternateAccess OPTIONAL
1422         }
1423
1424
1425 VariableSpecification ::= CHOICE
1426         {
1427         name                            [0] ObjectName,
1428         address                         [1] Address,
1429         variableDescription             [2] IMPLICIT SEQUENCE
1430                 {
1431                 address                 Address,
1432                 typeSpecification       TypeSpecification
1433                 },
1434         scatteredAccessDescription      [3] IMPLICIT ScatteredAccessDescription,
1435         invalidated                     [4] IMPLICIT NULL
1436         }
1437
1438 Address ::= CHOICE
1439         {
1440         numericAddress          [0] IMPLICIT Unsigned32,
1441         symbolicAddress         [1] IMPLICIT VisibleString,
1442         unconstrainedAddress    [2] IMPLICIT OCTET STRING
1443         }
1444
1445
1446 -- ********************************* SEMAPHORES *****************************************
1447
1448 TakeControl-Request ::= SEQUENCE
1449         {
1450         semaphoreName                   [0] ObjectName,
1451         namedToken                      [1] IMPLICIT Identifier OPTIONAL,
1452         priority                        [2] IMPLICIT Priority DEFAULT 64,
1453         acceptableDelay                 [3] IMPLICIT Unsigned32 OPTIONAL,
1454         controlTimeOut                  [4] IMPLICIT Unsigned32 OPTIONAL,
1455         abortOnTimeOut                  [5] IMPLICIT BOOLEAN OPTIONAL,
1456         relinquishIfConnectionLost      [6] IMPLICIT BOOLEAN DEFAULT TRUE,
1457         applicationToPreempt            [7] IMPLICIT ApplicationReference OPTIONAL
1458         }
1459
1460 TakeControl-Response ::= CHOICE
1461         {       
1462         noResult                [0] IMPLICIT NULL,
1463         namedToken              [1] IMPLICIT Identifier
1464         }
1465
1466 -- RELINQUISH CONTROL
1467
1468 RelinquishControl-Request ::= SEQUENCE
1469         {
1470         semaphoreName           [0] ObjectName,
1471         namedToken              [1] IMPLICIT Identifier OPTIONAL
1472         }
1473
1474 RelinquishControl-Response ::= NULL
1475
1476 -- DEFINE SEMAPHORE
1477
1478 DefineSemaphore-Request ::= SEQUENCE
1479         {
1480         semaphoreName           [0] ObjectName,
1481         numbersOfTokens         [1] IMPLICIT Unsigned16
1482         }
1483
1484 DefineSemaphore-Response ::= NULL
1485
1486 -- DELETE SEMAPHORE
1487
1488 DeleteSemaphore-Request ::= ObjectName          -- Semaphore Name
1489
1490 DeleteSemaphore-Response ::= NULL
1491
1492 -- REPORT SEMAPHORE STATUS
1493
1494 ReportSemaphoreStatus-Request ::= ObjectName    -- SemaphoreName
1495
1496 ReportSemaphoreStatus-Response ::= SEQUENCE
1497         {
1498         mmsDeletable            [0] IMPLICIT BOOLEAN,
1499         class                   [1] IMPLICIT INTEGER
1500                 {
1501                 token   (0),
1502                 pool    (1)
1503                 },
1504         numberOfTokens          [2] IMPLICIT Unsigned16,
1505         numberOfOwnedTokens     [3] IMPLICIT Unsigned16,
1506         numberOfHungTokens      [4] IMPLICIT Unsigned16
1507         }
1508
1509 -- REPORT POOL SEMAPHORE STATUS
1510
1511 ReportPoolSemaphoreStatus-Request ::= SEQUENCE
1512         {
1513         semaphoreName           [0] ObjectName,
1514         nameToStartAfter        [1] IMPLICIT Identifier OPTIONAL
1515         }
1516
1517 ReportPoolSemaphoreStatus-Response ::= SEQUENCE
1518         {
1519         listOfNamedTokens       [0] IMPLICIT SEQUENCE OF CHOICE
1520                 {
1521                 freeNamedToken          [0] IMPLICIT Identifier,
1522                 ownedNamedToken         [1] IMPLICIT Identifier,
1523                 hungNamedToken          [2] IMPLICIT Identifier
1524                 },
1525         moreFollows             [1] IMPLICIT BOOLEAN DEFAULT TRUE
1526         }
1527
1528 -- REPORT SEMAPHORE ENTRY STATUS
1529
1530 ReportSemaphoreEntryStatus-Request ::=SEQUENCE
1531         {
1532         semaphoreName           [0] ObjectName,
1533         state                   [1] IMPLICIT INTEGER
1534                 {
1535                 queued  (0),
1536                 owner   (1),
1537                 hung    (2)
1538                 } ,
1539         entryIdToStartAfter     [2] IMPLICIT OCTET STRING OPTIONAL
1540         }
1541
1542 ReportSemaphoreEntryStatus-Response ::= SEQUENCE
1543         {
1544         listOfSemaphoreEntry    [0] IMPLICIT SEQUENCE OF SemaphoreEntry,
1545         moreFollows             [1] IMPLICIT BOOLEAN DEFAULT TRUE
1546         }
1547
1548
1549 AttachToSemaphore ::= SEQUENCE
1550         {
1551         semaphoreName                   [0] ObjectName,
1552         namedToken                      [1] IMPLICIT Identifier OPTIONAL,
1553         priority                        [2] IMPLICIT Priority DEFAULT 64,
1554         acceptableDelay                 [3] IMPLICIT Unsigned32 OPTIONAL,
1555         controlTimeOut                  [4] IMPLICIT Unsigned32 OPTIONAL,
1556         abortOnTimeOut                  [5] IMPLICIT BOOLEAN OPTIONAL,
1557         relinquishIfConnectionLost      [6] IMPLICIT BOOLEAN DEFAULT TRUE
1558         }
1559
1560
1561 SemaphoreEntry ::= SEQUENCE
1562         {       
1563         entryId                         [0] IMPLICIT OCTET STRING,
1564         entryClass                      [1] IMPLICIT INTEGER
1565                 {
1566                 simple          (0),
1567                 modifier        (1)
1568                 },
1569         applicationReference            [2] ApplicationReference,
1570         namedToken                      [3] IMPLICIT Identifier OPTIONAL,
1571         priority                        [4] IMPLICIT Priority DEFAULT 64,
1572         remainingTimeOut                [5] IMPLICIT Unsigned32 OPTIONAL,
1573         abortOnTimeOut                  [6] IMPLICIT BOOLEAN OPTIONAL,
1574         relinquishIfConnectionLost      [7] IMPLICIT BOOLEAN DEFAULT TRUE
1575         }
1576
1577 --******************************** OPERATOR COMMUNICATION *****************************
1578
1579
1580 -- INPUT
1581
1582 Input-Request ::= SEQUENCE
1583         {
1584         operatorStationName     [0] IMPLICIT Identifier,
1585         echo                    [1] IMPLICIT BOOLEAN DEFAULT TRUE,
1586         listOfPromptData        [2] IMPLICIT SEQUENCE OF VisibleString OPTIONAL,
1587         inputTimeOut            [3] IMPLICIT Unsigned32 OPTIONAL
1588         }
1589
1590
1591 Input-Response ::= VisibleString        -- Input String
1592
1593 -- OUTPUT
1594
1595 Output-Request ::= SEQUENCE
1596         {
1597         operatorStationName     [0] IMPLICIT Identifier,
1598         listOfOutputData        [1] IMPLICIT SEQUENCE OF VisibleString
1599         }
1600
1601
1602 Output-Response ::= NULL
1603
1604
1605 -- ************************************ EVENTS *********************************************
1606
1607 DefineEventCondition-Request ::= SEQUENCE
1608         {
1609         eventConditionName              [0] ObjectName,
1610         class                           [1] IMPLICIT EC-Class,
1611         prio-rity                       [2] IMPLICIT Priority DEFAULT 64,
1612         severity                        [3] IMPLICIT Unsigned8 DEFAULT 64,
1613         alarmSummaryReports             [4] IMPLICIT BOOLEAN OPTIONAL,
1614         monitoredVariable               [6] VariableSpecification OPTIONAL,
1615         evaluationInterval              [7] IMPLICIT Unsigned32 OPTIONAL
1616         }
1617
1618 DefineEventCondition-Response ::= NULL
1619
1620
1621 DeleteEventCondition-Request ::= CHOICE
1622         {
1623         specific                [0] IMPLICIT SEQUENCE OF ObjectName,
1624         aa-specific             [1] IMPLICIT NULL,
1625         domain                  [2] IMPLICIT Identifier,
1626         vmd                     [3] IMPLICIT NULL
1627         }
1628
1629 DeleteEventCondition-Response ::= Unsigned32    -- Candidates Not Deleted
1630
1631
1632 GetEventConditionAttributes-Request ::= ObjectName      -- Event Condition Name
1633
1634 GetEventConditionAttributes-Response ::= SEQUENCE
1635         {
1636         mmsDeletable                    [0] IMPLICIT BOOLEAN DEFAULT FALSE,
1637         class                           [1] IMPLICIT EC-Class,
1638         prio-rity                       [2] IMPLICIT Priority DEFAULT 64,
1639         severity                        [3] IMPLICIT Unsigned8 DEFAULT 64,
1640         alarmSummaryReports             [4] IMPLICIT BOOLEAN DEFAULT FALSE,
1641         monitoredVariable               [6] CHOICE
1642                 {
1643                 variableReference               [0] VariableSpecification,
1644                 undefined                       [1] IMPLICIT NULL
1645                 } OPTIONAL,
1646         evaluationInterval              [7] IMPLICIT Unsigned32 OPTIONAL
1647         }
1648
1649
1650 ReportEventConditionStatus-Request ::= ObjectName       -- EventConditionName
1651
1652 ReportEventConditionStatus-Response ::= SEQUENCE
1653         {
1654         currentState                    [0] IMPLICIT EC-State,
1655         numberOfEventEnrollments        [1] IMPLICIT Unsigned32,
1656         enabled                         [2] IMPLICIT BOOLEAN OPTIONAL,
1657         timeOfLastTransitionToActive    [3] EventTime OPTIONAL,
1658         timeOfLastTransitionToIdle      [4] EventTime OPTIONAL
1659         }
1660
1661
1662 AlterEventConditionMonitoring-Request ::= SEQUENCE
1663         {
1664         eventConditionName              [0] ObjectName,
1665         enabled                         [1] IMPLICIT BOOLEAN OPTIONAL,
1666         priority                        [2] IMPLICIT Priority OPTIONAL,
1667         alarmSummaryReports             [3] IMPLICIT BOOLEAN OPTIONAL,
1668         evaluationInterval              [4] IMPLICIT Unsigned32 OPTIONAL
1669         }
1670
1671 AlterEventConditionMonitoring-Response ::= NULL
1672
1673
1674 TriggerEvent-Request ::= SEQUENCE
1675         {
1676         eventConditionName              [0] ObjectName,
1677         priority                        [1] IMPLICIT Priority OPTIONAL
1678         }
1679
1680 TriggerEvent-Response ::= NULL
1681
1682
1683 DefineEventAction-Request ::= SEQUENCE
1684         {
1685         eventActionName                 [0] ObjectName,
1686         listOfModifier                  [1] IMPLICIT SEQUENCE OF Modifier OPTIONAL
1687 -- XXX this one is neither in this ASN nor in the IMPORTS
1688 --      confirmed-Service-Request       [2] DefineEventAction-ConfirmedServiceRequest
1689
1690         }
1691
1692
1693 DefineEventAction-Response ::= NULL
1694
1695 DeleteEventAction-Request ::= CHOICE
1696         {
1697         specific                [0] IMPLICIT SEQUENCE OF ObjectName,
1698         aa-specific             [1] IMPLICIT NULL,
1699         domain                  [3] IMPLICIT Identifier,
1700         vmd                     [4] IMPLICIT NULL
1701         }
1702
1703 DeleteEventAction-Response ::= Unsigned32       -- candidates not deleted
1704
1705 GetEventActionAttributes-Request ::= ObjectName -- Event Action Name
1706
1707
1708 GetEventActionAttributes-Response ::= SEQUENCE
1709         {
1710         mmsDeletable                    [0] IMPLICIT BOOLEAN DEFAULT FALSE,
1711         listOfModifier                  [1] IMPLICIT SEQUENCE OF Modifier
1712 -- XXX this one is neither in this ASN nor in the IMPORTS
1713 --      confirmed-Service-Request       [2] DefineEventAction-ConfirmedServiceRequest
1714         }
1715
1716 ReportEventActionStatus-Request ::= ObjectName   -- EventActionName
1717
1718 ReportEventActionStatus-Response ::=  Unsigned32 -- Number of Event Enrollments
1719
1720
1721 DefineEventEnrollment-Request ::= SEQUENCE
1722         {
1723         eventEnrollmentName             [0] ObjectName,
1724         eventConditionName              [1] ObjectName,
1725         eventConditionTransition        [2] IMPLICIT Transitions,
1726         alarmAcknowledgementRule        [3] IMPLICIT AlarmAckRule,
1727         eventActionName                 [4] ObjectName OPTIONAL,
1728         clientApplication               [5] ApplicationReference OPTIONAL
1729         }
1730
1731 DefineEventEnrollment-Response ::= NULL
1732
1733 DefineEventEnrollment-Error ::= ObjectName
1734
1735
1736 DeleteEventEnrollment-Request ::= CHOICE
1737         {
1738         specific        [0] IMPLICIT SEQUENCE OF ObjectName,
1739         ec              [1] ObjectName,
1740         ea              [2] ObjectName
1741         }
1742
1743 DeleteEventEnrollment-Response ::= Unsigned32   -- candidates not deleted
1744
1745
1746 GetEventEnrollmentAttributes-Request ::= SEQUENCE
1747         {
1748         scopeOfRequest          [0] IMPLICIT INTEGER 
1749                 {
1750                 specific        (0),
1751                 client          (1),
1752                 ec              (2),
1753                 ea              (3)
1754                 } DEFAULT client,
1755         eventEnrollmentNames    [1] IMPLICIT SEQUENCE OF ObjectName OPTIONAL,
1756         clientApplication       [2] ApplicationReference OPTIONAL,
1757         eventConditionName      [3] ObjectName OPTIONAL,
1758         eventActionName         [4] ObjectName OPTIONAL,
1759         continueAfter           [5] ObjectName OPTIONAL
1760         }
1761
1762
1763 EventEnrollment ::= SEQUENCE
1764         {
1765         eventEnrollmentName             [0] ObjectName,
1766         eventConditionName              [1] CHOICE
1767                 {
1768                 eventCondition                  [0] ObjectName,
1769                 undefined                       [1] IMPLICIT NULL
1770                 },
1771         eventActionName                 [2] CHOICE
1772                 {
1773                 eventAction                     [0] ObjectName,
1774                 undefined                       [1] IMPLICIT NULL
1775                 } OPTIONAL,
1776         clientApplication               [3] ApplicationReference OPTIONAL,
1777         mmsDeletable                    [4] IMPLICIT BOOLEAN DEFAULT FALSE,
1778         enrollmentClass                 [5] IMPLICIT EE-Class,
1779         duration                        [6] IMPLICIT EE-Duration DEFAULT current,
1780         invokeID                        [7] IMPLICIT Unsigned32,
1781         remainingAcceptableDelay        [8] IMPLICIT Unsigned32 OPTIONAL
1782         }
1783
1784
1785 GetEventEnrollmentAttributes-Response ::= SEQUENCE
1786         {
1787         listOfEventEnrollment   [0] IMPLICIT SEQUENCE OF EventEnrollment,
1788         moreFollows             [1] IMPLICIT BOOLEAN DEFAULT FALSE
1789         }
1790
1791
1792 ReportEventEnrollmentStatus-Request ::= ObjectName      -- Event Enrollment Name
1793
1794 ReportEventEnrollmentStatus-Response ::= SEQUENCE
1795         {
1796         eventConditionTransitions       [0] IMPLICIT Transitions,
1797         notificationLost                [1] IMPLICIT BOOLEAN DEFAULT FALSE,
1798         duration                        [2] IMPLICIT EE-Duration,
1799         alarmAcknowledgmentRule         [3] IMPLICIT AlarmAckRule OPTIONAL,
1800         currentState                    [4] IMPLICIT EE-State
1801         }
1802
1803 AlterEventEnrollment-Request ::= SEQUENCE
1804         {
1805         eventEnrollmentName             [0] ObjectName,
1806         eventConditionTransitions       [1] IMPLICIT Transitions OPTIONAL,
1807         alarmAcknowledgmentRule         [2] IMPLICIT AlarmAckRule OPTIONAL
1808         }
1809
1810 AlterEventEnrollment-Response ::= SEQUENCE
1811         {
1812         currentState            [0] CHOICE
1813                 {
1814                 state                   [0] IMPLICIT EE-State,
1815                 undefined               [1] IMPLICIT NULL
1816                 },
1817         transitionTime          [1] EventTime
1818         }
1819
1820
1821 AcknowledgeEventNotification-Request ::= SEQUENCE
1822         {
1823         eventEnrollmentName             [0] ObjectName,
1824         acknowledgedState               [2] IMPLICIT EC-State,
1825         timeOfAcknowledgedTransition    [3] EventTime
1826         }
1827
1828 AcknowledgeEventNotification-Response ::= NULL
1829
1830
1831 GetAlarmSummary-Request ::= SEQUENCE
1832         {
1833         enrollmentsOnly                 [0] IMPLICIT BOOLEAN DEFAULT TRUE,
1834         activeAlarmsOnly                [1] IMPLICIT BOOLEAN DEFAULT TRUE,
1835         acknowledgmentFilter            [2] IMPLICIT INTEGER 
1836                 {
1837                 not-acked                       (0),
1838                 acked                           (1),
1839                 all                             (2) 
1840                 } DEFAULT not-acked,
1841         severityFilter                  [3] IMPLICIT SEQUENCE
1842                 {
1843                 mostSevere                      [0] IMPLICIT Unsigned8,
1844                 leastSevere                     [1] IMPLICIT Unsigned8 
1845                 } OPTIONAL,
1846         continueAfter                   [5] ObjectName OPTIONAL
1847         }
1848
1849 GetAlarmSummary-Response ::= SEQUENCE
1850         {
1851         listOfAlarmSummary              [0] IMPLICIT SEQUENCE OF AlarmSummary,
1852         moreFollows                     [1] IMPLICIT BOOLEAN DEFAULT FALSE
1853         }
1854
1855
1856 AlarmSummary ::= SEQUENCE
1857         {
1858         eventConditionName                      [0] ObjectName,
1859         severity                                [1] IMPLICIT Unsigned8,
1860         currentState                            [2] IMPLICIT EC-State,
1861         unacknowledgedState                     [3] IMPLICIT INTEGER
1862                 {
1863                 none            (0),
1864                 active          (1),
1865                 idle            (2),
1866                 both            (3)
1867                 },
1868         timeOfLastTransitionToActive            [5] EventTime OPTIONAL,
1869         timeOfLastTransitionToIdle              [6] EventTime OPTIONAL
1870         }
1871
1872
1873 GetAlarmEnrollmentSummary-Request ::= SEQUENCE
1874         {
1875         enrollmentsOnly                 [0] IMPLICIT BOOLEAN DEFAULT TRUE,
1876         activeAlarmsOnly                [1] IMPLICIT BOOLEAN DEFAULT TRUE,
1877         acknowledgmentFilter            [2] IMPLICIT INTEGER 
1878                 {
1879                 not-acked                       (0),
1880                 acked                           (1),
1881                 all                             (2) 
1882                 } DEFAULT not-acked,
1883         severityFilter                  [3] IMPLICIT SEQUENCE
1884                 {
1885                 mostSevere                      [0] IMPLICIT Unsigned8,
1886                 leastSevere                     [1] IMPLICIT Unsigned8 
1887                 } OPTIONAL,
1888         continueAfter                   [5] ObjectName OPTIONAL
1889         }
1890
1891 GetAlarmEnrollmentSummary-Response ::= SEQUENCE
1892         {
1893         listOfAlarmEnrollmentSummary    [0] IMPLICIT SEQUENCE OF AlarmEnrollmentSummary,
1894         moreFollows                     [1] IMPLICIT BOOLEAN DEFAULT FALSE
1895         }
1896
1897
1898 AlarmEnrollmentSummary ::= SEQUENCE
1899         {
1900         eventEnrollmentName             [0] ObjectName,
1901         clientApplication               [2] ApplicationReference OPTIONAL,
1902         severity                        [3] IMPLICIT Unsigned8,
1903         currentState                    [4] IMPLICIT EC-State,
1904         notificationLost                [6] IMPLICIT BOOLEAN DEFAULT FALSE,
1905         alarmAcknowledgmentRule         [7] IMPLICIT AlarmAckRule OPTIONAL,
1906         enrollementState                [8] IMPLICIT EE-State OPTIONAL,
1907         timeOfLastTransitionToActive    [9] EventTime OPTIONAL,
1908         timeActiveAcknowledged          [10] EventTime OPTIONAL,
1909         timeOfLastTransitionToIdle      [11] EventTime OPTIONAL,
1910         timeIdleAcknowledged            [12] EventTime OPTIONAL
1911         }
1912
1913
1914 EventNotification ::= SEQUENCE
1915         {
1916         eventEnrollmentName             [0] ObjectName,
1917         eventConditionName              [1] CHOICE
1918                 {
1919                 eventCondition                  [0] ObjectName,
1920                 undefined                       [1] IMPLICIT NULL
1921                 },
1922         severity                        [2] IMPLICIT Unsigned8,
1923         currentState                    [3] IMPLICIT EC-State OPTIONAL,
1924         transitionTime                  [4] EventTime,
1925         notificationLost                [6] IMPLICIT BOOLEAN DEFAULT FALSE,
1926         alarmAcknowledgmentRule         [7] IMPLICIT AlarmAckRule OPTIONAL,
1927         actionResult                    [8] IMPLICIT SEQUENCE
1928                 {
1929                 eventActioName                  ObjectName,
1930                 eventActionResult               CHOICE
1931                         {
1932                         success                 [0] ConfirmedServiceResponse,
1933                         failure                 [1] IMPLICIT ServiceError
1934                         }
1935                 } OPTIONAL
1936         }
1937
1938
1939 AttachToEventCondition ::= SEQUENCE
1940         {
1941         eventEnrollmentName             [0] ObjectName,
1942         eventConditionName              [1] ObjectName,
1943         causingTransitions              [2] IMPLICIT Transitions,
1944         acceptableDelay                 [3] IMPLICIT Unsigned32 OPTIONAL
1945         }
1946
1947
1948 EventTime ::= CHOICE
1949         {
1950         timeOfDayT                      [0] IMPLICIT TimeOfDay,
1951         timeSequenceIdentifier          [1] IMPLICIT Unsigned32
1952         }
1953
1954
1955 EC-Class ::= INTEGER
1956         {
1957         network-triggered       (0),
1958         monitored               (1)
1959         }
1960
1961 EC-State ::= INTEGER
1962         {
1963         disabled                (0),
1964         idle                    (1),
1965         active                  (2)
1966         }
1967
1968 EE-State ::= INTEGER
1969         {
1970         disabled                (0),
1971         idle                    (1),
1972         active                  (2),
1973         activeNoAckA            (3),
1974         idleNoAckI              (4),
1975         idleNoAckA              (5),
1976         idleAcked               (6),
1977         activeAcked             (7)
1978         }
1979
1980 Transitions ::= BIT STRING
1981         {
1982         idle-to-disabled        (0),
1983         active-to-disabled      (1),
1984         disabled-to-idle        (2),
1985         active-to-idle          (3),
1986         disabled-to-active      (4),
1987         idle-to-active          (5),
1988         any-to-deleted          (6)
1989         }
1990
1991 AlarmAckRule ::= INTEGER
1992         {
1993         none                    (0),
1994         simple                  (1),
1995         ack-active              (2),
1996         ack-all                 (3)
1997         }
1998
1999 EE-Class ::= INTEGER
2000         {
2001         modifier                (0),
2002         notification            (1)
2003         }
2004
2005 EE-Duration ::= INTEGER
2006         {
2007         current                 (0),
2008         permanent               (1)
2009         }
2010
2011
2012 -- ********************************** JOURNAL *******************************************
2013
2014
2015 -- READ JOURNAL
2016
2017 ReadJournal-Request ::= SEQUENCE
2018         {
2019         journalName                     [0] ObjectName,
2020         rangeStartSpecification [1] CHOICE
2021                 {
2022                 startingTime                    [0] IMPLICIT TimeOfDay,
2023                 startingEntry                   [1] IMPLICIT OCTET STRING
2024                 } OPTIONAL,
2025         rangeStopSpecification  [2] CHOICE
2026                 {
2027                 endingTime                      [0] IMPLICIT TimeOfDay,
2028                 numberOfEntries         [1] IMPLICIT Integer32
2029                 } OPTIONAL,
2030         listOfVariables         [4] IMPLICIT SEQUENCE OF VisibleString OPTIONAL,
2031         entryToStartAfter       [5] IMPLICIT SEQUENCE
2032                 {
2033                 timeSpecification               [0] IMPLICIT TimeOfDay,
2034                 entrySpecification              [1] IMPLICIT OCTET STRING
2035                 }
2036         }
2037
2038 ReadJournal-Response ::= SEQUENCE
2039         {
2040         listOfJournalEntry              [0] IMPLICIT SEQUENCE OF JournalEntry,
2041         moreFollows                     [1] IMPLICIT BOOLEAN DEFAULT FALSE
2042         }
2043
2044
2045 JournalEntry ::= SEQUENCE
2046         {
2047         entryIdentifier         [0] IMPLICIT OCTET STRING,
2048         originatingApplication          [1] ApplicationReference,
2049         entryContent                    [2] IMPLICIT EntryContent
2050         }
2051
2052 -- WRITE JOURNAL
2053
2054 WriteJournal-Request ::= SEQUENCE
2055         {
2056         journalName                     [0] ObjectName,
2057         listOfJournalEntry              [1] IMPLICIT SEQUENCE OF EntryContent
2058         }
2059
2060 WriteJournal-Response ::= NULL
2061
2062 -- INITIALIZE JOURNAL
2063
2064 InitializeJournal-Request ::= SEQUENCE
2065         {
2066         journalName                     [0] ObjectName,
2067         limitSpecification              [1] IMPLICIT SEQUENCE
2068                 {
2069                 limitingTime                    [0] IMPLICIT TimeOfDay,
2070                 limitingEntry                   [1] IMPLICIT OCTET STRING OPTIONAL
2071                 } OPTIONAL
2072         }
2073
2074 InitializeJournal-Response ::= Unsigned32       -- entries deleted
2075
2076 -- REPORT JOURNAL STATUS
2077
2078 ReportJournalStatus-Request ::= ObjectName      -- Journal Name
2079
2080 ReportJournalStatus-Response ::= SEQUENCE
2081         {
2082         currentEntries          [0] IMPLICIT Unsigned32,
2083         mmsDeletable            [1] IMPLICIT  BOOLEAN
2084         }       
2085
2086 -- CREATE JOURNAL
2087
2088 CreateJournal-Request ::= SEQUENCE
2089         {
2090         journalName     [0] ObjectName
2091         }
2092
2093 CreateJournal-Response ::= NULL
2094
2095 -- DELETE JOURNAL
2096
2097 DeleteJournal-Request ::= SEQUENCE
2098         {
2099         journalName     [0] ObjectName
2100         }
2101
2102 DeleteJournal-Response ::= NULL
2103
2104
2105 -- SUPPORTING PRODUCTIONS
2106
2107 EntryContent ::= SEQUENCE
2108         {
2109         occurenceTime           [0] IMPLICIT TimeOfDay,
2110         additionalDetail        [1] JOU-Additional-Detail OPTIONAL,
2111                 -- additionalDetail shall be omitted
2112                 -- from abstract syntax defined in this standard
2113         entryForm                CHOICE
2114                 {
2115                 data                    [2] IMPLICIT SEQUENCE
2116                         {
2117                         event                   [0] IMPLICIT SEQUENCE
2118                                 {
2119                                 eventConditionName      [0] ObjectName,
2120                                 currentState            [1] IMPLICIT EC-State
2121                                 } OPTIONAL,
2122                         listOfVariables [1] IMPLICIT SEQUENCE OF SEQUENCE
2123                                 {
2124                                 variableTag             [0] IMPLICIT VisibleString,
2125                                 valueSpecification      [1] Data
2126                                 } OPTIONAL
2127                         },
2128                 annotation              [3] IMPLICIT VisibleString
2129                 }
2130         }
2131
2132
2133 JOU-Additional-Detail ::= NULL  -- Defined by Companion Standard
2134
2135
2136
2137 -- **************************************** FILES *********************************************
2138
2139 ObtainFile-Request ::= SEQUENCE {
2140         sourceFileServer        [0] IMPLICIT ApplicationReference OPTIONAL,
2141         sourceFile              [1] IMPLICIT FileName,
2142         destinationFile         [2] IMPLICIT FileName
2143         }
2144
2145 ObtainFile-Response ::= NULL
2146
2147 ObtainFile-Error ::= INTEGER {
2148         source-file      (0),
2149         destination-file (1)
2150         }
2151
2152
2153 FileOpen-Request ::= SEQUENCE {
2154         fileName        [0] IMPLICIT FileName,
2155         initialPosition [1] IMPLICIT Unsigned32
2156         }
2157
2158 FileOpen-Response ::= SEQUENCE {
2159         frsmID          [0] IMPLICIT Integer32,
2160         fileAttributes  [1] IMPLICIT FileAttributes
2161         }
2162
2163 FileRead-Request ::= Integer32
2164
2165 FileRead-Response ::= SEQUENCE {
2166         fileData        [0] IMPLICIT OCTET STRING,
2167         moreFollows     [1] IMPLICIT BOOLEAN DEFAULT TRUE
2168         }
2169
2170 FileClose-Request ::= Integer32
2171
2172 FileClose-Response ::= NULL
2173
2174
2175 FileRename-Request ::= SEQUENCE {
2176         currentFileName [0] IMPLICIT FileName,
2177         newFileName     [1] IMPLICIT FileName
2178         }
2179
2180 FileRename-Response ::= NULL
2181
2182 FileRename-Error ::= INTEGER {
2183         source-file      (0),
2184         destination-file (1)
2185         }
2186
2187 FileDelete-Request ::= FileName
2188
2189 FileDelete-Response ::= NULL
2190
2191
2192 FileDirectory-Request ::= SEQUENCE {
2193         fileSpecification       [0] IMPLICIT FileName OPTIONAL,
2194         continueAfter           [1] IMPLICIT FileName OPTIONAL
2195         }
2196
2197 FileDirectory-Response ::= SEQUENCE {
2198         listOfDirectoryEntry    [0] SEQUENCE OF DirectoryEntry,
2199         moreFollows             [1] IMPLICIT BOOLEAN DEFAULT FALSE
2200         }
2201
2202 DirectoryEntry ::= SEQUENCE {
2203         filename                [0] IMPLICIT FileName,
2204         fileAttributes          [1] IMPLICIT FileAttributes
2205         }
2206
2207
2208 FileAttributes ::= SEQUENCE {
2209         sizeOfFile      [0] IMPLICIT Unsigned32,
2210         lastModified    [1] IMPLICIT GeneralizedTime OPTIONAL
2211         }
2212
2213
2214
2215 END
2216