blob: 738042ea757a74ce6428c20155c22521f7d52e64 [file] [log] [blame]
Pau Espin Pedrolb54acca2021-11-22 20:35:44 +01001/* RUA Templates in TTCN-3
2 * (C) 2021 Pau Espin Pedrol <pespin@sysmocom.de>
3 * All rights reserved.
4 *
5 * Released under the terms of GNU General Public License, Version 2 or
6 * (at your option) any later version.
7 *
8 * SPDX-License-Identifier: GPL-2.0-or-later
9 */
10
11module RUA_Templates {
12
13import from RUA_IEs all;
14import from RUA_CommonDataTypes all;
15import from RUA_Constants all;
16import from RUA_Containers all;
17import from RUA_PDU_Contents all;
18import from RUA_PDU_Descriptions all;
19
Pau Espin Pedrolecd12252021-12-13 18:58:31 +010020/*********************************************************************************
21 * 3GPP TS 25.468
22 *********************************************************************************/
Pau Espin Pedrolb54acca2021-11-22 20:35:44 +010023
Pau Espin Pedrolecd12252021-12-13 18:58:31 +010024template (value) Cause ts_RUA_Cause(template (value) CauseRadioNetwork c) := {
25 radioNetwork := c
Pau Espin Pedrolb54acca2021-11-22 20:35:44 +010026}
Pau Espin Pedrolecd12252021-12-13 18:58:31 +010027
28/* 9.1.3 CONNECT */
Daniel Willmann645b8882022-01-05 08:52:48 +010029template (value) RUA_PDU
30ts_RUA_Connect(template (value) CN_DomainIndicator domain,
31 template (value) bitstring context_id,
32 template (value) Establishment_Cause est_cause,
33 template (value) octetstring ranap_msg) := {
34 initiatingMessage := {
35 procedureCode := id_Connect,
36 criticality := reject,
37 value_ := {
38 connect_ := {
39 protocolIEs := {
40 {
41 id := 7,
42 criticality := reject,
43 value_ := { cN_DomainIndicator := domain }
44 }, {
45 id := 3,
46 criticality := reject,
47 value_ := { context_ID := context_id }
48 }, {
49 id := 6,
50 criticality := reject,
51 value_ := { establishment_Cause := est_cause }
52 }, {
53 id := 4,
54 criticality := reject,
55 value_ := {
56 rANAP_Message := ranap_msg
57 }
58 }
59 },
60 protocolExtensions := omit
61 }
62 }
63 }
64}
65
Pau Espin Pedrolecd12252021-12-13 18:58:31 +010066template (present) RUA_PDU
67tr_RUA_Connect(template (present) CN_DomainIndicator domain := ?,
68 template (present) bitstring context_id := ?,
69 template (present) Establishment_Cause est_cause := ?,
70 template (present) octetstring ranap_msg := ?) := {
71 initiatingMessage := {
72 procedureCode := id_Connect,
73 criticality := reject,
74 value_ := {
75 connect_ := {
76 protocolIEs := {
77 {
78 id := 7,
79 criticality := reject,
80 value_ := { cN_DomainIndicator := domain }
81 }, {
82 id := 3,
83 criticality := reject,
84 value_ := { context_ID := context_id }
85 }, {
86 id := 6,
87 criticality := reject,
88 value_ := { establishment_Cause := est_cause }
89 }, {
90 id := 4,
91 criticality := reject,
92 value_ := {
93 rANAP_Message := ranap_msg
94 }
95 }
96 },
97 protocolExtensions := omit
98 }
99 }
100 }
101}
102
103/* 9.1.4 DIRECT TRANSFER */
104template (value) RUA_PDU
105ts_RUA_DirectTransfer(template (value) CN_DomainIndicator domain,
106 template (value) bitstring context_id,
107 template (value) octetstring ranap_msg) := {
108 initiatingMessage := {
109 procedureCode := id_DirectTransfer,
110 criticality := reject,
111 value_ := {
112 directTransfer := {
113 protocolIEs := {
114 {
115 id := 7,
116 criticality := reject,
117 value_ := { cN_DomainIndicator := domain }
118 }, {
119 id := 3,
120 criticality := reject,
121 value_ := { context_ID := context_id }
122 }, {
123 id := 4,
124 criticality := reject,
125 value_ := { rANAP_Message := ranap_msg }
126 }
127 },
128 protocolExtensions := omit
129 }
130 }
131 }
132}
133template (present) RUA_PDU
134tr_RUA_DirectTransfer(template (present) CN_DomainIndicator domain := ?,
135 template (present) bitstring context_id := ?,
136 template (present) octetstring ranap_msg := ?) := {
137 initiatingMessage := {
138 procedureCode := id_DirectTransfer,
139 criticality := reject,
140 value_ := {
141 directTransfer := {
142 protocolIEs := {
143 {
144 id := 7,
145 criticality := reject,
146 value_ := { cN_DomainIndicator := domain }
147 }, {
148 id := 3,
149 criticality := reject,
150 value_ := { context_ID := context_id }
151 }, {
152 id := 4,
153 criticality := reject,
154 value_ := { rANAP_Message := ranap_msg }
155 }
156 },
157 protocolExtensions := omit
158 }
159 }
160 }
161}
162
163/* 9.1.5 DISCONNECT */
Daniel Willmann645b8882022-01-05 08:52:48 +0100164template (value) RUA_PDU
165ts_RUA_Disconnect(template (value) CN_DomainIndicator domain,
166 template (value) bitstring context_id,
167 template (value) Cause cause,
168 template (value) octetstring ranap_msg) := {
169 initiatingMessage := {
170 procedureCode := 3,
171 criticality := reject,
172 value_ := {
173 disconnect_ := {
174 protocolIEs := {
175 {
176 id := 7,
177 criticality := reject,
178 value_ := { cN_DomainIndicator := domain }
179 }, {
180 id := 3,
181 criticality := reject,
182 value_ := { context_ID := context_id }
183 }, {
184 id := 1,
185 criticality := reject,
186 value_ := { cause := cause }
187 }, {
188 id := 4,
189 criticality := reject,
190 value_ := { rANAP_Message := ranap_msg }
191 }
192 },
193 protocolExtensions := omit
194 }
195 }
196 }
197}
198
Pau Espin Pedrolecd12252021-12-13 18:58:31 +0100199template (present) RUA_PDU
200tr_RUA_Disconnect(template (present) CN_DomainIndicator domain := ?,
201 template (present) bitstring context_id := ?,
202 template (present) Cause cause := ?,
203 template (present) octetstring ranap_msg := ?) := {
204 initiatingMessage := {
205 procedureCode := 3,
206 criticality := reject,
207 value_ := {
208 disconnect_ := {
209 protocolIEs := {
210 {
211 id := 7,
212 criticality := reject,
213 value_ := { cN_DomainIndicator := domain }
214 }, {
215 id := 3,
216 criticality := reject,
217 value_ := { context_ID := context_id }
218 }, {
219 id := 1,
220 criticality := reject,
221 value_ := { cause := cause }
222 }, {
223 id := 4,
224 criticality := reject,
225 value_ := { rANAP_Message := ranap_msg }
226 }
227 },
228 protocolExtensions := omit
229 }
230 }
231 }
232}
233
Neels Hofmeyr8f5c80d2023-06-10 00:22:51 +0200234/* Same as tr_RUA_Disconnect() but without a ranap arg: match also a RUA Disconnect without any RANAP payload. */
235template (present) RUA_PDU
236tr_RUA_Disconnect_opt_ranap(template (present) CN_DomainIndicator domain := ?,
237 template (present) bitstring context_id := ?,
238 template (present) Cause cause := ?) := {
239 initiatingMessage := {
240 procedureCode := 3,
241 criticality := reject,
242 value_ := {
243 disconnect_ := {
244 protocolIEs := {
245 {
246 id := 7,
247 criticality := reject,
248 value_ := { cN_DomainIndicator := domain }
249 }, {
250 id := 3,
251 criticality := reject,
252 value_ := { context_ID := context_id }
253 }, {
254 id := 1,
255 criticality := reject,
256 value_ := { cause := cause }
257 },
258 *
259 },
260 protocolExtensions := omit
261 }
262 }
263 }
264}
265
Pau Espin Pedrolecd12252021-12-13 18:58:31 +0100266/* 9.1.6 CONNECTIONLESS TRANSFER */
267template (value) RUA_PDU
268ts_RUA_ConnectionlessTransfer(template (value) octetstring ranap_msg) := {
269 initiatingMessage := {
270 procedureCode := id_ConnectionlessTransfer,
271 criticality := reject,
272 value_ := {
273 connectionlessTransfer := {
274 protocolIEs := {
275 {
276 id := 4,
277 criticality := reject,
278 value_ := { rANAP_Message := ranap_msg }
279 }
280 },
281 protocolExtensions := omit
282 }
283 }
284 }
285}
Daniel Willmann645b8882022-01-05 08:52:48 +0100286
287template (present) RUA_PDU
288tr_RUA_ConnectionlessTransfer(template (present) octetstring ranap_msg := ?) := {
289 initiatingMessage := {
290 procedureCode := id_ConnectionlessTransfer,
291 criticality := reject,
292 value_ := {
293 connectionlessTransfer := {
294 protocolIEs := {
295 {
296 id := 4,
297 criticality := reject,
298 value_ := { rANAP_Message := ranap_msg }
299 }
300 },
301 protocolExtensions := omit
302 }
303 }
304 }
305}
Pau Espin Pedrolecd12252021-12-13 18:58:31 +0100306};