|
|
1.1 root 1: T1 DEFINITIONS ::=
2:
3:
4: BEGIN
5:
6: -- Embedded Sequences test
7:
8:
9: SECTIONS enc dec prnt
10:
11: -- Test of Embedded Strings
12: Emb-Strings ::= SEQUENCE {
13: atest INTEGER,
14: btest OCTET STRING,
15: ctest BIT STRING,
16: big-test Strings,
17: emb-test SEQUENCE {
18: em-int INTEGER,
19: em-oct OCTET STRING,
20: em-bit BIT STRING
21: }
22: }
23:
24:
25: Strings ::= SEQUENCE { -- Test Octet strings, bit strings and character
26: -- Strings in general
27: ostring OCTET STRING,
28: bstring BIT STRING,
29: nstring NumericString,
30: pstring PrintableString,
31: tstring TeletexString,
32: t61string T61String,
33: vstring VideotexString,
34: vis-string VisibleString,
35: i646string ISO646String,
36: ia5string IA5String,
37: graphstring GraphicString,
38: genstring GeneralString
39: }
40:
41: Embedded ::= SEQUENCE {
42: anMPDU MPDU,
43: ei INTEGER
44: }
45:
46: MPDU ::=
47: SEQUENCE {
48: a-seq SEQUENCE {
49: fred [0] IMPLICIT INTEGER,
50:
51: george BOOLEAN
52: }
53: }
54:
55: ServiceMPDU ::=
56: SET {
57: a-set SET {
58: a-data [1] IMPLICIT BIT STRING,
59:
60: a-more-data [2] IMPLICIT INTEGER
61: },
62: b-set SET {
63: b-data [1] IMPLICIT BIT STRING,
64:
65: b-more-data [2] IMPLICIT INTEGER
66: }
67: }
68: -- Implicit tags
69:
70: Impl-Tags ::= SEQUENCE {
71: i-impl [1] IMPLICIT INTEGER,
72: o-impl [2] IMPLICIT OCTET STRING,
73: b-impl [3] IMPLICIT BIT STRING,
74: f-impl [4] IMPLICIT BOOLEAN,
75: obj-impl [5] IMPLICIT Emb-Strings,
76:
77: -- Test of Embedded Strings
78: i-emb-test [APPLICATION 88] IMPLICIT SEQUENCE {
79: i-em-int INTEGER,
80: i-em-oct OCTET STRING,
81: i-em-bit BIT STRING
82: }
83: }
84:
85: -- Explicit tags
86:
87: Expl-Tags ::= SEQUENCE {
88: i-expl [1] INTEGER,
89: o-expl [2] OCTET STRING,
90: b-expl [3] BIT STRING,
91: f-expl [4] BOOLEAN,
92: obj-expl [5] Emb-Strings,
93:
94: -- Test of Embedded Strings
95: i-exp-test [APPLICATION 88] SEQUENCE {
96: i-ex-int INTEGER,
97: i-ex-oct OCTET STRING,
98: i-ex-bit BIT STRING
99: }
100: }
101:
102: -- Test of Sequence of
103: Seqof-Test ::= SEQUENCE {
104: sqof-test1 SEQUENCE OF Expl-Tags,
105: stof-test1 SET OF Expl-Tags,
106: i-test1 INTEGER,
107: sqof-test2 SEQUENCE OF SEQUENCE {
108: sqof-in Expl-Tags,
109: sqof-i INTEGER,
110: sqof-o OCTET STRING
111: },
112: stof-test2 SET OF SEQUENCE {
113: stof-in Expl-Tags,
114: stof-i INTEGER,
115: stof-o OCTET STRING
116: },
117: i-test2 INTEGER
118: }
119:
120:
121: -- Test data for the Choice type
122: Choice-Test ::= SET {
123: c1 CHOICE {
124: i-c1 [1] IMPLICIT INTEGER,
125: o-c1 [2] IMPLICIT OCTET STRING,
126: b-c1 [3] IMPLICIT BIT STRING,
127: f-c1 [4] IMPLICIT BOOLEAN,
128: obj-c1 [5] IMPLICIT Emb-Strings
129: },
130: c2 CHOICE {
131: i-c2 [6] INTEGER,
132: o-c2 [7] OCTET STRING,
133: b-c2 [8] BIT STRING,
134: f-c2 [9] BOOLEAN,
135: obj-c2 [10] Emb-Strings
136: },
137: c3 CHOICE {
138: seq-c3 SEQUENCE {
139: seq-c3-in Expl-Tags,
140: seq-c3-i INTEGER,
141: seq-c3-o OCTET STRING
142: },
143: set-c3 SET {
144: set-c3-in Expl-Tags,
145: set-c3-i INTEGER,
146: set-c3-o OCTET STRING
147: },
148: i-c3 INTEGER
149: },
150: c4 [12] IMPLICIT SEQUENCE {
151: c4-choice CHOICE {
152: c4-i INTEGER,
153: c4-obj [2] IMPLICIT Expl-Tags,
154: c4-subch CHOICE {
155: sc-a-i [0] IMPLICIT INTEGER,
156: sc-b-i [1] IMPLICIT INTEGER
157: }
158: }
159: }
160:
161:
162: }
163:
164: -- Test of Optional fields
165:
166: Opt-Strings ::= SEQUENCE {
167: a-opt INTEGER OPTIONAL,
168: b-opt OCTET STRING,
169: c-opt BIT STRING OPTIONAL,
170: d-opt BOOLEAN OPTIONAL,
171: e-opt NULL OPTIONAL,
172: big-opt Strings OPTIONAL,
173: emb-opt SEQUENCE {
174: oem-int INTEGER OPTIONAL,
175: oem-oct OCTET STRING OPTIONAL,
176: oem-bit BIT STRING OPTIONAL
177: } OPTIONAL,
178: st-opt SET {
179: st-int0 [0] IMPLICIT INTEGER OPTIONAL,
180: st-int1 [1] IMPLICIT INTEGER OPTIONAL,
181: st-int2 [2] IMPLICIT INTEGER OPTIONAL
182: } OPTIONAL,
183: obj-opt [APPLICATION 1] IMPLICIT MPDU OPTIONAL,
184: etag-opt [APPLICATION 2] INTEGER OPTIONAL,
185: ch-opt CHOICE {
186: ch-1 [10] IMPLICIT INTEGER,
187: ch-2 [20] IMPLICIT INTEGER
188: } OPTIONAL
189: }
190:
191: -- Test of Default fields
192:
193: Def-Strings ::= SEQUENCE {
194: a-def INTEGER { a-def-0 (0), a-def-1(1) } DEFAULT a-def-0,
195: -- posy bug does not allow handling of 'xxx'b or 'xx'h notation
196: -- so we don't use proper posy notation
197: -- b-def OCTET STRING DEFAULT 'ff01ab20'h,
198: b-def PrintableString DEFAULT "hello, world",
199: c-def BIT STRING { c-def-one(3), c-def-two (1)}
200: DEFAULT { c-def-one },
201: okay BOOLEAN DEFAULT TRUE,
202: e-def NULL DEFAULT NULL,
203: big-def Strings,
204: emb-def SEQUENCE {
205: colour INTEGER { red(1), green(2), yellow(3) } DEFAULT green,
206: oem-oct OCTET STRING OPTIONAL,
207: version BIT STRING { basic(0), patch1(1), patch2(2) }
208: DEFAULT { basic }
209: } DEFAULT { red, { basic } },
210: st-def SET {
211: wine [0] IMPLICIT INTEGER { claret(1), burgundy(2), moselle(3) }
212: DEFAULT claret,
213: beer [1] IMPLICIT INTEGER { vb(0), fosters(1), hieneken(2) }
214: DEFAULT vb,
215: spirit [2] IMPLICIT INTEGER { brandy(0), vodka(1), wisky(2) }
216: DEFAULT vodka
217: } DEFAULT { vb, vodka }
218: }
219:
220: -- External References
221: --
222: E-ref ::= SEQUENCE {
223: a-ref T2.Info,
224: b-ref [APPLICATION 33] IMPLICIT T2.Info,
225: c-ref [1] T1.Choice-Test,
226: d-ref [2] T2.Info OPTIONAL,
227: e-ref [APPLICATION 33] IMPLICIT T2.Info OPTIONAL
228: }
229:
230:
231: -- Simple type optimisations of POSY/PEPY
232:
233: Bstring ::= [APPLICATION 8] BIT STRING
234:
235: Ostring ::= [31] IMPLICIT OCTET STRING
236:
237: Obj ::= [101] IMPLICIT MPDU
238:
239: Sset ::= SET
240:
241: Sseq ::= SEQUENCE
242:
243: Sany ::= ANY
244:
245: Soid ::= OBJECT IDENTIFIER
246:
247:
248: Optimised ::= SEQUENCE {
249: o1 Bstring,
250: o2 Ostring,
251: o3 Obj,
252: o4 [APPLICATION 3] IMPLICIT Sset OPTIONAL,
253: [APPLICATION 21] SET {
254: o5 [PRIVATE 9] IMPLICIT Sseq,
255: o6 [PRIVATE 33] IMPLICIT Sany,
256: o7 [PRIVATE 8] IMPLICIT Soid
257: }
258: }
259:
260: -- Use of External Simple types
261: Ext-Opt ::= SEQUENCE {
262: o1 T2.Bstring,
263: o2 T2.Ostring,
264: o3 T2.Obj,
265: o4 [PRIVATE 38] IMPLICIT T2.Sset OPTIONAL,
266: [APPLICATION 21] SET {
267: o5 [PRIVATE 1] IMPLICIT T2.Sseq,
268: o6 [PRIVATE 2] IMPLICIT T2.Sany,
269: o7 [PRIVATE 3] IMPLICIT T2.Soid
270: }
271: }
272:
273: -- External type and ANY usage
274:
275: Ext-typ ::= SEQUENCE {
276: ext EXTERNAL,
277: a-ny [APPLICATION 32] ANY,
278: ext-impl [PRIVATE 6] IMPLICIT EXTERNAL,
279: any-impl [APPLICATION 7] ANY,
280: ext-expl [PRIVATE 9] EXTERNAL,
281: any-expl [APPLICATION 10] ANY
282: }
283:
284: SExt ::= [PRIVATE 99] IMPLICIT EXTERNAL
285:
286: -- check of posy's %[ name $ head %] stuff
287: Names ::=
288: SEQUENCE {
289: SEQUENCE %[ seq_str $ ptr %] {
290: fred [0] IMPLICIT INTEGER
291: }
292: }
293:
294: -- Test explicit tags as the first field of an object
295: Etags ::=
296: [APPLICATION 3]
297: CHOICE {
298: aE [0] IMPLICIT INTEGER,
299: bE [1] IMPLICIT INTEGER
300: }
301:
302: Stest ::=
303: [APPLICATION 4] SET {
304: st1 Sint DEFAULT 33,
305: st2 Soctet DEFAULT "goodbye, world"
306: }
307:
308: Sint ::= INTEGER
309:
310: Soctet ::= OCTET STRING
311:
312: Simpl-test ::= SEQUENCE { si-t [23] IMPLICIT Sbstring }
313:
314: Sbstring ::= BIT STRING { bit0(0), bit1(1), bit2(2) }
315:
316: SStest ::= [101] IMPLICIT Simpl-test
317:
318: Enum-type ::= ENUMERATED { pork(0), beef(1), chicken(3), lamb(-1) }
319:
320: T-enum ::= SEQUENCE {
321: ae1 Enum-type,
322: ae2 [12] Enum-type,
323: ae3 [13] IMPLICIT Enum-type,
324: ae4 [15] IMPLICIT Enum-type DEFAULT chicken,
325: ae5 Enum-type OPTIONAL
326: }
327: Real ::= REAL
328:
329: T-real ::= SEQUENCE {
330: r1 Real,
331: r2 [99] Real,
332: r3 [101] IMPLICIT Real,
333: r4 [501] IMPLICIT Real DEFAULT { 31415962, 10, -7 },
334: r5 Real OPTIONAL
335: }
336: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.