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