<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/24656">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bts: Support passing PCUIF messages over IPA multiplex<br><br>Related: SYS#5303<br>Change-Id: I3cd0988cb654f1c5816d1c4717255a5e802d7925<br>---<br>M bts/BTS_Tests_OML.ttcn<br>M bts/regen_makefile.sh<br>M library/IPA_Emulation.ttcnpp<br>M library/IPA_Types.ttcn<br>4 files changed, 48 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/56/24656/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/bts/BTS_Tests_OML.ttcn b/bts/BTS_Tests_OML.ttcn</span><br><span>index 6770dab..ddeb139 100644</span><br><span>--- a/bts/BTS_Tests_OML.ttcn</span><br><span>+++ b/bts/BTS_Tests_OML.ttcn</span><br><span>@@ -52,6 +52,8 @@</span><br><span>    /* Port for OML */</span><br><span>   port IPA_OML_PT OML;</span><br><span>         var uint8_t g_bts_nr := 0;</span><br><span style="color: hsl(120, 100%, 40%);">+    /* Port for Abis/Osmo/PCU */</span><br><span style="color: hsl(120, 100%, 40%);">+  port IPA_OSMO_PCU_PT IPA_OSMO_PCU;</span><br><span> </span><br><span>       /* global test case guard timer */</span><br><span>   timer T_oml_guard := 60.0;</span><br><span>@@ -97,6 +99,7 @@</span><br><span>       vc_IPA_OML := IPA_Emulation_CT.create(id & "-OML-IPA");</span><br><span>        map(vc_IPA_OML:IPA_PORT, system:IPA_CODEC_PT);</span><br><span>       connect(vc_IPA_OML:IPA_OML_PORT, self:OML);</span><br><span style="color: hsl(120, 100%, 40%);">+   connect(vc_IPA_OML:IPA_OSMO_PCU_PORT, self:IPA_OSMO_PCU);</span><br><span>    vc_IPA_OML.start(IPA_Emulation.main_server(mp_oml_ip, mp_oml_port));</span><br><span> </span><br><span>     T_oml_guard.start;</span><br><span>diff --git a/bts/regen_makefile.sh b/bts/regen_makefile.sh</span><br><span>index 9f1bf1d..8771500 100755</span><br><span>--- a/bts/regen_makefile.sh</span><br><span>+++ b/bts/regen_makefile.sh</span><br><span>@@ -2,6 +2,6 @@</span><br><span> </span><br><span> FILES="*.ttcn *.ttcnpp IPA_CodecPort_CtrlFunctDef.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc UD_PT.cc RLCMAC_EncDec.cc Native_FunctionDefs.cc TRXC_CodecPort_CtrlFunctDef.cc L1CTL_PortType_CtrlFunctDef.cc TELNETasp_PT.cc"</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-export CPPFLAGS_TTCN3="-DIPA_EMULATION_RSL -DIPA_EMULATION_OML -DIPA_EMULATION_CTRL"</span><br><span style="color: hsl(120, 100%, 40%);">+export CPPFLAGS_TTCN3="-DIPA_EMULATION_RSL -DIPA_EMULATION_OML -DIPA_EMULATION_CTRL -DIPA_EMULATION_OSMO_PCU"</span><br><span> </span><br><span> ../regen-makefile.sh BTS_Tests.ttcn $FILES</span><br><span>diff --git a/library/IPA_Emulation.ttcnpp b/library/IPA_Emulation.ttcnpp</span><br><span>index 906664f..5cdf324 100644</span><br><span>--- a/library/IPA_Emulation.ttcnpp</span><br><span>+++ b/library/IPA_Emulation.ttcnpp</span><br><span>@@ -55,6 +55,10 @@</span><br><span> import from Osmocom_CTRL_Types all;</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_OSMO_PCU</span><br><span style="color: hsl(120, 100%, 40%);">+import from PCUIF_Types all;</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> modulepar {</span><br><span>    /* Use Osmocom extended IPA mux header */</span><br><span>    boolean mp_ipa_mgcp_uses_osmo_ext := true;</span><br><span>@@ -190,6 +194,12 @@</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_OSMO_PCU</span><br><span style="color: hsl(120, 100%, 40%);">+/* Client port for Osmocom PCU extension inside IPA */</span><br><span style="color: hsl(120, 100%, 40%);">+type port IPA_OSMO_PCU_PT message {</span><br><span style="color: hsl(120, 100%, 40%);">+      inout PCUIF_Message, 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> </span><br><span> </span><br><span> </span><br><span>@@ -224,6 +234,10 @@</span><br><span>    /* up-facing port for RSPRO */</span><br><span>       port IPA_RSPRO_PT IPA_RSPRO_PORT;</span><br><span> #endif</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_OSMO_PCU</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_OSMO_PCU_PT IPA_OSMO_PCU_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>@@ -350,6 +364,11 @@</span><br><span>           IPA_RSPRO_PORT.send(evt);</span><br><span>    }</span><br><span> #endif</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_OSMO_PCU</span><br><span style="color: hsl(120, 100%, 40%);">+    if (IPA_OSMO_PCU_PORT.checkstate("Connected")) {</span><br><span style="color: hsl(120, 100%, 40%);">+            IPA_OSMO_PCU_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>@@ -585,6 +604,13 @@</span><br><span> }</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_OSMO_PCU</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_osmo_pcu_to_user(octetstring msg) runs on IPA_Emulation_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+        var PCUIF_Message pcuif_msg := dec_PCUIF_Message(msg);</span><br><span style="color: hsl(120, 100%, 40%);">+        IPA_OSMO_PCU_PORT.send(pcuif_msg);</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>@@ -657,6 +683,9 @@</span><br><span> #ifdef IPA_EMULATION_RSPRO</span><br><span>  var RsproPDU rspro;</span><br><span> #endif</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_OSMO_PCU</span><br><span style="color: hsl(120, 100%, 40%);">+  var PCUIF_Message pcu;</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>@@ -733,6 +762,11 @@</span><br><span>                                              f_rspro_to_user(ipa_rx.msg);</span><br><span>                                         }</span><br><span> #endif</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_OSMO_PCU</span><br><span style="color: hsl(120, 100%, 40%);">+                                    case (IPAC_PROTO_EXT_OSMO_PCU) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                              f_osmo_pcu_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>@@ -826,6 +860,14 @@</span><br><span>             }</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef IPA_EMULATION_OSMO_PCU</span><br><span style="color: hsl(120, 100%, 40%);">+                [] IPA_OSMO_PCU_PORT.receive(PCUIF_Message:?) -> value pcu {</span><br><span style="color: hsl(120, 100%, 40%);">+                       payload := enc_PCUIF_Message(pcu);</span><br><span style="color: hsl(120, 100%, 40%);">+                    ipa_ud := valueof(t_ASP_IPA_UD(IPAC_PROTO_OSMO, payload, IPAC_PROTO_EXT_OSMO_PCU));</span><br><span style="color: hsl(120, 100%, 40%);">+                   IPA_PORT.send(f_from_asp(f_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 110e5b1..95623ef 100644</span><br><span>--- a/library/IPA_Types.ttcn</span><br><span>+++ b/library/IPA_Types.ttcn</span><br><span>@@ -35,7 +35,8 @@</span><br><span>       IPAC_PROTO_EXT_ORC      ('04'H),</span><br><span>     IPAC_PROTO_EXT_GSUP     ('05'H),</span><br><span>     IPAC_PROTO_EXT_OAP      ('06'H),</span><br><span style="color: hsl(0, 100%, 40%);">-        IPAC_PROTO_EXT_RSPRO    ('07'H)</span><br><span style="color: hsl(120, 100%, 40%);">+       IPAC_PROTO_EXT_RSPRO    ('07'H),</span><br><span style="color: hsl(120, 100%, 40%);">+      IPAC_PROTO_EXT_OSMO_PCU ('08'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/c/osmo-ttcn3-hacks/+/24656">change 24656</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/c/osmo-ttcn3-hacks/+/24656"/><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-Change-Id: I3cd0988cb654f1c5816d1c4717255a5e802d7925 </div>
<div style="display:none"> Gerrit-Change-Number: 24656 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>