-- Module ACSE-1 (X.227 Bis:09/1998)
-- See also the README file
-- See also the index of all ASN.1 assignments needed in this document

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) 7};

--  The data types Name and RelativeDistinguishedName are imported from
--  ITU-T Rec. X.501 | ISO/IEC 9594-2.
--  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 {
  aarq  AARQ-apdu,
  aare  AARE-apdu,
  rlrq  RLRQ-apdu,
  rlre  RLRE-apdu,
  abrt  ABRT-apdu,
  ...,
  --  Extensions for higher level association FU
  adt   A-DT-apdu,
  acrq  ACRQ-apdu,
  acrp  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] IMPLICIT User-Data
}

ACRQ-apdu ::= [APPLICATION 6] IMPLICIT SEQUENCE {
  aso-qualifier              [0] IMPLICIT 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,
  ap-title-form4  AP-title-form4
}

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,
  aso-qualifier-form4  ASO-qualifier-form4
}

--  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

AP-title-form4 ::= [0] IMPLICIT RELATIVE-OID

ASO-qualifier-form4 ::=
  [0] IMPLICIT RELATIVE-OID -- This is a RELATIVE-OID with exactly one arc

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,
              transfer-syntaxes  SEQUENCE OF Transfer-syntax-name}

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

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)}

Concrete-syntax-name ::= Transfer-syntax-name

Transfer-syntax-name ::= 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 SIZE (1, ..., 0 | 2..MAX) 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 88context-identifier,
  presentation-data-values
    CHOICE {simple-ASN1-type
              [0]  ABSTRACT-SYNTAX.&Type
                     (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 ::= CHOICE {
  charstring  [0] IMPLICIT GraphicString,
  bitstring   [1] IMPLICIT BIT STRING,
  external    [2] IMPLICIT EXTERNAL,
  other
    [3] IMPLICIT SEQUENCE {other-mechanism-name
                             MECHANISM-NAME.&id({ObjectSet}),
                           other-mechanism-value
                             MECHANISM-NAME.&Type
                               ({ObjectSet}{@.other-mechanism-name})}
}

--  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

MECHANISM-NAME ::= TYPE-IDENTIFIER

ObjectSet MECHANISM-NAME ::=
  {...}

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

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

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