Witness: enum witness_notifyResponse_type
[wireshark-wip.git] / asn1 / atn-ulcs / atn-ulcs.asn
blobd7d18d08ba13f726c613e1ff0560de00619c87ba
1 -- c-basic-offset: 2; tab-width: 2; indent-tabs-mode: t
2 -- vi: set shiftwidth=2 tabstop=2 noexpandtab:
3 -- :indentSize=2:tabSize=2:noTabs=false:
5 -- File: atn-ulcs.asn
6 -- Sub-Volume IV ASN.1 reference definitions for ICAO Doc. 9705,
7 -- Second Edition
8 -- Version 1.1, 03 Oct 2001
10 -- The majority of the ULCS protocol definitions are specified in the ULCS 
11 -- Technical Provisions by reference to ISO/IEC Standards and/or ITU-T
12 -- Recommendations.  The ASN.1 definitions are reproduced here for ease of 
13 -- reference and to allow explanatory annotations to be added. In the case of 
14 -- any discrepancy between the definitions here and the corresponding 
15 -- definitions defined in or referenced by the ULCS Technical Provisions, 
16 -- the latter are assumed to take precedence.
18 -- The following ASN.1 modules are included here:
20 -- * General ULCS types.  These are ASN.1 definitions used in the ULCS 
21 -- Technical Provisions, though there is no equivalent ASN.1 module 
22 -- defined there.  The definitions in this module would generally be 
23 -- incorporated into a wider "user" protocol module if using ASN.1 automated 
24 -- tools.  They are defined in a separate module here so that their syntax can 
25 -- easily be verified by an ASN.1 syntax checker.
27 -- * Connection-oriented ACSE definitions.  This is equivalent to the "ACSE-1" 
28 -- module defined in the connection-oriented ACSE protocol standard.
30 -- * Information Framework.  This is an extract of relevant definitions from the 
31 -- InformationFramework module in the OSI standard "Directory : Models".  The 
32 -- types defined in this module are not actively used in the ULCS protocol, but 
33 -- they are needed to satisfy IMPORTS statements in the ACSE definitions, and 
34 -- to allow certain CHOICE types in the ACSE definitions to be sorted correctly 
35 -- into canonical order. 
38 -- Note.- In the following definitions, the ASN.1 comment " X" indicates 
39 -- choice elements and optional elements in sequence types that are defined as 
40 -- "Excluded" in the ULCS profile.  That is, implementations of ULCS provisions 
41 -- are never required to encode values for such elements (though they are 
42 -- required to indicate the absence of these elements in all instances, by means 
43 -- of bits in the appropriate PER preamble or choice index). 
46 -- General ULCS types
48 ULCS DEFINITIONS ::= BEGIN
49 --  ***************************************************************************
50 --  The following ASN.1 definitions are from Doc 9705 Sub-Volume IV,
51 --  section 4.3.2.6.2
52 --  ***************************************************************************
54 --Presentation User Data is Fully-encoded-data from
55 --ISO/IEC 8823-1:1994/Amd.1:1997 | ITU-T Rec. X.226/Amd. 1
57 --Fully-encoded-data ::= SEQUENCE SIZE (1, ...) OF PDV-list
58 Fully-encoded-data ::= SEQUENCE SIZE (1, ..., 2..MAX) OF PDV-list
59 -- contains one or more presentation-data-value-list (PDV-list) values
60 -- ATN commentary: The SIZE constraint above differs from the referenced 
61 -- standard, which specifies (in 8.2): 
62 -- Fully-encoded-data ::= SEQUENCE SIZE (1, ..., 2..MAX) OF PDV-list.
63 -- The ULCS provisions specify a simplified, but compatible, efficiency 
64 -- constraint as there will never be more than one element in the SEQUENCE OF 
65 -- for the foreseeable future.  
66 -- This simplifies matters for some compilers.
68 PDV-list ::= SEQUENCE  {
69                 transfer-syntax-name              Transfer-syntax-name OPTIONAL,       -- X
70                 presentation-context-identifier   Presentation-context-identifier,
71                 presentation-data-values          CHOICE
72                 { single-ASN1-type  [0] ABSTRACT-SYNTAX.&Type
73                                 (CONSTRAINED BY {
74                                 -- Type corresponding to presentation context identifier -- }) , -- X
75                                                 octet-aligned  [1] IMPLICIT OCTET STRING,    -- X
76                                                 arbitrary      [2] IMPLICIT BIT STRING }
77                 -- contains one or more presentation data values from the same
78                 -- presentation context.
79                 -- ATN Commentary: only the arbitrary BIT STRING encoding choice is used.
82 Transfer-syntax-name ::= OBJECT IDENTIFIER -- ATN: not used for ATN Upper Layers
84 Presentation-context-identifier::= INTEGER  -- ATN: the following values are 
85                                                                                                                                                                                 -- ATN-specific
86 {               acse-apdu     (1),
87                 reserved      (2),
88                 user-ase-apdu (3) } (1..127, ... )
89 -- ATN commentary: The SIZE constraint above differs from the referenced 
90 -- standard, which specifies (in 8.2): 
91 -- Presentation-context-identifier::= INTEGER (1..127, ..., 128..MAX ).
92 -- The ULCS provisions specify a simplified, but compatible, efficiency 
93 -- constraint as there will never be more than 127 presentation contexts in 
94 -- ATN for the foreseeable future.  
95 -- This simplifies matters for some compilers.  The list of defined values is
96 -- shown here for guidance only, and has no effect on the PER encoding.
99 END -- of ULCS definitions
101 --  Connection-oriented ACSE definitions
102 --*************************************************************************
103 -- The ACSE abstract syntax from ISO/IEC 8650-1/Amd.1 | ITU-T Rec. X.227/
104 -- Amd. 1 is reproduced here for ease of reference.  In case of any discrepancy,
105 -- the ISO/IEC standard takes precedence.
106 --*************************************************************************
108 ACSE-1 {joint-iso-itu-t association-control(2) modules(0) apdus(0) version1(1)}
109 --  ACSE-1 refers to ACSE version 1 
110 DEFINITIONS ::= 
111 BEGIN
112                 EXPORTS
113                         acse-as-id, ACSE-apdu, aCSE-id, Application-context-name, AP-title,
114                         AE-qualifier, -- AE-title, (ATN: AE-title is not needed)
115                         AP-invocation-identifier,
116                         AE-invocation-identifier, Mechanism-name, Authentication-value,
117                         ACSE-requirements;
118                 IMPORTS    Name, RelativeDistinguishedName
119                         FROM InformationFramework
120                                 { joint-iso-ccitt ds(5) module(1) informationFramework(1)  2 };
121                         -- The data types Name and RelativeDistinguishedName are imported
122                         -- from ISO/IEC 9594-2 | ITU-T Rec. X.501.
123                         -- ATN Commentary: The relevant InformationFramework extracts are given
124                         -- below.
126 -- *************************************************************************
127 --  EXTERNAL
128 -- *************************************************************************
130 -- EXTERNAL is an ASN.1 UNIVERSAL type.  The definition in the PER standard
131 -- ISO/IEC 8825-2 | ITU-T Rec. X.691 is assumed for ACSE.
132 -- The type is used in ACSE user-information 
133 -- fields.  ASN.1 compilers will not in general allow EXTERNAL to be
134 -- redefined (therefore 'EXTERNALt'), 
135 -- and it is invalid ASN.1 to define a type with tag [UNIVERSAL 8]
137 -- Workaround for bug in asn2wrs in the .cnf file
138 -- to handle the lack of support for tagged assignments.
139 -- remove that workaround once asn2wrs learns how to handle
140 -- tagged assignments.
142 EXTERNALt ::= [8] IMPLICIT SEQUENCE {
143                 direct-reference    OBJECT IDENTIFIER   OPTIONAL,       -- X
144                 indirect-reference  INTEGER             OPTIONAL,
145                 data-value-descriptor    ObjectDescriptor    OPTIONAL,  -- X
146                 encoding       CHOICE {
147                                 single-ASN1-type    [0] ABSTRACT-SYNTAX.&Type,
148                                 octet-aligned  [1] IMPLICIT OCTET STRING,            -- X
149                                 arbitrary [2] IMPLICIT BIT STRING }}
150 --   ATN: implementations are advised to use arbitrary (BIT STRING)
151 --   encodings only (see Guidance Material section 2.6.5.21).
152 --   BIT STRING values are not padded to octet boundaries.
155 -- object identifier assignments
156 acse-as-id OBJECT IDENTIFIER ::=
157 {joint-iso-itu-t association-control(2) abstract-syntax(1) apdus(0) version1(1)}
158      -- may be used to reference the abstract syntax of the ACSE APDUs 
159 aCSE-id OBJECT IDENTIFIER ::= 
160 { joint-iso-itu-t association-control(2) ase-id(3) acse-ase(1) version(1) }
161      --  may be used to identify the Association Control ASE.
163 -- top level CHOICE
164 ACSE-apdu  ::=  CHOICE
166                 aarq      AARQ-apdu,     -- ACSE associate request pdu
167                 aare      AARE-apdu,     -- ACSE associate response pdu
168                 rlrq      RLRQ-apdu,     -- ACSE release request pdu
169                 rlre      RLRE-apdu,     -- ACSE release response pdu
170                 abrt      ABRT-apdu,     -- ACSE abort pdu
171                 ...
174 AARQ-apdu  ::=  [ APPLICATION 0 ]  IMPLICIT SEQUENCE
175 {       protocol-version                                                                        [0]     IMPLICIT BIT STRING { version1 (0) } DEFAULT { version1 }, -- X
176                 application-context-name                                        [1]     Application-context-name,
177                 called-AP-title                                                                         [2]     AP-title                                                                        OPTIONAL, -- X
178                 called-AE-qualifier                                                             [3]     AE-qualifier                                                    OPTIONAL, -- X
179                 called-AP-invocation-identifier         [4]     AP-invocation-identifier        OPTIONAL, -- X
180                 called-AE-invocation-identifier         [5]     AE-invocation-identifier        OPTIONAL, -- X
181                 calling-AP-title                                                                        [6]     AP-title                                                                        OPTIONAL,
182                 calling-AE-qualifier                                                    [7]     AE-qualifier                                                    OPTIONAL,
183                 calling-AP-invocation-identifier        [8]     AP-invocation-identifier        OPTIONAL, -- X
184                 calling-AE-invocation-identifier        [9]     AE-invocation-identifier        OPTIONAL, -- X
185                 -- The following field is not present if only the Kernel is used.
186                 -- ATN: For Doc 9705 ed 1/ed 2, only the Kernel is required.
187                 sender-acse-requirements                                        [10]    IMPLICIT ACSE-requirements      OPTIONAL,
188                 -- The following field is only present if the Authentication functional
189                 -- unit is selected.  ATN: not used in Doc 9705 ed 1/ed 2.
190                 mechanism-name                                                                          [11]    IMPLICIT Mechanism-name   OPTIONAL,
191                 -- The following field is only present if the Authentication functional
192                 -- unit is selected.  ATN: use is deprecated in Doc 9705 ed 1/ed 2.
193                 calling-authentication-value                    [12]    EXPLICIT Authentication-value  OPTIONAL,
194                 application-context-name-list                   [13]    IMPLICIT Application-context-name-list  OPTIONAL, -- X
195                 -- The above field is only present if the Application Context Negotiation
196                 -- functional unit is selected - never for ATN
197                 implementation-information                              [29]    IMPLICIT Implementation-data  OPTIONAL, -- X
198                 ..., ...,            -- ATN: Note use of extension marker pair
199                 user-information             [30] IMPLICIT Association-information   OPTIONAL
203 AARE-apdu  ::=  [ APPLICATION 1 ]  IMPLICIT SEQUENCE
204 {               protocol-version                                                                                [0]     IMPLICIT BIT STRING{ version1 (0) }
205                                                                                                                                                                                                                         DEFAULT { version1 }, -- X
206                 application-context-name                                                [1] Application-context-name,
207                 result                                                                                                                  [2]     Associate-result,
208                 result-source-diagnostic                                                [3]     Associate-source-diagnostic,
209                 responding-AP-title                                                                     [4]     AP-title                                                        OPTIONAL, -- X
210                 responding-AE-qualifier                                                 [5]     AE-qualifier                                    OPTIONAL, -- X
211                 responding-AP-invocation-identifier     [6]     AP-invocation-identifier        OPTIONAL, -- X
212                 responding-AE-invocation-identifier     [7]     AE-invocation-identifier        OPTIONAL, -- X
213                 -- The following field is not present if only the Kernel is used.
214                 -- ATN: For Doc 9705 ed 1/ed 2, only the Kernel is required.
215                 responder-acse-requirements                                     [8]     IMPLICIT ACSE-requirements      OPTIONAL,
216                 -- The following field is only present if the Authentication functional
217                 -- unit is selected.  ATN: not used in Doc 9705 ed 1/ed 2.
218                 mechanism-name                                                                                  [9]     IMPLICIT Mechanism-name OPTIONAL,
219                 -- The following field is only present if the Authentication functional
220                 -- unit is selected.  ATN: use is deprecated in Doc 9705 ed 1/ed 2.
221                 responding-authentication-value [10]    EXPLICIT        Authentication-value OPTIONAL,
222                 application-context-name-list           [11]    IMPLICIT        Application-context-name-list
223                                                                                                                                                                                                                                                                                         OPTIONAL, -- X
224                 --  The above field is only present if the Application Context Negotiation
225                 -- functional unit is selected - never for ATN
226                 implementation-information              [29]    IMPLICIT        Implementation-data     OPTIONAL, --X
227                 ..., ...,               -- ATN: Note use of extension marker pair
228                 user-information                                                        [30]    IMPLICIT        Association-information OPTIONAL
232 RLRQ-apdu  ::=  [ APPLICATION 2 ] IMPLICIT SEQUENCE
233 {               reason                                                                                  [0]     IMPLICIT        Release-request-reason  OPTIONAL,
234                 ..., ...,               -- ATN: Note use of extension marker pair
235                 user-information                                                [30]    IMPLICIT Association-information        OPTIONAL
239 RLRE-apdu  ::=  [ APPLICATION 3 ] IMPLICIT SEQUENCE
240 {               reason                                                                                  [0]     IMPLICIT        Release-response-reason OPTIONAL,
241                 ..., ...,       -- ATN: Note use of extension marker pair
242                 user-information                                                [30]    IMPLICIT        Association-information OPTIONAL
246 ABRT-apdu ::= [ APPLICATION 4 ] IMPLICIT SEQUENCE
247 {               abort-source                                                            [0]     IMPLICIT ABRT-source,
248                 abort-diagnostic                                                [1]     IMPLICIT ABRT-diagnostic        OPTIONAL,
249                 -- The above field is not present if only the Kernel is used.
250                 -- ATN: For Doc 9705 ed 1/ed 2, only the Kernel is required.
251                 ..., ...,                       -- ATN: Note use of extension marker pair
252                 user-information                                                [30]    IMPLICIT        Association-information OPTIONAL
256 ABRT-diagnostic ::= ENUMERATED
257 {               no-reason-given (1),
258                 protocol-error  (2),
259                 authentication-mechanism-name-not-recognized (3),
260                 authentication-mechanism-name-required (4),
261                 authentication-failure (5),
262                 authentication-required (6),
263                 ... }
265 ABRT-source     ::=     INTEGER {       acse-service-user (0),  acse-service-provider   (1)}    (0..1, ...)
267 ACSE-requirements       ::=     BIT STRING
268 { authentication (0),   application-context-negotiation(1) }
269 -- ATN commentary: application-context-negotiation (bit 1) is 
270 -- never set for ATN ULCS.  Use of authentication is deprecated
271 -- for Doc 9705 ed 1/ed 2.
273 Application-context-name-list ::= SEQUENCE OF Application-context-name 
274 -- ATN Commentary: the above type is not used for ATN ULCS.
276 Application-context-name ::= OBJECT IDENTIFIER
278 --  ***************************************************************************
279 --  Application-entity title productions follow (not in alphabetical order)
280 --  ***************************************************************************
281 -- MG: asn2wrs cannot handle untagged CHOICEs within either a SET or a SEQUENCE.
282 -- http://wiki.wireshark.org/Asn2wrs_Handmassaging_the_ASN_file
283 AP-title ::= CHOICE { -- ATN: See encoding guidance in 2.5.11
284                                                                                                         -- "form2" is encoded as 0 and "form1" as 1
285                 ap-title-form2 [0]      IMPLICIT        AP-title-form2,   -- Object Identifier form
286                 ap-title-form1 [1]      IMPLICIT        AP-title-form1,   -- X (Directory name form)
287                 ... }
289 AE-qualifier ::= CHOICE {-- ATN: See encoding guidance in 2.5.11
290                                                                                                         -- "form2" is encoded as 0 and "form1" as 1
291                 ae-qualifier-form2      [0]  IMPLICIT   AE-qualifier-form2,   -- INTEGER form
292                 ae-qualifier-form1  [1]  IMPLICIT   AE-qualifier-form1,   -- X (RDN form)
293                 ... }
294 -- ATN commentary: AE-qualifier is set to "app-type" in Doc 9705 1st and 
295 -- 2nd editions.  For forward compatibility, the value should not be 
296 -- analysed.
298 --  When both AP-title and AE-qualifier data values are present in an AARQ or 
299 --  AARE APDU, both have the same form to allow the construction of an 
300 --  AE-title as discussed in CCITT Rec. X.665 | ISO/IEC 9834-6.
302 AP-title-form1 ::= Name  -- ATN: Not used for ATN ULCS
303 --   The value assigned to AP-title-form1 is The Directory Name of an 
304 --   application-process title.
306 AE-qualifier-form1 ::= RelativeDistinguishedName  -- ATN: Not used for ULCS
307 --   The value assigned to AE-qualifier-form1 is the relative distinguished name 
308 --   of a particular application-entity of the application-process identified by 
309 --   AP-title-form1.
311 AP-title-form2 ::= OBJECT IDENTIFIER
313 AE-qualifier-form2 ::= INTEGER
315 -- ATN commentary: The AE-title productions below are commented out,
316 -- as they are not required for ATN ULCS.
317 -- AE-title ::= CHOICE {   
318 --     ae-title-form1    AE-title-form1, 
319 --     ae-title-form2    AE-title-form2,
320 --     ... }
322 -- As defined in CCITT Rec. X.650 | ISO 7498-3, an application-entity title is 
323 -- composed of an application-process title and an application-entity qualifier.  
324 -- The ACSE protocol provides for the transfer of an application-entity title 
325 -- value by the transfer of its component values.  However, the following data 
326 -- type is provided for International Standards that reference a single 
327 -- syntactic structure for AE titles.  (Not used for ATN ULCS)
329 -- AE-title-form1 ::= Name  
330 --    For access to The Directory (ITU-T Rec. X.500-Series | ISO/IEC 9594), an 
331 --    AE title has AE-title-form1.
332 --    This value can be constructed from AP-title-form1 and AE-qualifier-form1 
333 --    values contained in an AARQ or AARE APDU. A discussion of forming an 
334 --    AE-title-form1 from AP-title-form1 and AE-qualifier-form1 may be found in 
335 --    CCITT Rec. X.665 | ISO/IEC 9834-6.
337 -- AE-title-form2 ::= OBJECT IDENTIFIER
338 --  A discussion of forming an AE-title-form2 from AP-title-form2 and 
339 --  AE-qualifier-form2 may be found in CCITT Rec. X.665 | ISO/IEC 9834-6.
341 AE-invocation-identifier ::= INTEGER  -- ATN: not used in ULCS
342 AP-invocation-identifier ::= INTEGER  -- ATN: not used in ULCS
343 --  End of Application-entity title productions
344 --  ***************************************************************************
346 Associate-result  ::= INTEGER
347 {               accepted                                                        (0),
348                 rejected-permanent              (1),
349                 rejected-transient              (2)  } (0..2, ...)
351 Associate-source-diagnostic  ::=  CHOICE
352 { acse-service-user           [1]  INTEGER
353                 {               null  (0),
354                                 no-reason-given  (1),
355                                 application-context-name-not-supported  (2),
356                                 calling-AP-title-not-recognized  (3),
357                                 calling-AP-invocation-identifier-not-recognized  (4),
358                                 calling-AE-qualifier-not-recognized  (5),
359                                 calling-AE-invocation-identifier-not-recognized  (6),
360                                 called-AP-title-not-recognized  (7),
361                                 called-AP-invocation-identifier-not-recognized  (8),
362                                 called-AE-qualifier-not-recognized  (9),
363                                 called-AE-invocation-identifier-not-recognized  (10),
364                                 authentication-mechanism-name-not-recognized  (11),
365                                 authentication-mechanism-name-required  (12),
366                                 authentication-failure  (13),
367                                 authentication-required  (14)      }     (0..14 ,  ...),
368                                 acse-service-provider    [2]    INTEGER
369                         {               null  (0),
370                                         no-reason-given  (1),
371                                         no-common-acse-version  (2) }    (0..2 , ...)
374 Association-information ::=  SEQUENCE SIZE (1, ..., 0 | 2..MAX) OF EXTERNALt
375 -- ATN: No SIZE extensions are defined, only one EXTERNAL element is present
379 Implementation-data ::=  OCTET STRING      -- ATN: Not used for ULCS
381 Mechanism-name ::= OBJECT IDENTIFIER         -- ATN: Not used for ULCS
383 MECHANISM-NAME ::=TYPE-IDENTIFIER  -- ATN: Not used for ULCS
385 ObjectSet MECHANISM-NAME ::= {...}      -- ATN: Not used for ULCS
387 Release-request-reason  ::= INTEGER {normal (0), urgent (1), user-defined (30)} (0 | 1 | 30, ...)
389 Release-response-reason  ::= INTEGER {normal (0), not-finished (1), user-defined (30)} (0 | 1 | 30, ...)
390 -- ATN commentary: For the above two types, see the encoding guidance in 2.5.10
391 -- Values are encoded in 5 bits, not 3 as might be expected.
393 Authentication-value  ::=   CHOICE      -- ATN: use is deprecated in ed 1/ed 2
394 {               charstring   [0]  IMPLICIT OCTET STRING,
395                 bitstring    [1]  IMPLICIT BIT STRING,
396                 external     [2]  IMPLICIT EXTERNAL,
397                 other        [3]  IMPLICIT SEQUENCE {
398 --        other-mechanism-name  MECHANISM-NAME.&id ({ObjectSet}),
399                                         other-mechanism-name  OBJECT IDENTIFIER,
400 --        other-mechanism-value  MECHANISM-NAME.&Type ({ObjectSet}{@.other-mechanism-name}) 
401                                         other-mechanism-value  ANY
402                                         }     -- X
404 -- The abstract syntax of (calling/responding) authentication-value is 
405 -- determined by the authentication mechanism used during association 
406 -- establishment.  The authentication mechanism is either explicitly
407 -- denoted by the &id field (of type OBJECT IDENTIFIER) for a mechanism 
408 -- belonging to the class MECHANISM-NAME, or it is known implicitly by
409 -- prior agreement between the communicating partners.  If the "other" 
410 -- component is chosen, then the "mechanism-name" component is present 
411 -- in accordance with ITU-T Rec. X.680|ISO/IEC 8824. If the value 
412 -- "mechanism-name" occurs in the AARQ-apdu or the AARE-apdu, then that 
413 -- value is the same as the value for "other-mechanism-name"
414 END -- of Connection-Oriented ACSE definitions
417 -- *************************************************************************
418 -- The following definitions are adapted from the Directory standard 
419 -- ISO/IEC 9594-2:1993 | ITU-T Rec. X.501 (1993 E).  In case of any discrepancy,
420 -- the ISO/IEC standard takes precedence.
421 -- *************************************************************************
423 InformationFramework {joint-iso-ccitt ds(5) module(1) informationFramework(1) 2}
424 DEFINITIONS ::=
425 BEGIN
426 EXPORTS Name, RelativeDistinguishedName;
428 Name     ::= CHOICE {rdnSequence  RDNSequence}
429 -- only one CHOICE defined
431 RDNSequence  ::= SEQUENCE OF RelativeDistinguishedName
433 RelativeDistinguishedName ::= SET SIZE (1 .. MAX) OF AttributeTypeAndValue
435 AttributeTypeAndValue ::= SEQUENCE {
436 -- ATN commentary: The following line has been inserted to allow the Name and 
437 -- RelativeDistinguishedName types, as used by ACSE, to be resolved by an 
438 -- ASN.1 compiler, without introducing the unnecessary complexity 
439 -- Of the ATTRIBUTE information object class, which is used in the
440 -- Directory standards.
441       null NULL}
442 -- The "real" components of AttributeTypeAndValue follow.  They have been 
443 -- commented out here, but could be restored if required, for example, for 
444 -- sharing data types with a Directory implementation.  The syntax has been 
445 -- verified by the OSS syntax checker.
446 --   type      ATTRIBUTE.&id ({SupportedAttributes}),
447 --   value     ATTRIBUTE.&Type ({SupportedAttributes} {@type})
450 --SupportedAttributes    ATTRIBUTE ::=
451 --   {objectClass | aliasedEntryName, ...}
453 -- ATN Commentary: ATTRIBUTE is an information object class, specified in 
454 -- ISO/IEC 9594-2 | ITU-T Rec. X.501, using the notation defined in 
455 -- ISO/IEC 8824-2 | ITU-T Rec. X.681.  However, for ULCS implementation, it 
456 -- is only necessary to note that the ACSE CHOICE types AP-title, 
457 -- AE-qualifier and AE-title are all constrained to be the "form 2" variants,
458 -- with types Object Identifier, Integer and Object Identifier, respectively.
459 -- It is however necessary to know the syntax of the "form 1" variants (Name,
460 -- RelativeDistinguishedName and Name, respectively) so that the CHOICE 
461 -- elements can be sorted into canonical order, based on their ASN.1 types, 
462 -- for PER encoding (see 2.5.11).
464 --ATTRIBUTE    ::= CLASS {
465 --   &derivation    ATTRIBUTE OPTIONAL,
466 --   &Type                         OPTIONAL,
467 --   &equality-match     MATCHING-RULE  OPTIONAL,
468 --   &ordering-match     MATCHING-RULE  OPTIONAL,
469 --   &substrings-match   MATCHING-RULE  OPTIONAL,
470 --   &single-valued BOOLEAN   DEFAULT FALSE,
471 --   &collective    BOOLEAN   DEFAULT FALSE,
472 --   &no-user-modification    BOOLEAN DEFAULT FALSE,
473 --   &usage         AttributeUsage DEFAULT userApplications,
474 --   &id            OBJECT IDENTIFIER UNIQUE }
476 --MATCHING-RULE     ::= CLASS {
477 --   &AssertionType      OPTIONAL,
478 --   &id            OBJECT IDENTIFIER UNIQUE }
480 --objectClass ATTRIBUTE ::= {
481 --   &Type          OBJECT IDENTIFIER,
482 --   &id            id-at-objectClass
485 --aliasedEntryName ATTRIBUTE ::= {
486 --   &Type          OBJECT IDENTIFIER,
487 --   &id            id-at-aliasedEntryName
490 --AttributeUsage ::= ENUMERATED {
491 --   userApplications (0),
492 --   directoryOperation (1),
493 --   distributedOperation (2),
494 --   dSAOperation (3) }
496 --id-at-objectClass           OBJECT IDENTIFIER ::= {id-at 0}
497 --id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
498 --id-at        OBJECT IDENTIFIER ::= {joint-iso-ccitt ds(5) attributeType(4)}
500 END -- of Directory Information Framework extracts
502 -- Editor modelines  -  http://www.wireshark.org/tools/modelines.html
504 -- Local variables:
505 -- c-basic-offset: 2
506 -- tab-width: 2
507 -- indent-tabs-mode: t
508 -- End:
510 -- vi: set shiftwidth=2 tabstop=2 noexpandtab:
511 -- :indentSize=2:tabSize=2:noTabs=false: