1-- **************************************************************
2--
3-- Information Element Definitions
4--
5-- **************************************************************
6
7Param -- { object identifier to be allocated }--
8DEFINITIONS AUTOMATIC TAGS ::=
9
10BEGIN
11
12-- A
13
14Criticality		::= ENUMERATED { reject, ignore, notify }
15
16Presence		::= ENUMERATED { optional, conditional, mandatory }
17
18ProtocolExtensionID	::= INTEGER (0..65535)
19
20RANAP-PROTOCOL-EXTENSION ::= CLASS {
21	&id				ProtocolExtensionID 				UNIQUE,
22	&criticality			Criticality,
23	&Extension,
24	&presence		Presence
25}
26WITH SYNTAX {
27	ID				&id
28	CRITICALITY			&criticality
29	EXTENSION			&Extension
30	PRESENCE		&presence
31}
32
33ProtocolExtensionContainer {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
34	SEQUENCE (SIZE (1..10)) OF
35	ProtocolExtensionField {{ExtensionSetParam}}
36
37ProtocolExtensionField {RANAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
38	id  RANAP-PROTOCOL-EXTENSION.&id	({ExtensionSetParam}),
39	criticality  RANAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
40	extensionValue	RANAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
41}
42
43
44AllocationOrRetentionPriority ::= SEQUENCE {
45	priorityLevel			BOOLEAN,
46	iE-Extensions			ProtocolExtensionContainer { {AllocationOrRetentionPriority-ExtIEs} } OPTIONAL,
47	...
48}
49
50AllocationOrRetentionPriority-ExtIEs RANAP-PROTOCOL-EXTENSION ::= {
51	...
52}
53
54obj1 RANAP-PROTOCOL-EXTENSION ::= {
55	ID id-one
56	CRITICALITY ignore
57	EXTENSION INTEGER
58	PRESENCE optional
59}
60
61obj2 RANAP-PROTOCOL-EXTENSION ::= {
62	ID id-two
63	CRITICALITY ignore
64	EXTENSION BOOLEAN
65	PRESENCE optional
66}
67
68id-one		INTEGER ::= 1
69id-two		INTEGER ::= 2
70
71-- The following code for test of OTP-4242, ValueFromObject
72-- Similar use as in the Camel spec
73
74CONFIG-DATA ::= CLASS {
75  &minLevel   INTEGER,
76  &maxLevel   INTEGER
77}
78WITH SYNTAX {
79  MINLEVEL &minLevel
80  MAXLEVEL &maxLevel
81}
82
83config-data CONFIG-DATA ::= {MINLEVEL 1 MAXLEVEL 3}
84
85OS1 ::= OCTET STRING (SIZE (config-data.&minLevel .. config-data.&maxLevel))
86
87POS2 {CONFIG-DATA:obj} ::= OCTET STRING (SIZE(obj.&minLevel .. obj.&maxLevel))
88
89OS2 ::= POS2 {config-data}
90
91--
92-- Test a CLASS without the user-friendly syntax.
93--
94
95CL ::= CLASS {
96  &code INTEGER UNIQUE,
97  &Data
98}
99
100P{T} ::= CHOICE { a INTEGER, b T }
101
102o1 CL ::= {
103   &code 42,
104   &Data P{BOOLEAN}
105}
106
107SetCL CL ::= { o1 }
108
109Scl ::= SEQUENCE {
110    code CL.&code ({SetCL}),
111    data CL.&Data ({SetCL}{@code})
112}
113
114END
115
116