-- Module ISO8823-PRESENTATION (X.226:07/1994)
-- See also ITU-T X.226 (1994) Amend. 2 (12/1997)
-- See also the index of all ASN.1 assignments needed in this document

ISO8823-PRESENTATION DEFINITIONS ::=
BEGIN

-- 
--  In X.410-1984 mode, the value of the SS-user data parameter of the S-CONNECT request and
--  indication session-service primitives shall be a CP-type value.
-- 
--  In normal mode, the value of the SS-user data parameter of the S-CONNECT request and
--  indication session-service primitives shall be a CP-type value, followed as a requestor's
--  option by zero or more CPC-type values.
IMPORTS
  RTORQapdu, RTOACapdu, RTORJapdu, RTABapdu
    FROM Reliable-Transfer-APDU {joint-iso-itu-t(2) reliable-transfer(3)
      apdus(0)};

-- 
CP-type ::= SET {
  mode-selector           [0] IMPLICIT Mode-selector,
  x410-mode-parameters
    [1] IMPLICIT SET {COMPONENTS OF Reliable-Transfer-APDU.RTORQapdu} OPTIONAL--  This OPTIONAL element shall be absent for a 
  --  nested presentation connection.
  --  Shall be used for X.410 mode only. Shall be bitwise
  --  compatible with CCITT Recommendation X.410-1984.
  --  This shall be the User data parameter of the CP PPDU1) --,
  normal-mode-parameters
    [2] IMPLICIT SEQUENCE {protocol-version
                             [0] IMPLICIT Protocol-version DEFAULT {version-1},
                           calling-presentation-selector
                             [1] IMPLICIT Calling-presentation-selector
                               OPTIONAL,
                           called-presentation-selector
                             [2] IMPLICIT Called-presentation-selector OPTIONAL,
                           presentation-context-definition-list
                             [4] IMPLICIT Presentation-context-definition-list
                               OPTIONAL,
                           default-context-name
                             [6] IMPLICIT Default-context-name OPTIONAL,
                           presentation-requirements
                             [8] IMPLICIT Presentation-requirements OPTIONAL,
                           user-session-requirements
                             [9] IMPLICIT User-session-requirements OPTIONAL-- shall not be present if equal to the Revised session
                           -- requirements parameter --,
                           protocol-options
                             [11]  Protocol-options DEFAULT {},
                           --  shall be absent if no options are offered
                           initiators-nominated-context
                             [12]  Presentation-context-identifier OPTIONAL,
                           --  shall only be present if nominated-context is
                           --  offered in protocol-options
                           extensions
                             [14]  SEQUENCE {...} OPTIONAL,
                           --  to allow for future extensions
                           user-data
                             User-data OPTIONAL} OPTIONAL
  -- Shall be used for normal mode only.
  -- Shall be the parameters of the CP PPDU.
}

--
--  As an initiator's option, the presentation data values contained in a CP PPDU may be
--  encoded more than once, using CPC-type values, to allow the transfer of the same
--  presentation data values using a number of different transfer syntaxes.
--
CPC-type ::=
  User-data

--  Shall be used for normal mode only.
--  Shall not be present if the Presentation context definition list parameter is not present
--  in the CP PPDU. Each instance of this data type shall contain all of the presentation data
--  values which were contained in the User data parameter of the CP PPDU.
--  This shall be the same set of presentation data values which were contained in the CP-type.
-- 
--  The SS-user data parameter value of the S-CONNECT response 
--  and confirm session-service primitives shall be a CPA-PPDU 
--  value when the Result parameter value is "accept". 
--
--
CPA-PPDU ::= SET {
  mode-selector           [0] IMPLICIT Mode-selector,
  x410-mode-parameters
    [1] IMPLICIT SET {COMPONENTS OF Reliable-Transfer-APDU.RTOACapdu} OPTIONAL--  This OPTIONAL element shall be absent for a 
  --  nested presentation connection.
  --  Shall be used for X.410 mode only. Shall be bitwise
  --  compatible with CCITT Recommendation X.410-1984.
  --  This shall be the User data parameter of the CPA PPDU1) --,
  normal-mode-parameters
    [2] IMPLICIT SEQUENCE {protocol-version
                             [0] IMPLICIT Protocol-version DEFAULT {version-1},
                           responding-presentation-selector
                             [3] IMPLICIT Responding-presentation-selector
                               OPTIONAL,
                           presentation-context-definition-result-list
                             [5] IMPLICIT Presentation-context-definition-result-list
                               OPTIONAL,
                           presentation-requirements
                             [8] IMPLICIT Presentation-requirements OPTIONAL,
                           user-session-requirements
                             [9] IMPLICIT User-session-requirements OPTIONAL,
                           --  shall not be present if equal to the Revised session
                           --  requirements parameter 
                           protocol-options
                             [11]  Protocol-options DEFAULT {},
                           --  shall be absent if no options are selected
                           responders-nominated-context
                             [13]  Presentation-context-identifier OPTIONAL,
                           --  shall only be present if nominated-context is 
                           --  selected in protocol-options
                           user-data
                             User-data OPTIONAL} OPTIONAL
  --  Shall be used for normal mode only.
}

