-- ASN module extracted from ITU-T X.519 (10/2016)

OSIProtocolSpecification {joint-iso-itu-t ds(5) module(1) oSIProtocolSpecification(36) 8} DEFINITIONS ::= BEGIN -- EXPORTS All -- The types and values defined in this module are exported for use in the other ASN.1 -- modules contained within the Directory Specifications, and for the use of other -- applications which will use them to access Directory services. Other applications may -- use them for their own purposes, but this will not constrain extensions and -- modifications needed to maintain or improve the Directory service. IMPORTS -- from Rec. ITU-T X.501 | ISO/IEC 9594-2 commonProtocolSpecification, directoryAbstractService, directoryOSIProtocols, enhancedSecurity, informationFramework FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) usefulDefinitions(0) 8} Name, RelativeDistinguishedName FROM InformationFramework informationFramework -- from Rec. ITU-T X.511 | ISO/IEC 9594-3 SecurityProblem, ServiceProblem, Versions FROM DirectoryAbstractService directoryAbstractService -- from Rec. ITU-T X.519 | ISO/IEC 9594-5 InvokeId, OPERATION FROM CommonProtocolSpecification commonProtocolSpecification APPLICATION-CONTEXT FROM DirectoryOSIProtocols directoryOSIProtocols; -- OSI protocol OSI-PDU{APPLICATION-CONTEXT:protocol} ::= TYPE-IDENTIFIER.&Type ( OsiBind{{protocol}} | OsiBindResult{{protocol}} | OsiBindError{{protocol}} | OsiOperation{{protocol.&Operations}} | OsiUnbind | PresentationAbort ) OsiBind{APPLICATION-CONTEXT:Protocols} ::= SET { mode-selector [0] IMPLICIT SET { mode-value [0] IMPLICIT INTEGER(1)}, normal-mode-parameters [2] IMPLICIT SEQUENCE { protocol-version [0] IMPLICIT BIT STRING {version-1(0)} DEFAULT {version-1}, calling-presentation-selector [1] IMPLICIT Presentation-selector OPTIONAL, called-presentation-selector [2] IMPLICIT Presentation-selector OPTIONAL, presentation-context-definition-list [4] IMPLICIT Context-list, user-data CHOICE { fully-encoded-data [APPLICATION 1] IMPLICIT SEQUENCE SIZE (1) OF SEQUENCE { transfer-syntax-name Transfer-syntax-name OPTIONAL, presentation-context-identifier Presentation-context-identifier, presentation-data-values CHOICE { single-ASN1-type [0] ABSTRACT-SYNTAX.&Type (AARQ-apdu{{Protocols}})}}}}} Presentation-selector ::= OCTET STRING(SIZE (1..4, ..., 5..MAX)) Context-list ::= SEQUENCE SIZE (2) OF SEQUENCE { presentation-context-identifier Presentation-context-identifier, abstract-syntax-name Abstract-syntax-name, transfer-syntax-name-list SEQUENCE OF Transfer-syntax-name } Presentation-context-identifier ::= INTEGER(1..127, ..., 128..MAX) Abstract-syntax-name ::= OBJECT IDENTIFIER Transfer-syntax-name ::= OBJECT IDENTIFIER AARQ-apdu{APPLICATION-CONTEXT:Protocols} ::= [APPLICATION 0] IMPLICIT SEQUENCE { protocol-version [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1}, application-context-name [1] Application-context-name, called-AP-title [2] Name OPTIONAL, called-AE-qualifier [3] RelativeDistinguishedName OPTIONAL, called-AP-invocation-identifier [4] AP-invocation-identifier OPTIONAL, called-AE-invocation-identifier [5] AE-invocation-identifier OPTIONAL, calling-AP-title [6] Name OPTIONAL, calling-AE-qualifier [7] RelativeDistinguishedName OPTIONAL, calling-AP-invocation-identifier [8] AP-invocation-identifier OPTIONAL, calling-AE-invocation-identifier [9] AE-invocation-identifier OPTIONAL, implementation-information [29] IMPLICIT Implementation-data OPTIONAL, user-information [30] IMPLICIT Association-informationBind{{Protocols}}} Association-informationBind{APPLICATION-CONTEXT:Protocols} ::= SEQUENCE SIZE (1..MAX) OF EXTERNAL (WITH COMPONENTS { identification (WITH COMPONENTS {..., syntax ABSENT}), data-value-descriptor ABSENT, data-value (CONTAINING TheOsiBind{{Protocols}})}) Application-context-name ::= OBJECT IDENTIFIER AP-invocation-identifier ::= INTEGER AE-invocation-identifier ::= INTEGER Implementation-data ::= GraphicString TheOsiBind{APPLICATION-CONTEXT:Protocols} ::= [16] APPLICATION-CONTEXT.&bind-operation.&ArgumentType({Protocols}) OsiBindResult{APPLICATION-CONTEXT:Protocols} ::= SET { mode-selector [0] IMPLICIT SET {mode-value [0] IMPLICIT INTEGER(1)}, normal-mode-parameters [2] IMPLICIT SEQUENCE { protocol-version [0] IMPLICIT BIT STRING {version-1(0)} DEFAULT {version-1}, responding-presentation-selector [3] IMPLICIT Presentation-selector OPTIONAL, presentation-context-definition-result-list [5] IMPLICIT SEQUENCE SIZE (2) OF SEQUENCE { result [0] IMPLICIT Result(acceptance), transfer-syntax-name [1] IMPLICIT Transfer-syntax-name }, user-data CHOICE { fully-encoded-data [APPLICATION 1] IMPLICIT SEQUENCE SIZE(1) OF SEQUENCE { transfer-syntax-name Transfer-syntax-name OPTIONAL, presentation-context-identifier Presentation-context-identifier, presentation-data-values CHOICE { single-ASN1-type [0] ABSTRACT-SYNTAX.&Type(AARE-apdu{{Protocols}} )}}}}} Result ::= INTEGER { acceptance (0), user-rejection (1), provider-rejection (2)} AARE-apdu{APPLICATION-CONTEXT:Protocols} ::= [APPLICATION 1] IMPLICIT SEQUENCE { protocol-version [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1}, application-context-name [1] Application-context-name, result [2] Associate-result(accepted), result-source-diagnostic [3] Associate-source-diagnostic, responding-AP-title [4] Name OPTIONAL, responding-AE-qualifier [5] RelativeDistinguishedName OPTIONAL, responding-AP-invocation-identifier [6] AP-invocation-identifier OPTIONAL, responding-AE-invocation-identifier [7] AE-invocation-identifier OPTIONAL, implementation-information [29] IMPLICIT Implementation-data OPTIONAL, user-information [30] IMPLICIT Association-informationBindRes{{Protocols}}} Association-informationBindRes{APPLICATION-CONTEXT:Protocols} ::= SEQUENCE SIZE (1) OF EXTERNAL ( WITH COMPONENTS { identification (WITH COMPONENTS {..., syntax ABSENT}), data-value-descriptor ABSENT, data-value (CONTAINING TheOsiBindRes{{Protocols}})}) 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)}(0..10, ...), acse-service-provider [2] INTEGER { null (0), no-reason-given (1), no-common-acse-version (2)}(0..2, ...)} TheOsiBindRes{APPLICATION-CONTEXT:Protocols} ::= [17] APPLICATION-CONTEXT.&bind-operation.&ResultType({Protocols}) OsiBindError{APPLICATION-CONTEXT:Protocols} ::= CHOICE { normal-mode-parameters SEQUENCE { protocol-version [0] IMPLICIT BIT STRING {version-1(0)} DEFAULT {version-1}, responding-presentation-selector [3] IMPLICIT Presentation-selector OPTIONAL, presentation-context-definition-result-list [5] IMPLICIT Result-list OPTIONAL, provider-reason [10] IMPLICIT Provider-reason OPTIONAL, user-data CHOICE { fully-encoded-data [APPLICATION 1] IMPLICIT SEQUENCE SIZE (1) OF SEQUENCE { transfer-syntax-name Transfer-syntax-name OPTIONAL, presentation-context-identifier Presentation-context-identifier, presentation-data-values CHOICE { single-ASN1-type [0] ABSTRACT-SYNTAX.&Type(AAREerr-apdu{{Protocols}})}}} OPTIONAL}} Result-list ::= SEQUENCE SIZE (2) OF SEQUENCE { result [0] IMPLICIT Result, transfer-syntax-name [1] IMPLICIT Transfer-syntax-name OPTIONAL, provider-reason [2] IMPLICIT INTEGER { reason-not-specified (0), abstract-syntax-not-supported (1), proposed-transfer-syntaxes-not-supported (2)} OPTIONAL} Provider-reason ::= INTEGER { reason-not-specified (0), temporary-congestion (1), local-limit-exceeded (2), called-presentation-address-unknown (3), protocol-version-not-supported (4), default-context-not-supported (5), user-data-not-readable (6), no-PSAP-available (7)} AAREerr-apdu{APPLICATION-CONTEXT:Protocols} ::= [APPLICATION 1] IMPLICIT SEQUENCE { protocol-version [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1}, application-context-name [1] Application-context-name, result [2] Associate-result (rejected-permanent..rejected-transient), result-source-diagnostic [3] Associate-source-diagnostic, responding-AP-title [4] Name OPTIONAL, responding-AE-qualifier [5] RelativeDistinguishedName OPTIONAL, responding-AP-invocation-identifier [6] AP-invocation-identifier OPTIONAL, responding-AE-invocation-identifier [7] AE-invocation-identifier OPTIONAL, implementation-information [29] IMPLICIT Implementation-data OPTIONAL, user-information [30] IMPLICIT Association-informationBindErr{{Protocols}} OPTIONAL } Association-informationBindErr{APPLICATION-CONTEXT:Protocols} ::= SEQUENCE SIZE (1) OF EXTERNAL ( WITH COMPONENTS { identification (WITH COMPONENTS {..., syntax ABSENT}), data-value-descriptor ABSENT, data-value (CONTAINING TheOsiBindErr{{Protocols}})}) TheOsiBindErr{APPLICATION-CONTEXT:Protocols} ::= [18] APPLICATION-CONTEXT.&bind-operation.&Errors.&ParameterType ({Protocols}) OsiUnbind ::= CHOICE { fully-encoded-data [APPLICATION 1] IMPLICIT SEQUENCE SIZE (1) OF SEQUENCE { presentation-context-identifier Presentation-context-identifier, presentation-data-values CHOICE { single-ASN1-type [0] ABSTRACT-SYNTAX.&Type(TheOsiUnbind)}}} TheOsiUnbind ::= [APPLICATION 2] IMPLICIT SEQUENCE { reason [0] IMPLICIT Release-request-reason OPTIONAL} Release-request-reason ::= INTEGER {normal(0)} OsiUnbindResult ::= CHOICE { fully-encoded-data [APPLICATION 1] IMPLICIT SEQUENCE SIZE (1) OF SEQUENCE { presentation-context-identifier Presentation-context-identifier, presentation-data-values CHOICE { single-ASN1-type [0] ABSTRACT-SYNTAX.&Type(TheOsiUnbindRes)}}} TheOsiUnbindRes ::= [APPLICATION 3] IMPLICIT SEQUENCE { reason [0] IMPLICIT Release-response-reason OPTIONAL } Release-response-reason ::= INTEGER {normal(0)} OsiOperation{OPERATION:Operations} ::= CHOICE { fully-encoded-data [APPLICATION 1] IMPLICIT SEQUENCE SIZE (1) OF SEQUENCE { presentation-context-identifier Presentation-context-identifier, presentation-data-values CHOICE { single-ASN1-type [0] ABSTRACT-SYNTAX.&Type(OsiDirectoryOperation {{Operations}})}}} OsiDirectoryOperation{OPERATION:Operations} ::= CHOICE { request OsiReq{{Operations}}, result OsiRes{{Operations}}, error OsiErr{{Operations}}, reject OsiRej} OsiReq{OPERATION:Operations} ::= [1] IMPLICIT SEQUENCE { invokeId InvokeId, opcode OPERATION.&operationCode({Operations}), argument OPERATION.&ArgumentType({Operations}{@opcode}) } OsiRes{OPERATION:Operations} ::= [2] IMPLICIT SEQUENCE { invokeId InvokeId, result SEQUENCE { opcode OPERATION.&operationCode({Operations}), result OPERATION.&ResultType({Operations}{@.opcode}) }} OsiErr{OPERATION:Operations} ::= [3] IMPLICIT SEQUENCE { invokeID InvokeId, errcode OPERATION.&Errors.&errorCode({Operations}), error OPERATION.&Errors.&ParameterType({Operations}{@.errcode}) } OsiRej ::= [4] IMPLICIT SEQUENCE { invokeId InvokeId, problem CHOICE { general [0] IMPLICIT GeneralProblem, invoke [1] IMPLICIT InvokeProblem, returnResult [2] IMPLICIT ReturnResultProblem, returnError [3] IMPLICIT ReturnErrorProblem, ... }, ... } GeneralProblem ::= INTEGER { unrecognizedPDU (0), mistypedPDU (1), badlyStructuredPDU (2) } InvokeProblem ::= INTEGER { duplicateInvocation (0), unrecognizedOperation (1), mistypedArgument (2), resourceLimitation (3), releaseInProgress (4)} ReturnResultProblem ::= INTEGER { unrecognizedInvocation (0), resultResponseUnexpected (1), mistypedResult (2)} ReturnErrorProblem ::= INTEGER { unrecognizedInvocation (0), errorResponseUnexpected (1), unrecognizedError (2), unexpectedError (3), mistypedParameter (4)} PresentationAbort ::= CHOICE { aru-ppdu ARU-PPDU, arp-ppdu ARP-PPDU } ARU-PPDU ::= CHOICE { normal-mode-parameters [0] IMPLICIT SEQUENCE { presentation-context-identifier-list [0] IMPLICIT Presentation-context-identifier-list, user-data CHOICE { fully-encoded-data [APPLICATION 1] IMPLICIT SEQUENCE SIZE(1..MAX) OF SEQUENCE { presentation-context-identifier Presentation-context-identifier, presentation-data-values CHOICE { single-ASN1-type [0] ABSTRACT-SYNTAX.&Type(ABRT-apdu)}}}}} Presentation-context-identifier-list ::= SEQUENCE SIZE (1) OF SEQUENCE { presentation-context-identifier Presentation-context-identifier, transfer-syntax-name Transfer-syntax-name} ABRT-apdu ::= [APPLICATION 4] IMPLICIT SEQUENCE { abort-source [0] IMPLICIT ABRT-source } ABRT-source ::= INTEGER { acse-service-user (0), acse-service-provider (1) } ARP-PPDU ::= SEQUENCE { provider-reason [0] IMPLICIT Abort-reason OPTIONAL, event-identifier [1] IMPLICIT Event-identifier OPTIONAL } Abort-reason ::= INTEGER { reason-not-specified (0), unrecognized-ppdu (1), unexpected-ppdu (2), unexpected-session-service-primitive (3), unrecognized-ppdu-parameter (4), unexpected-ppdu-parameter (5), invalid-ppdu-parameter-value (6)} Event-identifier ::= INTEGER { cp-PPDU (0), cpa-PPDU (1), cpr-PPDU (2), aru-PPDU (3), arp-PPDU (4), td-PPDU (7), s-release-indication (14), s-release-confirm (15) } END -- OSIProtocolSpecification