osmo-ttcn3-hacks/sccp/SCCP_CodecPort.ttcn

74 lines
2.0 KiB
Plaintext

module SCCP_CodecPort {
/* Simple SCCP Codec Port, translating between raw MTP3 primitives with
* octetstring payload towards the MTP3 provider, and MTP3-SCCP primitives
* which carry the decoded SCCP data types as payload.
*
* (C) 2019 by Harald Welte <laforge@gnumonks.org>
* All rights reserved.
*
* Released under the terms of GNU General Public License, Version 2 or
* (at your option) any later version.
*/
import from General_Types all;
import from Osmocom_Types all;
import from MTP3asp_Types all;
import from MTP3asp_PortType all;
import from SCCP_Types all;
/* MTP3asp_Types.Types.MessageTypes.ASP_MTP3_TRANSFERind with PDU_SCCP instead of octetstring */
type record SCCP_MTP3_TRANSFERind {
MTP3_Field_sio sio,
integer opc,
integer dpc,
integer sls,
PDU_SCCP data
};
/* MTP3asp_Types.Types.MessageTypes.ASP_MTP3_TRANSFERreq with PDU_SCCP instead of octetstring */
type record SCCP_MTP3_TRANSFERreq {
MTP3_Field_sio sio,
integer opc,
integer dpc,
integer sls,
PDU_SCCP data
};
private function f_dec_TRANSFERind(in ASP_MTP3_TRANSFERind pin, out SCCP_MTP3_TRANSFERind pout) {
pout.sio := pin.sio;
pout.opc := pin.opc;
pout.dpc := pin.dpc;
pout.sls := pin.sls;
pout.data := dec_PDU_SCCP(pin.data);
//port.setstate(0);
} with {extension "prototype(fast)" }
private function f_enc_TRANSFERreq(in SCCP_MTP3_TRANSFERreq pin, out ASP_MTP3_TRANSFERreq pout) {
pout.sio := pin.sio;
pout.opc := pin.opc;
pout.dpc := pin.dpc;
pout.sls := pin.sls;
pout.data := enc_PDU_SCCP(pin.data);
//port.setstate(0);
} with {extension "prototype(fast)" }
type port SCCP_CODEC_PT message {
out SCCP_MTP3_TRANSFERreq;
in SCCP_MTP3_TRANSFERind,
ASP_MTP3_PAUSE,
ASP_MTP3_RESUME,
ASP_MTP3_STATUS;
} with { extension "internal user MTP3asp_PT
out(SCCP_MTP3_TRANSFERreq -> ASP_MTP3_TRANSFERreq: function(f_enc_TRANSFERreq))
in(ASP_MTP3_TRANSFERind -> SCCP_MTP3_TRANSFERind: function(f_dec_TRANSFERind);
ASP_MTP3_PAUSE -> ASP_MTP3_PAUSE: simple;
ASP_MTP3_RESUME -> ASP_MTP3_RESUME: simple;
ASP_MTP3_STATUS -> ASP_MTP3_STATUS: simple)"
}
}