Osmux_Emulation: Add DATA port
Similar to what's already present in RTPEM_Emulation, this allows tests
to retrieve the Osmux messages received.
Related: OS#5987
Change-Id: Id9aa3a0a02ef5a5e39b4df8a1c165f35255829ab
diff --git a/library/OSMUX_Emulation.ttcn b/library/OSMUX_Emulation.ttcn
index 10338d2..c6999de 100644
--- a/library/OSMUX_Emulation.ttcn
+++ b/library/OSMUX_Emulation.ttcn
@@ -67,6 +67,8 @@
/* user-facing port for controlling the binding */
port OsmuxEM_CTRL_PT CTRL;
+ /* user-facing port for sniffing Osmux frames */
+ port OsmuxEM_DATA_PT DATA;
/* configurable by user, should be fixed */
var OsmuxemConfig g_cfg := c_OsmuxemDefaultCfg;
@@ -190,6 +192,10 @@
OsmuxEM_stats_get, OsmuxEM_register_rxhandle, OsmuxEM_register_txhandle;
} with { extension "internal" };
+type port OsmuxEM_DATA_PT message {
+ inout OSMUX_PDU;
+} with { extension "internal" };
+
function f_osmuxem_bind(OsmuxEM_CTRL_PT pt, in HostName local_host, inout PortNumber local_port) {
pt.call(OsmuxEM_bind:{local_host, local_port}) {
[] pt.getreply(OsmuxEM_bind:{local_host, ?}) -> param (local_port) {};
@@ -556,6 +562,9 @@
if (ispresent(g_cfg.rx_fixed_payload) and rx_osmux.msg.osmux_amr.data != payload_truncated) {
g_stat.num_pkts_rx_err_payload := g_stat.num_pkts_rx_err_payload + 1;
}
+ if (DATA.checkstate("Connected")) {
+ DATA.send(rx_osmux.msg);
+ }
}
/* process received Osmux Dummy if receiver enabled */
[g_rx_enabled] OSMUX.receive(tr_osmux_dummy) -> value rx_osmux {