<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19766">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  laforge: Looks good to me, approved
  pespin: Looks good to me, but someone else must approve
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bsc: Add Lb interface support<br><br>This introduces the Lb interface stack, which allows BSC_Tests.ttcn<br>to emulate a SMLC towards the BSC.<br><br>In accordance with https://osmocom.org/projects/cellular-infrastructure/wiki/Point_Codes<br>we use 0.23.6 as point code for emulating the SMLC.<br><br>Change-Id: I854618cc08de1a716784f52542a4df3c7f7ad900<br>---<br>M bsc/BSC_Tests.ttcn<br>M bsc/MSC_ConnectionHandler.ttcn<br>M bsc/gen_links.sh<br>3 files changed, 55 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn</span><br><span>index dce9ae9..ffc92ad 100644</span><br><span>--- a/bsc/BSC_Tests.ttcn</span><br><span>+++ b/bsc/BSC_Tests.ttcn</span><br><span>@@ -28,6 +28,8 @@</span><br><span> </span><br><span> import from BSSAP_Types all;</span><br><span> import from RAN_Adapter all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from BSSAP_LE_Adapter all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from BSSAP_LE_CodecPort all;</span><br><span> import from BSSAP_CodecPort all;</span><br><span> import from BSSMAP_Templates all;</span><br><span> import from IPA_Emulation all;</span><br><span>@@ -480,8 +482,10 @@</span><br><span>        var StatsD_Checker_CT vc_STATSD;</span><br><span> </span><br><span>         var RAN_Adapter g_bssap[NUM_MSC];</span><br><span style="color: hsl(120, 100%, 40%);">+     var BSSAP_LE_Adapter g_bssap_le;</span><br><span>     /* for old legacy-tests only */</span><br><span>      port BSSAP_CODEC_PT BSSAP;</span><br><span style="color: hsl(120, 100%, 40%);">+    port BSSAP_LE_CODEC_PT BSSAP_LE;</span><br><span> </span><br><span>         /* are we initialized yet */</span><br><span>         var boolean g_initialized := false;</span><br><span>@@ -553,6 +557,17 @@</span><br><span>           }</span><br><span>    };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+        BSSAP_LE_Configuration mp_bssap_le_cfg := {</span><br><span style="color: hsl(120, 100%, 40%);">+           sccp_service_type := "mtp3_itu",</span><br><span style="color: hsl(120, 100%, 40%);">+            sctp_addr := { 23908, "127.0.0.1", 2905, "127.0.0.1" },</span><br><span style="color: hsl(120, 100%, 40%);">+           own_pc := 6,    /* 0.0.6 SMLC emulation */</span><br><span style="color: hsl(120, 100%, 40%);">+            own_ssn := 252, /* SMLC side SSN */</span><br><span style="color: hsl(120, 100%, 40%);">+           peer_pc := 187, /* 0.23.3 osmo-bsc */</span><br><span style="color: hsl(120, 100%, 40%);">+         peer_ssn := 250, /* BSC side SSN */</span><br><span style="color: hsl(120, 100%, 40%);">+           sio := '83'O,</span><br><span style="color: hsl(120, 100%, 40%);">+         rctx := 6</span><br><span style="color: hsl(120, 100%, 40%);">+     };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>         /* Whether to enable osmux tests. Can be dropped completely and enable</span><br><span>          unconditionally once new version of osmo-bsc is released (current</span><br><span>            version: 1.4.1) */</span><br><span>@@ -928,6 +943,14 @@</span><br><span>                 }</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ if (handler_mode) {</span><br><span style="color: hsl(120, 100%, 40%);">+           f_bssap_le_adapter_init(g_bssap_le, mp_bssap_le_cfg, "VirtSMLC", SMLC_BssapLeOps);</span><br><span style="color: hsl(120, 100%, 40%);">+  } else {</span><br><span style="color: hsl(120, 100%, 40%);">+              f_bssap_le_adapter_init(g_bssap_le, mp_bssap_le_cfg, "VirtSMLC", omit);</span><br><span style="color: hsl(120, 100%, 40%);">+             connect(self:BSSAP_LE, g_bssap_le.vc_SCCP:SCCP_SP_PORT);</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+     f_bssap_le_adapter_start(g_bssap_le);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>      /* start the test with exactly all enabled MSCs allowed to attach */</span><br><span>         f_vty_msc_allow_attach(BSCVTY, allow_attach);</span><br><span> </span><br><span>@@ -2878,6 +2901,7 @@</span><br><span>  ***********************************************************************/</span><br><span> </span><br><span> import from RAN_Emulation all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from BSSAP_LE_Emulation all;</span><br><span> import from RSL_Emulation all;</span><br><span> import from MSC_ConnectionHandler all;</span><br><span> </span><br><span>@@ -2898,6 +2922,7 @@</span><br><span>            connect(vc_conn:RSL2_PROC, bts[2].rsl.vc_RSL:RSL_PROC);</span><br><span>      }</span><br><span>    connect(vc_conn:BSSAP, g_bssap[bssap_idx].vc_RAN:CLIENT);</span><br><span style="color: hsl(120, 100%, 40%);">+     connect(vc_conn:BSSAP_LE, g_bssap_le.vc_BSSAP_LE:CLIENT);</span><br><span>    connect(vc_conn:MGCP, vc_MGCP:MGCP_CLIENT);</span><br><span>  connect(vc_conn:MGCP_MULTI, vc_MGCP:MGCP_CLIENT_MULTI);</span><br><span>      connect(vc_conn:STATSD_PROC, vc_STATSD:STATSD_PROC);</span><br><span>diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn</span><br><span>index bf96eff..f02cfb4 100644</span><br><span>--- a/bsc/MSC_ConnectionHandler.ttcn</span><br><span>+++ b/bsc/MSC_ConnectionHandler.ttcn</span><br><span>@@ -19,6 +19,9 @@</span><br><span> import from SCCPasp_Types all;</span><br><span> import from BSSAP_Types all;</span><br><span> import from RAN_Emulation all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from BSSAP_LE_Emulation all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from BSSAP_LE_Types all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from BSSMAP_LE_Templates all;</span><br><span> import from BSSMAP_Templates all;</span><br><span> </span><br><span> import from IPL4asp_Types all;</span><br><span>@@ -411,7 +414,7 @@</span><br><span> /* this component represents a single subscriber connection at the MSC.</span><br><span>  * There is a 1:1 mapping between SCCP connections and RAN_ConnHdlr components.</span><br><span>  * We inherit all component variables, ports, functions, ... from RAN_ConnHdlr */</span><br><span style="color: hsl(0, 100%, 40%);">-type component MSC_ConnHdlr extends RAN_ConnHdlr, RSL_DchanHdlr, MGCP_ConnHdlr, StatsD_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+type component MSC_ConnHdlr extends RAN_ConnHdlr, RSL_DchanHdlr, MGCP_ConnHdlr, BSSAP_LE_ConnHdlr, StatsD_ConnHdlr {</span><br><span>     /* SCCP Connecction Identifier for the underlying SCCP connection */</span><br><span>         var integer g_sccp_conn_id;</span><br><span> </span><br><span>@@ -470,6 +473,20 @@</span><br><span>       return resp;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Callback function from general BSSAP_LE_Emulation whenever a connectionless</span><br><span style="color: hsl(120, 100%, 40%);">+ * BSSAP_LE message arrives.  Can return a PDU_BSSAP_LE that should be sent in return */</span><br><span style="color: hsl(120, 100%, 40%);">+private function BSSAP_LE_UnitdataCallback(PDU_BSSAP_LE bssap)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on BSSAP_LE_Emulation_CT return template PDU_BSSAP_LE {</span><br><span style="color: hsl(120, 100%, 40%);">+ var template PDU_BSSAP_LE resp := omit;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     /* answer all RESET with a RESET ACK */</span><br><span style="color: hsl(120, 100%, 40%);">+       if (match(bssap, tr_BSSMAP_LE_Reset)) {</span><br><span style="color: hsl(120, 100%, 40%);">+               resp := ts_BSSMAP_LE_ResetAck;</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%);">+   return resp;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> const RanOps MSC_RanOps := {</span><br><span>    create_cb := refers(RAN_Emulation.ExpectedCreateCallback),</span><br><span>   unitdata_cb := refers(UnitdataCallback),</span><br><span>@@ -482,6 +499,15 @@</span><br><span>      sccp_addr_peer := omit</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+const BssapLeOps SMLC_BssapLeOps := {</span><br><span style="color: hsl(120, 100%, 40%);">+        create_cb := refers(BSSAP_LE_Emulation.ExpectedCreateCallback),</span><br><span style="color: hsl(120, 100%, 40%);">+       unitdata_cb := refers(BSSAP_LE_UnitdataCallback),</span><br><span style="color: hsl(120, 100%, 40%);">+     decode_dtap := false,</span><br><span style="color: hsl(120, 100%, 40%);">+ role_ms := false,</span><br><span style="color: hsl(120, 100%, 40%);">+     sccp_addr_local := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+      sccp_addr_peer := omit</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> const MGCPOps MSC_MGCPOps := {</span><br><span>        create_cb := refers(MGCP_Emulation.ExpectedCreateCallback),</span><br><span>  unitdata_cb := refers(MGCP_Emulation.DummyUnitdataCallback)</span><br><span>diff --git a/bsc/gen_links.sh b/bsc/gen_links.sh</span><br><span>index 02e093d..f316509 100755</span><br><span>--- a/bsc/gen_links.sh</span><br><span>+++ b/bsc/gen_links.sh</span><br><span>@@ -70,7 +70,9 @@</span><br><span> FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_Types.ttcn GSM_Types.ttcn Osmocom_VTY_Functions.ttcn Native_Functions.ttcn Native_FunctionDefs.cc IPA_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc IPA_Emulation.ttcnpp L3_Templates.ttcn BSSMAP_Templates.ttcn RAN_Emulation.ttcnpp RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn GSM_RR_Types.ttcn RSL_Types.ttcn RSL_Emulation.ttcn MGCP_Emulation.ttcn MGCP_Types.ttcn MGCP_Templates.ttcn MGCP_CodecPort.ttcn MGCP_CodecPort_CtrlFunct.ttcn MGCP_CodecPort_CtrlFunctDef.cc BSSAP_CodecPort.ttcn RAN_Adapter.ttcnpp Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn RTP_CodecPort.ttcn RTP_CodecPort_CtrlFunct.ttcn RTP_CodecPort_CtrlFunctDef.cc RTP_Emulation.ttcn IuUP_Types.ttcn IuUP_EncDec.cc IuUP_Emulation.ttcn SCCP_Templates.ttcn IPA_Testing.ttcn GSM_SystemInformation.ttcn GSM_RestOctets.ttcn "</span><br><span> FILES+="CBSP_Types.ttcn CBSP_Templates.ttcn "</span><br><span> FILES+="CBSP_CodecPort.ttcn CBSP_CodecPort_CtrlFunct.ttcn CBSP_CodecPort_CtrlFunctdef.cc CBSP_Adapter.ttcn "</span><br><span style="color: hsl(0, 100%, 40%);">-FILES+="StatsD_Types.ttcn StatsD_CodecPort.ttcn StatsD_CodecPort_CtrlFunct.ttcn StatsD_CodecPort_CtrlFunctdef.cc StatsD_Checker.ttcn"</span><br><span style="color: hsl(120, 100%, 40%);">+FILES+="StatsD_Types.ttcn StatsD_CodecPort.ttcn StatsD_CodecPort_CtrlFunct.ttcn StatsD_CodecPort_CtrlFunctdef.cc StatsD_Checker.ttcn "</span><br><span style="color: hsl(120, 100%, 40%);">+FILES+="BSSAP_LE_CodecPort.ttcn BSSAP_LE_Emulation.ttcn BSSAP_LE_Types.ttcn BSSAP_LE_Adapter.ttcn BSSLAP_Types.ttcn BSSMAP_LE_Templates.ttcn "</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> gen_links $DIR $FILES</span><br><span> </span><br><span> ignore_pp_results</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19766">change 19766</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/+/19766"/><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: I854618cc08de1a716784f52542a4df3c7f7ad900 </div>
<div style="display:none"> Gerrit-Change-Number: 19766 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>