|
|
1.1 root 1: -- ps.py - presentation service definitions
2: -- lifted directly from ISO8823
3: --
4: -- Two kinds of changes to the ASN.1
5: -- - more commentary-tags for POSY
6: -- - shortening some names to make loader symbols unique to 24 bytes
7:
8: -- $Header: /f/osi/psap2/RCS/ps.py,v 7.0 89/11/23 22:14:14 mrose Rel $
9: --
10: --
11: -- $Log: ps.py,v $
12: -- Revision 7.0 89/11/23 22:14:14 mrose
13: -- Release 6.0
14: --
15:
16: --
17: -- NOTICE
18: --
19: -- Acquisition, use, and distribution of this module and related
20: -- materials are subject to the restrictions of a license agreement.
21: -- Consult the Preface in the User's Manual for the full terms of
22: -- this agreement.
23: --
24: --
25:
26:
27: --* ISO8823-PRESENTATION *-- PS DEFINITIONS ::=
28:
29: %{
30: #ifndef lint
31: static char *rcsid = "$Header: /f/osi/psap2/RCS/ps.py,v 7.0 89/11/23 22:14:14 mrose Rel $";
32: #endif
33: %}
34:
35: BEGIN
36:
37: -- In X.410-1984 mode, the value of the SS-user data parameter of the S-CONNECT
38: -- request and indication service-service primitives shall be a CP-type value.
39: --
40: -- In normal mode, the value of the SS-user data parameter of the S-CONNECT
41: -- request and indication session-service primtives shall be a CP-type value,
42: -- followed as a requestor's option by zero or more CPC-type values.
43:
44: CP-type ::=
45: SET {
46: mode --* *--[0]
47: IMPLICIT Mode-selector,
48:
49: x410-mode --* *--[1]
50: IMPLICIT SET
51: --* { COMPONENTS OF Reliable-Transfer.RTORQapdu } *--
52: OPTIONAL
53: -- Shall be used for X.410 mode only. Shall be bitwise
54: -- compatible with CCITT Recommendation X.410-1984.
55: -- This shall be the User data parameter of the CP PPDU --,
56:
57: normal-mode --* *--[2]
58: IMPLICIT SEQUENCE {
59: version --* *--[0]
60: IMPLICIT Protocol-version
61: DEFAULT { version-1 },
62:
63: calling --* *--[1]
64: IMPLICIT Calling-presentation-selector
65: OPTIONAL,
66:
67: called --* *--[2]
68: IMPLICIT Called-presentation-selector
69: OPTIONAL,
70:
71: context-list --* *--[4]
72: IMPLICIT --* Presentation-context- *-- Definition-list
73: OPTIONAL,
74:
75: default-context --* *--[6]
76: IMPLICIT --* Default- *-- Context-name
77: OPTIONAL,
78:
79: presentation-fu --* *--[8]
80: IMPLICIT Presentation-requirements
81: OPTIONAL,
82:
83: session-fu --* *--[9]
84: IMPLICIT User-session-requirements
85: OPTIONAL
86: -- shall not be present if equal to the Revised session
87: -- requirements parameter--,
88:
89: user-data --* *--
90: User-data
91: OPTIONAL
92: }
93: OPTIONAL
94: -- Shall be used for normal mode only.
95: -- Shall be the parameters of the CP PPDU.
96: }
97: -- As an initiator's option, the presentation data values contained in a CP
98: -- PPDU may be encoded more than once, using CPC-type values, to allow the
99: -- transfer of the same presentation data values using a number of different
100: -- transfer syntaxes.
101:
102:
103: CPC-type ::=
104: User-data
105: -- Shall be used for normal mode only.
106: -- Shall not be present if the Presentation-context-definition-list parameter
107: -- is not present in the CP PPDU.
108: -- Each instance of this data type shall contain all of the presentation data
109: -- values which were contained in the User-data parameter of the CP PPDU.
110: -- This shall be the same set of presentation data values which were contained
111: -- in the CP-type.
112:
113:
114: -- The SS-user data parameter value of the S-CONNECT response and confirm
115: -- session-service primitives shall be a CPA-PPDU value when the Result
116: -- parameter value is "accept".
117:
118: CPA-type ::=
119: SET {
120: mode --* *--[0]
121: IMPLICIT Mode-selector,
122:
123: x410-mode --* *--[1]
124: IMPLICIT SET
125: --* { COMPONENTS OF Reliable-Transfer.RTOACapdu } *--
126: OPTIONAL
127: -- Shall be used for X.410 mode only. Shall be bitwise
128: -- compatible with CCITT Recommendation X.410-1984.
129: -- This shall be the User data parameter of the CPA PPDU --,
130:
131: normal-mode --* *--[2]
132: IMPLICIT SEQUENCE {
133: version --* *--[0]
134: IMPLICIT Protocol-version
135: DEFAULT { version-1 },
136:
137: responding --* *--[3]
138: IMPLICIT Responding-presentation-selector
139: OPTIONAL,
140:
141: context-list --* *--[5]
142: IMPLICIT --* Presentation-context- *-- Definition-result-list
143: OPTIONAL,
144:
145: presentation-fu --* *--[8]
146: IMPLICIT Presentation-requirements
147: OPTIONAL,
148:
149: session-fu --* *--[9]
150: IMPLICIT User-session-requirements
151: OPTIONAL
152: -- shall not be present if equal to the Revised session
153: -- requirements parameter--,
154:
155: user-data --* *--
156: User-data
157: OPTIONAL
158: }
159: OPTIONAL
160: -- Shall be used for normal mode only.
161: }
162:
163:
164: -- The SS-user data parameter value of the S-CONNECT response and confirm
165: -- session-service primitives shall be a CPR-PPDU value when the Result
166: -- parameter value is "reject by SS-provider" or "reject by called SS-user".
167:
168: CPR-type ::=
169: CHOICE {
170: x410-mode --* *--
171: SET
172: --* { COMPONENTS OF Reliable-Transfer.RTORJapdu } *--
173: -- Shall be used for X.410 mode only. Shall be bitwise
174: -- compatible with CCITT Recommendation X.410-1984.
175: -- This shall be the User data parameter of the CPR PPDU --,
176:
177: normal-mode --* *--
178: SEQUENCE {
179: version --* *--[0]
180: IMPLICIT Protocol-version
181: DEFAULT { version-1 },
182:
183: responding --* *--[3]
184: IMPLICIT Responding-presentation-selector
185: OPTIONAL,
186:
187: context-list --* *--[5]
188: IMPLICIT --* Presentation-context- *-- Definition-result-list
189: OPTIONAL,
190:
191: default-context --* *--[7]
192: IMPLICIT --* Default- *-- Context-result
193: OPTIONAL,
194:
195: reason --* *--[10]
196: IMPLICIT --* Provider-reason *--
197: INTEGER {
198: reason-not-specified(0),
199: temporary-congestion(1),
200: local-limit-exceeded(2),
201: called-presentation-address-unknown(3),
202: protocol-version-not-supported(4),
203: default-context-not-supported(5),
204: user-data-not-readable(6),
205: no-PSAP-available(7)
206: }
207: OPTIONAL,
208:
209: user-data --* *--
210: User-data
211: OPTIONAL
212: }
213: -- Shall be used for normal mode only.
214: }
215:
216:
217: -- The SS-user data parameter of the S-U-ABORT request and indication sevice
218: -- primitives shall be an Abort-type value.
219:
220: Abort-type ::=
221: CHOICE {
222: user-abort --* *--
223: ARU-PPDU -- for a P-U-ABORT--,
224:
225: provider-abort --* *--
226: ARP-PPDU -- for a P-P-ABORT--
227: }
228:
229: ARU-PPDU ::=
230: CHOICE {
231: x410-mode --* *--
232: SET
233: --* { COMPONENTS OF Reliable-Transfer.RTABapdu } *--
234: -- Shall be used for X.410 mode only. Shall be bitwise
235: -- compatible with CCITT Recommendation X.410-1984.
236: -- This shall be the User data parameter of the ARU PPDU --,
237:
238: normal-mode --* *--[0]
239: IMPLICIT SEQUENCE {
240: context-list --* *--[0]
241: IMPLICIT --* Presentation-context- *-- Identifier-list
242: OPTIONAL,
243:
244: user-data --* *--
245: User-data
246: OPTIONAL
247: }
248: -- Shall be used for normal mode only.
249: }
250:
251: ARP-PPDU ::=
252: SEQUENCE {
253: provider-reason[0]
254: IMPLICIT Abort-reason
255: OPTIONAL,
256:
257: event --* *--[1]
258: IMPLICIT Event-identifier
259: OPTIONAL
260: }
261:
262:
263: -- The SS-user data parameter of the S-TYPED-DATA request and indication sevice
264: -- primitives shall be an Typed-data-type value.
265:
266: Typed-data-type ::=
267: CHOICE {
268: acPPDU[0]
269: IMPLICIT AC-PPDU
270: -- P-ALTER-CONTEXT request and indication --,
271:
272: acaPPDU[1]
273: IMPLICIT ACA-PPDU
274: -- P-ALTER-CONTEXT response and confirm --,
275:
276: ttdPPDU
277: User-data -- P-TYPED-DATA request and indication
278: }
279:
280: AC-PPDU ::=
281: SEQUENCE {
282: additions --* *--[0]
283: IMPLICIT --* Presentation-context- *-- Addition-list
284: OPTIONAL,
285:
286: deletions --* *--[1]
287: IMPLICIT --* Presentation-context- *-- Deletion-list
288: OPTIONAL,
289:
290: user-data --* *--
291: User-data
292: OPTIONAL
293: }
294:
295: ACA-PPDU ::=
296: SEQUENCE {
297: additions --* *--[0]
298: IMPLICIT --* Presentation-context- *-- Addition-list
299: OPTIONAL,
300:
301: deletions --* *--[1]
302: IMPLICIT --* Presentation-context- *-- Deletion-list
303: OPTIONAL,
304:
305: user-data --* *--
306: User-data
307: OPTIONAL
308: }
309:
310:
311: -- The SS-user data parameter of the S-RESYNCHRONIZE request and indication
312: -- sevice primitives shall be an RS-PPDU value.
313:
314: RS-PPDU ::=
315: SEQUENCE {
316: context-list --* *--[0]
317: IMPLICIT --* Presentation-context- *-- Identifier-list
318: OPTIONAL,
319:
320: user-data --* *--
321: User-data
322: OPTIONAL
323: }
324:
325: -- The SS-user data parameter of the S-RESYNCHRONIZE response and confirm
326: -- sevice primitives shall be an RSA-PPDU value.
327:
328: RSA-PPDU ::=
329: SEQUENCE {
330: context-list --* *--[0]
331: IMPLICIT --* Presentation-context- *-- Identifier-list
332: OPTIONAL,
333:
334: user-data --* *--
335: User-data
336: OPTIONAL
337: }
338:
339:
340: -- The SS-user data parameter of the S-DATA, S-CAPABILITY-DATA,
341: -- S-EXPEDITED-DATA request and indication session-sevice primitives and
342: -- S-CAPABILITY-DATA response and confirm session-service primitives
343: -- shall be of type User-data.
344:
345: -- The SS-user data parameter values of all other session-service primitives
346: -- not described above shall be of type User-data.
347:
348:
349: Abort-reason ::=
350: INTEGER {
351: reason-not-specified(0),
352: unrecognized-ppdu(1),
353: unexpected-ppdu(2),
354: unexpected-session-service-primitive(3),
355: unrecognized-ppdu-parameter(4),
356: unexpected-ppdu-parameter(5),
357: invalid-ppdu-parameter(6)
358: }
359:
360: Abstract-syntax-name ::=
361: OBJECT IDENTIFIER
362:
363: Called-presentation-selector ::=
364: --* Presentation- *-- Selector
365:
366: Calling-presentation-selector ::=
367: --* Presentation- *-- Selector
368:
369: Context-list ::=
370: SEQUENCE OF
371: SEQUENCE {
372: identifier --* *--
373: --* Presentation-context-identifier *-- INTEGER,
374:
375: abstract-syntax --* *--
376: Abstract-syntax-name,
377:
378:
379: transfer-syntax-list --* *--
380: SEQUENCE OF
381: Transfer-syntax-name
382: }
383:
384: --* Default- *-- Context-name ::=
385: SEQUENCE {
386: abstract-syntax --* *--[0]
387: IMPLICIT Abstract-syntax-name,
388:
389: transfer-syntax --* *--[1]
390: IMPLICIT Transfer-syntax-name
391: }
392:
393: --* Default- *-- Context-result ::=
394: Result
395:
396: Event-identifier ::=
397: INTEGER {
398: cp-PPDU(0),
399: cpa-PPDU(1),
400: cpr-PPDU(2),
401: aru-PPDU(3),
402: arp-PPDU(4),
403: ac-PPDU(5),
404: aca-PPDU(6),
405: td-PPDU(7),
406: ttd-PPDU(8),
407: te-PPDU(9),
408: tc-PPDU(10),
409: tcc-PPDU(11),
410: rs-PPDU(12),
411: rsa-PPDU(13),
412: s-release-indication(14),
413: s-release-confirm(15),
414: s-token-give-indication(16),
415: s-token-please-indication(17),
416: s-control-give-indication(18),
417: s-sync-minor-indication(19),
418: s-sync-minor-confirm(20),
419: s-sync-major-indication(21),
420: s-sync-major-confirm(22),
421: s-p-exception-report-indication(23),
422: s-u-exception-report-indication(24),
423: s-activity-start-indication(25),
424: s-activity-resume-indication(26),
425: s-activity-interrupt-indication(27),
426: s-activity-start-confirm(28),
427: s-activity-discard-indication(29),
428: s-activity-discard-confirm(30),
429: s-activity-end-indication(31),
430: s-activity-end-confirm(32)
431: }
432:
433: Mode-selector ::=
434: SET {
435: [0]
436: IMPLICIT INTEGER {
437: x410-1984-mode(0),
438: normal-mode(1)
439: }
440: }
441:
442: --* Presentation-context- *-- Addition-list ::=
443: Context-list
444:
445: --* Presentation-context- *-- Addition-result-list ::=
446: Result-list
447:
448: --* Presentation-context- *-- Definition-list ::=
449: Context-list
450:
451: --* Presentation-context- *-- Definition-result-list ::=
452: Result-list
453:
454: --* Presentation-context- *-- Deletion-list ::=
455: SEQUENCE OF
456: --* Presentation-context-identifier *-- INTEGER
457:
458: --* Presentation-context- *-- Deletion-result-list ::=
459: SEQUENCE OF
460: INTEGER {
461: acceptance(0),
462: user-rejection(1)
463: }
464:
465: --* Presentation-context- *-- Identifier ::=
466: INTEGER
467:
468: --* Presentation-context- *-- Identifier-list ::=
469: SEQUENCE OF
470: SEQUENCE {
471: identifier --* *--
472: --* Presentation-context-identifier *-- INTEGER,
473:
474: transfer-syntax --* *--
475: Transfer-syntax-name
476: }
477:
478: Presentation-requirements ::=
479: BIT STRING {
480: context-management(0),
481: restoration(1)
482: }
483:
484: --* Presentation- *-- Selector ::=
485: OCTET STRING
486:
487: Protocol-version ::=
488: BIT STRING {
489: version-1(0)
490: }
491:
492: Provider-reason ::=
493: INTEGER {
494: reason-not-specified(0),
495: temporary-congestion(1),
496: local-limit-exceeded(2),
497: called-presentation-address-unknown(3),
498: protocol-version-not-supported(4),
499: default-context-not-supported(5),
500: user-data-not-readable(6),
501: no-PSAP-available(7)
502: }
503:
504: Responding-presentation-selector ::=
505: --* Presentation- *-- Selector
506:
507: Result ::=
508: INTEGER {
509: acceptance(0),
510: user-rejection(1),
511: provider-rejection(2)
512: }
513:
514: Result-list ::=
515: SEQUENCE OF
516: SEQUENCE {
517: result --* *--[0]
518: IMPLICIT --* Result *--
519: INTEGER {
520: acceptance(0),
521: user-rejection(1),
522: provider-rejection(2)
523: },
524:
525: transfer-syntax --* *--[1]
526: IMPLICIT Transfer-syntax-name
527: OPTIONAL,
528:
529: provider-reason[2]
530: IMPLICIT INTEGER {
531: reason-not-specified(0),
532: abstract-syntax-not-supported(1),
533: proposed-transfer-syntaxes-not-supported(2),
534: local-limit-on-DCS-exceeded(3)
535: }
536: OPTIONAL
537: }
538:
539: Transfer-syntax-name ::=
540: OBJECT IDENTIFIER
541:
542: User-data ::=
543: CHOICE {
544: simple --* *--[APPLICATION 0]
545: IMPLICIT Simply-encoded-data,
546:
547: complex --* *--[APPLICATION 1]
548: IMPLICIT Fully-encoded-data
549: }
550: -- Clause 8.4 defines when each of the two alternatives shall be used.
551:
552: Simply-encoded-data ::=
553: OCTET STRING
554: -- See clause 8.4.1.
555:
556: Fully-encoded-data ::=
557: SEQUENCE OF
558: PDV-list
559: -- contains one or more PDV-list values.
560: -- See clause 8.4.2.
561:
562: PDV-list ::=
563: SEQUENCE {
564: transfer-syntax --* *--
565: Transfer-syntax-name
566: OPTIONAL,
567:
568: identifier --* *--
569: --* Presentation-context-identifier *-- INTEGER,
570:
571: presentation-data-values
572: CHOICE {
573: single-ASN1-type[0]
574: ANY,
575:
576: octet-aligned[1]
577: IMPLICIT OCTET STRING,
578:
579: arbitrary[2]
580: IMPLICIT BIT STRING
581: }
582: -- Contains one or more presentation data values from the same
583: -- presentation context.
584: -- See clause 8.4.2.
585: }
586:
587: User-session-requirements ::=
588: BIT STRING {
589: half-duplex(0),
590: duplex(1),
591: expedited-data(2),
592: minor-synchronize(3),
593: major-synchronize(4),
594: resynchronize(5),
595: activity-management(6),
596: negotiated-release(7),
597: capability-data(8),
598: exceptions(9),
599: typed-data(10)
600: }
601:
602: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.