74 lines
2.0 KiB
Plaintext
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)"
|
|
}
|
|
|
|
|
|
}
|