aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/acse/acse.asn
blob: eea7559e945bc89b571041e1f861d299f0bb2f41 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
-- ACSE definition from 
--   http://www.itu.int/ITU-T/asn1/database/itu-t/x/x227bis/1998/ACSE-1.html
-- and modified to pass through ASN2ETH
--
--
-- Module ACSE-1 (X.227bis:09/1998)
ACSE-1 {joint-iso-itu-t association-control(2) modules(0) acse1(1) version1(1)}
--  ACSE-1 refers to ACSE version 1
DEFINITIONS ::=
BEGIN

IMPORTS
  Name, RelativeDistinguishedName
    FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
      informationFramework(1) 3};

--  The data types Name and RelativeDistinguishedName are imported from
--  ITU-T Rec. X.501 | ISO/IEC 9594-2.


-- Workaround for bug in ASN2ETH in the .cnf file
-- to handle the lack of support for tagged assignments.
-- remove that workaround once asn2eth learns how to handle
-- tagged assignments.
EXTERNAL  ::=  [UNIVERSAL 8] IMPLICIT SEQUENCE
     {
      direct-reference  OBJECT IDENTIFIER OPTIONAL,
      indirect-reference  INTEGER OPTIONAL,
      data-value-descriptor  ObjectDescriptor  OPTIONAL,
      encoding  CHOICE
                  {single-ASN1-type  [0] ANY,
                   octet-aligned     [1] IMPLICIT OCTET STRING,
                   arbitrary         [2] IMPLICIT BIT STRING}
     }

--  object identifier assignments
acse-as-id OBJECT IDENTIFIER ::=
  {joint-iso-itu-t association-control(2) abstract-syntax(1) apdus(0)
   version1(1)}

--  may be used to reference the abstract syntax of the ACSE APDUs.
aCSE-id OBJECT IDENTIFIER ::=
  {joint-iso-itu-t association-control(2) ase-id(3) acse-ase(1) version(1)}

--  may be used to identify the Association Control ASE.
--  top level CHOICE
ACSE-apdu ::= CHOICE {
--ASN2ETH bug
--  aarq  AARQ-apdu,
  aarq  [APPLICATION 0] IMPLICIT AARQ-apdu,
--ASN2ETH bug
--  aare  AARE-apdu,
  aare  [APPLICATION 1] IMPLICIT AARE-apdu,
--ASN2ETH bug
--  rlrq  RLRQ-apdu,
  rlrq  [APPLICATION 2] IMPLICIT RLRQ-apdu,
--ASN2ETH bug
--  rlre  RLRE-apdu,
  rlre  [APPLICATION 3] IMPLICIT RLRE-apdu,
--ASN2ETH bug
--  abrt  ABRT-apdu,
  abrt  [APPLICATION 4] IMPLICIT ABRT-apdu,
  ...,
  --  Extensions for higher level association FU
--ASN2ETH bug
--  adt   A-DT-apdu,
  adt   [APPLICATION 5] IMPLICIT A-DT-apdu,
--ASN2ETH bug
--  acrq  ACRQ-apdu,
  acrq  [APPLICATION 6] IMPLICIT ACRQ-apdu,
--ASN2ETH bug
--  acrp  ACRP-apdu
  acrp  [APPLICATION 7] IMPLICIT ACRP-apdu
}

