epan/dissectors/pidl/ C99 drsuapi
[wireshark-sm.git] / epan / dissectors / asn1 / tcap / tcap.asn
blobc9b8d442476ae3041bc30ed18f77e85164a36311
1 TCAPMessages {itu-t recommendation q 773 modules(2) messages(1) version3(3)}
3 DEFINITIONS  ::=
5 BEGIN 
7 --EXPORTS                    OPERATION, ERROR, Component, InvokeId Type;
8 -- WS stuff
9 ExternalPDU ::= [UNIVERSAL 8] IMPLICIT SEQUENCE
10                                         {
11                                         oid OBJECT IDENTIFIER,
12                                         dialog [0] IMPLICIT Dialog1 
13                                         }
14                                         
15                                                         
16 Dialog1 ::= OCTET STRING
17 -- End WS
18 -- Transaction Portion fields
20 TCMessage ::= CHOICE {
21                                 unidirectional                          [APPLICATION 1]         IMPLICIT Unidirectional,
22                                 begin                                           [APPLICATION 2]         IMPLICIT Begin,
23                                 end                                                     [APPLICATION 4]         IMPLICIT End,
24                                 continue                                        [APPLICATION 5]         IMPLICIT Continue,
25                                 abort                                           [APPLICATION 7]         IMPLICIT Abort
28 Unidirectional ::=      SEQUENCE{ 
29         dialoguePortion DialoguePortion OPTIONAL,
30         components              ComponentPortion
31         }
33 Begin ::= SEQUENCE{ 
34         otid                    OrigTransactionID,
35         dialoguePortion DialoguePortion OPTIONAL,
36         components              ComponentPortion OPTIONAL 
37         }
39 End ::= SEQUENCE{ 
40         dtid                    DestTransactionID,
41         dialoguePortion DialoguePortion OPTIONAL,
42         components              ComponentPortion OPTIONAL 
43         }
46 Continue ::= SEQUENCE { 
47         otid                    OrigTransactionID,
48         dtid                    DestTransactionID,
49         dialoguePortion DialoguePortion OPTIONAL,
50     components          ComponentPortion OPTIONAL 
51         }
53 Abort ::= SEQUENCE{
54         dtid                    DestTransactionID,
55         reason                  Reason OPTIONAL
56         }
58 Reason ::= CHOICE{
59         p-abortCause            P-AbortCause,
60         u-abortCause            DialoguePortion 
61         }
62                                                              
63 -- NOTE - When the Abort Message is generated by the Transaction sublayer, a p-Abort Cause may be 
64 -- present. The u-abortCause may be generated by the component sublayer in which case it is an ABRT 
65 -- APDU, or by the TC-User in which case it could be either an ABRT APDU or data in some user-defined
66 -- abstract syntax.
68 --DialoguePortion ::= [APPLICATION 11] EXPLICIT EXTERNAL
70 -- WS adaptation
71 DialoguePortion ::= [APPLICATION  11] IMPLICIT DialogueOC
72 DialogueOC ::= OCTET STRING                                             
74 -- The dialogue portion carries the dialogue control PDUs as value of the external data type.
75 -- The direct reference should be set to { ccitt recommendation q 773 as (1) dialogue-as (1) version (1) }
76 -- if structured dialogue is used and to { ccitt recommendation q 773 as (1) unidialogue-as (2) version (1) }
77 -- if unstructured dialogue is used or any user defined abstract syntax name when only user information
78 -- is carried (e.g. when user information is sent in a 1988 Abort message).
80 OrigTransactionID ::= [APPLICATION 8] IMPLICIT OCTET STRING (SIZE (1..4) )
82 DestTransactionID ::=[APPLICATION 9] IMPLICIT OCTET STRING (SIZE (1..4) )
84 P-AbortCause ::= [APPLICATION 10] IMPLICIT INTEGER {
85         unrecognizedMessageType (0),
86         unrecognizedTransactionID (1),
87         badlyFormattedTransactionPortion (2),
88         incorrectTransactionPortion (3),
89         resourceLimitation (4)}(0..127)
91 -- COMPONENT PORTION. The last field in the transaction portion of the TCAP message is the Component Portion.
92 -- The Component Portion may be absent.
94 ComponentPortion ::= [APPLICATION 12]   IMPLICIT SEQUENCE SIZE (1..MAX) OF Component
96 -- Component Portion fields
97 -- Recommendation X.880 defines four Application Protocol Data Units (APDUs) for invoking
98 -- operations, returning results or error, and for the rejection of invalid PDUs.
99 -- TCAP adds returnResultNotLast to allow for the segmentation of a result.
101 Component ::=   CHOICE {
102         invoke                                  [1] IMPLICIT Invoke,
103         returnResultLast                [2] IMPLICIT ReturnResult,
104         returnError                             [3] IMPLICIT ReturnError,
105         reject                                  [4] IMPLICIT Reject,
106         returnResultNotLast             [7] IMPLICIT ReturnResult 
107         }
109 -- The Components are sequences of data elements.
111 Invoke ::=              SEQUENCE {
112                                 invokeID                                InvokeIdType,
113                                 linkedID                                [0] IMPLICIT InvokeIdType OPTIONAL,
114                                 opCode                  OPERATION,
115                                 parameter        Parameter OPTIONAL }
117 Parameter ::= ANY
119 -- ANY is filled by the single ASN.1 data type following the keyword PARAMETER or the keyword ARGUMENT
120 -- in the type definition of a particular operation.
122 ReturnResult ::=        SEQUENCE {
123         invokeID                                InvokeIdType,
124         resultretres                    SEQUENCE {
125                 opCode                  OPERATION,
126                 parameter               Parameter OPTIONAL
127                 } OPTIONAL
128         }
130 -- ANY is filled by the single ASN.1 data type following the keyword RESULT in the type definition
131 -- of a particular operation.
133 ReturnError ::= SEQUENCE {
134                                 invokeID                                InvokeIdType,
135                                 errorCode                               ErrorCode,
136                                 parameter                               Parameter  OPTIONAL }
138 -- ANY is filled by the single ASN.1 data type following the keyword PARAMETER in the type definition
139 -- of a particular error.
141 Reject ::=              SEQUENCE {
142                                 invokeIDRej CHOICE {
143                                         derivable                       InvokeIdType,
144                                         not-derivable           NULL },
145                                 problem CHOICE {
146                                         generalProblem          [0] IMPLICIT GeneralProblem,
147                                         invokeProblem           [1] IMPLICIT InvokeProblem,
148                                         returnResultProblem     [2] IMPLICIT ReturnResultProblem,
149                                         returnErrorProblem      [3] IMPLICIT ReturnErrorProblem } }
151 InvokeIdType ::=        INTEGER (-128..127)
154 OPERATION       ::=     CHOICE {
155                                                         localValue INTEGER,
156                                                         globalValue OBJECT IDENTIFIER } 
158 ERROR   ::=     CHOICE {
159                         localValue INTEGER,
160                         globalValue OBJECT IDENTIFIER } 
162 -- OPERATIONS
164 -- Operations are specified with the OPERATION MACRO.
165 -- When an operation is specified, the valid parameter set, results, and errors for that operation are indicated.
166 -- Default values and optional parameters are permitted.
168 --OPERATION MACRO               ::=
170 --BEGIN
171 --      TYPE NOTATION           ::=     Parameter Result Errors LinkedOperations
172 --      VALUE NOTATION  ::=     value (VALUE CHOICE {
173 --                                                      localValue INTEGER,
174 --                                                      globalValue OBJECT IDENTIFIER } )
175 --      Parameter                       ::=     ArgKeyword NamedType | empty
176 --      ArgKeyword                      ::=     "ARGUMENT" | "PARAMETER"
177 --      Result                          ::=     "RESULT" ResultType | empty
178 --      Errors                  ::=     "ERRORS" "{"ErrorNames"}" | empty
179 --      LinkedOperations                ::=     "LINKED" "{"LinkedOperationNames"}" | empty
180 --      ResultType                      ::=     NamedType | empty
181 --      ErrorNames                      ::=     ErrorList | empty
182 --      ErrorList                       ::=     Error | ErrorList "," Error
183 --      Error                           ::=     value (ERROR)
184                                                         -- shall reference an error value
185                                                 --| type         shall reference an error type
186                                                         -- if no error value is specified
188 --      LinkedOperationNames    ::=     OperationList | empty
189 --      OperationList           ::=     Operation | OperationList "," Operation
190 --      Operation                       ::=     value (OPERATION)
191                                                         -- shall reference an operation value
192 --                                              | type   shall reference an operation type if
193                                                         -- no operation value is specified
194 --      NamedType                       ::=     identifier type | type
195 --END
197 -- ERRORS
199 -- Errors are specified with the ERROR MACRO.
200 -- When an error is specified, the valid parameters for that error are indicated.
201 -- Default values and optional parameters are permitted.
203 --ERROR MACRO                   ::=
205 --BEGIN
206 --      TYPE NOTATION           ::=     Parameter
207 --      VALUE NOTATION  ::=     value (VALUE CHOICE {
208 --                                                      localValue INTEGER,
209 --                                                      globalValue OBJECT IDENTIFIER } )
210 --      Parameter       ::=     "PARAMETER" NamedType | empty
211 --      NamedType       ::=     identifier type | type
212 --END
214 -- PROBLEMS
216 GeneralProblem          ::=     INTEGER {               unrecognizedComponent (0),
217                                                                 mistypedComponent (1),
218                                                                 badlyStructuredComponent (2) }
220 InvokeProblem           ::=     INTEGER {               duplicateInvokeID (0),
221                                                                 unrecognizedOperation (1),
222                                                                 mistypedParameter (2),
223                                                                 resourceLimitation (3),
224                                                                 initiatingRelease (4),
225                                                                 unrecognizedLinkedID (5),
226                                                                 linkedResponseUnexpected (6),
227                                                                 unexpectedLinkedOperation (7) }
229 ReturnResultProblem     ::=     INTEGER {               unrecognizedInvokeID (0),
230                                                                 returnResultUnexpected (1),
231                                                                 mistypedParameter (2) }
233 ReturnErrorProblem      ::=     INTEGER {               unrecognizedInvokeID (0),
234                                                                 returnErrorUnexpected (1),
235                                                                 unrecognizedError (2),
236                                                                 unexpectedError (3),
237                                                                 mistypedParameter (4) }
240 ErrorCode ::= CHOICE
241                         {
242                                 nationaler              [PRIVATE 19] IMPLICIT INTEGER (-32768..32767),
243                                 privateer               [PRIVATE 20] IMPLICIT INTEGER
244                         }
246 END -- end of the TCAP Package Module