--
--
--  The SS-user data parameter value of the S-CONNECT response 
--  and confirm session-service primitives shall be a CPR-PPDU 
--  value when the Result parameter value is "reject by SS-provider" 
--  or "reject by called SS-user". 
--
CPR-PPDU ::= CHOICE {
  x400-mode-parameters    SET {COMPONENTS OF Reliable-Transfer-APDU.RTORJapdu}--  This OPTIONAL element shall be absent for a 
  --  nested presentation connection.
  --  Shall be used for X.410 mode only. Shall be bitwise
  --  compatible with CCITT Recommendation X.410-1984.
  --  This shall be the User data parameter of the CPR PPDU2) --,
  normal-mode-parameters
    SEQUENCE {protocol-version
                [0] IMPLICIT Protocol-version DEFAULT {version-1},
              responding-presentation-selector
                [3] IMPLICIT Responding-presentation-selector OPTIONAL,
              presentation-context-definition-result-list
                [5] IMPLICIT Presentation-context-definition-result-list
                  OPTIONAL,
              default-context-result
                [7] IMPLICIT Default-context-result OPTIONAL,
              provider-reason
                [10] IMPLICIT Provider-reason OPTIONAL,
              user-data                                    User-data OPTIONAL
  }
  --  Shall be used for normal mode only. 
}

--
--
--  The SS-user data parameter of the S-U-ABORT request and indication 
--  service primitives shall be an Abort-type value. 
--
Abort-type ::= CHOICE {
  aru-ppdu  ARU-PPDU--  for a P-U-ABORT -- ,
  arp-ppdu  ARP-PPDU --  for a P-P-ABORT 
}

--
ARU-PPDU ::= CHOICE {
  x400-mode-parameters    SET {COMPONENTS OF Reliable-Transfer-APDU.RTABapdu}--  Shall be used for X.410 mode only. Shall be bitwise
  --  compatible with CCITT Recommendation X.410-1984.
  --  This shall be the User data parameter of the ARU PPDU3. --,
  normal-mode-parameters
    [0] IMPLICIT SEQUENCE {presentation-context-identifier-list
                             [0] IMPLICIT Presentation-context-identifier-list
                               OPTIONAL,
                           user-data
                             User-data OPTIONAL}
  --  Shall be used for normal mode only.
}

--
ARP-PPDU ::= SEQUENCE {
  provider-reason   [0] IMPLICIT Abort-reason OPTIONAL,
  event-identifier  [1] IMPLICIT Event-identifier OPTIONAL
}

--
--
--  The SS-user data parameter value of the S-TYPED-DATA request 
--  and indication service primitives shall be a Typed-data-type value. 
--
Typed-data-type ::= CHOICE {
  acPPDU   [0] IMPLICIT AC-PPDU--  P-ALTER-CONTEXT request and indication -- ,
  acaPPDU  [1] IMPLICIT ACA-PPDU--  P-ALTER-CONTEXT response and confirm -- ,
  ttdPPDU  User-data --  P-TYPED-DATA request and indication
}

--
AC-PPDU ::= SEQUENCE {
  presentation-context-addition-list
    [0] IMPLICIT Presentation-context-addition-list OPTIONAL,
  presentation-context-deletion-list
    [1] IMPLICIT Presentation-context-deletion-list OPTIONAL,
  user-data                           User-data OPTIONAL
}

--
ACA-PPDU ::= SEQUENCE {
  presentation-context-addition-result-list
    [0] IMPLICIT Presentation-context-addition-result-list OPTIONAL,
  presentation-context-deletion-result-list
    [1] IMPLICIT Presentation-context-deletion-result-list OPTIONAL,
  user-data                                  User-data OPTIONAL
}

--
--
--  The SS-user data parameter value of the S-RESYNCHRONIZE request and 
--  indication service primitives shall be an RS-PPDU value. 
--
RS-PPDU ::= SEQUENCE {
  presentation-context-identifier-list
    [0] IMPLICIT Presentation-context-identifier-list OPTIONAL,
  user-data                             User-data OPTIONAL
}

--
--  The SS-user data parameter value of the S-RESYNCHRONIZE response and 
--  confirm service primitives shall be an RSA-PPDU value. 
-- 
RSA-PPDU ::= SEQUENCE {
  presentation-context-identifier-list
    [0] IMPLICIT Presentation-context-identifier-list OPTIONAL,
  user-data                             User-data OPTIONAL
}

--
--
--  The SS-user data parameter values of the S-DATA, S-CAPABILITY-DATA, 
--  S-EXPEDITED-DATA request and indication session-service primitives 
--  and S-CAPABILITY-DATA response and confirm session-service primitives 
--  shall be of type User-data. 
--
--  The SS-user data parameter values of all other session-service 
--  primitives not described above shall be of type User-data. 
--
--
--
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)}

