initial check-in of the UECUPS daemon and the related TTCN3 code
Change-Id: I5acf7059722b58e6f57dbf31e18abcc385533970
diff --git a/ttcn3/UECUPS_CodecPort.ttcn b/ttcn3/UECUPS_CodecPort.ttcn
new file mode 100644
index 0000000..8f9d962
--- /dev/null
+++ b/ttcn3/UECUPS_CodecPort.ttcn
@@ -0,0 +1,70 @@
+module UECUPS_CodecPort {
+
+/* (C) 2020 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.
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+ import from IPL4asp_PortType all;
+ import from IPL4asp_Types all;
+ import from UECUPS_Types all;
+
+ type record UECUPS_RecvFrom {
+ ConnectionId connId,
+ HostName remName,
+ PortNumber remPort,
+ HostName locName,
+ PortNumber locPort,
+ PDU_UECUPS msg
+ };
+
+ template UECUPS_RecvFrom t_UECUPS_RecvFrom(template PDU_UECUPS msg) := {
+ connId := ?,
+ remName := ?,
+ remPort := ?,
+ locName := ?,
+ locPort := ?,
+ msg := msg
+ }
+
+ type record UECUPS_Send {
+ ConnectionId connId,
+ PDU_UECUPS msg
+ }
+
+ template UECUPS_Send t_UECUPS_Send(template ConnectionId connId, template PDU_UECUPS msg) := {
+ connId := connId,
+ msg := msg
+ }
+
+ private function IPL4_to_UECUPS_RecvFrom(in ASP_RecvFrom pin, out UECUPS_RecvFrom pout) {
+ pout.connId := pin.connId;
+ pout.remName := pin.remName;
+ pout.remPort := pin.remPort;
+ pout.locName := pin.locName;
+ pout.locPort := pin.locPort;
+ pout.msg := f_dec_PDU_UECUPS(pin.msg);
+ } with { extension "prototype(fast)" };
+
+ private function UECUPS_to_IPL4_Send(in UECUPS_Send pin, out ASP_Send pout) {
+ pout.connId := pin.connId;
+ pout.proto := { sctp := {} };
+ pout.msg := f_enc_PDU_UECUPS(pin.msg);
+ } with { extension "prototype(fast)" };
+
+ type port UECUPS_CODEC_PT message {
+ out UECUPS_Send;
+ in UECUPS_RecvFrom,
+ ASP_ConnId_ReadyToRelease,
+ ASP_Event;
+ } with { extension "user IPL4asp_PT
+ out(UECUPS_Send -> ASP_Send:function(UECUPS_to_IPL4_Send))
+ in(ASP_RecvFrom -> UECUPS_RecvFrom: function(IPL4_to_UECUPS_RecvFrom);
+ ASP_ConnId_ReadyToRelease -> ASP_ConnId_ReadyToRelease: simple;
+ ASP_Event -> ASP_Event: simple)"
+ }
+}