blob: 6c5dbce613db81cb6e50a21ff129a109a233bbbe [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 }
72 }, {
73 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 := {
116 {
117 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 }
206 } , {
207 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}
254
255
256
257
258/*********************************************************************************
259 * 9.1.7 NAS Transport
260 *********************************************************************************/
261
262/* 9.1.7.1 INITIAL UE MESSAGE */
263template (value) S1AP_PDU
264ts_S1AP_InitialUE(template (value) ENB_UE_S1AP_ID p_eNB_value,
265 template (value) NAS_PDU p_nasPdu,
266 template (value) TAI p_tAI,
267 template (value) EUTRAN_CGI p_eUTRAN_CGI,
268 template (value) RRC_Establishment_Cause p_rrcCause) := {
269 initiatingMessage := {
270 procedureCode := id_initialUEMessage,
271 criticality := ignore,
272 value_ := {
273 InitialUEMessage := {
274 protocolIEs := {
275 {
276 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
277 criticality := reject,
278 value_ := {ENB_UE_S1AP_ID := p_eNB_value}
279 }, {
280 id := S1AP_Constants.id_NAS_PDU,
281 criticality := reject,
282 value_ := {nAS_PDU := p_nasPdu}
283 }, {
284 id := S1AP_Constants.id_TAI,
285 criticality := ignore,
286 value_ := {TAI := p_tAI}
287 }, {
288 id := S1AP_Constants.id_EUTRAN_CGI,
289 criticality := ignore,
290 value_ := {EUTRAN_CGI := p_eUTRAN_CGI}
291 }, {
292 id := S1AP_Constants.id_RRC_Establishment_Cause,
293 criticality := ignore,
294 value_ := {RRC_Establishment_Cause := p_rrcCause}
295 }
296 }
297 }
298 }
299 }
300}
301template (present) S1AP_PDU
302tr_S1AP_InitialUE(template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
303 template (present) NAS_PDU p_nasPdu := ?,
304 template (present) TAI p_tAI := ?,
305 template (present) EUTRAN_CGI p_eUTRAN_CGI := ?,
306 template (present) RRC_Establishment_Cause p_rrcCause := ?) := {
307 initiatingMessage := {
308 procedureCode := id_initialUEMessage,
309 criticality := ignore,
310 value_ := {
311 InitialUEMessage := {
312 protocolIEs := {
313 {
314 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
315 criticality := reject,
316 value_ := {ENB_UE_S1AP_ID := p_eNB_value}
317 }, {
318 id := S1AP_Constants.id_NAS_PDU,
319 criticality := reject,
320 value_ := {nAS_PDU := p_nasPdu}
321 }, {
322 id := S1AP_Constants.id_TAI,
323 criticality := ignore,
324 value_ := {TAI := p_tAI}
325 }, {
326 id := S1AP_Constants.id_EUTRAN_CGI,
327 criticality := ignore,
328 value_ := {EUTRAN_CGI := p_eUTRAN_CGI}
329 }, {
330 id := S1AP_Constants.id_RRC_Establishment_Cause,
331 criticality := ignore,
332 value_ := {RRC_Establishment_Cause := p_rrcCause}
333 }, *
334 }
335 }
336 }
337 }
338}
339
340
341/* 9.1.7.2 DOWNLINK NAS TRANSPORT */
342template (value) S1AP_PDU
343ts_S1AP_DlNasTransport(template (value) MME_UE_S1AP_ID mme_id,
344 template (value) ENB_UE_S1AP_ID enb_id,
345 template (value) octetstring p_nasPdu) := {
346 initiatingMessage := {
347 procedureCode := id_downlinkNASTransport,
348 criticality := ignore,
349 value_ := {
350 DownlinkNASTransport := {
351 protocolIEs := {
352 {
353 id := S1AP_Constants.id_MME_UE_S1AP_ID,
354 criticality := reject,
355 value_ := {MME_UE_S1AP_ID := mme_id}
356 }, {
357 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
358 criticality := reject,
359 value_ := {ENB_UE_S1AP_ID := enb_id}
360 }, {
361 id := S1AP_Constants.id_NAS_PDU,
362 criticality := reject,
363 value_ := {nAS_PDU := p_nasPdu}
364 }
365 }
366 }
367 }
368 }
369}
370template (present) S1AP_PDU
371tr_S1AP_DlNasTransport(template (present) MME_UE_S1AP_ID mme_id := ?,
372 template (present) ENB_UE_S1AP_ID enb_id := ?,
373 template (present) octetstring p_nasPdu := ?) := {
374 initiatingMessage := {
375 procedureCode := id_downlinkNASTransport,
376 criticality := ignore,
377 value_ := {
378 DownlinkNASTransport := {
379 protocolIEs := {
380 {
381 id := S1AP_Constants.id_MME_UE_S1AP_ID,
382 criticality := reject,
383 value_ := {MME_UE_S1AP_ID := mme_id}
384 }, {
385 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
386 criticality := reject,
387 value_ := {ENB_UE_S1AP_ID := enb_id}
388 }, {
389 id := S1AP_Constants.id_NAS_PDU,
390 criticality := reject,
391 value_ := {nAS_PDU := p_nasPdu}
392 }, *
393 }
394 }
395 }
396 }
397}
398
399
400/* 9.1.7.3 UPNLINK NAS TRANSPORT */
401template (value) S1AP_PDU
402ts_S1AP_UlNasTransport(template (value) MME_UE_S1AP_ID mme_id,
403 template (value) ENB_UE_S1AP_ID enb_id,
404 template (value) octetstring p_nasPdu,
405 template (value) EUTRAN_CGI p_eUTRAN_CGI,
406 template (value) TAI p_tAI) := {
407 initiatingMessage := {
408 procedureCode := id_uplinkNASTransport,
409 criticality := ignore,
410 value_ := {
411 UplinkNASTransport := {
412 protocolIEs := {
413 {
414 id := S1AP_Constants.id_MME_UE_S1AP_ID,
415 criticality := reject,
416 value_ := {MME_UE_S1AP_ID := mme_id}
417 }, {
418 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
419 criticality := reject,
420 value_ := {ENB_UE_S1AP_ID := enb_id}
421 }, {
422 id := S1AP_Constants.id_NAS_PDU,
423 criticality := reject,
424 value_ := {nAS_PDU := p_nasPdu}
425 }, {
426 id := S1AP_Constants.id_EUTRAN_CGI,
427 criticality := ignore,
428 value_ := {EUTRAN_CGI := p_eUTRAN_CGI}
429 }, {
430 id := S1AP_Constants.id_TAI,
431 criticality := ignore,
432 value_ := {TAI := p_tAI}
433 }
434 }
435 }
436 }
437 }
438}
439template (present) S1AP_PDU
440tr_S1AP_UlNasTransport(template (present) MME_UE_S1AP_ID mme_id := ?,
441 template (present) ENB_UE_S1AP_ID enb_id := ?,
442 template (present) octetstring p_nasPdu := ?,
443 template (present) EUTRAN_CGI p_eUTRAN_CGI := ?,
444 template (present) TAI p_tAI := ?) := {
445 initiatingMessage := {
446 procedureCode := id_uplinkNASTransport,
447 criticality := ignore,
448 value_ := {
449 UplinkNASTransport := {
450 protocolIEs := {
451 {
452 id := S1AP_Constants.id_MME_UE_S1AP_ID,
453 criticality := reject,
454 value_ := {MME_UE_S1AP_ID := mme_id}
455 }, {
456 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
457 criticality := reject,
458 value_ := {ENB_UE_S1AP_ID := enb_id}
459 }, {
460 id := S1AP_Constants.id_NAS_PDU,
461 criticality := reject,
462 value_ := {nAS_PDU := p_nasPdu}
463 }, {
464 id := S1AP_Constants.id_EUTRAN_CGI,
465 criticality := ignore,
466 value_ := {EUTRAN_CGI := p_eUTRAN_CGI}
467 }, {
468 id := S1AP_Constants.id_TAI,
469 criticality := ignore,
470 value_ := {TAI := p_tAI}
471 }, *
472 }
473 }
474 }
475 }
476}
477
478/*********************************************************************************
479 * 9.1.4 Context Management
480 *********************************************************************************/
481
482/* 9.1.4.1 INITIAL CONTEXT SETUP REQ */
483template (value) S1AP_PDU
484ts_S1AP_IntialCtxSetupReq(template (value) MME_UE_S1AP_ID mme_id,
485 template (value) ENB_UE_S1AP_ID enb_id,
486 template (value) UEAggregateMaximumBitrate max_br,
487 template (value) E_RABToBeSetupListCtxtSUReq rab_setup_items,
488 template (value) UESecurityCapabilities ue_sec_par,
489 template (value) SecurityKey sec_key) := {
490 initiatingMessage := {
491 procedureCode := id_InitialContextSetup,
492 criticality := reject,
493 value_ := {
494 initialContextSetupRequest := {
495 protocolIEs := {
496 {
497 id := S1AP_Constants.id_MME_UE_S1AP_ID,
498 criticality := reject,
499 value_ := {MME_UE_S1AP_ID := mme_id}
500 }, {
501 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
502 criticality := reject,
503 value_ := {ENB_UE_S1AP_ID := enb_id}
504 }, {
505 id := S1AP_Constants.id_uEaggregateMaximumBitrate,
506 criticality := reject,
507 value_ := {UEAggregateMaximumBitrate := max_br}
508 }, {
509 id := S1AP_Constants.id_E_RABToBeSetupListCtxtSUReq,
510 criticality := reject,
511 value_ := {E_RABToBeSetupListCtxtSUReq := rab_setup_items}
512 }, {
513 id := S1AP_Constants.id_UESecurityCapabilities,
514 criticality := reject,
515 value_ := {UESecurityCapabilities := ue_sec_par}
516 }, {
517 id := S1AP_Constants.id_SecurityKey,
518 criticality := reject,
519 value_ := {SecurityKey := sec_key}
520 }
521 }
522 }
523 }
524 }
525}
526template (present) S1AP_PDU
527tr_S1AP_IntialCtxSetupReq(template (present) MME_UE_S1AP_ID mme_id := ?,
528 template (present) ENB_UE_S1AP_ID enb_id := ?,
529 template (present) UEAggregateMaximumBitrate max_br := ?,
530 template (present) E_RABToBeSetupListCtxtSUReq rab_setup_items := ?,
531 template (present) UESecurityCapabilities ue_sec_par := ?,
532 template (present) SecurityKey sec_key := ?) := {
533 initiatingMessage := {
534 procedureCode := id_InitialContextSetup,
535 criticality := reject,
536 value_ := {
537 initialContextSetupRequest := {
538 protocolIEs := {
539 {
540 id := S1AP_Constants.id_MME_UE_S1AP_ID,
541 criticality := reject,
542 value_ := {MME_UE_S1AP_ID := mme_id}
543 }, {
544 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
545 criticality := reject,
546 value_ := {ENB_UE_S1AP_ID := enb_id}
547 }, {
548 id := S1AP_Constants.id_uEaggregateMaximumBitrate,
549 criticality := reject,
550 value_ := {UEAggregateMaximumBitrate := max_br}
551 }, {
552 id := S1AP_Constants.id_E_RABToBeSetupListCtxtSUReq,
553 criticality := reject,
554 value_ := {E_RABToBeSetupListCtxtSUReq := rab_setup_items}
555 }, {
556 id := S1AP_Constants.id_UESecurityCapabilities,
557 criticality := reject,
558 value_ := {UESecurityCapabilities := ue_sec_par}
559 }, {
560 id := S1AP_Constants.id_SecurityKey,
561 criticality := reject,
562 value_ := {SecurityKey := sec_key}
563 }, *
564 }
565 }
566 }
567 }
568}
569
570/* 9.1.4.3 INITIAL CONTEXT SETUP RESPONSE */
571template (value) S1AP_PDU
572ts_S1AP_InitialCtxSetupResp(template (value) MME_UE_S1AP_ID mme_id,
573 template (value) ENB_UE_S1AP_ID enb_id,
574 template (value) E_RABSetupListCtxtSURes rab_setup_items,
575 template (value) E_RABList rab_items) := {
576 successfulOutcome := {
577 procedureCode := id_InitialContextSetup,
578 criticality := reject,
579 value_ := {
580 InitialContextSetupResponse := {
581 protocolIEs := {
582 {
583 id := S1AP_Constants.id_MME_UE_S1AP_ID,
584 criticality := reject,
585 value_ := {MME_UE_S1AP_ID := mme_id}
586 }, {
587 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
588 criticality := reject,
589 value_ := {ENB_UE_S1AP_ID := enb_id}
590 }, {
591 id := S1AP_Constants.id_E_RABSetupListBearerSURes,
592 criticality := ignore,
593 value_ := {E_RABSetupListCtxtSURes := rab_setup_items}
594 }, {
595 id := S1AP_Constants.id_E_RABFailedToSetupListBearerSURes,
596 criticality := ignore,
597 value_ := {E_RABList := rab_items}
598 }
599 }
600 }
601 }
602 }
603}
604template (present) S1AP_PDU
605tr_S1AP_InitialCtxSetupResp(template (present) MME_UE_S1AP_ID mme_id := ?,
606 template (present) ENB_UE_S1AP_ID enb_id := ?,
607 template (present) E_RABSetupListCtxtSURes rab_setup_items := ?,
608 template (present) E_RABList rab_items := ?) := {
609 successfulOutcome := {
610 procedureCode := id_InitialContextSetup,
611 criticality := reject,
612 value_ := {
613 InitialContextSetupResponse := {
614 protocolIEs := {
615 {
616 id := S1AP_Constants.id_MME_UE_S1AP_ID,
617 criticality := reject,
618 value_ := {MME_UE_S1AP_ID := mme_id}
619 }, {
620 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
621 criticality := reject,
622 value_ := {ENB_UE_S1AP_ID := enb_id}
623 }, {
624 id := S1AP_Constants.id_E_RABSetupListBearerSURes,
625 criticality := ignore,
626 value_ := {E_RABSetupListCtxtSURes := rab_setup_items}
627 }, {
628 id := S1AP_Constants.id_E_RABFailedToSetupListBearerSURes,
629 criticality := ignore,
630 value_ := {E_RABList := rab_items}
631 }
632 }
633 }
634 }
635 }
636}
637
638/* 9.1.4.4 INITIAL CONTEXT SETUP FAILURE */
639template (value) S1AP_PDU
640ts_S1AP_InitialCtxSetupFail(template (value) MME_UE_S1AP_ID mme_id,
641 template (value) ENB_UE_S1AP_ID enb_id,
642 template (value) Cause cause) := {
643 unsuccessfulOutcome := {
644 procedureCode := id_InitialContextSetup,
645 criticality := reject,
646 value_ := {
647 InitialContextSetupFailure := {
648 protocolIEs := {
649 {
650 id := S1AP_Constants.id_MME_UE_S1AP_ID,
651 criticality := ignore,
652 value_ := {MME_UE_S1AP_ID := mme_id}
653 }, {
654 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
655 criticality := ignore,
656 value_ := {ENB_UE_S1AP_ID := enb_id}
657 }, {
658 id := S1AP_Constants.id_Cause,
659 criticality := ignore,
660 value_ := {Cause := cause}
661 }
662 }
663 }
664 }
665 }
666}
667template (present) S1AP_PDU
668tr_S1AP_InitialCtxSetupFail(template (present) MME_UE_S1AP_ID mme_id := ?,
669 template (present) ENB_UE_S1AP_ID enb_id := ?,
670 template (present) Cause cause := ?) := {
671 unsuccessfulOutcome := {
672 procedureCode := id_InitialContextSetup,
673 criticality := reject,
674 value_ := {
675 InitialContextSetupFailure := {
676 protocolIEs := {
677 {
678 id := S1AP_Constants.id_MME_UE_S1AP_ID,
679 criticality := ignore,
680 value_ := {MME_UE_S1AP_ID := mme_id}
681 }, {
682 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
683 criticality := ignore,
684 value_ := {ENB_UE_S1AP_ID := enb_id}
685 }, {
686 id := S1AP_Constants.id_Cause,
687 criticality := ignore,
688 value_ := {Cause := cause}
689 }, *
690 }
691 }
692 }
693 }
694}
695
696/* 9.1.4.5 UE CONTEXT RELEASE REQUEST */
697template (value) S1AP_PDU
698ts_S1AP_UeContextReleaseReq(template (value) MME_UE_S1AP_ID mme_id,
699 template (value) ENB_UE_S1AP_ID enb_id,
700 template (value) Cause cause) := {
701 initiatingMessage := {
702 procedureCode := id_UEContextReleaseRequest,
703 criticality := reject,
704 value_ := {
705 UEContextReleaseRequest := {
706 protocolIEs := {
707 {
708 id := S1AP_Constants.id_MME_UE_S1AP_ID,
709 criticality := ignore,
710 value_ := {MME_UE_S1AP_ID := mme_id}
711 }, {
712 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
713 criticality := ignore,
714 value_ := {ENB_UE_S1AP_ID := enb_id}
715 }, {
716 id := S1AP_Constants.id_Cause,
717 criticality := ignore,
718 value_ := {Cause := cause}
719 }
720 }
721 }
722 }
723 }
724}
725template (present) S1AP_PDU
726tr_S1AP_UeContextReleaseReq(template (present) MME_UE_S1AP_ID mme_id := ?,
727 template (present) ENB_UE_S1AP_ID enb_id := ?,
728 template (present) Cause cause := ?) := {
729 initiatingMessage := {
730 procedureCode := id_UEContextReleaseRequest,
731 criticality := reject,
732 value_ := {
733 UEContextReleaseRequest := {
734 protocolIEs := {
735 {
736 id := S1AP_Constants.id_MME_UE_S1AP_ID,
737 criticality := ignore,
738 value_ := {MME_UE_S1AP_ID := mme_id}
739 }, {
740 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
741 criticality := ignore,
742 value_ := {ENB_UE_S1AP_ID := enb_id}
743 }, {
744 id := S1AP_Constants.id_Cause,
745 criticality := ignore,
746 value_ := {Cause := cause}
747 }, *
748 }
749 }
750 }
751 }
752}
753
754/* 9.1.4.6 UE CONTEXT RELEASE COMMAND */
755template (value) S1AP_PDU
756ts_S1AP_UeContextReleaseCmd(template (value) UE_S1AP_IDs mme_ids,
757 template (value) Cause cause) := {
758 initiatingMessage := {
759 procedureCode := id_UEContextRelease,
760 criticality := reject,
761 value_ := {
762 UEContextReleaseCommand := {
763 protocolIEs := {
764 {
765 id := S1AP_Constants.id_UE_S1AP_IDs,
766 criticality := ignore,
767 value_ := {UE_S1AP_IDs := mme_ids}
768 }, {
769 id := S1AP_Constants.id_Cause,
770 criticality := ignore,
771 value_ := {Cause := cause}
772 }
773 }
774 }
775 }
776 }
777}
778template (present) S1AP_PDU
779tr_S1AP_UeContextReleaseCmd(template (present) UE_S1AP_IDs ue_ids := ?,
780 template (present) Cause cause := ?) := {
781 initiatingMessage := {
782 procedureCode := id_UEContextRelease,
783 criticality := reject,
784 value_ := {
785 UEContextReleaseCommand := {
786 protocolIEs := {
787 {
788 id := S1AP_Constants.id_UE_S1AP_IDs,
789 criticality := reject,
790 value_ := {UE_S1AP_IDs := ue_ids}
791 }, {
792 id := S1AP_Constants.id_Cause,
793 criticality := ignore,
794 value_ := {Cause := cause}
795 }, *
796 }
797 }
798 }
799 }
800}
801
802/* 9.1.4.7 UE CONTEXT RELEASE COMPLETE */
803template (value) S1AP_PDU
804ts_S1AP_UeContextReleaseCompl(template (value) MME_UE_S1AP_ID mme_id,
805 template (value) ENB_UE_S1AP_ID enb_id) := {
806 successfulOutcome := {
807 procedureCode := id_UEContextRelease,
808 criticality := reject,
809 value_ := {
810 UEContextReleaseComplete := {
811 protocolIEs := {
812 {
813 id := S1AP_Constants.id_MME_UE_S1AP_ID,
814 criticality := reject,
815 value_ := {MME_UE_S1AP_ID := mme_id}
816 }, {
817 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
818 criticality := ignore,
819 value_ := {ENB_UE_S1AP_ID := enb_id}
820 }
821 }
822 }
823 }
824 }
825}
826template (present) S1AP_PDU
827tr_S1AP_UeContextReleaseCompl(template (present) MME_UE_S1AP_ID mme_id := ?,
828 template (present) ENB_UE_S1AP_ID enb_id := ?) := {
829 successfulOutcome := {
830 procedureCode := id_UEContextRelease,
831 criticality := reject,
832 value_ := {
833 UEContextReleaseComplete := {
834 protocolIEs := {
835 {
836 id := S1AP_Constants.id_MME_UE_S1AP_ID,
837 criticality := ignore,
838 value_ := {MME_UE_S1AP_ID := mme_id}
839 }, {
840 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
841 criticality := ignore,
842 value_ := {ENB_UE_S1AP_ID := enb_id}
843 }, *
844 }
845 }
846 }
847 }
848}
849
850/* 9.1.4.20 CONNECTION ESTABLISHMENT INDICATION */
851template (value) S1AP_PDU
852ts_S1AP_ConnEstInd(template (value) MME_UE_S1AP_ID mme_id,
853 template (value) ENB_UE_S1AP_ID enb_id) := {
854 initiatingMessage := {
855 procedureCode := id_ConnectionEstablishmentIndication,
856 criticality := reject,
857 value_ := {
858 ConnectionEstablishmentIndication := {
859 protocolIEs := {
860 {
861 id := S1AP_Constants.id_MME_UE_S1AP_ID,
862 criticality := ignore,
863 value_ := {MME_UE_S1AP_ID := mme_id}
864 }, {
865 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
866 criticality := ignore,
867 value_ := {ENB_UE_S1AP_ID := enb_id}
868 }
869 }
870 }
871 }
872 }
873}
874template (present) S1AP_PDU
875tr_S1AP_ConnEstInd(template (present) MME_UE_S1AP_ID mme_id := ?,
876 template (present) ENB_UE_S1AP_ID enb_id := ?) := {
877 initiatingMessage := {
878 procedureCode := id_ConnectionEstablishmentIndication,
879 criticality := reject,
880 value_ := {
881 ConnectionEstablishmentIndication := {
882 protocolIEs := {
883 {
884 id := S1AP_Constants.id_MME_UE_S1AP_ID,
885 criticality := ignore,
886 value_ := {MME_UE_S1AP_ID := mme_id}
887 }, {
888 id := S1AP_Constants.id_eNB_UE_S1AP_ID,
889 criticality := ignore,
890 value_ := {ENB_UE_S1AP_ID := enb_id}
891 }, *
892 }
893 }
894 }
895 }
896}
897
898
899
900/* all non-UE-related S1AP messages */
901template (present) S1AP_PDU
902tr_S1AP_nonUErelated := (tr_S1AP_SetupReq, tr_S1AP_SetupResp, tr_S1AP_SetupFail,
903 tr_S1AP_Reset, tr_S1AP_ResetAck
904 );
905
906
907}