diff options
author | Kenneth Lundin <[email protected]> | 2010-02-19 14:01:57 +0000 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2010-02-19 14:01:57 +0000 |
commit | 18bd1239bee04427340a44f57f993ea92c264e41 (patch) | |
tree | dbb3031dcd2e446eb457ff7ac5229949517d7557 /lib/asn1/test/asn1_SUITE_data/TCAPPackage.asn | |
parent | 729565dc3f8bcf8829508136498aef6a542840f4 (diff) | |
download | otp-18bd1239bee04427340a44f57f993ea92c264e41.tar.gz otp-18bd1239bee04427340a44f57f993ea92c264e41.tar.bz2 otp-18bd1239bee04427340a44f57f993ea92c264e41.zip |
OTP-8463 Support for EXTENSIBILITY IMPLIED and SET/SEQ OF NamedType is
added.
Diffstat (limited to 'lib/asn1/test/asn1_SUITE_data/TCAPPackage.asn')
-rw-r--r-- | lib/asn1/test/asn1_SUITE_data/TCAPPackage.asn | 271 |
1 files changed, 271 insertions, 0 deletions
diff --git a/lib/asn1/test/asn1_SUITE_data/TCAPPackage.asn b/lib/asn1/test/asn1_SUITE_data/TCAPPackage.asn new file mode 100644 index 0000000000..fcaeff3bfa --- /dev/null +++ b/lib/asn1/test/asn1_SUITE_data/TCAPPackage.asn @@ -0,0 +1,271 @@ +TCAPPackage {iso(1) memberbody(2) usa(840) t1-114(10013) modules(0) + tcapPackage(0) version4(4)} DEFINITIONS ::= + +-- iso(1) memberbody(2) +-- usa(840) T1.114(10013) +BEGIN -- defining a module called TCAPPackage which contains type + +-- definitions for the contents of any generic TCAP message +-- exports everything +IMPORTS + OPERATION, ERROR + FROM Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}; +-- TCAPRemoteperationsInformationbjects {iso(1) memberbody(2) usa(840) +-- t1-114(10013) modules(0) information-objects(1) version4(4)}; + +PackageType ::= CHOICE { + unidirectional [PRIVATE 1] IMPLICIT UniTransactionPDU, + queryWithPerm [PRIVATE 2] IMPLICIT TransactionPDU, + queryWithoutPerm [PRIVATE 3] IMPLICIT TransactionPDU, + response [PRIVATE 4] IMPLICIT TransactionPDU, + conversationWithPerm [PRIVATE 5] IMPLICIT TransactionPDU, + conversationWithoutPerm [PRIVATE 6] IMPLICIT TransactionPDU, + abort [PRIVATE 22] IMPLICIT Abort} + +UniTransactionPDU ::= SEQUENCE { + identifier TransactionID, + dialoguePortion DialoguePortion OPTIONAL, + componentPortion ComponentSequence} + +TransactionPDU ::= SEQUENCE { + identifier TransactionID, + dialoguePortion DialoguePortion OPTIONAL, + componentPortion ComponentSequence OPTIONAL} + +-- TransactionPDU should include either a Dialogue Portion, +-- a Component Sequence or both +TransactionID ::= [PRIVATE 7] IMPLICIT OCTET STRING + +-- 0 octets for the Unidirectional, 4 octets for Query, Response & Abort +-- 8 octets for Conversation in the order Originating then Responding TID +Abort ::= SEQUENCE { + identifier TransactionID, + dialoguePortion DialoguePortion OPTIONAL, + causeInformation + CHOICE {abortCause P-Abort-cause, + userInformation UserAbortInformation} OPTIONAL} + +-- When the Abort package is generated by the Transaction sublayer, +-- the P-Abort-cause must be present +P-Abort-cause ::= [PRIVATE 23] IMPLICIT INTEGER { + unrecognizedPackageType(1), incorrectTransactionPortion(2), + badlyStructuredTransactionPortion(3), unassignedRespondingTransactionID(4), + permissionToReleaseProblem(5), -- for further study + resourceUnavailable(6), unrecognizedDialoguePortionID(7), + badlyStructuredDialoguePortion(8), missingDialoguePortion(9), + inconsistentDialoguePortion(10)} + +DialoguePortion ::= [PRIVATE 25] IMPLICIT SEQUENCE { + version ProtocolVersion OPTIONAL, + applicationContext + CHOICE {integerApplicationId IntegerApplicationContext, + objectApplicationId ObjectIDApplicationContext} OPTIONAL, + userInformation UserInformation OPTIONAL, + securityContext + CHOICE {integerSecurityId [0] IMPLICIT INTEGER, + objectSecurityId [1] IMPLICIT OBJECT IDENTIFIER} OPTIONAL, + confidentiality [2] IMPLICIT Confidentiality OPTIONAL} + +ProtocolVersion ::= [PRIVATE 26] IMPLICIT OCTET STRING(SIZE (1)) + +-- 0000 0000 not used +-- 0000 0001 T1.114-1996 +-- 0000 0010 T1.114-2000 +-- other reserved +-- These values can be combined using the bit-wise logical or operation +-- to indicate support for more than one version, e.g. the value 0000 0011 +-- means that both 1996 and 2000 versions are supported +IntegerApplicationContext ::= [PRIVATE 27] IMPLICIT INTEGER + +ObjectIDApplicationContext ::= [PRIVATE 28] IMPLICIT OBJECT IDENTIFIER + +UserInformation ::= [PRIVATE 29] IMPLICIT SEQUENCE OF EXTERNAL + +Confidentiality ::= SEQUENCE { + confidentialityId + CHOICE {integerConfidentialityId [0] IMPLICIT INTEGER, + objectConfidentialityId [1] IMPLICIT OBJECT IDENTIFIER} OPTIONAL, + ... + -- The extension marker indicates the possible presence of items + -- in the confidentiality set that are used by the confidentiality + -- algorithm.--} + +UserAbortInformation ::= [PRIVATE 24] EXTERNAL + +--ComponentSequence ::= [PRIVATE 8] IMPLICIT SEQUENCE OF ComponentPDU +ComponentSequence ::= [PRIVATE 8] IMPLICIT SEQUENCE OF ComponentPDU{NoInvokeId,ProbeAndAcknowledge,ProbeAndAcknowledge} +-- Component Portion specification starts below +ComponentPDU{InvokeId:InvokeIdSet, OPERATION:Invocable, OPERATION:Returnable} + ::= CHOICE { + invokeLast + [PRIVATE 9] IMPLICIT Invoke{{InvokeIdSet}, {Invocable}} + (CONSTRAINED BY { + --invocable.&invokeLast must be TRUE --} ! + RejectProblem:generalincorrectComponentPortion), + returnResultLast [PRIVATE 10] IMPLICIT ReturnResult{{Returnable}}, + returnError + [PRIVATE 11] IMPLICIT ReturnError{{Errors {{Returnable}}}}, + reject [PRIVATE 12] IMPLICIT Reject, + invokeNotLast + [PRIVATE 13] IMPLICIT Invoke{{InvokeIdSet}, {Invocable}} + (CONSTRAINED BY { + --invocable.&invokeLast must be FALSE --} ! + RejectProblem:generalincorrectComponentPortion), + returnResultNotLast [PRIVATE 14] IMPLICIT ReturnResult{{Returnable}}} + (CONSTRAINED BY { -- must conform to the above definition --} ! + RejectProblem:generalunrecognisedComponentType) + +Invoke{InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE { + componentIDs + [PRIVATE 15] IMPLICIT OCTET STRING(SIZE (0..2)) + -- The invoke ID precedes the correlation id. There may be no + -- identifier,only an invoke ID, or both invoke and correlation + -- ID. + (CONSTRAINED BY {-- must be unambiguous --} ! + RejectProblem:invokeduplicateInvocation) + (CONSTRAINED BY {-- correlation ID must identify an-- + -- outstanding operation --} ! + RejectProblem:invokeunrecognisedCorrelationId) + OPTIONAL, + -- operationCode + opcode + OPERATION.&operationCode + -- ((Operations) !RejectProblem:invokeunrecognisedOperation), + ({Operations} !RejectProblem:invokeunrecognisedOperation), + parameter + -- OPERATION.&ParameterType + OPERATION.&ResultType + ({Operations}{@opcode} !RejectProblem:invoke-mistypedArgument) OPTIONAL} + (CONSTRAINED BY { -- must conform to the above definition --} ! + RejectProblem:generalincorrectComponentPortion) + (CONSTRAINED BY { -- must have consistent encoding --} ! + RejectProblem:generalbadlyStructuredCompPortion) + (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} ! + RejectProblem:generalincorrectComponentCoding) + +ReturnResult{OPERATION:Operations} ::= SEQUENCE { + componentID + [PRIVATE 15] IMPLICIT OCTET STRING(SIZE (1)) + (CONSTRAINED BY { + --must be that of an outstanding operation--} ! + RejectProblem: + returnResultunrecognisedCorrelationId) + (CONSTRAINED BY {-- which returns a result --} ! + RejectProblem:returnResultunexpectedReturnResult), + parameter + OPERATION.&ResultType + -- ({Operations}{@opcode} !RejectProblem:returnResultincorrectParameter) +-- ({Operations}{@componentID} !RejectProblem:returnResultincorrectParameter) + OPTIONAL} + (CONSTRAINED BY { -- must conform to the above definition --} ! + RejectProblem:generalincorrectComponentPortion) + (CONSTRAINED BY { -- must have consistent encoding --} ! + RejectProblem:generalbadlyStructuredCompPortion) + (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} ! + RejectProblem:generalincorrectComponentCoding) + +ReturnError{ERROR:Errors} ::= SEQUENCE { + componentID + [PRIVATE 15] IMPLICIT OCTET STRING(SIZE (1)) + (CONSTRAINED BY { + --must be that of an outstanding operation--} ! + RejectProblem:returnErrorunrecognisedCorrelationId) + (CONSTRAINED BY {--which returns an error--} ! + RejectProblem:returnErrorunexpectedReturnError), + errorCode + ERROR.&errorCode({Errors} !RejectProblem:returnErrorunrecognisedError) + (CONSTRAINED BY {-- must be in the &Errors field of the-- + -- associated operation --} !RejectProblem:returnErrorunexpectedError), + parameter + -- Error.&ParameterType + ERROR.&ParameterType + -- ({Errors}{@errorcode} !RejectProblem:returnErrorincorrectParameter) + ({Errors}{@errorCode} !RejectProblem:returnErrorincorrectParameter) + OPTIONAL} + (CONSTRAINED BY { -- must conform to the above definition --} ! + RejectProblem:generalincorrectComponentPortion) + (CONSTRAINED BY { -- must have consistent encoding --} ! + RejectProblem:generalbadlyStructuredCompPortion) + (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} ! + RejectProblem:generalincorrectComponentCoding) + +Reject ::= SEQUENCE { + componentID [PRIVATE 15] IMPLICIT OCTET STRING(SIZE (0..1)), + rejectProblem [PRIVATE 21] IMPLICIT Problem, + parameter + CHOICE {paramSequence [PRIVATE 16] IMPLICIT SEQUENCE {}, + paramSet [PRIVATE 18] IMPLICIT SET {}}} + -- The choice between paramSequence and paramSet is implementation + -- dependent, however paramSequence is preferred. + (CONSTRAINED BY { -- must conform to the above definition --} ! + RejectProblem:generalincorrectComponentPortion) + (CONSTRAINED BY { -- must have consistent encoding --} ! + RejectProblem:generalbadlyStructuredCompPortion) + (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} ! + RejectProblem:generalincorrectComponentCoding) + +-- PROBLEMS, the specification of Problems follows +Problem ::= INTEGER { + generalunrecognisedComponentType(257), generalincorrectComponentPortion(258), + generalbadlyStructuredCompPortion(259), generalincorrectComponentCoding(260), + invokeduplicateInvocation(513), invokeunrecognisedOperation(514), + invokeincorrectParameter(515), invokeunrecognisedCorrelationID(516), + returnResultunrecognisedCorrelationID(769), + returnResultunexpectedReturnResult(770), returnResultincorrectParameter(771), + returnErrorunrecognisedCorrelationID(1025), + returnErrorunexpectedReturnError(1026), returnErrorunrecognisedError(1027), + returnErrorunexpectedError(1028), + returnErrorincorrectParameter(1029), + -- Applications using T1.114-1988 report Transaction portion + -- problems using a Reject component with a problem code in + -- the range 1281e6 + -- It is preferred that other applications report + -- these problems using the Abort package type + transactionunrecognizedPackageType(1281), + transactionincorrectTransPortion(1282), + transactionbadlyStructuredTransPortion(1283), + transactionunassignedRespondingTransID(1284), + transactionpermissionToReleaseProblem(1285), + transactionresourceUnavailable(1286)} + + --added imaginary defs by Bertil + + InvokeId ::= CHOICE +{ + present INTEGER, + absent NULL +} + +noInvokeId InvokeId ::= absent:NULL + +NoInvokeId InvokeId ::= {noInvokeId} + +probe OPERATION ::= + { + ARGUMENT SEQUENCE + { + invokeId [0] InvokeId + } + RESULT ENUMERATED{running(0), finished(1), unknown(2), ...} + ERRORS ErrorSet + ALWAYS RESPONDS TRUE + CODE local:-2 + } + +acknowledge OPERATION ::= + { + ARGUMENT InvokeId + RESULT ENUMERATED{acknowledged(0), unknown(1), ...} + ALWAYS RESPONDS TRUE + CODE local:-3 + } + +ProbeAndAcknowledge OPERATION ::= {probe | acknowledge} + +error1 ERROR ::= {PARAMETER INTEGER PRIORITY 25 CODE local:22} +error2 ERROR ::= {PARAMETER BOOLEAN PRIORITY 15 CODE local:21} +ErrorSet ERROR ::= {error1|error2} +--parameterized object set definition +Errors{OPERATION:OperationSet} ERROR ::= {OperationSet.&Errors} + +END -- end of the TCAPPackage Module |