blob: 1063b501df79e4f76035dfc86aa503c538083bb6 [file] [log] [blame]
Harald Welte0db44132019-10-17 11:09:05 +02001module M3UA_Templates {
2
3/* M3UA Templates, building on top of M3UA_Types from Ericsson.
4 *
5 * (C) 2019 by Harald Welte <laforge@gnumonks.org>
6 * All rights reserved.
7 *
8 * Released under the terms of GNU General Public License, Version 2 or
9 * (at your option) any later version.
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 */
13
14import from M3UA_Types all;
15import from General_Types all;
16import from Osmocom_Types all;
17
18const OCT1 c_M3UA_VERSION := '01'O;
19
20const OCT2 c_M3UA_ST_T_STATE_CHG := '0001'O;
21const OCT2 c_M3UA_ST_I_RESERVED := '0001'O;
22const OCT2 c_M3UA_ST_I_AS_INACTIVE := '0002'O;
23const OCT2 c_M3UA_ST_I_AS_ACTIVE := '0003'O;
24const OCT2 c_M3UA_ST_I_AS_PENDING := '0004'O;
25
26const OCT2 c_M3UA_ST_T_OTHER := '0002'O;
27const OCT2 c_M3UA_ST_I_INSUFF_RESRC := '0001'O
28const OCT2 c_M3UA_ST_I_ALTERNATE_ASP := '0002'O
29const OCT2 c_M3UA_ST_I_ASP_FAILUREP := '0003'O
30
31private function f_aspid_or_omit(template (omit) OCT4 aspid)
32return template (omit) M3UA_ASP_Identifier {
33 var template (omit) M3UA_ASP_Identifier id;
34 if (istemplatekind(aspid, "omit")) {
35 return omit;
36 } else {
37 id.tag := '0011'O;
38 id.lengthInd := 8;
39 id.aSPIdentifier := aspid;
40 return id;
41 }
42}
43
44function tr_M3UA_asp_id(template OCT4 aspid)
45return template M3UA_ASP_Identifier {
46 var template M3UA_ASP_Identifier id := {
47 tag := '0011'O,
48 lengthInd := 8,
49 aSPIdentifier := aspid
50 };
51 if (istemplatekind(aspid, "omit")) {
52 return omit;
53 } else if (istemplatekind(aspid, "*")) {
54 return *;
55 } else {
56 return id;
57 }
58}
59
60
61/***********************************************************************
62 * ASPSM Class
63 ***********************************************************************/
64
65template (value) PDU_M3UA ts_M3UA_ASPUP(template (omit) OCT4 aspid := omit,
66 template (omit) octetstring infostr := omit) := {
67 m3UA_ASPUP := {
68 version := c_M3UA_VERSION,
69 reserved := '00'O,
70 messageClassAndType := '0301'O,
71 messageLength := 0, // overwritten
72 messageParameters := {
73 aSP_Identifier := f_aspid_or_omit(aspid),
74 info_String := omit
75 }
76 }
77}
78template (present) PDU_M3UA tr_M3UA_ASPUP(template OCT4 aspid := *,
79 template octetstring infostr := omit) := {
80 m3UA_ASPUP := {
81 version := c_M3UA_VERSION,
82 reserved := '00'O,
83 messageClassAndType := '0301'O,
Harald Weltedc9b6912019-11-05 16:53:56 +010084 messageLength := ?, // overwritten
Harald Welte0db44132019-10-17 11:09:05 +020085 messageParameters := {
86 aSP_Identifier := tr_M3UA_asp_id(aspid),
87 info_String := *
88 }
89 }
90}
91
92template (value) PDU_M3UA ts_M3UA_ASPUP_ACK := {
93 m3UA_ASPUP_Ack := {
94 version := c_M3UA_VERSION,
95 reserved := '00'O,
96 messageClassAndType := '0304'O,
97 messageLength := 0, // overwritten
98 messageParameters := {
99 info_String := omit
100 }
101 }
102}
103template (present) PDU_M3UA tr_M3UA_ASPUP_ACK := {
104 m3UA_ASPUP_Ack := {
105 version := c_M3UA_VERSION,
106 reserved := '00'O,
107 messageClassAndType := '0304'O,
108 messageLength := ?,
109 messageParameters := {
110 info_String := *
111 }
112 }
113}
114
115template (value) PDU_M3UA ts_M3UA_ASPDN := {
116 m3UA_ASPDN := {
117 version := c_M3UA_VERSION,
118 reserved := '00'O,
119 messageClassAndType := '0302'O,
120 messageLength := 0, // overwritten
121 messageParameters := {
122 info_String := omit
123 }
124 }
125}
126template (present) PDU_M3UA tr_M3UA_ASPDN := {
127 m3UA_ASPDN := {
128 version := c_M3UA_VERSION,
129 reserved := '00'O,
130 messageClassAndType := '0302'O,
131 messageLength := ?,
132 messageParameters := {
133 info_String := *
134 }
135 }
136}
137
138template (value) PDU_M3UA ts_M3UA_ASPDN_ACK := {
139 m3UA_ASPUP_Ack := {
140 version := c_M3UA_VERSION,
141 reserved := '00'O,
142 messageClassAndType := '0305'O,
143 messageLength := 0, // overwritten
144 messageParameters := {
145 info_String := omit
146 }
147 }
148}
149template (present) PDU_M3UA tr_M3UA_ASPDN_ACK := {
150 m3UA_ASPUP_Ack := {
151 version := c_M3UA_VERSION,
152 reserved := '00'O,
153 messageClassAndType := '0305'O,
154 messageLength := ?,
155 messageParameters := {
156 info_String := *
157 }
158 }
159}
160
161template (value) M3UA_Heartbeat_Data ts_M3UA_hb_data(template (value) octetstring hb_data) := {
162 tag := '0009'O,
163 lengthInd := 0, // overwritten
164 heartbeat_Data := hb_data
165}
166
167template (present) M3UA_Heartbeat_Data tr_M3UA_hb_data(template (present) octetstring hb_data) := {
168 tag := '0009'O,
169 lengthInd := ?,
170 heartbeat_Data := hb_data
171}
172
173template (value) PDU_M3UA ts_M3UA_BEAT(template (omit) M3UA_Heartbeat_Data hbd := omit) := {
174 m3UA_BEAT := {
175 version := c_M3UA_VERSION,
176 reserved := '00'O,
177 messageClassAndType := '0303'O,
178 messageLength := 0, // overwritten
179 messageParameters := {
180 heartbeat_Data := hbd
181 }
182 }
183}
184template (present) PDU_M3UA tr_M3UA_BEAT(template M3UA_Heartbeat_Data hbd := *) := {
185 m3UA_BEAT := {
186 version := c_M3UA_VERSION,
187 reserved := '00'O,
188 messageClassAndType := '0303'O,
189 messageLength := ?,
190 messageParameters := {
191 heartbeat_Data := hbd
192 }
193 }
194}
195
196template (value) PDU_M3UA ts_M3UA_BEAT_ACK(template (omit) M3UA_Heartbeat_Data hb_data) := {
197 m3UA_BEAT_Ack := {
198 version := c_M3UA_VERSION,
199 reserved := '00'O,
200 messageClassAndType := '0306'O,
201 messageLength := 0, // overwritten
202 messageParameters := {
203 heartbeat_Data := hb_data
204 }
205 }
206}
207template (present) PDU_M3UA tr_M3UA_BEAT_ACK(template M3UA_Heartbeat_Data hb_data := *) := {
208 m3UA_BEAT_Ack := {
209 version := c_M3UA_VERSION,
210 reserved := '00'O,
211 messageClassAndType := '0306'O,
212 messageLength := ?,
213 messageParameters := {
214 heartbeat_Data := hb_data
215 }
216 }
217}
218
219
220
221
222/***********************************************************************
223 * ASPTM Class
224 ***********************************************************************/
225
226
227const M3UA_Traffic_Mode_Type c_M3UA_TMT_override := {
228 tag := '000B'O,
229 lengthInd := 8,
230 trafficModeType := int2oct(1, 4)
231}
232
233const M3UA_Traffic_Mode_Type c_M3UA_TMT_loadshare := {
234 tag := '000B'O,
235 lengthInd := 8,
236 trafficModeType := int2oct(2, 4)
237}
238
239const M3UA_Traffic_Mode_Type c_M3UA_TMT_broadcast := {
240 tag := '000B'O,
241 lengthInd := 8,
242 trafficModeType := int2oct(3, 4)
243}
244
245function ts_M3UA_routing_ctx(template (omit) octetstring rctx)
246return template (omit) M3UA_Routing_Context {
247 var template (omit) M3UA_Routing_Context id;
248 if (istemplatekind(rctx, "omit")) {
249 return omit;
250 } else {
251 id.tag := '0006'O;
252 id.lengthInd := 0; // overwritten
253 id.routingContext := rctx;
254 return id;
255 }
256}
257
258function tr_M3UA_routing_ctx(template octetstring rctx)
259return template M3UA_Routing_Context {
260 var template M3UA_Routing_Context id;
261 if (istemplatekind(rctx, "omit")) {
262 return omit;
263 } else if (istemplatekind(rctx, "*")) {
264 return *;
265 } else {
266 id.tag := '0006'O;
267 id.lengthInd := ?;
268 id.routingContext := rctx;
269 return id;
270 }
271}
272
273template (value) PDU_M3UA ts_M3UA_ASPAC(template (omit) M3UA_Traffic_Mode_Type tmt,
274 template (omit) OCT4 rctx) := {
275 m3UA_ASPAC := {
276 version := c_M3UA_VERSION,
277 reserved := '00'O,
278 messageClassAndType := '0401'O,
279 messageLength := 0, // overwritten
280 messageParameters := {
281 traffic_Mode_Type := tmt,
282 routing_Context := ts_M3UA_routing_ctx(rctx),
283 info_String := omit
284 }
285 }
286}
287template (present) PDU_M3UA tr_M3UA_ASPAC(template M3UA_Traffic_Mode_Type tmt,
288 template OCT4 rctx) := {
289 m3UA_ASPAC := {
290 version := c_M3UA_VERSION,
291 reserved := '00'O,
292 messageClassAndType := '0401'O,
293 messageLength := ?,
294 messageParameters := {
295 traffic_Mode_Type := tmt,
296 routing_Context := tr_M3UA_routing_ctx(rctx),
297 info_String := *
298 }
299 }
300}
301
302template (value) PDU_M3UA ts_M3UA_ASPAC_ACK(template (omit) M3UA_Traffic_Mode_Type tmt,
303 template (omit) OCT4 rctx) := {
304 m3UA_ASPAC_Ack := {
305 version := c_M3UA_VERSION,
306 reserved := '00'O,
307 messageClassAndType := '0403'O,
308 messageLength := 0, // overwritten
309 messageParameters := {
310 traffic_Mode_Type := tmt,
311 routing_Context := ts_M3UA_routing_ctx(rctx),
312 info_String := omit
313 }
314 }
315}
316template (present) PDU_M3UA tr_M3UA_ASPAC_ACK(template M3UA_Traffic_Mode_Type tmt,
317 template OCT4 rctx) := {
318 m3UA_ASPAC_Ack := {
319 version := c_M3UA_VERSION,
320 reserved := '00'O,
321 messageClassAndType := '0403'O,
322 messageLength := ?,
323 messageParameters := {
324 traffic_Mode_Type := tmt,
325 routing_Context := tr_M3UA_routing_ctx(rctx),
326 info_String := *
327 }
328 }
329}
330
331template (value) PDU_M3UA ts_M3UA_ASPIA(template (omit) OCT4 rctx) := {
332 m3UA_ASPIA := {
333 version := c_M3UA_VERSION,
334 reserved := '00'O,
335 messageClassAndType := '0402'O,
336 messageLength := 0, // overwritten
337 messageParameters := {
338 routing_Context := ts_M3UA_routing_ctx(rctx),
339 info_String := omit
340 }
341 }
342}
343template (present) PDU_M3UA tr_M3UA_ASPIA(template OCT4 rctx) := {
344 m3UA_ASPIA := {
345 version := c_M3UA_VERSION,
346 reserved := '00'O,
347 messageClassAndType := '0402'O,
348 messageLength := ?,
349 messageParameters := {
350 routing_Context := tr_M3UA_routing_ctx(rctx),
351 info_String := *
352 }
353 }
354}
355
356
357template (value) PDU_M3UA ts_M3UA_ASPIA_ACK(template (omit) OCT4 rctx) := {
358 m3UA_ASPIA_Ack := {
359 version := c_M3UA_VERSION,
360 reserved := '00'O,
361 messageClassAndType := '0404'O,
362 messageLength := 0, // overwritten
363 messageParameters := {
364 routing_Context := ts_M3UA_routing_ctx(rctx),
365 info_String := omit
366 }
367 }
368}
369template (present) PDU_M3UA tr_M3UA_ASPIA_ACK(template OCT4 rctx) := {
370 m3UA_ASPIA_Ack := {
371 version := c_M3UA_VERSION,
372 reserved := '00'O,
373 messageClassAndType := '0404'O,
374 messageLength := ?,
375 messageParameters := {
376 routing_Context := tr_M3UA_routing_ctx(rctx),
377 info_String := *
378 }
379 }
380}
381
382
383/***********************************************************************
384 * MGMT Class
385 ***********************************************************************/
386
387template (value) M3UA_Error_Code ts_M3UA_err_code(template (value) OCT4 val) := {
388 tag := '000C'O,
389 lengthInd := 8,
390 errorCode := val
391}
392template (present) M3UA_Error_Code tr_M3UA_err_code(template (present) OCT4 val) := {
393 tag := '000C'O,
394 lengthInd := 8,
395 errorCode := val
396}
397
398template (value) M3UA_Status ts_M3UA_status(template (value) OCT2 status_type,
399 template (value) OCT2 status_info) := {
400 tag := '000D'O,
401 lengthInd := 8,
402 statusType := status_type,
403 statusInfo := status_info
404}
405
406template (present) M3UA_Status tr_M3UA_status(template (present) OCT2 status_type,
407 template (present) OCT2 status_info) := {
408 tag := '000D'O,
409 lengthInd := 8,
410 statusType := status_type,
411 statusInfo := status_info
412}
413
414
415template (value) PDU_M3UA ts_M3UA_ERR(template (value) OCT4 err_code,
416 template (omit) OCT4 rctx) := {
417 m3UA_ERR := {
418 version := c_M3UA_VERSION,
419 reserved := '00'O,
420 messageClassAndType := '0000'O,
421 messageLength := 0, // overwritten
422 messageParameters := {
423 error_Code := ts_M3UA_err_code(err_code),
424 routing_Context := ts_M3UA_routing_ctx(rctx),
425 affected_Point_Codes := omit,
426 network_Appearance := omit,
427 diagnostic_information := omit
428 }
429 }
430}
431template (present) PDU_M3UA tr_M3UA_ERR(template (present) OCT4 err_code,
432 template OCT4 rctx) := {
433 m3UA_ERR := {
434 version := c_M3UA_VERSION,
435 reserved := '00'O,
436 messageClassAndType := '0000'O,
437 messageLength := ?,
438 messageParameters := {
439 error_Code := tr_M3UA_err_code(err_code),
440 routing_Context := tr_M3UA_routing_ctx(rctx),
441 affected_Point_Codes := *,
442 network_Appearance := *,
443 diagnostic_information := *
444 }
445 }
446}
447
448
449template (value) PDU_M3UA ts_M3UA_NOTIFY(template (value) OCT2 status_type,
450 template (value) OCT2 status_info,
451 template (omit) OCT4 rctx,
452 template (omit) OCT4 aspid := omit,
453 template (omit) octetstring infostr := omit) := {
454 m3UA_NOTIFY := {
455 version := c_M3UA_VERSION,
456 reserved := '00'O,
457 messageClassAndType := '0001'O,
458 messageLength := 0, // overwritten
459 messageParameters := {
460 status := ts_M3UA_status(status_type, status_info),
461 aSP_Identifier := f_aspid_or_omit(aspid),
462 routing_Context := ts_M3UA_routing_ctx(rctx),
463 info_String := omit
464 }
465 }
466}
467template (present) PDU_M3UA tr_M3UA_NOTIFY(template (present) OCT2 status_type,
468 template (present) OCT2 status_info,
469 template OCT4 rctx,
470 template OCT4 aspid := *,
471 template octetstring infostr := *) := {
472 m3UA_NOTIFY := {
473 version := c_M3UA_VERSION,
474 reserved := '00'O,
475 messageClassAndType := '0001'O,
476 messageLength := ?,
477 messageParameters := {
478 status := tr_M3UA_status(status_type, status_info),
479 aSP_Identifier := *,
480 routing_Context := tr_M3UA_routing_ctx(rctx),
481 info_String := *
482 }
483 }
484}
485
486/***********************************************************************
487 * Message Transfer Class
488 ***********************************************************************/
489
490template (value) M3UA_Protocol_Data ts_M3UA_protocol_data(template (value) OCT4 opc,
491 template (value) OCT4 dpc,
492 template (value) OCT1 si,
493 template (value) OCT1 ni,
494 template (value) OCT1 mp,
495 template (value) OCT1 sls,
496 template (value) octetstring data) := {
497 tag := '0210'O,
498 lengthInd := 0, // overwritten
499 oPC := opc,
500 dPC := dpc,
501 sI := si,
502 nI := ni,
503 mP := mp,
504 sLS := sls,
505 userProtocolData := data
506}
507template (present) M3UA_Protocol_Data tr_M3UA_protocol_data(template (present) OCT4 opc,
508 template (present) OCT4 dpc,
509 template (present) OCT1 si,
510 template (present) OCT1 ni,
511 template (present) OCT1 mp,
512 template (present) OCT1 sls,
513 template (present) octetstring data) := {
514 tag := '0210'O,
515 lengthInd := ?,
516 oPC := opc,
517 dPC := dpc,
518 sI := si,
519 nI := ni,
520 mP := mp,
521 sLS := sls,
522 userProtocolData := data
523}
524
525
526template (value) PDU_M3UA ts_M3UA_DATA(template (omit) OCT4 rctx,
527 template (value) M3UA_Protocol_Data data) := {
528 m3UA_DATA := {
529 version := c_M3UA_VERSION,
530 reserved := '00'O,
531 messageClassAndType := '0101'O,
532 messageLength := 0, // overwritten
533 messageParameters :={
534 network_Appearance := omit,
535 routing_Context := ts_M3UA_routing_ctx(rctx),
536 protocol_Data := data,
537 correlation_ID := omit
538 }
539 }
540}
541template (present) PDU_M3UA tr_M3UA_DATA(template OCT4 rctx,
542 template (present) M3UA_Protocol_Data data) := {
543 m3UA_DATA := {
544 version := c_M3UA_VERSION,
545 reserved := '00'O,
546 messageClassAndType := '0101'O,
547 messageLength := ?, // overwritten
548 messageParameters := {
549 network_Appearance := *,
550 routing_Context := tr_M3UA_routing_ctx(rctx),
551 protocol_Data := data,
552 correlation_ID := *
553 }
554 }
555}
556
557/***********************************************************************
558 * Routing Key Management
559 ***********************************************************************/
560
561template (value) M3UA_Local_Routing_Key_Id ts_M3UA_lrkid(template (value) OCT4 id) := {
562 tag := '020a'O,
563 lengthInd := 8,
564 localRkId := id
565}
566
567template (present) M3UA_Local_Routing_Key_Id tr_M3UA_lrkid(template (present) OCT4 id) := {
568 tag := '020a'O,
569 lengthInd := 8,
570 localRkId := id
571}
572
573
574template (value) M3UA_Routing_Key ts_M3UA_rkey(OCT4 id, OCT3 dpc,
575 template (omit) M3UA_Traffic_Mode_Type tmt := omit,
576 template (omit) OCT4 rctx := omit) := {
577 tag := '0207'O,
578 lengthInd := 0, // overwritten
579 routingKey := {
580 local_Routing_Key_Id := ts_M3UA_lrkid(id),
581 routing_Context := ts_M3UA_routing_ctx(rctx),
582 traffic_Mode_Type := tmt,
583 destination_Point_Code := {
584 tag := '020b'O,
585 lengthInd := 8,
586 pointCode := { '00'O, dpc }
587 },
588 network_Appearance := omit,
589 service_Indicators := omit,
590 opc_List := omit
591 }
592}
593template (present) M3UA_Routing_Key tr_M3UA_rkey(template (present) OCT4 id, template (present) OCT3 dpc,
594 template M3UA_Traffic_Mode_Type tmt := *,
595 template OCT4 rctx := *) := {
596 tag := '0207'O,
597 lengthInd := ?,
598 routingKey := {
599 local_Routing_Key_Id := tr_M3UA_lrkid(id),
600 routing_Context := tr_M3UA_routing_ctx(rctx),
601 traffic_Mode_Type := tmt,
602 destination_Point_Code := {
603 tag := '020b'O,
604 lengthInd := 8,
605 pointCode := { '00'O, dpc }
606 },
607 network_Appearance := omit,
608 service_Indicators := omit,
609 opc_List := omit
610 }
611}
612
613
614const OCT4 c_M3UA_REGSTS_SUCCESS := '00000000'O;
615const OCT4 c_M3UA_REGSTS_ERR_UNKNOWN := '00000001'O;
616const OCT4 c_M3UA_REGSTS_ERR_INVAL_DPC := '00000002'O;
617const OCT4 c_M3UA_REGSTS_ERR_INVAL_NA := '00000003'O;
618const OCT4 c_M3UA_REGSTS_ERR_INVAL_RKEY := '00000004'O;
619const OCT4 c_M3UA_REGSTS_ERR_EPERM := '00000005'O;
620// ...
621
622const OCT4 c_m3UA_DEREGSTS_SUCCESS := '00000000'O;
623const OCT4 c_m3UA_DEREGSTS_ERR_UNKNOWN := '00000001'O;
624const OCT4 c_m3UA_DEREGSTS_ERR_INVAL_RCTX := '00000002'O;
625const OCT4 c_m3UA_DEREGSTS_ERR_EPERM := '00000003'O;
626const OCT4 c_m3UA_DEREGSTS_ERR_NOT_REG := '00000004'O;
627const OCT4 c_m3UA_DEREGSTS_ERR_ASP_ACTIVE := '00000005'O;
628
629template (value) M3UA_Registration_Result ts_M3UA_reg_res(template (value) OCT4 id,
630 template (value) OCT4 status,
631 template (value) OCT4 rctx) := {
632 tag := '0208'O,
633 lengthInd := 0, // overwritten
634 registrationResult := {
635 local_Routing_Key_Id := ts_M3UA_lrkid(id),
636 registration_Status := {
637 tag := '0212'O,
638 lengthInd := 8,
639 registrationStatus := status
640 },
641 routing_Context := ts_M3UA_routing_ctx(rctx)
642 }
643}
644template (present) M3UA_Registration_Result tr_M3UA_reg_res(template (present) OCT4 id,
645 template (present) OCT4 status,
646 template (present) OCT4 rctx) := {
647 tag := '0208'O,
648 lengthInd := ?,
649 registrationResult := {
650 local_Routing_Key_Id := tr_M3UA_lrkid(id),
651 registration_Status := {
652 tag := '0212'O,
653 lengthInd := 8,
654 registrationStatus := status
655 },
656 routing_Context := tr_M3UA_routing_ctx(rctx)
657 }
658}
659
660template (value) M3UA_Deregistration_Result ts_M3UA_dereg_res(template (value) OCT4 rctx,
661 template (value) OCT4 status) := {
662 tag := '0209'O,
663 lengthInd := 0, // overwritten
664 deregistrationResult := {
665 routing_Context := ts_M3UA_routing_ctx(rctx),
666 deregistration_Status := {
667 tag := '0213'O,
668 lengthInd := 8,
669 deregistrationStatus := status
670 }
671 }
672}
673template (present) M3UA_Deregistration_Result tr_M3UA_dereg_res(template (present) OCT4 rctx,
674 template (present) OCT4 status) := {
675 tag := '0209'O,
676 lengthInd := ?,
677 deregistrationResult := {
678 routing_Context := tr_M3UA_routing_ctx(rctx),
679 deregistration_Status := {
680 tag := '0213'O,
681 lengthInd := 8,
682 deregistrationStatus := status
683 }
684 }
685}
686
687
688template (value) PDU_M3UA ts_M3UA_REG_REQ(template (value) M3UA_Routing_Keys rkeys) := {
689 m3UA_REG_REQ := {
690 version := c_M3UA_VERSION,
691 reserved := '00'O,
692 messageClassAndType := '0901'O,
693 messageLength := 0, // overwritten
694 messageParameters := rkeys
695 }
696}
697template (present) PDU_M3UA tr_M3UA_REG_REQ(template (present) M3UA_Routing_Keys rkeys) := {
698 m3UA_REG_REQ := {
699 version := c_M3UA_VERSION,
700 reserved := '00'O,
701 messageClassAndType := '0901'O,
702 messageLength := ?,
703 messageParameters := rkeys
704 }
705}
706
707
708template (value) PDU_M3UA ts_M3UA_REG_RSP(template (value) M3UA_Registration_Results res) := {
709 m3UA_REG_RSP := {
710 version := c_M3UA_VERSION,
711 reserved := '00'O,
712 messageClassAndType := '0902'O,
713 messageLength := 0, // overwritten
714 messageParameters := res
715 }
716}
717template (present) PDU_M3UA tr_M3UA_REG_RSP(template (present) M3UA_Registration_Results res) := {
718 m3UA_REG_RSP := {
719 version := c_M3UA_VERSION,
720 reserved := '00'O,
721 messageClassAndType := '0902'O,
722 messageLength := ?,
723 messageParameters := res
724 }
725}
726
727template (value) PDU_M3UA ts_M3UA_DEREG_REQ(template (value) M3UA_Routing_Context rctx) := {
728 m3UA_DEREG_REQ := {
729 version := c_M3UA_VERSION,
730 reserved := '00'O,
731 messageClassAndType := '0903'O,
732 messageLength := 0, // overwritten
733 messageParameters := {
734 routing_Context := rctx
735 }
736 }
737}
738template (present) PDU_M3UA tr_M3UA_DEREG_REQ(template (present) M3UA_Routing_Context rctx) := {
739 m3UA_DEREG_REQ := {
740 version := c_M3UA_VERSION,
741 reserved := '00'O,
742 messageClassAndType := '0903'O,
743 messageLength := ?,
744 messageParameters := {
745 routing_Context := rctx
746 }
747 }
748}
749
750template (value) PDU_M3UA ts_M3UA_DEREG_RSP(template (value) M3UA_Deregistration_Results res) := {
751 m3UA_DEREG_RSP := {
752 version := c_M3UA_VERSION,
753 reserved := '00'O,
754 messageClassAndType := '0904'O,
755 messageLength := 0, // overwritten
756 messageParameters := res
757 }
758}
759template (present) PDU_M3UA tr_M3UA_DEREG_RSP(template (present) M3UA_Deregistration_Results res) := {
760 m3UA_DEREG_RSP := {
761 version := c_M3UA_VERSION,
762 reserved := '00'O,
763 messageClassAndType := '0904'O,
764 messageLength := ?,
765 messageParameters := res
766 }
767}
768
769
770
771}