Abstract-syntax-name ::= OBJECT IDENTIFIER

Called-presentation-selector ::= Presentation-selector

Calling-presentation-selector ::= Presentation-selector

Context-list ::=
  SEQUENCE SIZE (0..7, ..., 8..MAX) OF
    SEQUENCE {presentation-context-identifier  Presentation-context-identifier,
              abstract-syntax-name             Abstract-syntax-name,
              transfer-syntax-name-list        SEQUENCE OF Transfer-syntax-name
    }

Default-context-name ::= SEQUENCE {
  abstract-syntax-name  [0] IMPLICIT Abstract-syntax-name,
  transfer-syntax-name  [1] IMPLICIT Transfer-syntax-name
}

Default-context-result ::= Result

Event-identifier ::= INTEGER {
  cp-PPDU(0), cpa-PPDU(1), cpr-PPDU(2), aru-PPDU(3), arp-PPDU(4), ac-PPDU(5),
  aca-PPDU(6), td-PPDU(7), ttd-PPDU(8), te-PPDU(9), tc-PPDU(10), tcc-PPDU(11),
  rs-PPDU(12), rsa-PPDU(13), s-release-indication(14), s-release-confirm(15),
  s-token-give-indication(16), s-token-please-indication(17),
  s-control-give-indication(18), s-sync-minor-indication(19),
  s-sync-minor-confirm(20), s-sync-major-indication(21),
  s-sync-major-confirm(22), s-p-exception-report-indication(23),
  s-u-exception-report-indication(24), s-activity-start-indication(25),
  s-activity-resume-indication(26), s-activity-interrupt-indication(27),
  s-activity-interrupt-confirm(28), s-activity-discard-indication(29),
  s-activity-discard-confirm(30), s-activity-end-indication(31),
  s-activity-end-confirm(32)}

Mode-selector ::= SET {
  mode-value  [0] IMPLICIT INTEGER {x410-1984-mode(0), normal-mode(1)}
}

Presentation-context-addition-list ::= Context-list

Presentation-context-addition-result-list ::= Result-list

Presentation-context-definition-list ::= Context-list

Presentation-context-definition-result-list ::= Result-list

Presentation-context-deletion-list ::=
  SEQUENCE SIZE (0..7, ..., 8..MAX) OF Presentation-context-identifier

Presentation-context-deletion-result-list ::=
  SEQUENCE SIZE (0..7, ..., 8..MAX) OF
    INTEGER {acceptance(0), user-rejection(1)}

Presentation-context-identifier ::= INTEGER(1..127, ..., 128..MAX)

Presentation-context-identifier-list ::=
  SEQUENCE SIZE (0..7, ..., 8..MAX) OF
    SEQUENCE {presentation-context-identifier  Presentation-context-identifier,
              transfer-syntax-name             Transfer-syntax-name}

Presentation-requirements ::= BIT STRING {context-management(0), restoration(1)
}

Presentation-selector ::= OCTET STRING(SIZE (1..4, ..., 5..MAX))

Protocol-options ::= BIT STRING {
  nominated-context(0), short-encoding(1), packed-encoding-rules(2)}

Protocol-version ::= BIT STRING {version-1(0)}

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

Responding-presentation-selector ::= Presentation-selector

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

Result-list ::=
  SEQUENCE SIZE (0..7, ..., 8..MAX) 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),
                                      local-limit-on-DCS-exceeded(3)} OPTIONAL
    }

Transfer-syntax-name ::= OBJECT IDENTIFIER

User-data ::= CHOICE {
  simply-encoded-data  [APPLICATION 0] IMPLICIT Simply-encoded-data,
  fully-encoded-data   [APPLICATION 1] IMPLICIT Fully-encoded-data,
  ...
}

--  Subclause 8.4 defines when each of the two alternatives shall be used.
Simply-encoded-data ::= OCTET STRING

--  See 8.4.1.
Fully-encoded-data ::= SEQUENCE SIZE (1, ..., 2..MAX) OF PDV-list

--  contains one or more PDV-list values.
--  See 8.4.2.
PDV-list ::= 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
                     (CONSTRAINED BY {
                        
                        --  Type corresponding to presentation context identifier -- }),
            octet-aligned     [1] IMPLICIT OCTET STRING,
            arbitrary         [2] IMPLICIT BIT STRING}
  --  Contains one or more presentation data values from the same
  --  presentation context.
  --  See 8.4.2.
}

User-session-requirements ::= BIT STRING {
  half-duplex(0), duplex(1), expedited-data(2), minor-synchronize(3),
  major-synchronize(4), resynchronize(5), activity-management(6),
  negotiated-release(7), capability-data(8), exceptions(9), typed-data(10),
  symmetric-synchronize(11), data-separation(12)}

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