AARQ-apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE {
  protocol-version
    [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
  aSO-context-name                  [1]  ASO-context-name,
  called-AP-title                   [2]  AP-title OPTIONAL,
  called-AE-qualifier               [3]  AE-qualifier OPTIONAL,
  called-AP-invocation-identifier   [4]  AP-invocation-identifier OPTIONAL,
  called-AE-invocation-identifier   [5]  AE-invocation-identifier OPTIONAL,
  calling-AP-title                  [6]  AP-title OPTIONAL,
  calling-AE-qualifier              [7]  AE-qualifier OPTIONAL,
  calling-AP-invocation-identifier  [8]  AP-invocation-identifier OPTIONAL,
  calling-AE-invocation-identifier  [9]  AE-invocation-identifier OPTIONAL,
  --  The following field shall not be present if only the Kernel is used.
  sender-acse-requirements          [10] IMPLICIT ACSE-requirements OPTIONAL,
  --  The following field shall only be present if the Authentication functional unit is selected.
  mechanism-name                    [11] IMPLICIT Mechanism-name OPTIONAL,
  --  The following field shall only be present if the Authentication functional unit is selected.
  calling-authentication-value      [12] EXPLICIT Authentication-value OPTIONAL,
  aSO-context-name-list
    [13] IMPLICIT ASO-context-name-list OPTIONAL,
  --  The above field shall only be present if the Application Context Negotiation functional unit is selected.
  implementation-information        [29] IMPLICIT Implementation-data OPTIONAL,
  ...,
  --  Extensions for higher level association FU
  p-context-definition-list         [14]  Syntactic-context-list OPTIONAL,
  called-asoi-tag                   [15] IMPLICIT ASOI-tag OPTIONAL,
  calling-asoi-tag                  [16] IMPLICIT ASOI-tag OPTIONAL,
  --  End of extensions for higher level association FU
--  ...,
  user-information                  [30] IMPLICIT Association-data OPTIONAL
}

AARE-apdu ::= [APPLICATION 1] IMPLICIT SEQUENCE {
  protocol-version
    [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
  aSO-context-name                     [1]  ASO-context-name,
  result                               [2]  Associate-result,
  result-source-diagnostic             [3]  Associate-source-diagnostic,
  responding-AP-title                  [4]  AP-title OPTIONAL,
  responding-AE-qualifier              [5]  AE-qualifier OPTIONAL,
  responding-AP-invocation-identifier  [6]  AP-invocation-identifier OPTIONAL,
  responding-AE-invocation-identifier  [7]  AE-invocation-identifier OPTIONAL,
  --  The following field shall not be present if only the Kernel is used.
  responder-acse-requirements          [8] IMPLICIT ACSE-requirements OPTIONAL,
  --  The following field shall only be present if the Authentication functional unit is selected.
  mechanism-name                       [9] IMPLICIT Mechanism-name OPTIONAL,
  --  This following field shall only be present if the Authentication functional unit is selected.
  responding-authentication-value
    [10] EXPLICIT Authentication-value OPTIONAL,
  aSO-context-name-list
    [11] IMPLICIT ASO-context-name-list OPTIONAL,
  --  The above field shall only be present if the Application Context Negotiation functional unit is selected.
  implementation-information
    [29] IMPLICIT Implementation-data OPTIONAL,
  ...,
  --  Extensions for higher level association FU
  p-context-result-list
    [12] IMPLICIT P-context-result-list OPTIONAL,
  called-asoi-tag                      [13] IMPLICIT ASOI-tag OPTIONAL,
  calling-asoi-tag                     [14] IMPLICIT ASOI-tag OPTIONAL,
  --  End of extensions for higher level association FU
--  ...,
  user-information                     [30] IMPLICIT Association-data OPTIONAL
}

RLRQ-apdu ::= [APPLICATION 2] IMPLICIT SEQUENCE {
  reason              [0] IMPLICIT Release-request-reason OPTIONAL,
  ...,
  --  Extensions for higher level association FU
  aso-qualifier       [13]  ASO-qualifier OPTIONAL,
  asoi-identifier     [14] IMPLICIT ASOI-identifier OPTIONAL,
  --  End of extensions for higher level association FU
--  ...,
  user-information    [30] IMPLICIT Association-data OPTIONAL
}

RLRE-apdu ::= [APPLICATION 3] IMPLICIT SEQUENCE {
  reason              [0] IMPLICIT Release-response-reason OPTIONAL,
  ...,
  --  Extensions for higher level association FU
  aso-qualifier       [13]  ASO-qualifier OPTIONAL,
  asoi-identifier     [14] IMPLICIT ASOI-identifier OPTIONAL,
  --  End of extensions for higher level association FU
--  ...,
  user-information    [30] IMPLICIT Association-data OPTIONAL
}

ABRT-apdu ::= [APPLICATION 4] IMPLICIT SEQUENCE {
  abort-source        [0] IMPLICIT ABRT-source,
  abort-diagnostic    [1] IMPLICIT ABRT-diagnostic OPTIONAL,
  --  This field shall not be present if only the Kernel is used.
  ...,
  --  Extensions for higher level association FU
  aso-qualifier       [13]  ASO-qualifier OPTIONAL,
  asoi-identifier     [14] IMPLICIT ASOI-identifier OPTIONAL,
  --  End of extensions for higher level association FU
--  ...,
  user-information    [30] IMPLICIT Association-data OPTIONAL
}

A-DT-apdu ::= [APPLICATION 5] IMPLICIT SEQUENCE {
  aso-qualifier    [0]  ASO-qualifier OPTIONAL,
  asoi-identifier  [1] IMPLICIT ASOI-identifier OPTIONAL,
  ...,
--  ...,
  a-user-data      [30]  User-Data
}

ACRQ-apdu ::= [APPLICATION 6] IMPLICIT SEQUENCE {
  aso-qualifier              [0]  ASO-qualifier OPTIONAL,
  asoi-identifier            [1] IMPLICIT ASOI-identifier OPTIONAL,
  aSO-context-name           [3] IMPLICIT ASO-context-name OPTIONAL,
  aSO-context-name-list      [4] IMPLICIT ASO-context-name-list OPTIONAL,
  p-context-definition-list  [5]  Syntactic-context-list OPTIONAL,
  ...,
--  ...,
  user-information           [30] IMPLICIT User-information OPTIONAL
}

ACRP-apdu ::= [APPLICATION 7] IMPLICIT SEQUENCE {
  aso-qualifier          [0]  ASO-qualifier OPTIONAL,
  asoi-identifier        [1] IMPLICIT ASOI-identifier OPTIONAL,
  aSO-context-name       [3] IMPLICIT ASO-context-name-list OPTIONAL,
  p-context-result-list  [4] IMPLICIT P-context-result-list OPTIONAL,
  ...,
--  ...,
  user-information       [30] IMPLICIT User-information OPTIONAL
}

ABRT-diagnostic ::= ENUMERATED {
  no-reason-given(1), protocol-error(2),
  authentication-mechanism-name-not-recognized(3),
  authentication-mechanism-name-required(4), authentication-failure(5),
  authentication-required(6), ...
  }

ABRT-source ::= INTEGER {acse-service-user(0), acse-service-provider(1)
}(0..1, ...)

ACSE-requirements ::= BIT STRING {
  authentication(0), aSO-context-negotiation(1), higher-level-association(2),
  nested-association(3)}

Application-context-name ::= ASO-context-name

ASO-context-name ::= OBJECT IDENTIFIER

--  Application-entity title productions follow (not in alphabetical order).
AP-title ::= CHOICE {
  ap-title-form1  AP-title-form1,
  ap-title-form2  AP-title-form2,
  ...,
  ap-title-form3  AP-title-form3
}

AE-qualifier ::= ASO-qualifier

ASO-qualifier ::= CHOICE {
  aso-qualifier-form1  ASO-qualifier-form1,
  aso-qualifier-form2  ASO-qualifier-form2,
  ...,
  aso-qualifier-form3  ASO-qualifier-form3
}

--  When both AP-title and AE-qualifier data values are present in an AARQ or AARE APDU, both must
--  have the same form to allow the construction of an AE-title as discussed in itu-t Rec. X.665 |
--  ISO/IEC 9834-6
AP-title-form1 ::=
  Name

--  The value assigned to AP-title-form1 is The Directory Name of an application-process title.
ASO-qualifier-form1 ::=
  RelativeDistinguishedName

--  The value assigned to AE-qualifier-form1 is the relative distinguished name of a particular
--  application-entity of the application-process identified by AP-title-form1.
AP-title-form2 ::= OBJECT IDENTIFIER

ASO-qualifier-form2 ::= INTEGER

AP-title-form3 ::= PrintableString

ASO-qualifier-form3 ::= PrintableString

AE-title ::= CHOICE {
  ae-title-form1  AE-title-form1,
  ae-title-form2  AE-title-form2,
  ...
}

--  As defined in ITU-T Rec. X.650 | ISO/IEC 7498-3, an application-entity title is composed of an application process
--  title and an application-entity qualifier. The ACSE protocol provides for the transfer of an application-entity title
--  value by the transfer of its component values. However, the following data type is provided for International
--  Standards that reference a single syntactic structure for AE titles.
AE-title-form1 ::=
  Name

--  For access to The Directory (see ITU-T Rec. X.500 series | ISO/IEC 9594), an AE title has AE-title-form1. This value
--  can be constructed from AP-title-form1 and AE-qualifier-form1 values contained in an AARQ or AARE APDU.
--  A discussion of forming an AE-title-form1 from AP-title-form1 and AE-qualifier form1 may be found in itu-t
--  Rec X.665 | ISO/IEC 9834-6.
AE-title-form2 ::= OBJECT IDENTIFIER

--  A discussion of forming an AE-title-form2 from AP-title-form2 and AE-qualifier-form2 may be found in
--  itu-t Rec. X.665 | ISO/IEC 9834-6.
AE-invocation-identifier ::= INTEGER

AP-invocation-identifier ::= INTEGER

ASOI-identifier ::= INTEGER(1..128, ...)

ASOI-tag ::=
  SEQUENCE SIZE (0..7, ...) OF
    SEQUENCE {qualifier   [0]  ASO-qualifier OPTIONAL,
              identifier  [1]  ASOI-identifier OPTIONAL}

--  End of Application-entity title productions
ASO-context-name-list ::= SEQUENCE OF ASO-context-name

Syntactic-context-list ::= CHOICE {
  context-list          [0]  Context-list,
  default-contact-list  [1]  Default-Context-List
}

Context-list ::=
  SEQUENCE OF
    SEQUENCE {pci                Presentation-context-identifier,
              abstract-syntax    Abstract-syntax-name,
-- bug in ASN2ETH
--              transfer-syntaxes  SEQUENCE OF Transfer-syntax-name}
              transfer-syntaxes  SEQUENCE OF TransferSyntaxName}

Default-Context-List ::=
  SEQUENCE OF
    SEQUENCE {abstract-syntax-name  [0] IMPLICIT Abstract-syntax-name OPTIONAL,
-- bug in ASN2ETH
--              transfer-syntax-name  [1] IMPLICIT Transfer-syntax-name
              transfer-syntax-name  [1] IMPLICIT TransferSyntaxName
    }

Abstract-syntax-name ::= OBJECT IDENTIFIER

P-context-result-list ::=
  SEQUENCE OF
    SEQUENCE {result                [0] IMPLICIT Result,
              concrete-syntax-name  [1] IMPLICIT Concrete-syntax-name OPTIONAL,
              provider-reason
                [2] IMPLICIT INTEGER {reason-not-specified(0),
                                      abstract-syntax-not-supported(1),
                                      proposed-transfer-syntaxes-not-supported(2),
                                      local-limit-on-DCS-exceeded(3)} OPTIONAL
    }

Result ::= INTEGER {acceptance(0), user-rejection(1), provider-rejection(2)}

--bug in ASN2ETH
--Concrete-syntax-name ::= Transfer-syntax-name
Concrete-syntax-name ::= TransferSyntaxName

--bug in ASN2ETH
--Transfer-syntax-name ::= OBJECT IDENTIFIER
TransferSyntaxName ::= OBJECT IDENTIFIER

Associate-result ::= INTEGER {
  accepted(0), rejected-permanent(1), rejected-transient(2)}(0..2, ...)

Associate-source-diagnostic ::= CHOICE {
  acse-service-user
    [1]  INTEGER {null(0), no-reason-given(1),
                  application-context-name-not-supported(2),
                  calling-AP-title-not-recognized(3),
                  calling-AP-invocation-identifier-not-recognized(4),
                  calling-AE-qualifier-not-recognized(5),
                  calling-AE-invocation-identifier-not-recognized(6),
                  called-AP-title-not-recognized(7),
                  called-AP-invocation-identifier-not-recognized(8),
                  called-AE-qualifier-not-recognized(9),
                  called-AE-invocation-identifier-not-recognized(10),
                  authentication-mechanism-name-not-recognized(11),
                  authentication-mechanism-name-required(12),
                  authentication-failure(13), authentication-required(14)}
                                                                    (0..14, ...),
  acse-service-provider
    [2]  INTEGER {null(0), no-reason-given(1), no-common-acse-version(2)}
                                                                    (0..2, ...)
}

User-information ::= Association-data

Association-data ::= SEQUENCE OF EXTERNAL

Simply-encoded-data ::= OCTET STRING

User-Data ::= CHOICE {
  user-information     User-information,
  simply-encoded-data  Simply-encoded-data,
  fully-encoded-data   [0]  PDV-list
}

--  see ITU-T Rec. X.226 | ISO/IEC 8823-1.
PDV-list ::= SEQUENCE {
--bug in ASN2ETH
--  transfer-syntax-name             Transfer-syntax-name OPTIONAL,
  transfer-syntax-name             TransferSyntaxName OPTIONAL,
  presentation-context-identifier  Presentation-context-identifier,
  presentation-data-values
    CHOICE {simple-ASN1-type
              [0]  ANY
                     (CONSTRAINED BY {
                        
                        --  Type corresponding to presentation context identifier
                        }),
            octet-aligned     [1] IMPLICIT OCTET STRING,
            arbitrary         [2] IMPLICIT BIT STRING}
  --  see ITU-T Rec. X.226 | ISO/IEC 8823-1.
}

Presentation-context-identifier ::= INTEGER

Authentication-value-other ::= SEQUENCE {
  other-mechanism-name     OBJECT IDENTIFIER,
  other-mechanism-value    ANY
}

Authentication-value ::= CHOICE {
  charstring  [0] IMPLICIT GraphicString,
  bitstring   [1] IMPLICIT BIT STRING,
  external    [2] IMPLICIT EXTERNAL,
  other
    [3] IMPLICIT Authentication-value-other
}

--  The abstract syntax of (calling/responding) authentication-value is determined by the authentication mechanism used
--  during association establishment. The authentication mechanism is either explicitly denoted by the &id field (of type
--  OBJECT IDENTIFIER) for a mechanism belonging to the class MECHANISM-NAME, or it is known implicitly by
--  prior agreement between the communicating partners. If the "other" component is chosen, then the
--  "mechanism-name" component must be present in accordance with ITU-T Rec. X.680 | ISO/IEC 8824-1. If the value
--  "mechanism-name" occurs in the AARQ-apdu or the AARE-apdu, then that value must be the same as the value for
--  "other-mechanism-name".
Implementation-data ::= GraphicString

Mechanism-name ::= OBJECT IDENTIFIER

Release-request-reason ::= INTEGER {normal(0), urgent(1), user-defined(30)
}

Release-response-reason ::= INTEGER {
  normal(0), not-finished(1), user-defined(30)}

END

-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D