Last sync 2016.04.01
[deliverable/titan.core.git] / regression_test / ASN1 / parse / Test2_known_errors.asn
CommitLineData
970ed795 1--/////////////////////////////////////////////////////////////////////////////
d44e3c4f 2-- Copyright (c) 2000-2016 Ericsson Telecom AB
970ed795
EL
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
d44e3c4f 7--
8-- Contributors:
9-- Balasko, Jeno
10-- Koppany, Csaba
11-- Kulcsar, Endre
12-- Szabados, Kristof
13-- Szabo, Janos Zoltan – initial implementation
14--
970ed795
EL
15--/////////////////////////////////////////////////////////////////////////////
16Test1-known-errors
17
18DEFINITIONS
19
20AUTOMATIC TAGS
21
22::=
23
24BEGIN
25--***************************************************************************
26-- information object class with the possoble field types
27--***************************************************************************
28MY-CLASS-1 ::= CLASS
29{
30&TypeField OPTIONAL,
31&fixedTypeValueField ASN1-Type1 UNIQUE OPTIONAL,
32&variableTypeValueField &TypeField OPTIONAL,
33&FixedTypeValueSetField ASN1-Type2,
34&VariableTypeValueSetField &TypeField OPTIONAL,
35&objectField OBJECTCLASS1 OPTIONAL,
36&ObjectSetField OBJECTCLASS1 OPTIONAL
37}
38WITH SYNTAX
39{
40[TYPE FIELD &TypeField]
41[FIXED VALUE TYPE FIELD &fixedTypeValueField]
42[VARIABLE TYPE VALUE FIELD &variableTypeValueField]
43FIXED TYPE VALUE SET FIELD &FixedTypeValueSetField
44[VARIABLE TYPE VALUE SET FIELD &VariableTypeValueSetField]
45[OBJECT FIELD &objectField]
46[OBJECT SET FIELD &ObjectSetField]
47}
48
49--***************************************************************************
50-- types used in this test
51--***************************************************************************
52ASN1-Type1 ::= INTEGER
53
54ASN1-Type2 ::= BOOLEAN
55
56ASN1-Type3B ::= BIT STRING
57
58ASN1-Type3 ::= SEQUENCE {f1 INTEGER}
59
60ASN1-Type4 ::= OCTET STRING
61
62ASN1-Type5 ::= SET {field1 BIT STRING,
63 field2 INTEGER}
64
65OBJECTCLASS1 ::= RANAP-ELEMENTARY-PROCEDURE
66
67--****************************************************************************************************
68-- OBJECTS using the class defined above
69--****************************************************************************************************
70-- object not using WITH SYNTAX
71myObject-1 MY-CLASS-1 ::=
72{
73&TypeField ASN1-Type3, -- SEQUENCE {f1 INTEGER}
74&fixedTypeValueField 999,
75&variableTypeValueField {f1 1234},
76&FixedTypeValueSetField { TRUE | FALSE },
77&VariableTypeValueSetField { {f1 4592} | {f1 92000} }
78&objectField reset,
79&ObjectSetField { reset | resetResource }
80}
81
82-- object using WITH SYNTAX
83myObject-2 MY-CLASS-1 ::=
84{
85TYPE FIELD ASN1-Type2, -- BOOLEAN
86FIXED VALUE TYPE FIELD 888,
87VARIABLE TYPE VALUE FIELD TRUE,
88FIXED TYPE VALUE SET FIELD { TRUE },
89VARIABLE TYPE VALUE SET FIELD { TRUE| FALSE },
90OBJECT FIELD resetResource
91OBJECT SET FIELD RANAP-ELEMENTARY-PROCEDURES
92}
93
94-- object using WITH SYNTAX
95myObject-3 MY-CLASS-1 ::=
96{
97TYPE FIELD ASN1-Type4
98FIXED VALUE TYPE FIELD 555
99}
100
101-- object not using WITH SYNTAX
102myObject-4 MY-CLASS-1 ::=
103{
104&TypeField ASN1-Type3B, -- BIT STRING
105&fixedTypeValueField 2632,
106&variableTypeValueField '001100'B,
107&FixedTypeValueSetField { TRUE | FALSE },
108&VariableTypeValueSetField { '0110'B | '1010'B }
109&objectField rAB-ReleaseRequest,
110&ObjectSetField { reset | resetResource }
111}
112
113-- object using WITH SYNTAX
114myObject-5 MY-CLASS-1 ::=
115{
116TYPE FIELD ASN1-Type5, -- SET {field1 BIT STING, field2 INTEGER}
117FIXED VALUE TYPE FIELD 945,
118VARIABLE TYPE VALUE FIELD {field1 '001100'B, field2 3},
119FIXED TYPE VALUE SET FIELD { TRUE },
120VARIABLE TYPE VALUE SET FIELD { {field1 '0101'B, field2 44}, {field1 '1100'B, field2 101}},
121OBJECT FIELD iu-ReleaseRequest
122OBJECT SET FIELD RANAP-ELEMENTARY-PROCEDURES-CLASS-2
123}
124
125--****************************************************************************************************
126-- Defining Information Object sets
127--****************************************************************************************************
128
129MyInformationObjectSet1 MY-CLASS-1 ::=
130{
131myObject-1|
132myObject-2,
133...
134}
135
136MyInformationObjectSet2 MY-CLASS-1 ::=
137{
138MyInformationObjectSet1|
139myObject-3,
140...
141}
142
143MyInformationObjectSet3 MY-CLASS-1 ::=
144{
145{TYPE FIELD ASN1-Type4 FIXED VALUE TYPE FIELD 1970 OBJECT FIELD myObject-5}
146|
147myObject-4,
148...
149}
150
151--****************************************************************************************************
152--References from class
153--****************************************************************************************************
154
155MyBigMessageType1 ::= SEQUENCE
156
157{
158field1 MY-CLASS-1.&TypeField, --open Type without constraint
159field2 MY-CLASS-1.&fixedTypeValueField, --Type
160field3 MY-CLASS-1.&variableTypeValueField, --open Type without constraint
161field4 MY-CLASS-1.&FixedTypeValueSetField, --Type
162field5 MY-CLASS-1.&VariableTypeValueSetField --open Type without constraint
163}
164
165MyBigMessageType1B ::= SEQUENCE
166
167{
168field1 MY-CLASS-1.&TypeField (ASN1-Type5), --open Type with constraint
169field2 MY-CLASS-1.&fixedTypeValueField, --Type
170field3 MY-CLASS-1.&variableTypeValueField (IA5String), --open Type with constraint
171field4 MY-CLASS-1.&FixedTypeValueSetField, --Type
172field5 MY-CLASS-1.&VariableTypeValueSetField ( Criticality | ProcedureCode ) --open Type with constraint
173}
174
175MyBigMessageType2 ::= SEQUENCE
176
177{
178field1 MY-CLASS-1.&TypeField ({MyInformationObjectSet1}),
179field2 MY-CLASS-1.&fixedTypeValueField, ({MyInformationObjectSet1}),
180field3 MY-CLASS-1.&variableTypeValueField ({MyInformationObjectSet1}),
181field4 MY-CLASS-1.&FixedTypeValueSetField ({MyInformationObjectSet1}),
182field5 MY-CLASS-1.&VariableTypeValueSetField ({MyInformationObjectSet1})
183}
184
185MyBigMessageType3 ::= SEQUENCE
186
187{
188field1 MY-CLASS-1.&TypeField ({MyInformationObjectSet1} {@field2} ),
189field2 MY-CLASS-1.&fixedTypeValueField, ({MyInformationObjectSet1} ),
190field3 MY-CLASS-1.&variableTypeValueField ({MyInformationObjectSet1} {@field2} ),
191field4 MY-CLASS-1.&FixedTypeValueSetField ({MyInformationObjectSet1}),
192field5 MY-CLASS-1.&VariableTypeValueSetField ({MyInformationObjectSet1})
193}
194
195MyBigMessageType4 ::= SEQUENCE
196
197{
198field1 MY-CLASS-1.&TypeField ({MyInformationObjectSet1} {@field2} ),
199field2 MY-CLASS-1.&fixedTypeValueField, ({MyInformationObjectSet1} ),
200field3 MY-CLASS-1.&variableTypeValueField ({MyInformationObjectSet1} {@field2} ),
201field4 MY-CLASS-1.&FixedTypeValueSetField ({MyInformationObjectSet3}),
202field5 MY-CLASS-1.&VariableTypeValueSetField ({MyInformationObjectSet3})
203}
204
205myBigMessage1 MyBigMessageType1 ::=
206{
207
208field1 aSN1-Type3 : {f1 8 },
209field2 6457,
210field3 aSN1-Type4 : '1234ABCD'H,
211field4 TRUE,
212field5 iNTEGER : 67
213}
214
215myBigMessage1B MyBigMessageType1B ::=
216{
217
218field1 aSN1-Type5 : {field1 '00110'B, field2 5},
219field2 4594,
220field3 iA5String : "abcdefgh",
221field4 FALSE,
222field5 criticality : reject
223}
224
225myBigMessage2 MyBigMessageType2 ::=
226{
227
228field1 aSN1-Type3 : {f1 1986},
229field2 0,
230field3 aSN1-Type3 :{f1 492},
231field4 FALSE,
232field5 bOOLEAN : TRUE
233}
234
235myBigMessage3 MyBigMessageType3 ::=
236{
237
238field1 aSN1-Type2 : TRUE ,
239field2 3485 ,
240field3 aSN1-Type3 : {f1 9},
241field4 TRUE,
242field5 aSN1-Type2 : FALSE
243}
244
245myBigMessage4 MyBigMessageType4 ::=
246{
247field1 aSN1-Type2 : FALSE ,
248field2 74,
249field3 '01010'B,
250field4 TRUE,
251field5 aSN1-Type5 : {field1 '0101'B, field2 349}
252}
253
254--****************************************************************************************************
255-- References from object
256--****************************************************************************************************
257
258MyBigMessageType100 ::= SEQUENCE
259
260{
261field1 myObject-1.&TypeField, -- type from object SEQUENCE {f1 INTEGER}
262field2 MY-CLASS-1.&fixedTypeValueField ({MyInformationObjectSet1}), -- type from class : ASN1-Type1 ::= INTEGER
263field3 MY-CLASS-1.&variableTypeValueField ({MyInformationObjectSet1}), -- open type from class with constraint
264field4 myObject-1.&FixedTypeValueSetField, -- value set from object
265field5 myObject-1.&VariableTypeValueSetField -- value set from object
266}
267
268myBigMessage100 MyBigMessageType100 ::=
269{
270field1 {f1 88},
271field2 myObject-1.&fixedTypeValueField, -- fixed type value from object
272field3 myObject-1.&variableTypeValueField, -- variable type value from object
273field4 TRUE,
274field5 {f1 4592}
275}
276
277myNewObject1 OBJECTCLASS1 ::= myObject-1.&objectField -- reset
278
279MyNewObjectSet1 OBJECTCLASS1::= { myObject-1.&ObjectSetField } -- { reset | resetResource }
280
281--****************************************************************************************************
282-- References from object set
283--****************************************************************************************************
284
285 myValueFromObjectSet INTEGER ::= MyInformationObjectSet1.myObject-1.&fixedTypeValueField
286
287 MyValueSetFromObjectSet INTEGER ::= { MyInformationObjectSet1.myObject-1.&FixedTypeValueSetField }
288
289 MyNewObjectSet2 OBJECTCLASS1 ::= { MyInformationObjectSet1.&objectField }
290
291 MyNewObjectSet3 OBJECTCLASS1 ::= { MyInformationObjectSet3.&ObjectSetField }
292
293--****************************************************************************************************
294--simplified RANAP specification information *******************************************************
295--****************************************************************************************************
296-- using only Reset and ResetResource elementary procedures CLASS1
297
298RANAP-ELEMENTARY-PROCEDURES RANAP-ELEMENTARY-PROCEDURE ::= {
299 RANAP-ELEMENTARY-PROCEDURES-CLASS-1
300 |
301 RANAP-ELEMENTARY-PROCEDURES-CLASS-2,
302 ...
303}
304
305RANAP-ELEMENTARY-PROCEDURES-CLASS-1 RANAP-ELEMENTARY-PROCEDURE ::= {
306
307 reset |
308 resetResource ,
309 ...
310}
311
312RANAP-ELEMENTARY-PROCEDURES-CLASS-2 RANAP-ELEMENTARY-PROCEDURE ::= {
313 rAB-ReleaseRequest |
314 iu-ReleaseRequest }
315
316RANAP-ELEMENTARY-PROCEDURE ::= CLASS {
317 &InitiatingMessage ,
318 &SuccessfulOutcome OPTIONAL,
319 &UnsuccessfulOutcome OPTIONAL,
320 &Outcome OPTIONAL,
321 &procedureCode ProcedureCode UNIQUE,
322 &criticality Criticality DEFAULT ignore
323}
324WITH SYNTAX {
325 INITIATING MESSAGE &InitiatingMessage
326 [SUCCESSFUL OUTCOME &SuccessfulOutcome]
327 [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
328 [OUTCOME &Outcome]
329 PROCEDURE CODE &procedureCode
330 [CRITICALITY &criticality]
331}
332
333RANAP-PDU ::= CHOICE {
334 initiatingMessage InitiatingMessage,
335 successfulOutcome SuccessfulOutcome,
336 unsuccessfulOutcome UnsuccessfulOutcome,
337 outcome Outcome,
338 ...
339}
340
341InitiatingMessage ::= SEQUENCE {
342 procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
343 criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
344 value RANAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
345}
346
347SuccessfulOutcome ::= SEQUENCE {
348 procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
349 criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
350 value RANAP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
351}
352
353UnsuccessfulOutcome ::= SEQUENCE {
354 procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
355 criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
356 value RANAP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
357}
358
359Outcome ::= SEQUENCE {
360 procedureCode RANAP-ELEMENTARY-PROCEDURE.&procedureCode ({RANAP-ELEMENTARY-PROCEDURES}),
361 criticality RANAP-ELEMENTARY-PROCEDURE.&criticality ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
362 value RANAP-ELEMENTARY-PROCEDURE.&Outcome ({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
363}
364
365reset RANAP-ELEMENTARY-PROCEDURE ::= {
366 INITIATING MESSAGE Reset
367 SUCCESSFUL OUTCOME ResetAcknowledge
368 PROCEDURE CODE id-Reset
369 CRITICALITY reject
370}
371
372resetResource RANAP-ELEMENTARY-PROCEDURE ::= {
373 INITIATING MESSAGE ResetResource
374 SUCCESSFUL OUTCOME ResetResourceAcknowledge
375 PROCEDURE CODE id-ResetResource
376 CRITICALITY reject
377}
378
379iu-ReleaseRequest RANAP-ELEMENTARY-PROCEDURE ::= {
380 INITIATING MESSAGE Iu-ReleaseRequest
381 PROCEDURE CODE id-Iu-ReleaseRequest
382 CRITICALITY ignore
383}
384
385rAB-ReleaseRequest RANAP-ELEMENTARY-PROCEDURE ::= {
386 INITIATING MESSAGE RAB-ReleaseRequest
387 PROCEDURE CODE id-RAB-ReleaseRequest
388 CRITICALITY ignore
389}
390
391Reset ::= SEQUENCE {
392 protocolIEs OCTET STRING, --simplified with dummy fields
393 protocolExtensions OCTET STRING, --simplified with dummy fields
394 ...
395}
396
397ResetAcknowledge ::= SEQUENCE {
398 protocolIEs OCTET STRING, --simplified with dummy fields
399 protocolExtensions OCTET STRING, --simplified with dummy fields
400 ...
401}
402
403ResetResource ::= SEQUENCE {
404 protocolIEs OCTET STRING, --simplified with dummy fields
405 protocolExtensions OCTET STRING, --simplified with dummy fields
406 ...
407}
408
409ResetResourceAcknowledge ::= SEQUENCE {
410 protocolIEs OCTET STRING, --simplified with dummy fields
411 protocolExtensions OCTET STRING, --simplified with dummy fields
412 ...
413}
414
415RAB-ReleaseRequest ::= SEQUENCE {
416 protocolIEs OCTET STRING, --simplified with dummy fields
417 protocolExtensions OCTET STRING --simplified with dummy fields
418}
419
420Iu-ReleaseRequest ::= SEQUENCE {
421 protocolIEs OCTET STRING, --simplified with dummy fields
422 protocolExtensions OCTET STRING OPTIONAL, --simplified with dummy fields
423 ...
424}
425
426ProcedureCode ::= INTEGER (0..255)
427
428Criticality ::= ENUMERATED { reject, ignore, notify, unspecified }
429
430id-Reset ProcedureCode ::= 0
431
432id-ResetResource ProcedureCode ::= 1
433
434id-Iu-ReleaseRequest ProcedureCode ::= 2
435
436id-RAB-ReleaseRequest ProcedureCode ::= 3
437
438--Gyuri ASN1 ****************************************************************
439-- **************************************************************************
440MY-CLASS-2 ::= CLASS
441{
442&Argument,
443&identifier INTEGER UNIQUE,
444&linkedArgument &Argument OPTIONAL,
445&ErrorCodes INTEGER DEFAULT {0},
446&returnedObject
447}
448WITH SYNTAX
449{
450INFORMATION &Argument WITH ID &identifier [AND ERRORS &ErrorCodes]
451[LINKED TO &linkedArgument]
452[ANSWERS &returnedObject]
453}
454
455END
This page took 0.039695 seconds and 5 git commands to generate.