d20f2f46f4583c53e13a73c08c65b70b7a672b03
[deliverable/titan.core.git] / regression_test / ASN1 / parse / Test4.asn
1 --/////////////////////////////////////////////////////////////////////////////
2 -- Copyright (c) 2000-2015 Ericsson Telecom AB
3 -- All rights reserved. This program and the accompanying materials
4 -- are made available under the terms of the Eclipse Public License v1.0
5 -- which accompanies this distribution, and is available at
6 -- http://www.eclipse.org/legal/epl-v10.html
7 --/////////////////////////////////////////////////////////////////////////////
8 Test4 --X.683 - parameters
9
10 DEFINITIONS
11
12 AUTOMATIC TAGS
13
14 ::=
15
16 BEGIN
17 --***************************************************************************************************
18 --PARAMETRIZED TYPES (SEQUENCE, SET, CHOICE, SEQUENCE OF, SET OF, INTEGER, BIT STRING, OCTET STRING)
19 --***************************************************************************************************
20
21 --SEQUENCE
22 MyParametrizedSequenceType{Field1Type,Field2Type}
23 ::= SEQUENCE
24 {field1 Field1Type,
25 field2 Field2Type}
26
27 myParametrizedSequenceValue1 MyParametrizedSequenceType{INTEGER, BIT STRING}
28 ::= {
29 field1 5,
30 field2 '00110011'B
31 }
32
33 myParametrizedSequenceValue2 MyParametrizedSequenceType{INTEGER(0..3), BIT STRING (SIZE(1..5))}
34 ::= {
35 field1 1,
36 field2 '001'B
37 }
38
39 -- parametrized type in a parametrized type
40
41 myParametrizedSequenceValue3 MyParametrizedSequenceType
42 { MyParametrizedSetType{INTEGER, BIT STRING}, MyParametrizedChoiceType{INTEGER, BIT STRING}}
43 ::=
44 {
45
46 field1 {
47 field2 '00110011'B,
48 field1 5
49 },
50
51 field2
52 field1 : 5
53
54 }
55
56 MyParametrizedSequenceTypeAlias ::= MyParametrizedSequenceType{INTEGER, BIT STRING}
57
58 myParametrizedSequenceValue4 MyParametrizedSequenceTypeAlias ::=
59 {
60 field1 5,
61 field2 '00110011'B
62 }
63
64 --SET
65
66 MyParametrizedSetType{Field1Type,Field2Type}
67 ::= SET
68 {field1 Field1Type,
69 field2 Field2Type}
70
71 myParametrizedSetValue1 MyParametrizedSetType{INTEGER, BIT STRING}
72 ::= {
73
74 field2 '00110011'B,
75 field1 5
76 }
77
78 myParametrizedSetValue2 MyParametrizedSetType{INTEGER(0..3), BIT STRING(SIZE(1..5))}
79 ::= {
80 field2 '10'B,
81 field1 3
82 }
83
84 MyParametrizedSetTypeAlias ::= MyParametrizedSetType{INTEGER, BIT STRING}
85
86 myParametrizedSetValue4 MyParametrizedSetTypeAlias ::=
87 {
88 field2 '00110011'B,
89 field1 5
90 }
91
92 --CHOICE
93
94 MyParametrizedChoiceType{Field1Type,Field2Type}
95 ::= CHOICE
96 {field1 Field1Type,
97 field2 Field2Type}
98
99 myParametrizedChoiceValue1 MyParametrizedChoiceType{INTEGER, BIT STRING}
100 ::=
101 field1 : 5
102
103 MyParametrizedChoiceTypeAlias ::= MyParametrizedChoiceType{INTEGER, BIT STRING}
104
105 myParametrizedChoiceValue4 MyParametrizedChoiceTypeAlias ::=
106
107 field2 : '001100'B
108
109 --SEQUENCE OF
110
111 MyParametrizedSequenceOfType{Field1Type}
112 ::= SEQUENCE OF Field1Type
113
114 myParametrizedSequenceOfValue1 MyParametrizedSequenceOfType{BIT STRING}
115 ::= { '00'B, '11'B, '01'B }
116
117 MyParametrizedSequenceOfTypeAlias ::= MyParametrizedSequenceOfType{BIT STRING}
118
119 myParametrizedSequenceOfValue4 MyParametrizedSequenceOfTypeAlias ::=
120 { '11'B , '01'B }
121
122 --SET OF
123
124 MyParametrizedSetOfType{Field1Type}
125 ::= SET OF Field1Type
126
127 myParametrizedSetOfValue1 MyParametrizedSetOfType{INTEGER}
128 ::= { 3,6,777 }
129
130 MyParametrizedSetOfTypeAlias ::= MyParametrizedSetOfType{INTEGER}
131
132 myParametrizedSetOfValue4 MyParametrizedSetOfTypeAlias ::=
133 { 3,6,777,5,3 }
134
135 -- INTEGER
136
137 --Matyastol
138 MyParametrizedIntegerType1 {MyInt:par-int} ::= INTEGER {namednum(par-int), namednum2(ketto)}
139 ketto INTEGER ::= 2
140 MyInt ::= INTEGER {harom(3)}
141
142 myParametrizedIntegrValue1 MyParametrizedIntegerType1{ 4 } ::= 6
143
144 myParametrizedIntegrValue2 MyParametrizedIntegerType1{ 4 } ::= 4
145
146 myParametrizedIntegrValue3 MyParametrizedIntegerType1{ 4 } ::= namednum
147
148 MyParametrizedIntegerType2 {MyInt2:par-int2} ::= INTEGER (par-int2.. 10)
149
150 myParametrizedIntegerValue4 MyParametrizedIntegerType2 {5} ::= 5
151
152 -- BIT STRING
153
154 MyParametrizedBitstringType1 {MyInt:par-int} ::= BIT STRING {namedbit(par-int), namedbit2 (3)}
155
156 myParametrizedBitstringValue1 MyParametrizedBitstringType1{2} ::= '0000'B
157
158 myParametrizedBitstringValue2 MyParametrizedBitstringType1{2} ::= {namedbit}
159
160 myParametrizedBitstringValue3 MyParametrizedBitstringType1{2} ::= {namedbit2}
161
162 MyParametrizedBitstringType2 {MyInt2:par-int2} ::= BIT STRING (SIZE (par-int2.. 10))
163
164 myParametrizedBitstringValue4 MyParametrizedBitstringType2{3} ::= '00000'B
165
166 -- OCTET STRING
167 MyParametrizedOctetstringType1 {MyInt:par-int} ::= OCTET STRING (SIZE (par-int.. 10))
168
169 myParametrizedOctetstringValue1 MyParametrizedOctetstringType1{3} ::= 'FF00AA'H
170
171 -- ENUMERATED
172 MyParametrizedEnumeratedType1 {MyInt:par-int} ::= ENUMERATED {a(par-int) ,b, ..., c}
173
174 myParametrizedEnumeratedValue1 MyParametrizedEnumeratedType1{0} ::= a
175
176 --***************************************************************************************************
177 --PARAMETRIZED VALUES ********************************************************
178 --***************************************************************************************************
179
180 myIntegerValue1 { INTEGER : par-int} INTEGER ::= par-int
181
182 myIntegerValue2 INTEGER ::= myIntegerValue1 {3}
183
184 myBitstringValue1 { BIT STRING : par-bitstring} BIT STRING ::= par-bitstring
185
186 myBitstringValue2 BIT STRING ::= myBitstringValue1{'0011'B}
187
188 myOctetstringValue1 {OCTET STRING : par-octetstring} OCTET STRING::= par-octetstring
189
190 myOctetstringValue2 OCTET STRING ::= myOctetstringValue1{'FFFF'H}
191
192 myEnumeratedValue1 {ENUMERATED{a,b,c} : par-enum} ENUMERATED{a,b,c} ::= par-enum
193
194 --myEnumeratedValue2 ENUMERATED{a,b,c} ::= myEnumeratedValue1{a}
195
196 myBooleanValue1 {BOOLEAN : par-boolean} BOOLEAN ::= par-boolean
197
198 myBooleanValue2 BOOLEAN ::= myBooleanValue1{TRUE}
199
200 myNullValue1 {NULL : par-null} NULL ::= par-null
201
202 myNullValue2 NULL ::= myNullValue1{NULL}
203
204 myRealValue1 {REAL : par-real} REAL ::= par-real
205
206 myRealValue2 REAL ::= 5.3 --myRealValue1{{mantissa 314159,base 10, exponent -10}}
207
208 mySequenceValue1 { INTEGER : par-int} SequenceAliasType ::= {field1 par-int}
209
210 mySequenceValue2 SequenceAliasType ::= mySequenceValue1 {44}
211
212 SequenceAliasType ::= SEQUENCE {field1 INTEGER}
213
214 mySetValue1 { INTEGER : par-int} SetAliastype
215 ::= {field1 par-int}
216
217 mySetValue2 SetAliastype ::= mySetValue1 {33}
218
219 SetAliastype ::= SET { field1 INTEGER }
220
221 myChoiceValue1 { INTEGER : par-int} ChoiceAliasType ::= field1 : par-int
222
223 myChoiceValue2 ChoiceAliasType ::= myChoiceValue1 {22}
224
225 ChoiceAliasType ::= CHOICE {field1 INTEGER, field2 BOOLEAN}
226
227 mySequenceOfValue1 { INTEGER : par-int1, INTEGER : par-int2} SequenceOfAliasType ::=
228 {
229 par-int1,
230 par-int2,
231 4
232 }
233
234 mySequenceOfValue2 SequenceOfAliasType ::= mySequenceOfValue1{2,3}
235
236 SequenceOfAliasType ::= SEQUENCE OF INTEGER
237
238 mySetOfValue1 { BIT STRING : par-bitstring} SetOfAliasType ::= {par-bitstring, par-bitstring, '000111'B}
239
240 mySetOfValue2 SetOfAliasType ::= mySetOfValue1 {'000'B}
241
242 SetOfAliasType ::= SET OF BIT STRING
243
244 myIA5StringValue1 {IA5String : par-string} IA5String ::= par-string
245
246 myIA5StringValue2 IA5String ::= myIA5StringValue1 {"hihi"}
247
248 --***************************************************************************************************
249 -- PARAMETRIZED VALUE SETS TO BE ADDED
250 --***************************************************************************************************
251
252 --***************************************************************************************************
253 -- PARAMETRIZED OBJECT CLASS ************************************************************************
254 --***************************************************************************************************
255 MY-PARAMETRIZED-OBJECT-CLASS1
256 {PAR-ASN1-Type1,
257 INTEGER : par-Value1,
258 INTEGER : par-Value3,
259 INTEGER : par-Value4,
260 INTEGER : par-Value5,
261 INTEGER : par-Value6
262 }
263 ::= CLASS
264 {
265 &TypeField OPTIONAL,
266 &fixedTypeValueField PAR-ASN1-Type1 UNIQUE OPTIONAL,
267 &additionalFieldforValueField1 INTEGER DEFAULT par-Value1,
268 &additionalFieldforValueField3 BIT STRING { first(par-Value3), second (1), last-in-first-octet(7) },
269 &additionalFieldforValueField4 ASN1-Type5,
270 &additionalFieldforValueField5 INTEGER (par-Value5..par-Value6)
271 }
272
273 MY-PARAMETRIZED-OBJECT-CLASS1-INSTANCE ::= MY-PARAMETRIZED-OBJECT-CLASS1
274 {
275 INTEGER,
276 111,
277 0,
278 2,
279 10,
280 18
281 }
282
283 myObject-1 MY-PARAMETRIZED-OBJECT-CLASS1-INSTANCE
284 ::=
285 {
286 &TypeField ASN1-Type3,
287 &fixedTypeValueField 999,
288 &additionalFieldforValueField1 110,
289 &additionalFieldforValueField3 '00001111'B,
290 &additionalFieldforValueField4 a,
291 &additionalFieldforValueField5 11
292 }
293
294 --***************************************************************************************************
295 -- PARAMETRIZED OBJECT *****************************************************************************
296 --***************************************************************************************************
297
298 myParametrizedObject-1
299
300 {PAR-ASN1-Type3, -- BIT STRING
301 INTEGER : par-int,
302 INTEGER : par-int2,
303 BIT STRING : par-bitstring,
304 ASN1-Type5 : par-enum,
305 INTEGER : par-int3
306 }
307 MY-PARAMETRIZED-OBJECT-CLASS1-INSTANCE
308 ::=
309 {
310 &TypeField PAR-ASN1-Type3, -- BIT STRING
311 &fixedTypeValueField par-int,
312 &additionalFieldforValueField1 par-int2,
313 &additionalFieldforValueField3 par-bitstring,
314 &additionalFieldforValueField4 par-enum,
315 &additionalFieldforValueField5 par-int3
316 }
317
318 myObject-2 MY-PARAMETRIZED-OBJECT-CLASS1-INSTANCE
319 ::=
320 myParametrizedObject-1
321 {
322 ASN1-Type3,
323 66,
324 88,
325 '001100'B,
326 a,
327 6
328 }
329
330 -- ***************************************************************
331
332 ASN1-Type1 ::= INTEGER
333
334 ASN1-Type2 ::= BOOLEAN
335
336 ASN1-Type3 ::= BIT STRING
337
338 ASN1-Type4 ::= OCTET STRING
339
340 ASN1-Type5 ::= ENUMERATED {a(3) ,b, ..., c}
341
342 --***************************************************************************************************
343 -- PARAMETRIZED OBJECT SET **************************************************************************
344 --***************************************************************************************************
345
346 MY-PARAMETRIZED-OBJECT-SET1 {MY-PARAMETRIZED-OBJECT-CLASS1-INSTANCE : par-myObject-1,
347 MY-PARAMETRIZED-OBJECT-CLASS1-INSTANCE : par-myObject-2} MY-PARAMETRIZED-OBJECT-CLASS1-INSTANCE ::=
348 {
349 par-myObject-1|
350 par-myObject-2|
351 MY-OBJECT-SET2,
352 ...
353 }
354
355 MY-OBJECT-SET2 MY-PARAMETRIZED-OBJECT-CLASS1-INSTANCE ::= {MY-PARAMETRIZED-OBJECT-SET1{myObject-1, myObject-2}}
356
357 -- RANAP specification ***************************************************************
358 -- using only (simpilfied) Reset and ResetResource elementary procedures CLASS1
359
360 RANAP-ELEMENTARY-PROCEDURES RANAP-ELEMENTARY-PROCEDURE ::= {
361 RANAP-ELEMENTARY-PROCEDURES-CLASS-1
362 /* |
363 RANAP-ELEMENTARY-PROCEDURES-CLASS-2 |
364 RANAP-ELEMENTARY-PROCEDURES-CLASS-3 ,
365 ...
366 */
367
368 }
369
370 RANAP-ELEMENTARY-PROCEDURES-CLASS-1 RANAP-ELEMENTARY-PROCEDURE ::= {
371 /*
372 iu-Release |
373 relocationPreparation |
374 relocationResourceAllocation |
375 relocationCancel |
376 sRNS-ContextTransfer |
377 securityModeControl |
378 dataVolumeReport |
379 */
380
381 reset |
382 resetResource ,
383 ...
384 }
385
386 RANAP-ELEMENTARY-PROCEDURE ::= CLASS {
387 &InitiatingMessage ,
388 &SuccessfulOutcome OPTIONAL,
389 &UnsuccessfulOutcome OPTIONAL,
390 &Outcome OPTIONAL,
391 &procedureCode ProcedureCode UNIQUE,
392 &criticality Criticality DEFAULT ignore
393 }
394 WITH SYNTAX {
395 INITIATING MESSAGE &InitiatingMessage
396 [SUCCESSFUL OUTCOME &SuccessfulOutcome]
397 [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
398 [OUTCOME &Outcome]
399 PROCEDURE CODE &procedureCode
400 [CRITICALITY &criticality]
401 }
402
403 RANAP-PDU ::= CHOICE {
404 initiatingMessage InitiatingMessage,
405 successfulOutcome SuccessfulOutcome,
406 unsuccessfulOutcome UnsuccessfulOutcome,
407 outcome Outcome,
408 ...
409 }
410
411 InitiatingMessage ::= SEQUENCE {
412 procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
413 criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
414 value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
415 }
416
417 SuccessfulOutcome ::= SEQUENCE {
418 procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
419 criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
420 value RANAP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
421 }
422
423 UnsuccessfulOutcome ::= SEQUENCE {
424 procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
425 criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
426 value RANAP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
427 }
428
429 Outcome ::= SEQUENCE {
430 procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
431 criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
432 value RANAP-ELEMENTARY-PROCEDURE.&Outcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
433 }
434
435 reset RANAP-ELEMENTARY-PROCEDURE ::= {
436 INITIATING MESSAGE Reset
437 SUCCESSFUL OUTCOME ResetAcknowledge
438 PROCEDURE CODE id-Reset
439 CRITICALITY reject
440 }
441
442 resetResource RANAP-ELEMENTARY-PROCEDURE ::= {
443 INITIATING MESSAGE ResetResource
444 SUCCESSFUL OUTCOME ResetResourceAcknowledge
445 PROCEDURE CODE id-ResetResource
446 CRITICALITY reject
447 }
448
449 Reset ::= SEQUENCE {
450 protocolIEs OCTET STRING, --simplified with dummy fields
451 protocolExtensions OCTET STRING, --simplified with dummy fields
452 ...
453 }
454
455 ResetAcknowledge ::= SEQUENCE {
456 protocolIEs OCTET STRING, --simplified with dummy fields
457 protocolExtensions OCTET STRING, --simplified with dummy fields
458 ...
459 }
460
461 ResetResource ::= SEQUENCE {
462 protocolIEs OCTET STRING, --simplified with dummy fields
463 protocolExtensions OCTET STRING, --simplified with dummy fields
464 ...
465 }
466 ResetResourceAcknowledge ::= SEQUENCE {
467 protocolIEs OCTET STRING, --simplified with dummy fields
468 protocolExtensions OCTET STRING, --simplified with dummy fields
469 ...
470 }
471
472 id-Reset ProcedureCode ::= 0
473
474 id-ResetResource ProcedureCode ::= 1
475
476 ProcedureCode ::= INTEGER (0..255)
477
478 Criticality ::= ENUMERATED { reject, ignore, notify, unspecified }
479
480 END
This page took 0.039451 seconds and 4 git commands to generate.