/* RUA Templates in TTCN-3 * (C) 2021 Pau Espin Pedrol * All rights reserved. * * Released under the terms of GNU General Public License, Version 2 or * (at your option) any later version. * * SPDX-License-Identifier: GPL-2.0-or-later */ module RUA_Templates { import from RUA_IEs all; import from RUA_CommonDataTypes all; import from RUA_Constants all; import from RUA_Containers all; import from RUA_PDU_Contents all; import from RUA_PDU_Descriptions all; /********************************************************************************* * 3GPP TS 25.468 *********************************************************************************/ template (value) Cause ts_RUA_Cause(template (value) CauseRadioNetwork c) := { radioNetwork := c } /* 9.1.3 CONNECT */ template (value) RUA_PDU ts_RUA_Connect(template (value) CN_DomainIndicator domain, template (value) bitstring context_id, template (value) Establishment_Cause est_cause, template (value) octetstring ranap_msg) := { initiatingMessage := { procedureCode := id_Connect, criticality := reject, value_ := { connect_ := { protocolIEs := { { id := 7, criticality := reject, value_ := { cN_DomainIndicator := domain } }, { id := 3, criticality := reject, value_ := { context_ID := context_id } }, { id := 6, criticality := reject, value_ := { establishment_Cause := est_cause } }, { id := 4, criticality := reject, value_ := { rANAP_Message := ranap_msg } } }, protocolExtensions := omit } } } } template (present) RUA_PDU tr_RUA_Connect(template (present) CN_DomainIndicator domain := ?, template (present) bitstring context_id := ?, template (present) Establishment_Cause est_cause := ?, template (present) octetstring ranap_msg := ?) := { initiatingMessage := { procedureCode := id_Connect, criticality := reject, value_ := { connect_ := { protocolIEs := { { id := 7, criticality := reject, value_ := { cN_DomainIndicator := domain } }, { id := 3, criticality := reject, value_ := { context_ID := context_id } }, { id := 6, criticality := reject, value_ := { establishment_Cause := est_cause } }, { id := 4, criticality := reject, value_ := { rANAP_Message := ranap_msg } } }, protocolExtensions := omit } } } } /* 9.1.4 DIRECT TRANSFER */ template (value) RUA_PDU ts_RUA_DirectTransfer(template (value) CN_DomainIndicator domain, template (value) bitstring context_id, template (value) octetstring ranap_msg) := { initiatingMessage := { procedureCode := id_DirectTransfer, criticality := reject, value_ := { directTransfer := { protocolIEs := { { id := 7, criticality := reject, value_ := { cN_DomainIndicator := domain } }, { id := 3, criticality := reject, value_ := { context_ID := context_id } }, { id := 4, criticality := reject, value_ := { rANAP_Message := ranap_msg } } }, protocolExtensions := omit } } } } template (present) RUA_PDU tr_RUA_DirectTransfer(template (present) CN_DomainIndicator domain := ?, template (present) bitstring context_id := ?, template (present) octetstring ranap_msg := ?) := { initiatingMessage := { procedureCode := id_DirectTransfer, criticality := reject, value_ := { directTransfer := { protocolIEs := { { id := 7, criticality := reject, value_ := { cN_DomainIndicator := domain } }, { id := 3, criticality := reject, value_ := { context_ID := context_id } }, { id := 4, criticality := reject, value_ := { rANAP_Message := ranap_msg } } }, protocolExtensions := omit } } } } /* 9.1.5 DISCONNECT */ template (value) RUA_PDU ts_RUA_Disconnect(template (value) CN_DomainIndicator domain, template (value) bitstring context_id, template (value) Cause cause, template (value) octetstring ranap_msg) := { initiatingMessage := { procedureCode := 3, criticality := reject, value_ := { disconnect_ := { protocolIEs := { { id := 7, criticality := reject, value_ := { cN_DomainIndicator := domain } }, { id := 3, criticality := reject, value_ := { context_ID := context_id } }, { id := 1, criticality := reject, value_ := { cause := cause } }, { id := 4, criticality := reject, value_ := { rANAP_Message := ranap_msg } } }, protocolExtensions := omit } } } } template (present) RUA_PDU tr_RUA_Disconnect(template (present) CN_DomainIndicator domain := ?, template (present) bitstring context_id := ?, template (present) Cause cause := ?, template (present) octetstring ranap_msg := ?) := { initiatingMessage := { procedureCode := 3, criticality := reject, value_ := { disconnect_ := { protocolIEs := { { id := 7, criticality := reject, value_ := { cN_DomainIndicator := domain } }, { id := 3, criticality := reject, value_ := { context_ID := context_id } }, { id := 1, criticality := reject, value_ := { cause := cause } }, { id := 4, criticality := reject, value_ := { rANAP_Message := ranap_msg } } }, protocolExtensions := omit } } } } /* Same as tr_RUA_Disconnect() but without a ranap arg: match also a RUA Disconnect without any RANAP payload. */ template (present) RUA_PDU tr_RUA_Disconnect_opt_ranap(template (present) CN_DomainIndicator domain := ?, template (present) bitstring context_id := ?, template (present) Cause cause := ?) := { initiatingMessage := { procedureCode := 3, criticality := reject, value_ := { disconnect_ := { protocolIEs := { { id := 7, criticality := reject, value_ := { cN_DomainIndicator := domain } }, { id := 3, criticality := reject, value_ := { context_ID := context_id } }, { id := 1, criticality := reject, value_ := { cause := cause } }, * }, protocolExtensions := omit } } } } /* 9.1.6 CONNECTIONLESS TRANSFER */ template (value) RUA_PDU ts_RUA_ConnectionlessTransfer(template (value) octetstring ranap_msg) := { initiatingMessage := { procedureCode := id_ConnectionlessTransfer, criticality := reject, value_ := { connectionlessTransfer := { protocolIEs := { { id := 4, criticality := reject, value_ := { rANAP_Message := ranap_msg } } }, protocolExtensions := omit } } } } template (present) RUA_PDU tr_RUA_ConnectionlessTransfer(template (present) octetstring ranap_msg := ?) := { initiatingMessage := { procedureCode := id_ConnectionlessTransfer, criticality := reject, value_ := { connectionlessTransfer := { protocolIEs := { { id := 4, criticality := reject, value_ := { rANAP_Message := ranap_msg } } }, protocolExtensions := omit } } } } };