forked from osmocom/wireshark
b9ee9fa694
svn path=/trunk/; revision=52132
243 lines
9.7 KiB
Groff
243 lines
9.7 KiB
Groff
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
|
|
TCAP-Remote-Operations-Information-Objects{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,
|
|
dialogPortion 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
|
|
-- 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 : general-incorrectComponentPortion),
|
|
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 : general-incorrectComponentPortion),
|
|
returnResultNotLast [PRIVATE 14] IMPLICIT ReturnResult {{Returnable}}
|
|
}
|
|
(CONSTRAINED BY { -- must conform to the above definition -- }
|
|
! RejectProblem : general-unrecognisedComponentType)
|
|
|
|
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's.
|
|
(CONSTRAINED BY { -- must be unambiguous -- }
|
|
! RejectProblem : invoke-duplicateInvocation )
|
|
(CONSTRAINED BY { -- correlation ID must identify an
|
|
-- outstanding operation -- }
|
|
! RejectProblem : invoke-unrecognisedCorrelationId )
|
|
OPTIONAL,
|
|
operationCode OPERATION.&operationCode
|
|
((Operations)
|
|
! RejectProblem : invoke-unrecognisedOperation),
|
|
parameter
|
|
OPERATION.&ParameterType
|
|
({Operations}{@opcode}
|
|
! RejectProblem : invoke-mistypedArgument ) OPTIONAL
|
|
}
|
|
(CONSTRAINED BY { -- must conform to the above definition -- }
|
|
! RejectProblem : general-incorrectComponentPortion )
|
|
(CONSTRAINED BY { -- must have consistent encoding -- }
|
|
! RejectProblem : general-badlyStructuredCompPortion )
|
|
(CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- }
|
|
! RejectProblem : general-incorrectComponentCoding )
|
|
|
|
ReturnResult{ OPERATION: Operations } ::= SEQUENCE {
|
|
componentID [PRIVATE 15] IMPLICIT OCTET STRING (SIZE(1))
|
|
(CONSTRAINED BY { --must be that of an outstanding operation--}
|
|
! RejectProblem : returnResult-unrecognisedCorrelationId)
|
|
(CONSTRAINED BY { -- which returns a result -- }
|
|
! RejectProblem : returnResult-unexpectedReturnResult),
|
|
parameter OPERATION.&ResultType
|
|
({Operations}{@opcode}
|
|
! RejectProblem : returnResult-incorrectParameter)
|
|
OPTIONAL
|
|
}
|
|
(CONSTRAINED BY { -- must conform to the above definition -- }
|
|
! RejectProblem : general-incorrectComponentPortion )
|
|
(CONSTRAINED BY { -- must have consistent encoding -- }
|
|
! RejectProblem : general-badlyStructuredCompPortion )
|
|
(CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- }
|
|
! RejectProblem : general-incorrectComponentCoding )
|
|
|
|
ReturnError{ ERROR: Errors } ::= SEQUENCE {
|
|
componentID [PRIVATE 15] IMPLICIT OCTET STRING (SIZE(1))
|
|
(CONSTRAINED BY { --must be that of an outstanding operation--}
|
|
! RejectProblem : returnError-unrecognisedCorrelationId)
|
|
(CONSTRAINED BY { --which returns an error-- }
|
|
! RejectProblem : returnError-unexpectedReturnError),
|
|
errorCode ERROR.&errorCode
|
|
({Errors}
|
|
! RejectProblem : returnError-unrecognisedError)
|
|
(CONSTRAINED BY { -- must be in the &Errors field of the
|
|
--associated operation -- }
|
|
! RejectProblem : returnError-unexpectedError),
|
|
parameter
|
|
ERROR.&ParameterType
|
|
({Errors}{@errorcode}
|
|
! RejectProblem : returnError-incorrectParameter) OPTIONAL
|
|
}
|
|
(CONSTRAINED BY { -- must conform to the above definition -- }
|
|
! RejectProblem : general-incorrectComponentPortion )
|
|
(CONSTRAINED BY { -- must have consistent encoding -- }
|
|
! RejectProblem : general-badlyStructuredCompPortion )
|
|
(CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- }
|
|
! RejectProblem : general-incorrectComponentCoding )
|
|
|
|
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 : general-incorrectComponentPortion )
|
|
(CONSTRAINED BY { -- must have consistent encoding -- }
|
|
! RejectProblem : general-badlyStructuredCompPortion )
|
|
(CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- }
|
|
! RejectProblem : general-incorrectComponentCoding )
|
|
|
|
-- PROBLEMS, the specification of Problems follows
|
|
Problem ::= INTEGER {
|
|
general-unrecognisedComponentType (257),
|
|
general-incorrectComponentPortion (258),
|
|
general-badlyStructuredCompPortion (259),
|
|
general-incorrectComponentCoding (260),
|
|
invoke-duplicateInvocation (513),
|
|
invoke-unrecognisedOperation (514),
|
|
invoke-incorrectParameter (515),
|
|
invoke-unrecognisedCorrelationID (516),
|
|
returnResult-unrecognisedCorrelationID (769),
|
|
returnResult-unexpectedReturnResult (770),
|
|
returnResult-incorrectParameter (771),
|
|
returnError-unrecognisedCorrelationID (1025),
|
|
returnError-unexpectedReturnError (1026),
|
|
returnError-unrecognisedError (1027),
|
|
returnError-unexpectedError (1028),
|
|
returnError-incorrectParameter (1029),
|
|
-- Applications using T1.114-1988 report Transaction portion
|
|
-- problems using a Reject component with a problem code in
|
|
-- the range 1281-1286.
|
|
-- It is preferred that other applications report
|
|
-- these problems using the Abort package type
|
|
transaction-unrecognizedPackageType (1281),
|
|
transaction-incorrectTransPortion (1282),
|
|
transaction-badlyStructuredTransPortion (1283),
|
|
transaction-unassignedRespondingTransID (1284),
|
|
transaction-permissionToReleaseProblem (1285),
|
|
transaction-resourceUnavailable (1286)
|
|
}
|
|
|
|
END -- end of the TCAPPackage Module
|