<p>Harald Welte has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/12876">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">IPA_Emulation: Integrate OML decoding/encoding; add OML port<br><br>Change-Id: Id0dabe7eca4f81d22a60b346ac598be81533f53c<br>---<br>M library/IPA_Emulation.ttcnpp<br>1 file changed, 47 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/76/12876/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/IPA_Emulation.ttcnpp b/library/IPA_Emulation.ttcnpp</span><br><span>index 413d290..f556327 100644</span><br><span>--- a/library/IPA_Emulation.ttcnpp</span><br><span>+++ b/library/IPA_Emulation.ttcnpp</span><br><span>@@ -31,6 +31,10 @@</span><br><span> import from RSL_Types all;</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_OML</span><br><span style="color: hsl(120, 100%, 40%);">+import from AbisOML_Types all;</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #ifdef IPA_EMULATION_MGCP</span><br><span> import from MGCP_Types all;</span><br><span> #endif</span><br><span>@@ -112,6 +116,7 @@</span><br><span>                                IPAC_PROTO_RSL_TRX2, IPAC_PROTO_RSL_TRX3 );</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Client port for general IPA messages, not further decoded */</span><br><span> type port IPA_SP_PT message {</span><br><span>        inout ASP_IPA_Unitdata, ASP_IPA_Event;</span><br><span>@@ -131,6 +136,13 @@</span><br><span> } with { extension "internal" }</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_OML</span><br><span style="color: hsl(120, 100%, 40%);">+/* Client port for A-bis OML inside IPA */</span><br><span style="color: hsl(120, 100%, 40%);">+type port IPA_OML_PT message {</span><br><span style="color: hsl(120, 100%, 40%);">+        inout OML_PDU, octetstring, ASP_IPA_Event;</span><br><span style="color: hsl(120, 100%, 40%);">+} with { extension "internal" }</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Client port for CTRL inside IPA */</span><br><span> type port IPA_CTRL_PT message {</span><br><span>  inout CtrlMessage, ASP_IPA_Event;</span><br><span>@@ -167,6 +179,10 @@</span><br><span>     /* up-facing port for RSL */</span><br><span>         port IPA_RSL_PT IPA_RSL_PORT;</span><br><span> #endif</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_OML</span><br><span style="color: hsl(120, 100%, 40%);">+     /* up-facing port for OML */</span><br><span style="color: hsl(120, 100%, 40%);">+  port IPA_OML_PT IPA_OML_PORT;</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span>        /* up-facing port for CTRL */</span><br><span>        port IPA_CTRL_PT IPA_CTRL_PORT;</span><br><span> #ifdef IPA_EMULATION_GSUP</span><br><span>@@ -276,6 +292,11 @@</span><br><span>          IPA_RSL_PORT.send(evt);</span><br><span>      }</span><br><span> #endif</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_OML</span><br><span style="color: hsl(120, 100%, 40%);">+ if (IPA_OML_PORT.checkstate("Connected")) {</span><br><span style="color: hsl(120, 100%, 40%);">+         IPA_OML_PORT.send(evt);</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span>    if (IPA_CTRL_PORT.checkstate("Connected")) {</span><br><span>               IPA_CTRL_PORT.send(evt);</span><br><span>     }</span><br><span>@@ -437,6 +458,14 @@</span><br><span> }</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_OML</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_from_oml(IPL4asp_Types.ConnectionId connId, OML_PDU oml_tx) return IPA_Send {</span><br><span style="color: hsl(120, 100%, 40%);">+       var octetstring payload := enc_OML_PDU(oml_tx);</span><br><span style="color: hsl(120, 100%, 40%);">+       var IPA_Send ret := valueof(t_IPA_Send(connId, IPAC_PROTO_OML, payload));</span><br><span style="color: hsl(120, 100%, 40%);">+     return ret;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* main function to use for a client-side IPA implementation */</span><br><span> function main_client(charstring remote_host, IPL4asp_Types.PortNumber remote_port,</span><br><span>                 charstring local_host, IPL4asp_Types.PortNumber local_port,</span><br><span>@@ -527,6 +556,9 @@</span><br><span> #ifdef IPA_EMULATION_RSL</span><br><span>   var ASP_RSL_Unitdata rsl;</span><br><span> #endif</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_OML</span><br><span style="color: hsl(120, 100%, 40%);">+ var OML_PDU oml;</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span> #ifdef IPA_EMULATION_RSPRO</span><br><span>       var RsproPDU rspro;</span><br><span> #endif</span><br><span>@@ -577,6 +609,12 @@</span><br><span>                                 IPA_RSL_PORT.send(rsl);</span><br><span>                      }</span><br><span> #endif</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_OML</span><br><span style="color: hsl(120, 100%, 40%);">+                 case (IPAC_PROTO_OML) {</span><br><span style="color: hsl(120, 100%, 40%);">+                               oml := dec_OML_PDU(ipa_rx.msg)</span><br><span style="color: hsl(120, 100%, 40%);">+                                IPA_OML_PORT.send(oml);</span><br><span style="color: hsl(120, 100%, 40%);">+                       }</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span>                    case (IPAC_PROTO_OSMO) {</span><br><span>                             select (ipa_rx.streamIdExt) {</span><br><span> #ifdef IPA_EMULATION_MGCP</span><br><span>@@ -691,7 +729,15 @@</span><br><span>                    IPA_PORT.send(f_from_rsl(g_ipa_conn_id, rsl));</span><br><span>               }</span><br><span> #endif</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_OML</span><br><span style="color: hsl(120, 100%, 40%);">+         /* Received OML -> down into IPA */</span><br><span style="color: hsl(120, 100%, 40%);">+                [] IPA_OML_PORT.receive(OML_PDU:?) -> value oml {</span><br><span style="color: hsl(120, 100%, 40%);">+                  IPA_PORT.send(f_from_oml(g_ipa_conn_id, oml));</span><br><span style="color: hsl(120, 100%, 40%);">+                }</span><br><span style="color: hsl(120, 100%, 40%);">+             [] IPA_OML_PORT.receive(octetstring:?) -> value payload {</span><br><span style="color: hsl(120, 100%, 40%);">+                  IPA_PORT.send(t_IPA_Send(g_ipa_conn_id, IPAC_PROTO_OML, payload));</span><br><span style="color: hsl(120, 100%, 40%);">+            }</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span>            /* Received MISC (OML/CTRL) -> down into IPA */</span><br><span>           [] IPA_SP_PORT.receive(ASP_IPA_Unitdata: ?) -> value ipa_ud {</span><br><span>                     IPA_PORT.send(f_from_asp(g_ipa_conn_id, ipa_ud));</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/12876">change 12876</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/12876"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Id0dabe7eca4f81d22a60b346ac598be81533f53c </div>
<div style="display:none"> Gerrit-Change-Number: 12876 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Harald Welte <laforge@gnumonks.org> </div>