--/////////////////////////////////////////////////////////////////////////////
--
-- Copyright (c) 2000-2023 Ericsson Telecom AB
--
-- All rights reserved. This program and the accompanying materials
-- are made available under the terms of the Eclipse Public License v2.0
-- which accompanies this distribution, and is available at
-- https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
--/////////////////////////////////////////////////////////////////////////////
--
--  File:               SS_PDU_Defs.asn
--  Rev:                R2A
--  Prodnr:             CNL 113 832
--  Contact:            http://ttcn.ericsson.se
--  Reference:          3GPP TS 24.080 v13.0.0

SS-PDU-Defs 

DEFINITIONS IMPLICIT TAGS ::=

BEGIN

IMPORTS

  Supported-SS-Operations
  FROM
  SS-Protocol

  OPERATION, ERROR, Code
  FROM Remote-Operations-Information-Objects {joint-iso-itu-t
    remote-operations(4) informationObjects(5) version1(0)}
	  
  Invoke{}, ReturnResult{}, ReturnError{}, Reject{},
  Invoke-help{}, ReturnResult-help{}, ReturnError-help{},
  Errors{}, PresentInvokeId, ProblemType
  FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
  remote-operations(4) generic-ROS-PDUs(6) version1(0)};


-- SS-Invoke, SS-ReturnResult, SS-ReturnError, SS-Reject 
-- SS-Invoke-help SS-ReturnResult-help SS-ReturnError-help types
-- (these are accessible from TTCN-3)
SS-Invoke ::= Invoke{{PresentInvokeId}, {Supported-SS-Operations}}

SS-ReturnResult ::= ReturnResult{{Supported-SS-Operations}}

SS-ReturnError ::= ReturnError{{Errors {{Supported-SS-Operations}}}}

SS-Reject ::= Reject --{{Errors {{Supported-SS-Operations}}}}

SS-Invoke-help ::= Invoke-help{{PresentInvokeId}, {Supported-SS-Operations}}

SS-ReturnResult-help ::= ReturnResult-help{{Supported-SS-Operations}}

SS-ReturnError-help ::= ReturnError-help{{Errors {{Supported-SS-Operations}}}}


-- Component Portion fields

-- COMPONENT PORTION. This part is copied from TCAP_PDU_Defs.asn file
-- with TCAP -> SS-TCAP renaming
-- This is needed for internal coding: DON'T USE FROM TTCN !!!
SS-TCAP-ComponentPortion ::= [UNIVERSAL 28] IMPLICIT SEQUENCE (SIZE(1..MAX)) OF
                                                              SS-TCAP-Component


-- COMPONENT TYPE. Recommendation X.229 defines four Application Protocol Data
-- Units (APDUs).

SS-TCAP-Component ::=           CHOICE
  {
  invoke                    [1] IMPLICIT           SS-TCAP-Invoke,
  returnResult              [2] IMPLICIT           SS-TCAP-ReturnResult,
  returnError               [3] IMPLICIT           SS-TCAP-ReturnError,
  reject                    [4] IMPLICIT           SS-TCAP-Reject
  }

-- The Components are sequences of data elements.
SS-TCAP-Invoke ::=              SEQUENCE
  {
  invokeID                            SS-TCAP-InvokeIdType,
  linkedID            [0] IMPLICIT    SS-TCAP-InvokeIdType        OPTIONAL,
  operationCode                       Code,
  parameter                           ANY DEFINED BY operationCode OPTIONAL
  }
     -- ethgry(11/July/02): ANY and ANY DEFINED BY handled in a special,
     -- transparent way at encoding/decoding:
     -- its value notation shall be a simple octet string, which will be
     -- directly copied (i.e without an additional tag and length fields)
     -- into the encoded stream and will be fetched from the received
     -- stream and passed to the abstract level as an octet string.


-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER
-- or the keyword ARGUMENT in the type definition of a particular operation.

SS-TCAP-ReturnResult ::=        SEQUENCE
  {
  invokeID           SS-TCAP-InvokeIdType,
  result             SS-TCAP-ReturnResult-Result OPTIONAL
  }

SS-TCAP-ReturnResult-Result ::= SEQUENCE
  {
   operationCode                   Code,
   parameter                       ANY DEFINED BY operationCode OPTIONAL
      -- ethgry: See comment to Invoke on the use of ANY 
   }

-- ANY is filled by the single ASN.1 data type following the keyword RESULT in
-- the type definition of a particular operation.

SS-TCAP-ReturnError ::=         SEQUENCE
  {
  invokeID                           SS-TCAP-InvokeIdType,
  errorCode                          Code,
  parameter                          ANY DEFINED BY errorCode OPTIONAL
     -- ethgry: See comment to Invoke on the use of ANY
  }

-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER
-- in the type definition of a particular error.
SS-TCAP-Reject ::=              SEQUENCE
  {
  invokeID                                         CHOICE
    {
    derivable                                    SS-TCAP-InvokeIdType,
    not-derivable                                NULL
    },
  problem                                        ProblemType
  }

SS-TCAP-InvokeIdType ::=        INTEGER (-128..127)

END