<p>Harald Welte has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/11304">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">IPA_Types/Emulation: Add RSPRO support<br><br>RSPRO is the protocol used by osmo-remsim.  It is embedded into an IPA<br>multiplex, and hence the TTCN-3 IPA code needs some extension to cover<br>support for it.<br><br>Change-Id: I536d6843b3e65b3ee35fbbcd6353e0fb0ce21c8e<br>---<br>M library/IPA_Emulation.ttcnpp<br>M library/IPA_Types.ttcn<br>2 files changed, 49 insertions(+), 2 deletions(-)<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/04/11304/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 7a26a6b..413d290 100644</span><br><span>--- a/library/IPA_Emulation.ttcnpp</span><br><span>+++ b/library/IPA_Emulation.ttcnpp</span><br><span>@@ -8,7 +8,7 @@</span><br><span>  * GSUP.  IT hence transcodes messages so the user can work with abstract data types rather</span><br><span>  * than binary messages.  It handles multiple packets inside one TCP segment.</span><br><span>  *</span><br><span style="color: hsl(0, 100%, 40%);">- * (C) 2017 by Harald Welte <laforge@gnumonks.org></span><br><span style="color: hsl(120, 100%, 40%);">+ * (C) 2017-2018 by Harald Welte <laforge@gnumonks.org></span><br><span>  * All rights reserved.</span><br><span>  *</span><br><span>  * Released under the terms of GNU General Public License, Version 2 or</span><br><span>@@ -39,6 +39,12 @@</span><br><span> import from GSUP_Types all;</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_RSPRO</span><br><span style="color: hsl(120, 100%, 40%);">+import from RSPRO all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from RSPRO_Types all;</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> import from Osmocom_CTRL_Types all;</span><br><span> </span><br><span> modulepar {</span><br><span>@@ -137,6 +143,14 @@</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_RSPRO</span><br><span style="color: hsl(120, 100%, 40%);">+type port IPA_RSPRO_PT message {</span><br><span style="color: hsl(120, 100%, 40%);">+      inout RsproPDU, 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 style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> </span><br><span> type component IPA_Emulation_CT {</span><br><span>     /* down-facing port to IPA codec port */</span><br><span>@@ -159,6 +173,10 @@</span><br><span>      /* up-facing port for GSUP */</span><br><span>        port IPA_GSUP_PT IPA_GSUP_PORT;</span><br><span> #endif</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_RSPRO</span><br><span style="color: hsl(120, 100%, 40%);">+ /* up-facing port for RSPRO */</span><br><span style="color: hsl(120, 100%, 40%);">+        port IPA_RSPRO_PT IPA_RSPRO_PORT;</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span> </span><br><span>        /* up-facing port for other streams */</span><br><span>       port IPA_SP_PT IPA_SP_PORT;</span><br><span>@@ -266,6 +284,11 @@</span><br><span>           IPA_GSUP_PORT.send(evt);</span><br><span>     }</span><br><span> #endif</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_RSPRO</span><br><span style="color: hsl(120, 100%, 40%);">+       if (IPA_RSPRO_PORT.checkstate("Connected")) {</span><br><span style="color: hsl(120, 100%, 40%);">+               IPA_RSPRO_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>    /* FIXME: to other ports */</span><br><span> }</span><br><span> </span><br><span>@@ -455,6 +478,13 @@</span><br><span> }</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_RSPRO</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_rspro_to_user(octetstring msg) runs on IPA_Emulation_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+      var RsproPDU rspro := dec_RsproPDU(msg);</span><br><span style="color: hsl(120, 100%, 40%);">+      IPA_RSPRO_PORT.send(rspro);</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> #ifdef IPA_EMULATION_MGCP</span><br><span> private function f_mgcp_to_user(octetstring msg) runs on IPA_Emulation_CT {</span><br><span>         var charstring msg_ch := oct2char(msg);</span><br><span>@@ -497,6 +527,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_RSPRO</span><br><span style="color: hsl(120, 100%, 40%);">+       var RsproPDU rspro;</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span> </span><br><span>      /* Set function for dissecting the binary */</span><br><span>         var f_IPL4_getMsgLen vl_f := refers(f_IPL4_fixedMsgLen);</span><br><span>@@ -559,6 +592,11 @@</span><br><span>                                              f_gsup_to_user(ipa_rx.msg);</span><br><span>                                  }</span><br><span> #endif</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_RSPRO</span><br><span style="color: hsl(120, 100%, 40%);">+                                       case (IPAC_PROTO_EXT_RSPRO) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                         f_rspro_to_user(ipa_rx.msg);</span><br><span style="color: hsl(120, 100%, 40%);">+                                  }</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span>                                    case else {</span><br><span>                                          IPA_SP_PORT.send(f_to_asp(ipa_rx));</span><br><span>                                  }</span><br><span>@@ -639,6 +677,14 @@</span><br><span>             }</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_RSPRO</span><br><span style="color: hsl(120, 100%, 40%);">+           [] IPA_RSPRO_PORT.receive(RsproPDU:?) -> value rspro {</span><br><span style="color: hsl(120, 100%, 40%);">+                     payload := enc_RsproPDU(rspro);</span><br><span style="color: hsl(120, 100%, 40%);">+                       ipa_ud := valueof(t_ASP_IPA_UD(IPAC_PROTO_OSMO, payload, IPAC_PROTO_EXT_RSPRO));</span><br><span style="color: hsl(120, 100%, 40%);">+                      IPA_PORT.send(f_from_asp(g_ipa_conn_id, ipa_ud));</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> #ifdef IPA_EMULATION_RSL</span><br><span>              /* Received RSL -> down into IPA */</span><br><span>               [] IPA_RSL_PORT.receive(ASP_RSL_Unitdata:?) -> value rsl {</span><br><span>diff --git a/library/IPA_Types.ttcn b/library/IPA_Types.ttcn</span><br><span>index 3230329..1325b14 100644</span><br><span>--- a/library/IPA_Types.ttcn</span><br><span>+++ b/library/IPA_Types.ttcn</span><br><span>@@ -32,7 +32,8 @@</span><br><span>       IPAC_PROTO_EXT_SMSC     ('03'H),</span><br><span>     IPAC_PROTO_EXT_ORC      ('04'H),</span><br><span>     IPAC_PROTO_EXT_GSUP     ('05'H),</span><br><span style="color: hsl(0, 100%, 40%);">-        IPAC_PROTO_EXT_OAP      ('06'H)</span><br><span style="color: hsl(120, 100%, 40%);">+       IPAC_PROTO_EXT_OAP      ('06'H),</span><br><span style="color: hsl(120, 100%, 40%);">+      IPAC_PROTO_EXT_RSPRO    ('07'H)</span><br><span> } with { variant "FIELDLENGTH(8)" }</span><br><span> </span><br><span> external function enc_PDU_IPA(in PDU_IPA pdu) return octetstring</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/11304">change 11304</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/11304"/><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: I536d6843b3e65b3ee35fbbcd6353e0fb0ce21c8e </div>
<div style="display:none"> Gerrit-Change-Number: 11304 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Harald Welte <laforge@gnumonks.org> </div>