blob: 9e75cec5d3304c4f6c6e98c9e96b3198a539239d [file] [log] [blame]
Harald Weltece818da2019-07-03 22:03:16 +08001/* S1AP Templates in TTCN-3
2 * (C) 2019 Harald Welte <laforge@gnumonks.org>
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 S1AP_Templates {
12
13import from S1AP_IEs all;
14import from S1AP_CommonDataTypes all;
15import from S1AP_Constants all;
16import from S1AP_Containers all;
17import from S1AP_PDU_Contents all;
18import from S1AP_PDU_Descriptions all;
19
20/*********************************************************************************
21 * non-UE related
22 *********************************************************************************/
23
24/*********************************************************************************
25 * 9.1.8 Management Messages
26 *********************************************************************************/
27
28/* 9.1.8.4 S1 SETUP REQUEST */
29template (value) S1AP_PDU
30ts_S1AP_SetupReq(template (value) Global_ENB_ID p_global_ENB_ID,
31 template (value) SupportedTAs p_supportedTAs,
32 template (value) PagingDRX p_pagingDRXs) := {
33 initiatingMessage := {
34 procedureCode := id_S1Setup,
35 criticality := reject,
36 value_ := {
37 S1SetupRequest := {
38 protocolIEs := {
39 {
40 id := S1AP_Constants.id_Global_ENB_ID,
41 criticality := ignore,
42 value_ := { Global_ENB_ID := p_global_ENB_ID }
43 }, {
44 id := S1AP_Constants.id_SupportedTAs,
45 criticality := reject,
46 value_ := {SupportedTAs := p_supportedTAs}
47 } /* HACK: work around nextepc bug
48 , {
49 id := S1AP_Constants.id_pagingDRX,
50 criticality := ignore,
51 value_ := {PagingDRX := p_pagingDRXs}
52 } */
53 }
54 }
55 }
56 }
57}
58template (present) S1AP_PDU
59tr_S1AP_SetupReq(template (present) Global_ENB_ID p_global_ENB_ID := ?,
60 template (present) SupportedTAs p_supportedTAs := ?,
61 template (present) PagingDRX p_pagingDRXs := ?) := {
62 initiatingMessage := {
63 procedureCode := id_S1Setup,
64 criticality := reject,
65 value_ := {
66 S1SetupRequest := {
67 protocolIEs := {
68 {
69 id := S1AP_Constants.id_Global_ENB_ID,
70 criticality := ignore,
71 value_ := { Global_ENB_ID := p_global_ENB_ID }
Philipp Maier7f521fe2023-07-07 10:23:22 +020072 }, *, {
Harald Weltece818da2019-07-03 22:03:16 +080073 id := S1AP_Constants.id_SupportedTAs,
74 criticality := reject,
75 value_ := {SupportedTAs := p_supportedTAs}
76 }, *
77 }
78 }
79 }
80 }
81}
82
83/* 9.1.8.5 S1 SETUP RESPONSE */
84template (value) S1AP_PDU
85ts_S1AP_SetupResp(template (value) ServedGUMMEIs served_gummeis,
86 template (value) RelativeMMECapacity rel_mme_capacity) := {
87 successfulOutcome := {
88 procedureCode := id_S1Setup,
89 criticality := reject,
90 value_ := {
91 S1SetupResponse := {
92 protocolIEs := {
93 {
94 id := S1AP_Constants.id_ServedGUMMEIs,
95 criticality := reject,
96 value_ := { ServedGUMMEIs := served_gummeis }
97 }, {
98 id := S1AP_Constants.id_RelativeMMECapacity,
99 criticality := ignore,
100 value_ := { RelativeMMECapacity := rel_mme_capacity }
101 }
102 }
103 }
104 }
105 }
106}
107template (present) S1AP_PDU
108tr_S1AP_SetupResp(template (present) ServedGUMMEIs served_gummeis := ?,
109 template (present) RelativeMMECapacity rel_mme_capacity := ?) := {
110 successfulOutcome := {
111 procedureCode := id_S1Setup,
112 criticality := reject,
113 value_ := {
114 S1SetupResponse := {
115 protocolIEs := {
Philipp Maier16ab8392023-07-07 10:26:19 +0200116 *, {
Harald Weltece818da2019-07-03 22:03:16 +0800117 id := S1AP_Constants.id_ServedGUMMEIs,
118 criticality := reject,
119 value_ := { ServedGUMMEIs := served_gummeis }
120 }, {
121 id := S1AP_Constants.id_RelativeMMECapacity,
122 criticality := ignore,
123 value_ := { RelativeMMECapacity := rel_mme_capacity }
124 }, *
125 }
126 }
127 }
128 }
129}
130
131/* 9.1.8.6 S1 SETUP FAILURE */
132template (value) S1AP_PDU
133ts_S1AP_SetupFail(template (value) Cause cause) := {
134 unsuccessfulOutcome := {
135 procedureCode := id_S1Setup,
136 criticality := reject,
137 value_ := {
138 S1SetupFailure := {
139 protocolIEs := {
140 {
141 id := S1AP_Constants.id_Cause,
142 criticality := ignore,
143 value_ := { Cause := cause }
144 }
145 }
146 }
147 }
148 }
149}
150template (present) S1AP_PDU
151tr_S1AP_SetupFail(template (present) Cause cause := ?) := {
152 unsuccessfulOutcome := {
153 procedureCode := id_S1Setup,
154 criticality := reject,
155 value_ := {
156 S1SetupFailure := {
157 protocolIEs := {
158 {
159 id := S1AP_Constants.id_Cause,
160 criticality := ignore,
161 value_ := { Cause := cause }
162 }, *
163 }
164 }
165 }
166 }
167}
168
169/* 9.1.8.1 RESET */
170template (value) S1AP_PDU
171ts_S1AP_Reset(template (value) Cause cause,
172 template (value) ResetType reset_type) := {
173 initiatingMessage := {
174 procedureCode := id_Reset,
175 criticality := reject,
176 value_ := {
177 Reset := {
178 protocolIEs := {
179 {
180 id := S1AP_Constants.id_Cause,
181 criticality := ignore,
182 value_ := { Cause := cause }
183 } , {
184 id := S1AP_Constants.id_ResetType,
185 criticality := reject,
186 value_ := { resetType := reset_type }
187 }
188 }
189 }
190 }
191 }
192}
193template (present) S1AP_PDU
194tr_S1AP_Reset(template (present) Cause cause := ?,
195 template (present) ResetType reset_type := ?) := {
196 initiatingMessage := {
197 procedureCode := id_Reset,
198 criticality := reject,
199 value_ := {
200 Reset := {
201 protocolIEs := {
202 {
203 id := S1AP_Constants.id_Cause,
204 criticality := ignore,
205 value_ := { Cause := cause }
Philipp Maier20bed062023-07-07 10:20:19 +0200206 }, {
Harald Weltece818da2019-07-03 22:03:16 +0800207 id := S1AP_Constants.id_ResetType,
208 criticality := reject,
209 value_ := { resetType := reset_type }
210 }, *
211 }
212 }
213 }
214 }
215}
216
217/* 9.1.8.2 RESET ACKNOWLEDGE */
218template (value) S1AP_PDU
219ts_S1AP_ResetAck(template (value) UE_associatedLogicalS1_ConnectionListResAck val) := {
220 successfulOutcome := {
221 procedureCode := id_Reset,
222 criticality := reject,
223 value_ := {
224 ResetAcknowledge := {
225 protocolIEs := {
226 {
227 id := S1AP_Constants.id_UE_associatedLogicalS1_ConnectionListResAck,
228 criticality := ignore,
229 value_ := { UE_associatedLogicalS1_ConnectionListResAck := val }
230 }
231 }
232 }
233 }
234 }
235}
236template (present) S1AP_PDU
237tr_S1AP_ResetAck(template (present) UE_associatedLogicalS1_ConnectionListResAck val := ?) := {
238 successfulOutcome := {
239 procedureCode := id_Reset,
240 criticality := reject,
241 value_ := {
242 ResetAcknowledge := {
243 protocolIEs := {
244 {
245 id := S1AP_Constants.id_UE_associatedLogicalS1_ConnectionListResAck,
246 criticality := ignore,
247 value_ := { UE_associatedLogicalS1_ConnectionListResAck := val }
248 }, *
249 }
250 }
251 }
252 }
253}
Philipp Maier46059f02023-08-16 14:45:27 +0200254template (present) S1AP_PDU
255tr_S1AP_ResetAck_any := {
256 successfulOutcome := {
257 procedureCode := id_Reset,
258 criticality := reject,
259 value_ := {
260 ResetAcknowledge := {
261 protocolIEs := ?
262 }
263 }
264 }
265}
Harald Weltece818da2019-07-03 22:03:16 +0800266
267
268/*********************************************************************************
269 * 9.1.7 NAS Transport
270 *********************************************************************************/
271
272/* 9.1.7.1 INITIAL UE MESSAGE */
273template (value) S1AP_PDU
274ts_S1AP_InitialUE(template (value) ENB_UE_S1AP_ID p_eNB_value,
275 template (value) NAS_PDU p_nasPdu,
276 template (value) TAI p_tAI,
277 template (value) EUTRAN_CGI p_eUTRAN_CGI,
278 template (value) RRC_Establishment_Cause p_rrcCause) := {
279 initiatingMessage := {
280 procedureCode := id_initialUEMessage,
281 criticality := ignore,
282 value_ := {
283 InitialUEMessage := {
284 protocolIEs := {
285 {
286 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
287 criticality := reject,
288 value_ := {ENB_UE_S1AP_ID := p_eNB_value}
289 }, {
290 id := S1AP_Constants.id_NAS_PDU,
291 criticality := reject,
292 value_ := {nAS_PDU := p_nasPdu}
293 }, {
294 id := S1AP_Constants.id_TAI,
295 criticality := ignore,
296 value_ := {TAI := p_tAI}
297 }, {
298 id := S1AP_Constants.id_EUTRAN_CGI,
299 criticality := ignore,
300 value_ := {EUTRAN_CGI := p_eUTRAN_CGI}
301 }, {
302 id := S1AP_Constants.id_RRC_Establishment_Cause,
303 criticality := ignore,
304 value_ := {RRC_Establishment_Cause := p_rrcCause}
305 }
306 }
307 }
308 }
309 }
310}
311template (present) S1AP_PDU
312tr_S1AP_InitialUE(template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
313 template (present) NAS_PDU p_nasPdu := ?,
314 template (present) TAI p_tAI := ?,
315 template (present) EUTRAN_CGI p_eUTRAN_CGI := ?,
316 template (present) RRC_Establishment_Cause p_rrcCause := ?) := {
317 initiatingMessage := {
318 procedureCode := id_initialUEMessage,
319 criticality := ignore,
320 value_ := {
321 InitialUEMessage := {
322 protocolIEs := {
323 {
324 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
325 criticality := reject,
326 value_ := {ENB_UE_S1AP_ID := p_eNB_value}
327 }, {
328 id := S1AP_Constants.id_NAS_PDU,
329 criticality := reject,
330 value_ := {nAS_PDU := p_nasPdu}
331 }, {
332 id := S1AP_Constants.id_TAI,
333 criticality := ignore,
334 value_ := {TAI := p_tAI}
335 }, {
336 id := S1AP_Constants.id_EUTRAN_CGI,
337 criticality := ignore,
338 value_ := {EUTRAN_CGI := p_eUTRAN_CGI}
339 }, {
340 id := S1AP_Constants.id_RRC_Establishment_Cause,
341 criticality := ignore,
342 value_ := {RRC_Establishment_Cause := p_rrcCause}
343 }, *
344 }
345 }
346 }
347 }
348}
349
350
351/* 9.1.7.2 DOWNLINK NAS TRANSPORT */
352template (value) S1AP_PDU
353ts_S1AP_DlNasTransport(template (value) MME_UE_S1AP_ID mme_id,
354 template (value) ENB_UE_S1AP_ID enb_id,
355 template (value) octetstring p_nasPdu) := {
356 initiatingMessage := {
357 procedureCode := id_downlinkNASTransport,
358 criticality := ignore,
359 value_ := {
360 DownlinkNASTransport := {
361 protocolIEs := {
362 {
363 id := S1AP_Constants.id_MME_UE_S1AP_ID,
364 criticality := reject,
365 value_ := {MME_UE_S1AP_ID := mme_id}
366 }, {
367 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
368 criticality := reject,
369 value_ := {ENB_UE_S1AP_ID := enb_id}
370 }, {
371 id := S1AP_Constants.id_NAS_PDU,
372 criticality := reject,
373 value_ := {nAS_PDU := p_nasPdu}
374 }
375 }
376 }
377 }
378 }
379}
380template (present) S1AP_PDU
381tr_S1AP_DlNasTransport(template (present) MME_UE_S1AP_ID mme_id := ?,
382 template (present) ENB_UE_S1AP_ID enb_id := ?,
383 template (present) octetstring p_nasPdu := ?) := {
384 initiatingMessage := {
385 procedureCode := id_downlinkNASTransport,
386 criticality := ignore,
387 value_ := {
388 DownlinkNASTransport := {
389 protocolIEs := {
390 {
391 id := S1AP_Constants.id_MME_UE_S1AP_ID,
392 criticality := reject,
393 value_ := {MME_UE_S1AP_ID := mme_id}
394 }, {
395 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
396 criticality := reject,
397 value_ := {ENB_UE_S1AP_ID := enb_id}
398 }, {
399 id := S1AP_Constants.id_NAS_PDU,
400 criticality := reject,
401 value_ := {nAS_PDU := p_nasPdu}
402 }, *
403 }
404 }
405 }
406 }
407}
408
409
410/* 9.1.7.3 UPNLINK NAS TRANSPORT */
411template (value) S1AP_PDU
412ts_S1AP_UlNasTransport(template (value) MME_UE_S1AP_ID mme_id,
413 template (value) ENB_UE_S1AP_ID enb_id,
414 template (value) octetstring p_nasPdu,
415 template (value) EUTRAN_CGI p_eUTRAN_CGI,
416 template (value) TAI p_tAI) := {
417 initiatingMessage := {
418 procedureCode := id_uplinkNASTransport,
419 criticality := ignore,
420 value_ := {
421 UplinkNASTransport := {
422 protocolIEs := {
423 {
424 id := S1AP_Constants.id_MME_UE_S1AP_ID,
425 criticality := reject,
426 value_ := {MME_UE_S1AP_ID := mme_id}
427 }, {
428 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
429 criticality := reject,
430 value_ := {ENB_UE_S1AP_ID := enb_id}
431 }, {
432 id := S1AP_Constants.id_NAS_PDU,
433 criticality := reject,
434 value_ := {nAS_PDU := p_nasPdu}
435 }, {
436 id := S1AP_Constants.id_EUTRAN_CGI,
437 criticality := ignore,
438 value_ := {EUTRAN_CGI := p_eUTRAN_CGI}
439 }, {
440 id := S1AP_Constants.id_TAI,
441 criticality := ignore,
442 value_ := {TAI := p_tAI}
443 }
444 }
445 }
446 }
447 }
448}
449template (present) S1AP_PDU
450tr_S1AP_UlNasTransport(template (present) MME_UE_S1AP_ID mme_id := ?,
451 template (present) ENB_UE_S1AP_ID enb_id := ?,
452 template (present) octetstring p_nasPdu := ?,
453 template (present) EUTRAN_CGI p_eUTRAN_CGI := ?,
454 template (present) TAI p_tAI := ?) := {
455 initiatingMessage := {
456 procedureCode := id_uplinkNASTransport,
457 criticality := ignore,
458 value_ := {
459 UplinkNASTransport := {
460 protocolIEs := {
461 {
462 id := S1AP_Constants.id_MME_UE_S1AP_ID,
463 criticality := reject,
464 value_ := {MME_UE_S1AP_ID := mme_id}
465 }, {
466 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
467 criticality := reject,
468 value_ := {ENB_UE_S1AP_ID := enb_id}
469 }, {
470 id := S1AP_Constants.id_NAS_PDU,
471 criticality := reject,
472 value_ := {nAS_PDU := p_nasPdu}
473 }, {
474 id := S1AP_Constants.id_EUTRAN_CGI,
475 criticality := ignore,
476 value_ := {EUTRAN_CGI := p_eUTRAN_CGI}
477 }, {
478 id := S1AP_Constants.id_TAI,
479 criticality := ignore,
480 value_ := {TAI := p_tAI}
481 }, *
482 }
483 }
484 }
485 }
486}
487
488/*********************************************************************************
489 * 9.1.4 Context Management
490 *********************************************************************************/
491
492/* 9.1.4.1 INITIAL CONTEXT SETUP REQ */
493template (value) S1AP_PDU
494ts_S1AP_IntialCtxSetupReq(template (value) MME_UE_S1AP_ID mme_id,
495 template (value) ENB_UE_S1AP_ID enb_id,
496 template (value) UEAggregateMaximumBitrate max_br,
497 template (value) E_RABToBeSetupListCtxtSUReq rab_setup_items,
498 template (value) UESecurityCapabilities ue_sec_par,
499 template (value) SecurityKey sec_key) := {
500 initiatingMessage := {
501 procedureCode := id_InitialContextSetup,
502 criticality := reject,
503 value_ := {
504 initialContextSetupRequest := {
505 protocolIEs := {
506 {
507 id := S1AP_Constants.id_MME_UE_S1AP_ID,
508 criticality := reject,
509 value_ := {MME_UE_S1AP_ID := mme_id}
510 }, {
511 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
512 criticality := reject,
513 value_ := {ENB_UE_S1AP_ID := enb_id}
514 }, {
515 id := S1AP_Constants.id_uEaggregateMaximumBitrate,
516 criticality := reject,
517 value_ := {UEAggregateMaximumBitrate := max_br}
518 }, {
519 id := S1AP_Constants.id_E_RABToBeSetupListCtxtSUReq,
520 criticality := reject,
521 value_ := {E_RABToBeSetupListCtxtSUReq := rab_setup_items}
522 }, {
523 id := S1AP_Constants.id_UESecurityCapabilities,
524 criticality := reject,
525 value_ := {UESecurityCapabilities := ue_sec_par}
526 }, {
527 id := S1AP_Constants.id_SecurityKey,
528 criticality := reject,
529 value_ := {SecurityKey := sec_key}
530 }
531 }
532 }
533 }
534 }
535}
536template (present) S1AP_PDU
537tr_S1AP_IntialCtxSetupReq(template (present) MME_UE_S1AP_ID mme_id := ?,
538 template (present) ENB_UE_S1AP_ID enb_id := ?,
539 template (present) UEAggregateMaximumBitrate max_br := ?,
540 template (present) E_RABToBeSetupListCtxtSUReq rab_setup_items := ?,
541 template (present) UESecurityCapabilities ue_sec_par := ?,
542 template (present) SecurityKey sec_key := ?) := {
543 initiatingMessage := {
544 procedureCode := id_InitialContextSetup,
545 criticality := reject,
546 value_ := {
547 initialContextSetupRequest := {
548 protocolIEs := {
549 {
550 id := S1AP_Constants.id_MME_UE_S1AP_ID,
551 criticality := reject,
552 value_ := {MME_UE_S1AP_ID := mme_id}
553 }, {
554 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
555 criticality := reject,
556 value_ := {ENB_UE_S1AP_ID := enb_id}
557 }, {
558 id := S1AP_Constants.id_uEaggregateMaximumBitrate,
559 criticality := reject,
560 value_ := {UEAggregateMaximumBitrate := max_br}
561 }, {
562 id := S1AP_Constants.id_E_RABToBeSetupListCtxtSUReq,
563 criticality := reject,
564 value_ := {E_RABToBeSetupListCtxtSUReq := rab_setup_items}
565 }, {
566 id := S1AP_Constants.id_UESecurityCapabilities,
567 criticality := reject,
568 value_ := {UESecurityCapabilities := ue_sec_par}
569 }, {
570 id := S1AP_Constants.id_SecurityKey,
571 criticality := reject,
572 value_ := {SecurityKey := sec_key}
573 }, *
574 }
575 }
576 }
577 }
578}
579
580/* 9.1.4.3 INITIAL CONTEXT SETUP RESPONSE */
581template (value) S1AP_PDU
582ts_S1AP_InitialCtxSetupResp(template (value) MME_UE_S1AP_ID mme_id,
583 template (value) ENB_UE_S1AP_ID enb_id,
584 template (value) E_RABSetupListCtxtSURes rab_setup_items,
585 template (value) E_RABList rab_items) := {
586 successfulOutcome := {
587 procedureCode := id_InitialContextSetup,
588 criticality := reject,
589 value_ := {
590 InitialContextSetupResponse := {
591 protocolIEs := {
592 {
593 id := S1AP_Constants.id_MME_UE_S1AP_ID,
594 criticality := reject,
595 value_ := {MME_UE_S1AP_ID := mme_id}
596 }, {
597 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
598 criticality := reject,
599 value_ := {ENB_UE_S1AP_ID := enb_id}
600 }, {
601 id := S1AP_Constants.id_E_RABSetupListBearerSURes,
602 criticality := ignore,
603 value_ := {E_RABSetupListCtxtSURes := rab_setup_items}
604 }, {
605 id := S1AP_Constants.id_E_RABFailedToSetupListBearerSURes,
606 criticality := ignore,
607 value_ := {E_RABList := rab_items}
608 }
609 }
610 }
611 }
612 }
613}
614template (present) S1AP_PDU
615tr_S1AP_InitialCtxSetupResp(template (present) MME_UE_S1AP_ID mme_id := ?,
616 template (present) ENB_UE_S1AP_ID enb_id := ?,
617 template (present) E_RABSetupListCtxtSURes rab_setup_items := ?,
618 template (present) E_RABList rab_items := ?) := {
619 successfulOutcome := {
620 procedureCode := id_InitialContextSetup,
621 criticality := reject,
622 value_ := {
623 InitialContextSetupResponse := {
624 protocolIEs := {
625 {
626 id := S1AP_Constants.id_MME_UE_S1AP_ID,
627 criticality := reject,
628 value_ := {MME_UE_S1AP_ID := mme_id}
629 }, {
630 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
631 criticality := reject,
632 value_ := {ENB_UE_S1AP_ID := enb_id}
633 }, {
634 id := S1AP_Constants.id_E_RABSetupListBearerSURes,
635 criticality := ignore,
636 value_ := {E_RABSetupListCtxtSURes := rab_setup_items}
637 }, {
638 id := S1AP_Constants.id_E_RABFailedToSetupListBearerSURes,
639 criticality := ignore,
640 value_ := {E_RABList := rab_items}
Philipp Maier05c6ab22023-07-07 10:28:57 +0200641 }, *
Harald Weltece818da2019-07-03 22:03:16 +0800642 }
643 }
644 }
645 }
646}
647
648/* 9.1.4.4 INITIAL CONTEXT SETUP FAILURE */
649template (value) S1AP_PDU
650ts_S1AP_InitialCtxSetupFail(template (value) MME_UE_S1AP_ID mme_id,
651 template (value) ENB_UE_S1AP_ID enb_id,
652 template (value) Cause cause) := {
653 unsuccessfulOutcome := {
654 procedureCode := id_InitialContextSetup,
655 criticality := reject,
656 value_ := {
657 InitialContextSetupFailure := {
658 protocolIEs := {
659 {
660 id := S1AP_Constants.id_MME_UE_S1AP_ID,
661 criticality := ignore,
662 value_ := {MME_UE_S1AP_ID := mme_id}
663 }, {
664 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
665 criticality := ignore,
666 value_ := {ENB_UE_S1AP_ID := enb_id}
667 }, {
668 id := S1AP_Constants.id_Cause,
669 criticality := ignore,
670 value_ := {Cause := cause}
671 }
672 }
673 }
674 }
675 }
676}
677template (present) S1AP_PDU
678tr_S1AP_InitialCtxSetupFail(template (present) MME_UE_S1AP_ID mme_id := ?,
679 template (present) ENB_UE_S1AP_ID enb_id := ?,
680 template (present) Cause cause := ?) := {
681 unsuccessfulOutcome := {
682 procedureCode := id_InitialContextSetup,
683 criticality := reject,
684 value_ := {
685 InitialContextSetupFailure := {
686 protocolIEs := {
687 {
688 id := S1AP_Constants.id_MME_UE_S1AP_ID,
689 criticality := ignore,
690 value_ := {MME_UE_S1AP_ID := mme_id}
691 }, {
692 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
693 criticality := ignore,
694 value_ := {ENB_UE_S1AP_ID := enb_id}
695 }, {
696 id := S1AP_Constants.id_Cause,
697 criticality := ignore,
698 value_ := {Cause := cause}
699 }, *
700 }
701 }
702 }
703 }
704}
705
706/* 9.1.4.5 UE CONTEXT RELEASE REQUEST */
707template (value) S1AP_PDU
708ts_S1AP_UeContextReleaseReq(template (value) MME_UE_S1AP_ID mme_id,
709 template (value) ENB_UE_S1AP_ID enb_id,
710 template (value) Cause cause) := {
711 initiatingMessage := {
712 procedureCode := id_UEContextReleaseRequest,
713 criticality := reject,
714 value_ := {
715 UEContextReleaseRequest := {
716 protocolIEs := {
717 {
718 id := S1AP_Constants.id_MME_UE_S1AP_ID,
719 criticality := ignore,
720 value_ := {MME_UE_S1AP_ID := mme_id}
721 }, {
722 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
723 criticality := ignore,
724 value_ := {ENB_UE_S1AP_ID := enb_id}
725 }, {
726 id := S1AP_Constants.id_Cause,
727 criticality := ignore,
728 value_ := {Cause := cause}
729 }
730 }
731 }
732 }
733 }
734}
735template (present) S1AP_PDU
736tr_S1AP_UeContextReleaseReq(template (present) MME_UE_S1AP_ID mme_id := ?,
737 template (present) ENB_UE_S1AP_ID enb_id := ?,
738 template (present) Cause cause := ?) := {
739 initiatingMessage := {
740 procedureCode := id_UEContextReleaseRequest,
741 criticality := reject,
742 value_ := {
743 UEContextReleaseRequest := {
744 protocolIEs := {
745 {
746 id := S1AP_Constants.id_MME_UE_S1AP_ID,
747 criticality := ignore,
748 value_ := {MME_UE_S1AP_ID := mme_id}
749 }, {
750 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
751 criticality := ignore,
752 value_ := {ENB_UE_S1AP_ID := enb_id}
753 }, {
754 id := S1AP_Constants.id_Cause,
755 criticality := ignore,
756 value_ := {Cause := cause}
757 }, *
758 }
759 }
760 }
761 }
762}
763
764/* 9.1.4.6 UE CONTEXT RELEASE COMMAND */
765template (value) S1AP_PDU
766ts_S1AP_UeContextReleaseCmd(template (value) UE_S1AP_IDs mme_ids,
767 template (value) Cause cause) := {
768 initiatingMessage := {
769 procedureCode := id_UEContextRelease,
770 criticality := reject,
771 value_ := {
772 UEContextReleaseCommand := {
773 protocolIEs := {
774 {
775 id := S1AP_Constants.id_UE_S1AP_IDs,
776 criticality := ignore,
777 value_ := {UE_S1AP_IDs := mme_ids}
778 }, {
779 id := S1AP_Constants.id_Cause,
780 criticality := ignore,
781 value_ := {Cause := cause}
782 }
783 }
784 }
785 }
786 }
787}
788template (present) S1AP_PDU
789tr_S1AP_UeContextReleaseCmd(template (present) UE_S1AP_IDs ue_ids := ?,
790 template (present) Cause cause := ?) := {
791 initiatingMessage := {
792 procedureCode := id_UEContextRelease,
793 criticality := reject,
794 value_ := {
795 UEContextReleaseCommand := {
796 protocolIEs := {
797 {
798 id := S1AP_Constants.id_UE_S1AP_IDs,
799 criticality := reject,
800 value_ := {UE_S1AP_IDs := ue_ids}
801 }, {
802 id := S1AP_Constants.id_Cause,
803 criticality := ignore,
804 value_ := {Cause := cause}
805 }, *
806 }
807 }
808 }
809 }
810}
811
812/* 9.1.4.7 UE CONTEXT RELEASE COMPLETE */
813template (value) S1AP_PDU
814ts_S1AP_UeContextReleaseCompl(template (value) MME_UE_S1AP_ID mme_id,
815 template (value) ENB_UE_S1AP_ID enb_id) := {
816 successfulOutcome := {
817 procedureCode := id_UEContextRelease,
818 criticality := reject,
819 value_ := {
820 UEContextReleaseComplete := {
821 protocolIEs := {
822 {
823 id := S1AP_Constants.id_MME_UE_S1AP_ID,
824 criticality := reject,
825 value_ := {MME_UE_S1AP_ID := mme_id}
826 }, {
827 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
828 criticality := ignore,
829 value_ := {ENB_UE_S1AP_ID := enb_id}
830 }
831 }
832 }
833 }
834 }
835}
836template (present) S1AP_PDU
837tr_S1AP_UeContextReleaseCompl(template (present) MME_UE_S1AP_ID mme_id := ?,
838 template (present) ENB_UE_S1AP_ID enb_id := ?) := {
839 successfulOutcome := {
840 procedureCode := id_UEContextRelease,
841 criticality := reject,
842 value_ := {
843 UEContextReleaseComplete := {
844 protocolIEs := {
845 {
846 id := S1AP_Constants.id_MME_UE_S1AP_ID,
847 criticality := ignore,
848 value_ := {MME_UE_S1AP_ID := mme_id}
849 }, {
850 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
851 criticality := ignore,
852 value_ := {ENB_UE_S1AP_ID := enb_id}
853 }, *
854 }
855 }
856 }
857 }
858}
859
860/* 9.1.4.20 CONNECTION ESTABLISHMENT INDICATION */
861template (value) S1AP_PDU
862ts_S1AP_ConnEstInd(template (value) MME_UE_S1AP_ID mme_id,
863 template (value) ENB_UE_S1AP_ID enb_id) := {
864 initiatingMessage := {
865 procedureCode := id_ConnectionEstablishmentIndication,
866 criticality := reject,
867 value_ := {
868 ConnectionEstablishmentIndication := {
869 protocolIEs := {
870 {
871 id := S1AP_Constants.id_MME_UE_S1AP_ID,
872 criticality := ignore,
873 value_ := {MME_UE_S1AP_ID := mme_id}
874 }, {
875 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
876 criticality := ignore,
877 value_ := {ENB_UE_S1AP_ID := enb_id}
878 }
879 }
880 }
881 }
882 }
883}
884template (present) S1AP_PDU
885tr_S1AP_ConnEstInd(template (present) MME_UE_S1AP_ID mme_id := ?,
886 template (present) ENB_UE_S1AP_ID enb_id := ?) := {
887 initiatingMessage := {
888 procedureCode := id_ConnectionEstablishmentIndication,
889 criticality := reject,
890 value_ := {
891 ConnectionEstablishmentIndication := {
892 protocolIEs := {
893 {
894 id := S1AP_Constants.id_MME_UE_S1AP_ID,
895 criticality := ignore,
896 value_ := {MME_UE_S1AP_ID := mme_id}
897 }, {
898 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
899 criticality := ignore,
900 value_ := {ENB_UE_S1AP_ID := enb_id}
901 }, *
902 }
903 }
904 }
905 }
906}
907
Philipp Maier7ac8d332023-07-24 11:12:45 +0200908/* 9.1.14 eNB DIRECT INFORMATION TRANSFER */
909template (value) S1AP_PDU
910ts_S1AP_eNBDirectInfTrans(template (value) Inter_SystemInformationTransferType inf) := {
911 initiatingMessage := {
912 procedureCode := id_eNBDirectInformationTransfer,
913 criticality := reject,
914 value_ := {
915 eNBDirectInformationTransfer := {
916 protocolIEs := {
917 {
918 id := S1AP_Constants.id_Inter_SystemInformationTransferTypeEDT,
919 criticality := ignore,
920 value_ := {Inter_SystemInformationTransferType := inf}
921 }
922 }
923 }
924 }
925 }
926}
Harald Weltece818da2019-07-03 22:03:16 +0800927
Philipp Maier7ac8d332023-07-24 11:12:45 +0200928/* 9.1.15 MME DIRECT INFORMATION TRANSFER */
929template (present) S1AP_PDU
930tr_S1AP_MMEDirectInfTrans(template (present) Inter_SystemInformationTransferType inf := ?) := {
931 initiatingMessage := {
932 procedureCode := id_MMEDirectInformationTransfer,
933 criticality := ignore,
934 value_ := {
935 MMEDirectInformationTransfer := {
936 protocolIEs := {
937 {
938 id := S1AP_Constants.id_Inter_SystemInformationTransferTypeMDT,
939 criticality := reject,
940 value_ := {Inter_SystemInformationTransferType := inf}
941 }, *
942 }
943 }
944 }
945 }
946}
Harald Weltece818da2019-07-03 22:03:16 +0800947
948/* all non-UE-related S1AP messages */
949template (present) S1AP_PDU
950tr_S1AP_nonUErelated := (tr_S1AP_SetupReq, tr_S1AP_SetupResp, tr_S1AP_SetupFail,
Philipp Maier46059f02023-08-16 14:45:27 +0200951 tr_S1AP_Reset, tr_S1AP_ResetAck, tr_S1AP_ResetAck_any, tr_S1AP_MMEDirectInfTrans
Harald Weltece818da2019-07-03 22:03:16 +0800952 );
953
Harald Weltece818da2019-07-03 22:03:16 +0800954}