osmo-ttcn3-hacks/library/rua/RUA_Templates.ttcn

183 lines
4.3 KiB
Plaintext

/* RUA Templates in TTCN-3
* (C) 2021 Pau Espin Pedrol <pespin@sysmocom.de>
* 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 (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 (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
}
}
}
}
/* 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
}
}
}
}
};