epan/dissectors/pidl/ C99 drsuapi
[wireshark-sm.git] / epan / dissectors / asn1 / ansi_tcap / TCAPPackage.asn
blob7bd3361bf1ca630089bc0eb29bb5222618fca81d
1 TCAPPackage {iso(1) memberbody(2) usa(840) t1-114(10013) modules(0) tcapPackage(0) version4(4)}
3 DEFINITIONS ::=
4 -- iso(1) memberbody(2)
5 -- usa(840) T1.114(10013)
7 BEGIN
8          -- defining a module called TCAPPackage which contains type
9          -- definitions for the contents of any generic TCAP message
11 --exports everything
13 IMPORTS OPERATION, ERROR FROM
14                 TCAP-Remote-Operations-Information-Objects{iso(1) memberbody(2) usa(840) t1-114(10013) modules(0) information-objects(1) version4(4)};
16 PackageType ::= CHOICE { unidirectional                         [PRIVATE 1] IMPLICIT UniTransactionPDU,
17                                                  queryWithPerm                          [PRIVATE 2] IMPLICIT TransactionPDU,
18                                                  queryWithoutPerm                       [PRIVATE 3] IMPLICIT TransactionPDU,
19                                                  response                                       [PRIVATE 4] IMPLICIT TransactionPDU,
20                                                  conversationWithPerm           [PRIVATE 5] IMPLICIT TransactionPDU,
21                                                  conversationWithoutPerm        [PRIVATE 6] IMPLICIT TransactionPDU,
22                                                  abort                                          [PRIVATE 22] IMPLICIT Abort
23                                                  }
25 UniTransactionPDU ::= SEQUENCE {
26                                                 identifier TransactionID,
27                                                 dialoguePortion DialoguePortion OPTIONAL,
28                                                 componentPortion ComponentSequence
29                                                 }
31 TransactionPDU ::= SEQUENCE {
32                                                 identifier TransactionID,
33                                                 dialoguePortion DialoguePortion OPTIONAL,
34                                                 componentPortion ComponentSequence OPTIONAL
35                                                 }
36 --TransactionPDU should include either a Dialogue Portion, a Component Sequence or both
38 TransactionID ::= [PRIVATE 7] IMPLICIT OCTET STRING
39 -- 0 octets for the Unidirectional, 4 octets for Query, Response & Abort
40 -- 8 octets for Conversation in the order Originating then Responding TID
42 Abort ::= SEQUENCE {
43                                                 identifier                              TransactionID,
44                                                 dialogPortion                   DialoguePortion OPTIONAL,
45                                                 causeInformation CHOICE {
46                                                         abortCause              P-Abort-cause,
47                                                         userInformation UserAbortInformation --OPTIONAL
48                                                 }
49                                         }
50 -- When the Abort package is generated by the Transaction sublayer,
51 -- the P-Abort-cause must be present
53 P-Abort-cause ::= [PRIVATE 23] IMPLICIT INTEGER{
54                                                 unrecognizedPackageType (1),
55                                                 incorrectTransactionPortion (2),
56                                                 badlyStructuredTransactionPortion (3),
57                                                 unassignedRespondingTransactionID (4),
58                                                 permissionToReleaseProblem (5), -- for further study
59                                                 resourceUnavailable (6),
60                                                 unrecognizedDialoguePortionID (7),
61                                                 badlyStructuredDialoguePortion (8),
62                                                 missingDialoguePortion (9),
63                                                 inconsistentDialoguePortion (10)
64                                                 }
66 DialoguePortion ::= [PRIVATE 25] IMPLICIT SEQUENCE {
67                                                 version                 ProtocolVersion OPTIONAL,
68                                                 applicationContext CHOICE {
69                                                         integerApplicationId IntegerApplicationContext,
70                                                         objectApplicationId ObjectIDApplicationContext
71                                                 } OPTIONAL,
72                                                 userInformation UserInformation OPTIONAL,
73                                                 securityContext CHOICE {
74                                                 integerSecurityId [0] IMPLICIT INTEGER,
75                                                 objectSecurityId [1] IMPLICIT OBJECT IDENTIFIER
76                                                 } OPTIONAL,
78                                                 confidentiality [2] IMPLICIT Confidentiality OPTIONAL
81 ProtocolVersion ::=[PRIVATE 26] IMPLICIT OCTET STRING (SIZE (1))
82 --0000 0000 not used
83 --0000 0001 T1.114-1996
84 --0000 0010 T1.114-2000
85 --other reserved
86 --These values can be combined using the bit-wise logical or operation
87 -- to indicate support for more than one version, e.g. the value 0000 0011
88 -- means that both 1996 and 2000 versions are supported
90 IntegerApplicationContext ::= [PRIVATE 27] IMPLICIT INTEGER
92 ObjectIDApplicationContext ::= [PRIVATE 28] IMPLICIT OBJECT IDENTIFIER
94 UserInformation ::= [PRIVATE 29] IMPLICIT SEQUENCE OF EXTERNAL
96 Confidentiality ::= SEQUENCE {
97                                                 confidentialityId CHOICE {
98                                                         integerConfidentialityId [0] IMPLICIT INTEGER,
99                                                         objectConfidentialityId [1] IMPLICIT OBJECT IDENTIFIER
100                                                 } OPTIONAL
101 -- The extension marker indicates the possible presence of items
102 -- in the confidentiality set that are used by the confidentiality
103 -- algorithm.
106 UserAbortInformation ::= [PRIVATE 24] EXTERNAL
108 ComponentSequence ::= [PRIVATE 8] IMPLICIT SEQUENCE OF ComponentPDU
109 -- Component Portion specification starts below
111 ComponentPDU{ InvokeId: InvokeIdSet, OPERATION: Invocable, OPERATION: Returnable } ::=
112         CHOICE {
113         invokeLast                      [PRIVATE 9] IMPLICIT Invoke {{InvokeIdSet}, {Invocable}}
114         (CONSTRAINED BY { --invocable.&invokeLast must be TRUE -- }
115         ! RejectProblem : general-incorrectComponentPortion),
116         returnResultLast        [PRIVATE 10] IMPLICIT ReturnResult{{Returnable}},
117         returnError                     [PRIVATE 11] IMPLICIT ReturnError{{Errors{{Returnable}}}},
118         reject                          [PRIVATE 12] IMPLICIT Reject,
119         invokeNotLast           [PRIVATE 13] IMPLICIT Invoke{{InvokeIdSet}, {Invocable}}
120         (CONSTRAINED BY { --invocable.&invokeLast must be FALSE -- }
121         ! RejectProblem : general-incorrectComponentPortion),
122         returnResultNotLast [PRIVATE 14] IMPLICIT ReturnResult {{Returnable}}
123         }
124         (CONSTRAINED BY { -- must conform to the above definition -- }
125         ! RejectProblem : general-unrecognisedComponentType)
127 Invoke{ InvokeID: InvokeIdSet, OPERATION: Operations } ::= SEQUENCE {
128         componentIDs            [PRIVATE 15] IMPLICIT OCTET STRING (SIZE(0..2))
129                                                                         -- The invoke ID precedes the correlation id. There may be no
130                                                                         -- identifier,only an invoke ID, or both invoke and correlation
131                                                                         --ID's.
132                                                                         (CONSTRAINED BY { -- must be unambiguous -- }
133                                                                         ! RejectProblem : invoke-duplicateInvocation )
134                                                                         (CONSTRAINED BY { -- correlation ID must identify an
135                                                                         -- outstanding operation -- }
136                                                                         ! RejectProblem : invoke-unrecognisedCorrelationId )
137                                                 OPTIONAL,
138         operationCode           OPERATION.&operationCode
139                                                 ((Operations)
140                                                 ! RejectProblem : invoke-unrecognisedOperation),
141         parameter
142                                                 OPERATION.&ParameterType
143                                                 ({Operations}{@opcode}
144                                                 ! RejectProblem : invoke-mistypedArgument ) OPTIONAL
145         }
146         (CONSTRAINED BY { -- must conform to the above definition -- }
147         ! RejectProblem : general-incorrectComponentPortion )
148         (CONSTRAINED BY { -- must have consistent encoding -- }
149         ! RejectProblem : general-badlyStructuredCompPortion )
150         (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- }
151         ! RejectProblem : general-incorrectComponentCoding )
153 ReturnResult{ OPERATION: Operations } ::= SEQUENCE {
154         componentID                     [PRIVATE 15] IMPLICIT OCTET STRING (SIZE(1))
155                                                 (CONSTRAINED BY { --must be that of an outstanding operation--}
156                                                 ! RejectProblem : returnResult-unrecognisedCorrelationId)
157                                                 (CONSTRAINED BY { -- which returns a result -- }
158                                                 ! RejectProblem : returnResult-unexpectedReturnResult),
159         parameter                       OPERATION.&ResultType
160                                                 ({Operations}{@opcode}
161                                                 ! RejectProblem : returnResult-incorrectParameter)
162                                                 OPTIONAL
163         }
164         (CONSTRAINED BY { -- must conform to the above definition -- }
165         ! RejectProblem : general-incorrectComponentPortion )
166         (CONSTRAINED BY { -- must have consistent encoding -- }
167         ! RejectProblem : general-badlyStructuredCompPortion )
168         (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- }
169         ! RejectProblem : general-incorrectComponentCoding )
171 ReturnError{ ERROR: Errors } ::= SEQUENCE {
172         componentID                     [PRIVATE 15] IMPLICIT OCTET STRING (SIZE(1))
173                                                 (CONSTRAINED BY { --must be that of an outstanding operation--}
174                                                 ! RejectProblem : returnError-unrecognisedCorrelationId)
175                                                 (CONSTRAINED BY { --which returns an error-- }
176                                                 ! RejectProblem : returnError-unexpectedReturnError),
177         errorCode                       ERROR.&errorCode
178                                                 ({Errors}
179                                                 ! RejectProblem : returnError-unrecognisedError)
180                                                 (CONSTRAINED BY { -- must be in the &Errors field of the
181                                                 --associated operation -- }
182                                                 ! RejectProblem : returnError-unexpectedError),
183         parameter
184                                                 ERROR.&ParameterType
185                                                 ({Errors}{@errorcode}
186                                                 ! RejectProblem : returnError-incorrectParameter) OPTIONAL
187         }
188         (CONSTRAINED BY { -- must conform to the above definition -- }
189         ! RejectProblem : general-incorrectComponentPortion )
190         (CONSTRAINED BY { -- must have consistent encoding -- }
191         ! RejectProblem : general-badlyStructuredCompPortion )
192         (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- }
193         ! RejectProblem : general-incorrectComponentCoding )
195 Reject ::= SEQUENCE {
196         componentID                     [PRIVATE 15] IMPLICIT OCTET STRING (SIZE(0..1)),
197         rejectProblem           [PRIVATE 21] IMPLICIT Problem,
198         parameter CHOICE {
199                 paramSequence [PRIVATE 16] IMPLICIT SEQUENCE { },
200                 paramSet [PRIVATE 18] IMPLICIT SET { }
201         }       --The choice between paramSequence and paramSet is implementation
202                 --dependent, however paramSequence is preferred.
204         (CONSTRAINED BY { -- must conform to the above definition -- }
205         ! RejectProblem : general-incorrectComponentPortion )
206         (CONSTRAINED BY { -- must have consistent encoding -- }
207         ! RejectProblem : general-badlyStructuredCompPortion )
208         (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- }
209         ! RejectProblem : general-incorrectComponentCoding )
211 -- PROBLEMS, the specification of Problems follows
212 Problem ::= INTEGER {
213         general-unrecognisedComponentType (257),
214         general-incorrectComponentPortion (258),
215         general-badlyStructuredCompPortion (259),
216         general-incorrectComponentCoding (260),
217         invoke-duplicateInvocation (513),
218         invoke-unrecognisedOperation (514),
219         invoke-incorrectParameter (515),
220         invoke-unrecognisedCorrelationID (516),
221         returnResult-unrecognisedCorrelationID (769),
222         returnResult-unexpectedReturnResult (770),
223         returnResult-incorrectParameter (771),
224         returnError-unrecognisedCorrelationID (1025),
225         returnError-unexpectedReturnError (1026),
226         returnError-unrecognisedError (1027),
227         returnError-unexpectedError (1028),
228         returnError-incorrectParameter (1029),
229         -- Applications using T1.114-1988 report Transaction portion
230         -- problems using a Reject component with a problem code in
231         -- the range 1281-1286.
232         -- It is preferred that other applications report
233         -- these problems using the Abort package type
234         transaction-unrecognizedPackageType (1281),
235         transaction-incorrectTransPortion (1282),
236         transaction-badlyStructuredTransPortion (1283),
237         transaction-unassignedRespondingTransID (1284),
238         transaction-permissionToReleaseProblem (1285),
239         transaction-resourceUnavailable (1286)
240         }
242 END -- end of the TCAPPackage Module